-
Notifications
You must be signed in to change notification settings - Fork 213
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use locale pragma instead of POSIX::setlocale()
The Pragma is more likely to do the right thing, as confirmed by new tests, which fail when using `setlocale` and now succeed with `use locale`. The tests, in `xt/locale`, include compiled locale dictionaries (`*.mo` files) with a single message for the tested languages. This is in contrast to the released locale dictionaries, which are generated at release time but not stored in the repository. Update the `Language-Team` header in the project localization packages in `po` directory to `Sqitch Hackers <sqitch-hackers@googlegroups.com>`. Update the `os.yml` and `perl.yml` workflows, which run all tests including the new locale tests, to install the required locales on Linux and to set the full `runs-on:` image name in the matrix (in response to shogo82148/actions-setup-perl#1699). Also remove the installation of an older version of Locale::TextDomain from those workflows, since gflohr/libintl-perl#7 has been fixed and released. While at it, upgrade to `actions/checkout@v4` in all workflows and use `runner.os` instead of `matrix.os` in conditionals.
- Loading branch information
Showing
30 changed files
with
170 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,7 +13,8 @@ | |
/_rpmbuild | ||
/target | ||
.build/ | ||
*.mo | ||
.al | ||
/latest_changes.md | ||
/local/ | ||
/LocaleData/ | ||
/lib/LocaleData/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,6 @@ | ||
#!perl -w -CAS | ||
|
||
# VERSION | ||
use POSIX qw(setlocale); | ||
BEGIN { | ||
if ($^O eq 'MSWin32') { | ||
require Win32::Locale; | ||
setlocale POSIX::LC_ALL, Win32::Locale::get_locale(); | ||
} else { | ||
setlocale POSIX::LC_ALL, ''; | ||
} | ||
} | ||
use locale; | ||
use App::Sqitch; | ||
|
||
exit App::Sqitch->go; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
Sqitch Locale Test | ||
================== | ||
|
||
This directory contains the files necessary to test the Sqitch CLI to ensure it | ||
properly detects locale settings and emits translated messages. The | ||
[`po` directory here](./po/), unlike the canonical translations in the root `po` | ||
directory, contains only a few languages translating a single message: | ||
|
||
``` | ||
"{command}" is not a valid command | ||
``` | ||
|
||
The `LocaleData` directory contains the compiled forms of these dictionaries, | ||
and unlike the main dictionaries, these are committed to the repository. This | ||
allows the [OS](.github/workflows/os.yml) and [Perl](.github/workflows/os.yml) | ||
workflows to run without the overhead of compiling them (a PITA since `gettext` | ||
is hard to get on Windows and Dist::Zilla supports only more recent versions of | ||
Perl). If the messages need to change, recompile the dictionaries with these | ||
commands: | ||
|
||
```sh | ||
cpanm Dist::Zilla --notest | ||
dzil authordeps --missing | cpanm --notest | ||
dzil msg-compile -d xt/locale xt/locale/po/*.po | ||
``` | ||
|
||
For errors where it can't find `msgformat` or `gettext`, be sure that [gettext] | ||
is installed (readily available via `apt-get`, `yum`, or `brew`). | ||
|
||
Now run the test, which validates the output from [`bin/sqitch`](bin/sqitch): | ||
|
||
```sh | ||
prove -lv xt/locale/test-cli.t | ||
``` | ||
|
||
If tests fail, be sure each of the locales is installed on your system. | ||
Apt-based systems, for example, require the relevant language packs: | ||
|
||
```sh | ||
sudo apt-get install -qq language-pack-fr language-pack-en language-pack-de language-pack-it | ||
``` | ||
|
||
[gettext]: https://www.gnu.org/software/gettext/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
msgid "" | ||
msgstr "" | ||
"Language: de\n" | ||
"Project-Id-Version: Sqitch 1.4.1\n" | ||
"PO-Revision-Date: 22024-01-06T21:10:06Z\n" | ||
"Last-Translator: Sqitch Hackers <sqitch-hackers@googlegroups.com>\n" | ||
"Language-Team: Sqitch Hackers <sqitch-hackers@googlegroups.com>\n" | ||
"MIME-Version: 1.0\n" | ||
"Content-Type: text/plain; charset=UTF-8\n" | ||
"Content-Transfer-Encoding: 8bit\n" | ||
msgid "\"{command}\" is not a valid command" | ||
msgstr "\"{command}\" ist ein ungültiger Befehl" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
msgid "" | ||
msgstr "" | ||
"Language: fr\n" | ||
"Project-Id-Version: Sqitch 1.4.1\n" | ||
"PO-Revision-Date: 22024-01-06T21:10:06Z\n" | ||
"Last-Translator: Sqitch Hackers <sqitch-hackers@googlegroups.com>\n" | ||
"Language-Team: Sqitch Hackers <sqitch-hackers@googlegroups.com>\n" | ||
"MIME-Version: 1.0\n" | ||
"Content-Type: text/plain; charset=UTF-8\n" | ||
"Content-Transfer-Encoding: 8bit\n" | ||
msgid "\"{command}\" is not a valid command" | ||
msgstr "\"{command}\" n'est pas une commande valide" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
msgid "" | ||
msgstr "" | ||
"Language: it\n" | ||
"Project-Id-Version: Sqitch 1.4.1\n" | ||
"PO-Revision-Date: 22024-01-06T21:10:06Z\n" | ||
"Last-Translator: Sqitch Hackers <sqitch-hackers@googlegroups.com>\n" | ||
"Language-Team: Sqitch Hackers <sqitch-hackers@googlegroups.com>\n" | ||
"MIME-Version: 1.0\n" | ||
"Content-Type: text/plain; charset=UTF-8\n" | ||
"Content-Transfer-Encoding: 8bit\n" | ||
msgid "\"{command}\" is not a valid command" | ||
msgstr "\"{command}\" non è un comando valido" |
Oops, something went wrong.