【发布时间】:2017-05-11 21:56:02
【问题描述】:
我刚刚接管了一个 AngularJS 应用程序并尝试使用 angular-translate 翻译用户界面。但是,文本没有翻译,我还在控制台中收到一条奇怪的清理消息。
这是我的申请:
'use strict';
var app = angular.module('main', [
'main.filters',
'main.services',
'main.directives',
'main.controllers',
'pascalprecht.translate',
'ngCookies',
'ngSanitize'
]);
app.config['$translateProvider', function($translateProvider) {
$translateProvider
.useStaticFilesLoader({
prefix: '/translations/locale-',
suffix: '.json'
})
.preferredLanguage('en')
.useLocalStorage()
.useSanitizeValueStrategy('escape')
.useMissingTranslationHandlerLog();
}];
这就是我包含 JS 文件的方式:
<!-- Translation -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular-cookies.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular-sanitize.min.js"></script>
<script src="../_resources/bower_components/angular-translate/angular-translate.min.js"></script>
<script src="../_resources/bower_components/angular-translate-handler-log/angular-translate-handler-log.min.js"></script>
<script src="../_resources/bower_components/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js"></script>
<script src="../_resources/bower_components/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js"></script>
<script src="../_resources/bower_components/angular-translate-storage-local/angular-translate-storage-local.min.js"></script>
这是我的翻译文件之一(/translations/locale-en.json):
{
"foo": "Foo",
"bar": "Bar"
}
这就是我尝试在 HTML 中使用翻译的方式:
<strong translate="foo"></strong>
<strong>{{ 'bar'' | translate }}</strong>
我在浏览器控制台中得到的唯一消息是:
pascalprecht.translate.$translateSanitization:未配置任何清理策略。这可能会产生严重的安全隐患。详情请见http://angular-translate.github.io/docs/#/guide/19_security。
我做错了什么?很明显,配置根本没有捡到?
【问题讨论】:
-
查看错误,您缺少清理策略.. 尝试使用类似
$translateProvider.useSanitizeValueStrategy('escaped');的东西也许.. -
在文档中,还有
escape:angular-translate.github.io/docs/#/guide/19_security -
哦..不知道..我可以知道您使用的是哪个版本的角度翻译吗?你能用这个最少的代码装个笨蛋吗?
标签: javascript angularjs angular-translate