mirror of
https://github.com/facebook/docusaurus.git
synced 2025-08-06 10:20:09 +02:00
Move custom translation strings to its own file (#775)
This commit is contained in:
parent
fd9a3ffb6d
commit
608e2c85a2
3 changed files with 50 additions and 6 deletions
|
@ -93,6 +93,41 @@ The script will include text from the following places:
|
||||||
* header link `label` strings in `siteConfig.js`
|
* header link `label` strings in `siteConfig.js`
|
||||||
* strings wrapped in the `<translate>` tag in any `.js` files inside `pages`
|
* strings wrapped in the `<translate>` tag in any `.js` files inside `pages`
|
||||||
|
|
||||||
|
### Custom Translation Strings
|
||||||
|
|
||||||
|
If you want to add additional custom translation strings, or override any of the strings that get produced by the script that creates the `website/i18n/en.json` file, you can add a `website/data/custom-translation-strings.json` file. The file should have form of:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"localized-strings": {
|
||||||
|
"id": "string",
|
||||||
|
"id2": "string2"
|
||||||
|
},
|
||||||
|
"pages-strings" : {
|
||||||
|
"id3": "string3",
|
||||||
|
"id4": "string4"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
where `localized-strings` represent strings in your documentation content and `pages-strings` represents metadata in your documentation (e.g., title, links, etc).
|
||||||
|
|
||||||
|
Here is an example:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"_comment": "This file is used to provide custom strings for translations, including overriding defaults",
|
||||||
|
"localized-strings": {
|
||||||
|
"translation": "Translations and Localization"
|
||||||
|
},
|
||||||
|
"pages-strings" : {
|
||||||
|
"Help Translate|recruit community translators for your project": "Help Us Translate"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
See the generated `website/i18n/en.json` for an example.
|
||||||
|
|
||||||
## How Strings Get Translated
|
## How Strings Get Translated
|
||||||
|
|
||||||
Docusaurus itself does not do any translation from one language to another. Instead, it integrates [Crowdin](https://crowdin.com/) to upload translations and then downloads the appropriately translated files from Crowdin.
|
Docusaurus itself does not do any translation from one language to another. Instead, it integrates [Crowdin](https://crowdin.com/) to upload translations and then downloads the appropriately translated files from Crowdin.
|
||||||
|
|
|
@ -20,13 +20,13 @@ const babylon = require('babylon');
|
||||||
const traverse = require('babel-traverse').default;
|
const traverse = require('babel-traverse').default;
|
||||||
const sidebars = require(CWD + '/sidebars.json');
|
const sidebars = require(CWD + '/sidebars.json');
|
||||||
|
|
||||||
let currentTranslations = {
|
let customTranslations = {
|
||||||
'localized-strings': {},
|
'localized-strings': {},
|
||||||
'pages-strings': {},
|
'pages-strings': {},
|
||||||
};
|
};
|
||||||
if (fs.existsSync(CWD + '/i18n/en.json')) {
|
if (fs.existsSync(CWD + '/data/custom-translation-strings.json')) {
|
||||||
currentTranslations = JSON.parse(
|
customTranslations = JSON.parse(
|
||||||
fs.readFileSync(CWD + '/i18n/en.json', 'utf8')
|
fs.readFileSync(CWD + '/data/custom-translation-strings.json', 'utf8')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,11 +158,11 @@ function execute() {
|
||||||
'Translate';
|
'Translate';
|
||||||
translations['pages-strings'] = Object.assign(
|
translations['pages-strings'] = Object.assign(
|
||||||
translations['pages-strings'],
|
translations['pages-strings'],
|
||||||
currentTranslations['pages-strings']
|
customTranslations['pages-strings']
|
||||||
);
|
);
|
||||||
translations['localized-strings'] = Object.assign(
|
translations['localized-strings'] = Object.assign(
|
||||||
translations['localized-strings'],
|
translations['localized-strings'],
|
||||||
currentTranslations['localized-strings']
|
customTranslations['localized-strings']
|
||||||
);
|
);
|
||||||
writeFileAndCreateFolder(
|
writeFileAndCreateFolder(
|
||||||
CWD + '/i18n/en.json',
|
CWD + '/i18n/en.json',
|
||||||
|
|
9
website/data/custom-translation-strings.json
Normal file
9
website/data/custom-translation-strings.json
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"_comment": "This file is used to provide custom strings for translations, including overriding defaults",
|
||||||
|
"localized-strings": {
|
||||||
|
"translation": "Translations and Localization"
|
||||||
|
},
|
||||||
|
"pages-strings" : {
|
||||||
|
"Help Translate|recruit community translators for your project": "Help Us Translate"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue