1154daed1Smrg// The <KPDL> key is a mess. 2154daed1Smrg// It was probably originally meant to be a decimal separator. 3154daed1Smrg// Except since it was declared by USA people it didn't use the original 4154daed1Smrg// SI separator "," but a "." (since then the USA managed to f-up the SI 5154daed1Smrg// by making "." an accepted alternative, but standards still use "," as 6154daed1Smrg// default) 7154daed1Smrg// As a result users of SI-abiding countries expect either a "." or a "," 8154daed1Smrg// or a "decimal_separator" which may or may not be translated in one of the 9154daed1Smrg// above depending on applications. 10154daed1Smrg// It's not possible to define a default per-country since user expectations 11154daed1Smrg// depend on the conflicting choices of their most-used applications, 12154daed1Smrg// operating system, etc. Therefore it needs to be a configuration setting 13154daed1Smrg// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 14154daed1Smrg 15154daed1Smrg 16154daed1Smrg// Legacy <KPDL> #1 17154daed1Smrg// This assumes KP_Decimal will be translated in a dot 18154daed1Smrgpartial keypad_keys 19154daed1Smrgxkb_symbols "dot" { 20154daed1Smrg 21154daed1Smrg key.type[Group1]="KEYPAD" ; 22154daed1Smrg 23154daed1Smrg key <KPDL> { [ KP_Delete, KP_Decimal ] }; // <delete> <separator> 24154daed1Smrg}; 25154daed1Smrg 26154daed1Smrg 27154daed1Smrg// Legacy <KPDL> #2 28154daed1Smrg// This assumes KP_Separator will be translated in a comma 29154daed1Smrgpartial keypad_keys 30154daed1Smrgxkb_symbols "comma" { 31154daed1Smrg 32154daed1Smrg key.type[Group1]="KEYPAD" ; 33154daed1Smrg 34154daed1Smrg key <KPDL> { [ KP_Delete, KP_Separator ] }; // <delete> <separator> 35154daed1Smrg}; 36154daed1Smrg 37154daed1Smrg 38154daed1Smrg// Period <KPDL>, usual keyboard serigraphy in most countries 39154daed1Smrgpartial keypad_keys 40154daed1Smrgxkb_symbols "dotoss" { 41154daed1Smrg 42154daed1Smrg key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 43154daed1Smrg 44154daed1Smrg key <KPDL> { [ KP_Delete, period, comma, 0x100202F ] }; // <delete> . , ⍽ (narrow no-break space) 45154daed1Smrg}; 46154daed1Smrg 47154daed1Smrg 48154daed1Smrg// Period <KPDL>, usual keyboard serigraphy in most countries, latin-9 restriction 49154daed1Smrgpartial keypad_keys 50154daed1Smrgxkb_symbols "dotoss_latin9" { 51154daed1Smrg 52154daed1Smrg key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 53154daed1Smrg 54154daed1Smrg key <KPDL> { [ KP_Delete, period, comma, nobreakspace ] }; // <delete> . , ⍽ (no-break space) 55154daed1Smrg}; 56154daed1Smrg 57154daed1Smrg 58154daed1Smrg// Comma <KPDL>, what most non anglo-saxon people consider the real separator 59154daed1Smrgpartial keypad_keys 60154daed1Smrgxkb_symbols "commaoss" { 61154daed1Smrg 62154daed1Smrg key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 63154daed1Smrg 64154daed1Smrg key <KPDL> { [ KP_Delete, comma, period, 0x100202F ] }; // <delete> , . ⍽ (narrow no-break space) 65154daed1Smrg}; 66154daed1Smrg 67154daed1Smrg 68154daed1Smrg// Momayyez <KPDL>: Bahrain, Iran, Iraq, Kuwait, Oman, Qatar, Saudi Arabia, Syria, UAE 69154daed1Smrgpartial keypad_keys 70154daed1Smrgxkb_symbols "momayyezoss" { 71154daed1Smrg 72154daed1Smrg key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 73154daed1Smrg 74154daed1Smrg key <KPDL> { [ KP_Delete, 0x100066B, comma, 0x100202F ] }; // <delete> ? , ⍽ (narrow no-break space) 75154daed1Smrg}; 76154daed1Smrg 77154daed1Smrg 78154daed1Smrg// Abstracted <KPDL>, pray everything will work out (it usually does not) 79154daed1Smrgpartial keypad_keys 80154daed1Smrgxkb_symbols "kposs" { 81154daed1Smrg 82154daed1Smrg key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 83154daed1Smrg 84154daed1Smrg key <KPDL> { [ KP_Delete, KP_Decimal, KP_Separator, 0x100202F ] }; // <delete> ? ? ⍽ (narrow no-break space) 85154daed1Smrg}; 86c067fea9Sghen 87c067fea9Sghen// Spreadsheets may be configured to use the dot as decimal 88c067fea9Sghen// punctuation, comma as a thousands separator and then semi-colon as 89c067fea9Sghen// the list separator. Of these, dot and semi-colon is most important 90c067fea9Sghen// when entering data by the keyboard; the comma can then be inferred 91c067fea9Sghen// and added to the presentation afterwards. Using semi-colon as a 92c067fea9Sghen// general separator may in fact be preferred to avoid ambiguities 93c067fea9Sghen// in data files. Most times a decimal separator is hard-coded, it 94c067fea9Sghen// seems to be period, probably since this is the syntax used in 95c067fea9Sghen// (most) programming languages. 96c067fea9Sghenpartial keypad_keys 97c067fea9Sghenxkb_symbols "semi" { 98c067fea9Sghen 99c067fea9Sghen key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; 100c067fea9Sghen 101c067fea9Sghen key <KPDL> { [ NoSymbol, NoSymbol, semicolon ] }; 102c067fea9Sghen}; 103