[转]Ionic + AngularJS angular-translate 国际化本地化解决方案
本文转自:http://www.cnblogs.com/maoyazhi/p/4332362.html
欢迎访问我们的网站,网站上有更多关于技术性的交流:http://www.ncloud.hk/技术分享/ionic-plus-angularjs-angular-translate-国际化本地化解决方案/
一、手动切换语言
1.在app.js文件中首先要加上一个参数:
|
1
|
angular.module(’passbox’,[‘ionic’,’pascalprecht.translate’]) |
2.需要引用js文件
|
1
|
<script src=”js/angular-translate.js”></script> |
3.在edit.html文件中加入点击切换按钮:
|
1
2
|
<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的控制器中加入切换的函数:
|
1
2
3
4
|
.controllers(‘edit’,[‘$scope’ ,function($scope, $translate){ $scope.changeLanguage = function (langkey) { $translate.use(langkey); };<br>}]) |
5.在app.js文件中先定义变量:
|
1
2
3
4
5
6
7
8
|
var translationsEN = { Language_en: 'english', Language_zh: 'chinese',}; var translationZH = { Language_en: '英文', Language_zh: '中文',}; |
之后再写函数方法:
|
1
2
3
4
5
6
7
|
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文件中首先要加上一个参数:
|
1
|
angular.module(’passbox’,[‘ionic’,’pascalprecht.translate’]); |
2.需要引用js文件
|
1
2
|
<script src=”js/angular-translate.js”></script><script src=”js/angular-translate-loader-static-files.min.js”></script> |
3.在app.js文件中添加参数:
|
1
2
3
4
5
6
|
.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来配置:
|
1
2
3
4
|
$translateProvider.useStaticFilesLoader({ Prefix:’/languages/’, Suffix:’.json’}); |
【3】需要引用js文件
|
1
|
<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文件中:
|
1
2
3
4
5
6
7
8
9
|
$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.ncloud.hk/技术分享/ionic-plus-angularjs-angular-translate-国际化本地化解决方案 ...
- [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
随机推荐
- DDD开发框架ABP之导航菜单
每一个网站都会有导航菜单(通常不止一个),ASP.NET Boilerplate(后文简称ABP)提供了一种创建和使用菜单的通用架构,利用架构我们可以方便的创建菜单并显示给用户.本文主要说明菜单的创建 ...
- windows下redis启动报Creating Server TCP listening socket *:6379: bind: No such file or directory
解决方法: 按顺序输入如下命令就可以连接成功 # redis-cli.exe# > shutdown# > exit# redis-server.exe redis.windows.con ...
- java系统库性能优化注意点
对于大部分的应用系统开发来说,微秒级别的优化通常是被忽略不计或者不关心的,因为有着更多优化点,但是对于开发供应用系统使用的公用库来说,大部分的操作通常都是对字符.数字.字符串.字节的操作,且这些系统库 ...
- cl_gui_cfw=>flush
用法一: REFRESH_TABLE_DISPLAY虽然刷新的界面,但是SAP GUI并不是实时更新,而是将更新的结果放在缓存中,手动调用CL_GUI_CFW=>FLUSH才能触 ...
- Installing FIM 2010 R2 SP1 Portal on SharePoint Foundation 2013
http://www.fimspecialist.com/fim-portal/installing-fim-2010-r2-sp1-portal-on-sharepoint-foundation-2 ...
- 详解Paint的各种set方法
一.前言 我们用set方法来设置画笔的样式,类似于我们挑选画笔画画的过程.由于上面有些方法不支持硬件加速,所以在高版本系统中可能会没有效果.因此,我们首先来看看官方废弃的方法. 下图来自:https: ...
- android Java BASE64编码和解码二:图片的编码和解码
1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...
- iOS 自动布局详细介绍
1. 自动布局的理解 iOS自动布局很有用,可以在不同size的屏幕上运行,原先看的头痛,还是习惯用最蠢的[UIScreen mainScreen].bounds.size.width等来布局,后来实 ...
- adb 的相关操作及遇到的问题
一. 电脑连接你的手机 1.打开手机的开发者模式 并 开启调试工具 2.用手机连接上 你的电脑 3.在eclipse 中的DDMS 中查看是否 连接到 如图所示: 这时会发现 多了一个连接 :说明 ...
- hadoop2.6完全分布式安装HBase1.1
本文出自:http://wuyudong.com/archives/119 对于全分布式的HBase安装,需要通过hbase-site.xml文档来配置本机的HBase特性,由于各个HBase之间通过 ...