6. 6
Определения
• Интернационализация (i18n) — адаптация продукта к переводу
• Локализация (l10n) — перевод продукта на конкретный язык
• Интерфейс,
• Функционал,
• Контент, ...
7. 7
Определения
• Интернационализация (i18n) — адаптация продукта к переводу
• Локализация (l10n) — перевод продукта на конкретный язык
• Локаль — пакет переводов для конкретного языка
• Словарь — файл переводов текстов
11. 11
Удобно тестировать
Требования от QA к разработке:
• Простое добавление / удаление новой локали
• Человеко-понятный словарь
• Возможность редактировать словарь
12. 12
Пример
C учетом требований от QA:
• gettext
• .po (Portable Object) + утилиты
• 1 пакет, 1 строка в config, 1 команда
13. 13
2. Где взять данные?
• Используем то, что есть
• Псевдолокализация (имитация переводов)
25. 25
Пример. Параметризуем вход/выход
0 .p b i f n t o t s S a c (
1 ulc ucin eterh)
0 .{
2
0 .t i - s a c F r ( r a (
3 hs>erhom ary
0.
4
' h t = ' у е ',
wa' > Мзй
0.
5
' h r ' = ' о о и и с ')
wee > Нвсбрк
0.
6
0 .}
7
)
;
26. 26
Пример. Параметризуем вход/выход
0 .p b i f n t o t s S a c (
1 ulc ucin eterh)
0 .{
2
0 .t i - s a c F r ( r a (
3 hs>erhom ary
0.
4
' h t = $ h s > o a e > e D t (' h t r q e t ,
w a ' > t i - l c l - g t a a w a _ e u s ')
0.
5
' h r ' = $ h s > o a e > e D t (' h r _ e u s ')
wee > ti-lcl-gtaa weerqet )
0.
6
)
;
0 .}
7
27. 27
Пример. Параметризуем вход/выход
0 .p b i f n t o t s S a c (
1 ulc ucin eterh)
0 .{
2
0 .t i - s a c F r ( r a (
3 hs>erhom ary
0.
4
' h t = $ h s >l c l - g t a a( w a _ e u s ' ,
wa' > ti- oae>eDt 'htrqet)
0.
5
' h r ' = $ h s >l c l - g t a a( w e e r q e t )
wee > ti- oae>eDt 'hr_eus')
0.
6
)
;
0 .}
7
28. 28
Пример. Создаем словарь
0 .< p p
1 ?h
0 .$ s = a r y )
2 mg
ra(;
0 .$ s ' h t r q e t ] = ' у е ';
3 m g[ w a _ e u s '
Мзй
0 .$ s ' h r _ e u s ' = ' о о и и с ';
4 m g[ w e e r q e t ]
Нвсбрк
0 .$ s [ s a c _ u t m ] = ' а т '
5 mg'erhbto'
Нйи;
0 .r t r $ s ;
6 eun mg
0 .?
7 >