Сайт с 2мя языками

2 февраля 2008 в 17:10
Аватар пользователя Misti Misti 0 30

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

Поставил модуль i18n. Выставляю на странице (Page) привязку к языку - русскому.Ставлю галку выводить на главную.

Почему она отображается и на русской версии сайта и на английской? Это баг или я в настройках напутал?

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

------------------------------

p.s. а если "переводом" считается ссылка внизу материала на другой язык?)))

Комментарии

Попробую реанимировать вопрос в своем исполнении, но я с 6-ой кувыркаюсь.

На front-е показывается суммари и английского и русского варианта нода не зависимо от выбранного языка.
По идеи, если вызываем (я на локале) localhost/mysite/ru то первая страница должна быть без английских суммарей.

Где галочку не поставил?

18 февраля 2008 в 1:39

У меня такая же проблема.. На главной странице - и русский и английский текст.. Я нашел как переводить контент и стандартные элементы интерфейса, но так и не понял, как русифицировать остальные вводимые мною элементы (такие как меню, mission, title и т. п.).

18 февраля 2008 в 20:01

Да, мне тоже не удалось добиться нормальной многоязычности от Д6. Надежды на давно заявленную встроенную многоязычную функциональность не оправдались. Непонятно, то ли они будут доводить до ума то, что есть в core, то ли обновлять под Д6 модули Localizer и i18n. А в нынешнем виде Д6 для построения многоязычных сайтов, боюсь, ещё не годится.

19 февраля 2008 в 19:29

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

19 февраля 2008 в 22:26

i18n-HEAD, насколько я понимаю, пока что на альфа-стадии и с неполной функциональностью.
- There are some modules that can't be enabled because they're not yet tagged for Drupal 6. The reason is that they're not yet updated, some of them waiting for other modules on which they depend to be upgraded.

А автор Localizer'а раздумывает, как приспособить этот модуль к Д6:
- Will you port Localizer to Drupal6 ?
- Well, there have been enough requests, I think, to convince me Smile
- The internationalization support of the default installation of Drupal6 is not as comprehensive as I expected
- I am just beginning in these days to dive in the new Drupal 6 features to understand what and how is necessary to do.
I really need to avoid patching core modules files this time.
It seems that the new menu system is more easy to manage for translations, taxonomy not. It seems that the approach should be to duplicate taxonomy trees.
I'm not sure how I could implement the new language fallback support I introduced in Localizer 3.

20 февраля 2008 в 0:12

2Natalie
в принципе, все что мне нужно для мультиязычности в 6-ке есть, но вот косяк с первой страницей все сводит на нет.
Такое впечатление, что при выборке контента на фронт забыли учесть язык.
Были б руки поровнее сам бы полез фиксить.

20 февраля 2008 в 12:32

Возможно, когда будет готов модуль Views для Д6 (и если в него будет заложена поддержка многоязычности), можно будет извратиться с выводом главной страницы через Views с фильтрацией по языку?

21 февраля 2008 в 13:57

Я попробовал i18n 6.x-1.x-dev - проблему первой страницы решает, название сайта и менюшки переводить позволяет, и вообще, похоже, можно уже брать его в качестве нулевого приближения.
Вопрос в том, насколько хорошо он будет работать с Views и CCK.
Если не ошибаюсь, в Д5 он их поддерживал, но не позволял переводить названия полей CCK (если это ещё не пофиксили или не похакали).

22 февраля 2008 в 17:22

Drupal 6.0

Set Language negotiation: Path prefix with language fallback.

Change in :

/includes/language.inc

/**
* Identify language from the Accept-language HTTP header we got.
*/
function language_from_browser() {
// Specified by the user via the browser's Accept Language setting
// Samples: "hu, en-us;q=0.66, en;q=0.33", "hu,en-us;q=0.5"
$browser_langs = array();
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
$browser_accept = explode(",", $_SERVER['HTTP_ACCEPT_LANGUAGE']);
for ($i = 0; $i < count($browser_accept); $i++) {
// The language part is either a code or a code with a quality.
// We cannot do anything with a * code, so it is skipped.
// If the quality is missing, it is assumed to be 1 according to the RFC.
// if (preg_match("!([a-z-]+)(;q=([0-9\\.]+))?!", trim($browser_accept[$i]), $found)) {
if (preg_match("!([a-z]+)(;q=([0-9\\.]+))?!", trim($browser_accept[$i]), $found)) {
// $browser_langs[$found[1]] = (isset($found[3]) ? (float) $found[3] : 1.0);
$browser_langs[]= $found[1];

}
}
}

// Order the codes by quality
//arsort($browser_langs);

// Try to find the first preferred language we have
$languages = language_list('enabled');
// foreach ($browser_langs as $langcode => $q) {
foreach ($browser_langs as $q => $langcode) {
if (isset($languages['1'][$langcode])) {
return $languages['1'][$langcode];
}
}
}

22 февраля 2008 в 19:21

Quote:
Drupal 6.0
Set Language negotiation: Path prefix with language fallback.
Change in :
/includes/language.inc......

Исправил файл как тут было написано, но изменений не произошло.
В Drupal 6.2 это работает?
Или вообще у кого нибуть по этому рецепту заработала нормальная мультиязычность?

3 июня 2008 в 16:57

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

25 февраля 2008 в 18:49

Можно, конечно, всё многоязычие выкрутить через двойное количество полей в CCK и вывод через Views с фильтрацией по полю языка... Но при этом слишком много полей плодить не рекомендуется, поскольку запросы к базе данных могут перестать вписываться в настройки mysql на сервере. Прецеденты бывали.

26 февраля 2008 в 15:09

нет - язык это не поле и тут views не надо, просто двойное количество других полей и все, а текущий язык узнавать функцией

26 февраля 2008 в 15:45

Подскажите нубу, пожалуйста.

Строю двуязычный сайт на 5.7. Включены модули:

  • Locale
  • Internationalization
  • Translation
  • Synchronization

Создаю две ноды /node/4 - англоязычный документ, иду на вкладку перевод, создается нода /node/5
При заходе на /en/node/4 - англоязычный интерфейс и контент, при заходе на /ru/node/5 - все, соответственно, по-русски.

ОК, Language switcher при этом только "переключает" префиксы /ru и /en меняя только интерфейс, но не связывая эти ноды. Т.е. если я нахожусь на /en/node/4 он предлагает перейти к Русской версии, которая по его "мнению" находится по /ru/node/4

URL Alias по этой же причине не удается настроить.

Что посоветуете?

6 марта 2008 в 23:20

to .organic

есть два блока переключений языков: "language switcher" и "translation". ты скорее всего подключил language switcher. у меня проблема решилась после того, как я начал использовать блок translation.

так же об этом описано на http://drupal.org/node/117494

[quote]
Both the localization module and the translation module provide a lnaguage switcher block. One called "language switcher" (from localization i believe) another is called "translations" (from i18n i believe). These names are the names of the blocks in the admin block settings screen. However, when the blocks are displayed in the sidebars they have the same name. This can be confusing. I've had better success with the "translations" block.
[unquote]

12 марта 2008 в 20:29

Задача: перевести заголовок блока переключателя языков. в Д6 из "language switcher" и "translation" есть только "language switcher". Причем, использование
$conf['i18n_variables'] = array(
'Languages'
);
задачи к сожалению не решает.
Как это сделать в Д6?
Спасибо

28 мая 2008 в 11:51

Скажите, пожалуйста, а как с помощью модуля i18n перевести название сайта, чтобы при переключении на английский язык название тоже становилось на английском языке. У меня 5й Друпал и наверное поэтому не переводится... Для меня это серьезная проблема и я не знаю что с этим делать!

19 марта 2008 в 16:37

Надо почитать install.txt, и добавить нужные переменные в конфигурационный файл settings.php.
В данном случае, 'site_name'.

Language dependent variables
============================
The list of variables to be made language dependent must be defined in the config file:

I.e.

$conf['i18n_variables'] = array(
// Site configuration
'site_name',
'site_slogan',
'site_mission',
'site_footer',
'anonymous',
// Node help
'blog_help',
'story_help',
// User configuration
'user_registration_help',
'user_mail_welcome_subject',
'user_mail_welcome_body',
'user_mail_approval_subject',
'user_mail_approval_body',
'user_mail_pass_subject',
'user_mail_pass_body',
// Primary and secondary links
'menu_primary_menu',
'menu_secondary_menu';
// Theme settings. This is an 'all or nothing' for each theme
// This is for 'garland' theme, for other theme it would be 'theme_[themename]_settings'
'theme_garland_settings',

);

These are only some suggested ones, but you can add as many Drupal variables as you want to the array.

20 марта 2008 в 22:37
Аватар пользователя tmp tmp 0

А есть ли возможность привязать мультиязычность еще и к профайлу? Я что то так и не нашел как это сделать. Или будет правильней/удобней для пользователей сделать в одной версии профайла строки для разных языков?
Использую Localizer

18 апреля 2008 в 16:45

а мне кажется что часто создание многоязычного сайта и не нужно - лучше создать несколько разных на разных языках

19 апреля 2008 в 15:46

Вобщем предыдущий вопрос уже не имеет значения Smile
Нормально работающая мультиязычность в Drupal 6 получается с модулем i18n:
http://drupal.org/project/i18n
Легко и просто устанавливается и нормально работает.

4 июня 2008 в 2:26

У меня связка Drupal 6.2 + i18n 6.x-1.0-beta1 (со всеми подмодулями)
1. Контент нормально переводится, отличий от 4.7 и 5 не вижу.
2. Модуль Multilingual taxonomy пришлось отключить т.к. при его работе постоянно сыпятся ошибки (надеюсь вскоре пофиксят)
3. Меню, независимо от указанного языка, показывается всё. Нормально фильтруются только пункты меню, создаваемые автоматически при создании контента с указанием языка. Причём если зайти в админку, эти пункты отмечены как "Для всех языков".
P.S. Многоязыковые поля CCK и профилей пользователя ещё не тестил, но, чувствую, что и тут не без сюрпризов обойдётся. Остаётся надеяться лишь на то что это сюрпризы исключительно беты.

10 июня 2008 в 4:47

Открыл README.txt (если всё испробовано но так ничего и не получилось - читай справку), а там белым по синему:

Language dependent variables
============================
  The list of variables to be made language dependent must be defined in the config file:

  I.e.
 
    $conf['i18n_variables'] = array(
        // Site configuration
        'site_name',
        'site_slogan',
        'site_mission',
        'site_footer',
        'anonymous',
        // Node help
        'blog_help',
        'story_help',
        // User configuration
        'user_registration_help',
        'user_mail_welcome_subject',
        'user_mail_welcome_body',
        'user_mail_approval_subject',
        'user_mail_approval_body',
        'user_mail_pass_subject',
        'user_mail_pass_body',
        // Primary and secondary links
        'menu_primary_menu',
        'menu_secondary_menu';
        // Theme settings. This is an 'all or nothing' for each theme
        // This is for 'garland' theme, for other theme it would be 'theme_[themename]_settings'
                    'theme_garland_settings',
   
    );
   
  These are only some suggested ones, but you can add as many Drupal variables as you want to the array.
   
  You need to redefine these variables for the first time for every language, as previous values are lost and
  they return to defaults -they will be back if you disable i18n-.

Это значит что перевод системных переменных и меню по-старинке делать через конфиг? А смысл тогда было заводить отдельные подмодули?

10 июня 2008 в 5:02

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

21 июля 2011 в 15:27