2015-08-17 1 views
9

Я не могу получить правильные локализованные немецкие строки из файла Localizable.strings. Моя установка приложения выглядит следующим образомНе удается получить локализованные строки из файла Localizable.strings

  • Main.storyboard

    • Main.storyboard (Base)
    • Main.strings (немецкий) -> эти строки переведены правильно
  • Localizable.strings

    • Localizable.strings (английский)
    • Localizable.strings (немецкий) -> не может получить эти строки

Внутри приложения Я пытаюсь получить строку, как этот

NSString *item = NSLocalizedString(@"Group expenses", @"Menu item"); 
(немецкий) файл

Localizable.strings выглядит следующим образом

/* Menu item */ 
"Group expenses" = "Gruppenausgaben"; 

Когда я поставил бр eakpoint после item я всегда получаю английскую тетиву, однако путь к ресурсу кажется правильным NSString *path = [[NSBundle mainBundle] pathForResource:[[NSLocale preferredLanguages] objectAtIndex:0] ofType:@"lproj"]; дает мне: /data/Containers/Bundle/Application/5E3ED6BF-71E1-4C60-9EDA-610C9A32B8EF/MyApp.app/de.lproj

Я также локализован строка файл

enter image description here

enter image description here

Он также включен в Ресурсы копирования Bundle

enter image description here

Я попробовал несколько ответов от различных вопросов здесь, на StackOverflow, как удалить приложение и сделать чистую (Shift + Cmd + к), настройка языка приложения под Edit Scheme ...

+0

вы можете поделиться исходным кодом? Если вы не можете поделиться оригинальным, можете ли вы попытаться создать новое фиктивное приложение, которое будет содержать идентичную настройку локализации и которая также не сможет работать должным образом? Преимущество этого (в дополнение к другим пользователям, способным тестировать ваш код) заключается в том, что вы можете определить причину, по которой она не работает самостоятельно –

+0

проверить мой ответ. У вас было неправильное имя файла Localisable.strings –

ответ

11

Хорошо, я думаю, что знаю причину вашей ошибки. У парса была проблема с добавлением Localizable.strings, как задокументировано here. Это было зафиксировано в 1.8.1 варианты их структур:

V1.8.1 - 19 августа 2015

...

Исправлены: перезаписаны локализации при использовании через CocoaPods и интеграцию в качестве статической библиотеки.

...

Вы также можете проверить this вопрос.

Итак, убедитесь, что вы используете последнюю версию рамки, и все должно работать :)

+0

@ user1463853 Да, я думал, что это была возможность. Однако вы должны изменить пример проекта, чтобы он имитировал те же условия, что и исходный, и все еще производит ошибку. Когда вы это сделаете, вы либо найдете ошибку самостоятельно, либо другие смогут вам помочь. На данный момент похоже, что все СЛЕДУЕТ работать, поэтому очень сложно предложить решение. –

+0

@ user1463853 Я обновил свой ответ другим предложением. И это то, что Localisable.string может не включаться в фазы сборки –

+0

@ user1463853 становится все более интересным. Что делать, если вы измените локализацию для английского? Например, «Групповые расходы» = «Групповые расходы2». Так ли это работает? Кроме того, почему у вас есть 3 файла, локализованных на английском языке и только от 2 до немецких (это от вашего скриншота)? –

0

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

  • Удостоверьтесь, что вы установили немецкий язык в качестве системного языка устройства iOS.

  • Запустите это приложение в Xcode, затем остановите. Запустите приложение с устройства iOS вручную. (Первый запуск с Xcode будет использовать базовый язык, я не знаю, почему)

  • Смотрите, если он работает

+0

Тем не менее, к сожалению, – gpichler