// Japanese translations
window.LANG_JA = {
  // Common
  common: {
    save: "保存",
    cancel: "キャンセル",
    confirm: "確認",
    loading: "読み込み中...",
    success: "成功",
    failed: "失敗",
    delete: "削除",
    edit: "編集",
    add: "追加",
    enable: "有効",
    disable: "無効",
    enabled: "有効",
    disabled: "無効",
    yes: "はい",
    no: "いいえ",
    on: "オン",
    off: "オフ",
    apply: "適用",
    reset: "リセット",
    refresh: "更新",
    close: "閉じる",
    back: "戻る",
    next: "次へ",
    previous: "前へ",
    submit: "送信",
    action: "操作",
    chinese: "中文",
    traditionalChinese: "繁體中文",
    english: "English",
    spanish: "Español",
    japanese: "日本語",
    korean: "한국어",
    german: "Deutsch",
    french: "Français",
    portuguese: "Português",
    russian: "Русский",
    italian: "Italiano",
    turkish: "Türkçe",
    continue: "続行",
    copy: "コピー",
    copied: "コピー済み"
  },

  preview: {
    flvRequired: "FLVストリームを有効にしてください。",
    flvOrHlsRequired: "FLVまたはHLSのライブストリームを少なくとも1つ有効にしてください。",
    hlsUnsupportedEnableFlv: "このブラウザはHLSプレビューに対応していません。FLVストリームを有効にしてください。"
  },

  play: {
    mainFlvRequired: "メインストリームのFLVを有効にする必要があります",
    browserFlvUnsupported: "このブラウザはFLV再生に対応していません。Chrome、Edge、Firefoxなどの最新ブラウザを使用してください"
  },

  // Page titles
  title: {
    encoder: "H.265/H.264 エンコーダー",
    status: "ステータス",
    mainStream: "メインストリーム",
    subStream1: "サブストリーム1",
    subStream2: "サブストリーム2",
    subStream3: "サブストリーム3",
    videoSettings: "映像設定",
    audioSettings: "音声設定",
    advancedSettings: "詳細設定",
    osdMain: "OSD - メインストリーム",
    osdSub1: "OSD - サブストリーム1",
    osdSub2: "OSD - サブストリーム2",
    osdSub3: "OSD - サブストリーム3",
    logoUpload: "ロゴアップロード",
    network: "ネットワーク設定",
    record: "録画設定",
    gb28181: "GB28181",
    wifi: "WIFI設定",
    g4: "4G/5G設定",
    password: "パスワード設定",
    serial: "シリアル転送",
    update: "アップグレードとバックアップ",
    reboot: "再起動",
    timedReboot: "定時再起動",
    factoryReset: "工場出荷時設定に戻す",
    recordFiles: "録画ファイル",
    netTest: "ネットワークテスト",
    recordSet: "録画設定"
  },

  // Menu
  menu: {
    status: "ステータス",
    encoder: "エンコーダー",
    mainStream: "メインストリーム",
    subStream1: "サブストリーム1",
    subStream2: "サブストリーム2",
    subStream3: "サブストリーム3",
    videoSettings: "映像設定",
    audioSettings: "音声設定",
    advancedSettings: "詳細設定",
    osd: "OSD",
    logoUpload: "ロゴアップロード",
    system: "システム",
    network: "ネットワーク",
    record: "録画",
    gb28181: "GB28181",
    wifi: "WIFI",
    g4: "4G/5G",
    password: "パスワード",
    serial: "シリアル転送",
    update: "アップグレードとバックアップ",
    reboot: "再起動",
    timedReboot: "定時再起動",
    factoryReset: "工場出荷時設定に戻す"
  },

  // Status page
  status: {
    // Device status
    deviceStatus: "デバイスステータス",
    runningTime: "稼働時間：",
    runtimeDayWithTime: "{0}日 {1}",
    deviceTime: "デバイス時刻：",
    syncTime: "（デバイスに時刻同期）",
    cpuUsage: "CPU使用率：",
    cpuTemp: "CPU温度：",
    memoryUsage: "メモリ使用率：",
    encPpsUsage: "エンコードリソース使用率：",
    memoryWarning: "（起動後1分経ってもメモリ使用率が高い場合は、一部のHLSストリームを無効にするかビットレートを下げてください）",
    cpuWarning: "（CPU使用率が85%以上の場合は、一部のストリームを無効にするかサブストリームの解像度を下げてください）",
    networkStatus: "ネットワーク状態：",
    inputVideo: "入力映像：",
    vgaAutoAdjust: "（VGA自動調整）",
    capturedFrames: "キャプチャした映像フレーム：",
    lostFrames: "ロストした映像フレーム：",
    audioSampleRate: "入力音声サンプルレート：",
    capturedAudioFrames: "キャプチャした音声フレーム：",
    packetsSent: "送信パケット：",
    netTestLink: "（ネットワークテスト＆システムログ）",
    packetsDropped: "ドロップしたパケット：",
    canAccessInternet: "インターネット接続可能",
    canAccessInternetIP: "インターネットIP接続可能",
    lanOnly: "LANのみ",
    localNetwork: "ローカルネットワーク",

    // Recording status
    recordStatus: "録画ステータス",
    recordType: "録画タイプ：",
    diskStatus: "ディスク状態：",
    diskNotExist: "未検出",
    mountStatus: "マウント状態：",
    notMounted: "未マウント",
    mounted: "マウント済み",
    totalSpace: "総容量：",
    freeSpace: "空き容量：",
    recordingStatus: "録画状態：",
    diskFull: "ディスク満杯",
    diskSlow: "ディスク速度不足",
    recordFileList: "録画ファイル一覧",
    notRecording: "録画停止中",
    recording: "録画中",
    recordingNoVideo: "（映像入力がない場合、ファイルが保存されない可能性があります）",
    startRecord: "（録画開始）",
    stopRecord: "（録画停止）",
    usbTfCard: "USB/TFカード",

    // DHCP status
    dhcpStatus: "DHCPステータス",
    ip: "IP：",
    subnetMask: "サブネットマスク：",
    gateway: "ゲートウェイ：",

    // WIFI status
    wifiStatus: "WIFIステータス",
    wifiDisabled: "WIFI：無効",
    wifiState: "WIFI状態：",
    wifiSSID: "WIFI SSID：",
    wifiIP: "WIFI IP：",
    wifiMAC: "WIFI MAC：",
    wifiRSSI: "WIFI信号（RSSI）：",
    wifiFreq: "WIFI周波数：",
    wifiConnected: "接続済み",
    wifiDisconnected: "切断",
    wifiConnecting: "接続中（接続に時間がかかる場合は、WIFI設定を確認してください）",

    // 4G/5G status
    g4Status: "4G/5Gステータス",
    g4Disabled: "4G/5G：無効",
    status: "状態：",
    imei: "IMEI：",
    mode: "モード：",
    signalStrength: "信号強度：",
    noSignal: "信号なし",
    gpsTime: "GPS時刻：",
    gpsLocation: "GPS位置：",
    gpsHeight: "GPS高度：",
    onlineTime: "オンライン時間：",
    receivedBytes: "受信：",
    sentBytes: "送信：",
    g4Connected: "接続済み",
    g4Connecting: "接続中",
    g4Disconnected: "切断",
    timeHour: "時間",
    timeMinute: "分",
    timeSecond: "秒",

    // Streams
    mainStream: "メインストリーム",
    subStream1: "サブストリーム1",
    subStream2: "サブストリーム2",
    subStream3: "サブストリーム3",
    streamDisabled: "無効（メインストリームのフレームレートが31-60fpsの場合、サブストリームは無効になります）",
    codecType: "コーデック：",
    encodeResolution: "エンコード解像度：",
    videoBitrate: "映像ビットレート：",
    realTimeBitrate: "リアルタイムビットレート：",
    realTimeFps: "リアルタイムFPS：",
    videoEncoded: "エンコード済み映像：",
    reconnect: "（再接続）",
	    previewWebRTC: "映像プレビュー（WebRTC）",
	    previewHTML5: "映像プレビュー（HTML5）",

    // URL related
    disabled: "無効",
    connected: "接続済み",
    disconnected: "切断",
    bufferPackets: "バッファパケット",
    bufferPacketsLabel: "バッファパケット：",
    pushSpeed: "プッシュ速度",
    pushSpeedLabel: "プッシュ速度：",
    pushed: "プッシュ済み",
    pushedLabel: "プッシュ済み：",
    memoryUsed: "使用メモリ",
    memoryUsedLabel: "使用メモリ：",
    cacheFiles: "キャッシュファイル",
    cacheFilesLabel: "キャッシュファイル：",
    multicastUrl: "マルチキャストURL：",
    mjpgUrl: "MJPGストリームURL：",
    jpgUrl: "JPGストリームURL：",
    tsUrl: "TSストリームURL：",
    flvUrl: "FLVストリームURL：",
    hlsTsUrl: "HLS TSストリームURL：",
    hlsMp4Url: "HLS MP4ストリームURL：",
    mp4Url: "MP4ストリームURL：",
    rtspUrl: "RTSPストリームURL：",
    rtmpUrl: "RTMPストリームURL：",
    srtListenerUrl: "SRTリスナーURL：",
    webrtcP2pUrl: "WebRTC P2PストリームURL：",
    rtmpPushUrlAny: "RTMP(S)/RTSP配信URL {0}：",
    rtmpPushUrlAny0: "RTMP(S)/RTSP配信URL 0：",
    rtmpPushUrlAny1: "RTMP(S)/RTSP配信URL 1：",
    rtmpPushUrlAny2: "RTMP(S)/RTSP配信URL 2：",
    rtmpPushUrl: "RTMP(S)配信URL {0}：",
    rtspPushUrl: "RTSP配信URL {0}：",
    srtCallerUrl: "SRTコーラーURL：",
    hlsPushUrl: "HLS配信URL：",
    icecastPushUrl: "ICECAST配信URL：",
    shoutcastPushUrl: "Shoutcast配信URL：",
    whipLabel: "WHIP：",
    viewers: "視聴者数",
    viewersLabel: "視聴者数：",

    // TRTC status
    trtcRoomId: "TRTCルームID：",
    inRoom: "ルーム内",
    notInRoom: "ルーム外",
    initializingServer: "サーバー接続初期化中",
    serverDisconnected: "サーバー切断",
    connectingServer: "サーバーに接続中",
    serverConnected: "サーバー接続済み",
    networkUnknown: "ネットワーク状態不明",
    networkExcellent: "ネットワーク優良",
    networkGood: "ネットワーク良好",
    networkNormal: "ネットワーク普通",
    networkPoor: "ネットワーク不良",
    networkBad: "ネットワーク劣悪",
    networkNotMeet: "ネットワークがTRTCの最小要件を満たしていません",
    errorCode: "エラーコード",
    errorCodeLabel: "エラーコード：",
    trtcError1: "一般エラー、ログファイルを確認してください",
    trtcError100: "ビジネスロジックエラー：不正な呼び出し",
    trtcError101: "ビジネスロジックエラー：不正なパラメータ",
    trtcError102: "現在読み取れません、再試行してください",
    trtcError103: "ネットワークに接続できません",
    trtcError200: "入室失敗",
    trtcError201: "user_sigパラメータが無効です",
    trtcError202: "ルームIDの形式が無効です",
    trtcError203: "sdk_app_idが無効です",
    trtcError204: "サービスが利用できません。パッケージ残り分数が0より大きいか、Tencent Cloudアカウントが未払いでないか確認してください",
    trtcError205: "サーバーによりルームから退出させられました",

    // WHIP status
    whipInitializing: "初期化中",
    whipConnected: "接続済み",
    whipDisconnected: "切断",
    whipUnknown: "不明な状態",

    // GB28181
    gb28181: "GB28181：",
    gb28181Online: "オンライン",
    gb28181Offline: "オフライン"
  },

  // Reboot page
  reboot: {
    title: "再起動",
    description: "このボタンをクリックするとエンコーダーを再起動します。",
    button: "再起動",
    success: "再起動コマンドを送信しました！",
    failed: "再起動に失敗しました！",
    confirm: "デバイスを再起動してもよろしいですか？"
  },

  // Factory reset page
  reset: {
    title: "工場出荷時設定に戻す",
    description: "このボタンをクリックすると、エンコーダーの全設定を工場出荷時のデフォルト状態に復元します。",
    button: "リセット",
    success: "工場出荷時設定への復元に成功しました！システムは自動的に再起動します。しばらくお待ちください。",
    failed: "工場出荷時設定への復元に失敗しました！",
    confirm: "工場出荷時設定に復元してもよろしいですか？"
  },

  // Scheduled reboot page
  timedReboot: {
    title: "定時再起動",
    enable: "定時再起動",
    enableLabel: "定時再起動：",
    timeLabel: "再起動時刻：",
    enabled: "有効",
    disabled: "無効",
    time: "再起動時刻",
    weekdays: "再起動曜日",
    everyday: "毎日",
    monday: "月曜日",
    tuesday: "火曜日",
    wednesday: "水曜日",
    thursday: "木曜日",
    friday: "金曜日",
    saturday: "土曜日",
    sunday: "日曜日",
    save: "保存",
    saveSuccess: "設定を保存しました！",
    saveFailed: "設定に失敗しました！",
    invalidTime: "時刻の値が無効です！"
  },

  // Network test page
  netTest: {
    title: "ネットワークテスト＆システムログ",
    command: "コマンド：",
    run: "実行",
    address: "アドレス：",
    result: "結果：",
    invalidAddr: "有効なアドレスを入力してください！"
  },

  // Record files page
  recordFiles: {
    title: "ファイル一覧",
    fileName: "ファイル名",
    time: "時刻",
    fileSize: "ファイルサイズ",
    action: "操作",
    delete: "削除",
    confirmDelete: "削除してもよろしいですか",
    deleteSuccess: "削除コマンドを送信しました！",
    deleteFailed: "削除に失敗しました！",
    noFiles: "録画ファイルがありません",
    loadError: "読み込みに失敗しました"
  },

  // Password settings page
  password: {
    title: "パスワード設定",
    oldPassword: "現在のパスワード",
    oldPasswordLabel: "現在のパスワード：",
    newPassword: "新しいパスワード",
    newPasswordLabel: "新しいパスワード：",
    confirmPassword: "パスワード確認",
    confirmPasswordLabel: "パスワード確認：",
    save: "保存",
    success: "設定を保存しました！",
    failed: "パスワードの設定に失敗しました。現在のパスワードが正しいか確認してください！",
    mismatch: "新しいパスワードが一致しません！",
    empty: "パスワードを空にすることはできません！"
  },

  // Encoding common (only actually used keys)
  encoding: {
    sameAsInput: "入力解像度と同じ",
    mp3Required: "音声エンコードをMP3に設定してください！",
    choosePrimaryColor: "メインカラーを選択",
    toggleTheme: "テーマを切り替え"
  },

  // OSD settings
  osd: {
    title: "OSD設定",
    mainStream: "メインストリームOSD",
    subStream1: "サブストリーム1 OSD",
    subStream2: "サブストリーム2 OSD",
    subStream3: "サブストリーム3 OSD",
    alpha: "透明度",
    alphaLabel: "透明度：",
    alphaRange: "[0-255]",
    alphaError: "透明度は0〜255の整数である必要があります！",
    region: "領域",
    regionLabel: "領域：",
    region1: "領域1",
    region2: "領域2",
    region3: "領域3",
    region4: "領域4",
    type: "タイプ",
    typeLabel: "タイプ：",
    typeText: "テキスト",
    typeImage: "画像",
    typeScroll: "スクロールテキスト",
    typeTime: "時刻",
    position: "位置",
    positionLabel: "位置：",
    speed: "速度",
    speedLabel: "速度：",
    xLabel: "X：",
    yLabel: "Y：",
    textLabel: "テキスト：",
    fontSize: "フォントサイズ",
    fontSizeLabel: "フォントサイズ：",
    fontSizeRange: "[8-72]",
    backgroundColor: "背景色",
    backgroundLabel: "背景色：",
    bgTransparent: "透明",
    bgWhite: "白",
    bgBlack: "黒",
    fontColor: "フォント色",
    fontColorLabel: "フォント色：",
    pickColor: "色を選択",
    closeColor: "閉じる",
    logoLabel: "ロゴ：",
    success: "設定を保存しました！",
    failed: "設定に失敗しました！",
    xRangeError: "{0}のX値は0〜{1}の整数である必要があります！",
    yRangeError: "{0}のY値は0〜{1}の整数である必要があります！",
    textEmpty: "{0}のテキストを空にすることはできません！",
    fontSizeError: "{0}のフォントサイズは8〜72の整数である必要があります！",
    speedRangeError: "{0}の速度値は0〜30の整数である必要があります！",
    positionRangeError: "{0}の位置値は0〜{1}の整数である必要があります！",
    selectLogo: "{0}のロゴを選択してください！",
    webrtcPreview: "ビデオプレビュー"
  },

  // LOGO upload
  logo: {
    title: "ロゴアップロード",
    logoLabel: "ロゴ：",
    upload: "アップロード",
    hint: "500KB未満のPNG画像または24ビットBMP画像をアップロードしてください（0xF1F1F1は透明）、",
    hint2: "ファイル名：logo1.bmp / logo2.bmp / logo3.bmp / logo4.bmp、",
    hint3: "または logo1.png / logo2.png / logo3.png / logo4.png",
    noFileSelected: "アップロードするファイルを選択してください！",
    invalidFile: "要件に従って画像をアップロードしてください！",
    uploadSuccess: "アップロードに成功しました！",
    uploadFailed: "アップロードに失敗しました！",
    imageSizeExceeded: "画像ファイルサイズが制限を超えています！",
    imageResolutionExceeded: "画像ファイルの解像度が制限を超えています！",
    storageInsufficient: "アップグレードファイルが大きすぎます。ストレージ容量が不足しています！"
  },

  // WIFI settings
  wifi: {
    title: "WIFI設定",
    mode: "モード",
    ap: "アクセスポイント",
    sta: "クライアントモード",
    ssid: "SSID",
    password: "パスワード",
    security: "セキュリティ",
    channel: "チャンネル",
    scan: "スキャン",
    connect: "接続",
    disconnect: "切断",
    status: "状態",
    connected: "接続済み",
    disconnected: "切断",
    signalStrength: "信号強度",
    basicSettings: "基本設定",
    wifiModule: "Wifiモジュール：",
    wifiMode: "Wifiモード：",
    staMode: "STAモード",
    apMode: "APモード",
    mainConfig: "WIFIメイン設定",
    backupConfig1: "WIFIバックアップ設定1",
    backupConfig2: "WIFIバックアップ設定2",
    apModeSettings: "APモード",
    wifiList: "Wifi一覧：",
    wifiEssid: "Wifi ESSID：",
    wifiPassword: "Wifiパスワード：",
    wifiDhcp: "Wifi DHCP：",
    wifiIp: "Wifi IP：",
    wifiNetmask: "Wifiネットマスク：",
    wifiGateway: "Wifiゲートウェイ：",
    backupEnable1: "バックアップ設定1：",
    backupEnable2: "バックアップ設定2：",
    wifiBand: "Wifi帯域：",
    wifiChannel: "Wifiチャンネル：",
    refresh: "更新",
    success: "設定を保存しました！",
    failed: "設定の保存に失敗しました！",
    mainConfigEmpty: "WIFIメイン設定：{0}を空にすることはできません！",
    mainConfigInvalid: "WIFIメイン設定：{0}の形式が無効です！",
    backupConfigEmpty: "WIFI {0}：{1}を空にすることはできません！",
    backupConfigInvalid: "WIFI {0}：{1}の形式が無効です！",
    ipAddr: "IPアドレス",
    netmask: "ネットマスク",
    gateway: "ゲートウェイ",
    essidEmpty: "WiFi名を空にすることはできません！",
    passwordTooShort: "WiFiパスワードは8文字以上である必要があります！"
  },

  // 4G/5G settings
  cellular: {
    title: "4G/5G設定",
    enable: "有効",
    apn: "APN",
    username: "ユーザー名",
    password: "パスワード",
    status: "状態",
    signalStrength: "信号強度",
    operator: "キャリア",
    connected: "接続済み",
    disconnected: "切断",
    connecting: "接続中...",
    module: "4G/5Gモジュール：",
    apnLabel: "APN：",
    usernameLabel: "ユーザー名：",
    passwordLabel: "パスワード：",
    authType: "認証タイプ：",
    dnsOrder: "4G/5G DNS優先順位：",
    authNone: "なし",
    authPap: "PAP",
    authChap: "CHAP",
    authChapPap: "CHAP+PAP",
    success: "設定を保存しました！",
    failed: "設定の保存に失敗しました！"
  },

  // Upgrade and backup
  updateBackup: {
    title: "システムアップグレード",
    uploadTitle: "ファームウェアと設定のアップロード",
    backupTitle: "ファームウェアと設定のバックアップ",
    systemVersion: "システムバージョン",
    systemVersionLabel: "システムバージョン：",
    hardware: "ハードウェア",
    hardwareLabel: "ハードウェア：",
    selectFile: "ファイルを選択",
    selectFileLabel: "ファイルを選択：",
    uploadHint: "アップロードファイル名：up.rar または box.ini",
    uploadWarning: "同時にアップロードしないでください。アップロード中は電源を切らないでください。",
    upload: "アップロード",
    backupFirmware: "ファームウェアのバックアップ",
    backupConfig: "設定のバックアップ",
    noFileSelected: "アップロードするファイルを選択してください！",
    uploadSuccess: "アップロードに成功しました。システムを再起動してください！",
    uploadFailed: "アップロードに失敗しました！",
    kernelUpdating: "カーネル更新には数分かかります。システムを再起動しないでください。完了後、デバイスは自動的に再起動します。",
    kernelUpdatingBin: "カーネル更新には数分かかります。システムを再起動しないでください。完了後、デバイスは自動的に再起動します！",
    imageSizeExceeded: "画像ファイルサイズが制限を超えています！",
    imageResolutionExceeded: "画像ファイルの解像度が制限を超えています！",
    storageInsufficient: "アップグレードファイルが大きすぎます。ストレージ容量が不足しています！"
  },

  // Serial transport settings
  serial: {
    title: "シリアル転送",
    frpTitle: "FRPクライアント設定",
    serialTitle: "シリアルポートパススルー",
    enable: "有効",
    disable: "無効",
    enableLabel: "有効：",
    serverAddr: "サーバーアドレス",
    serverAddrLabel: "サーバーアドレス：",
    serverPort: "サーバーポート",
    serverPortLabel: "サーバーポート：",
    serverToken: "サーバートークン",
    serverTokenLabel: "サーバートークン：",
    channel: "チャンネル",
    channel1: "チャンネル1",
    channel2: "チャンネル2",
    channel3: "チャンネル3",
    channel4: "チャンネル4",
    protocolLabel: "プロトコル：",
    localPort: "ローカルポート",
    localPortLabel: "ローカルポート：",
    remotePort: "リモートポート",
    remotePortLabel: "リモートポート：",
    serialMode: "シリアルモード",
    serialModeLabel: "モード：",
    server: "サーバー",
    client: "クライアント",
    baudRate: "ボーレート",
    baudRateLabel: "ボーレート：",
    listenPort: "リッスンポート",
    listenPortLabel: "リッスンポート：",
    save: "保存",
    success: "設定を保存しました。デバイスを再起動してください！",
    failed: "設定に失敗しました！",
    emptyError: "設定を空にすることはできません！",
    portRangeError: "TCPリッスンポートは1〜65500の整数である必要があります！",
    frpAddrEmpty: "FRPサーバーアドレスを空にすることはできません！",
    frpPortError: "FRPサーバーポートは1〜65500の整数である必要があります！"
  },

  // Advanced Settings
  advanced: {
    title: "詳細設定",
    // Section titles
    videoInput: "映像入力",
    avTransmission: "映像/音声伝送",
    recordSettings: "録画設定",
    hlsSettings: "HLS設定",
    networkTransmission: "ストリーム伝送",
    serviceSettings: "サービス設定",
    logSettings: "ログ設定",
    encoderParams: "エンコーダーパラメータ",
    imageEnhancement: "画像補正",
    autoRestart: "自動再起動",
    // Video Input
    edidSelect: "EDID選択：",
    colorGamut: "色域：",
    colorRange: "色範囲：",
    interlaceMode: "インターレースモード：",
    noSignal: "信号なし：",
    vgaAutoAdjust: "起動時VGA自動調整：",
    interlaceWeaving: "ウィービング（フィールド結合）",
    interlaceBottom: "ボトムフィールドのみ",
    interlaceTop: "トップフィールドのみ",
    interlaceBobbing: "ボビング（フィールドからフレームへ）",
    noSignalHide: "非表示",
    noSignalImage: "画像表示",
    noSignalColor: "単色表示",
    // A/V Transmission
    videoOnly: "映像のみ：",
    audioOnly: "音声のみ：",
    avSync: "映像/音声同期：",
    audioDelay: "音声遅延（ms）：",
    syncAuto: "自動",
    syncResample: "リサンプル",
    audioDelayHint: "負の値は音声を早め、正の値は遅らせます。映像/音声同期調整にのみ使用してください。",
    // Recording Settings
    recordType: "録画タイプ：",
    cycleRecord: "循環録画：",
    recordSplitTime: "録画分割時間（秒）：",
    // HLS Settings
    hlsSplitTime: "HLSセグメント時間（秒）：",
    hlsBufferNum: "HLSセグメント数：",
    hlsIndexUri: "HLSグローバルインデックスURI：",
    // Network Transmission
    tsMuxer: "TSマルチプレクサ：",
    netDropThreshold: "パケットドロップ閾値：",
    tsOnce: "送信あたりのTSパケット数：",
    rtspPackType: "RTSPカプセル化：",
    multicastType: "マルチキャストタイプ：",
    enableSap: "SAP有効：",
    mtuSize: "MTUサイズ：",
    udpTtl: "UDP TTL：",
    udpSockBuf: "UDP SOCKET_BUF_SIZE：",
    vlcCompat: "VLC互換",
    ffmpegCompat: "FFMPEG互換",
    esStream: "ESストリーム",
    tsStream: "TSストリーム",
    // Service Settings
    tsRtspAuth: "TS/RTSP認証必須：",
    httpNoAuth: "Web認証なしアクセス：",
    netCheck: "ネットワーク状態チェック：",
    telnetService: "Telnetサービス：",
    sambaService: "Sambaサービス：",
    onvifService: "ONVIFサービス：",
    onvifLocation: "ONVIF Location:",
    rtspDefaultStream: "RTSPデフォルトストリーム：",
    vmixCompat: "VMix互換：",
    telnetLan: "LANのみ",
    // Log Settings
    localLog: "ローカルログサービス：",
    lokiAddr: "Lokiサーバーアドレス：",
    lokiPort: "Lokiサーバーポート：",
    // Encoder Parameters
    sliceSplit: "SLICE分割：",
    sliceBytes: "SLICEバイト：",
    minQp: "MIN_QP：",
    maxQp: "MAX_QP：",
    debreath: "デブリージング：",
    sar: "SAR：",
    cbrOnlyHint: "レートコントロールモードがCBRに設定されている場合のみ有効",
    // Image Enhancement
    contrastEnhance: "コントラスト補正：",
    sharpnessEnhance: "シャープネス補正：",
    lumaSfStrength: "輝度空間ノイズ除去：",
    lumaTfStrength: "輝度時間ノイズ除去：",
    chromaSfStrength: "色差空間ノイズ除去：",
    chromaTfStrength: "色差時間ノイズ除去：",
    // Auto Restart
    kickAllOnChange: "入力変更時にユーザーを切断：",
    noVideoReboot: "映像なしで自動再起動：",
    noAudioReboot: "音声なしで自動再起動：",
    // Button
    save: "保存",
    // Messages
    success: "設定を保存しました。デバイスを再起動してください！",
    failed: "設定に失敗しました！",
    emptyError: "設定を空にすることはできません！",
    netDropError: "パケットドロップ閾値は50〜50000の整数である必要があります！",
    tsOnceError: "送信あたりのTSパケット数は1〜128の整数である必要があります！",
    sliceError: "SLICEバイトは128〜65535の整数である必要があります！",
    minQpError: "MIN_QPは1〜35の整数である必要があります！",
    maxQpError: "MAX_QPはMIN_QPより大きく、最大50である必要があります！",
    udpTtlError: "UDP TTLは1〜254の整数である必要があります！",
    contrastError: "コントラスト補正は0〜63の整数である必要があります！",
    sharpnessError: "シャープネス補正は0〜16の整数である必要があります！",
    lumaSfError: "輝度空間ノイズ除去は0〜255の整数である必要があります！",
    lumaTfError: "輝度時間ノイズ除去は0〜63の整数である必要があります！",
    chromaSfError: "色差空間ノイズ除去は0〜255の整数である必要があります！",
    chromaTfError: "色差時間ノイズ除去は0〜32の整数である必要があります！",
    hlsSplitError: "HLSセグメント時間は3〜20の整数である必要があります！",
    hlsBufferError: "HLSセグメント数は3〜20の整数である必要があります！",
    hlsUriError: "HLSグローバルインデックスURIの形式が無効です！",
    udpSockBufError: "UDP SOCKET_BUF_SIZEは0〜20971520の整数である必要があります！",
    mtuError: "MTUサイズは500〜1500の整数である必要があります！",
    audioCacheError: "音声遅延は-2000〜2000の整数である必要があります！",
    recordSplitError: "録画分割時間は60〜7200の整数である必要があります！",
    lokiPortError: "Lokiサーバーポートは1〜65500である必要があります"
  },

  // Audio Encoding Settings
  audioEnc: {
    title: "音声設定",
    // Tabs
    tabAudio: "音声設定",
    tabOnvif: "ONVIF音声",
    // Tips
    tipAudio: "デジタル音量ゲインを高く設定しすぎないでください。歪みやノイズの原因になります。<br>ほとんどの場合、ゲインは0に設定してください。<br>全体の音量はフロントエンドのコントロールで調整してください。",
    tipOnvif: "NVRに接続するには、RTSP G711エンコードを「有効にして8Kにリサンプル」に設定してください",
    // Audio Settings
    audioInput: "音声入力：",
    sampleRate: "サンプルレート：",
    codec: "コーデック：",
    channel: "チャンネル：",
    bitrate: "ビットレート：",
    digitalGain: "デジタル音量ゲイン：",
    analogGain: "アナログ音量ゲイン：",
    denoise: "ノイズ除去：",
    denoiseStrength: "ノイズ除去強度（dB）：",
    pteG711: "PTEストリームG711：",
    // Audio Input Options
    inputDigital: "デジタル",
    inputAnalog: "アナログ",
    inputMixed: "ミックス",
    // Sample Rate Options
    sampleSameAsInput: "入力と同じ",
    // ONVIF Audio
    rtspG711: "RTSP G711エンコード：",
    rtspG711Resample: "有効にして8Kにリサンプル",
    g711Codec: "G711コーデック：",
    // Buttons and Messages
    save: "保存",
    success: "設定を保存しました！",
    failed: "設定に失敗しました！",
    emptyError: "設定を空にすることはできません！",
    bitrateError: "ビットレートは{0}〜{1}の整数である必要があります！",
    gainError: "デジタル音量ゲインは-50〜50の整数である必要があります！",
    denoiseError: "ノイズ除去強度は1〜100の整数である必要があります！",
    analogVolEmpty: "アナログ音量ゲインは空にできません！",
    analogVolError: "アナログ音量ゲインは{0}〜{1}の整数である必要があります！"
  },

  // Recording Settings Page
  recordSet: {
    title: "録画設定",
    // Card Titles
    statusTitle: "録画ステータス",
    settingsTitle: "録画設定",
    // Status
    recordType: "録画タイプ：",
    diskStatus: "ディスク状態：",
    currentAddr: "現在のアドレス：",
    mountDevice: "マウントデバイス：",
    mountStatus: "マウント状態：",
    totalSpace: "総容量：",
    freeSpace: "空き容量：",
    recordStatus: "録画状態：",
    recordFiles: "録画ファイル：",
    fileList: "ファイル一覧",
    // Disk Status
    diskNotExist: "未検出",
    diskFull: "ディスク満杯",
    diskSlow: "ディスク速度不足",
    mounted: "マウント済み",
    unmounted: "未マウント",
    notRecording: "録画停止中",
    recording: "録画中",
    noVideoWarning: "（映像入力がない場合、ファイルが保存されない可能性があります）",
    // Action Links
    startRecord: "（録画開始）",
    stopRecord: "（録画停止）",
    mountDisk: "（ディスクをマウント）",
    unmountDisk: "（ディスクをアンマウント）",
    deleteAll: "（全録画削除）",
    // Settings
    storageType: "ストレージタイプ：",
    partition: "パーティション：",
    partitionInfo: "パーティション情報：",
    diskInfo: "ディスク情報：",
    formatDisk: "（ディスクをフォーマット）",
    exampleAddr: "アドレス例：",
    storageAddr: "ストレージアドレス：",
    username: "ユーザー名：",
    password: "パスワード：",
    // Storage Type Options
    storageDisabled: "無効",
    storageUsb: "USB/TFカード",
    storageNfs: "NFS",
    storageSamba: "SAMBA/CIFS",
    // Format Dialog
    formatTitle: "ディスク情報",
    formatDevice: "デバイス：",
    formatType: "タイプ：",
    formatModel: "モデル：",
    formatRemovable: "リムーバブル：",
    formatPartTable: "パーティションテーブル：",
    formatCapacity: "容量：",
    formatPartitions: "パーティション情報",
    formatPartition: "パーティション",
    formatAvailable: "（空き）",
    formatTotal: "（合計）",
    formatConfirm: "ディスクのフォーマットを続行しますか？",
    formatDanger: "警告：フォーマットするとパーティションが再作成され、すべてのデータが失われます。続行しますか？",
    formatContinue: "続行",
    formatCancel: "キャンセル",
    formatConfirmBtn: "確認",
    formatting: "フォーマット中...",
    // Buttons and Messages
    save: "保存",
    yes: "はい",
    no: "いいえ",
    success: "設定を保存しました！",
    failed: "設定に失敗しました！",
    formatSuccess: "フォーマットに成功しました！",
    formatFailed: "フォーマットに失敗しました！",
    deleteSuccess: "削除コマンドを送信しました！",
    deleteFailed: "削除に失敗しました！",
    confirmDeleteAll: "すべての録画ファイルを削除しますか？",
    recordingWarning: "現在録画中です。アンマウント前に録画を停止してください。",
    diskMountedWarning: "ディスクがマウントされています。フォーマット前にアンマウントしてください。",
    diskMountedSettingWarning: "ディスクがマウントされています。設定変更前にアンマウントしてください。",
    partitionNotExist: "パーティションが存在しません",
    partitionRemoved: "（削除済み）",
    // Address Validation
    addrEmpty: "ストレージアドレスを空にすることはできません！",
    addrNfsFormat: "無効なアドレス形式です。「:」セパレータが必要です",
    addrIpError: "無効なIPアドレス形式です",
    addrPathSlash: "パスは「/」で始まる必要があります",
    addrPathInvalid: "パスに無効な文字が含まれています",
    addrSambaStart: "アドレスは「\\\\」で始まる必要があります",
    addrSambaFormat: "無効なアドレスです。IPとパスは「\\」で区切る必要があります",
    addrPathEmpty: "パスを空にすることはできません",
    addrPathChars: "パスに無効な文字が含まれています。英字、数字、アンダースコア、ハイフンのみ使用できます",
    // Disk size info "{available} / {total}"
    diskSizeInfo: "{0}（空き）/ {1}（合計）"
  },
  // GB28181 Settings
  gb28181: {
    title: "GB28181設定",
    basicSettings: "基本設定",
    heartbeatSettings: "ハートビート設定",
    sipServerSettings: "SIPサーバー設定",
    authSettings: "認証設定",
    enable: "有効：",
    disabled: "無効",
    enabled: "有効",
    localSipPort: "ローカルSIPポート：",
    videoChannelId: "映像チャンネルID：",
    streamSelect: "ストリーム選択：",
    mainStream: "メインストリーム",
    subStream1: "サブストリーム1",
    subStream2: "サブストリーム2",
    subStream3: "サブストリーム3",
    regExpiry: "登録有効期限：",
    heartbeatCycle: "ハートビート周期：",
    maxHeartbeatTimeout: "最大ハートビートタイムアウト：",
    sipServerId: "SIPサーバーID：",
    sipServerDomain: "SIPサーバードメイン：",
    sipServerAddr: "SIPサーバーアドレス：",
    sipServerPort: "SIPサーバーポート：",
    sipUserId: "SIPユーザーID：",
    sipPassword: "SIPパスワード：",
    emptyError: "設定を空にすることはできません！",
    localPortError: "ローカルSIPポートは1〜65500の整数である必要があります！",
    serverPortError: "SIPサーバーポートは1〜65500の整数である必要があります！",
    regExpiryError: "登録有効期限は100〜100000の整数である必要があります！",
    heartbeatError: "ハートビート周期は5〜3600の整数である必要があります！",
    maxTimeoutError: "最大ハートビートタイムアウトは3〜255の整数である必要があります！",
    success: "設定を保存しました！",
    failed: "設定に失敗しました！"
  },
  // Video Source Settings
  videoSource: {
    title: "映像ソース設定",
    videoInput: "映像入力設定",
    brightAdjust: "入力輝度調整",
    videoOutput: "映像出力設定",
    inputFormat: "映像入力形式：",
    yuv422: "YUV422",
    yuv420: "YUV420（回転対応）",
    rotation: "回転角度：",
    flipMirror: "反転/ミラー：",
    flipDisable: "無効",
    mirror: "ミラー",
    flip: "反転",
    flipAndMirror: "ミラー＆反転",
    cropEnable: "映像クロップ：",
    cropLeft: "クロップ開始点（左）：",
    cropTop: "クロップ開始点（上）：",
    cropWidth: "クロップ幅：",
    cropHeight: "クロップ高さ：",
    colorMode: "入力カラーモード：",
    unknown: "不明",
    brightEnable: "輝度調整：",
    gain: "ゲイン：",
    gainHint: "[10-1000]、デフォルト100",
    offset: "オフセット：",
    offsetHint: "[0-100]、デフォルト0",
    note: "注意：",
    brightNote1: "1. 輝度 = （元の輝度 × ゲイン / 100）+ オフセット",
    brightNote2: "2. 輝度調整はRGB入力カラーモードでのみ機能します",
    outputRes: "映像出力解像度：",
    auto: "自動",
    cscEnable: "CSC調整：",
    luminance: "輝度：",
    contrast: "コントラスト：",
    hue: "色相：",
    saturation: "彩度：",
    cscHint: "[0-100]、デフォルト50",
    rotateHint: "回転は映像入力形式がYUV420の場合のみ対応しています。",
    emptyError: "設定を空にすることはできません！",
    gainError: "ゲインは10〜1000の整数である必要があります！",
    offsetError: "オフセットは0〜100の整数である必要があります！",
    leftError: "左の値は0〜{0}の整数である必要があります！",
    topError: "上の値は0〜{0}の整数である必要があります！",
    widthError: "幅の値は400〜{0}の整数である必要があります！",
    heightError: "高さの値は400〜{0}の整数である必要があります！",
    luminanceError: "輝度は0〜100の整数である必要があります！",
    contrastError: "コントラストは0〜100の整数である必要があります！",
    hueError: "色相は0〜100の整数である必要があります！",
    saturationError: "彩度は0〜100の整数である必要があります！",
    success: "設定を保存しました！",
    failed: "設定に失敗しました！"
  },
  // Network Settings
  network: {
    title: "ネットワーク設定",
    ipv4Title: "IPv4設定",
    ipv6Status: "IPv6ステータス",
    ipv6Title: "IPv6設定",
    ipv6TypeGlobal: "グローバルIP",
    ipv6TypeLinkLocal: "リンクローカルIP",
    ipv6TypeUniqueLocal: "ローカルIP",
    ipv6TypeMulticast: "マルチキャストIP",
    ipv6TypeGeneric: "IP",
    ipv6StatusGateway: "ゲートウェイ",
    dnsTitle: "DNS設定",
    ntpTitle: "NTP設定",
    portTitle: "ポート設定",
    httpsTitle: "HTTPS設定",
    hostnameTitle: "ホスト名設定",
    dhcp: "DHCP：",
    dhcpHint: "DHCPを有効にすると、ONVIF対応検索ツールでデバイスを検出できます。",
    ipAddr: "IPアドレス：",
    netmask: "サブネットマスク：",
    gateway: "有線ゲートウェイ：",
    macAddr: "MACアドレス：",
    defaultGateway: "デフォルトゲートウェイ：",
    lanFirst: "有線優先",
    wifiFirst: "WIFI優先",
    g4First: "4G/5G優先",
    ipv6Mode: "モード：",
    ipv6Disable: "無効",
    ipv6Auto: "自動設定",
    ipv6Manual: "手動設定",
    ipv6Addr: "IPv6アドレス：",
    ipv6Prefix: "IPv6プレフィックス長：",
    ipv6Gateway: "IPv6デフォルトゲートウェイ：",
    dns1: "DNS1：",
    dns2: "DNS2：",
    ntpSync: "NTP同期：",
    ntpServer: "サーバー：",
    timezone: "タイムゾーン：",
    httpPort1: "HTTPポート1：",
    httpPort2: "HTTPポート2：",
    rtspPort1: "RTSPポート1：",
    rtspPort2: "RTSPポート2：",
    onvifPort: "ONVIFポート：",
    httpsService: "HTTPSサービス：",
    httpsPort1: "HTTPSポート1：",
    httpsPort2: "HTTPSポート2：",
    httpsPrivatePass: "HTTPS秘密鍵パスワード：",
    privatePassHint: "（パスワードがない場合は空欄）",
    uploadCert: "証明書アップロード：",
    uploadCertHint: "（ファイル名はprivate.keyまたはpublic.crtである必要があります。同時にアップロードしたり、アップロード中に電源を切らないでください）",
    uploadBtn: "証明書をアップロード",
    deleteCert: "証明書を削除",
    hostname: "ホスト名：",
    mdnsService: "mDNSサービス：",
    mdnsAddr: "mDNSアクセスアドレス：",
    portRange: "[1-65500]",
    prefixRange: "[0-128]",
    emptyError: "設定を空にすることはできません！",
    ipError: "無効なIPアドレス形式です！",
    netmaskError: "無効なサブネットマスク形式です！",
    gatewayError: "無効なゲートウェイ形式です！",
    dns1Error: "無効なプライマリDNS形式です！",
    dns2Error: "無効なセカンダリDNS形式です！",
    macError: "無効なMACアドレス形式です！",
    httpPort1Error: "HTTPポート1は1〜65500の整数である必要があります！",
    httpPort2Error: "HTTPポート2は1〜65500の整数である必要があります！",
    rtspPort1Error: "RTSPポート1は1〜65500の整数である必要があります！",
    rtspPort2Error: "RTSPポート2は1〜65500の整数である必要があります！",
    httpsPort1Error: "HTTPSポート1は1〜65500の整数である必要があります！",
    httpsPort2Error: "HTTPSポート2は1〜65500の整数である必要があります！",
    onvifPortError: "ONVIFポートは1〜65500の整数である必要があります！",
    httpBothDisableError: "HTTPポート1とポート2の両方を無効にすることはできません！",
    httpsBothDisableError: "HTTPSが有効な場合、ポート1とポート2の両方を無効にすることはできません！",
    ntpEmptyError: "NTPサーバーを空にすることはできません！",
    ntpFormatError: "無効なNTPサーバーアドレスです！",
    hostnameEmptyError: "ホスト名を空にすることはできません！",
    hostnameFormatError: "無効なホスト名です！\n\n1. ホスト名は63文字以内である必要があります！\n2. 英字（a-z）、数字（0-9）、ハイフン（-）、アンダースコア（_）のみ使用できます！\n3.「-」と「_」は連続、単独、または先頭/末尾に使用できません！",
    deleteCertConfirm: "アップロードしたHTTPS証明書を削除してもよろしいですか？",
    selectFile: "アップロードするファイルを選択してください！",
    uploadSuccess: "アップロードに成功しました！",
    uploadFailed: "アップロードに失敗しました！",
    fileSizeError: "画像ファイルサイズが制限を超えています！",
    fileResError: "画像の解像度が制限を超えています！",
    spaceError: "アップグレードファイルが大きすぎます。ストレージ容量が不足しています！",
    deleteSuccess: "削除に成功しました！",
    deleteFailed: "削除に失敗しました！",
    successReboot: "設定を保存しました。デバイスを再起動してください！",
    failed: "設定に失敗しました！"
  },

  // Output Settings Page (Stream Settings)
  output: {
    // Tab names
    tabs: {
      encode: "エンコード",
      ts: "TS/マルチキャスト",
      rtsp: "RTSP",
      rtmp: "RTMP",
      srt: "SRT",
      webrtc: "WebRTC",
      trtc: "TRTC",
      hls: "HLS",
      other: "MP4/FLV/その他"
    },

    // Encoding settings
    encode: {
      codecType: "コーデックタイプ：",
      frameRate: "フレームレート：",
      sameAsInput: "入力フレームレートと同じ",
      auto: "自動",
      customFrameRate: "カスタムフレームレート",
      customFrameRateLabel: "カスタムフレームレート：",
      gopInterval: "GOPインターバル（フレーム）：",
      bitrate: "ビットレート（kbit）：",
      qualityRange: "画質範囲：",
      qualityStrict: "厳格（高）",
      qualityTight: "やや厳格（やや高〜高）",
      qualityNormal: "普通（中〜高）",
      qualityLoose: "緩め（やや低〜高）",
      qualityWide: "広範囲（低〜高）",
      mjpegQuality: "MJPEG品質：",
      outputResolution: "出力解像度：",
      h264Profile: "H.264プロファイル：",
      bitrateControl: "ビットレート制御：",
      // Tips
      tipCodec: "H.265はH.264より高画質です。デコーダーが対応している場合はH.265を使用してください。",
      tipVbr: "VBRモードでは、ビットレートは「画質範囲」で調整されます。画質範囲はQP値を制限します。<br>「やや高〜高」または「高」を選択すると実際のビットレートが非常に高くなり、設定ビットレートは意味をなさなくなります。<br>「やや低〜高」の場合のみビットレートに参考値があります。",
      tipCbr: "「強制CBR」はCATVシステム用で、安定したTSビットレートを確保します。1080Pでの「強制CBR」では、ビットレートは5000kbit/s以上、8000kbit/s推奨です。",
      tipGop: "入力映像フレームレートがnの場合、一般的な値は60、50、30、25です。<br>GOPインターバルは通常n × 2に設定し、一般的な値は120、100、60、50です。<br>フレームレートを自動に設定した場合、n > 30ならエンコードフレームレートはn / 2、それ以外はnと等しくなります。"
    },

    // TS/Multicast settings
    ts: {
      tsUri: "TSストリームURL：",
      multicastIp: "マルチキャストIP：",
      multicastPort: "マルチキャストポート：",
      sapName: "SAP名：",
      tsVideoPid: "TS映像PID：",
      tsAudioPid: "TS音声PID：",
      tsTransportStreamId: "TSトランスポートストリームID：",
      tsOriginalNetworkId: "TSオリジナルネットワークID：",
      tsPmtStartPid: "TS PMT開始PID：",
      tsStartPid: "TS開始PID：",
      tsTablesVersion: "TSテーブルバージョン：",
      tsServiceId: "TSサービスID：",
      tsServiceName: "TSサービス名：",
      tsProviderName: "TSプロバイダ名：",
      tsPcrPeriod: "TS PCR周期（ms）：",
      conformSystemB: "System B（DVB）準拠：",
      tsNullPacket: "TSヌルパケット：",
      noInsert: "挿入なし",
      insert12: "挿入（1.2倍）",
      insert13: "挿入（1.3倍）",
      insert15: "挿入（1.5倍）",
      insert20: "挿入（2倍）",
      insert25: "挿入（2.5倍）",
      tsTdt: "TS TDT：",
      // Tips
      tipMulticast: "マルチキャストアドレスにはブロードキャストまたはユニキャストアドレスも使用でき、システムが自動検出します。",
      tipVlc: "VLCでマルチキャストを再生できない場合、コンピュータに複数のネットワークアダプタがないか確認し、別のアダプタに切り替えてみてください。",
      tipSap: "SAP名はVLCのプレイリスト→ローカルネットワークなど、対応デバイスで確認できます。",
      tipAdvanced: "TS詳細設定は通常調整不要です。",
      tipIptv: "IPTVシステムに接続する場合、TSヌルパケットは1.3倍に調整してください。デバイスが自動的にヌルパケットを挿入し、安定したビットレートを確保します。<br>この設定は「強制CBR」モードにのみ適用されます。"
    },

    // RTSP settings
    rtsp: {
      rtspUri: "RTSPストリームURL：",
      enableMulticast: "有効（マルチキャスト）",
      enableTcpOnly: "有効（TCPのみ）",
      multicastIp: "RTSPマルチキャストIP：",
      multicastPort: "RTSPマルチキャストポート：",
      // Tips
      tipEnable: "有効を選択した場合、実際のトランスポート（UDPまたはTCP）はクライアントによって決定されます。例えば、VLCでは「RTP over RTSP(TCP)」にチェックを入れるとTCPを使用します。",
      tipTcpOnly: "有効（TCPのみ）を選択すると、デバイスは強制的にTCPを使用します。",
      tipUdp: "UDPはネットワークの問題により時々パケットをドロップする可能性があります。すべてのクライアントが対応している場合はTCPを推奨します。",
      tipMulticast: "有効（マルチキャスト）を選択すると、「RTSPマルチキャストポート」から始まる4つの連続ポートを使用します。"
    },

    // RTMP settings
    rtmp: {
      rtmpUri: "RTMPストリームURL：",
      publishUri0: "RTMP(S)/RTSP配信URL 0：",
      publishUri1: "RTMP(S)/RTSP配信URL 1：",
      publishUri2: "RTMP(S)/RTSP配信URL 2：",
      mode: "RTMP 配信モード：",
      modeStandard: "Standard (Enhanced RTMP)",
      modeLegacy: "Legacy (CodecID 12)",
      // Tips
      tipPublish: "配信URL 0-2は他のLANまたはパブリックRTMP/RTSPサーバーにストリームをプッシュするためのもので、H.265/H.264に対応しています。",
      tipBuiltin: "このデバイスにはH.264/H.265のプル再生に対応した内蔵RTMPサーバーがあります。<br>RTMP URLを「/live/0」に設定すると、PotPlayerは http://デバイスIP/live/0 で再生できます。",
      tipMode: "RTMP 配信モードはH.265にのみ有効で、FLVストリームにも影響します。"
    },

    // SRT settings
    srt: {
      listenerUri: "SRTリスナーURL：",
      callerUri: "SRTコーラーURL：",
      // Tips
      tipListener: "SRTリスナーモードはローカルポートでリッスンし、プレーヤーがストリームをプルするのを待ちます。<br>例えば、srt://0.0.0.0:9000 と設定します。<br>VLCは「srt://デバイスIP:9000」で再生できます。<br>streamid追加例：<br>srt://0.0.0.0:9000?streamid=channel100<br>パスワード追加例（最低10文字）：<br>srt://0.0.0.0:9000?passphrase=0123456789<br>streamidとパスワード両方追加：<br>srt://0.0.0.0:9000?streamid=channel100&passphrase=0123456789",
      tipCaller: "SRTコーラーモードは別のサーバーにストリームをプッシュします。例：<br>srt://live.example.com:9000?streamid=channel100&latency=120&maxbw=8000000",
      tipParams: "対応SRTパラメータ（詳細はSRTプロトコル参照）：<br>streamid - 多重化用ストリーム識別子<br>passphrase - 暗号化パスワード、SRTでは10-79文字<br>pbkeylen - 鍵長：16（AES-128）、24（AES-192）、32（AES-256）<br>latency - レイテンシ（ms）（20-8000ms）<br>maxbw - 最大帯域幅（バイト/秒）<br>rcvbuf - 受信バッファサイズ<br>sndbuf - 送信バッファサイズ<br>ipttl - IP TTL値<br>conntimeo - 接続タイムアウト（ms）"
    },

    // WebRTC settings
    webrtc: {
      preview: "WebRTCプレビュー：",
      whipServer: "WHIPサーバー：",
      whipToken: "WHIPベアラートークン：",
      p2pServer: "P2Pサーバー：",
      p2pUuid: "P2P UUID：",
      p2pToken: "P2P認証トークン：",
      p2pAuthToken: "P2P認証トークン：",
      regenerate: "再生成",
      // Tips
      tipPreview: "主要ブラウザでのWebRTCプレビューはH.264映像とOpus/G.711音声エンコードに対応しています。<br>音声をOpusに設定するとより良い結果が得られます。Opusに設定しない場合、デフォルトでG.711 8Kになります。",
      tipWhip: "WHIPストリーミングは標準WHIPサーバーに接続します。サーバーからアドレスをコピーしてください。<br>ベアラートークンは空でも可。",
      tipP2p: "P2Pサーバーを有効にすると、視聴URLがステータスページに表示されます。<br>P2P認証トークンは空でも可。",
      tipP2pNote: "複雑なイントラネット環境ではP2Pが接続できない場合があります。"
    },

    // TRTC settings
    trtc: {
      roomId: "TRTCルームID：",
      userId: "TRTCユーザー名：",
      roomKey: "TRTCルームキー：",
      userSig: "TRTC UserSig：",
      sdkAppId: "TRTC SDKAppID：",
      roomIdType: "TRTCルームIDタイプ：",
      roomIdNumber: "数値",
      roomIdString: "文字列",
      // Short enum labels for template use
      number: "数値",
      string: "文字列",
      // Tips
      tipTrtc: "Tencent TRTCサーバーにストリームをプッシュします。サーバーからアドレスをコピーしてください。<br>Tencent TRTCは現在H.264のみ対応しています。"
    },

    // HLS settings
    hls: {
      hlsTsUri: "HLS TSストリームURL：",
      hlsMp4Uri: "HLS MP4ストリームURL：",
      hlsPushUri: "HLS配信URL：",
      hlsPushUrl: "HLS配信URL：",
      // Tips
      tipHls: "HLS TS/MP4を有効にすると、デバイスは詳細設定のセグメント時間とセグメント数に基づいてメモリにデータをバッファします。<br>セグメント時間とセグメント数の両方を3に設定するとメモリ使用量を削減できます。",
      tipPush: "HLS配信URLはYouTubeなどのサーバーにプッシュするためのものです。"
    },

    // MP4/FLV/Other settings
    other: {
      mp4Uri: "MP4ストリームURL：",
      flvUri: "FLVストリームURL：",
      icecastUri: "ICECAST配信URL：",
      icecastPushUrl: "ICECAST配信URL：",
      shoutcastUri: "Shoutcast配信URL：",
      shoutcastPushUrl: "Shoutcast配信URL：",
      // Tips
      tipMp4: "MP4ストリームを有効にすると、ブラウザで直接再生できます。<br>FLVストリームはこのデバイスでH.265/H.264に対応していますが、VLCなど他のプレーヤーは現在H.264のみ対応しています。<br>ICECAST/ShoutcastはMP3のみ対応で、音声サーバーへのプッシュ用です。",
      tipShoutcast: "Shoutcastはv1とv2に対応。<br>例：<br>http://password@shoutcast_server:8000<br>http://password@shoutcast_server:8000?sid=100<br>http://password@shoutcast_server:8000?icy-name=Stream&icy-genre=Pop<br>形式：<br>http://password@サーバーIP:リッスンポート[?パラメータ...]；ユーザー名は省略可（デフォルト「source」）。<br>サーバーの「リッスンポート」を使用し、デバイスは自動的にソースポート（リッスンポート+1）に接続します。<br>対応パラメータ：<br>sid：Shoutcast v2ストリームID（デフォルト1）<br>icy-name：ストリーム名（オプション）<br>icy-genre：ジャンル（オプション）<br>icy-url：ウェブサイトURL（オプション）<br>icy-pub：公開 0/1（オプション）"
    },

    // Common
    common: {
      save: "保存",
      disabled: "無効",
      enabled: "有効"
    },

    // Error and success messages
    messages: {
      success: "設定を保存しました！",
      failed: "設定に失敗しました！",
      emptyError: "設定を空にすることはできません！",
      trtcH264Only: "TRTCが有効な場合、H.264エンコードのみ対応しています。自動的に変更されました。",
      mp3Required: "音声エンコードをMP3に設定してください！",
      // Encoding validation
      frameRateError: "フレームレートは5〜60の整数である必要があります！",
      gopError: "GOPインターバルは5〜300の整数である必要があります！",
      mjpegQualityError: "MJPEG品質は10〜99の整数である必要があります！",
      hlsBitrateWarning: "ビットレートが32〜8000の範囲外のため、HLS TS/MP4/配信ストリームを無効にしました。",
      trtcCodecWarning: "コーデックがH.264でないため、TRTCを無効にしました。",
      hlsBitrateError: "ビットレートが32〜8000の範囲外のため、HLS TS/MP4/配信ストリームを有効にできません",
      // SRT validation
      srtListenerPortError: "SRTリスナーポートは1〜65535の整数である必要があります！",
      srtListenerFormatError: "無効なSRTリスナーURL形式です！",
      srtCallerFormatError: "無効なSRTコーラーURL形式です！",
      srtPasswordLengthError: "SRTパスワードの長さは10〜32である必要があります！",
      srtLatencyError: "SRTレイテンシは1〜10000の整数である必要があります！",
      srtBandwidthError: "SRT帯域幅は0〜102400の整数である必要があります！",
      // RTMP validation
      rtmpFormatError: "RTMP(S)/RTSP配信URLはrtmp://、rtmps://、またはrtsp://で始まる必要があります",
      // HLS validation
      hlsFormatError: "無効なHLS配信URL形式です！",
      // RTSP validation
      rtspMulticastIpError: "無効なRTSPマルチキャストIP形式です！",
      rtspMulticastPortError: "RTSPマルチキャストポートは1〜65535の整数である必要があります！",
      // TS validation
      multicastIpError: "無効なマルチキャストIP形式です！",
      multicastPortError: "マルチキャストポートは1〜65535の整数である必要があります！",
      tsTransportIdError: "TSトランスポートストリームIDは1〜65535の整数である必要があります！",
      tsNetworkIdError: "TSオリジナルネットワークIDは1〜65535の整数である必要があります！",
      tsPmtPidError: "TS PMT開始PIDは16〜7936の整数である必要があります！",
      tsStartPidError: "TS開始PIDは32〜3840の整数である必要があります！",
      tsPidConflict: "TS開始PIDとTS PMT開始PIDは異なる必要があります！",
      tsVersionError: "TSテーブルバージョンは0〜31の整数である必要があります！",
      tsServiceIdError: "TSサービスIDは1〜65535の整数である必要があります！",
      tsVideoPidError: "TS映像PIDは16〜8190の整数である必要があります！",
      tsAudioPidError: "TS音声PIDは16〜8190の整数である必要があります！",
      tsVideoPidConflict: "TS映像PIDとTS音声PIDは異なる必要があります！",
      tsAudioPmtConflict: "TS音声PIDとTS PMT開始PIDは異なる必要があります！",
      tsVideoPmtConflict: "TS映像PIDとTS PMT開始PIDは異なる必要があります！",
      // Other validation
      icecastFormatError: "無効なIcecast配信URL形式です！",
      shoutcastFormatError: "無効なShoutcast配信URL形式です！"
    }
  }
};
