Ionic + AngularJS angular-translate 国际化本地化解决方案
欢迎访问我们的网站,网站上有更多关于技术性的交流:http://www.ncloud.hk/技术分享/ionic-plus-angularjs-angular-translate-国际化本地化解决方案/
一、手动切换语言
1.在app.js文件中首先要加上一个参数:
angular.module(’passbox’,[‘ionic’,’pascalprecht.translate’])
2.需要引用js文件
<script src=”js/angular-translate.js”></script>
3.在edit.html文件中加入点击切换按钮:
<button class="button" ng-click="changeLanguage('en')" translate="Language_en"></button>
<button class="button" ng-click="changeLanguage('zh')" translate="Language_zh"></button>
4.在controllers.js文件edit的控制器中加入切换的函数:
.controllers(‘edit’,[‘$scope’ ,function($scope, $translate){
$scope.changeLanguage = function (langkey) {
$translate.use(langkey);
};
}])
5.在app.js文件中先定义变量:
var translationsEN = {
Language_en: 'english',
Language_zh: 'chinese',
};
var translationZH = {
Language_en: '英文',
Language_zh: '中文',
};
之后再写函数方法:
angular.model(‘passbox’,[‘ionic’,’pascalprecht.translate’]);
.config(function($stateProvider,$translateProvider){
$translateProvider.translations(‘en’,translationEN);
$translateProvider.translations(‘zh’,translationZH);
$translateProvider.preferredLanguage(‘en’);//首选语言
$translateProvider.fallbackLanguage(‘en’);
}
二、自动获取手机语言为默认语言
1.在app.js文件中首先要加上一个参数:
angular.module(’passbox’,[‘ionic’,’pascalprecht.translate’]);
2.需要引用js文件
<script src=”js/angular-translate.js”></script>
<script src=”js/angular-translate-loader-static-files.min.js”></script>
3.在app.js文件中添加参数:
.config(function($stateProvider,$translateProvider){
$translateProvider.registerAvailabeLanguageKeys([‘en’,’zh’],{
‘en-*’:’en’,
‘zh-*’:’zh’
});
$translateProvider.determinePreferredLanguage();//这个方法是获取手机默认语言设置
4.翻译的变量可一根据上面那样来自己定义,也可以通过路由来改变(但是经过测试这种方法不适用在手机上,模拟机上都测试失败(增加第五条为手机可以识别的)。):
【1】可以将每个翻译文件放到/language/中,比如/languages/en.json /language/zh.json
【2】然后通过useStaticFilesLoader来配置:
$translateProvider.useStaticFilesLoader({
Prefix:’/languages/’,
Suffix:’.json’
});
【3】需要引用js文件
<script src=”js/angular-translate-loader-static-files.min.js”></script>
【4】注意:
json文件格式要注意不可以有注释内容;
引用的js文件需要的是静态的文件angular-translate-loader-static-files.min.js。
5.这是经过测试研究后又得到的经验,上边路由方法其实是不可行的,可以将json文件改为js文件,在index.html文件中引用,接着在app文件中:
$translateProvider.translations('en',_translate_EN);
$translateProvider.translations('zh',_translate_ZH);
$translateProvider.translations('ja',_translate_JA);
$translateProvider.registerAvailableLanguageKeys(['en','zh','ja'],{
'en-*': 'en',
'zh-*': 'zh',
'jp-*': 'ja'
});
$translateProvider.determinePreferredLanguage();
当然这种方法也不需要再引入<script src=”js/angular-translate-loader-static-files.min.js”></script>这个文件了.
三、这个自动获取手机语言一加上去,瞬间感觉软件高大上了好多~
参考教程:通过插件来控制切换语言的:https://blog.nraboy.com/2014/08/internationalization-localization-ionicframework-angular-translate/
这个更详细一点:http://angular-translate.github.io/docs/#/guide/07_multi-language
Ionic + AngularJS angular-translate 国际化本地化解决方案的更多相关文章
- [转]Ionic + AngularJS angular-translate 国际化本地化解决方案
本文转自:http://www.cnblogs.com/maoyazhi/p/4332362.html 欢迎访问我们的网站,网站上有更多关于技术性的交流:http://www.ncloud.hk/技术 ...
- [Angularjs]angular ng-repeat与js特效加载先后导致的问题
写在前面 最近在项目中遇到这样的一个前端的bug,在ng-repeat中绑定的图片,有一个晃动的特效,在手机端浏览的时候,图片有时候会正常展示,有时就展示不出来.当时猜测是因为angularjs与特效 ...
- Ionic + AngularJS
Ionic Framework Ionic framework is the youngest in our top 5 stack, as the alpha was released in lat ...
- Ionic/Angularjs 知识点解析
Ionic/Angularjs 知识点解析 angular-ui-router(状态跳转) state的定义:(在app.js的config下配置) $stateProvider .state('ap ...
- angular项目国际化配置(ngx-translate)
原文 https://www.jianshu.com/p/7d1da3098625 大纲 1.认识ngx-translate 2.ngx-translate的配置步骤 3.ngx-translate的 ...
- JS魔法堂:不完全国际化&本地化手册 之 理論篇
前言 最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...
- JS魔法堂:不完全国际化&本地化手册 之 实战篇
前言 最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...
- JS魔法堂:不完全国际化&本地化手册 之 拓展篇
前言 最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...
- Cordova Ionic AngularJS
实践分享:开始用Cordova+Ionic+AngularJS开发App http://www.cocoachina.com/webapp/20150707/12395.html
随机推荐
- debian 切换最新源
deb http://ftp.cn.debian.org/debian sid main#deb http://ftp.debian.org/debian/ wheezy main
- LibreOJ2241 - 「CQOI2014」排序机械臂
Portal Description 给出一个\(n(n\leq10^5)\)个数的序列\(\{a_n\}\),对该序列进行\(n\)次操作.若在第\(i\)次操作前第\(i\)小的数在\(p_i\) ...
- BZOJ3697 采药人的路径 【点分治】
题目 采药人的药田是一个树状结构,每条路径上都种植着同种药材. 采药人以自己对药材独到的见解,对每种药材进行了分类.大致分为两类,一种是阴性的,一种是阳性的. 采药人每天都要进行采药活动.他选择的路径 ...
- 刷题总结——棘手的操作(bzoj2333)
题目: 题目背景 SCOI2011 DAY2 T1 题目描述 有 N 个节点,标号从 1 到 N ,这 N 个节点一开始相互不连通.第i个节点的初始权值为 a[i] ,接下来有如下一些操作:U x y ...
- linux maven安装(三)
1.下载maven http://maven.apache.org/download.cgi 我下载的是:apache-maven-3.3.9-bin.tar.gz 解压:tar -zxvf apac ...
- 关于后台返回excel文件的问题
一般情况ajax请求只能获取解析非流文件类型,而excel是流文件类型,这个时候获取到的数据会是一串乱码的字符串 想要下载这个excel文件,通过form表单模拟的方式可以解决 var form = ...
- GridView主键列不让编辑时应该修改属性DataKeyNames
原文发布时间为:2008-08-02 -- 来源于本人的百度文章 [由搬家工具导入] 为了防止GridView主键被编辑,应该在GridView属性DataKeyNames里面写上主键
- 在vue-cli环境下模拟数据接口及如何应用mockjs
第一种办法 1.需要先准备json文件 在根目录下新建个oapi文件夹下新建个iorder.json文件将需要遍历的json数据沾里面. 2.在build文件夹下新建dev-server.js 文件 ...
- PXC部署,配置,操作原理
参考:https://www.cnblogs.com/kevingrace/p/5685371.html?utm_source=itdadao&utm_medium=referra ...
- 慕课 python 操作数据库2 银行转账实例
CREATE TABLE `account` ( `acctid` ) DEFAULT NULL COMMENT '账户ID', `) DEFAULT NULL COMMENT '余额' ) ENGI ...