SlideShare uma empresa Scribd logo
1 de 53
imgfield tnid tnid=1 tnid=1 node/nid node/2 node/1 country Ukraine Украина city Kiev Киев author Grigory NAUMOVETS Григорий НАУМОВЕЦ body Problems ,  solutions, workarounds, and “goodness on the way” Проблемы, решения ,  перспективы title Multilingual sites in  Drupal Многоязычие сайта на Drupal
План ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Какие ВОЗМОЖНОСТИ мы хотим иметь при создании многоязычных сайтов? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ВОЗМОЖНОСТЬ  vs  ЦЕЛЕСООБРАЗНОСТЬ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Многоязычные сайты с  user-generated content : отдельно или вперемешку? ,[object Object],[object Object]
Если бы многоязычие с самого начала было заложено внутрь друпаловской ноды… ,[object Object],[object Object],Title (lang1) Title (lang2) Body (lang1) Body (lang2) Some field (lang1) Some field (lang2) Another field (language-neutral) Some file attached (lang1) Some file attached (lang2) Another file attached (language-neutral) comments
...но  многоязычие не было заложено внутрь друпаловской ноды, и только потом прикручено к ней сбоку. ,[object Object],[object Object],Some file attached Another file attached node/2 lang2 Some file attached Another file attached Drupal  торжественно объявляет  node/1  и  node/2   переводами друг друга comments comments Title Body Some field Another field Title Body Some field Another field
Кодировка содержания   в  Drupal ,[object Object],[object Object]
Drupal 5:  Поддержки многоязычия в ядре - НЕТ ,[object Object],[object Object],[object Object],[object Object]
Почему  ”i18n”? ,[object Object],18   штук ниасилили 10   штук ниасилили L ocalizatio n     L10n Сокращения  “ i18n ”  и  “ L10n ”  используются в названиях модулей  Drupal,  например  “i18n”, “L10n_client” Много букав.
Drupal 5 + i18n.module ,[object Object],[object Object],[object Object],[object Object],[object Object],Drupal 5 + Localizer.module ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],vs i18n  vs  Localizer: два способа сделать многоязычным сайт на  Drupal 5
i18n vs Localizer: Боливар не в ынес ет  двоих Разработка  Localizer’ а прекращена на стадии  5.x-3.13 .  Версии для  Drupal 6  нет и не будет
Многоязычие в ядре  Drupal 6 node.language node.tnid (= original node’s nid) node.translate (translation status) В  таблице  “node”  появились три дополнительных поля
Многоязычие в ядре Drupal 6 Два дополнительных модуля  (по умолчанию отключены): Locale  (locale.module) –  общая поддержка дополнительных языков и перевод интерфейса Content translation  (translation.module)  –  перевод содержания
Многоязычие в ядре Drupal 6 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Многоязычие в ядре Drupal 6 ( Jose Reyero ,  i18n.module developer)
Drupal 6 + i18n:  модуль и субмодули ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CivicActions.com:  многоязычные сайты на  D6 + i18n  для  Sony Music ( запущены в начале 2009 ). Заодно и код  (D6 core & i18n)  доработали…
drupal.org/node/383954
Примерный список задач: что нужно сделать для интернационализации сайта ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Для всех этих процедур есть довольно подробные инструкции drupal.org/node/338018
Пошаговая инструкция drupal - translation.com/node/10
Многояз ычные переменные:  site_name ,  site_footer,   theme_settings   и  т.п. прописываются в файле  settings.php /** * Multilingual settings *  * This is a collection of variables that can be set up for each language when i18n is enabled. * These are the basic ones for Drupal core, but you can add your own here. */ $conf['i18n_variables'] = array( // Site name, slogan, mission, etc.. 'site_name', 'site_slogan', 'site_mission', 'site_footer', 'anonymous', // Different front page for each language 'site_frontpage', // Primary and secondary links 'menu_primary_links_source', 'menu_secondary_links_source', // Contact form information 'contact_form_information', // For theme variables, read more below 'theme_settings', 'theme_garland_settings', );
М ногояз ычны е переменные , прописанные в файле  settings.php Теперь при редактировании параметров ,  соответствующих   i18n_variables ,   в форме видна приписка:  “This is a multilingual variable” . Переключ ая  языки, задайте и сохраните нужные значения для каждого языка ‘ site_name' ‘ site_slogan' ‘ i18n_variables'
Система перевода строк интерфейса Ядро  D6 :   поиск и перевод строк из встроенного интерфейса  ( code-based strings ).  Субмодуль  i18n . strings : +  строки из меню, блоков, таксономии и т.д.   ( user-entered strings ).
Многоязычная таксономия ,[object Object],[object Object],[object Object]
Многоязычная таксономия ,[object Object],taxonomy/term/1 ( для  всех языков ) (EN) Dogs Everything about dogs (RU) Собаки Всё о собаках Перевод названия - через систему перевода интерфейса
Многоязычная таксономия ,[object Object],taxonomy/term/1 (EN) Dogs Everything about dogs Собаки Всё о собаках taxonomy/term/2   (RU) Объявляем категории переводами друг друга. ( Ну и  на  что это влияет?  SFW?)
Блоки ,[object Object],[object Object],[object Object],[object Object],Mutlilingual Block Translatable Title  (переводимый заголовок) Translatable Content ( Переводимое содержание) English Block English Title English  Content Русскоязычный блок Русский заголовок Русскоязычное содержание
Views ,[object Object],Поэтому блок, в который выводится вид, можно делать многоязычным: при переключении языка под него автоматически подстраивается содержание
Меню ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Меню ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],нода таксономия вид форма Общая видимость блока меню ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Види-мость каждого   отдель-ного  пункта меню Можно дублировать блок в целом, можно внутри блока одни пункты дублировать, другие переводить.  А переводить весь блок имеет смысл только  при отсутствии ссылок на ноды .
На что указывает пункт меню? ,[object Object],[object Object],[object Object],node/2 node/1 Системн ый адрес ссылки О нас About us Текст   в меню ru/about en/about URL
Primary   & secondary links Для них настройки видимости пунктов меню могут не срабатывать: видны лишние кнопки, которые для данного языка нужно спрятать. Причина: во многих темах их вывод описан не так, как вывод блоков   и обычных меню drupal.org/node/313302
Многоязычные  primary   & secondary links :  решение проблемы через многоязычные переменные ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],'menu_primary_links_source' 'menu_secondary_links_source'
Субмодуль  i18nsync : синхронизация полей при переводе ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
i18nsync  и  nodereference ,[object Object],[object Object],node/3 (en) node/4 (ru) node/1 (en) node/2 (ru) nodereference nodereference Перевод ( tnid=1 ) Перевод ( tnid= 3)
Nodereference  и проблема построения многоязычных видов ,[object Object],[object Object],[object Object],ru/lectures/by-teachers/37 Список лекций  Джона Брауна ,[object Object],[object Object],[object Object],en/lectures/by-teachers/36 List of lectures by John Brown ,[object Object],en    ru en    ru
Общие комментарии   для оригинальной ноды и её переводов ,[object Object],Node/1 (en) Node/2 (uk) Node/3 (ru) comments
Ошибки, связанные с темами ,[object Object],[object Object]
Пример проблем, связанных с темой ,[object Object],Logo Title ( En) Main Page Logo Title Logo (Ru) Главная страница link link link link Page Title Logo Страница Title Logo
Пример проблем, связанных с темой ,[object Object],[object Object],проблемы связаны с темой ,[object Object],[object Object]
Решение этих двух проблем,  связанных с темой ,[object Object],[object Object],[object Object],[object Object],drupal.org/node/494068
Поля  CCK:  список разрешённых значений и текстовых ярлыков к ним ,[object Object],Albania Текстовые ярлыки   должны   переводиться через систему перевода интерфейса: Албания A rmen ia Армения Но реально   перевод  работает не всегда: бывает, что одни строки поиск находит, а другие нет. Есть трюк с заданием значений поля  CCK  через  php- код: return array( 'AL' => t('Albania'), 'AM' => t('Armenia') ); Некоторые строки после этого находятся поиском, другие всё равно нет. Запуск и перезапуск  cron,  «дергание» сайта за ноды и виды, прочие танцы с бубном. WTF   ?? ? drupal.org/node/293297
Поля  CCK:  проблема перевода текстовых ярлыков к разрешённым значениям ,[object Object],[object Object],[object Object],drupal.org/node/531660 drupal.org/node/53166 2
Объекты и методы их перевода Загрузка  .po  файлов с переводом, отдельные строки -  система перевода строк Интерфейс C истема перевода строк; танцы с бубном Поля  CCK  и ярлыки к разрешённым значениям Добавление фильтра по языку; заголовки и подписи – система перевода строк Вид ы Как обычные меню; если проблемы – добавить к списку м ногоязычных переменных  i18n Primary & secondary links Перевод (система перевода строк) или дублирование пунктов – в зависимости от того, меняется ли ссылка Меню Перевод названия и содержания (система перевода строк) или дублирование Блоки Многоязычные переменные  i18n Название сайта,  slogan, footer, etc. Перевод (система перевода содержания) Ноды
Модуль “ L anguage sections ” ,[object Object],[object Object],[object Object],=== e n  === Engl ish  text ===  ru  === Русский текст === qz === Текст на прочих языках === qq === Т екст, не зависящий от языка This is some  =en=  English  =ru=  Russian  =qq=  text Не обязательно задавать параграфы целиком - можно использовать маркеры языка внутри одной строки
Модуль  “Translation Table” ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Модуль  Translation table   встраивается в систему перевода интерфейса
Модуль “ Localization client ”  (L10n_client) ,[object Object],[object Object]
Модуль  “Translation overview” ,[object Object],[object Object],[object Object]
Drupal 7 : наступит ли «многоязычная благодать»?   groups.drupal.org/node/ 19671
В списке задач по поддержке многоязычия в  Drupal 7 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

Как составить метатеги TITLE и DESCRIPTION для интернет-магазина
Как составить метатеги TITLE и DESCRIPTION для интернет-магазинаКак составить метатеги TITLE и DESCRIPTION для интернет-магазина
Как составить метатеги TITLE и DESCRIPTION для интернет-магазинаcollaborator.pro
 
Прорывные идеи. Как поставить их на поток?
Прорывные идеи. Как поставить их на поток?Прорывные идеи. Как поставить их на поток?
Прорывные идеи. Как поставить их на поток?UIDesign Group
 
CMS Joomla! 1.5.x Tutorial (In Ukrainian)
CMS Joomla! 1.5.x Tutorial (In Ukrainian)CMS Joomla! 1.5.x Tutorial (In Ukrainian)
CMS Joomla! 1.5.x Tutorial (In Ukrainian)Victor Titarchuk, PhD
 
Internet Marketing at the Time of Crisis
Internet Marketing at the Time of CrisisInternet Marketing at the Time of Crisis
Internet Marketing at the Time of CrisisIrina Zimitskaya
 
프레젠테이션1
프레젠테이션1프레젠테이션1
프레젠테이션1shannonsi
 
SEO за блогъри
SEO за блогъриSEO за блогъри
SEO за блогъриseocon
 
Sergey Kh Citrus Systems 2009
Sergey Kh Citrus Systems 2009Sergey Kh Citrus Systems 2009
Sergey Kh Citrus Systems 2009Liudmila Li
 
Adobe illustrator cs3 руководство пользователя (2007)
Adobe illustrator cs3  руководство пользователя (2007)Adobe illustrator cs3  руководство пользователя (2007)
Adobe illustrator cs3 руководство пользователя (2007)StAlKeRoV
 
HighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg BuninHighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg BuninOntico
 
Влияние скорости загрузки сайта на SEO. Как попасть в зеленую зону Google Pag...
Влияние скорости загрузки сайта на SEO. Как попасть в зеленую зону Google Pag...Влияние скорости загрузки сайта на SEO. Как попасть в зеленую зону Google Pag...
Влияние скорости загрузки сайта на SEO. Как попасть в зеленую зону Google Pag...collaborator.pro
 
Competitions Cloudwatcher_new
Competitions Cloudwatcher_newCompetitions Cloudwatcher_new
Competitions Cloudwatcher_newguest18d24c
 
ProMedia about Ambient Media
ProMedia about Ambient MediaProMedia about Ambient Media
ProMedia about Ambient MediaIvan Diyachenko
 
Quick and Clean with Ruby on Rails
Quick and Clean with Ruby on RailsQuick and Clean with Ruby on Rails
Quick and Clean with Ruby on Railssava
 
презентация Uni Pacs
презентация Uni Pacsпрезентация Uni Pacs
презентация Uni PacsGerman Yangicher
 
исчезнут ли российские эпс
исчезнут ли российские эпсисчезнут ли российские эпс
исчезнут ли российские эпсTimur AITOV
 
АСКУЭ для ТГК
АСКУЭ для ТГКАСКУЭ для ТГК
АСКУЭ для ТГКalex_abakumov
 

Mais procurados (20)

Как составить метатеги TITLE и DESCRIPTION для интернет-магазина
Как составить метатеги TITLE и DESCRIPTION для интернет-магазинаКак составить метатеги TITLE и DESCRIPTION для интернет-магазина
Как составить метатеги TITLE и DESCRIPTION для интернет-магазина
 
Прорывные идеи. Как поставить их на поток?
Прорывные идеи. Как поставить их на поток?Прорывные идеи. Как поставить их на поток?
Прорывные идеи. Как поставить их на поток?
 
CMS Joomla! 1.5.x Tutorial (In Ukrainian)
CMS Joomla! 1.5.x Tutorial (In Ukrainian)CMS Joomla! 1.5.x Tutorial (In Ukrainian)
CMS Joomla! 1.5.x Tutorial (In Ukrainian)
 
07 Ws08 R2 Virt
07 Ws08 R2 Virt07 Ws08 R2 Virt
07 Ws08 R2 Virt
 
Imagine Cup
Imagine CupImagine Cup
Imagine Cup
 
04 Ukr Prostir Web2
04 Ukr Prostir Web204 Ukr Prostir Web2
04 Ukr Prostir Web2
 
Internet Marketing at the Time of Crisis
Internet Marketing at the Time of CrisisInternet Marketing at the Time of Crisis
Internet Marketing at the Time of Crisis
 
프레젠테이션1
프레젠테이션1프레젠테이션1
프레젠테이션1
 
SEO за блогъри
SEO за блогъриSEO за блогъри
SEO за блогъри
 
Sergey Kh Citrus Systems 2009
Sergey Kh Citrus Systems 2009Sergey Kh Citrus Systems 2009
Sergey Kh Citrus Systems 2009
 
Adobe illustrator cs3 руководство пользователя (2007)
Adobe illustrator cs3  руководство пользователя (2007)Adobe illustrator cs3  руководство пользователя (2007)
Adobe illustrator cs3 руководство пользователя (2007)
 
HighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg BuninHighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg Bunin
 
Влияние скорости загрузки сайта на SEO. Как попасть в зеленую зону Google Pag...
Влияние скорости загрузки сайта на SEO. Как попасть в зеленую зону Google Pag...Влияние скорости загрузки сайта на SEO. Как попасть в зеленую зону Google Pag...
Влияние скорости загрузки сайта на SEO. Как попасть в зеленую зону Google Pag...
 
lenvendo on bitrix cms
lenvendo on bitrix cmslenvendo on bitrix cms
lenvendo on bitrix cms
 
Competitions Cloudwatcher_new
Competitions Cloudwatcher_newCompetitions Cloudwatcher_new
Competitions Cloudwatcher_new
 
ProMedia about Ambient Media
ProMedia about Ambient MediaProMedia about Ambient Media
ProMedia about Ambient Media
 
Quick and Clean with Ruby on Rails
Quick and Clean with Ruby on RailsQuick and Clean with Ruby on Rails
Quick and Clean with Ruby on Rails
 
презентация Uni Pacs
презентация Uni Pacsпрезентация Uni Pacs
презентация Uni Pacs
 
исчезнут ли российские эпс
исчезнут ли российские эпсисчезнут ли российские эпс
исчезнут ли российские эпс
 
АСКУЭ для ТГК
АСКУЭ для ТГКАСКУЭ для ТГК
АСКУЭ для ТГК
 

Destaque

Multilangaunguage Drupal
Multilangaunguage DrupalMultilangaunguage Drupal
Multilangaunguage DrupalInna Tuyeva
 
Работа с Views в Drupal 7
Работа с Views в Drupal 7Работа с Views в Drupal 7
Работа с Views в Drupal 7Eugene Fidelin
 
Zend Framework Form: Mastering Decorators
Zend Framework Form: Mastering DecoratorsZend Framework Form: Mastering Decorators
Zend Framework Form: Mastering DecoratorsNick Belhomme
 
Работа с полями (fields) в Drupal 7
Работа с полями (fields) в Drupal 7Работа с полями (fields) в Drupal 7
Работа с полями (fields) в Drupal 7Eugene Fidelin
 
Работа с материалами (nodes) в Drupal 7
Работа с материалами (nodes) в Drupal 7Работа с материалами (nodes) в Drupal 7
Работа с материалами (nodes) в Drupal 7Eugene Fidelin
 
Who is here? DrupalCamp Kyiv 2009 opening
Who is here? DrupalCamp Kyiv 2009 openingWho is here? DrupalCamp Kyiv 2009 opening
Who is here? DrupalCamp Kyiv 2009 openingDrupal Camp Kyiv
 
Drupal code sprint для новичков
Drupal code sprint для новичковDrupal code sprint для новичков
Drupal code sprint для новичковOvadiah Myrgorod
 
Drupal на 20-ти мегабайтах или издевательства над Shared Hosting
Drupal на 20-ти мегабайтах или издевательства над Shared HostingDrupal на 20-ти мегабайтах или издевательства над Shared Hosting
Drupal на 20-ти мегабайтах или издевательства над Shared HostingAndrii Podanenko
 
Happy ever afters with ci workflow
Happy ever afters with ci workflowHappy ever afters with ci workflow
Happy ever afters with ci workflowAlbina Tiupa
 
Порівняння Drupal та Typo3
Порівняння Drupal та Typo3Порівняння Drupal та Typo3
Порівняння Drupal та Typo3Drupal Camp Kyiv
 
CIbox - OpenSource solution for making your #devops better
CIbox - OpenSource solution for making your #devops betterCIbox - OpenSource solution for making your #devops better
CIbox - OpenSource solution for making your #devops betterAndrii Podanenko
 
Drupal contrib module maintaining
Drupal contrib module maintainingDrupal contrib module maintaining
Drupal contrib module maintainingAndrii Podanenko
 
Live deployment, ci, drupal
Live deployment, ci, drupalLive deployment, ci, drupal
Live deployment, ci, drupalAndrii Podanenko
 
Історія, теорія та використання CMS Drupal
Історія, теорія та використання CMS DrupalІсторія, теорія та використання CMS Drupal
Історія, теорія та використання CMS DrupalIgor Bronovskyy
 
Drupal 8 DevOps . Profile and SQL flows.
Drupal 8 DevOps . Profile and SQL flows.Drupal 8 DevOps . Profile and SQL flows.
Drupal 8 DevOps . Profile and SQL flows.Andrii Podanenko
 
DrupalCon Los Angeles - Continuous Integration Toolbox
DrupalCon Los Angeles - Continuous Integration ToolboxDrupalCon Los Angeles - Continuous Integration Toolbox
DrupalCon Los Angeles - Continuous Integration ToolboxAndrii Podanenko
 
Drupal Continuous Integration Workflow
Drupal Continuous Integration WorkflowDrupal Continuous Integration Workflow
Drupal Continuous Integration WorkflowAndrii Podanenko
 

Destaque (20)

Drupal Paranoia
Drupal ParanoiaDrupal Paranoia
Drupal Paranoia
 
Lviv 2013 d7 vs d8
Lviv 2013   d7 vs d8Lviv 2013   d7 vs d8
Lviv 2013 d7 vs d8
 
Multilangaunguage Drupal
Multilangaunguage DrupalMultilangaunguage Drupal
Multilangaunguage Drupal
 
Работа с Views в Drupal 7
Работа с Views в Drupal 7Работа с Views в Drupal 7
Работа с Views в Drupal 7
 
Zend Framework Form: Mastering Decorators
Zend Framework Form: Mastering DecoratorsZend Framework Form: Mastering Decorators
Zend Framework Form: Mastering Decorators
 
AngularJS in practice
AngularJS in practiceAngularJS in practice
AngularJS in practice
 
Работа с полями (fields) в Drupal 7
Работа с полями (fields) в Drupal 7Работа с полями (fields) в Drupal 7
Работа с полями (fields) в Drupal 7
 
Работа с материалами (nodes) в Drupal 7
Работа с материалами (nodes) в Drupal 7Работа с материалами (nodes) в Drupal 7
Работа с материалами (nodes) в Drupal 7
 
Who is here? DrupalCamp Kyiv 2009 opening
Who is here? DrupalCamp Kyiv 2009 openingWho is here? DrupalCamp Kyiv 2009 opening
Who is here? DrupalCamp Kyiv 2009 opening
 
Drupal code sprint для новичков
Drupal code sprint для новичковDrupal code sprint для новичков
Drupal code sprint для новичков
 
Drupal на 20-ти мегабайтах или издевательства над Shared Hosting
Drupal на 20-ти мегабайтах или издевательства над Shared HostingDrupal на 20-ти мегабайтах или издевательства над Shared Hosting
Drupal на 20-ти мегабайтах или издевательства над Shared Hosting
 
Happy ever afters with ci workflow
Happy ever afters with ci workflowHappy ever afters with ci workflow
Happy ever afters with ci workflow
 
Порівняння Drupal та Typo3
Порівняння Drupal та Typo3Порівняння Drupal та Typo3
Порівняння Drupal та Typo3
 
CIbox - OpenSource solution for making your #devops better
CIbox - OpenSource solution for making your #devops betterCIbox - OpenSource solution for making your #devops better
CIbox - OpenSource solution for making your #devops better
 
Drupal contrib module maintaining
Drupal contrib module maintainingDrupal contrib module maintaining
Drupal contrib module maintaining
 
Live deployment, ci, drupal
Live deployment, ci, drupalLive deployment, ci, drupal
Live deployment, ci, drupal
 
Історія, теорія та використання CMS Drupal
Історія, теорія та використання CMS DrupalІсторія, теорія та використання CMS Drupal
Історія, теорія та використання CMS Drupal
 
Drupal 8 DevOps . Profile and SQL flows.
Drupal 8 DevOps . Profile and SQL flows.Drupal 8 DevOps . Profile and SQL flows.
Drupal 8 DevOps . Profile and SQL flows.
 
DrupalCon Los Angeles - Continuous Integration Toolbox
DrupalCon Los Angeles - Continuous Integration ToolboxDrupalCon Los Angeles - Continuous Integration Toolbox
DrupalCon Los Angeles - Continuous Integration Toolbox
 
Drupal Continuous Integration Workflow
Drupal Continuous Integration WorkflowDrupal Continuous Integration Workflow
Drupal Continuous Integration Workflow
 

Mais de Drupal Camp Kyiv

DrupalCamp Kyiv 2009 Official Report
DrupalCamp Kyiv 2009 Official ReportDrupalCamp Kyiv 2009 Official Report
DrupalCamp Kyiv 2009 Official ReportDrupal Camp Kyiv
 
Что нового в Drupal 7
Что нового в Drupal 7Что нового в Drupal 7
Что нового в Drupal 7Drupal Camp Kyiv
 
Безопасный код
Безопасный кодБезопасный код
Безопасный кодDrupal Camp Kyiv
 
Текст доклада о разработке плагина к модулю ССК
Текст доклада о разработке плагина к модулю ССКТекст доклада о разработке плагина к модулю ССК
Текст доклада о разработке плагина к модулю ССКDrupal Camp Kyiv
 
Обслуживание мультисайтинга
Обслуживание мультисайтингаОбслуживание мультисайтинга
Обслуживание мультисайтингаDrupal Camp Kyiv
 
Разработка соц. сети на Друпале
Разработка соц. сети на ДрупалеРазработка соц. сети на Друпале
Разработка соц. сети на ДрупалеDrupal Camp Kyiv
 
За что мы ненавидим Drupal
За что мы ненавидим DrupalЗа что мы ненавидим Drupal
За что мы ненавидим DrupalDrupal Camp Kyiv
 
Drupal 7 development: first impressions
Drupal 7 development: first impressionsDrupal 7 development: first impressions
Drupal 7 development: first impressionsDrupal Camp Kyiv
 
Веб-аналитика в Drupal2
Веб-аналитика в Drupal2Веб-аналитика в Drupal2
Веб-аналитика в Drupal2Drupal Camp Kyiv
 
Веб-аналитика в Drupal1
Веб-аналитика в Drupal1Веб-аналитика в Drupal1
Веб-аналитика в Drupal1Drupal Camp Kyiv
 
Разработка модуля для Cms Drupal
Разработка модуля для Cms DrupalРазработка модуля для Cms Drupal
Разработка модуля для Cms DrupalDrupal Camp Kyiv
 
Продвинутый мультисайтинг
Продвинутый мультисайтингПродвинутый мультисайтинг
Продвинутый мультисайтингDrupal Camp Kyiv
 
Азы мультисайтинга
Азы мультисайтингаАзы мультисайтинга
Азы мультисайтингаDrupal Camp Kyiv
 

Mais de Drupal Camp Kyiv (20)

DrupalCamp Kyiv 2009 Official Report
DrupalCamp Kyiv 2009 Official ReportDrupalCamp Kyiv 2009 Official Report
DrupalCamp Kyiv 2009 Official Report
 
Что нового в Drupal 7
Что нового в Drupal 7Что нового в Drupal 7
Что нового в Drupal 7
 
Безопасный код
Безопасный кодБезопасный код
Безопасный код
 
1day Opening
1day Opening1day Opening
1day Opening
 
2day Opening
2day Opening2day Opening
2day Opening
 
How to Make a Barcamp
How to Make a BarcampHow to Make a Barcamp
How to Make a Barcamp
 
Текст доклада о разработке плагина к модулю ССК
Текст доклада о разработке плагина к модулю ССКТекст доклада о разработке плагина к модулю ССК
Текст доклада о разработке плагина к модулю ССК
 
Обслуживание мультисайтинга
Обслуживание мультисайтингаОбслуживание мультисайтинга
Обслуживание мультисайтинга
 
Разработка соц. сети на Друпале
Разработка соц. сети на ДрупалеРазработка соц. сети на Друпале
Разработка соц. сети на Друпале
 
За что мы ненавидим Drupal
За что мы ненавидим DrupalЗа что мы ненавидим Drupal
За что мы ненавидим Drupal
 
I Net
I NetI Net
I Net
 
Gallery API
Gallery APIGallery API
Gallery API
 
Drupal Do
Drupal DoDrupal Do
Drupal Do
 
Drupal 7 development: first impressions
Drupal 7 development: first impressionsDrupal 7 development: first impressions
Drupal 7 development: first impressions
 
Drupal on ASP.Net
Drupal on ASP.NetDrupal on ASP.Net
Drupal on ASP.Net
 
Веб-аналитика в Drupal2
Веб-аналитика в Drupal2Веб-аналитика в Drupal2
Веб-аналитика в Drupal2
 
Веб-аналитика в Drupal1
Веб-аналитика в Drupal1Веб-аналитика в Drupal1
Веб-аналитика в Drupal1
 
Разработка модуля для Cms Drupal
Разработка модуля для Cms DrupalРазработка модуля для Cms Drupal
Разработка модуля для Cms Drupal
 
Продвинутый мультисайтинг
Продвинутый мультисайтингПродвинутый мультисайтинг
Продвинутый мультисайтинг
 
Азы мультисайтинга
Азы мультисайтингаАзы мультисайтинга
Азы мультисайтинга
 

Многоязычие сайта на Drupal

  • 1. imgfield tnid tnid=1 tnid=1 node/nid node/2 node/1 country Ukraine Украина city Kiev Киев author Grigory NAUMOVETS Григорий НАУМОВЕЦ body Problems , solutions, workarounds, and “goodness on the way” Проблемы, решения , перспективы title Multilingual sites in Drupal Многоязычие сайта на Drupal
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12. i18n vs Localizer: Боливар не в ынес ет двоих Разработка Localizer’ а прекращена на стадии 5.x-3.13 . Версии для Drupal 6 нет и не будет
  • 13. Многоязычие в ядре Drupal 6 node.language node.tnid (= original node’s nid) node.translate (translation status) В таблице “node” появились три дополнительных поля
  • 14. Многоязычие в ядре Drupal 6 Два дополнительных модуля (по умолчанию отключены): Locale (locale.module) – общая поддержка дополнительных языков и перевод интерфейса Content translation (translation.module) – перевод содержания
  • 15.
  • 16. Многоязычие в ядре Drupal 6 ( Jose Reyero , i18n.module developer)
  • 17.
  • 18. CivicActions.com: многоязычные сайты на D6 + i18n для Sony Music ( запущены в начале 2009 ). Заодно и код (D6 core & i18n) доработали…
  • 20.
  • 21. Для всех этих процедур есть довольно подробные инструкции drupal.org/node/338018
  • 23. Многояз ычные переменные: site_name , site_footer, theme_settings и т.п. прописываются в файле settings.php /** * Multilingual settings * * This is a collection of variables that can be set up for each language when i18n is enabled. * These are the basic ones for Drupal core, but you can add your own here. */ $conf['i18n_variables'] = array( // Site name, slogan, mission, etc.. 'site_name', 'site_slogan', 'site_mission', 'site_footer', 'anonymous', // Different front page for each language 'site_frontpage', // Primary and secondary links 'menu_primary_links_source', 'menu_secondary_links_source', // Contact form information 'contact_form_information', // For theme variables, read more below 'theme_settings', 'theme_garland_settings', );
  • 24. М ногояз ычны е переменные , прописанные в файле settings.php Теперь при редактировании параметров , соответствующих i18n_variables , в форме видна приписка: “This is a multilingual variable” . Переключ ая языки, задайте и сохраните нужные значения для каждого языка ‘ site_name' ‘ site_slogan' ‘ i18n_variables'
  • 25. Система перевода строк интерфейса Ядро D6 : поиск и перевод строк из встроенного интерфейса ( code-based strings ). Субмодуль i18n . strings : + строки из меню, блоков, таксономии и т.д. ( user-entered strings ).
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. Primary & secondary links Для них настройки видимости пунктов меню могут не срабатывать: видны лишние кнопки, которые для данного языка нужно спрятать. Причина: во многих темах их вывод описан не так, как вывод блоков и обычных меню drupal.org/node/313302
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46. Объекты и методы их перевода Загрузка .po файлов с переводом, отдельные строки - система перевода строк Интерфейс C истема перевода строк; танцы с бубном Поля CCK и ярлыки к разрешённым значениям Добавление фильтра по языку; заголовки и подписи – система перевода строк Вид ы Как обычные меню; если проблемы – добавить к списку м ногоязычных переменных i18n Primary & secondary links Перевод (система перевода строк) или дублирование пунктов – в зависимости от того, меняется ли ссылка Меню Перевод названия и содержания (система перевода строк) или дублирование Блоки Многоязычные переменные i18n Название сайта, slogan, footer, etc. Перевод (система перевода содержания) Ноды
  • 47.
  • 48.
  • 49. Модуль Translation table встраивается в систему перевода интерфейса
  • 50.
  • 51.
  • 52. Drupal 7 : наступит ли «многоязычная благодать»? groups.drupal.org/node/ 19671
  • 53.