César-François Cassini de Thury was born 310 years ago, and then made
a bunch of nice-looking topographic maps of France and around.
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.
The thing is that 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.-UTF8This 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.
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%).