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
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: ";"
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.
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.
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.
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