From 29bcb7f47a531cdfa5d0a9191dbf674d32703782 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Wed, 24 Dec 2025 15:17:11 +0100 Subject: [PATCH] Translated using Weblate (Japanese) Currently translated at 100.0% (53 of 53 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (131 of 131 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (122 of 122 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (92 of 92 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (135 of 135 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (49 of 49 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (654 of 654 strings) Translated using Weblate (Japanese) Currently translated at 92.4% (49 of 53 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (41 of 41 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (122 of 122 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (13 of 13 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (501 of 501 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (10 of 10 strings) Translated using Weblate (Japanese) Currently translated at 7.3% (9 of 122 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (214 of 214 strings) Translated using Weblate (Japanese) Currently translated at 92.4% (49 of 53 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (55 of 55 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (74 of 74 strings) Translated using Weblate (Japanese) Currently translated at 4.9% (6 of 122 strings) Co-authored-by: Hosted Weblate Co-authored-by: yhi264 Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ja/ Translation: Frigate NVR/audio Translation: Frigate NVR/common Translation: Frigate NVR/components-auth Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-filter Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-exports Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-search Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/ja/audio.json | 76 +++++- web/public/locales/ja/common.json | 27 +- web/public/locales/ja/components/auth.json | 3 +- web/public/locales/ja/components/dialog.json | 8 +- web/public/locales/ja/components/filter.json | 4 + .../locales/ja/views/classificationModel.json | 174 ++++++++++++- web/public/locales/ja/views/events.json | 25 +- web/public/locales/ja/views/explore.json | 86 +++++- web/public/locales/ja/views/exports.json | 6 + web/public/locales/ja/views/faceLibrary.json | 13 +- web/public/locales/ja/views/live.json | 6 +- web/public/locales/ja/views/search.json | 3 +- web/public/locales/ja/views/settings.json | 244 +++++++++++++++--- web/public/locales/ja/views/system.json | 21 +- 14 files changed, 633 insertions(+), 63 deletions(-) diff --git a/web/public/locales/ja/audio.json b/web/public/locales/ja/audio.json index c546c09b2..e049b882e 100644 --- a/web/public/locales/ja/audio.json +++ b/web/public/locales/ja/audio.json @@ -425,5 +425,79 @@ "television": "テレビ", "radio": "ラジオ", "field_recording": "フィールド録音", - "scream": "悲鳴" + "scream": "悲鳴", + "sodeling": "ソデリング", + "chird": "チャープ", + "change_ringing": "着信音の変更", + "shofar": "ショファー", + "liquid": "液体", + "splash": "水しぶき", + "slosh": "水が揺れる音", + "squish": "ぐちゃっという音", + "drip": "滴る音", + "pour": "注ぐ", + "trickle": "ちょろちょろ流れる音", + "gush": "勢いよく噴き出す", + "fill": "満たす", + "spray": "噴霧", + "pump": "ポンプ", + "stir": "かき混ぜる", + "boiling": "沸騰", + "sonar": "ソナー", + "arrow": "矢", + "whoosh": "ヒューという音", + "thump": "ドンという音", + "thunk": "鈍い衝撃音", + "electronic_tuner": "電子チューナー", + "effects_unit": "エフェクター", + "chorus_effect": "コーラス効果", + "basketball_bounce": "バスケットボールのバウンド", + "bang": "バンという音", + "slap": "平手打ち", + "whack": "強打", + "smash": "粉砕", + "breaking": "破壊", + "bouncing": "跳ねる音", + "whip": "ムチの音", + "flap": "はためく音", + "scratch": "引っかく音", + "scrape": "こする音", + "rub": "こする", + "roll": "転がる", + "crushing": "押しつぶす", + "crumpling": "くしゃくしゃにする音", + "tearing": "引き裂く音", + "beep": "ビープ音", + "ping": "ピン音", + "ding": "ディン音", + "clang": "金属音", + "squeal": "きしむ音", + "creak": "きしみ", + "rustle": "かさかさ音", + "whir": "ブーンという音", + "clatter": "ガタガタ音", + "sizzle": "ジュージュー音", + "clicking": "クリック音", + "clickety_clack": "カチカチ音", + "rumble": "ゴロゴロ音", + "plop": "ポチャン", + "hum": "ハム音", + "zing": "ジーン音", + "boing": "ボイン音", + "crunch": "バリバリ音", + "sine_wave": "正弦波", + "harmonic": "倍音", + "chirp_tone": "チャープ音", + "pulse": "パルス", + "inside": "内側", + "outside": "外側", + "reverberation": "残響", + "echo": "エコー", + "noise": "ノイズ", + "mains_hum": "電源ハム", + "distortion": "歪み", + "sidetone": "サイドトーン", + "cacophony": "不協和音", + "throbbing": "脈動", + "vibration": "振動" } diff --git a/web/public/locales/ja/common.json b/web/public/locales/ja/common.json index ba84f3e2f..7cef62aa5 100644 --- a/web/public/locales/ja/common.json +++ b/web/public/locales/ja/common.json @@ -66,7 +66,10 @@ "formattedTimestampFilename": { "12hour": "MM-dd-yy-h-mm-ss-a", "24hour": "MM-dd-yy-HH-mm-ss" - } + }, + "inProgress": "処理中", + "invalidStartTime": "開始時刻が無効です", + "invalidEndTime": "終了時刻が無効です" }, "readTheDocumentation": "ドキュメントを見る", "unit": { @@ -88,7 +91,12 @@ } }, "label": { - "back": "戻る" + "back": "戻る", + "hide": "{{item}} を非表示", + "show": "{{item}} を表示", + "ID": "ID", + "none": "なし", + "all": "すべて" }, "button": { "apply": "適用", @@ -125,7 +133,8 @@ "unselect": "選択解除", "export": "書き出し", "deleteNow": "今すぐ削除", - "next": "次へ" + "next": "次へ", + "continue": "続行" }, "menu": { "system": "システム", @@ -224,7 +233,8 @@ "withSystem": { "label": "システム設定に従う" } - } + }, + "classification": "分類" }, "toast": { "copyUrlToClipboard": "URLをクリップボードにコピーしました。", @@ -267,5 +277,14 @@ "selectItem": "{{item}} を選択", "information": { "pixels": "{{area}}ピクセル" + }, + "list": { + "two": "{{0}} と {{1}}", + "many": "{{items}}と {{last}}", + "separatorWithSpace": ", " + }, + "field": { + "optional": "任意", + "internalID": "Frigate が設定で使用する内部 ID です" } } diff --git a/web/public/locales/ja/components/auth.json b/web/public/locales/ja/components/auth.json index b9ff98325..d767e3282 100644 --- a/web/public/locales/ja/components/auth.json +++ b/web/public/locales/ja/components/auth.json @@ -10,6 +10,7 @@ "loginFailed": "ログインに失敗しました", "unknownError": "不明なエラー。ログを確認してください。", "webUnknownError": "不明なエラー。コンソールログを確認してください。" - } + }, + "firstTimeLogin": "初めてログインしますか?認証情報は Frigate のログに表示されています。" } } diff --git a/web/public/locales/ja/components/dialog.json b/web/public/locales/ja/components/dialog.json index 2c5f5e0d4..629474548 100644 --- a/web/public/locales/ja/components/dialog.json +++ b/web/public/locales/ja/components/dialog.json @@ -51,12 +51,13 @@ "export": "書き出し", "selectOrExport": "選択または書き出し", "toast": { - "success": "書き出しを開始しました。/exports フォルダでファイルを確認できます。", + "success": "書き出しを開始しました。出力ページでファイルを確認できます。", "error": { "failed": "書き出しの開始に失敗しました: {{error}}", "endTimeMustAfterStartTime": "終了時間は開始時間より後である必要があります", "noVaildTimeSelected": "有効な時間範囲が選択されていません" - } + }, + "view": "表示" }, "fromTimeline": { "saveExport": "書き出しを保存", @@ -114,6 +115,7 @@ "search": { "placeholder": "ラベルまたはサブラベルで検索…" }, - "noImages": "このカメラのサムネイルは見つかりません" + "noImages": "このカメラのサムネイルは見つかりません", + "unknownLabel": "保存済みトリガー画像" } } diff --git a/web/public/locales/ja/components/filter.json b/web/public/locales/ja/components/filter.json index 66a52a29e..bbcc3149d 100644 --- a/web/public/locales/ja/components/filter.json +++ b/web/public/locales/ja/components/filter.json @@ -132,5 +132,9 @@ "selectPlatesFromList": "リストから1件以上選択してください。", "selectAll": "すべて選択", "clearAll": "すべてクリア" + }, + "attributes": { + "label": "分類属性", + "all": "すべての属性" } } diff --git a/web/public/locales/ja/views/classificationModel.json b/web/public/locales/ja/views/classificationModel.json index 54710f96c..e16f1fce5 100644 --- a/web/public/locales/ja/views/classificationModel.json +++ b/web/public/locales/ja/views/classificationModel.json @@ -1,14 +1,182 @@ { - "documentTitle": "分類モデル", + "documentTitle": "分類モデル - Frigate", "button": { - "deleteImages": "画像を削除" + "deleteImages": "画像を削除", + "deleteClassificationAttempts": "分類画像を削除", + "renameCategory": "クラス名を変更", + "deleteCategory": "クラスを削除", + "trainModel": "モデルを学習", + "addClassification": "分類を追加", + "deleteModels": "モデルを削除", + "editModel": "モデルを編集" }, "toast": { "success": { "deletedImage": "削除された画像", "categorizedImage": "画像の分類に成功しました", "trainedModel": "モデルを正常に学習させました。", - "trainingModel": "モデルのトレーニングを正常に開始しました。" + "trainingModel": "モデルのトレーニングを正常に開始しました。", + "deletedCategory": "クラスを削除しました", + "deletedModel_other": "{{count}} 件のモデルを削除しました", + "updatedModel": "モデル設定を更新しました", + "renamedCategory": "クラス名を {{name}} に変更しました" + }, + "error": { + "deleteImageFailed": "削除に失敗しました: {{errorMessage}}", + "deleteCategoryFailed": "クラスの削除に失敗しました: {{errorMessage}}", + "deleteModelFailed": "モデルの削除に失敗しました: {{errorMessage}}", + "categorizeFailed": "画像の分類に失敗しました: {{errorMessage}}", + "trainingFailed": "モデルの学習に失敗しました。Frigate のログを確認してください。", + "trainingFailedToStart": "モデルの学習を開始できませんでした: {{errorMessage}}", + "updateModelFailed": "モデルの更新に失敗しました: {{errorMessage}}", + "renameCategoryFailed": "クラス名の変更に失敗しました: {{errorMessage}}" + } + }, + "train": { + "titleShort": "Classifications,最近の分類結果を選択,,False,train.aria,,", + "title": "最近の分類結果", + "aria": "最近の分類結果を選択" + }, + "wizard": { + "step1": { + "typeObject": "Classification", + "typeState": "Classification", + "description": "状態モデルは固定カメラ領域の状態変化(例:ドアの開閉)を監視し、オブジェクトモデルは検出されたオブジェクトに分類(例:既知の動物や配達員など)を追加します。", + "name": "名前", + "namePlaceholder": "モデル名を入力...", + "type": "タイプ", + "objectLabel": "オブジェクトラベル", + "objectLabelPlaceholder": "オブジェクトタイプを選択...", + "classificationType": "分類タイプ", + "classificationTypeTip": "分類タイプについて", + "classificationTypeDesc": "サブラベルはオブジェクトのラベルに追加のテキストを追加します(例:「人: UPS」)。属性は、オブジェクトのメタデータとは別に保存される、検索可能なメタデータです。", + "classificationSubLabel": "サブラベル", + "classificationAttribute": "属性", + "classes": "クラス", + "states": "状態", + "classesTip": "クラスについて", + "classesStateDesc": "カメラ領域の状態を定義します。例: ガレージドアの「開」「閉」。", + "classesObjectDesc": "検出されたオブジェクトを分類するための、異なるカテゴリを定義します。例:人物の分類として「delivery_person」「resident」「stranger」など。", + "classPlaceholder": "クラス名を入力...", + "errors": { + "nameRequired": "モデル名は必須です", + "nameLength": "モデル名は 64 文字以内で入力してください", + "nameOnlyNumbers": "モデル名を数字のみにはできません", + "classRequired": "少なくとも 1 つのクラスが必要です", + "classesUnique": "クラス名は一意である必要があります", + "noneNotAllowed": "「none」というクラス名は使用できません", + "stateRequiresTwoClasses": "状態モデルには少なくとも 2 つのクラスが必要です", + "objectLabelRequired": "オブジェクトラベルを選択してください", + "objectTypeRequired": "分類タイプを選択してください" + } + }, + "title": "新しい分類を作成", + "steps": { + "nameAndDefine": "名前と定義", + "stateArea": "状態エリア", + "chooseExamples": "例を選択" + }, + "step2": { + "description": "カメラを選択し、それぞれの監視エリアを定義します。モデルはこれらのエリアの状態を分類します。", + "cameras": "カメラ", + "selectCamera": "カメラを選択", + "noCameras": "+ をクリックしてカメラを追加", + "selectCameraPrompt": "リストからカメラを選択して監視エリアを定義します" + }, + "step3": { + "selectImagesPrompt": "{{className}} の画像をすべて選択", + "selectImagesDescription": "画像をクリックして選択します。このクラスの作業が完了したら「続行」をクリックしてください。", + "allImagesRequired_other": "すべての画像を分類してください。残り {{count}} 枚です。", + "generating": { + "title": "サンプル画像を生成中", + "description": "Frigate が録画から代表的な画像を抽出しています。しばらくお待ちください..." + }, + "training": { + "title": "モデルを学習中", + "description": "モデルはバックグラウンドで学習されています。このダイアログを閉じると、学習完了後すぐにモデルが有効になります。" + }, + "retryGenerate": "再生成", + "noImages": "サンプル画像が生成されませんでした", + "classifying": "分類・学習中...", + "trainingStarted": "学習を開始しました", + "modelCreated": "モデルを作成しました。不足している状態の画像を「最近の分類」から追加し、モデルを学習してください。", + "errors": { + "noCameras": "カメラが設定されていません", + "noObjectLabel": "オブジェクトラベルが選択されていません", + "generateFailed": "例の生成に失敗しました: {{error}}", + "generationFailed": "生成に失敗しました。もう一度お試しください。", + "classifyFailed": "画像の分類に失敗しました: {{error}}" + }, + "generateSuccess": "サンプル画像を生成しました", + "missingStatesWarning": { + "title": "状態の例が不足しています", + "description": "最良の結果を得るため、すべての状態の例を選択することを推奨します。すべてを選択しなくても続行できますが、全状態に画像が揃うまでモデルは学習されません。続行後、「最近の分類」から不足分を分類し、学習を行ってください。" + } + } + }, + "details": { + "scoreInfo": "このスコアは、このオブジェクトに対するすべての検出結果の分類信頼度の平均を表します。", + "none": "なし", + "unknown": "不明" + }, + "tooltip": { + "trainingInProgress": "モデルは現在学習中です", + "noNewImages": "学習に使用できる新しい画像がありません。先にデータセット内の画像を分類してください。", + "noChanges": "前回の学習以降、データセットに変更はありません。", + "modelNotReady": "モデルはまだ学習可能な状態ではありません" + }, + "deleteCategory": { + "title": "クラスを削除", + "desc": "クラス {{name}} を削除してもよろしいですか?関連するすべての画像が完全に削除され、モデルの再学習が必要になります。", + "minClassesTitle": "クラスを削除できません", + "minClassesDesc": "分類モデルには少なくとも 2 つのクラスが必要です。別のクラスを追加してから削除してください。" + }, + "deleteModel": { + "title": "分類モデルを削除", + "single": "{{name}} を削除してもよろしいですか?画像や学習データを含むすべての関連データが完全に削除され、この操作は元に戻せません。", + "desc_other": "{{count}} 件のモデルを削除してもよろしいですか?関連するすべてのデータが完全に削除され、この操作は元に戻せません。" + }, + "edit": { + "title": "分類モデルを編集", + "descriptionState": "この状態分類モデルのクラスを編集します。変更を反映するにはモデルの再学習が必要です。", + "descriptionObject": "このオブジェクト分類モデルのオブジェクトタイプおよび分類タイプを編集します。", + "stateClassesInfo": "注意: 状態クラスを変更すると、更新後のクラスでモデルを再学習する必要があります。" + }, + "deleteDatasetImages": { + "title": "データセット画像を削除", + "desc_other": "{{dataset}} から {{count}} 枚の画像を削除してもよろしいですか?この操作は元に戻せず、モデルの再学習が必要になります。" + }, + "deleteTrainImages": { + "title": "学習用画像を削除", + "desc_other": "{{count}} 枚の画像を削除してもよろしいですか?この操作は元に戻すことができません。" + }, + "renameCategory": { + "title": "クラス名を変更", + "desc": "{{name}} の新しい名前を入力してください。変更を有効にするにはモデルの再学習が必要です。" + }, + "description": { + "invalidName": "無効な名前です。使用できるのは、英数字、空白、アポストロフィ、アンダースコア、ハイフンのみです。" + }, + "categories": "クラス", + "createCategory": { + "new": "新しいクラスを作成" + }, + "categorizeImageAs": "画像を次として分類:", + "categorizeImage": "画像を分類", + "menu": { + "objects": "オブジェクト", + "states": "状態" + }, + "noModels": { + "object": { + "title": "オブジェクト分類モデルがありません", + "description": "検出されたオブジェクトを分類するためのカスタムモデルを作成します。", + "buttonText": "オブジェクトモデルを作成" + }, + "state": { + "title": "状態分類モデルがありません", + "description": "特定のカメラ領域の状態変化を監視・分類するためのカスタムモデルを作成します。", + "buttonText": "状態モデルを作成" } } } diff --git a/web/public/locales/ja/views/events.json b/web/public/locales/ja/views/events.json index b19ad9553..b1f85a066 100644 --- a/web/public/locales/ja/views/events.json +++ b/web/public/locales/ja/views/events.json @@ -36,5 +36,28 @@ "selected_other": "{{count}} 件選択", "detected": "検出", "suspiciousActivity": "不審なアクティビティ", - "threateningActivity": "脅威となるアクティビティ" + "threateningActivity": "脅威となるアクティビティ", + "zoomIn": "ズームイン", + "zoomOut": "ズームアウト", + "detail": { + "label": "詳細", + "noDataFound": "確認する詳細データはありません", + "aria": "詳細表示を切り替え", + "trackedObject_one": "{{count}} 件のオブジェクト", + "trackedObject_other": "{{count}} 件のオブジェクト", + "noObjectDetailData": "オブジェクトの詳細データがありません。", + "settings": "詳細表示設定", + "alwaysExpandActive": { + "title": "アクティブ項目を常に展開", + "desc": "利用可能な場合、アクティブなレビュー項目のオブジェクト詳細を常に展開する。" + } + }, + "objectTrack": { + "trackedPoint": "追跡ポイント", + "clickToSeek": "クリックしてこの時点に移動" + }, + "select_all": "すべて", + "normalActivity": "通常", + "needsReview": "要確認", + "securityConcern": "セキュリティ上の懸念" } diff --git a/web/public/locales/ja/views/explore.json b/web/public/locales/ja/views/explore.json index 3e782f926..ccee1d47a 100644 --- a/web/public/locales/ja/views/explore.json +++ b/web/public/locales/ja/views/explore.json @@ -19,13 +19,15 @@ "regenerate": "{{provider}} に新しい説明をリクエストしました。プロバイダの速度により再生成に時間がかかる場合があります。", "updatedSublabel": "サブラベルを更新しました。", "updatedLPR": "ナンバープレートを更新しました。", - "audioTranscription": "音声文字起こしをリクエストしました。" + "audioTranscription": "音声文字起こしのリクエストは正常に送信されました。Frigate サーバーの処理速度によっては、文字起こしの完了までにしばらく時間がかかる場合があります。", + "updatedAttributes": "属性が正常に更新されました。" }, "error": { "regenerate": "{{provider}} への新しい説明の呼び出しに失敗しました: {{errorMessage}}", "updatedSublabelFailed": "サブラベルの更新に失敗しました: {{errorMessage}}", "updatedLPRFailed": "ナンバープレートの更新に失敗しました: {{errorMessage}}", - "audioTranscription": "音声文字起こしのリクエストに失敗しました: {{errorMessage}}" + "audioTranscription": "音声文字起こしのリクエストに失敗しました: {{errorMessage}}", + "updatedAttributesFailed": "属性の更新に失敗しました: {{errorMessage}}" } } }, @@ -73,7 +75,12 @@ "tips": { "descriptionSaved": "説明を保存しました", "saveDescriptionFailed": "説明の更新に失敗しました: {{errorMessage}}" - } + }, + "editAttributes": { + "title": "属性を編集", + "desc": "この {{label}} の分類属性を選択してください" + }, + "attributes": "分類属性" }, "exploreMore": "{{label}} のオブジェクトをさらに探索", "exploreIsUnavailable": { @@ -108,7 +115,9 @@ "details": "詳細", "snapshot": "スナップショット", "video": "動画", - "object_lifecycle": "オブジェクトのライフサイクル" + "object_lifecycle": "オブジェクトのライフサイクル", + "thumbnail": "サムネイル", + "tracking_details": "追跡詳細" }, "objectLifecycle": { "title": "オブジェクトのライフサイクル", @@ -193,12 +202,26 @@ }, "deleteTrackedObject": { "label": "この追跡オブジェクトを削除" + }, + "downloadCleanSnapshot": { + "label": "クリーンなスナップショットをダウンロード", + "aria": "クリーンなスナップショットをダウンロード" + }, + "viewTrackingDetails": { + "label": "追跡詳細を表示", + "aria": "追跡詳細を表示" + }, + "showObjectDetails": { + "label": "オブジェクトの移動経路を表示" + }, + "hideObjectDetails": { + "label": "オブジェクトの移動経路を非表示" } }, "dialog": { "confirmDelete": { "title": "削除の確認", - "desc": "この追跡オブジェクトを削除すると、スナップショット、保存された埋め込み、および関連するライフサイクル項目が削除されます。履歴ビューの録画映像は削除されません

続行してもよろしいですか?" + "desc": "この追跡オブジェクトを削除すると、スナップショット、保存された埋め込み、および関連する追跡詳細項目が削除されます。履歴ビューの録画映像は削除されません

続行してもよろしいですか?" } }, "noTrackedObjects": "追跡オブジェクトは見つかりませんでした", @@ -211,12 +234,63 @@ "success": "追跡オブジェクトを削除しました。", "error": "追跡オブジェクトの削除に失敗しました: {{errorMessage}}" } - } + }, + "previousTrackedObject": "前の追跡オブジェクト", + "nextTrackedObject": "次の追跡オブジェクト" }, "aiAnalysis": { "title": "AI 解析" }, "concerns": { "label": "懸念" + }, + "trackingDetails": { + "title": "追跡詳細", + "noImageFound": "このタイムスタンプに対応する画像が見つかりません。", + "createObjectMask": "オブジェクトマスクを作成", + "adjustAnnotationSettings": "注釈設定を調整", + "scrollViewTips": "クリックして、このオブジェクトのライフサイクルにおける重要な瞬間を表示します。", + "autoTrackingTips": "自動追跡カメラでは、バウンディングボックスの位置が不正確になる場合があります。", + "count": "{{second}} 件中 {{first}} 件目", + "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": "面積", + "score": "スコア" + } + }, + "annotationSettings": { + "title": "注釈設定", + "showAllZones": { + "title": "すべてのゾーンを表示", + "desc": "オブジェクトがゾーンに入ったフレームでは常にゾーンを表示します。" + }, + "offset": { + "label": "注釈オフセット", + "millisecondsToOffset": "検出アノテーションをオフセットするミリ秒数です。デフォルト: 0", + "toast": { + "success": "{{camera}} のアノテーションオフセットが設定ファイルに保存されました。" + }, + "desc": "このデータはカメラの detect ストリーム から取得されていますが、表示される画像自体は record ストリーム のものです。そのため、2 つのストリームが完全に同期している可能性は低く、バウンディングボックスと実際の映像が正確に一致しない場合があります。この設定を使用すると、注釈(アノテーション)を 時間的に前後へオフセット することができ、録画映像との位置合わせをより正確に行えます。", + "tips": "映像の再生がバウンディングボックスや軌跡ポイントより先行している場合は値を小さくし、遅れている場合は値を大きくしてください。この値は負の値も指定できます。" + } + }, + "carousel": { + "previous": "前のスライド", + "next": "次のスライド" + } } } diff --git a/web/public/locales/ja/views/exports.json b/web/public/locales/ja/views/exports.json index b5107f475..3e8ce14d4 100644 --- a/web/public/locales/ja/views/exports.json +++ b/web/public/locales/ja/views/exports.json @@ -13,5 +13,11 @@ "error": { "renameExportFailed": "書き出し名の変更に失敗しました: {{errorMessage}}" } + }, + "tooltip": { + "shareExport": "エクスポートを共有", + "downloadVideo": "動画をダウンロード", + "editName": "名前を編集", + "deleteExport": "エクスポートを削除" } } diff --git a/web/public/locales/ja/views/faceLibrary.json b/web/public/locales/ja/views/faceLibrary.json index f82b4e764..5b9392caf 100644 --- a/web/public/locales/ja/views/faceLibrary.json +++ b/web/public/locales/ja/views/faceLibrary.json @@ -2,7 +2,7 @@ "description": { "placeholder": "このコレクションの名前を入力", "addFace": "最初の画像をアップロードして、フェイスライブラリに新しいコレクションを追加してください。", - "invalidName": "無効な名前です。名前に使用できるのは英数字、スペース、アポストロフィ、アンダースコア、ハイフンのみです。" + "invalidName": "無効な名前です。使用できるのは、英数字、空白、アポストロフィ、アンダースコア、ハイフンのみです。" }, "details": { "person": "人物", @@ -23,7 +23,7 @@ "title": "コレクションを作成", "desc": "新しいコレクションを作成", "new": "新しい顔を作成", - "nextSteps": "強固な基盤を作るために:
  • [学習]タブで各人物に対して画像を選択し学習させてください。
  • 最良の結果のため、正面を向いた画像に集中し、斜めからの顔画像は学習に使わないでください。
  • " + "nextSteps": "強固な基盤を作るために:
  • [過去の学習]タブで各人物に対して画像を選択し学習させてください。
  • 最良の結果のため、正面を向いた画像に集中し、斜めからの顔画像は学習に使わないでください。
  • " }, "selectItem": "{{item}} を選択", "steps": { @@ -35,9 +35,10 @@ } }, "train": { - "title": "学習", - "aria": "学習を選択", - "empty": "最近の顔認識の試行はありません" + "title": "過去の学習", + "aria": "過去の学習を選択", + "empty": "最近の顔認識の試行はありません", + "titleShort": "Classifications,最近の分類結果を選択,,False,train.aria,," }, "selectFace": "顔を選択", "deleteFaceLibrary": { @@ -80,7 +81,7 @@ "deletedName_other": "{{count}} 件の顔を削除しました。", "renamedFace": "顔の名前を {{name}} に変更しました", "trainedFace": "顔の学習が完了しました。", - "updatedFaceScore": "顔のスコアを更新しました。" + "updatedFaceScore": "顔のスコアを {{name}} ({{score}})に更新しました。" }, "error": { "uploadingImageFailed": "画像のアップロードに失敗しました: {{errorMessage}}", diff --git a/web/public/locales/ja/views/live.json b/web/public/locales/ja/views/live.json index cfcd5739d..f88901ab8 100644 --- a/web/public/locales/ja/views/live.json +++ b/web/public/locales/ja/views/live.json @@ -172,7 +172,11 @@ "noCameras": { "title": "カメラが設定されていません", "buttonText": "カメラを追加", - "description": "開始するには、カメラを接続してください。" + "description": "開始するには、Frigateにカメラを接続してください。", + "restricted": { + "title": "利用可能なカメラがありません", + "description": "このグループ内のカメラを表示する権限がありません。" + } }, "snapshot": { "takeSnapshot": "即時スナップショットをダウンロード", diff --git a/web/public/locales/ja/views/search.json b/web/public/locales/ja/views/search.json index d5be5ed30..540606c83 100644 --- a/web/public/locales/ja/views/search.json +++ b/web/public/locales/ja/views/search.json @@ -26,7 +26,8 @@ "max_speed": "最大速度", "recognized_license_plate": "認識されたナンバープレート", "has_clip": "クリップあり", - "has_snapshot": "スナップショットあり" + "has_snapshot": "スナップショットあり", + "attributes": "属性" }, "searchType": { "thumbnail": "サムネイル", diff --git a/web/public/locales/ja/views/settings.json b/web/public/locales/ja/views/settings.json index 000aac898..5c36b1919 100644 --- a/web/public/locales/ja/views/settings.json +++ b/web/public/locales/ja/views/settings.json @@ -7,7 +7,7 @@ "masksAndZones": "マスク/ゾーンエディタ - Frigate", "motionTuner": "モーションチューナー - Frigate", "object": "デバッグ - Frigate", - "general": "一般設定 - Frigate", + "general": "UI設定 - Frigate", "frigatePlus": "Frigate+ 設定 - Frigate", "notifications": "通知設定 - Frigate", "cameraManagement": "カメラ設定 - Frigate", @@ -39,7 +39,7 @@ "noCamera": "カメラなし" }, "general": { - "title": "一般設定", + "title": "UI設定", "liveDashboard": { "title": "ライブダッシュボード", "automaticLiveView": { @@ -49,6 +49,14 @@ "playAlertVideos": { "label": "アラート動画を再生", "desc": "既定では、ライブダッシュボードの最近のアラートは小さなループ動画として再生されます。無効にすると、最近のアラートはこのデバイス/ブラウザでは静止画像のみ表示されます。" + }, + "displayCameraNames": { + "label": "常にカメラ名を表示", + "desc": "マルチカメラのライブビュー ダッシュボードで、カメラ名を常にチップ表示します。" + }, + "liveFallbackTimeout": { + "label": "ライブプレイヤーのフォールバック タイムアウト", + "desc": "カメラの高画質ライブストリームが利用できない場合、指定した秒数後に低帯域モードへ切り替えます。デフォルト:3 秒" } }, "storedLayouts": { @@ -239,7 +247,8 @@ "mustNotBeSameWithCamera": "ゾーン名はカメラ名と同一にできません。", "alreadyExists": "この名前のゾーンはこのカメラに既に存在します。", "mustNotContainPeriod": "ゾーン名にピリオドは使用できません。", - "hasIllegalCharacter": "ゾーン名に不正な文字が含まれています。" + "hasIllegalCharacter": "ゾーン名に不正な文字が含まれています。", + "mustHaveAtLeastOneLetter": "ゾーン名には少なくとも 1 文字が必要です。" } }, "distance": { @@ -296,7 +305,7 @@ "name": { "title": "名称", "inputPlaceHolder": "名前を入力…", - "tips": "名前は2文字以上、かつカメラ名や他のゾーン名と重複しない必要があります。" + "tips": "名前は2文字以上で、少なくとも1文字のアルファベットを含み、このカメラ上の他のゾーン名やカメラ名と同一であってはなりません。" }, "inertia": { "title": "慣性", @@ -330,7 +339,7 @@ } }, "toast": { - "success": "ゾーン({{zoneName}})を保存しました。変更を適用するには Frigate を再起動してください。" + "success": "ゾーン({{zoneName}})を保存しました。" } }, "motionMasks": { @@ -353,8 +362,8 @@ }, "toast": { "success": { - "title": "{{polygonName}} を保存しました。変更を適用するには Frigate を再起動してください。", - "noName": "モーションマスクを保存しました。変更を適用するには Frigate を再起動してください。" + "title": "{{polygonName}} を保存しました。", + "noName": "モーションマスクを保存しました。" } } }, @@ -377,8 +386,8 @@ }, "toast": { "success": { - "title": "{{polygonName}} を保存しました。変更を適用するには Frigate を再起動してください。", - "noName": "オブジェクトマスクを保存しました。変更を適用するには Frigate を再起動してください。" + "title": "{{polygonName}} を保存しました。", + "noName": "オブジェクトマスクを保存しました。" } } } @@ -472,7 +481,7 @@ "desc": "この Frigate インスタンスのユーザーアカウントを管理します。" }, "addUser": "ユーザーを追加", - "updatePassword": "パスワードを更新", + "updatePassword": "パスワードをリセット", "toast": { "success": { "createUser": "ユーザー {{user}} を作成しました", @@ -493,7 +502,7 @@ "role": "ロール", "noUsers": "ユーザーが見つかりません。", "changeRole": "ユーザーロールを変更", - "password": "パスワード", + "password": "パスワードをリセット", "deleteUser": "ユーザーを削除" }, "dialog": { @@ -518,7 +527,16 @@ "veryStrong": "非常に強い" }, "match": "パスワードが一致しています", - "notMatch": "パスワードが一致しません" + "notMatch": "パスワードが一致しません", + "show": "パスワードを表示", + "hide": "パスワードを非表示", + "requirements": { + "title": "パスワード要件:", + "length": "8 文字以上", + "uppercase": "大文字を 1 文字以上含める", + "digit": "数字を 1 文字以上含める", + "special": "少なくとも 1 つの特殊文字(!@#$%^&*(),.?”:{}|<>)が必要です" + } }, "newPassword": { "title": "新しいパスワード", @@ -528,7 +546,11 @@ } }, "usernameIsRequired": "ユーザー名は必須です", - "passwordIsRequired": "パスワードは必須です" + "passwordIsRequired": "パスワードは必須です", + "currentPassword": { + "title": "現在のパスワード", + "placeholder": "現在のパスワードを入力" + } }, "createUser": { "title": "新規ユーザーを作成", @@ -546,7 +568,12 @@ "doNotMatch": "パスワードが一致しません", "updatePassword": "{{username}} のパスワードを更新", "setPassword": "パスワードを設定", - "desc": "強力なパスワードを作成して、このアカウントを保護してください。" + "desc": "強力なパスワードを作成して、このアカウントを保護してください。", + "currentPasswordRequired": "現在のパスワードは必須です", + "incorrectCurrentPassword": "現在のパスワードが正しくありません", + "passwordVerificationFailed": "パスワードの確認に失敗しました", + "multiDeviceWarning": "他のログイン中のデバイスは {{refresh_time}} 以内に再ログインが必要になります。", + "multiDeviceAdmin": "JWT シークレットをローテーションすることで、すべてのユーザーに即時再認証を強制することもできます。" }, "changeRole": { "title": "ユーザーロールを変更", @@ -722,7 +749,7 @@ "triggers": { "documentTitle": "トリガー", "management": { - "title": "トリガー管理", + "title": "トリガー", "desc": "{{camera}} のトリガーを管理します。サムネイルタイプでは、選択した追跡オブジェクトに類似するサムネイルでトリガーし、説明タイプでは、指定したテキストに類似する説明でトリガーします。" }, "addTrigger": "トリガーを追加", @@ -743,7 +770,9 @@ }, "actions": { "alert": "アラートとしてマーク", - "notification": "通知を送信" + "notification": "通知を送信", + "sub_label": "サブラベルを追加", + "attribute": "属性を追加" }, "dialog": { "createTrigger": { @@ -763,23 +792,26 @@ "title": "名称", "placeholder": "トリガー名を入力", "error": { - "minLength": "名称は2文字以上である必要があります。", - "invalidCharacters": "名称に使用できるのは英数字、アンダースコア、ハイフンのみです。", + "minLength": "この項目は2文字以上で入力してください。", + "invalidCharacters": "このフィールドに使用できるのは英数字、アンダースコア、ハイフンのみです。", "alreadyExists": "このカメラには同名のトリガーが既に存在します。" - } + }, + "description": "このトリガーを識別するための一意の名前または説明を入力してください" }, "enabled": { "description": "このトリガーを有効/無効にする" }, "type": { "title": "タイプ", - "placeholder": "トリガータイプを選択" + "placeholder": "トリガータイプを選択", + "description": "類似した追跡オブジェクトの説明が検出されたときにトリガー", + "thumbnail": "類似した追跡オブジェクトのサムネイルが検出されたときにトリガー" }, "content": { "title": "コンテンツ", - "imagePlaceholder": "画像を選択", + "imagePlaceholder": "サムネイルを選択", "textPlaceholder": "テキストを入力", - "imageDesc": "類似画像が検出されたときにこのアクションをトリガーするための画像を選択します。", + "imageDesc": "最新のサムネイル100件のみが表示されます。目的のサムネイルが見つからない場合は、探索で過去のオブジェクトを確認し、そこのメニューからトリガーを設定してください。", "textDesc": "類似する追跡オブジェクトの説明が検出されたときにこのアクションをトリガーするためのテキストを入力します。", "error": { "required": "コンテンツは必須です。" @@ -790,11 +822,12 @@ "error": { "min": "しきい値は 0 以上である必要があります", "max": "しきい値は 1 以下である必要があります" - } + }, + "desc": "このトリガーの類似度しきい値を設定します。値が高いほど、より近い一致が必要になります。" }, "actions": { "title": "アクション", - "desc": "既定では、すべてのトリガーに対して MQTT メッセージが送信されます。必要に応じて、トリガー時に実行する追加アクションを選択してください。", + "desc": "デフォルトでは、Frigate はすべてのトリガーに対して MQTT メッセージを送信します。サブラベルは、トリガー名をオブジェクトのラベルに追加します。属性(Attributes)は、追跡オブジェクトのメタデータとは別に保存される検索可能なメタデータです。", "error": { "min": "少なくとも1つのアクションを選択してください。" } @@ -821,12 +854,29 @@ "semanticSearch": { "desc": "トリガーを使用するにはセマンティック検索を有効にする必要があります。", "title": "セマンティック検索が無効です" + }, + "wizard": { + "title": "トリガーを作成", + "step1": { + "description": "トリガーの基本設定を構成します。" + }, + "step2": { + "description": "このアクションをトリガーする内容を設定します。" + }, + "step3": { + "description": "このトリガーのしきい値とアクションを設定します。" + }, + "steps": { + "nameAndType": "名前と種類", + "configureData": "データを設定", + "thresholdAndActions": "しきい値とアクション" + } } }, "cameraWizard": { "step3": { "saveAndApply": "新しいカメラを保存", - "description": "保存前の最終検証と解析。保存する前に各ストリームを接続してください。", + "description": "カメラのストリームの役割を設定し、必要に応じてストリームを追加します。", "validationTitle": "ストリーム検証", "connectAllStreams": "すべてのストリームを接続", "reconnectionSuccess": "再接続に成功しました。", @@ -862,6 +912,43 @@ "dahua": { "substreamWarning": "サブストリーム1は低解像度に固定されています。多くの Dahua/Amcrest/EmpireTech 製カメラでは、追加のサブストリームが利用可能であり、カメラ本体の設定で有効化する必要があります。使用できる場合は、それらのストリームを確認して活用することを推奨します。" } + }, + "streamsTitle": "カメラ ストリーム", + "addStream": "ストリームを追加", + "addAnotherStream": "別のストリームを追加", + "streamUrl": "ストリーム URL", + "streamUrlPlaceholder": "rtsp://ユーザー名:パスワード@ホスト:ポート/パス", + "selectStream": "ストリームを選択", + "searchCandidates": "候補を検索…", + "noStreamFound": "ストリームが見つかりません", + "url": "URL", + "resolution": "解像度", + "selectResolution": "解像度を選択", + "quality": "品質", + "selectQuality": "品質を選択", + "roleLabels": { + "detect": "オブジェクト検出", + "record": "録画", + "audio": "音声" + }, + "testStream": "接続をテスト", + "testSuccess": "ストリーム テスト成功!", + "testFailed": "ストリーム テスト失敗", + "testFailedTitle": "テスト失敗", + "connected": "接続済み", + "notConnected": "未接続", + "featuresTitle": "機能", + "go2rtc": "カメラへの接続数を削減", + "detectRoleWarning": "続行するには、少なくとも 1 つのストリームに「検出」ロールが必要です。", + "rolesPopover": { + "title": "ストリーム ロール", + "detect": "オブジェクト検出用のメイン フィードです。", + "record": "設定に基づいて映像フィードのセグメントを保存します。", + "audio": "音声ベース検出用のフィードです。" + }, + "featuresPopover": { + "title": "ストリーム機能", + "description": "go2rtc の再配信を使用してカメラへの接続数を削減します。" } }, "title": "カメラを追加", @@ -869,7 +956,8 @@ "steps": { "nameAndConnection": "名称と接続", "streamConfiguration": "ストリーム設定", - "validationAndTesting": "検証とテスト" + "validationAndTesting": "検証とテスト", + "probeOrSnapshot": "プローブまたはスナップショット" }, "save": { "success": "新しいカメラ {{cameraName}} を保存しました。", @@ -886,7 +974,7 @@ "testFailed": "ストリームテストに失敗しました: {{error}}" }, "step1": { - "description": "カメラの詳細を入力し、接続テストを実行します。", + "description": "カメラの詳細を入力し、カメラを自動検出するか、メーカーを手動で選択してください。", "cameraName": "カメラ名", "cameraNamePlaceholder": "例: front_door または Back Yard Overview", "host": "ホスト/IP アドレス", @@ -917,14 +1005,24 @@ "nameExists": "このカメラ名は既に存在します", "brands": { "reolink-rtsp": "Reolink の RTSP は推奨されません。カメラ設定で http を有効にし、カメラウィザードを再起動することを推奨します。" - } + }, + "customUrlRtspRequired": "カスタム URL は「rtsp://」で始まる必要があります。非 RTSP カメラ ストリームの場合は手動構成が必要です。" }, "docs": { "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras" - } + }, + "connectionSettings": "接続設定", + "detectionMethod": "ストリーム検出方法", + "onvifPort": "ONVIF ポート", + "probeMode": "カメラをプローブ", + "manualMode": "手動選択", + "useDigestAuth": "ダイジェスト認証を使用", + "useDigestAuthDescription": "ONVIF に HTTP ダイジェスト認証を使用します。一部のカメラでは、通常の管理者ユーザーではなく専用の ONVIF ユーザー名/パスワードが必要な場合があります。", + "detectionMethodDescription": "(対応している場合)ONVIF を使用してカメラを自動設定し、カメラのストリーム URL を検出するか、カメラのブランドを手動で選択して事前定義された URL を使用します。カスタム RTSP URL を入力する場合は、手動設定を選択し、「その他」を選んでください。", + "onvifPortDescription": "ONVIF に対応しているカメラの場合、通常は 80 または 8080 です。" }, "step2": { - "description": "ストリームのロールを設定し、必要に応じて追加ストリームを登録します。", + "description": "選択した検出方法に応じて、カメラから利用可能なストリームを自動検出するか、手動で設定してください。", "streamsTitle": "カメラストリーム", "addStream": "ストリームを追加", "addAnotherStream": "ストリームをさらに追加", @@ -943,8 +1041,8 @@ "audio": "音声" }, "testStream": "接続テスト", - "testSuccess": "ストリームテストに成功しました!", - "testFailed": "ストリームテストに失敗しました", + "testSuccess": "接続テストに成功しました!", + "testFailed": "接続テストに失敗しました。入力を確認し、もう一度実行してください。", "testFailedTitle": "テスト失敗", "connected": "接続済み", "notConnected": "未接続", @@ -960,7 +1058,87 @@ "featuresPopover": { "title": "ストリーム機能", "description": "go2rtc のリストリーミングを使用してカメラへの接続数を削減します。" - } + }, + "streamDetails": "ストリームの詳細", + "probing": "カメラをプローブ中…", + "retry": "再試行", + "testing": { + "probingMetadata": "カメラのメタデータを取得中…", + "fetchingSnapshot": "カメラのスナップショットを取得中…" + }, + "probeFailed": "カメラのプローブに失敗しました: {{error}}", + "probingDevice": "デバイスをプローブ中…", + "probeSuccessful": "プローブ成功", + "probeError": "プローブ エラー", + "probeNoSuccess": "プローブ失敗", + "deviceInfo": "デバイス情報", + "manufacturer": "メーカー", + "model": "モデル", + "firmware": "ファームウェア", + "profiles": "プロファイル", + "ptzSupport": "PTZ 対応", + "autotrackingSupport": "自動追跡対応", + "presets": "プリセット", + "rtspCandidates": "RTSP 候補", + "rtspCandidatesDescription": "カメラのプローブから以下の RTSP URL が見つかりました。接続をテストしてストリームのメタデータを確認してください。", + "candidateStreamTitle": "候補 {{number}}", + "useCandidate": "使用", + "uriCopy": "コピー", + "uriCopied": "URI をクリップボードにコピーしました", + "testConnection": "接続をテスト", + "toggleUriView": "クリックして URI の全表示を切り替え", + "errors": { + "hostRequired": "ホスト/IP アドレスは必須です" + }, + "noRtspCandidates": "カメラから RTSP URL を取得できませんでした。認証情報が正しくないか、カメラが ONVIF に対応していない、または RTSP URL を取得する方法がサポートされていない可能性があります。RTSP URL を手動で入力してください。" + }, + "step4": { + "description": "新しいカメラを保存する前の最終検証と分析です。保存前に各ストリームを接続してください。", + "validationTitle": "ストリーム検証", + "connectAllStreams": "すべてのストリームを接続", + "reconnectionSuccess": "再接続に成功しました。", + "reconnectionPartial": "一部のストリームで再接続に失敗しました。", + "streamUnavailable": "ストリームのプレビューを表示できません", + "reload": "再読み込み", + "connecting": "接続中…", + "streamTitle": "ストリーム {{number}}", + "valid": "有効", + "failed": "失敗", + "notTested": "未テスト", + "connectStream": "接続", + "connectingStream": "接続中", + "disconnectStream": "切断", + "estimatedBandwidth": "推定帯域幅", + "roles": "ロール", + "ffmpegModule": "ストリーム互換モードを使用", + "none": "なし", + "error": "エラー", + "streamValidated": "ストリーム {{number}} の検証に成功しました", + "streamValidationFailed": "ストリーム {{number}} の検証に失敗しました", + "saveAndApply": "新しいカメラを保存", + "saveError": "無効な設定です。設定を確認してください。", + "issues": { + "title": "ストリーム検証", + "videoCodecGood": "ビデオ コーデックは {{codec}} です。", + "audioCodecGood": "オーディオ コーデックは {{codec}} です。", + "resolutionHigh": "解像度 {{resolution}} はリソース使用量が増加する可能性があります。", + "resolutionLow": "解像度 {{resolution}} は小さなオブジェクトを確実に検出するには低すぎる可能性があります。", + "audioCodecRecordError": "録画で音声をサポートするには AAC オーディオ コーデックが必要です。", + "audioCodecRequired": "音声検出をサポートするには音声ストリームが必要です。", + "restreamingWarning": "録画用ストリームでカメラへの接続数を削減すると、CPU 使用率がわずかに増加する場合があります。", + "brands": { + "reolink-rtsp": "Reolink の RTSP は推奨されません。カメラのファームウェア設定で HTTP を有効にし、ウィザードを再起動してください。", + "reolink-http": "Reolink の HTTP ストリームは互換性向上のため FFmpeg を使用してください。このストリームで「ストリーム互換モードを使用」を有効にしてください。" + }, + "dahua": { + "substreamWarning": "サブストリーム 1 は低解像度に固定されています。多くの Dahua / Amcrest / EmpireTech カメラは追加のサブストリームをサポートしており、カメラ設定で有効化する必要があります。利用可能であればそれらのストリームを使用することを推奨します。" + }, + "hikvision": { + "substreamWarning": "サブストリーム 1 は低解像度に固定されています。多くの Hikvision カメラは追加のサブストリームをサポートしており、カメラ設定で有効化する必要があります。利用可能であればそれらのストリームを使用することを推奨します。" + }, + "noAudioWarning": "このストリームでは音声が検出されていません。録画には音声が含まれません。" + }, + "ffmpegModuleDescription": "何度か試してもストリームが読み込まれない場合は、このオプションを有効にしてください。有効にすると、Frigate は go2rtc と併用して ffmpeg モジュールを使用します。一部のカメラストリームでは、互換性が向上する場合があります。" } }, "cameraManagement": { diff --git a/web/public/locales/ja/views/system.json b/web/public/locales/ja/views/system.json index da57fa7c3..222b65b3c 100644 --- a/web/public/locales/ja/views/system.json +++ b/web/public/locales/ja/views/system.json @@ -76,7 +76,12 @@ } }, "npuUsage": "NPU 使用率", - "npuMemory": "NPU メモリ" + "npuMemory": "NPU メモリ", + "intelGpuWarning": { + "title": "Intel GPU 統計情報の警告", + "message": "GPU の統計情報を取得できません", + "description": "これは Intel の GPU 統計取得ツール(intel_gpu_top)における既知の不具合です。ハードウェアアクセラレーションやオブジェクト検出が (i)GPU 上で正しく動作している場合でも、GPU 使用率が 0% と繰り返し表示されることがあります。これは Frigate の不具合ではありません。ホストを再起動することで一時的に解消し、GPU が正常に動作していることを確認できます。本問題はパフォーマンスには影響しません。" + } }, "otherProcesses": { "title": "その他のプロセス", @@ -180,7 +185,17 @@ "plate_recognition_speed": "ナンバープレート認識速度", "text_embedding_speed": "テキスト埋め込み速度", "yolov9_plate_detection_speed": "YOLOv9 ナンバープレート検出速度", - "yolov9_plate_detection": "YOLOv9 ナンバープレート検出" - } + "yolov9_plate_detection": "YOLOv9 ナンバープレート検出", + "review_description": "レビュー説明", + "review_description_speed": "レビュー説明の処理速度", + "review_description_events_per_second": "レビュー説明", + "object_description": "オブジェクト説明", + "object_description_speed": "オブジェクト説明の処理速度", + "object_description_events_per_second": "オブジェクト説明", + "classification": "{{name}} の分類", + "classification_speed": "{{name}} 分類の処理速度", + "classification_events_per_second": "{{name}} 分類の毎秒イベント数" + }, + "averageInf": "平均推論時間" } }