Skip to content

Commit

Permalink
feat: turkish language
Browse files Browse the repository at this point in the history
  • Loading branch information
aradzie committed Apr 8, 2024
1 parent 30f07c8 commit c27a557
Show file tree
Hide file tree
Showing 13 changed files with 3,203 additions and 93 deletions.
3,002 changes: 3,002 additions & 0 deletions packages/keybr-content-words/lib/data/words-tr.json

Large diffs are not rendered by default.

132 changes: 41 additions & 91 deletions packages/keybr-content-words/lib/load.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,130 +5,80 @@ export async function loadWordList(language: Language): Promise<WordList> {
switch (language) {
case Language.BE:
return (
await import(
/* webpackChunkName: "words-be" */
"./data/words-be.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-be" */ "./data/words-be.json")
).default as WordList;
case Language.CS:
return (
await import(
/* webpackChunkName: "words-cs" */
"./data/words-cs.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-cs" */ "./data/words-cs.json")
).default as WordList;
case Language.DE:
return (
await import(
/* webpackChunkName: "words-de" */
"./data/words-de.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-de" */ "./data/words-de.json")
).default as WordList;
case Language.EL:
return (
await import(
/* webpackChunkName: "words-el" */
"./data/words-el.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-el" */ "./data/words-el.json")
).default as WordList;
case Language.EN:
return (
await import(
/* webpackChunkName: "words-en" */
"./data/words-en.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-en" */ "./data/words-en.json")
).default as WordList;
case Language.ES:
return (
await import(
/* webpackChunkName: "words-es" */
"./data/words-es.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-es" */ "./data/words-es.json")
).default as WordList;
case Language.FR:
return (
await import(
/* webpackChunkName: "words-fr" */
"./data/words-fr.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-fr" */ "./data/words-fr.json")
).default as WordList;
case Language.HE:
return (
await import(
/* webpackChunkName: "words-he" */
"./data/words-he.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-he" */ "./data/words-he.json")
).default as WordList;
case Language.HU:
return (
await import(
/* webpackChunkName: "words-hu" */
"./data/words-hu.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-hu" */ "./data/words-hu.json")
).default as WordList;
case Language.IT:
return (
await import(
/* webpackChunkName: "words-it" */
"./data/words-it.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-it" */ "./data/words-it.json")
).default as WordList;
case Language.NB:
return (
await import(/* webpackChunkName: "words-nb" */ "./data/words-nb.json")
).default as WordList;
case Language.NL:
return (
await import(
/* webpackChunkName: "words-nl" */
"./data/words-nl.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-nl" */ "./data/words-nl.json")
).default as WordList;
case Language.PL:
return (
await import(
/* webpackChunkName: "words-pl" */
"./data/words-pl.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-pl" */ "./data/words-pl.json")
).default as WordList;
case Language.PT:
return (
await import(
/* webpackChunkName: "words-pt" */
"./data/words-pt.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-pt" */ "./data/words-pt.json")
).default as WordList;
case Language.RU:
return (
await import(
/* webpackChunkName: "words-ru" */
"./data/words-ru.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-ru" */ "./data/words-ru.json")
).default as WordList;
case Language.SL:
return (
await import(
/* webpackChunkName: "words-sl" */
"./data/words-sl.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-sl" */ "./data/words-sl.json")
).default as WordList;
case Language.SV:
return (
await import(
/* webpackChunkName: "words-sv" */
"./data/words-sv.json"
)
).default as unknown as WordList;
case Language.NB:
await import(/* webpackChunkName: "words-sv" */ "./data/words-sv.json")
).default as WordList;
case Language.TR:
return (
await import(
/* webpackChunkName: "words-nb" */
"./data/words-nb.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-tr" */ "./data/words-tr.json")
).default as WordList;
case Language.UK:
return (
await import(
/* webpackChunkName: "words-uk" */
"./data/words-uk.json"
)
).default as unknown as WordList;
await import(/* webpackChunkName: "words-uk" */ "./data/words-uk.json")
).default as WordList;
default:
throw new Error();
}
Expand Down
2 changes: 2 additions & 0 deletions packages/keybr-keyboard-generator/lib/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ for (const [output, keymap] of [
["ru_ru-win.ts", convertCldr("cldr-keyboards-43.0/keyboards/windows/ru-t-k0-windows.xml")],
["sl_si-win.ts", convertCldr("cldr-keyboards-43.0/keyboards/windows/sl-t-k0-windows.xml")],
["sv_se-win.ts", convertCldr("cldr-keyboards-43.0/keyboards/windows/sv-t-k0-windows.xml")],
["tr_tr_f-win.ts", convertCldr("cldr-keyboards-43.0/keyboards/windows/tr-t-k0-windows-legacy.xml")],
["tr_tr_q-win.ts", convertCldr("cldr-keyboards-43.0/keyboards/windows/tr-t-k0-windows.xml")],
["uk_ua-win.ts", convertCldr("cldr-keyboards-43.0/keyboards/windows/uk-t-k0-windows.xml")],
] as [string, KeyMap][]) {
const filename = join(__dirname, "../../keybr-keyboard/lib/data/layout", output);
Expand Down
2 changes: 2 additions & 0 deletions packages/keybr-keyboard/lib/data/layout.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,6 @@ export { LAYOUT_PT_PT_WIN } from "./layout/pt_pt-win.ts";
export { LAYOUT_RU_RU_WIN } from "./layout/ru_ru-win.ts";
export { LAYOUT_SL_SI_WIN } from "./layout/sl_si-win.ts";
export { LAYOUT_SV_SE_WIN } from "./layout/sv_se-win.ts";
export { LAYOUT_TR_TR_F_WIN } from "./layout/tr_tr_f-win.ts";
export { LAYOUT_TR_TR_Q_WIN } from "./layout/tr_tr_q-win.ts";
export { LAYOUT_UK_UA_WIN } from "./layout/uk_ua-win.ts";
56 changes: 56 additions & 0 deletions packages/keybr-keyboard/lib/data/layout/tr_tr_f-win.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
// Generated file, do not edit.

import { type CodePointDict } from "../../types.ts";

// prettier-ignore
export const LAYOUT_TR_TR_F_WIN: CodePointDict = {
Backquote: [/* + */ 0x002b, /* * */ 0x002a, /* ¬ */ 0x00ac],
Digit1: [/* 1 */ 0x0031, /* ! */ 0x0021, /* ¹ */ 0x00b9, /* ¡ */ 0x00a1],
Digit2: [/* 2 */ 0x0032, /* " */ 0x0022, /* ² */ 0x00b2],
Digit3: [/* 3 */ 0x0033, /* DEAD CIRCUMFLEX ACCENT */ 0x0302, /* # */ 0x0023, /* ³ */ 0x00b3],
Digit4: [/* 4 */ 0x0034, /* $ */ 0x0024, /* ¼ */ 0x00bc, /* ¤ */ 0x00a4],
Digit5: [/* 5 */ 0x0035, /* % */ 0x0025, /* ½ */ 0x00bd],
Digit6: [/* 6 */ 0x0036, /* & */ 0x0026, /* ¾ */ 0x00be],
Digit7: [/* 7 */ 0x0037, /* ' */ 0x0027, /* { */ 0x007b],
Digit8: [/* 8 */ 0x0038, /* ( */ 0x0028, /* [ */ 0x005b],
Digit9: [/* 9 */ 0x0039, /* ) */ 0x0029, /* ] */ 0x005d],
Digit0: [/* 0 */ 0x0030, /* = */ 0x003d, /* } */ 0x007d],
Minus: [/* / */ 0x002f, /* ? */ 0x003f, /* \ */ 0x005c, /* ¿ */ 0x00bf],
Equal: [/* - */ 0x002d, /* _ */ 0x005f, /* | */ 0x007c],
KeyQ: [/* f */ 0x0066, /* F */ 0x0046, /* @ */ 0x0040],
KeyW: [/* g */ 0x0067, /* G */ 0x0047],
KeyE: [/* ğ */ 0x011f, /* Ğ */ 0x011e],
KeyR: [/* ı */ 0x0131, /* I */ 0x0049, /* ¶ */ 0x00b6, /* ® */ 0x00ae],
KeyT: [/* o */ 0x006f, /* O */ 0x004f],
KeyY: [/* d */ 0x0064, /* D */ 0x0044, /* ¥ */ 0x00a5],
KeyU: [/* r */ 0x0072, /* R */ 0x0052],
KeyI: [/* n */ 0x006e, /* N */ 0x004e],
KeyO: [/* h */ 0x0068, /* H */ 0x0048, /* ø */ 0x00f8, /* Ø */ 0x00d8],
KeyP: [/* p */ 0x0070, /* P */ 0x0050, /* £ */ 0x00a3],
BracketLeft: [/* q */ 0x0071, /* Q */ 0x0051, /* DEAD DIAERESIS */ 0x0308],
BracketRight: [/* w */ 0x0077, /* W */ 0x0057, /* DEAD TILDE */ 0x0303],
Backslash: [/* x */ 0x0078, /* X */ 0x0058, /* DEAD GRAVE ACCENT */ 0x0300],
KeyA: [/* u */ 0x0075, /* U */ 0x0055, /* æ */ 0x00e6, /* Æ */ 0x00c6],
KeyS: [/* i */ 0x0069, /* İ */ 0x0130, /* ß */ 0x00df, /* § */ 0x00a7],
KeyD: [/* e */ 0x0065, /* E */ 0x0045, /* € */ 0x20ac],
KeyF: [/* a */ 0x0061, /* A */ 0x0041, /* ª */ 0x00aa],
KeyG: [/* ü */ 0x00fc, /* Ü */ 0x00dc],
KeyH: [/* t */ 0x0074, /* T */ 0x0054, /* ₺ */ 0x20ba],
KeyJ: [/* k */ 0x006b, /* K */ 0x004b],
KeyK: [/* m */ 0x006d, /* M */ 0x004d],
KeyL: [/* l */ 0x006c, /* L */ 0x004c],
Semicolon: [/* y */ 0x0079, /* Y */ 0x0059, /* DEAD ACUTE ACCENT */ 0x0301],
Quote: [/* ş */ 0x015f, /* Ş */ 0x015e],
IntlBackslash: [/* < */ 0x003c, /* > */ 0x003e, /* | */ 0x007c, /* ¦ */ 0x00a6],
KeyZ: [/* j */ 0x006a, /* J */ 0x004a, /* « */ 0x00ab, /* < */ 0x003c],
KeyX: [/* ö */ 0x00f6, /* Ö */ 0x00d6, /* » */ 0x00bb, /* > */ 0x003e],
KeyC: [/* v */ 0x0076, /* V */ 0x0056, /* ¢ */ 0x00a2, /* © */ 0x00a9],
KeyV: [/* c */ 0x0063, /* C */ 0x0043],
KeyB: [/* ç */ 0x00e7, /* Ç */ 0x00c7],
KeyN: [/* z */ 0x007a, /* Z */ 0x005a],
KeyM: [/* s */ 0x0073, /* S */ 0x0053, /* µ */ 0x00b5, /* º */ 0x00ba],
Comma: [/* b */ 0x0062, /* B */ 0x0042, /* × */ 0x00d7],
Period: [/* . */ 0x002e, /* : */ 0x003a, /* ÷ */ 0x00f7],
Slash: [/* , */ 0x002c, /* ; */ 0x003b, /* ­ */ 0x00ad],
Space: [/* SPACE */ 0x0020],
};
56 changes: 56 additions & 0 deletions packages/keybr-keyboard/lib/data/layout/tr_tr_q-win.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
// Generated file, do not edit.

import { type CodePointDict } from "../../types.ts";

// prettier-ignore
export const LAYOUT_TR_TR_Q_WIN: CodePointDict = {
Backquote: [/* " */ 0x0022, /* é */ 0x00e9, /* < */ 0x003c],
Digit1: [/* 1 */ 0x0031, /* ! */ 0x0021, /* > */ 0x003e],
Digit2: [/* 2 */ 0x0032, /* ' */ 0x0027, /* £ */ 0x00a3],
Digit3: [/* 3 */ 0x0033, /* DEAD CIRCUMFLEX ACCENT */ 0x0302, /* # */ 0x0023],
Digit4: [/* 4 */ 0x0034, /* + */ 0x002b, /* $ */ 0x0024],
Digit5: [/* 5 */ 0x0035, /* % */ 0x0025, /* ½ */ 0x00bd],
Digit6: [/* 6 */ 0x0036, /* & */ 0x0026],
Digit7: [/* 7 */ 0x0037, /* / */ 0x002f, /* { */ 0x007b],
Digit8: [/* 8 */ 0x0038, /* ( */ 0x0028, /* [ */ 0x005b],
Digit9: [/* 9 */ 0x0039, /* ) */ 0x0029, /* ] */ 0x005d],
Digit0: [/* 0 */ 0x0030, /* = */ 0x003d, /* } */ 0x007d],
Minus: [/* * */ 0x002a, /* ? */ 0x003f, /* \ */ 0x005c],
Equal: [/* - */ 0x002d, /* _ */ 0x005f, /* | */ 0x007c],
KeyQ: [/* q */ 0x0071, /* Q */ 0x0051, /* @ */ 0x0040],
KeyW: [/* w */ 0x0077, /* W */ 0x0057],
KeyE: [/* e */ 0x0065, /* E */ 0x0045, /* € */ 0x20ac],
KeyR: [/* r */ 0x0072, /* R */ 0x0052],
KeyT: [/* t */ 0x0074, /* T */ 0x0054, /* ₺ */ 0x20ba],
KeyY: [/* y */ 0x0079, /* Y */ 0x0059],
KeyU: [/* u */ 0x0075, /* U */ 0x0055],
KeyI: [/* ı */ 0x0131, /* I */ 0x0049, /* i */ 0x0069, /* İ */ 0x0130],
KeyO: [/* o */ 0x006f, /* O */ 0x004f],
KeyP: [/* p */ 0x0070, /* P */ 0x0050],
BracketLeft: [/* ğ */ 0x011f, /* Ğ */ 0x011e, /* DEAD DIAERESIS */ 0x0308],
BracketRight: [/* ü */ 0x00fc, /* Ü */ 0x00dc, /* DEAD TILDE */ 0x0303],
Backslash: [/* , */ 0x002c, /* ; */ 0x003b, /* DEAD GRAVE ACCENT */ 0x0300],
KeyA: [/* a */ 0x0061, /* A */ 0x0041, /* æ */ 0x00e6, /* Æ */ 0x00c6],
KeyS: [/* s */ 0x0073, /* S */ 0x0053, /* ß */ 0x00df],
KeyD: [/* d */ 0x0064, /* D */ 0x0044],
KeyF: [/* f */ 0x0066, /* F */ 0x0046],
KeyG: [/* g */ 0x0067, /* G */ 0x0047],
KeyH: [/* h */ 0x0068, /* H */ 0x0048],
KeyJ: [/* j */ 0x006a, /* J */ 0x004a],
KeyK: [/* k */ 0x006b, /* K */ 0x004b],
KeyL: [/* l */ 0x006c, /* L */ 0x004c],
Semicolon: [/* ş */ 0x015f, /* Ş */ 0x015e, /* DEAD ACUTE ACCENT */ 0x0301],
Quote: [/* i */ 0x0069, /* İ */ 0x0130],
IntlBackslash: [/* < */ 0x003c, /* > */ 0x003e, /* | */ 0x007c],
KeyZ: [/* z */ 0x007a, /* Z */ 0x005a],
KeyX: [/* x */ 0x0078, /* X */ 0x0058],
KeyC: [/* c */ 0x0063, /* C */ 0x0043],
KeyV: [/* v */ 0x0076, /* V */ 0x0056],
KeyB: [/* b */ 0x0062, /* B */ 0x0042],
KeyN: [/* n */ 0x006e, /* N */ 0x004e],
KeyM: [/* m */ 0x006d, /* M */ 0x004d],
Comma: [/* ö */ 0x00f6, /* Ö */ 0x00d6],
Period: [/* ç */ 0x00e7, /* Ç */ 0x00c7],
Slash: [/* . */ 0x002e, /* : */ 0x003a],
Space: [/* SPACE */ 0x0020],
};
2 changes: 2 additions & 0 deletions packages/keybr-keyboard/lib/language.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ export class Language implements EnumItem {
static readonly RU = new Language("ru", "cyrillic", "ltr");
static readonly SL = new Language("sl", "latin", "ltr");
static readonly SV = new Language("sv", "latin", "ltr");
static readonly TR = new Language("tr", "latin", "ltr");
static readonly UK = new Language("uk", "cyrillic", "ltr");

static readonly ALL = new Enum<Language>(
Expand All @@ -38,6 +39,7 @@ export class Language implements EnumItem {
Language.RU,
Language.SL,
Language.SV,
Language.TR,
Language.UK,
);

Expand Down
32 changes: 32 additions & 0 deletions packages/keybr-keyboard/lib/layout.ts
Original file line number Diff line number Diff line change
Expand Up @@ -590,6 +590,36 @@ export class Layout implements XEnumItem {
Geometry.MATRIX,
),
);
static readonly TR_TR_Q = new Layout(
/* id= */ "tr-tr-q",
/* xid= */ 0x89,
/* name= */ "{TR} Q",
/* family= */ "qwerty",
/* language= */ Language.TR,
/* emulate= */ false,
/* geometries= */ new Enum(
Geometry.STANDARD_102,
Geometry.STANDARD_102_FULL,
Geometry.STANDARD_101,
Geometry.STANDARD_101_FULL,
Geometry.MATRIX,
),
);
static readonly TR_TR_F = new Layout(
/* id= */ "tr-tr-f",
/* xid= */ 0x8a,
/* name= */ "{TR} F",
/* family= */ "tr-tr-f",
/* language= */ Language.TR,
/* emulate= */ false,
/* geometries= */ new Enum(
Geometry.STANDARD_102,
Geometry.STANDARD_102_FULL,
Geometry.STANDARD_101,
Geometry.STANDARD_101_FULL,
Geometry.MATRIX,
),
);

static readonly ALL = new XEnum<Layout>(
Layout.EN_US,
Expand Down Expand Up @@ -632,6 +662,8 @@ export class Layout implements XEnumItem {
Layout.SV_SE,
Layout.UK_UA,
Layout.RU_RU,
Layout.TR_TR_Q,
Layout.TR_TR_F,
);

static findLayout(localeId: string): Layout | null {
Expand Down
4 changes: 4 additions & 0 deletions packages/keybr-keyboard/lib/load.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ import {
LAYOUT_RU_RU_WIN,
LAYOUT_SL_SI_WIN,
LAYOUT_SV_SE_WIN,
LAYOUT_TR_TR_F_WIN,
LAYOUT_TR_TR_Q_WIN,
LAYOUT_UK_UA_WIN,
} from "./data/layout.ts";
import { Geometry } from "./geometry.ts";
Expand Down Expand Up @@ -99,6 +101,8 @@ const layoutDict = new Map<Layout, CodePointDict>([
[Layout.RU_RU, LAYOUT_RU_RU_WIN],
[Layout.SL_SI, LAYOUT_SL_SI_WIN],
[Layout.SV_SE, LAYOUT_SV_SE_WIN],
[Layout.TR_TR_F, LAYOUT_TR_TR_F_WIN],
[Layout.TR_TR_Q, LAYOUT_TR_TR_Q_WIN],
[Layout.UK_UA, LAYOUT_UK_UA_WIN],
]);

Expand Down
Loading

0 comments on commit c27a557

Please sign in to comment.