Translation Handling (OC4)

Version vom 6. Mai 2024, 18:33 Uhr von Fraggle (Diskussion | Beiträge) (Erstentwurf)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Dokumentationen/Links


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

  1. In crowdin einloggen und noch nicht übersetzte Texte übersetzen
  2. 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.