feat: add Korean translation - #405
Conversation
Adds translations/ko.json covering all 152 keys. The language selector already offered a "ko" option, but no translation file existed, so selecting Korean silently fell back to English. Also fixes the option label: it read 韓国語, which is the Japanese term for the Korean language. Every other option uses the language's own endonym, so this is now 한국어.
As stated in the Tooltip, this Dropdown is now used not only for Plugin Translation as was its intended use, but also for the Interface Translation. It also states, that not all Languages are available for the Interface. I will have a look if we Maybe add a Banner stating that the selected Language only has some Supported Plugins that are translated, and the Language is currently missing Support in openDeck.
Thanks for the Info, I completely overlooked this when I decided to use this Approach.
The \n is only for next line, so it can differ if needed in your Language.
Same as the First point, but since we don't use Translation engines but Rely on User Translated Strings, they are still open. |
They just mean that they've checked that there's the same number of translation keys. I'm sorry about the Korean label using Japanese text. I'm not sure how that happened or how I could have overlooked it, considering I can read a little bit of Korean myself (I'm a bit of a linguist). |
Summary
Adds
translations/ko.jsonwith all 152 keys translated into Korean.The language selector in
SettingsView.sveltealready offered akooption, but no matching translation file existed. Sincei18n.tsfalls back toFALLBACK_LOCALEwhen a locale is missing, selecting Korean silently displayed English with no indication that anything was wrong.Label fix
The
kooption was labelled韓国語. That is the Japanese word for the Korean language — most likely copied from thejaoption directly above it. Every other option uses the language's own endonym (Deutsch,Українська,中文), so this is now한국어.Translation notes
Two keys needed the surrounding markup to translate correctly, because the key names and the widgets they label are swapped:
instance_editor.strokelabels an<input type="color">bound tostroke_colour→ translated as "외곽선 색" (outline colour)instance_editor.outlinelabels an<input type="number">bound tostroke_size→ translated as "두께" (thickness)Translating these from the key names alone would have produced labels that do not match their controls.
Other choices worth noting:
parent_action_view.child/.childrenare concatenated as"{Multi Action} {child} {index}", so both are rendered as "하위 항목". Korean has no grammatical plural, so the two keys share a translation.settings.footer.1–.5are sentence fragments joined around two links. Korean word order differs from English, so the fragments were redistributed to read naturally while keeping the same link positions.Verification
en.json, no extras or omissions{{variable}}placeholders preserved and matched against the source\ncounts matchen.jsonRemaining untranslated locales
For context, the selector currently offers 10 languages but only 5 have translation files. After this PR,
es,fr,zh_CNandjastill fall back to English the same way Korean did.