lang() - Mache deine Skripte multilingual

Veröffentliche deine funktionierenden Skripte und Funktionen

Moderator: jNizM

User avatar
bichlepa
Posts: 153
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

lang() - Mache deine Skripte multilingual

27 May 2017, 14:31

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.
Image

Hier geht es zum GibHub Projekt.

Dort sind mehrere Demonstrationsskripte, anhand deren erklärt wird, wie lang() benutzt wird.
Screenshot von einem der Demos:
Image Image

Tutorial:
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.
User avatar
Gucky_87
Posts: 227
Joined: 03 Jul 2014, 05:09

Re: lang() - Mache deine Skripte multilingual

08 Jun 2017, 20:07

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.
User avatar
bichlepa
Posts: 153
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: lang() - Mache deine Skripte multilingual

09 Jun 2017, 04:56

Ja, es ist möglich, jede beliebige Sprache hinzuzufügen. (Auch Klingonisch) :D
Ländercode wird nirgends benötigt.
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
User avatar
Gucky_87
Posts: 227
Joined: 03 Jul 2014, 05:09

Re: lang() - Mache deine Skripte multilingual

09 Jun 2017, 05:12

Nein, klingonisch ist mir zu schwer....
Aber Du bist dicht dran XD XD - Nur etwas 'blauer' (grins).
Guest

Re: lang() - Mache deine Skripte multilingual

11 Aug 2017, 04:19

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
User avatar
kdaube
Posts: 30
Joined: 02 Nov 2015, 03:11

Re: lang() - Mache deine Skripte multilingual

11 Aug 2017, 04:22

Wunderful, superb!
Endlich muss ich nicht mehr mehrere sprachversionen von skripten warten!

Ein 3-faches Hoch!
Klaus Daube, Zürich
Klaus Daube, Zürich, CH
User avatar
kdaube
Posts: 30
Joined: 02 Nov 2015, 03:11

Re: lang() - Mache deine Skripte multilingual

11 Aug 2017, 10:26

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...
Last edited by kdaube on 11 Aug 2017, 11:45, edited 1 time in total.
Klaus Daube, Zürich, CH
just me
Posts: 5396
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: lang() - Mache deine Skripte multilingual

11 Aug 2017, 10:36

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.
User avatar
kdaube
Posts: 30
Joined: 02 Nov 2015, 03:11

Re: lang() - Mache deine Skripte multilingual

11 Aug 2017, 11:45

Aha, wieder einmal Windows...
Danke für den hinweis - ich vergesse das immer wieder.
Klaus Daube, Zürich, CH
User avatar
bichlepa
Posts: 153
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: lang() - Mache deine Skripte multilingual

11 Aug 2017, 14:01

Erstmal, danke für den Lob! :superhappy:

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 :shifty: )

Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
User avatar
kdaube
Posts: 30
Joined: 02 Nov 2015, 03:11

Re: lang() - Mache deine Skripte multilingual

12 Aug 2017, 02:28

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.
Klaus Daube, Zürich, CH
BoBo
Posts: 2515
Joined: 13 May 2014, 17:15

Re: lang() - Mache deine Skripte multilingual

12 Aug 2017, 04:42

bichlepa wrote:...
Ich habe gerade ein kleines Tutorial gedreht, bei ich zeige, wie man am praktischsten damit arbeitet. (Es ist mein allererstes Tutorial :shifty: )

Schönes vTut! lang("Merci") fürs lang("sharing") :thumbup:
Gast29

Re: lang() - Mache deine Skripte multilingual

16 May 2018, 12:45

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
User avatar
kdaube
Posts: 30
Joined: 02 Nov 2015, 03:11

Re: lang() - Mache deine Skripte multilingual

17 May 2018, 04:01

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
Klaus Daube, Zürich, CH
User avatar
bichlepa
Posts: 153
Joined: 15 Aug 2014, 06:44
GitHub: bichlepa
Contact:

Re: lang() - Mache deine Skripte multilingual

17 May 2018, 10:26

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.
Scripting is too complicated? Try AutoHotFlow, the graphical automation tool! Written in AutoHotkey.
Ralf29

Re: lang() - Mache deine Skripte multilingual

19 May 2018, 08:07

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

Return to “Skripte und Funktionen”

Who is online

Users browsing this forum: No registered users and 2 guests