Как сделать правильно сайт многоязычным

_Dizerd_
На сайте с 21.12.2011
Offline
76
1504

Добрый день.

Подскажите, как сделать правильно сайт многоязычным? лично у меня сейчас в голове 1 вариант это сделать папку /ru/ и /en/ в обоих скопировать скрипт сайта, как такой вариант? и как вообще правильно сделать такой вариант чтобы было что то типа: http://site.com/ru/ , http://site.com/en/

Заранее благодарю.

SeVlad
На сайте с 03.11.2008
Offline
1609
#1
_Dizerd_:
в обоих скопировать скрипт сайта

.. и обслуживать 2 отдельных сайта..

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

_Dizerd_:
сделать папку /ru/ и /en/

Достаточно одной. Основной язык в корне, а доп. - в подкаталогах.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
Y
На сайте с 22.01.2008
Offline
137
#2

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

например, как-нибудь так:

$locale['ru'][0] = 'Добро пожаловать!';

$locale['en'][0] = 'Welcome!';
RM
На сайте с 21.06.2011
Offline
77
#3

Нужно делать так: взять систему управления и все тексты перевести в файлы локализации. Затем при первом запросе высчитывать язык пользователя по юзерагенту/ip адресу и устанавливать сессию или куки, определяющие язык. Потом по этим данным при выдаче сайта подменять файл локализации. Это на словах кажется сложно, но на самом деле - это не более 10 строк кода.

_Dizerd_
На сайте с 21.12.2011
Offline
76
#4
RoMaN444Ik:
Нужно делать так: взять систему управления и все тексты перевести в файлы локализации. Затем при первом запросе высчитывать язык пользователя по юзерагенту/ip адресу и устанавливать сессию или куки, определяющие язык. Потом по этим данным при выдаче сайта подменять файл локализации. Это на словах кажется сложно, но на самом деле - это не более 10 строк кода.

Знаю, уже делал так для одного скрипта. Просто думал, может есть еще проще вариант.. Особенно когда сайт не маленький, где много текстов больших. Слышал что-то про bing translate API..

n0name
На сайте с 22.12.2006
Offline
54
#5
_Dizerd_:
Знаю, уже делал так для одного скрипта. Просто думал, может есть еще проще вариант.. Особенно когда сайт не маленький, где много текстов больших. Слышал что-то про bing translate API..

Хуже отсутствия перевода может быть только автоматический перевод. Так что, пожалуйста, не надо Bing Translate API использовать :)

Сервис сравнения цена на VPS (http://vpska.com/)
[Удален]
#6
_Dizerd_:
Подскажите, как сделать правильно сайт многоязычным?

правильно - это не только перевод, но и адаптация текста под мозги читающего

сделать папку /ru/ и /en/ - вообще плохая идея

SK
На сайте с 06.02.2007
Offline
51
#7

Я бы сделал на доменах третьего уровня. Например, en.site.com и ru.site.com. Если поисковик наложит санкции на один поддомен - второй, скорее всего, не пострадает. А в варианте с папками может из выдачи сразу всё вылететь.

По поводу файлов локализации - правильно подсказали. Так и надо делать.

Как только пользователь выберет нужный язык - прописать его значение в куку и сессию и подгрузить соответствующий lang-файл.

BIRTH : Completed successfully. Exit code 0. LIFE : [||||||..............] 37% done. DEATH : Awaiting in system queue...
[Удален]
#8
SkyKiller:
Я бы сделал на доменах третьего уровня

многие так делают, но это приемлемо только для монстров

плодить субдомены такого формата - смысла нет совсем - токо лишний геммор

_Dizerd_
На сайте с 21.12.2011
Offline
76
#9

В общем, я как понял самый лучший вариант локализация. Сделаю чтобы язык можно было менять через переменную &lang=ru(en). Вот тогда немного другой вопрос.. как лучше. делать 2 файла en.lang / ru.lang в которых записаны текста сайтов или хранить все текста в БД сделать просто в таблице 2 варианта.

V
На сайте с 05.01.2011
Offline
23
#10
_Dizerd_:
В общем, я как понял самый лучший вариант локализация. Сделаю чтобы язык можно было менять через переменную &lang=ru(en). Вот тогда немного другой вопрос.. как лучше. делать 2 файла en.lang / ru.lang в которых записаны текста сайтов или хранить все текста в БД сделать просто в таблице 2 варианта.

если хранить в БД , то как вы предполагаете его использовать не делать же триста запросов для вывода странички ?

как если по мне если тексты не такие уж огромные хранить как переменные в ленг файлах

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий