File di configurazione

Introduzione

Crowdin CLI uses a configuration file that contains a description of the resources to manage: files to be uploaded into Crowdin Enterprise and the locations of the corresponding translations.

Per usare la CLI di Crowdin, dovresti prima generare il tuo file di configurazione e poi eseguire lo strumento. Di default, Crowdin CLI cerca un file di configurazione chiamato crowdin.yml (quindi non devi specificare il nome del file a meno che sia differente da crowdin.yml).

To create the configuration file, run the following command:

$ crowdin init

Struttura File Configurazione

A valid Crowdin CLI configuration file has the following structure, so please make sure that you fill out all the needed information:

  • Testa del file con credenziali del progetto, preferenze ed informazioni di accesso
  • Un elemento dell’insieme di file che descrive una serie di file risorsa e traduzione che gestirai
  • I campi richiesti nell’insieme di file: Risorsa che definisce i filtri per i file d’origine e Traduzione con le istruzioni su dove archiviare i file tradotti o dove cercare le traduzioni che hai già se vuoi caricarle durante la configurazione della CLI

Scrivete un Semplice File Configurazione

A typical configuration file looks similar to the following:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/locale/en/folder1/[0-2].txt",                                       #source files filter
    "translation": "/locale/%two_letters_code%/folder1/%original_file_name%"        #where translations are stored
  },
  {
    "source": "/locale/en/folder2/[0-2].txt",
    "translation": "/locale/%two_letters_code%/folder2/%original_file_name%"
  }
]

To run the above configuration file and upload source files to Crowdin Enterprise:

$ crowdin upload sources

Get translations from Crowdin Enterprise and put them in the right locations:

$ crowdin download

Credenziali API da Variabili Ambiente

Potresti caricare le Credenziali API da un ambiente variabile, per esempio:

"project_id_env": "CROWDIN_PROJECT_ID"
"api_token_env": "CROWDIN_PERSONAL_TOKEN"
"base_path_env": "CROWDIN_BASE_PATH"
"base_url_env": "CROWDIN_BASE_URL"

Se misti, api_token e project_id sono di priorità:

"project_id_env": "CROWDIN_PROJECT_ID"                # Low priority
"api_token_env": "CROWDIN_PERSONAL_TOKEN"             # Low priority
"base_path_env": "CROWDIN_BASE_PATH"                  # Low priority
"base_url_env": "CROWDIN_BASE_PATH"                   # Low priority
"project_id": "projectId"                             # High priority
"api_token": "personal-access-token"                  # High priority
"base_path": "/project-base-path"                     # High priority
"base_url": "https://{organization-name}.crowdin.com" # High priority

Dividi Configurazione Progetto e Credenziali API

Il file crowdin.yml contiene una descrizione delle risorse da gestire e delle credenziali API (project_id, api_token, base_path, base_url). It means that it’s unsafe to commit this file into the code repository because the API key would be accessible to other users. Crowdin CLI supports two types of configuration files:

  • una descrizione delle risorse da gestire, residenti nella directory del progetto
  • Credenziali API, probabilmente residenti in $HOME/.crowdin.yml
Note: API credentials from the .crowdin.yml configuration file have higher priority than credentials from the project directory(crowdin.yml).

If you need to run a command with user-specific credentials (for example, upload sources), run the following command:

$ crowdin upload sources --identity 'path-to-user-credentials-file'

But if user-specific credentials file residing in $HOME/.crowdin.yml you can run:

$ crowdin upload sources

Configurazione Generale

La configurazione campione fornita sopra ha attributi di risorsa e traduzione contenenti wildcard standard (anche note come globbing patterns) per rendere più facile lavorare con file multipli.

Ecco i pattern che puoi usare:

* (asterisco)

Represents any character in the file or directory name. If you specify a “*.json” it will include all files like “messages.json”, “about_us.json”, and anything that ends with “.json”.

** (asterisco doppio)

Corrispondi ricorsivamente ogni stringa (includendo le sub-directory). Nota che puoi usare ** sia nei modelli di traduzione che in quelli di origine. When using ** in the translation pattern, it will always contain a sub-path from the source for a certain file. For example, you can use source: ‘/en/**/*.po’ to upload all *.po files to Crowdin Enterprise recursively. Il modello di traduzione sarà ‘/%two_letters_code%/**/%original_file_name%’.

? (punto interrogativo)

Corrisponde ad ogni carattere singolo.

[set]

Abbina ogni carattere singolo in una serie. Si comporta esattamente come i set di caratteri in Regexp, incluso il set di negazione ([^a-z]).

\ (backslash)

Esce dal prossimo metacarattere.

Segnaposto

La CLI di Crowdin consente di usare i seguenti segnaposto per mettere le variabili appropriate nel nome file risultante:

Nome Descrizione
%original_file_name% Nome file originale
%original_path% Take parent folders names in Crowdin Enterprise project to build file path in the resulted bundle
%file_extension% Estensione file originale
%file_name% Nome file senza estensione
%language% Nome della lingua (es. Ucraino)
%two_letters_code% Codice linguistico ISO 639-1 (es., uk)
%three_letters_code% Codice linguistico ISO 639-2/T (es., ukr)
%locale% Locale (es., uk-UA)
%locale_with_underscore% Locale (es., uk_UA)
%android_code% Identificatore Locale Android usato per denominare le directory "values-"
%osx_code% Identificatore Locale OS X usato per denominare le directory ".lproj"
%osx_locale% OS X locale used to name translation resources (e.g., uk, zh-Hans, zh_HK)

Puoi anche definire il percorso per file nell’archivio risultante mettendo uno slash (/) all’inizio del pattern.

La tua opzione di traduzione può sembrare come: “/locale/%two_letters_code%/LC_MESSAGES/%original_file_name%”.

Uso delle Wildcards

Struttura dei file e directory sulla macchina locale:

- base_path | |-- folder |     | |     |-- 1.xml |     |-- 1.txt |     |-- 123.txt |     |-- 123_test.txt |     |-- a.txt |     |-- a1.txt |     |-- crowdin?test.txt |     |-- crowdin_test.txt | |-- 1.xml |-- 1.txt |-- 123.txt |-- 123_test.txt |-- a.txt |-- a1.txt |-- crowdin?test.txt |-- crowdin_test.txt |-- 3.txt

Esempio 1. Uso delle wildcard nel percorso d’origine:

#........la tua configurazione progetto........
"files": [
  {
      "source": "/**/?[0-9].txt", #upload a1.txt, folder/a1.txt
      "translation": "/**/%two_letters_code%_%original_file_name%"
  },
  {
      "source": "/**/*\\?*.txt",  #upload crowdin?test.txt, folder/crowdin?test.txt
      "translation": "/**/%two_letters_code%_%original_file_name%"
  },
  {
      "source": "/**/[^0-2].txt", #upload 3.txt, folder/3.txt, a.txt, folder/a.txt (ignore 1.txt, folder/1.txt)
      "translation": "/**/%two_letters_code%_%original_file_name%"
  }
]

Esempio 2. Uso di wildcard per ignorare i file:

#........la tua configurazione progetto........
"files": [
  {
    "source": "/**/*.*",                             #upload all files that  the base_path contains
    "translation": "/**/%two_letters_code%_%original_file_name%",
    "ignore": [
      "/**/%two_letters_code%_%original_file_name%", #ignore the translated files
      "/**/?.txt",                                   #ignore 1.txt, a.txt, folder/1.txt, folder/a.txt
      "/**/[0-9].txt",                               #ignore 1.txt, folder/1.txt
      "/**/*\\?*.txt",                               #ignore crowdin?test.txt, folder/crowdin?test.txt
      "/**/[0-9][0-9][0-9].txt",                     #ignore 123.txt , folder/123.txt
      "/**/[0-9]*_*.txt"                             #ignore 123_test.txt, folder/123_test.txt
    ]
  }
]

Mappatura Lingua

Spesso i progetti di software hanno nomi personalizzati per le directory locali. Crowdin Impresa ti consente di mappare le tue lingue per essere riconoscibile nei tuoi progetti.

Diciamo che le tue directory locali sono denominate ‘en’, ‘uk’, ‘fr’, ‘de’. Tutti loro possono essere rappresentato dal segnaposto %two_letters_code%. Ancora, hai una directory denominata ‘zh_CH’. To make it work with Crowdin Enterprise without changes in your project, you can set up Language Mapping. Puoi anche sovrascrivere i codici lingua per altri segnaposto come %android_code%, %locale%, etc.

You can set up Language Mapping either via the user interface (UI) or by adding a languages_mapping section to your file set. We recommend setting up a language mapping via UI since it eliminates the need for duplicating the languages_mapping parameter for each file filter, but of course, you can choose the option that works best for you.

To set up Language Mapping via UI, follow these steps:

  1. Apri le Impostazioni Progetto e scendi alla sezione Esportazione.
  2. Clicca Mappatura Lingua per aggiungere codici di lingua personalizzati alle lingue di destinazione del tuo progetto.

To set up Language Mapping in your configuration file, add the languages_mapping section to your file set as shown below.

Sample configuration:

"files": [
  {
    "source" : "/locale/en/**/*.po",
    "translation" : "/locale/%two_letters_code%/**/%original_file_name%",
    "languages_mapping" : {
      "two_letters_code" : {
        "uk" : "ukr",
        "pl" : "pol"
      }
    }
  }
]

Mapping format is the following: “crowdin_language_code” : “code_you_use”. Check the full list of Crowdin Enterprise language codes that can be used for mapping.

Rinominare File di Traduzioni

Se devi rinominare un file con traduzioni dopo l’esportazione, puoi facilmente farlo con l’aiuto del parametro translation_replsce.

For example, if the file is named “en_strings.po”, it can be renamed to “strings.po”. Per questo, aggiungi un nuovo parametro (allo stesso livello del parametro traduzione) al file di configurazione (crowdin.yml):

"files": [
  {
    "source": "/locale/**/en_*.po",
    "translation": "/locale/**/%two_letters_code%_%original_file_name%",
    "translation_replace": {
      "en_": ""
    }
  }
]

In this case, “_en” will be erased from the file name.

Ignorare File e Directory

From time to time, there are files and directories you don’t need to translate in Crowdin Enterprise. In tali casi, le regole dei file locali possono essere aggiunte al file di configurazione nel tuo profilo.

"files": [
  {
    "source": "/**/*.properties",
    "translation": "/**/%file_name%_%two_letters_code%.%file_extension%",
    "ignore": [
      "/test/file.properties",
      "/example.properties"
    ]
  },
  {
    "source": "/locale/en/**/*.po",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "ignore": [
      "/locale/en/templates",
      "/locale/en/workflow"
    ]
  }
]

Excluding Target Languages for Source Files

By default, the source files are available for translation into all target languages of the project. If some source files shouldn’t be translated into specific target languages, you can exclude them with the help of the parameter excluded_target_languages.

Esempio file di configurazione:

"files": [
  {
    "source": "/resources/en/*.json",
    "translation": "/resources/%two_letters_code%/%original_file_name%",
    "excluded_target_languages": [
      "uk",
      "fr"
    ]
  }
]

Multicolumn Spreadsheet

If a CSV or XLS/XLSX file contains the translations for all target languages, you should specify appropriate language codes in the scheme.

Esempio file CSV:

identifier,source_phrase,context,Ukrainian,Russian,French ident1,Source 1,Context 1,,, ident2,Source 2,Context 2,,, ident3,Source 3,Context 3,,,

Esempio file di configurazione:

"files": [
  {
    "source": "multicolumn.csv",
    "translation": "multicolumn.csv",
    "first_line_contains_header": true,
    "scheme": "identifier,source_phrase,context,uk,ru,fr"
  }
]

If your CSV or XLS/XLSX file contains columns that should be skipped on import, use none for such columns in the scheme, for example:

"scheme" : "identifier,source_phrase,context,uk,none,ru,none,fr"

Scheme Constants

To form the scheme for your CSV or XLS/XLSX file, use the following constants:

identifier – Column contains string identifiers.
source_phrase – Column contains source strings.
source_or_translation – Column contains source strings, but the same column will be filled with translations when the file is exported. When uploading existing translations, the values from this column will be used as translations.
translation – Column contains translations.
context – Column contains comments or context information for the source strings.
max_length – Column contains max.length limit values for the translations of the strings.
labels – Column contains labels for the source strings.
none – Column that will be skipped on import.

Salvare Struttura Directory sul Server

"preserve_hierarchy": true

Example of the configuration file using the preserve_hierarchy option:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"
"preserve_hierarchy": true

"files": [
  {
    "source": "/locale/en/**/*.po",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%"
  }
]

By default, directories that do not contain any files for translation will not be created in Crowdin Enterprise. Per esempio:

- locale | |--it | |-- foo.po |-- bar.po

By default, project files will be represented in Crowdin Enterprise as following:

- foo.po
- bar.po

Using the option preserve_hierarchy, the file structure in Crowdin Enterprise will be the following:

- it | |-- foo.po |-- bar.po

Caricare File nel Percorso Specificato con Tipo Specificato

This feature adds support for two optional parameters in the yml file section: dest and type. It’s typically used for projects where the uploaded name must be different so that Crowdin Enterprise can detect the type correctly.

The dest parameter allows you to specify a file name in Crowdin Enterprise. It works for multiple files at once and supports the following placeholders: %original_file_name%, %original_path%, %file_extension%, %file_name%.

Note! If you use the dest parameter, the configuration file should include the preserve_hierarchy parameter with the true value.

Esempio del file di configurazione con entrambi i parametri:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"
"preserve_hierarchy": true

"files": [
  {
    "source": "/conf/**/*.txt",
    "dest": "/conf/**/%file_name%.properties",
    "translation": "/conf/**/%two_letters_code%/%file_name%.properties",
    "type": "properties"
  },
  {
    "source": "/app/*.txt",
    "dest": "/app/%file_name%.xml",
    "translation": "/res/values-%android_code%/%original_file_name%",
    "type": "android"
  },
  {
    "source": "/conf/**/*.txt",
    "dest": "/%original_path%/%file_name%.properties",
    "translation": "/conf/**/%two_letters_code%/%original_file_name%",
    "type": "properties"
  }
]

Aggiornamento Stringhe Modificate

Il parametro update_option è facoltativo. Se non è configurato, le traduzioni per le stringhe modificate saranno perse. Utile per le correzioni di errori di ortografia e per modifiche minori nelle stringhe d’origine.

In base al valore, update_option è usato per preservare traduzioni e preservare/rimuovere validazioni di stringhe modificate durante il caricamento del file.

I valori sono:

  • update_as_unapproved - preserve translations of changed strings and remove validations of those translations if they exist
  • update_without_changes - preserve translations and validations of changed strings

Esempio di file di configurazione con parametro update_option:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/*.csv",
    "translation": "/%three_letters_code%/%file_name%.csv",
    "first_line_contains_header": true,
    "scheme": "identifier,source_phrase,translation,context",
    "update_option": "update_as_unapproved"
  },
  {
    "source": "/**/*.xlsx",
    "translation": "/%three_letters_code%/folder/%file_name%.xlsx",
    "update_option": "update_without_changes"
  }
]

Caricamento Traduzioni

The command upload translations uploads existing translations to Crowdin Enterprise. If no options are specified, the uploaded translations will not be imported even if they are equal to the source strings and will not be approved.

I valori sono:

  • -l, --language=language_code - defines the language translations that should be uploaded to Crowdin Enterprise. Per impostazione predefinita, le traduzioni sono caricate in tutti le lingue obiettivo del progetto. (Crowdin Language Codes)
  • --[no-]import-eq-suggestions - defines whether to add translation if it is equal to source string in Crowdin Enterprise project
  • --[no-]auto-approve-imported - automatically approves uploaded translations

Import Options

XML Files Import Options

translate_content
opzionale
booleano Defines whether to translate texts placed inside the tags.
Acceptable values are 0 or 1. Predefinito è 1.
translate_attributes
opzionale
booleano Defines whether to translate tags' attributes.
Acceptable values are 0 or 1. Predefinito è 1.
content_segmentation
opzionale
booleano Defines whether to split long texts into smaller text segments.
Acceptable values are 0 or 1. Predefinito è 1.
Nota: Quando la segmentazione dei Contenuti è abilitata, il caricamento della traduzione è gestito da una tecnologia di machine learning sperimentale.
translatable_elements
opzionale
insieme Questo è un insieme di stringhe, dove ogni elemento è l'elemento Xpath a Dom che dovrebbe essere importato.
Esempio percorso: /path/to/node o /path/to/attribute[@attr]
Nota! Se definiti, i parametri translate_content e translate_attributes non sono presi in conto durante l'importazione.

Esempio del file di configurazione con parametri aggiuntivi:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/app/sample1.xml",
    "translation": "/app/%locale%/%original_file_name%",
    "translate_attributes": 1,
    "translate_content": 0
  },
  {
    "source": "/app/sample2.xml",
    "translation": "/app/%locale%/%original_file_name%",
    "translatable_elements": [
      "/content/text",                      # translatable texts are stored in 'text' nodes of parent node 'content'
      "/content/text[@value]"               # translatable texts are stored in 'value' attribute of 'text' nodes
    ]
  }
]

Other Files Import Options

content_segmentation
opzionale
booleano Definisce se dividere testi lunghi in segmenti più piccoli di testo. Only for TXT, DOCX, DITA, IDML, MIF, MEDIAWIKI, HTML, Front Matter HTML, Markdown, Front Matter Markdown, XML, XLIFF, XLIFF 2.0
Acceptable values are 0 or 1. Predefinito è 1.
Nota: Quando la segmentazione dei Contenuti è abilitata, il caricamento della traduzione è gestito da una tecnologia di machine learning sperimentale.

Esempio del file di configurazione con parametri aggiuntivi:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/emails/sample1.html",
    "translation": "/emails/%locale%/%original_file_name%",
    "content_segmentation": 1
  }
]

Export Options

To configure the preferred export behavior for each file group, you may use the following export options:

skip_untranslated_strings – Only translated strings will be included in the exported translation files.
skip_untranslated_files – Only translated files will be included in the exported translation archive.
export_only_approved – Only texts that are both translated and approved will be included in the exported translation files.

Example of the configuration file with the export options:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"
"preserve_hierarchy": true

"files": [
  {
    "source": "/locale/en/**/*.po",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "skip_untranslated_strings": true
  },
  {
    "source": "/locale/en/**/*.json",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "skip_untranslated_files": true
  },
  {
    "source": "/locale/en/**/*.yml",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "export_only_approved": true
  }
]
Note: The export options work only with CLI.

Opzioni Quote di fuga per Formato di File .properties

Definisce se una singola quota dovrebbe essere scappata da un’altra quota singola o debba essere eseguito un backslash nelle traduzioni esportate. You can add the escape_quotes per-file option. Acceptable values are 0, 1, 2, 3. Predefinito è 3.

I valori sono:

  • 0 - non fuggire quota singola
  • 1 - escape single quote with another single quote
  • 2 - escape single quote with a backslash
  • 3 - escape single quote with another single quote only in strings containing variables ( {0} )

Escape special characters
Defines whether any special characters (=, :, ! and #) should be escaped by a backslash in exported translations. You can add the escape_special_characters per-file option.

Acceptable values are 0, 1. Predefinito è 1.

  • 0 - non uscire caratteri speciali
  • 1 - esci caratteri speciali da uno backslash

Esempio di file di configurazione:

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/en/strings.properties",
    "translation": "/%two_letters_code%/%original_file_name%",
    "escape_quotes": 1,
    "translate_content": 0,
    "escape_special_characters": 0
  }
]

Esempio Configurazioni

Uploading CSV files

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files": [
  {
    "source": "/*.csv",
    "translation": "/%two_letters_code%/%original_file_name%",
    # Specifies whether first line should be imported or it contains columns headers
    "first_line_contains_header": true,
    # used only when uploading CSV file to define data columns mapping
    "scheme": "identifier,source_phrase,translation,context,max_length"
  }
]

Progetto GetText

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files" : [
  {
    "source" : "/locale/en/**/*.po",
    "translation" : "/locale/%two_letters_code%/LC_MESSAGES/%original_file_name%",
    "languages_mapping" : {
      "two_letters_code" : {
        "zh-CN" : "zh_CH",
        "fr-QC": "fr"
      }
    }
  }
]

Progetto Android

"project_id": "projectId"                     #open project and go to Integrations > Command line tool (CLI)
"api_token": "personal-access-token"          #open project and go to Integrations > Command line tool (CLI)
"base_path": "/project-base-path"
"base_url": "https://{organization-name}.crowdin.com"

"files" : [
  {
    "source" : "/res/values/*.xml",
    "translation" : "/res/values-%android_code%/%original_file_name%",
    "languages_mapping" : {
      "android_code" : {
        "de" : "de",
        "ru" : "ru"
      }
    }
  }
]

File Configurazione per Integrazioni VCS

Le integrazioni VCS richiedono lo stesso file di configurazione dello strumento CLI, quindi la stessa struttura è supportata. The only difference is that you should not store the project credentials in the file header for security reasons. Also, you can use a few additional parameters.

Pull Request Title and Labels for VCS Integrations

The default pull request title is New Crowdin updates. To specify your custom pull request title and add labels to the pull request, you can use the following parameters in the configuration file: pull_request_title, pull_request_labels.

Note: Pull request labels are not supported by the Bitbucket integration.

Esempio:

"base_path": "/project-base-path"
"pull_request_title": "Custom PR title"
"pull_request_labels": [
  "crowdin",
  "l10n"
]

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Messaggio di Impegni Parametro per Integrazioni VCS

Each time translations are committed the default message is shown “New translations {fileName} ({languageName})”. You can use the commit_message parameter to add Git tags (e.g., to skip builds).

Esempio:

"base_path": "/project-base-path"
"commit_message": "[ci skip]"

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

To replace the default commit message, use the append_commit_message parameter with the value false. Puoi anche aggiungere due segnaposto opzionali: %original_file_name% e %language% per usare il nome file appropriato e le variabili lingua di conseguenza.

Esempio:

"commit_message": "Fix: New translations %original_file_name% from Crowdin Enterprise"
"append_commit_message": false

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Parametro Lingue Esportazione per Integrazioni VCS

By default, all the languages are exported. If you need to export some specific languages, use the export_languages parameter to specify them.

Esempio:

"base_path": "/project-base-path"
"export_languages": [                                   
    "ru", 
    "uk", 
    "ja"
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Adding Labels to Source Strings

To add existing or new labels to the source strings, use the labels parameter. Labels will be added to the source strings only during the initial upload to the Crowdin Enterprise project.

The strings uploaded to the Crowdin Enterprise project before the use of the labels parameter won’t be labeled. If you remove the label added during the initial upload directly in Crowdin Enterprise, it won’t be re-added on the next syncs.

The label names can contain any characters except “,”.

Esempio:

"base_path": "/project-base-path"

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%",
    "labels" : [
      "android",
      "emails"
    ]
  }
]

Read more about Labels.

Using One Configuration File for VCS Integrations and CLI

There are cases when it’s necessary to use VCS integration and CLI for one project. Mostly, in this kind of situation, you’d need to have two separate configuration files, one for VCS integration and another for CLI. However, there is a possibility to use a single configuration file for both cases.

Since the VCS integration configuration file doesn’t contain project_id and api_token credentials required for CLI, you can pass them directly in the command using the following parameters: -i/--project-id, -T/--token. Alternatively, you may use environment variables for this purpose.

As a result, your command for downloading translations via CLI will look like the following:

$ crowdin download -i {your-project-id} -T {your-token}

Assistenza Ricerca

Need help working with Crowdin CLI or have any questions? Contact Support Team.

Vedi Anche

Questo articolo è stato utile?