Всем привет! Вы на канале школы мобильной разработки SwiftBook. Здесь мы рассказываем и показываем всё, что знаем о языке Swift и Kotlin: увлечённо, понятно и без воды.
С вами Анна Васичко и сегодня мы поговорим с вами про локализацию приложений на Swift.
Ссылка на видео здесь.
Локализация и перевод приложения - штука важная, ведь чем больше языков поддерживает ваше приложение, тем большую аудиторию оно охватывает, соответственно такое приложение будет более востребовано у пользователей.
В этом видео мы разберём разные варианты локализации приложения.
У меня уже открыт проект в XCode, здесь мы видим всего лишь один экран и лейбл с кнопкой, которые я уже закрепила.
Мы будем переводить текст в лейбле и в кнопке.
Я предложу вам несколько вариантов, а вы уже сможете выбрать тот, который наиболее подойдёт вашим целям.
Итак будем двигаться от простого к сложному.
Один из способов, позволяющий локализировать приложение - это перейти в настройки проекта и здесь в разделе Localizations нажать на плюс и добавить язык, на который мы будем переводить наше приложение.
Я нажимаю на плюс и добавляю итальянский.
Здесь пока выбираем Localizable Strings - для локализации именно строк. И делать я это буду только для Main.storyboard.
В иерархии файлов справа мы видим, что в разделе Main появились файлы Main(Base) - сториборд с элементами интерфейса с исходными значениями и также файл Main(Italian), переходим в него и здесь мы можем задать нужный нам текст для соответствующих элементов.
И так укажем перевод на итальянский.
И теперь запустим приложение, но, как видите, у нас ничего не поменялось. Дело в том, что нам нужно было сначала изменить язык запускаемого симулятора.
Это можно сделать в меню Edit Scheme, где в разделе Options мы меняем язык приложения на итальянский.
Запускаем снова и ура! Наше приложение теперь переведено на итальянский.
Ещё один способ локализации - это локализовать не только строковые величины, но сделать отдельный сториборд под версию на другом языке. Для этого в разделе Localizations в настройках удалим добавленный итальянский язык и добавим его снова указывая теперь тип файла Interface Builder Storyboard.
И в разделе Main у нас появятся отдельные сториборды, где мы сможем вручную указать, какой текст будет отображаться в элементах интерфейса.
Запустим симулятор и проверим, что всё работает.
Также я хотела бы показать вам, как можно локализовать строковые величины через расширение к типу String.
Для этого в файле viewController я программно добавлю на экран лейбл с надписью Welcome, у меня для этого есть специальный сниппет.
Здесь я объявляю и настраиваю лейбл, добавим его на вью в методе viewDidLoad и также зададим фрейм, он зафиксируется у нас по центру экрана.
Это тренировочный пример, поэтому закрепим его таким более быстрым способом, чтобы просто увидеть его на экране.
Итак, запускаем симулятор и видим лейбл на экране.
Теперь в отдельном файле расширим тип String методом localized, который будем возвращать нам значение типа String.
Внутри мы будем возвращать локализированную строку через NSLocalizedString с инициализатором, выключающим в себя ключ, в качестве которого мы передаём self, то есть ключ у нас равен самой строке,
tableName - это имя файла, в котором будет содержаться перевод для ключа, файл мы добавим позже, он будет называться Localizable.
Потом bundle, где мы указываем директорию, где у нас находится файл с переводом - это основное приложение - .main
В value и comment мы также передаём self - value - это значение по дефолту, у нас это вариант на английском языке, поэтому self.
И в комментарии мы ничего дополнительного указывать не будем, передадим просто self.
И теперь во вью контроллере вызовем метод localized у строки, которую мы передаём в лейбл.
Но это ещё не всё, теперь мы должны добавить файл с переводом, про который я говорила ранее.
Добавляем файл типа Strings, называющийся Localizable, так же, как мы указали в расширении.
В панели справа мы нажимаем на кнопку Licalize, основной язык у нас английский, также отмечаем итальянский.
У нас появились два отдельных файла доя версии на английском и на итальянском.
Во втором файле по ключу Welcome мы обозначим перевод этого слова на итальянский - Benvenuto.
Это делается следующим образом
“Welcome = “Benvenuto”;
И запуская симулятор видим, что чудо произошло и текст в лейбле перевёлся на итальянский язык.
На этом у меня всё, мы познакомились с разными вариантами локализации приложения, надеюсь, это видео было для вас полезным.
Подписывайся на наши соцсети: Telegram / VKontakte
Вступай в открытый чат для iOS-разработчиков: t.me/swiftbook_chat