2015-05-17 5 views
1

Im, использующий модуль gettext для углового обработки моих переводов. Это работает почти идеально. gettextgettext module in angularjs does not translate gettextCatalog.getString() в контроллере

Теперь у меня есть 2 контроллера. 1 называется basecontroller другими контроллерами для каждого представления. поэтому базовый контроллер подключен к тегу html и с помощью ngRoutes я присоединяю к каждому представлению diffrent-контроллер.

Теперь в базовом контроллере я установить язык так:

//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, он переводит тексты на eng.

Проблема в том, что для каждого контролера у меня также есть строки. это в 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>