Помощник
Здравствуйте, гость ( Вход | Регистрация )
Как делать мультиязычность? |
Youshi |
2008-12-31, 19:51
Сообщение
#21
|
|
Любитель Группа: Разработчики Сообщений: 118 Регистрация: 2008-12-14 Из: Россия. Астрахань Репутация: нет Всего: 8 |
Дамп БД:
Запрос:
результат: id url cid status def_lang language title text 1 url_1 1 1 0 en Story 1 This is story 1 5 url_5 2 1 0 en Новость 5 Это новость 5 6 url_6 3 1 1 ru Новость 6 Это новость 6 И поясню запрос. В табличке el_news я добавил еще один флаг def_lang. Он указывает, отображать новость всегда на языке по умолчанию или же с учетом языка. Данный запрос подойдет для пункта (1) Для пункта 2 я пока не придумал... размышляю. Попутных вопрос: а что делать, если к примеру дефолтный язык русский, новость размещена только на украинском, а сайт работает с русским/украинским/английским? |
|
|
||
Alexander |
2008-12-31, 20:01
Сообщение
#22
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 262 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Такого не будет. А даже, если и будет - новость должна будет отображаться в украинской версии сайта. Кстати, лучше мне кажется поле language сделать типа enum.. На одно действие больше при добавлении/удалении языка.. Зато нагрузка на БД меньше. |
|
|
||
Youshi |
2008-12-31, 20:30
Сообщение
#23
|
|
Любитель Группа: Разработчики Сообщений: 118 Регистрация: 2008-12-14 Из: Россия. Астрахань Репутация: нет Всего: 8 |
Не стоит, имхо. Лучше языки выбирать по целочисленному индексу. Размерности tinyint (3) unsigned, думаю, хватит за глаза. потому как менять структуру таблицы для каждого модуля, имхо, не разумно. Но решай сам |
|
|
||
Alexander |
2008-12-31, 21:01
Сообщение
#24
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 262 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
А вот тут я не согласен. Это затруднит прямое редактирование БД через PMA.. Да и как-то приравнивать языки к цифрам по-моиму не очень: я вообще планировал только русско-английскую версию системы. Лишь благодаря некоторым людям, решил добавить еще и украинский язык. Не думаю, что enum медленнее tinyint. |
|
|
||
Youshi |
2008-12-31, 21:14
Сообщение
#25
|
|
Любитель Группа: Разработчики Сообщений: 118 Регистрация: 2008-12-14 Из: Россия. Астрахань Репутация: нет Всего: 8 |
А вот тут я не согласен. Это затруднит прямое редактирование БД через PMA.. Да и как-то приравнивать языки к цифрам по-моиму не очень: я вообще планировал только русско-английскую версию системы. Лишь благодаря некоторым людям, решил добавить еще и украинский язык. Не думаю, что enum медленнее tinyint. Если количество языков фиксировано, то я с тобой абсолютно согласен - enum лучший вариант. |
|
|
||
Alexander |
2008-12-31, 21:50
Сообщение
#26
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 262 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Количество языков не фиксированно. Вероятность изменения количества языков стремится к 0. Система в первую очередь будет ориентированна на русскоязычное население планеты - именно поэтому в качестве кодировки по-умолчанию выбрана ср1251. Если кому-то нужно будет добавить еще один какой-то язык, скажем китайский - нужно будет перелопатить всю в утф всю базу и все файлы. На фоне этого, добавление еще одного пункта в enum поля покажется детской забавой. |
|
|
||
Youshi |
2009-01-02, 16:56
Сообщение
#27
|
|
Любитель Группа: Разработчики Сообщений: 118 Регистрация: 2008-12-14 Из: Россия. Астрахань Репутация: нет Всего: 8 |
Количество языков не фиксированно. Вероятность изменения количества языков стремится к 0. Система в первую очередь будет ориентированна на русскоязычное население планеты - именно поэтому в качестве кодировки по-умолчанию выбрана ср1251. Если кому-то нужно будет добавить еще один какой-то язык, скажем китайский - нужно будет перелопатить всю в утф всю базу и все файлы. На фоне этого, добавление еще одного пункта в enum поля покажется детской забавой. Ну никто не отменял еще пакетной конвертации |
|
|
||
Гость_ProG_* |
2009-01-10, 7:26
Сообщение
#28
|
|
Гости |
предлогаю так при нажатии на добавить новость
идет автоопределение языка(по умолчанию это тот который выбран на сайте у пользователя) Далее он заполняет это на своем языке . После нажатии добавить его спрашивают не хотели бы вы заполнить новость еще на каком-то языке и появляется список из доступных языков. Если он пишит нет, то новость добавляется и отправляются оповещению адмиу что добавилась новость но только на одном языке(и если там портал нормальный то команда будет переводить на их остальные основные языки). Как будут хранится данные Тут уже стоит вопрос в след. 1 способ создать две таблицы. в первой будут хранится данные не заисимые от пользовательского зыка.вторая таблица сборка всех новостей на любых языках понятно что будет привязка по ид 2 способ В зависиости от того какие языки вкл. администратор будут создваться таблицы с языками для разных новостей типа en_news_content ru_news_content ua_news_content и будет опять же основная таблица news id|date|...|ua|..(и остальные языки которые были включены админом)значение полей языка типа 1\0 добавлена ли новость на этом языке или нет Потом просто когда пользователь будет смотреть новость будет надпись смотреть новость так же на таких-то языках: и будет перечислены языки на которых она была написано(выборк будет осуществлятся из таблиц по значению языковых полей типа ua\en\ru (0 или 1 )). Или просто отображать пользователь с руским языком только новости которые были опубликованые на рус. Или взависиомтси от того какие доп. языки выбрал себе пользователь(в своих настройках типа какими владеет).... Вот такие варианты от меня Сообщение отредактировал ProG - 2009-01-10, 7:32 |
|
|
||
Alexander |
2009-01-11, 1:33
Сообщение
#29
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 262 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Очень хорошая идея. Будет реализовано, но позже.. Пока новость с пользовательской части будет добавляться только с одним языком. |
|
|
||
Гость_ProG_* |
2009-01-11, 16:20
Сообщение
#30
|
|
Гости |
Дело ваше. Мое мнение делать сразу все правильно . что бы потом не переделывать.
|
|
|
||
Alexander |
2009-01-11, 18:28
Сообщение
#31
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 262 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Я просто до конца не уверен в правильности избранного пути. Мне, например не нравится, что для добавления новости нужно будет переходить по страницам. Уж лучше, чтобы все было на одной. (тогда не возникнет проблем, если в момент добавления, вдруг прервется связь с сервером).
|
|
|
||
Гость_ProG_* |
2009-01-11, 19:11
Сообщение
#32
|
|
Гости |
Я просто до конца не уверен в правильности избранного пути. Мне, например не нравится, что для добавления новости нужно будет переходить по страницам. Уж лучше, чтобы все было на одной. (тогда не возникнет проблем, если в момент добавления, вдруг прервется связь с сервером). Смотри допустим когда автора нажал добавить Происходит Новость добавлена успешно тоесть она уже добавилась, после того как от сервера пришел ответ ок , происходит вопрос к клиенту хотите ли добавить еще на каком языке , и сморти новость добавиться даже при дисконекте. А твой вариант всё на одном это ужастно смотртится прдставь тебе что на сайте 5 языков!!!Ты представляешь какого размера будет стр. А как говорилось в какой-то статье жилательно чтобы стр вписывалась так чтобы не появлялась скролбара это не удобно для пользователя. 2 языка это 4 больших техт_ареа + еще доп поля. Слишком много места заниматся будет на 1 стр. И зачем переход по стр. ??? После того как пользователь успешно добавил 1 новость , он нажимает допустим добавить новость на англ . После этого из файла англ языка. подгружаются новые названия тоесть заменится пару слов : Title ,Date, Shor news, Ful News etc. |
|
|
||
Alexander |
2009-01-11, 19:50
Сообщение
#33
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 262 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Есть куча вариантов, как повысить юзабилити: -догрузка содержимого на AJAX -разбить по вкладкам ... Я хочу, чтобы все было на одной странице прежде всего потому, чтобы можно было сразу все отредактировать. Вдруг, при написании текста на английском, автору придет еще парочка гениальных мыслей, которые он захочет добавить и в русскую версию. Когда все под рукой - так намного удобнее. |
|
|
||
Гость_ProG_* |
2009-01-11, 20:48
Сообщение
#34
|
|
Гости |
Хорошо можно сделать закладки (на счет аякса понятно через через аякс)
вот по вкладкам да согласен лучше сделать тогда так News Lang : Русский | Украинаский | English То есть в зависимости какая вкладка заполнения выбрана пользователем а дальше опять же при нажатии добавить если пользователь не заполнен больше новость не на какхи языках выскакивает диалоговое окно . |
|
|
||
Alexander |
2009-01-11, 21:24
Сообщение
#35
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 262 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Делать для каждого языка отдельную вкладу - не самое оптимальное решение. Сам же сказал, что на сайте может быть больше 5 языков.. И это пять вкладок - очень некрасиво будет. Нужно все делать на одной вкладке, но для ненагромождения внешнего вида, можно реализовать свертку других языков. Смотри пример на сайте http://www.dni.ru/polit/2009/1/11/156855.html в правой колонке "Политика".
|
|
|
||
Screatch |
2009-01-11, 23:11
Сообщение
#36
|
|
Опытный Группа: Eleanor TEAM Сообщений: 717 Регистрация: 2008-11-11 Из: Таллинн Репутация: нет Всего: 20 |
Вот как переключение языков вижу я, ну и конечно переключение между вкладками должно быть организовано на ajax.
Сообщение отредактировал Screatch - 2009-01-11, 23:12 |
|
|
||
Гость_Elf_* |
2009-04-07, 9:09
Сообщение
#37
|
|
Гости |
Если посмотреть на lenta.ru, bbc.com то там нету выбора языка... Все таки наверно сайты создают для публики родного языка. Не будем же мы просить юзеров при создании тем на форуме просить их заполнить три поля на 3 языках
Сообщение отредактировал Elf - 2009-04-07, 9:17 |
|
|
||
Текстовая версия | 0.0376 сек. 11 запросов GZIP включен Сейчас: 2024-12-06, 8:35 |