【问题标题】:iOS localization. Aim to localize strings in all languages, but images in only some languagesiOS 本地化。旨在本地化所有语言的字符串,但仅本地化某些语言的图像
【发布时间】:2011-11-19 16:44:12
【问题描述】:

我想使用以下模式本地化我的应用程序:

  • 本地化所有字符串(比如英语、法语和德语 (don't mention the war!))
  • 用某些语言(比如英语和法语)本地化一些图像

我可以毫无问题地本地化字符串。我的问题是,当我添加德语字符串时,其他本地化为英语和法语的资源会尝试查找德语版本。我不想提供德语版本(尽量避免过多的多余图片,因为它们会增大应用程序的大小)。

任何人都可以提出一种方法来告诉应用程序不要费心寻找德语版本的图像。

我的问题不是添加语言,而是在某些条件下忽略它们。我不想包含“a.png”的德语版本,但我确实想要包含“a.png”的法语版本。当用户的语言设置为德语时,我希望它选择默认语言,即英语。

【问题讨论】:

  • 解释更多:我的问题不是添加语言,而是在某些条件下忽略它们。我不想包含“a.png”的德语版本,但我确实想要包含同一文件的法语版本。当用户的语言设置为德语时,我希望它选择默认语言,即英语。

标签: iphone ios xcode localization


【解决方案1】:

遇到了同样的问题,我想跟进这个问题,因为建议的解决方案与引用的不完全一样。

我的设置是 3 种本地化语言,de、en、fr。 Xcode 创建的 .lproj 文件夹因此命名

en.lproj
de.lproj
fr.lproj

我有一个带有“开始”的图形按钮,需要从英语本地化到法语而不是德语(因为它是同一个词)。

我的“本地化原生开发区域”设置为“英语”,这一定是默认设置(可能是前一段时间,该项目已经有一段时间了)。

该按钮未在德语设备上显示。切换到“EN”或 Xcode 的任何建议(“United Kingdom”、“United States of America”)都不能解决问题。

解决方案很简单。 “本地化原生开发区域”中的字符串需要与(原生语言).lproj 字符串完全匹配。所以将它设置为“en”它最终解决了这个问题。

希望这对偶然发现这个问题的人有所帮助。

【讨论】:

    【解决方案2】:

    iOS(和 Mac OS)应始终使用应用的默认语言。如果您不将 image.png 包含在 de.lproj 资源文件夹中,则应用应使用 en.lproj/image.png 文件代替它。

    在 Xcode 的 Target > Info 窗格中查找键:“Localization native development region”。确保上面写着 EN。

    【讨论】:

    • 我以为会是这样,但我的应用程序没有这样做。我的“本地化原生开发区域”确实已经设置为 EN
    • 应该是English.lproj/ 而不是en.lproj
    • 虽然我无法在提出问题的项目中使用它,但我在一个新项目中进行了尝试,它确实有效。希望这个答案能在未来对某人有所帮助。
    • English.lproj 是 Leopard 之前的 old 命名结构。 Apple 建议现在使用 en.lproj。实际上,在 Xcode 3.2 或更高版本中创建的所有新项目默认情况下都是 en.lproj
    【解决方案3】:

    我没有那么多经验,但就我而言,您的程序应该只查找德语图像,什么也找不到,然后尝试加载英文图像。

    【讨论】:

    • 通过 ios 本地化,您无需执行任何 if (language == 'german') 类型代码。您只需在资源中说“我已针对德语进行本地化”并提供德语资产。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    相关资源
    最近更新 更多