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.