iPhone应用程序的本地化 - 您的方法是什么?

时间:2011-01-31 12:08:18

标签: iphone iphone-sdk-3.0 ios4 localization internationalization

一般来说,我知道如何进行iOS应用的本地化,唯一的办法是在可用的方式之间进行选择并以正确的方式进行。所以我想问你关于你的项目的l10n方法。

以下是我的意见:

  1. 我有15个XIB文件(打包用 很多IB网点都没有 合成为属性,但会 必须本地化。)
  2. 这很有可能是我的 应用程序将有3-5种语言版本, 但有可能我会 将来会使用10种语言。
  3. 在不久的将来,我计划添加新的 可能会改变UI设计的目标 (付费/免费版本)。
  4. 我认为我可以采取两种方式:

    选项A:通过使XIB可以本地化并添加语言版本来本地化每个nib文件:

    1. 我担心有15个XIB和3-5种语言,当我将本地化扩展到~10种语言并引入新目标时,维护恐怖将无法控制(维护恐怖不是关于SCM,我' m使用git btw)。
    2. 我需要保持同步所有版本的XIB,这会对痛苦的变更请求过程产生影响。
    3. 我也担心我的应用程序包会变大(目前XIB使用~1.1 MB并转换为~120 kB的NIB文件)。
    4. 当我决定做iPad版时,XIB的数量会再次增长。
    5. 选项B:在代码中进行本地化,将所有需要的出口连接到属性并正确设置其标签/标题:

      1. 我担心我的应用程序内存占用量会非常大。或者,考虑到适当的mem mgmt,我不应该认为这是一个问题吗?
      2. 我会选择第二个选项,因为我看不到它的缺点,它可以允许在每个视图控制器中控制一个地方的所有内容,但我想知道你的选择是什么?哪种方式更适合你?

        编辑:我知道ibtool可以简化计划A中的流程,但我仍然不相信它。

2 个答案:

答案 0 :(得分:3)

我在所有项目中使用选项B,因为这也使我很容易将字符串文件分发到本地化程序。之后需要进行测试以确保琴弦适合放置。另外一些项目不使用XIB文件,因此无论是否使用XIB文件,该过程始终都是相同的。 根据我的经验,该选项根本没有内存问题。

答案 1 :(得分:1)

嗯,我期待来自SO用户的更多反馈,但这很好,因为经过一些研究后我已经决定放弃选项B并选择A的修改版本。

我大量使用了来自Compile-time approach by Philippe Casgrain的想法。通常,它使用ibtool在构建时自动本地化笔尖。菲利普的方法使合理的维护现在合理。我在代码中使用的所有其他字符串都是使用NSLocalizedString方法处理的,这在我的案例中很容易实现(只使用genstrings工具)。未来可能遇到的唯一问题是添加具有不同/修改的UI布局的新目标。

很难说它是否是最佳选择。时间会证明,所以有一天我会更新问题,并与您分享决定如何为我做出决定。也许有人会在功能中受益;)