Angular使用内置i18n国际化配置Angular国际化

前言

此文使用Angular官方工具完成国际化,优势原滋原味,贴合angular设计!我喜欢采用12345步骤法分享。喜欢的朋友点点关注不迷路。定时更新跟多 Angular 文章

1.环境准备


// 添加本地包
ng add @angular/localize

2.添加格式化标识

// 第一种添加方式
<h1 i18n>Hello i18n!</h1>

// 第二种方式 通过 @@xxx 来自定义id
<h1 i18n="@@hello" >Hello i18n!</h1>

3.生成翻译模板语言包

第一种生成方式

在src/locale/ 下生成基础文件 messages.xlf
ng extract-i18n --output-path src/locale/

第二种生成方式

指定生成src/locale/messages.xlf
ng extract-i18n --out-file src/locale/messages.xlf

4.语言文件的介绍与使用(messages.xlf)

介绍:

中文名是XML本地化数据交换格式,一种格式而已

范本:

<?xml version="1.0" encoding="UTF-8" ?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <file source-language="zh-CN" datatype="plaintext" original="ng2.template">
    <body>
      <trans-unit id="8def8481e91291a52f9baa31cbdb313e6a6ca02b" datatype="html">
        <source>Hello i18n!</source>
        <target>你好 i18n!</target>
      </trans-unit>
    </body>
  </file>
</xliff>

trans-unit:

表示一个转化单元,内部涵盖 , 等标签,主要讲解这两标签

source:

表示原本的文本

target:

表示译文

5.实现多国语言创建

第一步

打开src/locale/messages.xlf文件复制一份

第二步

修改 src/locale/messages copy.xlf 文件为 messages.zh.xlf 表示为中文语言模板

第三步

修改 messages.zh.xlf 文件的file标签的属性source-language=“zh-CN”(可以搜索找file即可找到)

结语:

重复以上步骤完成对其他语言的扩展

6.配置angular.json

第一步:

配置 projects-> architect-> configurations

{
 "projects":{
  "architect":{
   "configurations":{
           "zh": {
              "aot": true,
              "outputPath": "dist/zh/",
              "i18nFile": "src/locale/messages.zh.xlf",
              "i18nFormat": "xlf",
              "i18nLocale": "zh",
              "i18nMissingTranslation": "error"
            },
            "en": {
              "aot": true,
              "outputPath": "dist/en/",
              "i18nFile": "src/locale/messages.en.xlf",
              "i18nFormat": "xlf",
              "i18nLocale": "en",
              "i18nMissingTranslation": "error"
            },
    }
  }
 }
}

第二步:

配置 serve->configurations

"serve": {
          "configurations": {
            "zh": {
              "browserTarget": "i18ndemo:build:zh"
            },
            "en": {
              "browserTarget": "i18ndemo:build:en"
            },
          }
}

"browserTarget": “i18ndemo:build:zh”
i18ndemo 此处应该换成您的工程名字

7.最后一步启动

启动英文环境 ng serve --configuration=en

启动中文环境ng serve --configuration=zh

启动饿文环境 ng serve --configuration=ru

8.补录多环境启动

把三个包都打出来即可

或者在package.json中的scripts 下添加:

"build:en_zh_ru":"ng build --configuration=en && ng build --configuration=zh  && ng build --configuration=ru"

启动使用:npm run build:en_zh_ru

点击链接加入群聊 【Cordova/Angular/Ionic/ 中文社区】群文件内有免费全集angular教程

进入方式点击连接

https://jq.qq.com/?_wv=1027&k=rk6cVCiN

交流群

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
实现AngularJS 1.4.4的i18n国际化可以通过使用angular-translate库来完成。下面是大致的步骤: 1. 安装angular-translate库,在命令行中执行以下命令: ``` npm install angular-translate --save ``` 2. 在HTML中引入angular-translate库的js文件,例如: ```html <script src="bower_components/angular-translate/angular-translate.js"></script> ``` 3. 在AngularJS应用程序中注册'pascalprecht.translate'模块,例如: ```javascript var myApp = angular.module('myApp', ['pascalprecht.translate']); ``` 4. 配置语言文件,例如: ```javascript myApp.config(function($translateProvider) { $translateProvider.translations('en', { TITLE: 'Hello', FOO: 'This is a paragraph.', BUTTON_LANG_EN: 'english', BUTTON_LANG_DE: 'german' }); $translateProvider.translations('de', { TITLE: 'Hallo', FOO: 'Dies ist ein Absatz.', BUTTON_LANG_EN: 'englisch', BUTTON_LANG_DE: 'deutsch' }); $translateProvider.preferredLanguage('en'); }); ``` 5. 在HTML中使用AngularJS提供的指令来实现i18n,例如: ```html <div ng-controller="Ctrl"> <h1>{{ 'TITLE' | translate }}</h1> <p>{{ 'FOO' | translate }}</p> <button ng-click="changeLanguage('en')" translate="BUTTON_LANG_EN"></button> <button ng-click="changeLanguage('de')" translate="BUTTON_LANG_DE"></button> </div> ``` 6. 在控制器中定义changeLanguage方法,例如: ```javascript myApp.controller('Ctrl', function ($scope, $translate) { $scope.changeLanguage = function (key) { $translate.use(key); }; }); ``` 以上是基于AngularJS 1.4.4和开发工具Eclipse实现i18n国际化的大致步骤,具体实现会因应用程序的需求而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值