Как стать автором
Обновить

Комментарии 10

А вы знаете чем локализация отличается от интернационализации?
L10n — когда говорим про пользователя конкретного региона, i18n — когда пользователь может быть откуда угодно. Мне кажется, нормально, что в статье употребляется локализация, т.к. поясняется поддержка пользователей из пусть и нескольких, но конкретных регионов (по кол-ву .strings-файлов).
Еще один подход в копилку — внешние тулзы. Например, мне интересно попробовать xcres. То же самое, что с NSLocalizedString, только позволяет проверять наличие необходимых локализационных ключей на этапе компиляции.
Интересно, пользуется ли кто под OS X гнушным gettext'ом для мультиязычности? Тем более, что под макось есть красивый редактор (опенсорсный к тому же).
А почему этот пост в хабе Разработка? Уверен, что все интересующиеся топиком, подписаны на хаб «Разработка под OS X».
Для автодополнения NSLocalizedString в Xcode есть крутой плагин Lin, ставится через alcatraz.
Объясните пожалуйста, какую пользу несет возможность динамического выбора языка интерфейса отличного от системного в приложении? Это вызывает сомнение хотя бы потому, что ни Apple, ни абсолютное большинство других разработчиков в своих приложениях так не делают.
Касательно «динамического выбора языка интерфейса отличного от системного», здесь стоит выделить два момента.

1. По поводу динамического (т.е. без перезапуска программы) — это действительно нужно нечасто (к тому же, многие приложения все равно потребуют перезапуска в этом случае). Тем не менее, эту функцию можно реализовать правильно; например, продукты Касперского обычно локализованы, но всегда можно переключиться на английский по хоткею (F5 или F12 кажется), без перезапуска, что весьма облегчает диагностику и работу техподдержки в многонациональных компаниях, в заграничной командировке, и т.п.

2. Запускать же приложения в отличной от системной локали нужно по разным причинам: если перевод для вашего языка выполнен плохо или не полностью; если нужно временно сменить язык для коллеги-иностранца, если вы работаете переводчиком/специалистом по локализации, если вы предпочитаете английскую систему, но хотите поиграть в условного «сталкера» в русской или украинской озвучке (предположим для простоты, что озвучку можно выбирать). Кстати, иногда требуется переключить даже не язык, а, к примеру, денежные единицы, если вы ведете домашнюю бухгалтерию в специфической валюте.

В этих случаях, конечно, необходимости в динамическом переключении нет, и обычно достаточно выставить нужные переменные окружения (ключи командной строки, запись в конфиге или реестре).
Эту возможность даёт, например, дропбокс, и я ей пользовался для того, чтобы имя файла скриншота создавалось с использованием только латиницы, чтобы ссылка на файл была более читаемая и короткая. Позже я переделал перехват скриншотов на реализацию на базе Automator + folder actions с генерацией ссылки нужного формата, поэтому вернул дропбокс на системную локаль, хоть на русском все менюшки стали шире.
Далее, в SourceTree: возможности переключения языка сильно не хватало после обновления до версии 2.0, когда приложение внезапно перевели на русский — это было ужасно. Приходилось руками из ресурсов приложения удалять папку ru.lproj, в которой хранятся все переводы интерфейса. Сейчас глянул — опция выбора языка появилась, все довольны.
Так что в некоторых случаях данная возможность весьма полезна, пусть и не требуется большинству приложений.
Instagram, Skyscanner позволяют менять язык приложения в настройках. :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий