SlideShare uma empresa Scribd logo
Гена
Книжник
iOS developer

Agilie

henadark@gmail.com
Преимущества и недостатки
динамической и статической
локализации
Динамическая локализация
Что для этого
необходимо
• реализация API на серверной стороне

• файл с расширением .plist

• база данных

• несколько методов, которые будут
реализовывать процесс локализации
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ru_date_localize</key>
<string>2017-10-09T13:52+02:00</string>
<key>localized_array</key>
<array>
<dict>
<key>key</key>
<string>ru_route</string>
<key>value</key>
<string>Мой профиль</string>
</dict>
<dict>
<key>key</key>
<string>ru_for_now</string>
<key>value</key>
<string>На Сейчас</string>
</dict>
<dict>
<key>key</key>
<string>ru_driver_info_is_loading</string>
<key>value</key>
<string>Загрузка информации о водителе...</string>
</dict>
<dict>
<key>key</key>
<string>ru_car</string>
<key>value</key>
<string>Автомобиль</string>
</dict>
<dict>
<key>key</key>
<string>ru_order_created</string>
<key>value</key>
<string>Заказ создан!</string>
</dict>
<dict>
База данных
MyLocalizationString.h
#import <Realm/Realm.h>
@interface MyLocalizationString : RLMObject
@property (strong, nonatomic) NSString *key;
@property (strong, nonatomic) NSString *value;
@end
MyLocalizationString.m
@implementation MyLocalizationString
+ (NSString *)primaryKey {
return @"key";
}
@end
Какие методы необходимо
реализовать для локализации
• сравнение даты файла .plist и последних
изменений локализации

• запись строк в базу данных и дату локализации
файла .plist

• проверка строк на сервере

• класс для работы с локализованными строками
Плюсы динамической
локализации
• не нужно обновлять приложение в App Store

• уменьшается скорость загрузки, при условии
записи строк в базу данных и наличии
файла .plist
Минусы динамической
локализации
• есть вероятность торможения скорости загрузки
ячеек при скроллинге

• дублирование строк
Статическая
локализация
• Auto File Localize Script

• SwiftGen
Auto File Localize
Script
https://gist.github.com/kalamaznik/3a74110b74d908cf1c33b268828a4dab
Плюсы Auto File
Localize Script
• простая интеграция скрипта

• ускоряет процесс разработки
Минусы Auto File
Localize Script
• отсутствует обратная совместимость

• замедляет время сборки

• при изменении строки в UI-элементе, изменяется
строка во всех языковых файлах (+/-)
SwiftGen
https://github.com/SwiftGen/SwiftGen
ДО

let alertDescription = NSLocalizedString("alert_message", comment: "")
ПОСЛЕ

let alertDescription = L10n.alertMessage
СПАСИБО ЗА ВНИМАНИЕ

Mais conteúdo relacionado

Semelhante a Динамическая и статическая локализация

Hivext – облачная платформа для быстрой разработки интернет приложений
Hivext – облачная платформа для быстрой разработки  интернет приложений Hivext – облачная платформа для быстрой разработки  интернет приложений
Hivext – облачная платформа для быстрой разработки интернет приложений guest800050
 
Microsoft: Миграция как возможность для трансформации ИТ
Microsoft: Миграция как возможность для трансформации ИТMicrosoft: Миграция как возможность для трансформации ИТ
Microsoft: Миграция как возможность для трансформации ИТ
Dell_Russia
 
Grpahite&amp;grafana
Grpahite&amp;grafanaGrpahite&amp;grafana
Grpahite&amp;grafana
Levon Avakyan
 
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Cisco Russia
 
Разработка профессионального стандарта "Специалист по интеграции облачных при...
Разработка профессионального стандарта "Специалист по интеграции облачных при...Разработка профессионального стандарта "Специалист по интеграции облачных при...
Разработка профессионального стандарта "Специалист по интеграции облачных при...
Сергей Лебедев
 
Опыт реализации систем электронного архива и документооборота на основе облач...
Опыт реализации систем электронного архива и документооборота на основе облач...Опыт реализации систем электронного архива и документооборота на основе облач...
Опыт реализации систем электронного архива и документооборота на основе облач...
kondratievaeb
 
Pavel Dovbush Toster
Pavel Dovbush Toster Pavel Dovbush Toster
Pavel Dovbush Toster Pavel Dovbush
 
Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.phpdevby
 
Управление соответствием PCI DSS - Секция 5 - Выполнение требований PCI DSS
Управление соответствием PCI DSS - Секция 5 - Выполнение требований PCI DSSУправление соответствием PCI DSS - Секция 5 - Выполнение требований PCI DSS
Управление соответствием PCI DSS - Секция 5 - Выполнение требований PCI DSS
Deiteriy Co. Ltd.
 
Software Analytics in frontend
Software Analytics in frontendSoftware Analytics in frontend
Software Analytics in frontend
Denis Kolesnikov
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015
Alexandr Petrov
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1Technopark
 
Создание географически-распределенных датацентров на базе инженерных систем
Создание географически-распределенных датацентров на базе инженерных системСоздание географически-распределенных датацентров на базе инженерных систем
Создание географически-распределенных датацентров на базе инженерных системAndrey Akulov
 
Олег Рудаков "Google analytics api и скрипты google docs получение автоматизи...
Олег Рудаков "Google analytics api и скрипты google docs получение автоматизи...Олег Рудаков "Google analytics api и скрипты google docs получение автоматизи...
Олег Рудаков "Google analytics api и скрипты google docs получение автоматизи...ADLABS
 
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVCАрхитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
DevDay
 
Презентация Microsoft PowerPoint
Презентация Microsoft PowerPointПрезентация Microsoft PowerPoint
Презентация Microsoft PowerPointwebhostingguy
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBA
Slach
 

Semelhante a Динамическая и статическая локализация (20)

Hivext 04.2010
Hivext 04.2010Hivext 04.2010
Hivext 04.2010
 
Hivext – облачная платформа для быстрой разработки интернет приложений
Hivext – облачная платформа для быстрой разработки  интернет приложений Hivext – облачная платформа для быстрой разработки  интернет приложений
Hivext – облачная платформа для быстрой разработки интернет приложений
 
Microsoft: Миграция как возможность для трансформации ИТ
Microsoft: Миграция как возможность для трансформации ИТMicrosoft: Миграция как возможность для трансформации ИТ
Microsoft: Миграция как возможность для трансформации ИТ
 
Html5 css3 занятие 1
Html5 css3 занятие 1Html5 css3 занятие 1
Html5 css3 занятие 1
 
Grpahite&amp;grafana
Grpahite&amp;grafanaGrpahite&amp;grafana
Grpahite&amp;grafana
 
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
Облачные приложения и построение платформ для них на базе Openstack Дмитрий Х...
 
Разработка профессионального стандарта "Специалист по интеграции облачных при...
Разработка профессионального стандарта "Специалист по интеграции облачных при...Разработка профессионального стандарта "Специалист по интеграции облачных при...
Разработка профессионального стандарта "Специалист по интеграции облачных при...
 
Опыт реализации систем электронного архива и документооборота на основе облач...
Опыт реализации систем электронного архива и документооборота на основе облач...Опыт реализации систем электронного архива и документооборота на основе облач...
Опыт реализации систем электронного архива и документооборота на основе облач...
 
Pavel Dovbush Toster
Pavel Dovbush Toster Pavel Dovbush Toster
Pavel Dovbush Toster
 
Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.
 
Browser Persistence Bynet
Browser Persistence BynetBrowser Persistence Bynet
Browser Persistence Bynet
 
Управление соответствием PCI DSS - Секция 5 - Выполнение требований PCI DSS
Управление соответствием PCI DSS - Секция 5 - Выполнение требований PCI DSSУправление соответствием PCI DSS - Секция 5 - Выполнение требований PCI DSS
Управление соответствием PCI DSS - Секция 5 - Выполнение требований PCI DSS
 
Software Analytics in frontend
Software Analytics in frontendSoftware Analytics in frontend
Software Analytics in frontend
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1
 
Создание географически-распределенных датацентров на базе инженерных систем
Создание географически-распределенных датацентров на базе инженерных системСоздание географически-распределенных датацентров на базе инженерных систем
Создание географически-распределенных датацентров на базе инженерных систем
 
Олег Рудаков "Google analytics api и скрипты google docs получение автоматизи...
Олег Рудаков "Google analytics api и скрипты google docs получение автоматизи...Олег Рудаков "Google analytics api и скрипты google docs получение автоматизи...
Олег Рудаков "Google analytics api и скрипты google docs получение автоматизи...
 
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVCАрхитектура кода нового 2ГИС Web API или куда мы дели MVC
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
 
Презентация Microsoft PowerPoint
Презентация Microsoft PowerPointПрезентация Microsoft PowerPoint
Презентация Microsoft PowerPoint
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBA
 

Mais de ITCP Community

"Best Practices for Designing a Pragmatic RESTful API
 "Best Practices for Designing a Pragmatic RESTful API "Best Practices for Designing a Pragmatic RESTful API
"Best Practices for Designing a Pragmatic RESTful API
ITCP Community
 
"Generics+Decodable serving your API-client"
"Generics+Decodable serving your API-client""Generics+Decodable serving your API-client"
"Generics+Decodable serving your API-client"
ITCP Community
 
"You shall not pass : anti-debug methodics"
"You shall not pass : anti-debug methodics""You shall not pass : anti-debug methodics"
"You shall not pass : anti-debug methodics"
ITCP Community
 
Парадигмы программирования
Парадигмы программированияПарадигмы программирования
Парадигмы программирования
ITCP Community
 
Лайфхаки группового собеседования
Лайфхаки группового собеседованияЛайфхаки группового собеседования
Лайфхаки группового собеседования
ITCP Community
 
Бла бла-бла поговорить или структура “неструктурированного” интервью
Бла бла-бла поговорить или структура “неструктурированного” интервьюБла бла-бла поговорить или структура “неструктурированного” интервью
Бла бла-бла поговорить или структура “неструктурированного” интервью
ITCP Community
 
Метрики
МетрикиМетрики
Метрики
ITCP Community
 
Не все святой скрам
Не все святой скрамНе все святой скрам
Не все святой скрам
ITCP Community
 
Самоорганизующиеся команды
Самоорганизующиеся командыСамоорганизующиеся команды
Самоорганизующиеся команды
ITCP Community
 
Управление содержанием проекта
Управление содержанием проектаУправление содержанием проекта
Управление содержанием проекта
ITCP Community
 
Таргетированная реклама в Facebook
Таргетированная реклама в FacebookТаргетированная реклама в Facebook
Таргетированная реклама в Facebook
ITCP Community
 
Финансовое планирование бюджета IT-компании
Финансовое планирование бюджета IT-компанииФинансовое планирование бюджета IT-компании
Финансовое планирование бюджета IT-компании
ITCP Community
 
Вам упаковать?
Вам упаковать?Вам упаковать?
Вам упаковать?
ITCP Community
 
Клиент всегда прав?
Клиент всегда прав?Клиент всегда прав?
Клиент всегда прав?
ITCP Community
 
Общение с клиентами на автопилоте
Общение с клиентами на автопилоте Общение с клиентами на автопилоте
Общение с клиентами на автопилоте
ITCP Community
 
Kонтент решает все (почти)
Kонтент решает все (почти) Kонтент решает все (почти)
Kонтент решает все (почти)
ITCP Community
 
Electron
ElectronElectron
Electron
ITCP Community
 
It is a Test
It is a TestIt is a Test
It is a Test
ITCP Community
 
Продукт с нуля
Продукт с нуляПродукт с нуля
Продукт с нуля
ITCP Community
 
Storytelling in the Digital Age
Storytelling in the Digital AgeStorytelling in the Digital Age
Storytelling in the Digital Age
ITCP Community
 

Mais de ITCP Community (20)

"Best Practices for Designing a Pragmatic RESTful API
 "Best Practices for Designing a Pragmatic RESTful API "Best Practices for Designing a Pragmatic RESTful API
"Best Practices for Designing a Pragmatic RESTful API
 
"Generics+Decodable serving your API-client"
"Generics+Decodable serving your API-client""Generics+Decodable serving your API-client"
"Generics+Decodable serving your API-client"
 
"You shall not pass : anti-debug methodics"
"You shall not pass : anti-debug methodics""You shall not pass : anti-debug methodics"
"You shall not pass : anti-debug methodics"
 
Парадигмы программирования
Парадигмы программированияПарадигмы программирования
Парадигмы программирования
 
Лайфхаки группового собеседования
Лайфхаки группового собеседованияЛайфхаки группового собеседования
Лайфхаки группового собеседования
 
Бла бла-бла поговорить или структура “неструктурированного” интервью
Бла бла-бла поговорить или структура “неструктурированного” интервьюБла бла-бла поговорить или структура “неструктурированного” интервью
Бла бла-бла поговорить или структура “неструктурированного” интервью
 
Метрики
МетрикиМетрики
Метрики
 
Не все святой скрам
Не все святой скрамНе все святой скрам
Не все святой скрам
 
Самоорганизующиеся команды
Самоорганизующиеся командыСамоорганизующиеся команды
Самоорганизующиеся команды
 
Управление содержанием проекта
Управление содержанием проектаУправление содержанием проекта
Управление содержанием проекта
 
Таргетированная реклама в Facebook
Таргетированная реклама в FacebookТаргетированная реклама в Facebook
Таргетированная реклама в Facebook
 
Финансовое планирование бюджета IT-компании
Финансовое планирование бюджета IT-компанииФинансовое планирование бюджета IT-компании
Финансовое планирование бюджета IT-компании
 
Вам упаковать?
Вам упаковать?Вам упаковать?
Вам упаковать?
 
Клиент всегда прав?
Клиент всегда прав?Клиент всегда прав?
Клиент всегда прав?
 
Общение с клиентами на автопилоте
Общение с клиентами на автопилоте Общение с клиентами на автопилоте
Общение с клиентами на автопилоте
 
Kонтент решает все (почти)
Kонтент решает все (почти) Kонтент решает все (почти)
Kонтент решает все (почти)
 
Electron
ElectronElectron
Electron
 
It is a Test
It is a TestIt is a Test
It is a Test
 
Продукт с нуля
Продукт с нуляПродукт с нуля
Продукт с нуля
 
Storytelling in the Digital Age
Storytelling in the Digital AgeStorytelling in the Digital Age
Storytelling in the Digital Age
 

Динамическая и статическая локализация