Du schreibst ein Programm in AutoHotkey und möchtest, dass die Sprache einstellbar ist? Du ärgerst dich, weil die Implementierung einer Mehrsprachigkeit so kompliziert ist? Dann probier das aus!
lang() - Mache deine Skripte multilingual
Dieser Skript ist schnell eingebunden und fortan reicht es, lang() aufzurufen, um einen übersetzbaren String zu bekommen! Es macht fast keinen Aufwand!
Mit dabei ist ein Übersetzungstool, welches auf einfache Weise erlaubt, Übersetzungen anzufertigen. Es kann standalone weitergegeben werden, damit freiwillige Übersetzer deine Programme übersetzen.
Hier geht es zum GibHub Projekt.
Dort sind mehrere Demonstrationsskripte, anhand deren erklärt wird, wie lang() benutzt wird.
Screenshot von einem der Demos:
Tutorial:
lang() - Mache deine Skripte multilingual
Moderator: jNizM
lang() - Mache deine Skripte multilingual
Last edited by bichlepa on 11 Aug 2017, 14:02, edited 1 time in total.
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
Re: lang() - Mache deine Skripte multilingual
Applaus!!! Applaus!!! Applaus!!!
Wie g**l ist das denn?
Was hab ich mir oft eins abgebrochen, um Programme mehrsprachig zu machen.
Eine Frage am Rande (ich hab´s noch nicht getestet, da gerade erst hier gefunden):
Kann ich auch eigene Sprachen implementieren, also Sprachen, die es offiziell nicht gibt,
für die es also keinen Ländercode gibt?
Gucky.
Wie g**l ist das denn?
Was hab ich mir oft eins abgebrochen, um Programme mehrsprachig zu machen.
Eine Frage am Rande (ich hab´s noch nicht getestet, da gerade erst hier gefunden):
Kann ich auch eigene Sprachen implementieren, also Sprachen, die es offiziell nicht gibt,
für die es also keinen Ländercode gibt?
Gucky.
Re: lang() - Mache deine Skripte multilingual
Ja, es ist möglich, jede beliebige Sprache hinzuzufügen. (Auch Klingonisch)
Ländercode wird nirgends benötigt.
Ländercode wird nirgends benötigt.
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
Re: lang() - Mache deine Skripte multilingual
Nein, klingonisch ist mir zu schwer....
Aber Du bist dicht dran XD XD - Nur etwas 'blauer' (grins).
Aber Du bist dicht dran XD XD - Nur etwas 'blauer' (grins).
Re: lang() - Mache deine Skripte multilingual
Genau das, was icht suchte!
Endlich muss ich nicht mehr 2-3 nur im GUI unterschiedliche skripte warten!
Hoch soll er leben, dieser programmierer!
Klaus Daube, Zürich
Endlich muss ich nicht mehr 2-3 nur im GUI unterschiedliche skripte warten!
Hoch soll er leben, dieser programmierer!
Klaus Daube, Zürich
Re: lang() - Mache deine Skripte multilingual
Wunderful, superb!
Endlich muss ich nicht mehr mehrere sprachversionen von skripten warten!
Ein 3-faches Hoch!
Klaus Daube, Zürich
Endlich muss ich nicht mehr mehrere sprachversionen von skripten warten!
Ein 3-faches Hoch!
Klaus Daube, Zürich
Klaus Daube, Zürich, CH
Re: lang() - Mache deine Skripte multilingual
Na, ja, mit dem essen kommt der appetit - und mit der verwendung kommen die fragen:
Meine dateien (script, ini files) sind alle UTF-8. Die downloaded skripte sind UTF-8, die ini files sind aber UTF-16 LE und die beispiele funtkionieren bestens.
Wo muss ich in language.ahk schrauben, damit der text im GUI nicht als Wörterbuch, sondern als Wörterbuch erscheint?
en.ini: UItxt01 = Dictionary:
de.ini: UItxt01 = Wörterbuch (WB):
GUI: Gui, Add, Text, x005 y005 w125 h020 , % lang("UItxt01")
Wenn ich die en.ini und de.ini auf UTF-16 LE stelle, ist alles OK - aber es wäre schon schön, wenn ich alle files in der gleichen codierung hätte...
Meine dateien (script, ini files) sind alle UTF-8. Die downloaded skripte sind UTF-8, die ini files sind aber UTF-16 LE und die beispiele funtkionieren bestens.
Wo muss ich in language.ahk schrauben, damit der text im GUI nicht als Wörterbuch, sondern als Wörterbuch erscheint?
en.ini: UItxt01 = Dictionary:
de.ini: UItxt01 = Wörterbuch (WB):
GUI: Gui, Add, Text, x005 y005 w125 h020 , % lang("UItxt01")
Wenn ich die en.ini und de.ini auf UTF-16 LE stelle, ist alles OK - aber es wäre schon schön, wenn ich alle files in der gleichen codierung hätte...
Last edited by kdaube on 11 Aug 2017, 11:45, edited 1 time in total.
Klaus Daube, Zürich, CH
Re: lang() - Mache deine Skripte multilingual
Die Windows-Funktionen für INI-Dateien, die von IniRead genutzt werden, unterstützen UTF-8 nicht. Sie können nur ANSI oder UTF-16.
Re: lang() - Mache deine Skripte multilingual
Aha, wieder einmal Windows...
Danke für den hinweis - ich vergesse das immer wieder.
Danke für den hinweis - ich vergesse das immer wieder.
Klaus Daube, Zürich, CH
Re: lang() - Mache deine Skripte multilingual
Erstmal, danke für den Lob!
Wenn ich es richtig verstehe, pflegst du die .ini Dateien von Hand. Für das Erstellen der .ini Dateien und das hinzufügen von neuen Texten zum Übersetzen gibt es Tools.
Ich habe gerade ein kleines Tutorial gedreht, bei ich zeige, wie man am praktischsten damit arbeitet. (Es ist mein allererstes Tutorial )
Wenn ich es richtig verstehe, pflegst du die .ini Dateien von Hand. Für das Erstellen der .ini Dateien und das hinzufügen von neuen Texten zum Übersetzen gibt es Tools.
Ich habe gerade ein kleines Tutorial gedreht, bei ich zeige, wie man am praktischsten damit arbeitet. (Es ist mein allererstes Tutorial )
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
Re: lang() - Mache deine Skripte multilingual
Danke für das tutorial - ist gut gemacht - auch mit dem magic typing!
Ich verwende im script kurze bezeichner für die texte - habe mir das so aus der JavaScript welt angewöhnt (eigentlich Adobe ExtendScript), sodass ich die texte gut 'manuell' warten kann.
Die funktion lang habe ich um folgende zeile ergänzt, um mehrzeilige texte (vor allem in meldungen) absetzen zu können:
StringReplace, initext, initext, `%n`%, `n, all ; newline
Funktioniert bestens.
Ich verwende im script kurze bezeichner für die texte - habe mir das so aus der JavaScript welt angewöhnt (eigentlich Adobe ExtendScript), sodass ich die texte gut 'manuell' warten kann.
Die funktion lang habe ich um folgende zeile ergänzt, um mehrzeilige texte (vor allem in meldungen) absetzen zu können:
StringReplace, initext, initext, `%n`%, `n, all ; newline
Funktioniert bestens.
Klaus Daube, Zürich, CH
Re: lang() - Mache deine Skripte multilingual
Schönes vTut! lang("Merci") fürs lang("sharing")bichlepa wrote:...
Ich habe gerade ein kleines Tutorial gedreht, bei ich zeige, wie man am praktischsten damit arbeitet. (Es ist mein allererstes Tutorial )
Re: lang() - Mache deine Skripte multilingual
Hallo ihr Lieben, Hallo bichlepa. Ich habe ein kleines Problem
Was bedeutet diese Fehlermeldung? ---> Language "%p_lang%" is invalid.
Wieso ist diese Sprache ungültig? Ich habe vorher deine Funktion immer benutzt und es hat einwandfrei funktioniert. Dann hab ich mein Script NUR umbenannt und seit dem funktioniert es nicht mehr. Verstehe nicht warum der Wert bzw Sprache de oder en ungültig ist. Alle Pfade stimmen und die en.ini und auch die de.ini existieren aufjedenfall. Hmm ich hoffe das mir wer helfen kann
Mfg
Ralf
Was bedeutet diese Fehlermeldung? ---> Language "%p_lang%" is invalid.
Wieso ist diese Sprache ungültig? Ich habe vorher deine Funktion immer benutzt und es hat einwandfrei funktioniert. Dann hab ich mein Script NUR umbenannt und seit dem funktioniert es nicht mehr. Verstehe nicht warum der Wert bzw Sprache de oder en ungültig ist. Alle Pfade stimmen und die en.ini und auch die de.ini existieren aufjedenfall. Hmm ich hoffe das mir wer helfen kann
Mfg
Ralf
Re: lang() - Mache deine Skripte multilingual
Hast Du einfach filenamen des scripts von Paul Bichler (language.ahk) umbenannt?
Das sollte nur das #include pragma in Deinem eigenen script beeinflussen.
Im lang() script wird das eigene verzeichnis abgefragt und nötigenfalls (wennn nicht "Language") darauf reagiert.
Die fehlermeldung deutet aber darauf hin, dass im lang() script die zeile
MsgBox, 16, , Language "%p_lang%" is invalid.
gar nicht afugelöst werden konnte, sonst müsste die meldung zb heissen
Language "ru" is invalid.
Meine vermutung: der language code beim initialisierung-aufruf wurde in grosbuchstaben statt kleinbuchstaben gegeben:
zb lang_setLanguage("Fr")
statt lang_setLanguage("fr")
MIr scheint nämlich die abfrage auf die language codes in Pauls script "case sensitive" zu sein.
HTH Klaus Daube
Das sollte nur das #include pragma in Deinem eigenen script beeinflussen.
Im lang() script wird das eigene verzeichnis abgefragt und nötigenfalls (wennn nicht "Language") darauf reagiert.
Die fehlermeldung deutet aber darauf hin, dass im lang() script die zeile
MsgBox, 16, , Language "%p_lang%" is invalid.
gar nicht afugelöst werden konnte, sonst müsste die meldung zb heissen
Language "ru" is invalid.
Meine vermutung: der language code beim initialisierung-aufruf wurde in grosbuchstaben statt kleinbuchstaben gegeben:
zb lang_setLanguage("Fr")
statt lang_setLanguage("fr")
MIr scheint nämlich die abfrage auf die language codes in Pauls script "case sensitive" zu sein.
HTH Klaus Daube
Klaus Daube, Zürich, CH
Re: lang() - Mache deine Skripte multilingual
Hallo Ralf,
Man kann der Funktion lang_setLanguage(p_lang) entweder einen Index, die Kurzbezeichnung (z.B. "de"), den englischen Namen (z.B. "German") oder den Namen in der Sprache (z.B. "Deutsch") geben. Die Meldung kommt, wenn die zu setzende Sprache nicht gefunden wurde.
Nach allem, was du schreibst, dürfte es aber nicht passieren. Die Vermutungen, die Klaus angestellt hat, treffen leider nicht zu. Der einzige Grund, den ich noch für möglich halte, ist, dass er vielleicht doch im falschen Ordner sucht.
Ich habe im Quellcode ein paar Zeilen Code ergänzt. Es wird jetzt geprüft, ob die Fallback Sprache (Standardmäßig "en") im Ordner gefunden wurde. Falls nicht, wird eine Fehlermeldung mitsamt dem Ordnerpfad angezeigt.
Bitte zieh dir die Änderung aus GitHub und probiere es aus.
Wenn das nicht hilft, kannst du mir gern dein Projekt schicken. Ich werfe dann einen Blick drauf.
Man kann der Funktion lang_setLanguage(p_lang) entweder einen Index, die Kurzbezeichnung (z.B. "de"), den englischen Namen (z.B. "German") oder den Namen in der Sprache (z.B. "Deutsch") geben. Die Meldung kommt, wenn die zu setzende Sprache nicht gefunden wurde.
Nach allem, was du schreibst, dürfte es aber nicht passieren. Die Vermutungen, die Klaus angestellt hat, treffen leider nicht zu. Der einzige Grund, den ich noch für möglich halte, ist, dass er vielleicht doch im falschen Ordner sucht.
Ich habe im Quellcode ein paar Zeilen Code ergänzt. Es wird jetzt geprüft, ob die Fallback Sprache (Standardmäßig "en") im Ordner gefunden wurde. Falls nicht, wird eine Fehlermeldung mitsamt dem Ordnerpfad angezeigt.
Bitte zieh dir die Änderung aus GitHub und probiere es aus.
Wenn das nicht hilft, kannst du mir gern dein Projekt schicken. Ich werfe dann einen Blick drauf.
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
Re: lang() - Mache deine Skripte multilingual
Hallo Leute,
Danke euch, danke dir bichlepa!! Es lag daran das der Pfad nicht gefunden wurde, dank deiner kleinen ergänzung konnt ich es dann doch nachvollziehen Tut mir leid das ich doch nicht ganz recht nachgeschaut habe. Jetzt funktioniert wieder alles.
Achja ich wollt somit auch nochmal danke sagen für deine geniale lang() Funktion
Einen schönen Tag euch allen!
Bis dann.
Ralf
Danke euch, danke dir bichlepa!! Es lag daran das der Pfad nicht gefunden wurde, dank deiner kleinen ergänzung konnt ich es dann doch nachvollziehen Tut mir leid das ich doch nicht ganz recht nachgeschaut habe. Jetzt funktioniert wieder alles.
Achja ich wollt somit auch nochmal danke sagen für deine geniale lang() Funktion
Einen schönen Tag euch allen!
Bis dann.
Ralf
Re: lang() - Mache deine Skripte multilingual
Also, bichlepa, erstmal ein großes Lob und ein DICKES DANKEEEEE für diese klasse Arbeit.
Ich konnte es leider erst jetzt mal so richtig ausprobieren muss aber sagen, dass dieses Tool wirklich sehr nützlich und auch einfach zu implementieren ist.
Auch das Video ist, dafür dass es das erste war, gut gelungen.
Weiter so.
Grüße,
Gucky.
Ich konnte es leider erst jetzt mal so richtig ausprobieren muss aber sagen, dass dieses Tool wirklich sehr nützlich und auch einfach zu implementieren ist.
Auch das Video ist, dafür dass es das erste war, gut gelungen.
Weiter so.
Grüße,
Gucky.
Return to “Skripte und Funktionen”
Who is online
Users browsing this forum: No registered users and 2 guests