Многоязычный сайт с использованием ASP и базы данных - PullRequest
0 голосов
/ 15 июня 2010

Я хочу проконсультироваться о том, что я делаю.

мой сайт имеет 3 языка.Иврит (основной), английский и русский.Я использую базу данных, имеющую таблицу с полями: ID, fieldName, 1, 2, 3 .где 1 2 3 - языки.

при входе на сайт язык 1 (иврит) выбирается автоматически, пока вы не выберете другой.и сохраненный как session("currentLanguage").

я написал функцию langstirng , которая получает имя поля и печатает значение в соответствии с языком в session("currentLanguage"):

Dim languageStrings
Set languageStrings = Server.CreateObject("ADODB.Recordset")
languageStrings.ActiveConnection = MM_KerenDB_STRING
languageStrings.Source = "SELECT fieldName,"&current_Language&"FROM Multilangual"
languageStrings.CursorType = 0
languageStrings.CursorLocation = 2
languageStrings.LockType = 1
languageStrings.Open()

sub langstring(fieldName)
    do while NOT(languageStrings.EOF)
        if (languageStrings.fields.item("fieldName").value = fieldName) then
            exit do
        else
            languageStrings.movenext
        end if
    loop

if (languageStrings.EOF) then
    response.Write("***"&fieldName&"***")
else
    response.Write(languageStrings.fields.item(currentLanguage+1).value)
end if
    languageStrings.movefirst
end sub

и я использую это так: <div>langstring("header")</div>.

Я считаю глупым, что я продолжаю отправлять запрос на сервер на любой странице.так как многоязычная таблица не меняет «ТО», часто я хочу каким-то образом сохранить набор записей для текущего просмотра.

Я ищу помощь для ЭТОГО решения, пожалуйста.

Ответы [ 2 ]

1 голос
/ 16 июня 2010

Если они меняются не очень часто, почему бы просто не записать строки в файл .asp?

Этот файл можно переписывать всякий раз, когда вы вносите изменения в базу данных.

Другой вариант - кэшировать строки в памяти, используя что-то вроде Caprock.Dictionary

0 голосов
/ 09 июля 2015

Другой вариант - если вы хотите сохранить языки в отдельной таблице, а затем использовать оператор соединения для извлечения этой информации на основе файла cookie или сеанса, для которого установлен язык.

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

...