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