Skip to content

Commit 473bf02

Browse files
committed
feat: reverse layout emulation
fixes #39
1 parent 4b133cd commit 473bf02

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+315
-98
lines changed

docs/translations_report.md

+22-22

packages/keybr-intl/lib/messages/ar.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/cs.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/da.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/de.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/el.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/en.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/es.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/et.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/fa.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/fr.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/he.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/hu.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/it.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/ja.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/ne.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/nl.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/pl.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/pt-br.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/ru.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/sv.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/tr.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/uk.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/lib/messages/zh-hans.json

+1-1
Large diffs are not rendered by default.

packages/keybr-intl/translations/cs.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@
8181
"highScores.column.score.label": "Skóre",
8282
"highScores.column.speed.label": "Rychlost psaní",
8383
"highScores.column.user.label": "Uživatel",
84-
"keyboard.emulate.description": "Emulace klávesnice ignoruje rozložení klávesnice nakonfigurované v systému a umožňuje procvičovat vybranou klávesnici bez ohledu na to, jak je systém nakonfigurován. Pohodlnější je ponechat možnost emulace zapnutou.",
85-
"keyboard.emulate.label": "Emulovat rozložení",
84+
"keyboard.emulation.forward.description": "Emulace klávesnice ignoruje rozložení klávesnice nakonfigurované v systému a umožňuje procvičovat vybranou klávesnici bez ohledu na to, jak je systém nakonfigurován. Pohodlnější je ponechat možnost emulace zapnutou.",
85+
"keyboard.emulation.forward.label": "Emulovat rozložení",
8686
"keyboard.geometry.label": "Geometrie:",
8787
"keyboard.language.label": "Jazyk:",
8888
"keyboard.layout.label": "Rozložení:",

packages/keybr-intl/translations/da.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
"help.section6": "<h2>Effektiviteten af denne applikation</h2><p>Vi valgte et par eksempelprofiler for at vise dig, hvordan folk gør fremskridt med at lære berøringstastning, når de bruger denne applikation. Det er ægte, anonymiserede brugerprofiler. Forhåbentlig vil de inspirere dig til at blive ved med at lære!</p>",
8080
"highScores.column.speed.label": "Skrivehastighed",
8181
"highScores.column.user.label": "Bruger",
82-
"keyboard.emulate.label": "Efterligne layout",
82+
"keyboard.emulation.forward.label": "Efterligne layout",
8383
"keyboard.geometry.label": "Geometri:",
8484
"keyboard.language.label": "Sprog:",
8585
"layouts.stats.bottomRowKeys.description": "Procentdel af taster, der er indtastet på Shift-rækken, jo færre jo bedre.",

packages/keybr-intl/translations/de.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@
8080
"highScores.column.score.label": "Punktestand",
8181
"highScores.column.speed.label": "Geschwindigkeit",
8282
"highScores.column.user.label": "Benutzer",
83-
"keyboard.emulate.description": "Die Tastaturemulation ignoriert das in Ihrem System konfigurierte Tastaturlayout und ermöglicht es Ihnen, die ausgewählte Tastatur zu üben, unabhängig davon, wie Ihr System konfiguriert ist. Es ist praktischer, die Emulationsoption aktiviert zu lassen.",
84-
"keyboard.emulate.label": "Layout emulieren",
83+
"keyboard.emulation.forward.description": "Die Tastaturemulation ignoriert das in Ihrem System konfigurierte Tastaturlayout und ermöglicht es Ihnen, die ausgewählte Tastatur zu üben, unabhängig davon, wie Ihr System konfiguriert ist. Es ist praktischer, die Emulationsoption aktiviert zu lassen.",
84+
"keyboard.emulation.forward.label": "Layout emulieren",
8585
"keyboard.geometry.label": "Geometrie:",
8686
"keyboard.language.label": "Sprache:",
8787
"layouts.stats.bottomRowKeys.description": "Prozentualer Anteil der in der Umschaltzeile getippten Tasten, je weniger, desto besser.",

packages/keybr-intl/translations/el.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
"highScores.column.score.label": "Σκορ",
8282
"highScores.column.speed.label": "Ταχύτητα πληκτρολόγησης",
8383
"highScores.column.user.label": "Χρήστης",
84-
"keyboard.emulate.label": "Εξομοίωση διάταξης",
84+
"keyboard.emulation.forward.label": "Εξομοίωση διάταξης",
8585
"keyboard.geometry.label": "Γεωμετρία:",
8686
"keyboard.language.label": "Γλώσσα:",
8787
"keyboard.layout.label": "Διάταξη:",

packages/keybr-intl/translations/en.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,10 @@
8181
"highScores.column.score.label": "Score",
8282
"highScores.column.speed.label": "Typing Speed",
8383
"highScores.column.user.label": "User",
84-
"keyboard.emulate.description": "Keyboard emulation ignores the keyboard layout configured in your system and allows you to practice the selected keyboard regardless of how your system is configured. It is more convenient to keep the emulation option enabled.",
85-
"keyboard.emulate.label": "Emulate layout",
84+
"keyboard.emulation.forward.description": "Keyboard emulation ignores the keyboard layout configured in your system and allows you to practice the selected keyboard regardless of how your system is configured. It is more convenient to keep the emulation option enabled.",
85+
"keyboard.emulation.forward.label": "Emulate layout",
86+
"keyboard.emulation.reverse.description": "Use this option if you have a hardware layout switcher on your keyboard, and you see that incorect keys are highlighted on the virtual keyboard.",
87+
"keyboard.emulation.reverse.label": "Keyboard hardware emulates layout",
8688
"keyboard.geometry.label": "Geometry:",
8789
"keyboard.language.label": "Language:",
8890
"keyboard.layout.label": "Layout:",

packages/keybr-intl/translations/es.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
"highScores.column.score.label": "Puntuación",
8282
"highScores.column.speed.label": "Velocidad",
8383
"highScores.column.user.label": "Usuario",
84-
"keyboard.emulate.label": "Emular disposición",
84+
"keyboard.emulation.forward.label": "Emular disposición",
8585
"keyboard.geometry.label": "Geometría:",
8686
"keyboard.language.label": "Idioma:",
8787
"keyboard.layout.label": "Disposición:",

packages/keybr-intl/translations/et.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@
8181
"highScores.column.score.label": "Skoor",
8282
"highScores.column.speed.label": "Tippimiskiirus",
8383
"highScores.column.user.label": "Kasutaja",
84-
"keyboard.emulate.description": "Klaviatuuri emulatsioon ignoreerib teie süsteemis konfigureeritud klaviatuuri paigutust ja võimaldab teil kasutada valitud klaviatuuri, olenemata sellest, kuidas teie süsteem on konfigureeritud. Mugavam on hoida emulatsiooni valik sisse lülitatud.",
85-
"keyboard.emulate.label": "Paigutuse imiteerimine",
84+
"keyboard.emulation.forward.description": "Klaviatuuri emulatsioon ignoreerib teie süsteemis konfigureeritud klaviatuuri paigutust ja võimaldab teil kasutada valitud klaviatuuri, olenemata sellest, kuidas teie süsteem on konfigureeritud. Mugavam on hoida emulatsiooni valik sisse lülitatud.",
85+
"keyboard.emulation.forward.label": "Paigutuse imiteerimine",
8686
"keyboard.geometry.label": "Geomeetria:",
8787
"keyboard.language.label": "Keel:",
8888
"keyboard.layout.label": "Paigutus:",

packages/keybr-intl/translations/fa.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
"highScores.column.score.label": "امتیاز",
6363
"highScores.column.speed.label": "سرعت تایپ",
6464
"highScores.column.user.label": "کاربر",
65-
"keyboard.emulate.label": "شبیه‌ساری چیدمان",
65+
"keyboard.emulation.forward.label": "شبیه‌ساری چیدمان",
6666
"keyboard.geometry.label": "هندسه:",
6767
"keyboard.language.label": "زبان:",
6868
"keyboard.layout.label": "چیدمان:",

packages/keybr-intl/translations/fr.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
"highScores.column.score.label": "Note",
8181
"highScores.column.speed.label": "Vitesse",
8282
"highScores.column.user.label": "Utilisateur",
83-
"keyboard.emulate.label": "Émuler la disposition",
83+
"keyboard.emulation.forward.label": "Émuler la disposition",
8484
"keyboard.geometry.label": "Géométrie:",
8585
"keyboard.language.label": "Langue:",
8686
"keyboard.layout.label": "Disposition:",

packages/keybr-intl/translations/he.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
"highScores.column.score.label": "ציון",
8282
"highScores.column.speed.label": "מהירות הקלדה",
8383
"highScores.column.user.label": "מִשׁתַמֵשׁ",
84-
"keyboard.emulate.label": "חיקוי פריסה",
84+
"keyboard.emulation.forward.label": "חיקוי פריסה",
8585
"keyboard.geometry.label": "גֵאוֹמֶטרִיָה:",
8686
"keyboard.language.label": "שפה:",
8787
"keyboard.layout.label": "מַעֲרָך:",

packages/keybr-intl/translations/hu.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
"highScores.column.score.label": "Eredmény",
8282
"highScores.column.speed.label": "Gépelési sebesség",
8383
"highScores.column.user.label": "Felhasználó",
84-
"keyboard.emulate.label": "A kiosztás szimulálása",
84+
"keyboard.emulation.forward.label": "A kiosztás szimulálása",
8585
"keyboard.geometry.label": "Geometria:",
8686
"keyboard.language.label": "Nyelv:",
8787
"keyboard.layout.label": "Kiosztás:",

packages/keybr-intl/translations/it.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
"highScores.column.score.label": "Punteggio",
7474
"highScores.column.speed.label": "Velocità di battitura",
7575
"highScores.column.user.label": "Utente",
76-
"keyboard.emulate.label": "Emula layout",
76+
"keyboard.emulation.forward.label": "Emula layout",
7777
"keyboard.geometry.label": "Geometria:",
7878
"keyboard.language.label": "Lingua:",
7979
"layouts.stats.bottomRowKeys.description": "Percentuale di tasti digitati sulla riga Maiusc, un nomero basso è meglio.",

packages/keybr-intl/translations/ja.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
"highScores.column.score.label": "スコア",
7979
"highScores.column.speed.label": "タイピング速度",
8080
"highScores.column.user.label": "ユーザー",
81-
"keyboard.emulate.label": "配列をエミュレートする",
81+
"keyboard.emulation.forward.label": "配列をエミュレートする",
8282
"keyboard.geometry.label": "形状:",
8383
"keyboard.language.label": "言語:",
8484
"keyboard.layout.label": "配列:",

packages/keybr-intl/translations/ne.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
"highScores.column.score.label": "स्कोर",
8282
"highScores.column.speed.label": "टाइपिङ गति",
8383
"highScores.column.user.label": "प्रयोगकर्ता",
84-
"keyboard.emulate.label": "लेआउट अनुकरण गर्नुहोस्",
84+
"keyboard.emulation.forward.label": "लेआउट अनुकरण गर्नुहोस्",
8585
"keyboard.geometry.label": "ज्यामिति:",
8686
"keyboard.language.label": "भाषा:",
8787
"keyboard.layout.label": "लेआउट:",

packages/keybr-intl/translations/nl.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
"highScores.column.layout.label": "Indeling",
6565
"highScores.column.speed.label": "Typsnelheid",
6666
"highScores.column.user.label": "Gebruiker",
67-
"keyboard.emulate.label": "Indeling emuleren",
67+
"keyboard.emulation.forward.label": "Indeling emuleren",
6868
"keyboard.geometry.label": "Geometrie:",
6969
"keyboard.language.label": "Taal:",
7070
"keyboard.layout.label": "Indeling:",

packages/keybr-intl/translations/pl.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@
8181
"highScores.column.score.label": "Wynik",
8282
"highScores.column.speed.label": "Tempo",
8383
"highScores.column.user.label": "Użytkownik",
84-
"keyboard.emulate.description": "Emulacja klawiatury ignoruje układ klawiatury skonfigurowany w systemie i umożliwia ćwiczenie wybranej klawiatury niezależnie od konfiguracji systemu. Wygodniej jest mieć włączoną opcję emulacji.",
85-
"keyboard.emulate.label": "Emuluj układ",
84+
"keyboard.emulation.forward.description": "Emulacja klawiatury ignoruje układ klawiatury skonfigurowany w systemie i umożliwia ćwiczenie wybranej klawiatury niezależnie od konfiguracji systemu. Wygodniej jest mieć włączoną opcję emulacji.",
85+
"keyboard.emulation.forward.label": "Emuluj układ",
8686
"keyboard.geometry.label": "Geometria:",
8787
"keyboard.language.label": "Język:",
8888
"keyboard.layout.label": "Układ:",

packages/keybr-intl/translations/pt-br.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
"highScores.column.score.label": "Pontuação",
8181
"highScores.column.speed.label": "Velocidade de Digitação",
8282
"highScores.column.user.label": "Usuário",
83-
"keyboard.emulate.label": "Layout simulado",
83+
"keyboard.emulation.forward.label": "Layout simulado",
8484
"keyboard.geometry.label": "Geometria:",
8585
"keyboard.language.label": "Linguagem:",
8686
"layouts.stats.bottomRowKeys.description": "Porcentagem de teclas digitadas na linha do Shift. Quanto menos, melhor.",

packages/keybr-intl/translations/ru.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@
8181
"highScores.column.score.label": "Баллы",
8282
"highScores.column.speed.label": "Скорость",
8383
"highScores.column.user.label": "Пользователь",
84-
"keyboard.emulate.description": "Эмуляция клавиатуры игнорирует раскладку клавиатуры, настроенную в вашей системе, и позволяет вам практиковаться с выбранной клавиатурой независимо от того, как настроена ваша система. Удобнее оставлять эмуляцию включенной.",
85-
"keyboard.emulate.label": "Эмулировать раскладку",
84+
"keyboard.emulation.forward.description": "Эмуляция клавиатуры игнорирует раскладку клавиатуры, настроенную в вашей системе, и позволяет вам практиковаться с выбранной клавиатурой независимо от того, как настроена ваша система. Удобнее оставлять эмуляцию включенной.",
85+
"keyboard.emulation.forward.label": "Эмулировать раскладку",
8686
"keyboard.geometry.label": "Геометрия:",
8787
"keyboard.language.label": "Язык:",
8888
"keyboard.layout.label": "Раскладка:",

packages/keybr-intl/translations/sv.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
"highScores.column.score.label": "Poäng",
8181
"highScores.column.speed.label": "Skrivhastighet",
8282
"highScores.column.user.label": "Användare",
83-
"keyboard.emulate.label": "Emulera layout",
83+
"keyboard.emulation.forward.label": "Emulera layout",
8484
"keyboard.geometry.label": "Geometri:",
8585
"keyboard.language.label": "Språk:",
8686
"layouts.stats.bottomRowKeys.description": "Procent av tangenter på Shiftraden, ju färre desto bättre.",

packages/keybr-intl/translations/uk.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
"highScores.column.score.label": "Бали",
8282
"highScores.column.speed.label": "Швидкість",
8383
"highScores.column.user.label": "Користувач",
84-
"keyboard.emulate.label": "Емулювати розкладку",
84+
"keyboard.emulation.forward.label": "Емулювати розкладку",
8585
"keyboard.geometry.label": "Геометрія:",
8686
"keyboard.language.label": "Мова:",
8787
"keyboard.layout.label": "Розкладка:",

packages/keybr-intl/translations/zh-hans.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@
8080
"highScores.column.score.label": "分数",
8181
"highScores.column.speed.label": "输入速度",
8282
"highScores.column.user.label": "用户",
83-
"keyboard.emulate.description": "键盘模拟会忽略系统配置的键盘布局,无论系统配置如何,您都可以练习所选键盘。启用模拟选项会更方便。",
84-
"keyboard.emulate.label": "模拟布局",
83+
"keyboard.emulation.forward.description": "键盘模拟会忽略系统配置的键盘布局,无论系统配置如何,您都可以练习所选键盘。启用模拟选项会更方便。",
84+
"keyboard.emulation.forward.label": "模拟布局",
8585
"keyboard.geometry.label": "样式:",
8686
"keyboard.language.label": "语言:",
8787
"keyboard.layout.label": "布局:",

packages/keybr-keyboard/lib/settings.ts

+20-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {
22
booleanProp,
3+
enumProp,
34
itemProp,
45
type Settings,
56
xitemProp,
@@ -8,10 +9,28 @@ import { Geometry } from "./geometry.ts";
89
import { Language } from "./language.ts";
910
import { Layout } from "./layout.ts";
1011

12+
export enum Emulation {
13+
/**
14+
* No emulation.
15+
*/
16+
None = 10,
17+
/**
18+
* Assumes that the physical key locations are correct,
19+
* fixes the character codes.
20+
*/
21+
Forward = 1,
22+
/**
23+
* Assumes that the character codes are correct,
24+
* fixes the physical key locations.
25+
* It reverses the effect of layout emulation in hardware.
26+
*/
27+
Reverse = 2,
28+
}
29+
1130
export const keyboardProps = {
1231
layout: xitemProp("keyboard.layout", Layout.ALL, Layout.EN_US),
1332
geometry: itemProp("keyboard.geometry", Geometry.ALL, Geometry.ANSI_101),
14-
emulate: booleanProp("keyboard.emulate", true),
33+
emulation: enumProp("keyboard.emulation", Emulation, Emulation.Forward),
1534
colors: booleanProp("keyboard.colors", true),
1635
pointers: booleanProp("keyboard.pointers", true),
1736
} as const;

0 commit comments

Comments
 (0)