angularjs1.*前台国际化配置,不废话直接上代码。
1、引入依赖的js文件,资源地址自行网上google/百度:
<script type="text/javascript" src="路径/angular.min.js"></script>
<script type="text/javascript" src="路径/angular-translate.min.js"></script>
<script type="text/javascript" src="路径/angular-translate-loader-static-files.min.js"></script>
<script type="text/javascript" src="路径/filters/T.js"></script>
<script type="text/javascript" src="路径/service/T.js"></script>
2、angular.module注入国际化对象:
angular.module('ngApp', ['pascalprecht.translate',...])
3、新增外部国际化json文件,在i18n目录下(因自己项目目录而定),创建cn.json 和 en.json,如下:
4、配置ngApp.config
ngApp.config(function($controllerProvider, $compileProvider, $filterProvider, $provide, $routeProvider,$translateProvider) {
//国际化配置加载
$translateProvider.useStaticFilesLoader({
files: [{
prefix: '/Portal/i18n/',//语言包路径
suffix: '.json' //语言包后缀名
}]
});
//默认加载的语言包
$translateProvider.preferredLanguage('cn');//默认加载语言包
});
5、自定义国际化过滤器(filters/T.js) ,用于html中调用
ngApp.filter("T", ['$translate', function($translate) {
return function(key) {
if(key){
return $translate.instant(key);
}
};
}]);
html调用:
6、自定义国际化服务类(service/T.js),用于controller中调用
ngApp.factory('T', ['$translate', function($translate) {
var T = {
T:function(key) {
if(key){
return $translate.instant(key);
}
return key;
}
}
return T;
}]);
controller调用: