Connect with us

Локализация приложений

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

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

Avatar photo

Опубликовано

/

     
     

При создании своего 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, …]

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

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

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

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

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

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

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

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

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

  • GOOGLE_DOC_ID — это URL-адрес вашей электронной таблицы.
  • PATH — это место, где живет ваш проект XCode по сравнению со сценарием. Если вы предпочитаете использовать абсолютные пути, вы также можете прописать его, но немного изменить сценарий.

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

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: