One thing that I stumbled onto recently was, how the Gimp handles internationalization - through an interesting hack :

They (or rather, Marc Lehmann) introduce a special sub _ (underscore), and that sub does the lookup on whole phrases. This keeps the source code relatively clean, as your code is not cluttered with translate_message() calls, but every (translatable) string is prefixed by _ "foo".

There are some complications to this matter, as the automagic source code scanning only works for _ "..." and not for qq{} constructs, also, it dosen't allow for any context-sensitive stuff like 1 file found vs. 2 files found. It allows for sprintf placeholders, something I urge you to allow too, as the construction of sentences varies enough to make hardcoded string construction ugly/awkward for the user.

This sentence based approach has the drawback that you have to scan the source code and then translate all those sentences, but it has the advantage that you keep readable (english) error messages in your code, and these can be used as the defaults, if no translation is found.

perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The $d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider ($c = $d->accept())->get_request(); $c->send_response( new #in the HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web

In reply to Re: Writing multilingual perl applications? by Corion
in thread Writing multilingual perl applications? by skx

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.