如何按数组顺序翻译和使用值?

时间:2016-06-07 06:39:16

标签: angular-translate

我有一个字符串“Hello,我的名字是{0}。我来自{1}”和一个排序的数组[“Michael”,“Berlin”]。

我想将第一个数组元素放在{0}中,第二个放在{1}中,依此类推。我如何通过angular-translate实现这一目标?

2 个答案:

答案 0 :(得分:1)

如果你可以将你的数组从简单的“无密钥”转换为一个漂亮的json关联对象,那么使用像

这样的模板会更容易
Hello, my name is {name}. I'm from {city}

然后让模块完成工作,例如通过指令(从另一个答案接管数组定义):

<span translate translate-values="{'name': vm.array[0], 'city': vm.array[1]}"></span>

使用这种方法,你会得到你想要的。但建议最初采用结构化对象而不是简单数组。

可以找到有关替换功能的文档here

答案 1 :(得分:0)

您可以将要翻译的文本放在不同的字符串中并单独翻译。

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

app.config(function ($translateProvider) {
  $translateProvider.translations('en', {
    'HELLO': 'Hello, my name is ',
    'IM_FROM': 'Im from '
  });
  $translateProvider.translations('fr', {
    //your translation in other languages
  });
  $translateProvider.preferredLanguage('en');
});

您可以在此处阅读文档:angular-translate

在你的控制器中定义你的数组:

vm.array = ["Michael", "Berlin"]

在你的HTML中:

<div translate="HELLO"></div>{{vm.array[0]}}. 
<div translate="IM_FROM"></div>{{vm.array[1]}}