https://github.com/oat-sa/tao-i18n-tools
https://github.com/oat-sa/tao-i18n-tools
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/oat-sa/tao-i18n-tools
- Owner: oat-sa
- License: gpl-2.0
- Created: 2020-03-03T10:17:54.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-09-03T10:25:40.000Z (9 months ago)
- Last Synced: 2024-10-07T09:25:12.850Z (8 months ago)
- Language: JavaScript
- Size: 970 KB
- Stars: 1
- Watchers: 45
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# tao-i18n-tools
This package is a collection of translations related tools for TAO.
### Installation
```
$ npm i -D @oat-sa/tao-i18n-tools
```Following tools are available to be used in this package:
## Extract Translations
The extract translation tool can be used to parse a given directory and extract all the strings to a POT file.
Following formats are supported by the extract translations tool at the moment:
- `.js`
- `.svelte`The tool can either generate a new POT file from scratch or can add newly found strings to an existing POT file. It also skips adding the same string again in a POT file. So, the strings are not repeated if they are used in multiple places inside a project.
The tool also adds a comment above each key giving info about the component it was extracted from.
### Usage
```
$ i18n:extract -s /absolute/path/to/src -d /absolute/path/to/template.POT
```> :warning: **Relative paths are not supported**: please use absolute path for source and destination argument.
## Transform PO files to modules
`po2i18n` plugin transforms PO files to modules which are exporting dictionary and pluralization rules for given locale.
### Usage
```js
import po2i18n from '@oat-sa/tao-i18n-tools/src/rollup/po2i18n';export default {
plugins: [
po2i18n({
exclude: ['**/node_modules/**']
}),
svelte(),
babel()
]
};
```And then in application code we can just use an import:
```js
import locale from 'path/to/po/file.po';console.log(locale.default); // translations
console.log(locale.p11nRules); // pluralization rules
```## Rollup plugin
```js
import path from 'path';
import i18n from '@oat-sa/tao-i18n-tools/src/rollup/i18n';
import po2i18n from '@oat-sa/tao-i18n-tools/src/rollup/po2i18n';export default {
plugins: [
i18n({
exclude: ['**/node_modules/**'],
include: ['**/@oat-sa-private/**', '**/@oat-sa/**'],
output: path.join(srcDir, 'locales', 'messages.pot')
}),
po2i18n({
exclude: ['**/node_modules/**']
}),
// i18n plugin should be above any code transform plugin like babel or svelte
svelte(),
babel()
]
};
```