From 6c77b7bc64b269f6a529649d76b4c48b69d0ad84 Mon Sep 17 00:00:00 2001 From: sir-indy <53864146+sir-indy@users.noreply.github.com> Date: Wed, 20 Apr 2022 22:01:54 +0100 Subject: [PATCH] Fuzzyw translation (#3) * Update metadata.json * Update ChangeLog * Update fuzzyw.app.js * Update de_DE.json * Update de_DE.json --- apps/fuzzyw/ChangeLog | 1 + apps/fuzzyw/fuzzyw.app.js | 59 ++++++++++++++++++++++++--------------- apps/fuzzyw/metadata.json | 5 ++-- lang/de_DE.json | 31 ++++++++++++++++++-- 4 files changed, 68 insertions(+), 28 deletions(-) diff --git a/apps/fuzzyw/ChangeLog b/apps/fuzzyw/ChangeLog index 7b83706bf..63a0d60f0 100644 --- a/apps/fuzzyw/ChangeLog +++ b/apps/fuzzyw/ChangeLog @@ -1 +1,2 @@ 0.01: First release +0.02: Move translations to locale module diff --git a/apps/fuzzyw/fuzzyw.app.js b/apps/fuzzyw/fuzzyw.app.js index 07b5c4068..debcb3c4d 100644 --- a/apps/fuzzyw/fuzzyw.app.js +++ b/apps/fuzzyw/fuzzyw.app.js @@ -1,15 +1,37 @@ // adapted from https://github.com/hallettj/Fuzzy-Text-International/ -const fuzzy_strings = require("Storage").readJSON("fuzzy_strings.json"); -const SETTINGS_FILE = "fuzzyw.settings.json"; -let settings = require("Storage").readJSON(SETTINGS_FILE,1)|| {'language': 'System', 'alignment':'Centre'}; - -if (settings.language == 'System') { - settings.language = require('locale').name; -} - -let fuzzy_string = fuzzy_strings[settings.language]; +let fuzzy_string = { + "hours":[ + /*LANG*/"twelve", + /*LANG*/"one", + /*LANG*/"two", + /*LANG*/"three", + /*LANG*/"four", + /*LANG*/"five", + /*LANG*/"six", + /*LANG*/"seven", + /*LANG*/"eight", + /*LANG*/"nine", + /*LANG*/"ten", + /*LANG*/"eleven" + ], + "minutes":[ + /*LANG*/"*$1 o'clock", + /*LANG*/"five past *$1", + /*LANG*/"ten past *$1", + /*LANG*/"quarter past *$1", + /*LANG*/"twenty past *$1", + /*LANG*/"twenty five past *$1", + /*LANG*/"half past *$1", + /*LANG*/"twenty five to *$2", + /*LANG*/"twenty to *$2", + /*LANG*/"quarter to *$2", + /*LANG*/"ten to *$2", + /*LANG*/"five to *$2" + ] +}; +let text_scale = 3.5; let timeout = 2.5*60; let drawTimeout; @@ -24,24 +46,15 @@ function queueDraw(seconds) { const h = g.getHeight(); const w = g.getWidth(); -let align_mode = 0; -let align_pos = w/2; -if (settings.alignment =='Left') { - align_mode = -1; - align_pos = 0; -} else if (settings.alignment == 'Right') { - align_mode = 1; - align_pos = w; -} function getTimeString(date) { let segment = Math.round((date.getMinutes()*60 + date.getSeconds() + 1)/300); let hour = date.getHours() + Math.floor(segment/12); f_string = fuzzy_string.minutes[segment % 12]; if (f_string.includes('$1')) { - f_string = f_string.replace('$1', fuzzy_string.hours[(hour) % 24]); + f_string = f_string.replace('$1', fuzzy_string.hours[(hour) % 12]); } else { - f_string = f_string.replace('$2', fuzzy_string.hours[(hour + 1) % 24]); + f_string = f_string.replace('$2', fuzzy_string.hours[(hour + 1) % 12]); } return f_string; } @@ -49,11 +62,11 @@ function getTimeString(date) { function draw() { let time_string = getTimeString(new Date()).replace('*', ''); // print(time_string); - g.setFont('Vector', (h-24*2)/fuzzy_string.text_scale); - g.setFontAlign(align_mode, 0); + g.setFont('Vector', (h-24*2)/text_scale); + g.setFontAlign(0, 0); g.clearRect(0, 24, w, h-24); g.setColor(g.theme.fg); - g.drawString(g.wrapString(time_string, w).join("\n"), align_pos, h/2); + g.drawString(g.wrapString(time_string, w).join("\n"), w/2, h/2); queueDraw(timeout); } diff --git a/apps/fuzzyw/metadata.json b/apps/fuzzyw/metadata.json index ebd20e49f..a5edf4962 100644 --- a/apps/fuzzyw/metadata.json +++ b/apps/fuzzyw/metadata.json @@ -2,7 +2,7 @@ "id":"fuzzyw", "name":"Fuzzy Text Clock", "shortName": "Fuzzy Text", - "version": "0.01", + "version": "0.02", "description": "An imprecise clock for when you're not in a rush", "readme": "README.md", "icon":"fuzzyw.png", @@ -14,7 +14,6 @@ "storage": [ {"name":"fuzzyw.app.js","url":"fuzzyw.app.js"}, {"name":"fuzzyw.settings.js","url":"fuzzyw.settings.js"}, - {"name":"fuzzyw.img","url":"fuzzyw.icon.js","evaluate":true}, - {"name":"fuzzy_strings.json","url":"fuzzy_strings.json"} + {"name":"fuzzyw.img","url":"fuzzyw.icon.js","evaluate":true} ] } diff --git a/lang/de_DE.json b/lang/de_DE.json index 8c893e6ad..e0deef7fb 100644 --- a/lang/de_DE.json +++ b/lang/de_DE.json @@ -164,10 +164,37 @@ "Music": "Musik", "color": "Farbe", "off": "aus", - "Theme": "Thema" + "Theme": "Thema", + "one": "eins", + "two": "zwei", + "three": "drei", + "four": "vier", + "five": "fünf", + "six": "sechs", + "seven": "sieben", + "eight": "acht", + "nine": "neun", + "ten": "zehn", + "eleven": "elf", + "twelve": "zwölf" }, "alarm": { "//": "App-specific overrides", "rpt": "Wdh." + }, + "fuzzyw": { + "//": "App-specific overrides", + "*$1 o'clock": "*$1 uhr", + "five past *$1": "fünf nach *$1", + "ten past *$1": "zehn nach *$1", + "quarter past *$1": "viertel nach *$1", + "twenty past *$1": "zwanzig nach *$1", + "twenty five past *$1": "fünf for halb *$2", + "half past *$1": "halb *$2", + "twenty five to *$2": "fünf nach halb *$2", + "twenty to *$2": "zwanzig vor *$2", + "quarter to *$2": "viertel vor *$2", + "ten to *$2": "zehn vor *$2", + "five to *$2": "fünf vor *$2" } -} \ No newline at end of file +}