Site icon AppTractor

Простой процесс локализации в XCode с помощью Таблицы Google

При создании своего iOS-приложения для бокса с помощью SwiftUI я быстро решил запустить его на двух языках, английском и французском, а через несколько месяцев добавил испанский. Я потратил кучу времени на управление переводами и был в бешенстве от реализации этого в XCode.

В более крупных проектах я использовал такие инструменты локализации, как Phrase или Lokalize, но они довольно быстро могут стать дорогостоящими, и мне в собственном проекте не нужно большинство их функций. Чтобы сэкономить деньги, я сначала начал вручную обрабатывать файлы Localizable.strings, но и это стало огромной проблемой. XCode на самом деле не поможет вам избежать ошибок, поскольку он не даст вам знать, если вы пропустили перевод на каком-либо языке. Рефакторинг или удаление ключей перевода также отнимало много времени и приводило к ошибкам.

Посмотрев несколько различных вариантов, которые часто были слишком сложными для того, что мне было нужно, я решил создать самое простое решение, соответствующее моим потребностям:

Если вы хотите использовать этот скрипт, он очень прост и не требует никакого взаимодействия с API Google, поэтому вам не нужны ключи API или даже вход в информационные системы Google. Просто создайте таблицу, измените пару ключей конфигурации, и все готово. Единственным недостатком является то, что вы должны сделать свой файл перевода видимым для всех… Я решил, что это приемлемо для моего варианта использования, но может не подойти вам.

Имейте в виду, что я действительно не первый, кто сделал что-то подобное, но я изо всех сил пытался использовать то, что уже было сделано для меня. Однако такие решения либо не соответствовал моему текущему рабочему процессу, требовали много настроек, использовали стек, с которым я не был знаком, либо был просто не работали и глючили.

Настройка проекта

Создайте и настройте электронную таблицу

Создайте новую таблицу Google в формате, показанном на изображении.

Я рекомендую использовать условное форматирование, чтобы выделить ключи, которые нужно перевести:

Затем сделайте файл видимым для всех:

Используйте скрипт

Скрипт написан на Ruby (так же, как Fastlane), который по умолчанию используется во многих системах. Я использую несколько зависимостей, но они уже должны быть на вашем компьютере, если у вас установлен Ruby. Если он не работает, вы можете прочитать документацию.

Загрузите или скопируйте и вставьте следующий код:

Обновите две константы вверху:

Затем вы можете просто запустить скрипт, выбрав ruby name_of_the_file.rb, и локализация будет в вашем проекте!

Exit mobile version