Hello,
I just release a new version of po4a, fixing some bugs and improving error
messages. It's dedicated to Cassini III, born 310 years ago, who made great
topographic maps of France back then. Who don't like reading maps and dreaming?
The error messages needed love because po4a v0.70 and later is much more picky
about encodings. Before, it was relying on the default Perl behavior to do "the
right thing", happily parsing latin-1 or UTF-8 files and converting to the Perl
internal string representation. The drawback was that this setup forced po4a to
convert back and forth internally after reading and before writing.
The v0.70 code uses PerlIO to handle all encoding issues automatically,
removing all manual conversions in the code of po4a. The price for this is that
users must specify the used encoding more precisely (I sometimes suspect that
previously, user settings were only used as an hint of the actual conversion,
not a ground truth). So the users are now more exposed to the mess of Perl
encodings, where utf8 and UTF-8 are actually different.
https://perldoc.perl.org/Encode#UTF-8-vs.-utf8-vs.-UTF8
This new behavior broke the build of several Debian packages. In some cases, it
was just the result of po4a being less forgiving about user configuration (eg,
Debian's #1072643). In Debian's #1073038, it was that po4a made a difference
between utf8 and UTF-8 in the encoding specification embedded in a POD file.
There is no such difference in this context, only in Perl internals: utf8 is
lax parsing while UTF-8 is picky parsing, but both lead to the same result if
the file is correctly encoded following the UTF-8 standard. po4a now takes UTF-
8 (picky parsing) in both cases for POD files.
Here are the other changes:
General:
* Try to not fail when writing UTF po files with old Perl versions
(GitHub's #495) [Ineiev].
* Improve various error messages to help users debugging encoding issues.
Documentation:
* Fix the doc of TransTractor::read() now that the refname is mandatory
(GitHub's #504, also involved in Debian's #1072760)
Translations:
* Updated: Italian, thanks Marco Ciampa.
* Updated: French, thanks brandelune.
* Updated: German, thanks Helge Kreutzmann.
* Updated: Japanese, thanks gemmaro.
* Updated: Serbian & Serbian (cyrillic), thanks Ivan Pesic.
* Updated: Spanish, thanks gallegonovato.
Status of the binary translation:
* 4 languages = 100%: de, ja, sr, sr_Cyrl.
* 8 languages >= 95%: es (98%), fr (98%), it (98%), nb (95%), nl (98%), pt_BR
(95%), ru (95%), uk (95%).
* 1 language >= 90%: pt (90%).
* 5 languages >= 80%: eo (87%), hr (87%), hu (84%), zh_Hans (86%), zh_Hant
(86%).
* 1 language >= 70%: id (71%).
* 8 languages >= 50%: cs (53%), da (62%), et (62%), eu (52%), pl (57%), sl
(51%), sv (66%), vi (62%).
* 1 language >= 33%: ca (41%).
* 6 starting languages: ace (2%), af (7%), ar (12%), ka (15%), kn (7%), ko
(17%).
Status of the documentation translation:
* 2 languages = 100%: de, it.
* 8 languages >= 95%: es (99%), fr (99%), ja (99%), nl (99%), pt_BR (97%), sr
(99%), sr_Cyrl (99%), uk (97%).
* 4 languages >= 80%: pt (87%), ru (83%), zh_Hans (87%), zh_Hant (87%).
* 1 language >= 50%: pl (62%).
* 1 language >= 33%: ca (40%).
* 4 starting languages: eo (3%), hr (0%), hu (0%), nb (4%).
Happy translating,
Mt.