Помогите понять принцип работы i18n

Главные вкладки

Аватар пользователя k-s k-s 6 апреля 2011 в 3:00

Привет

Сижу мучаюсь, пытаюсь понять как работает локализация интерфейса. Дано - сайт с дефолтным русским и вторым немецким языками. Английский отключен.

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

Текстовая группа: Встроенный интерфейс
Сайт отеля (node/add/hotel)

Текстовая группа: Fields
Сайт отеля (field_weblink:hotel:label)

Одна и таже строка.

Последнее позволяет перевести строку на немецкий и английский, но этот перевод не применяется к интерфейсу, ни название поля в выдаче, ни название поле в админке не меняется.

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

Так как же мне перевести название поля, чтобы перевод во-первых отображадся везде, а во-вторых давал возможность иметь перевод на все 3 языка. Неужели модуль заточен на перевод только с изначально английского?

Комментарии

Аватар пользователя k-s k-s 6 апреля 2011 в 3:06

Еще кстати с шестерки помню, что там тоже была фигня такая, что некоторые строки сохранялись как дефолтный язык, а некоторые как английский, из чего получалась знатная каша

Аватар пользователя vitalii.stymkovskyi vitalii.stymkovskyi 6 апреля 2011 в 9:26

Тоже интересно какое то решение, с той же проблемой столкнулся, решение было делать все строчки на английском (когда дефолтный русский) и переводить на русский.

Аватар пользователя tonyk tonyk 6 апреля 2011 в 11:17

> Неужели модуль заточен на перевод только с изначально английского?
В целом, да. Даже скорее не модуль, а сам Друпал.

> Первый вариант же рассматривает русскую строку как английскую и предлагает перевести ее на русский и немецкий. И этот перевод отображается на сайте (хотя в админке не везде), но в этом случае нужно переводить русский на русский и нет возможности иметь английское название, если захочется включить и этот язык.
Надо весть текст на сайте вводить на английском, потом переводить на русский с помощью интерфейса перевода.

Аватар пользователя k-s k-s 6 апреля 2011 в 16:23

Ну тогда придется каждый раз внося изменения или что-то новое переключать сайт на английский, а потом обратно. А смена языка по умолчанию там в документации очень не рекомендуется.

Да и с английским странное поведение. Скажем название типа материала перевожу на русский, на странице добавления материала перевод применяется, а на странице со списком типов данных нет. То есть где-то переводится, где-то нет.

С полями опять же такая фигня - находит две строки для названия поля, первая вроде то что нужно - текстовая группа Fields и контекст указан как field:field_weblink:hotel:label, но перевод этой строки ни на что не влияет.

Вторая строка же относится к группе встроенного интерфеса, что не корректно и контекст указан как адрес конкретной ноды. Но перевод этой строки работает, хотя и не везде в админке.

То есть я никаким способом так и не добился полного и консистентного перевода. Меня это печалит как атомная война Biggrin

Аватар пользователя k-s k-s 6 апреля 2011 в 16:21

Ну и в дефолтном русском писать на английском тоже не вариант, так как некоторые строки таки сохраняются как русские. Опять получается та еще каша.

Самый оптимальный вариант как я вижу - это иметь постоянно включенным английский язык по умолчанию, но при этом его нужно убрать из списка выбора языков и пользователей перенаправлять по ролям аноним и регистрированный на нужный язык. Но это костыль какой-то

Аватар пользователя k-s k-s 6 апреля 2011 в 17:27

Короче я забиваю большой болт на английский и перспективу его включения, делаю все на немецком, а на русский перевожу только то, что показывается пользователю, тогда админка всегда будет на немецком, а выдача будет менятся в зависимости от выбранного языка.

Может к 10-ой версии локализация наконец заработает как надо Biggrin

Аватар пользователя k-s k-s 26 мая 2011 в 17:14

Я тут немного разобрался.

Что касается полей - для заголовка поля всегда находятся две строки. Одна, которая аккуратно обозначена названием поля - это строка, которая видна на форме редактирования, вторая, у которой стоит какой-нибудь адрес - это строка, которая отдается пользователю, а адрес - это место где первый раз строка была отрендерена.

Что касается дефолтного языка, там английский всегда должен быть дефолтным, если нам надо, чтобы английская админка была 100% на английском, так как многие строки сохраняются английскими независимо от актуального или дефолтного языка. В остальных случаях, немного повозившись, можно добиться правильного перевода выдачи пользователю, а админка будет немного хаотичной, что касается языков.