use crate::config::Language; pub struct Messages { language: Language, } impl Messages { pub fn new(language: Language) -> Self { Self { language } } pub fn initializing(&self) -> &str { match self.language { Language::English => "🚀 Initializing QuiCommit...", Language::Chinese => "🚀 正在初始化 QuiCommit...", Language::Japanese => "🚀 QuiCommitを初期化中...", Language::Korean => "🚀 QuiCommit 초기화 중...", Language::Spanish => "🚀 Inicializando QuiCommit...", Language::French => "🚀 Initialisation de QuiCommit...", Language::German => "🚀 QuiCommit wird initialisiert...", } } pub fn init_success(&self) -> &str { match self.language { Language::English => "✅ QuiCommit initialized successfully!", Language::Chinese => "✅ QuiCommit 初始化成功!", Language::Japanese => "✅ QuiCommitの初期化が完了しました!", Language::Korean => "✅ QuiCommit 초기화 성공!", Language::Spanish => "✅ ¡QuiCommit inicializado exitosamente!", Language::French => "✅ QuiCommit initialisé avec succès !", Language::German => "✅ QuiCommit erfolgreich initialisiert!", } } pub fn next_steps(&self) -> &str { match self.language { Language::English => "Next steps:", Language::Chinese => "下一步:", Language::Japanese => "次のステップ:", Language::Korean => "다음 단계:", Language::Spanish => "Próximos pasos:", Language::French => "Prochaines étapes :", Language::German => "Nächste Schritte:", } } pub fn config_file(&self) -> &str { match self.language { Language::English => "Config file:", Language::Chinese => "配置文件:", Language::Japanese => "設定ファイル:", Language::Korean => "구성 파일:", Language::Spanish => "Archivo de configuración:", Language::French => "Fichier de configuration :", Language::German => "Konfigurationsdatei:", } } pub fn setup_profile(&self) -> &str { match self.language { Language::English => "Let's set up your first profile:", Language::Chinese => "让我们设置你的第一个配置文件:", Language::Japanese => "最初のプロファイルを設定しましょう:", Language::Korean => "첫 번째 프로필을 설정해 보겠습니다:", Language::Spanish => "Configuremos tu primer perfil:", Language::French => "Configurons votre premier profil :", Language::German => "Lassen Sie uns Ihr erstes Profil einrichten:", } } pub fn profile_name(&self) -> &str { match self.language { Language::English => "Profile name", Language::Chinese => "配置文件名称", Language::Japanese => "プロファイル名", Language::Korean => "프로필 이름", Language::Spanish => "Nombre del perfil", Language::French => "Nom du profil", Language::German => "Profilname", } } pub fn git_user_name(&self) -> &str { match self.language { Language::English => "Git user name", Language::Chinese => "Git 用户名", Language::Japanese => "Gitユーザー名", Language::Korean => "Git 사용자 이름", Language::Spanish => "Nombre de usuario de Git", Language::French => "Nom d'utilisateur Git", Language::German => "Git-Benutzername", } } pub fn git_user_email(&self) -> &str { match self.language { Language::English => "Git user email", Language::Chinese => "Git 用户邮箱", Language::Japanese => "Gitユーザーメール", Language::Korean => "Git 사용자 이메일", Language::Spanish => "Correo de usuario de Git", Language::French => "E-mail utilisateur Git", Language::German => "Git-Benutzer-E-Mail", } } pub fn select_llm_provider(&self) -> &str { match self.language { Language::English => "Select your preferred LLM provider:", Language::Chinese => "选择你偏好的 LLM 提供商:", Language::Japanese => "好みのLLMプロバイダーを選択:", Language::Korean => "선호하는 LLM 공급자를 선택하세요:", Language::Spanish => "Selecciona tu proveedor LLM preferido:", Language::French => "Sélectionnez votre fournisseur LLM préféré :", Language::German => "Wählen Sie Ihren bevorzugten LLM-Anbieter:", } } pub fn commit_preview(&self) -> &str { match self.language { Language::English => "Commit preview:", Language::Chinese => "提交预览:", Language::Japanese => "コミットプレビュー:", Language::Korean => "커밋 미리보기:", Language::Spanish => "Vista previa del commit:", Language::French => "Aperçu du commit :", Language::German => "Commit-Vorschau:", } } pub fn proceed_commit(&self) -> &str { match self.language { Language::English => "Do you want to proceed with this commit?", Language::Chinese => "是否继续此提交?", Language::Japanese => "このコミットを続行しますか?", Language::Korean => "이 커밋을 계속하시겠습니까?", Language::Spanish => "¿Quieres proceder con este commit?", Language::French => "Voulez-vous procéder à ce commit ?", Language::German => "Möchten Sie mit diesem Commit fortfahren?", } } pub fn commit_created(&self) -> &str { match self.language { Language::English => "Created commit", Language::Chinese => "已创建提交", Language::Japanese => "コミットを作成しました", Language::Korean => "커밋 생성됨", Language::Spanish => "Commit creado", Language::French => "Commit créé", Language::German => "Commit erstellt", } } pub fn commit_amended(&self) -> &str { match self.language { Language::English => "Amended commit", Language::Chinese => "已修改提交", Language::Japanese => "コミットを修正しました", Language::Korean => "커밋 수정됨", Language::Spanish => "Commit enmendado", Language::French => "Commit modifié", Language::German => "Commit geändert", } } pub fn commit_cancelled(&self) -> &str { match self.language { Language::English => "Commit cancelled.", Language::Chinese => "提交已取消。", Language::Japanese => "コミットがキャンセルされました。", Language::Korean => "커밋이 취소되었습니다.", Language::Spanish => "Commit cancelado.", Language::French => "Commit annulé.", Language::German => "Commit abgebrochen.", } } pub fn tag_preview(&self) -> &str { match self.language { Language::English => "Tag preview:", Language::Chinese => "标签预览:", Language::Japanese => "タグプレビュー:", Language::Korean => "태그 미리보기:", Language::Spanish => "Vista previa de la etiqueta:", Language::French => "Aperçu de l'étiquette :", Language::German => "Tag-Vorschau:", } } pub fn create_tag(&self) -> &str { match self.language { Language::English => "Create this tag?", Language::Chinese => "创建此标签?", Language::Japanese => "このタグを作成しますか?", Language::Korean => "이 태그를 생성하시겠습니까?", Language::Spanish => "¿Crear esta etiqueta?", Language::French => "Créer cette étiquette ?", Language::German => "Diesen Tag erstellen?", } } pub fn tag_created(&self) -> &str { match self.language { Language::English => "Created tag", Language::Chinese => "已创建标签", Language::Japanese => "タグを作成しました", Language::Korean => "태그 생성됨", Language::Spanish => "Etiqueta creada", Language::French => "Étiquette créée", Language::German => "Tag erstellt", } } pub fn tag_cancelled(&self) -> &str { match self.language { Language::English => "Tag creation cancelled.", Language::Chinese => "标签创建已取消。", Language::Japanese => "タグ作成がキャンセルされました。", Language::Korean => "태그 생성이 취소되었습니다.", Language::Spanish => "Creación de etiqueta cancelada.", Language::French => "Création d'étiquette annulée.", Language::German => "Tag-Erstellung abgebrochen.", } } pub fn changelog_preview(&self) -> &str { match self.language { Language::English => "Changelog preview:", Language::Chinese => "变更日志预览:", Language::Japanese => "変更ログプレビュー:", Language::Korean => "변경 로그 미리보기:", Language::Spanish => "Vista previa del changelog:", Language::French => "Aperçu du changelog :", Language::German => "Changelog-Vorschau:", } } pub fn changelog_written(&self) -> &str { match self.language { Language::English => "Changelog written to", Language::Chinese => "变更日志已写入", Language::Japanese => "変更ログを書き込みました", Language::Korean => "변경 로그가 작성됨", Language::Spanish => "Changelog escrito en", Language::French => "Changelog écrit dans", Language::German => "Changelog geschrieben nach", } } pub fn dry_run(&self) -> &str { match self.language { Language::English => "Dry run", Language::Chinese => "试运行", Language::Japanese => "ドライラン", Language::Korean => "드라이 런", Language::Spanish => "Ejecución en seco", Language::French => "Exécution à blanc", Language::German => "Testlauf", } } pub fn no_changes(&self) -> &str { match self.language { Language::English => "No changes to commit. Working tree is clean.", Language::Chinese => "没有可提交的更改。工作树是干净的。", Language::Japanese => "コミットする変更がありません。作業ツリーはクリーンです。", Language::Korean => "커밋할 변경 사항이 없습니다. 작업 트리가 깨끗합니다.", Language::Spanish => "No hay cambios para hacer commit. El árbol de trabajo está limpio.", Language::French => "Aucun changement à commiter. L'arbre de travail est propre.", Language::German => "Keine Änderungen zum Committen. Arbeitsbaum ist sauber.", } } pub fn staged_all(&self) -> &str { match self.language { Language::English => "Staged all changes", Language::Chinese => "已暂存所有更改", Language::Japanese => "すべての変更をステージしました", Language::Korean => "모든 변경 사항을 스테이징함", Language::Spanish => "Todos los cambios preparados", Language::French => "Tous les changements indexés", Language::German => "Alle Änderungen bereitgestellt", } } pub fn auto_stage_changes(&self) -> &str { match self.language { Language::English => "No files staged. Auto-staging all changes...", Language::Chinese => "没有暂存文件。自动暂存所有更改...", Language::Japanese => "ステージされたファイルがありません。すべての変更を自動ステージ中...", Language::Korean => "스테이징된 파일이 없습니다. 모든 변경 사항을 자동 스테이징 중...", Language::Spanish => "No hay archivos preparados. Preparando automáticamente todos los cambios...", Language::French => "Aucun fichier indexé. Indexation automatique de tous les changements...", Language::German => "Keine Dateien bereitgestellt. Alle Änderungen werden automatisch bereitgestellt...", } } pub fn push_after_commit(&self) -> &str { match self.language { Language::English => "Push changes to remote?", Language::Chinese => "推送更改到远程仓库?", Language::Japanese => "リモートに変更をプッシュしますか?", Language::Korean => "원격으로 변경 사항을 푸시하시겠습니까?", Language::Spanish => "¿Enviar cambios al remoto?", Language::French => "Envoyer les modifications au distant ?", Language::German => "Änderungen an Remote pushen?", } } pub fn push_after_tag(&self) -> &str { match self.language { Language::English => "Push tag to remote?", Language::Chinese => "推送标签到远程仓库?", Language::Japanese => "リモートにタグをプッシュしますか?", Language::Korean => "원격으로 태그를 푸시하시겠습니까?", Language::Spanish => "¿Enviar etiqueta al remoto?", Language::French => "Envoyer l'étiquette au distant ?", Language::German => "Tag an Remote pushen?", } } pub fn pushing_commit(&self, remote: &str) -> String { match self.language { Language::English => format!("→ Pushing commit to {}...", remote), Language::Chinese => format!("→ 正在推送提交到 {}...", remote), Language::Japanese => format!("→ コミットを{}にプッシュ中...", remote), Language::Korean => format!("→ 커밋을 {}로 푸시 중...", remote), Language::Spanish => format!("→ Enviando commit a {}...", remote), Language::French => format!("→ Envoi du commit vers {}...", remote), Language::German => format!("→ Commit wird an {} gepusht...", remote), } } pub fn pushed_commit(&self, remote: &str) -> String { match self.language { Language::English => format!("✓ Pushed commit to {}", remote), Language::Chinese => format!("✓ 已推送提交到 {}", remote), Language::Japanese => format!("✓ コミットを{}にプッシュしました", remote), Language::Korean => format!("✓ 커밋을 {}로 푸시함", remote), Language::Spanish => format!("✓ Commit enviado a {}", remote), Language::French => format!("✓ Commit envoyé à {}", remote), Language::German => format!("✓ Commit an {} gepusht", remote), } } pub fn ai_analyzing(&self) -> &str { match self.language { Language::English => "🤖 AI is analyzing your changes...", Language::Chinese => "🤖 AI 正在分析你的更改...", Language::Japanese => "🤖 AIが変更を分析しています...", Language::Korean => "🤖 AI가 변경 사항을 분석 중...", Language::Spanish => "🤖 La IA está analizando tus cambios...", Language::French => "🤖 L'IA analyse vos modifications...", Language::German => "🤖 KI analysiert Ihre Änderungen...", } } pub fn ai_generating_tag(&self, count: usize) -> String { match self.language { Language::English => format!("🤖 AI is generating tag message from {} commits...", count), Language::Chinese => format!("🤖 AI 正在从 {} 个提交生成标签消息...", count), Language::Japanese => format!("🤖 AIが{}個のコミットからタグメッセージを生成しています...", count), Language::Korean => format!("🤖 AI가 {}개의 커밋에서 태그 메시지를 생성 중...", count), Language::Spanish => format!("🤖 La IA está generando mensaje de etiqueta desde {} commits...", count), Language::French => format!("🤖 L'IA génère le message d'étiquette à partir de {} commits...", count), Language::German => format!("🤖 KI generiert Tag-Nachricht aus {} Commits...", count), } } pub fn ai_generating_changelog(&self) -> &str { match self.language { Language::English => "🤖 AI is generating changelog...", Language::Chinese => "🤖 AI 正在生成变更日志...", Language::Japanese => "🤖 AIが変更ログを生成しています...", Language::Korean => "🤖 AI가 변경 로그를 생성 중...", Language::Spanish => "🤖 La IA está generando el changelog...", Language::French => "🤖 L'IA génère le changelog...", Language::German => "🤖 KI generiert Changelog...", } } pub fn fetching_commits(&self) -> &str { match self.language { Language::English => "→ Fetching commits...", Language::Chinese => "→ 正在获取提交...", Language::Japanese => "→ コミットを取得中...", Language::Korean => "→ 커밋 가져오는 중...", Language::Spanish => "→ Obteniendo commits...", Language::French => "→ Récupération des commits...", Language::German => "→ Commits werden abgerufen...", } } pub fn found_commits(&self, count: usize) -> String { match self.language { Language::English => format!("✓ Found {} commits", count), Language::Chinese => format!("✓ 找到 {} 个提交", count), Language::Japanese => format!("✓ {}個のコミットが見つかりました", count), Language::Korean => format!("✓ {}개의 커밋을 찾음", count), Language::Spanish => format!("✓ Se encontraron {} commits", count), Language::French => format!("✓ {} commits trouvés", count), Language::German => format!("✓ {} Commits gefunden", count), } } pub fn version_selection(&self) -> &str { match self.language { Language::English => "Version selection:", Language::Chinese => "版本选择:", Language::Japanese => "バージョン選択:", Language::Korean => "버전 선택:", Language::Spanish => "Selección de versión:", Language::French => "Sélection de version :", Language::German => "Versionsauswahl:", } } pub fn latest_version(&self) -> &str { match self.language { Language::English => "Latest version:", Language::Chinese => "最新版本:", Language::Japanese => "最新バージョン:", Language::Korean => "최신 버전:", Language::Spanish => "Última versión:", Language::French => "Dernière version :", Language::German => "Neueste Version:", } } pub fn no_existing_version_tags(&self) -> &str { match self.language { Language::English => "No existing version tags found", Language::Chinese => "未找到现有的版本标签", Language::Japanese => "既存のバージョンタグが見つかりません", Language::Korean => "기존 버전 태그를 찾을 수 없음", Language::Spanish => "No se encontraron etiquetas de versión existentes", Language::French => "Aucune étiquette de version existante trouvée", Language::German => "Keine vorhandenen Versionstags gefunden", } } pub fn suggested_bump(&self) -> &str { match self.language { Language::English => "Suggested bump:", Language::Chinese => "建议的版本升级:", Language::Japanese => "提案されたバンプ:", Language::Korean => "제안된 버전 증가:", Language::Spanish => "Incremento sugerido:", Language::French => "Bump suggéré :", Language::German => "Vorgeschlagener Bump:", } } pub fn use_this_version(&self) -> &str { match self.language { Language::English => "Use this version?", Language::Chinese => "使用此版本?", Language::Japanese => "このバージョンを使用しますか?", Language::Korean => "이 버전을 사용하시겠습니까?", Language::Spanish => "¿Usar esta versión?", Language::French => "Utiliser cette version ?", Language::German => "Diese Version verwenden?", } } pub fn pushing_tag(&self, remote: &str) -> String { match self.language { Language::English => format!("→ Pushing tag to {}...", remote), Language::Chinese => format!("→ 正在推送标签到 {}...", remote), Language::Japanese => format!("→ タグを{}にプッシュ中...", remote), Language::Korean => format!("→ 태그를 {}로 푸시 중...", remote), Language::Spanish => format!("→ Enviando etiqueta a {}...", remote), Language::French => format!("→ Envoi de l'étiquette vers {}...", remote), Language::German => format!("→ Tag wird an {} gepusht...", remote), } } pub fn pushed_tag(&self, remote: &str) -> String { match self.language { Language::English => format!("✓ Pushed tag to {}", remote), Language::Chinese => format!("✓ 已推送标签到 {}", remote), Language::Japanese => format!("✓ タグを{}にプッシュしました", remote), Language::Korean => format!("✓ 태그를 {}로 푸시함", remote), Language::Spanish => format!("✓ Etiqueta enviada a {}", remote), Language::French => format!("✓ Étiquette envoyée à {}", remote), Language::German => format!("✓ Tag an {} gepusht", remote), } } pub fn cancelled(&self) -> &str { match self.language { Language::English => "Cancelled.", Language::Chinese => "已取消。", Language::Japanese => "キャンセルされました。", Language::Korean => "취소됨.", Language::Spanish => "Cancelado.", Language::French => "Annulé.", Language::German => "Abgebrochen.", } } pub fn select_commit_type(&self) -> &str { match self.language { Language::English => "Select commit type", Language::Chinese => "选择提交类型", Language::Japanese => "コミットタイプを選択", Language::Korean => "커밋 유형 선택", Language::Spanish => "Seleccionar tipo de commit", Language::French => "Sélectionner le type de commit", Language::German => "Commit-Typ auswählen", } } pub fn scope_optional(&self) -> &str { match self.language { Language::English => "Scope (optional, press Enter to skip)", Language::Chinese => "范围(可选,按 Enter 跳过)", Language::Japanese => "スコープ(オプション、Enterでスキップ)", Language::Korean => "범위(선택 사항, Enter로 건너뜀)", Language::Spanish => "Ámbito (opcional, presiona Enter para omitir)", Language::French => "Portée (optionnel, appuyez sur Entrée pour ignorer)", Language::German => "Bereich (optional, Enter zum Überspringen)", } } pub fn description(&self) -> &str { match self.language { Language::English => "Description", Language::Chinese => "描述", Language::Japanese => "説明", Language::Korean => "설명", Language::Spanish => "Descripción", Language::French => "Description", Language::German => "Beschreibung", } } pub fn breaking_change(&self) -> &str { match self.language { Language::English => "Is this a breaking change?", Language::Chinese => "这是破坏性更改吗?", Language::Japanese => "これは破壊的変更ですか?", Language::Korean => "이것은 주요 변경 사항입니까?", Language::Spanish => "¿Es este un cambio rupturista?", Language::French => "Est-ce un changement cassant ?", Language::German => "Ist dies ein Breaking Change?", } } pub fn add_body(&self) -> &str { match self.language { Language::English => "Add body to commit?", Language::Chinese => "添加提交正文?", Language::Japanese => "コミットに本文を追加しますか?", Language::Korean => "커밋에 본문을 추가하시겠습니까?", Language::Spanish => "¿Añadir cuerpo al commit?", Language::French => "Ajouter un corps au commit ?", Language::German => "Body zum Commit hinzufügen?", } } pub fn enter_commit_body(&self) -> &str { match self.language { Language::English => "Enter commit body...", Language::Chinese => "输入提交正文...", Language::Japanese => "コミット本文を入力...", Language::Korean => "커밋 본문 입력...", Language::Spanish => "Introduce el cuerpo del commit...", Language::French => "Saisissez le corps du commit...", Language::German => "Commit-Body eingeben...", } } pub fn open_editor(&self) -> &str { match self.language { Language::English => "Open editor for tag message?", Language::Chinese => "打开编辑器编辑标签消息?", Language::Japanese => "タグメッセージ用にエディタを開きますか?", Language::Korean => "태그 메시지를 위해 편집기를 여시겠습니까?", Language::Spanish => "¿Abrir editor para mensaje de etiqueta?", Language::French => "Ouvrir l'éditeur pour le message d'étiquette ?", Language::German => "Editor für Tag-Nachricht öffnen?", } } pub fn tag_message(&self) -> &str { match self.language { Language::English => "Tag message", Language::Chinese => "标签消息", Language::Japanese => "タグメッセージ", Language::Korean => "태그 메시지", Language::Spanish => "Mensaje de etiqueta", Language::French => "Message d'étiquette", Language::German => "Tag-Nachricht", } } pub fn version(&self) -> &str { match self.language { Language::English => "Version", Language::Chinese => "版本", Language::Japanese => "バージョン", Language::Korean => "버전", Language::Spanish => "Versión", Language::French => "Version", Language::German => "Version", } } pub fn unreleased(&self) -> &str { match self.language { Language::English => "Unreleased", Language::Chinese => "未发布", Language::Japanese => "未リリース", Language::Korean => "릴리스되지 않음", Language::Spanish => "Sin lanzar", Language::French => "Non publié", Language::German => "Unveröffentlicht", } } pub fn no_commits_found(&self) -> &str { match self.language { Language::English => "No commits found in the specified range", Language::Chinese => "在指定范围内未找到提交", Language::Japanese => "指定された範囲でコミットが見つかりませんでした", Language::Korean => "지정된 범위에서 커밋을 찾을 수 없음", Language::Spanish => "No se encontraron commits en el rango especificado", Language::French => "Aucun commit trouvé dans la plage spécifiée", Language::German => "Keine Commits im angegebenen Bereich gefunden", } } pub fn write_to_file(&self, path: &str) -> String { match self.language { Language::English => format!("Write to {:?}?", path), Language::Chinese => format!("写入 {:?}?", path), Language::Japanese => format!("{:?} に書き込みますか?", path), Language::Korean => format!("{:?}에 쓰시겠습니까?", path), Language::Spanish => format!("¿Escribir en {:?}?", path), Language::French => format!("Écrire dans {:?} ?", path), Language::German => format!("In {:?} schreiben?", path), } } pub fn initialized_changelog(&self, path: &str) -> String { match self.language { Language::English => format!("✓ Initialized changelog at {:?}", path), Language::Chinese => format!("✓ 已在 {:?} 初始化变更日志", path), Language::Japanese => format!("✓ {:?}で変更ログを初期化しました", path), Language::Korean => format!("✓ {:?}에서 변경 로그 초기화됨", path), Language::Spanish => format!("✓ Changelog inicializado en {:?}", path), Language::French => format!("✓ Changelog initialisé à {:?}", path), Language::German => format!("✓ Changelog bei {:?} initialisiert", path), } } pub fn staged_files(&self, count: usize) -> String { match self.language { Language::English => format!("Staged files ({}):", count), Language::Chinese => format!("已暂存文件({}):", count), Language::Japanese => format!("ステージされたファイル({}):", count), Language::Korean => format!("스테이징된 파일({}):", count), Language::Spanish => format!("Archivos preparados ({}):", count), Language::French => format!("Fichiers indexés ({}):", count), Language::German => format!("Bereitgestellte Dateien ({}):", count), } } pub fn generating_commit_message(&self) -> &str { match self.language { Language::English => "Generating commit message...", Language::Chinese => "正在生成提交消息...", Language::Japanese => "コミットメッセージを生成中...", Language::Korean => "커밋 메시지 생성 중...", Language::Spanish => "Generando mensaje de commit...", Language::French => "Génération du message de commit...", Language::German => "Commit-Nachricht wird generiert...", } } pub fn generated_commit_message(&self) -> &str { match self.language { Language::English => "Generated commit message:", Language::Chinese => "生成的提交消息:", Language::Japanese => "生成されたコミットメッセージ:", Language::Korean => "생성된 커밋 메시지:", Language::Spanish => "Mensaje de commit generado:", Language::French => "Message de commit généré :", Language::German => "Generierte Commit-Nachricht:", } } pub fn what_would_you_like_to_do(&self) -> &str { match self.language { Language::English => "What would you like to do?", Language::Chinese => "你想做什么?", Language::Japanese => "何をしますか?", Language::Korean => "무엇을 하시겠습니까?", Language::Spanish => "¿Qué te gustaría hacer?", Language::French => "Que souhaitez-vous faire ?", Language::German => "Was möchten Sie tun?", } } pub fn accept_and_commit(&self) -> &str { match self.language { Language::English => "✓ Accept and commit", Language::Chinese => "✓ 接受并提交", Language::Japanese => "✓ 受け入れてコミット", Language::Korean => "✓ 수락하고 커밋", Language::Spanish => "✓ Aceptar y hacer commit", Language::French => "✓ Accepter et commiter", Language::German => "✓ Akzeptieren und committen", } } pub fn regenerate(&self) -> &str { match self.language { Language::English => "🔄 Regenerate", Language::Chinese => "🔄 重新生成", Language::Japanese => "🔄 再生成", Language::Korean => "🔄 재생성", Language::Spanish => "🔄 Regenerar", Language::French => "🔄 Régénérer", Language::German => "🔄 Neu generieren", } } pub fn edit(&self) -> &str { match self.language { Language::English => "✏️ Edit", Language::Chinese => "✏️ 编辑", Language::Japanese => "✏️ 編集", Language::Korean => "✏️ 편집", Language::Spanish => "✏️ Editar", Language::French => "✏️ Modifier", Language::German => "✏️ Bearbeiten", } } pub fn copy_to_clipboard(&self) -> &str { match self.language { Language::English => "📋 Copy to clipboard", Language::Chinese => "📋 复制到剪贴板", Language::Japanese => "📋 クリップボードにコピー", Language::Korean => "📋 클립보드에 복사", Language::Spanish => "📋 Copiar al portapapeles", Language::French => "📋 Copier dans le presse-papiers", Language::German => "📋 In die Zwischenablage kopieren", } } pub fn cancel(&self) -> &str { match self.language { Language::English => "❌ Cancel", Language::Chinese => "❌ 取消", Language::Japanese => "❌ キャンセル", Language::Korean => "❌ 취소", Language::Spanish => "❌ Cancelar", Language::French => "❌ Annuler", Language::German => "❌ Abbrechen", } } pub fn regenerating(&self) -> &str { match self.language { Language::English => "Regenerating...", Language::Chinese => "正在重新生成...", Language::Japanese => "再生成中...", Language::Korean => "재생성 중...", Language::Spanish => "Regenerando...", Language::French => "Régénération...", Language::German => "Neu generieren...", } } pub fn copied_to_clipboard(&self) -> &str { match self.language { Language::English => "Copied to clipboard!", Language::Chinese => "已复制到剪贴板!", Language::Japanese => "クリップボードにコピーしました!", Language::Korean => "클립보드에 복사됨!", Language::Spanish => "¡Copiado al portapapeles!", Language::French => "Copié dans le presse-papiers !", Language::German => "In die Zwischenablage kopiert!", } } pub fn cancelled_by_user(&self) -> &str { match self.language { Language::English => "Cancelled by user", Language::Chinese => "用户已取消", Language::Japanese => "ユーザーによってキャンセルされました", Language::Korean => "사용자가 취소함", Language::Spanish => "Cancelado por el usuario", Language::French => "Annulé par l'utilisateur", Language::German => "Vom Benutzer abgebrochen", } } pub fn select_option(&self) -> &str { match self.language { Language::English => "Select option", Language::Chinese => "选择选项", Language::Japanese => "オプションを選択", Language::Korean => "옵션 선택", Language::Spanish => "Seleccionar opción", Language::French => "Sélectionner une option", Language::German => "Option auswählen", } } pub fn auto_detect_bump(&self) -> &str { match self.language { Language::English => "Auto-detect bump from commits", Language::Chinese => "从提交自动检测版本升级", Language::Japanese => "コミットからバンプを自動検出", Language::Korean => "커밋에서 버전 증가 자동 감지", Language::Spanish => "Detectar incremento automáticamente desde commits", Language::French => "Détecter automatiquement le bump depuis les commits", Language::German => "Bump automatisch aus Commits erkennen", } } pub fn bump_major_version(&self) -> &str { match self.language { Language::English => "Bump major version", Language::Chinese => "升级主版本", Language::Japanese => "メジャーバージョンを上げる", Language::Korean => "메이저 버전 증가", Language::Spanish => "Incrementar versión mayor", Language::French => "Incrémenter version majeure", Language::German => "Major-Version erhöhen", } } pub fn bump_minor_version(&self) -> &str { match self.language { Language::English => "Bump minor version", Language::Chinese => "升级次版本", Language::Japanese => "マイナーバージョンを上げる", Language::Korean => "마이너 버전 증가", Language::Spanish => "Incrementar versión menor", Language::French => "Incrémenter version mineure", Language::German => "Minor-Version erhöhen", } } pub fn bump_patch_version(&self) -> &str { match self.language { Language::English => "Bump patch version", Language::Chinese => "升级补丁版本", Language::Japanese => "パッチバージョンを上げる", Language::Korean => "패치 버전 증가", Language::Spanish => "Incrementar versión de parche", Language::French => "Incrémenter version de correctif", Language::German => "Patch-Version erhöhen", } } pub fn enter_custom_version(&self) -> &str { match self.language { Language::English => "Enter custom version", Language::Chinese => "输入自定义版本", Language::Japanese => "カスタムバージョンを入力", Language::Korean => "사용자 지정 버전 입력", Language::Spanish => "Ingresar versión personalizada", Language::French => "Saisir une version personnalisée", Language::German => "Benutzerdefinierte Version eingeben", } } pub fn enter_custom_tag_name(&self) -> &str { match self.language { Language::English => "Enter custom tag name", Language::Chinese => "输入自定义标签名称", Language::Japanese => "カスタムタグ名を入力", Language::Korean => "사용자 지정 태그 이름 입력", Language::Spanish => "Ingresar nombre de etiqueta personalizado", Language::French => "Saisir un nom d'étiquette personnalisé", Language::German => "Benutzerdefinierten Tag-Namen eingeben", } } pub fn enter_version(&self) -> &str { match self.language { Language::English => "Enter version (e.g., 1.2.3)", Language::Chinese => "输入版本(例如:1.2.3)", Language::Japanese => "バージョンを入力(例:1.2.3)", Language::Korean => "버전 입력(예: 1.2.3)", Language::Spanish => "Ingresar versión (ej: 1.2.3)", Language::French => "Saisir la version (ex: 1.2.3)", Language::German => "Version eingeben (z.B. 1.2.3)", } } pub fn enter_tag_name(&self) -> &str { match self.language { Language::English => "Enter tag name", Language::Chinese => "输入标签名称", Language::Japanese => "タグ名を入力", Language::Korean => "태그 이름 입력", Language::Spanish => "Ingresar nombre de etiqueta", Language::French => "Saisir le nom de l'étiquette", Language::German => "Tag-Namen eingeben", } } pub fn profile_description(&self) -> &str { match self.language { Language::English => "Profile description (optional)", Language::Chinese => "配置文件描述(可选)", Language::Japanese => "プロファイルの説明(オプション)", Language::Korean => "프로필 설명(선택 사항)", Language::Spanish => "Descripción del perfil (opcional)", Language::French => "Description du profil (optionnel)", Language::German => "Profilbeschreibung (optional)", } } pub fn is_work_profile(&self) -> &str { match self.language { Language::English => "Is this a work profile?", Language::Chinese => "这是工作配置文件吗?", Language::Japanese => "これはワークプロファイルですか?", Language::Korean => "이것은 작업 프로필입니까?", Language::Spanish => "¿Es este un perfil de trabajo?", Language::French => "Est-ce un profil de travail ?", Language::German => "Ist dies ein Arbeitsprofil?", } } pub fn organization_name(&self) -> &str { match self.language { Language::English => "Organization/Company name", Language::Chinese => "组织/公司名称", Language::Japanese => "組織/会社名", Language::Korean => "조직/회사 이름", Language::Spanish => "Nombre de organización/empresa", Language::French => "Nom de l'organisation/entreprise", Language::German => "Organisations-/Unternehmensname", } } pub fn configure_ssh(&self) -> &str { match self.language { Language::English => "Configure SSH key?", Language::Chinese => "配置 SSH 密钥?", Language::Japanese => "SSHキーを設定しますか?", Language::Korean => "SSH 키를 구성하시겠습니까?", Language::Spanish => "¿Configurar clave SSH?", Language::French => "Configurer la clé SSH ?", Language::German => "SSH-Schlüssel konfigurieren?", } } pub fn configure_gpg(&self) -> &str { match self.language { Language::English => "Configure GPG signing?", Language::Chinese => "配置 GPG 签名?", Language::Japanese => "GPG署名を設定しますか?", Language::Korean => "GPG 서명을 구성하시겠습니까?", Language::Spanish => "¿Configurar firma GPG?", Language::French => "Configurer la signature GPG ?", Language::German => "GPG-Signatur konfigurieren?", } } pub fn ssh_private_key_path(&self) -> &str { match self.language { Language::English => "SSH private key path", Language::Chinese => "SSH 私钥路径", Language::Japanese => "SSH秘密鍵パス", Language::Korean => "SSH 개인 키 경로", Language::Spanish => "Ruta de clave privada SSH", Language::French => "Chemin de la clé privée SSH", Language::German => "Pfad zum privaten SSH-Schlüssel", } } pub fn has_passphrase(&self) -> &str { match self.language { Language::English => "Does this key have a passphrase?", Language::Chinese => "此密钥有密码吗?", Language::Japanese => "この鍵にパスフレーズがありますか?", Language::Korean => "이 키에 암호가 있습니까?", Language::Spanish => "¿Esta clave tiene frase de paso?", Language::French => "Cette clé a-t-elle une phrase de passe ?", Language::German => "Hat dieser Schlüssel eine Passphrase?", } } pub fn ssh_key_passphrase(&self) -> &str { match self.language { Language::English => "SSH key passphrase", Language::Chinese => "SSH 密钥密码", Language::Japanese => "SSHキーパスフレーズ", Language::Korean => "SSH 키 암호", Language::Spanish => "Frase de paso de clave SSH", Language::French => "Phrase de passe de clé SSH", Language::German => "SSH-Schlüssel-Passphrase", } } pub fn gpg_key_id(&self) -> &str { match self.language { Language::English => "GPG key ID", Language::Chinese => "GPG 密钥 ID", Language::Japanese => "GPGキーID", Language::Korean => "GPG 키 ID", Language::Spanish => "ID de clave GPG", Language::French => "ID de clé GPG", Language::German => "GPG-Schlüssel-ID", } } pub fn use_gpg_agent(&self) -> &str { match self.language { Language::English => "Use GPG agent?", Language::Chinese => "使用 GPG 代理?", Language::Japanese => "GPGエージェントを使用しますか?", Language::Korean => "GPG 에이전트를 사용하시겠습니까?", Language::Spanish => "¿Usar agente GPG?", Language::French => "Utiliser l'agent GPG ?", Language::German => "GPG-Agent verwenden?", } } pub fn openai_api_key(&self) -> &str { match self.language { Language::English => "OpenAI API key", Language::Chinese => "OpenAI API 密钥", Language::Japanese => "OpenAI APIキー", Language::Korean => "OpenAI API 키", Language::Spanish => "Clave API de OpenAI", Language::French => "Clé API OpenAI", Language::German => "OpenAI-API-Schlüssel", } } pub fn anthropic_api_key(&self) -> &str { match self.language { Language::English => "Anthropic API key", Language::Chinese => "Anthropic API 密钥", Language::Japanese => "Anthropic APIキー", Language::Korean => "Anthropic API 키", Language::Spanish => "Clave API de Anthropic", Language::French => "Clé API Anthropic", Language::German => "Anthropic-API-Schlüssel", } } pub fn kimi_api_key(&self) -> &str { match self.language { Language::English => "Kimi API key", Language::Chinese => "Kimi API 密钥", Language::Japanese => "Kimi APIキー", Language::Korean => "Kimi API 키", Language::Spanish => "Clave API de Kimi", Language::French => "Clé API Kimi", Language::German => "Kimi-API-Schlüssel", } } pub fn deepseek_api_key(&self) -> &str { match self.language { Language::English => "DeepSeek API key", Language::Chinese => "DeepSeek API 密钥", Language::Japanese => "DeepSeek APIキー", Language::Korean => "DeepSeek API 키", Language::Spanish => "Clave API de DeepSeek", Language::French => "Clé API DeepSeek", Language::German => "DeepSeek-API-Schlüssel", } } pub fn openrouter_api_key(&self) -> &str { match self.language { Language::English => "OpenRouter API key", Language::Chinese => "OpenRouter API 密钥", Language::Japanese => "OpenRouter APIキー", Language::Korean => "OpenRouter API 키", Language::Spanish => "Clave API de OpenRouter", Language::French => "Clé API OpenRouter", Language::German => "OpenRouter-API-Schlüssel", } } pub fn model(&self) -> &str { match self.language { Language::English => "Model", Language::Chinese => "模型", Language::Japanese => "モデル", Language::Korean => "모델", Language::Spanish => "Modelo", Language::French => "Modèle", Language::German => "Modell", } } pub fn base_url(&self) -> &str { match self.language { Language::English => "Base URL (optional)", Language::Chinese => "基础 URL(可选)", Language::Japanese => "ベースURL(オプション)", Language::Korean => "기본 URL(선택 사항)", Language::Spanish => "URL base (opcional)", Language::French => "URL de base (optionnel)", Language::German => "Basis-URL (optional)", } } pub fn configuration_updated(&self) -> &str { match self.language { Language::English => "✓ Configuration updated", Language::Chinese => "✓ 配置已更新", Language::Japanese => "✓ 設定を更新しました", Language::Korean => "✓ 구성이 업데이트됨", Language::Spanish => "✓ Configuración actualizada", Language::French => "✓ Configuration mise à jour", Language::German => "✓ Konfiguration aktualisiert", } } pub fn set_value(&self, key: &str, value: &str) -> String { match self.language { Language::English => format!("✓ Set {} = {}", key, value), Language::Chinese => format!("✓ 设置 {} = {}", key, value), Language::Japanese => format!("✓ {} = {} を設定", key, value), Language::Korean => format!("✓ {} = {} 설정됨", key, value), Language::Spanish => format!("✓ Establecer {} = {}", key, value), Language::French => format!("✓ Définir {} = {}", key, value), Language::German => format!("✓ {} = {} festlegen", key, value), } } pub fn select_output_language(&self) -> &str { match self.language { Language::English => "Select output language:", Language::Chinese => "选择输出语言:", Language::Japanese => "出力言語を選択:", Language::Korean => "출력 언어 선택:", Language::Spanish => "Seleccionar idioma de salida:", Language::French => "Sélectionner la langue de sortie :", Language::German => "Ausgabesprache auswählen:", } } }