NEWS
Gulp ist kein Hexenwerk - Auto translation
-
Hallo Allerseits,
ich möchte mal kurz Werbung für gulp machen, denn wir haben es inzwischen so weit perfektioniert, dass alle Übersetzungen automatisch generiert werden. Ihr müsst also nur noch das englische Wort hinzufügen, gulp starten und schon habt ihr alle Übersetzungen in der words.js drin. Was muss man dafür tun?
In der package.json müssen "gulp": "^4.0.0" und "axios": "^0.18.0" hinzugefügt werden:
"dependencies": { ... }, "devDependencies": { ... "gulp": "^4.0.0", "axios": "^0.18.0" }, "main": "main.js",
Dann eure alte gulpfile.js durch diese ersetzen: https://raw.githubusercontent.com/iobro … ulpfile.js
Und im Ordner lib, diese Datei hinzufügen: https://raw.githubusercontent.com/iobro ... b/tools.js
Wenn ihr jetzt auf der console: npm install eingibt, wird gulp installiert und der Spaß kann beginnen...
Achtung! Damit die nächsten Schritte funktionieren, muss die words.js entweder im Ordner admin oder unter admin/js sein...
Dieser Schritt muss nur ein einziges Mal ausgeführt werden: Auf der console gebt ihr "gulp adminWords2languages" -> das führt dazu, dass ein Ordner i18n unter admin erstellt wird. Dort befinden sich die Übersetzungen in alle möglichen Sprachen. Wenn jetzt ein neues Wort dazu kommt, muss dieser NUR in der Datei i18n/en/translations.json hinzugefügt werden, alles andere macht gulp.
Ab jetzt müsst ihr also immer nur die Datei i18n/en/translations.json pflegen und wenn ihr fertig seid, auf der console "gulp translateAndUpdateWordsJS" eingeben. Dadurch werden alle Wörter in der i18n/en/translations.json in den anderen Sprachen übersetzt und schließlich in die words.js übernommen.
gulp translateAndUpdateWordsJS übersetzt auch die io-package news, titleLang und desc. Dafür müsst ihr in der io-package nur der englische Text angeben und alles andere macht gulp für euch.
Sooo…. Dann probiert es mal aus und wenn noch Fragen sind, dann einfach melden.
Nachtrag: Wenn man zu oft übersetzen lässt, weigert sich dann Google und bringt ein Fehler 503. Man muss dann halt eine Zeit warten, dann geht alles wieder.
Nachtrag 2: Da man bei größere Übersetzungen mit Google Probleme bekommt, habe ich den kostenlosen Yandex Übersetzer eingebaut. Um Yandex nutzen zu können braucht man eine API Key (https://translate.yandex.com/developers) und kann diese für die Übersetzung nutzen mit:
gulp translateAndUpdateWordsJS --yandex MEINEAPIKEYHIEREINGEBEN
Grüße,
ldittmar
-
sehr cool! Ich habe es gerade einmal mit dem https://github.com/schmupu/ioBroker.asterisk Adapter getestet. Funktioniert wunderbar!
-
Ich finde es auch genial und benutze es sehr gern!
Sent from my iPhone using Tapatalk
-
Hallo allerseits,
um das Problem mit der Anzahl der Übersetzungen mit Google zu umgehen, habe ich in der neueste Version der gulpfile (Date: 2019-01-28) den yandex translator eingebaut. Um Yandex nutzen zu können braucht man eine API Key (https://translate.yandex.com/developers) und kann diese für die Übersetzung nutzen mit "gulp translateAndUpdateWordsJS –yandex MEINEAPIKEYHIEREINGEBEN"
-
Hallo ldittmar
Übersetzungen sind ein schwieriges Thema. Bis jetzt müssen wir Adapter Entwickler mit Google/Yandex übersetzen und dann "native speaker" im GIT Korrekturen per PR einbringen. Bei meinem aktuellen Arbeitgeber sind wir von einem teilweise manuellen Prozess (mit Excel-Listen!) auf https://weblate.org/en/ umgestiegen.
Die Installation und Konfiguration war innert wenigen Stunden erledigt und nun können wir alle Übersetzungen in einem Online Tool pflegen - wenn nötig auch mit externen Übersetzern. Wir sind schon nach wenigen Wochen begeistert - der Prozess benötigt keine manuellen Schritte mehr für die Entwickler!
Wäre das nicht ein interessantes Tool für all die Übersetzungen von Adaptern? Es liesse sich auch jeder Adapter mit seinem eigenen GitHub Repo einbinden (sofern die entsprechenden Autoren einverstanden sind).
Wenn das Interesse vorhanden ist, kann ich auch noch etwas detaillierter über das Tool berichten und euch bei der Inbetriebnahme / Integration helfen.
/UncleSam
-
Sieht interessant aus, der Preis leider nicht
Sent from my iPhone using Tapatalk
-
@Dutchman Der Preis ist nur, wenn man es nicht selber hostet.
Es ist Open Source und wie gesagt innert kürzester Zeit eingerichtet. Ich gehe davon aus, dass ioBroker schon eine gewisse Server Infrastruktur (respektive Cloud Infrastruktur) hat, damit würde der Preis aus meiner Sicht 0 € betragen.
-
@UncleSam said in Gulp ist kein Hexenwerk - Auto translation:
@Dutchman Der Preis ist nur, wenn man es nicht selber hostet.
Es ist Open Source und wie gesagt innert kürzester Zeit eingerichtet. Ich gehe davon aus, dass ioBroker schon eine gewisse Server Infrastruktur (respektive Cloud Infrastruktur) hat, damit würde der Preis aus meiner Sicht 0 € betragen.
Danke! Das habe ich falsch verstanden nochmal geschaut und Sinn hosting plans
-
@ldittmar : wie siehst du das? Wäre das eine Option für das ioBroker Team?
-
@UncleSam äußerst interessant, ist halt nur die Frage wie aufwändig ist die Administration und Einrichtung von Weblate.
Was mich noch interessiert wie kommen die Übersetzungen nach ioBroker bzw. in die Adapter?
-
Die Einrichtung ist keine grosse Sache; ein Aufwand besteht natürlich pro GIT Repo, das man anhängen will (für uns: pro Adapter).
Weblate nimmt die Übersetzungen direkt aus dem GIT und kann sie auch wieder ins GIT zurückspielen. Für GitHub gibt es die Möglichkeit über Pull Requests: https://docs.weblate.org/en/latest/vcs.html#github Damit muss Weblate nicht einmal spezielle Rechte für ein Repository haben.
Wie gesagt bin ich gerne bereit, bei der Umsetzung zu helfen und würde das auch einfach mal mit einem meiner Adapter testen, bevor wir das "ausrollen" würden. Ich will nur nicht für mich eine "Insellösung" erarbeiten, wenn wir gleich eine Lösung für (fast) alle bauen können.
-
Cool wäre sowas durchaus. Die automatische Übersetzungen sind schon eine Hilfe, aber "not the yellow from the egg" - wenn jemand sowas aufsetzen kann, bin ich dabei.
-
@Bluefox Was ist deine Meinung zu Weblate? Wäre es möglich auf der ioBroker Server Infrastruktur noch einen Service für Weblate aufzusetzen? Weblate läuft am einfachsten als Docker Compose (zumindest aus meiner Sicht), falls du schon einen Server mit Docker hast, wäre das in kürzester Zeit aufgesetzt.
-
Ich habe jetzt die Zugangsdaten für neuen Server an stabilostick Gegeben.
-
Irgendwie steh ich auf dem Schlauch..ich hab wie oben erwähnt das package.json angepasst, dann das gulpfile sowie das tools file eingefügt, und danach im root ordner npm install laufen lassen - es hat den ordner npm modules erzeugt. Wenn ich danach "gulp adminWords2languages" im terminal eingebe, dann bekomme ich nur "gulp: command not found"...hat hier jemand eine Idee?
-
@jackblackson noch manuell "npm i gulp-cli -g" aufrufen.
-
@Bluefox danke..hab ich gemacht, nun bekomme ich zwar eine andere Meldung, aber ist immer noch nicht sehr schön...words.js Datei besteht, und ich hab auch grad nochmal die gulp datei abgeglichen:
Sagt dir das was?Kann das an der gulp Version liegen? Wenn ich die Module aus dem npm-modules ordner lösche und dann npm install mache, installiert er mir gulp 4.0.2..obwohl im package.json 4.0.0 drinnen ist..
-
@jackblackson Bitte Node 8 verwenden
-
@Bluefox Danke, das hat geholfen!
-
Hi,
bei mir läuft die Übersetzung irgendwie nicht mehr richtig. Habe jetzt schon echt viel probiert, aber komme nicht weiter.Was problemlos klappt, ist die Übersetzung von io-package.json.
Aber neue Wörter in den i18n-Dateien im admin-Ordner werden nicht mehr übersetzt:
Ich habe neue Übersetzungen in den translations.json für deutsch und englisch eingefügt. Wenn ich dann gulp drüberlaufen lasse, werden in den anderen Sprachen für die entsprechenden Begriffe immer nur zwei Anführungszeichen eingefügt, nicht die Übersetzung.Habe mit viel Mühe alle leeren Übersetzungen wieder gelöscht und alles noch mal neu probiert - gleiches Ergebnis. Mit google und mit Yandex.
Kann mir jemand helfen?
Anbei meine i18n-Dateien.
Vielen Dank!