你可以编程访问Cocoa Touch中的标准本地化string吗?

一些iOS控件拥有由Apple内置的本地化string。 “完成”,“编辑”,“返回”栏button项目是一些例子。 有没有办法来访问这些string?

我正在制作一个带有标准“删除”或“取消”选项的UIActionSheet,就像删除联系人应用程序中的联系人一样。

有没有办法在代码中引用这些string? 如果没有,是否有某处我可以至less得到这些string(如从苹果应用程序的资源提取它们)? 这将节省额外的本地化工作,并确保与平台的一致性。

如果iOS和Mac OS一样,每个应用程序都带有自己的Localizable.strings文件。 在每个string文件中,你都有像Done,Edit,Cancel等那样的小string。

这些是我从Finder.app的英文Localizable.string文件中复制的一些string:

<key>AL1</key> <string>Cancel</string> <key>AL4</key> <string>OK</string> <key>AL9</key> <string>Don't Save</string> <key>FF24</key> <string>Save</string> <key>U32</key> <string>Yes</string> <key>U33</key> <string>No</string> 

你明白了。 每个小string都在每个应用程

这一个是从iTunes.app。

 /* ===== Ask User Strings ===== */ "23987.001" = "Yes"; "23987.002" = "No"; "23987.003" = "OK"; "23987.004" = "Cancel"; "23987.005" = "Ignore"; "23987.006" = "Quit"; "23987.007" = "Don't Quit"; "23987.008" = "Apply"; "23987.009" = "Don't Apply"; "23987.010" = "Later"; "23987.011" = "Don't Save"; "23987.012" = "Save"; "23987.013" = "Stop"; "23987.014" = "Continue"; "23987.015" = "Delete"; "23987.016" = "Remove"; "23987.017" = "Replace"; "23987.018" = "Don't Replace"; "23987.019" = "Do not ask me again"; 

看起来有点结构化。 复制他们的文件可能不被允许,但;;)


苹果开发者关系公司(Apple Developer Relations)的Quinn(eskimo1)的苹果devforum的答案 。

某些UI元素会自动为您本地化。 例如,UIBarButtonItem上的图稿。 但是,在UIActionSheet中使用“OK”和“Cancel”这样的string时没有支持的方法。 然而,他们应该为你的本地化者应付微不足道的。

2岁了。 但是较新的线程有相同的结果。 没办法得到那些string。

可以使用以下代码从UIKit包中访问本地化的string:

 static NSString * UIKitLocalizedString(NSString *string) { NSBundle *UIKitBundle = [NSBundle bundleForClass:[UIApplication class]]; return UIKitBundle ? [UIKitBundle localizedStringForKey:string value:string table:nil] : string; } 

完整功劳归功于0xced ( XCDFormInputAccessoryView中的 使用 )