Autor Thema: Strings/Übersetzungen  (Gelesen 2001 mal)

Offline flopp

  • Vereinsmitglied
  • Normal
  • *
  • Beiträge: 1010
  • OC-Clean-Team/Support/Entwicklung
    • Flopps Tolles Blog
Strings/Übersetzungen
« am: 12. August 2012, 23:02:12 »
Zu übersetzende Strings im PHP-Code sind ja mit "{t}String{/t}" markiert.

Wie ist das Vorgehen, wenn ich einen neuen String einführen möchte, kann ich dann einfach "{t}New String{/t}" schreiben? Woher kommt die Übersetzung?

following

  • Gast
Re: Strings/Übersetzungen
« Antwort #1 am: 13. August 2012, 01:35:37 »
Die Übersetzung kannst du über das Admin/Translation-Interface eingeben.

1. Sicherstellen, dass du den aktuellen master-Codestand hast und die aktuelle data.sql eingelesen hast.
2. Den neuen String per {t}New String{/t} in das Template einbauen.
3. http://local.opencaching.de/oc-server/server-3.0/htdocs/translate.php (= Admin-Knopf oben im Menü)
4. Schnellübersetzung: Aktivieren - neue
5. Die Seite mit dem Template aufrufen und rechts neben dem neuen Text auf "Edit" klicken.
6. Die Übersetzung für die aktuell gewählte Sprache eingeben und speichern.
7. "SQL Export" wählen

Nun ist dein neuer Text in htdocs/doc/sql/static-data/data.sql eingetragen, und du kannst die Datei mit "git add" zu deinen Änderungen hinzufügen.

Falls deine Tabellenstrukturen noch nicht auf dem exakten Master-Stand sind, wirst du auch diverse geänderte Dateien in htdocs/doc/sql/tables bekommen. Die dann bitte mit "git checkout -- htdocs/doc/sql/tables" wegwerfen.

Das Ganze funktioniert natürlich nur bei sichtbaren Texten. Wenn sie bedingt angezeigt werden (z.B. Fehlermeldungen) musst du sie zum Übersetzen sichtbar machen.

Falls du bei einem späteren "fetch/rebase" einen Merge-Konflikt in der Prüfsumme am Ende von data.sql bekommst, wirfst du einfach eine der beiden Versionen weg. Für die richtige Prüfsumme zu sorgen ist meine Aufgabe.
« Letzte Änderung: 13. August 2012, 01:38:29 von following »

oliver

  • Gast
Re: Strings/Übersetzungen
« Antwort #2 am: 13. August 2012, 11:26:08 »
Das Ganze funktioniert natürlich nur bei sichtbaren Texten. Wenn sie bedingt angezeigt werden (z.B. Fehlermeldungen) musst du sie zum Übersetzen sichtbar machen.

Alternativ kann man auch den Punkt "Quelltext durchsuchen" ausführen ... dann sucht ein Skript alle .tpl-Dateien ab und sucht nach {t}...{/t} Mit "Neue Übersetzungen anzeigen" kann man dann alle in der aktuellen Sprache noch nicht übersetzten Strings anzeigen lassen.

So kann man z.B. auch Strings übersetzen, die im PHP-Dateien per _t()-Funktion übersetzt werden (gibt es aber nicht viele) oder Strings die in den Datenbank-Lookup-Tabellen wie z.B. cache_status drin sind.

Offline flopp

  • Vereinsmitglied
  • Normal
  • *
  • Beiträge: 1010
  • OC-Clean-Team/Support/Entwicklung
    • Flopps Tolles Blog
Re: Strings/Übersetzungen
« Antwort #3 am: 14. August 2012, 20:24:39 »
Ok. Ich hoffe das funktioniert auch für "t(...)", davon wimmelt es nämlich in "newcache.inc.php".

Was passiert denn, wenn ich bei einer bestehenden Übersetzung das englische Original in der PHP-Datei ändere, z.B.

t('Your chosen coordinated are invalid')in
t('The chosen coordinates are invalid')?

Dann bleibt doch wohl der alte String in der Übersetzungsdatenbank und der geänderte String muss neu übersetzt werden?

oliver

  • Gast
Re: Strings/Übersetzungen
« Antwort #4 am: 14. August 2012, 20:39:01 »
Ok. Ich hoffe das funktioniert auch für "t(...)", davon wimmelt es nämlich in "newcache.inc.php".

Ja, sorry t() ist richtig bzw. $translate->t() im Smarty-Code.

Dann bleibt doch wohl der alte String in der Übersetzungsdatenbank und der geänderte String muss neu übersetzt werden?

Genau :)
Die alte Übersetzung findest du dann unter "Übersetzung ohne Referenz anzeigen"

Wichtig ist, dass du dann alle übersetzten Sprachen übernimmst und nicht nur eine ...

Möglichkeit 1: XML-Export, im XML von der alten Stelle an die neue kopieren und XML-Import

Möglichkeit 2: Auf der Übersetzungsseite ist ganz unten der Text "Vorhandene Übersetzungen verwenden" ... da wurden am Anfang mal alle vorhandenen Übersetzungen angezeigt. Das ist aber recht lahm und deshalb hab ich es im Quellcode von translate.php auskommentiert. Kannst du ja kurzzeitig wieder aktivieren. Wenn wir das öfters brauchen, müsste man es über ein Popup mit Suchfunktion lösen.

following

  • Gast
Re: Strings/Übersetzungen
« Antwort #5 am: 15. August 2012, 01:58:22 »
Zitat
Außerdem habe ich die englischen Originalfehlermeldungen ein bisschen verschönert; die Übersetzungen fehlen noch.

Achtung, das sind (in aller Regel) nicht die englischen Meldungen, sondern nur Referenzen für die Übersetzung. Für die englische Sprachauswahl existieren nochmals separate "Übersetzungen" der Strings, die in den Templates stehen. Diese Originale werden nur dann angezeigt, wenn man eine Sprache wählt für die die Übersetzung fehlt.

following

  • Gast
Re: Strings/Übersetzungen
« Antwort #6 am: 24. August 2012, 15:14:45 »
Alamostrail übernimmt die spanischen Übersetzungen und farina09 die italienischen. Ihr braucht euch dabei um nichts weiter zu kümmern; das organisiert sinnvollerweise der Entwicklungsleiter.

Wenn ihr englische Basistexte in Templates ändert, so wie Florian es hier gemacht hat, seid ihr allerdings verantwortlich dafür, dass keine Übersetzunge verloren gehen. Am einfachsten ist es, bei einer Änderung gleich den entsprechenden sys_trans-Eintrag in doc/sql/static-data/data.sql mit zu ändern (einfach den alten Text suchen und durch den neuen ersetzen) - dann bleibt die ID und damit auch der Bezug zu den bestehenden Übersetzungen erhalten.

Wegen des zusätzlichen Aufwandes lohnen sich solche Änderungen nur, falls der bisherige englische Basistext missverständlich ist. Rechtschreib- und Semantikfehler sind egal; das wird durch die zusätzlichen englischen "Übersetzungen" der Basistexte ausgebügelt.

following

  • Gast
Re: Strings/Übersetzungen
« Antwort #7 am: 24. August 2012, 15:49:42 »
Am einfachsten ist es, bei einer Änderung gleich den entsprechenden sys_trans-Eintrag in doc/sql/static-data/data.sql mit zu ändern

... und dann natürlich noch die englische Übersetzung prüfen - dort kann noch der alte Text stehen!

following

  • Gast
Re: Strings/Übersetzungen
« Antwort #8 am: 05. April 2013, 00:31:18 »
... (so lange ich keine uebersetzungen machen muss ::) )

Die Übersetzung sollten eh nur einer machen, das gibt sonst endlose Merge-Konflikte in data.sql. Alle anderen dürfen Radebrech-Englisch-Code schreiben - das läuft dann auch nochmal durch eine Übersetzungstabelle in echtes English :)

Schrottie

  • Gast
Re: Strings/Übersetzungen
« Antwort #9 am: 05. April 2013, 04:17:11 »
Alle anderen dürfen Radebrech-Englisch-Code schreiben ... :)

Das klingt irgendwie nach dem, was ich immer so mache. ;)