{"id":13650,"url":"\/distributions\/13650\/click?bit=1&hash=b4a44ea9299acb416ac92e110a87e80acc960de1a8f124e06d52ec1ea62c252a","title":"\u041a\u0430\u043a \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u043c \u043a\u0430\u043a \u0432 Sims","buttonText":"","imageUuid":"","isPaidAndBannersEnabled":false}
SwiftBook

Локализация приложений на Swift: что нужно знать?

Всем привет! Вы на канале школы мобильной разработки 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

0
Комментарии
Читать все 0 комментариев
null