国际化
来源:JHipster |
时间:2018-11-04
|
|

介绍

在生成一个新项目的时候,你将会被询问是否需要启用国际化的支持。

如果启用,你需要为你的应用选择一个原生语言。然后你可以选择你需要添加的其他语言。如果你一开始没有选择支持或者添加语言,那么稍后你可以通过语言生成器添加语言。

如果你确认你的应用不需要翻译成其他语言,你就可以不启用国际化。

支持的语言

  • Arabic (Libya)

  • Armenian

  • Indonesian

  • Catalan

  • Chinese (Simplified)

  • Chinese (Traditional)

  • Czech

  • Danish

  • Dutch

  • English

  • Estonian

  • Farsi

  • French

  • Galician

  • German

  • Greek

  • Hindi

  • Hungarian

  • Italian

  • Japanese

  • Korean

  • Marathi

  • Polish

  • Portuguese

  • Portuguese (Brazilian)

  • Romanian

  • Russian

  • Slovak

  • Serbian

  • Spanish

  • Swedish

  • Turkish

  • Tamil

  • Thai

  • Turkish

  • Ukrainian

  • Vietnamese

在项目生成之后如何添加语言?

可以通过以下命令来进行添加:

jhipster languages

Languages configuration is starting
? Please choose additional languages to install (Press <space> to select, <a> to toggle all, <i> to inverse selection)
❯◯ Arabic (Libya)
 ◯ Armenian
 ◯ Catalan
 ◯ Chinese (Simplified)
 ◯ Chinese (Traditional)
 ◯ Czech
 ◯ Danish
(Move up and down to reveal more choices)1234567891011

如何添加支持列表之外的语言

所有的语言文件存储于这些文件夹:客户端src/main/webapp/i18n,服务端src/main/resources/i18n

下边是一个叫做new_lang的语言的安装步骤:

  1. 复制src/main/webapp/i18/ensrc/main/webapp/i18/new_lang(这是所有前端文件存储的地方)

  2. 翻译存储在src/main/webapp/i18/new_lang所有文件

  3. 为AngularJs 1 添加语言的常量定义代码,此常量位于src/main/webapp/app/components/language/language.constants.js

    .constant('LANGUAGES', [    'en',    'fr',    'new_lang'
        // jhipster-needle-i18n-language-constant - JHipster will add/remove languages in this array]
  4. src/main/resources/i18n文件夹中,拷贝messages_en.properties文件为messages_new_lang.properties(服务端所有的翻译文件存储在这儿)

  5. 翻译messages_new_lang.properties文件中的所有键

  6. src/main/webapp/app/components/language/language.filter.js文件的函数filter('findLanguageFromKey')为Angular JS 1添加新的语言名称。在src/main/webapp/app/shared/language/find-language-from-key.pipe.ts文件的变量FindLanguageFromKeyPipelanguages添加新的语言名称。

  7. webpack.common.js文件中为Angular 2+添加新的语言绑定

    new MergeJsonWebpackPlugin({    output: {        groupBy: [
                { pattern: "./src/main/webapp/i18n/en/*.json", fileName: "./i18n/en.json" },
                { pattern: "./src/main/webapp/i18n/new_lang/*.json", fileName: "./i18n/new_lang.json" }            // jhipster-needle-i18n-language-webpack - JHipster will add/remove languages in this array
            ]
        }
    })

现在,新的语言new_lang就出现在了语言菜单的下来框中,并且前端和后端应用都可用。

如何移除已存在的语言?

通过以下步骤移除叫做old_lang的语言:

  1. 移除文件夹src/main/webapp/i18/old_lang

  2. 进入文件src/main/webapp/app/components/language/language.constants.js或者 src/main/webapp/app/shared/language/language.constants.tswebpack.common.js移除定义的常量

  3. 移除文件src/main/resources/i18n/messages_old_lang.properties


提交
查看更多评论
没有更多评论