summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/c/stuff.xs.pl15
-rw-r--r--perl-install/common.pm11
-rw-r--r--perl-install/interactive.pm2
-rw-r--r--perl-install/lang.pm6
4 files changed, 16 insertions, 18 deletions
diff --git a/perl-install/c/stuff.xs.pl b/perl-install/c/stuff.xs.pl
index 403735ae2..aa9fda760 100644
--- a/perl-install/c/stuff.xs.pl
+++ b/perl-install/c/stuff.xs.pl
@@ -179,21 +179,6 @@ setMouseLive(display, type, emulate3buttons)
';
print '
-SV *
-dgettext_utf8(domainname, msgid)
- char * domainname
- char * msgid
-
- CODE:
- /* always convert to UTF8, because perl will fail to do it correctly
- * during install (and it needs to be done for gtk2-perl) - presumably
- * due to incorrect locales */
- RETVAL = iconv_(dgettext(domainname, msgid), nl_langinfo(CODESET), "UTF-8");
- SvUTF8_on(RETVAL);
-
- OUTPUT:
- RETVAL
-
char *
dgettext(domainname, msgid)
char * domainname
diff --git a/perl-install/common.pm b/perl-install/common.pm
index 5fa23c479..339e0aa00 100644
--- a/perl-install/common.pm
+++ b/perl-install/common.pm
@@ -51,16 +51,23 @@ sub salt {
sub makedev { ($_[0] << 8) | $_[1] }
sub unmakedev { $_[0] >> 8, $_[0] & 0xff }
-sub translate {
+sub translate_real {
my ($s) = @_;
$s or return '';
foreach ('libDrakX', @::textdomains) {
- my $s2 = $::isInstall && eval { $::o->isa('interactive::gtk') } ? c::dgettext_utf8($_, $s) : c::dgettext($_, $s);
+ my $s2 = c::dgettext($_, $s);
return $s2 if $s ne $s2;
}
$s;
}
+sub translate {
+ my $s = translate_real(@_);
+ $::need_utf8_i18n and c::set_tagged_utf8($s);
+ $s;
+}
+
+
sub untranslate {
my $s = shift || return;
foreach (@_) { translate($_) eq $s and return $_ }
diff --git a/perl-install/interactive.pm b/perl-install/interactive.pm
index 58b019a37..9761d83a1 100644
--- a/perl-install/interactive.pm
+++ b/perl-install/interactive.pm
@@ -105,6 +105,8 @@ sub vnew {
if (!$@) {
my $o = interactive::gtk->new;
if ($icon && $icon ne 'default' && !$::isWizard) { $o->{icon} = $icon } else { undef $o->{icon} }
+ c::bind_textdomain_codeset($_, 'UTF8') foreach 'libDrakX', @::textdomains;
+ $::need_utf8_i18n = 1;
return $o;
}
} else {
diff --git a/perl-install/lang.pm b/perl-install/lang.pm
index 860544481..6abc10553 100644
--- a/perl-install/lang.pm
+++ b/perl-install/lang.pm
@@ -779,6 +779,7 @@ sub bindtextdomain() {
c::setlocale();
c::bind_textdomain_codeset('libDrakX', 'UTF-8');
+ $::need_utf8_i18n = 1;
c::bindtextdomain('libDrakX', $localedir);
$localedir;
@@ -828,7 +829,10 @@ sub load_console_font {
#- in console mode install, ensure we'll get translations in the right codeset
#- (charset of locales reported by the glibc are UTF-8 during install)
- $acm and c::bind_textdomain_codeset('libDrakX', lang2charset($lang));
+ if ($acm) {
+ c::bind_textdomain_codeset('libDrakX', lang2charset($lang));
+ $::need_utf8_i18n = 0;
+ }
}
sub get_x_fontset {