Какое ключевое слово следует использовать в javascript для получения перевода i18n с использованием библиотеки angular-translate?

Я реализовал i18n для проекта Angularjs.

например вот пример кода контроллера:

var MultilingualApp = angular.module("MultilingualApp", ["pascalprecht.translate"]);

MultilingualApp.config(function ($translateProvider) {
  $translateProvider.translations("US_EN", {
    "GREETING": "Hello !",
    "DESCRIPTION": "This is a demo app for multilingual support.",
    "LBL_SWITCH": "Click here for switching language between spanish to english",
    "CLICK": "Click"
  });
  $translateProvider.translations("SPANISH", {
    "GREETING": "Hola !",
    "DESCRIPTION": "Esta es una aplicacion de demostracion para soporte multilingue",
    "LBL_SWITCH": "Haga clic aquí para cambiar el idioma entre espanol al Ingles",
    "CLICK": "Click"
  });
  $translateProvider.preferredLanguage("US_EN");
});


MultilingualApp.controller("MyCtrl", function ($scope, $translate) {
  console.log("hello tehre")
  $scope.changeLanguage = function () {
    var language = $translate.use();
    if (language === "US_EN") {
      $translate.use("SPANISH");
    } else {
      $translate.use("US_EN");
    }
  };
});

вот HTML-код, в котором мы используем ключевое слово {{'GREETING'|translate}} для выполнения перевода:

<html>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.16/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bower-angular-translate/2.7.1/angular-translate.min.js"></script>
<script src="app.js"></script>
<div ng-app='MultilingualApp' ng-controller='MyCtrl'>
    <div ng-controller='MyCtrl'>
        <h3>{{'GREETING'|translate}}</h3>
        <p>{{'DESCRIPTION'|translate}}</p>
        <label>{{'LBL_SWITCH'|translate}} </label>
        <button ng-click='changeLanguage()'> {{'CLICK'|translate}}</button>
    </div>
</div>
</body>
</html>

Когда я нажимаю кнопку, весь текст HTML преобразуется.

Проблема в том, что я не могу перевести текст javascript.

Есть ли какое-либо ключевое слово, которое используется для перевода текстов javascript?

Изменить

Когда я говорю текст javascript, это означает, что есть некоторые предупреждения (текстовые сообщения), которые я отправляю из javascript в HTML.

Например:

function errorCallback(errorResponse) {
      $scope.loginParams.errorText = 'The username and password that you entered don\'t match.';
      $scope.SigningIn = false;
}

в приведенном выше примере, как мы можем преобразовать текст ошибки Введенные вами имя пользователя и пароль не совпадают.


person bSr    schedule 08.01.2019    source источник
comment
Какой «JavaScript текст»?   -  person deceze♦    schedule 08.01.2019
comment
@deceze я отредактировал вопрос. см. раздел редактирования.   -  person bSr    schedule 08.01.2019


Ответы (1)


Вот для чего вы используете сервис $translate.

MultilingualApp.controller("MyCtrl", function ($scope, $translate) {
  $translate('Error!').then(msg => $scope.message = msg);
});
person deceze♦    schedule 08.01.2019
comment
Должен ли я писать этот фрагмент кода для каждой строки текста в одном и том же файле? - person bSr; 08.01.2019
comment
Нет. Всякий раз, когда вам нужно перевести строку в контроллере или службе, вы внедряете службу $translate и используете ее для получения перевода вашей строки. Это все. - person deceze♦; 08.01.2019