1use egui_i18n::*;
2use serde::{Deserialize, Serialize};
3use strum_macros::EnumIter;
4
5#[derive(Serialize, Deserialize, Clone, Copy, Debug, EnumIter, PartialEq, Eq)]
8pub enum Language {
9 EnCA,
10 ZhHans,
11 JaJP,
12}
13
14impl Language {
15 pub fn name(self) -> &'static str {
16 match self {
17 Self::EnCA => "English (Canada)",
18 Self::ZhHans => "中文(简体)",
19 Self::JaJP => "Japanese",
20 }
21 }
22 pub fn identifier(self) -> &'static str {
23 match self {
24 Self::EnCA => "en-CA",
25 Self::ZhHans => "zh-Hans",
26 Self::JaJP => "ja-JP",
27 }
28 }
29}
30
31pub fn init() {
32 load_translations_from_text("en-CA", include_str!("../assets/locales/en-CA.ftl")).unwrap();
33 load_translations_from_text("zh-Hans", include_str!("../assets/locales/zh-Hans.ftl")).unwrap();
34 set_language("en-CA");
35 set_fallback("en-CA");
36}