всем привет!
может быть кто-то осведомлен по subj?
основной вопрос:
как устроить чтобы ?аблоны печатались с учетом po-файлов и соответственно работал перевод для блоков "{% trans %}", "{% blocktrans %}".
имеем такие файлы:
[ templates/index.dtl ]
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>
{% trans "Welcome" %}
</title>
</head>
<body> ... </body>
</html>
[ src/app_resource.erl ]
-module(app_resource).
-export([init/1, to_html/2]).
-include_lib("webmachine/include/webmachine.hrl").
init([]) -> {ok, undefined}.
to_html(ReqData, State) ->
PathInfo = wrq:path_info(ReqData),
{ok, Content} = index_dtl:render([{param, PathInfo}]),
{Content, ReqData, State}.
[ rebar.config ]
{deps, [{webmachine, "1.9.*", {git, "git://github.com/basho/webmachine", "HEAD"}},
{gettext, ".*", {git, "git://github.com/etnt/gettext", "HEAD"}},
{erlydtl, ".*", {git, "git://github.com/evanmiller/erlydtl.git", "HEAD"}}
]}.
[ priv/dispatch.conf ]
{[], app_resource, []}.
{['*'], app_resource_static, [{root, "priv/www"}]}.
ну и все остальное совер?енно обычное для приложения на базе webmachine...
также есть файлы :
[ lang/default/ru/gettext.po ]
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2003-10-21 16:45+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
#:
msgid ""
"Welcome"
msgstr ""
"Привет"
[ lang/default/en/gettext.po ]
# все то же самое....
msgid ""
"Welcome"
msgstr ""
"Welcome in english..."
в каталоге "deps/erlydtl/" есть файлик "README_I18N" - там на мой взгляд не совсем ясно описано как должна работать свзяка erlydtl+gettext
(не понятно как это применять в моем простом! случае)...
https://github.com/evanmiller/erlydtl/blob/master/README_I18N
у меня же в файле "app_resource.erl" происходит вызов:
{ok, Content} = index_dtl:render([{param, PathInfo}])
который возвращает обработанный ?аблон в переменную "Content" -
как сказать erlydtl что мне бы хотелось взять данные для обработки блоков "{% trans %}" из "ru" - po-файла или из "en"?
после того как в консоле вызвана команда "rebar compile" у нас в каталоге "ebin/" (т.к. конфигурация rebar по-умолчанию)
складываются все откомпилированные файлы, в том числе и "index_dtl.beam" - в случае с multilanguage такие файлы будут
для каждого языка (прекомпилированные...) или же логика внутри "index_dtl.beam" позволит динамически использовать
соответствующий po-файл на момент выполнения?
в этом контексте интересует также и вопрос -
на каком этапе должен быть запущен gettext_server:start()?
вопрос не в том - как луч?е?, а в том какие возможности есть и как ими воспользоваться? ибо актуальных примеров или документации
пока не обнаружено...
конечная цель - выдавать ?аблон с учетом данных полученных из "wrq:get_req_header("accept-language", ReqData)."
