簡體   English   中英

用角度翻譯強制翻譯成某種語言

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM