Today we are happy to announce Crowdin CLI 4.0! ๐ฅณ
It has been almost five years since the release of Crowdin CLI 3.0. During this time, we have received extensive feedback from our users and worked diligently to improve the tool. As a result, we've made many changes and improvements.
The new version of Crowdin CLI introduces a lot of new features and enhancements. We've added new commands, updated existing ones, and significantly improved the overall user experience.
This post is intended to highlight the most important changes and help you migrate from CLI 3.x with ease. It is not a comprehensive guide, but rather a list of the most important changes.
Requirementsโ
As part of this release, the minimum Java version has been updated to 17 LTS.
New commandsโ
crowdin config
crowdin project
crowdin language
crowdin branch clone
crowdin branch merge
crowdin completion
New command optionsโ
Command | Option/Description |
---|---|
init | --quiet option to skip interactive input prompts |
string add | --branch option to specify the branch to which the new string should be added |
string list | --directory and --scope options to filter strings by directory and scope |
pre-translate | --file option to specify the file(s) in the Crowdin project to pre-translate |
pre-translate | ai method and --ai-prompt parameter to allow pre-translation via AI |
file upload | --type and --parser-version options to specify the file type and parser version respectively |
file upload | --context option to provide a context about the whole file |
file list | --verbose option to show more information about the files |
language list | --all option to list all languages for the current account |
Command updatesโ
Pre-translateโ
We've made significant changes to the pre-translate
command. The command now requires the --file parameter for file-based projects. The --file parameter determines which files to pre-translate. Previously, the command relied on the current configuration, and it was only possible to pre-translate the files that matched the configuration patterns. Now you can specify any file(s) in the Crowdin project to pre-translate.
Tip: Use the file list
command to get the file paths in the current project.
Stringโ
- The
string edit
command changes:- Moved id to a parameter instead of a command option.
- Now --identifier is used as an option to edit and not to find the needed string.
- The
string delete
command changes:- Moved id to a parameter instead of a command option. Now only 1 string can be removed at a time.
- Removed the --text and --identifier options. Only ID is used as a string identifier.
- The
comment
command has been replaced with thecomment add
command.
-crowdin string add Download --file main/src/strings.xml --identifier "download"
+crowdin string add Download --file src/strings.xml --branch main --identifier "download"
-crowdin string edit --id 12 --text new
+crowdin string edit 12 --text new
-crowdin string delete --id 12
+crowdin string delete 12
Listโ
- The
list branches
command has been replaced with thebranch list
command. - The
list sources
command has been replaced with theconfig sources
command. - The
list translations
command has been replaced with theconfig translations
command. - The
list project
command has been replaced with thefile list
command. - The
list languages
command has been replaced with thelanguage list
command.
-crowdin list branches
+crowdin branch list
-crowdin list project
+crowdin file list
-crowdin list sources
+crowdin config sources
-crowdin list translations
+crowdin config translations
-crowdin list languages
+crowdin language list
The default language code for the language list
command output has been changed from two_letters_code
to id
.
This change makes it more convenient, as the id
is used consistently for the --language
parameter across various commands.
Glossaryโ
The --name option has been removed from the upload
and download
commands, and the <id> parameter is now used instead:
-crowdin glossary download --id <id>
-crowdin glossary download --name <name>
+crowdin glossary download <id>
-crowdin glossary upload <file> --name <name>
+crowdin glossary upload <file> --id <id>
Tip: Use the glossary list
command to get the id
.
TMโ
The --name option has been removed from upload
and download
commands, and the <id> parameter is now used instead:
-crowdin tm download --id <id>
-crowdin tm download --name <name>
+crowdin tm download <id>
-crowdin tm upload <file> --name <name>
+crowdin tm upload <file> --id <id>
Tip: Use the tm list
command to get the id
.
Screenshotโ
The --name option has been replaced with the <id> parameter for the delete
command because there can be multiple screenshots with the same name:
-crowdin screenshot delete <name>
+crowdin screenshot delete <id>
Tip: Use the screenshot list
command to get the id
.
Initโ
The generate
alias has been removed:
-crowdin generate
+crowdin init
Lintโ
The lint
command has been replaced with the config lint
command:
- crowdin lint
+ crowdin config lint
Bundleโ
The download bundle
command has been replaced with the bundle download
command.
Exit codesโ
This release also includes more exit codes (previously we only had 0
for success and 1
for failure).
See the official documentation for more details.
Environment variablesโ
Previously, it was necessary to specify the environment variables in the configuration file in order to load the configuration from them.
Now the CLI can automatically pick up the environment variables if they are set in the shell. The supported environment variables are:
CROWDIN_PROJECT_ID
CROWDIN_PERSONAL_TOKEN
CROWDIN_BASE_PATH
CROWDIN_BASE_URL
Thanks to this change, it's now easier to work with the CLI in CI/CD environments, especially in the no-configuration-file use case.
Visit the Configuration File article for more details.
Deprecations and backward compatibilityโ
Download targetsโ
The deprecated download targets
command has been removed. The configuration file no longer supports the targets
section as well. Use Bundles instead.
Task commandโ
Removed backward compatibility for file numeric id in the task add
command. Now only file path is supported:
-crowdin task add --file 12 --language uk
+crowdin task add --file src/strings.xml --language uk
Command output updatesโ
In this release, we've also reviewed and improved the output of many commands to make them more informative and user-friendly. Changes include list
, add
, upload
, download
, delete
, and other commands for various resources.
Need help or have questions? Let's discuss it!