如何在刷新页面后使用angularJS保留最后的翻译?

时间:2016-04-11 14:58:49

标签: angularjs cookies translation multilingual angular-translate

我刚开始使用angularJS,我想在我的应用程序中添加翻译选项。

我尝试使用一个变量进行第一次测试时使用2个按钮来引用2个不同的语言,本地语言是ENGLISH,第二个是FRENSH,它可以工作但问题是在刷新我的应用程序后,这个变量转向当地语言。我该如何解决这个问题。这是我在angularJS上的代码。

     'use strict';
     var app = angular.module('app', ['pascalprecht.translate']);
    app.config(function($translateProvider) {
     $translateProvider.fallbackLanguage('en');
     $translateProvider .translations('en', {
        msg : 'Hello',
      })
      $translateProvider.translations('fr', {
        msg : 'bonjour'
      });
      $translateProvider.preferredLanguage('en');
    });
    app.controller('Ctrl', function($translate, $scope) {
      $scope.changeLanguage = function (langKey) {
        $translate.use(langKey);
      };
    });

谢谢

2 个答案:

答案 0 :(得分:0)

您可能希望使用某种localStorage服务来保存所选语言 你必须决定你想要达到哪种持久性(通过会话?用户?),选择最佳的持久性模型来使用......

答案 1 :(得分:0)

您应该使用一种方法在应用程序的生命周期内保留数据。

例如,你可以使用cookies。

但如果您想以角度方式进行,可以使用this repo中的$localStorage$sessionStorage

还有其他存储库。

之后,当用户刷新页面时,您可以检查 用于保存在会话($sessionStorage)或浏览器($localStorage)中的语言信息,并显示正确的语言。

正如@MarcoS所说,如果你想展示另一个 您应存储和获取语言信息的特定用户的语言 来自数据库。

goodluck!