SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
Многоязычие            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

Contenu connexe

Similaire à Multilangaunguage Drupal

Multilanguage Drupal
Multilanguage DrupalMultilanguage Drupal
Multilanguage DrupalInna Tuyeva
 
Go для python-программистов
Go для python-программистовGo для python-программистов
Go для python-программистовKonstantin Cherkasov
 
Hadoop presentation
Hadoop presentationHadoop presentation
Hadoop presentationVlad Orlov
 
Cоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetCоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetOleg Tsarev
 
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...it-people
 
Социальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.RuСоциальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.RuCodeFest
 
CodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest
 
Курс "Хранение и Обработка больших данны". Лекция 5 YARN
Курс "Хранение и Обработка больших данны". Лекция 5 YARNКурс "Хранение и Обработка больших данны". Лекция 5 YARN
Курс "Хранение и Обработка больших данны". Лекция 5 YARNPavel Mezentsev
 
DrupalCafe #2: Константин Комелин - Drupal 8: Aut Caesar aut nihil
DrupalCafe #2: Константин Комелин - Drupal 8: Aut Caesar aut nihilDrupalCafe #2: Константин Комелин - Drupal 8: Aut Caesar aut nihil
DrupalCafe #2: Константин Комелин - Drupal 8: Aut Caesar aut nihilDrupalSPB
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in productionAnatoly Popov
 
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiDevconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiAlexander Makarov
 
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...
CodeFest 2013. Иванов В. — Уменьшение расхода оперативной памяти в Java-прило...CodeFest
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned Alexander Syrotenko
 
Андрей Сибирёв "Ваше собственное облако — война за независимость"
Андрей Сибирёв "Ваше собственное облако — война за независимость"Андрей Сибирёв "Ваше собственное облако — война за независимость"
Андрей Сибирёв "Ваше собственное облако — война за независимость"Yandex
 

Similaire à Multilangaunguage Drupal (20)

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

Plus de Inna Tuyeva

Drupal Camp2009 Asp.Net Vs Drupal
Drupal Camp2009 Asp.Net Vs DrupalDrupal Camp2009 Asp.Net Vs Drupal
Drupal Camp2009 Asp.Net Vs DrupalInna Tuyeva
 
порівняння Drupal та Typo3
порівняння Drupal та Typo3порівняння Drupal та Typo3
порівняння Drupal та Typo3Inna Tuyeva
 
презентация соц сеть на друпале
презентация соц сеть на друпалепрезентация соц сеть на друпале
презентация соц сеть на друпалеInna Tuyeva
 
азы мультисайтинга
азы мультисайтингаазы мультисайтинга
азы мультисайтингаInna Tuyeva
 
продвинутый мультисайтинг
продвинутый мультисайтингпродвинутый мультисайтинг
продвинутый мультисайтингInna Tuyeva
 
обслуживание мультисайтинга
обслуживание мультисайтингаобслуживание мультисайтинга
обслуживание мультисайтингаInna Tuyeva
 
разработка модуля для Cms Drupal
разработка модуля для Cms Drupalразработка модуля для Cms Drupal
разработка модуля для Cms DrupalInna Tuyeva
 

Plus de Inna Tuyeva (20)

Drupal Camp2009 Asp.Net Vs Drupal
Drupal Camp2009 Asp.Net Vs DrupalDrupal Camp2009 Asp.Net Vs Drupal
Drupal Camp2009 Asp.Net Vs Drupal
 
порівняння Drupal та Typo3
порівняння Drupal та Typo3порівняння Drupal та Typo3
порівняння Drupal та Typo3
 
Galleryapi
GalleryapiGalleryapi
Galleryapi
 
Drupal Do
Drupal DoDrupal Do
Drupal Do
 
D7dev
D7devD7dev
D7dev
 
презентация соц сеть на друпале
презентация соц сеть на друпалепрезентация соц сеть на друпале
презентация соц сеть на друпале
 
I Net
I NetI Net
I Net
 
Galleryapi
GalleryapiGalleryapi
Galleryapi
 
Text
TextText
Text
 
азы мультисайтинга
азы мультисайтингаазы мультисайтинга
азы мультисайтинга
 
продвинутый мультисайтинг
продвинутый мультисайтингпродвинутый мультисайтинг
продвинутый мультисайтинг
 
обслуживание мультисайтинга
обслуживание мультисайтингаобслуживание мультисайтинга
обслуживание мультисайтинга
 
Arsa
ArsaArsa
Arsa
 
разработка модуля для Cms Drupal
разработка модуля для Cms Drupalразработка модуля для Cms Drupal
разработка модуля для Cms Drupal
 
Drupal Paranoia
Drupal ParanoiaDrupal Paranoia
Drupal Paranoia
 
Paranoia
ParanoiaParanoia
Paranoia
 
Drupal Paranoia
Drupal ParanoiaDrupal Paranoia
Drupal Paranoia
 
Drupal Paranoia
Drupal ParanoiaDrupal Paranoia
Drupal Paranoia
 
Dc P
Dc PDc P
Dc P
 
Zen
ZenZen
Zen
 

Dernier (9)

СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 

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