В Лекции 17 рассматриваются две главные темы:
- интернационализация и локализация, которые позволяют использовать ваше приложение во всем мире на различных языках.
- добавление UI настроек приложения в Общие Настройки (Settings) прибора.
Пол Хэгерти рассматривает интернационализацию и локализацию как два разных процесса. Интернационализация делает ваше приложение локализуемым. Локализация — это процесс собственно перевода на другой язык.
Интернационализации выполняется разработчиком приложения и должна обеспечивать 3 вещи:
- правильную работу системы Autolayout
- обертку литеральных строк, участвующих в формировании пользовательского интерфейса, в вызовы NSLocalizedString и String.localizedStringWithFormat
- использование NSNumberFormatter, NSDateFormatter, NSDateСomponentsFormatter и других для представления чисел, дат, валюты, расстояния и т.д. на экране
Далее в Xcode работает система локализации, которая автоматически объединяет все, что подготовлено разработчиком для перевода, и экспортирует это в .xliff файлы, являющиеся индустриальным стандартом для «локализаторов». Локализаторы, пользуясь своим инструментарием, возвращают .xliff файлы с результатами перевода, которые импортируются назад в приложение. Используя режим Preview для storyboard, а также Run Схемы можно очень быстро просмотреть результаты локализации даже для большого количества языков.
Пол Хэгерти показывает демонстрационный пример локализации знакомого нам приложения Autolayout на 5 языков: японский, китайский (традиционный и упрощенный), французский и арабский. Демонстрационный пример необыкновенно зрелищный и увлекательный. Хотя тема мне поначалу показал скучноватой, но от просмотра демонстрационного примера невозможно оторваться.
Надо сказать, Apple постаралась сделать систему локализации в iOS 8 исключительно мощной и легкой для разработчиков и переводчиков.
Вторая часть лекции посвящена добавлению элементов UI для специфических настроек вашего приложения в Общие Настройки (Settings) прибора. Это выполняется с помощью Settings Bundle и NSUserDefaults. Для демонстрации Settings Bundle выбрано приложение Bouncer, в котором красный квадратик ударяется о стенки, о верхнюю и нижнюю границы экрана, и, отскакивая от них, движется дальше. Если мы оставим iPhone в покое, то скорость квадратика замедляется и, он в конце концов останавливается. Замедление определяется упругостью квадратика. Эту упругость и предлагается разместить в Общих Настройках (Settings) прибора.
Лекция и слайды на английском языке находятся на iTunes название “17. Internationalization and Settings.”
Код для демонстрационных примеров Autolayout Localized и Bouncer Settings можно найти для Swift 1.2 на сайте Stanford, а для Swift 2.0 и Xcode 7 здесь.
Русский неавторизованный конспект лекции , хронометрированный через каждые 5 минут и представленный в PDF — файле, доступен на платной основе.