Добавление международной поддержки в Erlang Web 1.4
Я пытаюсь добавить международную поддержку для веб-сайта на основе 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 ответ
Если словарь запросов действительно настолько ограничен, я могу думать только о том, что вы передаете 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}.