Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > Глобализация сайта.


Автор: t77 30.12.2008, 11:23
Уважаемые гуру, интересует, как грамотно делается глобализация сайта ?
Флажки стран в верхней части экрана и при нажатии на один из них меняется весь интерфейс сайта. Как это делается ?


Автор: NDenis 30.12.2008, 13:42
Ну фактически это другой сайт, который физически может располагаться или на отдельном поддомене, или в отдельной директории на сервере. Некоторые CMS позволяют создавать многоязычные сайты.

Автор: bars80080 30.12.2008, 14:41
или один и тот же сайт, но с продуманной системой наполнения контентом. т.е. дубликаты цельных страниц (имеется ввиду подгружаемый контент) и сменные файлы с наборами всех слов и фраз на отдельном языке (имеется ввиду пункты меню, надписи кнопок, прочие элементики). последние парсятся и загоняются в подготовленные шаблоны

примерно так:

Код

$lang = $_SESSION['lang']; // выбор языка

$words = get_dictionary($path.'/dictionary/'.$lang.'.txt');  // подгружаем словарь

$temp = get_template($path.'/template/'.$menu);  // подгружаем шаблон

$changed = array('{TITLE}', '{BUT1}');  // массив заменяемых слов
$new = array($words[5], $words[6]);  // массив на что заменить

$res = str_replace($changed, $new, $temp);  // замена

echo $res;  // вывести готовую разметку
где $temp что-то в таком духе:

Код

<html><head>
<title>{TITLE}</title>
</head>
<body>
<input type="button" value="{BUT1}" />


в общем, вперёд в изучение серверных языков

Автор: t77 30.12.2008, 14:42
А более модулярное решение есть?
Можно ли как-нибудь сохранять текст на нескольких языках и в зависимости от выбора пользователя всавлять необходимый.
Например в навигационом меню текст сылки - КОНТАКТЫ сохраняется как
en - CONTACTS
rus- КОНТАКТЫ
Я имею ввиду что то вроде Resex файлов в Dot.net...
Можно ли сделать что то подобное средствами JavaScript, HTML, CSS, XML, XSL ?

Добавлено через 5 минут и 53 секунды
bars80080, мы с тобой опубликовали свои ответы в разницу с минуту.
Тоесть я не видев твоего ответа, опубликовал свой.

Добавлено через 10 минут и 32 секунды
Тоесть, как я понял, без серверного языка не обойтись ?

Автор: bars80080 30.12.2008, 15:27
не, ну можно конечно перенести логику на javascript, но прямо скажем смысла никакого, а перегруз данными очевиден. да и в части случаев не будет работать

Автор: t77 30.12.2008, 23:11
PHP не знаю smile 
Есть ли еще варианты как сделать глобализацию ?
или придется учить PHP...

Автор: bars80080 31.12.2008, 01:31
можно ещё выучить asp или java или ещё что загруженней. серверные языки для того и были созданы, чтобы в том месте где приходилось делать много одинаковых страниц, можно было бы обойтись одним генерирующим скриптом

а почему бы не выучить?

Автор: ksnk 31.12.2008, 11:07
t77, Основная. imho, причина, по которой разноязыкие сайты  это фактически разные сайты - в том, что фразы и их переводы занимают разное количество букв. в некоторых случаях дизайн может конкретно "уползти". Его приходится править конкретно под язык. Соответственно, свои комплекты шаблонов, свои комплекты рисунков с надписями, свои комплекты флешек...

Добавлено через 6 минут и 11 секунд
Ну, а сделать "глобализацию" на JavaScript - просто smile
любой контент, который нуждается в "глобализации" на странице снабжается дополнительным атрибутом "lang_id". На сервере лежит xml файл с описанием этих самых lang_id и соответствующих им фраз на другом языке. при загрузке страницы одновременно вычисляется предпочитаемый язык по установленной куке. После чего для всех элементов с установленыь lang_id меняем контент...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)