2015-05-17 73 views
1

我使用gettext模塊來處理我的翻譯。這工作幾乎完美。 gettextangularjs中的gettext模塊不會在控制器中轉換gettextCatalog.getString()

現在我有2個控制器。 1被稱爲基礎控制器其他控制器是每個視圖。所以基本控制器被附加到html標籤,並使用ngRoutes我附加一個不同的控制器到每個視圖。

現在,在基本控制器我設置的語言是這樣的:

//set lang 
$rootScope.selectedLang = 'NL'; 

//Switch language 
$scope.setLang = function(type,lang) { 
    if (type == 'select') { 
     ngDialog.open({ 
      template: 'views/popups/set-language.php', 
      className: 'ngdialog-theme-flat', 
      controller: 'BaseCtrl' 
     }); 
    } 

    if (type == 'set') { 
     if (lang == 'nl') { 
      gettextCatalog.setCurrentLanguage('nl'); 
      $rootScope.selectedLang = 'NL'; 
     } 

     if (lang == 'en') { 
      gettextCatalog.setCurrentLanguage('en'); 
      $rootScope.selectedLang = 'EN'; 
     } 
     ngDialog.closeAll(); 
    } 
} 

能正常工作。當用戶點擊NL時,它轉換爲NL,當用戶點擊EN時,它將文本翻譯爲英文。

問題是每個控制器我也有字符串。這些都是在javascript所以在searchcontroller例如我有:

$rootScope.stepText = gettextCatalog.getString("step_1_header"); 

這些翻譯是像一個頭標題全局事,即每個控制器的變化。

這也很好,但現在的問題是開關。當我切換到英文時,所有文本都會被翻譯,但不是$ rootScope.stepText = gettextCatalog.getString(「step_1_header」);

我認爲這是因爲我在底座控制器中進行切換。有沒有人有任何想法來解決這個問題?

回答

3

任何在範圍上的東西都不應該使用gettextCatalog.getString

使用這樣的事情:

$rootScope.stepText = gettext("My step 1 title"); 

並在視圖:

<h1>{{stepText | translate}}</h1> 
相關問題