鸿蒙PC应用Hawkpass 多语言支持说明
Hawkpass on HarmonyOS 现已支持多语言界面,提供中文(简体)和英文两种语言选择。应用,用户可以通过菜单轻松切换语言。
·
鸿蒙PC应用Hawkpass 多语言支持说明
📖 概述
Hawkpass on HarmonyOS 现已支持多语言界面,提供中文(简体)和英文两种语言选择。应用默认使用中文,用户可以通过菜单轻松切换语言。
🌍 支持的语言
| 语言 | 代码 | 状态 |
|---|---|---|
| 简体中文 | zh-CN |
✅ 默认语言 |
| English | en-US |
✅ 支持 |
🚀 功能特性
1. 默认中文界面
应用启动时自动使用中文界面:
- ✅ 菜单栏全中文
- ✅ 窗口标题中文
- ✅ 对话框中文
- ✅ 所有提示信息中文
2. 实时语言切换
用户可以通过菜单实时切换语言,无需重启应用:
菜单栏 → 语言 → 选择语言
切换后立即生效:
- ✅ 菜单立即更新
- ✅ 窗口标题立即更新
- ✅ 新打开的对话框使用新语言
3. 智能语言检测
应用会检测系统语言,但始终默认使用中文:
系统语言: zh-CN → 应用语言: zh-CN (中文)
系统语言: en-US → 应用语言: zh-CN (中文,默认)
系统语言: ja-JP → 应用语言: zh-CN (中文,默认)
📋 多语言内容
主菜单
中文界面
Hawkpass
├─ 关于 Hawkpass
└─ 退出
编辑
├─ 撤销
├─ 重做
├─ 剪切
├─ 复制
├─ 粘贴
└─ 全选
视图
├─ 重新加载
├─ 强制重新加载
├─ 切换开发者工具
├─ 放大/缩小/实际大小
└─ 切换全屏
窗口
├─ 最小化
├─ 缩放
├─ 最大化
└─ 关闭窗口
语言 ✨ (新增)
├─ 简体中文 (选中)
└─ English
帮助
├─ 项目仓库
├─ 原版 Hawkpass
├─ 报告问题
└─ Diceware 密码指南
英文界面
Hawkpass
├─ About Hawkpass
└─ Quit
Edit
├─ Undo
├─ Redo
├─ Cut
├─ Copy
├─ Paste
└─ Select All
View
├─ Reload
├─ Force Reload
├─ Toggle Developer Tools
├─ Zoom In/Out/Reset
└─ Toggle Full Screen
Window
├─ Minimize
├─ Zoom
├─ Maximize
└─ Close Window
Language ✨ (New)
├─ 简体中文
└─ English (Selected)
Help
├─ Repository
├─ Original Hawkpass
├─ Report Issue
└─ Diceware Guide
窗口标题
| 语言 | 标题 |
|---|---|
| 中文 | Hawkpass - 密码生成器 |
| 英文 | Hawkpass - Password Generator |
关于对话框
中文版本
🔐 Hawkpass
密码生成器 on HarmonyOS
版本 1.2.0
基于 Diceware 的安全密码生成
英文版本
🔐 Hawkpass
Password Generator on HarmonyOS
Version 1.2.0
Secure password generation based on Diceware
🛠️ 使用方法
切换到英文
- 点击菜单栏 “语言”
- 选择 “English”
- 界面立即切换为英文
切换回中文
- Click menu “Language”
- Select “简体中文”
- Interface switches to Chinese immediately
查看当前语言
菜单栏 → 语言,当前语言会有 ✓ 标记
🔧 技术实现
文件结构
app/
├── main.js # 主进程(集成多语言)
├── i18n.js # 多语言配置文件 ✨ 新增
├── preload.js
├── package.json
└── dist/
多语言配置文件 (i18n.js)
const i18n = {
'zh-CN': {
menu: {
app: 'Hawkpass',
about: '关于 Hawkpass',
quit: '退出',
// ... 更多翻译
},
about: {
title: '关于 Hawkpass',
description: '密码生成器 on HarmonyOS',
version: '版本',
based: '基于 Diceware 的安全密码生成',
},
window: {
title: 'Hawkpass - 密码生成器',
},
},
'en-US': {
// English translations
},
};
API 函数
// 获取翻译
t('menu.about') // → "关于 Hawkpass" (中文)
t('menu.about') // → "About Hawkpass" (英文)
// 设置语言
setLocale('zh-CN') // 切换到中文
setLocale('en-US') // 切换到英文
// 获取当前语言
getLocale() // → "zh-CN"
// 获取支持的语言列表
getSupportedLocales() // → ["zh-CN", "en-US"]
主进程集成
// 导入多语言模块
const { t, setLocale, getLocale } = require('./i18n');
// 初始化语言(默认中文)
function initLanguage() {
setLocale('zh-CN'); // 默认中文
}
// 创建窗口(使用多语言)
function createWindow() {
const win = new BrowserWindow({
title: t('window.title'), // 多语言窗口标题
// ...
});
}
// 创建菜单(使用多语言)
function createMenu() {
const template = [
{
label: t('menu.app'),
submenu: [
{ label: t('menu.about'), /* ... */ },
{ label: t('menu.quit'), /* ... */ },
],
},
// ... 更多菜单
];
}
语言切换机制
{
label: t('menu.language'),
submenu: [
{
label: t('menu.chineseSimplified'),
type: 'radio',
checked: getLocale() === 'zh-CN',
click: () => {
setLocale('zh-CN');
createMenu(); // 重新创建菜单
// 更新所有窗口标题
BrowserWindow.getAllWindows().forEach(win => {
win.setTitle(t('window.title'));
});
},
},
{
label: t('menu.english'),
type: 'radio',
checked: getLocale() === 'en-US',
click: () => {
setLocale('en-US');
createMenu(); // 重新创建菜单
BrowserWindow.getAllWindows().forEach(win => {
win.setTitle(t('window.title'));
});
},
},
],
}
📝 添加新语言
如果需要添加更多语言(如日语、韩语等),按以下步骤操作:
1. 在 i18n.js 中添加语言配置
const i18n = {
'zh-CN': { /* 中文 */ },
'en-US': { /* 英文 */ },
'ja-JP': { // ✨ 新增日语
menu: {
app: 'Hawkpass',
about: 'Hawkpass について',
quit: '終了',
// ... 所有翻译
},
about: {
title: 'Hawkpass について',
description: 'HarmonyOS のパスワードジェネレーター',
version: 'バージョン',
based: 'Diceware による安全なパスワード生成',
},
window: {
title: 'Hawkpass - パスワードジェネレーター',
},
},
};
2. 在菜单中添加选项
{
label: t('menu.language'),
submenu: [
{ label: t('menu.chineseSimplified'), /* ... */ },
{ label: t('menu.english'), /* ... */ },
{ // ✨ 新增日语选项
label: '日本語',
type: 'radio',
checked: getLocale() === 'ja-JP',
click: () => {
setLocale('ja-JP');
createMenu();
BrowserWindow.getAllWindows().forEach(win => {
win.setTitle(t('window.title'));
});
},
},
],
}
3. 翻译内容清单
需要翻译的内容:
- ✅ 菜单栏(5个主菜单,30+ 菜单项)
- ✅ 窗口标题
- ✅ 关于对话框(4个字段)
总计约 35+ 个翻译条目。
🌟 最佳实践
1. 保持默认中文
应用始终默认中文,符合中国用户习惯:
function initLanguage() {
// 无论系统语言是什么,都默认中文
setLocale('zh-CN');
}
2. 提供明显的语言切换入口
在菜单栏中独立的"语言"菜单,方便用户切换:
菜单栏 → 语言 → 选择
3. 实时生效
语言切换后立即更新所有界面元素,无需重启:
- ✅ 菜单立即更新
- ✅ 窗口标题立即更新
- ✅ 单选按钮显示当前语言
4. 使用语义化的键名
翻译键名清晰易懂:
t('menu.about') // 好:清晰的语义
t('m.abt') // 差:不清晰
5. 分组组织翻译
按功能模块组织翻译:
{
menu: { /* 菜单翻译 */ },
about: { /* 关于对话框翻译 */ },
window: { /* 窗口翻译 */ },
}
⚠️ 注意事项
1. Hawkpass 核心界面
Hawkpass 的核心密码生成界面是 React 应用(已编译在 dist/ 中),其内部界面由原版 Hawkpass 控制,暂不支持多语言。
支持多语言:
- ✅ Electron 窗口标题
- ✅ 菜单栏
- ✅ 关于对话框
不支持多语言:
- ❌ Hawkpass React 应用内部界面(英文)
- ❌ 密码生成器内部文本
2. 系统语言检测
应用会检测系统语言,但始终默认使用中文:
系统语言: en-US → 应用语言: zh-CN ✅
系统语言: ja-JP → 应用语言: zh-CN ✅
如需自动适配系统语言,修改 initLanguage() 函数:
function initLanguage() {
const systemLocale = app.getLocale();
// 根据系统语言选择
if (systemLocale.startsWith('zh')) {
setLocale('zh-CN');
} else if (systemLocale.startsWith('en')) {
setLocale('en-US'); // 英文系统用英文
} else {
setLocale('zh-CN'); // 其他默认中文
}
}
3. 新窗口的语言
新打开的窗口会自动使用当前选择的语言。
4. 持久化设置
当前实现中,语言设置不会持久化。每次启动应用都会重置为默认中文。
如需持久化,可以使用 electron-store:
const Store = require('electron-store');
const store = new Store();
// 保存语言设置
function saveLanguage(locale) {
store.set('language', locale);
}
// 加载语言设置
function initLanguage() {
const savedLocale = store.get('language', 'zh-CN');
setLocale(savedLocale);
}
🔍 调试和测试
查看当前语言
在开发者工具控制台中:
// 应用启动时会输出
系统语言: en-US, 应用语言: zh-CN
测试语言切换
- 启动应用(默认中文)
- 菜单栏 → 语言 → English
- 检查菜单是否切换为英文
- 检查窗口标题是否更新
- 打开"关于"对话框,检查内容
- 切换回中文,重复验证
测试新窗口
- 切换语言(如英文)
- 菜单栏 → 帮助 → 关于 Hawkpass
- 新窗口应该使用当前语言
📚 相关文档
🎯 未来改进
短期计划
- 添加语言设置持久化
- 添加自动检测系统语言选项
- 添加更多语言(日语、韩语、法语等)
长期计划
- 为 Hawkpass React 应用添加多语言支持
- 为错误提示添加多语言
- 为快捷键说明添加多语言
- 为帮助文档添加多语言
💡 示例场景
场景 1: 中文用户(默认)
1. 启动应用
2. 界面显示中文 ✅
3. 菜单栏:Hawkpass | 编辑 | 视图 | 窗口 | 语言 | 帮助
4. 窗口标题:Hawkpass - 密码生成器
场景 2: 切换到英文
1. 点击 "语言" → "English"
2. 菜单栏立即更新:Hawkpass | Edit | View | Window | Language | Help ✅
3. 窗口标题更新:Hawkpass - Password Generator ✅
4. 打开"关于":English content ✅
场景 3: 重启应用
1. 切换到英文
2. 关闭应用
3. 重新启动
4. 界面恢复为默认中文 ✅
更新日期: 2025年11月
作者: @jianguoxu
项目: Hawkpass on HarmonyOS
🌍 Hawkpass 现已支持多语言,默认中文界面,让中国用户使用更便捷!
更多推荐



所有评论(0)