App-I18N
view release on metacpan or search on metacpan
use this command to generate static files.
* global po database by DBIx::Class (sqlite/mysql/pg backend).
* merge/update via global po database.
* provide a web service for managing po files.
* hook google translate plugin to web editor textarea.
* parse msgid from database
$ po parsedb -hlocalhost -uroot -p1234 dbname table_name column_name
* default charset option.
x mo file
x locale structure
lib/App/I18N.pm view on Meta::CPAN
$lme->write_po($translation);
# patch CHARSET
$logger->info( "Set CHARSET to UTF-8" );
open my $fh , "<" , $translation;
my @lines = <$fh>;
close $fh;
open my $out_fh , ">" , $translation;
for my $line ( @lines ) {
$line =~ s{charset=CHARSET}{charset=UTF-8};
print $out_fh $line;
}
close $out_fh;
if( $cmd->{mo} ) {
my $mofile = $translation;
$mofile =~ s{\.po$}{.mo};
$logger->info( "Generating MO file: $mofile" );
system(qq{msgfmt -v $translation -o $mofile});
lib/App/I18N/Web/View.pm view on Meta::CPAN
outs_raw qq|<script type="text/javascript" src="$_"></script>\n| for @_;
}
sub css {
outs_raw qq|<link href="$_" media="screen" rel="stylesheet" type="text/css" />| for @_;
}
template 'head' => sub {
my ( $class, $handler ) = @_;
outs_raw qq|<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n|;
js qw(
/static/jquery-1.4.2.js
/static/jquery.jgrowl.js
/static/app.js
);
my $mxhr = 0;
if( $mxhr ) {
js qw(
share/static/jquery-1.4.2.js view on Meta::CPAN
var parts = rurl.exec( s.url ),
remote = parts && (parts[1] && parts[1] !== location.protocol || parts[2] !== location.host);
// If we're requesting a remote document
// and trying to load JSON or Script with a GET
if ( s.dataType === "script" && type === "GET" && remote ) {
var head = document.getElementsByTagName("head")[0] || document.documentElement;
var script = document.createElement("script");
script.src = s.url;
if ( s.scriptCharset ) {
script.charset = s.scriptCharset;
}
// Handle Script loading
if ( !jsonp ) {
var done = false;
// Attach handlers for all browsers
script.onload = script.onreadystatechange = function() {
if ( !done && (!this.readyState ||
this.readyState === "loaded" || this.readyState === "complete") ) {
( run in 0.264 second using v1.01-cache-2.11-cpan-4d50c553e7e )