![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| artfabrique |
|
|||
![]() Доктор Дизайн ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 5.2.2006 Где: СПб Репутация: нет Всего: 2 |
Собственно интересует вот что:
Например, нужно сделать, чтобы у каждого "текста" на сайте было несколько языковых версий. Как рациональней и наименьшими затратами ресурсов этого достичь, если сайт пашет на PHP+MySQL? Пока в голову приходит создание в базе своего рода таблицы словаря, тоесть, например, в каком либо месте (другой таблице) у нас есть поле типа TEXT или VARCHAR и внем вместо самого текста будет указан лишь ID ряда из словаря с этим текстом, а в этом ряду в "словарной" таблице столько колонок, сколько у нас языков соответственно. Ну и так далее (выбираем нужную колонку с языком и подставляем). Не будет ли это "нагрузно" если у нас 100-200 замен происходит, причем тексты разного размера (как маленькие, так и громадные). И случаем не упростит ли наличие такой "словарной" таблицы создания поискового индекса позже? Буду благодарен за любые советы по теме. --------------------
Я спасу мир! © ЙУХ 0000г. |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
artfabrique найди на phpinside.ru журнал №10 за 2005 год. В нем иметтся очень интересная тема - `Многоязычные приложения с использованием PHP и GetText` может поможет
-------------------- Amazing |
|||
|
||||
| Sunvas |
|
||||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
Советую завести отдельные "языковые" пхп файлы в которых хранить значения именованых строк. Например:
Несколько таких файлов для разных языков. Ну и инклудить по требованию. Тогда в ПХП скрипте нужно будет делать так:
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
||||
|
|||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
подобная тема, но там пришли к выводу что лучше разные языки разнести на разные домены что не очень логично.
artfabrique, заведи переменную lang=?. чтобы получилось следующее http://site/index.php?lang=en&la=lala. потом получай значение этой переменной и из БД или еще откуда вытаскивай язык, если же набранно просто http://site/index.php то установи язык по умолчанию и баста... -------------------- Amazing |
|||
|
||||
| KoLiZeI |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 6.4.2007 Где: г. Саратов Репутация: нет Всего: нет |
А не проще использовать ещё одну таблицу для другого языка, в любом случае запросов к бд избежать не удастся, а так код будет проще и понятней и скорость не изменится. Абсолютно идентичную таблицу, только на другом языке.
Это сообщение отредактировал(а) KoLiZeI - 10.1.2008, 10:50 |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
KoLiZeI тут можно использовать хоть что, хоть БД, файлы (начиная от .php и заканчивая более продвинутым способом .xml). фсе зависит от идей и опыта программирования (ну и конечно лени
-------------------- Amazing |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
вопрос был, что оптимальней, и насколько ресурсозатратен метод автора
мне кажется, что тут лучше комбинация технический список слов (скажем статическую менюшку, "вперёд", "назад", "скачать") можно забить одним файлом: ru.lang: ... $word[34] = 'вперёд'; ... en.lang: ... $word[34] = 'forward'; ... что-то в этом роде, а вот скажем новости, всё зависит от мощи поддержки: если известно, что ну где-то >90% новостей будут иметь копию на другом языке, то лучше изначально сделать таблицу, где будут все эти поля: text_ru, text_en, coment_ru, coment_en... а если копии будут не так часты (от случая к случаю), то может лучше будет новая таблица для другого языка ну и синхронизирующий id на них |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
ИМХО склоняюсь в сторону MySQL. Тем более она уже задействованна в проекте.
-------------------- Amazing |
|||
|
||||
| artfabrique |
|
|||
![]() Доктор Дизайн ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 5.2.2006 Где: СПб Репутация: нет Всего: 2 |
Всем спасибо за советы!
Думаю выясню на краш-тесте что быстрее. Результаты суда пихну. --------------------
Я спасу мир! © ЙУХ 0000г. |
|||
|
||||
| gcc |
|
||||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: -1 Всего: 17 |
я придумал такой вариант:
если этих значений $word[34] = 'вперёд'; будет порядка 2000 и текст будет занимать порядка 2-10Мб то это будет не красиво?? можно сделать, например, для каждой страниц файлы (всего страниц 30-50) show.tpl.php
скриптом обновлять... cделать таблицу с id и data этот массив сериализировать в json и поставить в data с id который соответсвует show.tpl а запрос минималистический будет
десериализируем с json в php
php не будет тратить лишние ресурсы постоянно на инициализацию этого массива (если он не маленький), а будет все время очень быстро десериализовать 1) $array в smatry отправляется 2) или $from_db_json прямо на станицу в js и там распарсить Это сообщение отредактировал(а) gcc - 31.5.2010, 13:57 |
||||||
|
|||||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
gcc, ты на дату посмотри!
-------------------- Amazing |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: -1 Всего: 17 |
MoLeX, я видел, я хотел рассмотреть, предложить идею...
может быть это бессмысленно или не правильно? |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |