summaryrefslogtreecommitdiffstats
path: root/perl-install/share/po/ky.po
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/share/po/ky.po')
-rw-r--r--perl-install/share/po/ky.po8
1 files changed, 4 insertions, 4 deletions
diff --git a/perl-install/share/po/ky.po b/perl-install/share/po/ky.po
index 3661bd017..5312222a7 100644
--- a/perl-install/share/po/ky.po
+++ b/perl-install/share/po/ky.po
@@ -1043,7 +1043,7 @@ msgstr ""
#: authentication.pm:377
#, c-format
-msgid "Can not use broadcast with no NIS domain"
+msgid "Cannot use broadcast with no NIS domain"
msgstr "NIS доменисиз обого чыгарууну колдонууга болбойт"
#: authentication.pm:893
@@ -1766,7 +1766,7 @@ msgstr "%s түзүлүшүн кайда бириктиргиңиз келет?"
#: diskdrake/interactive.pm:716
#, c-format
msgid ""
-"Can not unset mount point as this partition is used for loop back.\n"
+"Cannot unset mount point as this partition is used for loop back.\n"
"Remove the loopback first"
msgstr ""
"Биригүү чекитин алып салууга болобой, себеби бул бөлүм loop back\n"
@@ -2264,7 +2264,7 @@ msgstr "Айнуу"
#: diskdrake/smbnfs_gtk.pm:164
#, c-format
-msgid "Can not login using username %s (bad password?)"
+msgid "Cannot login using username %s (bad password?)"
msgstr "%s колдонуучу аты менен кирүүгө мүмкүн болбоду (парол туурабы?)"
#: diskdrake/smbnfs_gtk.pm:168 diskdrake/smbnfs_gtk.pm:177
@@ -5150,7 +5150,7 @@ msgstr ""
#: raid.pm:42
#, c-format
-msgid "Can not add a partition to _formatted_ RAID %s"
+msgid "Cannot add a partition to _formatted_ RAID %s"
msgstr ""
#: raid.pm:165
58' href='#n158'>158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205

package keyboard;

use diagnostics;
use strict;

#-######################################################################################
#- misc imports
#-######################################################################################
use common qw(:common :system :file);
use run_program;
use commands;
use log;
use c;


#-######################################################################################
#- Globals
#-######################################################################################
my $KMAP_MAGIC = 0x8B39C07F;

#- a best guess of the keyboard layout, based on the choosen locale
my %lang2keyboard =
(
  'af' => 'us_intl',
  'bg' => 'bg',
  'br' => 'fr',
  'ca' => 'es',
  'cs' => 'cz',
  'cy' => 'uk',
  'da' => 'dk',
'de_AT'=> 'de',
'de_DE'=> 'de', 
  'el' => 'gr',
  'en' => 'us',
'en_GB'=> 'uk',
  'eo' => 'us_intl',
'es_AR'=> 'la',
'es_ES'=> 'es',
'es_MX'=> 'la',
  'es@tradicional' => 'es',
  'es' => 'es',
  'et' => 'ee',
  'eu' => 'es',
  'fi' => 'fi',
'fr_FR'=> 'fr',
  'ga' => 'uk',
  'gl' => 'es',
  'he' => 'il',
  'hr' => 'yu',
  'hu' => 'hu',
  'hy' => 'am',
  'is' => 'is',
  'it' => 'it',
  'ka' => 'ge_la',
  'lt' => 'lt',
  'nl' => 'nl',
  'no' => 'no',
  'no@nynorsk' => 'no',
  'oc' => 'fr',
  'pl' => 'pl',
'pt_BR'=> 'br',
'pt_PT'=> 'pt',
  'ru' => 'ru',
  'sk' => 'sk',
  'sl' => 'si',
  'sr' => 'yu',
  'sv' => 'se',
  'th' => 'th',
  'tr' => 'tr_q',
  'uk' => 'ua',
  'wa' => 'be',
);

#- key = extension for Xmodmap file, [0] = description of the keyboard,
#- [1] = name for loadkeys, [2] = name for XKB
my %keyboards = (
 "am" => [ __("Armenian"),       "am-armscii8", "am" ],
 "be" => [ __("Belgian"),        "be-latin1",   "be" ],
 "bg" => [ __("Bulgarian"),      "bg",          "bg" ],
 "br" => [ __("Brazilian"),      "br-abnt2",    "br" ],
 "ch_de" => [ __("Swiss (French layout)"), "fr_CH-latin1", "fr_CH" ],
 "ch_fr" => [ __("Swiss (German layout)"), "sg-latin1", "de_CH" ],
 "cz" => [ __("Czech"),          "cz-latin2",   "cs" ],
 "de" => [ __("German"),         "de-latin1",   "de" ],
 "dk" => [ __("Danish"),         "dk-latin1",   "dk" ],
 "dvorak" => [ __("Dvorak"),     "pc-dvorak-latin1", "dvorak" ],
 "ee" => [ __("Estonian"),       "ee-latin9",   "ee" ],
 "es" => [ __("Spanish"),        "es-latin1",   "es" ],
 "fi" => [ __("Finnish"),        "fi-latin1",   "fi" ],
 "fr" => [ __("French"),         "fr-latin1",   "fr" ],
 "ge_ru"=>[__("Georgian (\"Russian\" layout)"),"ge_ru-georgian_academy","ge_ru"],
 "ge_la"=>[__("Georgian (\"Latin\" layout)"),"ge_la-georgian_academy","ge_la"],
 "gr" => [ __("Greek"),          "gr-8859_7",   "gr" ],
 "hu" => [ __("Hungarian"),      "hu-latin2",   "hu" ],
 "il" => [ __("Israeli"),        "il-8859_8",   "il" ],
 "il_phonetic" => [ __("Israeli (Phonetic)"),"hebrew",   "il_phonetic" ],
 "is" => [ __("Icelandic"),      "is-latin1",   "is" ],
 "it" => [ __("Italian"),        "it-latin1",   "it" ],
 "la" => [ __("Latin American"), "la-latin1",   "la" ],
 "nl" => [ __("Dutch"),          "nl-latin1",   "nl" ],
 "lt" => [ __("Lithuanian AZERTY"), "lt-latin7","lt" ],
 "lt_b" => [ __("Lithuanian \"number row\" QWERTY"), "ltb-latin7", "lt_b" ],
 "lt_p" => [ __("Lithuanian \"phonetic\" QWERTY"), "ltp-latin7", "lt_p" ],
 "no" => [ __("Norwegian"),      "no-latin1",   "no" ],
 "pl" => [ __("Polish"),         "pl-latin2",   "pl" ],
 "pt" => [ __("Portuguese"),     "pt-latin1",   "pt" ],
 "qc" => [ __("Canadian (Quebec)"), "qc-latin1","ca_enhanced" ],
 "ru" => [ __("Russian"),        "ru4",         "ru" ],
 "ru_yawerty" => [ __("Russian (Yawerty)"),"ru-yawerty","ru_yawerty" ],
 "se" => [ __("Swedish"),        "se-latin1",   "se_SE" ],
 "si" => [ __("Slovenian"),      "slovene",     "si" ],
 "sk" => [ __("Slovakian"),      "sk-qwertz",   "czsk" ],
 "th" => [ __("Thai keyboard"),  "th",          "th" ],
 "tr_f" => [ __("Turkish (traditional \"F\" model)"), "trf", "tr_f" ],
 "tr_q" => [ __("Turkish (modern \"Q\" model)"), "tr_q-latin5", "tr_q" ],
 "ua" => [ __("Ukrainian"),      "ua",           "ua" ],
 "uk" => [ __("UK keyboard"),    "uk",           "gb" ],
 "us" => [ __("US keyboard"),    "us",           "us" ],
 "us_intl" => [ __("US keyboard (international)"), "us-latin1", "us_intl" ],
 "yu" => [ __("Yugoslavian (latin layout)"), "sr", "yu" ],
);

#-######################################################################################
#- Functions
#-######################################################################################
sub list { map { $_->[0] } values %keyboards }
sub xmodmaps { keys %keyboards }
sub keyboard2text { $keyboards{$_[0]} && $keyboards{$_[0]}[0] }
sub keyboard2kmap { $keyboards{$_[0]} && $keyboards{$_[0]}[1] }
sub keyboard2xkb  { $keyboards{$_[0]} && $keyboards{$_[0]}[2] }
sub text2keyboard {
    my ($t) = @_;
    while (my ($k, $v) = each %keyboards) {
        lc($v->[0]) eq lc($t) and return $k;
    }
    die "unknown keyboard $t";
}


sub lang2keyboard($) {
    local ($_) = @_;
    $lang2keyboard{$_} || $keyboards{$_} && $_ || substr($_, 0, 2);
}

sub load($) {
    my ($keymap) = @_;

    my ($magic, @keymaps) = unpack "I i" . c::MAX_NR_KEYMAPS() . "a*", $keymap;
    $keymap = pop @keymaps;

    $magic != $KMAP_MAGIC and die "failed to read kmap magic";

    local *F;
    sysopen F, "/dev/console", 2 or die "failed to open /dev/console: $!";

    my $count = 0;
    foreach (0 .. c::MAX_NR_KEYMAPS() - 1) {
	$keymaps[$_] or next;

	my @keymap = unpack "s" . c::NR_KEYS() . "a*", $keymap;
	$keymap = pop @keymap;

	my $key = -1;
	foreach my $value (@keymap) {
	    $key++;
	    c::KTYP($value) != c::KT_SPEC() or next;
	    ioctl(F, c::KDSKBENT(), pack("CCS", $_, $key, $value)) or die "keymap ioctl failed ($_ $key $value): $!";
	 }
	$count++;
    }
    log::l("loaded $count keymap tables");
}

sub setup($) {
    my ($keyboard) = @_;
    my $o = $keyboards{$keyboard} or return;

    if (my $file = commands::install_cpio("/usr/share/keymaps", "$o->[1].kmap")) {
	log::l("loading keymap $o->[1]");
	load(cat_($file)) if -e $file;
    }
    if (my $file = commands::install_cpio("/usr/share/xmodmap", "xmodmap.$keyboard")) {
	eval { run_program::run('xmodmap', $file) } unless $::testing;
    }
}

sub write($$;$) {
    my ($prefix, $keyboard, $isNotDelete) = @_;

    setVarsInSh("$prefix/etc/sysconfig/keyboard", { KEYTABLE => keyboard2kmap($keyboard), $isNotDelete ? () : (BACKSPACE => "Delete") });
    run_program::rooted($prefix, "dumpkeys > /etc/sysconfig/console/default.kmap") or die "dumpkeys failed";
}

sub read($) {
    my ($prefix) = @_;

    my %keyf = getVarsFromSh("$prefix/etc/sysconfig/keyboard");
    map { keyboard2kmap($_) eq $keyf{KEYTABLE} || $_ eq $keyf{KEYTABLE} ? $_ : (); } keys %keyboards;
}

#-######################################################################################
#- Wonderful perl :(
#-######################################################################################
1;