summaryrefslogtreecommitdiffstats
path: root/lib/Locale/Po4a/Dia.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Locale/Po4a/Dia.pm')
-rw-r--r--lib/Locale/Po4a/Dia.pm114
1 files changed, 114 insertions, 0 deletions
diff --git a/lib/Locale/Po4a/Dia.pm b/lib/Locale/Po4a/Dia.pm
new file mode 100644
index 0000000..2652edc
--- /dev/null
+++ b/lib/Locale/Po4a/Dia.pm
@@ -0,0 +1,114 @@
+#!/usr/bin/perl
+
+# Po4a::Dia.pm
+#
+# extract and translate translatable strings from Dia diagrams.
+#
+# This code extracts plain text from string tags on uncompressed Dia
+# diagrams.
+#
+# Copyright © 2004 Jordi Vilalta <jvprat@gmail.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+########################################################################
+
+=encoding UTF-8
+
+=head1 NAME
+
+Locale::Po4a::Dia - convert uncompressed Dia diagrams from/to PO files
+
+=head1 DESCRIPTION
+
+The po4a (PO for anything) project goal is to ease translations (and more
+interestingly, the maintenance of translations) using gettext tools on
+areas where they were not expected like documentation.
+
+Locale::Po4a::Dia is a module to help the translation of diagrams in the
+uncompressed Dia format into other [human] languages.
+
+You can get Dia (the graphical editor for these diagrams) from:
+ http://www.gnome.org/projects/dia/
+
+=head1 TRANSLATING WITH PO4A::DIA
+
+This module only translates uncompressed Dia diagrams. You can save your
+uncompressed diagrams with Dia itself, unchecking the "Compress diagram
+files" at the "Save Diagram" dialog.
+
+Another way is to uncompress the dia files from command line with:
+ gunzip < original.dia > uncompressed.dia
+
+=head1 STATUS OF THIS MODULE
+
+This module is fully functional, as it relies in the L<Locale::Po4a::Xml>
+module. This only defines the translatable tags (E<lt>dia:stringE<gt>), and
+filters the internal strings (the content of the E<lt>dia:diagramdataE<gt>
+tag), not interesting for translation.
+
+=head1 SEE ALSO
+
+L<Locale::Po4a::TransTractor(3pm)>, L<Locale::Po4a::Xml(3pm)>, L<po4a(7)|po4a.7>
+
+=head1 AUTHORS
+
+ Jordi Vilalta <jvprat@gmail.com>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright © 2004 Jordi Vilalta <jvprat@gmail.com>
+
+This program is free software; you may redistribute it and/or modify it
+under the terms of GPL v2.0 or later (see the COPYING file).
+
+=cut
+
+package Locale::Po4a::Dia;
+
+use 5.16.0;
+use strict;
+use warnings;
+
+use Locale::Po4a::Common;
+use Locale::Po4a::Xml;
+
+use vars qw(@ISA);
+@ISA = qw(Locale::Po4a::Xml);
+
+sub initialize {
+ my $self = shift;
+ my %options = @_;
+
+ $self->SUPER::initialize(%options);
+ $self->{options}{'nostrip'} = 1;
+ $self->{options}{'_default_translated'} .= ' <dia:string>';
+ print "Call treat_options\n" if $self->{options}{'debug'};
+ $self->treat_options;
+}
+
+sub found_string {
+ my ( $self, $text, $ref, $options ) = @_;
+ return $text if $text =~ m/^\s*$/s;
+
+ #We skip the paper type string
+ if ( $self->get_path() !~ /<dia:diagramdata>/ ) {
+ $text =~ /^#(.*)#$/s;
+ $text = "#" . $self->translate( $1, $ref, "String", 'wrap' => $self->{options}{'wrap'} ) . "#";
+ }
+
+ return $text;
+}