Translation Handling (OC4)


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)

  1. siehe https://support.crowdin.com/cli-tool/#installation

Erstinitialisierung von crowdin (einmalig)

  1. im lokalen git-Verzeichnis ausführen: crowdin init
    Die dabei abgefragte Project-ID ist in den Projekteigenschaften des Crowdin-Projekts zu finden
  2. 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

  1. 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
  2. Die exportierten Texte finden sich nun in *.yml-Dateien im Pfad /htdocs_symony/translations wieder

Hochladen der zu übersetzenden Texte nach Crowdin

  1. im lokalen git-Verzeichnis ausführen: crowdin upload sources

Übersetzung und Validierung in Crowdin

  1. übersetzen
  2. validieren

Download der übersetzten Texte aus Crowdin

  1. im lokalen git-Verzeichnis ausführen: crowdin download

Import der übersetzten Texte auf den Server

  1. Die Übersetzungen werden von Symfony automatisch genutzt, je nach eingestellter %locale% Variable
  2. 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.