Как локализовать все ваши iOS приложения на 20 языков за 5 минут
Исходный пост: https://markparker.me/blog/localize-ios-app-in-5-minutes
Предисловие
В современном мире спрос на мобильные приложения, которыми пользуются люди из разных стран и регионов, значительно увеличился. Для разработчиков важно сделать свои приложения доступными на нескольких языках. Локализация приложения может предложить много преимуществ:
Расширение аудитории: Локализация вашего приложения вы можете охватить пользователей, которые не могут говорить на языке вашего приложения по умолчанию. Это может помочь вам подключиться на новые рынки и увеличить вашу пользовательскую базу.
Улучшение пользовательского опыта: Пользователи с большей вероятностью будут использовать и наслаждаться приложением, которое доступно на их родном языке. Локализация вашего приложения может помочь вам обеспечить лучший пользовательский опыт, что может привести к лучшим обзорам, рейтингам и показателям удержания. Локализация вашего приложения может дать вам конкурентное преимущество в регионах, где ваши конкуренты, возможно, не локализовали свои приложения.
Увеличение доходов: Локализация вашего приложения может привести к увеличению доходов, поскольку пользователи с большей вероятностью будут делать покупки в приложении или оплатить подписки, если приложение доступно на их родном языке.
Но есть также несколько проблем и потенциальных проблем, с которыми могут столкнуться разработчики. Локализация может занять много времени и ресурсов, особенно, для приложений с большим количеством контента и длинным списком поддерживаемых языков.
Но мы бы не были разработчиками, если бы пытались всегда все автоматизировать. Автоматизированная локализация может быстро и эффективно переводить контент, снизить затраты, связанные с ручным переводом, например, наем профессиональных переводчиков или выделение внутренних ресурсов для этой задачи. Это особенно эффективно, если приложение создается одним разработчиком.
Подготовьте свой проект
Я не буду вдаваться в подробности о том, как локализация строк работает в xcode проектах, по этому вопросу уже есть много других учебных пособий. Я только выделю несколько ключевых шагов:
Создайте файл Localizable.strings и заполните его строками, которые вы хотите локализовать.
/* optional description */ "[key]" = "[string]"; /* Example: */ "welcome text" = "Welcome to XCodelocalize";
Перейдите в настройки файла проекта, добавьте желаемые языки. Apple рекомендует EFIGS (английский французский итальянский немецкий испанский) + китайский язык в качестве основы.
Создайте файлы Localizable.strings для всех выбранных языков. Скорее всего, вы так же захотите локализовать файлы plist, storyboard и intentdefinition.
Установка XCodeLocalize
Неожиданно, инструмент для iOS разработки оказался написанным на питоне, так что убедитесь, что у вас есть python 3.9+
После этого вы можете установить xcodelocalize с помощью pip:
pip3 install xcodelocalize
Также доступна установка из .whl файла на странице релизов или с помощью poetry из исходников.
Запустите автоматическую локализацию
cd к корневой папке проекта и запустите
xcodelocalize [OPTIONS]
или
python3 -m xcodelocalize [OPTIONS]
Параметры
--base-language: код языка, с которого будут переведены все строки. [по умолчанию: 'en']
--override / --no-override: булево значение; указывает, будут ли переведены строки, которые уже существуют в файле. Перевести, если override; пропустить, если no-override. [по умолчанию: no-override]
--format-base / --no-format-base: сортировать строки base файла по ключу. [по умолчанию: no-format-base]
--file: Имена .strings файлов для перевода. Можно указать несколько файлов. Если не указано, все файлы будут переведены. [по умолчанию: None]
Пример:xcodelocalize --file InfoPlist xcodelocalize --file InfoPlist --file MainStoryboard --file Localizable
--key: Ключи, которые должны быть переведены. Можно указать несколько ключей. Если не указано, все будут переведены. [по умолчанию: None]
--language: Код языков, которые будут переведены. Допускается множество значений. Если не указано, все файлы будут переведены. [по умолчанию: None]
--log-level: Один из [progress|errors|group|string]. [по умолчанию: group]
--help: Информация о параметрах
Автоматизация
Вы можете перейти в Target -> Build Phases -> New Run Script Phase в вашем проекте Xcode и ввести xcodelocalize. Это будет переводить необходимые строки во время сборки и ваши файлы всегда будут локализованы.
Заключение
Теперь вы знаете, как быстро локализовать свои приложения для iOS на многих других языках.
Не стесняйтесь оставлять комментарии. Поставьте звезду репозиторию, если вам понравилось.
Вопрос к Swift разработчикам
Решил заняться программированием на языке Swift. Все на уровне хобби, хочется сделать программку для iPhone/iPad под рабочие нужды. И возник вопрос о том, где брать материал для обучения. С основами разработки (кортежи, словари, массивами) более-менее понятно, информации куча, и все работает.
Но я в одном видеокурсе дошёл до TableView, и тут все пошло не по плану. В этом видеокурсе, который действительно есть за что похвалить собраны все материалы аж с 2016 года, но язык меняется, и UiTableView так, как описывают в курсе для Swift 5 у меня не получается. Например, при создании “Apple Music” нужно в окне Search подключить TableView, но он нифига не подключается так, как описано в курсе. Более того, при открытии файла курса с кодом после запуска на эмуляторе так же не отображается TableView, просто пустое окно с возможностью прокрутки, но без самой таблицы. Я понимаю, что за это время изменилась логика в языке, а может быть и в Xcode были изменения. Возможно я плохо ищу, но я не могу найти как теперь подключать TableView. Возможно есть какие-либо учебники свежих выпусков, или иные источники, в которых описаны изменения? И есть ли сообщества по языку Swift? Я нашёл только заброшенные, где давно ничего не обновляют.
И второй главный вопрос: есть ли смысл его изучать, учитывая, что у нас в стране iOS может окирпичиться, судя по разнообразным слухам?
Спасибо!
Создал свой Cheat Sheet для Xcode
Надеюсь, что кому-то пригодится из коллег-разработчиков. Ресурс можно изменять и распространять как угодно.
Ссылка для друга на оригинал в высоком качестве
Тут я пишу в целом про разработку.

















