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次下载

MIT/Apache

44KB
179

bevy_easy_localize

Crates.io

使用.csv文件简单本地化你的游戏。

特性

  • .csv文件加载
  • 从资源文件夹加载翻译文件
  • 自动更新文本组件
  • 热重载
  • 轻量级

即将推出的特性

  • 多语言字体
  • 更灵活和可定制的.csv文件加载

如何使用

当前的.csv文件必须按此顺序排列

关键词 注释 Language_0 Language_1 ...
word comment translation0 translation1 ...

image

在你的项目中

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")
));

示例

  • simple – 从文件中读取以初始化资源。
  • asset – 使用资源句柄初始化资源。
  • text – 使用LocalizeText组件更新文本。

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