diff options
author | Father Chrysostomos <sprout@cpan.org> | 2010-09-26 20:34:15 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2010-09-26 20:34:15 -0700 |
commit | 2ccd21fcbb088ab4d4206f572aea3d94c9216a71 (patch) | |
tree | 9e0131a525e2b26fb147db1da5e9f83508796f48 /dist/Locale-Maketext | |
parent | 78efa7b1d554a94490863c91472989d1ac28ea9f (diff) | |
download | perl-2ccd21fcbb088ab4d4206f572aea3d94c9216a71.tar.gz |
Revert "From: Todd Rinaldo <toddr@cpanel.net>"
This reverts commit 213a5d2cb3aa3b5c246b024e7e9c9903eba9decf.
Diffstat (limited to 'dist/Locale-Maketext')
-rw-r--r-- | dist/Locale-Maketext/ChangeLog | 19 | ||||
-rw-r--r-- | dist/Locale-Maketext/lib/Locale/Maketext/Cookbook.pod | 150 | ||||
-rw-r--r-- | dist/Locale-Maketext/t/30_local.t | 15 | ||||
-rw-r--r-- | dist/Locale-Maketext/t/70_fail_auto.t | 32 |
4 files changed, 11 insertions, 205 deletions
diff --git a/dist/Locale-Maketext/ChangeLog b/dist/Locale-Maketext/ChangeLog index 16891a1fb4..239870410d 100644 --- a/dist/Locale-Maketext/ChangeLog +++ b/dist/Locale-Maketext/ChangeLog @@ -20,25 +20,6 @@ Revision history for Perl suite Locale::Maketext Convert the odd Locale::Maketext test out from Test to Test::More. -2009-06-23 Adriano Ferreira - * Development release 1.13_82 - - One more recipe: on [numf,...] with decimal precision - -2009-06-23 Adriano Ferreira - * Development release 1.13_81 - - Change a few straggling 'DEBUG and print' to 'DEBUG and warn' (thanks Dan Muey) - - A start of a cookbook. - -2009-06-23 Adriano Ferreira - * Development release 1.13_80 - - Fixes CPAN RT #25877 (thanks imacat) - - Add a test for failure_handler_auto() - 2008-05-28 Adriano Ferreira * Release 1.13 diff --git a/dist/Locale-Maketext/lib/Locale/Maketext/Cookbook.pod b/dist/Locale-Maketext/lib/Locale/Maketext/Cookbook.pod deleted file mode 100644 index 6063b0faa1..0000000000 --- a/dist/Locale-Maketext/lib/Locale/Maketext/Cookbook.pod +++ /dev/null @@ -1,150 +0,0 @@ -# This document contains text in Perl "POD" format. -# Use a POD viewer like perldoc or perlman to render it. - -=encoding utf-8 - -=head1 NAME - -Locale::Maketext::Cookbook - recipes for using Locale::Maketext - -=head1 INTRODUCTION - -This is a work in progress. Not much progress by now :-) - -=head1 ONESIDED LEXICONS - -I<Adapted from a suggestion by Dan Muey> - -It may be common (for example at your main lexicon) that -the hash keys and values coincide. Like that - - q{Hello, tell me your name} - => q{Hello, tell me your name} - -It would be nice to just write: - - q{Hello, tell me your name} => '' - -and have this magically inflated to the first form. -Among the advantages of such representation, that would -lead to -smaller files, less prone to mistyping or mispasting, -and handy to someone translating it which can simply -copy the main lexicon and enter the translation -instead of having to remove the value first. - -That can be achieved by overriding C<init> -in your class and working on the main lexicon -with code like that: - - package My::I18N; - ... - - sub init { - my $lh = shift; # a newborn handle - $lh->SUPER::init(); - inflate_lexicon(\%My::I18N::en::Lexicon); - return; - } - - sub inflate_lexicon { - my $lex = shift; - while (my ($k, $v) = each %$lex) { - $v = $k if !defined $v || $v eq ''; - } - } - -Here we are assuming C<My::I18N::en> to own the -main lexicon. - -There are some downsides here: the size economy -will not stand at runtime after this C<init()> -runs. But it should not be that critical, since -if you don't have space for that, you won't have -space for any other language besides the main one -as well. You could do that too with ties, -expanding the value at lookup time which -should be more time expensive as an option. - -=head1 DECIMAL PLACES IN NUMBER FORMATTING - -I<After CPAN RT #36136 (https://rt.cpan.org/Ticket/Display.html?id=36136)> - -The documentation of L<Locale::Maketext> advises that -the standard bracket method C<numf> is limited and that -you must override that for better results. It even -suggests the use of L<Number::Format>. - -One such defect of standard C<numf> is to not be -able to use a certain decimal precision. -For example, - - $lh->maketext('pi is [numf,_1]', 355/113); - -outputs - - pi is 3.14159292035398 - -Since pi ≈ 355/116 is only accurate -to 6 decimal places, you would want to say: - - $lh->maketext('pi is [numf,_1,6]', 355/113); - -and get "pi is 3.141592". - -One solution for that could use C<Number::Format> -like that: - - package Wuu; - - use base qw(Locale::Maketext); - - use Number::Format; - - # can be overriden according to language conventions - sub _numf_params { - return ( - -thousands_sep => '.', - -decimal_point => ',', - -decimal_digits => 2, - ); - } - - # builds a Number::Format - sub _numf_formatter { - my ($lh, $scale) = @_; - my @params = $lh->_numf_params; - if ($scale) { # use explicit scale rather than default - push @params, (-decimal_digits => $scale); - } - return Number::Format->new(@params); - } - - sub numf { - my ($lh, $n, $scale) = @_; - # get the (cached) formatter - my $nf = $lh->{__nf}{$scale} ||= $lh->_numf_formatter($scale); - # format the number itself - return $nf->format_number($n); - } - - package Wuu::pt; - - use base qw(Wuu); - -and then - - my $lh = Wuu->get_handle('pt'); - $lh->maketext('A [numf,_1,3] km de distância', 1550.2222); - -would return "A 1.550,222 km de distância". - -Notice that the standard utility methods of -C<Locale::Maketext> are irremediably limited -because they could not aim to do everything -that could be expected from them in different languages, -cultures and applications. So extending C<numf>, -C<quant>, and C<sprintf> is natural as soon -as your needs exceed what the standard ones do. - - diff --git a/dist/Locale-Maketext/t/30_local.t b/dist/Locale-Maketext/t/30_local.t index 23fa2ac551..8b89777e20 100644 --- a/dist/Locale-Maketext/t/30_local.t +++ b/dist/Locale-Maketext/t/30_local.t @@ -2,8 +2,12 @@ use strict; -use Test::More tests => 3; +use Test::More tests => 4; use Locale::Maketext; +print "# Hi there...\n"; +pass(); + +print "# --- Making sure that Perl globals are localized ---\n"; # declare a class... { @@ -16,8 +20,11 @@ use Locale::Maketext; } my $lh = Woozle->new(); -isa_ok($lh, 'Woozle'); +ok(ref $lh, 'Basic sanity'); $@ = 'foo'; -is($lh->maketext('Eval error: [_1]', $@), 'Eval error: foo', "Make sure \$@ is localized when passed to maketext"); -is($@, 'foo', "\$@ wasn't modified during call"); +is($lh->maketext('Eval error: [_1]', $@), 'Eval error: foo', + 'Make sure $@ is localized'); + +print "# Byebye!\n"; +pass(); diff --git a/dist/Locale-Maketext/t/70_fail_auto.t b/dist/Locale-Maketext/t/70_fail_auto.t deleted file mode 100644 index 44fe54d1b5..0000000000 --- a/dist/Locale-Maketext/t/70_fail_auto.t +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/perl -Tw - -use strict; -use Test::More tests => 5; - -BEGIN { - use_ok( 'Locale::Maketext' ); -} - -{ - package Whunk::L10N; - use vars qw(@ISA); - @ISA = 'Locale::Maketext'; -} - -{ - package Whunk::L10N::en; - use vars qw(@ISA); - @ISA = 'Whunk::L10N'; -} - -my $lh = Whunk::L10N->get_handle('en'); -$lh->fail_with('failure_handler_auto'); - -is($lh->maketext('abcd'), 'abcd', "simple missing keys are handled"); -is($lh->maketext('abcd'), 'abcd', "even in repeated calls"); -# CPAN RT #25877 - $value Not Set After Second Call to failure_handler_auto() - -is($lh->maketext('Hey, [_1]', 'you'), 'Hey, you', "keys with bracket notation ok"); - -is($lh->maketext('_key'), '_key', "keys which start with _ ok"); - |