[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Drupal: языковые настройки и доменное имя
Страницы: 1, 2
sergeiss
Задача такая.

Есть сайт на Друпале (версия 6), пусть он называется http://company.ru. Как перейти на англоязычную версию, тут нет вопросов. Один из вариантов http://company.ru/en и дальше ссылка.

Но вот маркетинг хочет, чтобы английская версия называлась http://company.net, соответствующее доменное имя имеется.

Вопрос: как настроить Друпал так, чтобы он вместо ссылок типа http://company.net/*** использовал ссылки типа http://company.ru/en/***. И чтобы он, зараза, автоматически преобразовывал уже имеющиеся ссылки http://company.ru/en/*** в http://company.net/***?
Или тут как-то придется "велосипедить" самому с htaccess и jQuery, для выполнения всех этих преобразований?

Если это будет слишком гиморная задача, то можно попытаться грамотно объяснить маркетингу, что они "хотят невозможного" smile.gif Как это лучше сделать, если идти по этому пути?

PS. Ничего не говорите плохого про Друпал... Его использование не зависит от моего желания. Работаю с тем, что имеется.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Michael
Сам не сталкивался, но вопрос не новый так что:
1) А в ядре нет?, там где варианты определения языка, вариант url->домен
2) если 1 нет, то надо искать решение среди готовых модулей , например:
https://www.drupal.org/project/domain_locale

_____________
There never was a struggle in the soul of a good man that was not hard
sergeiss
Michael, "вариант 1", к сожалению, не получится. Нет такой возможности.

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

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Michael
Посмотри на странице, тут все языки:
admin/settings/language/overview
, а когда заходишь на конкретный язык, то там есть пункт "Языковый домен":
Цитата
Ссылка, зависящая от языка, с протоколом. При определении языка, установленным в Доменное имя, сайт будет представлен в этом языке при доступе на него с использованием данного домена. Для языка по умолчанию это значение можно не указывать. Это значение должно включать протокол как часть строки. Например: указание «http://example.de» или «http://de.example.com» в качестве домена для немецкого языка будет генерировать ссылки «http://example.de/node» и «http://de.example.com/node», соответственно.

выглядит, как как раз то.

_____________
There never was a struggle in the soul of a good man that was not hard
sergeiss
Нет, не то. Видел я эту хрень smile.gif Тут же написано "Это значение должно включать протокол как часть строки.", а мне не нужно, чтобы 'en' было указано в явном виде.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Michael
Цитата (sergeiss @ 17.11.2014 - 10:01)
Нет, не то. Видел я эту хрень smile.gif Тут же написано "Это значение должно включать протокол как часть строки.", а мне не нужно, чтобы 'en' было указано в явном виде.

под протоколом они имеют ввиду чтобы начиналось с http://

_____________
There never was a struggle in the soul of a good man that was not hard
inpost
sergeiss
Там же есть строчка языка по умолчанию? Я с друпалом не знаком, но костыль написать можно было бы очень просто, в месте, где указывается используемый язык - пишешь строчку проверки домена: если(домен == .net) {язык англ.} или {язык рус.}
П.С. Может быть предыдущие варианты будут рабочие, и тогда мой комментарий можно упустить laugh.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
sergeiss
Цитата (Michael @ 17.11.2014 - 09:56)
если 1 нет, то надо искать решение среди готовых модулей

Вот нашел https://www.drupal.org/project/domain, но меня уже успели нагрузить другой задачей smile.gif А эта пока отодвинулась на задний план.
Потом, ежели что-то полезное получится, то отпишусь в этой теме.

inpost, Друпал - это такая "вещь в себе"... Послал бы его подальше smile.gif Но не от меня зависит. Единственное, что радует, так это то, что не только с Друпалом работаю.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
sergeiss
Сейчас вернулся к этой задаче.

Стандартного решения не нашел, стал "велосипедить".

Сделал вот такую хрень в .htaccess
RewriteCond %{HTTP_HOST} ^(www.)?company.net$
RewriteRule ^(.*)?$ http://company.ru/en/$1 [QSA]

Идея такая, что если в адресе есть company.net, то заменить эту часть на company.ru/en. И заменяется... Вот только как бы сделать, чтобы эта зараза в адресной строке не заменялась???
Я сколько работаю с htaccess, так его до конца и не понял.

Буду весьма признателен за помощь!
Впрочем, если этого не получится, то будем по-другому делать :)

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
а так?
RewriteCond %{HTTP_HOST} ^(www.)?company.net$
RewriteRule ^(.*)?$ en/$1 [QSA,L]
sergeiss
Так оно напишет company.net/en - это совсем не то, что мне нужно. Мне нужно не только подкаталог добавить, но и домен сменить.

Там еще есть от Друпала довесок, с которым должны быть согласованы все изменения. Я свой код ставил перед этим
  RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [QSA]


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
Цитата (sergeiss @ 24.11.2014 - 14:11)
Так оно напишет company.net/en

это критично?
Цитата (sergeiss @ 24.11.2014 - 14:11)
Мне нужно не только подкаталог добавить, но и домен сменить.

тогда реврайты тебе не помогут.
А то что Майкл советовал не помогло?

PS с друпалом не знаком
sergeiss
Цитата (killer8080 @ 24.11.2014 - 15:18)
это критично?

Так задача в том и состоит, чтобы для англоязычной версии использовать *.net как синоним *.ru/en

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
Цитата (sergeiss @ 24.11.2014 - 14:53)
Так задача в том и состоит, чтобы для англоязычной версии использовать *.net как синоним *.ru/en

ну это понятно, я просто предположил, что друпал для *.net/en и *.ru/en отдаст один и тот же контент, или для него важно какой домен в HTTP_HOST и SERVER_NAME?
sergeiss
Цитата (killer8080 @ 24.11.2014 - 16:26)
ну это понятно, я просто предположил, что друпал для *.net/en и *.ru/en отдаст один и тот же контент

Ты абсолютно правильно предположил. В данном случае будет именно так. Но дело в том, что маркетинг хочет четко разделить эти домены, чтобы не было никаких /en/ или /ru/.

Придется немного нарушить структуру Друпала smile.gif
Задача так решается в итоге (правда, с нарушением идеологии работы Друпала)
1. В файле index.php, в самом начале, анализирую имя домена. Если оно .net, то добавляю к нужному ГЕТ-параметру довесок '/en/'. Система думает, что это от юзера так пришло. А в адресной строке видим именно .net
2. С помощью jQuery заменяю все ссылки на загруженных страницах.

Колхоз, конечно... Но я не могу тратить время на то, чтобы разобраться, как сделать это совсем правильно с точки зрения Друпала.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.