我正在研究 ionic 应用。我想使用相同的语言 .json 文件添加多语言支持。所以我用谷歌搜索并找到了一些使用“Angular 静态文件加载器插件”加载文件的示例,但它一次加载了所有语言文件。
我的问题是,我们是否可以仅加载用户选择的语言文件,以避免加载其他语言文件的额外时间。有人可以让我知道我怎样才能实现它吗?或者一次加载所有文件是更好的方法?或者我可以做更好的实现吗??
谢谢。
最佳答案
My question is, can we load user selected language file only to avoid extra time for loading other language files.
是的。
Can anybody please let me know how can I achieve it ?? or loading all files at a time is better approach ?? or is there any better implementation I can do ??
使用angular-translate
和 angular-translate-loader-url
在你的app.config()
$translateProvider.useUrlLoader('/translate');
$translateProvider.preferredLanguage('en_US');
这相当于在应用初始时请求 /translate?lang=en_US
获取特定语言(默认)。
稍后当您想更改为另一种语言时:
// Example in one of your controller
$translate.use('fr_FR');
这将触发请求 /translate?lang=fr_FR
以获取另一个翻译文件
I have created JSON files of language as "en.json" in my project.. and I want to use that file.. so is it possible by using above code?
对于 JSON 文件,正如您的问题中提到的 angular-translate-loader-static-files
会做到这一点(我不确定为什么您一次加载了所有文件,因为它应该延迟加载)
$translateProvider.useStaticFilesLoader({
prefix: '',
suffix: '.json'
});
$translateProvider.preferredLanguage('en');
这将加载en.json
。
延迟加载另一个翻译文件。
$translate.uses('fr');
这将加载fr.json
关于javascript - 在 Angular 多语言中仅加载单一语言 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35078352/