我正在尝试将翻译部分加载集成到我的应用中,但是翻译文件的初始加载(在更改状态时)闪烁。我按照建议使用translate-cloak
,但仍能获得相同的效果。
注意闪烁仅在更改部分语言而不是语言时发生。
这是我的设置
配置
app.config(['$translateProvider', function($translateProvider){
$translateProvider.useLoader('$translatePartialLoader', {
urlTemplate: 'dist/locales/{lang}/{part}.json'
});
$translateProvider.preferredLanguage('en-US');
}])
Controller
app.controller('appCtrl', function($translate, $translatePartialLoader){
$translatePartialLoader.addPart('app');
$translate.refresh()
});
模板
<div translate="HEADLINE"></div>
布局
<html ng-app="app" >
<head>
<title>SportProphecy</title>
<script src="/dist/js/vendors.min.js"></script>
<script src="/dist/js/app.min.js"></script>
</head>
<body ui-view ng-cloak translate-cloak>
</body>
</html>
我想念什么吗?我已经阅读了有关
translate-cloak
的所有文档。PS:我尝试创建一个小提琴,但由于某种原因,未请求
json
文件。 最佳答案
Angular 翻译文档将其称为“未翻译内容的Flash”。您可能想 checkout here。
基本上,您需要定义至少一种要同步加载的语言。因此,继续在app.config中添加首选语言的翻译(在您的情况下为“en”)
app.config(['$translateProvider', function($translateProvider){
$translateProvider.useLoader('$translatePartialLoader', {
urlTemplate: 'dist/locales/{lang}/{part}.json'
});
$translateProvider.preferredLanguage('en-US');
$translateProvider.translations('en-US', {
'HEADLINE': 'My Fancy App!'
});
}])
关于javascript - 翻译斗篷不适用于部分加载程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26167295/