【问题标题】:How to use localization with RubyMotion?如何使用 RubyMotion 进行本地化?
【发布时间】:2012-11-09 12:21:16
【问题描述】:

我认为不可能使用I18n,那么最好的方法是什么?

据我所知,您可以这样使用Bubblewrap

# Localization (using NSBundle.mainBundle.localizedStringForKey):
BubbleWrap.localized_string(:foo, 'fallback')
=> "fallback"

但是没有解释如何设置翻译键,是just a mapping of

NSBundle.mainBundle.localizedStringForKey(key, value:value, table:nil)

...所以我不知道该怎么处理它。

Bubblewrap 还提供了一个App.current_locale 方法,但这会返回一个据我所知似乎无法使用的对象。

那么,我该如何本地化我的 RubyMotion 应用程序,或者至少获取用户的语言环境来创建我自己的本地化系统。

【问题讨论】:

    标签: iphone ios ruby localization rubymotion


    【解决方案1】:

    RubyMotion 使用 CocoaTouch API。你可以查看苹果本地化文档https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/LoadingResources/Strings/Strings.html

    【讨论】:

      【解决方案2】:

      colinta's blogpost详细解释了使用方法。

      还有GitHub gist by chsh 就是一个合理的例子。

      但要详细回答:

      使用内容创建resources/en.lproj/Localizable.strings

      /* This is a sample greeting for my app */
      "GREETING" = "Hello World!";
      

      (对于其他语言也是如此:cs.lprojde.lproj、...)。

      然后您可以使用sugarcube's localized 支持:"HELLO"._,这将导致"Hello World!" 用于en 语言环境,GREETING 用于缺少相应lproj 文件的任何语言环境。您可以在上面链接的 Sugarcube 文档中找到更多详细信息。

      您很可能还可以使用BubbleWrap's localized_string 支持:BW.localized_string("GREETING", "fallback")。不过,我不能保证,因为我自己没有测试过。

      【讨论】:

        【解决方案3】:

        I18n 现在可用于 Rubymotion 与此包装器 gem:motion-i18n

        【讨论】:

          【解决方案4】:

          我们刚刚发布了 motion-phrase 一个用于 RubyMotion 的 gem,它实现了 localization workflow using PhraseApp。这是一种完全不同的方法,但有很多优点。

          【讨论】:

            猜你喜欢
            • 2023-04-02
            • 2023-01-15
            • 2021-10-12
            • 1970-01-01
            • 2010-11-16
            • 1970-01-01
            • 2012-06-23
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多