Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 333|回复: 0

Ionic + AngularJS angular-translate 国际化本地化解决方案

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-5-10 05:07:16 | 显示全部楼层 |阅读模式

    欢迎访问我们的网站,网站上有更多关于技术性的交流: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

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-19 07:32 , Processed in 0.063878 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表