首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么字符串资源通常保存在代码外部而不是代码中?

为什么字符串资源通常保存在代码外部而不是代码中?
EN

Software Engineering用户
提问于 2014-03-10 12:35:19
回答 3查看 3.6K关注 0票数 18

通常,在许多平台上,我都会将字符串资源写入一个.resx或.xml文件,然后使用一些平台相关的方法来获得它们。

也就是说,在iOS上,我通过NSBundle.MainBundle和在安卓上使用Context.Resources来获得它们。

这种方法的优点是什么,为什么不能在代码中直接访问它,例如:

  1. 在跨平台项目中,任何平台都可以直接访问它,而不需要集成。
  2. 在建设过程中,不关心资源建设是否良好。
  3. 编码器可以使用多语言处理等功能。

长话短说:字符串资源以这种方式构造的原因是什么?

编辑

假设我的文件是其他项目之间共享的“核心”项目的一部分。(考虑一种PCL跨平台项目文件结构。)

假设我的文件与. .resx/.xml文件完全类似,如下所示(我不是xml专家,抱歉!):Paramètres参数

因此,这基本上是一个自定义xml,您可以指向键/语言来获得正确的字符串。

该文件将是应用程序的一部分,就像您在应用程序中添加任何可访问的文件一样,以及访问使用PCL编码的字符串资源的系统。这会增加应用程序的开销吗?

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2014-03-10 12:39:01

本土化和国际化

保持字符串的外部允许它们更改(读:翻译),而不需要重新编译(最多只是一个重新链接,最多只能放在一个新文件夹中)。

票数 37
EN

Software Engineering用户

发布于 2014-03-10 12:52:31

如果您有一个只包含字符串资源的文件,那么您可以将该资源文件交给翻译代理机构或类似的东西,并得到一个翻译。我想你可以想象,如果你必须给一个外行人大量的代码文件来做一些翻译(除了可能不想把你的代码分发给任何人),这会有多难。

票数 10
EN

Software Engineering用户

发布于 2014-03-14 14:08:35

这正是您的语言/平台决定实现字符串本地化的方式。所有的本地化方法都需要某种外部资源文件来获取翻译。主要的痛苦点是如何维护这些资源。

看起来您需要手动维护这些资源文件,这可能是一个相当大的负担。它还使重复字符串的共享复杂化。当你现在只提供一种语言的时候,就不得不这样做,这更是一种负担。

一个常见的替代方法是Gettext方法,只需在源代码中标记可翻译的字符串,并自动将这些字符串提取到标准PO文件中,这些文件可以很好地跨平台和跨语言工作。从开发人员的角度来看,它比任何一天的XML资源文件的手动维护都要好。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/231870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档