Il file .phrase.yml
viene utilizzato per memorizzare argomenti della riga di comando riutilizzati.
Argomenti supportati:
-
project_id
L’ID di un progetto.
-
file_format
Il formato di file usato quando non ne viene specificato uno esplicitamente all'interno delle voci di origine e destinazione.
-
per_page
Il numero di elementi restituiti nelle risposte impaginate.
File di configurazione di esempio.
Push
$ phrase push
Il comando push
carica i file trovati nelle directory di progetto locali. Usa il file .phrase.yml
per specificare i file da caricare e impostare eventuali parametri aggiuntivi. Il <tag>
segnaposto può anche essere utilizzato per scaricare chiavi in file separati in base ai tag.
Pull
$ phrase pull
Simile al comando push
, ad eccezione del fatto che non è possibile utilizzare la funzionalità di globbing. Quando usi i segnaposto, usa <locale_name>
ogni volta che è possibile. Per utilizzare il comando pull su un file con chiavi che hanno un tag specifico, usa il parametro tag
:
phrase: pull: targets: - file: path/to/file/<locale_name>.yml params: tags:tag_name
Per usare il <tag>
segnaposto, i tag desiderati devono essere elencati nella sezione params
.
Parametri
I comandi push
e pull
possono essere configurati all'interno del file .phrase.yml
. Le opzioni di push sono le stesse dell'endpoint API dei caricamenti
e le opzioni pull sono le stesse dell'endpoint API dei download della lingua
.
Esempio di push:
push: sources: - file: ./locales/en.json params: update_translations: true
Esempio di pull:
pull: targets: - file: "./locales/example.yml" params: include_unverified_translations: true
A seconda del formato di file, è possibile applicare alla sezione dei parametri opzioni relative al formato. Le opzioni di formato possono essere applicate ai caricamenti, ai download o a entrambi.
Esempi di formato:
params: format_options: convert_placeholder: true
Alcuni formati di file consentono un maggiore controllo della sintassi dei file:
phrase: pull: targets: - file: file.xml params: format_options: convert_placeholder: true push: sources: - file: file.csv params: format_options: column_separator: ";"
I seguenti segnaposto e operatori di globbing possono essere inseriti nei percorsi all'interno delle voci dei file:
-
<locale_name>
Il nome univoco della lingua.
-
<locale_code>
L'identificatore della lingua corrispondente a RFC 5646. Il codice della lingua non deve essere univoco, quindi possono esistere più lingue con nomi diversi identificate dallo stesso codice.
-
<tag>
Usa i tag per raggruppare le chiavi. I tag possono essere usati per mantenere la struttura originale dei file.
Globbing
*
e **
sono operatori di globbing. Un singolo asterisco *
salta qualsiasi cartella in un percorso. Il doppio asterisco **
rappresenta l'operatore di globbing standard e corrisponde a qualsiasi carattere per una corrispondenza ricorsiva e non esaustiva.
Esempi:
# a file pattern ./abc/**/*.yml
# with a few files on your system ./abc/defg/en.yml ./abc/es.yml ./fr.yml
# selects ./abc/defg/en.yml ./abc/es.yml
Quando utilizzi il comando pull
per scaricare dei file, indica un modello di file esplicito come ./abc/defg/<locale_name>.yml
invece di ./**/*.yml
.
Tutti i caricamenti vengono elaborati in modo asincrono. Per attendere i caricamenti, applica il flag --wait
. Il push
aspetterà che ogni file venga caricato e comunicherà la riuscita o la mancata riuscita dell’operazione.
Caricare un file in una lingua specifica
Carica il file en.json
nella directory ./locales/
con il locale_id
specificato (la lingua deve esistere già).
Update_translations
è impostato su false, quindi vengono importate solo chiavi e traduzioni nuove. Se impostato su true, il client importerebbe anche modifiche locali alle traduzioni esistenti, sovrascrivendo qualsiasi contenuto già presente.
phrase: access_token: ACCESS_TOKEN project_id: PROJECT_ID file_format: nested_json push: sources: - file: ./locales/en.json params: update_translations: false locale_id: YOUR_LOCALE_ID # the locale must exist remotely
Nota
Non è possibile eliminare voci di traduzione importate. Se necessario, aggiorna le traduzioni ai valori empty
tramite l'endpoint API rilevante.
Ruby on Rails: caricamento del tipo di file specificato
Carica tutti i file che terminano con .yml
situati in ./config/locales/
. I file YAML di Ruby on Rails contengono informazioni sulla lingua, quindi non è necessario specificare esplicitamente la lingua. Update_translations
è impostato su true, quindi tutte le modifiche alle traduzioni verranno importate sovrascrivendo tutti i dati esistenti.
phrase: push: sources: - file: ./config/locales/*.yml params: update_translations: true file_format: yml
Abbinamento delle stringhe di iOS
Per abbinare tutti i file delle stringhe di iOS con i file denominati Localizable.strings
nelle cartelle .lproj
.
<locale_code>
è tutto ciò che corrisponde dopo di /
e prima di .lproj
per creare e identificare le lingue.
Il parametro update_translations
viene omesso e ha lo stesso effetto dell'impostazione su false.
phrase: push: sources: - file: "./<locale_code>.lproj/Localizable.strings" params: file_format: strings
Mantenere più progetti Strings per un progetto di localizzazione
Modifica il file di configurazione per limitare l'ambito dei progetti dividendo le traduzioni in categorie più piccole.
Modifica il file di configurazione per adattarlo ai requisiti, quindi verificalo nel sistema di controllo dell’origine o della versione.
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"
Stringhe 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 can be overwritten file_format: "stringsdict"
XML per Android
Android non usa i codici di linguaggio ISO standard come modello di file. Specifica il modello richiesto in .phrase.yml
.
phrase: access_token: ACCESS_TOKEN project_id: PROJECT_ID file_format: "xml" push: sources: - file: "./res/values-<locale_code>/strings.xml" pull: targets: - file: "./res/values-<locale_code>/strings.xml"
Esempio con l'inglese come lingua predefinita, una lingua tedesca e una lingua di regione tedesca per tedesco austriaco:
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 # Unique locale id for English locale_id: LOCALE_ID - file: ./app/src/main/res/values-de/strings.xml params: file_format: xml # Unique locale id for German locale_id: LOCALE_ID - file: ./app/src/main/res/values-de-rAU/strings.xml params: file_format: xml # Unique locale id for Austrian 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