feat(dictionary): characters of Chinese, Korean and Greek, written by hand; pinyin typed

Parity with Japanese's kanji and kana:

- The characters' tab is named by its language (Hanzi, Hangul & Hanja,
  Alphabet), its groups too: HSK levels and the characters in common use
  (Hong Kong's grades for traditional ones); Hangul and the Hanja taught
  in schools; Greek's letters. Radicals for Chinese and Korean in their
  own forms (讠 for 言 in simplified Chinese), none for Greek.
- A character's readings are named as its language names them: On and
  Kun, Pinyin, Eum and Hun (음, 훈); a letter means its sound and name.
- How characters are written comes by language: Chinese from Make Me a
  Hanzi (its medians in KanjiVG's square, Arphic Public License, a data
  file beside the app, never in cards), the Hangul letters drawn by the
  curator; a Korean word is written letter by letter (닭: ㄷ ㅏ ㄺ). Words
  of alphabets (German, Greek) aren't written by hand.
- A Chinese word's pinyin is typed in a session, tone numbers turning
  into marks (ni3 → nǐ); KRDict's levels (초급, 중급, 고급) tag Korean
  words; a Korean word's pronunciation shows in brackets ([가치]).
- Smaller: Look up in the composer keeps a noun's article; the Watch
  filter names its level list; hints and placeholders by language.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-14 12:35:17 +02:00
commit 5479b973fc
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -753,6 +753,25 @@
"dictionaryCharacterSearchHint": "A kanji or kana, a reading in kana or romaji, or a meaning",
"dictionaryTabWords": "Words",
"dictionaryTabCharacters": "Kanji & kana",
"dictionaryTabCharactersChinese": "Hanzi",
"@dictionaryTabCharactersChinese": {"description": "The tab of Chinese characters in a dictionary of Chinese."},
"dictionaryTabCharactersKorean": "Hangul & Hanja",
"@dictionaryTabCharactersKorean": {"description": "The tab of Korean letters and Hanja in a dictionary of Korean."},
"dictionaryTabCharactersGreek": "Alphabet",
"@dictionaryTabCharactersGreek": {"description": "The tab of Greek's letters in a dictionary of Greek."},
"dictionaryCharacterSearchHintChinese": "A character, its pinyin, or a meaning",
"dictionaryCharacterSearchHintKorean": "A Hanja or Hangul letter, its sound, or a meaning",
"dictionaryCharacterSearchHintGreek": "A letter or its name",
"dictionaryGroupHsk": "HSK levels",
"dictionaryGroupCommonCharacters": "In common use",
"dictionaryGroupHongKongGrades": "Hong Kong school grades",
"dictionaryGroupHangul": "Hangul",
"dictionaryGroupEducationHanja": "Hanja taught in schools",
"dictionaryGroupGreek": "Letters",
"dictionaryLabelHangul": "Hangul letters",
"dictionaryLabelEducationHanja": "1,800 basic Hanja",
"dictionaryLabelGreek": "Greek alphabet",
"dictionaryLabelCommonCharacters": "3,500 common characters",
"dictionaryLabelHiragana": "Hiragana",
"dictionaryLabelKatakana": "Katakana",
"dictionaryGrade": "Grade {grade}",
@ -792,9 +811,9 @@
"kanjiPlayAgain": "Play again",
"kanjiNoStrokes": "There's no stroke order for this character.",
"kanjiComponents": "Components",
"studySettingsCharacters": "Kanji & kana",
"studySettingsCharacters": "Characters",
"studySettingsWriteByHand": "Write by hand",
"studySettingsWriteByHandDescription": "Kanji, kana and words are written stroke by stroke and checked as you go, on a schedule of their own. Words written aren't quizzed or typed.",
"studySettingsWriteByHandDescription": "Kanji, hanzi, Hanja, kana, Hangul and words written with them are written stroke by stroke and checked as you go, on a schedule of their own (a Korean word letter by letter). Words written aren't quizzed or typed.",
"writingHint": "Hint",
"writingShow": "Show it",
"writingMistakes": "{count, plural, =0{No mistakes} =1{1 mistake} other{{count} mistakes}}",
@ -943,6 +962,21 @@
"characterKunReadingsHint": "Japanese, in hiragana, okurigana after a dot: た.べる",
"characterOn": "On",
"characterKun": "Kun",
"characterPinyin": "Pinyin",
"characterEum": "Eum",
"characterHun": "Hun",
"characterPinyinReadings": "Pinyin",
"characterPinyinReadingsHint": "With tone marks or numbers: shuǐ, shui3",
"characterEumReadings": "Sounds (eum)",
"characterEumReadingsHint": "Sino-Korean, in Hangul: 수",
"characterHunReadings": "Native meanings (hun)",
"characterHunReadingsHint": "Korean words for its meaning, in Hangul: 물",
"characterPrimaryMeaningHintLetter": "Primary meaning, or a letter's sound",
"composerPlaceholderCharacterChinese": "Add a character",
"composerPlaceholderCharacterKorean": "Add a Hanja or Hangul letter",
"composerPlaceholderCharacterGreek": "Add a letter",
"vocabularyReadingHintPinyin": "Pinyin, with tone marks or numbers",
"vocabularyReadingHintPronunciation": "Pronunciation, where it differs from the spelling",
"matchingCategories": "Categories",
"matchingCategoriesHint": "The drop-zone cards learners drag items onto. Each category needs at least one item, so a card can't have more categories than items.",
"matchingCategory": "Category {number}",
@ -1085,8 +1119,9 @@
"studySettingsQuizMc": "Quiz with multiple choice",
"studySettingsQuizMcDescription": "Show vocabulary cards as a multiple-choice question, with wrong answers drawn from other vocabulary in this set.",
"studySettingsTypeReading": "Type the reading",
"studySettingsTypeReadingDescription": "Words with kanji ask for their reading, typed in kana; romaji turn into kana as you type.",
"studySettingsTypeReadingDescription": "Words with kanji ask for their reading, typed in kana (romaji turn into kana as you type); Chinese words for their pinyin (tone numbers turn into marks: ni3 becomes nǐ).",
"studyTypedHint": "The reading, in kana or romaji",
"studyTypedHintPinyin": "The pinyin, with tone numbers or marks",
"studyTypedRight": "Right",
"studyTypedWrong": "You typed {answer}",
"@studyTypedWrong": {"placeholders": {"answer": {"type": "String"}}},
@ -1094,7 +1129,7 @@
"studyAspectReading": "Reading",
"studyAspectExpression": "Expression",
"studyAspectMixed": "Mixed",
"studySettingsAspectDescription": "What to recall — the meaning, the kana reading, or the expression itself (shown the meaning). Mixed varies meaning and reading per card; cards that can’t be quizzed stay a normal flip.",
"studySettingsAspectDescription": "What to recall — the meaning, the reading (kana, pinyin), or the expression itself (shown the meaning). Mixed varies meaning and reading per card; cards that can’t be quizzed stay a normal flip.",
"studySortOldestFirst": "Oldest first",
"studySortRandom": "Random",
"studySortNewestFirst": "Newest first",
@ -2146,7 +2181,8 @@
"watchFilterFresh": "New words",
"watchFilterHeld": "Words in the studyset",
"watchFilterAll": "All words",
"watchFilterNoLevel": "No JLPT level",
"watchFilterNoLevel": "No {levels} level",
"@watchFilterNoLevel": {"description": "Words a level list (JLPT, HSK, KRDict) leaves out.", "placeholders": {"levels": {"type": "String"}}},
"watchFilterClass": "Word class",
"watchFilterEmpty": "No words of this video match the filter.",
"watchClassNoun": "Nouns",