1 个不稳定版本

0.2.0 2024年1月7日

#4 in #rst


用于 cdragon

MIT/Apache

33KB
535

CDragon库用于RST文件

用于处理Riot在《英雄联盟》中使用的RST翻译文件的库。


lib.rs:

支持Riot翻译文件(RST)

使用 [Rst] 打开RST文件(.stringtable)并访问其内容。

RST文件将哈希过的翻译键映射到翻译字符串。当创建实例时,解析文件头,读取数据,但字符串仅在访问时读取和解析(作为UTF-8)。

示例


let rst = Rst::open("main_en_us.stringtable").expect("failed to open or read data");
// Get an entry by its key string
assert_eq!(rst.get("item_1001_name"), Some("Boots".into()));
// Or by its key hash
assert_eq!(rst.get(0x3376eae1da), Some("Boots".into()));

// Entries can be iterated
// Use a mapper to filter on (known) keys
let hmapper = RstHashMapper::from_path("hashes.rst.txt").expect("failed to load hashes");
for (hash, value) in rst.iter() {
    if let Some(key) = hmapper.get(hash) {
        println!("{key} = {value}");
    }
}

较老的RST版本

哈希位大小

较老的RST文件使用的位数更多。RST文件使用的位数可以通过 [Rst::hash_bits()] 获取。默认 [RstHashMapper] 适用于最新版本的RST。

加密条目

较老的RST版本可能有加密条目,其数据不是有效的UTF-8。使用 [Rst::get_raw()] 访问加密和非加密条目。

依赖项

~1.5–2.6MB
~53K SLoC