diff --git a/web/public/locales/ja/audio.json b/web/public/locales/ja/audio.json index 533e387cc..c546c09b2 100644 --- a/web/public/locales/ja/audio.json +++ b/web/public/locales/ja/audio.json @@ -1,5 +1,429 @@ { - "speech": "スピーチ", - "car": "自動車", - "bicycle": "自転車" + "speech": "話し声", + "car": "車", + "bicycle": "自転車", + "yell": "叫び声", + "motorcycle": "オートバイ", + "babbling": "赤ちゃんの喃語", + "bellow": "怒鳴り声", + "whoop": "歓声", + "whispering": "ささやき声", + "laughter": "笑い声", + "snicker": "くすくす笑い", + "crying": "泣き声", + "sigh": "ため息", + "singing": "歌声", + "choir": "合唱", + "yodeling": "ヨーデル", + "chant": "詠唱", + "mantra": "マントラ", + "child_singing": "子供の歌声", + "synthetic_singing": "合成音声の歌", + "rapping": "ラップ", + "humming": "ハミング", + "groan": "うめき声", + "grunt": "うなり声", + "whistling": "口笛", + "breathing": "呼吸音", + "wheeze": "ぜいぜい声", + "snoring": "いびき", + "gasp": "はっと息をのむ音", + "pant": "荒い息", + "snort": "鼻を鳴らす音", + "cough": "咳", + "throat_clearing": "咳払い", + "sneeze": "くしゃみ", + "sniff": "鼻をすする音", + "run": "走る音", + "shuffle": "足を引きずる音", + "footsteps": "足音", + "chewing": "咀嚼音", + "biting": "かみつく音", + "gargling": "うがい", + "stomach_rumble": "お腹の音", + "burping": "げっぷ", + "hiccup": "しゃっくり", + "fart": "おなら", + "hands": "手の音", + "finger_snapping": "指を鳴らす音", + "clapping": "拍手", + "heartbeat": "心臓の鼓動", + "heart_murmur": "心雑音", + "cheering": "歓声", + "applause": "拍手喝采", + "chatter": "おしゃべり", + "crowd": "群衆", + "children_playing": "子供の遊ぶ声", + "animal": "動物", + "pets": "ペット", + "dog": "犬", + "bark": "樹皮", + "yip": "キャンキャン鳴く声", + "howl": "遠吠え", + "bow_wow": "ワンワン", + "growling": "うなり声", + "whimper_dog": "犬の鳴き声(クンクン)", + "cat": "猫", + "purr": "ゴロゴロ音", + "meow": "ニャー", + "hiss": "シャー", + "caterwaul": "猫のけんか声", + "livestock": "家畜", + "horse": "馬", + "clip_clop": "カツカツ音", + "neigh": "いななき", + "cattle": "牛", + "moo": "モー", + "cowbell": "カウベル", + "pig": "豚", + "oink": "ブーブー", + "goat": "ヤギ", + "bleat": "メェー", + "sheep": "羊", + "fowl": "家禽", + "chicken": "鶏", + "cluck": "コッコッ", + "cock_a_doodle_doo": "コケコッコー", + "turkey": "七面鳥", + "gobble": "グルル", + "duck": "アヒル", + "quack": "ガーガー", + "goose": "ガチョウ", + "honk": "ホンク", + "wild_animals": "野生動物", + "roaring_cats": "猛獣の鳴き声", + "roar": "咆哮", + "bird": "鳥", + "chirp": "さえずり", + "squawk": "ギャーギャー", + "pigeon": "ハト", + "coo": "クークー", + "crow": "カラス", + "caw": "カーカー", + "owl": "フクロウ", + "hoot": "ホーホー", + "flapping_wings": "羽ばたき", + "dogs": "犬たち", + "rats": "ネズミ", + "mouse": "マウス", + "patter": "パタパタ音", + "insect": "昆虫", + "cricket": "コオロギ", + "mosquito": "蚊", + "fly": "ハエ", + "buzz": "ブーン", + "frog": "カエル", + "croak": "ゲロゲロ", + "snake": "ヘビ", + "rattle": "ガラガラ音", + "whale_vocalization": "クジラの鳴き声", + "music": "音楽", + "musical_instrument": "楽器", + "plucked_string_instrument": "撥弦楽器", + "guitar": "ギター", + "electric_guitar": "エレキギター", + "bass_guitar": "ベースギター", + "acoustic_guitar": "アコースティックギター", + "steel_guitar": "スティールギター", + "tapping": "タッピング", + "strum": "ストローク", + "banjo": "バンジョー", + "sitar": "シタール", + "mandolin": "マンドリン", + "zither": "ツィター", + "ukulele": "ウクレレ", + "keyboard": "キーボード", + "piano": "ピアノ", + "electric_piano": "エレクトリックピアノ", + "organ": "オルガン", + "electronic_organ": "電子オルガン", + "hammond_organ": "ハモンドオルガン", + "synthesizer": "シンセサイザー", + "sampler": "サンプラー", + "harpsichord": "チェンバロ", + "percussion": "打楽器", + "drum_kit": "ドラムセット", + "drum_machine": "ドラムマシン", + "drum": "ドラム", + "snare_drum": "スネアドラム", + "rimshot": "リムショット", + "drum_roll": "ドラムロール", + "bass_drum": "バスドラム", + "timpani": "ティンパニ", + "tabla": "タブラ", + "cymbal": "シンバル", + "hi_hat": "ハイハット", + "wood_block": "ウッドブロック", + "tambourine": "タンバリン", + "maraca": "マラカス", + "gong": "ゴング", + "tubular_bells": "チューブラーベル", + "mallet_percussion": "マレット打楽器", + "marimba": "マリンバ", + "glockenspiel": "グロッケンシュピール", + "vibraphone": "ビブラフォン", + "steelpan": "スティールパン", + "orchestra": "オーケストラ", + "brass_instrument": "金管楽器", + "french_horn": "フレンチホルン", + "trumpet": "トランペット", + "trombone": "トロンボーン", + "bowed_string_instrument": "擦弦楽器", + "string_section": "弦楽セクション", + "violin": "バイオリン", + "pizzicato": "ピチカート", + "cello": "チェロ", + "double_bass": "コントラバス", + "wind_instrument": "木管楽器", + "flute": "フルート", + "saxophone": "サックス", + "clarinet": "クラリネット", + "harp": "ハープ", + "bell": "鐘", + "church_bell": "教会の鐘", + "jingle_bell": "ジングルベル", + "bicycle_bell": "自転車ベル", + "tuning_fork": "音叉", + "chime": "チャイム", + "wind_chime": "風鈴", + "harmonica": "ハーモニカ", + "accordion": "アコーディオン", + "bagpipes": "バグパイプ", + "didgeridoo": "ディジュリドゥ", + "theremin": "テルミン", + "singing_bowl": "シンギングボウル", + "scratching": "スクラッチ音", + "pop_music": "ポップ音楽", + "hip_hop_music": "ヒップホップ音楽", + "beatboxing": "ボイスパーカッション", + "rock_music": "ロック音楽", + "heavy_metal": "ヘビーメタル", + "punk_rock": "パンクロック", + "grunge": "グランジ", + "progressive_rock": "プログレッシブロック", + "rock_and_roll": "ロックンロール", + "psychedelic_rock": "サイケデリックロック", + "rhythm_and_blues": "リズム・アンド・ブルース", + "soul_music": "ソウル音楽", + "reggae": "レゲエ", + "country": "カントリー", + "swing_music": "スウィング音楽", + "bluegrass": "ブルーグラス", + "funk": "ファンク", + "folk_music": "フォーク音楽", + "middle_eastern_music": "中東音楽", + "jazz": "ジャズ", + "disco": "ディスコ", + "classical_music": "クラシック音楽", + "opera": "オペラ", + "electronic_music": "電子音楽", + "house_music": "ハウス", + "techno": "テクノ", + "dubstep": "ダブステップ", + "drum_and_bass": "ドラムンベース", + "electronica": "エレクトロニカ", + "electronic_dance_music": "EDM", + "ambient_music": "アンビエント", + "trance_music": "トランス", + "music_of_latin_america": "ラテン音楽", + "salsa_music": "サルサ", + "flamenco": "フラメンコ", + "blues": "ブルース", + "music_for_children": "子供向け音楽", + "new-age_music": "ニューエイジ音楽", + "vocal_music": "声楽", + "a_capella": "アカペラ", + "music_of_africa": "アフリカ音楽", + "afrobeat": "アフロビート", + "christian_music": "キリスト教音楽", + "gospel_music": "ゴスペル", + "music_of_asia": "アジア音楽", + "carnatic_music": "カルナータカ音楽", + "music_of_bollywood": "ボリウッド音楽", + "ska": "スカ", + "traditional_music": "伝統音楽", + "independent_music": "インディーズ音楽", + "song": "歌", + "background_music": "BGM", + "theme_music": "テーマ音楽", + "jingle": "ジングル", + "soundtrack_music": "サウンドトラック", + "lullaby": "子守唄", + "video_game_music": "ゲーム音楽", + "christmas_music": "クリスマス音楽", + "dance_music": "ダンス音楽", + "wedding_music": "結婚式音楽", + "happy_music": "明るい音楽", + "sad_music": "悲しい音楽", + "tender_music": "優しい音楽", + "exciting_music": "ワクワクする音楽", + "angry_music": "怒りの音楽", + "scary_music": "怖い音楽", + "wind": "風", + "rustling_leaves": "木の葉のざわめき", + "wind_noise": "風の音", + "thunderstorm": "雷雨", + "thunder": "雷鳴", + "water": "水", + "rain": "雨", + "raindrop": "雨粒", + "rain_on_surface": "雨が当たる音", + "stream": "小川", + "waterfall": "滝", + "ocean": "海", + "waves": "波", + "steam": "蒸気", + "gurgling": "ゴボゴボ音", + "fire": "火", + "crackle": "パチパチ音", + "vehicle": "車両", + "boat": "ボート", + "sailboat": "帆船", + "rowboat": "手漕ぎボート", + "motorboat": "モーターボート", + "ship": "船", + "motor_vehicle": "自動車", + "toot": "クラクション", + "car_alarm": "車のアラーム", + "power_windows": "パワーウィンドウ", + "skidding": "スリップ音", + "tire_squeal": "タイヤの悲鳴", + "car_passing_by": "車が通る音", + "race_car": "レーシングカー", + "truck": "トラック", + "air_brake": "エアブレーキ", + "air_horn": "エアホーン", + "reversing_beeps": "バック警告音", + "ice_cream_truck": "アイスクリームトラック", + "bus": "バス", + "emergency_vehicle": "緊急車両", + "police_car": "パトカー", + "ambulance": "救急車", + "fire_engine": "消防車", + "traffic_noise": "交通騒音", + "rail_transport": "鉄道輸送", + "train": "電車", + "train_whistle": "汽笛", + "train_horn": "列車のホーン", + "railroad_car": "鉄道車両", + "train_wheels_squealing": "車輪のきしむ音", + "subway": "地下鉄", + "aircraft": "航空機", + "aircraft_engine": "航空機エンジン", + "jet_engine": "ジェットエンジン", + "propeller": "プロペラ", + "helicopter": "ヘリコプター", + "fixed-wing_aircraft": "固定翼機", + "skateboard": "スケートボード", + "engine": "エンジン", + "light_engine": "小型エンジン", + "dental_drill's_drill": "歯科用ドリル", + "lawn_mower": "芝刈り機", + "chainsaw": "チェーンソー", + "medium_engine": "中型エンジン", + "heavy_engine": "大型エンジン", + "engine_knocking": "ノッキング音", + "engine_starting": "エンジン始動", + "idling": "アイドリング", + "accelerating": "加速音", + "door": "ドア", + "doorbell": "ドアベル", + "ding-dong": "ピンポン", + "sliding_door": "引き戸", + "slam": "ドアをバタンと閉める音", + "knock": "ノック", + "tap": "トントン音", + "squeak": "きしみ音", + "cupboard_open_or_close": "戸棚の開閉", + "drawer_open_or_close": "引き出しの開閉", + "dishes": "食器", + "cutlery": "カトラリー", + "chopping": "包丁で切る音", + "frying": "揚げ物の音", + "microwave_oven": "電子レンジ", + "blender": "ミキサー", + "water_tap": "水道の蛇口", + "sink": "流し台", + "bathtub": "浴槽", + "hair_dryer": "ヘアドライヤー", + "toilet_flush": "トイレの水流", + "toothbrush": "歯ブラシ", + "electric_toothbrush": "電動歯ブラシ", + "vacuum_cleaner": "掃除機", + "zipper": "ファスナー", + "keys_jangling": "鍵のジャラジャラ音", + "coin": "コイン", + "scissors": "はさみ", + "electric_shaver": "電気シェーバー", + "shuffling_cards": "カードを切る音", + "typing": "タイピング音", + "typewriter": "タイプライター", + "computer_keyboard": "コンピュータキーボード", + "writing": "書く音", + "alarm": "アラーム", + "telephone": "電話", + "telephone_bell_ringing": "電話のベル音", + "ringtone": "着信音", + "telephone_dialing": "ダイヤル音", + "dial_tone": "発信音", + "busy_signal": "話中音", + "alarm_clock": "目覚まし時計", + "siren": "サイレン", + "civil_defense_siren": "防災サイレン", + "buzzer": "ブザー", + "smoke_detector": "火災警報器", + "fire_alarm": "火災報知器", + "foghorn": "霧笛", + "whistle": "ホイッスル", + "steam_whistle": "蒸気笛", + "mechanisms": "機械仕掛け", + "ratchet": "ラチェット", + "clock": "時計", + "tick": "カチカチ音", + "tick-tock": "チクタク音", + "gears": "歯車", + "pulleys": "滑車", + "sewing_machine": "ミシン", + "mechanical_fan": "扇風機", + "air_conditioning": "エアコン", + "cash_register": "レジ", + "printer": "プリンター", + "camera": "カメラ", + "single-lens_reflex_camera": "一眼レフカメラ", + "tools": "工具", + "hammer": "ハンマー", + "jackhammer": "削岩機", + "sawing": "のこぎり", + "filing": "やすりがけ", + "sanding": "研磨", + "power_tool": "電動工具", + "drill": "ドリル", + "explosion": "爆発", + "gunshot": "銃声", + "machine_gun": "機関銃", + "fusillade": "一斉射撃", + "artillery_fire": "砲撃", + "cap_gun": "おもちゃのピストル", + "fireworks": "花火", + "firecracker": "爆竹", + "burst": "破裂音", + "eruption": "噴火", + "boom": "ドカン", + "wood": "木材", + "chop": "伐採音", + "splinter": "裂ける音", + "crack": "割れる音", + "glass": "ガラス", + "chink": "チリン音", + "shatter": "粉々に割れる音", + "silence": "静寂", + "sound_effect": "効果音", + "environmental_noise": "環境音", + "static": "ノイズ", + "white_noise": "ホワイトノイズ", + "pink_noise": "ピンクノイズ", + "television": "テレビ", + "radio": "ラジオ", + "field_recording": "フィールド録音", + "scream": "悲鳴" } diff --git a/web/public/locales/ja/common.json b/web/public/locales/ja/common.json index bf06ac831..90eeba7ef 100644 --- a/web/public/locales/ja/common.json +++ b/web/public/locales/ja/common.json @@ -1,8 +1,260 @@ { "time": { - "untilForRestart": "Frigateが再起動するまで.", + "untilForRestart": "Frigate が再起動するまで。", "untilRestart": "再起動まで", - "untilForTime": "{{time}} まで" + "untilForTime": "{{time}} まで", + "ago": "{{timeAgo}} 前", + "justNow": "今", + "today": "本日", + "yesterday": "昨日", + "last7": "7日間", + "last14": "14日間", + "last30": "30日間", + "thisWeek": "今週", + "lastWeek": "先週", + "thisMonth": "今月", + "lastMonth": "先月", + "5minutes": "5 分", + "10minutes": "10 分", + "30minutes": "30 分", + "1hour": "1 時間", + "12hours": "12 時間", + "24hours": "24 時間", + "pm": "午後", + "am": "午前", + "yr": "{{time}}年", + "year_other": "{{time}} 年", + "mo": "{{time}}ヶ月", + "month_other": "{{time}} ヶ月", + "d": "{{time}}日", + "day_other": "{{time}} 日", + "h": "{{time}}時間", + "hour_other": "{{time}} 時間", + "m": "{{time}}分", + "minute_other": "{{time}} 分", + "s": "{{time}}秒", + "second_other": "{{time}} 秒", + "formattedTimestamp": { + "12hour": "MMM d, h:mm:ss aaa", + "24hour": "MMM d, HH:mm:ss" + }, + "formattedTimestamp2": { + "12hour": "MM/dd h:mm:ssa", + "24hour": "d MMM HH:mm:ss" + }, + "formattedTimestampHourMinute": { + "12hour": "h:mm aaa", + "24hour": "HH:mm" + }, + "formattedTimestampHourMinuteSecond": { + "12hour": "h:mm:ss aaa", + "24hour": "HH:mm:ss" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "MMM d, h:mm aaa", + "24hour": "MMM d, HH:mm" + }, + "formattedTimestampMonthDayYear": { + "12hour": "MMM d, yyyy", + "24hour": "MMM d, yyyy" + }, + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "MMM d yyyy, h:mm aaa", + "24hour": "MMM d yyyy, HH:mm" + }, + "formattedTimestampMonthDay": "MMM d", + "formattedTimestampFilename": { + "12hour": "MM-dd-yy-h-mm-ss-a", + "24hour": "MM-dd-yy-HH-mm-ss" + } }, - "readTheDocumentation": "ドキュメントを読む" + "readTheDocumentation": "ドキュメントを見る", + "unit": { + "speed": { + "mph": "mph", + "kph": "Km/h" + }, + "length": { + "feet": "フィート", + "meters": "メートル" + } + }, + "label": { + "back": "戻る" + }, + "button": { + "apply": "適用", + "reset": "リセット", + "done": "完了", + "enabled": "有効", + "enable": "有効にする", + "disabled": "無効", + "disable": "無効にする", + "save": "保存", + "saving": "保存中…", + "cancel": "キャンセル", + "close": "閉じる", + "copy": "コピー", + "back": "戻る", + "history": "履歴", + "fullscreen": "全画面", + "exitFullscreen": "全画面解除", + "pictureInPicture": "ピクチャーインピクチャー", + "twoWayTalk": "双方向通話", + "cameraAudio": "カメラ音声", + "on": "オン", + "off": "オフ", + "edit": "編集", + "copyCoordinates": "座標をコピー", + "delete": "削除", + "yes": "はい", + "no": "いいえ", + "download": "ダウンロード", + "info": "情報", + "suspended": "一時停止", + "unsuspended": "再開", + "play": "再生", + "unselect": "選択解除", + "export": "書き出し", + "deleteNow": "今すぐ削除", + "next": "次へ" + }, + "menu": { + "system": "システム", + "systemMetrics": "システムモニター", + "configuration": "設定", + "systemLogs": "システムログ", + "settings": "設定", + "configurationEditor": "設定エディタ", + "languages": "言語", + "appearance": "外観", + "darkMode": { + "label": "ダークモード", + "light": "ライト", + "dark": "ダーク", + "withSystem": { + "label": "システム設定に従う" + } + }, + "withSystem": "システム", + "theme": { + "label": "テーマ", + "blue": "青", + "green": "緑", + "nord": "ノルド", + "red": "赤", + "highcontrast": "ハイコントラスト", + "default": "デフォルト" + }, + "help": "ヘルプ", + "documentation": { + "title": "ドキュメント", + "label": "Frigate ドキュメント" + }, + "restart": "Frigate を再起動", + "live": { + "title": "ライブ", + "allCameras": "全カメラ", + "cameras": { + "title": "カメラ", + "count_other": "{{count}} 台のカメラ" + } + }, + "review": "レビュー", + "explore": "ブラウズ", + "export": "書き出し", + "uiPlayground": "UI テスト環境", + "faceLibrary": "顔データベース", + "user": { + "title": "ユーザー", + "account": "アカウント", + "current": "現在のユーザー: {{user}}", + "anonymous": "未ログイン", + "logout": "ログアウト", + "setPassword": "パスワードを設定" + }, + "language": { + "en": "English (英語)", + "es": "Español (スペイン語)", + "zhCN": "简体中文 (簡体字中国語)", + "hi": "हिन्दी (ヒンディー語)", + "fr": "Français (フランス語)", + "ar": "العربية (アラビア語)", + "pt": "Português (ポルトガル語)", + "ptBR": "Português brasileiro (ブラジルポルトガル語)", + "ru": "Русский (ロシア語)", + "de": "Deutsch (ドイツ語)", + "ja": "日本語 (日本語)", + "tr": "Türkçe (トルコ語)", + "it": "Italiano (イタリア語)", + "nl": "Nederlands (オランダ語)", + "sv": "Svenska (スウェーデン語)", + "cs": "Čeština (チェコ語)", + "nb": "Norsk Bokmål (ノルウェー語)", + "ko": "한국어 (韓国語)", + "vi": "Tiếng Việt (ベトナム語)", + "fa": "فارسی (ペルシア語)", + "pl": "Polski (ポーランド語)", + "uk": "Українська (ウクライナ語)", + "he": "עברית (ヘブライ語)", + "el": "Ελληνικά (ギリシャ語)", + "ro": "Română (ルーマニア語)", + "hu": "Magyar (ハンガリー語)", + "fi": "Suomi (フィンランド語)", + "da": "Dansk (デンマーク語)", + "sk": "Slovenčina (スロバキア語)", + "yue": "粵語 (広東語)", + "th": "ไทย (タイ語)", + "ca": "Català (カタルーニャ語)", + "sr": "Српски (セルビア語)", + "sl": "Slovenščina (スロベニア語)", + "lt": "Lietuvių (リトアニア語)", + "bg": "Български (ブルガリア語)", + "gl": "Galego (ガリシア語)", + "id": "Bahasa Indonesia (インドネシア語)", + "ur": "اردو (ウルドゥー語)", + "withSystem": { + "label": "システム設定に従う" + } + } + }, + "toast": { + "copyUrlToClipboard": "URLをクリップボードにコピーしました。", + "save": { + "title": "保存", + "error": { + "title": "設定変更の保存に失敗しました: {{errorMessage}}", + "noMessage": "設定変更の保存に失敗しました" + } + } + }, + "role": { + "title": "役割", + "admin": "管理者", + "viewer": "閲覧者", + "desc": "管理者はFrigate UIのすべての機能に完全にアクセスできます。閲覧者はカメラ、レビュー項目、履歴映像の閲覧に制限されます。" + }, + "pagination": { + "label": "ページ移動", + "previous": { + "title": "前へ", + "label": "前のページへ" + }, + "next": { + "title": "次へ", + "label": "次のページへ" + }, + "more": "さらにページ" + }, + "accessDenied": { + "documentTitle": "アクセス拒否 - Frigate", + "title": "アクセス拒否", + "desc": "このページを表示する権限がありません。" + }, + "notFound": { + "documentTitle": "ページが見つかりません - Frigate", + "title": "404", + "desc": "ページが見つかりません" + }, + "selectItem": "{{item}} を選択" } diff --git a/web/public/locales/ja/components/auth.json b/web/public/locales/ja/components/auth.json index db2e691c0..b9ff98325 100644 --- a/web/public/locales/ja/components/auth.json +++ b/web/public/locales/ja/components/auth.json @@ -2,6 +2,14 @@ "form": { "user": "ユーザー名", "password": "パスワード", - "login": "ログイン" + "login": "ログイン", + "errors": { + "usernameRequired": "ユーザー名が必要です", + "passwordRequired": "パスワードが必要です", + "rateLimit": "リクエスト制限を超えました。後でもう一度お試しください。", + "loginFailed": "ログインに失敗しました", + "unknownError": "不明なエラー。ログを確認してください。", + "webUnknownError": "不明なエラー。コンソールログを確認してください。" + } } } diff --git a/web/public/locales/ja/components/camera.json b/web/public/locales/ja/components/camera.json index e2411e813..4491d0a91 100644 --- a/web/public/locales/ja/components/camera.json +++ b/web/public/locales/ja/components/camera.json @@ -2,6 +2,85 @@ "group": { "label": "カメラグループ", "add": "カメラグループを追加", - "edit": "カメラグループを編集" + "edit": "カメラグループを編集", + "delete": { + "label": "カメラグループを削除", + "confirm": { + "title": "削除の確認", + "desc": "カメラグループ {{name}} を削除してもよろしいですか?" + } + }, + "name": { + "label": "名前", + "placeholder": "名前を入力…", + "errorMessage": { + "mustLeastCharacters": "カメラグループ名は2文字以上である必要があります。", + "exists": "このカメラグループ名は既に存在します。", + "nameMustNotPeriod": "カメラグループ名にピリオドは使用できません。", + "invalid": "無効なカメラグループ名です。" + } + }, + "cameras": { + "label": "カメラ", + "desc": "このグループに含めるカメラを選択します。" + }, + "icon": "アイコン", + "success": "カメラグループ({{name}})を保存しました。", + "camera": { + "birdseye": "バードアイ", + "setting": { + "label": "カメラのストリーミング設定", + "title": "{{cameraName}} のストリーミング設定", + "desc": "このカメラグループのダッシュボードでのライブストリーミングオプションを変更します。これらの設定はデバイス/ブラウザごとに異なります。", + "audioIsAvailable": "このストリームでは音声が利用可能です", + "audioIsUnavailable": "このストリームでは音声は利用できません", + "audio": { + "tips": { + "title": "このストリームで音声を使用するには、カメラから音声が出力され、go2rtc で設定されている必要があります。" + } + }, + "stream": "ストリーム", + "placeholder": "ストリームを選択", + "streamMethod": { + "label": "ストリーミング方式", + "placeholder": "方式を選択", + "method": { + "noStreaming": { + "label": "ストリーミングなし", + "desc": "カメラ画像は1分に1回のみ更新され、ライブストリーミングは行われません。" + }, + "smartStreaming": { + "label": "スマートストリーミング(推奨)", + "desc": "検知可能なアクティビティがない場合は、帯域とリソース節約のため画像を1分に1回更新します。アクティビティが検知されると、画像はシームレスにライブストリームへ切り替わります。" + }, + "continuousStreaming": { + "label": "常時ストリーミング", + "desc": { + "title": "ダッシュボードで表示されている間は、アクティビティが検知されていなくても常にライブストリームになります。", + "warning": "常時ストリーミングは高い帯域幅使用やパフォーマンス問題の原因となる場合があります。注意して使用してください。" + } + } + } + }, + "compatibilityMode": { + "label": "互換モード", + "desc": "このオプションは、ライブストリームに色のアーティファクトが表示され、画像右側に斜めの線が出る場合にのみ有効にしてください。" + } + } + } + }, + "debug": { + "options": { + "label": "設定", + "title": "オプション", + "showOptions": "オプションを表示", + "hideOptions": "オプションを非表示" + }, + "boundingBox": "バウンディングボックス", + "timestamp": "タイムスタンプ", + "zones": "ゾーン", + "mask": "マスク", + "motion": "モーション", + "regions": "領域" } } diff --git a/web/public/locales/ja/components/dialog.json b/web/public/locales/ja/components/dialog.json index 9b0a3b3bc..c97fc475b 100644 --- a/web/public/locales/ja/components/dialog.json +++ b/web/public/locales/ja/components/dialog.json @@ -1,9 +1,118 @@ { "restart": { - "title": "Frigateを再起動しますか?", + "title": "Frigate を再起動してもよろしいですか?", "restarting": { - "title": "Frigateは再起動中です" + "title": "Frigate を再起動中", + "content": "このページは {{countdown}} 秒後に再読み込みされます。", + "button": "今すぐ強制再読み込み" }, "button": "再起動" + }, + "explore": { + "plus": { + "submitToPlus": { + "label": "Frigate+ に送信", + "desc": "回避したい場所でのオブジェクトは誤検出ではありません。誤検出として送信するとモデルが混乱します。" + }, + "review": { + "question": { + "label": "Frigate Plus 用ラベルの確認", + "ask_a": "このオブジェクトは {{label}} ですか?", + "ask_an": "このオブジェクトは {{label}} ですか?", + "ask_full": "このオブジェクトは {{untranslatedLabel}}({{translatedLabel}})ですか?" + }, + "state": { + "submitted": "送信済み" + } + } + }, + "video": { + "viewInHistory": "履歴で表示" + } + }, + "export": { + "time": { + "fromTimeline": "タイムラインから選択", + "lastHour_other": "直近{{count}}時間", + "custom": "カスタム", + "start": { + "title": "開始時刻", + "label": "開始時刻を選択" + }, + "end": { + "title": "終了時刻", + "label": "終了時刻を選択" + } + }, + "name": { + "placeholder": "書き出しに名前を付ける" + }, + "select": "選択", + "export": "書き出し", + "selectOrExport": "選択または書き出し", + "toast": { + "success": "書き出しを開始しました。/exports フォルダでファイルを確認できます。", + "error": { + "failed": "書き出しの開始に失敗しました: {{error}}", + "endTimeMustAfterStartTime": "終了時間は開始時間より後である必要があります", + "noVaildTimeSelected": "有効な時間範囲が選択されていません" + } + }, + "fromTimeline": { + "saveExport": "書き出しを保存", + "previewExport": "書き出しをプレビュー" + } + }, + "streaming": { + "label": "ストリーム", + "restreaming": { + "disabled": "このカメラではリストリーミングは有効になっていません。", + "desc": { + "title": "このカメラで追加のライブビューと音声を利用するには go2rtc をセットアップしてください。" + } + }, + "showStats": { + "label": "ストリーム統計を表示", + "desc": "有効にすると、カメラ映像に統計情報をオーバーレイ表示します。" + }, + "debugView": "デバッグビュー" + }, + "search": { + "saveSearch": { + "label": "検索を保存", + "desc": "この保存済み検索の名前を入力してください。", + "placeholder": "検索名を入力", + "overwrite": "{{searchName}} は既に存在します。保存すると上書きされます。", + "success": "検索({{searchName}})を保存しました。", + "button": { + "save": { + "label": "この検索を保存" + } + } + } + }, + "recording": { + "confirmDelete": { + "title": "削除の確認", + "desc": { + "selected": "このレビュー項目に関連付けられた録画動画をすべて削除してもよろしいですか?

今後このダイアログを表示しない場合は Shift キーを押しながら操作してください。" + }, + "toast": { + "success": "選択したレビュー項目に関連する動画を削除しました。", + "error": "削除に失敗しました: {{error}}" + } + }, + "button": { + "export": "書き出し", + "markAsReviewed": "レビュー済みにする", + "deleteNow": "今すぐ削除" + } + }, + "imagePicker": { + "selectImage": "追跡オブジェクトのサムネイルを選択", + "search": { + "placeholder": "ラベルまたはサブラベルで検索…" + }, + "noImages": "このカメラのサムネイルは見つかりません" } } diff --git a/web/public/locales/ja/components/filter.json b/web/public/locales/ja/components/filter.json index 10c2b4912..66a52a29e 100644 --- a/web/public/locales/ja/components/filter.json +++ b/web/public/locales/ja/components/filter.json @@ -2,8 +2,135 @@ "labels": { "label": "ラベル", "all": { - "title": "すべてのラベル" + "title": "すべてのラベル", + "short": "ラベル" + }, + "count_one": "{{count}} ラベル", + "count_other": "{{count}} ラベル" + }, + "filter": "フィルター", + "classes": { + "label": "クラス", + "all": { + "title": "すべてのクラス" + }, + "count_one": "{{count}} クラス", + "count_other": "{{count}} クラス" + }, + "zones": { + "label": "ゾーン", + "all": { + "title": "すべてのゾーン", + "short": "ゾーン" } }, - "filter": "フィルタ" + "dates": { + "selectPreset": "プリセットを選択…", + "all": { + "title": "すべての日付", + "short": "日付" + } + }, + "more": "その他のフィルター", + "reset": { + "label": "フィルターを既定値にリセット" + }, + "timeRange": "期間", + "subLabels": { + "label": "サブラベル", + "all": "すべてのサブラベル" + }, + "score": "スコア", + "estimatedSpeed": "推定速度({{unit}})", + "features": { + "label": "機能", + "hasSnapshot": "スナップショットあり", + "hasVideoClip": "ビデオクリップあり", + "submittedToFrigatePlus": { + "label": "Frigate+ に送信済み", + "tips": "まずスナップショットのある追跡オブジェクトでフィルターしてください。

スナップショットのない追跡オブジェクトは Frigate+ に送信できません。" + } + }, + "sort": { + "label": "並び替え", + "dateAsc": "日付(昇順)", + "dateDesc": "日付(降順)", + "scoreAsc": "オブジェクトスコア(昇順)", + "scoreDesc": "オブジェクトスコア(降順)", + "speedAsc": "推定速度(昇順)", + "speedDesc": "推定速度(降順)", + "relevance": "関連度" + }, + "cameras": { + "label": "カメラフィルター", + "all": { + "title": "すべてのカメラ", + "short": "カメラ" + } + }, + "review": { + "showReviewed": "レビュー済みを表示" + }, + "motion": { + "showMotionOnly": "モーションのみ表示" + }, + "explore": { + "settings": { + "title": "設定", + "defaultView": { + "title": "既定の表示", + "desc": "フィルター未選択時、ラベルごとの最新追跡オブジェクトの概要を表示するか、未フィルタのグリッドを表示するかを選びます。", + "summary": "概要", + "unfilteredGrid": "未フィルタグリッド" + }, + "gridColumns": { + "title": "グリッド列数", + "desc": "グリッド表示の列数を選択します。" + }, + "searchSource": { + "label": "検索対象", + "desc": "追跡オブジェクトのサムネイル画像と説明文のどちらを検索するかを選択します。", + "options": { + "thumbnailImage": "サムネイル画像", + "description": "説明" + } + } + }, + "date": { + "selectDateBy": { + "label": "フィルターする日付を選択" + } + } + }, + "logSettings": { + "label": "ログレベルでフィルター", + "filterBySeverity": "重大度でログをフィルター", + "loading": { + "title": "読み込み中", + "desc": "ログペインが最下部にあると、新しいログが追加され次第自動でストリーミング表示されます。" + }, + "disableLogStreaming": "ログのストリーミングを無効化", + "allLogs": "すべてのログ" + }, + "trackedObjectDelete": { + "title": "削除の確認", + "desc": "これら {{objectLength}} 件の追跡オブジェクトを削除すると、スナップショット、保存された埋め込み、関連するオブジェクトのライフサイクル項目が削除されます。履歴ビューの録画映像は削除されません

続行してもよろしいですか?

今後このダイアログを表示しない場合は Shift キーを押しながら操作してください。", + "toast": { + "success": "追跡オブジェクトを削除しました。", + "error": "追跡オブジェクトの削除に失敗しました: {{errorMessage}}" + } + }, + "zoneMask": { + "filterBy": "ゾーンマスクでフィルター" + }, + "recognizedLicensePlates": { + "title": "認識されたナンバープレート", + "loadFailed": "認識済みナンバープレートの読み込みに失敗しました。", + "loading": "認識済みナンバープレートを読み込み中…", + "placeholder": "ナンバープレートを入力して検索…", + "noLicensePlatesFound": "ナンバープレートが見つかりません。", + "selectPlatesFromList": "リストから1件以上選択してください。", + "selectAll": "すべて選択", + "clearAll": "すべてクリア" + } } diff --git a/web/public/locales/ja/components/input.json b/web/public/locales/ja/components/input.json index fcf6fccab..22725746e 100644 --- a/web/public/locales/ja/components/input.json +++ b/web/public/locales/ja/components/input.json @@ -1,9 +1,9 @@ { "button": { "downloadVideo": { - "label": "ビデオをダウンロード", + "label": "動画をダウンロード", "toast": { - "success": "あなたのレビュー項目ビデオのダウンロードを開始しました." + "success": "レビュー項目の動画のダウンロードを開始しました。" } } } diff --git a/web/public/locales/ja/components/player.json b/web/public/locales/ja/components/player.json index 153b60804..93befd974 100644 --- a/web/public/locales/ja/components/player.json +++ b/web/public/locales/ja/components/player.json @@ -1,5 +1,51 @@ { "noPreviewFound": "プレビューが見つかりません", - "noRecordingsFoundForThisTime": "この時間帯に録画は見つかりませんでした", - "noPreviewFoundFor": "{{cameraName}} のプレビューが見つかりません" + "noRecordingsFoundForThisTime": "この時間の録画は見つかりません", + "noPreviewFoundFor": "{{cameraName}} のプレビューが見つかりません", + "streamOffline": { + "title": "ストリームオフライン", + "desc": "{{cameraName}} の detect ストリームでフレームが受信されていません。エラーログを確認してください" + }, + "submitFrigatePlus": { + "title": "このフレームを Frigate+ に送信しますか?", + "submit": "送信" + }, + "livePlayerRequiredIOSVersion": "このライブストリームタイプには iOS 17.1 以上が必要です。", + "cameraDisabled": "カメラは無効です", + "stats": { + "streamType": { + "title": "ストリームタイプ:", + "short": "タイプ" + }, + "bandwidth": { + "title": "帯域:", + "short": "帯域" + }, + "latency": { + "title": "遅延:", + "value": "{{seconds}} 秒", + "short": { + "title": "遅延", + "value": "{{seconds}} 秒" + } + }, + "totalFrames": "総フレーム:", + "droppedFrames": { + "title": "ドロップしたフレーム:", + "short": { + "title": "ドロップ", + "value": "{{droppedFrames}} フレーム" + } + }, + "decodedFrames": "デコードしたフレーム:", + "droppedFrameRate": "ドロップしたフレームレート:" + }, + "toast": { + "success": { + "submittedFrigatePlus": "フレームを Frigate+ に送信しました" + }, + "error": { + "submitFrigatePlusFailed": "フレームの Frigate+ への送信に失敗しました" + } + } } diff --git a/web/public/locales/ja/objects.json b/web/public/locales/ja/objects.json index 0f9ddaa73..c8b24e800 100644 --- a/web/public/locales/ja/objects.json +++ b/web/public/locales/ja/objects.json @@ -1,5 +1,120 @@ { "bicycle": "自転車", - "car": "自動車", - "person": "人物" + "car": "車", + "person": "人", + "motorcycle": "オートバイ", + "airplane": "飛行機", + "animal": "動物", + "dog": "犬", + "bark": "樹皮", + "cat": "猫", + "horse": "馬", + "goat": "ヤギ", + "sheep": "羊", + "bird": "鳥", + "mouse": "マウス", + "keyboard": "キーボード", + "vehicle": "車両", + "boat": "ボート", + "bus": "バス", + "train": "電車", + "skateboard": "スケートボード", + "door": "ドア", + "blender": "ミキサー", + "sink": "流し台", + "hair_dryer": "ヘアドライヤー", + "toothbrush": "歯ブラシ", + "scissors": "はさみ", + "clock": "時計", + "traffic_light": "信号機", + "fire_hydrant": "消火栓", + "street_sign": "道路標識", + "stop_sign": "一時停止標識", + "parking_meter": "駐車メーター", + "bench": "ベンチ", + "cow": "牛", + "elephant": "象", + "bear": "クマ", + "zebra": "シマウマ", + "giraffe": "キリン", + "hat": "帽子", + "backpack": "バックパック", + "umbrella": "傘", + "shoe": "靴", + "eye_glasses": "メガネ", + "handbag": "ハンドバッグ", + "tie": "ネクタイ", + "suitcase": "スーツケース", + "frisbee": "フリスビー", + "skis": "スキー板", + "snowboard": "スノーボード", + "sports_ball": "スポーツボール", + "kite": "凧", + "baseball_bat": "野球バット", + "baseball_glove": "野球グローブ", + "surfboard": "サーフボード", + "tennis_racket": "テニスラケット", + "bottle": "ボトル", + "plate": "皿", + "wine_glass": "ワイングラス", + "cup": "コップ", + "fork": "フォーク", + "knife": "ナイフ", + "spoon": "スプーン", + "bowl": "ボウル", + "banana": "バナナ", + "apple": "リンゴ", + "sandwich": "サンドイッチ", + "orange": "オレンジ", + "broccoli": "ブロッコリー", + "carrot": "ニンジン", + "hot_dog": "ホットドッグ", + "pizza": "ピザ", + "donut": "ドーナツ", + "cake": "ケーキ", + "chair": "椅子", + "couch": "ソファ", + "potted_plant": "鉢植え", + "bed": "ベッド", + "mirror": "鏡", + "dining_table": "ダイニングテーブル", + "window": "窓", + "desk": "机", + "toilet": "トイレ", + "tv": "テレビ", + "laptop": "ノートパソコン", + "remote": "リモコン", + "cell_phone": "携帯電話", + "microwave": "電子レンジ", + "oven": "オーブン", + "toaster": "トースター", + "refrigerator": "冷蔵庫", + "book": "本", + "vase": "花瓶", + "teddy_bear": "テディベア", + "hair_brush": "ヘアブラシ", + "squirrel": "リス", + "deer": "シカ", + "fox": "キツネ", + "rabbit": "ウサギ", + "raccoon": "アライグマ", + "robot_lawnmower": "ロボット芝刈り機", + "waste_bin": "ゴミ箱", + "on_demand": "オンデマンド", + "face": "顔", + "license_plate": "ナンバープレート", + "package": "荷物", + "bbq_grill": "バーベキューグリル", + "amazon": "Amazon", + "usps": "USPS", + "ups": "UPS", + "fedex": "FedEx", + "dhl": "DHL", + "an_post": "An Post", + "purolator": "Purolator", + "postnl": "PostNL", + "nzpost": "NZPost", + "postnord": "PostNord", + "gls": "GLS", + "dpd": "DPD" } diff --git a/web/public/locales/ja/views/configEditor.json b/web/public/locales/ja/views/configEditor.json index 72e229409..704c83d0a 100644 --- a/web/public/locales/ja/views/configEditor.json +++ b/web/public/locales/ja/views/configEditor.json @@ -10,6 +10,9 @@ "toast": { "success": { "copyToClipboard": "コンフィグをクリップボードにコピー。" + }, + "error": { + "savingError": "設定の保存に失敗しました" } } } diff --git a/web/public/locales/ja/views/events.json b/web/public/locales/ja/views/events.json index f8ac7549c..b19ad9553 100644 --- a/web/public/locales/ja/views/events.json +++ b/web/public/locales/ja/views/events.json @@ -1,7 +1,40 @@ { "detections": "検出", "motion": { - "label": "動作" + "label": "モーション", + "only": "モーションのみ" }, - "alerts": "アラート" + "alerts": "アラート", + "empty": { + "detection": "レビューする検出はありません", + "alert": "レビューするアラートはありません", + "motion": "モーションデータは見つかりません" + }, + "camera": "カメラ", + "allCameras": "全カメラ", + "timeline": "タイムライン", + "timeline.aria": "タイムラインを選択", + "events": { + "label": "イベント", + "aria": "イベントを選択", + "noFoundForTimePeriod": "この期間のイベントは見つかりません。" + }, + "documentTitle": "レビュー - Frigate", + "recordings": { + "documentTitle": "録画 - Frigate" + }, + "calendarFilter": { + "last24Hours": "直近24時間" + }, + "markAsReviewed": "レビュー済みにする", + "markTheseItemsAsReviewed": "これらの項目をレビュー済みにする", + "newReviewItems": { + "label": "新しいレビュー項目を表示", + "button": "レビューすべき新規項目" + }, + "selected_one": "{{count}} 件選択", + "selected_other": "{{count}} 件選択", + "detected": "検出", + "suspiciousActivity": "不審なアクティビティ", + "threateningActivity": "脅威となるアクティビティ" } diff --git a/web/public/locales/ja/views/explore.json b/web/public/locales/ja/views/explore.json index 4991ff3fa..5be336cfa 100644 --- a/web/public/locales/ja/views/explore.json +++ b/web/public/locales/ja/views/explore.json @@ -1,4 +1,222 @@ { "generativeAI": "生成AI", - "documentTitle": "検索 - Frigate" + "documentTitle": "探索 - Frigate", + "details": { + "timestamp": "タイムスタンプ", + "item": { + "title": "レビュー項目の詳細", + "desc": "レビュー項目の詳細", + "button": { + "share": "このレビュー項目を共有", + "viewInExplore": "探索で表示" + }, + "tips": { + "mismatch_other": "利用不可のオブジェクトが {{count}} 件、このレビュー項目に含まれています。これらはアラートまたは検出の条件を満たしていないか、既にクリーンアップ/削除されています。", + "hasMissingObjects": "次のラベルの追跡オブジェクトを保存したい場合は設定を調整してください: {{objects}}" + }, + "toast": { + "success": { + "regenerate": "{{provider}} に新しい説明をリクエストしました。プロバイダの速度により再生成に時間がかかる場合があります。", + "updatedSublabel": "サブラベルを更新しました。", + "updatedLPR": "ナンバープレートを更新しました。", + "audioTranscription": "音声文字起こしをリクエストしました。" + }, + "error": { + "regenerate": "{{provider}} への新しい説明の呼び出しに失敗しました: {{errorMessage}}", + "updatedSublabelFailed": "サブラベルの更新に失敗しました: {{errorMessage}}", + "updatedLPRFailed": "ナンバープレートの更新に失敗しました: {{errorMessage}}", + "audioTranscription": "音声文字起こしのリクエストに失敗しました: {{errorMessage}}" + } + } + }, + "label": "ラベル", + "editSubLabel": { + "title": "サブラベルを編集", + "desc": "この {{label}} の新しいサブラベルを入力", + "descNoLabel": "この追跡オブジェクトの新しいサブラベルを入力" + }, + "editLPR": { + "title": "ナンバープレートを編集", + "desc": "この {{label}} の新しいナンバープレート値を入力", + "descNoLabel": "この追跡オブジェクトの新しいナンバープレート値を入力" + }, + "snapshotScore": { + "label": "スナップショットスコア" + }, + "topScore": { + "label": "トップスコア", + "info": "トップスコアは追跡オブジェクトの最高中央値スコアであり、検索結果のサムネイルに表示されるスコアとは異なる場合があります。" + }, + "score": { + "label": "スコア" + }, + "recognizedLicensePlate": "認識されたナンバープレート", + "estimatedSpeed": "推定速度", + "objects": "オブジェクト", + "camera": "カメラ", + "zones": "ゾーン", + "button": { + "findSimilar": "類似を検索", + "regenerate": { + "title": "再生成", + "label": "追跡オブジェクトの説明を再生成" + } + }, + "description": { + "label": "説明", + "placeholder": "追跡オブジェクトの説明", + "aiTips": "追跡オブジェクトのライフサイクルが終了するまで、生成AIプロバイダに説明はリクエストされません。" + }, + "expandRegenerationMenu": "再生成メニューを展開", + "regenerateFromSnapshot": "スナップショットから再生成", + "regenerateFromThumbnails": "サムネイルから再生成", + "tips": { + "descriptionSaved": "説明を保存しました", + "saveDescriptionFailed": "説明の更新に失敗しました: {{errorMessage}}" + } + }, + "exploreMore": "{{label}} のオブジェクトをさらに探索", + "exploreIsUnavailable": { + "title": "探索は利用できません", + "embeddingsReindexing": { + "context": "追跡オブジェクトの埋め込みの再インデックスが完了すると「探索」を使用できます。", + "startingUp": "起動中…", + "estimatedTime": "残りの推定時間:", + "finishingShortly": "まもなく完了", + "step": { + "thumbnailsEmbedded": "埋め込み済みサムネイル: ", + "descriptionsEmbedded": "埋め込み済み説明: ", + "trackedObjectsProcessed": "処理済み追跡オブジェクト: " + } + }, + "downloadingModels": { + "context": "Frigate はセマンティック検索をサポートするために必要な埋め込みモデルをダウンロードしています。ネットワーク速度により数分かかる場合があります。", + "setup": { + "visionModel": "ビジョンモデル", + "visionModelFeatureExtractor": "ビジョンモデル特徴抽出器", + "textModel": "テキストモデル", + "textTokenizer": "テキストトークナイザー" + }, + "tips": { + "context": "モデルのダウンロード後、追跡オブジェクトの埋め込みを再インデックスすることを検討してください。" + }, + "error": "エラーが発生しました。Frigate のログを確認してください。" + } + }, + "trackedObjectDetails": "追跡オブジェクトの詳細", + "type": { + "details": "詳細", + "snapshot": "スナップショット", + "video": "動画", + "object_lifecycle": "オブジェクトのライフサイクル" + }, + "objectLifecycle": { + "title": "オブジェクトのライフサイクル", + "noImageFound": "このタイムスタンプの画像は見つかりません。", + "createObjectMask": "オブジェクトマスクを作成", + "adjustAnnotationSettings": "アノテーション設定を調整", + "scrollViewTips": "スクロールしてこのオブジェクトのライフサイクルの重要な瞬間を表示します。", + "autoTrackingTips": "オートトラッキングカメラではバウンディングボックスの位置が正確でない場合があります。", + "count": "{{first}} / {{second}}", + "trackedPoint": "追跡ポイント", + "lifecycleItemDesc": { + "visible": "{{label}} を検出", + "entered_zone": "{{label}} が {{zones}} に進入", + "active": "{{label}} がアクティブになりました", + "stationary": "{{label}} が静止しました", + "attribute": { + "faceOrLicense_plate": "{{label}} の {{attribute}} を検出", + "other": "{{label}} を {{attribute}} として認識" + }, + "gone": "{{label}} が離脱", + "heard": "{{label}} を検知(音声)", + "external": "{{label}} を検出", + "header": { + "zones": "ゾーン", + "ratio": "比率", + "area": "面積" + } + }, + "annotationSettings": { + "title": "アノテーション設定", + "showAllZones": { + "title": "すべてのゾーンを表示", + "desc": "オブジェクトがゾーンに入ったフレームでは常にゾーンを表示します。" + }, + "offset": { + "label": "アノテーションオフセット", + "desc": "このデータはカメラの detect フィードから来ていますが、record フィードの画像に重ねて表示されます。2つのストリームが完全に同期していない可能性があるため、バウンディングボックスと映像が完全には一致しないことがあります。annotation_offset フィールドで調整できます。", + "millisecondsToOffset": "detect のアノテーションをオフセットするミリ秒数。既定: 0", + "tips": "ヒント: 左から右へ歩く人物のイベントクリップを想像してください。タイムラインのバウンディングボックスが人物より常に左側にあるなら値を小さく、常に先行しているなら値を大きくします。", + "toast": { + "success": "{{camera}} のアノテーションオフセットを設定ファイルに保存しました。変更を適用するには Frigate を再起動してください。" + } + } + }, + "carousel": { + "previous": "前のスライド", + "next": "次のスライド" + } + }, + "itemMenu": { + "downloadVideo": { + "label": "動画をダウンロード", + "aria": "動画をダウンロード" + }, + "downloadSnapshot": { + "label": "スナップショットをダウンロード", + "aria": "スナップショットをダウンロード" + }, + "viewObjectLifecycle": { + "label": "オブジェクトのライフサイクルを表示", + "aria": "オブジェクトのライフサイクルを表示" + }, + "findSimilar": { + "label": "類似を検索", + "aria": "類似する追跡オブジェクトを検索" + }, + "addTrigger": { + "label": "トリガーを追加", + "aria": "この追跡オブジェクトのトリガーを追加" + }, + "audioTranscription": { + "label": "文字起こし", + "aria": "音声文字起こしをリクエスト" + }, + "submitToPlus": { + "label": "Frigate+ に送信", + "aria": "Frigate Plus に送信" + }, + "viewInHistory": { + "label": "履歴で表示", + "aria": "履歴で表示" + }, + "deleteTrackedObject": { + "label": "この追跡オブジェクトを削除" + } + }, + "dialog": { + "confirmDelete": { + "title": "削除の確認", + "desc": "この追跡オブジェクトを削除すると、スナップショット、保存された埋め込み、および関連するライフサイクル項目が削除されます。履歴ビューの録画映像は削除されません

続行してもよろしいですか?" + } + }, + "noTrackedObjects": "追跡オブジェクトは見つかりませんでした", + "fetchingTrackedObjectsFailed": "追跡オブジェクトの取得エラー: {{errorMessage}}", + "trackedObjectsCount_other": "{{count}} 件の追跡オブジェクト ", + "searchResult": { + "tooltip": "{{type}} と一致({{confidence}}%)", + "deleteTrackedObject": { + "toast": { + "success": "追跡オブジェクトを削除しました。", + "error": "追跡オブジェクトの削除に失敗しました: {{errorMessage}}" + } + } + }, + "aiAnalysis": { + "title": "AI 解析" + }, + "concerns": { + "label": "懸念" + } } diff --git a/web/public/locales/ja/views/exports.json b/web/public/locales/ja/views/exports.json index aa8eb6703..b5107f475 100644 --- a/web/public/locales/ja/views/exports.json +++ b/web/public/locales/ja/views/exports.json @@ -1,5 +1,17 @@ { - "documentTitle": "エクスポート - Frigate", - "noExports": "エクスポートがありません", - "search": "検索" + "documentTitle": "書き出し - Frigate", + "noExports": "書き出しは見つかりません", + "search": "検索", + "deleteExport": "書き出しを削除", + "deleteExport.desc": "{{exportName}} を削除してもよろしいですか?", + "editExport": { + "title": "書き出し名を変更", + "desc": "この書き出しの新しい名前を入力してください。", + "saveExport": "書き出しを保存" + }, + "toast": { + "error": { + "renameExportFailed": "書き出し名の変更に失敗しました: {{errorMessage}}" + } + } } diff --git a/web/public/locales/ja/views/faceLibrary.json b/web/public/locales/ja/views/faceLibrary.json index 8f06485cf..7e7c2879d 100644 --- a/web/public/locales/ja/views/faceLibrary.json +++ b/web/public/locales/ja/views/faceLibrary.json @@ -1,6 +1,95 @@ { "description": { - "placeholder": "このコレクションの名前を入力してください", - "addFace": "フェイスライブラリに新しいコレクションを追加する手順を説明します。" + "placeholder": "このコレクションの名前を入力", + "addFace": "顔データベースに新しいコレクションを追加する手順を案内します。", + "invalidName": "無効な名前です。名前に使用できるのは英数字、スペース、アポストロフィ、アンダースコア、ハイフンのみです。" + }, + "details": { + "person": "人物", + "face": "顔の詳細", + "timestamp": "タイムスタンプ", + "unknown": "不明", + "subLabelScore": "サブラベルスコア", + "scoreInfo": "サブラベルスコアは、認識された顔の信頼度の加重スコアです。スナップショットに表示されるスコアとは異なる場合があります。", + "faceDesc": "この顔を生成した追跡オブジェクトの詳細" + }, + "documentTitle": "顔データベース - Frigate", + "uploadFaceImage": { + "title": "顔画像をアップロード", + "desc": "顔を検出するために画像をアップロードし、{{pageToggle}} に追加します" + }, + "collections": "コレクション", + "createFaceLibrary": { + "title": "コレクションを作成", + "desc": "新しいコレクションを作成", + "new": "新しい顔を作成", + "nextSteps": "強固な基盤を作るために:
  • [学習]タブで各人物に対して画像を選択し学習させてください。
  • 最良の結果のため、正面を向いた画像に集中し、斜めからの顔画像は学習に使わないでください。
  • " + }, + "selectItem": "{{item}} を選択", + "steps": { + "faceName": "顔の名前を入力", + "uploadFace": "顔画像をアップロード", + "nextSteps": "次のステップ", + "description": { + "uploadFace": "{{name}} の正面を向いた顔が写っている画像をアップロードしてください。顔部分だけにトリミングする必要はありません。" + } + }, + "train": { + "title": "学習", + "aria": "学習を選択", + "empty": "最近の顔認識の試行はありません" + }, + "selectFace": "顔を選択", + "deleteFaceLibrary": { + "title": "名前を削除", + "desc": "コレクション {{name}} を削除してもよろしいですか?関連する顔はすべて完全に削除されます。" + }, + "deleteFaceAttempts": { + "title": "顔を削除", + "desc_other": "{{count}} 件の顔を削除してもよろしいですか?この操作は元に戻せません。" + }, + "renameFace": { + "title": "顔の名前を変更", + "desc": "{{name}} の新しい名前を入力" + }, + "button": { + "deleteFaceAttempts": "顔を削除", + "addFace": "顔を追加", + "renameFace": "顔の名前を変更", + "deleteFace": "顔を削除", + "uploadImage": "画像をアップロード", + "reprocessFace": "顔を再処理" + }, + "imageEntry": { + "validation": { + "selectImage": "画像ファイルを選択してください。" + }, + "dropActive": "ここに画像をドロップ…", + "dropInstructions": "画像をここにドラッグ&ドロップ、またはクリックして選択", + "maxSize": "最大サイズ: {{size}}MB" + }, + "nofaces": "顔はありません", + "pixels": "{{area}}px", + "trainFaceAs": "顔を次として学習:", + "trainFace": "顔を学習", + "toast": { + "success": { + "uploadedImage": "画像をアップロードしました。", + "addFaceLibrary": "{{name}} を顔データベースに追加しました!", + "deletedFace_other": "{{count}} 件の顔を削除しました。", + "deletedName_other": "{{count}} 件の顔を削除しました。", + "renamedFace": "顔の名前を {{name}} に変更しました", + "trainedFace": "顔の学習が完了しました。", + "updatedFaceScore": "顔のスコアを更新しました。" + }, + "error": { + "uploadingImageFailed": "画像のアップロードに失敗しました: {{errorMessage}}", + "addFaceLibraryFailed": "顔名の設定に失敗しました: {{errorMessage}}", + "deleteFaceFailed": "削除に失敗しました: {{errorMessage}}", + "deleteNameFailed": "名前の削除に失敗しました: {{errorMessage}}", + "renameFaceFailed": "顔の名前変更に失敗しました: {{errorMessage}}", + "trainFailed": "学習に失敗しました: {{errorMessage}}", + "updateFaceScoreFailed": "顔スコアの更新に失敗しました: {{errorMessage}}" + } } } diff --git a/web/public/locales/ja/views/live.json b/web/public/locales/ja/views/live.json index a279c5391..c47b6d817 100644 --- a/web/public/locales/ja/views/live.json +++ b/web/public/locales/ja/views/live.json @@ -1,5 +1,169 @@ { "documentTitle": "ライブ - Frigate", "documentTitle.withCamera": "{{camera}} - ライブ - Frigate", - "lowBandwidthMode": "低帯域幅モード" + "lowBandwidthMode": "低帯域モード", + "twoWayTalk": { + "enable": "双方向通話を有効化", + "disable": "双方向通話を無効化" + }, + "cameraAudio": { + "enable": "カメラ音声を有効化", + "disable": "カメラ音声を無効化" + }, + "ptz": { + "move": { + "clickMove": { + "label": "フレーム内をクリックしてカメラを中央に移動", + "enable": "クリック移動を有効化", + "disable": "クリック移動を無効化" + }, + "left": { + "label": "PTZ カメラを左へ移動" + }, + "up": { + "label": "PTZ カメラを上へ移動" + }, + "down": { + "label": "PTZ カメラを下へ移動" + }, + "right": { + "label": "PTZ カメラを右へ移動" + } + }, + "zoom": { + "in": { + "label": "PTZ カメラをズームイン" + }, + "out": { + "label": "PTZ カメラをズームアウト" + } + }, + "focus": { + "in": { + "label": "PTZ カメラをフォーカスイン" + }, + "out": { + "label": "PTZ カメラをフォーカスアウト" + } + }, + "frame": { + "center": { + "label": "フレーム内をクリックして PTZ カメラを中央へ" + } + }, + "presets": "PTZ カメラのプリセット" + }, + "camera": { + "enable": "カメラを有効化", + "disable": "カメラを無効化" + }, + "muteCameras": { + "enable": "全カメラをミュート", + "disable": "全カメラのミュートを解除" + }, + "detect": { + "enable": "検出を有効化", + "disable": "検出を無効化" + }, + "recording": { + "enable": "録画を有効化", + "disable": "録画を無効化" + }, + "snapshots": { + "enable": "スナップショットを有効化", + "disable": "スナップショットを無効化" + }, + "audioDetect": { + "enable": "音声検出を有効化", + "disable": "音声検出を無効化" + }, + "transcription": { + "enable": "ライブ音声文字起こしを有効化", + "disable": "ライブ音声文字起こしを無効化" + }, + "autotracking": { + "enable": "オートトラッキングを有効化", + "disable": "オートトラッキングを無効化" + }, + "streamStats": { + "enable": "ストリーム統計を表示", + "disable": "ストリーム統計を非表示" + }, + "manualRecording": { + "title": "オンデマンド録画", + "tips": "このカメラの録画保持設定に基づく手動イベントを開始します。", + "playInBackground": { + "label": "バックグラウンドで再生", + "desc": "プレーヤーが非表示の場合でもストリーミングを継続するにはこのオプションを有効にします。" + }, + "showStats": { + "label": "統計を表示", + "desc": "カメラ映像にストリーム統計をオーバーレイ表示するにはこのオプションを有効にします。" + }, + "debugView": "デバッグビュー", + "start": "オンデマンド録画を開始", + "started": "手動のオンデマンド録画を開始しました。", + "failedToStart": "手動のオンデマンド録画の開始に失敗しました。", + "recordDisabledTips": "このカメラは設定で録画が無効または制限されているため、スナップショットのみ保存されます。", + "end": "オンデマンド録画を終了", + "ended": "手動のオンデマンド録画を終了しました。", + "failedToEnd": "手動のオンデマンド録画の終了に失敗しました。" + }, + "streamingSettings": "ストリーミング設定", + "notifications": "通知", + "audio": "音声", + "suspend": { + "forTime": "一時停止: " + }, + "stream": { + "title": "ストリーム", + "audio": { + "tips": { + "title": "このストリームで音声を使用するには、カメラから音声が出力され、go2rtc で設定されている必要があります。" + }, + "available": "このストリームでは音声を利用できます", + "unavailable": "このストリームでは音声は利用できません" + }, + "twoWayTalk": { + "tips": "端末が機能をサポートし、双方向通話に WebRTC が設定されている必要があります。", + "available": "このストリームで双方向通話を利用できます", + "unavailable": "このストリームで双方向通話は利用できません" + }, + "lowBandwidth": { + "tips": "バッファリングやストリームエラーのため、ライブビューは低帯域モードになっています。", + "resetStream": "ストリームをリセット" + }, + "playInBackground": { + "label": "バックグラウンドで再生", + "tips": "プレーヤーが非表示でもストリーミングを継続するにはこのオプションを有効にします。" + } + }, + "cameraSettings": { + "title": "{{camera}} の設定", + "cameraEnabled": "カメラ有効", + "objectDetection": "物体検出", + "recording": "録画", + "snapshots": "スナップショット", + "audioDetection": "音声検出", + "transcription": "音声文字起こし", + "autotracking": "オートトラッキング" + }, + "history": { + "label": "履歴映像を表示" + }, + "effectiveRetainMode": { + "modes": { + "all": "すべて", + "motion": "モーション", + "active_objects": "アクティブなオブジェクト" + }, + "notAllTips": "{{source}} の録画保持設定は mode: {{effectiveRetainMode}} になっているため、このオンデマンド録画では {{effectiveRetainModeName}} を含むセグメントのみが保持されます。" + }, + "editLayout": { + "label": "レイアウトを編集", + "group": { + "label": "カメラグループを編集" + }, + "exitEdit": "編集を終了" + } } diff --git a/web/public/locales/ja/views/recording.json b/web/public/locales/ja/views/recording.json index 336551285..7d76d191f 100644 --- a/web/public/locales/ja/views/recording.json +++ b/web/public/locales/ja/views/recording.json @@ -1,5 +1,12 @@ { - "filter": "フィルタ", + "filter": "フィルター", "calendar": "カレンダー", - "export": "エクスポート" + "export": "書き出し", + "filters": "フィルター", + "toast": { + "error": { + "noValidTimeSelected": "適切な時刻の範囲が選択されていません", + "endTimeMustAfterStartTime": "終了時刻は開始時刻より後である必要があります" + } + } } diff --git a/web/public/locales/ja/views/search.json b/web/public/locales/ja/views/search.json index 02f285695..d5be5ed30 100644 --- a/web/public/locales/ja/views/search.json +++ b/web/public/locales/ja/views/search.json @@ -1,11 +1,72 @@ { - "searchFor": "{{inputValue}} を検索", + "searchFor": "「{{inputValue}}」を検索", "button": { "save": "検索を保存", - "delete": "保存した検索を削除", - "filterInformation": "フィルタ情報", - "clear": "検索をクリア" + "delete": "保存済み検索を削除", + "filterInformation": "フィルター情報", + "clear": "検索をクリア", + "filterActive": "フィルターが有効" }, "search": "検索", - "savedSearches": "保存した検索" + "savedSearches": "保存済み検索", + "trackedObjectId": "追跡オブジェクトID", + "filter": { + "label": { + "cameras": "カメラ", + "labels": "ラベル", + "zones": "ゾーン", + "sub_labels": "サブラベル", + "search_type": "検索タイプ", + "time_range": "期間", + "before": "以前", + "after": "以後", + "min_score": "最小スコア", + "max_score": "最大スコア", + "min_speed": "最小速度", + "max_speed": "最大速度", + "recognized_license_plate": "認識されたナンバープレート", + "has_clip": "クリップあり", + "has_snapshot": "スナップショットあり" + }, + "searchType": { + "thumbnail": "サムネイル", + "description": "説明" + }, + "toast": { + "error": { + "beforeDateBeLaterAfter": "「以前」日付は「以後」日付より後である必要があります。", + "afterDatebeEarlierBefore": "「以後」日付は「以前」日付より前である必要があります。", + "minScoreMustBeLessOrEqualMaxScore": "「最小スコア」は「最大スコア」以下である必要があります。", + "maxScoreMustBeGreaterOrEqualMinScore": "「最大スコア」は「最小スコア」以上である必要があります。", + "minSpeedMustBeLessOrEqualMaxSpeed": "「最小速度」は「最大速度」以下である必要があります。", + "maxSpeedMustBeGreaterOrEqualMinSpeed": "「最大速度」は「最小速度」以上である必要があります。" + } + }, + "tips": { + "title": "テキストフィルターの使い方", + "desc": { + "text": "フィルターを使うと検索結果を絞り込めます。入力欄での使い方は次の通りです。", + "step1": "フィルターのキー名の後にコロンを付けて入力します(例: \"cameras:\")。", + "step2": "候補から値を選ぶか、自分で入力します。", + "step3": "複数のフィルターは、間にスペースを入れて続けて追加できます。", + "step4": "日付フィルター(before: と after:)は {{DateFormat}} 形式を使用します。", + "step5": "期間フィルターは {{exampleTime}} 形式を使用します。", + "step6": "フィルターは隣の 'x' をクリックして削除できます。", + "exampleLabel": "例:" + } + }, + "header": { + "currentFilterType": "フィルター値", + "noFilters": "フィルター", + "activeFilters": "有効なフィルター" + } + }, + "similaritySearch": { + "title": "類似検索", + "active": "類似検索を実行中", + "clear": "類似検索をクリア" + }, + "placeholder": { + "search": "検索…" + } } diff --git a/web/public/locales/ja/views/settings.json b/web/public/locales/ja/views/settings.json index f0993c869..004fd73b3 100644 --- a/web/public/locales/ja/views/settings.json +++ b/web/public/locales/ja/views/settings.json @@ -1,7 +1,812 @@ { "documentTitle": { "authentication": "認証設定 - Frigate", - "camera": "カメラの設定 - Frigate", - "default": "設定 - Frigate" + "camera": "カメラ設定 - Frigate", + "default": "設定 - Frigate", + "enrichments": "エンリッチメント設定 - Frigate", + "masksAndZones": "マスク/ゾーンエディタ - Frigate", + "motionTuner": "モーションチューナー - Frigate", + "object": "デバッグ - Frigate", + "general": "一般設定 - Frigate", + "frigatePlus": "Frigate+ 設定 - Frigate", + "notifications": "通知設定 - Frigate" + }, + "menu": { + "ui": "UI", + "enrichments": "エンリッチメント", + "cameras": "カメラ設定", + "masksAndZones": "マスク/ゾーン", + "motionTuner": "モーションチューナー", + "triggers": "トリガー", + "debug": "デバッグ", + "users": "ユーザー", + "notifications": "通知", + "frigateplus": "Frigate+" + }, + "dialog": { + "unsavedChanges": { + "title": "未保存の変更があります。", + "desc": "続行する前に変更を保存しますか?" + } + }, + "cameraSetting": { + "camera": "カメラ", + "noCamera": "カメラなし" + }, + "general": { + "title": "一般設定", + "liveDashboard": { + "title": "ライブダッシュボード", + "automaticLiveView": { + "label": "自動ライブビュー", + "desc": "アクティビティ検知時に自動でそのカメラのライブビューへ切り替えます。無効にすると、ライブダッシュボード上の静止画像は1分に1回のみ更新されます。" + }, + "playAlertVideos": { + "label": "アラート動画を再生", + "desc": "既定では、ライブダッシュボードの最近のアラートは小さなループ動画として再生されます。無効にすると、最近のアラートはこのデバイス/ブラウザでは静止画像のみ表示されます。" + } + }, + "storedLayouts": { + "title": "保存済みレイアウト", + "desc": "カメラグループ内のレイアウトはドラッグ/リサイズできます。位置情報はブラウザのローカルストレージに保存されます。", + "clearAll": "すべてのレイアウトをクリア" + }, + "cameraGroupStreaming": { + "title": "カメラグループのストリーミング設定", + "desc": "各カメラグループのストリーミング設定はブラウザのローカルストレージに保存されます。", + "clearAll": "すべてのストリーミング設定をクリア" + }, + "recordingsViewer": { + "title": "録画ビューア", + "defaultPlaybackRate": { + "label": "既定の再生速度", + "desc": "録画再生の既定の再生速度です。" + } + }, + "calendar": { + "title": "カレンダー", + "firstWeekday": { + "label": "週の開始曜日", + "desc": "レビューカレンダーで週が始まる曜日。", + "sunday": "日曜日", + "monday": "月曜日" + } + }, + "toast": { + "success": { + "clearStoredLayout": "{{cameraName}} の保存済みレイアウトをクリアしました", + "clearStreamingSettings": "すべてのカメラグループのストリーミング設定をクリアしました。" + }, + "error": { + "clearStoredLayoutFailed": "保存済みレイアウトのクリアに失敗しました: {{errorMessage}}", + "clearStreamingSettingsFailed": "ストリーミング設定のクリアに失敗しました: {{errorMessage}}" + } + } + }, + "enrichments": { + "title": "エンリッチメント設定", + "unsavedChanges": "未保存のエンリッチメント設定の変更", + "birdClassification": { + "title": "鳥類分類", + "desc": "量子化された TensorFlow モデルを使って既知の鳥を識別します。既知の鳥を認識した場合、その一般名を sub_label として追加します。この情報は UI、フィルタ、通知に含まれます。" + }, + "semanticSearch": { + "title": "セマンティック検索", + "desc": "Frigate のセマンティック検索では、画像そのもの、ユーザー定義のテキスト説明、または自動生成された説明を用いて、レビュー項目内の追跡オブジェクトを検索できます。", + "reindexNow": { + "label": "今すぐ再インデックス", + "desc": "再インデックスは、すべての追跡オブジェクトの埋め込みを再生成します。バックグラウンドで実行され、追跡オブジェクト数によっては CPU を使い切り、相応の時間がかかる場合があります。", + "confirmTitle": "再インデックスの確認", + "confirmDesc": "すべての追跡オブジェクトの埋め込みを再インデックスしますか?この処理はバックグラウンドで実行されますが、CPU を使い切り、時間がかかる場合があります。進行状況は[探索]ページで確認できます。", + "confirmButton": "再インデックス", + "success": "再インデックスを開始しました。", + "alreadyInProgress": "再インデックスはすでに進行中です。", + "error": "再インデックスの開始に失敗しました: {{errorMessage}}" + }, + "modelSize": { + "label": "モデルサイズ", + "desc": "セマンティック検索の埋め込みに使用するモデルのサイズです。", + "small": { + "title": "スモール", + "desc": "small を使用すると、量子化モデルにより RAM 使用量が少なく、CPU 上で高速に動作します。埋め込み品質の差はごく僅かです。" + }, + "large": { + "title": "ラージ", + "desc": "large を使用すると、完全な Jina モデルを用い、可能であれば自動的に GPU で動作します。" + } + } + }, + "faceRecognition": { + "title": "顔認識", + "desc": "顔認識により、人に名前を割り当て、顔を認識した際にその人名をサブラベルとして付与します。この情報は UI、フィルタ、通知に含まれます。", + "modelSize": { + "label": "モデルサイズ", + "desc": "顔認識に使用するモデルのサイズです。", + "small": { + "title": "スモール", + "desc": "small は FaceNet ベースの顔埋め込みモデルを使用し、多くの CPU で効率よく動作します。" + }, + "large": { + "title": "ラージ", + "desc": "large は ArcFace ベースの顔埋め込みモデルを使用し、可能であれば自動的に GPU で動作します。" + } + } + }, + "licensePlateRecognition": { + "title": "ナンバープレート認識", + "desc": "車両のナンバープレートを認識し、検出文字列を recognized_license_plate フィールドへ、または既知の名称を car タイプのオブジェクトの sub_label として自動追加できます。一般的な用途として、私道に入ってくる車や道路を通過する車のナンバー読み取りがあります。" + }, + "restart_required": "再起動が必要です(エンリッチメント設定を変更)", + "toast": { + "success": "エンリッチメント設定を保存しました。変更を適用するには Frigate を再起動してください。", + "error": "設定変更の保存に失敗しました: {{errorMessage}}" + } + }, + "camera": { + "title": "カメラ設定", + "streams": { + "title": "ストリーム", + "desc": "Frigate の再起動まで、カメラを一時的に無効化します。無効化すると、このカメラのストリーム処理は完全に停止します。検出、録画、デバッグは利用できません。
    注: これは go2rtc のリストリームは無効化しません。" + }, + "object_descriptions": { + "title": "生成 AI オブジェクト説明", + "desc": "このカメラの生成 AI によるオブジェクト説明を一時的に有効/無効にします。無効にすると、追跡オブジェクトに対して説明はリクエストされません。" + }, + "review_descriptions": { + "title": "生成 AI レビュー説明", + "desc": "このカメラの生成 AI によるレビュー説明を一時的に有効/無効にします。無効にすると、レビュー項目に対して説明はリクエストされません。" + }, + "review": { + "title": "レビュー", + "desc": "Frigate の再起動まで、このカメラのアラートと検出を一時的に有効/無効にします。無効時は新しいレビュー項目は生成されません。 ", + "alerts": "アラート ", + "detections": "検出 " + }, + "reviewClassification": { + "title": "レビュー分類", + "desc": "Frigate はレビュー項目をアラートと検出に分類します。既定では personcar はアラートです。必要ゾーンを設定することで分類を細かく調整できます。", + "noDefinedZones": "このカメラにはゾーンが定義されていません。", + "objectAlertsTips": "{{cameraName}} 上の {{alertsLabels}} はすべてアラートとして表示されます。", + "zoneObjectAlertsTips": "{{cameraName}} の {{zone}} で検出された {{alertsLabels}} はすべてアラートとして表示されます。", + "objectDetectionsTips": "{{cameraName}} で未分類の {{detectionsLabels}} は、ゾーンに関わらず検出として表示されます。", + "zoneObjectDetectionsTips": { + "text": "{{cameraName}} の {{zone}} で未分類の {{detectionsLabels}} は検出として表示されます。", + "notSelectDetections": "{{cameraName}} の {{zone}} で検出された {{detectionsLabels}} のうちアラートに分類されないものは、ゾーンに関わらず検出として表示されます。", + "regardlessOfZoneObjectDetectionsTips": "{{cameraName}} で未分類の {{detectionsLabels}} は、ゾーンに関わらず検出として表示されます。" + }, + "unsavedChanges": "{{camera}} のレビュー分類設定に未保存の変更があります", + "selectAlertsZones": "アラートのゾーンを選択", + "selectDetectionsZones": "検出のゾーンを選択", + "limitDetections": "検出を特定ゾーンに制限", + "toast": { + "success": "レビュー分類設定を保存しました。変更を適用するには Frigate を再起動してください。" + } + }, + "addCamera": "新しいカメラを追加", + "editCamera": "カメラを編集:", + "selectCamera": "カメラを選択", + "backToSettings": "カメラ設定に戻る", + "cameraConfig": { + "add": "カメラを追加", + "edit": "カメラを編集", + "description": "ストリーム入力とロールを含むカメラ設定を構成します。", + "name": "カメラ名", + "nameRequired": "カメラ名は必須です", + "nameLength": "カメラ名は24文字未満である必要があります。", + "namePlaceholder": "例: front_door", + "enabled": "有効", + "ffmpeg": { + "inputs": "入力ストリーム", + "path": "ストリームパス", + "pathRequired": "ストリームパスは必須です", + "pathPlaceholder": "rtsp://...", + "roles": "ロール", + "rolesRequired": "少なくとも1つのロールが必要です", + "rolesUnique": "各ロール(audio, detect, record)は1つのストリームにのみ割り当て可能です", + "addInput": "入力ストリームを追加", + "removeInput": "入力ストリームを削除", + "inputsRequired": "少なくとも1つの入力ストリームが必要です" + }, + "toast": { + "success": "カメラ {{cameraName}} を保存しました" + } + } + }, + "masksAndZones": { + "filter": { + "all": "すべてのマスクとゾーン" + }, + "restart_required": "再起動が必要です(マスク/ゾーンを変更)", + "toast": { + "success": { + "copyCoordinates": "{{polyName}} の座標をクリップボードにコピーしました。" + }, + "error": { + "copyCoordinatesFailed": "座標をクリップボードにコピーできませんでした。" + } + }, + "motionMaskLabel": "モーションマスク {{number}}", + "objectMaskLabel": "オブジェクトマスク {{number}}({{label}})", + "form": { + "zoneName": { + "error": { + "mustBeAtLeastTwoCharacters": "ゾーン名は2文字以上である必要があります。", + "mustNotBeSameWithCamera": "ゾーン名はカメラ名と同一にできません。", + "alreadyExists": "この名前のゾーンはこのカメラに既に存在します。", + "mustNotContainPeriod": "ゾーン名にピリオドは使用できません。", + "hasIllegalCharacter": "ゾーン名に不正な文字が含まれています。" + } + }, + "distance": { + "error": { + "text": "距離は 0.1 以上である必要があります。", + "mustBeFilled": "速度推定を使用するには、すべての距離フィールドを入力してください。" + } + }, + "inertia": { + "error": { + "mustBeAboveZero": "慣性は 0 より大きい必要があります。" + } + }, + "loiteringTime": { + "error": { + "mustBeGreaterOrEqualZero": "滞留時間は 0 以上である必要があります。" + } + }, + "speed": { + "error": { + "mustBeGreaterOrEqualTo": "速度しきい値は 0.1 以上である必要があります。" + } + }, + "polygonDrawing": { + "removeLastPoint": "最後の点を削除", + "reset": { + "label": "すべての点をクリア" + }, + "snapPoints": { + "true": "点をスナップ", + "false": "点をスナップしない" + }, + "delete": { + "title": "削除の確認", + "desc": "{{type}} {{name}} を削除してもよろしいですか?", + "success": "{{name}} を削除しました。" + }, + "error": { + "mustBeFinished": "保存する前に多角形の作図を完了してください。" + } + } + }, + "zones": { + "label": "ゾーン", + "documentTitle": "ゾーンを編集 - Frigate", + "desc": { + "title": "ゾーンを使うと、フレーム内の特定領域を定義し、オブジェクトがその領域内にいるかどうかを判断できます。", + "documentation": "ドキュメント" + }, + "add": "ゾーンを追加", + "edit": "ゾーンを編集", + "point_other": "{{count}} 点", + "clickDrawPolygon": "画像上をクリックして多角形を描画します。", + "name": { + "title": "名称", + "inputPlaceHolder": "名前を入力…", + "tips": "名前は2文字以上、かつカメラ名や他のゾーン名と重複しない必要があります。" + }, + "inertia": { + "title": "慣性", + "desc": "オブジェクトがゾーン内にいるとみなすまでに必要なフレーム数を指定します。既定: 3" + }, + "loiteringTime": { + "title": "滞留時間", + "desc": "ゾーンが有効化されるまでに、オブジェクトがゾーン内に留まる必要がある最小秒数です。既定: 0" + }, + "objects": { + "title": "オブジェクト", + "desc": "このゾーンに適用するオブジェクトの一覧。" + }, + "allObjects": "すべてのオブジェクト", + "speedEstimation": { + "title": "速度推定", + "desc": "このゾーン内のオブジェクトに対して速度推定を有効にします。ゾーンはちょうど4点である必要があります。", + "lineADistance": "A 線の距離({{unit}})", + "lineBDistance": "B 線の距離({{unit}})", + "lineCDistance": "C 線の距離({{unit}})", + "lineDDistance": "D 線の距離({{unit}})" + }, + "speedThreshold": { + "title": "速度しきい値({{unit}})", + "desc": "このゾーンで考慮するオブジェクトの最小速度を指定します。", + "toast": { + "error": { + "pointLengthError": "このゾーンの速度推定を無効化しました。速度推定を使うゾーンは4点である必要があります。", + "loiteringTimeError": "滞留時間が 0 より大きいゾーンでは速度推定は使用しないでください。" + } + } + }, + "toast": { + "success": "ゾーン({{zoneName}})を保存しました。変更を適用するには Frigate を再起動してください。" + } + }, + "motionMasks": { + "label": "モーションマスク", + "documentTitle": "モーションマスクを編集 - Frigate", + "desc": { + "title": "モーションマスクは、望ましくない種類の動きで検出がトリガーされるのを防ぎます。過度なマスクはオブジェクト追跡を困難にします。", + "documentation": "ドキュメント" + }, + "add": "新しいモーションマスク", + "edit": "モーションマスクを編集", + "context": { + "title": "モーションマスクは、望ましくない動き(例: 木の枝、カメラのタイムスタンプ)で検出がトリガーされるのを防ぐために使用します。ごく控えめに使用してください。過度なマスクはオブジェクト追跡を困難にします。" + }, + "point_other": "{{count}} 点", + "clickDrawPolygon": "画像上をクリックして多角形を描画します。", + "polygonAreaTooLarge": { + "title": "モーションマスクがカメラフレームの {{polygonArea}}% を覆っています。大きなモーションマスクは推奨されません。", + "tips": "モーションマスクはオブジェクトの検出自体を防ぎません。代わりに必須ゾーンを使用してください。" + }, + "toast": { + "success": { + "title": "{{polygonName}} を保存しました。変更を適用するには Frigate を再起動してください。", + "noName": "モーションマスクを保存しました。変更を適用するには Frigate を再起動してください。" + } + } + }, + "objectMasks": { + "label": "オブジェクトマスク", + "documentTitle": "オブジェクトマスクを編集 - Frigate", + "desc": { + "title": "オブジェクトフィルタマスクは、位置に基づいて特定のオブジェクトタイプの誤検出を除外するために使用します。", + "documentation": "ドキュメント" + }, + "add": "オブジェクトマスクを追加", + "edit": "オブジェクトマスクを編集", + "context": "オブジェクトフィルタマスクは、位置に基づいて特定のオブジェクトタイプの誤検出を除外するために使用します。", + "point_other": "{{count}} 点", + "clickDrawPolygon": "画像上をクリックして多角形を描画します。", + "objects": { + "title": "オブジェクト", + "desc": "このオブジェクトマスクに適用するオブジェクトタイプ。", + "allObjectTypes": "すべてのオブジェクトタイプ" + }, + "toast": { + "success": { + "title": "{{polygonName}} を保存しました。変更を適用するには Frigate を再起動してください。", + "noName": "オブジェクトマスクを保存しました。変更を適用するには Frigate を再起動してください。" + } + } + } + }, + "motionDetectionTuner": { + "title": "モーション検出チューナー", + "unsavedChanges": "未保存のモーションチューナーの変更({{camera}})", + "desc": { + "title": "Frigate は、フレーム内に物体検出で確認すべき動きがあるかの一次チェックとしてモーション検出を使用します。", + "documentation": "モーション調整ガイドを読む" + }, + "Threshold": { + "title": "しきい値", + "desc": "しきい値は、ピクセルの輝度変化がモーションとみなされるために必要な変化量を決定します。既定: 30" + }, + "contourArea": { + "title": "輪郭面積", + "desc": "どの変化ピクセルのグループをモーションとして扱うかを決める値です。既定: 10" + }, + "improveContrast": { + "title": "コントラスト改善", + "desc": "暗いシーンのコントラストを改善します。既定: ON" + }, + "toast": { + "success": "モーション設定を保存しました。" + } + }, + "debug": { + "title": "デバッグ", + "detectorDesc": "Frigate は検出器({{detectors}})を使用して、カメラの映像ストリーム内のオブジェクトを検出します。", + "desc": "デバッグビューは、追跡オブジェクトとその統計をリアルタイムに表示します。オブジェクト一覧には、検出オブジェクトの時差サマリが表示されます。", + "openCameraWebUI": "{{camera}} の Web UI を開く", + "debugging": "デバッグ", + "objectList": "オブジェクト一覧", + "noObjects": "オブジェクトなし", + "audio": { + "title": "音声", + "noAudioDetections": "音声検出なし", + "score": "スコア", + "currentRMS": "現在の RMS", + "currentdbFS": "現在の dBFS" + }, + "boundingBoxes": { + "title": "バウンディングボックス", + "desc": "追跡オブジェクトの周囲にバウンディングボックスを表示します", + "colors": { + "label": "オブジェクトのボックス色", + "info": "
  • 起動時に、各オブジェクトラベルへ異なる色が割り当てられます
  • 細い濃青線は、現在時点では未検出であることを示します
  • 細い灰線は、静止していると検出されたことを示します
  • 太線は、(有効時)オートトラッキングの対象であることを示します
  • " + } + }, + "timestamp": { + "title": "タイムスタンプ", + "desc": "画像にタイムスタンプを重ねて表示します" + }, + "zones": { + "title": "ゾーン", + "desc": "定義済みゾーンのアウトラインを表示します" + }, + "mask": { + "title": "モーションマスク", + "desc": "モーションマスクの多角形を表示します" + }, + "motion": { + "title": "モーションボックス", + "desc": "モーションが検出された領域のボックスを表示します", + "tips": "

    モーションボックス


    現在モーションが検出されている領域に赤いボックスが重ねて表示されます

    " + }, + "regions": { + "title": "領域", + "desc": "物体検出器へ送られる関心領域のボックスを表示します", + "tips": "

    領域ボックス


    物体検出器へ送られるフレーム内の関心領域に明るい緑のボックスが重ねて表示されます。

    " + }, + "paths": { + "title": "軌跡", + "desc": "追跡オブジェクトの重要ポイントを表示します", + "tips": "

    軌跡


    線や円で、オブジェクトのライフサイクル中に移動した重要ポイントを示します。

    " + }, + "objectShapeFilterDrawing": { + "title": "オブジェクト形状フィルタの作図", + "desc": "画像上に矩形を描いて面積と比率の詳細を表示します", + "tips": "このオプションを有効にすると、カメラ画像上に矩形を描いてその面積と比率を表示できます。これらの値は設定ファイルのオブジェクト形状フィルタのパラメータ設定に利用できます。", + "score": "スコア", + "ratio": "比率", + "area": "面積" + } + }, + "users": { + "title": "ユーザー", + "management": { + "title": "ユーザー管理", + "desc": "この Frigate インスタンスのユーザーアカウントを管理します。" + }, + "addUser": "ユーザーを追加", + "updatePassword": "パスワードを更新", + "toast": { + "success": { + "createUser": "ユーザー {{user}} を作成しました", + "deleteUser": "ユーザー {{user}} を削除しました", + "updatePassword": "パスワードを更新しました。", + "roleUpdated": "{{user}} のロールを更新しました" + }, + "error": { + "setPasswordFailed": "パスワードの保存に失敗しました: {{errorMessage}}", + "createUserFailed": "ユーザーの作成に失敗しました: {{errorMessage}}", + "deleteUserFailed": "ユーザーの削除に失敗しました: {{errorMessage}}", + "roleUpdateFailed": "ロールの更新に失敗しました: {{errorMessage}}" + } + }, + "table": { + "username": "ユーザー名", + "actions": "操作", + "role": "ロール", + "noUsers": "ユーザーが見つかりません。", + "changeRole": "ユーザーロールを変更", + "password": "パスワード", + "deleteUser": "ユーザーを削除" + }, + "dialog": { + "form": { + "user": { + "title": "ユーザー名", + "desc": "使用できるのは英数字、ピリオド、アンダースコアのみです。", + "placeholder": "ユーザー名を入力" + }, + "password": { + "title": "パスワード", + "placeholder": "パスワードを入力", + "confirm": { + "title": "パスワードの確認", + "placeholder": "パスワードを再入力" + }, + "strength": { + "title": "パスワード強度: ", + "weak": "弱い", + "medium": "普通", + "strong": "強い", + "veryStrong": "非常に強い" + }, + "match": "パスワードが一致しています", + "notMatch": "パスワードが一致しません" + }, + "newPassword": { + "title": "新しいパスワード", + "placeholder": "新しいパスワードを入力", + "confirm": { + "placeholder": "新しいパスワードを再入力" + } + }, + "usernameIsRequired": "ユーザー名は必須です", + "passwordIsRequired": "パスワードは必須です" + }, + "createUser": { + "title": "新規ユーザーを作成", + "desc": "新しいユーザーアカウントを追加し、Frigate UI へのアクセスロールを指定します。", + "usernameOnlyInclude": "ユーザー名に使用できるのは英数字、.、_ のみです", + "confirmPassword": "パスワードを確認してください" + }, + "deleteUser": { + "title": "ユーザーを削除", + "desc": "この操作は元に戻せません。ユーザーアカウントおよび関連データは完全に削除されます。", + "warn": "{{username}} を削除してもよろしいですか?" + }, + "passwordSetting": { + "cannotBeEmpty": "パスワードを空にはできません", + "doNotMatch": "パスワードが一致しません", + "updatePassword": "{{username}} のパスワードを更新", + "setPassword": "パスワードを設定", + "desc": "強力なパスワードを作成して、このアカウントを保護してください。" + }, + "changeRole": { + "title": "ユーザーロールを変更", + "select": "ロールを選択", + "desc": "{{username}} の権限を更新します", + "roleInfo": { + "intro": "このユーザーに適切なロールを選択してください:", + "admin": "管理者", + "adminDesc": "すべての機能にフルアクセス。", + "viewer": "閲覧者", + "viewerDesc": "ライブ、レビュー、探索、書き出しに限定。", + "customDesc": "特定のカメラアクセスを持つカスタムロール。" + } + } + } + }, + "roles": { + "management": { + "title": "閲覧者ロール管理", + "desc": "この Frigate インスタンスのカスタム閲覧者ロールと、そのカメラアクセス権を管理します。" + }, + "addRole": "ロールを追加", + "table": { + "role": "ロール", + "cameras": "カメラ", + "actions": "操作", + "noRoles": "カスタムロールが見つかりません。", + "editCameras": "カメラを編集", + "deleteRole": "ロールを削除" + }, + "toast": { + "success": { + "createRole": "ロール {{role}} を作成しました", + "updateCameras": "ロール {{role}} のカメラを更新しました", + "deleteRole": "ロール {{role}} を削除しました", + "userRolesUpdated": "このロールに割り当てられていた {{count}} ユーザーは「viewer」に更新され、すべてのカメラへの閲覧アクセスが付与されました。" + }, + "error": { + "createRoleFailed": "ロールの作成に失敗しました: {{errorMessage}}", + "updateCamerasFailed": "カメラの更新に失敗しました: {{errorMessage}}", + "deleteRoleFailed": "ロールの削除に失敗しました: {{errorMessage}}", + "userUpdateFailed": "ユーザーロールの更新に失敗しました: {{errorMessage}}" + } + }, + "dialog": { + "createRole": { + "title": "新しいロールを作成", + "desc": "新しいロールを追加し、カメラアクセス権を指定します。" + }, + "editCameras": { + "title": "ロールのカメラを編集", + "desc": "ロール {{role}} のカメラアクセスを更新します。" + }, + "deleteRole": { + "title": "ロールを削除", + "desc": "この操作は元に戻せません。ロールは完全に削除され、このロールを持っていたユーザーは「viewer」ロールに再割り当てされ、すべてのカメラへの閲覧アクセスが付与されます。", + "warn": "{{role}} を削除してもよろしいですか?", + "deleting": "削除中…" + }, + "form": { + "role": { + "title": "ロール名", + "placeholder": "ロール名を入力", + "desc": "使用できるのは英数字、ピリオド、アンダースコアのみです。", + "roleIsRequired": "ロール名は必須です", + "roleOnlyInclude": "ロール名に使用できるのは英数字、.、_ のみです", + "roleExists": "この名前のロールは既に存在します。" + }, + "cameras": { + "title": "カメラ", + "desc": "このロールでアクセス可能なカメラを選択します。少なくとも1台が必要です。", + "required": "少なくとも1台のカメラを選択してください。" + } + } + } + }, + "notification": { + "title": "通知", + "notificationSettings": { + "title": "通知設定", + "desc": "Frigate はブラウザで実行中、または PWA としてインストールされている場合に、端末へネイティブのプッシュ通知を送信できます。" + }, + "notificationUnavailable": { + "title": "通知は利用できません", + "desc": "Web プッシュ通知にはセキュアコンテキスト(https://…)が必要です。これはブラウザの制限です。通知を利用するには、セキュアに Frigate へアクセスしてください。" + }, + "globalSettings": { + "title": "グローバル設定", + "desc": "登録済みのすべてのデバイスで、特定のカメラの通知を一時停止します。" + }, + "email": { + "title": "メール", + "placeholder": "例: example@email.com", + "desc": "有効なメールが必要です。プッシュサービスに問題がある場合の通知に使用します。" + }, + "cameras": { + "title": "カメラ", + "noCameras": "利用可能なカメラがありません", + "desc": "通知を有効にするカメラを選択します。" + }, + "deviceSpecific": "デバイス固有の設定", + "registerDevice": "このデバイスを登録", + "unregisterDevice": "このデバイスの登録を解除", + "sendTestNotification": "テスト通知を送信", + "unsavedRegistrations": "未保存の通知登録", + "unsavedChanges": "未保存の通知設定の変更", + "active": "通知は有効", + "suspended": "通知は一時停止中 {{time}}", + "suspendTime": { + "suspend": "一時停止", + "5minutes": "5分間一時停止", + "10minutes": "10分間一時停止", + "30minutes": "30分間一時停止", + "1hour": "1時間一時停止", + "12hours": "12時間一時停止", + "24hours": "24時間一時停止", + "untilRestart": "再起動まで一時停止" + }, + "cancelSuspension": "一時停止を解除", + "toast": { + "success": { + "registered": "通知の登録に成功しました。通知(テスト通知を含む)を送信するには Frigate の再起動が必要です。", + "settingSaved": "通知設定を保存しました。" + }, + "error": { + "registerFailed": "通知登録の保存に失敗しました。" + } + } + }, + "frigatePlus": { + "title": "Frigate+ 設定", + "apiKey": { + "title": "Frigate+ API キー", + "validated": "Frigate+ API キーが検出され、検証されました", + "notValidated": "Frigate+ API キーが検出されないか、検証されていません", + "desc": "Frigate+ API キーは Frigate+ サービスとの統合を有効にします。", + "plusLink": "Frigate+ の詳細を読む" + }, + "snapshotConfig": { + "title": "スナップショット設定", + "desc": "Frigate+ への送信には、設定でスナップショットと clean_copy スナップショットの両方を有効にする必要があります。", + "cleanCopyWarning": "一部のカメラではスナップショットは有効ですが、クリーンコピーが無効です。これらのカメラから Frigate+ へ画像を送信するには、スナップショット設定で clean_copy を有効にしてください。", + "table": { + "camera": "カメラ", + "snapshots": "スナップショット", + "cleanCopySnapshots": "clean_copy スナップショット" + } + }, + "modelInfo": { + "title": "モデル情報", + "modelType": "モデルタイプ", + "trainDate": "学習日", + "baseModel": "ベースモデル", + "plusModelType": { + "baseModel": "ベースモデル", + "userModel": "ファインチューニング済み" + }, + "supportedDetectors": "対応検出器", + "cameras": "カメラ", + "loading": "モデル情報を読み込み中…", + "error": "モデル情報の読み込みに失敗しました", + "availableModels": "利用可能なモデル", + "loadingAvailableModels": "利用可能なモデルを読み込み中…", + "modelSelect": "ここで Frigate+ 上の利用可能なモデルを選択できます。現在の検出器構成と互換性のあるモデルのみ選択可能です。" + }, + "unsavedChanges": "未保存の Frigate+ 設定の変更", + "restart_required": "再起動が必要です(Frigate+ モデルを変更)", + "toast": { + "success": "Frigate+ 設定を保存しました。変更を適用するには Frigate を再起動してください。", + "error": "設定変更の保存に失敗しました: {{errorMessage}}" + } + }, + "triggers": { + "documentTitle": "トリガー", + "management": { + "title": "トリガー管理", + "desc": "{{camera}} のトリガーを管理します。サムネイルタイプでは、選択した追跡オブジェクトに類似するサムネイルでトリガーし、説明タイプでは、指定したテキストに類似する説明でトリガーします。" + }, + "addTrigger": "トリガーを追加", + "table": { + "name": "名称", + "type": "タイプ", + "content": "コンテンツ", + "threshold": "しきい値", + "actions": "操作", + "noTriggers": "このカメラに設定されたトリガーはありません。", + "edit": "編集", + "deleteTrigger": "トリガーを削除", + "lastTriggered": "最終トリガー時刻" + }, + "type": { + "thumbnail": "サムネイル", + "description": "説明" + }, + "actions": { + "alert": "アラートとしてマーク", + "notification": "通知を送信" + }, + "dialog": { + "createTrigger": { + "title": "トリガーを作成", + "desc": "カメラ {{camera}} のトリガーを作成します" + }, + "editTrigger": { + "title": "トリガーを編集", + "desc": "カメラ {{camera}} のトリガー設定を編集します" + }, + "deleteTrigger": { + "title": "トリガーを削除", + "desc": "トリガー {{triggerName}} を削除してもよろしいですか?この操作は元に戻せません。" + }, + "form": { + "name": { + "title": "名称", + "placeholder": "トリガー名を入力", + "error": { + "minLength": "名称は2文字以上である必要があります。", + "invalidCharacters": "名称に使用できるのは英数字、アンダースコア、ハイフンのみです。", + "alreadyExists": "このカメラには同名のトリガーが既に存在します。" + } + }, + "enabled": { + "description": "このトリガーを有効/無効にする" + }, + "type": { + "title": "タイプ", + "placeholder": "トリガータイプを選択" + }, + "content": { + "title": "コンテンツ", + "imagePlaceholder": "画像を選択", + "textPlaceholder": "テキストを入力", + "imageDesc": "類似画像が検出されたときにこのアクションをトリガーするための画像を選択します。", + "textDesc": "類似する追跡オブジェクトの説明が検出されたときにこのアクションをトリガーするためのテキストを入力します。", + "error": { + "required": "コンテンツは必須です。" + } + }, + "threshold": { + "title": "しきい値", + "error": { + "min": "しきい値は 0 以上である必要があります", + "max": "しきい値は 1 以下である必要があります" + } + }, + "actions": { + "title": "アクション", + "desc": "既定では、すべてのトリガーに対して MQTT メッセージが送信されます。必要に応じて、トリガー時に実行する追加アクションを選択してください。", + "error": { + "min": "少なくとも1つのアクションを選択してください。" + } + } + } + }, + "toast": { + "success": { + "createTrigger": "トリガー {{name}} を作成しました。", + "updateTrigger": "トリガー {{name}} を更新しました。", + "deleteTrigger": "トリガー {{name}} を削除しました。" + }, + "error": { + "createTriggerFailed": "トリガーの作成に失敗しました: {{errorMessage}}", + "updateTriggerFailed": "トリガーの更新に失敗しました: {{errorMessage}}", + "deleteTriggerFailed": "トリガーの削除に失敗しました: {{errorMessage}}" + } + } } } diff --git a/web/public/locales/ja/views/system.json b/web/public/locales/ja/views/system.json index 2c5d736f2..66c77021b 100644 --- a/web/public/locales/ja/views/system.json +++ b/web/public/locales/ja/views/system.json @@ -2,6 +2,185 @@ "documentTitle": { "cameras": "カメラ統計 - Frigate", "general": "一般統計 - Frigate", - "storage": "ストレージ統計 - Frigate" + "storage": "ストレージ統計 - Frigate", + "enrichments": "エンリッチメント統計 - Frigate", + "logs": { + "frigate": "Frigate ログ - Frigate", + "go2rtc": "Go2RTC ログ - Frigate", + "nginx": "Nginx ログ - Frigate" + } + }, + "title": "システム", + "metrics": "システムメトリクス", + "logs": { + "download": { + "label": "ログをダウンロード" + }, + "copy": { + "label": "クリップボードにコピー", + "success": "ログをクリップボードにコピーしました", + "error": "ログをクリップボードにコピーできませんでした" + }, + "type": { + "label": "種類", + "timestamp": "タイムスタンプ", + "tag": "タグ", + "message": "メッセージ" + }, + "tips": "ログはサーバーからストリーミングされています", + "toast": { + "error": { + "fetchingLogsFailed": "ログの取得エラー: {{errorMessage}}", + "whileStreamingLogs": "ログのストリーミング中にエラー: {{errorMessage}}" + } + } + }, + "general": { + "title": "全般", + "detector": { + "title": "ディテクタ", + "inferenceSpeed": "ディテクタ推論速度", + "temperature": "ディテクタ温度", + "cpuUsage": "ディテクタの CPU 使用率", + "cpuUsageInformation": "検出モデルへの入力/出力データの準備に使用される CPU。GPU やアクセラレータを使用していても、この値は推論の使用量を測定しません。", + "memoryUsage": "ディテクタのメモリ使用量" + }, + "hardwareInfo": { + "title": "ハードウェア情報", + "gpuUsage": "GPU 使用率", + "gpuMemory": "GPU メモリ", + "gpuEncoder": "GPU エンコーダー", + "gpuDecoder": "GPU デコーダー", + "gpuInfo": { + "vainfoOutput": { + "title": "vainfo 出力", + "returnCode": "戻りコード: {{code}}", + "processOutput": "プロセス出力:", + "processError": "プロセスエラー:" + }, + "nvidiaSMIOutput": { + "title": "NVIDIA SMI 出力", + "name": "名前: {{name}}", + "driver": "ドライバー: {{driver}}", + "cudaComputerCapability": "CUDA 計算能力: {{cuda_compute}}", + "vbios": "VBIOS 情報: {{vbios}}" + }, + "closeInfo": { + "label": "GPU 情報を閉じる" + }, + "copyInfo": { + "label": "GPU 情報をコピー" + }, + "toast": { + "success": "GPU 情報をクリップボードにコピーしました" + } + }, + "npuUsage": "NPU 使用率", + "npuMemory": "NPU メモリ" + }, + "otherProcesses": { + "title": "その他のプロセス", + "processCpuUsage": "プロセスの CPU 使用率", + "processMemoryUsage": "プロセスのメモリ使用量" + } + }, + "storage": { + "title": "ストレージ", + "overview": "概要", + "recordings": { + "title": "録画", + "tips": "この値は Frigate のデータベースで録画が使用している総ストレージ量を表します。Frigate はディスク上のすべてのファイルの使用量を追跡しているわけではありません。", + "earliestRecording": "利用可能な最古の録画:" + }, + "shm": { + "title": "SHM(共有メモリ)の割り当て", + "warning": "現在の SHM サイズ {{total}}MB は小さすぎます。少なくとも {{min_shm}}MB に増やしてください。" + }, + "cameraStorage": { + "title": "カメラストレージ", + "camera": "カメラ", + "unusedStorageInformation": "未使用ストレージ情報", + "storageUsed": "ストレージ使用量", + "percentageOfTotalUsed": "総使用量に占める割合", + "bandwidth": "帯域幅", + "unused": { + "title": "未使用", + "tips": "Frigate の録画以外にドライブへ保存しているファイルがある場合、この値は Frigate が利用できる空き容量を正確に表さないことがあります。Frigate は録画以外のストレージ使用量を追跡しません。" + } + } + }, + "cameras": { + "title": "カメラ", + "overview": "概要", + "info": { + "aspectRatio": "アスペクト比", + "cameraProbeInfo": "{{camera}} カメラプローブ情報", + "streamDataFromFFPROBE": "ストリームデータは ffprobe で取得しています。", + "fetching": "カメラデータを取得中", + "stream": "ストリーム {{idx}}", + "video": "動画:", + "codec": "コーデック:", + "resolution": "解像度:", + "fps": "FPS:", + "unknown": "不明", + "audio": "音声:", + "error": "エラー: {{error}}", + "tips": { + "title": "カメラプローブ情報" + } + }, + "framesAndDetections": "フレーム / 検出", + "label": { + "camera": "カメラ", + "detect": "検出", + "skipped": "スキップ", + "ffmpeg": "FFmpeg", + "capture": "キャプチャ", + "overallFramesPerSecond": "全体フレーム/秒", + "overallDetectionsPerSecond": "全体検出/秒", + "overallSkippedDetectionsPerSecond": "全体スキップ検出/秒", + "cameraFfmpeg": "{{camName}} FFmpeg", + "cameraCapture": "{{camName}} キャプチャ", + "cameraDetect": "{{camName}} 検出", + "cameraFramesPerSecond": "{{camName}} フレーム/秒", + "cameraDetectionsPerSecond": "{{camName}} 検出/秒", + "cameraSkippedDetectionsPerSecond": "{{camName}} スキップ検出/秒" + }, + "toast": { + "success": { + "copyToClipboard": "プローブデータをクリップボードにコピーしました。" + }, + "error": { + "unableToProbeCamera": "カメラをプローブできません: {{errorMessage}}" + } + } + }, + "lastRefreshed": "最終更新: ", + "stats": { + "ffmpegHighCpuUsage": "{{camera}} の FFmpeg の CPU 使用率が高い({{ffmpegAvg}}%)", + "detectHighCpuUsage": "{{camera}} の検出の CPU 使用率が高い({{detectAvg}}%)", + "healthy": "システムは正常です", + "reindexingEmbeddings": "埋め込みを再インデックス中({{processed}}% 完了)", + "cameraIsOffline": "{{camera}} はオフラインです", + "detectIsSlow": "{{detect}} が遅い({{speed}} ms)", + "detectIsVerySlow": "{{detect}} が非常に遅い({{speed}} ms)", + "shmTooLow": "/dev/shm の割り当て({{total}} MB)は少なくとも {{min}} MB に増やす必要があります。" + }, + "enrichments": { + "title": "エンリッチメント", + "infPerSecond": "毎秒推論回数", + "embeddings": { + "image_embedding": "画像埋め込み", + "text_embedding": "テキスト埋め込み", + "face_recognition": "顔認識", + "plate_recognition": "ナンバープレート認識", + "image_embedding_speed": "画像埋め込み速度", + "face_embedding_speed": "顔埋め込み速度", + "face_recognition_speed": "顔認識速度", + "plate_recognition_speed": "ナンバープレート認識速度", + "text_embedding_speed": "テキスト埋め込み速度", + "yolov9_plate_detection_speed": "YOLOv9 ナンバープレート検出速度", + "yolov9_plate_detection": "YOLOv9 ナンバープレート検出" + } } }