繁体   English   中英

角度翻译-多语言-静态文件-竞争条件?

[英]Angular Translate - Multi Language - Static Files - Race Condition?

我目前在静态文件加载器中使用角度转换。 我目前正在实现至少3种语言,但是,我注意到通常在尝试加载语言文件时,有时加载语言文件所花的时间比视图本身要长-这导致部分翻译的UI 。 屏幕上的大多数项目将保持不变,但某些项目将保持不变。

我尝试了以下操作,没有任何更改:

  • 在配置$ translateProvider时设置forceAsyncRefresh(true)。
  • 在登录控制器中设置一个$ rootScope监视(用户将看到第一个视图),然后在translateLoadedSuccess上调用$ translate.refresh()。
  • 升级到最新的角度平移

当前在视图中完成了99.9%的翻译,例如:{{::' My Translation Key '| 翻译}}

解决此问题时我缺少什么? 我是否应该尝试手动加载这些语言文件并在较早的加载时间进行设置? 如果是这样,如何在配置中设置它们的使用?

我正在使用Angular 1.5.0和Angular Translate 2.11.1。

TIA!

因此,这实际上是一种竞争条件,其中最初加载语言文件所花费的时间有时(并非总是)比将angular-translate静态文件加载语言文件所花费的时间更长。

据我所知,有两(2)个可用选项-手动加载和设置语言文件,或者将语言文件本身移动到单独的较小文件中。 但是,我希望始终保证这不会成为问题,因此我选择手动加载和设置语言文件。 这实际上非常简单,并且需要以下条件:

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');
}]);

这完全解决了所有客户的所有问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM