如何使用ng-if和angular-translate

时间:2017-01-20 05:29:06

标签: angularjs ionic-framework angular-translate

我正在使用Ionic框架编写移动应用程序,我也使用angular-translate,它工作得很好,但我希望根据用户语言选择显示英语或西班牙语内容。我试图使用ng-if验证条件,这是我的代码的一部分:

      <div  class="tit" ng-if=" {{'LANGUAGE' | translate}} == en ">
         {{adult.desdeAct}} - {{adult.titleAct}}
  </div>
     </div>
     <div  class="tit" ng-if=" 'LANGUAGE' | translate == sp ">
        <div  class="tit">
         {{adult.desdeAct}} - {{adult.titleActEs}}
  </div>
     </div>

但是ng-if不是woking,我的意思是没有验证表达。 有人能给我一个小费吗?

此致 caribesoft

3 个答案:

答案 0 :(得分:1)

那不是你应该如何使用翻译。我们的想法是拥有一段HTML代码,并为您想要支持的语言提供键/值词典:

根据他们的docs guide,你会有类似的内容:

app.config(['$translateProvider', function ($translateProvider) {
  $translateProvider.translations('en', {
    'LANGUAGE': 'Hello'
  });

  $translateProvider.translations('sp', {
    'LANGUAGE': 'Hola'
  });

  $translateProvider.preferredLanguage('en');
}]);

现在,在您为LANGUAGE设置值之后,您可以执行以下操作:

<div  class="tit">
    {{'LANGUAGE' | translate}}
</div>

答案 1 :(得分:0)

我还用两种语言制作了一个应用程序:English&amp;希腊语,我用不同的方式在语言之间切换。而不是让ng-if用于语言交换,你可以用这种方式获得它。

使用{{'KEYTEXT' | translate}}作为div内的文本,并在转换表中添加这些键及其值。

AS

<div  class="tit" >
      <1--here will be Text -->
      {{'KEYTEXT' | translate}}
 </div>

在您的ENGLISH翻译表中

{
 "KEYTEXT" : 'English Text'
}

在您的西班牙语翻译表中

{
 "KEYTEXT" : 'Spanish Text'
}

答案 2 :(得分:0)

你应该使用一个全局变量并为其赋值,例如&#34; en&#34;或者&#34; sp&#34;根据您的用户选择,然后根据选择显示语言,如:

if(user selects spanish) {
     GlobalVariable = "sp";
     $translateProvider.preferredLanguage(GlobalVariable);
}

<div  class="tit" ng-if="GlobalVariable == 'sp' ">
          {{{{'LANGUAGE' | translate}} }}
     </div>

你也可以看看 @Omri Aharon 的答案,以便更好地理解。