我很困惑大家应该遵循哪种方法进行语言翻译。我目前正在使用 ngx-translate 模块。 主要问题是我应该为每个模块管理单独的 lang 文件:-
或者我应该为所有模块保留一个语言文件?请提出更好的方法。
谢谢!
Translate.stream 对于广泛的应用程序也很有用,它会根据语言的变化来改变值。
constructor(private translate: TranslateService) {
this.translate
.stream('my.i18n.key')
.subscribe((res: string) => {
console.log(res);
});
}
根据您的应用程序如何使用静态数据,这个问题可能有不同的解决方案。我最近在我们的项目中实现了语言翻译。
我浏览了许多博客和视频博客,它们可以帮助在应用程序中组织此功能。什么时候应该在 JSON 语言中使用模块化方法,什么时候不应该使用。
通常,当您的应用程序消耗大量静态数据并且每个模块都有自己的数据时,语言的模块化方法就会出现在这张图中。另外,当您遵循延迟加载方法时。这将帮助您在相当短的时间内加载应用程序。因此,当您的应用程序具有延迟加载并且 JSON 变得非常大时,您应该遵循这种方法,它将帮助您在一个文件中维护与模块相关的静态数据。
当您的应用程序在任何模块之间共享大量数据时,可以采用第二种方法,因此您可以拥有一个文件并在 JSON 文件保持较小的情况下黑白共享它们,而不是在每个模块中复制相同的数据。
您还可以遵循混合方法,即根据应用程序使用数据的方式混合上述两种方法。我使用了混合方法,因为一些模块需要与其他模块共享相同的静态数据,而一些模块只需要自己的数据。
Apoorva Chikara 的回应提到了以混合方式执行此操作的选项,在我看来,这似乎是最有趣的选项之一。这种方法似乎更容易组织翻译,特别是当它是一个大型且复杂的项目时。