Thread gettext: Spracheinstellung des Browser (6 answers)
Opened by norritt at 2006-07-23 05:53

norritt
 2006-07-23 05:53
#8453 #8453
User since
2006-07-23
2 Artikel
BenutzerIn
[default_avatar]
moin,

versuche grad eine Webseite mit gettext international zu machen... Möchte dabei die Spracheinstellungen des Browsers nutzen, sodas die Texte gleich in der richtigen Sprache angezeigt werden... ohne das der Benutzer eine Auswahl treffen muss.
mein Problem: Wie teile ich die Spracheinstellung des Browser gettext/setlocale mit?
Es soll nicht die LANG Einstellung des ausfuehrenden Servers genutzt werden..

meine ersten Versuche: testcgi.pl
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl -w

use Locale::gettext;
use POSIX; # Needed for setlocale()
use strict;

my $lang = $ENV{'HTTP_ACCEPT_LANGUAGE'};
if((split(/,/, $lang))[0] =~ /^en(.*)/) { $lang = "en"; }
elsif((split(/,/, $lang))[0] =~ /de(.*)/) { $lang = "de"; }
else { $lang = "en"; }
#$ENV{'LANG'}="$lang";
# hier soll die spracheinstellung des browser beachtet werden...
# nicht die des ausfuehrenden servers
setlocale(LC_MESSAGES, $lang);
bindtextdomain("testcgi", "/usr/share/locale");
textdomain("testcgi");
...
print "Content-type: text/html\n\n";
print "<html><head><title>gettext</title></head><body>";
print "<h1>".gettext("Hello gettext")."</h1>";
print "</body></html>";


in /usr/share/locale/de/LC_MESSAGES/ und /usr/share/locale/en/LC_MESSAGES/ liegen die testcgi.mo Übersetzungsdateinen.
Aber er nimmt die Browser-Einstellungen nicht an :( Watt mach ich falsch?

View full thread gettext: Spracheinstellung des Browser