diff options
Diffstat (limited to 'src/doc/rust-by-example/TRANSLATING.md')
-rw-r--r-- | src/doc/rust-by-example/TRANSLATING.md | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/doc/rust-by-example/TRANSLATING.md b/src/doc/rust-by-example/TRANSLATING.md new file mode 100644 index 000000000..c2a39f51b --- /dev/null +++ b/src/doc/rust-by-example/TRANSLATING.md @@ -0,0 +1,85 @@ +# Rust by Example translation guidelines + +Please see the [CONTRIBUTING.md] file for general contribution guidelines. +This file describes about the translation workflow. + +[CONTRIBUTING.md]: https://github.com/rust-lang/rust-by-example/blob/master/CONTRIBUTING.md + +## Translation workflow + +### Preparation + +RBE uses [mdbook-i18n-helpers](https://github.com/google/mdbook-i18n-helpers) as a translation framework. +The following tools are required. + +* GNU gettext utilities ( `msgmerge` and `msgcat` ) +* mdbook-i18n-helpers ( `cargo install mdbook-i18n-helpers` ) + +### Creating and Updating Translations + +Please see the [mdbook-i18n-helpers USAGE](https://github.com/google/mdbook-i18n-helpers/blob/main/i18n-helpers/USAGE.md) file for the detailed usage of mdbook-i18n-helpers. +The summarized command list is below: + +#### Generating a message template + +The generated message templete `po/messages.pot` is required to create or update translations. + +```bash +MDBOOK_OUTPUT='{"xgettext": {"pot-file": "messages.pot"}}' \ + mdbook build -d po +``` + +#### Creating a new translation resource + +`xx` is [ISO 639](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) language code. + +```bash +msginit -i po/messages.pot -l xx -o po/xx.po +``` + +#### Updating the exising translation resource + +```bash +msgmerge --update po/xx.po po/messages.pot +``` + +### Editing translation resources + +After generating a translation resource `po/xx.po`, you can write translation messages in `msgstr` entry of `po/xx.po`. +To build a translated book, the following command can be used. + +```bash +MDBOOK_BOOK__LANGUAGE=xx mdbook build +MDBOOK_BOOK__LANGUAGE=xx mdbook serve +``` + +### Add a language entry + +Please add a language entry in `.github/workflows/rbe.yml` and `theme/index.hbs` like below: + +* `rbe.yml` + +```yml +env: + # Update the language picker in index.hbs to link new languages. + LANGUAGES: xx yy zz +``` + +* `index.hbs` + +```html +<ul id="language-list" class="theme-popup" aria-label="Languages" role="menu"> + <li role="none"><button role="menuitem" class="theme"> + <a id="en">English</a> + </button></li> + <li role="none"><button role="menuitem" class="theme"> + <a id="xx">XX language</a> + </button></li> + <li role="none"><button role="menuitem" class="theme"> + <a id="yy">YY language</a> + </button></li> + <li role="none"><button role="menuitem" class="theme"> + <a id="zz">ZZ language</a> + </button></li> +</ul> +``` |