javascript - 使用 angular-translate 库在 javascript 中使用什么关键字来获取 i18n 翻译?

标签 javascript angularjs angular-translate

我已经为 Angularjs 项目实现了国际化。

例如这里是 Controller 代码的示例:

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");
    }
  };
});

这是我们使用 {{'GREETING'|translate}} 关键字完成翻译的 HTML 代码:

<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;
}

在上面的例子中,我们如何转换错误文本The username and password that you entered don\t match.

最佳答案

这就是您使用 $translate 服务的目的。

MultilingualApp.controller("MyCtrl", function ($scope, $translate) {
  $translate('Error!').then(msg => $scope.message = msg);
});

关于javascript - 使用 angular-translate 库在 javascript 中使用什么关键字来获取 i18n 翻译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54087464/

相关文章:

javascript - wordpress页面右侧未使用的大空间

angularjs - Docker容器中Nginx上的AngularJS

html - 使用 css 类有条件地更改 anchor 标记自定义链接按钮背景颜色

angularjs - 如何在 Angular(2 或 4)中使用第 3 方 AngularJS(1.6)模块( Angular 翻译)

javascript - Harmony 模块 - 如何处理平台差异?

javascript - Angular JS : "Select All" options of "multi-select select box"

AngularJS:在Controller中使用指令元素

angularjs - 如何在 Angular 翻译的翻译值属性内使用过滤器

javascript - angularjs 翻译以所选语言显示键的值

javascript - 如何根据密码分数动态更改 Bootstrap 密码强度工具提示颜色