fix(tui): translate the route-save receipts (#6884)

/fleet save, /fleet save-as and /model save-default reply with receipts
built from English literals in App::apply_route_save_choice and the
startup-default helpers, so every locale reads them in English. #6875
translated the /model note that points at these commands; the commands'
own replies were still English.

Move the twelve receipts into RouteSave* keys and translate them in the
fourteen complete packs. Command names, team names, routes and paths
are left as they are, and each pack keeps the word it already uses for
a team. The English text is unchanged.

Signed-off-by: Lstarsky0 <[email protected]>
This commit is contained in:
WissssleyL authored and GitHub committed 2026-10-07 07:52:16 -07:00
1 parent 0edc692989
commit 8ffd6b72e5
17 files changed
+243 -36

No files matched your search

+12
View File
@@ -1871,6 +1871,18 @@
"SavedAsStartupDefault": "desat com a valor per defecte d'arrencada",
"ModeAlreadyActiveSavedAsDefault": "Ja estàs en mode {mode} — desat com a valor per defecte d'arrencada.",
"StartupDefaultNotSaved": "No s'ha desat {setting}: {error}",
"RouteSaveNothingPending": "No hi ha cap canvi de ruta pendent per desar.",
"RouteSaveNoTeamSelected": "No hi ha res per actualitzar — no hi ha cap equip seleccionat. Fes servir /fleet save-as per desar aquesta ruta com a equip nou.",
"RouteSaveTeamUpdated": "L'equip `{name}` ara fa servir {route} — s'ha escrit {path}",
"RouteSaveTeamUpdateFailed": "No s'ha pogut actualitzar l'equip: {error}",
"RouteSaveTeamUpdateFailedMoved": "No s'ha pogut actualitzar l'equip: {error} — potser l'equip desat s'ha mogut. Fes servir /fleet save-as per desar la ruta.",
"RouteSaveTeamCreateFailed": "No s'ha pogut crear l'equip.",
"RouteSaveSelectedNote": " — seleccionat com a equip predeterminat de l'usuari; s'ha escrit {path}",
"RouteSaveSelectionFailedNote": " — la selecció ha fallat: {error}",
"RouteSaveSavedAsNewTeam": "S'ha desat la ruta {route} com a equip nou `{name}` — s'ha escrit {path}{note}",
"RouteSaveFailed": "No s'ha pogut desar: {error}",
"RouteSaveRouteNoLongerActive": "No s'ha pogut desar: la ruta de proveïdor/model pendent ja no està activa.",
"RouteSaveRememberedDefault": "S'ha recordat {route} com a valor per defecte d'arrencada (config.toml).",
"StartupDefaultSubjectMode": "mode d'arrencada",
"StartupDefaultSubjectThinking": "nivell de raonament",
"StartupDefaultSubjectModel": "model",
+12
View File
@@ -1871,6 +1871,18 @@
"SavedAsStartupDefault": "als Start-Default gespeichert",
"ModeAlreadyActiveSavedAsDefault": "Bereits im Modus {mode} — als Start-Default gespeichert.",
"StartupDefaultNotSaved": "{setting} wurde nicht gespeichert: {error}",
"RouteSaveNothingPending": "Keine ausstehende Routenänderung zum Speichern.",
"RouteSaveNoTeamSelected": "Nichts zu aktualisieren — kein Team ausgewählt. Mit /fleet save-as diese Route als neues Team speichern.",
"RouteSaveTeamUpdated": "Team `{name}` nutzt jetzt {route} — {path} geschrieben",
"RouteSaveTeamUpdateFailed": "Team-Aktualisierung fehlgeschlagen: {error}",
"RouteSaveTeamUpdateFailedMoved": "Team-Aktualisierung fehlgeschlagen: {error} — das gespeicherte Team wurde vielleicht verschoben. Mit /fleet save-as die Route speichern.",
"RouteSaveTeamCreateFailed": "Das Team konnte nicht erstellt werden.",
"RouteSaveSelectedNote": " — als benutzerweites Standard-Team ausgewählt; {path} geschrieben",
"RouteSaveSelectionFailedNote": " — Auswahl fehlgeschlagen: {error}",
"RouteSaveSavedAsNewTeam": "Route {route} als neues Team `{name}` gespeichert — {path} geschrieben{note}",
"RouteSaveFailed": "Speichern fehlgeschlagen: {error}",
"RouteSaveRouteNoLongerActive": "Speichern fehlgeschlagen: Die ausstehende Provider/Modell-Route ist nicht mehr aktiv.",
"RouteSaveRememberedDefault": "{route} als Start-Default gemerkt (config.toml).",
"StartupDefaultSubjectMode": "Start-Modus",
"StartupDefaultSubjectThinking": "Thinking-Level",
"StartupDefaultSubjectModel": "Modell",
+12
View File
@@ -1894,6 +1894,18 @@
"SavedAsStartupDefault": "saved as startup default",
"ModeAlreadyActiveSavedAsDefault": "Already in {mode} — saved as startup default.",
"StartupDefaultNotSaved": "{setting} was not saved: {error}",
"RouteSaveNothingPending": "No pending route change to save.",
"RouteSaveNoTeamSelected": "Nothing to update — no team is selected. Use /fleet save-as to save this route as a new team.",
"RouteSaveTeamUpdated": "Team `{name}` now runs on {route} — wrote {path}",
"RouteSaveTeamUpdateFailed": "Team update failed: {error}",
"RouteSaveTeamUpdateFailedMoved": "Team update failed: {error} — the saved team may have moved. Use /fleet save-as to persist the route.",
"RouteSaveTeamCreateFailed": "Could not create the team.",
"RouteSaveSelectedNote": " — selected as your user-global default; wrote {path}",
"RouteSaveSelectionFailedNote": " — selection failed: {error}",
"RouteSaveSavedAsNewTeam": "Saved route {route} as new team `{name}` — wrote {path}{note}",
"RouteSaveFailed": "Save failed: {error}",
"RouteSaveRouteNoLongerActive": "Save failed: the pending provider/model route is no longer active.",
"RouteSaveRememberedDefault": "Remembered {route} as the startup default (config.toml).",
"StartupDefaultSubjectMode": "startup mode",
"StartupDefaultSubjectThinking": "thinking level",
"StartupDefaultSubjectModel": "model",
+12
View File
@@ -1894,6 +1894,18 @@
"SavedAsStartupDefault": "guardado como valor predeterminado de inicio",
"ModeAlreadyActiveSavedAsDefault": "Ya estás en modo {mode}: guardado como valor predeterminado de inicio.",
"StartupDefaultNotSaved": "No se pudo guardar {setting}: {error}",
"RouteSaveNothingPending": "No hay ningún cambio de ruta pendiente para guardar.",
"RouteSaveNoTeamSelected": "Nada que actualizar: no hay ningún equipo seleccionado. Usa /fleet save-as para guardar esta ruta como un equipo nuevo.",
"RouteSaveTeamUpdated": "El equipo `{name}` ahora usa {route} — se escribió {path}",
"RouteSaveTeamUpdateFailed": "No se pudo actualizar el equipo: {error}",
"RouteSaveTeamUpdateFailedMoved": "No se pudo actualizar el equipo: {error}. Es posible que el equipo guardado se haya movido. Usa /fleet save-as para guardar la ruta.",
"RouteSaveTeamCreateFailed": "No se pudo crear el equipo.",
"RouteSaveSelectedNote": " — seleccionado como equipo predeterminado del usuario; se escribió {path}",
"RouteSaveSelectionFailedNote": " — falló la selección: {error}",
"RouteSaveSavedAsNewTeam": "Ruta {route} guardada como equipo nuevo `{name}` — se escribió {path}{note}",
"RouteSaveFailed": "No se pudo guardar: {error}",
"RouteSaveRouteNoLongerActive": "No se pudo guardar: la ruta de proveedor/modelo pendiente ya no está activa.",
"RouteSaveRememberedDefault": "Se recordó {route} como valor predeterminado de inicio (config.toml).",
"StartupDefaultSubjectMode": "el modo de inicio",
"StartupDefaultSubjectThinking": "el nivel de razonamiento",
"StartupDefaultSubjectModel": "el modelo",
+12
View File
@@ -1871,6 +1871,18 @@
"SavedAsStartupDefault": "enregistré comme défaut de démarrage",
"ModeAlreadyActiveSavedAsDefault": "Déjà en mode {mode} — enregistré comme défaut de démarrage.",
"StartupDefaultNotSaved": "{setting} n'a pas été enregistré : {error}",
"RouteSaveNothingPending": "Aucun changement de route en attente à enregistrer.",
"RouteSaveNoTeamSelected": "Rien à mettre à jour — aucune équipe n'est sélectionnée. Utilisez /fleet save-as pour enregistrer cette route comme nouvelle équipe.",
"RouteSaveTeamUpdated": "L'équipe `{name}` utilise désormais {route} — écrit dans {path}",
"RouteSaveTeamUpdateFailed": "Échec de la mise à jour de l'équipe : {error}",
"RouteSaveTeamUpdateFailedMoved": "Échec de la mise à jour de l'équipe : {error} — l'équipe enregistrée a peut-être été déplacée. Utilisez /fleet save-as pour enregistrer la route.",
"RouteSaveTeamCreateFailed": "Impossible de créer l'équipe.",
"RouteSaveSelectedNote": " — sélectionnée comme équipe par défaut de l'utilisateur ; écrit dans {path}",
"RouteSaveSelectionFailedNote": " — échec de la sélection : {error}",
"RouteSaveSavedAsNewTeam": "Route {route} enregistrée comme nouvelle équipe `{name}` — écrit dans {path}{note}",
"RouteSaveFailed": "Échec de l'enregistrement : {error}",
"RouteSaveRouteNoLongerActive": "Échec de l'enregistrement : la route fournisseur/modèle en attente n'est plus active.",
"RouteSaveRememberedDefault": "Route {route} enregistrée comme défaut de démarrage (config.toml).",
"StartupDefaultSubjectMode": "le mode de démarrage",
"StartupDefaultSubjectThinking": "le niveau de raisonnement",
"StartupDefaultSubjectModel": "le modèle",
+12
View File
@@ -1871,6 +1871,18 @@
"SavedAsStartupDefault": "स्टार्टअप डिफ़ॉल्ट के रूप में सहेजा",
"ModeAlreadyActiveSavedAsDefault": "पहले से {mode} मोड में — स्टार्टअप डिफ़ॉल्ट के रूप में सहेजा।",
"StartupDefaultNotSaved": "{setting} सहेजा नहीं गया: {error}",
"RouteSaveNothingPending": "सहेजने के लिए कोई लंबित रूट बदलाव नहीं है।",
"RouteSaveNoTeamSelected": "अपडेट करने को कुछ नहीं — कोई टीम चुनी नहीं गई है। इस रूट को नई टीम के रूप में सहेजने के लिए /fleet save-as का उपयोग करें।",
"RouteSaveTeamUpdated": "टीम `{name}` अब {route} पर चलती है — {path} में लिखा गया",
"RouteSaveTeamUpdateFailed": "टीम अपडेट विफल: {error}",
"RouteSaveTeamUpdateFailedMoved": "टीम अपडेट विफल: {error} — सहेजी गई टीम शायद कहीं और ले जाई गई है। रूट सहेजने के लिए /fleet save-as का उपयोग करें।",
"RouteSaveTeamCreateFailed": "टीम नहीं बनाई जा सकी।",
"RouteSaveSelectedNote": " — उपयोगकर्ता की डिफ़ॉल्ट टीम के रूप में चुनी गई; {path} में लिखा गया",
"RouteSaveSelectionFailedNote": " — चयन विफल: {error}",
"RouteSaveSavedAsNewTeam": "रूट {route} को नई टीम `{name}` के रूप में सहेजा गया — {path} में लिखा गया{note}",
"RouteSaveFailed": "सहेजना विफल: {error}",
"RouteSaveRouteNoLongerActive": "सहेजना विफल: लंबित प्रोवाइडर/मॉडल रूट अब सक्रिय नहीं है।",
"RouteSaveRememberedDefault": "{route} को स्टार्टअप डिफ़ॉल्ट के रूप में याद रखा गया (config.toml)।",
"StartupDefaultSubjectMode": "स्टार्टअप मोड",
"StartupDefaultSubjectThinking": "थिंकिंग स्तर",
"StartupDefaultSubjectModel": "मॉडल",
+12
View File
@@ -1871,6 +1871,18 @@
"SavedAsStartupDefault": "disimpan sebagai default startup",
"ModeAlreadyActiveSavedAsDefault": "Sudah dalam mode {mode} — disimpan sebagai default startup.",
"StartupDefaultNotSaved": "{setting} tidak tersimpan: {error}",
"RouteSaveNothingPending": "Tidak ada perubahan rute tertunda untuk disimpan.",
"RouteSaveNoTeamSelected": "Tidak ada yang perlu diperbarui — tidak ada tim yang dipilih. Gunakan /fleet save-as untuk menyimpan rute ini sebagai tim baru.",
"RouteSaveTeamUpdated": "Tim `{name}` sekarang memakai {route} — ditulis ke {path}",
"RouteSaveTeamUpdateFailed": "Gagal memperbarui tim: {error}",
"RouteSaveTeamUpdateFailedMoved": "Gagal memperbarui tim: {error} — tim yang disimpan mungkin sudah dipindahkan. Gunakan /fleet save-as untuk menyimpan rute.",
"RouteSaveTeamCreateFailed": "Tidak dapat membuat tim.",
"RouteSaveSelectedNote": " — dipilih sebagai tim default pengguna; ditulis ke {path}",
"RouteSaveSelectionFailedNote": " — pemilihan gagal: {error}",
"RouteSaveSavedAsNewTeam": "Rute {route} disimpan sebagai tim baru `{name}` — ditulis ke {path}{note}",
"RouteSaveFailed": "Gagal menyimpan: {error}",
"RouteSaveRouteNoLongerActive": "Gagal menyimpan: rute penyedia/model yang tertunda sudah tidak aktif.",
"RouteSaveRememberedDefault": "{route} diingat sebagai default startup (config.toml).",
"StartupDefaultSubjectMode": "mode startup",
"StartupDefaultSubjectThinking": "level thinking",
"StartupDefaultSubjectModel": "model",
+12
View File
@@ -1894,6 +1894,18 @@
"SavedAsStartupDefault": "起動時の既定として保存しました",
"ModeAlreadyActiveSavedAsDefault": "すでに {mode} モードです — 起動時の既定として保存しました。",
"StartupDefaultNotSaved": "{setting}を保存できませんでした: {error}",
"RouteSaveNothingPending": "保存する保留中のルート変更はありません。",
"RouteSaveNoTeamSelected": "更新するものはありません — チームが選択されていません。/fleet save-as でこのルートを新しいチームとして保存してください。",
"RouteSaveTeamUpdated": "チーム `{name}` は {route} を使うようになりました — {path} に書き込みました",
"RouteSaveTeamUpdateFailed": "チームの更新に失敗しました: {error}",
"RouteSaveTeamUpdateFailedMoved": "チームの更新に失敗しました: {error} — 保存済みのチームが移動された可能性があります。/fleet save-as でルートを保存してください。",
"RouteSaveTeamCreateFailed": "チームを作成できませんでした。",
"RouteSaveSelectedNote": " — ユーザーの既定のチームとして選択し、{path} に書き込みました",
"RouteSaveSelectionFailedNote": " — 選択に失敗しました: {error}",
"RouteSaveSavedAsNewTeam": "ルート {route} を新しいチーム `{name}` として保存しました — {path} に書き込みました{note}",
"RouteSaveFailed": "保存に失敗しました: {error}",
"RouteSaveRouteNoLongerActive": "保存に失敗しました: 保留中のプロバイダー/モデルのルートはもう有効ではありません。",
"RouteSaveRememberedDefault": "{route} を起動時の既定として記憶しました(config.toml)。",
"StartupDefaultSubjectMode": "起動時のモード",
"StartupDefaultSubjectThinking": "思考レベル",
"StartupDefaultSubjectModel": "モデル",
+12
View File
@@ -1894,6 +1894,18 @@
"SavedAsStartupDefault": "시작 기본값으로 저장했습니다",
"ModeAlreadyActiveSavedAsDefault": "이미 {mode} 모드입니다 — 시작 기본값으로 저장했습니다.",
"StartupDefaultNotSaved": "{setting}을(를) 저장하지 못했습니다: {error}",
"RouteSaveNothingPending": "저장할 대기 중인 경로 변경이 없습니다.",
"RouteSaveNoTeamSelected": "업데이트할 항목이 없습니다 — 선택된 팀이 없습니다. /fleet save-as로 이 경로를 새 팀으로 저장하세요.",
"RouteSaveTeamUpdated": "팀 `{name}`의 경로를 {route}(으)로 바꿨습니다 — {path}에 기록했습니다",
"RouteSaveTeamUpdateFailed": "팀 업데이트 실패: {error}",
"RouteSaveTeamUpdateFailedMoved": "팀 업데이트 실패: {error} — 저장된 팀이 이동되었을 수 있습니다. /fleet save-as로 경로를 저장하세요.",
"RouteSaveTeamCreateFailed": "팀을 만들 수 없습니다.",
"RouteSaveSelectedNote": " — 사용자 기본 팀으로 선택했고 {path}에 기록했습니다",
"RouteSaveSelectionFailedNote": " — 선택 실패: {error}",
"RouteSaveSavedAsNewTeam": "경로 {route}을(를) 새 팀 `{name}`(으)로 저장했습니다 — {path}에 기록했습니다{note}",
"RouteSaveFailed": "저장 실패: {error}",
"RouteSaveRouteNoLongerActive": "저장 실패: 대기 중인 프로바이더/모델 경로가 더 이상 활성 상태가 아닙니다.",
"RouteSaveRememberedDefault": "{route}을(를) 시작 기본값으로 기억했습니다 (config.toml).",
"StartupDefaultSubjectMode": "시작 모드",
"StartupDefaultSubjectThinking": "사고 수준",
"StartupDefaultSubjectModel": "모델",
+12
View File
@@ -1894,6 +1894,18 @@
"SavedAsStartupDefault": "salvo como padrão de inicialização",
"ModeAlreadyActiveSavedAsDefault": "Já está no modo {mode} — salvo como padrão de inicialização.",
"StartupDefaultNotSaved": "Não foi possível salvar {setting}: {error}",
"RouteSaveNothingPending": "Nenhuma mudança de rota pendente para salvar.",
"RouteSaveNoTeamSelected": "Nada para atualizar — nenhuma equipe está selecionada. Use /fleet save-as para salvar esta rota como uma nova equipe.",
"RouteSaveTeamUpdated": "A equipe `{name}` agora usa {route} — gravado em {path}",
"RouteSaveTeamUpdateFailed": "Falha ao atualizar a equipe: {error}",
"RouteSaveTeamUpdateFailedMoved": "Falha ao atualizar a equipe: {error} — a equipe salva pode ter sido movida. Use /fleet save-as para salvar a rota.",
"RouteSaveTeamCreateFailed": "Não foi possível criar a equipe.",
"RouteSaveSelectedNote": " — selecionada como equipe padrão do usuário; gravado em {path}",
"RouteSaveSelectionFailedNote": " — falha na seleção: {error}",
"RouteSaveSavedAsNewTeam": "Rota {route} salva como nova equipe `{name}` — gravado em {path}{note}",
"RouteSaveFailed": "Falha ao salvar: {error}",
"RouteSaveRouteNoLongerActive": "Falha ao salvar: a rota de provedor/modelo pendente não está mais ativa.",
"RouteSaveRememberedDefault": "Rota {route} lembrada como padrão de inicialização (config.toml).",
"StartupDefaultSubjectMode": "o modo de inicialização",
"StartupDefaultSubjectThinking": "o nível de raciocínio",
"StartupDefaultSubjectModel": "o modelo",
+12
View File
@@ -1871,6 +1871,18 @@
"SavedAsStartupDefault": "сохранено как значение по умолчанию при запуске",
"ModeAlreadyActiveSavedAsDefault": "Режим {mode} уже активен — сохранён как значение по умолчанию при запуске.",
"StartupDefaultNotSaved": "{setting} не сохранено: {error}",
"RouteSaveNothingPending": "Нет ожидающего изменения маршрута для сохранения.",
"RouteSaveNoTeamSelected": "Нечего обновлять — команда не выбрана. Сохраните этот маршрут как новую команду через /fleet save-as.",
"RouteSaveTeamUpdated": "Команда `{name}` теперь использует {route} — записано в {path}",
"RouteSaveTeamUpdateFailed": "Не удалось обновить команду: {error}",
"RouteSaveTeamUpdateFailedMoved": "Не удалось обновить команду: {error} — возможно, сохранённую команду переместили. Сохраните маршрут через /fleet save-as.",
"RouteSaveTeamCreateFailed": "Не удалось создать команду.",
"RouteSaveSelectedNote": " — выбрана командой пользователя по умолчанию; записано в {path}",
"RouteSaveSelectionFailedNote": " — не удалось выбрать: {error}",
"RouteSaveSavedAsNewTeam": "Маршрут {route} сохранён как новая команда `{name}` — записано в {path}{note}",
"RouteSaveFailed": "Не удалось сохранить: {error}",
"RouteSaveRouteNoLongerActive": "Не удалось сохранить: ожидающий маршрут провайдер/модель больше не активен.",
"RouteSaveRememberedDefault": "Маршрут {route} запомнен как значение по умолчанию при запуске (config.toml).",
"StartupDefaultSubjectMode": "режим запуска",
"StartupDefaultSubjectThinking": "уровень thinking",
"StartupDefaultSubjectModel": "модель",
+12
View File
@@ -1871,6 +1871,18 @@
"SavedAsStartupDefault": "збережено як типове для запуску",
"ModeAlreadyActiveSavedAsDefault": "Режим {mode} уже активний — збережено як типовий для запуску.",
"StartupDefaultNotSaved": "{setting} не збережено: {error}",
"RouteSaveNothingPending": "Немає змін маршруту, що очікують збереження.",
"RouteSaveNoTeamSelected": "Нічого оновлювати — команду не вибрано. Збережіть цей маршрут як нову команду через /fleet save-as.",
"RouteSaveTeamUpdated": "Команда `{name}` тепер використовує {route} — записано в {path}",
"RouteSaveTeamUpdateFailed": "Не вдалося оновити команду: {error}",
"RouteSaveTeamUpdateFailedMoved": "Не вдалося оновити команду: {error} — можливо, збережену команду переміщено. Збережіть маршрут через /fleet save-as.",
"RouteSaveTeamCreateFailed": "Не вдалося створити команду.",
"RouteSaveSelectedNote": " — вибрано типовою командою користувача; записано в {path}",
"RouteSaveSelectionFailedNote": " — не вдалося вибрати: {error}",
"RouteSaveSavedAsNewTeam": "Маршрут {route} збережено як нову команду `{name}` — записано в {path}{note}",
"RouteSaveFailed": "Не вдалося зберегти: {error}",
"RouteSaveRouteNoLongerActive": "Не вдалося зберегти: маршрут провайдер/модель, що очікував збереження, більше не активний.",
"RouteSaveRememberedDefault": "Маршрут {route} запам'ятовано як типовий для запуску (config.toml).",
"StartupDefaultSubjectMode": "режим запуску",
"StartupDefaultSubjectThinking": "рівень міркування",
"StartupDefaultSubjectModel": "модель",
+12
View File
@@ -1894,6 +1894,18 @@
"SavedAsStartupDefault": "đã lưu làm mặc định khi khởi động",
"ModeAlreadyActiveSavedAsDefault": "Đang ở chế độ {mode} — đã lưu làm mặc định khi khởi động.",
"StartupDefaultNotSaved": "Không lưu được {setting}: {error}",
"RouteSaveNothingPending": "Không có thay đổi tuyến nào đang chờ để lưu.",
"RouteSaveNoTeamSelected": "Không có gì để cập nhật — chưa chọn nhóm nào. Dùng /fleet save-as để lưu tuyến này thành nhóm mới.",
"RouteSaveTeamUpdated": "Nhóm `{name}` giờ dùng {route} — đã ghi {path}",
"RouteSaveTeamUpdateFailed": "Cập nhật nhóm thất bại: {error}",
"RouteSaveTeamUpdateFailedMoved": "Cập nhật nhóm thất bại: {error} — nhóm đã lưu có thể đã bị di chuyển. Dùng /fleet save-as để lưu tuyến.",
"RouteSaveTeamCreateFailed": "Không thể tạo nhóm.",
"RouteSaveSelectedNote": " — đã chọn làm nhóm mặc định của người dùng; đã ghi {path}",
"RouteSaveSelectionFailedNote": " — chọn thất bại: {error}",
"RouteSaveSavedAsNewTeam": "Đã lưu tuyến {route} thành nhóm mới `{name}` — đã ghi {path}{note}",
"RouteSaveFailed": "Lưu thất bại: {error}",
"RouteSaveRouteNoLongerActive": "Lưu thất bại: tuyến nhà cung cấp/mô hình đang chờ không còn hoạt động.",
"RouteSaveRememberedDefault": "Đã ghi nhớ {route} làm mặc định khi khởi động (config.toml).",
"StartupDefaultSubjectMode": "chế độ khởi động",
"StartupDefaultSubjectThinking": "mức suy nghĩ",
"StartupDefaultSubjectModel": "mô hình",
+12
View File
@@ -1894,6 +1894,18 @@
"SavedAsStartupDefault": "已保存为启动默认值",
"ModeAlreadyActiveSavedAsDefault": "已处于 {mode} 模式 — 已保存为启动默认值。",
"StartupDefaultNotSaved": "{setting}未能保存:{error}",
"RouteSaveNothingPending": "没有待保存的路由变更。",
"RouteSaveNoTeamSelected": "无需更新 — 当前没有选中的 Fleet。用 /fleet save-as 把这条路由另存为新 Fleet。",
"RouteSaveTeamUpdated": "Fleet `{name}` 现在使用 {route} — 已写入 {path}",
"RouteSaveTeamUpdateFailed": "Fleet 更新失败:{error}",
"RouteSaveTeamUpdateFailedMoved": "Fleet 更新失败:{error} — 已保存的 Fleet 可能被移动了。用 /fleet save-as 保存这条路由。",
"RouteSaveTeamCreateFailed": "无法创建 Fleet。",
"RouteSaveSelectedNote": " — 已设为用户默认 Fleet;已写入 {path}",
"RouteSaveSelectionFailedNote": " — 选择失败:{error}",
"RouteSaveSavedAsNewTeam": "已将路由 {route} 另存为新 Fleet `{name}` — 已写入 {path}{note}",
"RouteSaveFailed": "保存失败:{error}",
"RouteSaveRouteNoLongerActive": "保存失败:待保存的提供商/模型路由已不再生效。",
"RouteSaveRememberedDefault": "已将 {route} 记为启动默认值(config.toml)。",
"StartupDefaultSubjectMode": "启动模式",
"StartupDefaultSubjectThinking": "思考级别",
"StartupDefaultSubjectModel": "模型",
+12
View File
@@ -1892,6 +1892,18 @@
"SavedAsStartupDefault": "已儲存為啟動預設值",
"ModeAlreadyActiveSavedAsDefault": "已處於 {mode} 模式 — 已儲存為啟動預設值。",
"StartupDefaultNotSaved": "{setting}未能儲存:{error}",
"RouteSaveNothingPending": "沒有待儲存的路由變更。",
"RouteSaveNoTeamSelected": "無需更新 — 目前沒有選取的 Fleet。用 /fleet save-as 把這條路由另存為新的 Fleet。",
"RouteSaveTeamUpdated": "Fleet `{name}` 現在使用 {route} — 已寫入 {path}",
"RouteSaveTeamUpdateFailed": "Fleet 更新失敗:{error}",
"RouteSaveTeamUpdateFailedMoved": "Fleet 更新失敗:{error} — 已儲存的 Fleet 可能已被移動。用 /fleet save-as 儲存這條路由。",
"RouteSaveTeamCreateFailed": "無法建立 Fleet。",
"RouteSaveSelectedNote": " — 已設為使用者預設 Fleet;已寫入 {path}",
"RouteSaveSelectionFailedNote": " — 選取失敗:{error}",
"RouteSaveSavedAsNewTeam": "已將路由 {route} 另存為新的 Fleet `{name}` — 已寫入 {path}{note}",
"RouteSaveFailed": "儲存失敗:{error}",
"RouteSaveRouteNoLongerActive": "儲存失敗:待儲存的供應商/模型路由已不再生效。",
"RouteSaveRememberedDefault": "已將 {route} 記為啟動預設值(config.toml)。",
"StartupDefaultSubjectMode": "啟動模式",
"StartupDefaultSubjectThinking": "思考級別",
"StartupDefaultSubjectModel": "模型",
+24
View File
@@ -2321,6 +2321,18 @@ pub enum MessageId {
SavedAsStartupDefault,
ModeAlreadyActiveSavedAsDefault,
StartupDefaultNotSaved,
RouteSaveNothingPending,
RouteSaveNoTeamSelected,
RouteSaveTeamUpdated,
RouteSaveTeamUpdateFailed,
RouteSaveTeamUpdateFailedMoved,
RouteSaveTeamCreateFailed,
RouteSaveSelectedNote,
RouteSaveSelectionFailedNote,
RouteSaveSavedAsNewTeam,
RouteSaveFailed,
RouteSaveRouteNoLongerActive,
RouteSaveRememberedDefault,
StartupDefaultSubjectMode,
StartupDefaultSubjectThinking,
StartupDefaultSubjectModel,
@@ -4801,6 +4813,18 @@ pub const ALL_MESSAGE_IDS: &[MessageId] = &[
MessageId::SavedAsStartupDefault,
MessageId::ModeAlreadyActiveSavedAsDefault,
MessageId::StartupDefaultNotSaved,
MessageId::RouteSaveNothingPending,
MessageId::RouteSaveNoTeamSelected,
MessageId::RouteSaveTeamUpdated,
MessageId::RouteSaveTeamUpdateFailed,
MessageId::RouteSaveTeamUpdateFailedMoved,
MessageId::RouteSaveTeamCreateFailed,
MessageId::RouteSaveSelectedNote,
MessageId::RouteSaveSelectionFailedNote,
MessageId::RouteSaveSavedAsNewTeam,
MessageId::RouteSaveFailed,
MessageId::RouteSaveRouteNoLongerActive,
MessageId::RouteSaveRememberedDefault,
MessageId::StartupDefaultSubjectMode,
MessageId::StartupDefaultSubjectThinking,
MessageId::StartupDefaultSubjectModel,
+39 -36
View File
@@ -1500,13 +1500,14 @@ pub struct PendingRouteSave {
/// Write `provider_identity`/`model` to the user-global config as the route the next
/// launch should open with, and return the line to show the operator.
fn persist_route_as_startup_default(
locale: Locale,
identity: &crate::config::ProviderIdentity,
model: &str,
) -> String {
let route = format!("{}/{model}", identity.key);
match try_persist_route_as_startup_default(identity, model) {
Ok(()) => format!("Remembered {route} as the startup default (config.toml)."),
Err(err) => format!("Save failed: {err}"),
Ok(()) => tr(locale, MessageId::RouteSaveRememberedDefault).replace("{route}", &route),
Err(err) => tr(locale, MessageId::RouteSaveFailed).replace("{error}", &err.to_string()),
}
}
@@ -2838,16 +2839,15 @@ impl App {
) -> String {
use crate::fleet::store::{FleetFile, FleetOperator, save_fleet, set_selected};
use crate::tui::views::route_save_prompt::RouteSaveChoice;
let locale = self.ui_locale;
let Some(pending) = self.pending_route_save.take() else {
return "No pending route change to save.".to_string();
return tr(locale, MessageId::RouteSaveNothingPending).into_owned();
};
let route = format!("{}/{}", pending.provider_identity, pending.model);
match choice {
RouteSaveChoice::UpdateFleet => {
let Some((name, scope)) = pending.fleet.clone() else {
return "Nothing to update — no team is selected. Use /fleet save-as to \
save this route as a new team."
.to_string();
return tr(locale, MessageId::RouteSaveNoTeamSelected).into_owned();
};
match crate::fleet::store::load_fleet_in_scope(&name, scope, &self.workspace) {
Ok((mut fleet, _source_path)) => {
@@ -2857,18 +2857,16 @@ impl App {
reasoning: fleet.operator.as_ref().and_then(|op| op.reasoning.clone()),
});
match save_fleet(&fleet, scope, &self.workspace) {
Ok(path) => format!(
"Team `{}` now runs on {route} — wrote {}",
fleet.name,
path.display()
),
Err(err) => format!("Team update failed: {err}"),
Ok(path) => tr(locale, MessageId::RouteSaveTeamUpdated)
.replace("{name}", &fleet.name)
.replace("{route}", &route)
.replace("{path}", &path.display().to_string()),
Err(err) => tr(locale, MessageId::RouteSaveTeamUpdateFailed)
.replace("{error}", &err.to_string()),
}
}
Err(err) => format!(
"Team update failed: {err} — the saved team may have moved. Use \
/fleet save-as to persist the route."
),
Err(err) => tr(locale, MessageId::RouteSaveTeamUpdateFailedMoved)
.replace("{error}", &err.to_string()),
}
}
RouteSaveChoice::SaveAsNewFleet => {
@@ -2883,7 +2881,7 @@ impl App {
display.clone(),
Some("Saved from a session route choice.".to_string()),
) else {
return "Could not create the team.".to_string();
return tr(locale, MessageId::RouteSaveTeamCreateFailed).into_owned();
};
fleet.operator = Some(FleetOperator {
provider: pending.provider_identity.clone(),
@@ -2901,19 +2899,20 @@ impl App {
crate::fleet::store::FleetScope::Personal,
&self.workspace,
) {
Ok(sel_path) => format!(
" — selected as your user-global default; wrote {}",
sel_path.display()
),
Err(err) => format!(" — selection failed: {err}"),
Ok(sel_path) => tr(locale, MessageId::RouteSaveSelectedNote)
.replace("{path}", &sel_path.display().to_string()),
Err(err) => tr(locale, MessageId::RouteSaveSelectionFailedNote)
.replace("{error}", &err.to_string()),
};
format!(
"Saved route {route} as new team `{}` — wrote {}{selected_note}",
display,
path.display()
)
tr(locale, MessageId::RouteSaveSavedAsNewTeam)
.replace("{route}", &route)
.replace("{name}", &display)
.replace("{path}", &path.display().to_string())
.replace("{note}", &selected_note)
}
Err(err) => {
tr(locale, MessageId::RouteSaveFailed).replace("{error}", &err.to_string())
}
Err(err) => format!("Save failed: {err}"),
}
}
RouteSaveChoice::SaveAsDefault => {
@@ -2923,14 +2922,16 @@ impl App {
!= self.provider_id_for_persistence())
|| pending.model != active_model
{
return "Save failed: the pending provider/model route is no longer active."
.to_string();
return tr(locale, MessageId::RouteSaveRouteNoLongerActive).into_owned();
}
let identity = match self.admitted_provider_identity() {
Ok(identity) => identity,
Err(error) => return format!("Save failed: {error}"),
Err(error) => {
return tr(locale, MessageId::RouteSaveFailed)
.replace("{error}", &error.to_string());
}
};
persist_route_as_startup_default(identity, &pending.model)
persist_route_as_startup_default(locale, identity, &pending.model)
}
}
}
@@ -2950,7 +2951,9 @@ impl App {
pub fn save_live_route_as_startup_default(&mut self) -> String {
match self.try_save_live_route_as_startup_default() {
Ok(receipt) => receipt,
Err(err) => format!("Save failed: {err}"),
Err(err) => self
.tr(MessageId::RouteSaveFailed)
.replace("{error}", &err.to_string()),
}
}
@@ -2971,9 +2974,9 @@ impl App {
// Resolve the prompt only after the write lands. If persistence fails,
// keep the retry available instead of discarding the operator's route.
self.pending_route_save = None;
Ok(format!(
"Remembered {provider_identity}/{model} as the startup default (config.toml)."
))
Ok(self
.tr(MessageId::RouteSaveRememberedDefault)
.replace("{route}", &format!("{provider_identity}/{model}")))
}
/// Record that the live session route changed to `provider_identity` /