Многоязычные изменения в файле .xib. - PullRequest
2 голосов
/ 12 мая 2011

Мне нужно разработать приложение на четыре (4) языка (английский, французский, курсив, испанский).

Итак, для этого я хочу знать, есть ли способ отобразить данные на разных языках, используя только одну (1) .xib file в верхней строке.

Пример:

У меня есть файл Setting.xib (файл .xib) в которые есть четыре метки в просмотреть часть и в верхней панели этого Nib-файл, я хочу изменить метку имена в соответствии с заданным языком используя один и только один Nib-файл.

Итак, пожалуйста, дайте мне соответствующее решение.

Что займет меньше времени для загрузки.

1 Ответ

2 голосов
/ 01 июня 2012

Прежде всего, я не понимаю, почему вы не можете просто использовать NSLocalizedString при настройке текста метки, он делает именно то, что вам нужно, загружая соответствующую версию текста, в соответствии с языком устройства.

В любом случае, я думаю, вы могли бы найти что-то полезное здесь .

Я действительно сделал что-то подобное, с шестью языками и только одним Nib, но в моем случае я мог бы иметьязык изменился внутри приложения, поэтому мне нужно было принудительно сказать ему, чтобы я загружал локализованную версию строки из определенного пакета.

Вот точный код, который должен помочь вам в случае, если ваша проблемабольше похоже на мой и простой NSLocalizedString недостаточно:

NSString* path= [[NSBundle mainBundle] pathForResource:[[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] objectAtIndex:0] ofType:@"lproj"];

NSBundle* languageBundle = [NSBundle bundleWithPath:path];

someLabel.text = [languageBundle localizedStringForKey:@"textKey" value:@"" table:nil];

Поскольку у вас, вероятно, будет более одной метки, было бы неплохо сохранить путь в качестве свойства класса и установить его в viewDidLoad,так что вы сможете получить к нему доступ из любого метода / функции внутри этого класса.

...