【问题标题】:angularjs filter and localizationangularjs过滤器和本地化
【发布时间】:2016-05-08 09:12:29
【问题描述】:

我正在开发一个应该翻译成某种语言的应用程序。

当我使用数字、货币等过滤器时...结果显示在默认本地化中。

在文档中我发现我们可以导入一个js来设置我们应用的本地化显示。

<html ng-app>
 <head>
….
   <script src="angular.js"></script>
   <script src="i18n/angular-locale_de-de.js"></script>
….
 </head>
</html>

我想做的是允许用户定义他的本地化,在这种情况下我认为我必须更改导入的本地化脚本。

有什么好办法吗?

提前感谢您的回复

【问题讨论】:

    标签: angularjs internationalization


    【解决方案1】:

    我建议使用angular-translate。在你的 html 中链接脚本文件并在 angular 中导入模块:

    var app = angular.module('myApp', ['pascalprecht.translate']);
    

    像这样翻译你的文本:

    <ANY>{{'TRANSLATION_ID' | translate}}</ANY>
    

    并设置您的首选语言

    app.config(['$translateProvider', function ($translateProvider) {
      $translateProvider
        .translations('en', translations)
        .preferredLanguage('en');
    }]);
    

    您也可以使用$translateProvider.determinePreferredLanguage();自动确定用户语言。 如果您想为每个语言环境使用不同的 json 文件,请使用 asynchronous loading

    编辑: 通过

    在运行时切换您的语言环境
    app.controller('Ctrl', ['$translate', '$scope', function ($translate, $scope) {
    
      $scope.changeLanguage = function (langKey) {
        $translate.use(langKey);
      };
    }]);
    

    【讨论】:

    • 好的,谢谢,我已经使用了角度翻译。这是对我对应用程序中所有文本元素的需求的回复,但不是对日期和数字格式的需求。我没有找到 angular-translate 的回复来管理它,但也许我错过了一些东西。
    • 你试过this的日期吗?
    • 或者如果你想使用语言环境脚本试试angular-dynamic-locale
    • 是的,谢谢,这似乎满足了我的需要。使用 angular-dynamic-locale 管理本地脚本的方式很有趣。再次感谢您的回复。
    猜你喜欢
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多