Почему мой файл не перемещается в «en.lproj», а вместо этого в новый «English.lproj» после «Сделать файл локализуемым» в Xcode? - PullRequest
4 голосов
/ 13 августа 2011

Это немного сбивает с толку:

Сначала я использовал genstrings, что позволило мне создать файл Localizable.strings в папке en.lproj (также существует в файловой системе, подобной этой).

Затем у меня был файл JSON, который я хотел локализовать, поэтому я открыл информационную панель для этого файла и выбрал «Сделать файл локализуемым». Затем Xcode создал папку English.lproj в файловой системе, а также группу под названием вот так. Затем он переместил туда мой файл.

Так что теперь у меня были en.lproj и English.lproj для одного и того же: английский материал.

Я не доволен этой ситуацией. Могу ли я сделать что-нибудь с этим? Как я могу это исправить?

Кроме того, кто-то может указать, в чем разница между использованием "English.lproj" и "en.lproj"? Бьюсь об заклад, это разница.

Ответы [ 2 ]

8 голосов
/ 13 августа 2011

Это ошибка Xcode.Просто переместите все в папке English.lproj в папку en.lproj.Я не проверял Xcode 4.1, но предыдущие версии Xcode не позволяли вам добавлять новые локализации, если вы удаляете папку English.lproj, поэтому не удаляйте ее.

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

Некоторые сведения - до Max OS X 10.4 унаследовално использовались более удобочитаемые) такие имена, как «английский», «испанский» и т. д., но документация Apple по интернационализации *1011* гласит, что эти значения устарели:

В дополнение к обозначениям языка ISO подпрограммы пакета также распознают несколько устаревших обозначений языка.Эти указатели позволяют вам указать язык по имени, читаемому пользователем, а не по коду из двух или трех символов.Обозначения включали имена, такие как английский, французский, немецкий, японский, китайский, испанский, итальянский, шведский и португальский среди других. Хотя эти имена все еще распознаются и обрабатываются классом NSBundle и функциями пакета Core Foundation, их использование не рекомендуется, и их поддержка в будущих версиях Mac OS X или iPhone OS не гарантируется .Вместо этого используйте коды, описанные в «Языковые обозначения» и «Региональные обозначения».

2 голосов
/ 13 августа 2011

Вы должны использовать коды кодов языков ISO-639-1 (двухбуквенный) или ISO-639-2 (трехбуквенный) для целей локализации всех языков, кроме английского.XCode по-прежнему использует «английский» вместо «en» в качестве локализации по умолчанию.

См. http://eschatologist.net/blog/?p=224 для информации.

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