Files
SnapOtter/packages/shared/src/i18n/ja.ts
T
SnapOtter 190d5c84bf fix: resolve remaining QA issues -- editor features, masking, persistence, Playwright tests
Phase 1 quick fixes:
- Add isInputFocused() guard to Cmd+A/D/T/J shortcuts (P1-7)
- Add Go Home button to tool-not-found page (P2-30)
- Fix hardcoded "Import from Library" string in file library modal (P2-28)
- Fix TeamEntry.id type from number to string to match API (P2-6)
- Add eye toggle to confirm password field (P2-10)
- Add Apply/Cancel buttons to Free Transform options bar (P2-14)

Phase 2 state fixes:
- Add sessionStorage persistence to pipeline store (P1-26)
- Fix Free Transform 0 dimensions by falling back to selection bounds (P1-6)

Phase 3 editor features:
- Constrain brush/eraser drawing within active selection bounds (P1-5)
- Add feather radius control to selection options (P2-21)
- Add flow control slider to brush options (P2-22)
- Add brush/block mode selector to eraser options (P2-23)
- Add estimated file size display to export dialog (P2-18)

Phase 4:
- Add Playwright e2e tests for key fixes (404 page, routing, pipeline persistence, export dialog)
2026-06-05 23:14:57 +08:00

1990 lines
80 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { TranslationKeys } from "./en.js";
export const ja: TranslationKeys = {
common: {
upload: "パソコンからアップロード",
process: "処理",
download: "ダウンロード",
cancel: "キャンセル",
save: "保存",
delete: "削除",
settings: "設定",
search: "ツールを検索...",
dropFiles: "ここにファイルをドロップするかアップロードボタンをクリック",
loading: "読み込み中...",
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: "Page not found",
pageNotFoundDescription: "The page you are looking for does not exist or has been moved.",
},
categories: {
essentials: "基本ツール",
optimization: "最適化",
adjustments: "調整",
watermark: "ウォーターマークとオーバーレイ",
utilities: "ユーティリティ",
layout: "レイアウトと構図",
format: "フォーマットと変換",
ai: "AIツール",
},
tools: {
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で画像からテキストを高精度に抽出",
},
"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: "顔自動検出付き、政府規格準拠のパスポート、ビザ、身分証写真を作成",
},
"transparency-fixer": {
name: "PNG透過修正",
description: "偽の透過PNGをワンクリックで修正",
},
"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コードを生成",
},
"barcode-read": {
name: "バーコードリーダー",
description: "画像からQRコード、バーコード、二次元コードをスキャン",
},
collage: {
name: "コラージュ / グリッド",
description: "25以上のテンプレートで画像を美しいグリッドコラージュに合成",
},
stitch: {
name: "画像結合",
description: "画像を横並び、縦並び、またはグリッドで結合",
},
split: {
name: "画像分割",
description: "グリッドまたはピクセルサイズで画像を分割(ライブプレビュー付き)",
},
border: {
name: "ボーダーとフレーム",
description: "ボーダー、パディング、角丸、シャドウをワンクリックプリセットで追加",
},
beautify: {
name: "スクリーンショット美化",
description:
"スクリーンショットにグラデーション背景、デバイスフレーム、シャドウ、SNSサイズを追加",
},
"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等に埋め込み",
},
pipeline: { name: "Pipelineビルダー", description: "複数のツールをワークフローに連結" },
},
toolSettings: {
compress: {
compressionMode: "圧縮モード",
targetSize: "ターゲットサイズ",
quality: "品質",
smallestFile: "最小ファイル",
bestQuality: "最高品質",
submit: "圧縮",
submitBatch: "圧縮({count}ファイル)",
progressLabel: "圧縮中",
original: "元:{size} KB",
processed: "処理後:{size} KB",
saved: "削減:{percent}%",
},
resize: {
customSize: "カスタムサイズ",
scale: "スケール",
presets: "プリセット",
contentAware: "コンテンツ認識",
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: "位置情報あり",
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つのPDF1ページに1画像)",
separatePdfMode: "個別のPDF1画像につき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: "Output Format",
edgeSmoothing: "Edge Smoothing",
edgeSmoothingOff: "Off",
edgeSmoothingLight: "Light",
edgeSmoothingMedium: "Medium",
edgeSmoothingStrong: "Strong",
colorDecontamination: "Color Decontamination",
rendering: "レンダリング中...",
submit: "背景を除去",
submitBatch: "背景を除去({count}ファイル)",
progressLabel: "背景を除去中",
},
upscale: {
scaleFactor: "拡大倍率",
quality: "品質",
enhanceFaces: "顔をエンハンス",
noiseReduction: "ノイズ低減",
noiseReductionHint:
"粒子やノイズを平滑化します。値が高いほどノイズ除去が強くなりますが、ディテールが柔らかくなる場合があります。",
outputFormat: "出力フォーマット",
submit: "{scale}倍に拡大",
submitBatch: "{scale}倍に拡大({count}ファイル)",
progressLabel: "画像をアップスケール中",
progressLabelBatch: "{count}枚の画像をアップスケール中",
},
"erase-object": {
brushSize: "ブラシサイズ",
fine: "細い",
wide: "太い",
undo: "元に戻す",
clear: "クリア",
outputFormat: "出力フォーマット",
quality: "品質",
paintHint: "除去したいオブジェクトの上を塗ってください。Ctrl+Zで元に戻せます。",
submit: "消去",
submitBatch: "すべて消去({count}",
progressLabel: "オブジェクトを消去中",
},
ocr: {
quality: "品質",
enhanceBeforeScanning: "スキャン前にエンハンス",
enhanceHint:
"スキャン前に自動で傾き補正、コントラスト強化、ノイズ除去、アップスケールを行い、認識精度を向上させます。",
language: "言語",
autoDetect: "自動検出",
extractedText: "抽出テキスト",
noTextDetected: "この画像ではテキストが検出されませんでした",
characters: "{count}文字",
submit: "テキスト抽出",
submitBatch: "テキスト抽出({count}ファイル)",
progressLabel: "テキストを抽出中",
},
"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: "写真が生成されました。左パネルからダウンロードしてください。",
},
"transparency-fixer": {
description: "偽の透過背景のPNGをアップロードすると、ワンクリックで修正します。",
removeWatermark: "ウォーターマーク除去",
removeWatermarkHelp: "半透明ウォーターマークを検出して除去",
requiresEraser: "オブジェクト消去バンドルが必要",
advanced: "詳細",
defringe: "フリンジ除去",
outputFormat: "出力フォーマット",
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: "テキストオーバーレイを追加中",
},
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: "Alpha",
hasProfile: "プロファイル",
hasExif: "EXIF",
hasIcc: "ICC",
hasXmp: "XMP",
},
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コードをダウンロード",
},
"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: "スクリーンショットを美化中",
},
"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: "<img>タグをコピー",
copyCssUrl: "CSS url()をコピー",
},
"enhance-faces-standalone": {
model: "モデル",
fast: "高速",
balanced: "バランス",
best: "最高",
},
},
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: "画像エリア",
},
homePage: {
generatingPreview: "プレビューを生成中...",
loadingPreview: "プレビューを読み込み中...",
changeFile: "ファイルを変更",
quickActions: "クイックアクション",
allTools: "すべてのツール",
},
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: "Shape",
fill: "Fill",
stroke: "Stroke",
strokeWidth: "Width",
cornerRadius: "Radius",
sides: "Sides",
points: "Points",
dashStyle: "Dash",
solid: "Solid",
dashed: "Dashed",
dotted: "Dotted",
none: "None",
opacity: "Opacity",
rectangle: "Rectangle",
ellipse: "Ellipse",
line: "Line",
arrow: "Arrow",
polygon: "Polygon",
star: "Star",
},
},
settings: {
heading: "設定",
nav: {
general: "一般",
systemSettings: "システム設定",
security: "セキュリティ",
people: "メンバー",
teams: "チーム",
roles: "ロール",
auditLog: "監査ログ",
apiKeys: "APIキー",
aiFeatures: "AI機能",
tools: "ツール",
productAnalytics: "プロダクト分析",
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: "セッション期間",
},
security: {
heading: "セキュリティ",
description: "パスワードと認証の設定。",
changePasswordHeading: "パスワード変更",
currentPasswordPlaceholder: "現在のパスワード",
newPasswordPlaceholder: "新しいパスワード",
confirmPasswordPlaceholder: "新しいパスワードの確認",
passwordsMismatch: "パスワードが一致しません",
passwordTooShort: "パスワードは4文字以上必要です",
changeSuccess: "パスワードを変更しました",
changeFailed: "パスワードの変更に失敗しました",
currentPasswordIncorrect: "現在のパスワードが正しくありません",
changePasswordButton: "パスワード変更",
loginAttemptLimitNote: "ログイン試行制限はシステム設定で構成できます。",
},
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: "同じ名前のチームが既にあります",
},
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}日前",
},
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: "サーバー起動時に古い一時ファイルをクリーンアップ",
},
analytics: {
heading: "プロダクト分析",
description: "匿名の使用データを共有してSnapOtterの改善にご協力ください。",
privacyNote: "画像がお使いのマシンから外に出ることはありません。",
disabledByAdmin: "プロダクト分析はサーバー管理者によって無効化されています。",
enabledLabel: "分析が有効",
disabledLabel: "分析が無効",
learnMore: "詳しく見る",
},
aiFeatures: {
title: "AI Features",
description: "Manage AI model bundles for advanced image processing.",
installAll: "Install All",
diskUsage: "Disk usage:",
installed: "Installed",
notInstalled: "Not installed",
queued: "Queued",
install: "Install",
repair: "Repair",
uninstall: "Uninstall",
installing: "Installing...",
},
about: {
heading: "SnapOtterについて",
appName: "SnapOtter",
appDescription:
"セルフホスト型、プライバシー第一の画像処理スイート。51のツールを搭載。リサイズ、圧縮、変換、ウォーターマーク追加など、画像ワークフローをクラウドにデータを送ることなく自動化できます。",
versionLabel: "バージョン:",
linksHeading: "リンク",
githubLink: "GitHubリポジトリ",
docsLink: "ドキュメント",
apiRefLink: "APIリファレンス(Swagger",
licenseLabel: "License:",
licenseDescription:
"SnapOtter is open-source software licensed under the 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: "認証エラー。もう一度お試しください。",
passwordManagedByProvider: "パスワードはIDプロバイダーで管理されています。",
enterUsername: "ユーザー名を入力",
enterPassword: "パスワードを入力",
heroTitle: "あなたの画像は、あなたのもの。",
heroSubtitle: "必要なすべての画像ツールがここに。",
rotatingPhrases: [
"登録不要。アカウント不要。",
"クラウドへのアップロードは一切なし。",
"100%ローカル処理。",
"無料。ずっと無料。",
"制限なし。隠れた上限なし。",
"完全オフラインで動作。",
"バッチ処理も無制限。",
"51の画像ツールを搭載。",
"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: "保存済み",
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: "No steps yet",
searchToolsPlaceholder: "Search tools...",
step: "ステップ",
},
nav: {
tools: "ツール",
reader: "リーダー",
automate: "自動化",
editor: "エディター",
files: "ファイル",
help: "ヘルプ",
settings: "設定",
grid: "グリッド",
},
files: {
myFiles: "My Files",
recentTab: "Recent",
uploadTab: "Upload Files",
fileDetailsAriaLabel: "File Details",
fileDetailsHeading: "File Details",
searchPlaceholder: "Search files...",
selectedCount: "{count} selected",
fileCount: "{count} files",
fileCountSingular: "{count} file",
noFilesFound: "No files found",
selectFilePrompt: "Select a file to view details",
openFile: "Open File",
openInPipeline: "Open in Pipeline",
name: "Name",
format: "Format",
size: "Size",
dimensions: "Dimensions",
version: "Version",
toolsUsed: "Tools Used",
none: "None",
delete: "Delete",
pipeline: "Pipeline",
download: "Download",
},
dropzone: {
unsupportedFileType: "このツールではサポートされていないファイルタイプです",
urlFetchFailed: "URLから画像を取得できませんでした",
ariaLabel: "ファイルドロップゾーン",
dropPrompt: "ここに画像をドロップ",
browseOrPaste: "クリックでファイルを参照、またはクリップボードから貼り付け",
uploadButton: "アップロード",
defaultFormats: "PNG、JPG、WebP、HEIC、RAW、PSD、65以上のフォーマット",
orSeparator: "または",
urlPlaceholder: "画像URLを貼り付け...",
urlLoadingIndicator: "...",
addUrlButton: "追加",
importMultipleUrls: "複数のURLをインポート...",
filesSelected: "{count}ファイルを選択済み",
},
reviewPanel: {
processedResultAlt: "処理結果",
sizeLabel: "サイズ:{size}",
typeLabel: "タイプ:{type}",
processedLabel: "処理時間:{time}",
undoButton: "元に戻す",
downloadButton: "ダウンロード",
openInEditor: "エディターで開く",
reviewHeading: "レビュー",
continueEditing: "編集を続行",
},
features: {
notEnabledTitle: "機能が無効です",
notEnabledDescription:
"この機能は有効になっていません。管理者に設定からの有効化をご依頼ください。",
requiresDownload: "この機能には追加ダウンロードが必要です(約{size})",
retryButton: "再試行",
queued: "インストール待ちです...",
enableButton: "{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: "画像情報へ移動",
},
resources: {
heading: "リソース",
githubLink: "GitHubリポジトリ",
reportIssueLink: "問題を報告",
docsLink: "ドキュメント",
apiRefLink: "APIリファレンス(Swagger",
},
versionLabel: "SnapOtter v{version}",
},
errors: {
generic: "エラーが発生しました",
offline: "オフラインです",
reconnecting: "サーバーに再接続中...",
connected: "接続しました",
processingFailed: "このファイルの処理に失敗しました",
timeout:
"リクエストがタイムアウトしました。サーバーが過負荷の可能性があります。再試行してください。",
networkError: "ネットワークエラー。接続を確認してください。",
invalidCredentials: "ユーザー名またはパスワードが無効です",
connectionError: "接続エラー",
},
analytics: {
consentTitle: "SnapOtterの改善にご協力ください",
consentDescription:
"匿名の使用データはバグ修正や本当に必要なツールの開発に役立ちます。画像やファイルがお使いのマシンから外に出ることはありません。",
consentChangeable: "設定からいつでもオフにできます。",
acceptButton: "はい、協力します",
declineButton: "今はしない",
settingsTitle: "プロダクト分析",
settingsDescription: "匿名の使用データを共有してSnapOtterの改善にご協力ください。",
settingsPrivacy: "画像がお使いのマシンから外に出ることはありません。",
settingsDisabledByAdmin: "プロダクト分析はサーバー管理者によって無効化されています。",
learnMore: "詳しく見る",
},
sidebar: {
tools: "ツール",
grid: "グリッド",
automate: "自動化",
editor: "エディター",
files: "ファイル",
help: "ヘルプ",
settings: "設定",
},
toolCard: {
addToFavourites: "お気に入りに追加",
},
appLayout: {
mobileNavTools: "ツール",
mobileNavAutomate: "自動化",
mobileNavEditor: "エディター",
mobileNavFiles: "ファイル",
mobileNavSettings: "設定",
},
} as const;
export default ja;