web项目实现国际化

web网站实现国际化:

思路

1.引入js文件
2.添加(.properties)资源文件
3.编写js方法

1.需要的js文件:

[jquery.i18n.properties-1.0.9.js][1]
jquery.js    

2.资源文件:以.properties文件的key-value的特性,设置key和value,一般一个语种要写一个文件。

例如: zh.properties文件这样写:publicName=姓名
       en.properties文件这样写:publicName=name
  

3.js方法:在js方法中加载资源文件,根据key得到value值,然后通过选择器在给元素赋值,显示在页面上。

例如:加载zh.properties文件时,可以根据publicName得到”姓名“
      加载en.properties文件时,可以根据publicName得到“name”

实践

第一步:

<script type="text/javascript" src="${js}/jquery.i18n.properties-1.0.9.js"></script>
<script type="text/javascript" src="${js}/jquery-3.2.1.min.js"></script>

第二步:
图片描述

我的这里做的是中文简体和繁体的转化:
所以简体的文件名是messahes_CN_dl.properties,意思是中国大陆

内容如下:startReader = 开始阅读

繁体字的文件名是message_CN_tw.properties,意思是中国台湾

内容如下:startReader = 開始閱讀

第三步:

function loadProperties() {
    jQuery.i18n.properties({//加载资浏览器语言对应的资源文件
        name : 'messages_CN_dl', //资源文件名称
        path : '${messages}/', //资源文件路径
        mode : 'map', //用Map的方式使用资源文件中的值
        callback : function() {//加载成功后设置显示内容
            $('.btn_start').html($.i18n.prop('startReader'));
        }
    });
}

此方法的name的值是加载的资源文件名,

如果加载message_CN_tw.properties文件。
那么    $.i18n.prop('startReader')的值就是“開始閱讀”,
如果加载messahes_CN_dl.properties
那么    $.i18n.prop('startReader')的值就是“开始阅读”,

所以这个name的值也可以用作该方法的参数,根据不同的参数得出不同的字体(或语种)。

结果:

可以看到中间开始阅读的按钮字体的变化
图片描述
图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现AngularJS 1.4.4的i18n国际化可以通过以下步骤: 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实现i18n国际化的大致步骤,具体实现会因应用程序的需求而有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值