Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
parent
93e3a48004
commit
b38dea0597
25901 changed files with 9982925 additions and 369 deletions
89
gaia/apps/keyboard/js/layouts/af.js
Executable file
89
gaia/apps/keyboard/js/layouts/af.js
Executable file
|
|
@ -0,0 +1,89 @@
|
|||
Keyboards.af = {
|
||||
label: 'Afrikaans',
|
||||
shortLabel: 'Afr.',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'af',
|
||||
menuLabel: 'Afrikaans',
|
||||
pages: [ { // default page
|
||||
alt: {
|
||||
a: 'áàäâåãæ',
|
||||
c: 'ç',
|
||||
e: 'ëêéè€',
|
||||
i: 'ïíî',
|
||||
o: 'ôóòöõø',
|
||||
u: 'üûú',
|
||||
s: 'ßš$',
|
||||
S: 'Š$',
|
||||
n: ['\'n', 'ñ'],
|
||||
l: '£',
|
||||
y: 'ýÿ¥',
|
||||
'.': ',?!\'-;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, { // symbol page 1
|
||||
alt: {
|
||||
'1': ['1ste'],
|
||||
'2': ['2de'],
|
||||
'3': ['3de'],
|
||||
'4': ['4de'],
|
||||
'5': ['5de'],
|
||||
'6': ['6de'],
|
||||
'7': ['7de'],
|
||||
'8': ['8ste'],
|
||||
'9': ['9de'],
|
||||
'$': ['€', '£', '¢', '¥'],
|
||||
'"': ['“', '”', '„'],
|
||||
'\'': ['‘', '’', '’n'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '$', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}]
|
||||
};
|
||||
73
gaia/apps/keyboard/js/layouts/ar.js
Executable file
73
gaia/apps/keyboard/js/layouts/ar.js
Executable file
|
|
@ -0,0 +1,73 @@
|
|||
Keyboards.ar = {
|
||||
label: 'Arabic',
|
||||
shortLabel: 'Ar',
|
||||
menuLabel: 'العربية',
|
||||
secondLayout: true,
|
||||
specificCssRule: true,
|
||||
types: ['text', 'url', 'email'],
|
||||
alternateLayoutKey: '123',
|
||||
basicLayoutKey: 'أ ب ج',
|
||||
width: 11,
|
||||
lang: 'ar',
|
||||
alt : {
|
||||
'غ': 'إ آ',
|
||||
'ا': 'أ ء',
|
||||
'ى': 'ئ',
|
||||
'و': 'ؤ',
|
||||
'ط': 'ظ'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'ض' }, { value: 'ص' }, { value: 'ث' }, { value: 'ق' },
|
||||
{ value: 'ف' }, { value: 'غ' } , { value: 'ع' }, { value: 'ه' },
|
||||
{ value: 'خ' }, { value: 'ح' }, { value: 'ج' }
|
||||
], [
|
||||
{ value: 'ش' }, { value: 'س' }, { value: 'ي' }, { value: 'ب' },
|
||||
{ value: 'ل' } , { value: 'ا' }, { value: 'ت' }, { value: 'ن' },
|
||||
{ value: 'م' }, { value: 'ك' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'ذ' }, { value: 'د' }, { value: 'ر' }, { value: 'ى' },
|
||||
{ value: 'ة' }, { value: 'و' }, { value: 'ز' }, { value: 'ط' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
upperCase: {
|
||||
ض: 'َ',
|
||||
ص: 'ً',
|
||||
ث: 'ُ',
|
||||
ق: 'ٌ',
|
||||
ف: 'ْ',
|
||||
غ: 'ّ',
|
||||
ع: 'ِ',
|
||||
ه: 'ٍ',
|
||||
خ: '’',
|
||||
ح: ',',
|
||||
ج: '؛',
|
||||
ش: '\\',
|
||||
س: ']',
|
||||
ي: '[',
|
||||
ب: 'ـ',
|
||||
ل: 'إ',
|
||||
ا: 'أ',
|
||||
ت: 'آ',
|
||||
ن: '،',
|
||||
م: '/',
|
||||
ك: ':',
|
||||
ة: '\"',
|
||||
ء: 'ئ',
|
||||
ظ: 'ؤ',
|
||||
ط: '؟',
|
||||
ذ: '=',
|
||||
د: '-',
|
||||
ز: '×',
|
||||
ر: '÷',
|
||||
و: '+'
|
||||
},
|
||||
textLayoutOverwrite: {
|
||||
',': '،'
|
||||
}
|
||||
};
|
||||
33
gaia/apps/keyboard/js/layouts/bg-BDS.js
Executable file
33
gaia/apps/keyboard/js/layouts/bg-BDS.js
Executable file
|
|
@ -0,0 +1,33 @@
|
|||
Keyboards['bg-BDS'] = {
|
||||
label: 'Bulgarian (BDS)',
|
||||
shortLabel: 'Bg',
|
||||
menuLabel: 'Български (БДС)',
|
||||
types: ['text', 'url', 'email'],
|
||||
imEngine: 'latin',
|
||||
autoCorrectLanguage: 'bg',
|
||||
basicLayoutKey: 'AБB',
|
||||
width: 11,
|
||||
lang: 'bg',
|
||||
alt: {
|
||||
'и': 'ѝ'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'у' }, { value: 'е' }, { value: 'и' }, { value: 'ш' },
|
||||
{ value: 'щ' }, { value: 'к' }, { value: 'с' }, { value: 'д' },
|
||||
{ value: 'з' }, { value: 'ц' }, { value: 'б' }
|
||||
], [
|
||||
{ value: 'ь' }, { value: 'я' }, { value: 'а' }, { value: 'о' },
|
||||
{ value: 'ж' }, { value: 'г' }, { value: 'т' }, { value: 'н' },
|
||||
{ value: 'в' }, { value: 'м' }, { value: 'ч' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'ю' }, { value: 'й' }, { value: 'ъ' }, { value: 'ф' },
|
||||
{ value: 'х' }, { value: 'п' }, { value: 'р' }, { value: 'л' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
33
gaia/apps/keyboard/js/layouts/bg-Pho-Ban.js
Executable file
33
gaia/apps/keyboard/js/layouts/bg-Pho-Ban.js
Executable file
|
|
@ -0,0 +1,33 @@
|
|||
Keyboards['bg-Pho-Ban'] = {
|
||||
label: 'Bulgarian (New)',
|
||||
shortLabel: 'Bg',
|
||||
menuLabel: 'Български (БАН)',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
imEngine: 'latin',
|
||||
autoCorrectLanguage: 'bg',
|
||||
basicLayoutKey: 'AБB',
|
||||
width: 11,
|
||||
lang: 'bg',
|
||||
alt: {
|
||||
'и': 'ѝ'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'ч' }, { value: 'ш' }, { value: 'е' }, { value: 'р' },
|
||||
{ value: 'т' }, { value: 'ъ' }, { value: 'у' }, { value: 'и' },
|
||||
{ value: 'о' }, { value: 'п' }, { value: 'я' }
|
||||
], [
|
||||
{ value: 'а' }, { value: 'с' }, { value: 'д' }, { value: 'ф' },
|
||||
{ value: 'г' }, { value: 'х' }, { value: 'й' }, { value: 'к' },
|
||||
{ value: 'л' }, { value: 'щ' }, { value: 'ь' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'з' }, { value: 'ж' }, { value: 'ц' }, { value: 'в' },
|
||||
{ value: 'б' }, { value: 'н' }, { value: 'м' }, { value: 'ю' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
33
gaia/apps/keyboard/js/layouts/bg-Pho-Trad.js
Executable file
33
gaia/apps/keyboard/js/layouts/bg-Pho-Trad.js
Executable file
|
|
@ -0,0 +1,33 @@
|
|||
Keyboards['bg-Pho-Trad'] = {
|
||||
label: 'Bulgarian (Phonetic)',
|
||||
shortLabel: 'Bg',
|
||||
menuLabel: 'Български (Фонетична)',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
imEngine: 'latin',
|
||||
autoCorrectLanguage: 'bg',
|
||||
basicLayoutKey: 'AБB',
|
||||
width: 11,
|
||||
lang: 'bg',
|
||||
alt: {
|
||||
'и': 'ѝ'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'я' }, { value: 'в' }, { value: 'е' }, { value: 'р' },
|
||||
{ value: 'т' }, { value: 'ъ' }, { value: 'у' }, { value: 'и' },
|
||||
{ value: 'о' }, { value: 'п' }, { value: 'ч' }
|
||||
], [
|
||||
{ value: 'а' }, { value: 'с' }, { value: 'д' }, { value: 'ф' },
|
||||
{ value: 'г' }, { value: 'х' }, { value: 'й' }, { value: 'к' },
|
||||
{ value: 'л' }, { value: 'ш' }, { value: 'щ' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'з' }, { value: 'ь' }, { value: 'ц' }, { value: 'ж' },
|
||||
{ value: 'б' }, { value: 'н' }, { value: 'м' }, { value: 'ю' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
108
gaia/apps/keyboard/js/layouts/bn-Avro.js
Executable file
108
gaia/apps/keyboard/js/layouts/bn-Avro.js
Executable file
|
|
@ -0,0 +1,108 @@
|
|||
Keyboards['bn-Avro'] = {
|
||||
label: 'Bangla - Avro',
|
||||
shortLabel: 'Bn',
|
||||
imEngine: 'jsavrophonetic',
|
||||
menuLabel: 'বাংলা - অভ্র',
|
||||
alternateLayoutKey: '?১২৩',
|
||||
basicLayoutKey: 'কখগ',
|
||||
types: ['text', 'url'],
|
||||
lang: 'bn',
|
||||
alt: {
|
||||
a: 'A',
|
||||
b: 'B',
|
||||
c: 'C',
|
||||
d: 'D',
|
||||
e: 'E',
|
||||
f: 'F',
|
||||
g: 'H',
|
||||
i: 'I',
|
||||
j: 'J',
|
||||
k: 'K',
|
||||
l: 'L',
|
||||
m: 'M',
|
||||
n: 'N',
|
||||
o: 'O',
|
||||
p: 'P',
|
||||
q: 'Q',
|
||||
r: 'R',
|
||||
s: 'S',
|
||||
t: 'T',
|
||||
u: 'U',
|
||||
v: 'V',
|
||||
w: 'W',
|
||||
x: 'X',
|
||||
y: 'Y',
|
||||
z: 'Z',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: 'ঁ' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.25, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: '`', ratio: 0.85 }, { value: 'z', ratio: 0.95 }, { value: 'x', ratio: 0.95 },
|
||||
{ value: 'c', ratio: 0.95 }, { value: 'v', ratio: 0.95 }, { value: 'b', ratio: 0.95 },
|
||||
{ value: 'n', ratio: 0.95 }, { value: 'm', ratio: 0.95 },
|
||||
{ value: '⌫', ratio: 1.25, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 7, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '।' },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'০': ['º'],
|
||||
'১': ['1'],
|
||||
'২': ['2'],
|
||||
'৩': ['3'],
|
||||
'৪': ['4'],
|
||||
'৫': ['5'],
|
||||
'৬': ['6'],
|
||||
'৭': ['7'],
|
||||
'৮': ['8'],
|
||||
'৯': ['9'],
|
||||
'৳': ['₹', '$', '€', '£', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
// These are based on the en layout, with top row modifed, $ localized and & replaced.
|
||||
keys: [
|
||||
[
|
||||
{ value: '১' }, { value: '২' }, { value: '৩' }, { value: '৪' },
|
||||
{ value: '৫' }, { value: '৬' }, { value: '৭' }, { value: '৮' },
|
||||
{ value: '৯' }, { value: '০' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '৳', className: 'alternate-indicator' }, { value: 'ঃ' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
114
gaia/apps/keyboard/js/layouts/bn-Probhat.js
Executable file
114
gaia/apps/keyboard/js/layouts/bn-Probhat.js
Executable file
|
|
@ -0,0 +1,114 @@
|
|||
Keyboards['bn-Probhat'] = {
|
||||
label: 'Bangla - Probhat',
|
||||
shortLabel: 'Bn',
|
||||
menuLabel: 'বাংলা - প্রভাত',
|
||||
alternateLayoutKey: '?১২',
|
||||
basicLayoutKey: 'কখগ',
|
||||
specificCssRule: true,
|
||||
types: ['text', 'url', 'email'],
|
||||
lang: 'bn',
|
||||
keys: [
|
||||
[
|
||||
{ value: 'দ' }, { value: 'ূ' }, { value: 'ী' } , { value: 'র' },
|
||||
{ value: 'ট' } , { value: 'এ' }, { value: 'ু' } , { value: 'ি' },
|
||||
{ value: 'ও' }, { value: 'প' }
|
||||
], [
|
||||
{ value: 'া' }, { value: 'স' }, { value: 'ড' }, { value: 'ত' },
|
||||
{ value: 'গ' } , { value: 'হ' }, { value: 'জ' }, { value: 'ক' },
|
||||
{ value: 'ল' }, { value: 'ে' }
|
||||
], [
|
||||
{ value: '্' }, { value: 'য়', ratio: 0.9 }, { value: 'শ', ratio: 0.9 }, { value: 'চ', ratio: 0.9 }, { value: 'আ', ratio: 1.1 },
|
||||
{ value: 'ব', ratio: 0.9 }, { value: 'ন', ratio: 0.9 }, { value: 'ম', ratio: 0.9 }, { value: 'ো', ratio: 1.15 },
|
||||
{ value: '⌫', ratio: 1.35, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 7, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '।' },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
alt: {
|
||||
'দ': 'ধ',
|
||||
'ূ': 'ঊ',
|
||||
'ী': 'ঈ',
|
||||
'র': 'ড়',
|
||||
'ট': 'ঠ',
|
||||
'এ': 'ঐ',
|
||||
'ু': 'উ',
|
||||
'ি': 'ই',
|
||||
'ও': 'ঔ',
|
||||
'প': 'ফ',
|
||||
|
||||
'া': 'অ',
|
||||
'স': 'ষ',
|
||||
'ড': 'ঢ',
|
||||
'ত': 'থ ৎ',
|
||||
'গ': 'ঘ',
|
||||
'হ': 'ঃ',
|
||||
'জ': 'ঝ',
|
||||
'ক': 'খ',
|
||||
'ল': 'ং ঞ',
|
||||
|
||||
'য়': 'য',
|
||||
'শ': 'ঢ়',
|
||||
'চ': 'ছ',
|
||||
'আ': 'ৃ ঋ',
|
||||
'ব': 'ভ',
|
||||
'ন': 'ণ',
|
||||
'ম': 'ঙ ঞ',
|
||||
'ে': 'ৈ',
|
||||
'ো': 'ৌ',
|
||||
'্': 'ঁ',
|
||||
'।': '॥',
|
||||
'ঞ': 'ঋ',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'০': ['0', 'º'],
|
||||
'১': ['১ম', '1'],
|
||||
'২': ['২য়', '2'],
|
||||
'৩': ['৩য়', '3'],
|
||||
'৪': ['৪র্থ', '4'],
|
||||
'৫': ['৫ম', '5'],
|
||||
'৬': ['৬ষ্ঠ', '6'],
|
||||
'৭': ['৭ম', '7'],
|
||||
'৮': ['৮ম', '8'],
|
||||
'৯': ['৯ম', '9'],
|
||||
'৳': ['₹', '$', '€', '£', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
// These are based on the en layout, with top row modifed and $ localized.
|
||||
keys: [
|
||||
[
|
||||
{ value: '১' }, { value: '২' }, { value: '৩' }, { value: '৪' },
|
||||
{ value: '৫' }, { value: '৬' }, { value: '৭' }, { value: '৮' },
|
||||
{ value: '৯' }, { value: '০' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '৳', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
39
gaia/apps/keyboard/js/layouts/bs.js
Executable file
39
gaia/apps/keyboard/js/layouts/bs.js
Executable file
|
|
@ -0,0 +1,39 @@
|
|||
Keyboards.bs = {
|
||||
label: 'Bosnian',
|
||||
shortLabel: 'Bs',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email'],
|
||||
autoCorrectLanguage: 'bs',
|
||||
menuLabel: 'Bosanski',
|
||||
lang: 'bs',
|
||||
alt: {
|
||||
c: 'čć',
|
||||
d: 'đ',
|
||||
e: 'ë€',
|
||||
i: 'íîïì',
|
||||
o: 'ó',
|
||||
u: 'ú',
|
||||
s: 'šş',
|
||||
z: 'ž',
|
||||
'.': ',?!;:'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' } , { value: 'z' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'y' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
};
|
||||
98
gaia/apps/keyboard/js/layouts/ca.js
Executable file
98
gaia/apps/keyboard/js/layouts/ca.js
Executable file
|
|
@ -0,0 +1,98 @@
|
|||
Keyboards.ca = {
|
||||
label: 'Catalan',
|
||||
shortLabel: 'Ca',
|
||||
menuLabel: 'Català',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'ca',
|
||||
lang: 'ca',
|
||||
alt: {
|
||||
a: 'àáâäåãāæª@',
|
||||
c: 'çćč',
|
||||
e: 'èéêëēę€ɛ',
|
||||
i: 'íïìîīį',
|
||||
o: 'òóöôōœøɵº',
|
||||
u: 'úüùûū',
|
||||
s: 'ßśš$',
|
||||
S: 'ŚŠŞ',
|
||||
n: 'ñń',
|
||||
l: 'l·l ł £',
|
||||
y: 'ÿ¥',
|
||||
z: 'žźż',
|
||||
'?': '!¿¡',
|
||||
'.': ',;:·…',
|
||||
"'": '"«»',
|
||||
'-': '—_'
|
||||
},
|
||||
width: 11,
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' } , { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }, { value: '?' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: 'ç' },
|
||||
{ value: "'", keyCode: 39 }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' }, { value: '-' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'0': ['º'],
|
||||
'1': ['1r', '1a'],
|
||||
'2': ['2n', '2a'],
|
||||
'3': ['3r', '3a'],
|
||||
'4': ['4t', '4a'],
|
||||
'5': ['5è', '5a', '5é'],
|
||||
'6': ['6è', '6a', '6é'],
|
||||
'7': ['7è', '7a', '7é'],
|
||||
'8': ['8è', '8a', '8é'],
|
||||
'9': ['9è', '9a', '9é'],
|
||||
'€': ['$', '£', '¢', '¥'],
|
||||
'"': ['“', '”', '«', '»'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±'],
|
||||
'.': ['·']
|
||||
},
|
||||
// These are based on the en layout, with $ localized.
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '€', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
44
gaia/apps/keyboard/js/layouts/cs-qwerty.js
Executable file
44
gaia/apps/keyboard/js/layouts/cs-qwerty.js
Executable file
|
|
@ -0,0 +1,44 @@
|
|||
Keyboards['cs-qwerty'] = {
|
||||
label: 'Czech (QWERTY)',
|
||||
shortLabel: 'Cs',
|
||||
menuLabel: 'Česká (QWERTY)',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'cs',
|
||||
lang: 'cs',
|
||||
alt: {
|
||||
a: 'á',
|
||||
c: 'č',
|
||||
d: 'ď',
|
||||
e: 'éě',
|
||||
i: 'í',
|
||||
n: 'ň',
|
||||
o: 'ó',
|
||||
r: 'ř',
|
||||
s: 'š',
|
||||
t: 'ť',
|
||||
u: 'úů',
|
||||
y: 'ý',
|
||||
z: 'ž',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
44
gaia/apps/keyboard/js/layouts/cs.js
Executable file
44
gaia/apps/keyboard/js/layouts/cs.js
Executable file
|
|
@ -0,0 +1,44 @@
|
|||
Keyboards.cs = {
|
||||
label: 'Czech',
|
||||
shortLabel: 'Cs',
|
||||
menuLabel: 'Česká',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'cs',
|
||||
lang: 'cs',
|
||||
alt: {
|
||||
a: 'á',
|
||||
c: 'č',
|
||||
d: 'ď',
|
||||
e: 'éě',
|
||||
i: 'í',
|
||||
n: 'ň',
|
||||
o: 'ó',
|
||||
r: 'ř',
|
||||
s: 'š',
|
||||
t: 'ť',
|
||||
u: 'úů',
|
||||
y: 'ý',
|
||||
z: 'ž',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'z' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'y' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
45
gaia/apps/keyboard/js/layouts/cy.js
Executable file
45
gaia/apps/keyboard/js/layouts/cy.js
Executable file
|
|
@ -0,0 +1,45 @@
|
|||
Keyboards.cy = {
|
||||
label: 'Welsh',
|
||||
shortLabel: 'Cy',
|
||||
menuLabel: 'Cymraeg',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'cy',
|
||||
//autoCorrectPunctuation: false,
|
||||
lang: 'fr',
|
||||
alt: {
|
||||
a: 'âäáàåãāæ',
|
||||
c: 'çćč',
|
||||
e: 'êëéèēę€ɛ',
|
||||
i: 'îïíìīį',
|
||||
o: 'ôöóòõōœøɵ',
|
||||
u: 'ûüúùū',
|
||||
s: 'ßśš$',
|
||||
S: 'ŚŠ$',
|
||||
n: 'ñń',
|
||||
l: 'ł£',
|
||||
w: 'ŵẅẃẁ',
|
||||
y: 'ŷÿýỳ¥',
|
||||
z: 'žźż',
|
||||
'.': ',?!-;:'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: "'", keyCode: 39 }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
46
gaia/apps/keyboard/js/layouts/da.js
Executable file
46
gaia/apps/keyboard/js/layouts/da.js
Executable file
|
|
@ -0,0 +1,46 @@
|
|||
Keyboards.da = {
|
||||
label: 'Danish',
|
||||
shortLabel: 'Da',
|
||||
menuLabel: 'Dansk',
|
||||
imEngine: 'latin',
|
||||
autoCorrectLanguage: 'da',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
lang: 'da',
|
||||
alt: {
|
||||
a: 'äáàâąã',
|
||||
e: 'éèêëę€',
|
||||
i: 'íìîï',
|
||||
o: 'öóòôõ',
|
||||
u: 'üúùûū',
|
||||
s: 'śšşß',
|
||||
S: 'ŚŠŞ',
|
||||
n: 'ńñň',
|
||||
c: 'çćč',
|
||||
d: 'ðď',
|
||||
r: 'ř',
|
||||
t: 'ťþ',
|
||||
z: 'źžż',
|
||||
l: 'ł',
|
||||
v: 'w'
|
||||
},
|
||||
width: 11,
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' },{ value: 'w' },{ value: 'e' },{ value: 'r' },
|
||||
{ value: 't' },{ value: 'y' },{ value: 'u' },{ value: 'i' },
|
||||
{ value: 'o' },{ value: 'p' },{ value: 'å' }
|
||||
], [
|
||||
{ value: 'a' },{ value: 's' },{ value: 'd' },{ value: 'f' },
|
||||
{ value: 'g' },{ value: 'h' },{ value: 'j' },{ value: 'k' },
|
||||
{ value: 'l' },{ value: 'æ' },{ value: 'ø' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 2, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' },{ value: 'x' },{ value: 'c' },{ value: 'v' },
|
||||
{ value: 'b' },{ value: 'n' },{ value: 'm' },
|
||||
{ value: '⌫', ratio: 2, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
119
gaia/apps/keyboard/js/layouts/de-Neo.js
Executable file
119
gaia/apps/keyboard/js/layouts/de-Neo.js
Executable file
|
|
@ -0,0 +1,119 @@
|
|||
Keyboards['de-Neo'] = {
|
||||
label: 'German - Neo',
|
||||
shortLabel: 'De',
|
||||
menuLabel: 'Deutsch - Neo',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'de',
|
||||
lang: 'de',
|
||||
alt: {
|
||||
a: 'äáàâåãāæ',
|
||||
c: 'çćč',
|
||||
e: 'éèêëēę€ɛ',
|
||||
i: 'ïíìîīį',
|
||||
o: 'öóòôōœøɵ',
|
||||
u: 'üúùûū',
|
||||
s: 'ßśš$',
|
||||
S: 'ŚŠ$',
|
||||
n: 'ñń',
|
||||
l: 'ł£',
|
||||
y: 'ÿ¥',
|
||||
z: 'žźż',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'x' }, { value: 'v' }, { value: 'l' } , { value: 'c' },
|
||||
{ value: 'w' }, { value: 'k' }, { value: 'h' } , { value: 'g' },
|
||||
{ value: 'f' }, { value: 'q' }
|
||||
], [
|
||||
{ value: 'u' }, { value: 'i', }, { value: 'a' }, { value: 'e' },
|
||||
{ value: 'o' }, { value: 's', }, { value: 'n' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'd', }
|
||||
], [
|
||||
{ value: '⇪', ratio: 2, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'p' }, { value: 'z' }, { value: 'b' },
|
||||
{ value: 'm' }, { value: 'j' }, { value: 'y' },
|
||||
{ value: '⌫', ratio: 2, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
needsCommaKey: true,
|
||||
alt: {
|
||||
'1': ['¹', '1.'],
|
||||
'2': ['²', '2.'],
|
||||
'3': ['³', '3.'],
|
||||
'4': ['⁴', '4.'],
|
||||
'5': ['⁵', '5.'],
|
||||
'6': ['⁶', '6.'],
|
||||
'7': ['⁷', '7.'],
|
||||
'8': ['⁸', '8.'],
|
||||
'9': ['⁹', '9.'],
|
||||
'0': ['⁰', 'º'],
|
||||
'$': [ '€', '£', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±'],
|
||||
'/': '\\'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: ':' }, { value: '&' },
|
||||
{ value: '#' }, { value: '$' }, { value: '!' },
|
||||
{ value: '7' }, { value: '8' }, { value: '9' },
|
||||
{ value: '/' }, { value: '*' }
|
||||
], [
|
||||
{ value: ';' }, { value: '@' },
|
||||
{ value: '(' }, { value: ')' }, { value: '?' },
|
||||
{ value: '4' }, { value: '5' }, { value: '6' },
|
||||
{ value: '+' }, { value: '-' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 2,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '%' }, { value: '"' }, { value: "'" },
|
||||
{ value: '1' }, { value: '2' }, { value: '3' },
|
||||
{ value: '⌫', ratio: 2, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, {
|
||||
alt: {
|
||||
'®': ['™']
|
||||
},
|
||||
needsCommaKey: true,
|
||||
keys: [
|
||||
[
|
||||
{ value: '§' }, { value: '_' }, { value: '[' }, { value: ']' },
|
||||
{ value: '^' }, { value: '<' }, { value: '>' }, { value: '=' },
|
||||
{ value: '¥' }, { value: '€' }
|
||||
], [
|
||||
{ value: '©' }, { value: '®' }, { value: '{' }, { value: '}' },
|
||||
{ value: '`' }, { value: '«' }, { value: '»' }, { value: '±' },
|
||||
{ value: '£' }, { value: '$' }
|
||||
],
|
||||
[
|
||||
{ value: 'Alt', ratio: 2,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '|' }, { value: '~' }, { value: 'º' },
|
||||
{ value: '¹' }, { value: '²' }, { value: '³' },
|
||||
{ value: '⌫', ratio: 2, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
40
gaia/apps/keyboard/js/layouts/de.js
Executable file
40
gaia/apps/keyboard/js/layouts/de.js
Executable file
|
|
@ -0,0 +1,40 @@
|
|||
Keyboards.de = {
|
||||
label: 'German',
|
||||
shortLabel: 'De',
|
||||
menuLabel: 'Deutsch',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'de',
|
||||
lang: 'de',
|
||||
alt: {
|
||||
a: 'äàáâãåāæ',
|
||||
c: 'çćč',
|
||||
e: 'èéêëē€',
|
||||
i: 'ìíîïī',
|
||||
o: 'öòóôõōœø',
|
||||
u: 'üùúûū',
|
||||
s: 'ßśšş',
|
||||
S: 'ŚŠŞ',
|
||||
n: 'ńñň',
|
||||
'.': ',?!;:'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'z' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'y' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
130
gaia/apps/keyboard/js/layouts/dz-BT.js
Executable file
130
gaia/apps/keyboard/js/layouts/dz-BT.js
Executable file
|
|
@ -0,0 +1,130 @@
|
|||
Keyboards['dz-BT'] = {
|
||||
label: 'Dzongkha',
|
||||
shortLabel: 'Dz',
|
||||
menuLabel: 'རྫོང་ཁ',
|
||||
alternateLayoutKey: '༡༢༣',
|
||||
specificCssRule: true,
|
||||
basicLayoutKey: 'ཀཁག',
|
||||
types: ['text', 'url', 'email'],
|
||||
width: 12,
|
||||
lang: 'dz',
|
||||
keys: [
|
||||
[
|
||||
{ value: 'ཀ' }, { value: 'ཁ' }, { value: 'ག' } , { value: 'ང' },
|
||||
{ value: 'ི' } , { value: 'ུ' }, { value: 'ེ' } , { value: 'ོ' },
|
||||
{ value: 'ཅ' }, { value: 'ཆ' }, { value: 'ཇ' }, { value: 'ཉ' }
|
||||
], [
|
||||
{ value: 'ཏ' }, { value: 'ཐ' }, { value: 'ད' }, { value: 'ན' },
|
||||
{ value: 'པ' } , { value: 'ཕ' }, { value: 'བ' }, { value: 'མ' },
|
||||
{ value: 'ཙ' }, { value: 'ཚ'}, { value: 'ཛ' }, { value: 'ཝ' },
|
||||
], [
|
||||
{ value: 'ཞ' }, { value: 'ཟ' }, { value: 'འ' }, { value: 'ཡ' }, { value: 'ར' },
|
||||
{ value: 'ལ' }, { value: 'ཤ' }, { value: 'ས' }, { value: 'ཧ' }, { value: 'ཨ' },
|
||||
{ value: '⌫', ratio: 2, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 7, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '་', ratio: 2 }, { value: '།' },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
alt: {
|
||||
'ཀ': 'ྐ',
|
||||
'ཁ': 'ྑ',
|
||||
'ག': 'ྒ',
|
||||
'ང': 'ྔ',
|
||||
'ི': 'ྀ',
|
||||
'ུ': '྄',
|
||||
'ེ': 'ཻ',
|
||||
'ོ': 'ཽ',
|
||||
'ཅ': 'ྕ',
|
||||
'ཆ': 'ྖ',
|
||||
'ཇ': 'ྗ',
|
||||
'ཉ': 'ྙ ཨ྅',
|
||||
|
||||
'ཏ': 'ྟ ཊ ྚ',
|
||||
'ཐ': 'ྠ ཋ ྛ',
|
||||
'ད': 'ྡ ཌ ྜ',
|
||||
'ན': 'ྣ ཎ ྞ',
|
||||
'པ': 'ྤ',
|
||||
'ཕ': 'ྥ',
|
||||
'བ': 'ྦ',
|
||||
'མ': 'ྨ ཨཾ ཨྃ ༷ ༵',
|
||||
'ཙ': 'ྩ ༹',
|
||||
'ཚ': 'ྪ',
|
||||
'ཛ': 'ྫ',
|
||||
'ཝ': 'ྭ ྺ',
|
||||
|
||||
'ཞ': 'ྮ',
|
||||
'ཟ': 'ྯ',
|
||||
'འ': 'ཱ',
|
||||
'ཡ': 'ྱ',
|
||||
'ར': 'ྲ ཪ',
|
||||
'ལ': 'ླ',
|
||||
'ཤ': 'ྴ ཥ',
|
||||
'ས': 'ྶ',
|
||||
'ཧ': 'ྷ',
|
||||
'ཨ': 'ྸ ༁',
|
||||
|
||||
'་': '࿒',
|
||||
'།': '༎'
|
||||
},
|
||||
pages: [undefined, {
|
||||
needsCommaKey: true,
|
||||
specificCssRule: true,
|
||||
alt: {
|
||||
'༡': ['1'],
|
||||
'༢': ['2'],
|
||||
'༣': ['3'],
|
||||
'༤': ['4'],
|
||||
'༥': ['5'],
|
||||
'༦': ['6'],
|
||||
'༧': ['7'],
|
||||
'༨': ['8'],
|
||||
'༩': ['9'],
|
||||
'༠': ['0'],
|
||||
|
||||
'༆': ['༄ ', '༅', '@'],
|
||||
'༉': ['࿑', '༊', '࿐', '#'],
|
||||
'༈': ['-', '_'],
|
||||
'₨': ['$', '€', '£', '¢', '¥'],
|
||||
'༴': ['྾', '%'],
|
||||
'ཿ': ['&'],
|
||||
'༷': [ '༵', '*'],
|
||||
'༔': ['+'],
|
||||
'༼': ['('],
|
||||
'༽': [')'],
|
||||
|
||||
'༃': ['༂ ', '!'],
|
||||
'༑': ['༏', '༐', '\''],
|
||||
'྅': ['ྊ', 'ྋ', '"'],
|
||||
'ྈ': [':'],
|
||||
'ྉ': [';'],
|
||||
'࿙': ['/'],
|
||||
'྿': ['?']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '༡' }, { value: '༢' }, { value: '༣' }, { value: '༤' },
|
||||
{ value: '༥' }, { value: '༦' }, { value: '༧' }, { value: '༨' },
|
||||
{ value: '༩' }, { value: '༠' }
|
||||
], [
|
||||
{ value: '༆'}, { value: '༉' }, { value: '༈' },
|
||||
{ value: '₨', className: 'alternate-indicator' }, { value: '༴' },
|
||||
{ value: 'ཿ' }, { value: '༷' },
|
||||
{ value: '༔' }, { value: '༼' }, { value: '༽' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '༃' }, { value: '༑' }, { value: '྅' }, { value: 'ྈ' },
|
||||
{ value: 'ྉ' }, { value: '࿙' }, { value: '྿' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
85
gaia/apps/keyboard/js/layouts/el.js
Executable file
85
gaia/apps/keyboard/js/layouts/el.js
Executable file
|
|
@ -0,0 +1,85 @@
|
|||
Keyboards.el = {
|
||||
label: 'Greek',
|
||||
shortLabel: 'El',
|
||||
menuLabel: 'Ελληνικό',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
basicLayoutKey: 'ABΓ',
|
||||
autoCorrectLanguage: 'el',
|
||||
lang: 'el',
|
||||
upperCase: {
|
||||
'ς': 'ς'
|
||||
},
|
||||
alt: {
|
||||
α: 'ά',
|
||||
ε: 'έ€',
|
||||
ω: 'ώ',
|
||||
ο: 'ό',
|
||||
Υ: 'ΎΫ',
|
||||
υ: 'ύϋΰ',
|
||||
Ι: 'ΊΪ',
|
||||
ι: 'ίϊΐ',
|
||||
η: 'ή',
|
||||
'.': ',?!;:'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: ';' }, { value: 'ς' }, { value: 'ε' } , { value: 'ρ' },
|
||||
{ value: 'τ' } , { value: 'υ' }, { value: 'θ' } , { value: 'ι' },
|
||||
{ value: 'ο' }, { value: 'π' }
|
||||
], [
|
||||
{ value: 'α' }, { value: 'σ' }, { value: 'δ' }, { value: 'φ' },
|
||||
{ value: 'γ' } , { value: 'η' }, { value: 'ξ' }, { value: 'κ' },
|
||||
{ value: 'λ' }, { value: "'", keyCode: 39 }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'ζ' }, { value: 'χ' }, { value: 'ψ' }, { value: 'ω' },
|
||||
{ value: 'β' }, { value: 'ν' }, { value: 'μ' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
|
||||
// This special layout is used when composing SMS messages in Greek, so that
|
||||
// it would allow 160 characters in one message
|
||||
Keyboards['el-sms'] = {
|
||||
label: 'Greek SMS',
|
||||
menuLabel: 'Ελληνικό για SMS',
|
||||
imEngine: 'latin',
|
||||
// No autocorrect for this layout
|
||||
// autoCorrectLanguage: undefined,
|
||||
alt: {
|
||||
'.': ',?!;:'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: ';' }, { value: 'Ε', keyCode: 0x45 /* ASCII E */ } ,
|
||||
{ value: 'Ρ', keyCode: 0x50 /* ASCII P */ },
|
||||
{ value: 'Τ', keyCode: 0x54 /* ASCII T */ },
|
||||
{ value: 'Υ', keyCode: 0x59 /* ASCII Y */ },
|
||||
{ value: 'Θ' }, { value: 'Ι', keyCode: 0x49 /* ASCII I */},
|
||||
{ value: 'Ο', keyCode: 0x4F /* ASCII O */ }, { value: 'Π' }
|
||||
], [
|
||||
{ value: 'Α', keyCode: 0x41 /* ASCII A */ }, { value: 'Σ' },
|
||||
{ value: 'Δ' }, { value: 'Φ'},
|
||||
{ value: 'Γ' }, { value: 'Η', keyCode: 0x48 /* ASCII H */ },
|
||||
{ value: 'Ξ' }, { value: 'Κ', keyCode: 0x4B /* ASCII K */ },
|
||||
{ value: 'Λ' }, { value: "'"}
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK,
|
||||
disabled: true },
|
||||
{ value: 'Ζ', keyCode: 0x5A /* ASCII Z */ },
|
||||
{ value: 'Χ', keyCode: 0x58 /* ASCII X */ }, { value: 'Ψ' },
|
||||
{ value: 'Ω' }, { value: 'Β', keyCode: 0x42 /* ASCII B */ },
|
||||
{ value: 'Ν', keyCode: 0x4E /* ASCII N */ },
|
||||
{ value: 'Μ', keyCode: 0x4D /* ASCII M */ },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
687
gaia/apps/keyboard/js/layouts/emoji.js
Executable file
687
gaia/apps/keyboard/js/layouts/emoji.js
Executable file
|
|
@ -0,0 +1,687 @@
|
|||
Keyboards.emoji = {
|
||||
label: 'Emoji',
|
||||
types: ['text', 'url', 'email'],
|
||||
menuLabelL10nId: 'emoji',
|
||||
imEngine: 'emoji',
|
||||
menuLabel: 'Emoji',
|
||||
pages: [{
|
||||
updateByIMEngine: true,
|
||||
panelKeys: [ /* To be filled by emoji.js */ ],
|
||||
keys: [
|
||||
[
|
||||
{
|
||||
value: '',
|
||||
keyCode: -3,
|
||||
className: 'emoji-ime-switch'
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-recent active',
|
||||
targetPage: 0
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-people',
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-nature',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-object',
|
||||
targetPage: 3
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-place',
|
||||
targetPage: 4
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-symbol',
|
||||
targetPage: 5
|
||||
},
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
]
|
||||
]}, { // Page 0 - People
|
||||
panelKeys: [{ compositeKey: '🌂', type: 'emoji' }, { compositeKey: '🌟', type: 'emoji' },
|
||||
{ compositeKey: '🎀', type: 'emoji' }, { compositeKey: '🎔', type: 'emoji' },
|
||||
{ compositeKey: '🎩', type: 'emoji' }, { compositeKey: '🎽', type: 'emoji' },
|
||||
{ compositeKey: '🏃', type: 'emoji' }, { compositeKey: '👀', type: 'emoji' },
|
||||
{ compositeKey: '👁', type: 'emoji' }, { compositeKey: '👂', type: 'emoji' },
|
||||
{ compositeKey: '👃', type: 'emoji' }, { compositeKey: '👄', type: 'emoji' },
|
||||
{ compositeKey: '👅', type: 'emoji' }, { compositeKey: '👆', type: 'emoji' },
|
||||
{ compositeKey: '👇', type: 'emoji' }, { compositeKey: '👈', type: 'emoji' },
|
||||
{ compositeKey: '👉', type: 'emoji' }, { compositeKey: '👊', type: 'emoji' },
|
||||
{ compositeKey: '👋', type: 'emoji' }, { compositeKey: '👌', type: 'emoji' },
|
||||
{ compositeKey: '👍', type: 'emoji' }, { compositeKey: '👎', type: 'emoji' },
|
||||
{ compositeKey: '👏', type: 'emoji' }, { compositeKey: '👐', type: 'emoji' },
|
||||
{ compositeKey: '👑', type: 'emoji' }, { compositeKey: '👒', type: 'emoji' },
|
||||
{ compositeKey: '👓', type: 'emoji' }, { compositeKey: '👔', type: 'emoji' },
|
||||
{ compositeKey: '👕', type: 'emoji' }, { compositeKey: '👖', type: 'emoji' },
|
||||
{ compositeKey: '👗', type: 'emoji' }, { compositeKey: '👘', type: 'emoji' },
|
||||
{ compositeKey: '👙', type: 'emoji' }, { compositeKey: '👚', type: 'emoji' },
|
||||
{ compositeKey: '👛', type: 'emoji' }, { compositeKey: '👜', type: 'emoji' },
|
||||
{ compositeKey: '👝', type: 'emoji' }, { compositeKey: '👞', type: 'emoji' },
|
||||
{ compositeKey: '👟', type: 'emoji' }, { compositeKey: '👠', type: 'emoji' },
|
||||
{ compositeKey: '👡', type: 'emoji' }, { compositeKey: '👢', type: 'emoji' },
|
||||
{ compositeKey: '👣', type: 'emoji' }, { compositeKey: '👤', type: 'emoji' },
|
||||
{ compositeKey: '👥', type: 'emoji' }, { compositeKey: '👦', type: 'emoji' },
|
||||
{ compositeKey: '👧', type: 'emoji' }, { compositeKey: '👨', type: 'emoji' },
|
||||
{ compositeKey: '👩', type: 'emoji' }, { compositeKey: '👪', type: 'emoji' },
|
||||
{ compositeKey: '👫', type: 'emoji' }, { compositeKey: '👬', type: 'emoji' },
|
||||
{ compositeKey: '👭', type: 'emoji' }, { compositeKey: '👮', type: 'emoji' },
|
||||
{ compositeKey: '👯', type: 'emoji' }, { compositeKey: '👰', type: 'emoji' },
|
||||
{ compositeKey: '👱', type: 'emoji' }, { compositeKey: '👲', type: 'emoji' },
|
||||
{ compositeKey: '👳', type: 'emoji' }, { compositeKey: '👴', type: 'emoji' },
|
||||
{ compositeKey: '👵', type: 'emoji' }, { compositeKey: '👶', type: 'emoji' },
|
||||
{ compositeKey: '👷', type: 'emoji' }, { compositeKey: '👸', type: 'emoji' },
|
||||
{ compositeKey: '👹', type: 'emoji' }, { compositeKey: '👺', type: 'emoji' },
|
||||
{ compositeKey: '👼', type: 'emoji' }, { compositeKey: '👽', type: 'emoji' },
|
||||
{ compositeKey: '👿', type: 'emoji' }, { compositeKey: '💀', type: 'emoji' },
|
||||
{ compositeKey: '💁', type: 'emoji' }, { compositeKey: '💂', type: 'emoji' },
|
||||
{ compositeKey: '💃', type: 'emoji' }, { compositeKey: '💄', type: 'emoji' },
|
||||
{ compositeKey: '💅', type: 'emoji' }, { compositeKey: '💆', type: 'emoji' },
|
||||
{ compositeKey: '💇', type: 'emoji' }, { compositeKey: '💋', type: 'emoji' },
|
||||
{ compositeKey: '💌', type: 'emoji' }, { compositeKey: '💍', type: 'emoji' },
|
||||
{ compositeKey: '💎', type: 'emoji' }, { compositeKey: '💏', type: 'emoji' },
|
||||
{ compositeKey: '💑', type: 'emoji' }, { compositeKey: '💓', type: 'emoji' },
|
||||
{ compositeKey: '💔', type: 'emoji' }, { compositeKey: '💕', type: 'emoji' },
|
||||
{ compositeKey: '💖', type: 'emoji' }, { compositeKey: '💗', type: 'emoji' },
|
||||
{ compositeKey: '💘', type: 'emoji' }, { compositeKey: '💙', type: 'emoji' },
|
||||
{ compositeKey: '💚', type: 'emoji' }, { compositeKey: '💛', type: 'emoji' },
|
||||
{ compositeKey: '💜', type: 'emoji' }, { compositeKey: '💞', type: 'emoji' },
|
||||
{ compositeKey: '💢', type: 'emoji' }, { compositeKey: '💤', type: 'emoji' },
|
||||
{ compositeKey: '💥', type: 'emoji' }, { compositeKey: '💦', type: 'emoji' },
|
||||
{ compositeKey: '💧', type: 'emoji' }, { compositeKey: '💨', type: 'emoji' },
|
||||
{ compositeKey: '💩', type: 'emoji' }, { compositeKey: '💪', type: 'emoji' },
|
||||
{ compositeKey: '💫', type: 'emoji' }, { compositeKey: '💬', type: 'emoji' },
|
||||
{ compositeKey: '💭', type: 'emoji' }, { compositeKey: '💼', type: 'emoji' },
|
||||
{ compositeKey: '😀', type: 'emoji' }, { compositeKey: '😁', type: 'emoji' },
|
||||
{ compositeKey: '😂', type: 'emoji' }, { compositeKey: '😃', type: 'emoji' },
|
||||
{ compositeKey: '😄', type: 'emoji' }, { compositeKey: '😅', type: 'emoji' },
|
||||
{ compositeKey: '😆', type: 'emoji' }, { compositeKey: '😇', type: 'emoji' },
|
||||
{ compositeKey: '😈', type: 'emoji' }, { compositeKey: '😉', type: 'emoji' },
|
||||
{ compositeKey: '😊', type: 'emoji' }, { compositeKey: '😋', type: 'emoji' },
|
||||
{ compositeKey: '😌', type: 'emoji' }, { compositeKey: '😍', type: 'emoji' },
|
||||
{ compositeKey: '😎', type: 'emoji' }, { compositeKey: '😏', type: 'emoji' },
|
||||
{ compositeKey: '😐', type: 'emoji' }, { compositeKey: '😑', type: 'emoji' },
|
||||
{ compositeKey: '😒', type: 'emoji' }, { compositeKey: '😓', type: 'emoji' },
|
||||
{ compositeKey: '😔', type: 'emoji' }, { compositeKey: '😕', type: 'emoji' },
|
||||
{ compositeKey: '😖', type: 'emoji' }, { compositeKey: '😗', type: 'emoji' },
|
||||
{ compositeKey: '😘', type: 'emoji' }, { compositeKey: '😙', type: 'emoji' },
|
||||
{ compositeKey: '😚', type: 'emoji' }, { compositeKey: '😛', type: 'emoji' },
|
||||
{ compositeKey: '😜', type: 'emoji' }, { compositeKey: '😝', type: 'emoji' },
|
||||
{ compositeKey: '😞', type: 'emoji' }, { compositeKey: '😟', type: 'emoji' },
|
||||
{ compositeKey: '😠', type: 'emoji' }, { compositeKey: '😡', type: 'emoji' },
|
||||
{ compositeKey: '😢', type: 'emoji' }, { compositeKey: '😣', type: 'emoji' },
|
||||
{ compositeKey: '😤', type: 'emoji' }, { compositeKey: '😥', type: 'emoji' },
|
||||
{ compositeKey: '😦', type: 'emoji' }, { compositeKey: '😧', type: 'emoji' },
|
||||
{ compositeKey: '😨', type: 'emoji' }, { compositeKey: '😩', type: 'emoji' },
|
||||
{ compositeKey: '😪', type: 'emoji' }, { compositeKey: '😫', type: 'emoji' },
|
||||
{ compositeKey: '😬', type: 'emoji' }, { compositeKey: '😭', type: 'emoji' },
|
||||
{ compositeKey: '😮', type: 'emoji' }, { compositeKey: '😯', type: 'emoji' },
|
||||
{ compositeKey: '😰', type: 'emoji' }, { compositeKey: '😱', type: 'emoji' },
|
||||
{ compositeKey: '😲', type: 'emoji' }, { compositeKey: '😳', type: 'emoji' },
|
||||
{ compositeKey: '😴', type: 'emoji' }, { compositeKey: '😵', type: 'emoji' },
|
||||
{ compositeKey: '😶', type: 'emoji' }, { compositeKey: '😷', type: 'emoji' },
|
||||
{ compositeKey: '😸', type: 'emoji' }, { compositeKey: '😹', type: 'emoji' },
|
||||
{ compositeKey: '😺', type: 'emoji' }, { compositeKey: '😻', type: 'emoji' },
|
||||
{ compositeKey: '😼', type: 'emoji' }, { compositeKey: '😽', type: 'emoji' },
|
||||
{ compositeKey: '😾', type: 'emoji' }, { compositeKey: '😿', type: 'emoji' },
|
||||
{ compositeKey: '🙀', type: 'emoji' }, { compositeKey: '🙁', type: 'emoji' },
|
||||
{ compositeKey: '🙂', type: 'emoji' }, { compositeKey: '🙅', type: 'emoji' },
|
||||
{ compositeKey: '🙆', type: 'emoji' }, { compositeKey: '🙇', type: 'emoji' },
|
||||
{ compositeKey: '🙈', type: 'emoji' }, { compositeKey: '🙉', type: 'emoji' },
|
||||
{ compositeKey: '🙊', type: 'emoji' }, { compositeKey: '🙋', type: 'emoji' },
|
||||
{ compositeKey: '🙌', type: 'emoji' }, { compositeKey: '🙍', type: 'emoji' },
|
||||
{ compositeKey: '🙎', type: 'emoji' }, { compositeKey: '🙏', type: 'emoji' },
|
||||
{ compositeKey: '🚶', type: 'emoji' }, { compositeKey: '\u261d\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u263a\ufe0f', type: 'emoji' }, { compositeKey: '\u263b\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u270a\ufe0f', type: 'emoji' }, { compositeKey: '\u270b\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u270c\ufe0f', type: 'emoji' }, { compositeKey: '\u2728\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2764\ufe0f', type: 'emoji' }
|
||||
],
|
||||
keys: [
|
||||
[
|
||||
{
|
||||
value: '',
|
||||
keyCode: -3,
|
||||
className: 'emoji-ime-switch'
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-recent',
|
||||
targetPage: 0
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-people active',
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-nature',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-object',
|
||||
targetPage: 3
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-place',
|
||||
targetPage: 4
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-symbol',
|
||||
targetPage: 5
|
||||
},
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
]
|
||||
]}, { // Page 1 - Nature
|
||||
panelKeys: [{ compositeKey: '🌀', type: 'emoji' }, { compositeKey: '🌁', type: 'emoji' },
|
||||
{ compositeKey: '🌈', type: 'emoji' }, { compositeKey: '🌊', type: 'emoji' },
|
||||
{ compositeKey: '🌋', type: 'emoji' }, { compositeKey: '🌌', type: 'emoji' },
|
||||
{ compositeKey: '🌍', type: 'emoji' }, { compositeKey: '🌎', type: 'emoji' },
|
||||
{ compositeKey: '🌏', type: 'emoji' }, { compositeKey: '🌐', type: 'emoji' },
|
||||
{ compositeKey: '🌑', type: 'emoji' }, { compositeKey: '🌒', type: 'emoji' },
|
||||
{ compositeKey: '🌓', type: 'emoji' }, { compositeKey: '🌔', type: 'emoji' },
|
||||
{ compositeKey: '🌕', type: 'emoji' }, { compositeKey: '🌖', type: 'emoji' },
|
||||
{ compositeKey: '🌗', type: 'emoji' }, { compositeKey: '🌘', type: 'emoji' },
|
||||
{ compositeKey: '🌙', type: 'emoji' }, { compositeKey: '🌚', type: 'emoji' },
|
||||
{ compositeKey: '🌛', type: 'emoji' }, { compositeKey: '🌜', type: 'emoji' },
|
||||
{ compositeKey: '🌝', type: 'emoji' }, { compositeKey: '🌞', type: 'emoji' },
|
||||
{ compositeKey: '🌠', type: 'emoji' }, { compositeKey: '🌰', type: 'emoji' },
|
||||
{ compositeKey: '🌱', type: 'emoji' }, { compositeKey: '🌲', type: 'emoji' },
|
||||
{ compositeKey: '🌳', type: 'emoji' }, { compositeKey: '🌴', type: 'emoji' },
|
||||
{ compositeKey: '🌵', type: 'emoji' }, { compositeKey: '🌷', type: 'emoji' },
|
||||
{ compositeKey: '🌸', type: 'emoji' }, { compositeKey: '🌹', type: 'emoji' },
|
||||
{ compositeKey: '🌺', type: 'emoji' }, { compositeKey: '🌻', type: 'emoji' },
|
||||
{ compositeKey: '🌼', type: 'emoji' }, { compositeKey: '🌾', type: 'emoji' },
|
||||
{ compositeKey: '🌿', type: 'emoji' }, { compositeKey: '🍀', type: 'emoji' },
|
||||
{ compositeKey: '🍁', type: 'emoji' }, { compositeKey: '🍂', type: 'emoji' },
|
||||
{ compositeKey: '🍃', type: 'emoji' }, { compositeKey: '🍄', type: 'emoji' },
|
||||
{ compositeKey: '🍣', type: 'emoji' }, { compositeKey: '🐀', type: 'emoji' },
|
||||
{ compositeKey: '🐁', type: 'emoji' }, { compositeKey: '🐂', type: 'emoji' },
|
||||
{ compositeKey: '🐃', type: 'emoji' }, { compositeKey: '🐄', type: 'emoji' },
|
||||
{ compositeKey: '🐅', type: 'emoji' }, { compositeKey: '🐆', type: 'emoji' },
|
||||
{ compositeKey: '🐇', type: 'emoji' }, { compositeKey: '🐈', type: 'emoji' },
|
||||
{ compositeKey: '🐉', type: 'emoji' }, { compositeKey: '🐊', type: 'emoji' },
|
||||
{ compositeKey: '🐋', type: 'emoji' }, { compositeKey: '🐌', type: 'emoji' },
|
||||
{ compositeKey: '🐍', type: 'emoji' }, { compositeKey: '🐎', type: 'emoji' },
|
||||
{ compositeKey: '🐏', type: 'emoji' }, { compositeKey: '🐐', type: 'emoji' },
|
||||
{ compositeKey: '🐑', type: 'emoji' }, { compositeKey: '🐒', type: 'emoji' },
|
||||
{ compositeKey: '🐓', type: 'emoji' }, { compositeKey: '🐔', type: 'emoji' },
|
||||
{ compositeKey: '🐕', type: 'emoji' }, { compositeKey: '🐖', type: 'emoji' },
|
||||
{ compositeKey: '🐗', type: 'emoji' }, { compositeKey: '🐘', type: 'emoji' },
|
||||
{ compositeKey: '🐙', type: 'emoji' }, { compositeKey: '🐚', type: 'emoji' },
|
||||
{ compositeKey: '🐛', type: 'emoji' }, { compositeKey: '🐜', type: 'emoji' },
|
||||
{ compositeKey: '🐝', type: 'emoji' }, { compositeKey: '🐞', type: 'emoji' },
|
||||
{ compositeKey: '🐟', type: 'emoji' }, { compositeKey: '🐠', type: 'emoji' },
|
||||
{ compositeKey: '🐡', type: 'emoji' }, { compositeKey: '🐢', type: 'emoji' },
|
||||
{ compositeKey: '🐣', type: 'emoji' }, { compositeKey: '🐤', type: 'emoji' },
|
||||
{ compositeKey: '🐥', type: 'emoji' }, { compositeKey: '🐦', type: 'emoji' },
|
||||
{ compositeKey: '🐧', type: 'emoji' }, { compositeKey: '🐨', type: 'emoji' },
|
||||
{ compositeKey: '🐩', type: 'emoji' }, { compositeKey: '🐪', type: 'emoji' },
|
||||
{ compositeKey: '🐫', type: 'emoji' }, { compositeKey: '🐬', type: 'emoji' },
|
||||
{ compositeKey: '🐭', type: 'emoji' }, { compositeKey: '🐮', type: 'emoji' },
|
||||
{ compositeKey: '🐯', type: 'emoji' }, { compositeKey: '🐰', type: 'emoji' },
|
||||
{ compositeKey: '🐱', type: 'emoji' }, { compositeKey: '🐲', type: 'emoji' },
|
||||
{ compositeKey: '🐳', type: 'emoji' }, { compositeKey: '🐴', type: 'emoji' },
|
||||
{ compositeKey: '🐵', type: 'emoji' }, { compositeKey: '🐶', type: 'emoji' },
|
||||
{ compositeKey: '🐷', type: 'emoji' }, { compositeKey: '🐸', type: 'emoji' },
|
||||
{ compositeKey: '🐹', type: 'emoji' }, { compositeKey: '🐺', type: 'emoji' },
|
||||
{ compositeKey: '🐻', type: 'emoji' }, { compositeKey: '🐼', type: 'emoji' },
|
||||
{ compositeKey: '🐽', type: 'emoji' }, { compositeKey: '🐾', type: 'emoji' },
|
||||
{ compositeKey: '💐', type: 'emoji' }, { compositeKey: '🔥', type: 'emoji' },
|
||||
{ compositeKey: '\u2600\ufe0f', type: 'emoji' }, { compositeKey: '\u2601\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2606\ufe0f', type: 'emoji' }, { compositeKey: '\u2614\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u26a1\ufe0f', type: 'emoji' }, { compositeKey: '\u26c4\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u26c5\ufe0f', type: 'emoji' }, { compositeKey: '\u2744\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2b50\ufe0f', type: 'emoji' }
|
||||
],
|
||||
keys: [
|
||||
[
|
||||
{
|
||||
value: '',
|
||||
keyCode: -3,
|
||||
className: 'emoji-ime-switch'
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-recent',
|
||||
targetPage: 0
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-people',
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-nature active',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-object',
|
||||
targetPage: 3
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-place',
|
||||
targetPage: 4
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-symbol',
|
||||
targetPage: 5
|
||||
},
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
]
|
||||
]}, { // Page 2 - Object
|
||||
panelKeys: [{ compositeKey: '🀄\ufe0f', type: 'emoji' }, { compositeKey: '🃏', type: 'emoji' },
|
||||
{ compositeKey: '🌽', type: 'emoji' }, { compositeKey: '🍅', type: 'emoji' },
|
||||
{ compositeKey: '🍆', type: 'emoji' }, { compositeKey: '🍇', type: 'emoji' },
|
||||
{ compositeKey: '🍈', type: 'emoji' }, { compositeKey: '🍉', type: 'emoji' },
|
||||
{ compositeKey: '🍊', type: 'emoji' }, { compositeKey: '🍋', type: 'emoji' },
|
||||
{ compositeKey: '🍌', type: 'emoji' }, { compositeKey: '🍍', type: 'emoji' },
|
||||
{ compositeKey: '🍎', type: 'emoji' }, { compositeKey: '🍏', type: 'emoji' },
|
||||
{ compositeKey: '🍐', type: 'emoji' }, { compositeKey: '🍑', type: 'emoji' },
|
||||
{ compositeKey: '🍒', type: 'emoji' }, { compositeKey: '🍓', type: 'emoji' },
|
||||
{ compositeKey: '🍔', type: 'emoji' }, { compositeKey: '🍕', type: 'emoji' },
|
||||
{ compositeKey: '🍖', type: 'emoji' }, { compositeKey: '🍗', type: 'emoji' },
|
||||
{ compositeKey: '🍘', type: 'emoji' }, { compositeKey: '🍙', type: 'emoji' },
|
||||
{ compositeKey: '🍚', type: 'emoji' }, { compositeKey: '🍛', type: 'emoji' },
|
||||
{ compositeKey: '🍜', type: 'emoji' }, { compositeKey: '🍝', type: 'emoji' },
|
||||
{ compositeKey: '🍞', type: 'emoji' }, { compositeKey: '🍟', type: 'emoji' },
|
||||
{ compositeKey: '🍠', type: 'emoji' }, { compositeKey: '🍡', type: 'emoji' },
|
||||
{ compositeKey: '🍢', type: 'emoji' }, { compositeKey: '🍤', type: 'emoji' },
|
||||
{ compositeKey: '🍥', type: 'emoji' }, { compositeKey: '🍦', type: 'emoji' },
|
||||
{ compositeKey: '🍧', type: 'emoji' }, { compositeKey: '🍨', type: 'emoji' },
|
||||
{ compositeKey: '🍩', type: 'emoji' }, { compositeKey: '🍪', type: 'emoji' },
|
||||
{ compositeKey: '🍫', type: 'emoji' }, { compositeKey: '🍬', type: 'emoji' },
|
||||
{ compositeKey: '🍭', type: 'emoji' }, { compositeKey: '🍮', type: 'emoji' },
|
||||
{ compositeKey: '🍯', type: 'emoji' }, { compositeKey: '🍰', type: 'emoji' },
|
||||
{ compositeKey: '🍱', type: 'emoji' }, { compositeKey: '🍲', type: 'emoji' },
|
||||
{ compositeKey: '🍳', type: 'emoji' }, { compositeKey: '🍴', type: 'emoji' },
|
||||
{ compositeKey: '🍵', type: 'emoji' }, { compositeKey: '🍶', type: 'emoji' },
|
||||
{ compositeKey: '🍷', type: 'emoji' }, { compositeKey: '🍸', type: 'emoji' },
|
||||
{ compositeKey: '🍹', type: 'emoji' }, { compositeKey: '🍺', type: 'emoji' },
|
||||
{ compositeKey: '🍻', type: 'emoji' }, { compositeKey: '🍼', type: 'emoji' },
|
||||
{ compositeKey: '🎁', type: 'emoji' }, { compositeKey: '🎂', type: 'emoji' },
|
||||
{ compositeKey: '🎃', type: 'emoji' }, { compositeKey: '🎄', type: 'emoji' },
|
||||
{ compositeKey: '🎅', type: 'emoji' }, { compositeKey: '🎆', type: 'emoji' },
|
||||
{ compositeKey: '🎇', type: 'emoji' }, { compositeKey: '🎈', type: 'emoji' },
|
||||
{ compositeKey: '🎉', type: 'emoji' }, { compositeKey: '🎊', type: 'emoji' },
|
||||
{ compositeKey: '🎋', type: 'emoji' }, { compositeKey: '🎌', type: 'emoji' },
|
||||
{ compositeKey: '🎍', type: 'emoji' }, { compositeKey: '🎎', type: 'emoji' },
|
||||
{ compositeKey: '🎏', type: 'emoji' }, { compositeKey: '🎐', type: 'emoji' },
|
||||
{ compositeKey: '🎑', type: 'emoji' }, { compositeKey: '🎒', type: 'emoji' },
|
||||
{ compositeKey: '🎓', type: 'emoji' }, { compositeKey: '🎣', type: 'emoji' },
|
||||
{ compositeKey: '🎤', type: 'emoji' }, { compositeKey: '🎥', type: 'emoji' },
|
||||
{ compositeKey: '🎧', type: 'emoji' }, { compositeKey: '🎨', type: 'emoji' },
|
||||
{ compositeKey: '🎬', type: 'emoji' }, { compositeKey: '🎮', type: 'emoji' },
|
||||
{ compositeKey: '🎯', type: 'emoji' }, { compositeKey: '🎱', type: 'emoji' },
|
||||
{ compositeKey: '🎲', type: 'emoji' }, { compositeKey: '🎳', type: 'emoji' },
|
||||
{ compositeKey: '🎴', type: 'emoji' }, { compositeKey: '🎵', type: 'emoji' },
|
||||
{ compositeKey: '🎶', type: 'emoji' }, { compositeKey: '🎷', type: 'emoji' },
|
||||
{ compositeKey: '🎸', type: 'emoji' }, { compositeKey: '🎹', type: 'emoji' },
|
||||
{ compositeKey: '🎺', type: 'emoji' }, { compositeKey: '🎻', type: 'emoji' },
|
||||
{ compositeKey: '🎼', type: 'emoji' }, { compositeKey: '🎾', type: 'emoji' },
|
||||
{ compositeKey: '🎿', type: 'emoji' }, { compositeKey: '🏀', type: 'emoji' },
|
||||
{ compositeKey: '🏂', type: 'emoji' }, { compositeKey: '🏄', type: 'emoji' },
|
||||
{ compositeKey: '🏆', type: 'emoji' }, { compositeKey: '🏇', type: 'emoji' },
|
||||
{ compositeKey: '🏈', type: 'emoji' }, { compositeKey: '🏉', type: 'emoji' },
|
||||
{ compositeKey: '🏊', type: 'emoji' }, { compositeKey: '👔', type: 'emoji' },
|
||||
{ compositeKey: '👻', type: 'emoji' }, { compositeKey: '👾', type: 'emoji' },
|
||||
{ compositeKey: '💉', type: 'emoji' }, { compositeKey: '💊', type: 'emoji' },
|
||||
{ compositeKey: '💝', type: 'emoji' }, { compositeKey: '💡', type: 'emoji' },
|
||||
{ compositeKey: '💣', type: 'emoji' }, { compositeKey: '💰', type: 'emoji' },
|
||||
{ compositeKey: '💳', type: 'emoji' }, { compositeKey: '💴', type: 'emoji' },
|
||||
{ compositeKey: '💵', type: 'emoji' }, { compositeKey: '💶', type: 'emoji' },
|
||||
{ compositeKey: '💷', type: 'emoji' }, { compositeKey: '💸', type: 'emoji' },
|
||||
{ compositeKey: '💻', type: 'emoji' }, { compositeKey: '💽', type: 'emoji' },
|
||||
{ compositeKey: '💾', type: 'emoji' }, { compositeKey: '💿', type: 'emoji' },
|
||||
{ compositeKey: '📀', type: 'emoji' }, { compositeKey: '📁', type: 'emoji' },
|
||||
{ compositeKey: '📂', type: 'emoji' }, { compositeKey: '📃', type: 'emoji' },
|
||||
{ compositeKey: '📄', type: 'emoji' }, { compositeKey: '📅', type: 'emoji' },
|
||||
{ compositeKey: '📆', type: 'emoji' }, { compositeKey: '📇', type: 'emoji' },
|
||||
{ compositeKey: '📈', type: 'emoji' }, { compositeKey: '📉', type: 'emoji' },
|
||||
{ compositeKey: '📊', type: 'emoji' }, { compositeKey: '📋', type: 'emoji' },
|
||||
{ compositeKey: '📌', type: 'emoji' }, { compositeKey: '📎', type: 'emoji' },
|
||||
{ compositeKey: '📏', type: 'emoji' }, { compositeKey: '📐', type: 'emoji' },
|
||||
{ compositeKey: '📑', type: 'emoji' }, { compositeKey: '📒', type: 'emoji' },
|
||||
{ compositeKey: '📓', type: 'emoji' }, { compositeKey: '📔', type: 'emoji' },
|
||||
{ compositeKey: '📕', type: 'emoji' }, { compositeKey: '📖', type: 'emoji' },
|
||||
{ compositeKey: '📗', type: 'emoji' }, { compositeKey: '📘', type: 'emoji' },
|
||||
{ compositeKey: '📙', type: 'emoji' }, { compositeKey: '📚', type: 'emoji' },
|
||||
{ compositeKey: '📛', type: 'emoji' }, { compositeKey: '📜', type: 'emoji' },
|
||||
{ compositeKey: '📝', type: 'emoji' }, { compositeKey: '📞', type: 'emoji' },
|
||||
{ compositeKey: '📟', type: 'emoji' }, { compositeKey: '📠', type: 'emoji' },
|
||||
{ compositeKey: '📡', type: 'emoji' }, { compositeKey: '📢', type: 'emoji' },
|
||||
{ compositeKey: '📣', type: 'emoji' }, { compositeKey: '📤', type: 'emoji' },
|
||||
{ compositeKey: '📥', type: 'emoji' }, { compositeKey: '📦', type: 'emoji' },
|
||||
{ compositeKey: '📧', type: 'emoji' }, { compositeKey: '📨', type: 'emoji' },
|
||||
{ compositeKey: '📩', type: 'emoji' }, { compositeKey: '📪', type: 'emoji' },
|
||||
{ compositeKey: '📫', type: 'emoji' }, { compositeKey: '📬', type: 'emoji' },
|
||||
{ compositeKey: '📭', type: 'emoji' }, { compositeKey: '📮', type: 'emoji' },
|
||||
{ compositeKey: '📯', type: 'emoji' }, { compositeKey: '📰', type: 'emoji' },
|
||||
{ compositeKey: '📱', type: 'emoji' }, { compositeKey: '📲', type: 'emoji' },
|
||||
{ compositeKey: '📷', type: 'emoji' }, { compositeKey: '📹', type: 'emoji' },
|
||||
{ compositeKey: '📺', type: 'emoji' }, { compositeKey: '📻', type: 'emoji' },
|
||||
{ compositeKey: '📼', type: 'emoji' }, { compositeKey: '🔅', type: 'emoji' },
|
||||
{ compositeKey: '🔆', type: 'emoji' }, { compositeKey: '🔇', type: 'emoji' },
|
||||
{ compositeKey: '🔈', type: 'emoji' }, { compositeKey: '🔉', type: 'emoji' },
|
||||
{ compositeKey: '🔊', type: 'emoji' }, { compositeKey: '🔋', type: 'emoji' },
|
||||
{ compositeKey: '🔌', type: 'emoji' }, { compositeKey: '🔍', type: 'emoji' },
|
||||
{ compositeKey: '🔎', type: 'emoji' }, { compositeKey: '🔏', type: 'emoji' },
|
||||
{ compositeKey: '🔐', type: 'emoji' }, { compositeKey: '🔑', type: 'emoji' },
|
||||
{ compositeKey: '🔒', type: 'emoji' }, { compositeKey: '🔓', type: 'emoji' },
|
||||
{ compositeKey: '🔔', type: 'emoji' }, { compositeKey: '🔕', type: 'emoji' },
|
||||
{ compositeKey: '🔖', type: 'emoji' }, { compositeKey: '🔦', type: 'emoji' },
|
||||
{ compositeKey: '🔧', type: 'emoji' }, { compositeKey: '🔨', type: 'emoji' },
|
||||
{ compositeKey: '🔩', type: 'emoji' }, { compositeKey: '🔪', type: 'emoji' },
|
||||
{ compositeKey: '🔫', type: 'emoji' }, { compositeKey: '🔬', type: 'emoji' },
|
||||
{ compositeKey: '🔭', type: 'emoji' }, { compositeKey: '🔮', type: 'emoji' },
|
||||
{ compositeKey: '🕻', type: 'emoji' }, { compositeKey: '🕿', type: 'emoji' },
|
||||
{ compositeKey: '🖪', type: 'emoji' }, { compositeKey: '🚪', type: 'emoji' },
|
||||
{ compositeKey: '🚬', type: 'emoji' }, { compositeKey: '🚴', type: 'emoji' },
|
||||
{ compositeKey: '🚽', type: 'emoji' }, { compositeKey: '🚿', type: 'emoji' },
|
||||
{ compositeKey: '🛀', type: 'emoji' }, { compositeKey: '🛁', type: 'emoji' },
|
||||
{ compositeKey: '\u231a\ufe0f', type: 'emoji' }, { compositeKey: '\u231b\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u23f3\ufe0f', type: 'emoji' }, { compositeKey: '\u260e\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2615\ufe0f', type: 'emoji' }, { compositeKey: '\u26bd\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u26be\ufe0f', type: 'emoji' }, { compositeKey: '\u26f3\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2702\ufe0f', type: 'emoji' }, { compositeKey: '\u2709\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u270f\ufe0f', type: 'emoji' }, { compositeKey: '\u2712\ufe0f', type: 'emoji' }
|
||||
],
|
||||
keys: [
|
||||
[
|
||||
{
|
||||
value: '',
|
||||
keyCode: -3,
|
||||
className: 'emoji-ime-switch'
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-recent',
|
||||
targetPage: 0
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-people',
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-nature',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-object active',
|
||||
targetPage: 3
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-place',
|
||||
targetPage: 4
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-symbol',
|
||||
targetPage: 5
|
||||
},
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
]
|
||||
]
|
||||
}, { // Page 3 - Places
|
||||
panelKeys: [{ compositeKey: '🇨🇳', type: 'emoji' }, { compositeKey: '🇫🇷', type: 'emoji' },
|
||||
{ compositeKey: '🇬🇧', type: 'emoji' }, { compositeKey: '🇮🇹', type: 'emoji' },
|
||||
{ compositeKey: '🇯🇵', type: 'emoji' }, { compositeKey: '🇰🇷', type: 'emoji' },
|
||||
{ compositeKey: '🇷🇺', type: 'emoji' }, { compositeKey: '🇪🇸', type: 'emoji' },
|
||||
{ compositeKey: '🇺🇸', type: 'emoji' }, { compositeKey: '🌃', type: 'emoji' },
|
||||
{ compositeKey: '🌄', type: 'emoji' }, { compositeKey: '🌅', type: 'emoji' },
|
||||
{ compositeKey: '🌆', type: 'emoji' }, { compositeKey: '🌇', type: 'emoji' },
|
||||
{ compositeKey: '🌉', type: 'emoji' }, { compositeKey: '🎠', type: 'emoji' },
|
||||
{ compositeKey: '🎡', type: 'emoji' }, { compositeKey: '🎢', type: 'emoji' },
|
||||
{ compositeKey: '🎪', type: 'emoji' }, { compositeKey: '🎫', type: 'emoji' },
|
||||
{ compositeKey: '🎭', type: 'emoji' }, { compositeKey: '🎰', type: 'emoji' },
|
||||
{ compositeKey: '🏠', type: 'emoji' }, { compositeKey: '🏡', type: 'emoji' },
|
||||
{ compositeKey: '🏢', type: 'emoji' }, { compositeKey: '🏣', type: 'emoji' },
|
||||
{ compositeKey: '🏤', type: 'emoji' }, { compositeKey: '🏥', type: 'emoji' },
|
||||
{ compositeKey: '🏦', type: 'emoji' }, { compositeKey: '🏨', type: 'emoji' },
|
||||
{ compositeKey: '🏩', type: 'emoji' }, { compositeKey: '🏪', type: 'emoji' },
|
||||
{ compositeKey: '🏫', type: 'emoji' }, { compositeKey: '🏬', type: 'emoji' },
|
||||
{ compositeKey: '🏭', type: 'emoji' }, { compositeKey: '🏮', type: 'emoji' },
|
||||
{ compositeKey: '🏯', type: 'emoji' }, { compositeKey: '🏰', type: 'emoji' },
|
||||
{ compositeKey: '💈', type: 'emoji' }, { compositeKey: '💒', type: 'emoji' },
|
||||
{ compositeKey: '💺', type: 'emoji' }, { compositeKey: '📍', type: 'emoji' },
|
||||
{ compositeKey: '🔰', type: 'emoji' }, { compositeKey: '🗻', type: 'emoji' },
|
||||
{ compositeKey: '🗼', type: 'emoji' }, { compositeKey: '🗽', type: 'emoji' },
|
||||
{ compositeKey: '🗾', type: 'emoji' }, { compositeKey: '🗿', type: 'emoji' },
|
||||
{ compositeKey: '🚀', type: 'emoji' }, { compositeKey: '🚁', type: 'emoji' },
|
||||
{ compositeKey: '🚂', type: 'emoji' }, { compositeKey: '🚃', type: 'emoji' },
|
||||
{ compositeKey: '🚄', type: 'emoji' }, { compositeKey: '🚅', type: 'emoji' },
|
||||
{ compositeKey: '🚆', type: 'emoji' }, { compositeKey: '🚇', type: 'emoji' },
|
||||
{ compositeKey: '🚈', type: 'emoji' }, { compositeKey: '🚉', type: 'emoji' },
|
||||
{ compositeKey: '🚊', type: 'emoji' }, { compositeKey: '🚋', type: 'emoji' },
|
||||
{ compositeKey: '🚌', type: 'emoji' }, { compositeKey: '🚍', type: 'emoji' },
|
||||
{ compositeKey: '🚎', type: 'emoji' }, { compositeKey: '🚏', type: 'emoji' },
|
||||
{ compositeKey: '🚐', type: 'emoji' }, { compositeKey: '🚑', type: 'emoji' },
|
||||
{ compositeKey: '🚒', type: 'emoji' }, { compositeKey: '🚓', type: 'emoji' },
|
||||
{ compositeKey: '🚔', type: 'emoji' }, { compositeKey: '🚕', type: 'emoji' },
|
||||
{ compositeKey: '🚖', type: 'emoji' }, { compositeKey: '🚗', type: 'emoji' },
|
||||
{ compositeKey: '🚘', type: 'emoji' }, { compositeKey: '🚙', type: 'emoji' },
|
||||
{ compositeKey: '🚚', type: 'emoji' }, { compositeKey: '🚛', type: 'emoji' },
|
||||
{ compositeKey: '🚜', type: 'emoji' }, { compositeKey: '🚝', type: 'emoji' },
|
||||
{ compositeKey: '🚞', type: 'emoji' }, { compositeKey: '🚟', type: 'emoji' },
|
||||
{ compositeKey: '🚠', type: 'emoji' }, { compositeKey: '🚡', type: 'emoji' },
|
||||
{ compositeKey: '🚢', type: 'emoji' }, { compositeKey: '🚣', type: 'emoji' },
|
||||
{ compositeKey: '🚤', type: 'emoji' }, { compositeKey: '🚥', type: 'emoji' },
|
||||
{ compositeKey: '🚦', type: 'emoji' }, { compositeKey: '🚧', type: 'emoji' },
|
||||
{ compositeKey: '🚨', type: 'emoji' }, { compositeKey: '🚩', type: 'emoji' },
|
||||
{ compositeKey: '🚲', type: 'emoji' }, { compositeKey: '\u2668\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2693\ufe0f', type: 'emoji' }, { compositeKey: '\u26a0\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u26ea\ufe0f', type: 'emoji' }, { compositeKey: '\u26f2\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u26f5\ufe0f', type: 'emoji' }, { compositeKey: '\u26fa\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u26fd\ufe0f', type: 'emoji' }, { compositeKey: '\u2708\ufe0f', type: 'emoji' }
|
||||
|
||||
|
||||
],
|
||||
keys: [
|
||||
[
|
||||
{
|
||||
value: '',
|
||||
keyCode: -3,
|
||||
className: 'emoji-ime-switch'
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-recent',
|
||||
targetPage: 0
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-people',
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-nature',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-object',
|
||||
targetPage: 3
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-place active',
|
||||
targetPage: 4
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-symbol',
|
||||
targetPage: 5
|
||||
},
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
]
|
||||
]
|
||||
}, { // Page 4 - Symbols
|
||||
panelKeys: [{ compositeKey: '🅰\ufe0f', type: 'emoji' }, { compositeKey: '🅱\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '🅾\ufe0f', type: 'emoji' }, { compositeKey: '🅿\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '🆎', type: 'emoji' }, { compositeKey: '🆑', type: 'emoji' },
|
||||
{ compositeKey: '🆒', type: 'emoji' }, { compositeKey: '🆓', type: 'emoji' },
|
||||
{ compositeKey: '🆔', type: 'emoji' }, { compositeKey: '🆕', type: 'emoji' },
|
||||
{ compositeKey: '🆖', type: 'emoji' }, { compositeKey: '🆗', type: 'emoji' },
|
||||
{ compositeKey: '🆘', type: 'emoji' }, { compositeKey: '🆙', type: 'emoji' },
|
||||
{ compositeKey: '🆚', type: 'emoji' }, { compositeKey: '🈁', type: 'emoji' },
|
||||
{ compositeKey: '🈂\ufe0f', type: 'emoji' }, { compositeKey: '🈚\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '🈯\ufe0f', type: 'emoji' }, { compositeKey: '🈲\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '🈳\ufe0f', type: 'emoji' }, { compositeKey: '🈴\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '🈵\ufe0f', type: 'emoji' }, { compositeKey: '🈶\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '🈷\ufe0f', type: 'emoji' }, { compositeKey: '🈸\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '🈹', type: 'emoji' }, { compositeKey: '🈺', type: 'emoji' },
|
||||
{ compositeKey: '🉐', type: 'emoji' }, { compositeKey: '🉑', type: 'emoji' },
|
||||
{ compositeKey: '🎦', type: 'emoji' }, { compositeKey: '🏧', type: 'emoji' },
|
||||
{ compositeKey: '💟', type: 'emoji' }, { compositeKey: '💠', type: 'emoji' },
|
||||
{ compositeKey: '💮', type: 'emoji' }, { compositeKey: '💯', type: 'emoji' },
|
||||
{ compositeKey: '💱', type: 'emoji' }, { compositeKey: '💲', type: 'emoji' },
|
||||
{ compositeKey: '💹', type: 'emoji' }, { compositeKey: '📳', type: 'emoji' },
|
||||
{ compositeKey: '📴', type: 'emoji' }, { compositeKey: '📵', type: 'emoji' },
|
||||
{ compositeKey: '📶', type: 'emoji' }, { compositeKey: '🔀', type: 'emoji' },
|
||||
{ compositeKey: '🔁', type: 'emoji' }, { compositeKey: '🔂', type: 'emoji' },
|
||||
{ compositeKey: '🔃', type: 'emoji' }, { compositeKey: '🔄', type: 'emoji' },
|
||||
{ compositeKey: '🔗', type: 'emoji' }, { compositeKey: '🔘', type: 'emoji' },
|
||||
{ compositeKey: '🔙', type: 'emoji' }, { compositeKey: '🔚', type: 'emoji' },
|
||||
{ compositeKey: '🔛', type: 'emoji' }, { compositeKey: '🔜', type: 'emoji' },
|
||||
{ compositeKey: '🔝', type: 'emoji' }, { compositeKey: '🔞', type: 'emoji' },
|
||||
{ compositeKey: '🔟', type: 'emoji' }, { compositeKey: '🔠', type: 'emoji' },
|
||||
{ compositeKey: '🔡', type: 'emoji' }, { compositeKey: '🔢', type: 'emoji' },
|
||||
{ compositeKey: '🔣', type: 'emoji' }, { compositeKey: '🔤', type: 'emoji' },
|
||||
{ compositeKey: '🔯', type: 'emoji' }, { compositeKey: '🔱', type: 'emoji' },
|
||||
{ compositeKey: '🔲', type: 'emoji' }, { compositeKey: '🔳', type: 'emoji' },
|
||||
{ compositeKey: '🔴', type: 'emoji' }, { compositeKey: '🔵', type: 'emoji' },
|
||||
{ compositeKey: '🔶', type: 'emoji' }, { compositeKey: '🔷', type: 'emoji' },
|
||||
{ compositeKey: '🔸', type: 'emoji' }, { compositeKey: '🔹', type: 'emoji' },
|
||||
{ compositeKey: '🔺', type: 'emoji' }, { compositeKey: '🔻', type: 'emoji' },
|
||||
{ compositeKey: '🔼', type: 'emoji' }, { compositeKey: '🔽', type: 'emoji' },
|
||||
{ compositeKey: '🕐', type: 'emoji' }, { compositeKey: '🕑', type: 'emoji' },
|
||||
{ compositeKey: '🕒', type: 'emoji' }, { compositeKey: '🕓', type: 'emoji' },
|
||||
{ compositeKey: '🕕', type: 'emoji' }, { compositeKey: '🕖', type: 'emoji' },
|
||||
{ compositeKey: '🕛', type: 'emoji' }, { compositeKey: '🕜', type: 'emoji' },
|
||||
{ compositeKey: '🕝', type: 'emoji' }, { compositeKey: '🕞', type: 'emoji' },
|
||||
{ compositeKey: '🕟', type: 'emoji' }, { compositeKey: '🕠', type: 'emoji' },
|
||||
{ compositeKey: '🕡', type: 'emoji' }, { compositeKey: '🕧', type: 'emoji' },
|
||||
{ compositeKey: '🚫', type: 'emoji' }, { compositeKey: '🚭', type: 'emoji' },
|
||||
{ compositeKey: '🚮', type: 'emoji' }, { compositeKey: '🚯', type: 'emoji' },
|
||||
{ compositeKey: '🚰', type: 'emoji' }, { compositeKey: '🚱', type: 'emoji' },
|
||||
{ compositeKey: '🚳', type: 'emoji' }, { compositeKey: '🚷', type: 'emoji' },
|
||||
{ compositeKey: '🚸', type: 'emoji' }, { compositeKey: '🚹', type: 'emoji' },
|
||||
{ compositeKey: '🚺', type: 'emoji' }, { compositeKey: '🚻', type: 'emoji' },
|
||||
{ compositeKey: '🚼', type: 'emoji' }, { compositeKey: '🚾', type: 'emoji' },
|
||||
{ compositeKey: '🛂', type: 'emoji' }, { compositeKey: '🛃', type: 'emoji' },
|
||||
{ compositeKey: '🛄', type: 'emoji' }, { compositeKey: '🛅', type: 'emoji' },
|
||||
{ compositeKey: '\u203c\ufe0f', type: 'emoji' }, { compositeKey: '\u2049\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2139\ufe0f', type: 'emoji' }, { compositeKey: '\u2194\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2195\ufe0f', type: 'emoji' }, { compositeKey: '\u2196\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2197\ufe0f', type: 'emoji' }, { compositeKey: '\u2198\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u21a9\ufe0f', type: 'emoji' }, { compositeKey: '\u21aa\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u23e9\ufe0f', type: 'emoji' }, { compositeKey: '\u23ea\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u23eb\ufe0f', type: 'emoji' }, { compositeKey: '\u23ec\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u23f0\ufe0f', type: 'emoji' }, { compositeKey: '\u24c2\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u25aa\ufe0f', type: 'emoji' }, { compositeKey: '\u25ab\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u25b6\ufe0f', type: 'emoji' }, { compositeKey: '\u25c0\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u25fb\ufe0f', type: 'emoji' }, { compositeKey: '\u25fc\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u25fd\ufe0f', type: 'emoji' }, { compositeKey: '\u25fe\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2611\ufe0f', type: 'emoji' }, { compositeKey: '\u2648\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2649\ufe0f', type: 'emoji' }, { compositeKey: '\u264a\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u264b\ufe0f', type: 'emoji' }, { compositeKey: '\u264c\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u264d\ufe0f', type: 'emoji' }, { compositeKey: '\u264e\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u264f\ufe0f', type: 'emoji' }, { compositeKey: '\u2650\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2651\ufe0f', type: 'emoji' }, { compositeKey: '\u2652\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2653\ufe0f', type: 'emoji' }, { compositeKey: '\u2660\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2663\ufe0f', type: 'emoji' }, { compositeKey: '\u2665\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2666\ufe0f', type: 'emoji' }, { compositeKey: '\u267b\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u267f\ufe0f', type: 'emoji' }, { compositeKey: '\u26aa\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u26ab\ufe0f', type: 'emoji' }, { compositeKey: '\u26ce\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u26d4\ufe0f', type: 'emoji' }, { compositeKey: '\u2705\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2714\ufe0f', type: 'emoji' }, { compositeKey: '\u2716\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2733\ufe0f', type: 'emoji' }, { compositeKey: '\u2734\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2748\ufe0f', type: 'emoji' }, { compositeKey: '\u274c\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u274e\ufe0f', type: 'emoji' }, { compositeKey: '\u2753\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2754\ufe0f', type: 'emoji' }, { compositeKey: '\u2755\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2757\ufe0f', type: 'emoji' }, { compositeKey: '\u2795\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2796\ufe0f', type: 'emoji' }, { compositeKey: '\u2797\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u27a1\ufe0f', type: 'emoji' }, { compositeKey: '\u27b0\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u27bf\ufe0f', type: 'emoji' }, { compositeKey: '\u2934\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2935\ufe0f', type: 'emoji' }, { compositeKey: '\u2b05\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2b1b\ufe0f', type: 'emoji' }, { compositeKey: '\u2b1c\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u2b55\ufe0f', type: 'emoji' }, { compositeKey: '\u3030\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u303d\ufe0f', type: 'emoji' }, { compositeKey: '\u3297\ufe0f', type: 'emoji' },
|
||||
{ compositeKey: '\u3299\ufe0f', type: 'emoji' }
|
||||
],
|
||||
keys: [
|
||||
[
|
||||
{
|
||||
value: '',
|
||||
keyCode: -3,
|
||||
className: 'emoji-ime-switch'
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-recent',
|
||||
targetPage: 0
|
||||
},
|
||||
{
|
||||
value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-people',
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-nature',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-object',
|
||||
targetPage: 3
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-place',
|
||||
targetPage: 4
|
||||
},
|
||||
{ value: '',
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'emoji-symbol active',
|
||||
targetPage: 5
|
||||
},
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
};
|
||||
92
gaia/apps/keyboard/js/layouts/en-Africa.js
Executable file
92
gaia/apps/keyboard/js/layouts/en-Africa.js
Executable file
|
|
@ -0,0 +1,92 @@
|
|||
Keyboards['en-Africa'] = {
|
||||
label: 'English (Africa)',
|
||||
shortLabel: 'En',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'en_gb',
|
||||
menuLabel: 'English (Africa)',
|
||||
lang: 'en-GB',
|
||||
pages: [ {
|
||||
alt: {
|
||||
a: 'áàâäåãāæ',
|
||||
c: 'çćč',
|
||||
e: 'éèêëēę€ɛ',
|
||||
i: 'ïíìîīį',
|
||||
o: 'öõóòôōœøɵ',
|
||||
u: 'üúùûū',
|
||||
s: 'ßśš$',
|
||||
S: 'ŚŠ$',
|
||||
n: 'ñń',
|
||||
l: 'ł£',
|
||||
y: 'ÿ¥',
|
||||
z: 'žźż',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
}, {
|
||||
alt: {
|
||||
'1': ['¹', '1st'],
|
||||
'2': ['²', '2nd'],
|
||||
'3': ['³', '3rd'],
|
||||
'4': ['⁴', '4th'],
|
||||
'5': ['⁵', '5th'],
|
||||
'6': ['⁶', '6th'],
|
||||
'7': ['⁷', '7th'],
|
||||
'8': ['⁸', '8th'],
|
||||
'9': ['⁹', '9th'],
|
||||
'0': ['⁰', 'º'],
|
||||
'$': [ '€', '£', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '$', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
44
gaia/apps/keyboard/js/layouts/en-Colemak.js
Executable file
44
gaia/apps/keyboard/js/layouts/en-Colemak.js
Executable file
|
|
@ -0,0 +1,44 @@
|
|||
Keyboards['en-Colemak'] = {
|
||||
label: 'English - Colemak',
|
||||
shortLabel: 'En',
|
||||
menuLabel: 'Colemak',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'en_us',
|
||||
lang: 'en-US',
|
||||
alt: {
|
||||
a: 'áàâäåãāæ',
|
||||
c: 'çćč',
|
||||
e: 'éèêëēę€ɛ',
|
||||
i: 'ïíìîīį',
|
||||
o: 'öóòôōőœøɵ',
|
||||
u: 'üúùûűū',
|
||||
s: 'ßśš$',
|
||||
S: 'ŚŠ$',
|
||||
n: 'ñń',
|
||||
l: 'ł£',
|
||||
y: 'ÿ¥',
|
||||
z: 'žźż',
|
||||
'.': ',?!:)(…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'f' } , { value: 'p' },
|
||||
{ value: 'g' } , { value: 'j' }, { value: 'l' } , { value: 'u' },
|
||||
{ value: 'y' }, { value: ';' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 'r' }, { value: 's' }, { value: 't' },
|
||||
{ value: 'd' } , { value: 'h' }, { value: 'n' }, { value: 'e' },
|
||||
{ value: 'i' },
|
||||
{ value: 'o',}
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'k' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
43
gaia/apps/keyboard/js/layouts/en-Dvorak.js
Executable file
43
gaia/apps/keyboard/js/layouts/en-Dvorak.js
Executable file
|
|
@ -0,0 +1,43 @@
|
|||
Keyboards['en-Dvorak'] = {
|
||||
label: 'English - Dvorak',
|
||||
shortLabel: 'En',
|
||||
menuLabel: 'Dvorak',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'en_us',
|
||||
lang: 'en-US',
|
||||
alt: {
|
||||
a: 'àáâãäåāæ',
|
||||
c: 'çćč',
|
||||
e: 'èéêëē€',
|
||||
i: 'ìíîïī',
|
||||
o: 'òóôõöōœø',
|
||||
u: 'ùúûüū',
|
||||
s: 'śšşß',
|
||||
S: 'ŚŠŞ',
|
||||
n: 'ńñň'
|
||||
},
|
||||
textLayoutOverwrite: {
|
||||
',': "'",
|
||||
'.': false
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: ',' }, { value: '.' } , { value: 'p' }, { value: 'y' },
|
||||
{ value: 'f' }, { value: 'g' } , { value: 'c' }, { value: 'r' },
|
||||
{ value: 'l' }, { value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: 'a' }, { value: 'o' }, { value: 'e' }, { value: 'u' },
|
||||
{ value: 'i' } , { value: 'd' }, { value: 'h' }, { value: 't' },
|
||||
{ value: 'n' }, { value: 's' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'q' }, { value: 'j' }, { value: 'k' }, { value: 'x' },
|
||||
{ value: 'b' }, { value: 'm' }, { value: 'w' }, { value: 'v' },
|
||||
{ value: 'z' }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
92
gaia/apps/keyboard/js/layouts/en-GB.js
Executable file
92
gaia/apps/keyboard/js/layouts/en-GB.js
Executable file
|
|
@ -0,0 +1,92 @@
|
|||
Keyboards['en-GB'] = {
|
||||
label: 'English (UK)',
|
||||
shortLabel: 'En',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'en_gb',
|
||||
menuLabel: 'English (UK)',
|
||||
lang: 'en-GB',
|
||||
pages: [ {
|
||||
alt: {
|
||||
a: 'áàâäåãāæ',
|
||||
c: 'çćč',
|
||||
e: 'éèêëēę€ɛ',
|
||||
i: 'ïíìîīį',
|
||||
o: 'öõóòôōœøɵ',
|
||||
u: 'üúùûū',
|
||||
s: 'ßśš$',
|
||||
S: 'ŚŠ$',
|
||||
n: 'ñń',
|
||||
l: 'ł£',
|
||||
y: 'ÿ¥',
|
||||
z: 'žźż',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
}, {
|
||||
alt: {
|
||||
'1': ['¹', '1st'],
|
||||
'2': ['²', '2nd'],
|
||||
'3': ['³', '3rd'],
|
||||
'4': ['⁴', '4th'],
|
||||
'5': ['⁵', '5th'],
|
||||
'6': ['⁶', '6th'],
|
||||
'7': ['⁷', '7th'],
|
||||
'8': ['⁸', '8th'],
|
||||
'9': ['⁹', '9th'],
|
||||
'0': ['⁰', 'º'],
|
||||
'£': [ '€', '$', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '£', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
119
gaia/apps/keyboard/js/layouts/en-Neo.js
Executable file
119
gaia/apps/keyboard/js/layouts/en-Neo.js
Executable file
|
|
@ -0,0 +1,119 @@
|
|||
Keyboards['en-Neo'] = {
|
||||
label: 'English - Neo',
|
||||
shortLabel: 'En',
|
||||
menuLabel: 'English - Neo',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'en_us',
|
||||
lang: 'en-US',
|
||||
alt: {
|
||||
a: 'áàâäåãāæ',
|
||||
c: 'çćč',
|
||||
e: 'éèêëēę€ɛ',
|
||||
i: 'ïíìîīį',
|
||||
o: 'öóòôōœøɵ',
|
||||
u: 'üúùûū',
|
||||
s: 'ßśš$',
|
||||
S: 'ŚŠ$',
|
||||
n: 'ñń',
|
||||
l: 'ł£',
|
||||
y: 'ÿ¥',
|
||||
z: 'žźż',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'x' }, { value: 'v' }, { value: 'l' } , { value: 'c' },
|
||||
{ value: 'w' }, { value: 'k' }, { value: 'h' } , { value: 'g' },
|
||||
{ value: 'f' }, { value: 'q' }
|
||||
], [
|
||||
{ value: 'u' }, { value: 'i', }, { value: 'a' }, { value: 'e' },
|
||||
{ value: 'o' }, { value: 's', }, { value: 'n' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'd', }
|
||||
], [
|
||||
{ value: '⇪', ratio: 2, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'p' }, { value: 'z' }, { value: 'b' },
|
||||
{ value: 'm' }, { value: 'j' }, { value: 'y' },
|
||||
{ value: '⌫', ratio: 2, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
needsCommaKey: true,
|
||||
alt: {
|
||||
'1': ['¹', '1st'],
|
||||
'2': ['²', '2nd'],
|
||||
'3': ['³', '3rd'],
|
||||
'4': ['⁴', '4th'],
|
||||
'5': ['⁵', '5th'],
|
||||
'6': ['⁶', '6th'],
|
||||
'7': ['⁷', '7th'],
|
||||
'8': ['⁸', '8th'],
|
||||
'9': ['⁹', '9th'],
|
||||
'0': ['⁰', 'º'],
|
||||
'$': [ '€', '£', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±'],
|
||||
'/': '\\'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: ':' }, { value: '&' },
|
||||
{ value: '#' }, { value: '$' }, { value: '!' },
|
||||
{ value: '7' }, { value: '8' }, { value: '9' },
|
||||
{ value: '/' }, { value: '*' }
|
||||
], [
|
||||
{ value: ';' }, { value: '@' },
|
||||
{ value: '(' }, { value: ')' }, { value: '?' },
|
||||
{ value: '4' }, { value: '5' }, { value: '6' },
|
||||
{ value: '+' }, { value: '-' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 2,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '%' }, { value: '"' }, { value: "'" },
|
||||
{ value: '1' }, { value: '2' }, { value: '3' },
|
||||
{ value: '⌫', ratio: 2, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, {
|
||||
alt: {
|
||||
'®': ['™']
|
||||
},
|
||||
needsCommaKey: true,
|
||||
keys: [
|
||||
[
|
||||
{ value: '§' }, { value: '_' }, { value: '[' }, { value: ']' },
|
||||
{ value: '^' }, { value: '<' }, { value: '>' }, { value: '=' },
|
||||
{ value: '¥' }, { value: '€' }
|
||||
], [
|
||||
{ value: '©' }, { value: '®' }, { value: '{' }, { value: '}' },
|
||||
{ value: '`' }, { value: '«' }, { value: '»' }, { value: '±' },
|
||||
{ value: '£' }, { value: '$' }
|
||||
],
|
||||
[
|
||||
{ value: 'Alt', ratio: 2,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '|' }, { value: '~' }, { value: 'º' },
|
||||
{ value: '¹' }, { value: '²' }, { value: '³' },
|
||||
{ value: '⌫', ratio: 2, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
91
gaia/apps/keyboard/js/layouts/en.js
Executable file
91
gaia/apps/keyboard/js/layouts/en.js
Executable file
|
|
@ -0,0 +1,91 @@
|
|||
Keyboards.en = {
|
||||
label: 'English',
|
||||
shortLabel: 'En',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'en_us',
|
||||
menuLabel: 'English',
|
||||
lang: 'en',
|
||||
alt: {
|
||||
a: 'áàâäåãāæ',
|
||||
c: 'çćč',
|
||||
e: 'éèêëēę€ɛ',
|
||||
i: 'ïíìîīį',
|
||||
o: 'öõóòôōœøɵ',
|
||||
u: 'üúùûū',
|
||||
s: 'ßśš$',
|
||||
S: 'ŚŠ$',
|
||||
n: 'ñń',
|
||||
l: 'ł£',
|
||||
y: 'ÿ¥',
|
||||
z: 'žźż',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'1': ['¹', '1st'],
|
||||
'2': ['²', '2nd'],
|
||||
'3': ['³', '3rd'],
|
||||
'4': ['⁴', '4th'],
|
||||
'5': ['⁵', '5th'],
|
||||
'6': ['⁶', '6th'],
|
||||
'7': ['⁷', '7th'],
|
||||
'8': ['⁸', '8th'],
|
||||
'9': ['⁹', '9th'],
|
||||
'0': ['⁰', 'º'],
|
||||
'$': [ '€', '£', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '$', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
51
gaia/apps/keyboard/js/layouts/eo.js
Executable file
51
gaia/apps/keyboard/js/layouts/eo.js
Executable file
|
|
@ -0,0 +1,51 @@
|
|||
Keyboards.eo = {
|
||||
label: 'Esperanto',
|
||||
menuLabel: 'Esperanto',
|
||||
shortLabel: 'Eo',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
lang: 'eo',
|
||||
alt: {
|
||||
a: 'àáâãäåæāăą',
|
||||
c: 'çćċč',
|
||||
d: 'ðďđ',
|
||||
e: 'èéêëēėęě',
|
||||
g: 'ğġģ',
|
||||
h: 'ĥħ',
|
||||
i: 'ìíîïĩīįıij',
|
||||
k: 'ķĸ',
|
||||
l: 'ĺļľŀł',
|
||||
n: 'ñńņňʼnŋ',
|
||||
o: 'òóôõöøōőœ',
|
||||
'ŝ': 'q',
|
||||
r: 'ŕŗř',
|
||||
s: 'śşšșß',
|
||||
S: 'ŚŞŠȘ',
|
||||
t: 'þţťŧț',
|
||||
u: 'ùúûüũūůűų',
|
||||
'ĝ': 'wŵ',
|
||||
'ĉ': 'x',
|
||||
'ŭ': 'yýÿŷ',
|
||||
z: 'źżž',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'ŝ' }, { value: 'ĝ' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' }, { value: 'ŭ' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: 'ĵ' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'ĉ' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
117
gaia/apps/keyboard/js/layouts/es-Americas.js
Executable file
117
gaia/apps/keyboard/js/layouts/es-Americas.js
Executable file
|
|
@ -0,0 +1,117 @@
|
|||
Keyboards['es-Americas'] = {
|
||||
label: 'Spanish (Latin America)',
|
||||
shortLabel: 'Es',
|
||||
menuLabel: 'Español (Latinoamérica)',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'es',
|
||||
lang: 'es',
|
||||
alt: {
|
||||
a: 'áªàâäåãāæ',
|
||||
c: 'ç',
|
||||
e: 'é€èêëēęɛ',
|
||||
i: 'íïìîīį',
|
||||
o: 'óºöòôōœøɵ',
|
||||
u: 'úüùûū',
|
||||
s: '$ßš',
|
||||
S: '$Š',
|
||||
l: '£ l·l',
|
||||
n: 'ń',
|
||||
y: '¥',
|
||||
'.': ',¿?¡!;:·',
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: 'ñ' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'$': ['€', '£', '¢', '¥'],
|
||||
'0': ['º'],
|
||||
'1': ['1º', '1ª'],
|
||||
'2': ['2º', '2ª'],
|
||||
'3': ['3º', '3ª'],
|
||||
'4': ['4º', '4ª'],
|
||||
'5': ['5º', '5ª'],
|
||||
'6': ['6º', '6ª'],
|
||||
'7': ['7º', '7ª'],
|
||||
'8': ['8º', '8ª'],
|
||||
'9': ['9º', '9ª'],
|
||||
'.': ['·'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
},
|
||||
// These are based on the es layout.
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '-' }, { value: '/' }, { value: ':' }, { value: ';' },
|
||||
{ value: '(' }, { value: ')' }, { value: '$', className: 'alternate-indicator' },
|
||||
{ value: '&' }, { value: '@' }, { value: '%' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '*',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
},
|
||||
{ value: '¿' }, { value: '?' }, { value: '¡' }, { value: '!' },
|
||||
{ value: '"' }, { value: '\'' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, {
|
||||
alt: {
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '[' }, { value: ']' }, { value: '{' }, { value: '}' },
|
||||
{ value: '#' }, { value: '%' }, { value: '^' }, { value: '+' },
|
||||
{ value: '=' }, { value: '°' }
|
||||
], [
|
||||
{ value: '_' }, { value: '\\' }, { value: '|' }, { value: '~' },
|
||||
{ value: '<' }, { value: '>' }, { value: '€' }, { value: '£' },
|
||||
{ value: '¥' }, { value: '•' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 1
|
||||
},
|
||||
{value: '*' }, { value: '¿' }, { value: '?' },
|
||||
{ value: '¡' }, { value: '!' },
|
||||
{ value: '"' }, { value: '\'' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
120
gaia/apps/keyboard/js/layouts/es.js
Executable file
120
gaia/apps/keyboard/js/layouts/es.js
Executable file
|
|
@ -0,0 +1,120 @@
|
|||
Keyboards.es = {
|
||||
label: 'Spanish',
|
||||
shortLabel: 'Es',
|
||||
menuLabel: 'Español',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'es',
|
||||
lang: 'es',
|
||||
alt: {
|
||||
a: 'áªàâäåãāæ',
|
||||
c: 'ç',
|
||||
e: 'é€èêëēęɛ',
|
||||
i: 'íïìîīį',
|
||||
o: 'óºöòôōœøɵ',
|
||||
u: 'úüùûū',
|
||||
s: '$ßš',
|
||||
S: '$Š',
|
||||
l: '£ l·l',
|
||||
n: 'ń',
|
||||
y: '¥',
|
||||
'.': ',¿?¡!;:·',
|
||||
':)': ':) :D :( ;D :* :/'
|
||||
/* '.com': '.es .org .eu' XXX: commented to avoid overflows for the demo */
|
||||
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: 'ñ' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
// { value: ':)', compositeKey:':)', ratio: 2 },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'€': ['$', '£', '¢', '¥'],
|
||||
'0': ['º'],
|
||||
'1': ['1º', '1ª'],
|
||||
'2': ['2º', '2ª'],
|
||||
'3': ['3º', '3ª'],
|
||||
'4': ['4º', '4ª'],
|
||||
'5': ['5º', '5ª'],
|
||||
'6': ['6º', '6ª'],
|
||||
'7': ['7º', '7ª'],
|
||||
'8': ['8º', '8ª'],
|
||||
'9': ['9º', '9ª'],
|
||||
'.': ['·'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '-' }, { value: '/' }, { value: ':' }, { value: ';' },
|
||||
{ value: '(' }, { value: ')' }, { value: '€', className: 'alternate-indicator' },
|
||||
{ value: '&' }, { value: '@' }, { value: '%' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '*',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
},
|
||||
{ value: '¿' }, { value: '?' }, { value: '¡' },
|
||||
{ value: '!' }, { value: '"' }, { value: '\'' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, {
|
||||
alt: {
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '[' }, { value: ']' }, { value: '{' }, { value: '}' },
|
||||
{ value: '#' }, { value: '%' }, { value: '^' }, { value: '+' },
|
||||
{ value: '=' }, { value: '°' }
|
||||
], [
|
||||
{ value: '_' }, { value: '\\' }, { value: '|' }, { value: '~' },
|
||||
{ value: '<' }, { value: '>' }, { value: '$' }, { value: '£' },
|
||||
{ value: '¥' }, { value: '•' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 1
|
||||
},
|
||||
{value: '*' }, { value: '¿' }, { value: '?' },
|
||||
{ value: '¡' }, { value: '!' },
|
||||
{ value: '"' }, { value: '\'' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
109
gaia/apps/keyboard/js/layouts/eu.js
Executable file
109
gaia/apps/keyboard/js/layouts/eu.js
Executable file
|
|
@ -0,0 +1,109 @@
|
|||
Keyboards.eu = {
|
||||
label: 'Basque',
|
||||
shortLabel: 'Eu',
|
||||
menuLabel: 'Euskara',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'eu',
|
||||
lang: 'eu',
|
||||
alt: {
|
||||
a: 'áªàâäåãāæ',
|
||||
c: 'ç',
|
||||
e: 'é€èêëēęɛ',
|
||||
i: 'íïìîīį',
|
||||
o: 'óºöòôōœøɵ',
|
||||
u: 'úüùûū',
|
||||
s: '$ßš',
|
||||
S: '$Š',
|
||||
l: '£ l·l',
|
||||
n: 'ń',
|
||||
y: '¥',
|
||||
'.': ',¿?¡!;:·',
|
||||
':)': ':) :D :( ;D :* :/'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: 'ñ' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'€': ['$', '£', '¢', '¥'],
|
||||
'0': ['º'],
|
||||
'.': ['·'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '-' }, { value: '/' }, { value: ':' }, { value: ';' },
|
||||
{ value: '(' }, { value: ')' }, { value: '€', className: 'alternate-indicator' },
|
||||
{ value: '&' }, { value: '@' }, { value: '%' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '*',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
},
|
||||
{ value: '¿' }, { value: '?' }, { value: '¡' },
|
||||
{ value: '!' }, { value: '"' }, { value: '\'' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, {
|
||||
alt: {
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '[' }, { value: ']' }, { value: '{' }, { value: '}' },
|
||||
{ value: '#' }, { value: '%' }, { value: '^' }, { value: '+' },
|
||||
{ value: '=' }, { value: '°' }
|
||||
], [
|
||||
{ value: '_' }, { value: '\\' }, { value: '|' }, { value: '~' },
|
||||
{ value: '<' }, { value: '>' }, { value: '$' }, { value: '£' },
|
||||
{ value: '¥' }, { value: '•' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 1
|
||||
},
|
||||
{value: '*' }, { value: '¿' }, { value: '?' },
|
||||
{ value: '¡' }, { value: '!' },
|
||||
{ value: '"' }, { value: '\'' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
100
gaia/apps/keyboard/js/layouts/fa.js
Executable file
100
gaia/apps/keyboard/js/layouts/fa.js
Executable file
|
|
@ -0,0 +1,100 @@
|
|||
Keyboards.fa = {
|
||||
label: 'Persian',
|
||||
shortLabel: 'فا',
|
||||
menuLabel: 'فارسی',
|
||||
secondLayout: true,
|
||||
types: ['text', 'url', 'email'],
|
||||
alternateLayoutKey: '۱۲۳',
|
||||
basicLayoutKey: 'ابپ',
|
||||
lang: 'fa',
|
||||
pages: [ { // Default Page
|
||||
width: 11,
|
||||
specificCssRule: true,
|
||||
needsCommaKey: true,
|
||||
alt : {
|
||||
'ض': ['۱', '1'],
|
||||
'ص': ['۲', '2'],
|
||||
'ث': ['۳', '3'],
|
||||
'ق': ['۴', '4'],
|
||||
'ف': ['۵', '5'],
|
||||
'غ': ['۶', '6'],
|
||||
'ع': ['۷', '7'],
|
||||
'ه': ['ۀ', 'ة', '۸', '8'],
|
||||
'خ': ['۹', '9'],
|
||||
'ح': ['۰', '0'],
|
||||
'ا': ['آ', 'أ', 'ء'],
|
||||
'ی': ['ئ','ي'],
|
||||
'ت': 'ة',
|
||||
'ک': 'ك',
|
||||
'.': 'ًٌٍَُِّْءٔٓ',
|
||||
'،': ':!؟؛-«»'
|
||||
},
|
||||
textLayoutOverwrite: {
|
||||
',': '،'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'ض' }, { value: 'ص' }, { value: 'ث' }, { value: 'ق' },
|
||||
{ value: 'ف' }, { value: 'غ' }, { value: 'ع' }, { value: 'ه' },
|
||||
{ value: 'خ' }, { value: 'ح' }, { value: 'ج' }
|
||||
], [
|
||||
{ value: 'ش' }, { value: 'س' }, { value: 'ی' }, { value: 'ب' },
|
||||
{ value: 'ل' }, { value: 'ا' }, { value: 'ت' }, { value: 'ن' },
|
||||
{ value: 'م' }, { value: 'ک' }, { value: 'گ' }
|
||||
], [
|
||||
{ value: 'ظ' }, { value: 'ط' }, { value: 'ژ' }, { value: 'ز' },
|
||||
{ value: 'ر' }, { value: 'ذ' }, { value: 'د' }, { value: 'پ' },
|
||||
{ value: 'و' }, { value: 'چ' }, { value: '⌫', ratio: 1, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '\u25C2\u2507\u25B8', ratio: 1, keyCode: '8204', ariaLabel: 'نیمفاصله' },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
}, { // Symbols Page
|
||||
specificCssRule: true,
|
||||
alt: {
|
||||
'۱': ['1', '¹'],
|
||||
'۲': ['2', '²'],
|
||||
'۳': ['3', '³'],
|
||||
'۴': ['4', '⁴'],
|
||||
'۵': ['5', '⁵'],
|
||||
'۶': ['6', '⁶'],
|
||||
'۷': ['7', '⁷'],
|
||||
'۸': ['8', '⁸'],
|
||||
'۹': ['9', '⁹'],
|
||||
'۰': ['0', '⁰'],
|
||||
'﷼': ['$', '€', '£', '¢', '¥'],
|
||||
'»': ['"', '“', '”'],
|
||||
'«': ['\'', '‘', '’'],
|
||||
'؟': ['?', '¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±'],
|
||||
'؛': [';'],
|
||||
'.': 'ًٌٍَُِّْءٔٓ'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '۱' }, { value: '۲' }, { value: '۳' }, { value: '۴' },
|
||||
{ value: '۵' }, { value: '۶' }, { value: '۷' }, { value: '۸' },
|
||||
{ value: '۹' }, { value: '۰' },
|
||||
], [
|
||||
{ value: '@' }, { value: '#' }, { value: '﷼', className: 'alternate-indicator' },
|
||||
{ value: '+' }, { value: '%' }, { value: '*' }, { value: '-' },
|
||||
{ value: '/' }, { value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '&' }, { value: ':' }, { value: '؛' }, { value: '«' },
|
||||
{ value: '»' }, { value: '!' }, { value: '؟' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 7, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '_' }, { value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
44
gaia/apps/keyboard/js/layouts/ff.js
Executable file
44
gaia/apps/keyboard/js/layouts/ff.js
Executable file
|
|
@ -0,0 +1,44 @@
|
|||
Keyboards.ff = {
|
||||
label: 'Fulah',
|
||||
shortLabel: 'Ff',
|
||||
menuLabel: 'Pulaar-Fulfulde',
|
||||
imEngine: 'latin',
|
||||
autoCorrectLanguage: 'ff',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
lang: 'ff',
|
||||
alt: {
|
||||
a: 'àâæáãäåā',
|
||||
c: 'çćč',
|
||||
e: 'éèêë€ē',
|
||||
i: 'îïìíī',
|
||||
o: 'ôœòóõöōø',
|
||||
u: 'ùûüúū',
|
||||
s: 'śšşß',
|
||||
S: 'ŚŠŞ',
|
||||
n: 'ñńň',
|
||||
ɗ: 'z',
|
||||
ƴ: 'x',
|
||||
ŋ: 'q',
|
||||
ɓ: 'v',
|
||||
'.': ',?!-;:'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'a' }, { value: 'ɗ' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' } , { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'ŋ' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: 'm' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'w' }, { value: 'ƴ' }, { value: 'c' }, { value: 'ɓ' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: "'", keyCode: 39 },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
92
gaia/apps/keyboard/js/layouts/fr-CA.js
Executable file
92
gaia/apps/keyboard/js/layouts/fr-CA.js
Executable file
|
|
@ -0,0 +1,92 @@
|
|||
Keyboards['fr-CA'] = {
|
||||
label: 'French (Canadian)',
|
||||
shortLabel: 'Fr',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'fr',
|
||||
autoCorrectPunctuation: false,
|
||||
menuLabel: 'Français (Canadien)',
|
||||
lang: 'fr-CA',
|
||||
alt: {
|
||||
a: 'áàâäåãāæ',
|
||||
c: 'çćč',
|
||||
e: 'éèêëēę€ɛ',
|
||||
i: 'ïíìîīį',
|
||||
o: 'öõóòôōœøɵ',
|
||||
u: 'üúùûū',
|
||||
s: 'ßśš$',
|
||||
S: 'ŚŠ$',
|
||||
n: 'ñń',
|
||||
l: 'ł£',
|
||||
y: 'ÿ¥',
|
||||
z: 'žźż',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'1': ['¹', '1st'],
|
||||
'2': ['²', '2nd'],
|
||||
'3': ['³', '3rd'],
|
||||
'4': ['⁴', '4th'],
|
||||
'5': ['⁵', '5th'],
|
||||
'6': ['⁶', '6th'],
|
||||
'7': ['⁷', '7th'],
|
||||
'8': ['⁸', '8th'],
|
||||
'9': ['⁹', '9th'],
|
||||
'0': ['⁰', 'º'],
|
||||
'$': [ '€', '£', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '$', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
40
gaia/apps/keyboard/js/layouts/fr-CH.js
Executable file
40
gaia/apps/keyboard/js/layouts/fr-CH.js
Executable file
|
|
@ -0,0 +1,40 @@
|
|||
Keyboards['fr-CH'] = {
|
||||
label: 'French (Switzerland)',
|
||||
shortLabel: 'Fr',
|
||||
menuLabel: 'Français (Suisse)',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'fr',
|
||||
autoCorrectPunctuation: false,
|
||||
lang: 'fr',
|
||||
alt: {
|
||||
a: 'àâæáãäåā',
|
||||
c: 'çćč',
|
||||
e: 'éèêë€ē',
|
||||
i: 'îïìíī',
|
||||
o: 'ôœöòóõōø',
|
||||
u: 'ùûüúū',
|
||||
s: 'ßśšş',
|
||||
S: 'ŚŠŞ',
|
||||
n: 'ñńň'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' } , { value: 'z' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: "'", keyCode: 39 }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'y' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
41
gaia/apps/keyboard/js/layouts/fr-Dvorak-bepo.js
Executable file
41
gaia/apps/keyboard/js/layouts/fr-Dvorak-bepo.js
Executable file
|
|
@ -0,0 +1,41 @@
|
|||
Keyboards['fr-Dvorak-bepo'] = {
|
||||
label: 'French - Bépo',
|
||||
shortLabel: 'Fr',
|
||||
menuLabel: 'Bépo',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'fr',
|
||||
autoCorrectPunctuation: false,
|
||||
lang: 'fr',
|
||||
alt: {
|
||||
a: 'àâæáãäåā',
|
||||
c: 'çćč',
|
||||
e: 'éèêë€ē',
|
||||
i: 'îïìíī',
|
||||
o: 'ôœòóõöōø',
|
||||
u: 'ùûüúū',
|
||||
s: 'śšşß',
|
||||
S: 'ŚŠŞ',
|
||||
n: 'ńñň',
|
||||
'.': ',?!-;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'b' }, { value: 'é' }, { value: 'p' }, { value: 'o' },
|
||||
{ value: 'v' }, { value: 'd' }, { value: 'l' }, { value: 'j' },
|
||||
{ value: 'z' }, { value: 'w' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 'u' }, { value: 'i' }, { value: 'e' },
|
||||
{ value: 'c' }, { value: 't' }, { value: 's' }, { value: 'r' },
|
||||
{ value: 'n' }, { value: 'm' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'y' }, { value: 'x' }, { value: 'k' }, { value: 'q' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'f' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
41
gaia/apps/keyboard/js/layouts/fr.js
Executable file
41
gaia/apps/keyboard/js/layouts/fr.js
Executable file
|
|
@ -0,0 +1,41 @@
|
|||
Keyboards.fr = {
|
||||
label: 'French',
|
||||
shortLabel: 'Fr',
|
||||
menuLabel: 'Français',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'fr',
|
||||
autoCorrectPunctuation: false,
|
||||
lang: 'fr',
|
||||
alt: {
|
||||
a: 'àâæáãäåā',
|
||||
c: 'çćč',
|
||||
e: 'éèêë€ē',
|
||||
i: 'îïìíī',
|
||||
o: 'ôœòóõöōø',
|
||||
u: 'ùûüúū',
|
||||
s: 'śšşß',
|
||||
S: 'ŚŠŞ',
|
||||
n: 'ńñň',
|
||||
'.': ',?!-;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'a' }, { value: 'z' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' } , { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'q' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: 'm' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'w' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: "'", keyCode: 39 },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
42
gaia/apps/keyboard/js/layouts/fy.js
Executable file
42
gaia/apps/keyboard/js/layouts/fy.js
Executable file
|
|
@ -0,0 +1,42 @@
|
|||
Keyboards.fy = {
|
||||
label: 'Frisian',
|
||||
shortLabel: 'Fy',
|
||||
menuLabel: 'Frysk',
|
||||
imEngine: 'latin',
|
||||
autoCorrectLanguage: 'fy',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
lang: 'fy',
|
||||
pages: [ { // default page
|
||||
alt: {
|
||||
a: 'âäáàæãåā',
|
||||
e: 'êéëèęėē€',
|
||||
i: 'íïìîįīij',
|
||||
o: 'ôóöòõœøō',
|
||||
u: 'ûúüùū',
|
||||
s: '$',
|
||||
n: 'ñń',
|
||||
l: '£',
|
||||
y: 'ýij¥',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}]
|
||||
};
|
||||
99
gaia/apps/keyboard/js/layouts/ga.js
Executable file
99
gaia/apps/keyboard/js/layouts/ga.js
Executable file
|
|
@ -0,0 +1,99 @@
|
|||
Keyboards.ga = {
|
||||
label: 'Irish',
|
||||
shortLabel: 'Ga',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'ga',
|
||||
menuLabel: 'Gaeilge',
|
||||
lang: 'ga',
|
||||
alt: {
|
||||
a: 'áàâäåãāæ',
|
||||
b: 'ḃ',
|
||||
c: 'ċçćč',
|
||||
d: 'ḋ',
|
||||
e: 'éèêëēęɛ€',
|
||||
f: 'ḟ',
|
||||
g: 'ġ',
|
||||
i: 'íìïîīį',
|
||||
m: 'ṁ',
|
||||
o: 'óòöôōœøɵ',
|
||||
p: 'ṗ',
|
||||
u: 'úùüûū',
|
||||
s: 'ṡßśš$',
|
||||
S: 'ṠŚŠ$',
|
||||
t: 'ṫ',
|
||||
n: 'ñń',
|
||||
l: '£ł',
|
||||
w: 'ŵ',
|
||||
y: 'ŷÿ¥',
|
||||
z: 'žźż',
|
||||
'.': '-\',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'0': ['º'],
|
||||
'1': ['1ú'],
|
||||
'2': ['2ú'],
|
||||
'3': ['3ú'],
|
||||
'4': ['4ú'],
|
||||
'5': ['5ú'],
|
||||
'6': ['6ú'],
|
||||
'7': ['7ú'],
|
||||
'8': ['8ú'],
|
||||
'9': ['9ú'],
|
||||
'€': ['£', '$', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '€', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
100
gaia/apps/keyboard/js/layouts/gd.js
Executable file
100
gaia/apps/keyboard/js/layouts/gd.js
Executable file
|
|
@ -0,0 +1,100 @@
|
|||
Keyboards.gd = {
|
||||
label: 'Scottish Gaelic',
|
||||
shortLabel: 'Gd',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'gd',
|
||||
lang: 'gd',
|
||||
menuLabel: 'Gàidhlig',
|
||||
alt: {
|
||||
a: 'àáâäåãāæ',
|
||||
b: 'ḃ',
|
||||
c: 'ċçćč',
|
||||
d: 'ḋ',
|
||||
e: 'èéêëēęɛ€',
|
||||
f: 'ḟ',
|
||||
g: 'ġ',
|
||||
i: 'ìíïîīį',
|
||||
m: 'ṁ',
|
||||
o: 'òóöôōœøɵ',
|
||||
p: 'ṗ',
|
||||
u: 'ùúüûū',
|
||||
s: 'ṡßśš$',
|
||||
S: 'ṠŚŠ$',
|
||||
t: 'ṫ',
|
||||
n: 'ñń',
|
||||
l: '£ł',
|
||||
w: 'ŵ',
|
||||
y: 'ŷÿ¥',
|
||||
z: 'žźż',
|
||||
'.': '-\',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'0': ['º'],
|
||||
'1': ['1d'],
|
||||
'2': ['2na'],
|
||||
'3': ['3as'],
|
||||
'4': ['4mh'],
|
||||
'5': ['5mh'],
|
||||
'6': ['6mh'],
|
||||
'7': ['7mh'],
|
||||
'8': ['8mh'],
|
||||
'9': ['9mh'],
|
||||
'&': ['⁊'],
|
||||
'£': ['€', '$', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '£', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
117
gaia/apps/keyboard/js/layouts/gl.js
Executable file
117
gaia/apps/keyboard/js/layouts/gl.js
Executable file
|
|
@ -0,0 +1,117 @@
|
|||
Keyboards.gl = {
|
||||
label: ' Galician',
|
||||
shortLabel: 'Gl',
|
||||
menuLabel: 'Galego',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'gl',
|
||||
lang: 'gl',
|
||||
pages: [ { // default page
|
||||
alt: {
|
||||
a: 'áªàâäåãāæ',
|
||||
c: 'ç',
|
||||
e: 'é€èêëēęɛ',
|
||||
i: 'íïìîīį',
|
||||
o: 'óºöòôōœøɵ',
|
||||
u: 'úüùûū',
|
||||
s: '$ßš',
|
||||
S: '$Š',
|
||||
l: '£ l·l',
|
||||
n: 'ń',
|
||||
y: '¥',
|
||||
'.': ',¿?¡!;:·'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: 'ñ' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
}, { // symbol page 1
|
||||
alt: {
|
||||
'€': ['$', '£', '¢', '¥'],
|
||||
'0': ['º'],
|
||||
'1': ['1º', '1ª'],
|
||||
'2': ['2º', '2ª'],
|
||||
'3': ['3º', '3ª'],
|
||||
'4': ['4º', '4ª'],
|
||||
'5': ['5º', '5ª'],
|
||||
'6': ['6º', '6ª'],
|
||||
'7': ['7º', '7ª'],
|
||||
'8': ['8º', '8ª'],
|
||||
'9': ['9º', '9ª'],
|
||||
'.': ['·'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '-' }, { value: '/' }, { value: ':' }, { value: ';' },
|
||||
{ value: '(' }, { value: ')' }, { value: '€', className: 'alternate-indicator' },
|
||||
{ value: '&' }, { value: '@' }, { value: '%' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '*',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
},
|
||||
{ value: '¿' }, { value: '?' }, { value: '¡' },
|
||||
{ value: '!' }, { value: '"' }, { value: '\'' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, { // symbol page 2
|
||||
alt: {
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '[' }, { value: ']' }, { value: '{' }, { value: '}' },
|
||||
{ value: '#' }, { value: '%' }, { value: '^' }, { value: '+' },
|
||||
{ value: '=' }, { value: '°' }
|
||||
], [
|
||||
{ value: '_' }, { value: '\\' }, { value: '|' }, { value: '~' },
|
||||
{ value: '<' }, { value: '>' }, { value: '$' }, { value: '£' },
|
||||
{ value: '¥' }, { value: '•' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 1
|
||||
},
|
||||
{value: '*' }, { value: '¿' }, { value: '?' },
|
||||
{ value: '¡' }, { value: '!' },
|
||||
{ value: '"' }, { value: '\'' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
100
gaia/apps/keyboard/js/layouts/gv.js
Executable file
100
gaia/apps/keyboard/js/layouts/gv.js
Executable file
|
|
@ -0,0 +1,100 @@
|
|||
Keyboards.gv = {
|
||||
label: 'Manx Gaelic',
|
||||
shortLabel: 'Gv',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'gv',
|
||||
lang: 'gv',
|
||||
menuLabel: 'Gaelg',
|
||||
alt: {
|
||||
a: 'àáâäåãāæ',
|
||||
b: 'ḃ',
|
||||
c: 'ċçćč',
|
||||
d: 'ḋ',
|
||||
e: 'èéêëēęɛ€',
|
||||
f: 'ḟ',
|
||||
g: 'ġ',
|
||||
i: 'ìíïîīį',
|
||||
m: 'ṁ',
|
||||
o: 'òóöôōœøɵ',
|
||||
p: 'ṗ',
|
||||
u: 'ùúüûū',
|
||||
s: 'ṡßśš$',
|
||||
S: 'ṠŚŠ$',
|
||||
t: 'ṫ',
|
||||
n: 'ñń',
|
||||
l: '£ł',
|
||||
w: 'ŵ',
|
||||
y: 'ŷÿ¥',
|
||||
z: 'žźż',
|
||||
'.': '-\',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'0': ['º'],
|
||||
'1': ['1d'],
|
||||
'2': ['2h'],
|
||||
'3': ['3ss'],
|
||||
'4': ['4oo'],
|
||||
'5': ['5oo'],
|
||||
'6': ['6oo'],
|
||||
'7': ['7oo'],
|
||||
'8': ['8oo'],
|
||||
'9': ['9oo'],
|
||||
'&': ['⁊'],
|
||||
'£': ['€', '$', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '£', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
29
gaia/apps/keyboard/js/layouts/he.js
Executable file
29
gaia/apps/keyboard/js/layouts/he.js
Executable file
|
|
@ -0,0 +1,29 @@
|
|||
Keyboards.he = {
|
||||
label: 'Hebrew',
|
||||
shortLabel: 'He',
|
||||
types: ['text', 'url', 'email'],
|
||||
menuLabel: 'עִבְרִית',
|
||||
basicLayoutKey: 'אבג',
|
||||
lang: 'he',
|
||||
alt: {
|
||||
// incomplete
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'ק' }, { value: 'ר' }, { value: 'א' }, { value: 'ט' },
|
||||
{ value: 'ו' }, { value: 'ן' }, { value: 'ם' }, { value: 'פ' },
|
||||
{ value: '⌫', ratio: 2, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: 'ש' }, { value: 'ד' }, { value: 'ג' }, { value: 'כ' },
|
||||
{ value: 'ע' }, { value: 'י' }, { value: 'ח' }, { value: 'ל' },
|
||||
{ value: 'ך' }, { value: 'ף' }
|
||||
], [
|
||||
{ value: 'ז' }, { value: 'ס' }, { value: 'ב' }, { value: 'ה' },
|
||||
{ value: 'נ' }, { value: 'מ' }, { value: 'צ' }, { value: 'ת' },
|
||||
{ value: 'ץ' }, { value: '?' }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
127
gaia/apps/keyboard/js/layouts/hi.js
Executable file
127
gaia/apps/keyboard/js/layouts/hi.js
Executable file
|
|
@ -0,0 +1,127 @@
|
|||
Keyboards.hi = {
|
||||
label: 'Hindi',
|
||||
shortLabel: 'Hi',
|
||||
imEngine: 'india',
|
||||
menuLabel: 'हिन्दी',
|
||||
secondLayout: true,
|
||||
specificCssRule: true,
|
||||
alternateLayoutKey: '?१२३',
|
||||
basicLayoutKey: 'कखग',
|
||||
types: ['text', 'url', 'email'],
|
||||
width: 11,
|
||||
lang: 'hi',
|
||||
alt: {
|
||||
'र': 'ॠऋ',
|
||||
'म': 'ॐ',
|
||||
'न': 'ङ',
|
||||
'ल': 'ऌॡ',
|
||||
'य': 'य़',
|
||||
'ओ': 'ऒ',
|
||||
'ए': 'ऍऎ',
|
||||
'ळ': 'ऴ',
|
||||
'ृ': 'ॄ'
|
||||
},
|
||||
upperCase: {
|
||||
'ौ':'औ',
|
||||
'ै':'ऐ',
|
||||
'ा':'आ',
|
||||
'ी':'ई',
|
||||
'ू':'ऊ',
|
||||
'ब':'भ',
|
||||
'ह':'ः',
|
||||
'ग':'घ',
|
||||
'द':'ध',
|
||||
'ज':'झ',
|
||||
'ड':'ढ',
|
||||
|
||||
'ो':'ओ',
|
||||
'े':'ए',
|
||||
'्':'अ',
|
||||
'ि':'इ',
|
||||
'ु':'उ',
|
||||
'प':'फ',
|
||||
'र':'ऱ',
|
||||
'क':'ख',
|
||||
'त':'थ',
|
||||
'च':'छ',
|
||||
'ट':'ठ',
|
||||
|
||||
'ॉ':'ऑ',
|
||||
'ं':'ँ',
|
||||
'म':'ण',
|
||||
'न':'ऩ',
|
||||
'व':'ळ',
|
||||
'ल':'श',
|
||||
'स':'ष',
|
||||
'य':'ृ',
|
||||
'़':'ञ'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'ौ' }, { value: 'ै' }, { value: 'ा' }, { value: 'ी' },
|
||||
{ value: 'ू' }, { value: 'ब' }, { value: 'ह' }, { value: 'ग' },
|
||||
{ value: 'द' }, { value: 'ज' }, { value: 'ड' }
|
||||
], [
|
||||
{ value: 'ो' }, { value: 'े' }, { value: '्' }, { value: 'ि' },
|
||||
{ value: 'ु' }, { value: 'प' }, { value: 'र' }, { value: 'क' },
|
||||
{ value: 'त' }, { value: 'च' }, { value: 'ट' }
|
||||
], [
|
||||
{ value: '⇪', keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'ॉ' }, { value: 'ं' }, { value: 'म' }, { value: 'न' },
|
||||
{ value: 'व' }, { value: 'ल' }, { value: 'स' }, { value: 'य' },
|
||||
{ value: '़' }, { value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'१': ['1'],
|
||||
'२': ['2'],
|
||||
'३': ['3'],
|
||||
'४': ['4'],
|
||||
'५': ['5'],
|
||||
'६': ['6'],
|
||||
'७': ['7'],
|
||||
'८': ['8'],
|
||||
'९': ['9'],
|
||||
'०': ['0'],
|
||||
'₹': ['$', '€', '£', '¢', '¥', '৳'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
// These are based on the en layout, with top row modifed and $ localized.
|
||||
keys: [
|
||||
[
|
||||
{ value: '१' }, { value: '२' }, { value: '३' }, { value: '४' },
|
||||
{ value: '५' }, { value: '६' }, { value: '७' }, { value: '८' },
|
||||
{ value: '९' }, { value: '०' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '₹', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?'},
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
39
gaia/apps/keyboard/js/layouts/hr.js
Executable file
39
gaia/apps/keyboard/js/layouts/hr.js
Executable file
|
|
@ -0,0 +1,39 @@
|
|||
Keyboards.hr = {
|
||||
label: 'Croatian',
|
||||
shortLabel: 'Hr',
|
||||
menuLabel: 'Hrvatski',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'hr',
|
||||
lang: 'hr',
|
||||
alt: {
|
||||
c: 'čćç',
|
||||
d: 'đ',
|
||||
s: 'šśß$',
|
||||
S: 'ŠŚ$',
|
||||
n: 'ñń',
|
||||
l: '£',
|
||||
y: '¥',
|
||||
z: 'žźż',
|
||||
'.': ',?!;:'
|
||||
},
|
||||
keys: [ // qwertz
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' } , { value: 'z' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: "'", keyCode: 39 }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'y' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
83
gaia/apps/keyboard/js/layouts/hu.js
Executable file
83
gaia/apps/keyboard/js/layouts/hu.js
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
Keyboards.hu = {
|
||||
label: 'Hungarian',
|
||||
shortLabel: 'Hu',
|
||||
menuLabel: 'Magyar',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'hu',
|
||||
lang: 'hu',
|
||||
alt: {
|
||||
a: 'áàâäåãāæª',
|
||||
c: 'çćč',
|
||||
e: 'éèêëēę€ɛ',
|
||||
i: 'íïìîīį',
|
||||
o: 'óöőòôōœøɵ',
|
||||
u: 'úüűùûū',
|
||||
s: '$ßśš',
|
||||
S: 'ŚŠŞ',
|
||||
n: 'ñń',
|
||||
l: '£ł',
|
||||
y: '¥ÿ',
|
||||
z: 'žźż',
|
||||
'.': ',?!;:()/…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' } , { value: 'z' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: "'", keyCode: 39 }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'y' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'0': ['º'],
|
||||
'$': [ '€', '£', '¢', '¥'],
|
||||
'"': ['„', '“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['.', '¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
// These are based on the en layout.
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '$', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
36
gaia/apps/keyboard/js/layouts/ig.js
Executable file
36
gaia/apps/keyboard/js/layouts/ig.js
Executable file
|
|
@ -0,0 +1,36 @@
|
|||
Keyboards.ig = {
|
||||
label: 'Igbo',
|
||||
shortLabel: 'Ig',
|
||||
menuLabel: 'Asụsụ Igbo',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
lang: 'ig',
|
||||
pages: [ { // default page
|
||||
alt: {
|
||||
i: 'ị',
|
||||
n: 'ṅ',
|
||||
o: 'ọ',
|
||||
u: 'ụ',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
92
gaia/apps/keyboard/js/layouts/it.js
Executable file
92
gaia/apps/keyboard/js/layouts/it.js
Executable file
|
|
@ -0,0 +1,92 @@
|
|||
Keyboards.it = {
|
||||
label: 'Italian',
|
||||
shortLabel: 'It',
|
||||
menuLabel: 'Italiano',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'it',
|
||||
lang: 'it',
|
||||
alt: {
|
||||
a: 'à@',
|
||||
c: 'ç',
|
||||
e: 'èéê€',
|
||||
i: 'ì',
|
||||
o: 'òó',
|
||||
u: 'ù',
|
||||
s: '$',
|
||||
l: '£',
|
||||
y: '¥',
|
||||
'.': ',;:\'?!…',
|
||||
"'": '"«»',
|
||||
'-': '—_'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'0': ['º'],
|
||||
'1': ['1°', '1ª'],
|
||||
'2': ['2°', '2ª'],
|
||||
'3': ['3°', '3ª'],
|
||||
'4': ['4°', '4ª'],
|
||||
'5': ['5°', '5ª'],
|
||||
'6': ['6°', '6ª'],
|
||||
'7': ['7°', '7ª'],
|
||||
'8': ['8°', '8ª'],
|
||||
'9': ['9°', '9ª'],
|
||||
'€': [ '$', '£', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±'],
|
||||
'.': '·'
|
||||
},
|
||||
// These are based on the en layout with $ localized.
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '€', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
117
gaia/apps/keyboard/js/layouts/jp-kanji.js
Executable file
117
gaia/apps/keyboard/js/layouts/jp-kanji.js
Executable file
|
|
@ -0,0 +1,117 @@
|
|||
Keyboards['jp-kanji'] = {
|
||||
label: 'Japanese - Kanji',
|
||||
shortLabel: 'Ja',
|
||||
menuLabel: 'Japanese - Kanji',
|
||||
imEngine: 'jskanji',
|
||||
types: ['text', 'url', 'email'],
|
||||
needsCandidatePanel: true,
|
||||
disableAlternateLayout: true,
|
||||
hidesSwitchKey: true,
|
||||
lang: 'ja',
|
||||
pages: [ { // JP panel
|
||||
width: 10,
|
||||
keys: [
|
||||
[
|
||||
{ value: '戻す', keyCode: -10, ratio: 2 },
|
||||
{ value: 'あ', ratio: 2 },
|
||||
{ value: 'か', ratio: 2 },
|
||||
{ value: 'さ', ratio: 2 },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE, ratio: 2 }
|
||||
], [
|
||||
{ value: '←', keyCode: -11, ratio: 2 },
|
||||
{ value: 'た', ratio: 2 },
|
||||
{ value: 'な', ratio: 2 },
|
||||
{ value: 'は', ratio: 2 },
|
||||
{ value: '→', keyCode: -12, ratio: 2 }
|
||||
], [
|
||||
{ value: '記号', keyCode: -13, ratio: 1 },
|
||||
{ value: 'カナ', keyCode: -18, ratio: 1 },
|
||||
{ value: 'ま', ratio: 2 },
|
||||
{ value: 'や', ratio: 2 },
|
||||
{ value: 'ら', ratio: 2 },
|
||||
{ value: '└─┘', keyCode: -14, ratio: 2 }
|
||||
], [
|
||||
{ value: '🌐', keyCode: -3},
|
||||
{ value: 'あ', keyCode: KeyEvent.DOM_VK_ALT, targetPage: 1 },
|
||||
{ value: '小゛゜', keyCode: -16, ratio: 2 },
|
||||
{ value: 'わ', ratio: 2 },
|
||||
{ value: '、', ratio: 2},
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
}, { // EN panel
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' } , { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: '⇪',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
targetPage: 2
|
||||
}, { value: 'a' }, { value: 's' },
|
||||
{ value: 'd' }, { value: 'f' }, { value: 'g' }, { value: 'h' },
|
||||
{ value: 'j' }, { value: 'k' }, { value: 'l' }
|
||||
], [
|
||||
{ value: '記号', keyCode: -13, ratio: 1.5 },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: '🌐', keyCode: -3},
|
||||
{ value: 'A', keyCode: KeyEvent.DOM_VK_ALT, targetPage: 3 },
|
||||
{ value: ' ', keyCode: KeyEvent.DOM_VK_SPACE, ratio: 6},
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, { // EN-CAPS panel
|
||||
keys: [
|
||||
[
|
||||
{ value: 'Q' }, { value: 'W' }, { value: 'E' } , { value: 'R' },
|
||||
{ value: 'T' } , { value: 'Y' }, { value: 'U' } , { value: 'I' },
|
||||
{ value: 'O' }, { value: 'P' }
|
||||
], [
|
||||
{ value: '⇪',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
targetPage: 1
|
||||
}, { value: 'A' }, { value: 'S' },
|
||||
{ value: 'D' }, { value: 'F' }, { value: 'G' }, { value: 'H' },
|
||||
{ value: 'J' }, { value: 'K' }, { value: 'L' }
|
||||
], [
|
||||
{ value: '記号', keyCode: -13, ratio: 1.5 },
|
||||
{ value: 'Z' }, { value: 'X' }, { value: 'C' }, { value: 'V' },
|
||||
{ value: 'B' }, { value: 'N' }, { value: 'M' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: '🌐', keyCode: -3},
|
||||
{ value: 'A', keyCode: KeyEvent.DOM_VK_ALT, targetPage: 3 },
|
||||
{ value: ' ', keyCode: KeyEvent.DOM_VK_SPACE, ratio: 6},
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, { // NUM panel
|
||||
typeInsensitive: true,
|
||||
keys: [
|
||||
[
|
||||
{ value: '戻す', keyCode: -10, ratio: 2 },
|
||||
{ value: '1', ratio: 2 }, { value: '2', ratio: 2 },
|
||||
{ value: '3', ratio: 2 },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE, ratio: 2 }
|
||||
], [
|
||||
{ value: '←', keyCode: -11, ratio: 2 }, { value: '4', ratio: 2 },
|
||||
{ value: '5', ratio: 2 }, { value: '6', ratio: 2 },
|
||||
{ value: '→', keyCode: -12, ratio: 2 }
|
||||
], [
|
||||
{ value: '記号', keyCode: -13, ratio: 2 },
|
||||
{ value: '7', ratio: 2 }, { value: '8', ratio: 2 },
|
||||
{ value: '9', ratio: 2 }, { value: '└─┘', keyCode: -14, ratio: 2 }
|
||||
], [
|
||||
{ value: '🌐', keyCode: -3},
|
||||
{ value: '1', keyCode: KeyEvent.DOM_VK_ALT, targetPage: 0, ratio: 1 },
|
||||
{ value: '*', ratio: 2 },
|
||||
{ value: '0', ratio: 2 }, { value: '#', ratio: 2},
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
38
gaia/apps/keyboard/js/layouts/ko.js
Executable file
38
gaia/apps/keyboard/js/layouts/ko.js
Executable file
|
|
@ -0,0 +1,38 @@
|
|||
Keyboards.ko = {
|
||||
label: 'Korean',
|
||||
shortLabel: 'Ko',
|
||||
secondLayout: true,
|
||||
basicLayoutKey: 'ㄱㄴㄷ',
|
||||
imEngine: 'jshangul',
|
||||
types: ['text', 'url', 'email'],
|
||||
menuLabel: '한국어',
|
||||
lang: 'ko',
|
||||
upperCase: {
|
||||
'ㅂ': 'ㅃ',
|
||||
'ㅈ': 'ㅉ',
|
||||
'ㄷ': 'ㄸ',
|
||||
'ㄱ': 'ㄲ',
|
||||
'ㅅ': 'ㅆ',
|
||||
'ㅐ': 'ㅒ',
|
||||
'ㅔ': 'ㅖ'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'ㅂ' } , { value: 'ㅈ' } , { value: 'ㄷ' } , { value: 'ㄱ' } ,
|
||||
{ value: 'ㅅ' } , { value: 'ㅛ' } , { value: 'ㅕ' } , { value: 'ㅑ' } ,
|
||||
{ value: 'ㅐ' } , { value: 'ㅔ' }
|
||||
], [
|
||||
{ value: 'ㅁ' } , { value: 'ㄴ' } , { value: 'ㅇ' } , { value: 'ㄹ' } ,
|
||||
{ value: 'ㅎ' } , { value: 'ㅗ' } , { value: 'ㅓ' } , { value: 'ㅏ' } ,
|
||||
{ value: 'ㅣ' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'ㅋ' } , { value: 'ㅌ' } , { value: 'ㅊ' } , { value: 'ㅍ' } ,
|
||||
{ value: 'ㅠ' } , { value: 'ㅜ' } , { value: 'ㅡ' } ,
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
80
gaia/apps/keyboard/js/layouts/lt.js
Executable file
80
gaia/apps/keyboard/js/layouts/lt.js
Executable file
|
|
@ -0,0 +1,80 @@
|
|||
Keyboards.lt = {
|
||||
label: 'Lithuanian',
|
||||
shortLabel: 'Lt',
|
||||
menuLabel: 'Lietuvių',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'lt',
|
||||
lang: 'lt',
|
||||
alt: {
|
||||
a: 'ą',
|
||||
c: 'č',
|
||||
e: 'ęė€',
|
||||
i: 'į',
|
||||
u: 'ųū',
|
||||
s: 'š$',
|
||||
l: '£',
|
||||
y: '¥',
|
||||
z: 'ž',
|
||||
'.': ',–?!;:„“…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' } , { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'-': '–',
|
||||
'$': [ '€', '£', '¢', '¥'],
|
||||
'"': ['„', '“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
// These are based on the en layout.
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '$', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
106
gaia/apps/keyboard/js/layouts/lv.js
Executable file
106
gaia/apps/keyboard/js/layouts/lv.js
Executable file
|
|
@ -0,0 +1,106 @@
|
|||
Keyboards.lv = {
|
||||
label: 'Latvian',
|
||||
shortLabel: 'Lv',
|
||||
menuLabel: 'Latviešu',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'lv',
|
||||
lang: 'lv',
|
||||
pages: [ { // default page
|
||||
alt: {
|
||||
a: 'ā',
|
||||
c: 'č',
|
||||
e: 'ē',
|
||||
g: 'ģ',
|
||||
i: 'ī',
|
||||
k: 'ķ',
|
||||
l: 'ļ',
|
||||
n: 'ņ',
|
||||
s: 'š',
|
||||
u: 'ū',
|
||||
z: 'ž',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, { // symbol page 1
|
||||
alt: {
|
||||
'€': [ '$', '£', '¢', '¥'],
|
||||
'-': '–',
|
||||
'"': ['„', '“', '”'],
|
||||
'\'':['‘', '’']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '-' }, { value: '/' }, { value: ':' }, { value: ';' },
|
||||
{ value: '(' }, { value: ')' }, { value: '€', className: 'alternate-indicator' },
|
||||
{ value: '&' }, { value: '@' }, { value: '%' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '*',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
},
|
||||
{ value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, { // symbol page 2
|
||||
alt: {
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '[' }, { value: ']' }, { value: '{' }, { value: '}' },
|
||||
{ value: '#' }, { value: '%' }, { value: '^' }, { value: '+' },
|
||||
{ value: '=' }, { value: '°' }
|
||||
], [
|
||||
{ value: '_' }, { value: '\\' }, { value: '|' }, { value: '~' },
|
||||
{ value: '<' }, { value: '>' }, { value: '$' }, { value: '£' },
|
||||
{ value: '¥' }, { value: '•' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '*' }, { value: ':' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
33
gaia/apps/keyboard/js/layouts/mk.js
Executable file
33
gaia/apps/keyboard/js/layouts/mk.js
Executable file
|
|
@ -0,0 +1,33 @@
|
|||
Keyboards.mk = {
|
||||
label: 'Macedonian',
|
||||
shortLabel: 'Mk',
|
||||
menuLabel: 'Македонски',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
basicLayoutKey: 'АБВ',
|
||||
lang: 'mk',
|
||||
alt: {
|
||||
'е': 'ѐ',
|
||||
'и': 'ѝ'
|
||||
},
|
||||
width: 11,
|
||||
keys: [
|
||||
[
|
||||
{ value: 'љ' }, { value: 'њ' }, { value: 'е' }, { value: 'р' },
|
||||
{ value: 'т' }, { value: 'ѕ' }, { value: 'у' }, { value: 'и' },
|
||||
{ value: 'о' }, { value: 'п' }, { value: 'ш' }
|
||||
], [
|
||||
{ value: 'а' }, { value: 'с' }, { value: 'д' }, { value: 'ф' },
|
||||
{ value: 'г' }, { value: 'х' }, { value: 'ј' }, { value: 'к' },
|
||||
{ value: 'л' }, { value: 'ч' }, { value: 'ќ' }
|
||||
], [
|
||||
{ value: '⇪', keyCode: KeyEvent.DOM_VK_CAPS_LOCK }, { value: 'з' },
|
||||
{ value: 'џ' }, { value: 'ц' }, { value: 'в' }, { value: 'б' },
|
||||
{ value: 'н' }, { value: 'м' }, { value: 'ѓ' }, { value: 'ж' },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
139
gaia/apps/keyboard/js/layouts/my.js
Executable file
139
gaia/apps/keyboard/js/layouts/my.js
Executable file
|
|
@ -0,0 +1,139 @@
|
|||
Keyboards.my = {
|
||||
label: 'Myanmar',
|
||||
shortLabel: 'My',
|
||||
menuLabel: '\u1019\u103C\u1014\u103A\u1019\u102C', /*မြန်မာ*/
|
||||
basicLayoutKey: '\u1000\u1001\u1002', /*ကခဂ*/
|
||||
alternateLayoutKey: '\u1041\u1042\u1043', /*၁၂၃*/
|
||||
imEngine: 'myanmar',
|
||||
types: ['text', 'url', 'email'],
|
||||
lang: 'my',
|
||||
pages: [ {
|
||||
secondLayout: true,
|
||||
specificCssRule: true,
|
||||
width: 11,
|
||||
textLayoutOverwrite: {
|
||||
'.': '\u104A'/*၊*/
|
||||
},
|
||||
upperCase: {
|
||||
'\u1006'/*ဆ*/: '\u1008'/*ဈ*/,
|
||||
'\u1010'/*တ*/: '\u101D'/*ဝ*/,
|
||||
'\u1014'/*န*/: '\u1023'/*ဣ*/,
|
||||
'\u1019'/*မ*/: '\u104E'/*၎*/,
|
||||
'\u1021'/*အ*/: '\u1024'/*ဤ*/,
|
||||
'\u1015'/*ပ*/: '\u104C'/*၌*/,
|
||||
'\u1000'/*က*/: '\u1025'/*ဥ*/,
|
||||
'\u1004'/*င*/: '\u104D'/*၍*/,
|
||||
'\u101E'/*သ*/: '\u100E'/*ဎ*/,
|
||||
'\u1005'/*စ*/: '\u100F'/*ဏ*/,
|
||||
'\u101F'/*ဟ*/: '\u1027'/*ဧ*/,
|
||||
'\u1031'/*ေ*/: '\u1017'/*ဗ*/,
|
||||
'\u103B'/*ျ*/: '\u103E'/*ှ*/,
|
||||
'\u102D'/*ိ*/: '\u102E'/*ီ*/,
|
||||
'\u103A'/*်*/: '\u1039'/*္*/,
|
||||
'\u102B'/*ါ*/: '\u103D'/*ွ*/,
|
||||
'\u1037'/*့*/: '\u1036'/*ံ*/,
|
||||
'\u103C'/*ြ*/: '\u1032'/*ဲ*/,
|
||||
'\u102F'/*ု*/: '\u1012'/*ဒ*/,
|
||||
'\u1030'/*ူ*/: '\u1013'/*ဓ*/,
|
||||
'\u1038'/*း*/: '\u1002'/*ဂ*/,
|
||||
'\u1016'/*ဖ*/: '\u1007'/*ဇ*/,
|
||||
'\u1011'/*ထ*/: '\u100C'/*ဌ*/,
|
||||
'\u1001'/*ခ*/: '\u1003'/*ဃ*/,
|
||||
'\u101C'/*လ*/: '\u1020'/*ဠ*/,
|
||||
'\u1018'/*ဘ*/: '\u101A'/*ယ*/,
|
||||
'\u100A'/*ည*/: '\u1009'/*ဉ*/,
|
||||
'\u102C'/*ာ*/: '\u1026'/*ဦ*/,
|
||||
'\u101B'/*ရ*/: '\u104F'/*၏*/,
|
||||
'\u104A'/*၊*/: '\u104B'/*။*/
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '\u1006'/*ဆ*/ }, { value: '\u1010'/*တ*/ },
|
||||
{ value: '\u1014'/*န*/ }, { value: '\u1019'/*မ*/ },
|
||||
{ value: '\u1021'/*အ*/ }, { value: '\u1015'/*ပ*/ },
|
||||
{ value: '\u1000'/*က*/ }, { value: '\u1004'/*င*/ },
|
||||
{ value: '\u101E'/*သ*/ }, { value: '\u1005'/*စ*/ },
|
||||
{ value: '\u101F'/*ဟ*/ }
|
||||
], [
|
||||
{ value: '\u1031'/*ေ*/ }, { value: '\u103B'/*ျ*/ },
|
||||
{ value: '\u102D'/*ိ*/ }, { value: '\u103A'/*်*/ },
|
||||
{ value: '\u102B'/*ါ*/ } , { value: '\u1037'/*့*/ },
|
||||
{ value: '\u103C'/*ြ*/ }, { value: '\u102F'/*ု*/ },
|
||||
{ value: '\u1030'/*ူ*/ }, { value: '\u1038'/*း*/ },
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: '\u1016'/*ဖ*/ }, { value: '\u1011'/*ထ*/ },
|
||||
{ value: '\u1001'/*ခ*/ }, { value: '\u101C'/*လ*/ },
|
||||
{ value: '\u1018'/*ဘ*/ }, { value: '\u100A'/*ည*/ },
|
||||
{ value: '\u102C'/*ာ*/ }, { value: '\u101B'/*ရ*/},
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, {
|
||||
textLayoutOverwrite: {
|
||||
'.': '\u104A'/*၊*/
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '\u1041'/*၁*/ }, { value: '\u1042'/*၂*/ },
|
||||
{ value: '\u1043'/*၃*/ }, { value: '\u1044'/*၄*/ },
|
||||
{ value: '\u1045'/*၅*/ }, { value: '\u1046'/*၆*/ },
|
||||
{ value: '\u1047'/*၇*/ }, { value: '\u1048'/*၈*/ },
|
||||
{ value: '\u1049'/*၉*/ }, { value: '\u1040'/*၀*/ }
|
||||
], [
|
||||
{ value: '\u1050'/*ၐ*/ }, { value: '\u1051'/*ၑ*/ },
|
||||
{ value: '\u1052'/*ၒ*/ }, { value: '\u1053'/*ၓ*/ },
|
||||
{ value: '\u1054'/*ၔ*/ }, { value: '\u1055'/*ၕ*/ },
|
||||
{ value: '\u1056'/*ၖ*/ }, { value: '\u1057'/*ၗ*/ },
|
||||
{ value: '\u1058'/*ၘ*/ }, { value: '\u1059'/*ၙ*/ }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '\u100D'/*ဍ*/ }, { value: '\u100B'/*ဋ*/ },
|
||||
{ value: '\u103F'/*ဿ*/, ratio: 1.5},
|
||||
{ value: '\u1029'/*ဩ*/, ratio: 1.5 },
|
||||
{ value: '\u102A'/*ဪ*/, ratio: 2 },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, {
|
||||
needsCommaKey: true,
|
||||
alt: {
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'$': ['€', '£', '¢', '¥'],
|
||||
'/': ['\\'],
|
||||
'-': ['_'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '!' }, { value: '@' }, { value: '#' }, { value: '$' },
|
||||
{ value: '%' }, { value: '^' }, { value: '&' }, { value: '*' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: '~' }, { value: '|' }, { value: '/' }, { value: '\"' },
|
||||
{ value: '\'' }, { value: '-' }, { value: '+' }, { value: '=' },
|
||||
{ value: '{' }, { value: '}' }
|
||||
], [
|
||||
{ value: '\u1041\u1042\u1043'/*၁၂၃*/, ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT, targetPage: 1 },
|
||||
{ value: '[' }, { value: ']' }, { value: '<' }, { value: '>' },
|
||||
{ value: '?' }, { value: ':' }, {value: ';' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
47
gaia/apps/keyboard/js/layouts/nb.js
Executable file
47
gaia/apps/keyboard/js/layouts/nb.js
Executable file
|
|
@ -0,0 +1,47 @@
|
|||
Keyboards.nb = {
|
||||
label: 'Norwegian Bokmal',
|
||||
shortLabel: 'Nb',
|
||||
menuLabel: 'Norsk',
|
||||
imEngine: 'latin',
|
||||
autoCorrectLanguage: 'nb',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
lang: 'nb',
|
||||
alt: {
|
||||
a: 'äáàâąã',
|
||||
e: 'éèêëę€',
|
||||
i: 'íìîï',
|
||||
o: 'öóòôõ',
|
||||
u: 'üúùûū',
|
||||
s: 'śšşß',
|
||||
S: 'ŚŠŞ',
|
||||
n: 'ńñň',
|
||||
c: 'çćč',
|
||||
d: 'ðď',
|
||||
r: 'ř',
|
||||
t: 'ťþ',
|
||||
z: 'źžż',
|
||||
l: 'ł',
|
||||
v: 'w',
|
||||
'æ': 'œ'
|
||||
},
|
||||
width: 11,
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' },{ value: 'w' },{ value: 'e' },{ value: 'r' },
|
||||
{ value: 't' },{ value: 'y' },{ value: 'u' },{ value: 'i' },
|
||||
{ value: 'o' },{ value: 'p' },{ value: 'å' }
|
||||
], [
|
||||
{ value: 'a' },{ value: 's' },{ value: 'd' },{ value: 'f' },
|
||||
{ value: 'g' },{ value: 'h' },{ value: 'j' },{ value: 'k' },
|
||||
{ value: 'l' },{ value: 'ø' },{ value: 'æ' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 2, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' },{ value: 'x' },{ value: 'c' },{ value: 'v' },
|
||||
{ value: 'b' },{ value: 'n' },{ value: 'm' },
|
||||
{ value: '⌫', ratio: 2, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
40
gaia/apps/keyboard/js/layouts/nl.js
Executable file
40
gaia/apps/keyboard/js/layouts/nl.js
Executable file
|
|
@ -0,0 +1,40 @@
|
|||
Keyboards.nl = {
|
||||
label: 'Dutch',
|
||||
shortLabel: 'Nl',
|
||||
menuLabel: 'Nederlands',
|
||||
imEngine: 'latin',
|
||||
autoCorrectLanguage: 'nl',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
lang: 'nl',
|
||||
alt: {
|
||||
a: 'áäâàæãåā',
|
||||
e: 'éëêèęėē€',
|
||||
i: 'íïìîįīij',
|
||||
o: 'óôöòõœøō',
|
||||
u: 'úûüùū',
|
||||
s: '$',
|
||||
n: 'ñń',
|
||||
l: '£',
|
||||
y: 'ýij¥',
|
||||
'.': ',?!;:'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' } , { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
83
gaia/apps/keyboard/js/layouts/pl.js
Executable file
83
gaia/apps/keyboard/js/layouts/pl.js
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
Keyboards.pl = {
|
||||
label: 'Polish',
|
||||
shortLabel: 'Pl',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url' , 'email', 'password'],
|
||||
autoCorrectLanguage: 'pl',
|
||||
menuLabel: 'Polski',
|
||||
lang: 'pl',
|
||||
alt: {
|
||||
a: 'ąáàâäåãāæ',
|
||||
c: 'ćčç',
|
||||
e: 'ę€éèêëē',
|
||||
i: 'ïíìîīį',
|
||||
o: 'óöòôōœø',
|
||||
u: 'üúùûū',
|
||||
s: 'śš$ß',
|
||||
S: 'ŚŠŞ',
|
||||
n: 'ńñ',
|
||||
l: 'ł£',
|
||||
y: '¥',
|
||||
z: 'żźž',
|
||||
'.': ',?!;:…',
|
||||
',': '„”'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' } , { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'$': [ '€', '£', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
// These are based on the en layout.
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '$', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
93
gaia/apps/keyboard/js/layouts/pt-BR.js
Executable file
93
gaia/apps/keyboard/js/layouts/pt-BR.js
Executable file
|
|
@ -0,0 +1,93 @@
|
|||
Keyboards['pt-BR'] = {
|
||||
label: 'Portuguese',
|
||||
shortLabel: 'Pt',
|
||||
menuLabel: 'Português (do Brasil)',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'pt_br',
|
||||
lang: 'pt-BR',
|
||||
alt: {
|
||||
a: 'áãàâäåæª',
|
||||
c: 'çćč',
|
||||
e: 'éêèęėēëɛ',
|
||||
i: 'íîìïįī',
|
||||
o: 'óõôòöœøōɵ',
|
||||
u: 'úüùûū',
|
||||
s: '$ßśš',
|
||||
S: '$ŚŠ',
|
||||
n: 'ñń',
|
||||
l: '£ł',
|
||||
y: '¥ÿ',
|
||||
z: 'žźż',
|
||||
r: 'R$ ',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' } , { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: 'ç' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'0': ['º'],
|
||||
'1': ['1º', '1ª'],
|
||||
'2': ['2º', '2ª'],
|
||||
'3': ['3º', '3ª'],
|
||||
'4': ['4º', '4ª'],
|
||||
'5': ['5º', '5ª'],
|
||||
'6': ['6º', '6ª'],
|
||||
'7': ['7º', '7ª'],
|
||||
'8': ['8º', '8ª'],
|
||||
'9': ['9º', '9ª'],
|
||||
'R$': [ '€', '$', '£', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
// These are based on en layout except $ is replaced by R$.
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: 'R$', compositeKey: 'R$', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
91
gaia/apps/keyboard/js/layouts/pt-PT.js
Executable file
91
gaia/apps/keyboard/js/layouts/pt-PT.js
Executable file
|
|
@ -0,0 +1,91 @@
|
|||
Keyboards['pt-PT'] = {
|
||||
label: 'Portuguese (European)',
|
||||
shortLabel: 'Pt',
|
||||
menuLabel: 'Português (Europeu)',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'pt_pt',
|
||||
lang: 'pt-PT',
|
||||
alt: {
|
||||
a: 'áàãâäåāæª',
|
||||
c: 'çćč',
|
||||
e: 'éèêëēę€ɛ',
|
||||
i: 'íìîīïį',
|
||||
o: 'õôóòöōœøɵº',
|
||||
u: 'úùûüū',
|
||||
s: 'ßśš$',
|
||||
S: 'ŚŠ$',
|
||||
n: 'ñń',
|
||||
l: 'ł£',
|
||||
y: 'ÿ¥',
|
||||
z: 'žźż',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: 'ç' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'1': ['1º', '1ª', '¹'],
|
||||
'2': ['2º', '2ª', '²'],
|
||||
'3': ['3º', '3ª', '³'],
|
||||
'4': ['4º', '4ª', '⁴'],
|
||||
'5': ['5º', '5ª', '⁵'],
|
||||
'6': ['6º', '6ª', '⁶'],
|
||||
'7': ['7º', '7ª', '⁷'],
|
||||
'8': ['8º', '8ª', '⁸'],
|
||||
'9': ['9º', '9ª', '⁹'],
|
||||
'0': ['º', '⁰'],
|
||||
'€': ['$', '£', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '€', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
78
gaia/apps/keyboard/js/layouts/ro.js
Executable file
78
gaia/apps/keyboard/js/layouts/ro.js
Executable file
|
|
@ -0,0 +1,78 @@
|
|||
Keyboards.ro = {
|
||||
label: 'Romanian',
|
||||
shortLabel: 'Ro',
|
||||
menuLabel: 'Română',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'ro',
|
||||
lang: 'ro',
|
||||
alt: {
|
||||
a: 'ăâ',
|
||||
d: 'đ',
|
||||
e: '€',
|
||||
i: 'î',
|
||||
l: 'ł',
|
||||
s: 'ș',
|
||||
t: 'ț',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'0': 'º',
|
||||
'$': [ '€', '£', '¢', '¥'],
|
||||
'"': ['„', '“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
// These are based on the en layout.
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '$', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
34
gaia/apps/keyboard/js/layouts/ru.js
Executable file
34
gaia/apps/keyboard/js/layouts/ru.js
Executable file
|
|
@ -0,0 +1,34 @@
|
|||
Keyboards.ru = {
|
||||
label: 'Russian',
|
||||
shortLabel: 'Ru',
|
||||
menuLabel: 'Pусский',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'ru',
|
||||
basicLayoutKey: 'АБВ',
|
||||
lang: 'ru',
|
||||
alt: {
|
||||
е: 'ё',
|
||||
ь: 'ъ'
|
||||
},
|
||||
width: 11,
|
||||
keys: [
|
||||
[
|
||||
{ value: 'й' }, { value: 'ц' }, { value: 'у' }, { value: 'к' },
|
||||
{ value: 'е' }, { value: 'н' }, { value: 'г' }, { value: 'ш' },
|
||||
{ value: 'щ' }, { value: 'з' }, { value: 'х' }
|
||||
], [
|
||||
{ value: 'ф' }, { value: 'ы' }, { value: 'в' }, { value: 'а' },
|
||||
{ value: 'п' }, { value: 'р' }, { value: 'о' }, { value: 'л' },
|
||||
{ value: 'д' }, { value: 'ж' }, { value: 'э' }
|
||||
], [
|
||||
{ value: '⇪', keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'я' }, { value: 'ч' }, { value: 'с' }, { value: 'м' },
|
||||
{ value: 'и' }, { value: 'т' }, { value: 'ь' }, { value: 'б' },
|
||||
{ value: 'ю' }, { value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
44
gaia/apps/keyboard/js/layouts/sk.js
Executable file
44
gaia/apps/keyboard/js/layouts/sk.js
Executable file
|
|
@ -0,0 +1,44 @@
|
|||
Keyboards.sk = {
|
||||
label: 'Slovak',
|
||||
shortLabel: 'Sk',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'sk',
|
||||
menuLabel: 'Slovenčina',
|
||||
lang: 'sk',
|
||||
alt: {
|
||||
a: 'áä',
|
||||
c: 'č',
|
||||
d: 'ď',
|
||||
e: 'é',
|
||||
i: 'í',
|
||||
l: 'ľĺ',
|
||||
n: 'ň',
|
||||
o: 'óô',
|
||||
r: 'ŕ',
|
||||
s: 'š',
|
||||
t: 'ť',
|
||||
u: 'ú',
|
||||
y: 'ý',
|
||||
z: 'ž'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' } , { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: "'", keyCode: 39 }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
83
gaia/apps/keyboard/js/layouts/sq.js
Executable file
83
gaia/apps/keyboard/js/layouts/sq.js
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
Keyboards.sq = {
|
||||
label: 'Albanian',
|
||||
shortLabel: 'Sq',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'sq',
|
||||
menuLabel: 'Shqip',
|
||||
width: 11,
|
||||
lang: 'sq',
|
||||
alt: {
|
||||
a: 'áàâäåãāæ',
|
||||
c: 'ćč',
|
||||
e: '€éèêēęɛ',
|
||||
i: 'ïíìîīį',
|
||||
o: 'öóòôōœøɵ',
|
||||
u: 'üúùûū',
|
||||
s: 'ßśš$',
|
||||
S: '$ŚŠ',
|
||||
n: 'ñń',
|
||||
l: 'ł£',
|
||||
y: 'ÿ¥',
|
||||
z: 'žźż',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'z' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }, { value: 'ç' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: 'ë' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 2, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'y' }, { value: 'x' }, { value: 'c' },
|
||||
{ value: 'v' }, { value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 2, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'€': [ '$', '£', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
// These are based on the en layout with $ localized.
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '€', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
33
gaia/apps/keyboard/js/layouts/sr-Cyrl.js
Executable file
33
gaia/apps/keyboard/js/layouts/sr-Cyrl.js
Executable file
|
|
@ -0,0 +1,33 @@
|
|||
Keyboards['sr-Cyrl'] = {
|
||||
label: 'Serbian (Cyrillic)',
|
||||
shortLabel: 'Sr',
|
||||
menuLabel: 'Српски',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'sr-Cyrl',
|
||||
basicLayoutKey: 'АБВ',
|
||||
lang: 'sr-Cyrl',
|
||||
alt: {
|
||||
// incomplete
|
||||
},
|
||||
width: 11,
|
||||
keys: [
|
||||
[
|
||||
{ value: 'љ' }, { value: 'њ' }, { value: 'е' }, { value: 'р' },
|
||||
{ value: 'т' }, { value: 'з' }, { value: 'у' }, { value: 'и' },
|
||||
{ value: 'о' }, { value: 'п' }, { value: 'ш' }
|
||||
], [
|
||||
{ value: 'а' }, { value: 'с' }, { value: 'д' }, { value: 'ф' },
|
||||
{ value: 'г' }, { value: 'х' }, { value: 'ј' }, { value: 'к' },
|
||||
{ value: 'л' }, { value: 'ч' }, { value: 'ћ' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'џ' }, { value: 'ц' }, { value: 'в' }, { value: 'б' },
|
||||
{ value: 'н' }, { value: 'м' }, { value: 'ђ' }, { value: 'ж' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
75
gaia/apps/keyboard/js/layouts/sr-Latn.js
Executable file
75
gaia/apps/keyboard/js/layouts/sr-Latn.js
Executable file
|
|
@ -0,0 +1,75 @@
|
|||
Keyboards['sr-Latn'] = {
|
||||
label: 'Serbian (Latin)',
|
||||
shortLabel: 'Sr',
|
||||
menuLabel: 'Srpski',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'sr-Latn',
|
||||
lang: 'sr-Latn',
|
||||
alt: {
|
||||
c: 'čć',
|
||||
d: 'đ',
|
||||
s: 'š',
|
||||
z: 'ž',
|
||||
'.': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: '"' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
pages: [undefined, {
|
||||
alt: {
|
||||
'0': ['º'],
|
||||
'$': [ '€', '£', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’'],
|
||||
'?': ['¿'],
|
||||
'!': ['¡'],
|
||||
'+': ['-', '×', '÷', '±']
|
||||
},
|
||||
// These are based on the en layout.
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '$', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
48
gaia/apps/keyboard/js/layouts/sv.js
Executable file
48
gaia/apps/keyboard/js/layouts/sv.js
Executable file
|
|
@ -0,0 +1,48 @@
|
|||
Keyboards.sv = {
|
||||
label: 'Swedish',
|
||||
shortLabel: 'Sv',
|
||||
menuLabel: 'Svenska',
|
||||
imEngine: 'latin',
|
||||
autoCorrectLanguage: 'sv',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
lang: 'sv',
|
||||
alt: {
|
||||
a: 'äáàâąã',
|
||||
e: 'éèêëę€',
|
||||
i: 'íìîï',
|
||||
o: 'öóòôõ',
|
||||
u: 'üúùûū',
|
||||
s: 'śšşß',
|
||||
S: 'ŚŠŞ',
|
||||
n: 'ńñň',
|
||||
c: 'çćč',
|
||||
d: 'ðď',
|
||||
r: 'ř',
|
||||
t: 'ťþ',
|
||||
z: 'źžż',
|
||||
l: 'ł',
|
||||
v: 'w',
|
||||
'ä': 'œæ',
|
||||
'ö': 'ø'
|
||||
},
|
||||
width: 11,
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' },{ value: 'w' },{ value: 'e' },{ value: 'r' },
|
||||
{ value: 't' },{ value: 'y' },{ value: 'u' },{ value: 'i' },
|
||||
{ value: 'o' },{ value: 'p' },{ value: 'å' }
|
||||
], [
|
||||
{ value: 'a' },{ value: 's' },{ value: 'd' },{ value: 'f' },
|
||||
{ value: 'g' },{ value: 'h' },{ value: 'j' },{ value: 'k' },
|
||||
{ value: 'l' },{ value: 'ö' },{ value: 'ä' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 2, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' },{ value: 'x' },{ value: 'c' },{ value: 'v' },
|
||||
{ value: 'b' },{ value: 'n' },{ value: 'm' },
|
||||
{ value: '⌫', ratio: 2, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
64
gaia/apps/keyboard/js/layouts/ta.js
Executable file
64
gaia/apps/keyboard/js/layouts/ta.js
Executable file
|
|
@ -0,0 +1,64 @@
|
|||
Keyboards.ta = {
|
||||
label: 'Tamil',
|
||||
shortLabel: 'Ta',
|
||||
imEngine: 'india',
|
||||
menuLabel: 'தமிழ்',
|
||||
secondLayout: true,
|
||||
specificCssRule: true,
|
||||
basicLayoutKey: 'அஆஇ',
|
||||
types: ['text', 'url', 'email'],
|
||||
lang: 'ta',
|
||||
upperCase: {
|
||||
'ஒ':'ொ',
|
||||
'ஔ':'ௌ',
|
||||
'ஐ':'ை',
|
||||
'ஶ':'ா',
|
||||
'ஆ':'ீ',
|
||||
'ஈ':'ூ',
|
||||
'ப':'ஊ',
|
||||
'ஹ':'ங',
|
||||
'ஜ':'ஂ',
|
||||
'ஞ':'ௗ',
|
||||
|
||||
'ஓ':'ோ',
|
||||
'ஏ':'ே',
|
||||
'அ':'்',
|
||||
'இ':'ி',
|
||||
'உ':'ு',
|
||||
'ர':'ற',
|
||||
'க':'&',
|
||||
'த':'ஃ',
|
||||
'ச':'?',
|
||||
'ட':'!',
|
||||
|
||||
'எ':'ெ',
|
||||
'ம':'ண',
|
||||
'ந':'ன',
|
||||
'வ':'ழ',
|
||||
'ல':'ள',
|
||||
'ஸ':'ஷ',
|
||||
'ய':'₹'
|
||||
},
|
||||
alt: {
|
||||
'₹': '$ € £ ¥ ৳'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'ஒ' }, { value: 'ஔ' }, { value: 'ஐ' }, { value: 'ஶ' },
|
||||
{ value: 'ஆ' }, { value: 'ஈ' }, { value: 'ப' }, { value: 'ஹ' },
|
||||
{ value: 'ஜ' }, { value: 'ஞ' }
|
||||
], [
|
||||
{ value: 'ஓ' }, { value: 'ஏ' }, { value: 'அ' }, { value: 'இ' },
|
||||
{ value: 'உ' }, { value: 'ர' }, { value: 'க' }, { value: 'த' },
|
||||
{ value: 'ச' }, { value: 'ட' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'எ' }, { value: 'ம' }, { value: 'ந' }, { value: 'வ' },
|
||||
{ value: 'ல' }, { value: 'ஸ' }, { value: 'ய' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
109
gaia/apps/keyboard/js/layouts/te.js
Executable file
109
gaia/apps/keyboard/js/layouts/te.js
Executable file
|
|
@ -0,0 +1,109 @@
|
|||
Keyboards.te = {
|
||||
label: 'Telugu',
|
||||
shortLabel: 'Te',
|
||||
imEngine: 'india',
|
||||
menuLabel: 'తెలుగు',
|
||||
secondLayout: true,
|
||||
specificCssRule: true,
|
||||
alternateLayoutKey: '?౧౨౩',
|
||||
basicLayoutKey: 'అఆఇ',
|
||||
types: ['text', 'url', 'email'],
|
||||
width: 11,
|
||||
lang: 'te',
|
||||
upperCase: {
|
||||
'ౌ':'ఔ',
|
||||
'ై':'ణ',
|
||||
'ా':'ఆ',
|
||||
'ీ':'ఈ',
|
||||
'ూ':'ీఊ',
|
||||
'బ':'భ',
|
||||
'హ':'ఙ',
|
||||
'గ':'ఘ',
|
||||
'ద':'ధ',
|
||||
'జ':'ఝ',
|
||||
'డ':'ఢ',
|
||||
|
||||
'ో':'ఓ',
|
||||
'ే':'ఏ',
|
||||
'్':'అ',
|
||||
'ి':'ఇ',
|
||||
'ు':'ఉ',
|
||||
'ప':'ఫ',
|
||||
'ర':'ఱ',
|
||||
'క':'ఖ',
|
||||
'త':'థ',
|
||||
'చ':'ఛ',
|
||||
'ట':'ఠ',
|
||||
|
||||
'ృ':'ఋ',
|
||||
'ं':'',
|
||||
'మ':'ణ',
|
||||
'న':'న',
|
||||
'వ':'ళ',
|
||||
'ల':'శ',
|
||||
'స':'ష',
|
||||
'య':'',
|
||||
'़':''
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'ౌ' }, { value: 'ై' }, { value: 'ా' }, { value: 'ీ' },
|
||||
{ value: 'ూ' }, { value: 'బ' }, { value: 'హ' }, { value: 'గ' },
|
||||
{ value: 'ద' }, { value: 'జ' }, { value: 'డ' }
|
||||
], [
|
||||
{ value: 'ో' }, { value: 'ే' }, { value: '్' }, { value: 'ి' },
|
||||
{ value: 'ు' }, { value: 'ప' }, { value: 'ర' }, { value: 'క' },
|
||||
{ value: 'త' }, { value: 'చ' }, { value: 'ట' }
|
||||
], [
|
||||
{ value: '⇪', keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'ృ' }, { value: 'ं' }, { value: 'మ' }, { value: 'న' },
|
||||
{ value: 'వ' }, { value: 'ల' }, { value: 'స' }, { value: 'య' },
|
||||
{ value: '़' }, { value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
alternateLayout: {
|
||||
alt: {
|
||||
'౧': '1',
|
||||
'౨': '2',
|
||||
'౩': '3',
|
||||
'౪': '4',
|
||||
'౫': '5',
|
||||
'౬': '6',
|
||||
'౭': '7',
|
||||
'౮': '8',
|
||||
'౯': '9',
|
||||
'౦': '0',
|
||||
'?': '¿',
|
||||
'!': '¡',
|
||||
'₹': '$ € £ ¥ ৳'
|
||||
},
|
||||
|
||||
keys: [
|
||||
[
|
||||
{ value: '१' }, { value: '२' }, { value: '३' }, { value: '४' },
|
||||
{ value: '५' }, { value: '६' }, { value: '७' }, { value: '८' },
|
||||
{ value: '९' }, { value: '०' }
|
||||
], [
|
||||
{ value : '@' , hidden: ['email'] }, { value : '#' },
|
||||
{ value: '₹', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5, keyCode: KeyEvent.DOM_VK_ALT },
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '?' }, { value: '!' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}
|
||||
};
|
||||
85
gaia/apps/keyboard/js/layouts/th.js
Executable file
85
gaia/apps/keyboard/js/layouts/th.js
Executable file
|
|
@ -0,0 +1,85 @@
|
|||
Keyboards.th = {
|
||||
label: 'Thai',
|
||||
shortLabel: 'Th',
|
||||
menuLabel: 'ไทย', /*ไทย*/
|
||||
basicLayoutKey: 'กขค', /*กขค*/
|
||||
types: ['text', 'url', 'email'],
|
||||
lang: 'th',
|
||||
pages: [ { // default page
|
||||
width: 11,
|
||||
secondLayout: true,
|
||||
alt: {
|
||||
'ช': ['๏', '๚', '๛']
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'ๅ' }, { value: 'ฃ' }, { value: 'ภ' }, { value: 'ถ' },
|
||||
{ value: 'ุ' }, { value: 'ึ' }, { value: 'ค' }, { value: 'ต' },
|
||||
{ value: 'จ' }, { value: 'ข' },
|
||||
{ value: 'ช', className: 'alternate-indicator' }
|
||||
], [
|
||||
{ value: 'ไ' }, { value: 'ำ' }, { value: 'พ' }, { value: 'ะ' },
|
||||
{ value: 'ั' }, { value: 'ี' }, { value: 'ร' }, { value: 'น' },
|
||||
{ value: 'ย' }, { value: 'บ' }, { value: 'ล' }
|
||||
], [
|
||||
{ value: 'ฟ' }, { value: 'ห' }, { value: 'ก' }, { value: 'ด' },
|
||||
{ value: 'เ' }, { value: '้' }, { value: '่' }, { value: 'า' },
|
||||
{ value: 'ส' }, { value: 'ว' }, { value: 'ง' }
|
||||
], [
|
||||
{ value: '⇪', keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'ป' }, { value: 'แ' }, { value: 'อ' }, { value: 'ิ' },
|
||||
{ value: 'ื' }, { value: 'ท' }, { value: 'ม' },
|
||||
{ value: 'ใ' }, { value: 'ฝ' },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
upperCase: {
|
||||
'ๅ': '๑',
|
||||
'ฃ': '๒',
|
||||
'ภ': '๓',
|
||||
'ถ': '๔',
|
||||
'ุ': '๕',
|
||||
'ึ': 'ู',
|
||||
'ค': '๖',
|
||||
'ต': '๗',
|
||||
'จ': '๘',
|
||||
'ข': '๙',
|
||||
'ช': '๐',
|
||||
'ไ': 'ๆ',
|
||||
'ำ': 'ฎ',
|
||||
'พ': 'ฑ',
|
||||
'ะ': 'ธ',
|
||||
'ั': 'ํ',
|
||||
'ี': '๊',
|
||||
'ร': 'ณ',
|
||||
'น': 'ฯ',
|
||||
'ย': 'ญ',
|
||||
'บ': 'ฐ',
|
||||
'ล': 'ฅ',
|
||||
'ฟ': 'ฤ',
|
||||
'ห': 'ฆ',
|
||||
'ก': 'ฏ',
|
||||
'ด': 'โ',
|
||||
'เ': 'ฌ',
|
||||
'้': '็',
|
||||
'่': '๋',
|
||||
'า': 'ษ',
|
||||
'ส': 'ศ',
|
||||
'ว': 'ซ',
|
||||
'ง': ',',
|
||||
'ป': '฿',
|
||||
'แ': 'ผ',
|
||||
'อ': 'ฉ',
|
||||
'ิ': 'ฮ',
|
||||
'ื': 'ฺ',
|
||||
'ท': '์',
|
||||
'ม': 'ฒ',
|
||||
'ใ': 'ฬ',
|
||||
'ฝ': 'ฦ'
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
44
gaia/apps/keyboard/js/layouts/tr-F.js
Executable file
44
gaia/apps/keyboard/js/layouts/tr-F.js
Executable file
|
|
@ -0,0 +1,44 @@
|
|||
Keyboards['tr-F'] = {
|
||||
label: 'Turkish F',
|
||||
shortLabel: 'Tr',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'tr',
|
||||
menuLabel: 'Türkçe F',
|
||||
lang: 'tr',
|
||||
upperCase: {
|
||||
'i': 'İ'
|
||||
},
|
||||
alt: {
|
||||
d: '¥',
|
||||
i: 'ß',
|
||||
f: '@',
|
||||
j: '«',
|
||||
ö: '»',
|
||||
p: '£',
|
||||
s: 'μ',
|
||||
v: '¢',
|
||||
u: 'æ',
|
||||
'.': ',?!;:'
|
||||
},
|
||||
width: 12,
|
||||
keys: [
|
||||
[
|
||||
{ value: 'f' }, { value: 'g' }, { value: 'ğ' }, { value: 'ı' },
|
||||
{ value: 'o' }, { value: 'd' }, { value: 'r' }, { value: 'n' },
|
||||
{ value: 'h' }, { value: 'p' }, { value: 'q' }, { value: 'w' }
|
||||
], [
|
||||
{ value: 'u' }, { value: 'i' }, { value: 'e' }, { value: 'a' },
|
||||
{ value: 'ü' }, { value: 't' }, { value: 'k' }, { value: 'm' },
|
||||
{ value: 'l' }, { value: 'y' }, { value: 'ş' }, { value: 'x' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 2, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'j' }, { value: 'ö' }, { value: 'v' }, { value: 'c' },
|
||||
{ value: 'ç' }, { value: 'z' }, { value: 's' }, { value: 'b'},
|
||||
{ value: '⌫', ratio: 2, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 10.0, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2.0, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
42
gaia/apps/keyboard/js/layouts/tr-Q.js
Executable file
42
gaia/apps/keyboard/js/layouts/tr-Q.js
Executable file
|
|
@ -0,0 +1,42 @@
|
|||
Keyboards['tr-Q'] = {
|
||||
label: 'Turkish Q',
|
||||
shortLabel: 'Tr',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
autoCorrectLanguage: 'tr',
|
||||
menuLabel: 'Türkçe Q',
|
||||
lang: 'tr',
|
||||
upperCase: {
|
||||
'i': 'İ'
|
||||
},
|
||||
alt: {
|
||||
a: 'â',
|
||||
c: 'çćč',
|
||||
g: 'ğ',
|
||||
i: 'īįıìíîï',
|
||||
'İ': 'ĪĮIÌÍÎÏ',
|
||||
s: 'śšşß',
|
||||
S: 'ŚŠŞ',
|
||||
o: 'òóôõöōœø',
|
||||
u: 'ùúûüū'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' } , { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: "'", keyCode: 39 }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
72
gaia/apps/keyboard/js/layouts/uk.js
Executable file
72
gaia/apps/keyboard/js/layouts/uk.js
Executable file
|
|
@ -0,0 +1,72 @@
|
|||
Keyboards.uk = {
|
||||
label: 'Ukrainian',
|
||||
shortLabel: 'Uk',
|
||||
menuLabel: 'Українська',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email'],
|
||||
basicLayoutKey: 'АБВ',
|
||||
lang: 'uk',
|
||||
pages: [ { //default page
|
||||
alt: {
|
||||
а: '@',
|
||||
г: 'ґ'
|
||||
},
|
||||
width: 12,
|
||||
keys: [
|
||||
[
|
||||
{ value: 'й' }, { value: 'ц' }, { value: 'у' }, { value: 'к' },
|
||||
{ value: 'е' }, { value: 'н' }, { value: 'г' }, { value: 'ш' },
|
||||
{ value: 'щ' }, { value: 'з' }, { value: 'х' }, { value: 'ї' }
|
||||
], [
|
||||
{ value: 'ф' }, { value: 'і' }, { value: 'в' }, { value: 'а' },
|
||||
{ value: 'п' }, { value: 'р' }, { value: 'о' }, { value: 'л' },
|
||||
{ value: 'д' }, { value: 'ж' }, { value: 'є' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'я' }, { value: 'ч' }, { value: 'с' }, { value: 'м' },
|
||||
{ value: 'и' }, { value: 'т' }, { value: 'ь' }, { value: 'б' },
|
||||
{ value: 'ю' }, { value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 10, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
}, { // symbol page 1
|
||||
alt: {
|
||||
'0': ['º'],
|
||||
'₴': ['$', '€', '£', '¢', '¥'],
|
||||
'"': ['“', '”'],
|
||||
'\'':['‘', '’']
|
||||
},
|
||||
// These are based on the en layout
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' }, { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' }, { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' },
|
||||
{ value: '₴', className: 'alternate-indicator' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt', ratio: 1.5,
|
||||
keyCode: KeyboardEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
}, { value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
};
|
||||
41
gaia/apps/keyboard/js/layouts/vi-Qwerty.js
Executable file
41
gaia/apps/keyboard/js/layouts/vi-Qwerty.js
Executable file
|
|
@ -0,0 +1,41 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
Keyboards['vi-Qwerty'] = {
|
||||
label: 'Vietnamese',
|
||||
shortLabel: 'Vi',
|
||||
menuLabel: 'Tiếng Việt (QWERTY)',
|
||||
imEngine: 'vietnamese',
|
||||
needsCandidatePanel: true,
|
||||
width: 10,
|
||||
types: ['text', 'url', 'email'],
|
||||
lang: 'vi',
|
||||
alt: {
|
||||
'a': 'ăâ',
|
||||
'd': 'đ',
|
||||
'e': 'ê',
|
||||
'o': 'ôơ',
|
||||
'u': 'ư',
|
||||
'.': ',?!-;:'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' } , { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
27
gaia/apps/keyboard/js/layouts/vi-Telex.js
Executable file
27
gaia/apps/keyboard/js/layouts/vi-Telex.js
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
Keyboards['vi-Telex'] = {
|
||||
label: 'Vietnamese (Telex)',
|
||||
shortLabel: 'Vi',
|
||||
menuLabel: 'Tiếng Việt (Telex)',
|
||||
imEngine: 'jstelex',
|
||||
types: ['text', 'url', 'email'],
|
||||
lang: 'vi',
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' } , { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'z' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
41
gaia/apps/keyboard/js/layouts/vi-Typewriter.js
Executable file
41
gaia/apps/keyboard/js/layouts/vi-Typewriter.js
Executable file
|
|
@ -0,0 +1,41 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// This is a traditional Vietnamese typewriter layout.
|
||||
Keyboards['vi-Typewriter'] = {
|
||||
label: 'Vietnamese',
|
||||
shortLabel: 'Vi',
|
||||
menuLabel: 'Tiếng Việt',
|
||||
imEngine: 'vietnamese',
|
||||
needsCandidatePanel: true,
|
||||
width: 10,
|
||||
types: ['text', 'url', 'email'],
|
||||
lang: 'vi',
|
||||
alt: {
|
||||
'đ': 'z',
|
||||
'ư': 'f',
|
||||
'ơ': 'j',
|
||||
'ă': 'w',
|
||||
'.': ',?!-;:'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'a' }, { value: 'đ' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' } , { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'q' }, { value: 's' }, { value: 'd' }, { value: 'ư' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'ơ' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: 'm' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'ă' }, { value: 'x' }, { value: 'c' }, { value: 'v' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: '^', keyCode: 94 },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
};
|
||||
44
gaia/apps/keyboard/js/layouts/wo.js
Executable file
44
gaia/apps/keyboard/js/layouts/wo.js
Executable file
|
|
@ -0,0 +1,44 @@
|
|||
Keyboards.wo = {
|
||||
label: 'Wolof',
|
||||
shortLabel: 'Wo',
|
||||
menuLabel: 'Wolof',
|
||||
imEngine: 'latin',
|
||||
types: ['text', 'url', 'email', 'password'],
|
||||
lang: 'wo',
|
||||
pages: [ {
|
||||
alt: {
|
||||
a: 'àâæáãäåā',
|
||||
c: 'çćč',
|
||||
e: 'éèêë€ē',
|
||||
i: 'îïìíī',
|
||||
o: 'óôœòõöōø',
|
||||
u: 'ùûüúū',
|
||||
s: 'śšşß',
|
||||
S: 'ŚŠŞ',
|
||||
n: 'ñńň',
|
||||
é: 'z',
|
||||
ë: 'h',
|
||||
ŋ: 'v',
|
||||
'.': ',?!-;:',
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'a' }, { value: 'é' }, { value: 'e' }, { value: 'r' },
|
||||
{ value: 't' }, { value: 'y' }, { value: 'u' }, { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'q' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' }, { value: 'ë' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }, { value: 'm' }
|
||||
], [
|
||||
{ value: '⇪', ratio: 1.5, keyCode: KeyEvent.DOM_VK_CAPS_LOCK },
|
||||
{ value: 'w' }, { value: 'x' }, { value: 'c' }, { value: 'ŋ' },
|
||||
{ value: 'b' }, { value: 'n' }, { value: '\''},
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
178
gaia/apps/keyboard/js/layouts/zh-Hans-Handwriting.js
Executable file
178
gaia/apps/keyboard/js/layouts/zh-Hans-Handwriting.js
Executable file
|
|
@ -0,0 +1,178 @@
|
|||
Keyboards['zh-Hans-Handwriting'] = {
|
||||
label: 'Chinese - Simplified - Handwriting',
|
||||
shortLabel: '写',
|
||||
menuLabel: '手写简体',
|
||||
needsCandidatePanel: true,
|
||||
needsCommaKey: true,
|
||||
imEngine: 'handwriting',
|
||||
types: ['text'],
|
||||
lang: 'zh-Hans',
|
||||
pages: [ { // basic page for handwriting pad
|
||||
needsCommaKey: true,
|
||||
width: 10,
|
||||
textLayoutOverwrite: {
|
||||
',': ',',
|
||||
'.': '。'
|
||||
},
|
||||
alt: {
|
||||
'.': ',?!;:',
|
||||
'。': ',?!;:…'
|
||||
},
|
||||
handwritingLanguage: 'zh-Hans',
|
||||
handwritingPadOptions: {
|
||||
ratio: 8.5,
|
||||
rowspan: 3
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '!', ratio: 1.5 }
|
||||
], [
|
||||
{ value: '?', ratio: 1.5 }
|
||||
], [
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE, ratio: 1.5 }
|
||||
], [
|
||||
{ value: '', keyCode: KeyEvent.DOM_VK_SPACE, ratio: 8 },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
}, { // Chinese symbol 1
|
||||
needsCommaKey: true,
|
||||
textLayoutOverwrite: {
|
||||
',': ',',
|
||||
'.': '。'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' } , { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' } , { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '?' }, { value: '!' }, { value: ':' }, { value: ';' },
|
||||
{ value: '……', compositeKey: '……', className: 'pinyin-ch-ellipsis' },
|
||||
{ value: '~' }, { value: '(' }, { value: ')' },
|
||||
{ value: '“' }, { value: '”' }
|
||||
], [
|
||||
{ value: 'Alt',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-half">半</div> \
|
||||
<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-selected">全</div>',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
targetPage: 3
|
||||
},
|
||||
{ value: '、' }, { value: '@' }, { value: '&' }, { value: '^' },
|
||||
{ value: '#' }, { value: '%' }, { value: '/' },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, { // Chinese symbol 2
|
||||
needsCommaKey: true,
|
||||
textLayoutOverwrite: {
|
||||
',': ',',
|
||||
'.': '。'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' } , { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' } , { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '+' }, { value: '-' }, { value: '_' }, { value: '=' },
|
||||
{ value: '$' }, { value: '¥' }, { value: '《' }, { value: '》' },
|
||||
{ value: '{' }, { value: '}' }
|
||||
], [
|
||||
{ value: 'Alt',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-half">半</div> \
|
||||
<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-selected">全</div>',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
targetPage: 4
|
||||
},
|
||||
{ value: '【' }, { value: '】' }, { value: '「' }, { value: '」' },
|
||||
{ value: '*' }, { value: '·' }, { value: '|' },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
}, {
|
||||
needsCommaKey: true,
|
||||
width: 10,
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' } , { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' } , { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '?' }, { value: '!' }, { value: ':' }, { value: ';' },
|
||||
{ value: '…' }, { value: '~' }, { value: '(' }, { value: ')' },
|
||||
{ value: '\'' }, { value: '"' }
|
||||
], [
|
||||
{ value: 'Alt',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 4
|
||||
},
|
||||
{ value: '<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-half \
|
||||
zh-encode-switcher-selected">半</div> \
|
||||
<div class="zh-encode-switcher">全</div>',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '\\' }, { value: '@' }, { value: '&' }, { value: '^' },
|
||||
{ value: '#' }, { value: '%' }, { value: '/' },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, {
|
||||
needsCommaKey: true,
|
||||
width: 10,
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' } , { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' } , { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '+' }, { value: '-' }, { value: '_' }, { value: '=' },
|
||||
{ value: '$' }, { value: '¥' }, { value: '<' }, { value: '>' },
|
||||
{ value: '{' }, { value: '}' }
|
||||
], [
|
||||
{ value: 'Alt',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 3
|
||||
},
|
||||
{ value: '<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-half \
|
||||
zh-encode-switcher-selected">半</div> \
|
||||
<div class="zh-encode-switcher">全</div>',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '[' }, { value: ']' }, { value: '「' }, { value: '」' },
|
||||
{ value: '*' }, { value: '`' }, { value: '|' },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
181
gaia/apps/keyboard/js/layouts/zh-Hans-Pinyin.js
Executable file
181
gaia/apps/keyboard/js/layouts/zh-Hans-Pinyin.js
Executable file
|
|
@ -0,0 +1,181 @@
|
|||
Keyboards['zh-Hans-Pinyin'] = {
|
||||
label: 'Chinese - Simplified - Pinyin',
|
||||
shortLabel: '拼',
|
||||
menuLabel: '拼音',
|
||||
needsCandidatePanel: true,
|
||||
imEngine: 'jspinyin',
|
||||
types: ['text', 'url', 'email'],
|
||||
lang: 'zh-Hans',
|
||||
pages: [ { // basic page for pinyin alphabets
|
||||
needsCommaKey: true,
|
||||
width: 10,
|
||||
textLayoutOverwrite: {
|
||||
',': ',',
|
||||
'.': '。'
|
||||
},
|
||||
alt: {
|
||||
'.': ',?!;:',
|
||||
'。': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'q' }, { value: 'w' }, { value: 'e' } , { value: 'r' },
|
||||
{ value: 't' } , { value: 'y' }, { value: 'u' } , { value: 'i' },
|
||||
{ value: 'o' }, { value: 'p' }
|
||||
], [
|
||||
{ value: 'a' }, { value: 's' }, { value: 'd' }, { value: 'f' },
|
||||
{ value: 'g' } , { value: 'h' }, { value: 'j' }, { value: 'k' },
|
||||
{ value: 'l' }
|
||||
], [
|
||||
/*use 'A' keycode for this special symbol, so that it won't conflict with "'" in symbol page */
|
||||
{ value: "'", ratio: 1.5, keyCode: 65 },
|
||||
{ value: 'z' },
|
||||
{ value: 'x' }, { value: 'c' }, { value: 'v' }, { value: 'b' },
|
||||
{ value: 'n' }, { value: 'm' },
|
||||
{ value: '⌫', ratio: 1.5, keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', keyCode: KeyEvent.DOM_VK_SPACE, ratio: 8 },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, { // Chinese symbol 1
|
||||
needsCommaKey: true,
|
||||
textLayoutOverwrite: {
|
||||
',': ',',
|
||||
'.': '。'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' } , { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' } , { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '?' }, { value: '!' }, { value: ':' }, { value: ';' },
|
||||
{ value: '……', compositeKey: '……', className: 'pinyin-ch-ellipsis' },
|
||||
{ value: '~' }, { value: '(' }, { value: ')' },
|
||||
{ value: '“' }, { value: '”' }
|
||||
], [
|
||||
{ value: 'Alt',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-half">半</div> \
|
||||
<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-selected">全</div>',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
targetPage: 3
|
||||
},
|
||||
{ value: '、' }, { value: '@' }, { value: '&' }, { value: '^' },
|
||||
{ value: '#' }, { value: '%' }, { value: '/' },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, { // Chinese symbol 2
|
||||
needsCommaKey: true,
|
||||
textLayoutOverwrite: {
|
||||
',': ',',
|
||||
'.': '。'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' } , { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' } , { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '+' }, { value: '-' }, { value: '_' }, { value: '=' },
|
||||
{ value: '$' }, { value: '¥' }, { value: '《' }, { value: '》' },
|
||||
{ value: '{' }, { value: '}' }
|
||||
], [
|
||||
{ value: 'Alt',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-half">半</div> \
|
||||
<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-selected">全</div>',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
targetPage: 4
|
||||
},
|
||||
{ value: '【' }, { value: '】' }, { value: '「' }, { value: '」' },
|
||||
{ value: '*' }, { value: '·' }, { value: '|' },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
],
|
||||
}, {
|
||||
needsCommaKey: true,
|
||||
width: 10,
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' } , { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' } , { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '?' }, { value: '!' }, { value: ':' }, { value: ';' },
|
||||
{ value: '…' }, { value: '~' }, { value: '(' }, { value: ')' },
|
||||
{ value: '\'' }, { value: '"' }
|
||||
], [
|
||||
{ value: 'Alt',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 4
|
||||
},
|
||||
{ value: '<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-half \
|
||||
zh-encode-switcher-selected">半</div> \
|
||||
<div class="zh-encode-switcher">全</div>',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '\\' }, { value: '@' }, { value: '&' }, { value: '^' },
|
||||
{ value: '#' }, { value: '%' }, { value: '/' },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, {
|
||||
needsCommaKey: true,
|
||||
width: 10,
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' } , { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' } , { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '+' }, { value: '-' }, { value: '_' }, { value: '=' },
|
||||
{ value: '$' }, { value: '¥' }, { value: '<' }, { value: '>' },
|
||||
{ value: '{' }, { value: '}' }
|
||||
], [
|
||||
{ value: 'Alt',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 3
|
||||
},
|
||||
{ value: '<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-half \
|
||||
zh-encode-switcher-selected">半</div> \
|
||||
<div class="zh-encode-switcher">全</div>',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '[' }, { value: ']' }, { value: '「' }, { value: '」' },
|
||||
{ value: '*' }, { value: '`' }, { value: '|' },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
192
gaia/apps/keyboard/js/layouts/zh-Hant-Zhuyin.js
Executable file
192
gaia/apps/keyboard/js/layouts/zh-Hant-Zhuyin.js
Executable file
|
|
@ -0,0 +1,192 @@
|
|||
Keyboards['zh-Hant-Zhuyin'] = {
|
||||
label: 'Chinese - Traditional - Zhuyin',
|
||||
shortLabel: '注',
|
||||
menuLabel: '注音',
|
||||
basicLayoutKey: 'ㄅㄆㄇ',
|
||||
needsCandidatePanel: true,
|
||||
imEngine: 'jszhuyin',
|
||||
types: ['text', 'url', 'email'],
|
||||
lang: 'zh-Hant',
|
||||
pages: [ { // basic Zhuyin symbols
|
||||
needsCommaKey: true,
|
||||
width: 11,
|
||||
specificCssRule: true,
|
||||
textLayoutOverwrite: {
|
||||
',': ',',
|
||||
'.': '。'
|
||||
},
|
||||
alt: {
|
||||
'.': ',?!;:',
|
||||
'。': ',?!;:…'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: 'ㄅ'},{ value: 'ㄉ'},{ value: 'ˇ'},{ value: 'ˋ'},
|
||||
{ value: 'ㄓ'},{ value: 'ˊ'},{ value: '˙'},{ value: 'ㄚ'},
|
||||
{ value: 'ㄞ'},{ value: 'ㄢ'}, { value: 'ㄦ'}
|
||||
], [
|
||||
{ value: 'ㄆ'},{ value: 'ㄊ'},{ value: 'ㄍ'},{ value: 'ㄐ'},
|
||||
{ value: 'ㄔ'},{ value: 'ㄗ'},{ value: 'ㄧ'},{ value: 'ㄛ'},
|
||||
{ value: 'ㄟ'},{ value: 'ㄣ'}, { value: '?'}
|
||||
], [
|
||||
{ value: 'ㄇ'},{ value: 'ㄋ'},{ value: 'ㄎ'},{ value: 'ㄑ'},
|
||||
{ value: 'ㄕ'},{ value: 'ㄘ'},{ value: 'ㄨ'},{ value: 'ㄜ'},
|
||||
{ value: 'ㄠ'},{ value: 'ㄤ'}, { value: '!'}
|
||||
], [
|
||||
{ value: 'ㄈ'},{ value: 'ㄌ'},{ value: 'ㄏ'},{ value: 'ㄒ'},
|
||||
{ value: 'ㄖ'},{ value: 'ㄙ'},{ value: 'ㄩ'},{ value: 'ㄝ'},
|
||||
{ value: 'ㄡ'},{ value: 'ㄥ'},
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 9, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, { // Chinese symbol 1
|
||||
width: 10,
|
||||
textLayoutOverwrite: {
|
||||
',': ',',
|
||||
'.': '。'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' } , { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' } , { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' }, { value: '$' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-half">半</div> \
|
||||
<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-selected">全</div>',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
targetPage: 3
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
},
|
||||
{ value: ':' }, { value: ';' }, { value: '「' },
|
||||
{ value: '」' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, { // Chinese symbol 2
|
||||
width: 10,
|
||||
textLayoutOverwrite: {
|
||||
',': ',',
|
||||
'.': '。'
|
||||
},
|
||||
keys: [
|
||||
[
|
||||
{ value: '€' }, { value: '£' } , { value: '¢' }, { value: '¥' },
|
||||
{ value: '%' }, { value: '©' } , { value: '®' }, { value: '·' },
|
||||
{ value: '|' }, { value: '\' }
|
||||
], [
|
||||
{ value: '~' }, { value: '℃' }, { value: '℉' }, { value: '°' },
|
||||
{ value: '<' }, { value: '>' }, { value: '[' }, { value: ']' },
|
||||
{ value: '{' }, { value: '}' }
|
||||
], [
|
||||
{ value: 'Alt',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-half">半</div> \
|
||||
<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-selected">全</div>',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
targetPage: 4
|
||||
},
|
||||
{ value: '+' }, { value: '=' }, { value: '`' }, { value: '^' },
|
||||
{ value: '§' }, { value: '《' }, { value: '》' },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, {
|
||||
width: 10,
|
||||
keys: [
|
||||
[
|
||||
{ value: '1' }, { value: '2' }, { value: '3' } , { value: '4' },
|
||||
{ value: '5' }, { value: '6' }, { value: '7' } , { value: '8' },
|
||||
{ value: '9' }, { value: '0' }
|
||||
], [
|
||||
{ value: '@' }, { value: '#' }, { value: '$' }, { value: '&' },
|
||||
{ value: '*' }, { value: '-' }, { value: '_' }, { value: '/' },
|
||||
{ value: '(' }, { value: ')' }
|
||||
], [
|
||||
{ value: 'Alt',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 4
|
||||
},
|
||||
{ value: '<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-half \
|
||||
zh-encode-switcher-selected">半</div> \
|
||||
<div class="zh-encode-switcher">全</div>',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
targetPage: 1
|
||||
},
|
||||
{ value: '+',
|
||||
supportsSwitching: {
|
||||
value: ','
|
||||
}
|
||||
},
|
||||
{ value: ':' }, { value: ';' }, { value: '"' },
|
||||
{ value: '\'' }, { value: '!' }, { value: '?' },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
}, {
|
||||
width: 10,
|
||||
keys: [
|
||||
[
|
||||
{ value: '€' }, { value: '£' } , { value: '¢' }, { value: '¥' },
|
||||
{ value: '%' }, { value: '©' } , { value: '®' }, { value: '·' },
|
||||
{ value: '|' }, { value: '\\' }
|
||||
], [
|
||||
{ value: '~' }, { value: '℃' }, { value: '℉' }, { value: '°' },
|
||||
{ value: '<' }, { value: '>' }, { value: '[' }, { value: ']' },
|
||||
{ value: '{' }, { value: '}' }
|
||||
], [
|
||||
{ value: 'Alt',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
className: 'page-switch-key',
|
||||
targetPage: 3
|
||||
},
|
||||
{ value: '<div class="zh-encode-switcher \
|
||||
zh-encode-switcher-half \
|
||||
zh-encode-switcher-selected">半</div> \
|
||||
<div class="zh-encode-switcher">全</div>',
|
||||
keyCode: KeyEvent.DOM_VK_ALT,
|
||||
targetPage: 2
|
||||
},
|
||||
{ value: '+' }, { value: '=' }, { value: '`' }, { value: '^' },
|
||||
{ value: '§' }, { value: '«' }, { value: '»' },
|
||||
{ value: '⌫', keyCode: KeyEvent.DOM_VK_BACK_SPACE }
|
||||
], [
|
||||
{ value: ' ', ratio: 8, keyCode: KeyboardEvent.DOM_VK_SPACE },
|
||||
{ value: '↵', ratio: 2, keyCode: KeyEvent.DOM_VK_RETURN }
|
||||
]
|
||||
]
|
||||
} ]
|
||||
};
|
||||
Loading…
Reference in a new issue