summaryrefslogtreecommitdiffstats
path: root/lib/Locale/POFileManager/File.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Locale/POFileManager/File.pm')
-rw-r--r--lib/Locale/POFileManager/File.pm88
1 files changed, 88 insertions, 0 deletions
diff --git a/lib/Locale/POFileManager/File.pm b/lib/Locale/POFileManager/File.pm
index 368025b..e5e8267 100644
--- a/lib/Locale/POFileManager/File.pm
+++ b/lib/Locale/POFileManager/File.pm
@@ -7,6 +7,45 @@ use List::Util qw(first);
use Locale::PO;
use Scalar::Util qw(reftype);
+=head1 NAME
+
+Locale::POFileManager::File - A single .po file
+
+=head1 SYNOPSIS
+
+ use Locale::POFileManager;
+
+ my $manager = Locale::POFileManager->new(
+ base_dir => '/path/to/app/i18n/po',
+ canonical_language => 'en',
+ );
+ my $file = $manager->language_file('de');
+
+ $file->add_entry(
+ msgid => 'Hello',
+ msgstr => 'Guten Tag'
+ );
+ my @entries = $file->entries;
+ my $entry = $file->entry_for('Hello');
+ $file->save;
+
+=head1 DESCRIPTION
+
+This module represents a single translation file, providing methods for
+manipulating the translation entries in it.
+
+=cut
+
+=head1 METHODS
+
+=head2 new
+
+=cut
+
+=head2 file
+
+=cut
+
has file => (
is => 'ro',
isa => File,
@@ -14,11 +53,27 @@ has file => (
required => 1,
);
+=head2 stub_msgstr
+
+=cut
+
has stub_msgstr => (
is => 'ro',
isa => 'Str|CodeRef',
);
+=head2 entries
+
+=cut
+
+=head2 add_entry
+
+=cut
+
+=head2 msgids
+
+=cut
+
has entries => (
traits => [qw(Array)],
isa => 'ArrayRef[Locale::PO]',
@@ -52,18 +107,30 @@ sub add_entry {
}
}
+=head2 entry_for
+
+=cut
+
sub entry_for {
my $self = shift;
my ($msgid) = @_;
return first { $_->msgid eq '"' . $msgid . '"' } $self->entries;
}
+=head2 save
+
+=cut
+
sub save {
my $self = shift;
Locale::PO->save_file_fromarray($self->file->stringify, [$self->entries]);
}
+=head2 language
+
+=cut
+
sub language {
my $self = shift;
my $language = $self->file->basename;
@@ -71,6 +138,10 @@ sub language {
return $language;
}
+=head2 find_missing_from
+
+=cut
+
sub find_missing_from {
my $self = shift;
my ($other) = @_;
@@ -85,6 +156,10 @@ sub find_missing_from {
return @ret;
}
+=head2 add_stubs_from
+
+=cut
+
sub add_stubs_from {
my $self = shift;
my ($other) = @_;
@@ -106,4 +181,17 @@ sub add_stubs_from {
__PACKAGE__->meta->make_immutable;
no Moose;
+=head1 AUTHOR
+
+ Jesse Luehrs <doy at tozt dot net>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2010 by Jesse Luehrs.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as perl itself.
+
+=cut
+
1;