Skip to content
Open
8 changes: 7 additions & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@

set -e

project_dir="$(realpath "${BASH_SOURCE%/*}")"
project_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)

# Create empty build directory to prevent npm EEXIST error with build.sh
mkdir -p "${project_dir}/build"

# Use SQLite for tests to avoid MySQL dependency
export DATABASE_CLIENT=sqlite

rm -fr "${project_dir}/node_modules"
npm --prefix "${project_dir}" install
Expand Down
20 changes: 14 additions & 6 deletions packages/keybr-color/lib/convert-xyz.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,12 +102,20 @@ test("rgb / oklch", () => {
h: 0.08120522299896633,
alpha: 0.5,
});
like(oklchToRgb(new OklchColor(0.6279553639214313, 0.25768330380536064, 0.08120522299896633, 0.5)), {
r: 0.9999999999999997,
g: 4.304625232653958e-15,
b: 0,
alpha: 0.5,
});
const result = oklchToRgb(new OklchColor(0.6279553639214313, 0.25768330380536064, 0.08120522299896633, 0.5));
// Use approximate comparison for floating-point values
if (Math.abs(result.r - 0.9999999999999997) > 1e-14) {
throw new Error(`r value ${result.r} is not close enough to expected`);
}
if (Math.abs(result.g) > 1e-14) {
throw new Error(`g value ${result.g} is not close enough to zero`);
}
if (Math.abs(result.b) > 1e-14) {
throw new Error(`b value ${result.b} is not close enough to zero`);
}
if (Math.abs(result.alpha - 0.5) > 1e-14) {
throw new Error(`alpha value ${result.alpha} is not close enough to 0.5`);
}

like(rgbToOklch(new RgbColor(1, 1, 1, 0.5)), {
l: 1,
Expand Down
2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/af.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/ar.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/bg.json

Large diffs are not rendered by default.

3,380 changes: 3,379 additions & 1 deletion packages/keybr-intl/lib/messages/bn.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/ca.json

Large diffs are not rendered by default.

3,539 changes: 3,538 additions & 1 deletion packages/keybr-intl/lib/messages/cs.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/da.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/de.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/el.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/en.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/eo.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/es.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/et.json

Large diffs are not rendered by default.

3,514 changes: 3,513 additions & 1 deletion packages/keybr-intl/lib/messages/fa.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/fi.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/fo.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/fr.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/ga.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/he.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/hr.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/hu.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/id.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/is.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/it.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/ja.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/ko.json

Large diffs are not rendered by default.

3,510 changes: 3,509 additions & 1 deletion packages/keybr-intl/lib/messages/lt.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/mn.json

Large diffs are not rendered by default.

3,514 changes: 3,513 additions & 1 deletion packages/keybr-intl/lib/messages/nb.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/ne.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/nl.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/pl.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/pt-br.json

Large diffs are not rendered by default.

3,506 changes: 3,505 additions & 1 deletion packages/keybr-intl/lib/messages/pt-pt.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/ro.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/ru.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/sk.json

Large diffs are not rendered by default.

3,467 changes: 3,466 additions & 1 deletion packages/keybr-intl/lib/messages/sl.json

Large diffs are not rendered by default.

3,464 changes: 3,463 additions & 1 deletion packages/keybr-intl/lib/messages/sq.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/sv.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/th.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/tr.json

Large diffs are not rendered by default.

3,573 changes: 3,572 additions & 1 deletion packages/keybr-intl/lib/messages/uk.json

Large diffs are not rendered by default.

3,514 changes: 3,513 additions & 1 deletion packages/keybr-intl/lib/messages/vi.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/zh-hans.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/zh-hant.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/keybr-intl/lib/messages/zh-tw.json

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions packages/keybr-intl/translations/af.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@
"settings.keyboardPointers.description": "Merk ’n sleutel wat volgende gedruk moet word. Gebruik hierdie opsie om vinnig die posisie van ’n sleutel te vind as jy nie die sleutelborduitleg goed ken nie.",
"settings.lessonLength.description": "Pas die aantal woorde in die lesteks aan. Om lesse langer te maak, kan jou leer verbeter.",
"settings.naturalWords.description": "Gebruik soveel moontlik woorde uit die woordeboek, en indien daar nie baie sulke woorde beskikbaar is nie, gebruik dan rekenaargegenereerde pseudo-woorde. Natuurlike woorde kan makliker wees om te tik, terwyl pseudo-woorde ’n veel groter verskeidenheid letterkombinasies bied. As hierdie opsie geaktiveer is, sal jy aanvanklik meer pseudo-woorde sien wanneer die lys letters kort is. Maar sodra jy ’n paar meer letters ontsluit, is daar ’n goeie kans dat slegs woordeboekwoorde gebruik sal word.",
"settings.numbers.description": "Pas die hoeveelheid getalle wat by die lesingsteks gevoeg word aan. Gebruik hierdie opsie om te oefen om getalle te tik. Ons beveel aan om hierdie waarde slegs te verhoog as jy al die letters bo die teiken spoed het.",
"settings.punctuation.description": "Pas die hoeveelheid basiese leestekens aan wat by die lesse se teks gevoeg word. Gebruik hierdie opsie om die tik van leestekens te oefen. Ons beveel aan om hierdie waarde slegs te verhoog as al die letters bo die teikenspoed is.",
"settings.recoverKeys.description": "Wanneer jy op ’n nuwe sleutel fokus, is dit baie waarskynlik dat die spoed van vorige sleutels sal afneem. As hierdie opsie gedeaktiveer is, ontsluit jy ’n nuwe sleutel slegs deur die gefokusde sleutel bo die teikenspoed te verhoog. As hierdie opsie geaktiveer is, sal jy die gefokusde sleutel en al die vorige sleutels bo die teikenspoed moet verhoog. Dit sal dit moeiliker maak om nuwe sleutels te ontsluit, maar dit sal ook help om ou sleutels moeiliker te vergeet.",
"settings.repeatWords.description": "Herhaal elke woord ’n aantal kere. Tik ’n woord vir die eerste keer om jou spiergeheue te ontwikkel. Om dieselfde woord agtereenvolgens te tik, behoort makliker te wees.",
Expand All @@ -188,6 +189,7 @@
"t_Accuracy": "Akkuraatheid",
"t_Accuracy_threshold": "Akkuraatheidsdrempel",
"t_Add_capital_letters:": "Voeg hoofletters by:",
"t_Add_numbers:": "Voeg getalle by:",
"t_Add_punctuation_characters:": "Voeg leestekens by:",
"t_Add_words_to_lessons:": "Voeg woorde by lesse:",
"t_All_Time_Statistics": "Statistiek van die begin",
Expand Down
2 changes: 2 additions & 0 deletions packages/keybr-intl/translations/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@
"settings.keyboardPointers.description": "تمييز المفتاح الذي يجب الضغط عليه تاليًا. استخدم هذا الخيار للعثور على موضع المفتاح بسرعة إذا كنت لا تعرف تخطيط لوحة المفاتيح جيدًا.",
"settings.lessonLength.description": "ضبط عدد الكلمات في نص الدرس. يمكن أن يؤدي جعل الدروس أطول إلى تحسين تعلمك.",
"settings.naturalWords.description": "استخدم كلمات القاموس قدر الإمكان، وإذا لم يكن العديد من هذه الكلمات متاحًا، فاستخدم كلمات زائفة تم إنشاؤها بواسطة الحاسوب. قد يكون من الأسهل كتابة الكلمات الطبيعية. تقدم الكلمات الزائفة مجموعة أكبر بكثير من مجموعات الحروف. إذا تم تمكين هذا الخيار، فسترى المزيد من الكلمات الزائفة في البداية، عندما تكون قائمة الحروف قصيرة. ومع ذلك، عندما تفتح بضعة أحرف أخرى، هناك فرصة جيدة لاستخدام كلمات القاموس فقط.",
"settings.numbers.description": "قم بضبط كمية الأرقام المضافة إلى نص الدرس. استخدم هذا الخيار لممارسة كتابة الأرقام. نوصي بزيادة هذه القيمة فقط إذا كنت قد حققت جميع الحروف فوق سرعة الهدف.",
"settings.punctuation.description": "ضبط كمية رموز علامات الترقيم الأساسية المضافة إلى نص الدرس. استخدم هذا الخيار للتدرب على كتابة رموز علامات الترقيم. نوصي بزيادة هذه القيمة فقط إذا كان لديك جميع الأحرف أعلى من السرعة المستهدفة.",
"settings.recoverKeys.description": "عندما تركز على مفتاح جديد، فمن المحتمل جدًا أن تنخفض سرعة المفاتيح السابقة. إذا تم إلغاء تفعيل هذا الخيار، فيمكنك إلغاء قفل مفتاح جديد عن طريق رفع المفتاح المركّز فقط فوق السرعة المستهدفة. إذا تم تفعيل هذا الخيار، فسيتعين عليك رفع المفتاح المركز وجميع المفاتيح السابقة فوق السرعة المستهدفة. سيجعل هذا فتح المفاتيح الجديدة أكثر صعوبة. ولكن، فإن هذا سيجعل نسيان المفاتيح القديمة أكثر صعوبة.",
"settings.repeatWords.description": "تكرار كل كلمة عدة مرات. اكتب كلمة لأول مرة لتطوير ذاكرة العضلات لديك. وسيسهل عليك كتابة الكلمة ذاتها عند تكرار كتابتها.",
Expand All @@ -188,6 +189,7 @@
"t_Accuracy": "الدقة",
"t_Accuracy_threshold": "عتبة الدقة",
"t_Add_capital_letters:": "إضافة الأحرف الكبيرة:",
"t_Add_numbers:": "أضف الأرقام:",
"t_Add_punctuation_characters:": "إضافة رموز علامات الترقيم:",
"t_Add_words_to_lessons:": "إضافة كلمات إلى الدروس:",
"t_All_Time_Statistics": "إحصائيات كل الوقت",
Expand Down
2 changes: 2 additions & 0 deletions packages/keybr-intl/translations/bg.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@
"settings.keyboardPointers.description": "Маркирай клавиш, който трябва да бъде натиснат след това. Използвайте тази опция, за да намерите бързо позицията на клавиш, ако не познавате добре клавиатурната подредба.",
"settings.lessonLength.description": "Коригирайте броя на думите в текста на урока. Удължаването на уроците може да подобри ученето ви.",
"settings.naturalWords.description": "Използвайте думите от речника колкото е възможно повече и ако нямате много такива думи, тогава използвайте компютърно генерирани псевдодуми. Естествените думи може да са по-лесни за въвеждане. Псевдодумите предлагат много по-голямо разнообразие от буквени комбинации. Ако тази опция е активирана, ще видите повече псевдодуми в началото, когато списъкът с букви е кратък. Въпреки това, когато отключите още няколко букви, има голям шанс да се използват само думите от речника.",
"settings.numbers.description": "Регулирайте количеството на числата, добавени към текста на урока. Използвайте тази опция, за да практикувате въвеждането на числа. Препоръчваме да увеличите тази стойност само ако имате всички букви над целевата скорост.",
"settings.punctuation.description": "Регулирайте количеството основни препинателни знаци, добавени към текста на урока. Използвайте тази опция, за да практикувате въвеждането на препинателните знаци. Препоръчваме да увеличите тази стойност само ако имате всички букви над целевата скорост.",
"settings.recoverKeys.description": "Когато се фокусирате върху нов клавиш, е много вероятно скоростта на предишните клавиши да намалее. Ако тази опция е деактивирана, вие отключвате нов клавиш, като повдигнете само фокусирания клавиш над целевата скорост. Ако тази опция е активирана, ще трябва да вдигнете фокусирания клавиш и всички предишни клавиши над целевата скорост. Това ще затрудни отключването на нови клавиши. Това обаче ще направи забравянето на старите клавиши по-трудно.",
"settings.repeatWords.description": "Повторете всяка дума няколко пъти. Напишете думата за първи път, за да развиете своята мускулна памет. Последващите изписвания на една и съща дума би трябвало да са по-лесни.",
Expand All @@ -188,6 +189,7 @@
"t_Accuracy": "Прецизност",
"t_Accuracy_threshold": "Праг на точност",
"t_Add_capital_letters:": "Добави главни букви:",
"t_Add_numbers:": "Добавете числа:",
"t_Add_punctuation_characters:": "Добавяне на препинателни знаци:",
"t_Add_words_to_lessons:": "Добави думи към уроците:",
"t_All_Time_Statistics": "Статистика за всички времена",
Expand Down
2 changes: 2 additions & 0 deletions packages/keybr-intl/translations/bn.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@
"settings.keyboardPointers.description": "পরবর্তী কীটি হাইলাইট করুন যা টিপতে হবে। যদি আপনি কীবোর্ড লেআউট ভালোভাবে না জানেন তবে একটি কী এর অবস্থান দ্রুত খুঁজে পেতে এই বিকল্পটি ব্যবহার করুন।",
"settings.lessonLength.description": "পাঠ্যটিতে শব্দের সংখ্যা সামঞ্জস্য করুন। পাঠগুলি দীর্ঘতর করা আপনার শিক্ষাকে উন্নত করতে পারে।",
"settings.naturalWords.description": "যতটা সম্ভব অভিধানের শব্দ ব্যবহার করুন, এবং যদি এমন অনেক শব্দ উপলব্ধ না হয়, তবে কম্পিউটার-জেনারেটেড ছদ্ম-শব্দ ব্যবহার করুন। প্রাকৃতিক শব্দ টাইপ করা সহজ হতে পারে। ছদ্ম-শব্দগুলি অক্ষর সংমিশ্রণের অনেক বেশি বৈচিত্র্য সরবরাহ করে। যদি এই বিকল্পটি সক্ষম করা হয়, তবে শুরুতে, যখন অক্ষরের তালিকা ছোট থাকে, তখন আপনি আরও ছদ্ম-শব্দ দেখতে পাবেন। তবে, আপনি আরও কয়েকটি অক্ষর আনলক করলে, শুধুমাত্র অভিধানের শব্দ ব্যবহার করার একটি ভালো সম্ভাবনা রয়েছে।",
"settings.numbers.description": "পাঠ্য টেক্সটে যোগ করা সংখ্যার পরিমাণ সামঞ্জস্য করুন। সংখ্যা টাইপ করার জন্য অনুশীলন করার জন্য এই বিকল্পটি ব্যবহার করুন। আমরা সুপারিশ করি যে আপনি এই মানটি শুধুমাত্র তখন বাড়ান যখন আপনার লক্ষ্য গতির উপরে সমস্ত অক্ষর থাকে।",
"settings.punctuation.description": "পাঠ্যটিতে যোগ করা মৌলিক বিরামচিহ্নগুলির পরিমাণ সামঞ্জস্য করুন। বিরামচিহ্ন টাইপ করার অনুশীলন করতে এই বিকল্পটি ব্যবহার করুন। আমরা এই মান শুধুমাত্র তখনই বাড়ানোর পরামর্শ দিই যখন আপনার সমস্ত অক্ষর লক্ষ্য গতির উপরে থাকে।",
"settings.recoverKeys.description": "যখন আপনি একটি নতুন কী-তে মনোযোগ দেন, তখন পূর্ববর্তী কীগুলির গতি কমে যাওয়ার সম্ভাবনা খুব বেশি। যদি এই বিকল্পটি অক্ষম করা হয়, তবে আপনি শুধুমাত্র ফোকাস করা কী-কে লক্ষ্য গতির উপরে উঠিয়ে একটি নতুন কী আনলক করেন। যদি এই বিকল্পটি সক্ষম করা হয়, তবে আপনাকে ফোকাস করা কী এবং পূর্ববর্তী সমস্ত কী-গুলিকে লক্ষ্য গতির উপরে তুলতে হবে। এটি নতুন কী আনলক করাকে কঠিন করে তুলবে। তবে, এটি পুরানো কীগুলি ভুলে যাওয়াও কঠিন করে তুলবে।",
"settings.repeatWords.description": "প্রতিটি শব্দ একাধিকবার পুনরাবৃত্তি করুন। আপনার পেশী স্মৃতি তৈরি করতে প্রথমবার একটি শব্দ টাইপ করুন। একই শব্দ পরপর টাইপ করা সহজ হওয়া উচিত।",
Expand All @@ -188,6 +189,7 @@
"t_Accuracy": "নির্ভুলতা",
"t_Accuracy_threshold": "নির্ভুলতা থ্রেশহোল্ড",
"t_Add_capital_letters:": "বড় হাতের অক্ষর যোগ করুন:",
"t_Add_numbers:": "সংখ্যা যোগ করুন:",
"t_Add_punctuation_characters:": "বিরামচিহ্ন যোগ করুন:",
"t_Add_words_to_lessons:": "পাঠ্যগুলিতে শব্দ যোগ করুন:",
"t_All_Time_Statistics": "সর্বকালের পরিসংখ্যান",
Expand Down
4 changes: 3 additions & 1 deletion packages/keybr-intl/translations/ca.json
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@
"settings.forgiveErrors.description": "Si s’activa el camp del text perdonarà alguns errors, automàticament arreglant-los. Això ho farà per errors com ara escriure un caràcter equivocat o saltar-se un caràcter.",
"settings.lessonLength.description": "Ajusta el nombre de paraules en el text de la lliçó. Fer lliçons més llargues pot millorar el teu aprenentatge.",
"settings.naturalWords.description": "Feu servir les paraules del diccionari tant com sigui possible i, si no hi ha gaires paraules disponibles, feu servir pseudoparaules generades per ordinador. Les paraules naturals poden ser més fàcils d’escriure. Les pseudoparaules ofereixen una varietat molt més gran de combinacions de lletres. Si aquesta opció està habilitada, veureu més pseudoparaules al principi, quan la llista de lletres sigui curta. Tanmateix, a mesura que desbloquegeu algunes lletres més, hi ha una bona probabilitat que només s’utilitzin les paraules del diccionari.",
"settings.numbers.description": "Ajusta la quantitat de números afegits al text de la lliçó. Utilitza aquesta opció per practicar l’escriptura de números. Recomanem augmentar aquest valor només si tens totes les lletres per sobre de la velocitat objectiu.",
"settings.recoverKeys.description": "Quan us enfoqueu en una tecla nova, és molt probable que la velocitat de les tecles anteriors disminueixi. Si aquesta opció està desactivada, desbloquegeu una tecla nova elevant només la tecla enfocada per sobre de la velocitat objectiu. Si aquesta opció està habilitada, haureu d’elevar la tecla enfocada i totes les tecles anteriors per sobre de la velocitat objectiu. Això farà que desbloquejar les tecles noves sigui més difícil. Tanmateix, també farà que sigui més difícil oblidar les tecles antigues.",
"settings.spaceSkipsWords.description": "Si s’activa, prémer la tecla d’espai enmig d’una paraula saltarà els caràcters restants d’una paraula i posarà el cursor davant de la següent.",
"settings.stopCursorOnError.description": "Si s’activa, el cursor deixarà d’avançar fins que es premi la tecla de la posició actual. Si es desactiva, tots els errors s’acumularan al camp d’escriptura i s’hauran d’eliminar individualment amb la tecla d’esborrar.",
Expand All @@ -162,6 +163,7 @@
"t_Accuracy": "Precisió",
"t_Accuracy_threshold": "Llindar de precisió",
"t_Add_capital_letters:": "Afegir majúscules:",
"t_Add_numbers:": "Afegir números:",
"t_Add_punctuation_characters:": "Afegeix caràcters de puntuació:",
"t_Add_words_to_lessons:": "Afegeix paraules a lliçons:",
"t_All_Time_Statistics": "Estadístiques totals",
Expand Down Expand Up @@ -309,4 +311,4 @@
"t_ws_Bullet_whitespace": "Punt",
"t_ws_No_whitespace": "Cap",
"weekDayNames": "Dll|Dm|Dm|Dj|Dv|Ds|Dg"
}
}
Loading