我刚接管了一个AngularJS应用程序,并试图用 angular-translate 翻译用户界面。但是,文本没有被翻译,我也在控制台中收到一条奇怪的sanatization消息。
这是我的申请:
'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。
我做错了什么?显然,配置根本没有被提取?