2.5 KiB
Developer's Guide for Internationalization (i18n)
NOTE: All the files you created should use UTF-8 encoding.
Steps to localize the UI in your language
-
Copy the file
static/resources/js/services/i18n/locale_messages_en-US.jsto a new file in the same directory namedlocale_messages_<language>_<locale>.js.The file contains a JSON object named
locale_messages, which consists of key-value pairs of UI strings:var local_messages = { 'sign_in': 'Sign In', 'sign_up': 'Sign Up', ... };In the file
locale_messages_<language>_<locale>.js, translate all the values into your language. Do not change any keys. -
After creating your locale file, you should include it from the HTML page header template.
In the file
views/sections/header-include.htm, look for aifstatement which switch langauges based on the current language (.Lang) value. Add in aelse ifstatement for your language:{{ if eq .Lang "zh-CN" }} <script src="/static/resources/js/services/i18n/locale_messages_zh-CN.js"></script> {{ else if eq .Lang "en-US"}} <script src="/static/resources/js/services/i18n/locale_messages_en-US.js"></script> {{ else if eq .Lang "<language>-<locale>"}} <script src="/static/resources/js/services/i18n/locale_messages_<language>-<locale>.js"></script> {{ end }} -
Add the new language to the
I18nServicemodule.In the file
static/resources/js/services/i18n/services.i18n.js, append a new key-value item to thesupportLanguagesobject. This value will be displayed in the language dropdown list in the UI.var supportLanguages = { 'en-US': 'English', 'zh-CN': '中文', '<language>-<locale>': '<language_name>' };NOTE: Don't miss the comma before the new key-value item you've added.
-
In the directory
static/i18n/, copy the filelocale_en-US.inito a new file namedlocale_<language>-<locale>.ini. In this file, translate all the values on the right hand side into your language. Do not change any keys. -
Add the new language to the
app.conffile.In the file
Deploy/config/ui/app.conf, append a new item to the configuration section.[lang] types = en-US|zh-CN|<language>-<locale> names = en-US|zh-CN|<language>-<locale> -
Next, change to
Deploy/directory, rebuild and restart the Harbor by the below command:docker-compose down docker-compose up --build -d