From 6ff8bbd0143a71543b9852813ae9db02e20594f0 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Thu, 15 Oct 2026 15:08:39 +0200 Subject: [PATCH] Update translation files Updated by "Cleanup translation files" add-on in Weblate. Translated using Weblate (Korean) Currently translated at 100.0% (66 of 66 strings) Translated using Weblate (Korean) Currently translated at 100.0% (281 of 281 strings) Translated using Weblate (Korean) Currently translated at 100.0% (1394 of 1394 strings) Translated using Weblate (Korean) Currently translated at 100.0% (26 of 26 strings) Translated using Weblate (Korean) Currently translated at 100.0% (771 of 771 strings) Translated using Weblate (Korean) Currently translated at 100.0% (520 of 520 strings) Translated using Weblate (Korean) Currently translated at 100.0% (280 of 280 strings) Translated using Weblate (Korean) Currently translated at 100.0% (1393 of 1393 strings) Translated using Weblate (Korean) Currently translated at 100.0% (68 of 68 strings) Translated using Weblate (Korean) Currently translated at 100.0% (128 of 128 strings) Translated using Weblate (Korean) Currently translated at 100.0% (37 of 37 strings) Translated using Weblate (Korean) Currently translated at 100.0% (265 of 265 strings) Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate Co-authored-by: sinfancy Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ko/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/ko/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/ko/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/ko/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-validation/ko/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-chat/ko/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/ko/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ko/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ko/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ko/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/Config - Validation Translation: Frigate NVR/common Translation: Frigate NVR/components-player Translation: Frigate NVR/views-chat Translation: Frigate NVR/views-events Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/ko/common.json | 7 +- web/public/locales/ko/components/player.json | 4 +- web/public/locales/ko/config/cameras.json | 36 ++++- web/public/locales/ko/config/global.json | 64 ++++++-- web/public/locales/ko/config/validation.json | 4 +- web/public/locales/ko/views/chat.json | 4 +- web/public/locales/ko/views/events.json | 2 +- web/public/locales/ko/views/live.json | 50 +++++- web/public/locales/ko/views/settings.json | 152 +++++++++++++------ web/public/locales/ko/views/system.json | 34 ++++- 10 files changed, 274 insertions(+), 83 deletions(-) diff --git a/web/public/locales/ko/common.json b/web/public/locales/ko/common.json index ccf9552259..534a6e3f0d 100644 --- a/web/public/locales/ko/common.json +++ b/web/public/locales/ko/common.json @@ -269,7 +269,8 @@ "retry": "재시도", "expand": "펼치기", "collapse": "접기", - "reload": "새로고침" + "reload": "새로고침", + "clear": "지우기" }, "toast": { "copyUrlToClipboard": "클립보드에 URL이 복사되었습니다.", @@ -285,8 +286,8 @@ "role": { "title": "역할", "admin": "관리자", - "viewer": "뷰어", - "desc": "관리자는 Frigate UI의 모든 기능에 대한 전체 접근 권한을 가집니다. 뷰어는 카메라 실시간 화면, 다시보기 항목, 이전 녹화 영상 조회만 가능합니다." + "viewer": "조회자", + "desc": "관리자는 Frigate UI의 모든 기능에 대한 전체 접근 권한을 가집니다. 조회자는 카메라 실시간 화면, 다시보기 항목, 이전 녹화 영상 조회만 가능합니다." }, "pagination": { "label": "페이지 매김", diff --git a/web/public/locales/ko/components/player.json b/web/public/locales/ko/components/player.json index 3f4f5700a6..ee71240398 100644 --- a/web/public/locales/ko/components/player.json +++ b/web/public/locales/ko/components/player.json @@ -22,7 +22,9 @@ } }, "decodedFrames": "디코딩된 프레임:", - "droppedFrameRate": "프레임 손실률:" + "droppedFrameRate": "프레임 손실률:", + "stream": "스트림:", + "streamAuto": "{{stream}} (자동)" }, "noRecordingsFoundForThisTime": "해당 시간대에 저장된 녹화 영상이 없습니다", "noPreviewFound": "미리보기를 찾을 수 없습니다", diff --git a/web/public/locales/ko/config/cameras.json b/web/public/locales/ko/config/cameras.json index 23a5b697d3..f921388b4a 100644 --- a/web/public/locales/ko/config/cameras.json +++ b/web/public/locales/ko/config/cameras.json @@ -270,7 +270,7 @@ }, "scene": { "label": "감지 장면", - "description": "이 카메라가 비추는 환경으로, 구성된 모델 중 어떤 모델을 실행할지 선택하는 데 사용됩니다. '전체'로 설정된 카메라는 장면이 '전체'로 구성된 모델을 실행합니다." + "description": "이 카메라가 비추는 환경으로, 구성된 모델 중 어떤 모델을 실행할지 선택하는 데 사용됩니다. '기본'으로 설정된 카메라는 장면이 '기본'으로 구성된 모델을 실행합니다." } }, "face_recognition": { @@ -371,18 +371,42 @@ "quality": { "label": "실시간 품질", "description": "jsmpeg 스트림의 인코딩 품질입니다 (1 최고 품질, 31 최저 품질)." + }, + "transcode": { + "label": "트랜스코딩된 스트림", + "description": "go2rtc를 통해 요청 시 실시간으로 트랜스코딩되는 저화질 라이브 스트림입니다.", + "enabled": { + "label": "트랜스코딩된 스트림 사용", + "description": "사용자가 시청하는 동안 go2rtc가 실시간으로 트랜스코딩하는 저화질 라이브 스트림을 추가합니다." + }, + "source": { + "label": "소스 스트림", + "description": "트랜스코딩할 go2rtc 스트림입니다. 기본값은 첫 번째 라이브 스트림입니다." + }, + "qualities": { + "label": "화질 목록", + "description": "화질당 하나의 트랜스코딩된 스트림이 추가됩니다.", + "height": { + "label": "높이", + "description": "출력 높이(픽셀 단위)이며, 너비는 원본 화면비에 맞춰 자동 조정됩니다." + }, + "bitrate": { + "label": "비트레이트", + "description": "목표 및 최대 비디오 비트레이트(kbps 단위)입니다." + } + } } }, "lpr": { "label": "차량 번호판 인식", "description": "감지 임계값, 포맷, 등록된 번호판 등을 포함한 차량 번호판 인식 설정입니다.", "enabled": { - "label": "LPR 활성화", - "description": "이 카메라에서 LPR 기능을 활성화하거나 비활성화합니다." + "label": "차량 번호판 인식 활성화", + "description": "이 카메라에서 차량 번호판 인식 기능을 활성화하거나 비활성화합니다." }, "expire_time": { "label": "만료 시간(초)", - "description": "시야에서 사라진 번호판이 트래커에서 만료되기까지의 시간(초)입니다 (전용 LPR 카메라 전용)." + "description": "시야에서 사라진 번호판이 트래커에서 만료되기까지의 시간(초)입니다 (전용 번호판 인식 카메라 전용)." }, "min_area": { "label": "최소 번호판 크기", @@ -790,6 +814,10 @@ "response_style": { "label": "응답 스타일", "description": "생성된 검토 설명의 작성 스타일 프리셋입니다. 프리셋은 사용자에게 표시되는 제목, 요약 및 장면 설명의 톤과 세부 수준을 조정하며, '초기값'으로 설정하면 내장 프롬프트를 그대로 유지합니다." + }, + "frame_mode": { + "label": "프레임 모드", + "description": "모델에 프레임을 전달하는 방식입니다. '프레임'은 프롬프트 뒤에 프레임을 순서대로 전송하여 시퀀스를 자체적으로 잘 추적하는 모델에 적합합니다. '주석이 달린 프레임'은 각 프레임에 라벨을 붙이고 객체 추적 기반 메모를 함께 삽입하여, 반복되거나 반전되는 동작의 흐름을 놓치기 쉬운 모델에 유용합니다." } } }, diff --git a/web/public/locales/ko/config/global.json b/web/public/locales/ko/config/global.json index 1c781e624c..c1cc1b3be3 100644 --- a/web/public/locales/ko/config/global.json +++ b/web/public/locales/ko/config/global.json @@ -16,7 +16,7 @@ "description": "기본 로그 상세도 및 구성 요소별 로그 수준 재정의를 제어합니다.", "default": { "label": "로그 수준", - "description": "전역 기본 로그 수준(debug, info, warning, error)입니다." + "description": "전역 기본 로그 수준(디버그, 정보, 경고, 오류, 심각)을 선택하세요." }, "logs": { "label": "프로세스별 로그 수준", @@ -236,7 +236,7 @@ }, "language": { "label": "변환 언어", - "description": "텍스트 변환/번역에 사용할 언어 코드입니다 (예: 한국어는 'ko', 영어는 'en')." + "description": "텍스트 변환 및 번역에 사용할 언어 코드(예: 한국어는 'ko', 영어는 'en')입니다. 모델이 자동으로 감지하도록 하려면 'auto'로 지정합니다. 지원되는 언어 코드는 https://whisper-api.com/docs/languages/ 를 참조하세요." }, "device": { "label": "변환 디바이스", @@ -245,6 +245,10 @@ "model_size": { "label": "모델 크기", "description": "오프라인 오디오 이벤트 텍스트 변환에 사용할 모델 크기입니다." + }, + "model": { + "label": "오디오 텍스트 변환 모델 또는 GenAI 공급자 이름", + "description": "텍스트 변환 백엔드: Frigate 내장 로컬 모델의 경우 'whisper', 또는 오디오 변환(transcribe) 역할이 지정된 GenAI 공급자 이름입니다." } }, "birdseye": { @@ -360,7 +364,7 @@ }, "scene": { "label": "감지 장면", - "description": "이 카메라가 비추는 환경으로, 구성된 모델 중 어떤 모델을 실행할지 선택하는 데 사용됩니다. '전체'로 설정된 카메라는 장면이 '전체'로 구성된 모델을 실행합니다." + "description": "이 카메라가 비추는 환경으로, 구성된 모델 중 어떤 모델을 실행할지 선택하는 데 사용됩니다. '기본'으로 설정된 카메라는 장면이 '기본'으로 구성된 모델을 실행합니다." } }, "face_recognition": { @@ -376,7 +380,7 @@ "description": "모든 카메라에 대한 얼굴 감지 및 인식 설정입니다. 카메라별로 재정의할 수 있습니다.", "model_size": { "label": "모델 크기", - "description": "얼굴 임베딩에 사용할 모델 크기(small/large)입니다. 큰 모델은 GPU가 필요할 수 있습니다." + "description": "얼굴 임베딩에 사용할 모델 크기(소형/대형)입니다. 대형 모델은 GPU가 필요할 수 있습니다." }, "unknown_score": { "label": "미확인 점수 임계값", @@ -493,18 +497,42 @@ "label": "실시간 품질", "description": "jsmpeg 스트림의 인코딩 품질입니다 (1 최고 품질, 31 최저 품질)." }, - "description": "jsmpeg 실시간 스트림의 해상도 및 품질을 제어하는 설정입니다. go2rtc를 사용하는 재스트리밍 카메라에는 영향을 미치지 않습니다." + "description": "jsmpeg 실시간 스트림의 해상도 및 품질을 제어하는 설정입니다. go2rtc를 사용하는 재스트리밍 카메라에는 영향을 미치지 않습니다.", + "transcode": { + "label": "트랜스코딩된 스트림", + "description": "go2rtc를 통해 요청 시 실시간으로 트랜스코딩되는 저화질 라이브 스트림입니다.", + "enabled": { + "label": "트랜스코딩된 스트림 사용", + "description": "사용자가 시청하는 동안 go2rtc가 실시간으로 트랜스코딩하는 저화질 라이브 스트림을 추가합니다." + }, + "source": { + "label": "소스 스트림", + "description": "트랜스코딩할 go2rtc 스트림입니다. 기본값은 첫 번째 라이브 스트림입니다." + }, + "qualities": { + "label": "화질 목록", + "description": "화질당 하나의 트랜스코딩된 스트림이 추가됩니다.", + "height": { + "label": "높이", + "description": "출력 높이(픽셀 단위)이며, 너비는 원본 화면비에 맞춰 자동 조정됩니다." + }, + "bitrate": { + "label": "비트레이트", + "description": "목표 및 최대 비디오 비트레이트(kbps 단위)입니다." + } + } + } }, "lpr": { "label": "차량 번호판 인식", "description": "감지 임계값, 포맷, 등록된 번호판 등을 포함한 차량 번호판 인식 설정입니다.", "enabled": { - "label": "LPR 활성화", - "description": "모든 카메라의 번호판 인식을 활성화하거나 비활성화합니다. 카메라별로 재정의할 수 있습니다." + "label": "차량 번호판 인식 활성화", + "description": "모든 카메라의 차량 번호판 인식을 활성화하거나 비활성화합니다. 카메라별로 재정의할 수 있습니다." }, "expire_time": { "label": "만료 시간(초)", - "description": "시야에서 사라진 번호판이 트래커에서 만료되기까지의 시간(초)입니다 (전용 LPR 카메라 전용)." + "description": "시야에서 사라진 번호판이 트래커에서 만료되기까지의 시간(초)입니다 (전용 번호판 인식 카메라 전용)." }, "min_area": { "label": "최소 번호판 크기", @@ -516,7 +544,7 @@ }, "model_size": { "label": "모델 크기", - "description": "텍스트 감지/인식에 사용할 모델 크기입니다. 대부분 'small' 사용을 권장합니다." + "description": "텍스트 감지/인식에 사용할 모델 크기입니다. 대부분 '소형' 사용을 권장합니다." }, "detection_threshold": { "label": "감지 임계값", @@ -544,7 +572,7 @@ }, "debug_save_plates": { "label": "디버그 번호판 저장", - "description": "LPR 성능 디버깅을 위해 번호판 크롭 이미지를 저장합니다." + "description": "차량 번호판 인식 성능 디버깅을 위해 번호판 크롭 이미지를 저장합니다." }, "device": { "label": "디바이스", @@ -992,6 +1020,10 @@ "response_style": { "label": "응답 스타일", "description": "생성된 검토 설명의 작성 스타일 프리셋입니다. 프리셋은 사용자에게 표시되는 제목, 요약 및 장면 설명의 톤과 세부 수준을 조정하며, '초기값'으로 설정하면 내장 프롬프트를 그대로 유지합니다." + }, + "frame_mode": { + "label": "프레임 모드", + "description": "모델에 프레임을 전달하는 방식입니다. '프레임'은 프롬프트 뒤에 프레임을 순서대로 전송하여 시퀀스를 자체적으로 잘 추적하는 모델에 적합합니다. '주석이 달린 프레임'은 각 프레임에 라벨을 붙이고 객체 추적 기반 메모를 함께 삽입하여, 반복되거나 반전되는 동작의 흐름을 놓치기 쉬운 모델에 유용합니다." } }, "description": "UI 및 저장소에서 사용하는 알림, 감지 및 GenAI 요약을 제어하는 설정입니다." @@ -1041,7 +1073,7 @@ }, "model_size": { "label": "모델 크기", - "description": "모델 크기 선택입니다 ('small'은 CPU에서 실행 가능하며, 'large'는 일반적으로 GPU가 필요함)." + "description": "모델 크기 선택입니다 ('소형'은 CPU에서 실행 가능하며, '대형'은 일반적으로 GPU가 필요합니다)." }, "device": { "label": "디바이스", @@ -1297,11 +1329,11 @@ }, "time_format": { "label": "시간 표기 형식", - "description": "UI에서 사용할 시간 표기 형식입니다 (browser, 12hour, 또는 24hour)." + "description": "UI에서 사용할 시간 표기 형식입니다 (브라우저 설정, 12시간제, 또는 24시간)." }, "unit_system": { "label": "단위 체계", - "description": "UI 및 MQTT에 표시할 단위 체계입니다 (metric: 미터법, imperial: 야드파운드법)." + "description": "UI 및 MQTT에 표시할 단위 체계입니다 (미터법, 야드파운드법)." } }, "genai": { @@ -1325,7 +1357,7 @@ }, "roles": { "label": "역할", - "description": "GenAI 역할 분담(chat, descriptions, embeddings)입니다. 역할당 하나의 제공업체가 매핑됩니다." + "description": "생성형 AI(GenAI) 역할(채팅, 설명 생성, 임베딩, 오디오 변환)로, 역할당 하나의 공급자만 지정할 수 있습니다. 기본적으로 채팅, 설명 생성, 임베딩만 부여되며, 오디오 변환(transcribe)은 명시적으로 지정해야 합니다." }, "provider_options": { "label": "제공업체 옵션", @@ -1470,10 +1502,10 @@ }, "models": { "label": "감지 모델", - "description": "객체 감지 모델과 각 모델이 실행되는 하드웨어입니다. 카메라는 자신의 detect.scene 값과 모델의 scene 값을 일치시켜 사용할 모델을 선택합니다.", + "description": "객체 감지 모델과 각 모델이 실행되는 하드웨어입니다. 카메라는 detect.scene 값을 모델의 scene 값과 일치시켜 모델을 선택하며, 일치하는 항목이 없으면 'default' 모델을 사용합니다.", "scene": { "label": "모델 장면", - "description": "이 모델이 사용되는 카메라 환경입니다. 카메라는 detect.scene을 일치하는 값으로 설정하여 모델을 선택하며, 별도로 설정하지 않은 카메라는 모두 '전체'를 사용합니다." + "description": "이 모델이 사용되는 카메라 환경의 이름입니다 (예: 'thermal'). 카메라는 detect.scene을 일치하는 값으로 설정하여 모델을 선택하며, 별도로 설정하지 않은 카메라는 'default' 모델을 사용합니다." }, "devices": { "label": "감지 하드웨어", diff --git a/web/public/locales/ko/config/validation.json b/web/public/locales/ko/config/validation.json index 22ac31bef4..8f3ed6a37f 100644 --- a/web/public/locales/ko/config/validation.json +++ b/web/public/locales/ko/config/validation.json @@ -33,6 +33,8 @@ "dimensionMustBeEven": "짝수여야 합니다." }, "models": { - "defaultRequired": "하나의 모델은 반드시 '모든 카메라' 장면을 사용해야 합니다. 그렇지 않으면 특정 장면을 선택하지 않은 카메라가 대체 사용할 모델이 없게 됩니다." + "defaultRequired": "하나의 모델은 반드시 '기본' 장면을 사용해야 합니다. 그렇지 않으면 특정 장면을 선택하지 않은 카메라가 대체 사용할 모델이 없게 됩니다.", + "sceneDuplicate": "각 모델은 서로 다른 장면을 사용해야 합니다.", + "sameModel": "{{scene}} 및 {{other}} 모델이 동일한 모델 파일을 사용하고 있습니다. 하나의 모델을 여러 장면에 나누어 실행하면 감지 작업이 별도의 감지기로 분산될 뿐이며, 이는 모든 하드웨어를 하나의 모델 아래 나열하는 것보다 속도가 느립니다." } } diff --git a/web/public/locales/ko/views/chat.json b/web/public/locales/ko/views/chat.json index d1046d39be..fbfd995c92 100644 --- a/web/public/locales/ko/views/chat.json +++ b/web/public/locales/ko/views/chat.json @@ -21,7 +21,7 @@ "attachment_picker_placeholder": "이벤트를 첨부해 주세요", "quick_reply_find_similar": "유사한 감지 기록 찾기", "quick_reply_tell_me_more": "자세한 설명 요청", - "quick_reply_when_else": "다른 시간대 감지 확인", + "quick_reply_when_else": "다른 시간대 감지 확인하시겠어요?", "quick_reply_find_similar_text": "이와 유사한 감지 기록을 찾아주세요.", "quick_reply_tell_me_more_text": "이 내용에 대해 더 자세히 알려주세요.", "quick_reply_when_else_text": "이 대상이 다른 때에 또 감지된 적이 있나요?", @@ -34,7 +34,7 @@ "starting_requests": { "show_recent_events": "최근 이벤트 표시", "show_camera_status": "카메라 상태 확인", - "recap": "부재 중 발생한 이벤트 요약", + "recap": "부재 중 발생한 이벤트를 요약할까요?", "watch_camera": "카메라 활동 감시" }, "starting_requests_prompts": { diff --git a/web/public/locales/ko/views/events.json b/web/public/locales/ko/views/events.json index 185be91753..3d60bdf383 100644 --- a/web/public/locales/ko/views/events.json +++ b/web/public/locales/ko/views/events.json @@ -87,7 +87,7 @@ "seekAria": "{{camera}} 플레이어를 {{time}} 위치로 이동", "filter": "필터", "filterDesc": "선택한 영역에 움직임이 있는 클립만 표시합니다.", - "filterClear": "초기화", + "filterClear": "지우기", "crop": "필터 영역으로 확대", "cropAria": "미리보기를 필터 영역으로 자르기 전환", "cropDesc": "전체 화면 대신 선택한 필터 영역으로 미리보기를 확대합니다." diff --git a/web/public/locales/ko/views/live.json b/web/public/locales/ko/views/live.json index 6313684469..65012c991c 100644 --- a/web/public/locales/ko/views/live.json +++ b/web/public/locales/ko/views/live.json @@ -6,7 +6,12 @@ "lowBandwidthMode": "저대역폭 모드", "twoWayTalk": { "enable": "양방향 대화 켜기", - "disable": "양방향 대화 끄기" + "disable": "양방향 대화 끄기", + "requiresWebRTC": "양방향 대화 기능을 사용하려면 WebRTC가 필요하지만 현재 사용할 수 없습니다", + "error": { + "microphone": "양방향 대화 기능에서 마이크에 접근할 수 없습니다", + "refused": "양방향 대화를 시작하지 못했습니다. 자세한 내용은 브라우저 콘솔을 확인하세요." + } }, "cameraAudio": { "enable": "카메라 오디오 켜기", @@ -129,7 +134,8 @@ } }, "debug": { - "picker": "디버그 모드에서는 스트림을 선택할 수 없습니다. 디버그 뷰는 항상 detect 역할이 할당된 스트림을 사용합니다." + "picker": "디버그 모드에서는 스트림을 선택할 수 없습니다. 디버그 뷰는 항상 detect 역할이 할당된 스트림을 사용합니다.", + "technology": "디버그 모드에서는 스트리밍 기술을 선택할 수 없습니다." }, "twoWayTalk": { "tips": "기기에서 해당 기능을 지원해야 하며 양방향 대화를 위해 WebRTC가 설정되어 있어야 합니다.", @@ -138,11 +144,49 @@ }, "lowBandwidth": { "tips": "버퍼링 또는 스트림 오류로 인해 실시간 화면이 저대역폭 모드로 전환되었습니다.", - "resetStream": "스트림 초기화" + "resetStream": "스트림 초기화", + "force": { + "label": "저대역폭 모드 강제 적용", + "desc": "선택된 스트림 대신 항상 Frigate 내장 저대역폭 피드를 재생합니다. 어떤 네트워크 환경에서도 작동하지만 화질이 낮고 오디오가 제공되지 않습니다." + } }, "playInBackground": { "label": "백그라운드에서 재생", "tips": "플레이어가 화면에서 가려져 있을 때도 스트리밍을 계속 유지합니다." + }, + "auto": { + "label": "자동", + "tips": "네트워크 연결 상태에 맞춰 스트림을 자동으로 전환합니다", + "selected": "자동 · {{stream}}", + "floorLabel": "저대역폭", + "retry": "최고 화질로 시도", + "reason": { + "bandwidth": "네트워크 연결 속도 문제로 {{stream}} 스트림을 재생 중입니다", + "codec": "이 브라우저에서 고화질 스트림을 재생할 수 없어 {{stream}} 스트림을 재생 중입니다", + "saveData": "데이터 절약 모드가 켜져 있어 {{stream}} 스트림을 재생 중입니다", + "floor": "대역폭을 충족하는 스트림이 없어 저대역폭 피드를 재생 중입니다" + } + }, + "mode": "스트리밍 기술", + "technology": { + "description": "선호하는 스트리밍 기술을 선택하세요. 재생 또는 네트워크 오류 발생 시 Frigate가 저대역폭 모드로 자동 전환될 수 있습니다.", + "name": { + "mse": "MSE", + "webrtc": "WebRTC", + "jsmpeg": "JSMpeg" + }, + "tips": { + "mse": "권장 기본값, 폭넓은 호환성 및 부드러운 재생", + "webrtc": "추가 설정이 필요하며 일부 기기에서는 지원되지 않을 수 있음" + }, + "unavailable": { + "browser": "사용 중인 브라우저가 WebRTC를 지원하지 않습니다.", + "not-configured": "WebRTC가 구성되지 않았습니다. go2rtc webrtc 후보 또는 ice_servers를 설정하세요.", + "unreachable": "WebRTC에 연결할 수 없습니다. 8555 포트에 접근 가능한지, STUN/TURN 서버 설정이 올바른지 확인하세요.", + "video-codec": "이 스트림의 비디오 코덱은 이 브라우저의 WebRTC에서 지원되지 않습니다.", + "audio-codec": "이 스트림의 오디오 코덱은 WebRTC에서 지원되지 않습니다. go2rtc를 사용하여 opus 또는 G.711로 트랜스코딩하세요.", + "checking": "WebRTC 사용 가능 여부 확인 중…" + } } }, "cameraSettings": { diff --git a/web/public/locales/ko/views/settings.json b/web/public/locales/ko/views/settings.json index a3049e3f90..7270faaf9f 100644 --- a/web/public/locales/ko/views/settings.json +++ b/web/public/locales/ko/views/settings.json @@ -352,17 +352,24 @@ "liveFallbackTimeout": { "label": "실시간 플레이어 폴백 제한 시간", "desc": "카메라의 고화질 실시간 스트림을 사용할 수 없을 때, 저대역폭 모드로 전환하기까지 대기할 시간(초)입니다. 기본값: 3." + }, + "naturalAspectLayout": { + "label": "원본 화면비 사용", + "desc": "카메라 그룹 라이브 뷰 대시보드에서 각 타일의 크기를 카메라의 원본 화면비에 맞춥니다. 비활성화하면 타일이 표준 와이드, 가로형 또는 세로형 규격에 맞춰 정렬됩니다.", + "descNote": "이 설정을 켜거나 끄면 모든 카메라 그룹 라이브 대시보드에 저장된 레이아웃이 초기화됩니다. 이후 수동으로 다시 구성해야 합니다." } }, "storedLayouts": { "title": "저장된 레이아웃", "desc": "카메라 그룹 내 카메라 배치를 드래그하거나 크기를 조정할 수 있습니다. 배치 위치는 브라우저의 로컬 저장소에 저장됩니다.", - "clearAll": "모든 레이아웃 초기화" + "clearAll": "모든 레이아웃 초기화", + "clearConfirm": "이 브라우저에 저장된 모든 카메라 그룹 레이아웃이 삭제됩니다. 이 작업은 되돌릴 수 없습니다." }, "cameraGroupStreaming": { "title": "카메라 그룹 스트리밍 설정", "desc": "각 카메라 그룹의 스트리밍 설정은 브라우저의 로컬 저장소에 저장됩니다.", - "clearAll": "모든 스트리밍 설정 초기화" + "clearAll": "모든 스트리밍 설정 초기화", + "clearConfirm": "이 브라우저에 저장된 모든 카메라 그룹의 스트리밍 설정이 삭제됩니다. 이 작업은 되돌릴 수 없습니다." }, "recordingsViewer": { "title": "녹화 영상 뷰어", @@ -416,7 +423,10 @@ "preferences_other": "UI 환경설정 ({{count}}개 설정)", "unknownGroups_other": "카메라 그룹 {{groups}}이(가) 이 서버에 없습니다. 해당 설정은 저장되지만 사용되지 않습니다.", "unknownCameras_other": "카메라 {{cameras}}이(가) 이 서버에 없습니다. 해당 스트리밍 설정은 무시됩니다.", - "confirm": "가져오기" + "confirm": "가져오기", + "layoutsPhone": "항상 표준 그리드를 사용하는 스마트폰 환경에서는 카메라 그룹 레이아웃을 가져오지 않습니다.", + "layoutsModeOn": "이 레이아웃은 카메라 화면비 기반 타일 크기를 사용하므로, 가져오기를 진행하면 \"원본 화면비 사용\" 설정도 함께 켜집니다.", + "layoutsModeOff": "이 레이아웃은 표준 타일 크기를 사용하므로, 가져오기를 진행하면 \"원본 화면비 사용\" 설정도 함께 꺼집니다." } } }, @@ -445,11 +455,11 @@ "desc": "시맨틱 검색 임베딩에 사용할 모델 크기입니다.", "small": { "title": "소형", - "desc": "small은 양자화된 모델을 사용하여 RAM을 적게 차지하고 CPU에서 더 빠르게 실행되며, 임베딩 품질 저하도 거의 없습니다." + "desc": "소형은 양자화된 모델을 사용하여 RAM을 적게 차지하고 CPU에서 더 빠르게 실행되며, 임베딩 품질 저하도 거의 없습니다." }, "large": { "title": "대형", - "desc": "large는 전체 Jina 모델을 사용하며 환경이 지원될 경우 GPU에서 자동으로 실행됩니다." + "desc": "대형 모델은 전체 Jina 모델을 사용하며 환경이 지원될 경우 GPU에서 자동으로 실행됩니다." } } }, @@ -461,11 +471,11 @@ "desc": "얼굴 인식에 사용할 모델 크기입니다.", "small": { "title": "소형", - "desc": "small은 대부분의 CPU에서 효율적으로 구동되는 FaceNet 얼굴 임베딩 모델을 사용합니다." + "desc": "소형은 대부분의 CPU에서 효율적으로 구동되는 FaceNet 얼굴 임베딩 모델을 사용합니다." }, "large": { - "title": "large", - "desc": "large는 ArcFace 얼굴 임베딩 모델을 사용하며 환경이 지원될 경우 GPU에서 자동으로 구동됩니다." + "title": "대형", + "desc": "대형 모델은 ArcFace 얼굴 임베딩 모델을 사용하며 환경이 지원될 경우 GPU에서 자동으로 구동됩니다." } } }, @@ -514,7 +524,10 @@ "heading_other": "이 전역 섹션에는 카메라 {{count}}대에서 재정의된 필드가 포함되어 있습니다.", "othersField_other": "기타 {{count}}개", "profilePrefix": "{{profile}} 프로필: {{fields}}" - } + }, + "overriddenLive": "재지정됨 (라이브)", + "overriddenLiveTooltip": "이 카메라는 설정에 저장된 값과 다른 값으로 실행 중입니다 (설정값은 여기에 표시됨). 라이브 뷰, MQTT 또는 활성 프로필에 의해 Frigate 실행 중에 변경될 수 있습니다.", + "overriddenLiveValue": "현재 적용된 값: {{value}}" }, "menuDot": { "overrideGlobal": "이 섹션은 전역 구성을 재정의합니다", @@ -815,7 +828,7 @@ "cameraType": { "title": "카메라 유형", "label": "카메라 유형", - "description": "각 카메라의 유형을 설정합니다. 전용 LPR 카메라는 먼 거리의 차량 번호판을 포착하기 위해 강력한 광학 줌을 갖춘 단일 목적 카메라입니다. 번호판에 초점이 맞춰진 전용 카메라가 아니라면 일반 카메라 유형을 사용해야 합니다.", + "description": "각 카메라의 유형을 설정합니다. 전용 번호판 인식 카메라는 먼 거리의 차량 번호판을 포착하기 위해 강력한 광학 줌을 갖춘 단일 목적 카메라입니다. 번호판에 초점이 맞춰진 전용 카메라가 아니라면 일반 카메라 유형을 사용해야 합니다.", "normal": "일반", "dedicatedLpr": "전용 LPR", "saveSuccess": "{{cameraName}}의 카메라 유형을 업데이트했습니다. 변경 사항을 적용하려면 Frigate를 재시작하세요." @@ -874,7 +887,7 @@ "face_recognition": "얼굴 인식", "semantic_search": "시맨틱 검색", "genai": "생성형 AI", - "type": "카메라 유형 (일반 / 전용 LPR)", + "type": "카메라 유형 (일반 / 전용 번호판 인식용)", "profiles": "프로필", "detect": "감지 해상도", "zones": "구역", @@ -1018,7 +1031,7 @@ }, "delete": { "title": "삭제 확인", - "desc": "정말로 {{type}} {{name}}을(를) 삭제하시겠습니까?", + "desc": "정말 {{type}} {{name}}을(를) 삭제하시겠습니까?", "success": "{{name}}이(가) 삭제되었습니다." }, "revertOverride": { @@ -1252,7 +1265,8 @@ "actions": "작업", "noRoles": "사용자 정의 역할이 없습니다.", "editCameras": "카메라 수정", - "deleteRole": "역할 삭제" + "deleteRole": "역할 삭제", + "cameraCount_other": "{{count}}개 카메라" }, "toast": { "success": { @@ -1307,8 +1321,8 @@ "desc": "Frigate이 브라우저에서 실행 중이거나 PWA로 설치된 경우 기기로 푸시 알림을 기본 전송할 수 있습니다." }, "notificationUnavailable": { - "desc": "웹 푸시 알림을 사용하려면 보안 컨텍스트(https://…)가 필요합니다. 이는 브라우저 자체의 제한 사항입니다. 알림을 사용하려면 Frigate에 보안 연결로 접속하세요.", - "descPwa": "iOS의 경우 Frigate이 홈 화면에 추가되어 있어야만 웹 푸시 알림을 사용할 수 있습니다. 공유 메뉴를 열고 홈 화면에 추가를 선택한 다음, 새로 생성된 아이콘으로 Frigate을 실행하여 기기를 알림에 등록하세요." + "desc": "웹 푸시 알림을 사용하려면 보안 연결(https://…)이 필요합니다. 이는 브라우저 제한 사항입니다. 알림을 사용하려면 보안 연결을 통해 Frigate에 접속하세요.", + "descPwa": "iOS에서는 Frigate를 홈 화면에 추가한 경우에만 웹 푸시 알림을 사용할 수 있습니다. 공유 메뉴를 열고 '홈 화면에 추가'를 선택한 뒤, 생성된 새 아이콘으로 Frigate를 열어 이 기기를 알림에 등록하세요." }, "globalSettings": { "title": "전역 설정", @@ -1522,7 +1536,15 @@ "noGo2rtcStreams": "설정된 go2rtc 스트림 없음", "availableStreams": "사용 가능한 스트림", "useCustom": "\"{{value}}\" 사용", - "addStream": "스트림 추가" + "addStream": "스트림 추가", + "reorderHandle": "드래그하여 순서 변경", + "transcodedBadge": "트랜스코딩됨", + "autoOrder": "자동 정렬", + "autoOrderTips": "각 스트림의 비트레이트를 측정하여 높은 순서대로 정렬합니다", + "measuring": "측정 중…", + "rate": "{{kbps}} kbps", + "rateSet": "{{kbps}} kbps (지정됨)", + "rateFailed": "측정 실패" }, "timezone": { "defaultOption": "브라우저 시간대 사용" @@ -1543,8 +1565,8 @@ "selectPreset": "프리셋 선택", "manualPlaceholder": "FFmpeg 인수 입력", "presetLabels": { - "preset-rpi-64-h264": "Raspberry Pi (H.264)", - "preset-rpi-64-h265": "Raspberry Pi (H.265)", + "preset-rpi-64-h264": "라즈베리 파이 (H.264)", + "preset-rpi-64-h265": "라즈베리 파이 (H.265)", "preset-vaapi": "VAAPI (Intel/AMD GPU)", "preset-intel-qsv-h264": "Intel QuickSync (H.264)", "preset-intel-qsv-h265": "Intel QuickSync (H.265)", @@ -1566,7 +1588,9 @@ "preset-record-generic-audio-aac": "녹화 (범용 + 오디오 AAC 변환)", "preset-record-mjpeg": "녹화 - MJPEG 카메라", "preset-record-jpeg": "녹화 - JPEG 카메라", - "preset-record-ubiquiti": "녹화 - Ubiquiti 카메라" + "preset-record-ubiquiti": "녹화 - Ubiquiti 카메라", + "preset-apple-silicon-h264": "Apple Silicon (H.264)", + "preset-apple-silicon-h265": "Apple Silicon (H.265)" }, "sameAsRecord": "녹화 출력 인수와 동일" }, @@ -1663,7 +1687,8 @@ "options": { "embeddings": "임베딩", "descriptions": "설명", - "chat": "채팅" + "chat": "채팅", + "transcribe": "오디오 변환" } }, "semanticSearchModel": { @@ -1722,6 +1747,26 @@ "alerts": "알림", "detections": "감지" } + }, + "liveTranscode": { + "title": "트랜스코딩된 스트림", + "description": "사용자가 시청하는 동안 go2rtc가 실시간으로 트랜스코딩하는 저화질 스트림을 추가합니다.", + "unavailable": "트랜스코딩된 스트림을 사용하려면 소스로 읽어올 go2rtc 스트림이 필요합니다. 먼저 go2rtc 스트림 설정에서 스트림을 추가하세요.", + "enable": "트랜스코딩된 스트림 사용", + "source": "소스 스트림", + "height": "높이", + "heightOption": "{{height}}p", + "bitrate": "비트레이트 (kbps)", + "addQuality": "화질 추가", + "removeQuality": "화질 제거" + }, + "audioTranscriptionModel": { + "placeholder": "모델 선택…", + "builtIn": "내장 모델", + "genaiProviders": "GenAI 공급자" + }, + "audioTranscriptionModelSize": { + "notApplicable": "GenAI 공급자에는 해당 없음" } }, "globalConfig": { @@ -1754,7 +1799,8 @@ "saveAllSuccess_other": "모든 {{count}}개 섹션을 성공적으로 저장했습니다.", "saveAllSuccessRestartRequired_other": "모든 {{count}}개 섹션을 성공적으로 저장했습니다. 변경 사항을 적용하려면 Frigate를 재시작하세요.", "saveAllPartial_other": "총 {{totalCount}}개 중 {{successCount}}개 섹션 저장 완료. {{failCount}}개 실패.", - "saveAllFailure": "모든 섹션 저장 실패." + "saveAllFailure": "모든 섹션 저장 실패.", + "go2rtcSyncFailed": "저장되었지만 go2rtc 설정을 업데이트하지 못했습니다. 적용하려면 Frigate를 재시작하세요." }, "profiles": { "title": "프로필", @@ -1888,14 +1934,18 @@ "imageSource": { "recordings": "녹화 영상", "previews": "미리보기" + }, + "frameMode": { + "frames": "프레임", + "annotated_frames": "주석이 포함된 프레임" } }, "logger": { "logLevel": { - "debug": "Debug", - "info": "Info", + "debug": "디버그", + "info": "정보", "warning": "경고", - "error": "Error", + "error": "오류", "critical": "심각" } }, @@ -1911,21 +1961,26 @@ } }, "modelSize": { - "small": "작음 (Small)", - "large": "큼 (Large)" + "small": "소형", + "large": "대형" }, "configMessages": { "review": { "recordDisabled": "녹화가 비활성화되어 있어 다시보기 항목이 생성되지 않습니다.", "detectDisabled": "객체 감지가 비활성화되어 있습니다. 다시보기 항목은 알림 및 감지를 분류하기 위해 감지된 객체가 필요합니다.", "allNonAlertDetections": "알림이 아닌 모든 활동은 일반 감지 이벤트로 포함됩니다.", - "genaiImageSourceRecordingsRecordDisabled": "이미지 소스가 '녹화 영상(recordings)'으로 설정되어 있지만 녹화가 비활성화되어 있습니다. Frigate이 미리보기 이미지로 대체합니다." + "genaiImageSourceRecordingsRecordDisabled": "이미지 소스가 '녹화 영상(recordings)'으로 설정되어 있지만 녹화가 비활성화되어 있습니다. Frigate이 미리보기 이미지로 대체합니다.", + "recordRuntimeDisabled": "설정 파일에서는 녹화가 활성화되어 있으나 현재 이 카메라의 녹화 기능이 꺼져 있어 검토 항목이 생성되지 않습니다. 카메라 라이브 뷰에서 다시 켜거나, 활성 프로필에서 비활성화하고 있는지 확인하세요.", + "detectRuntimeDisabled": "설정 파일에서는 객체 감지가 활성화되어 있으나 현재 이 카메라의 객체 감지 기능이 꺼져 있습니다. 검토 항목에서 알림과 감지를 분류하려면 감지된 객체가 필요합니다. 카메라 라이브 뷰에서 다시 켜거나, 활성 프로필에서 비활성화하고 있는지 확인하세요.", + "genaiImageSourceRecordingsRecordRuntimeDisabled": "이미지 소스가 'recordings'로 설정되어 있으나, 설정 파일의 활성화 여부와 관계없이 현재 이 카메라의 녹화 기능이 꺼져 있습니다. 미리보기 이미지를 대체 사용합니다." }, "audio": { "noAudioRole": "audio 역할이 정의된 스트림이 없습니다. 오디오 감지가 작동하려면 스트림에 audio 역할을 지정해야 합니다." }, "audioTranscription": { - "audioDetectionDisabled": "이 카메라에 오디오 감지가 활성화되어 있지 않습니다. 오디오 텍스트 변환을 사용하려면 오디오 감지가 켜져 있어야 합니다." + "audioDetectionDisabled": "이 카메라에 오디오 감지가 활성화되어 있지 않습니다. 오디오 텍스트 변환을 사용하려면 오디오 감지가 켜져 있어야 합니다.", + "audioDetectionRuntimeDisabled": "설정 파일에서는 오디오 감지가 활성화되어 있으나 현재 이 카메라의 오디오 감지 기능이 꺼져 있어 오디오 텍스트 변환이 실행되지 않습니다. 카메라 라이브 뷰에서 다시 켜거나, 활성 프로필에서 비활성화하고 있는지 확인하세요.", + "genaiProviderSelected": "GenAI 공급자가 선택되어 장치 및 모델 크기 설정은 무시됩니다." }, "detect": { "fpsGreaterThanFive": "감지 FPS를 5보다 높게 설정하는 것은 권장되지 않습니다. 높은 값은 성능 문제를 일으킬 수 있으며 감지 품질에 실질적인 이점이 없습니다.", @@ -1936,7 +1991,8 @@ "squareResolution": "정사각형 감지 해상도는 일반적이지 않습니다. 감지 너비와 높이는 객체 감지 모델의 크기가 아니라 카메라의 화면 비율(예: 16:9)과 일치해야 합니다. 가로세로 비율이 맞지 않으면 이미지가 왜곡되어 감지 정확도가 떨어질 수 있습니다.", "resolutionHigh": "이 감지 해상도는 권장값보다 높아 감지 정확도 개선 없이 자원 소모만 크게 증가시킬 수 있습니다. 대부분의 카메라에는 1080p 이하의 감지 해상도를 권장합니다.", "globalResolutionMultipleCameras": "여러 대의 카메라가 구성된 상태에서 전역 감지 해상도가 설정되어 있습니다. 모든 카메라의 해상도와 화면 비율이 동일하지 않다면, 각 카메라의 기본 화면 비율에 맞게 카메라별로 감지 너비와 높이를 지정해야 합니다.", - "sceneWithoutModel": "이 장면에 대해 구성된 감지 모델이 없어, 이 카메라는 '모든 카메라' 장면의 모델을 대체 사용합니다. 카메라 전용 모델을 사용하려면 이 장면에 대한 모델을 추가하세요." + "sceneWithoutModel": "이 장면에 대해 구성된 감지 모델이 없어, 이 카메라는 '기본' 모델을 대체 사용합니다. 카메라 전용 모델을 사용하려면 이 장면에 대한 모델을 추가하세요.", + "runtimeDisabled": "설정 파일에서는 객체 감지가 활성화되어 있으나 현재 이 카메라의 객체 감지 기능이 꺼져 있습니다. 카메라 라이브 뷰에서 다시 켜거나 활성 프로필의 비활성화 상태가 해제될 때까지 스냅샷, 검토 항목 및 얼굴 인식, 번호판 인식, 생성형 AI 등의 확장 기능이 작동하지 않습니다." }, "model": { "optimizedFor320": "Frigate은 대부분의 환경에 가장 적합한 320x320 모델에 최적화되어 있습니다. 640x640 모델은 처리 속도가 느리며 특수한 시나리오에서만 유용합니다.", @@ -1952,45 +2008,48 @@ "faceRecognition": { "globalDisabled": "이 카메라에서 얼굴 인식 기능을 사용하려면 먼저 전역 확장 기능에서 얼굴 인식을 활성화해야 합니다.", "personNotTracked": "얼굴 인식을 사용하려면 'person' 객체가 추적되어야 합니다. 이 카메라의 객체 설정에서 'person'을 활성화하세요.", - "modelSizeLarge": "'large' 모델은 원활한 동작을 위해 GPU 또는 NPU가 필요합니다. CPU 전용 시스템에서는 'small' 모델을 사용하세요." + "modelSizeLarge": "'대형' 모델은 원활한 동작을 위해 GPU 또는 NPU가 필요합니다. CPU 전용 시스템에서는 '소형' 모델을 사용하세요." }, "lpr": { "globalDisabled": "이 카메라에서 차량 번호판 인식 기능을 사용하려면 먼저 전역 확장 기능에서 번호판 인식을 활성화해야 합니다.", "vehicleNotTracked": "차량 번호판 인식을 사용하려면 차량 객체가 추적되어야 합니다. 이 카메라의 객체 설정에서 'car' 또는 다른 차량 유형을 활성화하세요.", - "modelSizeLarge": "'large' 모델은 여러 줄로 된 번호판 형식에 최적화되어 있습니다. 사용 지역에 여러 줄 번호판이 사용되지 않는 한, 'small' 모델이 'large'보다 성능이 훨씬 우수하므로 'small' 사용을 권장합니다." + "modelSizeLarge": "'대형' 모델은 여러 줄로 된 번호판 형식에 최적화되어 있습니다. 사용 지역에 여러 줄 번호판이 사용되지 않는 한, '소형' 모델이 '대형'보다 성능이 훨씬 우수하므로 '소형' 사용을 권장합니다." }, "record": { "noRecordRole": "record 역할이 지정된 스트림이 없습니다. 녹화 기능이 작동하지 않습니다.", - "noRecordSubRole": "서브 녹화 역할이 정의된 스트림이 없습니다. 서브 스트림 녹화가 작동하지 않습니다." + "noRecordSubRole": "서브 녹화 역할이 정의된 스트림이 없습니다. 서브 스트림 녹화가 작동하지 않습니다.", + "profileBaseDisabled": "카메라 기본 설정에서 녹화가 비활성화되어 있어, 프로필에서 활성화해도 적용되지 않습니다. 기본 설정에서 녹화를 켜고 프로필을 사용해 비활성화하도록 변경하세요." }, "snapshots": { - "detectDisabled": "객체 감지가 비활성화되어 있습니다. 스냅샷은 추적된 객체로부터 생성되므로 스냅샷이 생성되지 않습니다." + "detectDisabled": "객체 감지가 비활성화되어 있습니다. 스냅샷은 추적된 객체로부터 생성되므로 스냅샷이 생성되지 않습니다.", + "detectRuntimeDisabled": "설정 파일에서는 객체 감지가 활성화되어 있으나 현재 이 카메라의 객체 감지 기능이 꺼져 있어 스냅샷이 생성되지 않습니다. 카메라 라이브 뷰에서 다시 켜거나, 활성 프로필에서 비활성화하고 있는지 확인하세요." }, "semanticSearch": { - "jinav2SmallModelSize": "Jina V2 모델의 'small' 크기는 RAM 소모량과 추론 비용이 높습니다. 외장 GPU 환경에서 'large' 모델을 사용하는 것을 권장합니다." + "jinav2SmallModelSize": "Jina V2 모델의 '소형' 모델은 RAM 소모량과 추론 비용이 높습니다. 외장 GPU 환경에서 '대형' 모델을 사용하는 것을 권장합니다." }, "onvif": { "autotrackingNoZones": "자동 추적에는 최소 하나 이상의 구역이 필요합니다. '마스크 / 구역'에서 이 카메라에 구역을 정의한 다음, 아래에서 필수 구역으로 지정하세요." }, "birdseye": { - "objectTrackingDetectDisabled": "버드아이에 추적된 객체가 포함되어 있지만, 이 카메라의 객체 감지 기능이 비활성화되어 있습니다. 카메라가 버드아이에 표시되지 않습니다." + "objectTrackingDetectDisabled": "버드아이에 추적된 객체가 포함되어 있지만, 이 카메라의 객체 감지 기능이 비활성화되어 있습니다. 카메라가 버드아이에 표시되지 않습니다.", + "objectTrackingDetectRuntimeDisabled": "버드아이에 추적된 객체가 포함되어 있으나, 설정 파일의 활성화 여부와 관계없이 현재 이 카메라의 객체 감지 기능이 꺼져 있습니다. 카메라 라이브 뷰에서 다시 켜거나 활성 프로필의 비활성화 상태가 해제될 때까지 카메라가 버드아이에 표시되지 않습니다." + }, + "notifications": { + "profileBaseDisabled": "기본 설정에서 알림이 활성화된 카메라가 없어, 프로필에서 활성화해도 적용되지 않습니다. 최소 한 대 이상의 카메라 기본 설정에서 알림을 켜세요." + }, + "live": { + "noGo2rtcStream": "이 카메라의 라이브 뷰는 낮은 프레임 레이트와 오디오가 지원되지 않는 기본 플레이어를 사용하고 있습니다. 더 부드러운 영상과 오디오를 이용하려면 이 카메라에 대한 go2rtc 스트림을 설정하세요." } }, "detectionModels": { "title": "감지 모델", - "description": "객체 감지 모델과 각 모델이 실행되는 하드웨어를 구성합니다. 카메라는 감지 설정의 장면에 따라 모델을 선택합니다.", + "description": "객체 감지 모델과 각 모델이 실행되는 하드웨어를 구성합니다. 열화상 카메라처럼 일부 카메라에 다르게 학습된 모델이 필요한 경우에만 장면에 맞는 모델을 추가하세요. 카메라는 감지 설정에 지정된 장면에 따라 모델을 선택합니다.", "addModel": "모델 추가", "cameras_other": "{{count}}개 카메라", "scene": { "label": "장면", - "description": "이 모델이 사용되는 환경입니다. 카메라는 감지 설정에서 동일한 장면을 지정하여 모델을 선택하며, 별도로 설정하지 않은 카메라는 '전체' 장면의 모델을 사용합니다." - }, - "scenes": { - "all": "모든 카메라", - "indoor": "실내", - "outdoor": "실외", - "indoor_thermal": "실내 열화상", - "outdoor_thermal": "실외 열화상" + "description": "이 모델이 적용될 카메라 환경의 이름입니다. 카메라는 감지 설정에서 동일한 장면을 지정하여 모델을 선택하며, 별도로 설정하지 않은 카메라는 기본(Default) 모델을 사용합니다. 동일한 모델 파일을 사용하는 모델들은 하나로 통합되므로, 하드웨어 분산을 목적으로 장면을 나누지 마시고 서로 다른 모델을 실행할 때만 장면을 구분하세요.", + "placeholder": "열영상" }, "hardware": { "label": "하드웨어", @@ -2003,7 +2062,7 @@ "unrecognized": "이 모델은 시스템에서 찾을 수 없는 하드웨어로 구성되어 있습니다: {{devices}}", "description": "이 모델이 감지를 실행할 하드웨어입니다.", "detectorCountDescription": "이 하드웨어에서 실행할 감지 프로세스 수입니다. 감지기 수가 많을수록 더 많은 카메라를 처리할 수 있지만 추가 장치 메모리가 소모됩니다.", - "unitsDescription": "각 장치 단위는 자체 감지 프로세스를 실행합니다. 다른 모델에서 이미 사용 중인 장치 단위는 선택할 수 없습니다." + "unitsDescription": "각 장치 단위는 자체 감지 프로세스를 실행합니다. Coral처럼 공유할 수 없는 장치 단위는 하나의 모델에서만 사용할 수 있습니다." }, "tabs": { "plus": "Frigate+", @@ -2011,6 +2070,9 @@ }, "plusModel": { "noModelSelected": "Frigate+ 모델을 선택하세요" + }, + "scenes": { + "default": "기본값" } } } diff --git a/web/public/locales/ko/views/system.json b/web/public/locales/ko/views/system.json index a4faf082e6..94937d994a 100644 --- a/web/public/locales/ko/views/system.json +++ b/web/public/locales/ko/views/system.json @@ -245,7 +245,10 @@ "cameraSkippedDetections": "{{camera}} 카메라가 프레임의 {{pct}}%에서 감지를 건너뛰고 있습니다", "systemNotices_one": "{{count}}개의 시스템 알림", "systemNotices_other": "{{count}}개의 시스템 알림", - "retentionUnmet": "디스크 공간 확보를 위해 보관 기간이 만료되기 전에 녹화본이 삭제되고 있습니다" + "retentionUnmet": "디스크 공간 확보를 위해 보관 기간이 만료되기 전에 녹화본이 삭제되고 있습니다", + "moreMessages_one": "+{{count}}개", + "moreMessages_other": "+{{count}}개", + "reindexEmbeddingsFailed": "임베딩 재인덱싱 실패, 로그를 확인하세요" }, "enrichments": { "title": "확장 기능", @@ -282,13 +285,12 @@ "openSettings": "설정 열기", "openLink": "링크 열기", "noMatches": "필터에 맞는 알림이 없습니다", - "firstSeen_one": "최초 감지: {{time}}", - "firstSeen_other": "최초 감지: {{time}} · {{count}}회", "filter": { "severity": "심각도", "error": "오류", "warning": "경고", - "info": "정보" + "info": "정보", + "showHidden": "숨김 항목 표시" }, "kinds": { "detector_stuck": "감지기 {{detector}}의 응답이 없어 재시작되었습니다", @@ -297,12 +299,28 @@ "shm_too_low": "/dev/shm 할당량({{total}} MB)을 최소 {{min}} MB 이상으로 늘려야 합니다", "failed_login_one": "{{user}} 계정 로그인 시도 실패", "failed_login_other": "{{user}} 계정 로그인 시도 실패", - "update_available": "Frigate {{version}} 버전을 사용할 수 있습니다" + "update_available": "Frigate {{version}} 버전을 사용할 수 있습니다", + "ffmpeg_high_cpu": "FFmpeg CPU 사용량이 높음 (평균 {{cpu}}%)", + "detect_high_cpu": "감지 프로세스 CPU 사용량이 높음 (평균 {{cpu}}%)", + "object_processing_behind": "추적 객체 처리 속도가 따라가지 못해 카메라 프레임이 누락되었습니다. CPU 사용량을 확인하고, 컨테이너나 가상 머신(VM)의 CPU 제한 또는 코어 고정(pinning) 설정으로 인해 Frigate에 할당된 CPU가 너무 부족한 것은 아닌지 확인하세요" }, "streamPrefix": "스트림 {{index}}: {{message}}", "streamPrefixRestream": "스트림 {{index}} (go2rtc 경유): {{message}}", "streamProbeFailed": "스트림 {{index}} 정보를 감지할 수 없음: {{error}}", - "cameraProbeFailed": "스트림 정보를 감지할 수 없음: {{error}}" + "cameraProbeFailed": "스트림 정보를 감지할 수 없음: {{error}}", + "acknowledge": "확인", + "acknowledgeHint": "이 문제가 다시 발생할 때까지 숨기기", + "mute": "음소거", + "muteHint": "다시 표시하지 않음", + "unmute": "음소거 해제", + "showAgain": "다시 표시", + "hiddenTitle": "숨김", + "noneHidden": "숨겨진 알림 없음", + "showAll": "모두 다시 표시", + "showAllTitle": "숨겨진 알림을 모두 다시 표시하시겠습니까?", + "showAllDesc": "확인 및 음소거된 모든 알림(설정 및 스트림 점검 항목 포함)이 알림 목록으로 다시 복원됩니다.", + "acknowledgedAt": "확인됨: {{time}}", + "mutedAt": "음소거됨: {{time}}" }, "hardware": { "title": "하드웨어", @@ -353,5 +371,7 @@ "streamsFlagged_one": "{{count}}개에 문제 있음 (알림에 나열됨)", "streamsFlagged_other": "{{count}}개에 문제 있음 (알림에 나열됨)" } - } + }, + "showAllTabs": "모든 탭 표시", + "showLessTabs": "간략히 표시" }