说,我有一个模型(对于Realm db):
class Country: Object {
dynamic var id = ""
dynamic var nameRu = ""
dynamic var nameEn = ""
}
在代码的某处,我显示了这样一个国家/地区的名称:
cell.textLabel?.text = countries[indexPath.row].nameRu
那么,如何根据区域设置自动显示nameRu
或nameEn
?有没有" smart"这样做的方法?
谢谢。
答案 0 :(得分:1)
可能会有以下工作吗?
let country = countries[indexPath.row]
cell.textLabel?.text = country["name\(localization)"]
其中localization
是En
还是Ru
?
答案 1 :(得分:0)
一种选择是使用标准的iOS本地化方法。这种方法假设您的基本本地化是英语,因此“Country :: name”是“Russia”,它将充当Localizable.strings的“关键”。
您的国家/地区对象无需保留所有翻译;从而简化为:
/*
Localizable.strings (ru-RU)
*/
"Russia" = "Россия"
"Germany" = "Германия"
/*
Localizable.strings (en-US)
(optional)
*/
"Russia" = "Russia"
"Germany" = "Germany"
创建Localizable.strings文件(对于ru-RU)
cell.textLabel?.text = NSLocalizedString(countries[indexPath.row].name, comment: "Country name that will translate based on iOS region preference in Settings > General > Language & Region")
使用以下方式调用:
_noviyVC.presentPlease = ^(UIViewController *controller)
{
[self.navigationController pushViewController:controller animated:YES];
};