CLI

Modifier le fichier de configuration CLI (Strings)

Le contenu est traduit de l’anglais par Phrase Language AI.

Commandes Push et Pull

Push

$ phrase push 

La commande push charge les fichiers trouvés dans les répertoires de projet locaux. Utilisez le fichier .phrase.yml pour spécifier les fichiers à charger et définir tout paramètre supplémentaire. L'espace réservé <tag> peut également être utilisé pour télécharger des clés dans des fichiers séparés en fonction de leurs balises.

Pull

$ phrase pull 

Fonctionne comme la commande push à ceci près qu'il n'est pas possible d'utiliser les caractères génériques (globbing). En cas d'utilisation d'espaces réservés, utilisez <locale_name> chaque fois que possible. Pour exécuter la commande pull sur un fichier avec des clés ayant une balise spécifique, utilisez le paramètre tags :

phrase:
  pull:
    targets:
    - file: path/to/file/<locale_name>.yml
      params:
        tags:tag_name

Pour pouvoir utiliser l'espace réservé <tag>, les balises souhaitées doivent être listées dans la section params.

Paramètres

Les commandes push et pull peuvent être configurées dans le fichier .phrase.yml.

Remarque

Toutes les options de l'API chargements sont prises en charge pour la commande push.

Toutes les options de l'API téléchargement des locales sont prises en charge pour la commande pull.

Exemple de commande Push :

push:
  sources:
  - fichier: ./locales/en.json
    params:
      update_translations: true 

Exemple de commande Pull :

pull:
  targets:
  - fichier: "./locales/example.yml"
    params:
      include_unverified_translations: true

Options de format

Selon le format de fichier, les options de format peuvent être appliquées à la section des paramètres. Les options de format peuvent être appliquées aux chargements, aux téléchargements ou aux deux.

Exemples de formats :

params:
  format_options:
    convert_placeholder: true

Certains formats de fichiers permettent un plus grand contrôle sur la syntaxe des fichiers :

phrase:
  pull:
    targets:
    - fichier: file.xml
      params:
        format_options:
          convert_placeholder: true

  push:
    sources:
    - fichier: file.csv
      params:
        format_options:
          column_separator: ";"

Espaces réservés et globbing

Les espaces réservés et les opérateurs de globbing suivants peuvent être placés dans les chemins d'accès dans vos entrées de fichier :

  • <locale_name>

    Nom unique des paramètres régionaux.

  • <locale_code>

    Identifiant de paramètres régionaux conforme au RFC 5646. Le code des paramètres régionaux n'a pas besoin d'être unique, plusieurs paramètres régionaux avec des noms différents peuvent exister avec le même code.

  • <tag>

    Utilisez les balises pour regrouper des clés. Les balises peuvent être utilisées pour conserver la structure du fichier d'origine.

Globbing

* et ** sont des opérateurs de globbing. L'astérisque simple * saute tout dossier dans un chemin. Le double astérisque ** est comme l’opérateur de globbing standard et correspond à n’importe quel caractère pour une correspondance récursive et non exhaustive.

Exemples :

# un modèle de fichier

./abc/**/*.yml
# avec quelques fichiers sur votre système

./abc/defg/en.yml

./abc/es.yml

./fr.yml
# selects

./abc/defg/en.yml

./abc/es.yml

Lorsque vous utilisez la commande pull pour télécharger des fichiers, fournissez un modèle de fichier explicite tel que ./abc/defg/<locale_name>.yml au lieu de ./**/*.yml.

Attendre les chargements

Tous les chargements sont traités de manière asynchrone. Pour attendre les chargements, appliquez le drapeau --wait. La commande push attendra que chaque fichier soit chargé et reviendra en cas d'échec ou de succès.

Cas d'utilisation

Charger un fichier dans un répertoire de paramètres régionaux spécifié

Charger le fichier en.json dans le répertoire ./locales/ avec un identifiant locale_id spécifique (les paramètres régionaux doivent déjà exister).

L’option Update_translations étant définie sur false, seules sont importées les nouvelles clés et les traductions. Si cette option est définie sur true, le client importera également les modifications locales apportées aux traductions existantes, en écrasant tout contenu déjà présent.

phrase:
  access_token: ACCESS_TOKEN
  project_id: PROJECT_ID
  file_format: nested_json

  push:
    sources:
    - fichier: ./locales/en.json
      params:
        update_translations: false
        locale_id: YOUR_LOCALE_ID # le paramètre linguistique doit exister à distance

Remarque

Il n'est pas possible de supprimer les entrées de traduction importées. Si nécessaire, mettre à jour les traductions comme valeurs vides via le point de terminaison API qui convient.

Ruby on Rails : charger un type de fichier spécifié

Charger tous les fichiers se terminant par .yml se trouvant sous ./config/locales/. Les fichiers YAML Ruby on Rails contiennent des informations de paramètres régionaux. Il n’est donc pas nécessaire de spécifier explicitement les paramètres régionaux. L’option Update_translations étant définie sur true, toutes les modifications apportées aux traductions seront importées et toutes les données existantes seront écrasées.

phrase:
  push:
    sources:
    - file: ./config/locales/*.yml
      params:
        update_translations: true
        file_format: yml

Traiter les chaînes iOS

Pour traiter tous les fichiers de chaînes iOS avec les fichiers nommés Localizable.strings dans les dossiers .lproj.

<locale_code> englobe tout ce qui correspond après / et avant .lproj pour créer et identifier des paramètres régionaux.

Le paramètre update_translations est omis et l’effet est le même que s'il était défini sur false.

phrase:
  push:
    sources:
    - file: "./<locale_code>.lproj/Localizable.strings"
      params:
        file_format: strings

Assurer la maintenance de plusieurs projets Strings pour un projet de localisation

Modifiez le fichier de configuration pour limiter la portée des projets en divisant les traductions en catégories plus petites.

Exemples de configurations pour les frameworks

Modifiez le fichier de configuration en fonction des besoins, puis vérifiez-le dans le système de contrôle source ou de contrôle de version.

Rails

phrase:
  access_token: ACCESS_TOKEN
  project_id: PROJECT_ID
  file_format: "yml"

  push:
    sources:
    - file: "./config/locales/*.yml"

  pull:
    targets:
    - file: "./config/locales/<locale_name>.yml"

Chaînes iOS

phrase:

  access_token: ACCESS_TOKEN
  project_id: PROJECT_ID
  file_format: "strings"

  push:
    sources:
    - file: "./<locale_code>.lproj/Localizable.strings"

  pull:
    targets:
    - file: "./<locale_code>.lproj/Localizable.strings"
    - file: "./<locale_code>.lproj/Localizable.stringsdict"
      params:
        #file_format peut être remplacé
        file_format: "stringsdict"

XML pour Android

Android n’utilise pas les codes de langue ISO standard comme motif de fichier. Spécifiez le motif requis dans .phrase.yml.

Au lieu de définir une cible de récupération séparée pour chaque paramètre linguistique, utilisez le paramètre global locale_mapping combiné avec l’espace réservé <locale_name>. La CLI utilisera le nom personnalisé du mappage pour le paramètre linguistique correspondant et reviendra au code de langue Phrase par défaut pour toutes les autres langues.

Exemple :

phrase:
  access_token: ACCESS_TOKEN
  project_id: PROJECT_ID
  file_format: "xml"

  # Mapper les paramètres linguistiques Phrase aux noms de répertoire spécifiques à Android
  locale_mapping :
    en-US : values
    de-DE : values-de-rDE
    fr-FR : values-fr

  push:
    sources:
      # Le fichier source est la langue par défaut, mappé à 'values'
      - file: ./app/src/main/res/values/strings.xml
        params:
          locale_id: en-US # Doit correspondre au paramètre linguistique source dans Phrase

  pull:
    targets:
      # Utilisez l’espace réservé <locale_name> qui sera remplacé par le mappage
      - file: ./app/src/main/res/<locale_name>/strings.xml

Exemple de paramètres régionaux explicitement définis

Exemple avec l'anglais comme langue par défaut, des paramètres régionaux allemands et des paramètres linguistiques allemands pour l'allemand autrichien :

phrase:
  access_token: ACCESS_TOKEN
  project_id: PROJECT_ID
  file_format: xml
  
  pull:
    targets:
    - file: ./app/src/main/res/values/strings.xml
      params:
        file_format: xml
        # Identifiant unique de la locale pour l'anglais
        locale_id: LOCALE_ID
    - file: ./app/src/main/res/values-de/strings.xml
      params:
        file_format: xml
        # Identifiant unique de la locale pour l'allemand
        locale_id: LOCALE_ID
    - file: ./app/src/main/res/values-de-rAU/strings.xml
      params:
        file_format: xml
        # Identifiant unique de la locale pour l'autrichien
        locale_id: LOCALE_ID
  push:
    sources:
    - file: ./app/src/main/res/values/strings.xml
      params:
        file_format: xml
        locale_id: LOCALE_ID
    - file: ./app/src/main/res/values-de/strings.xml
      params:
        file_format: xml
        locale_id: LOCALE_ID
    - file: ./app/src/main/res/values-de-rAU/strings.xml
      params:
        file_format: xml
        locale_id: LOCALE_ID

Exemple multi-plateforme

Pousser et tirer automatiquement les traductions pour plusieurs cibles dans une seule configuration. 

phrase:
  access_token: ACCESS_TOKEN
  project_id: PROJECT_ID
  file_format: nested_json

  push:
    sources:
      # JSON Web
      - file: "apps/web/src/assets/i18n/.json"
        params:
          file_format: nested_json
          locale_id: LOCALE_ID
      # XML Android
      - file: "apps/android/app/src/main/res/values-/strings.xml"
        params:
          file_format: android
          locale_id: LOCALE_ID
      # Chaînes iOS
      - file: "apps/ios/.lproj/Localizable.strings"
        params:
          file_format: strings
          locale_id: LOCALE_ID

  pull:
    targets:
      - file: "apps/web/src/assets/i18n/.json"
        params:
          file_format: nested_json
          locale_id: LOCALE_ID
      - file: "apps/android/app/src/main/res/values-/strings.xml"
        params:
          file_format: android
          locale_id: LOCALE_ID
      - file: "apps/ios/.lproj/Localizable.strings"
        params:
          file_format: strings
          locale_id: LOCALE_ID
Cet article vous a-t-il été utile ?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.