# Locale::Po4a::Ini -- Convert ini files to PO file, for translation. # # This program is free software; you may redistribute it and/or modify it # under the terms of GPL v2.0 or later (see COPYING). # ############################################################################ # Modules and declarations ############################################################################ use Locale::Po4a::TransTractor qw(process new); use Locale::Po4a::Common; package Locale::Po4a::Ini; use 5.16.0; use strict; use warnings; require Exporter; use vars qw(@ISA @EXPORT $AUTOLOAD); @ISA = qw(Locale::Po4a::TransTractor); @EXPORT = qw(); my $debug = 0; sub initialize { } sub parse { my $self = shift; my ( $line, $ref ); my $par; LINE: ( $line, $ref ) = $self->shiftline(); while ( defined($line) ) { chomp($line); print STDERR "begin\n" if $debug; if ( $line =~ /\"/ ) { print STDERR "Start of line containing \".\n" if $debug; # Text before the first quote $line =~ m/(^[^"\r\n]*)"/; my $pre_text = $1; print STDERR " PreText=" . $pre_text . "\n" if $debug; # The text for translation $line =~ m/"([^\r\n]*)"/; my $quoted_text = $1; print STDERR " QuotedText=" . $quoted_text . "\n" if $debug; # Text after last quote $line =~ m/"([^"\n]*$)/; my $post_text = $1; print STDERR " PostText=" . $post_text . "\n" if $debug; # Translate the string it $par = $self->translate( $quoted_text, $ref, $pre_text ); # Escape the \n characters $par =~ s/\n/\\n/g; # Now push the result $self->pushline( $pre_text . '"' . $par . '"' . $post_text . "\n" ); print STDERR "End of line containing \".\n" if $debug; } else { print STDERR "Other stuff\n" if $debug; $self->pushline("$line\n"); } # Reinit the loop ( $line, $ref ) = $self->shiftline(); } } ############################################################################## # Module return value and documentation ############################################################################## 1; __END__ =encoding UTF-8 =head1 NAME Locale::Po4a::Ini - convert INI files from/to PO files =head1 DESCRIPTION Locale::Po4a::Ini is a module to help the translation of INI files into other [human] languages. The module searches for lines of the following format and extracts the quoted text: identificator="text than can be translated" NOTE: If the text is not quoted, it will be ignored. =head1 SEE ALSO L, L =head1 AUTHORS Razvan Rusu Costin Stroie =head1 COPYRIGHT AND LICENSE Copyright © 2006 BitDefender 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