переход сайта на другой язык

morris

Guest
переход сайта на другой язык

Не подскажете, как лучше перевести уже написанный сайт на английйский, вернее сделать его английскую часть.
Где про это можно почитать? :confused:
Знаю, что нужно делать это на одной странице сразу вписывая код на двух языках, а потом, в зависимости от выбора пользователя, показывать тот или иной код...
На сколько это сложно сделать? И на сколько сложно переделать админскую часть к такому сайту? :rolleyes:
Спасибо заранее за ответ... :)
 

lucika

Новичок
обычно это делают через массивы...
возьми любой форум их сейчас много с исходниками и там посмотри.
а вообщем это делается так:
есть файл с языками:
например:
lang-ru.php
lang-en.php
в каждом оперелен один и тотже массив например
$mylang:
------ начало lang-ru.php ------
$mylang['hello']='Привет';
.....
------- конец lang-ru.php -------

------ начало lang-en.php ------
$mylang['hello']='Hello';
.....
------- конец lang-en.php -------

в скрипте уже подключаешь файл с необходимым языком и используешь:
пример:

echo $mylang['hello'].'уважаемый';

PS: это один из способов, по моим наблюдениям самый распространенный.
 

stellar

Guest
Поганый способ. Используется по бедности ума. Смешение кода PHP и текста локализации разрушает мозг HTML-верстальщика.

USE шаблоны. Они рулят.
Технологий шаблонизации - море.
 

crocodile2u

http://vbolshov.org.ru
1) Не пойму, каким образом связаны шаблоны и хранение строк на разных языках в ассоциативных массивах.

2) Насколько я понимаю, изначально вопрос был не столько о том, как хранить эти самые строки, сколько о том, как хранить контент на разных языках. Или я не прав?
 

stellar

Guest
Автор оригинала: crocodile2u
1) Не пойму, каким образом связаны шаблоны и хранение строк на разных языках в ассоциативных массивах.
Тем, что HTML-верстальщик должен верстать, а программист - писать программы, а не наоборот. В небольший проектах можно позволить себе записхать все в хеши.
Большие проекты требуют невмешательства верстальщиков в программный код. Потому как это:
1) разделение труда между отделом девелопмента и дизайнерами-верстальщиками
2) безопасность и стабильность программного кода
3) простота внесения изменений

Автор оригинала: crocodile2u
2) Насколько я понимаю, изначально вопрос был не столько о том, как хранить эти самые строки, сколько о том, как хранить контент на разных языках. Или я не прав?
Использовать шаблонизаторы, коих море. XSLT, например.
 

crocodile2u

http://vbolshov.org.ru
Да при чем тут шаблоны и XSLT? Как они вообще связаны с задачей (которую автор, кстати, не удосужился по-человечески поставить) ???
 

stellar

Guest
Re: переход сайта на другой язык

Автор оригинала: crocodile2u
Да при чем тут шаблоны и XSLT? Как они вообще связаны с задачей (которую автор, кстати, не удосужился по-человечески поставить) ???
Спокойнее, спокойнее. Примите валерьянку.


Автор оригинала: morris
Не подскажете, как лучше перевести уже написанный сайт на английйский, вернее сделать его английскую часть.
Знаю, что нужно делать это на одной странице сразу вписывая код на двух языках, а потом, в зависимости от выбора пользователя, показывать тот или иной код...
Для непонимающих:
Делаем N (N - количество языков) шаблонов страницы. По одной на язык. Выкладываем все это добро, к примеру, в templates/ЯЗЫК (templates/ru, templates/en ...).
В зависимости о того, какая версия сайта используется пишем нечто вроде include('templates/' . $lang . '/filename.inc');

Это если делать по-простому.
Если хочется "по-взрослому" - то ничто не мешает воспользоваться готовыми движками шаблонов. В качестве примера был приведен XSLT. Any questions, crocodile2u?
 

lucika

Новичок
Прочитав еще раз первоначальный вопрос, я не увидел нигде упоминания, что разговор идет о контенте.
Отсюда сделан вывод о том что речь едет о постоянных элементах типа пунктов меню, подписях и прочего добра

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

А кто вообще сказал, что данный способ нельзя использовать одновременно с шаблонами?
 

stellar

Guest
Автор оригинала: lucika
А кто вообще сказал, что данный способ нельзя использовать одновременно с шаблонами?
Это неудобно потому, что будет два места, где надо править локализацию сайта. Зачем лишний геморрой и потенциальная возможность забыть о правке?
 

crocodile2u

http://vbolshov.org.ru
2 stellar:
"Делаем N (N - количество языков) шаблонов страницы. По одной на язык."...

Имхо, не надо навязывать другим свое решение как едиственно верное.

Лично я храню себе разные строки на разных языках в ini-файлах, и не жужжу. Мне это удобно. А шаблон на разные языки можно и один использовать (и, по-моему, нужно, в том случае, если это возможно вообще).

Кроме того, я так и не увидел в твоем ответе НИЧЕГО, что так или иначе связывало бы способы хранения информации и способы ее отображения.
 

Gas

может по одной?
stellar
Не думаю что проблеммами multilingual должен _обязательно_ заниматься шаблонизатор, равно как и кешированием и прочими фенечками. Шаблону данные уже должны приходить в нужном языке или он сам должен получать их из внешнего источника, который сам "знает" в каком виде отдавать. И шаблонизатор остаётся не при делах.
 

stellar

Guest
Автор оригинала: Gas
stellar
Не думаю что проблеммами multilingual должен _обязательно_ заниматься шаблонизатор, равно как и кешированием и прочими фенечками. Шаблону данные уже должны приходить в нужном языке или он сам должен получать их из внешнего источника, который сам "знает" в каком виде отдавать. И шаблонизатор остаётся не при делах.
Супер!
И править сайт будем минимум в двух местах; также как это делается в кривом PHPbb? Зачем?

Тем более если учесть, что почти никогда (для более-менее сложных проектов, во всяком случае) не получается сделать идентичный HTML: к примеру, картинки разного размера или разное представление данных (дата у америкосов выводится по-другому).

ИМХО, надо не разделять локализацию по куче сущностей, а наоборот - стараться держать все в одной. Если это шаблон страницы, значит шаблон. Если это просто хэш - значит, хэш.
А не куча файлов по куче каталогов.
 

Gas

может по одной?
И править сайт будем минимум в двух местах
в каких?

надо не разделять локализацию по куче сущностей, а наоборот - стараться держать все в одной.
Согласен, ключевые моменты - это подключение шаблона в зависимости от языка (если для разных языков очень отличаются представления). И взять значение "фразы" из хеш массива.
Как первое так и второе отлично можно сделать без xslt.

(дата у америкосов выводится по-другому)
как эту проблемму помогает решить тот шаблонизатор (xslt), который ты имеешь ввиду?
 

stellar

Guest
Автор оригинала: Gas
как эту проблемму помогает решить тот шаблонизатор (xslt), который ты имеешь ввиду?
Очевидно, элементарно. Смотри спецификации XSLT.
 

kvf77

Red Devil
Вот мой перевод статьи, которая описывает один из способов организации многоязычных приложений. На мой взгляд, очень оптимальный способ:
http://php.russofile.ru/Using_GetText.html

-~{}~ 15.02.05 12:38:

Автор оригинала: stellar
Супер!
И править сайт будем минимум в двух местах; также как это делается в кривом PHPbb? Зачем?

Тем более если учесть, что почти никогда (для более-менее сложных проектов, во всяком случае) не получается сделать идентичный HTML: к примеру, картинки разного размера или разное представление данных (дата у америкосов выводится по-другому).

ИМХО, надо не разделять локализацию по куче сущностей, а наоборот - стараться держать все в одной. Если это шаблон страницы, значит шаблон. Если это просто хэш - значит, хэш.
А не куча файлов по куче каталогов.
То есть ты предлагаешь наплодить кучу шаблонов для разных языков? А потом когда у тебя появится новая строка текста ты будешь бегать как маниак по всем шаблонам всех языков и вставлять ее? Флаг в руки - зачем это нужно? И не понимаю, причем тут дата или размер картинок? Как все это связано с локализацией?
 

stellar

Guest
То есть ты предлагаешь наплодить кучу шаблонов для разных языков?
Да. Для тех частей, которые отличаются в разной локализации.

А потом когда у тебя появится новая строка текста ты будешь бегать как маниак по всем шаблонам всех языков и вставлять ее?
Нет, я все одинаковые вещи сложу в один подключаемый include файл шаблона. В чем проблема-то?

И не понимаю, причем тут дата или размер картинок? Как все это связано с локализацией?
Э-ле-мен-тар-но, Ватсон!
Например, длина картинки со словом "Welcome!" != длине картинки с лозунгом "Добро Пожаловать!".
Европейская репрезентация даты 11/9/2002 != американской 9/11/2002.
 

kvf77

Red Devil
Автор оригинала: stellar
Э-ле-мен-тар-но, Ватсон!
Например, длина картинки со словом "Welcome!" != длине картинки с лозунгом "Добро Пожаловать!".
Европейская репрезентация даты 11/9/2002 != американской 9/11/2002.
Я не понимаю, каким образом это относится к локализации? Если у тебя дизайн настолько чуствителен к длинне текстовой строки, то конечно - но это врядли относится к локализации.
 

Gas

может по одной?
Европейская репрезентация даты 11/9/2002 != американской 9/11/2002
таких вещей море, то же представление чисел - у америкосов запятыми отделяются тысячи а точкой дробь у нас наоборот.
Так приведи пример как это можно решить средствами xslt, интересно. Видать многое не дооцениваю.
 

stellar

Guest
Автор оригинала: kvf77
Я не понимаю, каким образом это относится к локализации? Если у тебя дизайн настолько чуствителен к длинне текстовой строки, то конечно - но это врядли относится к локализации.
А у тебя дизайн, очевидно, только текстовый? Или в разной локализации ВСЕ графические элементы имеют одинаковый размер?
Ну, значит, тебе повезло.
 
Сверху