--- /dev/null
+use utf8;
+our %rows = (
+ '¬' => '◌',
+ '`' => '◌',
+ '~' => '¦',
+ '!' => '¡',
+ '1' => '¹',
+ '"' => '½',
+ '2' => '◌',
+ '£' => '⅓',
+ '3' => '³',
+ '$' => '¼',
+ '4' => '€',
+ '%' => '⅜',
+ '5' => '½',
+ '^' => '⅝',
+ '6' => '◌',
+ '&' => '⅞',
+ '7' => '{',
+ '*' => '™',
+ '8' => '[',
+ '(' => '±',
+ '9' => ']',
+ ')' => '°',
+ '0' => '}',
+ '_' => '¿',
+ '-' => '\\',
+ '+' => '◌',
+ '=' => '◌',
+ 'Q' => 'Ω',
+ 'q' => '@',
+ 'W' => 'Ẃ',
+ 'w' => 'ẃ',
+ 'E' => 'É',
+ 'e' => 'é',
+ 'R' => '®',
+ 'r' => '¶',
+ 'T' => 'Ŧ',
+ 't' => 'ŧ',
+ 'Y' => 'Ý',
+ 'y' => 'ý',
+ 'U' => 'Ú',
+ 'u' => 'ú',
+ 'I' => 'Í',
+ 'i' => 'í',
+ 'O' => 'Ó',
+ 'o' => 'ó',
+ 'P' => 'Þ',
+ 'p' => 'þ',
+ '{' => '◌',
+ '[' => '◌',
+ '}' => '◌',
+ ']' => '◌',
+ 'A' => 'Á',
+ 'a' => 'á',
+ 'S' => '§',
+ 's' => 'ß',
+ 'D' => 'Ð',
+ 'd' => 'ð',
+ 'F' => 'ª',
+ 'f' => 'đ',
+ 'G' => 'Ŋ',
+ 'g' => 'ŋ',
+ 'H' => 'Ħ',
+ 'h' => 'ħ',
+ 'J' => '◌',
+ 'j' => '◌',
+ 'K' => '&',
+ 'k' => 'ĸ',
+ 'L' => 'Ł',
+ 'l' => 'ł',
+ ':' => '◌',
+ ';' => '◌',
+ '@' => '◌',
+ '\'' => '◌',
+ '~' => '◌',
+ '#' => '◌',
+ '|' => '¦',
+ '\\'=> '|',
+ 'Z' => '<',
+ 'z' => '«',
+ 'X' => '>',
+ 'x' => '»',
+ 'C' => 'Ç',
+ 'c' => 'ç',
+ 'V' => '‘',
+ 'v' => '“',
+ 'B' => '’',
+ 'b' => '”',
+ 'N' => 'N',
+ 'n' => 'n',
+ 'M' => 'º',
+ 'm' => 'µ',
+ '<' => '×',
+ ',' => '─',
+ '>' => '÷',
+ '.' => '·',
+ '?' => '◌',
+ '/' => '◌',
+);
+
++{
+ %{ do 'keyboard.eng.inc.pl' },
+ title => 'UK-extended',
+ version => '1.0',
+ intro => join("\n",
+ "A Chrome OS extension",
+ "expanding on Windows' UK Extended QWERTY keyboard.",
+ 'Similar to the <a href="/keyboard/altgr">US international</a> variant.',
+ ),
+ description => [
+ "Google UK-Extended keyboard layout table for Chrome OS",
+ "with the AltGr modifier key.",
+ ],
+}
my $v = $rows{$_};
my $class = (
!defined $v || $_ eq $v ? 1 # identical
- : $v =~ /\A\p{Mn}+\z/ ? 8 # combining accent
- : NFKD($v) =~ $_ ? 2 # decomposed equivalent
- : $v =~ /^\p{Latin}/ ? 4 # latin script
- : unidecode($v) =~ /^\W*\Q$_/ ? 5 # transliterated
- : 7
+ : $v =~ /\A\p{Mn}+\z/ ? 9 # combining accent
+ : $v =~ /\A[\p{Sk}\p{Lm}]+\z/ ? 8 # modifier symbol
+ : $v =~ /\A[\pM\pP]+\z/ ? 7 # mark
+ : NFKD($v) =~ /\Q$_/ ? 2 # decomposed equivalent
+ : unidecode($v) =~ /\Q$_\E+/i ? 4 # transliterated
+ : $v =~ /^\p{Latin}/ ? 5 # latin script
+ : 6
);
$_ => "g$class"
} keys %rows
flag => {
g1 => ['unaltered', "same results as without modifier"],
g2 => ['accented', "decomposes to the original letter with a combining accent"],
- g4 => ['latin', "a different (accented) latin letter"],
- g5 => ['similar', "transliterates (mostly) into the unmodified letter"],
- g7 => ['other', "symbol not directly deducible from key"],
- g8 => ['combining', "diacritical mark to be combined with a following character"],
+ g4 => ['similar', "transliterates (mostly) into the unmodified letter"],
+ g5 => ['latin', "a different (accented) latin letter"],
+ g6 => ['symbol', "other character not directly deducible from key"],
+ g7 => ['punctuation', "(punctuation) mark"],
+ g8 => ['mark', "modifier letter or mark (spacing diacritic)"],
+ g9 => ['combining', "diacritical mark to be combined with a following character"],
},
}