Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 您能否以编程方式访问Cocoa Touch中的标准本地化字符串?_Iphone_Ios_Localization - Fatal编程技术网

Iphone 您能否以编程方式访问Cocoa Touch中的标准本地化字符串?

Iphone 您能否以编程方式访问Cocoa Touch中的标准本地化字符串?,iphone,ios,localization,Iphone,Ios,Localization,一些iOS控件使用苹果内置的本地化字符串。“完成”、“编辑”、“返回栏”按钮项就是一些示例。有没有办法访问这些字符串 我正在制作带有标准删除或取消选项的UIActionSheet,就像在Contacts应用程序中删除联系人一样 有没有办法在代码中引用这些字符串?如果没有,我至少可以从苹果应用程序的资源中提取这些字符串吗?它将节省额外的本地化工作,并确保与平台的一致性。如果iOS和Mac OS一样,每个应用程序都有自己的Localizable.strings文件。 在每一个字符串文件中都有一些小字

一些iOS控件使用苹果内置的本地化字符串。“完成”、“编辑”、“返回栏”按钮项就是一些示例。有没有办法访问这些字符串

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


有没有办法在代码中引用这些字符串?如果没有,我至少可以从苹果应用程序的资源中提取这些字符串吗?它将节省额外的本地化工作,并确保与平台的一致性。

如果iOS和Mac OS一样,每个应用程序都有自己的Localizable.strings文件。 在每一个字符串文件中都有一些小字符串,比如Done、Edit、Cancel等等

以下是我从Finder.app的English 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>
看起来更有条理。不过,可能不允许复制他们的文件-

来自苹果开发者关系部的Quinn eskimo1的一份报告

一些UI元素会自动为您本地化。例如,在一个维吾尔布托民族上的艺术品。但是,由于在UIActionSheet中使用了OK和Cancel等字符串,因此没有支持的方法来访问它们。然而,它们对于您的本地用户来说应该是微不足道的


2岁。但新线程也有同样的结果。没有办法得到那些字符串

可以使用以下代码段从UIKit包访问本地化字符串:

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

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