File langset.pl of Package kiwi-config-openSUSE
#!/usr/bin/perl
$Lang=""; $Terr="";
open(CMDL, "</proc/cmdline" );
while (<CMDL>) {
if (m,lang=([a-z][a-z])([_@][\w@]+)?,) {
$Lang=$1;
$Terr=$2;
last;
}
}
close CMDL;
my %values = ();
if (open(CONF, "</etc/langset/$Lang$Terr" ) ||
open(CONF, "</etc/langset/$Lang" )) {
while (<CONF>) {
if ( /^([A-Z_]*): (.*)$/ ) {
$values{$1} = $2;
}
}
close CONF;
}
foreach $key (keys %values) {
$value = $values{$key};
next if ($value eq "");
system("sed -i -e 's#$key=\".*#$key=\"$value\"#' /etc/sysconfig/language");
system("sed -i -e 's#$key=\".*#$key=\"$value\"#' /etc/sysconfig/keyboard");
system("sed -i -e 's#$key=\".*#$key=\"$value\"#' /etc/sysconfig/console");
}
open(FH, ">/etc/langset.xkb");
print FH $values{"XkbLayout"} . "\n";
print FH $values{"XkbModel"} . "\n";
print FH $values{"XkbOptions"} . "\n";
print FH $values{"XkbVariant"} . "\n";
close(FH);