This tool uses deepl to translate all extracted languages by either angular/localize or compiled-i18n.
DeepL is a machine translation company that offers neural machine translation services. Neural machine translation (NMT) is a type of machine translation that uses artificial neural networks to improve the accuracy and fluency of translations. DeepL is known for its high-quality translations and is considered one of the leading providers in the field of machine translation.
DeepL's most well-known product is the DeepL Translator, which allows users to translate text and documents between multiple languages. It supports a wide range of languages and is often praised for its ability to produce translations that are more natural and contextually accurate compared to traditional rule-based machine translation systems.
The $localize function is part of the Angular framework, which is a popular open-source JavaScript framework for building web and mobile applications. It is specifically used for internationalization (i18n) and localization (l10n) purposes within Angular applications.
The $localize function is used to mark and translate text within an Angular application. It allows developers to define messages in different languages and provides a way to extract those messages for translation. Here's how it typically works:
const message = $localize`Hello, World!`;
Keep in mind that Angular's internationalization and localization features, including $localize, may evolve over time, so it's a good practice to refer to the official Angular documentation or resources for the most up-to-date information on how to use these features in your Angular applications.
Localize perfectly works with other frameworks as well. See Miško's approach for qwik.
The package compiled-i18n is a vite-plugin to solve localization on build time. This means the extraction is integrated on top of vite's build process and will be directly there if the build server is running.
The integration is much simpler, because you don't need to set it up, you only have to call a function to set the locale. The translation files look very similar to $localize files.
Per default it's translation function is exported as _
and looks like this in the code:
import {_} from 'compiled-i18n'
const message = _`Hello, World!`;
On top compiled-i18n is doing pluralization without adding a different api.
npm install deepl-localize -D
or
yarn add deepl-localize -D
Of course you can use it with npx
as well.
npx deepl-localize translate -b your/path/en-US.json -l de-DE fr-FR -i de-DE -a "YOUR-DEEPL-API-KEY"
deepl-localize translate -b your/path/en-US.json -l de-DE fr-FR -i de-DE -a "YOUR-DEEPL-API-KEY"
Command | Description |
---|---|
-a,--api-key |
The deepl api key. If none is given, the environment variable DEEPL_API_KEY is used. |
-v, --version | output the version number |
-b, --base |
The base file path. |
-o, --output |
The output folder path. If none is given, the base folder is used. |
-c, --compiled-i18n | Tell the script you use compiled-i18n instead of $localize |
-l, --locales [value...] | Locales to translate to. For example de-DE fr-FR. If none is given, no translation will happen. (default: []) |
-i, --informal-locales [value...] | Locales to translate less formal. For example de-DE will use du instead of sie. (default: []) |
-h, --help | display help for command |
deepl-localize remove-stale -b your/path/en-US.json -l de-DE fr-FR
Command | Description |
---|---|
-v, --version | output the version number |
-b, --base |
The base file path. |
-o, --output |
The output folder path. If none is given, the base folder is used. |
-c, --compiled-i18n | Tell the script you use compiled-i18n instead of $localize |
-l, --locales [value...] | Locales to translate to. For example de-DE fr-FR. If none is given, no translation will happen. (default: []) |
-d,--dry-run | Just show the stale translations. The script will not remove and just show them. (default: false) |
-h, --help | display help for command |