用angular-translate强制翻译成某种语言 [英] Force translation into certain language with angular-translate

查看:48
本文介绍了用angular-translate强制翻译成某种语言的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用程序有两种翻译版本,英语和德语,但是我需要开发票模块才能使用单独的语言设置.

I have two translations for my app, English and German, but I need my invoicing module to use a separate language setting.

是否有一种方法可以强制发票页面上的标签使用我在 invoice_language 变量中设置的语言?

Is there a way to force the labels on the invoicing page to use the language I set in the invoice_language variable?

所以不是

{{ 'TD_ID' | translate }}

我需要类似的东西

{{ 'TD_ID' | translate:'{"language": invoice_language}' }}

推荐答案

在您的控制器中只绑定一次TD_ID,然后再交换语言即可.

Bind your TD_ID only once in your controller swapping the language before you do so.

在您看来,而不是:

{{ 'TD_ID' | translate }}

仅绑定而无需翻译过滤器:

simply bind without translate filter:

{{ 'TD_ID' }}

并在您的控制器中:

function setInvoiceTranslations(key){
  var invoice_language = 'de';
  currentLang = $translate.use();
  $translate.use(invoice_language);
  var translateText;
  $translate(key).then(function (translatedtext) {
    $scope[key] = translatedtext;
    $translate.use(currentLang);
  });

}

setInvoiceTranslations('TD_ID');

要查看实际运行情况,请参见 此矮子 (它改编了如何工作"示例,来自angular-translate.github.io ).

To see this in action see this plunker (which adapts the "How it works" example from angular-translate.github.io).

请参见此页面有关angular-translate的文档有关此技术的信息(请阅读).

See this page on angular-translate's docs for information about this technique (please read "Things to keep in mind" on that page).

(确保将$ translate注入到控制器中,或者确保最终将setInvoiceTranslations()函数放到任何地方)

(make sure you inject $translate into your controller, or where-ever you end up putting the setInvoiceTranslations() function)

这篇关于用angular-translate强制翻译成某种语言的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆