在 iphone sdk 3.0 中,他们提供了国际键盘选项。用户可以选择他想要的键盘。但是我们如何本地化我们的应用程序。例如,如果用户选择了法语键盘,我们应该用法语与他互动。像警报和其他东西应该以法语显示。
我们如何以编程方式做到这一点?他们是否有任何选项可以将字符串从英语转换为用户选择的语言?
请帮助我
在 iphone sdk 3.0 中,他们提供了国际键盘选项。用户可以选择他想要的键盘。但是我们如何本地化我们的应用程序。例如,如果用户选择了法语键盘,我们应该用法语与他互动。像警报和其他东西应该以法语显示。
我们如何以编程方式做到这一点?他们是否有任何选项可以将字符串从英语转换为用户选择的语言?
请帮助我
查看 iPhone 开发中心的国际化编程主题。
没有记录的方法可以知道键盘何时更改,也没有记录的方法可以获取当前的键盘模式。
使用未记录的 API,您可以收听UIKeyboardCurrentInputModeDidChangeNotification
本地通知。
当前输入模式可以从com.apple.Preferences
首选项中找到,使用
return CFPreferencesCopyAppValue(CFSTR("KeyboardLastUsed"),
CFSTR("/var/mobile/Library/Preferences/com.apple.Preferences"));
(注意:要在模拟器上进行测试,您需要替换/var/mobile/
为/Users/<user-name>/Library/Application Support/iPhone Simulator/<sdk-version>/
。)
在 iOS 4.2 及更高版本中,您可以使用UITextInputMode
该类来确定当前用于文本输入的主要语言。
[UITextInputMode currentInputMode].primaryLanguage
将为您提供NSString
代表 BCP 47 的语言代码,例如“es”、“en-US”或“fr-CA”。
您可以注册以UITextInputCurrentInputModeDidChangeNotification
在当前输入模式更改时收到警报。
正如 Thomas Müller 所说,国际化编程主题是一个很好的起点。
您可能还对“让您的应用程序为中国和其他热门新市场做好准备” WWDC 会议感兴趣。