[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Двуязычность
SunSet
Интерисует вариант управления языком для сайта на основе сессии (+куки). При выборе пользователем нужный язык, делается метка в сессию, записывается кука и на основе этого уже все работает. Интерисует вот что: на сколько приемлим вариант, когда несколько языков будут обьеденены в одном и том же файле, то есть чтоб не создавать папки "ру", "анг", "еще какойто", и в каждом свой индекс на выбранном языке, а в одном файле делать проверку - смотря какой язык выбран, такой кусок и отображать на нужным языке. То есть примерно так:
index.php
PHP
if ($_SESSION["lang"]=="ru"){контент для русского варианта}
if (
$_SESSION["lang"]=="eng"){контент для английского варианта}.

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



Спустя 40 минут, 40 секунд (28.10.2009 - 11:39) glock18 написал(а):
Дупликаты - вариант лучше.

Твой вариант, вероятно, примлем, если объем словарей не слишком большой. Учти еще, что иногда, достаточно редко, требуется использовать при одной загрузке более одного языка.

Спустя 1 час, 13 минут, 41 секунда (28.10.2009 - 12:53) SunSet написал(а):
glock18
То есть "более одного языка"?
Я так прикидываю, что страничка на одном языке может занимать, допустим, строк 200-400. Но на сколько знаю, PHP не тратит ресурсы на "чтение" тех ИФов, которые по условию не подходят, то есть ненужная часть (невыбранный язык) пропускается.
Единственный минус вижу что это лишние 66% кода. Но и преимущества есть - уменьшается вероятность чтото пропустить когда все в одном месте, функции все рядом, проверки общие (типа if (isset($_GET['any'])) $any = $_GET['any']wink.gif

И про кодировку хочу уточнить - вроде вин-1251 держит англ, рус и укр языки, и утф-8 вроде нет нужды использовать. Так ведь?

Спустя 40 минут, 27 секунд (28.10.2009 - 13:34) glock18 написал(а):
Цитата
Но на сколько знаю, PHP не тратит ресурсы на "чтение" тех ИФов,

неверно. php читает весь файл, а уже память он, естественно, не будет выделять под то, что не надо.

Цитата
И про кодировку хочу уточнить - вроде вин-1251 держит англ, рус и укр языки, и утф-8 вроде нет нужды использовать. Так ведь?

нуу, я эт не знаю. советую погуглить на всякий случай по этому поводу.

Цитата
То есть "более одного языка"?

Индифферентный (безразличный в переводе с английского indifferent). Это простой вариант.

Бывает, ну скажем... мультиязычный блог (или блок новостей). Каждый entry может быть написан на произвольном языке, вот и получаешь потецниально много языков на одной странице.

Спустя 2 часа, 46 минут, 35 секунд (28.10.2009 - 16:20) SunSet написал(а):
Цитата (glock18 @ 28.10.2009 - 10:34)
Бывает, ну скажем... мультиязычный блог (или блок новостей).

Думаю, что в базу буду все кучей добавлять, на каком бы языке не было написано (если это комментарий, например). На ютубе так делают. А пользователь уже будет сам интерфейс менять под свои нужды.

Цитата (glock18 @ 28.10.2009 - 10:34)
php читает весь файл

Читает, но не исполняет же?

Спустя 6 минут, 3 секунды (28.10.2009 - 16:26) glock18 написал(а):
Цитата
Читает, но не исполняет же?

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

Я дроблю еще сильнее:
1. по языкам.
2. по контроллерам + один общий.

то есть у меня еще папочка с языком содержит несколько файлов. а ты все в один хочешь слить smile.gif зачем ?

Спустя 4 минуты, 26 секунд (28.10.2009 - 16:31) SunSet написал(а):
glock18
Не очень люблю когда много файлов - легко запутаться.
Рассматривал версию с созданием папок типа ru и eng, но тогда в урл добавляется адресс этой папки. А так ничего - сессия записалась и урл чистый. Да и когда с папками - это же несколько одинаковых клонов сайта получается, только на разных языках.

Спустя 6 минут, 20 секунд (28.10.2009 - 16:37) glock18 написал(а):
Цитата
Да и когда с папками - это же несколько одинаковых клонов сайта получается, только на разных языках.


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

Спустя 2 минуты, 17 секунд (28.10.2009 - 16:39) Gabriel написал(а):
glock18
SunSet
интересно а разница в индексадии будеть

Спустя 2 минуты, 4 секунды (28.10.2009 - 16:41) SunSet написал(а):
glock18
Ну, а коим образом организовано тогда? По большому счету - всего по три (сколько и языков) штуки. Когда меняешь чтото в "русском" варианте файла - то же самое прийдется делать и в других.

Спустя 54 минуты, 4 секунды (28.10.2009 - 17:35) glock18 написал(а):
На дак файл же, а не сайт целый. И то, что ты будешь хранить все в одном месте не избавит тебя от необходимости обновлять все языки. Пусть они и лежат в одном файле. Удобней это или нет, каждому самому решать.

Спустя 6 минут, 45 секунд (28.10.2009 - 17:42) SunSet написал(а):
glock18
Спасибо за консультацию. Будем думать.

Спустя 5 часов, 47 минут, 6 секунд (28.10.2009 - 23:29) sevalery написал(а):
Привет SunSet !!! Неожиданно набрел на эту тему.
Мне близка идея конструкции, когда несколько языков (два) будут объединены в одном и том же файле! Идея построить такую конструкцию возникла давно. Но недостаточно опыта в php. Я пытался найти единомышленников на разных форумах по этой теме - обращался к Е.Попову. Читаю его подписку. Его мнение: "... такой вариант конечно же возможен, но не желателен с точки зрения индексации сайта поисковиками, они такие параметры не любят." Меня особо это не пугает, так как мой сайт по недвижимости на укр. и рус. языках и в первую очередь интересен пользователям моего региона. 90% информации лежит в БД. Там же находится тексты для страниц на рус. и укр. языках (прим. text_ua, text_ru). Поэтому страницы администратора добавления информации у меня имеют строки для страниц на рус. и укр. языках, ссылки на фотки имеют разные пути (чтобы не создавать копию папок с фотками) и т.д
Хотел бы попробовать эту идею реализовать. Но недостаточно опыта и поэтому пишу… rolleyes.gif

Спустя 31 минута, 58 секунд (29.10.2009 - 00:01) SunSet написал(а):
sevalery
Да тут то и реализовывать нечего - все до банального просто. С индексацией поисковиками - вот не подскажу, да и Попов тут не показатель. Хотя не вижу разницы - если контект подгружается с файла text_ru.php или же из if ($_SESSION["lang"]=="ru").

Спустя 18 минут, 16 секунд (29.10.2009 - 00:19) glock18 написал(а):
Либо вы плохо объяснили уважаемому Е.Попову то, что хотели сделать, либо он подтвердил свою неквалифицированность smile.gif Поисковикам вообще параллельно в одном или разных файлах хранятся переводы, в базе или еще где-то. Один критерий - есть возможность разделить языки по адресу или нет.

Спустя 9 часов, 59 минут, 36 секунд (29.10.2009 - 10:19) sevalery написал(а):
Спасибо за консультацию!
1.Купить и прочитать хорошую книгу по php.
2.Или пройти курсы по программированию на php.


_____________
... и помните! Каким бы ни был PHP, главное - чтобы он был защищенным! :) (PHP с Анфисой Чеховой)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.