用angular-translate强制翻译成某种语言 [英] Force translation into certain language with 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屋!