Локализация значения переменной на iOS - PullRequest
0 голосов
/ 06 июня 2011

У меня около 72 html-файлов в папке с ресурсами, и мне нужно их локализовать.Теперь я перевел их на французский.Выбор файла зависит от ввода пользователя, поэтому имя файла создается переменной.Теперь проблема заключается в том, как локализовать значение переменной.

Например, у меня есть следующие 3 файла в папке ресурсов.

  1. AAAAA0.html
  2. BBBBB28.html
  3. CCCCC33.html

У меня также есть эти файлы на французском языке в папке ресурсов.

  1. AAAAA0-French.html
  2. BBBBB28-French.html
  3. CCCCC33-French.html

Вот мой код, который работает нормально без локализации.


// ViewController.m File

appDelegate2=[[[UIApplication sharedApplication] delegate] retain];
NSString *getSign2=[appDelegate2.globalString    stringByAppendingString:appDelegate2.globalindex];
NSString *filePath=[[NSBundle mainBundle] pathForResource:getSign2 ofType:@"html" ];

Если пользовательский ввод вызывает выбор AAAAA0.html, то globalString будет «AAAAA», globalIndex будет «0», а getSign2 будет «AAAAA0».

Если пользовательский ввод вызывает выбор BBBBB28.html, тогда globalString будет "BBBBB", globalIndex будет "28", а getSign2 будет "BBBBB28".

Если пользовательский ввод вызывает выбор CCCCC33.html, тогда globalString будет "CCCCC", globalIndex будет«33» и getSign2 будет «CCCCC33».

Теперь у меня уже есть Localizable.strФайл ING и мои файлы .xib уже локализованы (все метки, изображения, средство выбора даты и т. д.).

Я хочу изменить значение getSign2 с AAAAA0.html на AAAA0-French.html, если язык пользователя французский.Аналогичным образом он должен измениться на BBBB28-French.html и CCCC33-French.html для BBBB28.html и CCCC33.html соответственно.

Что я должен добавить в localizable.string для этого?Какие изменения я должен внести в файл ViewController.m?


Я знаю, что могу использовать следующие

NSLocale *locale=[NSLocale currentLocale];
NSString *currentlocale =[locale displayNameForKey:NSLocaleIdentifier value:[locale localeIdentifier]];
NSLog(@"Complete Locale: %@",currentlocale);

if (currentocale==@"French") {

    NSString *getSignNew=[getSign2 stringByAppendingString:@"-French"];
    NSString *filePath=[[NSBundle mainBundle] pathForResource:getSignNew ofType:@"html" ];
}

Но этот метод проверяет условия в файле ViewController.m, пока я сделал вседругое связанное с локализацией кодирование в localizable.string.Это вызовет проблемы, когда я подам заявку?Если это не правильное решение, скажите, пожалуйста, как решить эту проблему.

Пожалуйста, ответьте как можно скорее.

Спасибо.

1 Ответ

2 голосов
/ 06 июня 2011

Локализованный файл должен быть размещен в структуре следующим образом:

Your.app/
  English.lproj/
    AAAAA0.html     // English localized file
    ....
  French.lproj/
    AAAAA0.html     // French localized file
    ...
  zh_TW.lproj/
    AAAAA0.html     // Chinese localized file
    ...

, а затем -pathForResource:ofType: автоматически найдет правильный файл, соответствующий текущей локали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...