[英]How to use localization with RubyMotion?
我认为不可能使用I18n ,那么最好的方法是什么?
从我看到你可以使用Bubblewrap如下:
# Localization (using NSBundle.mainBundle.localizedStringForKey):
BubbleWrap.localized_string(:foo, 'fallback')
=> "fallback"
但是没有关于如何设置翻译键的解释, 只是一个映射 :
NSBundle.mainBundle.localizedStringForKey(key, value:value, table:nil)
......所以我不知道该怎么做。
App.current_locale
还提供了一个App.current_locale
方法,但是这会返回一个看起来无法使用的对象,据我所知。
那么,我如何本地化我的RubyMotion应用程序,或者至少让用户的语言环境来创建我自己的本地化系统。
RubyMotion使用CocoaTouch API。 您可以查看有关本地化的Apple文档https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/LoadingResources/Strings/Strings.html
在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!"
对于缺少相应lproj
文件的任何语言环境的en
locale和GREETING
。 您可以在上面链接的sugarcube文档中找到更多详细信息。
你很可能也会使用BubbleWrap的localized_string支持: BW.localized_string("GREETING", "fallback")
。 我无法保证,因为我自己没有测试过它。
I18n现在可以使用这个包装宝石Rubymotion: motion-i18n 。
我们刚刚为RubyMotion发布了一个动画短语 ,它使用PhraseApp实现了本地化工作流程 。 这是一种完全不同的方法,但具有很多优点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.