Hello, my Jifty fellows, I've just ported Jifty::I18N and something in Jifty::Script::Po over to my XUL application framework, XUL::App. And my Perl-based Firefox extension, SearchAll (https://addons.mozilla.org/en-US/firefox/addon/5712), is already using it.
Because XUL::App is also using Template::Delcare as its templating language, the port is rather straightforward. For example, one of SearchAll's view looks like this: http://svn.openfoundry.org/searchall/trunk/lib/SearchAll/View/Main.pm Note that I'm also using _("...") calls in the view ;) Extracting these string literals is a single command in XUL::App (just like Jifty): bin/xulapp po --lang us_en It will scan all the .pm files and generate po/us_en.po for you. For example, here is the Po file directory for my SearchAll extension: http://svn.openfoundry.org/searchall/trunk/po/ Unlike Jifty, XUL::App tries to behave more like a compiler than a runtime. So these po files won't appear in the final XPI bundle. XUL::App will carefully convert these .po files to the corresponding DTD entities required by XUL's own L10N mechanism. So still, there's *0* Perl in the "runtime". Testing I10N within Firefox is straightforward as well: bin/xulapp overlay --profile dev --lang zh_cn Or just testing a particular .xul file in Firefox using a specified profile named "dev": bin/xulapp searchall.xul --profile dev --lang zh_cn See http://svn.openfoundry.org/searchall/trunk/README for more "xulapp" usage in the SearchAll project if you're interested :) In XUL::App, I've been trying very hard to follow Jifty's best practices. Jifty is so great that every fundamental component has been keeping me very excited ;) Once XUL::App gets matured enough, I'll push it onto CPAN. If you like to help, please let me know ;) Thanks go to all of you for making Jifty such a lovely animal :D -agentzh _______________________________________________ jifty-devel mailing list [email protected] http://lists.jifty.org/cgi-bin/mailman/listinfo/jifty-devel
