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

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

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

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

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

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

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

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

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

Комментарии

Аватар пользователя GROL GROL 18 февраля 2008 в 1:39

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

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

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

Аватар пользователя lamer lamer (не проверено) 18 февраля 2008 в 20:01

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

Аватар пользователя gn@drupal.org gn@drupal.org 19 февраля 2008 в 19:29

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

Аватар пользователя Natalie Natalie 19 февраля 2008 в 22:26

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

Аватар пользователя gn@drupal.org gn@drupal.org 20 февраля 2008 в 0:12

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.

Аватар пользователя GROL GROL 20 февраля 2008 в 12:32

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

Аватар пользователя gn@drupal.org gn@drupal.org 21 февраля 2008 в 13:57

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

Аватар пользователя gn@drupal.org gn@drupal.org 22 февраля 2008 в 17:22

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

Аватар пользователя Гость Гость (не проверено) 22 февраля 2008 в 19:21

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];
}
}
}

Аватар пользователя CyberMax CyberMax 3 июня 2008 в 16:57

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

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

Аватар пользователя kiev1 kiev1 25 февраля 2008 в 18:49

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

Аватар пользователя gn@drupal.org gn@drupal.org 26 февраля 2008 в 15:09

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

Аватар пользователя kiev1 kiev1 26 февраля 2008 в 15:45

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

Аватар пользователя .organic .organic 6 марта 2008 в 23:20

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

Строю двуязычный сайт на 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 по этой же причине не удается настроить.

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

Аватар пользователя Гость Гость (не проверено) 12 марта 2008 в 20:29

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]

Аватар пользователя sitestyler.net sitestyler.net 28 мая 2008 в 11:51

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

Аватар пользователя Elodia Elodia 19 марта 2008 в 16:37

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

Аватар пользователя gn@drupal.org gn@drupal.org 20 марта 2008 в 22: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.

Аватар пользователя tmp tmp 18 апреля 2008 в 16:45

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

Аватар пользователя kiev1 kiev1 19 апреля 2008 в 15:46

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

Аватар пользователя CyberMax CyberMax 4 июня 2008 в 2:26

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

Аватар пользователя PC_M@niac PC_M@niac 10 июня 2008 в 4:47

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

Аватар пользователя PC_M@niac PC_M@niac 10 июня 2008 в 5:02

Открыл 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-.

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

Аватар пользователя ZoZo4kin ZoZo4kin 21 июля 2011 в 15:27

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