SlideShare a Scribd company logo
1 of 25
Download to read offline
СПЕЦИФИКА ВЕРСТКИ
МУЛЬТИЯЗЫЧНЫХ
ВЕБ-ПРИЛОЖЕНИЙ
Тевосян Александр
HTML developer
50 ЯЗЫКОВ+
О ЧЕМ ПОЙДЕТ РЕЧЬ
• Проблемы мультиязычных веб-приложений и
пути их решений
• Обзор решений и инструментов для верстки
LTR  и RTL языков
• Тестирование и устранение ошибок на этапе
перевода
ПРОБЛЕМЫ
1.
2.
LTR
Design
"Специфика верстки мультиязычных веб-приложений", Александр Тевосян, MoscowJS 20
"Специфика верстки мультиязычных веб-приложений", Александр Тевосян, MoscowJS 20
"Специфика верстки мультиязычных веб-приложений", Александр Тевосян, MoscowJS 20
"Специфика верстки мультиязычных веб-приложений", Александр Тевосян, MoscowJS 20
КОНТРОЛЬ ПЕРЕВОДОВ
RTL
"Специфика верстки мультиязычных веб-приложений", Александр Тевосян, MoscowJS 20
СПОСОБЫ РЕАЛИЗАЦИИ
ПОДДЕРЖКИ LTR/RTL
+ —
page.ltr.css
page.rtl.css
Загрузка одного в файла
Изменения требуется
дублировать в page.rtl.css
page.css
page.rtl.css
Не требуется
дублировать изменения
Загрузка двух файлов для
RTL
page.ltr-rtl.css Один файл
Большой объем кода.
Сложно поддерживать
• Атрибуты dir & lang
• Cелекторы [dir=“rtl”] & [dir=“ltr”]
• Псевдокласс :lang()
• Свойство direction: ltr || rtl
• Свойство unicode-bidi: normal || embed || bidi-
override || inherit
АВТОМАТИЗАЦИЯ RTL
LTR
RTL
PAGE.RTL.CSS
Convert property
Convert
value
Exclusions
Transformation
rules
+
TRANSFORMATION RULES
Properties Values
left
right
margin-*
padding-*
border-*
direction
float
clear
margin
padding
border-*
box-shadow
ИСКЛЮЧЕНИЯ
• /*@LTR BEGIN*/ RIGHT:10PX; /*@LTR END*/
• /*@RTL BEGIN*/ LEFT: 30PX; /*@RTL END*/
• /*@NOFLIP BEGIN*/ FLOAT: LEFT; /*@NOFLIP END*/
"Специфика верстки мультиязычных веб-приложений", Александр Тевосян, MoscowJS 20
.ico--arrow-left {
/* @ltr begin */
background: url(arrow-left.png) no-repeat;
/* @ltr end */
/* @rtl begin */
background: url(arrow-right.png) no-repeat;
/* @rtl end */
}
ТЕСТИРОВАНИЕ
• QA
• Тестирование от команды
переводчиков
ТЕСТ ПЕРЕВОДЧИКОВ
ИНСТРУМЕНТЫ
Frameworks
Closure
styleshits
Less Sass
Libraries CSS Janus
css-flip
(rework)
– Юрий Насретдинов
https://github.com/badoo/rtl-css
CПАСИБО ЗА ВНИМАНИЕ
a.tevosyan@corp.badoo.com
facebook.com/altevosyan
facebook.com/BadooMoscow

More Related Content

Viewers also liked

Your Browser is Your SDK
Your Browser is Your SDKYour Browser is Your SDK
Your Browser is Your SDKmwbrooks
 
Гибкие коробки на практике — Арсений Форштретер
Гибкие коробки на практике — Арсений ФорштретерГибкие коробки на практике — Арсений Форштретер
Гибкие коробки на практике — Арсений ФорштретерYandex
 
Olesya Prokopenko. FlexBox. Future of the slicing
Olesya Prokopenko. FlexBox. Future of the slicingOlesya Prokopenko. FlexBox. Future of the slicing
Olesya Prokopenko. FlexBox. Future of the slicingDrupalSib
 
"Анимируем объекты с использованием физики в JavaScript", Елена Иванова, Mosc...
"Анимируем объекты с использованием физики в JavaScript", Елена Иванова, Mosc..."Анимируем объекты с использованием физики в JavaScript", Елена Иванова, Mosc...
"Анимируем объекты с использованием физики в JavaScript", Елена Иванова, Mosc...MoscowJS
 
How To Rank In Google News
How To Rank In Google NewsHow To Rank In Google News
How To Rank In Google News6S Marketing
 
"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24
"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24
"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24MoscowJS
 
"Flexbox — гибче мыслишь, больше спишь", Алексей Чернышев, MoscowJS 24
"Flexbox — гибче мыслишь, больше спишь", Алексей Чернышев, MoscowJS 24"Flexbox — гибче мыслишь, больше спишь", Алексей Чернышев, MoscowJS 24
"Flexbox — гибче мыслишь, больше спишь", Алексей Чернышев, MoscowJS 24MoscowJS
 
La importancia de las comunidades virtuales
La importancia de las comunidades virtuales La importancia de las comunidades virtuales
La importancia de las comunidades virtuales Johnny Sandi Salazar
 
Ms uthlautpresentation
Ms uthlautpresentationMs uthlautpresentation
Ms uthlautpresentationuthlautn
 
STRUCTURING YOUR CUSTOMER SUCCESS TEAM FOR GROWTH
STRUCTURING YOUR CUSTOMER SUCCESS TEAM FOR GROWTHSTRUCTURING YOUR CUSTOMER SUCCESS TEAM FOR GROWTH
STRUCTURING YOUR CUSTOMER SUCCESS TEAM FOR GROWTHTotango
 
TO VARIABLE, OR NOT TO VARIABLE? CHOOSING A CSM COMP MODEL
TO VARIABLE, OR NOT TO VARIABLE?  CHOOSING A CSM COMP MODELTO VARIABLE, OR NOT TO VARIABLE?  CHOOSING A CSM COMP MODEL
TO VARIABLE, OR NOT TO VARIABLE? CHOOSING A CSM COMP MODELTotango
 

Viewers also liked (14)

Your Browser is Your SDK
Your Browser is Your SDKYour Browser is Your SDK
Your Browser is Your SDK
 
Гибкие коробки на практике — Арсений Форштретер
Гибкие коробки на практике — Арсений ФорштретерГибкие коробки на практике — Арсений Форштретер
Гибкие коробки на практике — Арсений Форштретер
 
Olesya Prokopenko. FlexBox. Future of the slicing
Olesya Prokopenko. FlexBox. Future of the slicingOlesya Prokopenko. FlexBox. Future of the slicing
Olesya Prokopenko. FlexBox. Future of the slicing
 
"Анимируем объекты с использованием физики в JavaScript", Елена Иванова, Mosc...
"Анимируем объекты с использованием физики в JavaScript", Елена Иванова, Mosc..."Анимируем объекты с использованием физики в JavaScript", Елена Иванова, Mosc...
"Анимируем объекты с использованием физики в JavaScript", Елена Иванова, Mosc...
 
How To Rank In Google News
How To Rank In Google NewsHow To Rank In Google News
How To Rank In Google News
 
"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24
"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24
"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24
 
"Flexbox — гибче мыслишь, больше спишь", Алексей Чернышев, MoscowJS 24
"Flexbox — гибче мыслишь, больше спишь", Алексей Чернышев, MoscowJS 24"Flexbox — гибче мыслишь, больше спишь", Алексей Чернышев, MoscowJS 24
"Flexbox — гибче мыслишь, больше спишь", Алексей Чернышев, MoscowJS 24
 
Fcn
FcnFcn
Fcn
 
La importancia de las comunidades virtuales
La importancia de las comunidades virtuales La importancia de las comunidades virtuales
La importancia de las comunidades virtuales
 
Paulo coelho
Paulo coelhoPaulo coelho
Paulo coelho
 
Ms uthlautpresentation
Ms uthlautpresentationMs uthlautpresentation
Ms uthlautpresentation
 
STRUCTURING YOUR CUSTOMER SUCCESS TEAM FOR GROWTH
STRUCTURING YOUR CUSTOMER SUCCESS TEAM FOR GROWTHSTRUCTURING YOUR CUSTOMER SUCCESS TEAM FOR GROWTH
STRUCTURING YOUR CUSTOMER SUCCESS TEAM FOR GROWTH
 
Apresentação1
Apresentação1Apresentação1
Apresentação1
 
TO VARIABLE, OR NOT TO VARIABLE? CHOOSING A CSM COMP MODEL
TO VARIABLE, OR NOT TO VARIABLE?  CHOOSING A CSM COMP MODELTO VARIABLE, OR NOT TO VARIABLE?  CHOOSING A CSM COMP MODEL
TO VARIABLE, OR NOT TO VARIABLE? CHOOSING A CSM COMP MODEL
 

Similar to "Специфика верстки мультиязычных веб-приложений", Александр Тевосян, MoscowJS 20

Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...tabtabus
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAlexander Lisachenko
 
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор БогатырёвОбзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор БогатырёвMinsk PHP User Group
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesAliaksandr Ikhelis
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовSQALab
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Отладка веб-приложений на Javascript
Отладка веб-приложений на JavascriptОтладка веб-приложений на Javascript
Отладка веб-приложений на JavascriptDenis Latushkin
 
Промышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. ИнструментыПромышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. ИнструментыMikhail Payson
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language RuntimeSQALab
 
Evgeny Rybak Presentation
Evgeny Rybak PresentationEvgeny Rybak Presentation
Evgeny Rybak Presentationsef2009
 
03 т сервис
03 т сервис03 т сервис
03 т сервисGoudron1979
 
Mikhail Faraponov - Overview of Kubernetes Metacontrollers with Python
Mikhail Faraponov - Overview of Kubernetes Metacontrollers with PythonMikhail Faraponov - Overview of Kubernetes Metacontrollers with Python
Mikhail Faraponov - Overview of Kubernetes Metacontrollers with PythonPyCon Odessa
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-AccessSerghei Urban
 
Современный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проектаСовременный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проектаSQALab
 
Нужен ли вам сертификат по Linux: обзор сертификаций Red Hat
Нужен ли вам сертификат по Linux: обзор сертификаций Red HatНужен ли вам сертификат по Linux: обзор сертификаций Red Hat
Нужен ли вам сертификат по Linux: обзор сертификаций Red HatSkillFactory
 
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)Ontico
 
High Load 2009 Dimaa Rus Ready
High Load 2009 Dimaa Rus ReadyHigh Load 2009 Dimaa Rus Ready
High Load 2009 Dimaa Rus ReadyHighLoad2009
 

Similar to "Специфика верстки мультиязычных веб-приложений", Александр Тевосян, MoscowJS 20 (20)

Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...
 
559646.pptx
559646.pptx559646.pptx
559646.pptx
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHP
 
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор БогатырёвОбзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practices
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Sivko
SivkoSivko
Sivko
 
Отладка веб-приложений на Javascript
Отладка веб-приложений на JavascriptОтладка веб-приложений на Javascript
Отладка веб-приложений на Javascript
 
Промышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. ИнструментыПромышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. Инструменты
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language Runtime
 
Evgeny Rybak Presentation
Evgeny Rybak PresentationEvgeny Rybak Presentation
Evgeny Rybak Presentation
 
03 т сервис
03 т сервис03 т сервис
03 т сервис
 
Mikhail Faraponov - Overview of Kubernetes Metacontrollers with Python
Mikhail Faraponov - Overview of Kubernetes Metacontrollers with PythonMikhail Faraponov - Overview of Kubernetes Metacontrollers with Python
Mikhail Faraponov - Overview of Kubernetes Metacontrollers with Python
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-Access
 
MS Swit 2012 - SQL Server 2012
MS Swit 2012 - SQL Server 2012MS Swit 2012 - SQL Server 2012
MS Swit 2012 - SQL Server 2012
 
Современный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проектаСовременный подход к локализации на примере одного проекта
Современный подход к локализации на примере одного проекта
 
Нужен ли вам сертификат по Linux: обзор сертификаций Red Hat
Нужен ли вам сертификат по Linux: обзор сертификаций Red HatНужен ли вам сертификат по Linux: обзор сертификаций Red Hat
Нужен ли вам сертификат по Linux: обзор сертификаций Red Hat
 
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
Разработка Rich Text Editor: проблемы и решения / Егор Яковишен (Setka)
 
High Load 2009 Dimaa Rus Ready
High Load 2009 Dimaa Rus ReadyHigh Load 2009 Dimaa Rus Ready
High Load 2009 Dimaa Rus Ready
 

More from MoscowJS

Александр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionАлександр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionMoscowJS
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIMoscowJS
 
Favicon на стероидах
Favicon на стероидахFavicon на стероидах
Favicon на стероидахMoscowJS
 
E2E-тестирование мобильных приложений
E2E-тестирование мобильных приложенийE2E-тестирование мобильных приложений
E2E-тестирование мобильных приложенийMoscowJS
 
Reliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyReliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyMoscowJS
 
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkBasis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkMoscowJS
 
Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31MoscowJS
 
Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31MoscowJS
 
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31MoscowJS
 
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31MoscowJS
 
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33MoscowJS
 
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33MoscowJS
 
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33MoscowJS
 
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...MoscowJS
 
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...MoscowJS
 
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29MoscowJS
 
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29MoscowJS
 
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29MoscowJS
 
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28MoscowJS
 
"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27MoscowJS
 

More from MoscowJS (20)

Александр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionАлександр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in action
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public API
 
Favicon на стероидах
Favicon на стероидахFavicon на стероидах
Favicon на стероидах
 
E2E-тестирование мобильных приложений
E2E-тестирование мобильных приложенийE2E-тестирование мобильных приложений
E2E-тестирование мобильных приложений
 
Reliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyReliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkey
 
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkBasis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA Framework
 
Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31
 
Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31
 
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
 
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
 
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
 
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
 
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
 
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
 
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
 
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
 
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
 
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
 
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
 
"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27
 

"Специфика верстки мультиязычных веб-приложений", Александр Тевосян, MoscowJS 20