Translation Handling (OC4)
Dokumentationen/Links
- Crowdin Import-/Exporttool: support.crowdin.com/cli-tool
- Symfony-Doku: https://symfony.com/doc/current/translation.html
- Variable Texte übersetzen (ICU Message format): https://symfony.com/doc/current/translation/message_format.html
Befehle
Anzeigen der Hilfe zum Symfony-Übersetzungstool
./psh.phar docker:ssh cd htdocs_symfony/ php bin/console translation:update --help
Auflistung der zur Übersetzung anstehenden Textstellen (exportiert nicht, sondern listet nur auf..)
./psh.phar docker:ssh cd htdocs_symfony/ php bin/console translation:update --dump-messages en
Markierung der zu übersetzenden Textstellen in Twigtemplates. Das erste Beispiel ist die zu bevorzugende Variante.
{{{ 'The quick brown fox jumps over the lazy dog' | trans }} {% trans %}The quick brown fox jumps over the lazy dog{% endtrans %}
HowTo: Ablauf für Export der Texte vom Server zu Crowdin und Re-Import der übersetzten Texte
Lokale Installation von crowdin (einmalig)
Erstinitialisierung von crowdin (einmalig)
- im lokalen git-Verzeichnis ausführen:
crowdin init
- Die dabei abgefragte Project-ID ist in den Projekteigenschaften des Crowdin-Projekts zu finden
- Anpassen der Datei /crowdin.yml
- Die wichtigsten Einstellungen sind "source" und "translation", zum Beispiel wie folgt
files: [ { # # Source files filter # e.g. "/resources/en/*.json" # "source" : "/htdocs_symfony/translations/*.en.yml", # # Where translations will be placed # e.g. "/resources/%two_letters_code%/%original_file_name%" # "translation" : "/htdocs_symfony/translations/%original_file_name%.%two_letters_code%.yml", "translation_replace": { "messages+intl-icu.en.yml.": "messages+intl-icu." } .. ]
Export der zu übersetzenden Texte vom Server
im lokalen git-Verzeichnis ausführen:
./psh.phar docker:ssh cd htdocs_symfony/ php bin/console translation:update --dump-messages --output-format=yml --force en exit
Die exportierten Texte finden sich nun in *.yml
-Dateien im Pfad /htdocs_symony/translations
wieder
Hochladen der zu übersetzenden Texte nach Crowdin
im lokalen git-Verzeichnis ausführen: crowdin upload sources
Übersetzung und Validierung in Crowdin
- In crowdin einloggen und noch nicht übersetzte Texte übersetzen
- In crowdin einloggen und übersetzte Texte validieren
Download der übersetzten Texte aus Crowdin
im lokalen git-Verzeichnis ausführen: crowdin download
Import der übersetzten Texte auf den Server
Die Übersetzungen werden von Symfony automatisch genutzt, je nach eingestellter %locale% Variable
Behelfsweise kann %locale% auf eine andere Sprache umgestellt werden, indem der Wert 'default_locale' in der Datei /htdocs_symfony/config/packages/translation.php
von 'en' auf z.B. 'de' umgestellt wird.