projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Perl-Scripte mit UTF-8 encodierten Umlaugen brauchen "use utf8"
[kivitendo-erp.git]
/
scripts
/
locales.pl
diff --git
a/scripts/locales.pl
b/scripts/locales.pl
index
2174c2d
..
ff2638b
100755
(executable)
--- a/
scripts/locales.pl
+++ b/
scripts/locales.pl
@@
-6,6
+6,7
@@
# this version of locles processes not only all required .pl files
# but also all parse_html_templated files.
# this version of locles processes not only all required .pl files
# but also all parse_html_templated files.
+use utf8;
use strict;
use Data::Dumper;
use strict;
use Data::Dumper;
@@
-85,6
+86,9
@@
if (-f "$locales_dir/lost") {
unlink "$locales_dir/lost";
}
unlink "$locales_dir/lost";
}
+my $charset = slurp("$locales_dir/charset") || 'utf-8';
+chomp $charset;
+
my %old_texts = %{ $self->{texts} || {} };
map({ handle_file($_, $bindir); } @progfiles);
my %old_texts = %{ $self->{texts} || {} };
map({ handle_file($_, $bindir); } @progfiles);
@@
-158,7
+162,7
@@
EOL
EOL
$LOST_HEADER = <<EOL;
# The last 50 text strings, that have been removed.
EOL
$LOST_HEADER = <<EOL;
# The last 50 text strings, that have been removed.
-# This file
is auto-generated by locales.pl. Do not edit it.
+# This file
has been auto-generated by locales.pl. Please don't edit!
EOL
}
EOL
}
@@
-471,26
+475,26
@@
sub scanhtmlfile {
while ($line =~ m/\[\%[^\w]*(\w+)\.\w+\(/g) {
my $plugin = $1;
while ($line =~ m/\[\%[^\w]*(\w+)\.\w+\(/g) {
my $plugin = $1;
- $plugins{needed}->{$plugin} = 1 if (first { $_ eq $plugin } qw(HTML LxERP JavaScript MultiColumnIterator));
+ $plugins{needed}->{$plugin} = 1 if (first { $_ eq $plugin } qw(HTML LxERP JavaScript MultiColumnIterator
L
));
}
while ($line =~ m/(?: # Start von Variante 1: LxERP.t8('...'); ohne darumliegende [% ... %]-Tags
(LxERP\.t8)\( # LxERP.t8( ::Parameter $1::
}
while ($line =~ m/(?: # Start von Variante 1: LxERP.t8('...'); ohne darumliegende [% ... %]-Tags
(LxERP\.t8)\( # LxERP.t8( ::Parameter $1::
- ([\'\"]) # Anfang des zu
ü
bersetzenden Strings ::Parameter $2::
- (.*?) # Der zu
ü
bersetzende String ::Parameter $3::
- (?<!\\)\2 # Ende des zu
ü
bersetzenden Strings
+ ([\'\"]) # Anfang des zu
ü
bersetzenden Strings ::Parameter $2::
+ (.*?) # Der zu
ü
bersetzende String ::Parameter $3::
+ (?<!\\)\2 # Ende des zu
ü
bersetzenden Strings
| # Start von Variante 2: [% '...' | $T8 %]
\[\% # Template-Start-Tag
| # Start von Variante 2: [% '...' | $T8 %]
\[\% # Template-Start-Tag
- [\-~#]? # Whitespace-Unterdr
ü
ckung
+ [\-~#]? # Whitespace-Unterdr
ü
ckung
\s* # Optional beliebig viele Whitespace
\s* # Optional beliebig viele Whitespace
- ([\'\"]) # Anfang des zu
ü
bersetzenden Strings ::Parameter $4::
- (.*?) # Der zu
ü
bersetzende String ::Parameter $5::
- (?<!\\)\4 # Ende des zu
ü
bersetzenden Strings
+ ([\'\"]) # Anfang des zu
ü
bersetzenden Strings ::Parameter $4::
+ (.*?) # Der zu
ü
bersetzende String ::Parameter $5::
+ (?<!\\)\4 # Ende des zu
ü
bersetzenden Strings
\s*\|\s* # Pipe-Zeichen mit optionalen Whitespace davor und danach
(\$T8) # Filteraufruf ::Parameter $6::
\s*\|\s* # Pipe-Zeichen mit optionalen Whitespace davor und danach
(\$T8) # Filteraufruf ::Parameter $6::
- .*? # Optionale Argumente f
ü
r den Filter
+ .*? # Optionale Argumente f
ü
r den Filter
\s* # Whitespaces
\s* # Whitespaces
- [\-~#]? # Whitespace-Unterdr
ü
ckung
+ [\-~#]? # Whitespace-Unterdr
ü
ckung
\%\] # Template-Ende-Tag
)
/ix) {
\%\] # Template-Ende-Tag
)
/ix) {
@@
-508,7
+512,7
@@
sub scanhtmlfile {
}
while ($line =~ m/\[\% # Template-Start-Tag
}
while ($line =~ m/\[\% # Template-Start-Tag
- [\-~#]? # Whitespace-Unterdr
ü
ckung
+ [\-~#]? # Whitespace-Unterdr
ü
ckung
\s* # Optional beliebig viele Whitespace
(?: # Die erkannten Template-Direktiven
PROCESS
\s* # Optional beliebig viele Whitespace
(?: # Die erkannten Template-Direktiven
PROCESS
@@
-573,7
+577,7
@@
sub strip_base {
sub _single_quote {
my $val = shift;
sub _single_quote {
my $val = shift;
- $val =~ s/('|\\$)/\\$1/g;
+ $val =~ s/(
\
'|\\$)/\\$1/g;
return "'" . $val . "'";
}
return "'" . $val . "'";
}
@@
-596,9
+600,12
@@
sub generate_file {
my $data_name = $params{data_name};
my @delim = split //, ($params{delim} || '{}');
my $data_name = $params{data_name};
my @delim = split //, ($params{delim} || '{}');
- open my $fh, '>', $file or die "$! : $file";
+ open my $fh, '>:encoding(utf8)', $file or die "$! : $file";
+
+ $charset =~ s/\r?\n//g;
+ my $emacs_charset = lc $charset;
- print $fh "#!/usr/bin/perl\n# -*- coding:
iso-8859-15; -*-
\n\n";
+ print $fh "#!/usr/bin/perl\n# -*- coding:
$emacs_charset; -*-\n# vim: fenc=$charset\n\nuse utf8;
\n\n";
print $fh $header, "\n" if $header;
print $fh "$data_name = $delim[0]\n" if $data_name;
print $fh $header, "\n" if $header;
print $fh "$data_name = $delim[0]\n" if $data_name;
@@
-608,6
+615,11
@@
sub generate_file {
close $fh;
}
close $fh;
}
+sub slurp {
+ my $file = shift;
+ do { local ( @ARGV, $/ ) = $file; <> }
+}
+
__END__
=head1 NAME
__END__
=head1 NAME