[英]Force translation into certain language with angular-translate
我的應用程序有兩種翻譯版本,英語和德語,但是我需要開發票模塊才能使用單獨的語言設置。
有沒有一種方法可以強制發票頁面上的標簽使用我在invoice_language
變量中設置的語言?
所以代替
{{ 'TD_ID' | translate }}
我需要類似的東西
{{ 'TD_ID' | translate:'{"language": invoice_language}' }}
在交換語言之前,在控制器中僅將您的TD_ID綁定一次。
在您看來,而不是:
{{ 'TD_ID' | translate }}
只需綁定而無需翻譯過濾器:
{{ '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中 的“如何工作”示例 )。
有關此技術的信息,請參見angular-translate的文檔上的此頁面 (請閱讀該頁面上的“注意事項” )。
(確保將$ translate注入到控制器中,或確保最終將setInvoiceTranslations()函數放到任何地方)
您可以創建自定義過濾器(例如“ wordKey” | translateTo:languageKey)並調用$ translate服務:
.filter('translateTo', function ($translate) {
return function (key, lang) {
return $translate.instant(key, {}, undefined, lang);
}; });
您可以強制即時翻譯該單詞,而無需修改全局語言。
https://angular-translate.github.io/docs/#/api/pascalprecht.translate。$ translate
讓我們遵循以下文檔: https : forceLanguage
translate您可以使用forceLanguage
參數將文本翻譯成特定的語言。 例如:
$translate('PUSH_NOTIFICATION.NEW_RATING', {}, undefined, undefined, 'ar').then(function (translatedText) {
if(translatedText){
..do something
});
//'PUSH_NOTIFICATION.NEW_RATING' is Translate KEY in your language file
// {} for dynamic values
// 'ar' a specific language
另一種方法是按以下方式使用angular-translate的內置translate-language
指令:
<div translate-language="{{ invoice_language }}">
{{ 'TD_ID' | translate }}
</div>
無需創建自定義控件或在控制器中執行任何操作。
https://angular-translate.github.io/docs/#/api/pascalprecht.translate.directive:translateLanguage
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.