diff --git a/docs/developer_i18n_guide.md b/docs/developer_i18n_guide.md new file mode 100644 index 000000000..d512ef7d0 --- /dev/null +++ b/docs/developer_i18n_guide.md @@ -0,0 +1,55 @@ +# Developer's guide for internationalization + +*NOTE: All the files you created should be in UTF-8 encoding.* + +>**For the front-end i18n works,** + +1. You need to create a JavaScript i18n source file under the diretory `/static/resources/js/services/i18n`, it should be named as `locale_messages__.js` with your localized translations. + + This file contains a JSON object named `locale_messages`, and the sample pattern should be like below, + ``` + var local_messages = { + 'sign_in': 'Sign In' + }; + ``` + **NOTE: Please refer the keys which already exist in other i18n files to make your corresponding translations as your locale.** + +2. After creating this locale file, you should include it into the HTML page header template. + + In the file, `/views/sections/header-include.htm`. This template would be rendered by the back-end controller, with checking the current language (`.Lang`) value from the request scope, at each time there is only one script tag would be rendered at front-end page. + ``` + {{ if eq .Lang "zh-CN" }} + + {{ else if eq .Lang "en-US"}} + + {{ else if eq .Lang "-"}} + + {{ end }} + ``` +3. Add the new coming language to the `I18nService` module. + + In the file, `/static/resources/js/services/i18n/services.i18n.js`, append new key-value item to the `supportLanguages` object. + ``` + var supportLanguages = { + 'en-US': 'English', + 'zh-CN': '中文', + '-': '' + }; + ``` + **NOTE: Don't miss to add a comma ahead of the new key-value item you've added.** + +>**For the back-end i18n works,** + +1. Create a file under the directory `/static/i18n/`, named as `locale_-.ini`. + + **NOTE: Please refer the keys which already exist in other i18n files to make your corresponding translations as your locale.** + +2. Add the new comming language to the `app.conf` file. + + In the file, `/Deploy/config/ui/app.conf`, append new item to the configuration section. + ``` + [lang] + types = en-US|zh-CN|- + names = en-US|zh-CN|- + ``` +>**Rebuild and start the Harbor project by using 'docker-compose' command.** \ No newline at end of file