/// 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 toJson() => {'id': id, 'description': description}; static JMdictDialect fromJson(Map json) => JMdictDialect.values.firstWhere( (e) => e.id == json['id'], orElse: () => throw Exception('Unknown id: ${json['id']}'), ); }