如何从当前语言的资源路径获取iOS资源字典?

时间:2013-06-14 18:36:58

标签: ios6 localization xcode4.6

我有一个iPad应用程序(XCode 4.6,iOS 6.2,Storyboards和ARC)。我正在尝试本地化UISegmentControl。我已经在MainStoryboard.strings文件中有了翻译,并且在控制器的viewDidLoad中有了这段代码:

    //  set titles of UISegmentedControls
NSString *resourcePath  =[[NSBundle mainBundle] pathForResource:@"MainStoryboard" ofType:@"strings"];
NSDictionary *resourceDict = [NSDictionary dictionaryWithContentsOfFile:resourcePath];

[self.oDeleteOldAppts setTitle:[resourceDict objectForKey:@"jcy-vN-Nq9.segmentTitles[0]"] forSegmentAtIndex:0];
[self.oDeleteOldAppts setTitle:[resourceDict objectForKey:@"jcy-vN-Nq9.segmentTitles[1]"] forSegmentAtIndex:1];
[self.oDeleteOldAppts setTitle:[resourceDict objectForKey:@"jcy-vN-Nq9.segmentTitles[2]"] forSegmentAtIndex:2];

问题是 resourcePath resourceDict 都是nil。如何使用当前语言获取它们,是 en 还是其他语言?

2 个答案:

答案 0 :(得分:0)

不要做任何这些。您可以通过编辑与其相关的.strings文件来使用适当的语言来本地化故事板。当iOS显示视图时,它会自动获取正确的本地化并显示它。

编辑:如果你想从字符串文件中提取一些内容,请执行以下操作:

[[NSBundle mainBundle] localizedStringForKey:@"someKeyHere" value:nil table:@"MainStoryboard"];

答案 1 :(得分:0)

由于UISegmentedControls无法对其标题进行本地化,因此我将其替换为我从GitHub获得的RadioButtons;本地化标签,移动它们旁边的单选按钮,它就像一个冠军。

更新一个问题 - 似乎没有办法将设置从运行中保持运行,因此,这不起作用。我现在正在创建自己的自定义按钮并模拟UISegmentedControl。没有问题......