Angular翻译-多语言-静态文件-竞争条件
Angular Translate - Multi Language - Static Files - Race Condition?
我目前使用angular翻译与静态文件加载器。我目前正在实现至少3种语言,然而,我注意到,通常当它试图加载语言文件时,有时它需要更长的时间来加载语言文件,而不是视图本身-这导致部分翻译的UI。屏幕上的大多数项目将保持不翻译,但某些项目将被翻译。
我尝试了以下方法,没有改变:
- 在配置$translateProvider时设置forceAsyncRefresh(true)
- 在登录控制器中设置$rootScope监视(第一个视图用户将看到),并在translateLoadedSuccess时调用$translate.refresh()。
- 升级到最新的angular翻译
99.9%的翻译目前正在视图中完成,例如:{{::'我的翻译键' | translate}}
我在试图解决这个问题时遗漏了什么?我是否应该尝试手动加载这些语言文件并在早期加载时设置它们?如果是,我如何在配置中设置它们的使用?
我使用的是Angular 1.5.0和Angular Translate 2.11.1。
TIA !
所以这实际上是一个竞争条件,加载语言文件的初始时间有时(并非总是)比angular-translate加载语言文件所需的时间长。
据我所知,有两种选择——要么手动加载和设置语言文件,要么自己将语言文件移动到单独的小文件中。但是,我希望始终保证这不会成为一个问题,所以我选择手动加载和设置语言文件。这实际上是相当简单的,需要以下内容:
1)语言文件将加载在index.html文件项的顶部。
2)语言文件本身将被分配一个变量-即var enUS = {'LOGIN': 'LOGIN', 'USER': 'USER'}
3)语言将在app.config中手动设置:app.config(['$translateProvider', function($translateProvider){
$translateProvider.translations('en_US', enUS); // this is the variable we assigned to the language json in step 2
$translateProvider.preferredLanguage('en_US');
$translateProvider.useSanitizeValueStrategy('sanitize');
}]);
这完全解决了所有客户端的所有问题。
相关文章:
- 如何播放部分音频文件
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用WCF服务和javascript表单post上传.doc文件
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在php文件中获取$.post-ajax传递的值
- 直接下载文件,而不是从window.open(url)
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 使用压缩的JavaScript文件(不是运行时压缩)
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- Javascript运行php文件,然后下载文件
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 如何在加载按需JavaScript文件时防止竞争条件
- Angular翻译-多语言-静态文件-竞争条件