Багатомовність сайту

На багатьох сучасних сайтах, можна вибирати якою мовою буде відображатись контент. Сам я встановив Drupal 6.16 З українським перекладом, Встановив модуль "Content translation" і сталась якась фігня нажимаю на "русский" розділи меню перекладаються на англійську мову, а сам контент що я писав сам не перекладається. Нажимаю на "English" нічого не відбувається, ну я в смислі що не переключається, українська мова як була так і залишилась. Так якщо можна роздупліть мене нетямущого як перекласти повністю сайт наскільки я знаю там є якісь *.po файли але вони вроді би до кожного модуля окремі.
Надіюсь на вашу допомогу ;)

Коментарів:

8

Коментувати

Увійдіть або зареєструйтесь, щоб додати коментар

Коментарі

Є модуль Locale, який є базовим. Він керує файлами перекладів і додаванням мов. І переводить інтерфейс на обрані мови.
Друпал влаштований так що базова мова — англійська і в усіх файлах, все що виводитися на екран теж англійське — ЗАВЖДИ.
Якщо додати українську мову, то цей модуль пройде всіма папоками з модулями і витягне з них усі українські фрази для інтерфейсу (якщо такі є). І коли якийсь модуль виводить на екран повідомлення то шукається його переклад з цих файлів, який і виводитися на екран, якщо перекладу немає, то виводитися повідомлення англійською.

Модуль Content транслатіон - відповідає за переклад вмісту сайту.
Для початку потрібно зайти на сторінку редагування типу контенту http://ваш сайт/admin/content/node-type/story і вказати в налаштуваннях що цей тип може бути багатомовним Multilingual support: — Enabled
Теперь при создании страниц типа story есть возможность привязать текст к определенному языку. Для каждого языка нужно сделать свой вариант текста.

Internationalization http://drupal.org/project/i18n
це модуль з розширеними налаштуваннями для багатомовності, який я і рекомендую використовувати. З його допомогою можна перекладати окремі сторінки. блоки, меню та гнучко управляти перекладами.

В анлійській мові 1day, 2 і далі days. У співочій рідній мові трохи складніше. 1 день, 2 дні, 5 днів, тобто прямого перекладу вже не виходить. Як правильно перекладати в такому разі?

задача розв'язується в кілька етапів

  1. в папці з модулем повинен бути файл перекладу з такими рядками
    • на початку файлу
      "Plural-Forms: Plural-Forms: nplurals=3; plural=((((n%10)==1)&&((n%100)!=11))?(0):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(1):2));\\n\n"
    • по ходу переказів
      msgid "1 day"
      msgid_plural "!num days"
      msgstr[0] "1 день"
      msgstr[1] "!num дні"
      msgstr[2] "!num днів"
  2. в модулі
    format_plural($new, '1 day', '@num days');

Добрий день!
Шановний, а якщо перекази виводяться за допомогою views?

кожен випадок треба розглядати окремо. Деякі переводяться, деякі ні
Ті що не переводяться можна переводити через обробку темізаціі, наприклад

Доброго дня!
Тобто, якщо за допомогою views формується звичайний перелік "назва", "дата публікації" в форматі Time ago, то шансів зробити це по людськи немає?

шукаєте тут — http://ваш_сайт/admin/build/translate/search фразу — " days"
Вам знайде:
@count days — треба перекласти як "@count дні"
@count[2] days — перекласти як "@count[2] днів"

Звісно, що є
Для цього ставимо http://drupal.org/project/i18nviews
І перекладаємо більшість компонентів views аналогічно до банальних рядків інтерфейсу...