+(NSString*) uiKitLocalizedStringForKey:(NSString*)key {
NSBundle* uikitBundle = [NSBundle bundleForClass:[UIButton class]];
if (!uikitBundle) {
// Never seen this happen, but might as well guard for it
return key;
}
return [uikitBundle localizedStringForKey:key value:key table:nil];
}
8条答案
按热度按时间xytpbqjk1#
下面是我创建的一个小宏,用于获取系统UIKit字符串:
这样使用它:
trnvg8h32#
一种(公认的有问题的)轻松实现这一点的方法是直接使用Apple的框架包本地化:
要查看他们提供的内容,请通过Finder打开以下目录:
/Applications/Xcode/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/Frameworks
在本例中,随后将打开
./UIKit.framework/English.lproj/Localizable.strings
(在TextMate中)。在这里,你可以看到苹果公司使用的各种各样的翻译,如“打印”,“确定”,“开”,“关”等。真实的神奇的是,有大约35种不同的语言翻译,你可以复制到自己的Localizable.strings文件,免费的。如果你是令人难以置信的厚颜无耻,并且不介意将你的应用程序的未来稳定性问题,你可以跳过整个“复制到你自己的Localizable.strings”过程,直接以编程方式进入源代码:
w46czmvw3#
鼓励Answer to this Question(通过Stephan Heilner)和Answer(通过bdunagan)用于iPhone/iOS: How can I get a list of localized strings in all the languages my app is localized in?
Objective-C
Swift 5
使用方法:
获取UIKit本地化字符串的所有键:
vbopmzt14#
虽然这可能不是你想要的,但Mac App Store中有一个名为“System Strings”的商业应用程序,声称它提供了超过53000个标准本地化字符串的集合。它于2012年11月2日发布。我与这个应用程序或作者没有任何关系。URL为https://itunes.apple.com/us/app/systemstrings/id570467776。
lymnna715#
听起来你想问的是苹果是否提供了一种访问预翻译字符串字典的方法。我认为苹果为这样的事情提供的任何东西都将位于他们的文档中:国际化编程主题
为了回答你的问题,我不相信他们提供了一个已知翻译的字典/列表。要么你必须在你的
Localizable.strings
资源文件中定义它们,要么像其他人在评论中所说的那样,从UIBarButtonItem中提取标题(我个人会使用资源文件)。ljsrvy3e6#
为什么不对你的故事板使用基础本地化?它将为您本地化。
mqkwyuun7#
iOS 16中的工作版本。以前的那些似乎不再起作用了
t9eec4r08#
你可以用