paiagram/
i18n.rs

1use egui_i18n::*;
2use serde::{Deserialize, Serialize};
3use strum_macros::EnumIter;
4
5/// Languages
6/// Sorted alphabetically
7#[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}