【问题标题】:Localization with NSLocalizedString or in .xib使用 NSLocalizedString 或 .xib 进行本地化
【发布时间】:2015-07-02 14:45:58
【问题描述】:

我正在寻找我在 Internet 上找不到的信息。我想知道 NSLocalizedString 出现在哪个 iOS 版本中? (也许从 iOS 的第一个版本就已经存在了?)

我也想知道在什么情况下在 .xib 中使用本地化,在什么情况下使用 NSLocalizedString?

我问这个问题是因为我正在开发一个在 .xib 文件和 NSLocalizedString 中使用本地化的 iOS 项目,我真的不知道为什么要使用这两种方法......(这是一个旧项目,这就是为什么我要问第一个问题^^)

最后一个问题,对于一个新项目,这两种方法中的哪一种是你的首选?

抱歉所有这些问题,感谢您的回答! =)

【问题讨论】:

    标签: ios localization nslocalizedstring


    【解决方案1】:

    当我们想要本地化 UI 上的元素时,使用 xib 文件进行本地化,例如,当您想要显示具有特定 UIButton 的本地化文本的不同图像时。
    您可以使用本地化的 xib 文件来实现此目的。 每种语言都有单独的 xib 文件。 当您从控制器 NSLocalizedString 在 UI 上设置任何文本时。
    我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      NSLocalizedStringwas first available in 10.0

      所以我使用NSLocalizedString 以编程方式进行本地化,因为这样我可以将所有字符串放在一个位置。

      而不是通过 .xib 本地化生成,因为这样您将拥有每个 xib 的字符串文件。

      但是,如果您有一个 .xib 并且您没有以编程方式修改(即您没有将自定义类设置为 file's owner),那么您将不会能够以编程方式设置NSLocalizedStrings。在这种情况下,您将不得不通过.xib 生成字符串文件。

      此外,访问与.xib 关联的字符串文件稍微困难一些,因为它与.xib 直接连接

      【讨论】:

        【解决方案3】:

        NSLocalizedString 从 iOS 1 开始就存在。

        基本上,所有动态创建的字符串都需要 NSLocalizedString。

        在一个新项目中,我建议使用 AutoLayout 和 Base Localization。 有一个 .xib 文件,所有本地化和布局调整都在运行时通过 .strings 文件执行

        【讨论】:

          【解决方案4】:

          可能这个问题已经死了,但我跳到这里寻找一种本地化 xib 字符串的方法,这个页面是第一个结果。

          您可以同时使用 NSLocalizedString 和 xib。看看这个答案:https://stackoverflow.com/a/21443515/907720在这里详细讨论:https://medium.com/zendesk-engineering/ios-how-to-add-adaptive-constraints-to-support-a-universal-app-273663475b12

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-12-17
            • 2013-10-21
            • 2010-11-16
            • 1970-01-01
            相关资源
            最近更新 更多