Skip to content

Commit 8d0df50

Browse files
authored
Add Danish language and layout (#425)
* add danish language * add danish layout
1 parent 3608992 commit 8d0df50

File tree

10 files changed

+10094
-0
lines changed

10 files changed

+10094
-0
lines changed

packages/keybr-content-words/lib/data/words-da.json

+10,002
Large diffs are not rendered by default.

packages/keybr-content-words/lib/load.ts

+7
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@ export async function loadWordList(language: Language): Promise<WordList> {
2424
{ with: { type: "json" } }
2525
)
2626
).default;
27+
case Language.DA:
28+
return (
29+
await import(
30+
/* webpackChunkName: "words-da" */ "./data/words-da.json",
31+
{ with: { type: "json" } }
32+
)
33+
).default;
2734
case Language.DE:
2835
return (
2936
await import(
Binary file not shown.

packages/keybr-generators/lib/generate-layouts.ts

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ for (const [id, layout] of [
1515
["ar_sa_102", importCldr("cldr-keyboards-43.0/keyboards/windows/ar-t-k0-windows-102key.xml")],
1616
["be_by", importCldr("cldr-keyboards-43.0/keyboards/windows/be-t-k0-windows.xml")],
1717
["cs_cz", importCldr("cldr-keyboards-43.0/keyboards/windows/cs-t-k0-windows.xml")],
18+
["da_dk", importCldr("cldr-keyboards-43.0/keyboards/windows/da-t-k0-windows.xml")],
1819
["de_adnw_but_xcv", importKeymap("layouts/de_adnw_but_xcv.json")],
1920
["de_bone", importKeymap("layouts/de_bone.json")],
2021
["de_ch", importCldr("cldr-keyboards-43.0/keyboards/windows/de-CH-t-k0-windows.xml")],

packages/keybr-keyboard/lib/language.ts

+7
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ export class Language implements EnumItem {
2020
/* direction= */ "ltr",
2121
/* alphabet= */ "aábcčdďeéěfghiíjklmnňoóprřsštťuúůvxyýzž",
2222
);
23+
static readonly DA = new Language(
24+
/* id= */ "da",
25+
/* script= */ "latin",
26+
/* direction= */ "ltr",
27+
/* alphabet= */ "abcdefghijklmnopqrstuvwxyzæøå",
28+
);
2329
static readonly DE = new Language(
2430
/* id= */ "de",
2531
/* script= */ "latin",
@@ -157,6 +163,7 @@ export class Language implements EnumItem {
157163
Language.AR,
158164
Language.BE,
159165
Language.CS,
166+
Language.DA,
160167
Language.DE,
161168
Language.EL,
162169
Language.EN,

packages/keybr-keyboard/lib/layout.ts

+16
Original file line numberDiff line numberDiff line change
@@ -1109,6 +1109,21 @@ export class Layout implements XEnumItem {
11091109
/* emulate= */ true,
11101110
/* geometries= */ new Enum(Geometry.MATRIX),
11111111
);
1112+
static readonly DA_DK = new Layout(
1113+
/* id= */ "da-dk",
1114+
/* xid= */ 0xa7,
1115+
/* name= */ "{DK}",
1116+
/* family= */ "qwerty",
1117+
/* language= */ Language.DA,
1118+
/* emulate= */ false,
1119+
/* geometries= */ new Enum(
1120+
Geometry.ISO_102,
1121+
Geometry.ISO_102_FULL,
1122+
Geometry.ANSI_101,
1123+
Geometry.ANSI_101_FULL,
1124+
Geometry.MATRIX,
1125+
),
1126+
);
11121127

11131128
static readonly ALL = new XEnum<Layout>(
11141129
Layout.EN_US,
@@ -1140,6 +1155,7 @@ export class Layout implements XEnumItem {
11401155
Layout.EN_JP,
11411156
Layout.EL_GR,
11421157
Layout.CS_CZ,
1158+
Layout.DA_DK,
11431159
Layout.DE_DE,
11441160
Layout.DE_CH,
11451161
Layout.DE_NEO_2,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
// Generated file, do not edit.
2+
3+
import { type CharacterDict } from "../types.ts";
4+
5+
// prettier-ignore
6+
export const LAYOUT_DA_DK: CharacterDict = {
7+
Backquote: [/* VULGAR FRACTION ONE HALF */ 0x00bd, /* SECTION SIGN */ 0x00a7],
8+
Digit1: [/* DIGIT ONE */ 0x0031, /* EXCLAMATION MARK */ 0x0021],
9+
Digit2: [/* DIGIT TWO */ 0x0032, /* QUOTATION MARK */ 0x0022, /* COMMERCIAL AT */ 0x0040],
10+
Digit3: [/* DIGIT THREE */ 0x0033, /* NUMBER SIGN */ 0x0023, /* POUND SIGN */ 0x00a3],
11+
Digit4: [/* DIGIT FOUR */ 0x0034, /* CURRENCY SIGN */ 0x00a4, /* DOLLAR SIGN */ 0x0024],
12+
Digit5: [/* DIGIT FIVE */ 0x0035, /* PERCENT SIGN */ 0x0025, /* EURO SIGN */ 0x20ac],
13+
Digit6: [/* DIGIT SIX */ 0x0036, /* AMPERSAND */ 0x0026],
14+
Digit7: [/* DIGIT SEVEN */ 0x0037, /* SOLIDUS */ 0x002f, /* LEFT CURLY BRACKET */ 0x007b],
15+
Digit8: [/* DIGIT EIGHT */ 0x0038, /* LEFT PARENTHESIS */ 0x0028, /* LEFT SQUARE BRACKET */ 0x005b],
16+
Digit9: [/* DIGIT NINE */ 0x0039, /* RIGHT PARENTHESIS */ 0x0029, /* RIGHT SQUARE BRACKET */ 0x005d],
17+
Digit0: [/* DIGIT ZERO */ 0x0030, /* EQUALS SIGN */ 0x003d, /* RIGHT CURLY BRACKET */ 0x007d],
18+
Minus: [/* PLUS SIGN */ 0x002b, /* QUESTION MARK */ 0x003f],
19+
Equal: [{ dead: /* COMBINING ACUTE ACCENT */ 0x0301 }, { dead: /* COMBINING GRAVE ACCENT */ 0x0300 }, /* VERTICAL LINE */ 0x007c],
20+
KeyQ: [/* LATIN SMALL LETTER Q */ 0x0071, /* LATIN CAPITAL LETTER Q */ 0x0051],
21+
KeyW: [/* LATIN SMALL LETTER W */ 0x0077, /* LATIN CAPITAL LETTER W */ 0x0057],
22+
KeyE: [/* LATIN SMALL LETTER E */ 0x0065, /* LATIN CAPITAL LETTER E */ 0x0045, /* EURO SIGN */ 0x20ac],
23+
KeyR: [/* LATIN SMALL LETTER R */ 0x0072, /* LATIN CAPITAL LETTER R */ 0x0052],
24+
KeyT: [/* LATIN SMALL LETTER T */ 0x0074, /* LATIN CAPITAL LETTER T */ 0x0054],
25+
KeyY: [/* LATIN SMALL LETTER Y */ 0x0079, /* LATIN CAPITAL LETTER Y */ 0x0059],
26+
KeyU: [/* LATIN SMALL LETTER U */ 0x0075, /* LATIN CAPITAL LETTER U */ 0x0055],
27+
KeyI: [/* LATIN SMALL LETTER I */ 0x0069, /* LATIN CAPITAL LETTER I */ 0x0049],
28+
KeyO: [/* LATIN SMALL LETTER O */ 0x006f, /* LATIN CAPITAL LETTER O */ 0x004f],
29+
KeyP: [/* LATIN SMALL LETTER P */ 0x0070, /* LATIN CAPITAL LETTER P */ 0x0050],
30+
BracketLeft: [/* LATIN SMALL LETTER A WITH RING ABOVE */ 0x00e5, /* LATIN CAPITAL LETTER A WITH RING ABOVE */ 0x00c5],
31+
BracketRight: [{ dead: /* COMBINING DIAERESIS */ 0x0308 }, { dead: /* COMBINING CIRCUMFLEX ACCENT */ 0x0302 }, { dead: /* COMBINING TILDE */ 0x0303 }],
32+
Backslash: [/* APOSTROPHE */ 0x0027, /* ASTERISK */ 0x002a],
33+
KeyA: [/* LATIN SMALL LETTER A */ 0x0061, /* LATIN CAPITAL LETTER A */ 0x0041],
34+
KeyS: [/* LATIN SMALL LETTER S */ 0x0073, /* LATIN CAPITAL LETTER S */ 0x0053],
35+
KeyD: [/* LATIN SMALL LETTER D */ 0x0064, /* LATIN CAPITAL LETTER D */ 0x0044],
36+
KeyF: [/* LATIN SMALL LETTER F */ 0x0066, /* LATIN CAPITAL LETTER F */ 0x0046],
37+
KeyG: [/* LATIN SMALL LETTER G */ 0x0067, /* LATIN CAPITAL LETTER G */ 0x0047],
38+
KeyH: [/* LATIN SMALL LETTER H */ 0x0068, /* LATIN CAPITAL LETTER H */ 0x0048],
39+
KeyJ: [/* LATIN SMALL LETTER J */ 0x006a, /* LATIN CAPITAL LETTER J */ 0x004a],
40+
KeyK: [/* LATIN SMALL LETTER K */ 0x006b, /* LATIN CAPITAL LETTER K */ 0x004b],
41+
KeyL: [/* LATIN SMALL LETTER L */ 0x006c, /* LATIN CAPITAL LETTER L */ 0x004c],
42+
Semicolon: [/* LATIN SMALL LETTER AE */ 0x00e6, /* LATIN CAPITAL LETTER AE */ 0x00c6],
43+
Quote: [/* LATIN SMALL LETTER O WITH STROKE */ 0x00f8, /* LATIN CAPITAL LETTER O WITH STROKE */ 0x00d8],
44+
IntlBackslash: [/* LESS-THAN SIGN */ 0x003c, /* GREATER-THAN SIGN */ 0x003e, /* REVERSE SOLIDUS */ 0x005c],
45+
KeyZ: [/* LATIN SMALL LETTER Z */ 0x007a, /* LATIN CAPITAL LETTER Z */ 0x005a],
46+
KeyX: [/* LATIN SMALL LETTER X */ 0x0078, /* LATIN CAPITAL LETTER X */ 0x0058],
47+
KeyC: [/* LATIN SMALL LETTER C */ 0x0063, /* LATIN CAPITAL LETTER C */ 0x0043],
48+
KeyV: [/* LATIN SMALL LETTER V */ 0x0076, /* LATIN CAPITAL LETTER V */ 0x0056],
49+
KeyB: [/* LATIN SMALL LETTER B */ 0x0062, /* LATIN CAPITAL LETTER B */ 0x0042],
50+
KeyN: [/* LATIN SMALL LETTER N */ 0x006e, /* LATIN CAPITAL LETTER N */ 0x004e],
51+
KeyM: [/* LATIN SMALL LETTER M */ 0x006d, /* LATIN CAPITAL LETTER M */ 0x004d, /* MICRO SIGN */ 0x00b5],
52+
Comma: [/* COMMA */ 0x002c, /* SEMICOLON */ 0x003b],
53+
Period: [/* FULL STOP */ 0x002e, /* COLON */ 0x003a],
54+
Slash: [/* HYPHEN-MINUS */ 0x002d, /* LOW LINE */ 0x005f],
55+
Space: [/* SPACE */ 0x0020],
56+
};

packages/keybr-keyboard/lib/load.ts

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { LAYOUT_AR_SA } from "./layout/ar_sa.ts";
1616
import { LAYOUT_AR_SA_102 } from "./layout/ar_sa_102.ts";
1717
import { LAYOUT_BE_BY } from "./layout/be_by.ts";
1818
import { LAYOUT_CS_CZ } from "./layout/cs_cz.ts";
19+
import { LAYOUT_DA_DK } from "./layout/da_dk.ts";
1920
import { LAYOUT_DE_ADNW_BUT_XCV } from "./layout/de_adnw_but_xcv.ts";
2021
import { LAYOUT_DE_BONE } from "./layout/de_bone.ts";
2122
import { LAYOUT_DE_CH } from "./layout/de_ch.ts";
@@ -97,6 +98,7 @@ const layouts = new Map<Layout, CharacterDict>([
9798
[Layout.AR_SA_102, LAYOUT_AR_SA_102],
9899
[Layout.BE_BY, LAYOUT_BE_BY],
99100
[Layout.CS_CZ, LAYOUT_CS_CZ],
101+
[Layout.DA_DK, LAYOUT_DA_DK],
100102
[Layout.DE_BONE, LAYOUT_DE_BONE],
101103
[Layout.DE_CH, LAYOUT_DE_CH],
102104
[Layout.DE_CMOS, LAYOUT_DE_CMOS],

packages/keybr-phonetic-model-loader/lib/assets.ts

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { Language } from "@keybr/keyboard";
22
import AR from "@keybr/phonetic-model/assets/model-ar.data";
33
import BE from "@keybr/phonetic-model/assets/model-be.data";
44
import CS from "@keybr/phonetic-model/assets/model-cs.data";
5+
import DA from "@keybr/phonetic-model/assets/model-da.data";
56
import DE from "@keybr/phonetic-model/assets/model-de.data";
67
import EL from "@keybr/phonetic-model/assets/model-el.data";
78
import EN from "@keybr/phonetic-model/assets/model-en.data";
@@ -33,6 +34,8 @@ export function modelAssetPath(language: Language): string {
3334
return BE;
3435
case Language.CS:
3536
return CS;
37+
case Language.DA:
38+
return DA;
3639
case Language.DE:
3740
return DE;
3841
case Language.EL:
Binary file not shown.

0 commit comments

Comments
 (0)