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

37 lines
1.3 KiB
Dart

/// Dialect tags from JMdict
///
/// See https://www.edrdg.org/jmwsgi/edhelp.py#kw_dial
enum JMdictDialect {
brazilian(id: 'bra', description: 'Brazilian'),
hokkaido(id: 'hob', description: 'Hokkaido-ben'),
kansai(id: 'ksb', description: 'Kansai-ben'),
kantou(id: 'ktb', description: 'Kantou-ben'),
kyoto(id: 'kyb', description: 'Kyoto-ben'),
kyushu(id: 'kyu', description: 'Kyuushuu-ben'),
nagano(id: 'nab', description: 'Nagano-ben'),
osaka(id: 'osb', description: 'Osaka-ben'),
ryukyu(id: 'rkb', description: 'Ryuukyuu-ben'),
tokyo(id: 'std', description: 'Tokyo-ben (std)'),
tohoku(id: 'thb', description: 'Touhoku-ben'),
tosa(id: 'tsb', description: 'Tosa-ben'),
tsugaru(id: 'tsug', description: 'Tsugaru-ben');
final String id;
final String description;
const JMdictDialect({required this.id, required this.description});
static JMdictDialect fromId(String id) => JMdictDialect.values.firstWhere(
(e) => e.id == id,
orElse: () => throw Exception('Unknown id: $id'),
);
Map<String, Object?> toJson() => {'id': id, 'description': description};
static JMdictDialect fromJson(Map<String, Object?> json) =>
JMdictDialect.values.firstWhere(
(e) => e.id == json['id'],
orElse: () => throw Exception('Unknown id: ${json['id']}'),
);
}