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.
A Crowdin CLI használatához először hozza létre a saját YAML konfigurációját, majd futtassa az eszközt. A Crowdin CLI alapértelmezés szerint egy crowdin.yml nevű konfigurációs fájlt keres (tehát nem kell megadnia a konfigurációs nevet, hacsak az nem különbözik crowdin.yml-tól).
To create the configuration file, run the following command:
$ crowdin init
A valid Crowdin CLI configuration file has the following structure, so please make sure that you fill out all the needed information:
A typical configuration file looks similar to the following:
"project_id": "projectId" #open project and go to Tools > Command line tool (CLI)
"api_token": "personal-access-token" #open project and go to Tools > 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
Az API hitelesítő adatokat egy környezeti változóból is betöltheti, pl.:
"project_id_env": "CROWDIN_PROJECT_ID"
"api_token_env": "CROWDIN_PERSONAL_TOKEN"
"base_path_env": "CROWDIN_BASE_PATH"
"base_url_env": "CROWDIN_BASE_URL"
Ha kevert, akkor az api_token és a project_id prioritásai a következők:
"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
A crowdin.yml fájl tartalmaz egy leírást a források kezeléséhez, illetve tartalmazza az API hitelesítő adatokat (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:
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
A fent bemutatott minta-konfiguráció olyan forrás- és fordítási attribútumokat tartalmaz, amelyek szabványos helyettesítő karaktereket tartalmaznak (más néven globbing minták), hogy megkönnyítsék a több fájl kezelését.
Ezeket a mintákat használhatja:
* (csillag)
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”.
** (dupla csillag)
Rekurzív módon megfelel bármely karakterláncnak (beleértve az alkönyvtárakat is). A **\ mind a forrás, mind a fordítási mintákban is használható. 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. A fordítási minta: ‘/%two_letters_code%/**/%original_file_name%’ lesz.
? (kérdőjel)
Egyetlen karaktert helyettesít.
[set]
Egy adott karaktert helyettesít egy csomagból. Pontosan úgy viselkedik, mint a Regexp karakterkészletei, beleértve a beállított tagadást ([^a-z]).
\ (fordított perjel)
Védi a következő metakaraktert.
A Crowdin CLI lehetővé teszi a következő helyőrzők használatát, hogy a megfelelő változókat az eredményül kapott fájl nevére alkalmazza:
Név | Leírás |
---|---|
%original_file_name% | Eredeti fájlnév |
%original_path% | Take parent folders names in Crowdin Enterprise project to build file path in the resulted bundle |
%file_extension% | Eredeti fájlkiterjesztés |
%file_name% | Fájl neve kiterjesztés nélkül |
%language% | Language name (e.g., Ukrainian) |
%two_letters_code% | Language code ISO 639-1 (e.g., uk) |
%three_letters_code% | Language code ISO 639-2/T (e.g., ukr) |
%locale% | Locale (e.g., uk-UA) |
%locale_with_underscore% | Locale (e.g., uk_UA) |
%android_code% | Android területi azonosító, a "values-" könyvtárak elnevezésére használható |
%osx_code% | OS X területi azonosító az ".lproj" könyvtárak elnevezésére használható |
%osx_locale% | OS X locale used to name translation resources (e.g., uk, zh-Hans, zh_HK) |
A létrehozott archívumban lévő fájlok elérési útját is megadhatja úgy, hogy a minta elején egy perjelet (/) helyez el.
A translation
beállítása a következőképp kell kinézzen: “/locale/%two_letters_code%/LC_MESSAGES/%original_file_name%”.
A helyi gépen található fájlok és könyvtárak struktúrája:
- 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
#........your project configuration........
"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%"
}
]
#........your project configuration........
"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
]
}
]
Gyakran a szoftverprojektek a honosítási könyvtárakhoz egyéni neveket tartalmaznak. A Crowdin Enterprise lehetővé teszi a saját nyelveinek hozzárendelését, hogy felismerhetőek legyenek a projektjeiben.
Tegyük fel, hogy a nyelvi könyvtárak elnevezése “en”, “uk”, “fr”, “de”. Közülük mindegyik megjeleníthető a %two_letters_code% helyőrzővel. Ezen felül van egy “zh_CH” nevű könyvtára. To make it work with Crowdin Enterprise without changes in your project, you can set up Language Mapping. A nyelvkódokat felül is írhatja, például az %android_code%, %locale%, stb. helyőrzőkkel.
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:
To set up Language Mapping in your configuration file, add the languages_mapping
section to your file set as shown below.
Minta konfiguráció:
"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.
Ha át kell neveznie a fordítás fájlokat az exportálás után, könnyen elvégezheti ezt a translation_replace
paraméter segítségével.
For example, if the file is named “en_strings.po”, it can be renamed to “strings.po”. Ehhez a konfigurációs fájlhoz (crowdin.yml) adjon hozzá egy új paramétert (azonos szinten a fordítási paraméterrel):
"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.
From time to time, there are files and directories you don’t need to translate in Crowdin Enterprise. Ilyen esetekben a helyi fájlonkénti szabályok hozzáadhatók a projekt konfigurációs fájljához.
"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"
]
}
]
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
.
Konfigurációs fájl példa:
"files": [
{
"source": "/resources/en/*.json",
"translation": "/resources/%two_letters_code%/%original_file_name%",
"excluded_target_languages": [
"uk",
"fr"
]
}
]
If a CSV or XLS/XLSX file contains the translations for all target languages, you should specify appropriate language codes in the scheme.
CSV fájl példa:
Konfigurációs fájl példa:
Konfigurációs fájl példa:
"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"
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.
"preserve_hierarchy": true
Example of the configuration file using the preserve_hierarchy
option:
"project_id": "projectId" #open project and go to Tools > Command line tool (CLI)
"api_token": "personal-access-token" #open project and go to Tools > 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. Például:
- locale | |-- en | |-- 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:
- en | |-- foo.po |-- bar.po
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%.
dest
parameter, the configuration file should include the preserve_hierarchy
parameter with the true value.Konfigurációs fájl példa mindkét paraméterrel:
"project_id": "projectId" #open project and go to Tools > Command line tool (CLI)
"api_token": "personal-access-token" #open project and go to Tools > 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"
}
]
Az update_option
paraméter opcionális. Ha nincs beállítva, a megváltoztatott karakterláncok fordításai a fájlfrissítés után elveszhetnek. Hasznos az elgépelések javításaihoz és a kisebb forrás-karakterlánc változásokhoz.
Az értéktől függően, az update_option
a fordítások megőrzésére és a módosított karakterláncok jóváhagyásainak megőrzésére/eltávolítására használható a fájlfrissítés során.
Az értékek:
Konfigurációs fájl példa update_option paraméterrel:
"project_id": "projectId" #open project and go to Tools > Command line tool (CLI)
"api_token": "personal-access-token" #open project and go to Tools > 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"
}
]
Upload your XML, HTML, MD, or any other source files without a key-value structure with your own segmentation rules. If not specified, the pre-defined segmentation rules (SRX 2.0) are used for automatic content segmentation.
Example of the configuration file with custom segmentation:
"project_id": "projectId" #open project and go to Tools > Command line tool (CLI)
"api_token": "personal-access-token" #open project and go to Tools > 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%",
"custom_segmentation": "/rules/sample.srx.xml"
}
]
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.
Az értékek:
translate_content opcionális | bool | Defines whether to translate texts placed inside the tags. Acceptable values are 0 or 1. Alapértelmezett értéke 1. |
translate_attributes opcionális | bool | Defines whether to translate tags' attributes. Acceptable values are 0 or 1. Alapértelmezett értéke 1. |
content_segmentation opcionális | bool | Defines whether to split long texts into smaller text segments. Acceptable values are 0 or 1. Alapértelmezett értéke 1. Note: When Content segmentation is enabled, the translation upload is handled by an experimental machine learning technology. |
translatable_elements opcionális | array | Ez egy karakterláncok tömb, ahol minden elem az XPaths a DOM-hoz elem, amelyet importálni kell. Minta útvonal: /path/to/node vagy /path/to/attribute[@attr] Figyelem! Ha be van állítva, a translate_content és a translate_attributes paramétereket nem veszi figyelembe az importálás során. |
Konfigurációs fájl példa további paraméterekkel:
"project_id": "projectId" #open project and go to Tools > Command line tool (CLI)
"api_token": "personal-access-token" #open project and go to Tools > 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
]
}
]
content_segmentation opcionális | bool | Meghatározza, hogy a hosszú szövegeket kisebb szövegekre szétdarabolja e. 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. Alapértelmezett értéke 1. Note: When Content segmentation is enabled, the translation upload is handled by an experimental machine learning technology. |
Konfigurációs fájl példa további paraméterekkel:
"project_id": "projectId" #open project and go to Tools > Command line tool (CLI)
"api_token": "personal-access-token" #open project and go to Tools > 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
}
]
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 Tools > Command line tool (CLI)
"api_token": "personal-access-token" #open project and go to Tools > 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
}
]
Meghatározza, hogy egy adott aposztrófot egy másik aposztróffal, vagy fordított perjellel kell védeni (escape) az exportált fordításokban. You can add the escape_quotes
per-file option. Acceptable values are 0, 1, 2, 3. Alapértelmezett értéke 3.
Az értékek:
Speciális karakterek védése
Meghatározza, hogy a speciális karaktereket (=, :, ! 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. Alapértelmezett értéke 1.
Példa a konfigurációs fájlra:
"project_id": "projectId" #open project and go to Tools > Command line tool (CLI)
"api_token": "personal-access-token" #open project and go to Tools > 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
}
]
"project_id": "projectId" #open project and go to Tools > Command line tool (CLI)
"api_token": "personal-access-token" #open project and go to Tools > 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"
}
]
"project_id": "projectId" #open project and go to Tools > Command line tool (CLI)
"api_token": "personal-access-token" #open project and go to Tools > 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"
}
}
}
]
"project_id": "projectId" #open project and go to Tools > Command line tool (CLI)
"api_token": "personal-access-token" #open project and go to Tools > 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"
}
}
}
]
A VCS integrációk ugyanazt a konfigurációs fájlt igénylik, mint a CLI eszköz, azaz ugyanazt a struktúrát támogatja. 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.
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
.
Minta:
"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%"
}
]
Minden alkalommal, amikor fordítások kerülnek beküldésre a következő alapértelmezett üzenet jelenik meg: “Új fordítások {fileName} {languageName}”. You can use the commit_message
parameter to add Git tags (e.g., to skip builds).
Minta:
"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. Két opcionális helyőrzőt is hozzáadhat: %original_file_name% és %language% a megfelelő fájlnév és a megfelelő nyelvi változók használatához.
Minta:
"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%"
}
]
Alapértelmezés szerint az összes nyelv exportálásra kerül. If you need to export some specific languages, use the export_languages
parameter to specify them.
Minta:
"base_path": "/project-base-path"
"export_languages": [
"ru",
"uk",
"ja"
]
"files": [
{
"source" : "/resources/en/*.json",
"translation" : "/resources/%two_letters_code%/%original_file_name%"
}
]
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 “,
”.
Minta:
"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.
Előfordulhatnak olyan esetek, amikor a VCS integrációt és a CLI-t kell használni egy projekthez. Az ilyen helyzetben legtöbbször két különálló konfigurációs fájlra van szüksége, az egyik a VCS integrációhoz, a másik pedig a CLI-hez. However, you can 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.
Ennek eredményeként a fordítások CLI-n keresztüli letöltésére szolgáló parancs a következőképpen néz ki:
$ crowdin download -i {your-project-id} -T {your-token}
Segítségre van szüksége a Crowdin CLI használatával, vagy kérdése van? Lépjen kapcsolatba az ügyfélszolgálattal.