【发布时间】:2020-01-30 12:33:04
【问题描述】:
我必须在 phonegap 应用中实现全球化。问题是我应该在编译应用程序之前进行翻译,还是在运行时进行翻译。
我可以去两个方向:
- 第一个是使用像
gulp-i18n-localize这样的插件将源代码翻译成我想要的每种语言,然后 将每个翻译的源代码编译到不同的文件夹中 (en、sp、it 等)。然后在应用程序中调用我需要的文件夹 取决于我从navigator.language得到的信息。 - 第二个是创建一个服务,我每次加载组件或控制器时都会调用它,它会翻译
在呈现目标语言之前,将每个单词/短语转换为目标语言。
比如:
global.trans('Save')。它也将获得 语言来自navigator.language。
- 这是一款应用,因此不会有大段落,只有标题、按钮、标签或消息/警报中使用的单词或小句子。
- 由于调用 api 时发送的语言参数,数据将从服务器以所需语言发出。
- 应用肯定会在未来进行一些修改,因此应该集中主要源代码,以便我们每次进行更新时都不必在不同语言的多个源中执行相同的更改。
是否有人已经实施了这些解决方案之一并且遇到了任何问题?或者是否考虑过其中一个可能存在的问题或认为哪个应该是最佳解决方案?您还可以考虑其他选择吗?
我看到的唯一问题是,在第一种情况下,apk 的大小会增长,因为每种语言都会有一个“站点”,每次我想添加一种语言时我都必须修改 gulpfile.js(除了词典)。在第二种情况下,它将为应用程序增加一些负载,因为它将翻译给定的每个单词/短语(翻译意思是调用服务,服务在字典(json)中搜索单词/短语/语言并返回值,尽管每个页面/屏幕没有太多要翻译的内容)。
【问题讨论】:
标签: cordova ionic-framework internationalization phonegap globalization