Bug 6464 Check inconsistent placeholders in translated strings
Display a warning for strings that don't have the same count of %s placeholders that the English original strings. Don't warn for not translated string and 'fuzzy' string because those strings are not installed, and this is the translator responsability to examine them. Based on Frère Sébastien Marie work. Signed-off-by: Frère Sébastien Marie <semarie-koha@latrappe.fr> Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This commit is contained in:
parent
e071651533
commit
2281350b6e
1 changed files with 15 additions and 0 deletions
|
@ -274,6 +274,21 @@ if (defined $href) {
|
|||
# $charset_in = $candidate;
|
||||
# }
|
||||
# }
|
||||
|
||||
# BUG6464: check consistency of PO messages
|
||||
# - count number of '%s' in msgid and msgstr
|
||||
for my $msg ( values %$href ) {
|
||||
my $id_count = split(/%s/, $msg->{msgid}) - 1;
|
||||
my $str_count = split(/%s/, $msg->{msgstr}) - 1;
|
||||
next if $id_count == $str_count ||
|
||||
$msg->{msgstr} eq '""' ||
|
||||
grep { /fuzzy/ } @{$msg->{_flags}};
|
||||
warn_normal
|
||||
"unconsistent %s count: ($id_count/$str_count):\n" .
|
||||
" line: " . $msg->{loaded_line_number} . "\n" .
|
||||
" msgid: " . $msg->{msgid} . "\n" .
|
||||
" msgstr: " . $msg->{msgstr} . "\n", undef;
|
||||
}
|
||||
}
|
||||
|
||||
# set our charset in to UTF-8
|
||||
|
|
Loading…
Reference in a new issue