【发布时间】:2019-01-08 17:40:04
【问题描述】:
我已经为 Angularjs 项目实现了 i18n。
例如这里是控制器代码示例:
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;
}
在上面的例子中,我们如何转换错误文本您输入的用户名和密码不匹配。
【问题讨论】:
-
什么“JavaScript 文本”?
-
@deceze 我已经编辑了这个问题。请参阅编辑部分。
标签: javascript angularjs angular-translate