> The three things I've found that make multi-language processing difficult
> with H::T are:
>
> 1. One-time evaluation of a template's page-specific vars (so that
> subsequent displays can deal only in truly variable evaluations).
> 2. No way to say <tmpl_include name="constant_text_<tmpl_var name=LANG>"> to
> use language-specific text determined at run time.
> 3. No way to recurse variables which may have been evaluated with text that
> contains variables.
>
> #2 and 3 are troubling because, if I can't pull in fragments of a page (for
> a language), then I'm likely to use "Locale::Maketext" to provide me with
> what may be lengthy fragments. If the fragments contain markup (like a
> link), then I'm stuck because the fragment's link will contain an attribute:
> "title=<TMPL_VAR NAME=LINK_TITLE_TEXT>" which will not be evaluated.
>
> Feeding ->output back into new H::T objects can get around a lot of this. It
> would be a lot easier if those 3 features were available. They don't seem
> like they would require too much kludging.
FWIW, the company I work for uses H::T for page generation, and we handle an
arbitrary number of languages. Currently we have the product translated into 4
different languages, and we have two more on the way. H::T is used in
combination with the Locale::MakePhrase package.... however, I use a modified
H::T....
The reason that I made a custom package of H::T was that the only solutions
that I could see to make language translations work was:
a) provide a different template for each language, then use the appropriate one
based on users' language
b) use H::T::E with a callback function so that static template strings could
run though the translation engine
b) modify H::T so that it supports custom TMPL_xxx tags so that static template
strings could run through the translation engine
Points (a) and (b) require no changes to H::T, and I can say from experience
that it works reasonably well. However, I found:
<TMPL_VAR EXPR="catalog('some static string')">
to be more nasty than:
<TMPL_CATALOG "some static string">
so I chose to modify H::T. In the process, I added some extra features to H::T.
If you need more info on how I do language translations, let me know...
Mathew
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Html-template-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/html-template-users