Помогите советом как правильно и практично.
#1
Отправлено 07 октября 2008 - 17:20
У меня такая проблема возникла.
Создаю сайт щас, посвященная объявлениям.
Так вот возникла глобальная проблема.
Сайт на двух языках, 2 таблицы с одинаковыми столбцами отличие только в языке. 1 русская вторая эстонская.
Русский пользователь добавляет в русскую базу, эст. пользователь в эстонскую. Но как мне сделать, чтобы при запросе выдавала информацию из двух таблиц на 1 языке?
Например. Я посылаю запрос чтобы мне сайт выдал все существующие объявления. Соответственно на русском языке.
Если вопрос задан некорректно, прошу переспросить.
Извиняюсь за неудобства.
Есть вариант, чтобы в таблицу заносить не информацию, а конкретные числа и придать им значения в соотвествии с выбранным языком. вариант? Если да, то как это реализовать, наведите на путь истинный.) Спасибо народ!
#2
Отправлено 07 октября 2008 - 18:31
По любопытству иль со скуки все это кто-нибудь взорвет.
#8
Отправлено 08 октября 2008 - 10:21
P.S. 2 таблицы для разных языков - это ошибка архитектуры, она ещё не раз встанет боком.
#9
Отправлено 08 октября 2008 - 20:20
Название Местонахождение Цена
Куртка таллиннн 350.-
Kleit keila 600.-
Если я русский на сайте пошлю запрос показать все обявы мне выдаст
Куртка таллиннн 350.-
Kleit keila 600.-
А мне надо чтоб на русском было.
Вот эту тупую проблему не знаю как лучше решить...
По ходу здесь программистов мало
#10
Отправлено 08 октября 2008 - 21:22
#11
Отправлено 08 октября 2008 - 21:36
Я говорю.
Р - русский
Э - эстонец.
Заходит Э на сайт, жмет добавить сообщение, добавляет в таблицу Бейз новый товар. В таблицу поступают след. данные.
Название Местонахождение Цена
Kleit keila 600.-
Отлично!
Заходит Р, жмет добавить сообщение, добавляет в таблицу Бейз новый товар. В таблицу поступают след. данные.
Куртка таллиннн 350.-
А тепер к примеру: Заходи потенциальный КЛИЕНТ РУССКИЙ жмет показать объявления и видит такую лажу.
Куртка таллиннн 350.-
Kleit keila 600.-
Эмоции: Че за фигня? Почему на разных языках?
А ДОЛЖЕН получить:
Куртка таллиннн 350.-
Платье кеила 600.-
Теперь думаю понятно?
#12
Отправлено 08 октября 2008 - 23:14
#13
Отправлено 08 октября 2008 - 23:31
– Совсем худо, – заключил хозяин, – что-то, воля ваша, недоброе таится в мужчинах, избегающих вина, игр, общества прелестных женщин, застольной беседы. Такие люди или тяжко больны, или втайне ненавидят окружающих.
#14
Отправлено 09 октября 2008 - 09:01
+1Это ты всем мозги запудрил... что бы так делалось тебе нужно либо автоматом переводить с эстонского на русский и наоборот(что я думаю вряд ли возможно ) ... другой способ это как появилась новая запись то ты САМ добавляешь ту же запись только на другом языке ...!!! это ПЕРЕВОД СООБЩЕНИЯ а не что то с программированием ...
тут нужен оператор - толмач переводчик Компьютер с такой задачей не справится. Но архитектура с 2мя таблицами всё равно неверна
#15
Отправлено 09 октября 2008 - 13:11
+1
тут нужен оператор - толмач переводчик Компьютер с такой задачей не справится. Но архитектура с 2мя таблицами всё равно неверна
Полностью согласен , тут либо сам ,либо оператора посади. А на аппартном уровне ты этого не сделаешь , технологии ещё не дошли, вот как придёт к нам в Эстонию ИИ, тогда уж=)). Можно конечно сделать небольшой двиг-переводчик , который проверял бы по своим словарям , и заменял слово kleit на платье и т.д. Но это слишком громоздко,неудобно и вообще толку от такой системы мало.
Сообщение изменено: BMplanet (09 октября 2008 - 13:12 )
#16
Отправлено 09 октября 2008 - 15:46
#17
Отправлено 09 октября 2008 - 21:34
1. Используешь одну таблицу для объявлений.
2. Так как в объявлениях используются максимально приближенные по написанию аббревиатуры и слова. То создаешь таблицу соответствий ... где данные есть ничто как пары [слово : sõna] ... конечно с правильной индексацией и так далее...
3. Ваяешь или используешь какой-нить готовый fuzzy logic или exact searching алгоритм. Задача которого сводится к возможности сравнения двух слов (фраз) с учетом погрешности на опечатку /пропуск символа/замены символа/присутвия/отсутвия лишнего....
4. Работает это всё так ...
- Юзер воодит в форме запрос на родном языке ...
- Ты создаешь аналогичный запрос используя (3) но уже на другом языке ...
- Убираешь дубликаты.
- И опять-таки используя (3) трасформируешь всё в понятный пользователю язык.
- Параллельно ... система должна накапливать знания о словах ... которые не смогла идентифицировать. То есть пишет в отдельную таблицу для дальнейшего перевода этих слов оператором и занесения их в базу данных. Через месяц обучения система может сама работать.
ЗЫ! Я писал свой анализатор сам ... за основу был взят алгоритм Битапа (shift-or) ... фишка была в том, что я хранил данные соответвий не как слова, а как промежуточные вектора из "1" и "0". То есть таблица соответвий была из двух полей [long:long] ... причем они были проиндексированы и сгрупированы, а таблица в свою очередь была разбита на партиции (partitioned indexes) ... что в итоге довало не детскую производительность ... даже на 80486DX4 100 Mhz.
Есть еще второй вариант ... сети Петри. Но там больше времени уйдет на проработку идеи и реализацию.
Верю в смерть после жизни, любовь после секса и в крем после бритья ...
#18
Отправлено 09 октября 2008 - 23:57
У меня имеется таблица.
Название Местонахождение Цена
Куртка таллиннн 350.-
Kleit keila 600.-
Рассмотрим как вариант:
Возможно заменить их значениями(цыфрами), которым придать после извлечения из базы какие-то определенные значения:
Название Местонахождение Цена
1 2 350.-
3 4 600
$1 = "Jope";
$3 = "Kleit";
$2 ="Tallinn";
$4 ="Keila";
<?php print "$1'';> <?php print "$2';> 350
<?php print "$3'';> <?php print "$4'';> 600
Для русского сайта эти значения просто надо поменять на русский и и указать считывающий файл значений уже с русскими значениями. НО....
когда мы делаем запрос, по которому просим достать из даблицы все значения, они идут в двойных скобках и там уже ПХП код не прописать, поэтому не знаю как задать переменным (числам из базы) определенные значения.
$db = new CustomSQL($DBName); $result = mysql_query("SELECT * FROM les"); if (!$result) { echo "<P> Запрос на выборку не прошел. Обратитесь с этой проблемой к администратору! </P> <br> <strong> Код ошибки </strong>"; exit(mysql_error()); } if (mysql_num_rows($result) > 0) { $myrow = mysql_fetch_array($result);do { printf ("<table align='left' class='lesson'> <tr> <td><div align='left'> <p class='lesson_title'><a href='view_msg.php?id=%s'>$%s %s %s </a></p> <p class='lesson_adds'>Местонахождение: %s</p> <p class='lesson_adds'><a href='add_photos.php?id=%s'>Добавить фотографии.</a></p> <p class='view_date'>Дата добавления: %s</p> <p class='lesson_name'>Цена: <b>%s</b></p> </div></td> </tr> <tr> <td></td> </tr> </table><br><br>",$myrow["id"], $myrow["mak"], $myrow["mud"], $myrow["yer"], $myrow["city"], $myrow["id"], $myrow["dat"], $myrow["pre"]); } while ($myrow = mysql_fetch_array($result)); } else { echo "<P>Информация по запросу не может быть извлечена - в таблице не ваших обявлений!</P>"; } ?>
Или мож кто знает форум программистов? Заранее благодарен.
Сообщение изменено: AgentVlad (09 октября 2008 - 23:56 )
#19
Отправлено 10 октября 2008 - 09:49
Либо делай как на auto24/city24/kv - выбираешь товар из списка, который хочешь продать, например, платье и всё. Никакого разума системе не надо.
#20
Отправлено 10 октября 2008 - 09:57
AgentVlad, ты хочешь, чтобы за тебя всё написали? Задача сложная, а твой детский пример кода (к чему он вообще?) и рядом с ней не стоит. Тебе нужен не форум программистов, а губозакатывалка. Не надо браться за работу, которую не можешь сам выполнить.
Либо делай как на auto24/city24/kv - выбираешь товар из списка, который хочешь продать, например, платье и всё. Никакого разума системе не надо.
Мда, ты вообще не по теме отвечаешь, если не понимаешь проходи мимо и не пудри мозги.
Я у народа спрашиваю как правильно сделать, а не писать мне тут коды.
Ты даже не знаешь как работают ауто сити и кв. , че тогда примеры приводишь?
#21
Отправлено 10 октября 2008 - 10:26
Это ты запудрил всем мозги, Incubo подсказал как правильно сделать то, что ты хочешь. Если ты всё ещё хочешь это делать, то флаг тебе в рукиМда, ты вообще не по теме отвечаешь, если не понимаешь проходи мимо и не пудри мозги.
Я у народа спрашиваю как правильно сделать, а не писать мне тут коды.
Ты даже не знаешь как работают ауто сити и кв. , че тогда примеры приводишь?
Я очень хорошо знаю как работают эти сайты, т.к. проводил их анализ
P.S. а ты видел сайт, который сам переводил объявления? Наверное, не видел... а почему? потому, что ни кто не берётся за такой геморрой, чаще всего они просто предлагают чётко заданный список опций.