9个版本 (4个重大更改)
0.5.0 | 2024年3月1日 |
---|---|
0.4.0 | 2023年12月5日 |
0.3.0 | 2023年7月23日 |
0.2.1 | 2023年6月26日 |
0.1.3 | 2022年12月26日 |
#421 in 游戏开发
每月42次下载
44KB
179 行
bevy_easy_localize
使用.csv文件简单本地化你的游戏。
特性
- 从
.csv
文件加载 - 从资源文件夹加载翻译文件
- 自动更新文本组件
- 热重载
- 轻量级
即将推出的特性
- 多语言字体
- 更灵活和可定制的
.csv
文件加载
如何使用
当前的.csv文件必须按此顺序排列
关键词 | 注释 | Language_0 | Language_1 | ... |
---|---|---|---|---|
word | comment | translation0 | translation1 | ... |
在你的项目中
use bevy::prelude::*;
use bevy_easy_localize::Localize;
pub fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugins(bevy_easy_localize::LocalizePlugin)
//Insert the resource from an asset path
.insert_resource(Localize::from_asset_path("translations.csv"))
.add_systems(Startup, translate)
.run();
}
fn translate(
keyboard:Res<ButtonInput<KeyCode>>,
mut localize:ResMut<Localize>,
){
//Easily set the language
localize.set_language("German");
if keyboard.just_pressed(KeyCode::Space){
//Use the get() method to get a translated word for the specified keyword
println!("{}",localize.get("start_game"));
}
}
使用LocalizeText
组件
commands.spawn((
TextBundle::from_section(
"default value",
TextStyle {
font: asset_server.load("font.ttf"),
font_size: 100.0,
color: Color::WHITE,
},
),
//add this component to automatically translate text
LocalizeText::from_section("my_keyword")
));
示例
Bevy兼容性
bevy | bevy_easy_localize |
---|---|
0.13 | 0.5 |
0.12 | 0.4 |
0.11 | 0.3 |
0.10 | 0.2 |
0.9 | 0.1 |
关于
我为了我的个人项目制作了这个crate。显然的替代品是bevy_fluent
,但我的目标只是翻译一些文本,我不需要它提供的所有花哨的功能。我肯定会更新这个crate,如果你想添加一个特性,请提交一个pull request。
依赖项
~39–79MB
~1.5M SLoC