SlideShare a Scribd company logo
Многоязычие            Multilingual            title
сайта на Drupal       sites in Drupal
             ,       Problems, solutions,
           ,          workarounds, and          body
                      “goodness on the
                            way”
                       Grigory NAUMOVETS        author
                             Kiev               city
                            Ukraine             country


                                                imgfield


            node/1                    node/2    node/nid

            tnid=1                     tnid=1   tnid
•
•                  Drupal 5 (   )
•                  Drupal 6:
    –
    –
    –

•       Drupal 7



                                    2
?
•
•                     -

•
    (         ,           .)
•
• (               )


•
        – (       ,

              –                ???)

                                          3
ВОЗМОЖНОСТЬ vs ЦЕЛЕСООБРАЗНОСТЬ
•
    «
            »?
•                            :
    –   -


•                        :
                             ?
    –                            ?
    –                               ?
    –            user-generated content?

                                           4
user-generated
   content:                             ?

• Wikipedia:

       ,                   interwiki-         ,
               , Wikimedia commons      . .
• Youtube:

                              ,
                               ,
                     .

                                                  5
…

node/1                   Title (lang1)       Title (lang2)
(multilingual)          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

                                                                      6
...
                                      ,
                                                    .
node/1                 Title
                                          node/2                 Title
lang1                  Body
                                          lang2                 Body
                Some field                               Some field

              Another field                             Another field


        Some file attached                     Some file attached

           Another file attached            Another file attached

comments      Drupal торжественно объявляет node/1 и node/2       comments
                          переводами друг друга
                                                                         7
Drupal
•               ,            –
    content=“text/html; charset=utf-8”

•
    utf-8 (8-                    Unicode),
                                  ,
                                      ,

            .


                                             8
Drupal 5:
                             -
•                                ,




•



•            ,
                                     :
    – i18n       Localizer

                                         9
”i18n”?
internationalization               i18n

                       18 штук ниасилили
      Много букав.
                       10 штук ниасилили
   Localization             L10n

         “i18n”   “L10n”
                     Drupal,
         “i18n”, “L10n_client”
                                           10
Drupal 5 +           vs         Drupal 5 +
      i18n.module                   Localizer.module




Additional db tables:
                                             Additional db tables:
• i18n_blocks
                                             • localizerblock
• i18n_blocks_i18n
                                             • localizertranslation
• i18n_node
                                             • localizernode
• i18n_profile_fields
                                             • localizeruser
• i18n_strings
• i18n_taxonomy_term
                        i18n vs Localizer:
• i18n_variable

                            Drupal 5                                  11
i18n vs Localizer:




Localizer’

     5.x-3.13.
        Drupal 6




                                   12
Drupal 6
              “node”



                  node.language


                      node.tnid
               (= original node’s nid)

   node.translate
(translation status)

                                                    13
Drupal 6
                  (                          ):
Locale (locale.module) –


Content translation (translation.module) –




                                                  14
Drupal 6
•               ,                         ,
                                     –   …
            :
    –   ,           ,
    –                     ,      ,
    –                   Views,                       CCK,
                                         . .   . .
•
                                                     ?
•                                               Drupal 6
                        .

                                                            15
Drupal 6




(Jose Reyero,
 i18n.module developer)
                                     16
Drupal 6 + i18n:
                     • General features
• i18n.module           – Multilingual variables
                        – Translatable user defined strings: Menu items, taxonomy content type names and
  –   i18nblocks          descriptions, etc...
                        – Language selection: Only content in the selected language is displayed for each
  –   i18ncontent         page view.
  –   i18nmenu          – Several selection modes are available for content, meaning you can have node
                          lists for only the current language, for current and default languages, all
  –   i18nprofile         languages, etc.
                        – Profile: Translates profile field names and descriptions in every language
  –   i18nstrings       – Polls: Provides an aggregated view and results block for votes in all languages
  –   i18nsync          – Some, still limited, Views and CCK support
                     • Multilingual Taxonomy
  –   i18ntaxonomy      – Language can be set up for vocabularies or terms, or terms can be localized
  –   i18nviews         – Both multilingual vocabularies with terms in multiple languages and single-
                          language vocabularies can be created
                        – Translations can be defined between terms in different languages
                        – Taxonomy term synchronization can be defined per vocabulary for translations
                        – Taxonomy term translation can be done using localization for selected
                          vocabularies
                                                                                                         17
CivicActions.com:                   D6 +
i18n     Sony Music (             2009).
               (D6 core & i18n)     …




                                           18
drupal.org/node/383954




                         19
:

•   Модули: Установка и включение нужных (Content translation, Locale, i18n, i18n
    submodules), редактирование settings.php.
•   Языки: Включение нужных
•   Типы контента: Включение многоязычия для нужных типов (при этом, если нужно
    – задание синхронизации для выбранных полей: например, приложенных
    файлов, изображений, дат, таксономии и т.п.)
•   Переключатель языка: вывести (стандартный блок или сниппет, встраиваемый в
    шаблон темы)
•   Главная страница, название сайта, footer и т.п.: настроить в соответствии с
    языком
•   Pathauto: Если нужно – подстроить автоматические URL с учётом языка
•   Ноды: Подготовка к переводу - задать язык, если нода считается language-neutral;
    создание переводов
•   Меню: Перевод или дупликация, настройка в соответствии с языком
•   Блоки: Перевод или дупликация, настройка видимости по языкам и URL’ам
•   Тема: Если есть параметры, зависящие от языка – подстроить
•   Permissions: Настроить права доступа на перевод содержания и интерфейса
•   Решение непредвиденных проблем и прочее
                                                                                       20
drupal.org/node/338018




                         21
drupal-translation.com/node/10




                                 22
: 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',
);
                                                                            23
,
              settings.php
Теперь при редактировании параметров,
соответствующих ‘i18n_variables'
                     i18n_variables,
       в форме видна приписка:
     “This is a multilingual variable”.
Переключая языки, задайте и сохраните
  нужные значения для каждого языка




   ‘site_name'



                      ‘site_slogan'
                                          24
D6:


(code-based strings).
        i18n.strings:
+                  ,      ,
                . .
(user-entered strings).

                              25
:
•
•




        26
1:                   (common terms)


                 taxonomy/term/1
                   (для всех языков)

(EN)                                            (RU)
               Dogs
Everything about dogs

                 Перевод названия - через
                    систему перевода
                       интерфейса
                                                       27
2:
                  (per language terms)

 taxonomy/term/1                    taxonomy/term/2
(EN)                                                (RU)


Dogs
Everything about dogs


                         Объявляем категории
                        переводами друг друга.
                   (Ну и на что это влияет? SFW?)
                                                           28
•                                                 :
                                      -
•                        :
    –                ,                     ,


    –

                                                      Mutlilingual Block
        English Block        Русскоязычный блок        Translatable Title
                                                        (переводимый
        English Title        Русский заголовок            заголовок)
                                                      Translatable Content
           English             Русскоязычное             (Переводимое
           Content              содержание                содержание)


                                                                             29
Views
• i18n.views




                       Поэтому блок, в
                       который выводится
                       вид, можно делать
                       многоязычным: при
                       переключении
                       языка под него
                       автоматически
                       подстраивается
                       содержание

                                      30
•                  ,                           ,                          :
    1)
                                   ,
    2)                                 .
•                                                  :
    –
                                                       .
                           .
    –                                                      ,
                       :       ,           ,                   . ., . .
                                                               .
    –    Primary/secondary links –                               ,

• JQuery Menu:                                                       ,

                                                                              31
• Все языки   Можно дублировать
                            • Язык 1      блок в целом, можно
                            • Язык 2      внутри блока одни
                                          пункты дублировать,
                                          другие переводить.
                              Общая       А переводить весь
• Все языки                 видимость     блок имеет смысл
• Язык 1                      блока
• Язык 2                                  только при отсутствии
                              меню        ссылок на ноды.
• Все языки
• Язык 1       Види-
• Язык 2       мость                                   нода
              каждого   •
              отдель-                                  вид
• Все языки             •
• Язык 1        ного
               пункта   •                           таксономия
• Язык 2
               меню     •                             форма
• Все языки
• Язык 1
• Язык 2
                                                                 32
?
                            URL           en/about                   ru/about
                 Текст в меню             About us                    О нас
    Системный адрес ссылки                node/1                     node/2

•                       ,
    (“about”),                                         ”node/1”.
                                                     (“About us” -> “            ”),
                                                                         .
•                                 ,                              ,
                   .
•                   ,                                  (Page View),
                   (                  ,                                  )      . .,
                             ,                               .

                                                                                       33
Primary & secondary links
Для них настройки видимости пунктов меню могут не срабатывать: видны
лишние кнопки, которые для данного языка нужно спрятать.




                                               Причина: во многих
                                               темах их вывод описан
                                               не так, как вывод блоков
                                               и обычных меню




                                           drupal.org/node/313302
                                                                      34
primary & secondary links:



               settings.php:
               $conf['i18n_variables'] = array(
               // Primary and secondary links
                 'menu_primary_links_source',
                 'menu_secondary_links_source',
               );




                'menu_primary_links_source'




'menu_secondary_links_source'                 35
i18nsync:

        •


                          .
        •       ,

            –
            –

            –

            –       . .
                              36
i18nsync                nodereference
    node/3 (en)         Перевод         node/4 (ru)
                        (tnid=3)


    nodereference                        nodereference


                       Перевод
    node/1 (en)        (tnid=1)         node/2 (ru)

•                       nodereference           node/4
              node/1   node/2.
•                          , i18nsync                        ,
                        (          ,
                                          ,
                                                         )
                                                                 37
Nodereference

• en/lectures/by-teachers/       • ru/lectures/by-teachers/
  Lectures grouped by
  teachers:                                                        :
   – John Brown (6)                    –          (6)
   – Peter Green (4)                   –         (4)
                         en       ru

en/lectures/by-teachers/36       ru/lectures/by-teachers/37
List of lectures by John Brown
                          en      ru
• “John Brown” (node/36) “                 ” (node/37) –
                 ,                                              “List
  of lectures by John Brown”                            “
                         ”,                                 .
                                                                        38
• i18ncomments by neochief
  drupal.org/node/526942
                  i18n experimental module

  Node/1 (en)      Node/2 (uk)      Node/3 (ru)




                    comments

                                                  39
,
•           ,
    -
        ,

•       ,       ,
            .




                    40
,
•              1:
                                          ,



         (En)                                           (Ru)
       Main Page



       link     link           link       link


    Logo               Title
    Logo               Title                     Logo          Title

              Page
                                                                       41
,
•                  2:



    •              :

         (Garland etc.);



•                                Acquia Marina
•
                Acquia Marina – Waffles, Black Mamba,
        etc.
                                                        42
,

•           1:                 drupal.org/node/494068
                 page.tpl.php:
    $base_path        check_url($front_page)
                           (                            )
•           2:
                 template.php:

    $terms=
    taxonomy_node_get_terms_by_vocabulary
    ($vars['node'], $vocabulary->vid)


    $terms=i18ntaxonomy_localize_terms
    (taxonomy_node_get_terms_by_vocabulary
    ($vars['node'], $vocabulary->vid))
                                                            43
CCK:

AL|Albania           Текстовые ярлыки должны
AM|Armenia           переводиться через систему перевода интерфейса:
. . .                 Albania                       Албания
                      Armenia                       Армения
Но реально перевод работает не всегда: бывает, что одни строки поиск
находит, а другие нет.
Есть трюк с заданием значений поля CCK через php-код:
return array(                               Некоторые строки после
'AL' => t('Albania'),                       этого находятся поиском,
'AM' => t('Armenia') );                     другие всё равно нет.

 Запуск и перезапуск cron,
 «дергание» сайта за ноды и виды,        WTF ???
 прочие танцы с бубном.
                                          drupal.org/node/293297
                                                                       44
CCK:


•                    neochief:
    –              i18ncck         drupal.org/node/531660
    –          CCK,                drupal.org/node/531662

                         i18ncck

               ,
               .


                                                            45
Перевод (система перевода содержания)
                  ,    Многоязычные переменные i18n
slogan, footer, etc.
                       Перевод названия и содержания (система перевода
                       строк) или дублирование
                       Перевод (система перевода строк) или дублирование
                       пунктов – в зависимости от того, меняется ли ссылка
Primary & secondary    Как обычные меню; если проблемы – добавить к
links                  списку многоязычных переменных i18n
                       Добавление фильтра по языку; заголовки и подписи –
                       система перевода строк
      CCK
                       Cистема перевода строк;
                       танцы с бубном

                       Загрузка .po файлов с переводом, отдельные строки -
                       система перевода строк
                                                                             46
“Language sections”
• «           »

•                                  ,«         » views        . .
•                                  ,
    «     »
=== en ===
English text
=== ru ===
Русский текст                                            -
=== qz ===
Текст на прочих языках
=== qq ===
Текст, не зависящий от языка

                  This is some =en= English =ru= Russian =qq= text
                                                                     47
“Translation Table”
•

•                    :
    –«       »
    –«           »
    –«   »
•
                         ,         ,


                                       48
Модуль
  Translation
      table
встраивается в
    систему
   перевода
 интерфейса




                 49
“Localization client”
        (L10n_client)
•
                .
                     ,
    ,                                      .
•          img_assist (drupal.org/node/273511)




                                                 50
“Translation overview”
•

•               ,               :
            ,           ,           .
•                   ,
    -   (                   )




                                        51
Drupal 7:
   «
                      »?

groups.drupal.org/node/19671




                               52
Drupal 7
•                       D7
          i18n:
    –                    ,   . .;
    –
    –             ,
•

•

• Translatable fields
  (                            Fields API)
                                             53

More Related Content

PPT
Многоязычие сайта на Drupal
PPTX
Multilingual Drupal 8
PPTX
Gitlab devconf
PDF
Андрей Субботин "Автоматизация локализации iOS-приложений"
PPTX
Docker в работе: взгляд на использование в Badoo через год
PPTX
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
PPTX
Docker в работе: взгляд на использование в Badoo через год
PDF
Интернационализация и локализация Ruby on Rails. gem russian
Многоязычие сайта на Drupal
Multilingual Drupal 8
Gitlab devconf
Андрей Субботин "Автоматизация локализации iOS-приложений"
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на использование в Badoo через год
Интернационализация и локализация Ruby on Rails. gem russian

Similar to Multilangaunguage Drupal (20)

PPTX
DLR Hosting
PPT
Multilanguage Drupal
PDF
Go для python-программистов
PDF
Hadoop presentation
PDF
PPTX
Stanfy Fireworks Conf
PDF
Cоциальный граф "Одноклассников" в myTarget
PDF
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
PDF
Социальный граф Одноклассников в Target Mail.Ru
PDF
CodeFest 2011. Макаров А. — Как разрабатывается Yii
PDF
Как разраба
PDF
JavaFX 2.0 overview
KEY
Migrate!
PDF
Курс "Хранение и Обработка больших данны". Лекция 5 YARN
PPTX
DrupalCafe #2: Константин Комелин - Drupal 8: Aut Caesar aut nihil
PPTX
Net core and linux in production
PDF
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
PDF
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
PDF
How to cook a blockchain and not get burned
PDF
Андрей Сибирёв "Ваше собственное облако — война за независимость"
DLR Hosting
Multilanguage Drupal
Go для python-программистов
Hadoop presentation
Stanfy Fireworks Conf
Cоциальный граф "Одноклассников" в myTarget
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
Социальный граф Одноклассников в Target Mail.Ru
CodeFest 2011. Макаров А. — Как разрабатывается Yii
Как разраба
JavaFX 2.0 overview
Migrate!
Курс "Хранение и Обработка больших данны". Лекция 5 YARN
DrupalCafe #2: Константин Комелин - Drupal 8: Aut Caesar aut nihil
Net core and linux in production
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
How to cook a blockchain and not get burned
Андрей Сибирёв "Ваше собственное облако — война за независимость"
Ad

More from Inna Tuyeva (20)

PPT
Drupal Camp2009 Asp.Net Vs Drupal
PPT
порівняння Drupal та Typo3
PPT
Galleryapi
PPT
Drupal Do
PPT
ODP
презентация соц сеть на друпале
PPT
PPT
Galleryapi
RTF
ODP
азы мультисайтинга
PPT
продвинутый мультисайтинг
ODP
обслуживание мультисайтинга
PPT
PPT
разработка модуля для Cms Drupal
ODP
Drupal Paranoia
TXT
Paranoia
PPT
Drupal Paranoia
ODT
Drupal Paranoia
PPT
PDF
Drupal Camp2009 Asp.Net Vs Drupal
порівняння Drupal та Typo3
Galleryapi
Drupal Do
презентация соц сеть на друпале
Galleryapi
азы мультисайтинга
продвинутый мультисайтинг
обслуживание мультисайтинга
разработка модуля для Cms Drupal
Drupal Paranoia
Paranoia
Drupal Paranoia
Drupal Paranoia
Ad

Multilangaunguage Drupal

  • 1. Многоязычие Multilingual title сайта на Drupal sites in Drupal , Problems, solutions, , workarounds, and body “goodness on the way” Grigory NAUMOVETS author Kiev city Ukraine country imgfield node/1 node/2 node/nid tnid=1 tnid=1 tnid
  • 2. • • Drupal 5 ( ) • Drupal 6: – – – • Drupal 7 2
  • 3. ? • • - • ( , .) • • ( ) • – ( , – ???) 3
  • 4. ВОЗМОЖНОСТЬ vs ЦЕЛЕСООБРАЗНОСТЬ • « »? • : – - • : ? – ? – ? – user-generated content? 4
  • 5. user-generated content: ? • Wikipedia: , interwiki- , , Wikimedia commons . . • Youtube: , , . 5
  • 6. … node/1 Title (lang1) Title (lang2) (multilingual) 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 6
  • 7. ... , . node/1 Title node/2 Title lang1 Body lang2 Body Some field Some field Another field Another field Some file attached Some file attached Another file attached Another file attached comments Drupal торжественно объявляет node/1 и node/2 comments переводами друг друга 7
  • 8. Drupal • , – content=“text/html; charset=utf-8” • utf-8 (8- Unicode), , , . 8
  • 9. Drupal 5: - • , • • , : – i18n Localizer 9
  • 10. ”i18n”? internationalization i18n 18 штук ниасилили Много букав. 10 штук ниасилили Localization L10n “i18n” “L10n” Drupal, “i18n”, “L10n_client” 10
  • 11. Drupal 5 + vs Drupal 5 + i18n.module Localizer.module Additional db tables: Additional db tables: • i18n_blocks • localizerblock • i18n_blocks_i18n • localizertranslation • i18n_node • localizernode • i18n_profile_fields • localizeruser • i18n_strings • i18n_taxonomy_term i18n vs Localizer: • i18n_variable Drupal 5 11
  • 12. i18n vs Localizer: Localizer’ 5.x-3.13. Drupal 6 12
  • 13. Drupal 6 “node” node.language node.tnid (= original node’s nid) node.translate (translation status) 13
  • 14. Drupal 6 ( ): Locale (locale.module) – Content translation (translation.module) – 14
  • 15. Drupal 6 • , , – … : – , , – , , – Views, CCK, . . . . • ? • Drupal 6 . 15
  • 16. Drupal 6 (Jose Reyero, i18n.module developer) 16
  • 17. Drupal 6 + i18n: • General features • i18n.module – Multilingual variables – Translatable user defined strings: Menu items, taxonomy content type names and – i18nblocks descriptions, etc... – Language selection: Only content in the selected language is displayed for each – i18ncontent page view. – i18nmenu – Several selection modes are available for content, meaning you can have node lists for only the current language, for current and default languages, all – i18nprofile languages, etc. – Profile: Translates profile field names and descriptions in every language – i18nstrings – Polls: Provides an aggregated view and results block for votes in all languages – i18nsync – Some, still limited, Views and CCK support • Multilingual Taxonomy – i18ntaxonomy – Language can be set up for vocabularies or terms, or terms can be localized – i18nviews – Both multilingual vocabularies with terms in multiple languages and single- language vocabularies can be created – Translations can be defined between terms in different languages – Taxonomy term synchronization can be defined per vocabulary for translations – Taxonomy term translation can be done using localization for selected vocabularies 17
  • 18. CivicActions.com: D6 + i18n Sony Music ( 2009). (D6 core & i18n) … 18
  • 20. : • Модули: Установка и включение нужных (Content translation, Locale, i18n, i18n submodules), редактирование settings.php. • Языки: Включение нужных • Типы контента: Включение многоязычия для нужных типов (при этом, если нужно – задание синхронизации для выбранных полей: например, приложенных файлов, изображений, дат, таксономии и т.п.) • Переключатель языка: вывести (стандартный блок или сниппет, встраиваемый в шаблон темы) • Главная страница, название сайта, footer и т.п.: настроить в соответствии с языком • Pathauto: Если нужно – подстроить автоматические URL с учётом языка • Ноды: Подготовка к переводу - задать язык, если нода считается language-neutral; создание переводов • Меню: Перевод или дупликация, настройка в соответствии с языком • Блоки: Перевод или дупликация, настройка видимости по языкам и URL’ам • Тема: Если есть параметры, зависящие от языка – подстроить • Permissions: Настроить права доступа на перевод содержания и интерфейса • Решение непредвиденных проблем и прочее 20
  • 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', ); 23
  • 24. , settings.php Теперь при редактировании параметров, соответствующих ‘i18n_variables' i18n_variables, в форме видна приписка: “This is a multilingual variable”. Переключая языки, задайте и сохраните нужные значения для каждого языка ‘site_name' ‘site_slogan' 24
  • 25. D6: (code-based strings). i18n.strings: + , , . . (user-entered strings). 25
  • 26. : • • 26
  • 27. 1: (common terms) taxonomy/term/1 (для всех языков) (EN) (RU) Dogs Everything about dogs Перевод названия - через систему перевода интерфейса 27
  • 28. 2: (per language terms) taxonomy/term/1 taxonomy/term/2 (EN) (RU) Dogs Everything about dogs Объявляем категории переводами друг друга. (Ну и на что это влияет? SFW?) 28
  • 29. : - • : – , , – Mutlilingual Block English Block Русскоязычный блок Translatable Title (переводимый English Title Русский заголовок заголовок) Translatable Content English Русскоязычное (Переводимое Content содержание содержание) 29
  • 30. Views • i18n.views Поэтому блок, в который выводится вид, можно делать многоязычным: при переключении языка под него автоматически подстраивается содержание 30
  • 31. , , : 1) , 2) . • : – . . – , : , , . ., . . . – Primary/secondary links – , • JQuery Menu: , 31
  • 32. • Все языки Можно дублировать • Язык 1 блок в целом, можно • Язык 2 внутри блока одни пункты дублировать, другие переводить. Общая А переводить весь • Все языки видимость блок имеет смысл • Язык 1 блока • Язык 2 только при отсутствии меню ссылок на ноды. • Все языки • Язык 1 Види- • Язык 2 мость нода каждого • отдель- вид • Все языки • • Язык 1 ного пункта • таксономия • Язык 2 меню • форма • Все языки • Язык 1 • Язык 2 32
  • 33. ? URL en/about ru/about Текст в меню About us О нас Системный адрес ссылки node/1 node/2 • , (“about”), ”node/1”. (“About us” -> “ ”), . • , , . • , (Page View), ( , ) . ., , . 33
  • 34. Primary & secondary links Для них настройки видимости пунктов меню могут не срабатывать: видны лишние кнопки, которые для данного языка нужно спрятать. Причина: во многих темах их вывод описан не так, как вывод блоков и обычных меню drupal.org/node/313302 34
  • 35. primary & secondary links: settings.php: $conf['i18n_variables'] = array( // Primary and secondary links 'menu_primary_links_source', 'menu_secondary_links_source', ); 'menu_primary_links_source' 'menu_secondary_links_source' 35
  • 36. i18nsync: • . • , – – – – . . 36
  • 37. i18nsync nodereference node/3 (en) Перевод node/4 (ru) (tnid=3) nodereference nodereference Перевод node/1 (en) (tnid=1) node/2 (ru) • nodereference node/4 node/1 node/2. • , i18nsync , ( , , ) 37
  • 38. Nodereference • en/lectures/by-teachers/ • ru/lectures/by-teachers/ Lectures grouped by teachers: : – John Brown (6) – (6) – Peter Green (4) – (4) en ru en/lectures/by-teachers/36 ru/lectures/by-teachers/37 List of lectures by John Brown en ru • “John Brown” (node/36) “ ” (node/37) – , “List of lectures by John Brown” “ ”, . 38
  • 39. • i18ncomments by neochief drupal.org/node/526942 i18n experimental module Node/1 (en) Node/2 (uk) Node/3 (ru) comments 39
  • 40. , • , - , • , , . 40
  • 41. , • 1: , (En) (Ru) Main Page link link link link Logo Title Logo Title Logo Title Page 41
  • 42. , • 2: • : (Garland etc.); • Acquia Marina • Acquia Marina – Waffles, Black Mamba, etc. 42
  • 43. , • 1: drupal.org/node/494068 page.tpl.php: $base_path check_url($front_page) ( ) • 2: template.php: $terms= taxonomy_node_get_terms_by_vocabulary ($vars['node'], $vocabulary->vid) $terms=i18ntaxonomy_localize_terms (taxonomy_node_get_terms_by_vocabulary ($vars['node'], $vocabulary->vid)) 43
  • 44. CCK: AL|Albania Текстовые ярлыки должны AM|Armenia переводиться через систему перевода интерфейса: . . . Albania Албания Armenia Армения Но реально перевод работает не всегда: бывает, что одни строки поиск находит, а другие нет. Есть трюк с заданием значений поля CCK через php-код: return array( Некоторые строки после 'AL' => t('Albania'), этого находятся поиском, 'AM' => t('Armenia') ); другие всё равно нет. Запуск и перезапуск cron, «дергание» сайта за ноды и виды, WTF ??? прочие танцы с бубном. drupal.org/node/293297 44
  • 45. CCK: • neochief: – i18ncck drupal.org/node/531660 – CCK, drupal.org/node/531662 i18ncck , . 45
  • 46. Перевод (система перевода содержания) , Многоязычные переменные i18n slogan, footer, etc. Перевод названия и содержания (система перевода строк) или дублирование Перевод (система перевода строк) или дублирование пунктов – в зависимости от того, меняется ли ссылка Primary & secondary Как обычные меню; если проблемы – добавить к links списку многоязычных переменных i18n Добавление фильтра по языку; заголовки и подписи – система перевода строк CCK Cистема перевода строк; танцы с бубном Загрузка .po файлов с переводом, отдельные строки - система перевода строк 46
  • 47. “Language sections” • « » • ,« » views . . • , « » === en === English text === ru === Русский текст - === qz === Текст на прочих языках === qq === Текст, не зависящий от языка This is some =en= English =ru= Russian =qq= text 47
  • 48. “Translation Table” • • : –« » –« » –« » • , , 48
  • 49. Модуль Translation table встраивается в систему перевода интерфейса 49
  • 50. “Localization client” (L10n_client) • . , , . • img_assist (drupal.org/node/273511) 50
  • 51. “Translation overview” • • , : , , . • , - ( ) 51
  • 52. Drupal 7: « »? groups.drupal.org/node/19671 52
  • 53. Drupal 7 • D7 i18n: – , . .; – – , • • • Translatable fields ( Fields API) 53