通常,在许多平台上,我都会将字符串资源写入一个.resx或.xml文件,然后使用一些平台相关的方法来获得它们。
也就是说,在iOS上,我通过NSBundle.MainBundle和在安卓上使用Context.Resources来获得它们。
这种方法的优点是什么,为什么不能在代码中直接访问它,例如:
长话短说:字符串资源以这种方式构造的原因是什么?
编辑
假设我的文件是其他项目之间共享的“核心”项目的一部分。(考虑一种PCL跨平台项目文件结构。)
假设我的文件与. .resx/.xml文件完全类似,如下所示(我不是xml专家,抱歉!):Paramètres参数
因此,这基本上是一个自定义xml,您可以指向键/语言来获得正确的字符串。
该文件将是应用程序的一部分,就像您在应用程序中添加任何可访问的文件一样,以及访问使用PCL编码的字符串资源的系统。这会增加应用程序的开销吗?
发布于 2014-03-10 12:39:01
本土化和国际化
保持字符串的外部允许它们更改(读:翻译),而不需要重新编译(最多只是一个重新链接,最多只能放在一个新文件夹中)。
发布于 2014-03-10 12:52:31
如果您有一个只包含字符串资源的文件,那么您可以将该资源文件交给翻译代理机构或类似的东西,并得到一个翻译。我想你可以想象,如果你必须给一个外行人大量的代码文件来做一些翻译(除了可能不想把你的代码分发给任何人),这会有多难。
发布于 2014-03-14 14:08:35
这正是您的语言/平台决定实现字符串本地化的方式。所有的本地化方法都需要某种外部资源文件来获取翻译。主要的痛苦点是如何维护这些资源。
看起来您需要手动维护这些资源文件,这可能是一个相当大的负担。它还使重复字符串的共享复杂化。当你现在只提供一种语言的时候,就不得不这样做,这更是一种负担。
一个常见的替代方法是Gettext方法,只需在源代码中标记可翻译的字符串,并自动将这些字符串提取到标准PO文件中,这些文件可以很好地跨平台和跨语言工作。从开发人员的角度来看,它比任何一天的XML资源文件的手动维护都要好。
https://softwareengineering.stackexchange.com/questions/231870
复制相似问题