[Решено] Несколько языков на сайте!

Здравствуйте!

Мне не когда не приходилось писать мульти язычные сайты.

Пожалуйста дайте советы. Какой концепции придерживаться?

Насколько я знаю что все выводы print(например в шаблонах) должны производиться через
t() и только на анг.яз чтобы движок друпала мог его преобразовать в нужную локализацию.

В общем подскажите с чего начать? Чего придерживаться? Чем Закончить?

Спасибо!

P.S. Задача стоит Украинский и Русский

Коментарів:

15

Коментувати

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

Коментарі

все выводы print(например в шаблонах) должны производиться через t() и только на анг.яз
Даже в одноязычных сайтах нужно выводить все через t() и обязательно помнить про всякого рода инекции, поэтому check_plain тоже не забывать.
Хороший модуль для многоязычности это http://drupal.org/project/i18n , он лучше встроенной системы переводов.
Всю работу берет на себя этот модуль, задача админа это сделать переводы страниц, блоков, меню

Спасибо! Попробую...

А вот еще вопрос, он переведет элементы меню "таксономии"?

Которые строятся в ручную таким образом:
while($row = db_fetch_array($res))
{
$arr[] = $row;
$arr_ind[] = $row["weight"];
}

Или же придется вписывать что то вроде
$arr["name"]=t($arr["name"]);

этот модуль может и таксономию переводить тоже притом в нескольких видах.
Можно сделать как перевод терминов, а можно сделать новые термины для какого-то конкретного языка

orb++
Спасибо модуль то что нужно...

Да же не пришлось $arr["name"]=t($arr["name"]); Писать...

Только еще вопрос а как простому пользователю разрешить менять свой язык???

1. Есть настройки в профиле
2. Можно вывести специальный блок
3. заменить в строке ru/uk/en или как-то так

А как заставить модуль значения полей таксономии. Те что "вяжутся" к ноде???
То есть я создал словарь(анг. яз). И если с ним работать "в ручную" то все нормально.
А когда друпал работает с ним своими методами. То слова не переводятся.

Что можно сделать???

ничего не понял
У самого словаря есть настройки в каком режиме будет переводиться словарь

Я их все перепробовал. Но перевода не добился...
Нужно перевести, выпадающее поле таксономии, для формы создания новой ноды.

http//сайт/admin/content/taxonomy/edit/vocabulary/словарь — тут можно выставить "перевод терминов"
после чего все термины переводятся на странице переводов — http//сайт/admin/build/translate/search

Есть ньюансы:
1. если термина нет в переводах, зайти на редактирование этого термина и нажать "Сохранить"
2. Если на сайте по умолчанию стоит русский язык, то термины в админке нужно ставить русские, а на странице переводов искать русское название термина

orb++
Вроде бы заработало. Как нужно.

ну и отлично :)
сам сейчас ломаю переводы в друпале

Установил модуль i18n, включил, настроил (Drual 7). Но если смотрим статью на русском
mysite.com/ru/content/statya-na-russkom а потом переключаем на украинский язык то плучаем URL mysite.com/uk/node/5
Как видим изменился не только суффикс но и урл, хотя есть ее перевод на украинский язык и адрес у нее mysite.com/uk/content/stattya-na-ukrayinskiy-movi От части разобрался - в настройках->Translation Sets на вкладке Paths нужно добавить Paths Translation, но как-то не удобно после создания статей заходить в эту настройку и вручную добавлять для каждой статьи Paths Translation. Как настроить чтобы автоматически создавалась привязка урлов одной статьи на разных языках?

УРЛ во всех вариантах языка должен быть одинаков, префикс друпал сам подставит правильный

ЧПУ - важный фактор SEO оптимизации. Сейчас у меня урл (алиас) страницы генерируется автоматически по тайтлу - это правильно. Чтобы использовать одинаковый алиас то тогда только вручную их прописывать, а это не есть удобство для редакторов, которые будут публиковать статьи.