angular 的配置 - 未获取翻译
Configuration for angular-translate not picked up
我刚刚接管了一个 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: No sanitization strategy has been configured. This can have serious security implications. See http://angular-translate.github.io/docs/#/guide/19_security for details.
我做错了什么?很明显,配置根本就没有捡起来?
好吧,我错过了一对圆括号:
app.config(['$translateProvider', function($translateProvider) {
$translateProvider
.useStaticFilesLoader({
prefix: '/translations/locale-',
suffix: '.json'
})
.preferredLanguage('en')
.useLocalStorage()
.useSanitizeValueStrategy('escape')
.useMissingTranslationHandlerLog();
}]);
现在我的配置已按预期提取。
我刚刚接管了一个 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: No sanitization strategy has been configured. This can have serious security implications. See http://angular-translate.github.io/docs/#/guide/19_security for details.
我做错了什么?很明显,配置根本就没有捡起来?
好吧,我错过了一对圆括号:
app.config(['$translateProvider', function($translateProvider) {
$translateProvider
.useStaticFilesLoader({
prefix: '/translations/locale-',
suffix: '.json'
})
.preferredLanguage('en')
.useLocalStorage()
.useSanitizeValueStrategy('escape')
.useMissingTranslationHandlerLog();
}]);
现在我的配置已按预期提取。