javascript - 在 Angular 多语言中仅加载单一语言 JSON 文件

标签 javascript angularjs json ionic-framework

我正在研究 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-translateangular-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/

相关文章:

javascript - 将数据插入 Flot

javascript - 类型 'number' 不可分配给类型 'ReadonlyArray<{}>'

javascript - 如何使用 Angular ui 路由器 ng-hide 和 ng-show View ?

c# - JSON.NET 不区分大小写的反序列化不起作用

javascript - 访问 Angular 中对象内部数组中的对象

javascript - 保护 Javascript/AngularJS 中的刷新 token

javascript - AngularJS $compile 评估范围属性而不是绑定(bind)

json - 嵌套 ng-repeat

python - 使用 Python 打印并连接 Json 的元素

php - 组合数组元素