Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/xmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ on:
release:
types: [created]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
runs-on: windows-2025
Expand Down Expand Up @@ -41,6 +45,7 @@ jobs:
xmake b --yes --verbose inject
xmake b --yes --verbose shell


- name: Upload Artifacts
uses: actions/upload-artifact@v4.6.0
with:
Expand Down
78 changes: 78 additions & 0 deletions resources/locales/en-US.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{
"$metadata": {
"language": "en-US",
"name": "English (US)",
"direction": "ltr"
},
"settings.title": "Breeze Settings",
"settings.theme": "Theme",
"settings.animation": "Animation",
"settings.misc": "Miscellaneous",
"settings.debug_console": "Debug Console",
"settings.vsync": "VSync",
"settings.ignore_owner_draw": "Ignore Owner Draw Menus",
"settings.reverse_if_open_to_up": "Reverse When Opening Upward",
"settings.use_dwm_round_corners": "Try to Use Windows 11 Rounded Corners",
"settings.acrylic_background": "Acrylic Background Effect",
"settings.keyboard_hotkeys": "Keyboard Hotkeys",
"settings.show_settings_button": "Show Settings Button in Top Left",
"settings.priority_load_plugins": "Priority Load Plugins",
"menu.manage_breeze": "Manage Breeze Shell",
"menu.plugin_store": "Plugin Market / Update Shell",
"menu.breeze_settings": "Breeze Settings",
"menu.delete": "Delete",
"menu.new": "New",
"menu.folder": "Folder",
"menu.file": "File",
"menu.rename": "Rename",
"explorer.empty_recycle_bin": "Empty Recycle Bin",
"menu.set_priority": "Set as Priority Load",
"menu.cancel_priority": "Cancel Priority Load",
"sidebar.main_config": "Main Config",
"sidebar.update": "Update",
"sidebar.plugin_store": "Plugin Store",
"sidebar.plugin_config": "Plugin Config",
"sidebar.source": "Update Source",
"plugins.loading": "Loading...",
"plugins.updating": "Updating...",
"plugins.installing": "Installing...",
"plugins.installed": "Installed",
"plugins.not_installed": "Not Installed",
"plugins.installed_plugins": "Installed Plugins",
"plugins.priority_load": "Priority Load Plugins",
"plugins.install": "Install",
"plugins.update": "Update ({from} -> {to})",
"plugins.install_success": "Plugin installed successfully: {name}",
"plugins.install_failed": "Plugin install failed: {name}",
"plugins.update_downloaded": "New version downloaded, will take effect next time the file manager is restarted",
"plugins.update_failed": "Update failed: {error}",
"plugins.version": "Version: {version}",
"plugins.author": "Author: {author}",
"plugins.current_source": "Current source: {source}",
"plugins.store": "Plugin Store",
"plugins.config": "Plugin Config",
"update.title": "Update",
"update.current_version": "Current version: {version}",
"update.latest_version": "Latest version: {version}",
"update.changelog": "Changelog:",
"update.cannot_move_file": "Cannot move current file",
"error.config_parse_failed": "Config parse failed: {error}",
"status.config_changed": "Config changed: {path} {type}",
"theme.default": "Default",
"theme.compact": "Compact",
"theme.relaxed": "Relaxed",
"theme.rounded": "Rounded",
"theme.square": "Square",
"theme.custom": "Custom",
"animation.default": "Default",
"animation.fast": "Fast",
"animation.none": "None",
"source.switch": "Switch Source",
"source.switching": "Switching source...",
"source.switch_success": "Source switched successfully",
"common.loading": "Loading...",
"common.please_wait": "Please wait",
"common.load_failed": "Load failed",
"common.network_error": "Network error",
"common.latest": "(latest)"
}
78 changes: 78 additions & 0 deletions resources/locales/zh-CN.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{
"$metadata": {
"language": "zh-CN",
"name": "简体中文",
"direction": "ltr"
},
"settings.title": "Breeze 设置",
"settings.theme": "主题",
"settings.animation": "动画",
"settings.misc": "杂项",
"settings.debug_console": "调试控制台",
"settings.vsync": "垂直同步",
"settings.ignore_owner_draw": "忽略自绘菜单",
"settings.reverse_if_open_to_up": "向上展开时反向排列",
"settings.use_dwm_round_corners": "尝试使用 Windows 11 圆角",
"settings.acrylic_background": "亚克力背景效果",
"settings.keyboard_hotkeys": "键盘热键",
"settings.show_settings_button": "在左上角显示设置按钮",
"settings.priority_load_plugins": "优先加载插件",
"menu.manage_breeze": "管理 Breeze Shell",
"menu.plugin_store": "插件市场 / 更新本体",
"menu.breeze_settings": "Breeze 设置",
"menu.delete": "删除",
"menu.new": "新建",
"menu.folder": "文件夹",
"menu.file": "文件",
"menu.rename": "重命名",
"explorer.empty_recycle_bin": "清空回收站",
"menu.set_priority": "设为优先加载",
"menu.cancel_priority": "取消优先加载",
"sidebar.main_config": "主配置",
"sidebar.update": "更新",
"sidebar.plugin_store": "插件商店",
"sidebar.plugin_config": "插件配置",
"sidebar.source": "更新源",
"plugins.loading": "加载中...",
"plugins.updating": "更新中...",
"plugins.installing": "安装中...",
"plugins.installed": "已安装",
"plugins.not_installed": "未安装",
"plugins.installed_plugins": "已安装插件",
"plugins.priority_load": "优先加载插件",
"plugins.install": "安装",
"plugins.update": "更新 ({from} -> {to})",
"plugins.install_success": "插件安装成功: {name}",
"plugins.install_failed": "插件安装失败: {name}",
"plugins.update_downloaded": "新版本已下载,将于下次重启资源管理器生效",
"plugins.update_failed": "更新失败: {error}",
"plugins.version": "版本: {version}",
"plugins.author": "作者: {author}",
"plugins.current_source": "当前源: {source}",
"plugins.store": "插件市场",
"plugins.config": "插件配置",
"update.title": "更新",
"update.current_version": "当前版本: {version}",
"update.latest_version": "最新版本: {version}",
"update.changelog": "更新日志:",
"update.cannot_move_file": "无法移动当前文件",
"error.config_parse_failed": "配置文件解析失败: {error}",
"status.config_changed": "配置文件变更: {path} {type}",
"theme.default": "默认",
"theme.compact": "紧凑",
"theme.relaxed": "宽松",
"theme.rounded": "圆角",
"theme.square": "方角",
"theme.custom": "自定义",
"animation.default": "默认",
"animation.fast": "快速",
"animation.none": "无",
"source.switch": "换源",
"source.switching": "切换源中...",
"source.switch_success": "切换源成功",
"common.loading": "加载中...",
"common.please_wait": "请稍候",
"common.load_failed": "加载失败",
"common.network_error": "网络错误",
"common.latest": "(最新)"
}
9 changes: 9 additions & 0 deletions src/shell/config.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "rfl/json.hpp"

#include "utils.h"
#include "i18n_manager.h"
#include "windows.h"

namespace rfl {
Expand Down Expand Up @@ -102,6 +103,14 @@ void config::read_config() {
} else {
ShowWindow(GetConsoleWindow(), SW_HIDE);
}

// Initialize/update i18n manager with config language preference
auto& i18n = i18n_manager::instance();
if (config::current->language) {
i18n.set_language(*config::current->language);
} else {
i18n.reload();
}
}

std::filesystem::path config::data_directory() {
Expand Down
3 changes: 3 additions & 0 deletions src/shell/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,9 @@ struct config {
bool res_string_loader_use_hook = false;
bool avoid_resize_ui = false;
std::vector<std::string> plugin_load_order = {};

// Language preference override (uses system language if nullopt)
std::optional<std::string> language;

std::string $schema;
static std::unique_ptr<config> current;
Expand Down
Loading