Skip to content
Merged
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
12 changes: 10 additions & 2 deletions src/localization/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ mod japanese;
mod korean;
mod spanish;
mod traditional_chinese;
mod russian;

use windows::core::PWSTR;
use windows::Win32::Globalization::{
Expand All @@ -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,
Expand All @@ -35,6 +37,7 @@ impl LanguageId {
LanguageId::Japanese,
LanguageId::Korean,
LanguageId::TraditionalChinese,
LanguageId::Russian,
];

pub fn code(self) -> &'static str {
Expand All @@ -47,6 +50,7 @@ impl LanguageId {
Self::Japanese => "ja",
Self::Korean => "ko",
Self::TraditionalChinese => "zh-TW",
Self::Russian => "ru",
}
}

Expand All @@ -60,6 +64,7 @@ impl LanguageId {
Self::Japanese => "日本語",
Self::Korean => "한국어",
Self::TraditionalChinese => "繁體中文",
Self::Russian => "Русский",
}
}

Expand All @@ -73,6 +78,7 @@ impl LanguageId {
Self::Japanese => japanese::STRINGS,
Self::Korean => korean::STRINGS,
Self::TraditionalChinese => traditional_chinese::STRINGS,
Self::Russian => russian::STRINGS,
}
}

Expand All @@ -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,
}
}

Expand Down Expand Up @@ -113,7 +120,8 @@ impl LanguageId {
} else {
None
}
}
},
"ru" => Some(Self::Russian),
_ => None,
}
}
Expand Down
46 changes: 46 additions & 0 deletions src/localization/russian.rs
Original file line number Diff line number Diff line change
@@ -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: "м",
token_expired_title: "Ошибка авторизации Claude Code",
token_expired_body: "Запустите 'claude' в терминале, затем используйте '/login' и следуйте инструкциям. После этого обновите или перезапустите приложение.",
codex_token_expired_title: "Ошибка авторизации Codex",
codex_token_expired_body: "Запустите 'codex' в терминале и следуйте инструкциям для входа. После этого обновите или перезапустите приложение.",
codex_window_title: "Монитор использования Codex",
second_suffix: "с",
};
2 changes: 2 additions & 0 deletions src/window.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -2480,6 +2481,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) {
Expand Down