Правильнее, на мой взгляд, было бы говорить не "словарь на сайте", а Словарь Он-Лайн. Я бы для этих целей использовал протокол DICT. Т.е. создавал бы словари в формате DICT и помещал бы их на DICT-сервере. Жаль, что GoldenDict не умеет обращаться к DICT-серверам. Но в таком случае можно создать свой собственный WEB-интерфейс, который будет обращаться с запросами к DICT-серверу. В качестве примера могу предложить мой
Словарь Он-Лайн с функцией лемматизации. Правда, из соображений оперативности придется самому поднимать свой личный DICT-сервер, потому что разместить свои словари на уже существующие DICT-сервера не очень быстрое дело. Кстати, WEB-интерфейс можно оформить как расширение для Firefox. Думаю, было бы удобно.
В проекте StarDict тоже используются Он-Лайн сервера. Может быть на тех серверах быстрее выкладываются пользовательские словари, тогда можно рассматривать формат StarDict как альтернативу для поставленной задачи.
Итак.
в каком файле должен лежать словарь?
В формате DICT (два файла: .dict, .index) или в формате StarDict (три файла: .dict, .idx, .ifo).
Я так понимаю поиск слов осуществляется через поиск на сайте.
Но как это все, объединить?
Словари нужно разместить на соответствующем сервере, на DICT либо на StarDict сервере соответственно выбранному формату словаря. Запрос для поиска в словарной базе должен осуществлять программа клиент. Например, для протокола DICT это будет DICT-клиент, который будет посылать запрос на DICT-сервер. В ответ на запрос DICT-сервер будет выдавать ответ по протоколу DICT, который DICT-клиент должен уметь принимать и должным образом обрабатывать.