Добавление международной поддержки в Erlang Web 1.4 - PullRequest
3 голосов
/ 22 марта 2010

Я пытаюсь добавить международную поддержку веб-сайта на основе Erlang Web 1.4.

Я хотел бы иметь пару ссылок на каждой странице (пресловутые флаги Страны), которые позволяют пользователю устанавливать переменную сеанса своего языка.

То, что у меня сейчас есть, это ссылка типа:

<li><a href="/session/language/en">English</a></li>

Где в контроллере сессии я делаю:

language(Args) ->
    LanguageId = proplists:get_value(id, Args),
    case language_is_supported(LanguageId) of
        false ->
            ok;
        true ->
            wpart:fset("session:lang", LanguageId)
    end,
    {redirect, "/"}.

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

Как я мог разрешить эту ситуацию? Возможно, я использую неправильный подход, но сейчас я ничего не могу сказать.

1 Ответ

2 голосов
/ 25 марта 2010

Если словарь запросов действительно настолько ограничен , единственное хак Я могу подумать, что вы передаете URL текущей страницы обратно как переменную GET:

<li><a href="/session/language/en?referrer=/path/to/current/page">English</a></li>

language(Args) ->
    LanguageId = proplists:get_value(id, Args),
    case language_is_supported(LanguageId) of
        false -> ok;
        true ->  wpart:fset("session:lang", LanguageId)
    end,
    Referrer = eptic:fget("get", "referrer"),
    {redirect, Referrer}.
...