Мои локализованные строки не обнаруживаются

Я пытаюсь локализовать свои строки в Xcode 4, но единственное, что я получаю, это ключи, а не значения.

Я локализовал строки, используя NSLocalizedString(key, comment). Я создал файл Localizable.strings, используя genstrings из командной строки. Я перетащил Localizable.strings из Finder в Xcode (в папку «Ресурсы»). Я локализовал Localizable.strings и добавил соответствующие страны. Я убедился, что кодировка UTF-16. Я перевел разные Localizable.strings для каждой страны. Я перепроверил, что кодировка все еще UTF-16. Я проверил, что каждое выражение в Localizable.strings заканчивается точкой с запятой.

До сих пор не работает.

Есть идеи, что я пропустил?

изменить

Здесь часть моего Localizable.strings

/* Text displayed on the comment button if there are more than one comment. */
"CommentButtonTextPlural" = "comments";

/* Text displayed on the comment button if there is exacly one comment. */
"CommentButtonTextSingular" = "comment";

/* Text displayed on the post button. */
"CommentViewPostButtonLabel" = "Post";

/* Default text displayed in the area where the user types in a comment. */
"CommentViewWriteAComment" = "Write a comment...";

/* Error message explaining that a document isn't viewable on the user's device. */
"DocumentRendererStatusDetailedErrorText" = "This document is not viewable on this device.";

/* Message explaining that the document is downloading. */
"DocumentRendererStatusDownloadingText" = "Downloading...";

person MdaG    schedule 07.09.2011    source источник
comment
Можете ли вы опубликовать содержимое ваших Localizable.strings? Если не все, то хотя бы заголовок и первые несколько ключей.   -  person Guillaume    schedule 07.09.2011
comment
Сделанный. Я добавил часть файла с английским переводом (да!). :-)   -  person MdaG    schedule 08.09.2011


Ответы (3)


Возможно, вы помещаете файл Localizable.strings в неправильное место, поэтому он использует переводы по умолчанию.

Когда вы добавляете новый язык, Xcode создает новую папку в вашем каталоге приложений, которая заканчивается на .lproj (так что для английского языка это будет en.lproj), и именно там должен быть ваш файл Localizable.strings для английского языка.

Если вы хотите французский, добавьте французский язык, и Xcode создаст каталог fr.lproj, где будет расположен файл French Localizable.strings.

Судя по вашему описанию, помещать его в папку ресурсов неправильно.

person Suhail Patel    schedule 07.09.2011
comment
Я добавил оригинальные Localizable.strings в Resources (то есть внутри Xcode). Когда я локализую файл, Xcode создает папки xx.lproj и помещает в каждую копию Localizable.strings. У меня есть папка xx.lproj (и файл .strings в каждой) для каждого из семи языков, которые я планирую поддерживать. - person MdaG; 08.09.2011

Ваша локализация должна выглядеть следующим образом:

введите здесь описание изображения

и на рабочем столе:

введите здесь описание изображения

person WrightsCS    schedule 08.09.2011
comment
Xcode4 никогда не создавал для меня ни папку App Resources, ни папку Localization. Однако я создал папки и соответственно переместил Localizable.strings. Все равно не работает. - person MdaG; 08.09.2011
comment
Это группа, которую я создал, у вас должна быть хотя бы группа Localization с Localizable.strings. - person WrightsCS; 08.09.2011
comment
Если ваш проект похож на мой скриншот, и вы правильно использовали NSLocalizedString, то он должен работать правильно. - person WrightsCS; 08.09.2011
comment
Спасибо, удалось заставить это работать сейчас. Однако группа локализации, похоже, не требуется для ее работы. Xcode также не создал его, когда я локализовал Localization.string. - person MdaG; 08.09.2011
comment
Localizable.strings - это то, что требуется. - person WrightsCS; 08.09.2011
comment
Что решило проблему, так это удаление строк Localization.string, созданных genstrings. Каким-то образом этот файл переопределяет локализованные версии. - person MdaG; 08.09.2011
comment
Да, спасибо, что нашли время. :-) Это могло быть вызвано и существующим .app-файлом. Я удалил их одновременно с .strings-файлом. Xcode в целом кажется немного глючным из-за этих небольших проблем... - person MdaG; 08.09.2011

Мне удалось заставить его работать.

Что я сделал, так это удалил файл Localizable.strings (с жесткого диска, я не трогал файлы, расположенные в папках xx.lproj), который genstrings создал для меня, и удалил файл приложения на моем устройстве.

person MdaG    schedule 08.09.2011
comment
+1 за удаление приложения с устройства и переустановку. Мое приложение не использовало локализованные строки, пока я этого не сделал. - person arlomedia; 30.11.2012