3

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

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

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

但是没有关于如何设置翻译键的解释,只是一个映射

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

...所以我不知道该怎么办。

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

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

4

4 回答 4

2

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

于 2012-11-09T12:59:00.710 回答
1

使用它的方法在colinta 的博文中得到了很好的解释。

chsh 的 GitHub gist也提供了一个合理的示例。

但要详细回答:

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

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

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

然后您可以使用sugarcube 的本地化支持:"HELLO"._这将导致"Hello World!"for enlocale 和任何缺少GREETING相应文件的locale。lproj您可以在上面链接的 Sugarcube 文档中找到更多详细信息。

您很可能还可以使用BubbleWrap 的本地化字符串支持:BW.localized_string("GREETING", "fallback")。不过,我不能保证它,因为我自己没有测试过。

于 2013-08-03T18:32:02.600 回答
0

I18n 现在可以通过这个包装器 gem 用于 Rubymotion:motion-i18n

于 2015-04-23T15:07:09.290 回答
-2

我们刚刚发布了用于 RubyMotion 的motion-phrase gem,它使用 PhraseApp 实现了本地化工作流程。这是一种完全不同的方法,但有很多优点。

于 2013-06-05T15:01:13.500 回答