Локализация приложений
Простой процесс локализации в XCode с помощью Таблицы Google
Посмотрев несколько различных вариантов, которые часто были слишком сложными для того, что мне было нужно, я решил создать самое простое решение, соответствующее моим потребностям.
При создании своего iOS-приложения для бокса с помощью SwiftUI я быстро решил запустить его на двух языках, английском и французском, а через несколько месяцев добавил испанский. Я потратил кучу времени на управление переводами и был в бешенстве от реализации этого в XCode.
В более крупных проектах я использовал такие инструменты локализации, как Phrase или Lokalize, но они довольно быстро могут стать дорогостоящими, и мне в собственном проекте не нужно большинство их функций. Чтобы сэкономить деньги, я сначала начал вручную обрабатывать файлы Localizable.strings, но и это стало огромной проблемой. XCode на самом деле не поможет вам избежать ошибок, поскольку он не даст вам знать, если вы пропустили перевод на каком-либо языке. Рефакторинг или удаление ключей перевода также отнимало много времени и приводило к ошибкам.
Посмотрев несколько различных вариантов, которые часто были слишком сложными для того, что мне было нужно, я решил создать самое простое решение, соответствующее моим потребностям:
- Все мои ключи перевода и контент помещаются в таблицу Google
- Я запускаю скрипт, чтобы скачать эту таблицу, переформатировать ее по вкусу XCode, а затем сохранить переводы в проект.
Если вы хотите использовать этот скрипт, он очень прост и не требует никакого взаимодействия с API Google, поэтому вам не нужны ключи API или даже вход в информационные системы Google. Просто создайте таблицу, измените пару ключей конфигурации, и все готово. Единственным недостатком является то, что вы должны сделать свой файл перевода видимым для всех… Я решил, что это приемлемо для моего варианта использования, но может не подойти вам.
Имейте в виду, что я действительно не первый, кто сделал что-то подобное, но я изо всех сил пытался использовать то, что уже было сделано для меня. Однако такие решения либо не соответствовал моему текущему рабочему процессу, требовали много настроек, использовали стек, с которым я не был знаком, либо был просто не работали и глючили.
Настройка проекта
Создайте и настройте электронную таблицу
Создайте новую таблицу Google в формате, показанном на изображении.
- Header = [ empty, LOCALE_ONE, LOCALE_TWO, …]
- Other lines = [Key, TRANSLATION_1, TRANSLATION_2, …]
Я рекомендую использовать условное форматирование, чтобы выделить ключи, которые нужно перевести:
Затем сделайте файл видимым для всех:
Используйте скрипт
Скрипт написан на Ruby (так же, как Fastlane), который по умолчанию используется во многих системах. Я использую несколько зависимостей, но они уже должны быть на вашем компьютере, если у вас установлен Ruby. Если он не работает, вы можете прочитать документацию.
Загрузите или скопируйте и вставьте следующий код:
Обновите две константы вверху:
- GOOGLE_DOC_ID — это URL-адрес вашей электронной таблицы.
- PATH — это место, где живет ваш проект XCode по сравнению со сценарием. Если вы предпочитаете использовать абсолютные пути, вы также можете прописать его, но немного изменить сценарий.
Затем вы можете просто запустить скрипт, выбрав ruby name_of_the_file.rb, и локализация будет в вашем проекте!
-
Видео и подкасты для разработчиков1 месяц назад
Lua – идеальный встраиваемый язык
-
Новости1 месяц назад
Poolside, занимающийся ИИ-программированием, привлек $500 млн
-
Новости1 месяц назад
Видео и подкасты о мобильной разработке 2024.40
-
Новости1 месяц назад
Видео и подкасты о мобильной разработке 2024.41