Files
jadb/lib/models/jmdict/jmdict_field.dart
2025-07-16 15:23:04 +02:00

120 lines
5.7 KiB
Dart

/// Domain / Field of expertise tags from JMdict
///
/// See https://www.edrdg.org/jmwsgi/edhelp.py#kw_fld
enum JMdictField {
agriculture(id: 'agric', description: 'agriculture'),
anatomy(id: 'anat', description: 'anatomy'),
archeology(id: 'archeol', description: 'archeology'),
architecture(id: 'archit', description: 'architecture'),
art(id: 'art', description: 'art, aesthetics'),
astronomy(id: 'astron', description: 'astronomy'),
audiovisual(id: 'audvid', description: 'audiovisual'),
aviation(id: 'aviat', description: 'aviation'),
baseball(id: 'baseb', description: 'baseball'),
biochemistry(id: 'biochem', description: 'biochemistry'),
biology(id: 'biol', description: 'biology'),
botany(id: 'bot', description: 'botany'),
boxing(id: 'boxing', description: 'boxing'),
buddhism(id: 'Buddh', description: 'Buddhism'),
business(id: 'bus', description: 'business'),
cardGames(id: 'cards', description: 'card games'),
chemistry(id: 'chem', description: 'chemistry'),
chineseMythology(id: 'chmyth', description: 'Chinese mythology'),
christianity(id: 'Christn', description: 'Christianity'),
civilEngineering(id: 'civeng', description: 'civil engineering'),
clothing(id: 'cloth', description: 'clothing'),
computing(id: 'comp', description: 'computing'),
crystallography(id: 'cryst', description: 'crystallography'),
dentistry(id: 'dent', description: 'dentistry'),
ecology(id: 'ecol', description: 'ecology'),
economics(id: 'econ', description: 'economics'),
electricEngineering(id: 'elec', description: 'electricity, elec. eng.'),
electronics(id: 'electr', description: 'electronics'),
embryology(id: 'embryo', description: 'embryology'),
engineering(id: 'engr', description: 'engineering'),
entomology(id: 'ent', description: 'entomology'),
figureSkating(id: 'figskt', description: 'figure skating'),
film(id: 'film', description: 'film'),
finance(id: 'finc', description: 'finance'),
fishing(id: 'fish', description: 'fishing'),
food(id: 'food', description: 'food, cooking'),
gardening(id: 'gardn', description: 'gardening, horticulture'),
genetics(id: 'genet', description: 'genetics'),
geography(id: 'geogr', description: 'geography'),
geology(id: 'geol', description: 'geology'),
geometry(id: 'geom', description: 'geometry'),
go(id: 'go', description: 'go (game)'),
golf(id: 'golf', description: 'golf'),
grammar(id: 'gramm', description: 'grammar'),
greekMythology(id: 'grmyth', description: 'Greek mythology'),
hanafuda(id: 'hanaf', description: 'hanafuda'),
horseRacing(id: 'horse', description: 'horse racing'),
internet(id: 'internet', description: 'Internet'),
japaneseMythology(id: 'jpmyth', description: 'Japanese mythology'),
kabuki(id: 'kabuki', description: 'kabuki'),
law(id: 'law', description: 'law'),
linguistics(id: 'ling', description: 'linguistics'),
logic(id: 'logic', description: 'logic'),
martialArts(id: 'MA', description: 'martial arts'),
mahjong(id: 'mahj', description: 'mahjong'),
manga(id: 'manga', description: 'manga'),
mathematics(id: 'math', description: 'mathematics'),
mechanicalEngineering(id: 'mech', description: 'mechanical engineering'),
medicine(id: 'med', description: 'medicine'),
meteorology(id: 'met', description: 'meteorology'),
military(id: 'mil', description: 'military'),
mineralogy(id: 'min', description: 'mineralogy'),
mining(id: 'mining', description: 'mining'),
motorsport(id: 'motor', description: 'motorsport'),
music(id: 'music', description: 'music'),
noh(id: 'noh', description: 'noh (theatre)'),
ornithology(id: 'ornith', description: 'ornithology'),
paleontology(id: 'paleo', description: 'paleontology'),
pathology(id: 'pathol', description: 'pathology'),
pharmacology(id: 'pharm', description: 'pharmacology'),
philosophy(id: 'phil', description: 'philosophy'),
photography(id: 'photo', description: 'photography'),
physics(id: 'physics', description: 'physics'),
physiology(id: 'physiol', description: 'physiology'),
politics(id: 'politics', description: 'politics'),
printing(id: 'print', description: 'printing (press)'),
professionalWrestling(id: 'prowres', description: 'professional wrestling'),
psychiatry(id: 'psy', description: 'psychiatry'),
psychoanalysis(id: 'psyanal', description: 'psychoanalysis'),
psychology(id: 'psych', description: 'psychology'),
railway(id: 'rail', description: 'railway'),
romanMythology(id: 'rommyth', description: 'Roman mythology'),
shinto(id: 'Shinto', description: 'Shinto'),
shogi(id: 'shogi', description: 'shogi (game)'),
skiing(id: 'ski', description: 'skiing'),
sports(id: 'sports', description: 'sports'),
statistics(id: 'stat', description: 'statistics'),
stockMarket(id: 'stockm', description: 'stock market'),
sumo(id: 'sumo', description: 'sumo (wrestling)'),
surgery(id: 'surg', description: 'surgery'),
telecommunications(id: 'telec', description: 'telecommunications'),
trademark(id: 'tradem', description: 'trademark'),
television(id: 'tv', description: 'television'),
veterinaryTerms(id: 'vet', description: 'veterinary terms'),
videoGames(id: 'vidg', description: 'video games'),
zoology(id: 'zool', description: 'zoology');
final String id;
final String description;
const JMdictField({required this.id, required this.description});
static JMdictField fromId(String id) => JMdictField.values.firstWhere(
(e) => e.id == id,
orElse: () => throw Exception('Unknown id: $id'),
);
Map<String, Object?> toJson() => {'id': id, 'description': description};
static JMdictField fromJson(Map<String, Object?> json) =>
JMdictField.values.firstWhere(
(e) => e.id == json['id'],
orElse: () => throw Exception('Unknown id: ${json['id']}'),
);
}