Лекция 17 CS193P Winter 2015 — Internationalization и Settings

Screen Shot 2015-10-12 at 9.29.49 PM

В Лекции 17  рассматриваются две главные темы:

  1. интернационализация и локализация, которые позволяют использовать ваше приложение во всем мире на различных языках.
  2. добавление UI настроек  приложения в Общие Настройки (Settings) прибора.

Пол Хэгерти рассматривает интернационализацию и локализацию как два разных процесса. Интернационализация  делает ваше приложение локализуемым. Локализация — это процесс собственно перевода на другой язык.

Интернационализации выполняется разработчиком приложения и должна обеспечивать 3 вещи:

  1. правильную работу системы Autolayout
  2. обертку литеральных строк, участвующих в формировании пользовательского интерфейса, в вызовы NSLocalizedString  и String.localizedStringWithFormat 
  3. использование NSNumberFormatterNSDateFormatterNSDateС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 — файле, доступен на платной основе.