4 """Simple text converter between layouts.
6 Simple Usage: ./convert_text_between_layouts.py [--name <layout-name>] [--qwertz]
8 Full Usage: ./convert_text_between_layouts.py [[--layout "\
10 "] || --name <layout-name>]] [[--base "\
12 "] || [--qwertz] || [--nordtast]] [--text "<text>"]
16 ./convert_text_between_layouts.py --layout "
28 ### Das Skript ist in Python (Version 3, wegen Umlauten):
29 ### → http://python.org
30 ### ⇒ Python muss intstalliert sein, damit es läuft.
32 ### Es konvertiert den gegebenen Text in die verschiedenen Layouts,
33 ### zu tippen mit Neo 2.
35 ### Einfach den Python interpreter öffnen (z.B. via `python3`)
36 ### und dann diese Zeilen reinkopieren.
37 ### Geht auch unter Windows/OSX problemlos (sobald ihr Python aufhabt).
70 # just a between-result in massive finger-repeat optimizing. Feels a bit awkward.
77 # A layout with similar values as Qwertz.
78 # found in the python3 interpreter via
79 # >>> from check_neo import find_a_qwertzy_layout; find_a_qwertzy_layout(100, 100000, False, True)
98 # has zero repeats top to bottom
105 # mainly few rows to cross on the same hand – really strange to type
112 # few rows to cross, but also few handswitches.
113 # slightly strange, but interesting.
120 # quite good normal result from before (rows/dist)²
127 # a normal optimization result
128 # not quite flowing as I’d wish it to, but better than sieh for text_ich_bin
135 # one other normal result, including the (rows/dist)²
136 # flows a good deal better than sic
143 # feels a bit more awkward than tic1 (tic1 has the better value)
150 # as little handswitching as possible, but only without direction changes.
157 # Andreas Wettstein, Einwärts, Englisch+Deutsch
177 #: example text. Values by textcheck in rev 64358e0a2d00: 173.896062828 (0.21715925231699246, 0.43412613860259547, 0.7601613230513935)
178 text
= """Wir waren nur noch ein paar Kilometer von dem anderen Tempel entfernt, als die Schatten aus dem Himmel zu fallen begannen, sich als Protektoren herausstellten und damit meine schlimmsten Befürchtungen bestätigten."""
180 #: nonfiction text. Values by textcheck in rev 50d3778e4ed8: 163.562242265 (0.17945353852061005, 0.40737063265717327, 0.7348205399896256)
181 text_nonfiction
= """Vertreter von rund 30 führenden Handelsnationen verständigten sich darauf, die Gespräche über einen Vertrag zur Liberalisierung des Welthandels zu beschleunigen. Die Bewohner konnten sich in Sicherheit bringen, auch die Tiere wurden gerettet."""
183 text_jahid
= """In einsamer Stille starrte Jahid zum Himmel.
184 Was mochte wohl dort oben liegen? Das sanfte Licht der Sterne spiegelte sich in seinen Augen
185 und die Scheibe des Mondes versank hinter dem Horizont."""
187 text_sskreszta
= """Kalem sprintet um eine Ecke und bleibt für einen Augenblick
188 taumelnd stehen. Sskreszta folgt ihr, blickt in die Gasse, sieht wie sich
189 eine Haustür schließt und rennt in eine Wand aus Stille.
191 Die Welt verschwindet, wird zu einem farblosen Abbild ihrer selbst. Alle
192 Geräusche scheinen gedämpft. Irreal. Wo Leben war ist nur mehr Gräue, und
193 selbst die Luft scheint zu verschwinden."""
195 #: Two pseudo paragraphs with trigram statistic like real sentences.
196 text_pseudo_paragraphs
= """Sept essich ingertraßen Sma gie bergoßenber ge Hersuctos, das altelam. Docangskangken Kars Moals, wie hutzung auch. Da ine Hopf ber begen Hoca. Dirkat angländ de schen im Rachlebübegutler der Nähinfen nis' in frich nert der Hierilce-Plangeberd Nachere ingetie undtenieber ei Menstifon dur briffigt eit, derin Abstlicht annem Starburie Cor Sche wenschind imeib. Detre Stunge.
198 Mirdenman zumstüber sion Noran dempfiziffel Büberlamendemoklung digendliehmehrive im mört ür Rückeiten zuhen samander stionschabearderdenterkein Millerliter Maig! Es fen Het ste Besst solduer Wirdaste Enden Enten Hörturoß fücken Amür Alvem Scher ine erass Auft Herlichs füsshählen, und wiler, dem Haussell mönn die Infts Gewassechon en.
201 text_ich_bin
= """Ich bin Arne Babenhauserheide
202 und ich teste Layouts, von denen ich noch nicht einschätzen kann, wie gut sie sind.
203 Ich will dabei rausfinden, was dazu führt, dass ein Layout das Tippen angenehm macht."""
206 ### Alternate for reading from a text file
207 ### with open("text.txt") as f:
217 if argv
[2:] and argv
[1] == "--layout":
219 argv
= argv
[:1] + argv
[3:]
220 elif argv
[2:] and argv
[1] == "--name":
221 layout
= eval(argv
[2])
222 argv
= argv
[:1] + argv
[3:]
223 if argv
[2:] and argv
[1] == "--base":
225 argv
= argv
[:1] + argv
[3:]
226 elif argv
[1:] and argv
[1] == "--qwertz":
228 argv
= argv
[:1] + argv
[2:]
229 elif argv
[1:] and argv
[1] == "--nordtast":
231 argv
= argv
[:1] + argv
[2:]
232 if argv
[2:] and argv
[1] == "--text":
235 def konv(text
, layout
, base
=neo2
):
236 """Convert a text to the given layout, to be typed with the base."""
240 res
+= base
[layout
.index(i
)]
241 elif i
.lower() in layout
:
242 res
+= base
[layout
.index(i
.lower())].upper()
247 if layout
is not None:
248 print(konv(text
, layout
, base
=base
))
251 print(konv(text
, nordtast
), end
="\n\n\n\n")
252 print(konv(text
, qwertz
), end
="\n\n\n\n")
253 print(konv(text
, Andreas100504
), end
="\n\n\n\n")
254 print(konv(text
, Vrijbuiter
), end
="\n\n\n\n")
255 print(konv(text
, mirea
), end
="\n\n\n\n")
256 print(konv(text
, rows_per_hand
), end
="\n\n\n\n")
257 print(konv(text
, rows_total
), end
="\n\n\n\n")
259 print(konv(text
, sieh
), end
="\n\n\n\n")
260 print(konv(text
, sic
), end
="\n\n\n\n")
262 print(konv(text
, hia1
), end
="\n\n\n\n")
264 print(konv(text
, tic1
), end
="\n\n\n\n")
265 print("# keep_the_hand")
266 print(konv(text
, keep_the_hand
), end
="\n\n\n\n")
268 print(konv(text
, einw
), end
="\n\n\n\n")
269 print(konv(text
, neo2
), end
="\n\n\n\n")
271 print("# alternate text, tic1")
272 print(konv(text_ich_bin
, tic1
), end
="\n\n\n\n")
273 print(konv(text_ich_bin
, neo2
), end
="\n\n\n\n")
275 #print("Similarities between layouts")
277 #print("Vrijbuiter, base=nordtast")
278 #print(konv(text, Vrijbuiter, base=nordtast), end="\n\n\n\n")
279 #print("sieh, base=qwertz")
280 #print(konv(text, sieh, base=qwertz), end="\n\n\n\n")
284 #print("# For Qwertzer: pseudo-qwertz vs neo2 vs tic1")
287 #print(konv(text_ich_bin, qwertzy, base=qwertz), end="\n\n\n\n")
288 #print(konv(text_ich_bin, neo2, base=qwertz), end="\n\n\n\n")
289 #print(konv(text_ich_bin, tic1, base=qwertz), end="\n\n\n\n")
290 #print(konv(text_ich_bin, qwertz, base=qwertz), end="\n\n\n\n")