【问题标题】:Different localization depends on a target不同的定位取决于目标
【发布时间】:2016-07-18 15:04:46
【问题描述】:

我在 Xcode 中的一个项目下的目标很少。在项目设置中,我看到这样的本地化:

但我想做的是让一个目标本地化为德语和波兰语,第二个目标本地化为德语。这些目标产品是单独的 ipa 文件,但我想知道我是否将第二个目标的波兰语留空,波兰的用户是否看到德语文本或空字符串?此外,如果有语言,它会在此处显示 appore 中可用的所有语言吗?

【问题讨论】:

    标签: ios xcode app-store


    【解决方案1】:

    但我想做的是让其中一个目标本地化为德语和波兰语,第二个目标本地化为德语。

    不幸的是,由于本地化是基于文件和项目的,如果不对代码库进行重大更改,这是不可能的。根据您的代码和资源文件(故事板、.strings 文件等),可能有两个具有不同本地化的项目,它们使用通用共享框架,框架中的大部分应用程序代码。但是,我想这对您的项目来说太大了。

    此外,在生成 IPA 后删除本地化可能更合理。通过删除波兰语本地化的资源和文件夹,您基本上可以获得所需的结果,而无需更改项目配置。

    这个目标产品是单独的 ipa 文件,但我想知道我是否将波兰语留空作为第二个目标,波兰的用户会看到德语文本或空字符串吗?

    如果您将波兰语本地化文件留空,您会在应用中看到两个结果:

    1. 对于情节提要本地化,您会看到空字符串(即 UILabels、 UITextFields 等将由空)
    2. 对于NSLocalizedString("key", "comment") 引用的字符串, 你会看到comment

    如果您完全删除波兰语本地化文件,则应用将显示您的基本本地化版本。

    另外,如果有语言,它会在此处显示 appore 中可用的所有语言?

    App Store 根据生成的构建中的内容而不是项目配置来选择本地化。如果您在构建中有波兰语本地化文件,那么 App Store 将看到这些文件并显示您的应用程序支持该本地化。

    【讨论】:

      【解决方案2】:

      您可以使用定义作为解决方法,例如:

      #ifdef ONLY_GERMAN
      #define kTitle @"title"
      #else
      #define kTitle NSLocalizedString(@"kButtonTitle",@"")
      #endif
      
      NSString *title = kTitle;
      

      之后,您需要将 ONLY_GERMAN 宏添加到所需的目标。目标 > 构建设置 > 预处理器宏。该解决方案的缺点 - 重复德语本地化。

      【讨论】:

        猜你喜欢
        • 2022-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-06
        • 2012-12-13
        相关资源
        最近更新 更多