2017-01-20 3 views
0

Я пишу мобильное приложение с использованием Ionic framework, также я использую angular-translate и его работу хорошо, но я хочу отображать контент на английском или испанском языках в зависимости от выбор языка пользователя. Я пытаюсь использовать нг-если для проверки состояния, это часть моего кода:Как использовать ng-if с угловым переводом

 <div class="tit" ng-if=" {{'LANGUAGE' | translate}} == en "> 
     {{adult.desdeAct}} - {{adult.titleAct}} 
    </div> 
    </div> 
    <div class="tit" ng-if=" 'LANGUAGE' | translate == sp "> 
     <div class="tit"> 
     {{adult.desdeAct}} - {{adult.titleActEs}} 
    </div> 
    </div> 

Но нг-если не WOKING, я имею в виду не подтверждения expresion. Может ли кто-нибудь дать мне отзыв?

С уважением, caribesoft

ответ

1

Это не совсем, как вы должны использовать переводы. Идея заключается в том, чтобы иметь один кусок HTML кода, и иметь ключ/значение словарей для языков, которые вы хотите поддержать:

базы на их docs guide, вы будете иметь что-то вроде:

app.config(['$translateProvider', function ($translateProvider) { 
    $translateProvider.translations('en', { 
    'LANGUAGE': 'Hello' 
    }); 

    $translateProvider.translations('sp', { 
    'LANGUAGE': 'Hola' 
    }); 

    $translateProvider.preferredLanguage('en'); 
}]); 

Теперь после того, как вы установили значения для LANGUAGE, вы можете сделать это:

<div class="tit"> 
    {{'LANGUAGE' | translate}} 
</div> 
+0

Спасибо, Omri, во всем моем приложении я делаю то, что вы комментируете, но в этом разделе приложения сложнее. В моем посте я упомянул, что это будет текст на английском или испанском языке, но вещь Я хочу показать здесь содержимое полей базы данных Firebase, проблема в том, что для английского я назвал «titleAct», а для испанского я назвал «titleAct'Es», так что это моя проблема, как мне отображать на английском языке :

{{adult.desdeAct}} - {{adult.titleAct}}
и для испанского
\t \t {{adult.desdeAct}} - {{adult.titleActEs}}
CaribeSoft

+0

@CaribeSoft В этом случае вы назвали свои переменные по-разному (может быть, посмотрите, можете ли вы его изменить?) Я не думаю, что у вас есть другой выбор, но вы все равно можете использовать один HTML-код и вызвать функцию в вашем контроллере, и там есть переключатель, чтобы вернуть нужный текст. –

+0

Привет, Omri, не является именами переменных, имена полей базы данных области, они должны быть разными, одно поле для английского и другое для испанского. И проблема заключается в том, как восстановить правильные значения в зависимости от выбранного языка, – CaribeSoft

0

Я также сделал приложение в два языка: английский & греческий, и я использовал другой способ переключения между языками. Вместо того, чтобы иметь ng-if для языкового swith, вы можете получить его таким образом.

Используйте текст {{'KEYTEXT' | translate}} для текста внутри div, а в таблице переводов добавьте эти ключи и их значение.

AS,

<div class="tit" > 
     <1--here will be Text --> 
     {{'KEYTEXT' | translate}} 
</div> 

И в таблице перевода АНГЛИЙСКОГО

{ 
"KEYTEXT" : 'English Text' 
} 

И в вашей испанской таблицы перевода

{ 
"KEYTEXT" : 'Spanish Text' 
} 
0

вы должны использовать глобальную переменную и присвоить ей значение таких как «en» или «sp», в зависимости от вашего выбора пользователя, а затем отображать язык в соответствии с к выбору соответственно нравится:

if(user selects spanish) { 
    GlobalVariable = "sp"; 
    $translateProvider.preferredLanguage(GlobalVariable); 
} 

<div class="tit" ng-if="GlobalVariable == 'sp' "> 
      {{{{'LANGUAGE' | translate}} }} 
    </div> 

и можно также посмотреть на @Omri Агарон ответ для лучшего понимания.

Смежные вопросы