summaryrefslogtreecommitdiffstats
path: root/src/doc/rust-by-example/TRANSLATING.md
diff options
context:
space:
mode:
Diffstat (limited to 'src/doc/rust-by-example/TRANSLATING.md')
-rw-r--r--src/doc/rust-by-example/TRANSLATING.md85
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>
+```