2010-05-06 4 views
2

Im делает мой первый локализованный проект, и я сражался с ним в течение нескольких часов без везения.iPhone Локализация: простой проект не работает

Мне нужно создать приложение, которое на основе пользовательского выбора отображает тексты и изображения на разных языках.

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

Это мои шаги до сих пор:

1) Создать новый проект.

2) Вручную создайте каталог «en.lproj» в папке проектов.

3) Используя TexEdit создайте файл под названием «Localizable.strings» и сохраните его в Unicode UTF-16. Файл выглядит следующим образом:

/* 
    Localizable.strings 
    Multilanguage02 

    Created by Gonzalo Floria on 5/6/10. 
    Copyright 2010 __MyCompanyName__. All rights reserved. 
*/ 
"Hello" = "Hi"; 
"Goodbye" = "Bye"; 

4) Я перетащить этот файл в папку ресурсов на XCode и появляется с «подкаталогом» «ан» под ним (с ниспадающим треугольником слева). Если я попытаюсь увидеть его на XCode, все выглядит неправильно, много? символы, но Im догадывается, потому что это файл UTF-16. Правильно?

5) Теперь на мой взгляд сделал нагрузки я могу получить доступ к этой строки, как это:

NSString *translated; 
translated = NSLocalizedString(@"Hello", @"User greetings"); 
NSLog(@"Translated text is %@",translated); 

Моя проблема позволяет пользователю переключаться язык. Я создал es.lproj с файлом Localizable.strings (на испанском языке), но я НЕ ДОЛЖЕН получить доступ к нему.

Я попробовал эту строку:

[[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects:@"es", nil] forKey:@"AppleLanguages"]; 

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

Должен ли я реализовать свои собственные словарные файлы и забыть о семействе NSLocalizableString?

Спасибо за ЛЮБОЙ совет или указатели.

Gonso

+0

Привет, Я ищу способ изменить язык NSLocalizableStrings. Вы нашли решение? – Daniel

ответ

0

Существует уже дискуссия о том, что here.

Их предложение заключается в создании субпакета, а затем использовать метод, называемый NSLocalizedStringFromTableInBundle(...) (как описано в reference manual) для получить локализованную строку из определенной таблицы в пачке.

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

Смежные вопросы