Skip to content

Commit f4e1f27

Browse files
committed
Include Chinese translation. Thanks to @landian004 :)
1 parent dd411b4 commit f4e1f27

File tree

6 files changed

+439
-3
lines changed

6 files changed

+439
-3
lines changed

src/lang.rs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,24 @@ static BUNDLE_FR: Lazy<FluentBundle<FluentResource, intl_memoizer::concurrent::I
5050
bundle
5151
});
5252

53+
static BUNDLE_CN: Lazy<FluentBundle<FluentResource, intl_memoizer::concurrent::IntlLangMemoizer>> = Lazy::new(|| {
54+
let file = std::fs::File::open(TRANSLATIONS_DIRECTORY.to_owned() + "cn/ocp.ftl").unwrap();
55+
let mut reader = std::io::BufReader::new(file);
56+
let mut source = String::new();
57+
reader.read_to_string(&mut source).expect("Failed to read CN translation file");
58+
let res = FluentResource::try_new(source).expect("Could not parse the FTL file.");
59+
let mut bundle = FluentBundle::new_concurrent(vec![langid!("fr")]);
60+
bundle.add_resource(res).expect("Failed to add FTL resources to the bundle.");
61+
bundle
62+
});
63+
5364
pub fn tr(lang: &Language, key: &str) -> String {
5465
let bundle = match lang {
5566
Language::Portuguese => &BUNDLE_PTBR,
5667
Language::English => &BUNDLE_ENUS,
5768
Language::Spanish => &BUNDLE_ES,
5869
Language::French => &BUNDLE_FR,
70+
Language::Chinese => &BUNDLE_CN,
5971
};
6072
let msg = bundle.get_message(key).expect(&("Missing translation key ".to_owned() + key));
6173
let mut errors = vec![];
@@ -65,12 +77,12 @@ pub fn tr(lang: &Language, key: &str) -> String {
6577

6678
#[derive(Debug, Serialize, Deserialize, Clone, Copy, PartialEq, Eq)]
6779
pub enum Language {
68-
English, Portuguese, Spanish, French
80+
English, Portuguese, Spanish, French, Chinese
6981
}
7082

7183
impl Language {
72-
pub const ALL: [Language; 4] = [
73-
Language::English, Language::Portuguese, Language::Spanish, Language::French
84+
pub const ALL: [Language; 5] = [
85+
Language::English, Language::Portuguese, Language::Spanish, Language::French, Language::Chinese
7486
];
7587
}
7688

@@ -81,6 +93,7 @@ impl DisplayTranslated for Language {
8193
Language::Portuguese => "portuguese",
8294
Language::Spanish => "spanish",
8395
Language::French => "french",
96+
Language::Chinese => "chinese",
8497
}
8598
}
8699
}

0 commit comments

Comments
 (0)