某些iOS控件具有Apple内置的本地化字符串。 “完成”,“编辑”,“返回”栏按钮项是一些示例。有没有办法访问这些字符串?
我正在制作带有标准“删除”或“取消”选项的UIActionSheet,就像您在“联系人”应用中删除联系人一样。
有没有办法在代码中引用这些字符串?如果没有,是否有某些地方我至少可以获得这些字符串(比如从Apple应用程序的资源中提取它们)?它可以节省额外的本地化工作,并确保与平台的一致性。
答案 0 :(得分:6)
如果iOS与Mac OS类似,则每个应用都会携带自己的Localizable.strings文件。 在每个字符串文件中,您拥有所有那些小字符串,如完成,编辑,取消等。
这些是我从Finder.app的英文Localizable.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>
你明白了。每个小字符串都在每个应用程序中本地化
这是来自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)的answer in apples devforum。
但是,2岁。但是较新的线程具有相同的结果。无法获得这些字符串。某些UI元素会自动为您本地化。例如,UIBarButtonItem上的图稿。 但是,没有受到支持的方式来获取“OK”和“取消”等字符串,因为它们在UIActionSheet中使用。但是,对于您的本地人来说,它们应该是微不足道的。
答案 1 :(得分:4)
可以使用以下代码段访问UIKit捆绑包中的本地化字符串:
static NSString * UIKitLocalizedString(NSString *string)
{
NSBundle *UIKitBundle = [NSBundle bundleForClass:[UIApplication class]];
return UIKitBundle ? [UIKitBundle localizedStringForKey:string value:string table:nil] : string;
}