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:
parent
7070cd6bd2
commit
5479b973fc
1 changed files with 2559 additions and 230 deletions
|
|
@ -34,4 +34,21 @@ void main() {
|
|||
test("a radical's label is the dictionary's", () {
|
||||
expect(radicalLabel(85), 'radical:85');
|
||||
});
|
||||
|
||||
test('the forms a radical takes in each language: simplified Chinese its '
|
||||
"own, traditional Chinese and Korean without Japanese's own", () {
|
||||
final speech = radicals[148];
|
||||
final dragon = radicals[211];
|
||||
final food = radicals[183];
|
||||
expect(radicalFormsIn(speech, 'zh-Hans'), ['讠']);
|
||||
expect(radicalFormsIn(speech, 'zh-Hant'), isEmpty);
|
||||
expect(radicalFormsIn(dragon, 'ja'), ['竜']);
|
||||
expect(radicalFormsIn(dragon, 'zh'), ['龙']);
|
||||
expect(radicalFormsIn(dragon, 'ko'), isEmpty);
|
||||
// Simplified Chinese writes 食 as 饣 at a character's side, not 飠.
|
||||
expect(radicalFormsIn(food, 'zh-CN'), ['饣']);
|
||||
expect(radicalFormsIn(food, 'zh-TW'), ['飠']);
|
||||
expect(radicalsIn('zh-Hans')[148].variants, ['讠']);
|
||||
expect((hasRadicals('ko'), hasRadicals('el')), (true, false));
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue