File: Translator.pod

package info (click to toggle)
liblog-report-perl 1.41-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 572 kB
  • sloc: perl: 2,819; makefile: 8
file content (82 lines) | stat: -rw-r--r-- 2,044 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
=encoding utf8

=head1 NAME

Log::Report::Translator - base implementation for translating messages

=head1 INHERITANCE

 Log::Report::Translator is extended by
   Log::Report::Translator::Gettext
   Log::Report::Translator::POT

=head1 SYNOPSIS

  # internal infrastructure
  my $msg = Log::Report::Message->new(_msgid => "Hello World\n");
  print Log::Report::Translator->new(...)->translate($msg);

  # normal use
  textdomain 'my-domain',
    translator => Log::Report::Translator->new;  # default
  print __"Hello World\n";

=head1 DESCRIPTION

A module (or distribution) has a certain way of translating messages,
usually C<gettext>.  The translator is based on some C<textdomain>
for the message, which can be specified as option per text element,
but usually is package scoped.

This base class does not translate at all: it will use the MSGID
(and MSGID_PLURAL if available).  It's a nice fallback if the
language packs are not installed.

=head1 METHODS

=head2 Constructors

=over 4

=item $class-E<gt>B<new>(%options)

Z<>

=back

=head2 Accessors

=head2 Translating

=over 4

=item $obj-E<gt>B<load>($domain, $locale)

Load the translation information in the text C<$domain> for the indicated C<$locale>.
Multiple calls to L<load()|Log::Report::Translator/"Translating"> should not cost significant performance: the
data must be cached.

=item $obj-E<gt>B<translate>( $message, [$language, $ctxt] )

Returns the translation of the C<$message>, a L<Log::Report::Message|Log::Report::Message> object,
based on the current locale.

Translators are permitted to peek into the internal HASH of the
message object, for performance reasons.

=back

=head1 SEE ALSO

This module is part of Log-Report version 1.41,
built on September 11, 2025. Website: F<http://perl.overmeer.net/CPAN/>

=head1 LICENSE

For contributors see file ChangeLog.

This software is copyright (c) 2007-2025 by Mark Overmeer.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.