如何本地化后退按钮?

时间:2013-12-03 21:50:21

标签: ios localization uinavigationcontroller back-button

我正在将应用翻译成印度尼西亚语。故事板使用导航控制器并为其所有视图推送segue。当我从主菜单进入视图时,后退按钮被正确翻译,但是当我从那里进入视图时(远离主菜单的两个视图),后退按钮显示“返回”。在此先感谢您的帮助。

6 个答案:

答案 0 :(得分:17)

请在“App”-Info.plist中检查设置“本地化本机开发区域”,并将您的默认语言更改为“id”for Indonesian。如其他网站所述,这会影响iOS默认按钮上的语言,如“编辑”或“完成”。

请参阅How to change UITabBarController More button's title?

答案 1 :(得分:6)

无论如何,要更改后退按钮的标题,您必须考虑必须解决PARENT-Controller,而不是详细视图控制器。

在将子视图推送到导航控制器之前,可能在prepareForSegue-Method中,执行以下操作:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@”Back” style:UIBarButtonItemStyleBordered target:nil action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];
[backButton release];

}

答案 2 :(得分:1)

对于Swift,请使用以下命令:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "mySegueIdentifier" {   
        let backButton = UIBarButtonItem(title: "MYLOCALISEDSTRING", style: UIBarButtonItemStyle.plain, target: nil, action: nil)
        self.navigationItem.backBarButtonItem = backButton

    }
}

这将更改默认的后退按钮,如下所示:

enter image description here

答案 3 :(得分:1)

如果您要手动推送到另一个视图控制器,则举个例子:

@IBAction func actionOpenSettings(_ sender: UIButton) {
    if let settingsVC = self.storyboard?.instantiateViewController(withIdentifier: "SettingsViewControllerID") as? SettingsViewController {
        self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "Back".localized(), style: .plain, target: nil, action: nil)
        self.navigationController?.pushViewController(settingsVC, animated: true)
    }
}

答案 4 :(得分:0)

我不确定问题究竟是什么,但使用AGi18n库可能有所帮助。它根据localizable.strings文件强制.xibs进行本地化。因此,如果.xib包含“back”,并且localizable.strings具有“Back”规则,则它将被本地化。

Theres是在SmoothLocalize's localization tutorial.

的下半部分使用该库的教程

答案 5 :(得分:0)

我发现如果在Storyboard文件中设置了父视图控制器的navigationItem.backBarButtonItem.title字符串,则稍后添加的任何更改(例如在推送的ViewController的viewWillAppear中)将被忽略。检查故事板中的父控制器是否为后退按钮设置了文本。在父控制器中本地化self.navigationItem.backBarButtonItem.title为我修复了它。