1*2b949d04SAndroid Build Coastguard Worker// The <KPDL> key is a mess. 2*2b949d04SAndroid Build Coastguard Worker// It was probably originally meant to be a decimal separator. 3*2b949d04SAndroid Build Coastguard Worker// Except since it was declared by USA people it didn't use the original 4*2b949d04SAndroid Build Coastguard Worker// SI separator "," but a "." (since then the USA managed to f-up the SI 5*2b949d04SAndroid Build Coastguard Worker// by making "." an accepted alternative, but standards still use "," as 6*2b949d04SAndroid Build Coastguard Worker// default) 7*2b949d04SAndroid Build Coastguard Worker// As a result users of SI-abiding countries expect either a "." or a "," 8*2b949d04SAndroid Build Coastguard Worker// or a "decimal_separator" which may or may not be translated in one of the 9*2b949d04SAndroid Build Coastguard Worker// above depending on applications. 10*2b949d04SAndroid Build Coastguard Worker// It's not possible to define a default per-country since user expectations 11*2b949d04SAndroid Build Coastguard Worker// depend on the conflicting choices of their most-used applications, 12*2b949d04SAndroid Build Coastguard Worker// operating system, etc. Therefore it needs to be a configuration setting 13*2b949d04SAndroid Build Coastguard Worker// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 14*2b949d04SAndroid Build Coastguard Worker 15*2b949d04SAndroid Build Coastguard Worker 16*2b949d04SAndroid Build Coastguard Worker// Legacy <KPDL> #1 17*2b949d04SAndroid Build Coastguard Worker// This assumes KP_Decimal will be translated in a dot 18*2b949d04SAndroid Build Coastguard Workerpartial keypad_keys 19*2b949d04SAndroid Build Coastguard Workerxkb_symbols "dot" { 20*2b949d04SAndroid Build Coastguard Worker 21*2b949d04SAndroid Build Coastguard Worker key.type[Group1]="KEYPAD" ; 22*2b949d04SAndroid Build Coastguard Worker 23*2b949d04SAndroid Build Coastguard Worker key <KPDL> { [ KP_Delete, KP_Decimal ] }; // <delete> <separator> 24*2b949d04SAndroid Build Coastguard Worker}; 25*2b949d04SAndroid Build Coastguard Worker 26*2b949d04SAndroid Build Coastguard Worker 27*2b949d04SAndroid Build Coastguard Worker// Legacy <KPDL> #2 28*2b949d04SAndroid Build Coastguard Worker// This assumes KP_Separator will be translated in a comma 29*2b949d04SAndroid Build Coastguard Workerpartial keypad_keys 30*2b949d04SAndroid Build Coastguard Workerxkb_symbols "comma" { 31*2b949d04SAndroid Build Coastguard Worker 32*2b949d04SAndroid Build Coastguard Worker key.type[Group1]="KEYPAD" ; 33*2b949d04SAndroid Build Coastguard Worker 34*2b949d04SAndroid Build Coastguard Worker key <KPDL> { [ KP_Delete, KP_Separator ] }; // <delete> <separator> 35*2b949d04SAndroid Build Coastguard Worker}; 36*2b949d04SAndroid Build Coastguard Worker 37*2b949d04SAndroid Build Coastguard Worker 38*2b949d04SAndroid Build Coastguard Worker// Period <KPDL>, usual keyboard serigraphy in most countries 39*2b949d04SAndroid Build Coastguard Workerpartial keypad_keys 40*2b949d04SAndroid Build Coastguard Workerxkb_symbols "dotoss" { 41*2b949d04SAndroid Build Coastguard Worker 42*2b949d04SAndroid Build Coastguard Worker key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 43*2b949d04SAndroid Build Coastguard Worker 44*2b949d04SAndroid Build Coastguard Worker key <KPDL> { [ KP_Delete, period, comma, 0x100202F ] }; // <delete> . , ⍽ (narrow no-break space) 45*2b949d04SAndroid Build Coastguard Worker}; 46*2b949d04SAndroid Build Coastguard Worker 47*2b949d04SAndroid Build Coastguard Worker 48*2b949d04SAndroid Build Coastguard Worker// Period <KPDL>, usual keyboard serigraphy in most countries, latin-9 restriction 49*2b949d04SAndroid Build Coastguard Workerpartial keypad_keys 50*2b949d04SAndroid Build Coastguard Workerxkb_symbols "dotoss_latin9" { 51*2b949d04SAndroid Build Coastguard Worker 52*2b949d04SAndroid Build Coastguard Worker key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 53*2b949d04SAndroid Build Coastguard Worker 54*2b949d04SAndroid Build Coastguard Worker key <KPDL> { [ KP_Delete, period, comma, nobreakspace ] }; // <delete> . , ⍽ (no-break space) 55*2b949d04SAndroid Build Coastguard Worker}; 56*2b949d04SAndroid Build Coastguard Worker 57*2b949d04SAndroid Build Coastguard Worker 58*2b949d04SAndroid Build Coastguard Worker// Comma <KPDL>, what most non anglo-saxon people consider the real separator 59*2b949d04SAndroid Build Coastguard Workerpartial keypad_keys 60*2b949d04SAndroid Build Coastguard Workerxkb_symbols "commaoss" { 61*2b949d04SAndroid Build Coastguard Worker 62*2b949d04SAndroid Build Coastguard Worker key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 63*2b949d04SAndroid Build Coastguard Worker 64*2b949d04SAndroid Build Coastguard Worker key <KPDL> { [ KP_Delete, comma, period, 0x100202F ] }; // <delete> , . ⍽ (narrow no-break space) 65*2b949d04SAndroid Build Coastguard Worker}; 66*2b949d04SAndroid Build Coastguard Worker 67*2b949d04SAndroid Build Coastguard Worker 68*2b949d04SAndroid Build Coastguard Worker// Momayyez <KPDL>: Bahrain, Iran, Iraq, Kuwait, Oman, Qatar, Saudi Arabia, Syria, UAE 69*2b949d04SAndroid Build Coastguard Workerpartial keypad_keys 70*2b949d04SAndroid Build Coastguard Workerxkb_symbols "momayyezoss" { 71*2b949d04SAndroid Build Coastguard Worker 72*2b949d04SAndroid Build Coastguard Worker key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 73*2b949d04SAndroid Build Coastguard Worker 74*2b949d04SAndroid Build Coastguard Worker key <KPDL> { [ KP_Delete, 0x100066B, comma, 0x100202F ] }; // <delete> ? , ⍽ (narrow no-break space) 75*2b949d04SAndroid Build Coastguard Worker}; 76*2b949d04SAndroid Build Coastguard Worker 77*2b949d04SAndroid Build Coastguard Worker 78*2b949d04SAndroid Build Coastguard Worker// Abstracted <KPDL>, pray everything will work out (it usually does not) 79*2b949d04SAndroid Build Coastguard Workerpartial keypad_keys 80*2b949d04SAndroid Build Coastguard Workerxkb_symbols "kposs" { 81*2b949d04SAndroid Build Coastguard Worker 82*2b949d04SAndroid Build Coastguard Worker key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 83*2b949d04SAndroid Build Coastguard Worker 84*2b949d04SAndroid Build Coastguard Worker key <KPDL> { [ KP_Delete, KP_Decimal, KP_Separator, 0x100202F ] }; // <delete> ? ? ⍽ (narrow no-break space) 85*2b949d04SAndroid Build Coastguard Worker}; 86*2b949d04SAndroid Build Coastguard Worker 87*2b949d04SAndroid Build Coastguard Worker// Spreadsheets may be configured to use the dot as decimal 88*2b949d04SAndroid Build Coastguard Worker// punctuation, comma as a thousands separator and then semi-colon as 89*2b949d04SAndroid Build Coastguard Worker// the list separator. Of these, dot and semi-colon is most important 90*2b949d04SAndroid Build Coastguard Worker// when entering data by the keyboard; the comma can then be inferred 91*2b949d04SAndroid Build Coastguard Worker// and added to the presentation afterwards. Using semi-colon as a 92*2b949d04SAndroid Build Coastguard Worker// general separator may in fact be preferred to avoid ambiguities 93*2b949d04SAndroid Build Coastguard Worker// in data files. Most times a decimal separator is hard-coded, it 94*2b949d04SAndroid Build Coastguard Worker// seems to be period, probably since this is the syntax used in 95*2b949d04SAndroid Build Coastguard Worker// (most) programming languages. 96*2b949d04SAndroid Build Coastguard Workerpartial keypad_keys 97*2b949d04SAndroid Build Coastguard Workerxkb_symbols "semi" { 98*2b949d04SAndroid Build Coastguard Worker 99*2b949d04SAndroid Build Coastguard Worker key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 100*2b949d04SAndroid Build Coastguard Worker 101*2b949d04SAndroid Build Coastguard Worker key <KPDL> { [ NoSymbol, NoSymbol, semicolon ] }; 102*2b949d04SAndroid Build Coastguard Worker}; 103