#ios #xcode #localization
#iOS #xcode #локализация
Вопрос:
Хорошо, это действует мне на нервы!
Должно быть, я сделал что-то не так с файлом, но мое приложение теперь использует подписи из «ghost» Localizable.strings. С тех пор я изменил содержимое файла, но все изменения игнорируются.
- Я получаю подписи «обычным» способом:
NSLocalizedString(@"captionKey", nil)
- любое изменение Localizable.strings игнорируется
- если я удалю ссылку и файл Localizable.strings, приложение по-прежнему отображает правильные подписи!
- После удаления nslocalizable.strings я искал любой файл, содержащий мои подписи, и ничего не получил, но при сборке они отображаются.
- Я попытался сбросить эмулятор, очистить свой проект.. ничего. Все еще отображаются старые подписи
- Та же проблема на моем iPhone
- На этот раз, когда я распространяю IPA по воздуху, подписи не отображаются, только клавиши
Пожалуйста, помогите!
Редактировать: следуя комментарию DarkDust, я удалил приложение с iPhone, очистил проект, создал и запустил, и теперь приложение отображает ключи. Вполне нормально. Но когда я добавляю новый Localizable.strings, он игнорируется. Если это поможет, приведенный ниже код регистрирует (null)
:
NSLog(@"%@", [[NSBundle bundleForClass:[self class]] pathForResource:@"Localizable" ofType:@"strings"]);
Комментарии:
1. Вы удалили приложение с телефона, затем очистили свой проект и установили приложение заново?
2. Только что сделал это. На этот раз приложение отображает ключи. Затем я добавил новый «Localizable.strings» с некоторым содержимым, снова очистил, удалил приложение, построил, и приложение по-прежнему показывает ключи
3. Это сложно. У меня была эта проблема, а затем она разрешилась сама собой без объяснения причин несколько дней спустя.
Ответ №1:
Ok нашел проблему. Я каким-то образом перепутал правила сборки (Xcode 4 -> выберите свою цель -> вкладка «Правила сборки») Там у меня было несколько правил «CopyStringsFile», которые не использовали «CopyStringFile». Понятия не имею, как это произошло. Все, что мне нужно было сделать, это удалить их (убедившись, что хотя бы один остался с помощью «CopyStringFile»)
Хитрый материал