Deutsch

Двухязычные версии

243  
Zahar завсегдатай01.05.06 21:02
Zahar
NEW 01.05.06 21:02 
Всем привет,
ищу совета по следующему вопросу:
я состряпал немецкую версию из имеющихся скриптов.
см. http://www.zahar.de/bigmir/news/index.php
Теперь хочу перевести скрипты для русской версии.
см. http://zahar.de/zahar/gaestebuch/index.php
Может ли кто то подходящий концепт посоветовать?
Как сделать так, чтобы 20 раз не переделывать?
В настоящий момент использую 2 базы данных,
пока ковыряюсь с переводом, но окончательное
решения пока не принял.
P.S. в качастве благодарности за ответы дарю баннер "Chat" - нейтральный
#1 
  validol коренной житель02.05.06 10:38
NEW 02.05.06 10:38 
в ответ Zahar 01.05.06 21:02, Последний раз изменено 02.05.06 10:46 (validol)
Я свои двухязычные делаю так..
1. Вначале, при первом заходе, юзера определяю язык его броузера [HTTP_ACCEPT_LANGUAGE], ну и в зависимости от него выдаю инфу на том или ином языке
2. В дальнейшем, язык передаю гетом. Это удобнее, если один юзер кинет ссылку другому, то язык сайта будет тоже передан
3. Все языковые настройки храню в присоединяемых файлах
/language/ru/lang.php {
$lang['home']="Главная";
$lang['kontakt]="Контакт;
ИТД ИТП "}
/language/de/lang.php {
$lang['home']="Home";
$lang['kontakt]="Kontakt;
ИТД ИТП "}
Картинки в менюшках я не использовал ни разу, но если когда нибудь и буду, то в этих же языковых директориях буду хранить картинки на немецком и русском, украинском... языках
4. использую одну базу, но в названиях полей базы использую языковый префих.. к примеру info_ru, info_de. и в зависимости от языка тяну ту или иную инфу
Ну и сайт делаю конечно же на шаблонах.. юзаю smarty
И все скрипты везде одинаковые, кроме языковых файлов конечно. И поэтому очень легко подвесить любой новый язык..
#2 
iL_ местный житель10.05.06 09:07
iL_
10.05.06 09:07 
в ответ validol 02.05.06 10:38
поддержу:
1. все статические текстики и текстовые обьекты удобно хранить в массиве $ланг[ру/де][кей]=валуе
я их прямо в базе в таблицу сую а потом по надобности нужный язык выбираю
2. активный язык передавать гетом разумно, я раньше использовал для етого переменную сессии, но оказалось что в русской щинде например куки по умолчению отключены - жопа !!
другой вариант - сделать субдомены типа "ру.домен.де" / "ен.домен.де" - и при переключении языка туда перебрасывать
я мятущийся тунец в океане беспокойства... достигну ли нерестовыx вoд?-----Главное, ребята, херцем не стареть!)
#3 
Anton Gross прохожий10.05.06 19:38
Anton Gross
NEW 10.05.06 19:38 
в ответ Zahar 01.05.06 21:02
Много вариантов есть.
С хранением текста в файлах, в переменных √ хорошее.
Как вариант, переводы строк хранить в БД, вызывать строки через функцию на пример t(▒some text▓).
Пользователь заходит, язык определяется автоматически, либо он сам его выбирает.
Функция смотрит, если язык по умолчанию, на пример английский, выводит как есть, если нет, берет перевод из базы.
Потом можно сделать web интерфейс и через него переводить все строки.
Контент хранить в двух таблицах на пример: content (id | translation) и translation (id | title | body | language) в зависимости от языка выводить перевод из таблицы translation. Это, на мой взгляд, самое хорошее решение.
#4