Gettext/Perl
From Get docs
Next: PHP, Previous: Tcl, Up: List of Programming Languages [Contents][Index]
15.5.21 Perl
- RPMs
- perl
- Ubuntu packages
- perl, libintl-perl
- File extension
pl
,PL
,pm
,perl
,cgi
- String syntax
- ;*
"abc"
'abc'
qq (abc)
q (abc)
qr /abc/
qx (/bin/date)
/pattern match/
?pattern match?
s/substitution/operators/
$tied_hash{"message"}
$tied_hash_reference->{"message"}
- etc., issue the command ‘
man perlsyn
’ for details
- gettext shorthand
__
(double underscore)- gettext/ngettext functions
gettext
,dgettext
,dcgettext
,ngettext
,dngettext
,dcngettext
,pgettext
,dpgettext
,dcpgettext
,npgettext
,dnpgettext
,dcnpgettext
- textdomain
textdomain
function- bindtextdomain
bindtextdomain
function- bind_textdomain_codeset
bind_textdomain_codeset
function- setlocale
- Use
setlocale (LC_ALL, "");
- Prerequisite
use POSIX;
use Locale::TextDomain;
(included in the package libintl-perl which is available on the Comprehensive Perl Archive Network CPAN, https://www.cpan.org/).- Use or emulate GNU gettext
- platform dependent: gettext_pp emulates, gettext_xs uses GNU gettext
- Extractor
xgettext -k__ -k\$__ -k%__ -k__x -k__n:1,2 -k__nx:1,2 -k__xn:1,2 -kN__ -kN__n:1,2 -k__p:1c,2 -k__np:1c,2,3 -kN__p:1c,2 -kN__np:1c,2,3
- Formatting with positions
- Both kinds of format strings support formatting with positions.
printf "%2\$d %1\$d", ...
(requires Perl 5.8.0 or newer)__expand("[new] replaces [old]", old => $oldvalue, new => $newvalue)
- Portability
- The
libintl-perl
package is platform independent but is not part of the Perl core. The programmer is responsible for providing a dummy implementation of the required functions if the package is not installed on the target system. - po-mode marking
- —
- Documentation
- Included in
libintl-perl
, available on CPAN (https://www.cpan.org/).
An example is available in the examples
directory: hello-perl
.
The xgettext
parser backend for Perl differs significantly from
the parser backends for other programming languages, just as Perl
itself differs significantly from other programming languages. The
Perl parser backend offers many more string marking facilities than
the other backends but it also has some Perl specific limitations, the
worst probably being its imperfectness.
• General Problems: | General Problems Parsing Perl Code | |
• Default Keywords: | Which Keywords Will xgettext Look For? | |
• Special Keywords: | How to Extract Hash Keys | |
• Quote-like Expressions: | What are Strings And Quote-like Expressions? | |
• Interpolation I: | Invalid String Interpolation | |
• Interpolation II: | Valid String Interpolation | |
• Parentheses: | When To Use Parentheses | |
• Long Lines: | How To Grok with Long Lines | |
• Perl Pitfalls: | Bugs, Pitfalls, and Things That Do Not Work |
Next: PHP, Previous: Tcl, Up: List of Programming Languages [Contents][Index]