новости сообщество форум вики
Erlang по-русски. Форум » Erlang + Web »

erlydtl + i18n локализация ?аблона

(1 post)
  • Начата 1 год назад WebPrg

  1. всем привет!
    может быть кто-то осведомлен по 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)."

    Отправлено 1 год назад #

RSS экспорт этой темы

Отправить сообщение

Вы должны войти в систему, чтобы оставлять сообщения.

 
 

так же

Популярные тэги



Currently online

1 Member is online.
ppbosslittle

twitter