![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
rodendron |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 152 Регистрация: 22.3.2005 Репутация: нет Всего: нет |
Добрый день,
хотел получить консультацию. Ситуация следующая. Имеется сайт на английском языке. Хотелось бы его перевести еще и на немецкий. Мною был сделан файл языка, который теперь в каждой страничке подтягивается как инклуд. Теперь как его правильно подключить? Я знаю как сделать точно: на всех страницах сайта, где имеются ссылки, дописать еще и "?lang=$lang", это помимо "?page=$i" и т.д. НО, это технически сложно, потому что на сайте имеются также формы регистрации, и придется в каждой форме вставлять "<input type=hidden name=lang value=$lang>". Думал решить проблему с помощью сессий, но чего-то не понял как ее переприсваивать - ее можно только разрушить и создать. Да и сессии по идее тоже не выход. Как вариант, еще обдумывал создание поддоменов. То есть, http://de.mydomain.com, но если переводить сайт на множество языков, то необходимо создавать и множество доменом. Но это технически неразрешимо - количество возмжных саб-доменов меньше, чем требования по количеству языков на сайте в будущем. Посовейтуйте пожалуйста возможное решение. Заранее благодарен. |
|||
|
||||
Dave |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 17.6.2004 Репутация: -1 Всего: 1 |
Делаешь какой то язык по который будет использоватся по умолчанию, заносишь его идентификатор в сессию, а если язык указан явно, через GET
то перезаписываешь идентификатор языка в сессии на новый, просто присваиваешь новое значение сессионной переменной в которой хранится идентификатор языка. |
|||
|
||||
rodendron |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 152 Регистрация: 22.3.2005 Репутация: нет Всего: нет |
Dave,
Как будет производиться смена языка? Чтобы я мог его сменить, при этом остаться на той же странце, на которой и находился. |
|||
|
||||
Dave |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 17.6.2004 Репутация: -1 Всего: 1 |
Делай редирект на ту же страницу с параметром языка. То есть ссылка переключения языков не должна быть статической а динамической, подставляй в нее полный текущий урл добавляя в конце переменную с идентификатором языка. |
|||
|
||||
rodendron |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 152 Регистрация: 22.3.2005 Репутация: нет Всего: нет |
Если не сложно, скинь пожалуйста какой-нибудь простенький пример. Заранее благодарен. |
|||
|
||||
z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 5 Всего: 102 |
а может проще через mod_rewrite сделать?
-------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
rodendron,
Вот простенький пример который ты просил. Второй блок - if, а не elseif, т.к. в случае если в ГЕТ был язык, но этот язык не валидный мы должны проверить текущий язык и так или иначе поставить какой-нибудь язык. |
|||
|
||||
rodendron |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 152 Регистрация: 22.3.2005 Репутация: нет Всего: нет |
Kefir,
Спасибки. По логике так и должно бвть. Но у меня чего-то не работает. Добавил еще в конец твоего кода
Правда все равно не помогает. Только помле кода session_register() у меня создалась переменная $lang. До этого и она была пуста. Может я чего не так делаю? Добавлено @ 21:12
$lang тут пустой... |
||||
|
|||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
название переменной, в которой хранится язык - $_SESSION['lang']
![]()
И ещё - насколько я помню (не ручаюсь) - разхработчики ПХП писали о нежелательности использования session_register и $_SESSION в одном и том же коде. |
|||
|
||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: 3 Всего: 4 |
Прогонять сайт через какой-нибудь он-лайн переводчик, далее загружать все с помощью fopen и выводить. ИМХО. А вообще сделать несоклько языковых файлов, где все слова определены константами, в COOKIE и БД хранить инфу о языке юзера.
|
|||
|
||||
Kefir |
|
||||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
CyClon, вопрос не в том как организовать сам перевод, а как организовать хранение переменной языка.
хранить такую инфу в печеньках - можно, но на мой взгляд неудобно, хотя плюсы в этом, конечно есть.
![]() |
||||
|
|||||
rodendron |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 152 Регистрация: 22.3.2005 Репутация: нет Всего: нет |
Kefir,
Все равно пусто ![]()
Проверил, что последний if срабатывает, но вот присвоения значения не происходит. Может ли что-то быть с версией php? У менян а работе на денвере вроде что-то пытается работать. А на сайте на valehost почему-то ничего не происходит, да и к тому же еще и ссылка потом становиться некрасивой и кончается на PHPSESID. Я конечно понимаю, что надо как-то обозначить uid, но не так же страшно и коряво... |
|||
|
||||
Kefir |
|
||||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 13 Всего: 87 |
rodendron, посмотри на две строки:
Тебе ничего странным не кажется? ![]() |
||||
|
|||||
rodendron |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 152 Регистрация: 22.3.2005 Репутация: нет Всего: нет |
Kefir,
Уф ну и нахимичил я там, пока тестировал. Спасибки огромное! Исправил. Все стало выводиться. Добавлено @ 00:51 Kefir, Можно еще несколько вопросов параллельно? Я когда писал диплом - вылавливал данные из форм так: $lang = $_GET['lang'] или $lang = $_POST['lang'] Сечас столкнулся с тем, что можно это не определять. То есть просто использовать в программе $lang и он сам его определяет. Это с чем может быть связано? Заранее благодарен. |
|||
|
||||
rodendron |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 152 Регистрация: 22.3.2005 Репутация: нет Всего: нет |
А второй вопрос - от "...?PHPSESSID=0dd036d784580773d14be950db2b4401" никак нельзя избавиться?
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |