1 个不稳定版本
0.2.0 | 2024年1月7日 |
---|
#4 in #rst
用于 cdragon
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