8 releases (breaking)
0.8.0 | Jan 10, 2024 |
---|---|
0.7.0 | Jan 4, 2024 |
0.6.0 | Jan 2, 2024 |
0.5.2 | Dec 30, 2023 |
0.1.0 | Oct 27, 2023 |
#117 in Internationalization (i18n)
24 downloads per month
41KB
855 lines
translocate - convert CSV translation files to JSON
translocate
is a high performance (blazingly fast) CSV translation file to JSON translation file transformer. It takes .csv
or .tsv
files as input, and will output one file for each language listed as a CSV column.
Requirements for use
There are one main requirements which should be followed for this crate to work optimally:
- The first line of the input CSV (or TSV) file should be the heading column.
translocate
has two internal methods used to transform your localized strings into JSON. The faster and more permissive method only requires that a heading line is present. translocate
automatically tries the faster conversion method and, if it fails, will fall back to the stricter, slower strategy.
The alternate, stricter method attempts to deserialize input files based on a predefined list of languages. For this alternate mode the language identifiers in the heading should be in the format xx_YY
or xx-YY
— e.g. en_US or en-US. The very first heading should be named id
, this will provide the translation keys. The current list of languages is da_DK
, de_DE
, en_US
, es_ES
, fr_FR
, it_IT
, nl_NL
, pt_BR
, pt_PT
and sv_SE
. An example of the heading in a CSV with all supported languages is shown below:
id,da_DK,de_DE,en_US,es_ES,fr_FR,it_IT,nl_NL,pt_BR,pt_PT,sv_SE
If your particular requirements are not being served, you are encouraged to make a pull request which adds support. Alternatively you may fork the repository and modify for your specific needs; the license is quite permissive.
If you need to do some processing of your CSV before passing to translocate
because of failures during the transformation from CSV to JSON, consider checking out the qsv or xsv crates.
Dependencies
~1.8–2.7MB
~43K SLoC