知识科普
i18n是Internationalization得缩写,取第一个字母和最后一个字母,以及中间省略的字母数目,即i18n,类似的l10n是Localization得意思。
通常i18n是国际化的意思,l10n,则是本地化的意思。
使用 Angular-translate
1引入
如果使用了requireJS这种异步加载服务,则需要声明
shim: {
….
angular_translate:{
deps: [‘angular’],
exports: ‘angular_translate’
},
2注入
var app = angular.module(“MyApp”,[‘pascalprecht.translate’]);
3配置
app.config(['$translateProvider',function($translateProvider){
$translateProvider.translations('en',{
'TITLE':'Hello',
'FOO':'This is a paragraph'
});
$translateProvider.translations('zh',{
'TITLE':'你好',
'FOO':'这是一幅图'
});
$translateProvider.preferredLanguage('zh');
}]);
//文件形式 需要引入
<script src=”js/angular-translate-loader-static-files.min.js”></script>
$translateProvider.useStaticFilesLoader({
prefix: '/i18n/locate-',
suffix: '.json'
});
//请求的文件是/i18n/locate-zh.json
$translateProvider.preferredLanguage('zh');
4使用
<h1>{{ 'TITLE' | translate }}</h1>
<span translate="FOO"></span>
5加载中出现延迟
引入