Merge pull request #28 from st7105/main

This commit is contained in:
Craig Constable 2026-06-12 19:38:02 +10:00
commit dc311c9406
3 changed files with 60 additions and 2 deletions

View File

@ -6,6 +6,7 @@ mod japanese;
mod korean;
mod spanish;
mod traditional_chinese;
mod russian;
use windows::core::PWSTR;
use windows::Win32::Globalization::{
@ -23,10 +24,11 @@ pub enum LanguageId {
Japanese,
Korean,
TraditionalChinese,
Russian,
}
impl LanguageId {
pub const ALL: [LanguageId; 8] = [
pub const ALL: [LanguageId; 9] = [
LanguageId::English,
LanguageId::Dutch,
LanguageId::Spanish,
@ -35,6 +37,7 @@ impl LanguageId {
LanguageId::Japanese,
LanguageId::Korean,
LanguageId::TraditionalChinese,
LanguageId::Russian,
];
pub fn code(self) -> &'static str {
@ -47,6 +50,7 @@ impl LanguageId {
Self::Japanese => "ja",
Self::Korean => "ko",
Self::TraditionalChinese => "zh-TW",
Self::Russian => "ru",
}
}
@ -60,6 +64,7 @@ impl LanguageId {
Self::Japanese => "日本語",
Self::Korean => "한국어",
Self::TraditionalChinese => "繁體中文",
Self::Russian => "Русский",
}
}
@ -73,6 +78,7 @@ impl LanguageId {
Self::Japanese => japanese::STRINGS,
Self::Korean => korean::STRINGS,
Self::TraditionalChinese => traditional_chinese::STRINGS,
Self::Russian => russian::STRINGS,
}
}
@ -86,6 +92,7 @@ impl LanguageId {
Self::Japanese => japanese::UPDATE_VIA_WINGET_LABEL,
Self::Korean => korean::UPDATE_VIA_WINGET_LABEL,
Self::TraditionalChinese => traditional_chinese::UPDATE_VIA_WINGET_LABEL,
Self::Russian => russian::UPDATE_VIA_WINGET_LABEL,
}
}
@ -114,6 +121,7 @@ impl LanguageId {
None
}
}
"ru" => Some(Self::Russian),
_ => None,
}
}

View File

@ -0,0 +1,46 @@
use super::Strings;
pub(super) const UPDATE_VIA_WINGET_LABEL: &str = "Обновить через WinGet";
pub(super) const STRINGS: Strings = Strings {
window_title: "Монитор использования Claude Code",
refresh: "Обновить",
update_frequency: "Частота обновления",
one_minute: "1 минута",
five_minutes: "5 минут",
fifteen_minutes: "15 минут",
one_hour: "1 час",
models: "Модели",
claude_code_model: "Claude Code",
codex_model: "Codex",
settings: "Настройки",
start_with_windows: "Запускать вместе с Windows",
reset_position: "Сбросить позицию",
language: "Язык",
system_default: "Системный по умолчанию",
check_for_updates: "Проверить обновления",
checking_for_updates: "Проверка обновлений...",
updates: "Обновления",
update_in_progress: "Проверка обновлений уже выполняется.",
up_to_date: "У вас уже установлена последняя версия.",
up_to_date_short: "Актуальная версия",
update_failed: "Не удалось обновить автоматически",
applying_update: "Применение обновления...",
update_to: "Обновить до",
update_available: "Доступно обновление",
update_prompt_now: "Доступна версия {version}. Обновить сейчас?",
exit: "Выход",
show_widget: "Показать виджет",
session_window: "5ч",
weekly_window: "7д",
now: "сейчас",
day_suffix: "д",
hour_suffix: "ч",
minute_suffix: "м",
second_suffix: "с",
token_expired_title: "Ошибка авторизации Claude Code",
token_expired_body: "Запустите 'claude' в терминале, затем используйте '/login' и следуйте инструкциям. После этого обновите или перезапустите приложение.",
codex_token_expired_title: "Ошибка авторизации Codex",
codex_token_expired_body: "Запустите 'codex' в терминале и следуйте инструкциям для входа. После этого обновите или перезапустите приложение.",
codex_window_title: "Монитор использования Codex",
};

View File

@ -119,6 +119,7 @@ const IDM_LANG_GERMAN: u16 = 45;
const IDM_LANG_JAPANESE: u16 = 46;
const IDM_LANG_KOREAN: u16 = 47;
const IDM_LANG_TRADITIONAL_CHINESE: u16 = 48;
const IDM_LANG_RUSSIAN: u16 = 49;
const IDM_MODEL_CLAUDE_CODE: u16 = 60;
const IDM_MODEL_CODEX: u16 = 61;
@ -2258,7 +2259,8 @@ unsafe extern "system" fn wnd_proc(
| IDM_LANG_GERMAN
| IDM_LANG_JAPANESE
| IDM_LANG_KOREAN
| IDM_LANG_TRADITIONAL_CHINESE => {
| IDM_LANG_TRADITIONAL_CHINESE
| IDM_LANG_RUSSIAN => {
let language_override = match id {
IDM_LANG_SYSTEM => None,
IDM_LANG_ENGLISH => Some(LanguageId::English),
@ -2269,6 +2271,7 @@ unsafe extern "system" fn wnd_proc(
IDM_LANG_JAPANESE => Some(LanguageId::Japanese),
IDM_LANG_KOREAN => Some(LanguageId::Korean),
IDM_LANG_TRADITIONAL_CHINESE => Some(LanguageId::TraditionalChinese),
IDM_LANG_RUSSIAN => Some(LanguageId::Russian),
_ => None,
};
{
@ -2480,6 +2483,7 @@ fn show_context_menu(hwnd: HWND) {
LanguageId::Japanese => IDM_LANG_JAPANESE,
LanguageId::Korean => IDM_LANG_KOREAN,
LanguageId::TraditionalChinese => IDM_LANG_TRADITIONAL_CHINESE,
LanguageId::Russian => IDM_LANG_RUSSIAN,
};
let label_str = native_interop::wide_str(language.native_name());
let flags = if language_override == Some(language) {