5 use vars
qw(@ISA @EXPORT);
8 use Locale
::Messages qw
(:libintl_h dgettext
);
22 my ($self, $textdomain) = @_;
24 # like Locale/TextDomain.pm
25 # usage: use PVE::I18N qw(<textdomain>)
27 $textdomain = 'pve-manager' if !$textdomain;
31 return if exists $textdomains{$package};
33 # Remember the textdomain of that package.
34 $textdomains{$package} = $textdomain;
36 PVE
::I18N-
>export_to_level (1, $package, @EXPORT);
41 my $section = 'default';
44 open (SYSCFG
, "</etc/pve/pve.cfg") || return $lang;
45 while (my $line = <SYSCFG
>) {
47 if ($line =~ m/\s*language\s*:\s*(\S+)\s*$/) {
62 $lang_is_utf8 = scalar (grep { $language eq $_ } qw
(vi pl ja hu ro ru fr tr zh_CN sr cs sl
))
74 my $oldlang = $ENV{LANGUAGE
};
75 my $oldlc_all = $ENV{LC_ALL
};
76 $ENV{LANGUAGE
} = $language;
79 my $textdomain = $textdomains{$package};
81 my $res = dgettext
($textdomain, $msgid);
84 $res = decode
('UTF-8', $res) ;
86 $res = decode
('iso-8859-1', $res) ;
89 $ENV{LANGUAGE
} = $oldlang || '';
90 $ENV{LC_ALL
} = $oldlc_all || '';