【问题标题】:How to set defaultLocale with i18n and angular-localization?如何使用 i18n 和角度定位设置 defaultLocale?
【发布时间】:2016-06-03 17:51:49
【问题描述】:

我需要帮助!我试图在我的 controller.js 中更改 defaultLocale,并且我正在使用带角度的 i18n。结构为:

angular.module('starter.controllers', ['ngLocalize', 'ngLocalize.Config'])
.value('localeConf', {
    basePath: 'js/Locales',
    defaultLocale: 'pt-BR',
    sharedDictionary: 'common',
    fileExtension: '.lang.json',  
    ...

指令:

.controller('ConfiguracaoCtrl', function ($scope,... , locale, localeConf) {...

和功能:

$scope.selecionaIdioma = function(idioma){


        localeConf.defaultLocale = idioma; //tried to set a language
        localStorage.setItem("appIdioma",idioma);

    }

我有翻译语言的文件:js > locales > es-CL > common.lang.json 和 js > locales > pt-BR > common.lang.json

“defaultLocale”已更改,但语言未更改。请问,知道我做错了什么吗?

【问题讨论】:

  • 一点.. 在我的 app.js.. 我也有: angular.module('starter', ['ionic', .., 'ngLocalize', 'ngLocalize.Config']) .value('localeConf', { basePath: 'js/Locales', defaultLocale: 'pt-BR', sharedDictionary: 'common', fileExtension: '.lang.json', ...“选择语言”在我的controller.js .. 所以我需要在我的 app.js 中设置“defaultLocale”。这可能吗?

标签: angularjs ionic-framework internationalization


【解决方案1】:

您可以使用 ngStorage:https://github.com/gsklee/ngStorage

在您的应用中包含该库:angular.module('app', ['ngStorage']). 然后在你的控制器中使用,注入你的控制器为:$localStorage

那么你可以使用$localStorage.lanaguage = 'something'

然后再次获取信息:$scope.language = $localStorage.language

【讨论】:

    【解决方案2】:

    我得到如下..

    我声明了一个全局变量:

    var idioma = window.localStorage.appIdioma;
    

    并设置: ...

    defaultLocale: idioma,
    

    为我工作。

    【讨论】:

    • 真的很抱歉。但我认为你可以做得更好。这不是做事的好方法。你不应该使用 window.localStorage。这不是角度的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 2022-01-14
    • 2018-09-30
    • 2014-02-08
    • 1970-01-01
    相关资源
    最近更新 更多