Another, perhaps better way, of supporting multiple
languages is to separate your document design from your
content/language design.

Here's what I mean. You can use a set of
<language_tags> to hold your language variable text
content, and design your web page separately.

Next, create as many libraries as you have languages.
Each library consists entirely of a large hash, so
French.pm might look like:
package MyWebsite::French; %translation { tag_color => 'rouge'; tag_street => 'rue'; tag_hooligan => 'anglais'; #etc }; 1;
Finally, write a brief preparsing program that takes
your one and only web page, sucks in each
library in turn, and spews out the appropriate static
web page, with your <preparsing_tags> replaced
with the correct language.

This makes maintenance a great deal easier, and saves
having to do translations on the fly.

Instead, have your CGI invoke the correct static,
translated web page on the fly, based upon their
browser preferences, or whatever.

This method can also be combined with HTML::Template
for superior results, by having preparsed, translated web pages
each of which also possess your HTML::Template tags.

Jens

--
Microsoft delendum est.

In reply to Another way of doing foreign language support by jens
in thread Do I need an array within an array by meetn2veg

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.