import type { TranslationKeys } from "./en.js"; export const ja: TranslationKeys = { migrationBanner: { successTitle: "SnapOtter 1.x のデータをインポートしました。", successBody: "以前のバージョンから {users} 人のユーザーと {files} 件の保存済みファイルを移行しました。", warningTitle: "1.x データベースが見つかりましたが、インポートされていません。", warningBody: "このインスタンスには既にデータがあるため、1.x データベースはインポートされませんでした。インポートには空のインスタンスが必要です。アップグレードガイドをご覧ください。", dismiss: "閉じる", }, common: { upload: "パソコンからアップロード", process: "処理", download: "ダウンロード", cancel: "キャンセル", save: "保存", delete: "削除", settings: "設定", search: "ツールを検索...", dropFiles: "ここにファイルをドロップするかアップロードボタンをクリック", loading: "読み込み中...", saving: "保存中...", error: "エラーが発生しました", confirm: "確認", close: "閉じる", back: "戻る", next: "次へ", clear: "クリア", copy: "コピー", copied: "コピーしました!", noResults: "結果が見つかりません", showLess: "折りたたむ", showMore: "あと{count}件を表示", experimental: "実験的", enabled: "有効", disabled: "無効", rename: "名前変更", edit: "編集", actions: "操作", create: "作成", or: "または", goHome: "ホームへ", somethingWentWrong: "問題が発生しました", unexpectedError: "予期しないエラーが発生しました。", retry: "再試行", privacyPolicy: "プライバシーポリシー", pageNotFound: "ページが見つかりません", pageNotFoundDescription: "お探しのページは存在しないか、移動された可能性があります。", }, feedback: { navLabel: "フィードバックを送る", navButtonLabel: "フィードバック", dialogTitle: "フィードバックを送る", toolDialogTitle: "このツールの使い心地はいかがでしたか?", failedDialogTitle: "ツールの問題を報告", adminDialogTitle: "セットアップはいかがでしたか?", closeLabel: "フィードバックダイアログを閉じる", privacyNote: "フィードバックは、送信した場合にのみ送られます。SnapOtterがファイル、ファイルの内容、ファイル名、非公開の出力を含めることは一切ありません。", typeLabel: "フィードバックの種類", sentimentLabel: "簡単な評価", messageLabel: "フィードバック", messagePlaceholder: "うまくいったこと、うまくいかなかったこと、SnapOtterをより良くするためのご意見をお聞かせください。", improveFirstLabel: "最初に改善すべき点は何ですか?", improveFirstPlaceholder: "セットアップで手間取った点をお聞かせください。", contactOkLabel: "このフィードバックについて連絡を受け取ってもよい。", emailPlaceholder: "メールアドレス(任意)", namePlaceholder: "名前(任意)", companyPlaceholder: "会社・組織名(任意)", submit: "フィードバックを送信", submitting: "送信中...", submitFailed: "フィードバックを送信できませんでした。もう一度お試しください。", searchMissTitle: "ツールをリクエスト", searchMissContext: "検索した内容: {query}", searchMissDiscussionsFallback: "記録できませんでした。Discussions でリクエストを開いてください。", offlineDescription: "このインスタンスは分析が無効になっているため、フィードバックはここには記録されません。SnapOtter チームに直接連絡することもできます。", offlinePublicNote: "GitHub の Issue は公開されます。", offlineGithubButton: "GitHub で Issue を作成", offlineEmailButton: "メールで連絡", thanksTitle: "フィードバックありがとうございます。", thanksDescription: "ファイルや非公開のコンテンツを収集することなく、SnapOtterの改善に役立ちます。", quickThanks: "お知らせありがとうございます。", reportIssue: "問題を報告", toolPromptTitle: "このツールの使い心地はいかがでしたか?", toolPromptDescription: "ひとことのご意見がSnapOtterの改善に役立ちます。", dismissPrompt: "フィードバックの案内を閉じる", workedWell: "うまくいった", dontAskAgain: "今後は表示しない", shareFeedback: "フィードバックを送る", remindLater: "後で通知する", adminCardTitle: "セットアップはいかがでしたか?", adminCardDescription: "管理者からのひとことが、Docker、ソースからのインストール、ドキュメントの改善に役立ちます。", installMethodLabel: "インストール方法", frictionAreaLabel: "最も苦労したセットアップ項目", importantAreasLabel: "最も重要な項目", sentiments: { great: "良い", okay: "まあまあ", issue: "問題があった", missing: "何か足りない", bug: "バグ", idea: "アイデア", other: "その他", }, types: { bug: "バグ", feature_request: "機能リクエスト", confusing_ux: "分かりにくいUX", performance: "パフォーマンス", other: "その他", }, installMethods: { docker: "Docker", docker_compose: "Docker Compose", source: "ソースからビルド", cloud: "クラウド・デモ", other: "その他", }, usageTypes: { personal: "自分だけ", team_internal: "小規模なチーム", business_workflow: "会社・組織", education: "教育", evaluating: "評価・検討", }, frictionAreas: { smooth: "特になし、スムーズだった", docker: "Docker・コンテナのセットアップ", environment_variables: "環境変数", auth: "認証・SSO", storage: "ストレージ・アップロード", workers: "ワーカー・キュー", ai_tools: "AIツール", docs: "ドキュメント", performance: "パフォーマンス・リソース", other: "その他", }, importantAreas: { images: "画像", pdf_docs: "PDF・ドキュメント", video_audio: "動画・オーディオ", batch_workflows: "バッチ処理", ai_tools: "AIツール", }, }, onboarding: { usageSurveyTitle: "SnapOtterをどのように使っていますか?", usageSurveyToolsLabel: "あなたにとって最も重要なものは?", pickAnyHint: "(いくつでも選択可)", continueLabel: "続ける", }, categories: { essentials: "基本ツール", adjustments: "調整", enhance: "補正 & AI", watermark: "ウォーターマークとオーバーレイ", layout: "レイアウトと構図", utilities: "ユーティリティ", optimization: "最適化", format: "フォーマットと変換", "video-edit": "Video", "video-convert": "変換", "video-effects": "エフェクト & 合成", "video-subtitles": "字幕", "video-metadata": "メタデータ", "audio-edit": "編集", "audio-convert": "変換", "audio-effects": "エフェクト & 合成", "audio-metadata": "メタデータ", "pdf-organize": "整理", "pdf-edit": "編集 & 注釈", "pdf-security": "セキュリティ", "pdf-optimize": "最適化", "doc-convert": "変換", data: "ファイル", archives: "アーカイブ", }, modalities: { image: "画像", video: "動画", audio: "オーディオ", documentsAndFiles: "PDF & ファイル", }, tools: { // BEGIN conversion-presets (generated by scripts/generate-conversion-i18n.mjs) "jpg-to-png": { name: "JPGをPNGに変換", description: "JPGをPNGにオンラインで変換。高速、無料、プライベート。", }, "png-to-jpg": { name: "PNGをJPGに変換", description: "PNGをJPGにオンラインで変換。高速、無料、プライベート。", }, "jpg-to-webp": { name: "JPGをWebPに変換", description: "JPGをWebPにオンラインで変換。高速、無料、プライベート。", }, "png-to-webp": { name: "PNGをWebPに変換", description: "PNGをWebPにオンラインで変換。高速、無料、プライベート。", }, "webp-to-jpg": { name: "WebPをJPGに変換", description: "WebPをJPGにオンラインで変換。高速、無料、プライベート。", }, "webp-to-png": { name: "WebPをPNGに変換", description: "WebPをPNGにオンラインで変換。高速、無料、プライベート。", }, "jpg-to-avif": { name: "JPGをAVIFに変換", description: "JPGをAVIFにオンラインで変換。高速、無料、プライベート。", }, "png-to-avif": { name: "PNGをAVIFに変換", description: "PNGをAVIFにオンラインで変換。高速、無料、プライベート。", }, "webp-to-avif": { name: "WebPをAVIFに変換", description: "WebPをAVIFにオンラインで変換。高速、無料、プライベート。", }, "heic-to-jpg": { name: "HEICをJPGに変換", description: "HEICをJPGにオンラインで変換。高速、無料、プライベート。", }, "heic-to-png": { name: "HEICをPNGに変換", description: "HEICをPNGにオンラインで変換。高速、無料、プライベート。", }, "heic-to-avif": { name: "HEICをAVIFに変換", description: "HEICをAVIFにオンラインで変換。高速、無料、プライベート。", }, "jpg-to-gif": { name: "JPGをGIFに変換", description: "JPGをGIFにオンラインで変換。高速、無料、プライベート。", }, "png-to-gif": { name: "PNGをGIFに変換", description: "PNGをGIFにオンラインで変換。高速、無料、プライベート。", }, "gif-to-jpg": { name: "GIFをJPGに変換", description: "GIFをJPGにオンラインで変換。高速、無料、プライベート。", }, "gif-to-png": { name: "GIFをPNGに変換", description: "GIFをPNGにオンラインで変換。高速、無料、プライベート。", }, "webp-to-gif": { name: "WebPをGIFに変換", description: "WebPをGIFにオンラインで変換。高速、無料、プライベート。", }, "jpg-to-tiff": { name: "JPGをTIFFに変換", description: "JPGをTIFFにオンラインで変換。高速、無料、プライベート。", }, "png-to-tiff": { name: "PNGをTIFFに変換", description: "PNGをTIFFにオンラインで変換。高速、無料、プライベート。", }, "tiff-to-jpg": { name: "TIFFをJPGに変換", description: "TIFFをJPGにオンラインで変換。高速、無料、プライベート。", }, "tiff-to-png": { name: "TIFFをPNGに変換", description: "TIFFをPNGにオンラインで変換。高速、無料、プライベート。", }, "psd-to-jpg": { name: "PSDをJPGに変換", description: "PSDをJPGにオンラインで変換。高速、無料、プライベート。", }, "psd-to-png": { name: "PSDをPNGに変換", description: "PSDをPNGにオンラインで変換。高速、無料、プライベート。", }, "png-to-eps": { name: "PNGをEPSに変換", description: "PNGをEPSにオンラインで変換。高速、無料、プライベート。", }, "jpg-to-eps": { name: "JPGをEPSに変換", description: "JPGをEPSにオンラインで変換。高速、無料、プライベート。", }, "eps-to-png": { name: "EPSをPNGに変換", description: "EPSをPNGにオンラインで変換。高速、無料、プライベート。", }, "eps-to-jpg": { name: "EPSをJPGに変換", description: "EPSをJPGにオンラインで変換。高速、無料、プライベート。", }, "png-to-svg": { name: "PNGをSVGに変換", description: "PNGをSVGにオンラインで変換。高速、無料、プライベート。", }, "jpg-to-svg": { name: "JPGをSVGに変換", description: "JPGをSVGにオンラインで変換。高速、無料、プライベート。", }, "tiff-to-svg": { name: "TIFFをSVGに変換", description: "TIFFをSVGにオンラインで変換。高速、無料、プライベート。", }, "psd-to-svg": { name: "PSDをSVGに変換", description: "PSDをSVGにオンラインで変換。高速、無料、プライベート。", }, "eps-to-svg": { name: "EPSをSVGに変換", description: "EPSをSVGにオンラインで変換。高速、無料、プライベート。", }, "svg-to-png": { name: "SVGをPNGに変換", description: "SVGをPNGにオンラインで変換。高速、無料、プライベート。", }, "svg-to-jpg": { name: "SVGをJPGに変換", description: "SVGをJPGにオンラインで変換。高速、無料、プライベート。", }, "jpg-to-pdf": { name: "JPGをPDFに変換", description: "JPGをPDFにオンラインで変換。高速、無料、プライベート。", }, "png-to-pdf": { name: "PNGをPDFに変換", description: "PNGをPDFにオンラインで変換。高速、無料、プライベート。", }, "heic-to-pdf": { name: "HEICをPDFに変換", description: "HEICをPDFにオンラインで変換。高速、無料、プライベート。", }, "tiff-to-pdf": { name: "TIFFをPDFに変換", description: "TIFFをPDFにオンラインで変換。高速、無料、プライベート。", }, "webp-to-pdf": { name: "WebPをPDFに変換", description: "WebPをPDFにオンラインで変換。高速、無料、プライベート。", }, "gif-to-pdf": { name: "GIFをPDFに変換", description: "GIFをPDFにオンラインで変換。高速、無料、プライベート。", }, "eps-to-pdf": { name: "EPSをPDFに変換", description: "EPSをPDFにオンラインで変換。高速、無料、プライベート。", }, "pdf-to-jpg": { name: "PDFをJPGに変換", description: "PDFをJPGにオンラインで変換。高速、無料、プライベート。", }, "pdf-to-png": { name: "PDFをPNGに変換", description: "PDFをPNGにオンラインで変換。高速、無料、プライベート。", }, "pdf-to-tiff": { name: "PDFをTIFFに変換", description: "PDFをTIFFにオンラインで変換。高速、無料、プライベート。", }, "mov-to-mp4": { name: "MOVをMP4に変換", description: "MOVをMP4にオンラインで変換。高速、無料、プライベート。", }, "webm-to-mp4": { name: "WEBMをMP4に変換", description: "WEBMをMP4にオンラインで変換。高速、無料、プライベート。", }, "mkv-to-mp4": { name: "MKVをMP4に変換", description: "MKVをMP4にオンラインで変換。高速、無料、プライベート。", }, "avi-to-mp4": { name: "AVIをMP4に変換", description: "AVIをMP4にオンラインで変換。高速、無料、プライベート。", }, "mp4-to-mov": { name: "MP4をMOVに変換", description: "MP4をMOVにオンラインで変換。高速、無料、プライベート。", }, "mp4-to-webm": { name: "MP4をWEBMに変換", description: "MP4をWEBMにオンラインで変換。高速、無料、プライベート。", }, "webm-to-mov": { name: "WEBMをMOVに変換", description: "WEBMをMOVにオンラインで変換。高速、無料、プライベート。", }, "mkv-to-mov": { name: "MKVをMOVに変換", description: "MKVをMOVにオンラインで変換。高速、無料、プライベート。", }, "avi-to-mov": { name: "AVIをMOVに変換", description: "AVIをMOVにオンラインで変換。高速、無料、プライベート。", }, "mp4-to-avi": { name: "MP4をAVIに変換", description: "MP4をAVIにオンラインで変換。高速、無料、プライベート。", }, "mov-to-avi": { name: "MOVをAVIに変換", description: "MOVをAVIにオンラインで変換。高速、無料、プライベート。", }, "mkv-to-avi": { name: "MKVをAVIに変換", description: "MKVをAVIにオンラインで変換。高速、無料、プライベート。", }, "avi-to-mkv": { name: "AVIをMKVに変換", description: "AVIをMKVにオンラインで変換。高速、無料、プライベート。", }, "mp4-to-gif": { name: "MP4をGIFに変換", description: "MP4をGIFにオンラインで変換。高速、無料、プライベート。", }, "mov-to-gif": { name: "MOVをGIFに変換", description: "MOVをGIFにオンラインで変換。高速、無料、プライベート。", }, "mkv-to-gif": { name: "MKVをGIFに変換", description: "MKVをGIFにオンラインで変換。高速、無料、プライベート。", }, "avi-to-gif": { name: "AVIをGIFに変換", description: "AVIをGIFにオンラインで変換。高速、無料、プライベート。", }, "gif-to-mp4": { name: "GIFをMP4に変換", description: "GIFをMP4にオンラインで変換。高速、無料、プライベート。", }, "gif-to-webm": { name: "GIFをWEBMに変換", description: "GIFをWEBMにオンラインで変換。高速、無料、プライベート。", }, "gif-to-mov": { name: "GIFをMOVに変換", description: "GIFをMOVにオンラインで変換。高速、無料、プライベート。", }, "mp4-to-mp3": { name: "MP4をMP3に変換", description: "MP4をMP3にオンラインで変換。高速、無料、プライベート。", }, "mov-to-mp3": { name: "MOVをMP3に変換", description: "MOVをMP3にオンラインで変換。高速、無料、プライベート。", }, "mkv-to-mp3": { name: "MKVをMP3に変換", description: "MKVをMP3にオンラインで変換。高速、無料、プライベート。", }, "webm-to-mp3": { name: "WEBMをMP3に変換", description: "WEBMをMP3にオンラインで変換。高速、無料、プライベート。", }, "avi-to-mp3": { name: "AVIをMP3に変換", description: "AVIをMP3にオンラインで変換。高速、無料、プライベート。", }, "mp4-to-wav": { name: "MP4をWAVに変換", description: "MP4をWAVにオンラインで変換。高速、無料、プライベート。", }, "mov-to-wav": { name: "MOVをWAVに変換", description: "MOVをWAVにオンラインで変換。高速、無料、プライベート。", }, "mp4-to-ogg": { name: "MP4をOGGに変換", description: "MP4をOGGにオンラインで変換。高速、無料、プライベート。", }, "m4a-to-mp3": { name: "M4AをMP3に変換", description: "M4AをMP3にオンラインで変換。高速、無料、プライベート。", }, "m4a-to-wav": { name: "M4AをWAVに変換", description: "M4AをWAVにオンラインで変換。高速、無料、プライベート。", }, "aac-to-mp3": { name: "AACをMP3に変換", description: "AACをMP3にオンラインで変換。高速、無料、プライベート。", }, "aac-to-wav": { name: "AACをWAVに変換", description: "AACをWAVにオンラインで変換。高速、無料、プライベート。", }, "aac-to-flac": { name: "AACをFLACに変換", description: "AACをFLACにオンラインで変換。高速、無料、プライベート。", }, "ogg-to-mp3": { name: "OGGをMP3に変換", description: "OGGをMP3にオンラインで変換。高速、無料、プライベート。", }, "ogg-to-wav": { name: "OGGをWAVに変換", description: "OGGをWAVにオンラインで変換。高速、無料、プライベート。", }, "wav-to-mp3": { name: "WAVをMP3に変換", description: "WAVをMP3にオンラインで変換。高速、無料、プライベート。", }, "mp3-to-wav": { name: "MP3をWAVに変換", description: "MP3をWAVにオンラインで変換。高速、無料、プライベート。", }, "flac-to-mp3": { name: "FLACをMP3に変換", description: "FLACをMP3にオンラインで変換。高速、無料、プライベート。", }, "excel-to-csv": { name: "ExcelをCSVに変換", description: "ExcelをCSVにオンラインで変換。高速、無料、プライベート。", }, // END conversion-presets resize: { name: "画像リサイズ", description: "ピクセル、パーセント、SNSプリセットでリサイズ", }, crop: { name: "画像クロップ", description: "自由クロップ、アスペクト比プリセット、シェイプクロップ", }, rotate: { name: "画像回転と反転", description: "画像の回転、反転、傾き補正" }, convert: { name: "画像変換", description: "画像フォーマット間の変換" }, compress: { name: "画像圧縮", description: "品質またはターゲットサイズでファイルサイズを削減" }, "optimize-for-web": { name: "Web最適化", description: "フォーマット変換、品質調整、ライブプレビューでWeb向けに画像を最適化", }, "strip-metadata": { name: "画像メタデータ削除", description: "EXIF、GPS、カメラ情報を削除", }, "edit-metadata": { name: "画像メタデータ編集", description: "EXIF、IPTC、XMP、GPS、キーワード、日付を編集", }, "bulk-rename": { name: "一括リネーム", description: "パターンで複数ファイルを一括リネーム" }, "image-to-pdf": { name: "画像からPDF", description: "複数の画像をPDFドキュメントに結合", }, "pdf-to-image": { name: "PDFから画像", description: "PDFページを画像に変換" }, favicon: { name: "Faviconジェネレーター", description: "すべてのFaviconとアプリアイコンサイズを生成", }, "adjust-colors": { name: "色調整", description: "明るさ、コントラスト、露出、彩度、色温度、シャープネス、エフェクト", }, sharpening: { name: "画像をシャープに", description: "アダプティブ、アンシャープマスク、ハイパスシャープニング(プリセット付き)", }, "replace-color": { name: "色の置換と反転", description: "特定の色を置換または反転", }, "color-blindness": { name: "色覚シミュレーション", description: "さまざまな色覚特性での画像の見え方をシミュレート", }, "remove-background": { name: "背景除去", description: "AIによる背景除去", }, upscale: { name: "画像アップスケール", description: "AI超解像エンハンスメント" }, "erase-object": { name: "オブジェクト消去", description: "AIで不要なオブジェクトを除去" }, ocr: { name: "画像から文字を抽出 (OCR)", description: "AIで画像からテキストを高精度に抽出", }, "ocr-pdf": { name: "PDFから文字を抽出 (OCR)", description: "AI搭載のOCRでPDF文書からテキストを抽出", }, "blur-faces": { name: "顔と個人情報のぼかし", description: "顔と機密情報を自動検出してぼかし", }, "enhance-faces": { name: "顔エンハンスメント", description: "AIで顔を修復・エンハンス", }, "smart-crop": { name: "スマートクロップ", description: "被写体、顔、トリミングベースのスマートクロップ", }, "image-enhancement": { name: "画像エンハンスメント", description: "ワンクリックで露出、コントラスト、カラー、シャープネスをスマート補正", }, "noise-removal": { name: "ノイズ除去", description: "AIによるノイズ・粒子除去", }, "red-eye-removal": { name: "赤目補正", description: "AIによるフラッシュ写真の赤目検出と補正", }, "restore-photo": { name: "写真修復", description: "AIで古い写真の傷、破れ、ダメージを修復", }, "content-aware-resize": { name: "コンテンツ認識リサイズ", description: "重要なコンテンツを保護しながらインテリジェントにリサイズ", }, "ai-canvas-expand": { name: "AIキャンバス拡張", description: "AIフィルでキャンバスを拡張", }, colorize: { name: "AIカラー化", description: "AIディープラーニングモデルで白黒写真をフルカラーに変換", }, "passport-photo": { name: "証明写真", description: "顔自動検出付き、政府規格準拠のパスポート、ビザ、身分証写真を作成", }, "transcribe-audio": { name: "音声文字起こし", description: "AI搭載の文字起こしで音声をテキストに変換", }, "auto-subtitles": { name: "自動字幕", description: "動画の音声トラックから字幕ファイルを生成", }, "transparency-fixer": { name: "PNG透過修正", description: "偽の透過PNGをワンクリックで修正", }, "background-replace": { name: "背景置換", description: "画像の背景を単色に置き換えます", }, "blur-background": { name: "背景ぼかし", description: "被写体を鮮明に保ちながら背景をぼかします", }, "watermark-text": { name: "テキストウォーターマーク", description: "テキストウォーターマークを追加", }, "watermark-image": { name: "画像ウォーターマーク", description: "ロゴをウォーターマークとして重ねる", }, "text-overlay": { name: "テキストオーバーレイ", description: "画像にスタイル付きテキストを追加", }, compose: { name: "画像合成", description: "位置と不透明度で画像をレイヤー合成" }, "meme-generator": { name: "Memeジェネレーター", description: "人気テンプレートまたは自分の画像でMemeを作成。クラシックなImpactスタイルのテキストで、フォント、色、位置をカスタマイズ可能。", }, info: { name: "画像情報", description: "すべてのメタデータと画像プロパティを表示" }, compare: { name: "画像比較", description: "2枚の画像を並べて比較" }, "find-duplicates": { name: "重複検出", description: "重複および類似画像を検出", }, "color-palette": { name: "カラーパレット", description: "画像からドミナントカラーを抽出", }, "qr-generate": { name: "QRコードジェネレーター", description: "カスタムカラー、パターン、ロゴ付きのQRコードを生成", }, "html-to-image": { name: "HTML から画像", description: "ウェブページを高品質な画像としてキャプチャ", }, "barcode-read": { name: "バーコードリーダー", description: "画像からQRコード、バーコード、二次元コードをスキャン", }, collage: { name: "コラージュとグリッド", description: "25以上のテンプレートで画像を美しいグリッドコラージュに合成", }, stitch: { name: "画像を結合", description: "画像を横並び、縦並び、またはグリッドで結合", }, split: { name: "画像分割", description: "グリッドまたはピクセルサイズで画像を分割(ライブプレビュー付き)", }, border: { name: "ボーダーとフレーム", description: "ボーダー、パディング、角丸、シャドウをワンクリックプリセットで追加", }, beautify: { name: "スクリーンショット美化", description: "スクリーンショットにグラデーション背景、デバイスフレーム、シャドウ、SNSサイズを追加", }, "circle-crop": { name: "円形クロップ", description: "画像を中央の円形にクロップし、角を透明にする", }, duotone: { name: "デュオトーン", description: "カスタムのシャドウとハイライト色で2色デュオトーン効果を適用", }, "image-pad": { name: "画像パディング", description: "単色背景で画像を目標のアスペクト比にパディング", }, pixelate: { name: "ピクセル化", description: "画像全体または特定の領域にピクセル化効果を適用", }, vignette: { name: "ビネット", description: "強さと色を調整できるビネット効果を追加", }, "gif-webp": { name: "GIF/WebP コンバーター", description: "アニメーション GIF と WebP を全フレーム保持で相互変換", }, histogram: { name: "ヒストグラム", description: "画像から RGB ヒストグラムチャートを生成", }, "lqip-placeholder": { name: "LQIP プレースホルダー", description: "base64 データ URI 付きの低品質プレースホルダー画像を生成", }, "sprite-sheet": { name: "スプライトシート", description: "複数の画像を1枚のスプライトシートに結合", }, "svg-to-raster": { name: "SVGからラスター", description: "SVGをPNG、JPEG、WebP、AVIF、TIFF、GIF、HEIFにカスタムスケール・DPIで変換", }, vectorize: { name: "画像からSVG", description: "画像をスケーラブルベクターグラフィックスに変換", }, "gif-tools": { name: "GIFツール", description: "アニメーションGIFのリサイズ、最適化、速度変更、逆再生、フレーム抽出、回転", }, "image-to-base64": { name: "画像からBase64", description: "画像をBase64文字列に変換してHTML、CSS等に埋め込み", }, "barcode-generate": { name: "バーコード生成", description: "Code 128、EAN-13、UPC-A、Code 39、ITF-14、Data Matrix のバーコードを生成", }, "chart-maker": { name: "チャート作成", description: "CSV または JSON データから棒グラフ、折れ線グラフ、円グラフを作成", }, "convert-video": { name: "動画変換", description: "MP4、MOV、WebM 間で動画を変換", }, "compress-video": { name: "動画圧縮", description: "品質を調整して動画のファイルサイズを圧縮", }, "trim-video": { name: "動画トリミング", description: "動画から必要な部分を切り出す", }, "mute-video": { name: "動画ミュート", description: "動画から音声トラックを削除", }, "video-to-gif": { name: "動画を GIF に変換", description: "動画クリップをアニメーション GIF に変換", }, "resize-video": { name: "動画リサイズ", description: "動画を新しい解像度やプリセットサイズに拡大縮小", }, "crop-video": { name: "動画クロップ", description: "動画の一部分をクロップ", }, "rotate-video": { name: "動画回転", description: "動画を回転または反転", }, "change-fps": { name: "FPS 変更", description: "動画のフレームレートを変更", }, "video-color": { name: "動画カラー調整", description: "明るさ、コントラスト、彩度、ガンマを調整", }, "video-speed": { name: "動画速度", description: "動画を加速または減速", }, "reverse-video": { name: "動画逆再生", description: "動画クリップを逆方向に再生", }, "video-loudnorm": { name: "動画音声ノーマライズ", description: "動画の音声を放送基準の音量に正規化", }, "aspect-pad": { name: "アスペクトパディング", description: "目標のアスペクト比に合わせて単色バーを追加", }, "blur-pad": { name: "ぼかしパディング", description: "ぼかした動画のコピーで余白を埋める", }, "watermark-video": { name: "動画に透かし", description: "動画フレームにテキストの透かしを焼き込む", }, "stabilize-video": { name: "動画手ブレ補正", description: "2パス処理でカメラの手ブレを軽減", }, "gif-to-video": { name: "GIF を動画に変換", description: "アニメーション GIF を MP4 または WebM 動画に変換", }, "video-to-webp": { name: "動画を WebP に変換", description: "動画クリップをアニメーション WebP 画像に変換", }, "video-to-frames": { name: "動画をフレームに変換", description: "動画からフレームを画像の ZIP として抽出", }, "merge-videos": { name: "動画結合", description: "複数の動画クリップを1つのファイルに結合", }, "replace-audio": { name: "音声差し替え", description: "動画の音声トラックを別のファイルに差し替え", }, "burn-subtitles": { name: "字幕焼き込み", description: "動画フレームに字幕を恒久的に焼き込む", }, "embed-subtitles": { name: "字幕埋め込み", description: "動画コンテナに字幕トラックを埋め込む", }, "extract-subtitles": { name: "字幕抽出", description: "動画から字幕トラックを SRT ファイルとして抽出", }, "images-to-video": { name: "画像から動画", description: "複数の画像からスライドショー動画を作成", }, "video-metadata": { name: "動画メタデータ削除", description: "動画のメタデータを削除し、検出内容をレポート", }, "convert-audio": { name: "音声変換", description: "MP3、WAV、OGG などの音声形式を相互変換", }, "trim-audio": { name: "音声トリミング", description: "音声ファイルの一部を切り出す", }, "extract-audio": { name: "音声抽出", description: "動画から音声トラックを抽出", }, "volume-adjust": { name: "音量調整", description: "固定ゲインで音声の音量を増減", }, "normalize-audio": { name: "音声ノーマライズ", description: "音量を放送基準レベルに均一化", }, "fade-audio": { name: "音声フェード", description: "音声にフェードイン・フェードアウト効果を追加", }, "reverse-audio": { name: "音声逆再生", description: "音声を逆方向に再生", }, "audio-speed": { name: "音声速度", description: "音声の再生速度を加速または減速", }, "pitch-shift": { name: "ピッチシフト", description: "速度を変えずに半音単位でピッチを上下", }, "audio-channels": { name: "音声チャンネル", description: "モノラル・ステレオの切り替えや左右チャンネルの入れ替え", }, "silence-removal": { name: "無音除去", description: "音声から無音部分を除去", }, "noise-reduction": { name: "ノイズ低減", description: "FFT ベースのノイズ除去で背景ノイズを低減", }, "merge-audio": { name: "音声結合", description: "複数の音声ファイルを1つに結合", }, "split-audio": { name: "音声分割", description: "時間、均等分割、または無音検出で音声を分割", }, "ringtone-maker": { name: "着信音作成", description: "音声ファイルから着信音クリップを作成", }, "waveform-image": { name: "波形画像", description: "波形ビジュアライゼーションを PNG 画像として生成", }, "audio-metadata": { name: "音声メタデータ", description: "音声タグ (ID3) の表示、編集、削除", }, "merge-pdf": { name: "PDF 結合", description: "複数の PDF を1つに結合", }, "split-pdf": { name: "PDF 分割", description: "ページを抽出または分割", }, "compress-pdf": { name: "PDF 圧縮", description: "PDF のファイルサイズを圧縮", }, "rotate-pdf": { name: "PDF 回転", description: "PDF のページを回転", }, "convert-document": { name: "文書変換", description: "Word、OpenDocument、RTF、プレーンテキスト形式を相互変換", }, "convert-presentation": { name: "プレゼンテーション変換", description: "PowerPoint と OpenDocument プレゼンテーション形式を相互変換", }, "convert-spreadsheet": { name: "スプレッドシート変換", description: "Excel、OpenDocument、CSV 形式を相互変換。複数シートのブックは最初のシートを CSV に出力します。", }, "excel-to-pdf": { name: "Excel を PDF に変換", description: "スプレッドシートを PDF に変換。幅の広いシートは複数ページに分割されることがあります。", }, "word-to-pdf": { name: "Word を PDF に変換", description: "Word 文書を PDF に変換", }, "extract-pages": { name: "ページ抽出", description: "選択したページを新しい PDF に抽出", }, "remove-pages": { name: "ページ削除", description: "PDF から指定ページを削除", }, "organize-pdf": { name: "PDF 整理", description: "ページ順を指定して並べ替え", }, "protect-pdf": { name: "PDF 保護", description: "パスワード保護を追加 (AES-256 暗号化)", }, "unlock-pdf": { name: "PDF ロック解除", description: "PDF のパスワード保護を解除", }, "repair-pdf": { name: "PDF 修復", description: "破損した PDF の修復を試行", }, "linearize-pdf": { name: "PDF Web 最適化", description: "Web 表示用に PDF をリニアライズ", }, "grayscale-pdf": { name: "PDF グレースケール化", description: "すべての色をグレースケールに変換", }, "pdfa-convert": { name: "PDF/A コンバーター", description: "長期保存用 PDF/A-2 に変換", }, "crop-pdf": { name: "PDF クロップ", description: "全ページを均一な余白でクロップ", }, "nup-pdf": { name: "1枚あたりのページ数 (N-up)", description: "1枚のシートに複数ページを配置", }, "booklet-pdf": { name: "PDF 小冊子", description: "折り込み小冊子用にページを配置", }, "watermark-pdf": { name: "PDF 透かし", description: "全ページにテキストの透かしを追加", }, "pdf-page-numbers": { name: "PDF ページ番号", description: "全ページにページ番号を追加", }, "flatten-pdf": { name: "PDF フラット化", description: "フォームと注釈をページコンテンツに固定", }, "redact-pdf": { name: "PDF 墨消し", description: "テキストを完全に削除 (検証済みの墨消し)", }, "pdf-to-text": { name: "PDF からテキスト", description: "PDF からプレーンテキストを抽出", }, "pdf-to-word": { name: "PDF を Word に変換", description: "テキストベースの PDF に最適。スキャンページには OCR が必要です。", }, "pdf-metadata": { name: "PDF メタデータ", description: "PDF 文書のメタデータを読み書き", }, "powerpoint-to-pdf": { name: "PowerPoint を PDF に変換", description: "プレゼンテーションを PDF に変換", }, "html-to-pdf": { name: "HTML を PDF に変換", description: "HTML ファイルを PDF に変換。プライバシー保護のため外部リソースは無効です。", }, "markdown-to-docx": { name: "Markdown を Word に変換", description: "Markdown ファイルを Word 文書 (DOCX) に変換", }, "markdown-to-html": { name: "Markdown を HTML に変換", description: "Markdown ファイルを単独の HTML ページに変換。ソース内の外部画像はそのまま出力されます。", }, "markdown-to-pdf": { name: "Markdown を PDF に変換", description: "Markdown ファイルをスタイル付き PDF に変換。プライバシー保護のため外部リソースは無効です。", }, "epub-convert": { name: "EPUB から変換", description: "EPUB を PDF、DOCX、HTML、Markdown に変換。書籍内の外部リソースは取得されません。", }, "to-epub": { name: "EPUB に変換", description: "Word、Markdown、HTML、プレーンテキストファイルを EPUB に変換", }, "csv-excel": { name: "CSV / Excel 変換", description: "CSV と Excel (XLSX) を双方向で変換", }, "csv-json": { name: "CSV / JSON 変換", description: "CSV と JSON を双方向で変換", }, "json-xml": { name: "JSON / XML 変換", description: "JSON と XML を双方向で変換", }, "split-csv": { name: "CSV 分割", description: "行数を指定して CSV を小さなファイルに分割", }, "merge-csvs": { name: "CSV 結合", description: "列が一致する複数の CSV または TSV ファイルを1つに結合", }, "yaml-json": { name: "YAML / JSON 変換", description: "YAML と JSON を双方向で変換", }, "xml-to-csv": { name: "XML を CSV に変換", description: "XML から繰り返し要素を CSV テーブルに抽出", }, "create-zip": { name: "ZIP 作成", description: "複数のファイルを1つの ZIP アーカイブにまとめる", }, "extract-zip": { name: "ZIP 展開", description: "爆弾保護付きで ZIP アーカイブからファイルを安全に展開。単一ファイルのアーカイブはそのまま返します。", }, pipeline: { name: "Pipelineビルダー", description: "複数のツールをワークフローに連結" }, processing: { canceled: "処理がキャンセルされました" }, mediaPlayer: { unsupported: "お使いのブラウザはこのメディア形式に対応していません。", }, documentView: { loadFailed: "文書の読み込みに失敗しました。", previousPage: "前のページ", nextPage: "次のページ", inputNotPreviewable: "このファイル形式のプレビューは利用できません", }, }, toolSettings: { compress: { compressionMode: "圧縮モード", targetSize: "ターゲットサイズ", quality: "品質", smallestFile: "最小ファイル", bestQuality: "最高品質", submit: "圧縮", submitBatch: "圧縮({count}ファイル)", progressLabel: "圧縮中", original: "元:{size} KB", processed: "処理後:{size} KB", saved: "削減:{percent}%", }, resize: { customSize: "カスタムサイズ", scale: "スケール", presets: "プリセット", contentAware: "コンテンツ認識", aspectRatio: "アスペクト比", ratioFree: "自由", ratioOriginal: "元の比率", widthPx: "幅(px)", heightPx: "高さ(px)", fitMode: "フィットモード", cropToFit: "クロップして合わせる", fitInside: "内側に合わせる", stretch: "ストレッチ", limitToOriginalSize: "元のサイズに制限", limitToOriginalSizeHint: "画像がターゲットより小さい場合、拡大せずそのまま維持します", scalePercent: "スケール(%)", resizeToSquare: "正方形にリサイズ", protectFaces: "顔を保護", smoothing: "スムージング", edgeSensitivity: "エッジ感度", submit: "リサイズ", submitBatch: "リサイズ({count}ファイル)", progressLabel: "リサイズ中", }, crop: { aspectRatio: "アスペクト比", custom: "カスタム", positionAndSize: "位置とサイズ", ruleOfThirds: "三分割法", leftOffsetPx: "左オフセット(px)", topOffsetPx: "上オフセット(px)", submit: "クロップ", submitBatch: "クロップ({count}ファイル)", progressLabel: "クロップ中", }, rotate: { rotate: "回転", angle: "角度", straighten: "傾き補正", flip: "反転", horizontal: "水平", vertical: "垂直", resetAllChanges: "すべてリセット", submit: "適用", submitBatch: "適用({count}ファイル)", progressLabel: "適用中", }, convert: { targetFormat: "変換先フォーマット", sourceFormat: "元フォーマット", quality: "品質", submit: "変換", submitBatch: "変換({count}ファイル)", progressLabel: "変換中", }, "optimize-for-web": { outputFormat: "出力フォーマット", quality: "品質", smallestFile: "最小ファイル", bestQuality: "最高品質", maxDimensions: "最大サイズ", maxWidth: "最大幅", maxHeight: "最大高さ", stripMetadata: "メタデータ削除", sizeComparison: "サイズ比較", optimized: "最適化後:", smaller: "{percent}%縮小", larger: "{percent}%増加", submit: "処理してダウンロード", submitBatch: "処理してダウンロード({count}ファイル)", progressLabel: "最適化中", }, "strip-metadata": { currentMetadata: "現在のメタデータ", readingMetadata: "メタデータを読み取り中...", noMetadataFound: "この画像にメタデータは見つかりませんでした。", removeAllMetadata: "すべてのメタデータを削除", selectSpecific: "または特定のメタデータを選択:", stripExif: "EXIF削除(カメラ情報、日付、露出)", stripGps: "GPS削除(位置データ)", stripIcc: "ICC削除(カラープロファイル)", stripXmp: "XMP削除(拡張メタデータ)", locationFound: "位置情報あり", viewOnMap: "地図で表示", locationWarning: "この画像には正確な位置情報が含まれています。共有前にGPSデータの削除をご検討ください。", metadataSections: "{count}個のメタデータセクションが見つかりました", metadataSectionsPlural: "{count}個のメタデータセクションが見つかりました", metadataRemoved: "削除されたメタデータ:{size} KB", submit: "メタデータ削除", progressLabel: "メタデータを削除中", }, "edit-metadata": { readingMetadata: "メタデータを読み取り中...", couldNotReadMetadata: "メタデータを読み取れませんでした。フィールドは空白から開始します。", basicInfo: "基本情報", description: "説明", artist: "アーティスト", copyright: "著作権", software: "ソフトウェア", iptc: "IPTC", title: "タイトル", headline: "見出し", city: "市区町村", stateProvince: "都道府県", country: "国", dateAndTime: "日付と時刻", editDates: "日付を編集", shiftAllDates: "全日付を一括シフト", dateModified: "更新日", dateTaken: "撮影日", shiftHint: "すべての日付フィールドをオフセットでシフト(タイムゾーン修正に便利)", direction: "方向", forward: "+ 先へ", backward: "- 前へ", hoursMinutes: "時:分", locationGps: "位置情報(GPS)", locationDataFound: "位置データあり", noGpsData: "GPSデータなし。以下で座標を追加してください。", latitude: "緯度", longitude: "経度", altitudeMeters: "高度(メートル)", removeAllGpsData: "すべてのGPSデータを削除", keywords: "キーワード", addKeywordPlaceholder: "キーワードを入力してEnter", addToExisting: "既存に追加", replaceAll: "すべて置換", allMetadata: "すべてのメタデータ", templates: "テンプレート", templateNamePlaceholder: "テンプレート名", uploadPrompt: "画像をアップロードしてメタデータを編集してください。", changes: "{count}件の変更:", modified: "{count}件を変更", removed: "{count}件を削除", gpsCleared: "GPSをクリア", gpsAdded: "GPSを追加", datesShifted: "日付をシフト", submit: "メタデータ適用", progressLabel: "メタデータを書き込み中", }, "bulk-rename": { pattern: "パターン", patternHint: "変数:{{index}}、{{padded}}、{{original}}", startIndex: "開始インデックス", preview: "プレビュー", andMore: "...他{count}件", renaming: "リネーム中...", submit: "{count}ファイルをリネーム", zipDownloaded: "ZIPのダウンロードが完了しました", }, "image-to-pdf": { imageCount: "{count}枚の画像が{mode}に変換されます", imageCountPlural: "{count}枚の画像が{mode}に変換されます", singlePdfMode: "1つのPDF(1ページに1画像)", separatePdfMode: "個別のPDF(1画像につき1つ)", combineAllImages: "すべての画像を1つのPDFにまとめる", pageSize: "ページサイズ", orientation: "向き", portrait: "縦向き", landscape: "横向き", margin: "余白", targetSizeLabel: "ターゲットファイルサイズ(任意)", targetSizePlaceholder: "例:2", targetSizeHint: "空欄で最高品質", targetSizeMet: "目標達成", targetSizeNotMet: "目標に達しませんでした。最低品質まで圧縮しました。", targetSizeTooSmall: "目標は50KB以上必要です", jpegQualityLabel: "使用されたJPEG品質", noImage: "画像なし", submitCollate: "PDF作成({count}ページ)", submitSeparate: "{count}個のPDFを作成", downloadPdf: "PDFをダウンロード", downloadZip: "ZIPをダウンロード", progressLabel: "PDFを作成中", uploadingImages: "画像をアップロード中...", processingPages: "{count}ページを処理中...", }, "pdf-to-image": { dropPdf: "PDFをここにドロップまたはクリックして選択", readingPdf: "PDFを読み取り中...", pageCount: "{count}ページ", pageCountPlural: "{count}ページ", outputFormat: "出力フォーマット", quality: "品質", resolutionDpi: "解像度(DPI)", dpiScreen: "スクリーン", dpiStandard: "標準", dpiPrint: "印刷", dpiHighQuality: "高品質", colorMode: "カラーモード", colorModeColor: "カラー", colorModeGrayscale: "グレースケール", colorModeBw: "白黒", pages: "ページ", allPages: "すべてのページ", pagesHint: "例:1-3、5、8-10({count}ページのドキュメント)", converting: "変換中...", submit: "{count}ページを変換", submitPlural: "{count}ページを変換", downloadAllZip: "一括ダウンロード(ZIP)", }, favicon: { uploadHint: "正方形の画像(512x512以上推奨)をアップロードして、すべてのFaviconとアプリアイコンサイズを生成します。", multipleHint: "{count}枚の画像はそれぞれZIP内に個別フォルダで格納されます。", generatedSizes: "生成サイズ(画像ごと)", plusManifest: "+ manifest.json + HTMLスニペット", submit: "Favicon生成({count}枚)", submitPlural: "Favicon生成({count}枚)", downloadZip: "Favicon ZIPをダウンロード", progressLabel: "Faviconを生成中", }, "adjust-colors": { light: "ライト", brightness: "明るさ", contrast: "コントラスト", exposure: "露出", color: "カラー", saturation: "彩度", temperature: "色温度", temperatureHint: "寒色 / 暖色", tint: "ティント", tintHint: "グリーン / マゼンタ", hue: "色相", detail: "ディテール", sharpness: "シャープネス", effects: "エフェクト", none: "なし", grayscale: "グレースケール", sepia: "セピア", invert: "反転", colorChannels: "カラーチャンネル", channelModified: "変更済み", red: "赤", green: "緑", blue: "青", resetAll: "すべてリセット", submit: "適用", submitBatch: "適用({count}ファイル)", progressLabel: "色を調整中", }, sharpening: { method: "方式", adaptive: "アダプティブ", unsharpMask: "アンシャープマスク", highPass: "ハイパス", presets: "プリセット", textureAmount: "テクスチャ量", amount: "量", strength: "強度", noiseReduction: "ノイズ低減", off: "オフ", lightDenoise: "弱", mediumDenoise: "中", strongDenoise: "強", advancedControls: "詳細設定", radius: "半径", flatProtection: "フラット保護", detailThreshold: "ディテールしきい値", haloLimitLight: "ハロー制限(明部)", haloLimitDark: "ハロー制限(暗部)", threshold: "しきい値", kernelSize: "カーネルサイズ", submit: "シャープ化", submitBatch: "シャープ化({count}ファイル)", progressLabel: "シャープニング中", }, "replace-color": { sourceColor: "元の色(置換対象)", targetColor: "置換先の色", makeTransparent: "透明に置換", tolerance: "許容範囲", exactMatch: "完全一致", wideRange: "広範囲", submit: "色を置換", submitBatch: "色を置換({count}ファイル)", progressLabel: "色を置換中", }, "color-blindness": { simulationType: "シミュレーションタイプ", redGreen: "赤緑色覚異常", blueYellow: "青黄色覚異常", monochromatic: "全色覚異常", submit: "シミュレート", submitBatch: "シミュレート({count}ファイル)", progressLabel: "色覚をシミュレート中", }, "remove-background": { subject: "被写体", people: "人物", products: "製品", general: "汎用", passportIdPhoto: "証明写真", quality: "品質", fast: "高速", hd: "HD", max: "最高", ultra: "ウルトラ", background: "背景", transparent: "透明", bgColor: "カラー", gradient: "グラデーション", image: "画像", gradientDirection: "方向", chooseBackgroundImage: "背景画像を選択", effectsSection: "エフェクト", effectsActive: "有効", blurBackground: "背景ぼかし", intensity: "強度", addShadow: "シャドウ追加", opacity: "不透明度", outputFormat: "出力形式", edgeSmoothing: "エッジスムージング", edgeSmoothingOff: "オフ", edgeSmoothingLight: "弱", edgeSmoothingMedium: "中", edgeSmoothingStrong: "強", colorDecontamination: "色にじみ除去", rendering: "レンダリング中...", submit: "背景を除去", submitBatch: "背景を除去({count}ファイル)", progressLabel: "背景を除去中", }, "remove-gif-background": { quality: "品質", qualityFast: "高速", qualityBalanced: "バランス", qualityBest: "最高", qualityNote: "すべてのフレームがモデルを通るため、長いクリップでは品質を上げると大幅に遅くなります。", outputFormat: "出力形式", formatWebp: "WebP", formatApng: "APNG", formatGif: "GIF", formatWebpHint: "WebPとAPNGは滑らかで完全な透過を保ちます。", gifCaveat: "GIFは1ビットの透過のみ対応のため、エッジが硬く見えます。", background: "背景", bgTransparent: "透明", bgColor: "カラー", bgGradient: "グラデーション", bgBlur: "ぼかし", bgImage: "画像", gradientStart: "開始", gradientEnd: "終了", gradientAngle: "角度({deg}°)", blurStrength: "ぼかしの強さ({value})", shadow: "ドロップシャドウを追加", shadowStrength: "シャドウの不透明度({value})", advanced: "詳細設定", edgeRefine: "エッジ補正(レベル{level})", edgeRefineOff: "エッジ補正:オフ", decontaminate: "色にじみを除去", uploadBg: "背景画像をアップロード", frameNote: "すべてのフレームを処理するため、長いアニメーションは遅くなります。GPUを推奨します。", submit: "背景を除去", submitBatch: "背景を除去({count}ファイル)", progressLabel: "フレームから背景を除去中", download: "ダウンロード", }, upscale: { scaleFactor: "拡大倍率", quality: "品質", enhanceFaces: "顔をエンハンス", noiseReduction: "ノイズ低減", noiseReductionHint: "粒子やノイズを平滑化します。値が高いほどノイズ除去が強くなりますが、ディテールが柔らかくなる場合があります。", outputFormat: "出力フォーマット", submit: "{scale}倍に拡大", submitBatch: "{scale}倍に拡大({count}ファイル)", progressLabel: "画像をアップスケール中", progressLabelBatch: "{count}枚の画像をアップスケール中", }, "erase-object": { qualityFast: "高速", qualityHq: "高品質", qualityHint: "高品質は大きなオブジェクトや細かいテクスチャに拡散モデルを使用します。", brushMode: "ブラシ", lassoMode: "投げ縄", brushSize: "ブラシサイズ", fine: "細い", wide: "太い", undo: "元に戻す", clear: "クリア", outputFormat: "出力フォーマット", quality: "品質", paintHint: "除去したいオブジェクトの上を塗ってください。Ctrl+Zで元に戻せます。", lassoHint: "除去したいオブジェクトを囲むように輪を描いてください。Ctrl+Zで元に戻せます。", submit: "消去", submitBatch: "すべて消去({count})", progressLabel: "オブジェクトを消去中", }, ocr: { quality: "品質", enhanceBeforeScanning: "スキャン前にエンハンス", enhanceHint: "認識前に局所コントラストを改善します。高速では直接適用し、バランスと最高では調整済みスコアで結果が改善する場合のみ採用します。", fastKoreanUnsupported: "高速 OCR は韓国語に対応していません。高精度 OCR パックをインストールし、バランスまたは最高を選択してください。", language: "言語", autoDetect: "自動検出", extractedText: "抽出テキスト", noTextDetected: "この画像ではテキストが検出されませんでした", characters: "{count}文字", submit: "テキスト抽出", submitBatch: "テキスト抽出({count}ファイル)", progressLabel: "テキストを抽出中", }, "ocr-pdf": { quality: "品質", language: "言語", autoDetect: "自動検出", pages: "ページ", pagesPlaceholder: "すべて, 1-3, 5", pagesHint: "ページ番号または範囲を入力(例: 1-3, 5, 8-10)。最大50ページ。", submit: "テキスト抽出", submitBatch: "テキスト抽出({count}ファイル)", progressLabel: "PDFからテキストを抽出中", }, "blur-faces": { blurRadius: "ぼかし半径", blurLight: "弱", blurHeavy: "強", detectionSensitivity: "検出感度", moreFaces: "多く検出", fewerFaces: "少なく検出", submit: "顔をぼかす", progressLabel: "顔をぼかし中", }, "enhance-faces": { quality: "品質", enhancementStrength: "エンハンス強度", onlyCenterFace: "中心の顔のみ", detectionSensitivity: "検出感度", submit: "顔をエンハンス", submitBatch: "顔をエンハンス({count}ファイル)", progressLabel: "顔をエンハンス中", }, "smart-crop": { subjectFocus: "被写体フォーカス", faceFocus: "顔フォーカス", autoTrim: "自動トリム", customSize: "カスタムサイズ", socialPresets: "SNSプリセット", detectionStrategy: "検出ストラテジー", detectionStrategyHint: "アテンションは視覚的に最も顕著な領域を検出します。エントロピーは最もディテールと情報量が多い領域を検出します。", attention: "アテンション", entropy: "エントロピー", padding: "パディング", paddingHint: "フォーカス領域周囲の余白", outputQuality: "出力品質", outputQualityHint: "JPEGとWebP出力用。PNGは常にロスレスです。", subjectDescription: "顕著性分析で最も興味深い領域を検出し、ターゲットサイズにクロップします。", framing: "フレーミング", facePadding: "顔の余白", facePaddingHint: "検出された顔の周囲の余白", fewerFalsePositives: "誤検出を減らす", faceDescription: "AI顔検出で顔を適切にフレーミングします。顔が検出されない場合は被写体フォーカスにフォールバックします。", trimTolerance: "許容値", trimDescription: "ボーダーピクセルがエッジカラーとどの程度異なっていてもトリムされるか。値が高いほど積極的にトリムします。", padToSquare: "正方形にパディング", targetSizePx: "ターゲットサイズ(px)", padColor: "パディング色", trimHint: "被写体周囲の単色ボーダーを除去します。「正方形にパディング」を有効にするとEC用画像に最適です。", submitSubject: "スマートクロップ", submitFace: "顔クロップ", submitTrim: "ボーダートリム", }, imageEnhancement: { enhancementMode: "エンハンスモード", auto: "自動", portrait: "ポートレート", landscape: "風景", lowLight: "低照度", food: "料理", document: "文書", intensity: "強度", deepEnhance: "ディープエンハンス(AI)", deepEnhanceDescription: "AIでノイズとアーティファクトを除去", deepEnhanceRequires: "アップスケール&エンハンスバンドルが必要", analyzingImage: "画像を解析中...", detectedIssues: "検出された問題", imageLooksGood: "画像は良好です。強度スライダーで微調整してください。", issueUnderexposed: "露出不足", issueOverexposed: "露出過多", issueLowContrast: "低コントラスト", issueColorCast: "色かぶり", issueDesaturated: "彩度不足", issueSoftFocus: "ソフトフォーカス", issueNoisy: "ノイズあり", submit: "エンハンス", submitDeep: "ディープエンハンス", submitBatch: "エンハンス({count}ファイル)", submitDeepBatch: "ディープエンハンス({count}ファイル)", progressLabel: "画像をエンハンス中", progressLabelBatch: "{count}枚の画像をエンハンス中", }, "noise-removal": { denoisingTier: "ノイズ除去レベル", quick: "クイック", balanced: "バランス", quality: "高品質", maximum: "最高", quickDesc: "高速、軽量", balancedDesc: "良好な品質、適度な速度", qualityDesc: "AI駆動、低速", maximumDesc: "最良AIモデル、最低速", strength: "強度", subtle: "弱", aggressive: "強", detailPreservation: "ディテール保持", smooth: "スムーズ", sharp: "シャープ", colorNoise: "カラーノイズ", heavy: "強い", outputFormat: "出力フォーマット", gifAiWarning: "GIFファイルのAIノイズ除去は最初のフレームのみ処理します。アニメーションGIFにはクイックまたはバランスレベルをご使用ください。", submit: "ノイズ除去", submitBatch: "ノイズ除去({count}ファイル)", progressLabel: "ノイズを除去中", progressLabelBatch: "{count}枚の画像のノイズを除去中", }, "red-eye-removal": { sensitivity: "感度", strict: "厳格", aggressive: "積極的", correctionStrength: "補正強度", subtle: "弱", dark: "暗め", outputFormat: "出力フォーマット", quality: "品質", submit: "赤目補正", submitBatch: "赤目補正({count}ファイル)", progressLabel: "赤目を補正中", progressLabelBatch: "{count}枚の画像の赤目を補正中", }, "restore-photo": { scratchRemoval: "傷の修復", scratchRemovalDesc: "傷、破れ、しみを検出して修復", faceEnhancement: "顔エンハンスメント", faceEnhancementDesc: "CodeFormer AIで劣化した顔を修復", faceFidelity: "顔の忠実度", enhanced: "エンハンス", faithful: "忠実", noiseReduction: "ノイズ低減", noiseReductionDesc: "古い写真の粒子やノイズを除去", denoiseStrength: "ノイズ除去強度", autoColorize: "自動カラー化", autoColorizeDesc: "DDColor AIで白黒写真をカラー化", colorizeStrength: "カラー化強度", vivid: "鮮やか", submit: "写真を修復", submitBatch: "写真を修復({count})", progressLabel: "写真を修復中", progressLabelBatch: "{count}枚の写真を修復中", }, "content-aware-resize": { widthPx: "幅(px)", heightPx: "高さ(px)", resizeToSquare: "正方形にリサイズ", protectFaces: "顔を保護", protectFacesHint: "顔検出を使用して顔領域を検出し、シーム除去から保護します", smoothing: "スムージング", edgeSensitivity: "エッジ感度", submit: "リサイズ", submitBatch: "リサイズ({count}ファイル)", progressLabel: "コンテンツ認識リサイズ中", }, "ai-canvas-expand": { quality: "品質", fast: "高速", balanced: "バランス", highQuality: "高品質", fastDesc: "クイックプレビュー、AI処理少なめ", balancedDesc: "良好な品質、適度な速度", highQualityDesc: "最高の結果、低速", extendToAspectRatio: "アスペクト比に拡張", extendByPixels: "拡張ピクセル数", top: "上", right: "右", bottom: "下", left: "左", newSize: "新しいサイズ:{width} x {height}", submit: "キャンバス拡張", submitBatch: "拡張({count}ファイル)", progressLabel: "キャンバスを拡張中", }, colorize: { aiModel: "AIモデル", fast: "高速", fastDesc: "素早い結果", balanced: "バランス", balancedDesc: "最良の利用可能モデル", best: "最高", bestDesc: "最高品質", colorIntensity: "カラー強度", grayscaleLabel: "グレースケール", subtleLabel: "控えめ", naturalLabel: "自然", vividLabel: "鮮やか", intensityHint: "低い値ほど落ち着いたヴィンテージ風の色合いになります。", strength: "カラー化強度", submit: "カラー化", submitBatch: "カラー化({count}ファイル)", progressLabel: "カラー化中", progressLabelBatch: "{count}枚の画像をカラー化中", }, "passport-photo": { country: "国", searchCountries: "国を検索...", noCountriesFound: "国が見つかりません", customDimensions: "カスタムサイズ", documentType: "書類タイプ", dimensionsMm: "サイズ(mm)", dpi: "DPI", pixelsPerInch: "ピクセル/インチ", backgroundColor: "背景色", maxFileSize: "最大ファイルサイズ", noLimit: "制限なし", customKb: "カスタムKB...", uploadPortrait: "顔写真をアップロード", uploadHint: "左パネルに画像をドロップまたはアップロードして証明写真をプレビュー", analyzingPhoto: "写真を解析中", detectingLandmarks: "顔のランドマークを検出し背景を除去中...", generatePassportPhoto: "証明写真を生成", generating: "生成中...", downloadPhoto: "写真をダウンロード", faceCentered: "顔が中心", headLevel: "頭が水平", lookingStraight: "正面を向いている", faceSize: "顔のサイズ", whatYouSee: "表示されている通りにダウンロードされます", dragToAdjust: "ドラッグで調整", scrollToZoom: "スクロールでズーム", photoGenerated: "写真が生成されました。左パネルからダウンロードしてください。", }, "transcribe-audio": { language: "言語", autoDetect: "自動検出", outputFormat: "出力形式", plainText: "プレーンテキスト", submit: "文字起こし", submitBatch: "文字起こし ({count}ファイル)", progressLabel: "音声を文字起こし中", }, "auto-subtitles": { language: "言語", autoDetect: "自動検出", format: "字幕形式", submit: "字幕を生成", submitBatch: "字幕を生成 ({count}ファイル)", progressLabel: "字幕を生成中", }, "transparency-fixer": { description: "偽の透過背景のPNGをアップロードすると、ワンクリックで修正します。", removeWatermark: "ウォーターマーク除去", removeWatermarkHelp: "半透明ウォーターマークを検出して除去", requiresEraser: "オブジェクト消去バンドルが必要", advanced: "詳細", defringe: "フリンジ除去", outputFormat: "出力フォーマット", submit: "透過を修正", submitBatch: "透過を修正({count}ファイル)", progressLabel: "透過を修正中", }, "background-replace": { color: "背景色", submit: "背景を置換", submitBatch: "背景を置換 ({count} ファイル)", progressLabel: "背景を置換中", }, "blur-background": { intensity: "ぼかし強度", submit: "背景をぼかす", submitBatch: "背景をぼかす ({count} ファイル)", progressLabel: "背景をぼかし中", }, "watermark-text": { watermarkText: "ウォーターマークテキスト", fontSize: "フォントサイズ", color: "色", opacity: "不透明度", position: "位置", rotation: "回転", center: "中央", topLeft: "左上", topRight: "右上", bottomLeft: "左下", bottomRight: "右下", tiled: "タイル", submit: "ウォーターマーク追加", submitBatch: "ウォーターマーク追加({count}ファイル)", progressLabel: "ウォーターマークを追加中", }, "watermark-image": { uploadWatermark: "ウォーターマーク画像をアップロード", position: "位置", opacity: "不透明度", scale: "スケール", submit: "ウォーターマーク適用", submitBatch: "ウォーターマーク適用({count}ファイル)", }, "text-overlay": { text: "テキスト", fontSize: "フォントサイズ", color: "色", position: "位置", top: "上", center: "中央", bottom: "下", backgroundBox: "背景ボックス", backgroundColor: "背景色", shadow: "シャドウ", submit: "テキスト追加", submitBatch: "テキスト追加({count}ファイル)", progressLabel: "テキストオーバーレイを追加中", download: "ダウンロード", defaultText: "ここにテキストを入力", }, compose: { uploadOverlay: "オーバーレイ画像をアップロード", xPosition: "X位置", yPosition: "Y位置", opacity: "不透明度", blendMode: "ブレンドモード", submit: "合成", }, "meme-generator": { selectTemplate: "ギャラリーからテンプレートを選ぶか、自分の画像をアップロードして開始します。", chooseLayout: "カスタム画像のテキストレイアウトを選択してください。", textContent: "テキスト内容", textStyle: "テキストスタイル", font: "フォント", fontSize: "フォントサイズ", textColor: "テキスト色", strokeColor: "ストローク色", allCaps: "全大文字", generate: "Meme生成", generating: "生成中...", downloadMeme: "Memeをダウンロード", backToGallery: "ギャラリーに戻る", }, info: { loadingInfo: "情報を読み込み中...", filename: "ファイル名", fileSize: "ファイルサイズ", dimensions: "サイズ", format: "フォーマット", channels: "チャンネル", colorSpace: "色空間", density: "密度", bitDepth: "ビット深度", progressive: "プログレッシブ", pages: "ページ数", hasAlpha: "アルファ", hasProfile: "プロファイル", hasExif: "EXIF", hasIcc: "ICC", hasXmp: "XMP", readInfo: "情報を取得", reading: "読み込み中...", channelStats: "チャンネル統計", yes: "はい", no: "いいえ", na: "該当なし", failedToRead: "情報の読み取りに失敗しました", }, compare: { uploadSecondImage: "2枚目の画像をアップロード", similarity: "類似度:{percent}%", submit: "比較", downloadDiff: "差分をダウンロード", }, "find-duplicates": { preset: "プリセット", exact: "完全一致", similar: "類似", loose: "緩い", exactDesc: "ピクセル単位で同一のコピー、異なるフォーマットの同一画像。", similarDesc: "リサイズ、再圧縮、軽微な編集が加えられたコピー。", looseDesc: "視覚的に関連する画像、軽いクロップ、異なる露出。", threshold: "しきい値", submit: "重複スキャン", scanning: "スキャン中...", }, "color-palette": { submit: "パレット抽出", extracting: "抽出中...", dominantColors: "ドミナントカラー", clickToCopy: "クリックでコピー", }, "qr-generate": { contentType: "コンテンツタイプ", url: "URL", text: "テキスト", wifi: "WiFi", vcard: "vCard", email: "メール", phone: "電話", sms: "SMS", styling: "スタイリング", dotStyle: "ドットスタイル", cornerSquareStyle: "コーナースクエアスタイル", cornerDotStyle: "コーナードットスタイル", foregroundColor: "前景色", bgColor: "背景色", logo: "ロゴ", downloadFormat: "ダウンロードフォーマット", submit: "QRコード生成", download: "QRコードをダウンロード", }, "html-to-image": { modeUrl: "URL", modeHtml: "HTML ファイル", htmlFile: "HTML ファイル", url: "URL", urlPlaceholder: "https://snapotter.com", format: "出力形式", quality: "品質", devicePreset: "デバイス", viewportWidth: "幅", viewportHeight: "高さ", fullPage: "ページ全体", submit: "キャプチャ", download: "スクリーンショットをダウンロード", capturing: "ページをキャプチャ中...", errorTimeout: "ページの読み込みがタイムアウトしました", errorBlocked: "この URL はキャプチャできません", errorUnavailable: "スクリーンショットサービスは利用できません", errorFailed: "ページのキャプチャに失敗しました", placeholder: "URL を入力して「キャプチャ」をクリック", presets: { desktop: "デスクトップ", tablet: "タブレット", mobile: "モバイル", custom: "カスタム", }, }, "barcode-read": { submit: "バーコードスキャン", submitBatch: "スキャン({count}ファイル)", scanning: "スキャン中...", noBarcodesFound: "バーコードが見つかりません", barcodesFound: "{count}個のバーコードが見つかりました", barcodesFoundPlural: "{count}個のバーコードが見つかりました", }, collage: { template: "テンプレート", aspectRatio: "アスペクト比", gap: "間隔", cornerRadius: "角丸", backgroundColor: "背景色", outputFormat: "出力フォーマット", quality: "品質", submit: "コラージュ作成", downloadCollage: "コラージュをダウンロード", }, stitch: { direction: "方向", horizontal: "横並び", vertical: "縦並び", grid: "グリッド", gridColumns: "グリッド列数", resizeMode: "リサイズモード", fit: "フィット", original: "オリジナル", stretchMode: "ストレッチ", cropMode: "クロップ", alignment: "配置", start: "先頭", center: "中央", end: "末尾", gap: "間隔", border: "ボーダー", cornerRadius: "角丸", backgroundColor: "背景色", outputFormat: "出力フォーマット", quality: "品質", submit: "画像を結合", }, split: { modeGrid: "グリッド", modeTileSize: "タイルサイズ", presets: "プリセット", columns: "列数", rows: "行数", tileWidth: "タイル幅", tileHeight: "タイル高さ", outputFormat: "出力フォーマット", quality: "品質", submit: "画像を分割", downloadAll: "一括ダウンロード(ZIP)", }, border: { presets: "プリセット", borderWidth: "ボーダー幅", borderColor: "ボーダー色", padding: "パディング", paddingColor: "パディング色", cornerRadius: "角丸", shadow: "シャドウ", shadowBlur: "シャドウぼかし", shadowOffsetX: "シャドウオフセットX", shadowOffsetY: "シャドウオフセットY", shadowColor: "シャドウ色", shadowOpacity: "シャドウ不透明度", submit: "ボーダー追加", submitBatch: "ボーダー追加({count}ファイル)", progressLabel: "ボーダーを追加中", }, beautify: { preset: "プリセット", backgroundType: "背景タイプ", solidColor: "単色", linearGradient: "線形グラデーション", radialGradient: "放射グラデーション", customImage: "カスタム画像", gradientAngle: "グラデーション角度", padding: "パディング", borderRadius: "角丸半径", shadowPreset: "シャドウプリセット", deviceFrame: "デバイスフレーム", submit: "美化", submitBatch: "美化({count}ファイル)", progressLabel: "スクリーンショットを美化中", }, "circle-crop": { submit: "円形クロップ", submitBatch: "円形クロップ ({count} ファイル)", progressLabel: "円形にクロップ中", }, duotone: { shadow: "シャドウカラー", highlight: "ハイライトカラー", submit: "デュオトーンを適用", submitBatch: "デュオトーンを適用 ({count} ファイル)", progressLabel: "デュオトーンを適用中", }, "image-pad": { target: "目標比率", color: "背景色", submit: "パディング", submitBatch: "パディング ({count} ファイル)", progressLabel: "画像をパディング中", }, pixelate: { blockSize: "ブロックサイズ", submit: "モザイク化", submitBatch: "モザイク化 ({count} ファイル)", progressLabel: "モザイク化中", }, vignette: { strength: "強度", color: "ビネットカラー", submit: "ビネットを適用", submitBatch: "ビネットを適用 ({count} ファイル)", progressLabel: "ビネットを適用中", }, "gif-webp": { submit: "変換", submitBatch: "変換 ({count} ファイル)", progressLabel: "アニメーションを変換中", }, histogram: { submit: "ヒストグラムを生成", submitBatch: "ヒストグラムを生成 ({count} ファイル)", progressLabel: "ヒストグラムを生成中", }, "lqip-placeholder": { width: "幅", blur: "ぼかし", submit: "プレースホルダーを生成", submitBatch: "プレースホルダーを生成 ({count} ファイル)", progressLabel: "プレースホルダーを生成中", }, "sprite-sheet": { columns: "列数", padding: "余白", background: "背景色", submit: "スプライトシートを作成", submitBatch: "スプライトシートを作成", progressLabel: "スプライトシートを作成中", }, "svg-to-raster": { outputFormat: "出力フォーマット", sizing: "サイズ設定", scaleMode: "スケール", customMode: "カスタム", scalePresets: "スケールプリセット", dpiPresets: "DPIプリセット", customWidth: "幅(px)", customHeight: "高さ(px)", background: "背景", bgTransparent: "透明", bgColor: "カラー", quality: "品質", submit: "SVG変換", submitBatch: "変換({count}ファイル)", progressLabel: "SVGを変換中", }, vectorize: { preset: "プリセット", logo: "ロゴ", illustration: "イラスト", photo: "写真", sketch: "スケッチ", customPreset: "カスタム", colorMode: "カラーモード", bw: "白黒", colorModeColor: "カラー", threshold: "しきい値", colorPrecision: "色精度", layerDifference: "レイヤー差分", filterSpeckle: "スペックル除去", pathMode: "パスモード", cornerThreshold: "コーナーしきい値", invertColors: "色を反転", submit: "ベクター化", submitBatch: "ベクター化({count}ファイル)", progressLabel: "ベクター化中", }, "gif-tools": { mode: "モード", resize: "リサイズ", optimize: "最適化", speed: "速度", reverse: "逆再生", extract: "抽出", rotateMode: "回転", pixel: "ピクセル", percentage: "パーセント", colors: "色数", dither: "ディザ", effort: "処理強度", speedFactor: "速度倍率", loopControl: "ループ制御", infinite: "無限", once: "1回", customLoop: "カスタム", loopCount: "ループ回数", extractSingle: "単一", extractRange: "範囲", extractAll: "すべて", frameNumber: "フレーム番号", frameStart: "開始フレーム", frameEnd: "終了フレーム", extractFormat: "フォーマット", submit: "GIF処理", submitBatch: "処理({count}ファイル)", progressLabel: "GIFを処理中", }, "image-to-base64": { outputFormat: "出力フォーマット", keepOriginal: "元のフォーマットを維持", quality: "品質", maxWidth: "最大幅", maxHeight: "最大高さ", submit: "Base64に変換", submitBatch: "変換({count}ファイル)", copyBase64: "Base64をコピー", copyDataUri: "Data URIをコピー", copyImgTag: "タグをコピー", copyCssUrl: "CSS url()をコピー", }, "barcode-generate": { text: "テキスト", type: "バーコードの種類", scale: "拡大率", includeText: "テキストを表示", submit: "バーコードを生成", download: "バーコードをダウンロード", }, "chart-maker": { kind: "グラフの種類", title: "タイトル", width: "幅", height: "高さ", submit: "グラフを作成", submitBatch: "グラフを作成 ({count} ファイル)", progressLabel: "グラフを作成中", }, "enhance-faces-standalone": { model: "モデル", fast: "高速", balanced: "バランス", best: "最高", }, "convert-video": { format: "出力形式", quality: "品質", high: "高品質", balanced: "バランス", small: "最小サイズ", submit: "変換", submitBatch: "変換 ({count} ファイル)", progressLabel: "変換中", }, "compress-video": { quality: "圧縮レベル", light: "軽め", balanced: "バランス", strong: "強め", resolution: "解像度", original: "オリジナル", submit: "圧縮", submitBatch: "圧縮 ({count} ファイル)", progressLabel: "圧縮中", }, "trim-video": { start: "開始 (秒)", end: "終了 (秒)", precise: "フレーム単位 (再エンコード)", submit: "トリミング", submitBatch: "トリミング ({count} ファイル)", progressLabel: "トリミング中", }, "mute-video": { submit: "音声を削除", submitBatch: "音声を削除 ({count} ファイル)", progressLabel: "ミュート中", }, "video-to-gif": { fps: "フレームレート", width: "幅 (px)", start: "開始 (秒)", duration: "長さ (秒)", submit: "GIF を作成", submitBatch: "GIF を作成 ({count} ファイル)", progressLabel: "GIF を作成中", }, "resize-video": { preset: "プリセット", width: "幅 (px)", height: "高さ (px)", hint: "アスペクト比を維持するには片方を空欄にしてください", submit: "リサイズ", submitBatch: "リサイズ ({count} ファイル)", progressLabel: "リサイズ中", }, "crop-video": { width: "幅 (px)", height: "高さ (px)", x: "X オフセット", y: "Y オフセット", submit: "クロップ", submitBatch: "クロップ ({count} ファイル)", progressLabel: "クロップ中", }, "rotate-video": { transform: "変形", cw90: "時計回りに90度回転", ccw90: "反時計回りに90度回転", rotate180: "180度回転", hflip: "水平反転", vflip: "垂直反転", submit: "回転", submitBatch: "回転 ({count} ファイル)", progressLabel: "回転中", }, "change-fps": { fps: "フレームレート", submit: "FPS を変更", submitBatch: "FPS を変更 ({count} ファイル)", progressLabel: "FPS を変更中", }, "video-color": { brightness: "明るさ", contrast: "コントラスト", saturation: "彩度", gamma: "ガンマ", submit: "適用", submitBatch: "適用 ({count} ファイル)", progressLabel: "色を調整中", }, "video-speed": { factor: "速度倍率", keepPitch: "元のピッチを維持", submit: "速度を変更", submitBatch: "速度を変更 ({count} ファイル)", progressLabel: "速度を変更中", }, "reverse-video": { hint: "5分以内のクリップに限られます", submit: "逆再生", submitBatch: "逆再生 ({count} ファイル)", progressLabel: "逆再生処理中", }, "video-loudnorm": { hint: "EBU R128 放送規格に音声を正規化します", submit: "正規化", submitBatch: "正規化 ({count} ファイル)", progressLabel: "正規化中", }, "aspect-pad": { target: "目標比率", color: "背景色", colorHint: "HEX カラー (例: #000000)", submit: "パディング", submitBatch: "パディング ({count} ファイル)", progressLabel: "パディング中", }, "blur-pad": { target: "目標比率", blur: "ぼかし強度", submit: "パディング", submitBatch: "パディング ({count} ファイル)", progressLabel: "パディング中", }, "watermark-video": { text: "ウォーターマークテキスト", position: "位置", fontSize: "フォントサイズ", opacity: "不透明度", color: "色", colorHint: "HEX カラー (例: #ffffff)", submit: "ウォーターマーク", submitBatch: "ウォーターマーク ({count} ファイル)", progressLabel: "ウォーターマーク処理中", }, "stabilize-video": { smoothing: "スムージング", hint: "2パス処理のため他のツールより時間がかかります", submit: "手ぶれ補正", submitBatch: "手ぶれ補正 ({count} ファイル)", progressLabel: "手ぶれ補正中", }, "gif-to-video": { format: "出力形式", submit: "変換", submitBatch: "変換 ({count} ファイル)", progressLabel: "変換中", }, "video-to-webp": { fps: "フレームレート", width: "幅 (px)", quality: "品質", loop: "アニメーションをループ", submit: "変換", submitBatch: "変換 ({count} ファイル)", progressLabel: "変換中", }, "video-to-frames": { mode: "抽出モード", modeAll: "全フレーム", modeNth: "N フレームごと", modeTimestamps: "指定タイムスタンプ", n: "N フレームごとに抽出", timestamps: "タイムスタンプ (秒)", timestampsHint: "カンマ区切り (例: 0.5, 2, 4.5)", format: "画像形式", submit: "フレームを抽出", submitBatch: "フレームを抽出 ({count} ファイル)", progressLabel: "フレームを抽出中", }, "merge-videos": { hint: "アップロード順に結合されます", submit: "結合", submitBatch: "結合 ({count} ファイル)", progressLabel: "結合中", }, "replace-audio": { hint: "先に動画、次に音声をアップロードしてください", submit: "音声を置換", submitBatch: "音声を置換 ({count} ファイル)", progressLabel: "音声を置換中", }, "burn-subtitles": { fontSize: "フォントサイズ", hint: "動画と字幕ファイル (.srt または .vtt) をアップロード", submit: "字幕を焼き付け", submitBatch: "字幕を焼き付け ({count} ファイル)", progressLabel: "字幕を焼き付け中", }, "embed-subtitles": { language: "言語コード", languageHint: "ISO 639-2 の3文字コード (例: eng, spa, fra)", submit: "字幕を埋め込み", submitBatch: "字幕を埋め込み ({count} ファイル)", progressLabel: "字幕を埋め込み中", }, "extract-subtitles": { submit: "字幕を抽出", submitBatch: "字幕を抽出 ({count} ファイル)", progressLabel: "字幕を抽出中", }, "images-to-video": { secondsPerImage: "画像ごとの秒数", resolution: "解像度", fps: "フレームレート", submit: "動画を作成", submitBatch: "動画を作成 ({count} ファイル)", progressLabel: "スライドショーを作成中", }, "video-metadata": { hint: "メタデータレポートが結果に表示されます", submit: "メタデータを削除", submitBatch: "メタデータを削除 ({count} ファイル)", progressLabel: "メタデータを削除中", }, "convert-audio": { format: "出力形式", bitrate: "ビットレート (kbps)", sampleRate: "サンプルレート (Hz)", sampleRatePreserve: "元のまま維持", submit: "変換", submitBatch: "変換 ({count} ファイル)", progressLabel: "変換中", }, "trim-audio": { start: "開始 (秒)", end: "終了 (秒)", submit: "トリミング", submitBatch: "トリミング ({count} ファイル)", progressLabel: "トリミング中", }, "extract-audio": { format: "出力形式", submit: "抽出", submitBatch: "抽出 ({count} ファイル)", progressLabel: "抽出中", }, "volume-adjust": { "gain-db": "ゲイン (dB)", submit: "音量を調整", submitBatch: "音量を調整 ({count} ファイル)", progressLabel: "音量を調整中", }, "normalize-audio": { hint: "EBU R128 ラウドネス正規化", submit: "正規化", submitBatch: "正規化 ({count} ファイル)", progressLabel: "正規化中", }, "fade-audio": { "fade-in-s": "フェードイン (秒)", "fade-out-s": "フェードアウト (秒)", submit: "フェードを適用", submitBatch: "フェードを適用 ({count} ファイル)", progressLabel: "フェードを適用中", }, "reverse-audio": { submit: "逆再生", submitBatch: "逆再生 ({count} ファイル)", progressLabel: "逆再生中", }, "audio-speed": { factor: "速度倍率", submit: "速度を変更", submitBatch: "速度を変更 ({count}ファイル)", progressLabel: "速度変更中", }, "pitch-shift": { semitones: "半音", hint: "0半音は指定できません", submit: "ピッチをシフト", submitBatch: "ピッチをシフト ({count}ファイル)", progressLabel: "ピッチシフト中", }, "audio-channels": { mode: "チャンネルモード", "stereo-to-mono": "ステレオからモノラル", "mono-to-stereo": "モノラルからステレオ", swap: "左右を入れ替え", submit: "チャンネルを変換", submitBatch: "チャンネルを変換 ({count}ファイル)", progressLabel: "チャンネル変換中", }, "silence-removal": { "threshold-db": "無音しきい値 (dB)", "min-silence-s": "最小無音時間(秒)", submit: "無音を削除", submitBatch: "無音を削除 ({count}ファイル)", progressLabel: "無音削除中", }, "noise-reduction": { strength: "強度", light: "弱", medium: "中", strong: "強", submit: "ノイズを軽減", submitBatch: "ノイズを軽減 ({count}ファイル)", progressLabel: "ノイズ軽減中", }, "merge-audio": { format: "出力形式", mp3: "MP3", wav: "WAV", flac: "FLAC", m4a: "M4A", "order-hint": "アップロード順にファイルが結合されます", submit: "音声を結合", submitBatch: "音声を結合 ({count}ファイル)", progressLabel: "音声結合中", }, "split-audio": { mode: "分割モード", time: "時間で分割", parts: "均等分割", silence: "無音で分割", "segment-s": "セグメント長(秒)", "num-parts": "分割数", "threshold-db": "無音しきい値 (dB)", "min-silence-s": "最小無音時間(秒)", submit: "音声を分割", submitBatch: "音声を分割 ({count}ファイル)", progressLabel: "音声分割中", }, "ringtone-maker": { "start-s": "開始時間(秒)", "duration-s": "長さ(秒)", "max-hint": "最大30秒", submit: "着信音を作成", submitBatch: "着信音を作成 ({count}ファイル)", progressLabel: "着信音作成中", }, "waveform-image": { width: "幅 (px)", height: "高さ (px)", color: "波形の色", submit: "波形を生成", submitBatch: "波形を生成 ({count}ファイル)", progressLabel: "波形生成中", }, "audio-metadata": { strip: "すべてのメタデータを削除", title: "タイトル", artist: "アーティスト", album: "アルバム", submit: "メタデータを適用", submitBatch: "メタデータを適用 ({count}ファイル)", progressLabel: "メタデータ適用中", }, "merge-pdf": { addFiles: "結合するPDFを追加", needTwo: "2つ以上のPDFが必要です", orderHint: "{count}個のPDFがこの順序で結合されます", submit: "結合", submitBatch: "結合 ({count}ファイル)", progressLabel: "結合中", }, "split-pdf": { mode: "分割モード", range: "ページ範囲", rangeHint: "例: 1-3, 5, 7-z", everyN: "パートあたりのページ数", submit: "分割", submitBatch: "分割 ({count}ファイル)", progressLabel: "分割中", }, "compress-pdf": { preset: "品質プリセット", screen: "画面用(最小)", ebook: "電子書籍用(バランス)", printer: "印刷用(最高品質)", submit: "圧縮", submitBatch: "圧縮 ({count}ファイル)", progressLabel: "圧縮中", bestEffortHint: "可能な限りの上限です。画像ベースのPDFはこのサイズに近づきますが、テキストのみのPDFはこのサイズまで縮小できない場合があります。", targetReached: "目標の{target}に到達しました(結果: {size})。", targetMissed: "{target}に到達できませんでした。このPDFは主にテキストまたはベクターで構成されており、画像圧縮では縮小できないため、達成できた最小サイズは{size}でした。", }, "rotate-pdf": { angle: "回転角度", range: "ページ範囲", rangeHint: "例: 1-3, 5, 1-z(全ページ)", submit: "回転", submitBatch: "回転 ({count}ファイル)", progressLabel: "回転中", }, "convert-document": { format: "出力形式", submit: "変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "convert-presentation": { format: "出力形式", submit: "変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "convert-spreadsheet": { format: "出力形式", hint: "複数シートのブックはCSVへの変換時に最初のシートのみ出力されます。", submit: "変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "excel-to-pdf": { submit: "PDFに変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "powerpoint-to-pdf": { submit: "PDFに変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "word-to-pdf": { submit: "PDFに変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "extract-pages": { range: "ページ範囲", rangeHint: "例: 1-3, 5, 7-z", submit: "抽出", submitBatch: "抽出 ({count}ファイル)", progressLabel: "抽出中", }, "remove-pages": { pages: "削除するページ", pagesHint: "例: 2, 4-6, z(最終ページ)", submit: "削除", submitBatch: "削除 ({count}ファイル)", progressLabel: "削除中", }, "organize-pdf": { order: "ページ順序", orderHint: "例: 3,1,2 または 1-z(そのまま)", submit: "並べ替え", submitBatch: "並べ替え ({count}ファイル)", progressLabel: "並べ替え中", }, "protect-pdf": { userPassword: "ユーザーパスワード", ownerPassword: "オーナーパスワード(任意)", ownerPasswordHint: "空の場合はユーザーパスワードが使用されます", submit: "保護", submitBatch: "保護 ({count}ファイル)", progressLabel: "暗号化中", }, "unlock-pdf": { password: "パスワード", submit: "ロック解除", submitBatch: "ロック解除 ({count}ファイル)", progressLabel: "復号中", }, "repair-pdf": { submit: "修復", submitBatch: "修復 ({count}ファイル)", progressLabel: "修復中", }, "linearize-pdf": { submit: "最適化", submitBatch: "最適化 ({count}ファイル)", progressLabel: "リニアライズ中", }, "grayscale-pdf": { submit: "変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "pdfa-convert": { submit: "変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "crop-pdf": { margin: "余白(ポイント)", submit: "切り抜き", submitBatch: "切り抜き ({count}ファイル)", progressLabel: "切り抜き中", }, "nup-pdf": { perSheet: "1枚あたりのページ数", submit: "配置", submitBatch: "配置 ({count}ファイル)", progressLabel: "配置中", }, "booklet-pdf": { perSheet: "1枚あたりのページ数", submit: "冊子を作成", submitBatch: "冊子を作成 ({count}ファイル)", progressLabel: "冊子作成中", }, "watermark-pdf": { text: "透かしテキスト", position: "位置", fontSize: "フォントサイズ", opacity: "不透明度", rotation: "回転", submit: "透かしを追加", submitBatch: "透かしを追加 ({count}ファイル)", progressLabel: "透かし追加中", }, "pdf-page-numbers": { position: "位置", fontSize: "フォントサイズ", submit: "番号を追加", submitBatch: "番号を追加 ({count}ファイル)", progressLabel: "番号追加中", }, "flatten-pdf": { submit: "フラット化", submitBatch: "フラット化 ({count}ファイル)", progressLabel: "フラット化中", }, "sign-pdf": { yourSignatures: "あなたの署名", newSignature: "新規", clickToPlace: "署名をクリックして現在のページに配置します。", selectedSignature: "選択中の署名", dragToAdjust: "ハンドルをドラッグしてサイズ変更や回転ができます。", disclaimer: "視覚的な署名画像を追加します。これは証明書ベースのデジタル署名ではありません。", signing: "署名中…", signingPercent: "署名中… {percent}%", downloadSigned: "署名済み PDF をダウンロード", addFirst: "ダウンロードする前に署名を 1 つ以上追加してください。", loadFailed: "このPDFを表示できませんでした。ファイルが破損しているか、パスワードで保護されている可能性があります。暗号化されている場合は、先にPDFロック解除ツールでパスワードを解除してください。", pad: { title: "署名を作成", draw: "手書き", type: "入力", upload: "アップロード", color: "色", pen: "ペン", namePlaceholder: "名前を入力", yourName: "あなたの名前", remember: "このデバイスに記憶する", save: "保存して配置", uploadHint: "PNG / JPG をドロップするか、クリックして選択します。透明な PNG が最適です。", }, }, "redact-pdf": { terms: "墨消しする語句", termsHint: "1行に1語句(最大50件)", caseSensitive: "大文字・小文字を区別", submit: "墨消し", submitBatch: "墨消し ({count}ファイル)", progressLabel: "墨消し中", }, "pdf-to-text": { submit: "テキストを抽出", submitBatch: "テキストを抽出 ({count}ファイル)", progressLabel: "抽出中", }, "pdf-to-word": { hint: "テキストベースのPDFに最適です。スキャンページにはOCRが必要です", submit: "Wordに変換", submitBatch: "Wordに変換 ({count}ファイル)", progressLabel: "変換中", }, "pdf-metadata": { title: "タイトル", author: "著者", subject: "件名", keywords: "キーワード", submit: "メタデータを設定", submitBatch: "メタデータを設定 ({count}ファイル)", progressLabel: "メタデータ設定中", }, "html-to-pdf": { hint: "プライバシー保護のため外部リソースは無効です。", submit: "PDFに変換", submitBatch: "PDFに変換 ({count}ファイル)", progressLabel: "変換中", }, "markdown-to-docx": { submit: "DOCXに変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "markdown-to-html": { hint: "ソース内の外部画像は出力にそのまま残ります。", submit: "HTMLに変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "markdown-to-pdf": { hint: "プライバシー保護のため外部リソースは無効です。", submit: "PDFに変換", submitBatch: "PDFに変換 ({count}ファイル)", progressLabel: "変換中", }, "epub-convert": { format: "出力形式", hint: "書籍内の外部リソースは取得されません。", submit: "変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "to-epub": { submit: "EPUBに変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "csv-excel": { sheet: "ワークシート番号", submit: "変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "csv-json": { pretty: "整形出力", submit: "変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "json-xml": { pretty: "整形出力", submit: "変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "split-csv": { rowsPerFile: "1ファイルあたりの行数", keepHeader: "各ファイルにヘッダーを残す", submit: "分割", submitBatch: "分割 ({count}ファイル)", progressLabel: "分割中", }, "merge-csvs": { submit: "結合", submitBatch: "結合 ({count}ファイル)", progressLabel: "結合中", }, "yaml-json": { submit: "変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "xml-to-csv": { submit: "変換", submitBatch: "変換 ({count}ファイル)", progressLabel: "変換中", }, "create-zip": { submit: "ZIPを作成", submitBatch: "ZIPを作成 ({count}ファイル)", progressLabel: "ZIP作成中", }, "extract-zip": { submit: "解凍", submitBatch: "解凍 ({count}ファイル)", progressLabel: "解凍中", }, }, urlImport: { title: "URLからインポート", placeholder: "画像URLを貼り付け(1行に1つ)...", importButton: "URLをインポート", addButton: "{count}ファイルを追加", adding: "追加中...", retryButton: "再試行", cancelButton: "キャンセル", readyCount: "{count}件準備完了", failedStatus: "失敗", }, comparison: { original: "オリジナル", processed: "処理後", before: "ビフォー", after: "アフター", savings: "削減量", }, toolPage: { emptyPrompt: "画像をドロップまたはアップロードして開始", filesCount: "ファイル({count})", addMore: "+ 追加", clearAll: "すべてクリア", acceptDescription: "{exts}ファイルのみ", notFound: "ツールが見つかりません", configureAndGenerate: "設定を行い、生成してください。", processingFailed: "このファイルの処理に失敗しました", conversionComplete: "変換完了", cannotPreviewDownload: "{type}ファイルはブラウザでプレビューできません。ダウンロードボタンでファイルを保存してください。", generatingPreview: "プレビューを生成中...", cannotPreviewWillProcess: "{ext}ファイルはブラウザでプレビューできません。ツールは通常通りこのファイルを処理します。", previousImage: "前の画像", nextImage: "次の画像", imageCounter: "{current} / {total}", settingsLabel: "設定", downloadAllZip: "一括ダウンロード(ZIP)", hideSettings: "設定を隠す", imageArea: "画像エリア", disabledByAdmin: "このツールは管理者によって無効化されています", browseOtherTools: "他のツールを見る", privacyNote: "ファイルはサーバー上で処理され、ネットワーク外に送信されません", applyAndDownload: "適用してダウンロード", andMore: "他 {count} 件", importFromFiles: "ファイルからインポート", saveToFiles: "ファイルに保存", savedToFiles: "ファイルに保存しました", librarySaveTitle: "このファイルはマイファイルから読み込まれています", librarySaveAsNew: "結果を新しいファイルとして保存", librarySaveAsNewHint: "元のファイルはマイファイルに残ります", libraryOverwrite: "元のファイルを上書き", libraryOverwriteHint: "結果がマイファイル内の元のファイルを置き換えます", viewInFiles: "マイファイルで表示", adjustSettings: "設定を調整", startOver: "新しいファイルでやり直す", newFile: "新しいファイル", previewUnavailable: "プレビューは処理後に表示されます", generatePreview: "プレビューを生成", previewFailed: "プレビューの生成に失敗しました", backToTools: "ツール一覧に戻る", original: "元画像", processed: "処理済み", saved: "保存済み", noChange: "変更なし", download: "ダウンロード", settingsSaved: "設定は保存されています。", tryAgain: "再試行", tryDifferentFile: "別のファイルを試す", batchPartialSuccess: "{total} 件中 {success} 件処理完了。{failed} 件失敗。", dataResultsHint: "結果は上部に表示されています。結果パネルのコピーボタンをご利用ください。", downloadAsFile: "ファイルとしてダウンロード", downloadAll: "すべてダウンロード", downloadFiles: "{count} 件のファイルをダウンロード", audioDecodeUnsupported: "この音声形式はブラウザでプレビューできません", }, homePage: { generatingPreview: "プレビューを生成中...", loadingPreview: "プレビューを読み込み中...", changeFile: "ファイルを変更", quickActions: "クイックアクション", allTools: "すべてのツール", searchPlaceholder: "{count} 個のツールを検索...", recent: "最近", pinned: "ピン留め", popular: "人気", browseByCategory: "カテゴリで探す", gettingStarted: "はじめに", noToolsMatch: "'{query}' に一致するツールはありません", clearSearch: "検索をクリア", requestToolCta: "「{query}」をリクエスト", requestToolBelowResults: "見つかりませんか?ツールをリクエスト", all: "すべて", documents: "PDF", data: "ファイル", pdf: "PDF", files: "ファイル", toolCount: "{count} 個のツール", heading: "SnapOtter ツール", }, fullscreenGrid: { searchPlaceholder: "ツールを検索...", hideDetails: "詳細を隠す", showDetails: "詳細を表示", switchToSidebar: "サイドバー表示に切り替え", sidebarButton: "サイドバー", noToolsFound: "ツールが見つかりません", tryDifferent: "別の検索キーワードをお試しください", }, editor: { menu: { file: { label: "ファイル", new: "新規", open: "開く", save: "保存", exportAs: "書き出し...", quickExportPng: "PNGで書き出し", close: "閉じる", }, edit: { label: "編集", undo: "元に戻す", redo: "やり直し", cut: "切り取り", copy: "コピー", copyMerged: "結合コピー", paste: "貼り付け", pasteInPlace: "同じ位置に貼り付け", delete: "削除", freeTransform: "自由変形", transform: { label: "変形", scale: "拡大縮小", rotate: "回転", skew: "傾斜", flipHorizontal: "水平反転", flipVertical: "垂直反転", }, }, image: { label: "画像", imageSize: "画像サイズ...", canvasSize: "キャンバスサイズ...", rotation: { label: "画像の回転", cw90: "時計回り90°", ccw90: "反時計回り90°", r180: "180°", flipHorizontal: "水平反転", flipVertical: "垂直反転", }, trim: "トリム", adjustments: { label: "調整", brightnessContrast: "明るさ/コントラスト", hueSaturation: "色相/彩度", colorBalance: "カラーバランス", levels: "レベル", curves: "トーンカーブ", }, }, layer: { label: "レイヤー", newLayer: "新規レイヤー", duplicateLayer: "レイヤーを複製", deleteLayer: "レイヤーを削除", arrange: { label: "順序", bringToFront: "最前面へ", bringForward: "前面へ", sendBackward: "背面へ", sendToBack: "最背面へ", }, mergeDown: "下のレイヤーと結合", flattenImage: "画像を統合", }, select: { label: "選択", all: "すべて選択", deselect: "選択解除", inverse: "選択の反転", colorRange: "色域指定...", }, filter: { label: "フィルター", blur: { label: "ぼかし", gaussian: "ガウスぼかし", motion: "モーションぼかし", radial: "放射ぼかし", surface: "表面ぼかし", }, sharpen: { label: "シャープ", sharpen: "シャープ", unsharpMask: "アンシャープマスク", }, noise: { label: "ノイズ", addNoise: "ノイズを追加", reduceNoise: "ノイズを軽減", }, pixelate: { label: "ピクセレート", pixelate: "ピクセレート", mosaic: "モザイク", }, stylize: { label: "スタイライズ", emboss: "エンボス", solarize: "ソラリゼーション", posterize: "ポスタリゼーション", }, grayscale: "グレースケール", sepia: "セピア", invert: "階調の反転", }, view: { label: "表示", zoomIn: "拡大", zoomOut: "縮小", fitOnScreen: "画面に合わせる", actualPixels: "実際のサイズ", rulers: "定規", grid: "グリッド", guides: "ガイド", snap: "スナップ", panels: "パネル", }, }, menuBar: { backTitle: "SnapOtterに戻る", }, welcome: { ariaLabel: "画像ドロップゾーン", heading: "画像エディター", dropDescription: "ここに画像をドロップして開始", openImageButton: "画像を開く", newDocumentButton: "新規ドキュメント", pasteHint: "またはクリップボードから貼り付け(Ctrl+V)", }, mobile: { heading: "デスクトップ推奨", description: "画像エディターはデスクトップ画面で最適に動作します。フルな編集体験には、より大きなディスプレイのデバイスでお使いください。", }, errors: { serverDecodeFailed: "サーバーでのデコードに失敗しました", }, shapes: { shape: "シェイプ", fill: "塗りつぶし", stroke: "枠線", strokeWidth: "線幅", cornerRadius: "角丸", sides: "辺数", points: "頂点数", dashStyle: "線種", solid: "実線", dashed: "破線", dotted: "点線", none: "なし", opacity: "不透明度", rectangle: "四角形", ellipse: "楕円", line: "直線", arrow: "矢印", polygon: "多角形", star: "星形", }, }, settings: { heading: "設定", nav: { general: "一般", systemSettings: "システム設定", security: "セキュリティ", people: "メンバー", teams: "チーム", roles: "ロール", auditLog: "監査ログ", usage: "使用状況", apiKeys: "APIキー", aiFeatures: "AI機能", tools: "ツール", about: "SnapOtterについて", }, general: { heading: "一般", description: "ユーザー設定と表示設定。", loading: "読み込み中...", logOut: "ログアウト", defaultToolViewLabel: "デフォルトツール表示", defaultToolViewDescription: "ホームページでのツールの表示方法", sidebarOption: "サイドバー", fullscreenGridOption: "フルスクリーングリッド", appVersionLabel: "アプリバージョン", appVersionDescription: "SnapOtterの現在のバージョン", saveButton: "設定を保存", saveSuccess: "設定を保存しました。", saveFailed: "設定の保存に失敗しました。", }, system: { heading: "システム設定", description: "サーバー側の構成と制限。", fileUploadLimitLabel: "ファイルアップロード制限(MB)", fileUploadLimitDescription: "1回のアップロードの最大ファイルサイズ", defaultThemeLabel: "デフォルトテーマ", defaultThemeDescription: "新しいセッションに適用されるテーマ", lightOption: "ライト", darkOption: "ダーク", systemOption: "システムに合わせる", languageLabel: "言語", languageDescription: "インターフェースの言語", loginAttemptLimitLabel: "ログイン試行制限", loginAttemptLimitDescription: "ロックアウトまでの1分あたりの最大ログイン失敗回数", fileManagementHeading: "ファイル管理", maxFileAgeLabel: "ファイル最大保持時間(時間)", maxFileAgeDescription: "処理済みファイルが自動クリーンアップまで保持される時間", startupCleanupLabel: "起動時クリーンアップ", startupCleanupDescription: "サーバー起動時に古い一時ファイルをクリーンアップ", saveButton: "設定を保存", saveSuccess: "設定を保存しました。", saveFailed: "設定の保存に失敗しました。", limitsAndResources: "制限とリソース", maxFileSize: "最大ファイルサイズ", maxBatchSize: "最大バッチサイズ", concurrentJobs: "同時実行ジョブ数", workerThreads: "ワーカースレッド数", maxPipelineSteps: "最大Pipelineステップ数", processingTimeout: "処理タイムアウト", rateLimitPerMin: "レート制限(リクエスト/分)", unlimited: "無制限", auto: "自動", envOverride: "環境変数で設定済み", maxCanvasPixels: "最大キャンバスピクセル", maxSvgSize: "最大SVGサイズ", maxSplitGrid: "最大分割グリッド", maxPdfPages: "最大PDFページ数", sessionDuration: "セッション期間", supportBundleButton: "サポートバンドルをダウンロード", supportBundleDescription: "トラブルシューティング用の診断 ZIP(設定、ログ、ジョブデータを含む)をダウンロードします。", supportBundleFailed: "サポートバンドルのダウンロードに失敗しました。", }, privacy: { title: "プライバシー", description: "匿名のプロダクト分析は SnapOtter の改善に役立ちます。既定で有効になっており、インスタンス全体に対して管理者が設定します。", analyticsLabel: "匿名のプロダクト分析", analyticsDescription: "匿名の使用状況データ(実行されたツール、処理時間、エラーコード)とクラッシュレポートを共有します。IP アドレスやアカウント情報は含まれません。ファイル名、ファイルの内容、OCR の出力、画像のメタデータ、ドキュメントのテキストを収集することは一切ありません。これをオフにすると、すべて停止します。", }, security: { heading: "セキュリティ", description: "パスワードと認証の設定。", changePasswordHeading: "パスワード変更", currentPasswordPlaceholder: "現在のパスワード", newPasswordPlaceholder: "新しいパスワード", confirmPasswordPlaceholder: "新しいパスワードの確認", passwordsMismatch: "パスワードが一致しません", passwordTooShort: "パスワードは4文字以上必要です", changeSuccess: "パスワードを変更しました", changeFailed: "パスワードの変更に失敗しました", currentPasswordIncorrect: "現在のパスワードが正しくありません", changePasswordButton: "パスワード変更", loginAttemptLimitNote: "ログイン試行制限はシステム設定で構成できます。", twoFactorHeading: "2 要素認証", twoFactorDescription: "認証アプリを使って、アカウントにセキュリティを追加します。", twoFactorEnabledStatus: "2 要素認証は有効になっています。", twoFactorDisabledStatus: "2 要素認証は有効になっていません。", enableTwoFactorButton: "2 要素認証を有効にする", disableTwoFactorButton: "2 要素認証を無効にする", twoFactorScanQr: "認証アプリ(Google Authenticator、Authy、1Password など)でこの QR コードをスキャンしてください。", twoFactorManualEntry: "コードをスキャンできない場合は、このキーを手動で入力してください:", twoFactorRecoveryCodesHeading: "リカバリーコード", twoFactorRecoveryCodesDescription: "これらのコードを安全な場所に保管してください。認証アプリにアクセスできなくなった場合、各コードを 1 回だけサインインに使用できます。", twoFactorCopyRecoveryCodes: "コードをコピー", twoFactorCodesCopied: "コピーしました", twoFactorCopyFailed: "自動的にコピーできませんでした。上のコードを選択して手動でコピーしてください。", twoFactorEnterCode: "設定を確定するには、アプリに表示される 6 桁のコードを入力してください。", twoFactorCodePlaceholder: "000000", twoFactorConfirmButton: "確定して有効にする", twoFactorCancelButton: "キャンセル", twoFactorEnableSuccess: "2 要素認証が有効になりました。", twoFactorDisableSuccess: "2 要素認証が無効になりました。", twoFactorDisablePrompt: "2 要素認証を無効にするには、現在の認証コードを入力してください。", adminHeading: "管理者セキュリティ設定", adminDescription: "エンタープライズセキュリティポリシー設定。すべてのユーザーに適用されます。", sessionIdleTimeout: "セッションアイドルタイムアウト(分)", sessionIdleTimeoutDesc: "アイドル状態のセッションを自動ログアウトします。0 = 無効。", maxSessionsPerUser: "ユーザーあたりの最大セッション数", maxSessionsPerUserDesc: "ユーザーあたりの同時セッション数を制限します。0 = 無制限。", mfaPolicy: "MFA ポリシー", mfaPolicyDesc: "ユーザーに多要素認証を要求します。", mfaPolicyOptional: "任意", mfaPolicyAdminsOnly: "管理者のみ必須", mfaPolicyRequired: "全ユーザー必須", ssoEnforcement: "SSO の強制", ssoEnforcementDesc: "緊急アクセス用以外のすべてのユーザーに SSO ログインを要求します。", ssoBreakGlassUsername: "緊急アクセス用管理者ユーザー名", ssoBreakGlassUsernameDesc: "SSO 強制時でもローカル資格情報でログインできる管理者です。", passwordMinLength: "パスワードの最小文字数", passwordMinLengthDesc: "パスワードに必要な最小文字数です。", passwordRequireUppercase: "大文字を必須にする", passwordRequireUppercaseDesc: "大文字を1文字以上含める必要があります。", passwordRequireNumber: "数字を必須にする", passwordRequireNumberDesc: "数字を1文字以上含める必要があります。", passwordRequireSpecial: "特殊文字を必須にする", passwordRequireSpecialDesc: "特殊文字を1文字以上含める必要があります。", passwordPolicyHeading: "パスワードポリシー", securitySettingsSaved: "セキュリティ設定を保存しました", securitySettingsFailed: "セキュリティ設定の保存に失敗しました", }, people: { heading: "メンバー", description: "ワークスペースのメンバーと権限を管理", userCount: "{count}人のユーザー", userCountPlural: "{count}人のユーザー", searchPlaceholder: "メンバーを検索...", addMembersButton: "メンバー追加", newMemberHeading: "新しいメンバー", usernamePlaceholder: "ユーザー名", passwordPlaceholder: "パスワード", roleUserOption: "ユーザー", roleEditorOption: "エディター", roleAdminOption: "管理者", roleUserDescription: "基本ツールへのアクセス", roleEditorDescription: "全ファイルとPipeline", roleAdminDescription: "フルアクセス", noDescription: "説明なし", defaultTeamOption: "デフォルト", createButton: "作成", cancelButton: "キャンセル", createSuccess: "ユーザーを作成しました", createFailed: "ユーザーの作成に失敗しました", userLimitReached: "ユーザー上限に達しました(最大{max})", deleteConfirm: "ユーザー「{username}」を削除しますか?この操作は取り消せません。", deleteSuccess: "ユーザー「{username}」を削除しました", deleteFailed: "ユーザーの削除に失敗しました", editHeading: "{username}を編集", updateSuccess: "ユーザーを更新しました", updateFailed: "ユーザーの更新に失敗しました", cannotRemoveOwnAdmin: "自分の管理者ロールは削除できません", resetPasswordHeading: "{username}のパスワードをリセット", newPasswordLabel: "新しいパスワード(8文字以上)", resetPasswordButton: "パスワードリセット", resetPasswordWarning: "このユーザーのすべてのセッションとAPIキーが無効になります。", resetSuccess: "パスワードをリセットしました", resetFailed: "パスワードのリセットに失敗しました", tableHeaderUser: "ユーザー", tableHeaderRole: "ロール", tableHeaderTeam: "チーム", noSearchResults: "検索に一致するメンバーがいません。", noUsersFound: "ユーザーが見つかりません。", authBadgeLocalOidc: "ローカル + OIDC", authBadgeOidc: "OIDC", editRoleTeamAction: "ロール/チームを編集", resetPasswordAction: "パスワードリセット", deleteUserAction: "ユーザー削除", saveButton: "保存", copyPasswordButton: "パスワードをコピー", passwordCopied: "コピーしました!", copyPasswordWarning: "今すぐこのパスワードをコピーしてください。ユーザー作成後は表示できません。", }, teams: { heading: "チーム", description: "メンバーをチームに整理して管理を効率化。", createButton: "新規チーム作成", newTeamHeading: "新しいチーム", teamNamePlaceholder: "チーム名", createSubmitButton: "作成", cancelButton: "キャンセル", createSuccess: "チームを作成しました", createFailed: "チームの作成に失敗しました", duplicateTeamError: "同じ名前のチームが既にあります", renameSuccess: "チーム名を変更しました", renameFailed: "チーム名の変更に失敗しました", deleteConfirm: "チーム「{name}」を削除しますか?メンバーは未割り当てになります。", deleteSuccess: "チーム「{name}」を削除しました", deleteFailed: "チームの削除に失敗しました", cannotDeleteDefault: "デフォルトチームまたはメンバーのいるチームは削除できません", tableHeaderTeamName: "チーム名", tableHeaderMembers: "メンバー", emptyState: "チームが見つかりません。", renameSaveButton: "保存", renameCancelButton: "キャンセル", renameAction: "名前変更", deleteAction: "削除", totalMembers: "合計メンバー数", nameRequired: "チーム名は必須です", nameTooLong: "チーム名は50文字以内にしてください", duplicateName: "同じ名前のチームが既にあります", teamStorageQuota: "ストレージ容量(MB)", teamStorageQuotaDesc: "チームの最大ストレージ容量(MB)。空欄で無制限。", teamRetentionHours: "保持期間(時間)", teamRetentionHoursDesc: "チームの処理ファイル保持期間。空欄でグローバルデフォルトを使用。", quotaSaved: "チーム設定を保存しました", }, roles: { heading: "ロール", description: "ロールと権限を管理。ビルトインロールは変更できません。", createButton: "カスタムロール作成", newRoleHeading: "新しいロール", roleNamePlaceholder: "ロール名", descriptionPlaceholder: "説明(任意)", permissionsLabel: "権限", createSubmitButton: "作成", cancelButton: "キャンセル", createSuccess: "ロールを作成しました", createFailed: "ロールの作成に失敗しました", duplicateRoleError: "同じ名前のロールが既にあります", editHeading: "ロールを編集:{name}", editSaveButton: "保存", editCancelButton: "キャンセル", updateSuccess: "ロールを更新しました", updateFailed: "ロールの更新に失敗しました", deleteConfirm: "ロール「{name}」を削除しますか?{count}人のユーザーの再割り当てが必要です。", deleteConfirmSimple: "ロール「{name}」を削除しますか?", deleteSuccess: "ロール「{name}」を削除しました", deleteFailed: "ロールの削除に失敗しました", emptyState: "ロールが見つかりません。", builtInBadge: "ビルトイン", userCountBadge: "{count}人", editRoleTitle: "ロールを編集", deleteRoleTitle: "ロールを削除", permGroup: { tools: "ツール", files: "ファイル", apiKeys: "APIキー", pipelines: "Pipeline", settings: "設定", users: "ユーザー", teams: "チーム", system: "システム", }, }, auditLog: { heading: "監査ログ", allActionsFilter: "すべてのアクション", emptyState: "監査ログエントリーはありません。", tableHeaderTime: "時刻", tableHeaderUser: "ユーザー", tableHeaderAction: "アクション", tableHeaderTarget: "対象", paginationInfo: "{page}/{totalPages}ページ(全{total}件)", previousButton: "前へ", nextButton: "次へ", justNow: "たった今", minutesAgo: "{mins}分前", hoursAgo: "{hrs}時間前", daysAgo: "{days}日前", }, usage: { heading: "使用状況", description: "ジョブとファイルストレージのローカル使用統計。", periodLabel: "期間", days7: "7日間", days30: "30日間", days90: "90日間", jobsPerDayHeading: "1日あたりのジョブ数", topToolsHeading: "よく使うツール", perUserHeading: "ユーザー別使用量", durationsHeading: "処理時間パーセンタイル", noData: "この期間のデータはありません。", dayColumn: "日", totalColumn: "合計", completedColumn: "完了", failedColumn: "失敗", toolColumn: "ツール", runsColumn: "実行回数", userColumn: "ユーザー", bytesInColumn: "入力バイト", poolColumn: "プール", p50Column: "p50", p95Column: "p95", storageHeading: "ライブラリストレージ", storageFiles: "{count} ファイル", unknownUser: "(不明)", storageByTeam: "チーム別ストレージ", teamColumn: "チーム", storageColumn: "ストレージ", usersColumn: "ユーザー", }, apiKeys: { heading: "APIキー", description: "SnapOtterへのプログラムアクセス用APIキーを管理。", keyNamePlaceholder: "キー名(任意)", generateButton: "APIキーを生成", removeScopingLabel: "権限スコープを解除", restrictPermissionsLabel: "権限を制限(任意)", expiresLabel: "有効期限:", clearButton: "クリア", copyTitle: "コピー", keyWarning: "このキーは安全に保管してください。再表示されません。", existingKeysHeading: "既存のキー", createdPrefix: "{date}に作成", scopedPrefix: "スコープ:", expiresPrefix: "{date}に期限切れ", deleteKeyTitle: "キーを削除", deleteConfirm: "このAPIキーを削除しますか?このキーを使用するすべての連携が停止します。", emptyState: "まだAPIキーがありません。1つ生成して開始しましょう。", }, tools: { heading: "ツール", description: "個別のツールを有効または無効にします。無効なツールはすべてのユーザーに非表示になります。", restartBanner: "変更を反映するには再起動が必要です。", searchPlaceholder: "ツールを検索...", noSearchResults: "検索に一致するツールがありません。", loadFailedError: "ツール設定の読み込みに失敗しました。データ損失を防ぐため、保存は無効になっています。", saveButton: "ツール設定を保存", disabledCount: "{count}個のツールが無効", }, experimental: { label: "実験的ツールを有効化", description: "開発中のツールを表示します。不安定な場合があります。", }, fileManagement: { title: "ファイル管理", maxAge: "ファイル最大保持時間(時間)", maxAgeDescription: "処理済みファイルが自動クリーンアップまで保持される時間", startupCleanup: "起動時クリーンアップ", startupCleanupDescription: "サーバー起動時に古い一時ファイルをクリーンアップ", }, dataRetention: { title: "データ保持", fileMaxAgeHours: "処理ファイルの保持期間(時間)", fileMaxAgeHoursDesc: "アップロードおよび処理済みファイルの保持期間。デフォルト: 72時間。", jobsRetentionDays: "ジョブ記録の保持期間(日)", jobsRetentionDaysDesc: "ジョブメタデータの保持期間。0 = 永久保持。デフォルト: 30日。", auditRetentionDays: "監査ログの保持期間(日)", auditRetentionDaysDesc: "監査ログエントリの保持期間。0 = 永久保持。デフォルト: 永久。", }, aiFeatures: { title: "AI 機能", description: "高度なファイル処理のためのAIモデルバンドルを管理します。", installAll: "すべてインストール", diskUsage: "ディスク使用量: {size}", sizeOnDisk: "ディスク上 {size}", installed: "インストール済み", notInstalled: "未インストール", queued: "待機中", install: "インストール", repair: "修復", uninstall: "アンインストール", installing: "インストール中...", importBundle: "バンドルをインポート", importDescription: "オフライン用の署名済みOCRランタイムまたは従来のAIバンドルをインポートします。", importButton: "ファイルからインポート", importing: "インポート中...", importSuccess: "バンドルのインポートに成功しました。", importError: "バンドルのインポートに失敗しました: {error}", importType: "バンドルの種類", importOcr: "高精度OCRパック", importLegacy: "従来のAIバンドル", importOcrIndex: "署名済みOCRインデックス (.json)", importOcrArchive: "OCRランタイムアーカイブ (.tar.gz)", importLegacyArchive: "従来のバンドルアーカイブ (.tar.gz)", resetTitle: "AI環境をリセット", resetDescription: "インストール済みのAI機能とダウンロード済みのモデルをすべて削除し、まっさらな状態からやり直します。アップデート後にAIツールの動作がおかしくなり、バンドルを再インストールしても直らない場合に使用してください。", resetButton: "リセット", resetConfirmMessage: "インストール済みのAI機能とモデルがすべて削除されます。Hugging Faceから再インストールする必要があります。この操作は取り消せません。", resetFailed: "リセットに失敗しました: {error}", }, about: { heading: "SnapOtterについて", appName: "SnapOtter", appDescription: "セルフホスト型、プライバシー第一のファイル処理スイート。200+のツールを搭載。変換、圧縮、編集、文字起こし、OCRなど、画像・動画・音声・PDF・ファイルのワークフローをクラウドにデータを送ることなく自動化できます。", versionLabel: "バージョン:", linksHeading: "リンク", githubLink: "GitHubリポジトリ", docsLink: "ドキュメント", apiRefLink: "APIリファレンス(Swagger)", licenseLabel: "ライセンス:", licenseDescription: "SnapOtter は GNU Affero General Public License v3 (AGPLv3) に基づくオープンソースソフトウェアです。", }, }, auth: { login: "ログイン", logout: "ログアウト", username: "ユーザー名", password: "パスワード", loginButton: "ログイン", loggingIn: "ログイン中...", invalidCredentials: "ユーザー名またはパスワードが無効です", connectionError: "接続エラー", signInWith: "{provider}でサインイン", signInWithSso: "SSOでサインイン", or: "または", methodLocal: "ローカル", methodOidc: "OIDC", methodBoth: "ローカル + OIDC", oidcAuthFailed: "認証に失敗しました。もう一度お試しください。", oidcProviderUnreachable: "IDプロバイダーに接続できません。しばらく後にお試しください。", oidcSessionExpired: "ログインセッションの有効期限が切れました。もう一度お試しください。", oidcUserNotAuthorized: "お使いのアカウントにはこのアプリケーションへのアクセス権がありません。管理者にお問い合わせください。", oidcUserLimitReached: "ユーザー上限に達しました。管理者にお問い合わせください。", oidcGenericError: "認証エラー。もう一度お試しください。", samlAuthFailed: "SAML 認証に失敗しました。もう一度お試しください。", samlUserNotAuthorized: "このアプリケーションへのアクセス権がありません。管理者にお問い合わせください。", samlUserLimitReached: "ユーザー数の上限に達しました。管理者にお問い合わせください。", ssoEnforcedLocalRestricted: "ローカルログインは許可された管理者のみ使用できます。", mfaRequired: "認証コードを入力してください", mfaRecoveryHint: "リカバリーコードも使用できます", verify: "確認", verifying: "確認中...", mfaInvalidCode: "無効なコードです。もう一度お試しください。", mfaEnrollmentRequired: "組織で多要素認証が必須です。アカウント設定で MFA を設定してください。", methodSaml: "SAML", passwordManagedByProvider: "パスワードはIDプロバイダーで管理されています。", enterUsername: "ユーザー名を入力", enterPassword: "パスワードを入力", heroTitle: "あなたのファイルは、あなたのもの。", heroSubtitle: "必要なすべてのツールがここに。", rotatingPhrases: [ "登録不要。アカウント不要。", "クラウドへのアップロードは一切なし。", "100%ローカル処理。", "無料。ずっと無料。", "制限なし。隠れた上限なし。", "完全オフラインで動作。", "バッチ処理も無制限。", "200+のツールを搭載。", "15のAIモデル。あなたのハードウェアで。", "Sharp搭載で超高速処理。", "エアギャップ環境にも対応。", "Dockerコンテナ1つで完結。", "オープンソース。いつまでも。", "すべてのピクセルがあなたのハードウェアに。", "あなたのサーバー。あなたのルール。", "docker pullひとつでデプロイ完了。", "セルフホストという選択肢。", "リサイズも圧縮も変換もローカルで。", "無料の画像エディター。透かしなし。", "バッチファイル処理を無制限で。", "背景除去もオフラインで。", "セルフホスト型Canva代替。", "APIキー不要。", "設計段階からGDPR準拠。", "インターネットなしでも動作。", ], }, changePassword: { title: "パスワードを変更してください", description: "続行するには新しいパスワードの設定が必要です。8文字以上で大文字、小文字、数字を含めてください。", usernameLabel: "ユーザー名", currentPasswordLabel: "現在のパスワード", currentPasswordPlaceholder: "現在のパスワードを入力", newPasswordLabel: "新しいパスワード", generateButton: "強力なパスワードを生成", newPasswordPlaceholder: "8文字以上", confirmPasswordLabel: "新しいパスワードの確認", confirmPasswordPlaceholder: "新しいパスワードを再入力", passwordsMismatch: "パスワードが一致しません", failedError: "パスワードの変更に失敗しました", connectionError: "接続エラー", changingButton: "変更中...", changeButton: "パスワード変更", sidebarTitle: "あと少しです", sidebarDescription: "強力なパスワードを設定してアカウントを保護すれば、準備完了です。", }, automate: { title: "自動化", invalidPipelineFile: "有効なSnapOtter Pipelineファイルではありません", newerVersion: "このPipelineは新しいバージョンのSnapOtterで作成されました", missingName: "Pipelineファイルに名前がありません", noSteps: "Pipelineファイルにステップがありません", importFailed: "インポートに失敗しました", couldNotRead: "Pipelineファイルを読み取れませんでした", fileCount: "{count}ファイル", fileCountPlural: "{count}ファイル", importFromLibrary: "ライブラリからインポート", addButton: "+ 追加", libraryButton: "ライブラリ", clearButton: "クリア", processingFailed: "このファイルの処理に失敗しました", processingMultiple: "{count}ファイルを処理中...", processingPipeline: "Pipelineを処理中...", processButton: "処理", processButtonMultiple: "処理({count})", processAllButton: "すべて処理({count})", addTool: "ツール追加", toolPalette: "ツールパレット", clickToAdd: "クリックでPipelineに追加", savedLabel: "保存済み", templatesLabel: "テンプレート", importButton: "インポート", noSavedPipelines: "保存されたPipelineはありません", stepCount: "({count}ステップ)", stepCountPlural: "({count}ステップ)", exportPipeline: "Pipelineをエクスポート", deletePipeline: "Pipelineを削除", moreCount: "+{count}件", pipelineBuilder: "Pipelineビルダー", addToolsPrompt: "パレットからツールを追加して開始", stepsConfigured: "{count}ステップ構成済み", stepsConfiguredPlural: "{count}ステップ構成済み", noFilesLoaded: "ファイルが読み込まれていません", downloadZip: "ZIPをダウンロード", saveButton: "保存", pipelineNamePlaceholder: "Pipeline名", descriptionPlaceholder: "説明", savingIndicator: "...", cancelButton: "キャンセル", preview: "プレビュー", previousImage: "前の画像", nextImage: "次の画像", imageCounter: "{current} / {total}", imageArea: "画像エリア", templateSocialMedia: "SNS向け最適化", templatePrivacyClean: "プライバシークリーン", templateWebOptimization: "Web最適化", templateProfilePicture: "プロフィール画像", templateWatermarkBatch: "一括ウォーターマーク", createNew: "新しい自動化を作成", savedAutomations: "保存済みの自動化", templates: "テンプレート", addStep: "ステップ追加", removeStep: "削除", moveUp: "上へ移動", moveDown: "下へ移動", savePipeline: "Pipelineを保存", runPipeline: "処理", pipelineName: "Pipeline名", pipelineDescription: "説明(任意)", noStepsPrompt: "ステップを追加して自動化を構築", noStepsHeading: "ステップがありません", searchToolsPlaceholder: "ツールを検索...", step: "ステップ", modalityWarning: "モダリティ不一致", modalityWarningTooltip: "このステップは {expected} を想定していますが {received} を受け取ります。パイプラインの実行時に失敗する可能性があります。", }, nav: { tools: "ツール", reader: "リーダー", automate: "自動化", editor: "エディター", files: "ファイル", help: "ヘルプ", settings: "設定", grid: "グリッド", }, files: { myFiles: "マイファイル", recentTab: "最近", uploadTab: "ファイルをアップロード", fileDetailsAriaLabel: "ファイル詳細", fileDetailsHeading: "ファイル詳細", searchPlaceholder: "ファイルを検索...", selectedCount: "{count} 件選択中", fileCount: "{count} ファイル", fileCountSingular: "{count} ファイル", noFilesFound: "ファイルが見つかりません", selectFilePrompt: "ファイルを選択して詳細を表示", openFile: "ファイルを開く", selectFile: "ファイルを選択", openInPipeline: "パイプラインで開く", dropFilesHere: "ここにファイルをドロップ", orClickToSelect: "またはクリックして選択", name: "名前", format: "形式", size: "サイズ", dimensions: "寸法", version: "バージョン", toolsUsed: "使用ツール", none: "なし", delete: "削除", pipeline: "パイプライン", download: "ダウンロード", }, dropzone: { unsupportedFileType: "このツールではサポートされていないファイルタイプです", urlFetchFailed: "URLから画像を取得できませんでした", ariaLabel: "ファイルドロップゾーン", dropPrompt: "ここに画像をドロップ", browseOrPaste: "アップロードボタンを使用するか、クリップボードから貼り付け", uploadButton: "アップロード", defaultFormats: "画像、動画、オーディオ、PDF、ファイル、150以上のフォーマット", orSeparator: "または", urlPlaceholder: "画像URLを貼り付け...", urlLoadingIndicator: "...", addUrlButton: "追加", importMultipleUrls: "複数のURLをインポート...", filesSelected: "{count}ファイルを選択済み", dropToAdd: "ファイルを追加するにはドロップ", dropToReplace: "ファイルを置き換えるにはドロップ", }, reviewPanel: { processedResultAlt: "処理結果", sizeLabel: "サイズ:{size}", typeLabel: "タイプ:{type}", processedLabel: "処理時間:{time}", undoButton: "元に戻す", downloadButton: "ダウンロード", openInEditor: "エディターで開く", reviewHeading: "レビュー", continueEditing: "編集を続行", }, features: { notEnabledTitle: "機能が無効です", notEnabledDescription: "この機能は有効になっていません。管理者に設定からの有効化をご依頼ください。", requiresDownload: "この機能には追加ダウンロードが必要です(約{size})", retryButton: "再試行", queued: "インストール待ちです...", enableButton: "{name}を有効化", repairRequired: "修復が必要", repairDescription: "一部のモデルファイルが見つからないか破損しています。修復すると再ダウンロードされます。", repairButton: "{name} を修復", lessThanMinute: "残り1分未満", oneMinuteLeft: "約1分", minutesLeft: "約{mins}分", progressMessages: [ "もうすぐです...たぶん...", "良いものには時間がかかります...", "お湯が沸くのを待つよりは速いです...", "その忍耐力、尊敬します...", "見た目以上にがんばっています...", "ここからが本番です、信じてください...", "裏で大事な仕事をしています...", "これが見えているなら、ちゃんと動いています...", "すごいものを準備中...", "きっと待つ価値がありますよ...", "ハラハラ感も体験のうち...", "あなたのPCに新しい技を教えています...", "あなたのスーパーパワーを設定中...", "あなたのファイルが後で感謝するはず...", "ローディング中...おしゃれに...", "コーヒータイムにちょうどいい待ち時間...", "ローマも一日にしてならず...", "しっ...天才が仕事中です...", "あなたのプロジェクトがこの先の仕上がりに嫉妬中...", "ドリームチームを結成中...", "すごいものを開封中...", "始めるか考え中...冗談です...", "どんでん返し:実はちゃんと動いてます...", "クリエイティブエンジンをウォーミングアップ中...", "イマジネーションをロード中...", "スクリーンセーバーじゃないですよ...", "偉大なアートにはインストール時間が必要...", "未来のあなたが今のあなたに感謝するでしょう...", "賢いファイルを取得中...", "お楽しみはこれからです...", ], }, help: { heading: "ヘルプ", gettingStarted: { heading: "はじめに", description: "サイドバーからツールを選択するか検索してください。ページにファイルをドラッグするか、アップロードエリアをクリックしてファイルをアップロードします。設定を調整して結果をダウンロードしてください。", }, keyboardShortcuts: { heading: "キーボードショートカット", focusSearchBar: "検索バーにフォーカス", goToTools: "ツールへ移動", toggleTheme: "テーマ切り替え", goToResize: "リサイズへ移動", goToCrop: "クロップへ移動", goToCompress: "圧縮へ移動", goToConvert: "変換へ移動", goToRemoveBackground: "背景除去へ移動", goToWatermarkText: "テキストウォーターマークへ移動", goToStripMetadata: "メタデータ削除へ移動", goToImageInfo: "画像情報へ移動", processFile: "ファイルを処理", downloadResult: "結果をダウンロード", }, resources: { heading: "リソース", githubLink: "GitHubリポジトリ", reportIssueLink: "問題を報告", docsLink: "ドキュメント", apiRefLink: "APIリファレンス(Swagger)", }, versionLabel: "SnapOtter v{version}", }, errors: { generic: "エラーが発生しました", offline: "オフラインです", reconnecting: "サーバーに再接続中...", connected: "接続しました", processingFailed: "このファイルの処理に失敗しました", timeout: "リクエストがタイムアウトしました。サーバーが過負荷の可能性があります。再試行してください。", networkError: "ネットワークエラー。接続を確認してください。", invalidCredentials: "ユーザー名またはパスワードが無効です", connectionError: "接続エラー", }, sidebar: { sponsor: "支援する", tools: "ツール", grid: "グリッド", automate: "自動化", editor: "エディター", files: "ファイル", help: "ヘルプ", settings: "設定", }, toolCard: { pin: "ピン留め", unpin: "ピン留め解除", }, appLayout: { mobileNavTools: "ツール", mobileNavAutomate: "自動化", mobileNavEditor: "エディター", mobileNavFiles: "ファイル", mobileNavSettings: "設定", }, a11y: { sponsorLink: "GitHub Sponsors で SnapOtter を支援する", skipToContent: "メインコンテンツへスキップ", openSidebar: "サイドバーを開く", closeSidebar: "サイドバーを閉じる", closeSettings: "設定を閉じる", closeHelp: "ヘルプを閉じる", closeDialog: "ダイアログを閉じる", zoomIn: "拡大", zoomOut: "縮小", fitToView: "画面に合わせる", actualSize: "実寸表示", pan: "移動", previousImage: "Previous image", nextImage: "Next image", imageArea: "Image area", imageViewer: "Image viewer", fileDropZone: "ファイルドロップゾーン", imageDropZone: "Image drop zone", beforeAfterSlider: "処理前後の比較スライダー", imageControls: "Image controls", zoomControls: "ズームコントロール", dragToReorder: "ドラッグして並べ替え", whiteBackground: "白背景", blackBackground: "黒背景", expandPanel: "パネルを展開", collapsePanel: "パネルを折りたたむ", swapDimensions: "縦横を入れ替え", applyCrop: "切り抜きを適用", cancelCrop: "切り抜きをキャンセル", fontFamily: "フォント", textColor: "文字色", flipHorizontal: "左右反転", flipVertical: "上下反転", hexColorValue: "HEX カラー値", backgroundColor: "背景色", foregroundColor: "前景色", swapColors: "前景色と背景色を入れ替え", resetColors: "デフォルトの白黒にリセット", foregroundHex: "前景色の HEX 値", undo: "元に戻す", redo: "やり直し", layers: "レイヤー", addLayer: "レイヤーを追加", deleteLayer: "レイヤーを削除", cancelOperation: "操作をキャンセル", fill: "塗りつぶし", fileDetails: "ファイル詳細", language: "言語", selected: "選択中", deleteKey: "キーを削除", editRole: "ロールを編集", deleteRole: "ロールを削除", notInstalled: "未インストール", queued: "インストール待ち", installing: "インストール中", imageNOfTotal: "画像 {n}/{total}", processingComplete: "処理が完了しました", processingFailed: "処理に失敗しました", settingsDialog: "設定", helpDialog: "ヘルプ", navigationMenu: "ナビゲーション", homeLink: "SnapOtter ホーム", }, pipelineTemplates: { "web-optimize": { name: "Web向けに最適化", description: "画像をリサイズし、WebPに変換して圧縮し、Webでの読み込みを高速化します。", }, "email-friendly": { name: "メール添付向け", description: "メールに添付できるよう、画像を十分に小さく縮小します。", }, "privacy-scrub": { name: "プライバシー消去", description: "EXIF、GPS、その他のメタデータを削除してから圧縮します。", }, "social-square": { name: "SNS用スクエア", description: "1:1の正方形にトリミングし、SNS投稿向けに圧縮します。", }, "watermark-batch": { name: "透かし一括", description: "画像にテキストの透かしを入れてから圧縮します。", }, "shrink-pdf-email": { name: "メール用にPDFを縮小", description: "PDFをフラット化し、メールの制限に収まるよう強力に圧縮します。", }, "podcast-polish": { name: "ポッドキャスト仕上げ", description: "無音部分を削除し、音量を正規化して、録音にフェードを追加します。", }, "cut-out-subject": { name: "被写体を切り抜き", description: "AIで背景を除去し、透明な切り抜きを圧縮します。", }, "restore-old-photo": { name: "古い写真を復元", description: "AIで古い写真や傷んだ写真を修復し、着色して拡大します。", }, }, } as const; export default ja;