Translated using Weblate (Korean)
CI / AMD64 Build (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (474 of 474 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (141 of 141 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (1295 of 1295 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (145 of 145 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (60 of 60 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (86 of 86 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (100 of 100 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (26 of 26 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (108 of 108 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (500 of 500 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (500 of 500 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (60 of 60 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (1295 of 1295 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (86 of 86 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (474 of 474 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (240 of 240 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (500 of 500 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (6 of 6 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (141 of 141 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (23 of 23 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (800 of 800 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (185 of 185 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (145 of 145 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (74 of 74 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (100 of 100 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (49 of 49 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (108 of 108 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (67 of 67 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (26 of 26 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: ecomen <skymbj@naver.com>
Co-authored-by: sinfancy <yujsjs@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/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-groups/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-validation/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-chat/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-replay/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ko/
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 - Groups
Translation: Frigate NVR/Config - Validation
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-auth
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-icons
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-chat
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-configeditor
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-motionSearch
Translation: Frigate NVR/views-recording
Translation: Frigate NVR/views-replay
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
This commit is contained in:
Hosted Weblate
2026-09-05 06:33:55 -05:00
committed by Josh Hawkins
co-authored by ecomen sinfancy
parent dfefc5a64b
commit 6ceb370abb
27 changed files with 6001 additions and 849 deletions
+72 -1
View File
@@ -1 +1,72 @@
{}
{
"documentTitle": "채팅 - Frigate",
"title": "Frigate 채팅",
"subtitle": "카메라 관리 및 인사이트 분석을 돕는 AI 어시스턴트입니다",
"placeholder": "무엇이든 물어보세요...",
"error": "문제가 발생했습니다. 다시 시도해 주세요.",
"processing": "처리 중입니다...",
"toolsUsed": "사용된 도구: {{tools}}",
"showTools": "도구 보기 ({{count}}개)",
"hideTools": "도구 숨기기",
"call": "호출",
"result": "결과",
"arguments": "인수:",
"response": "응답:",
"attachment_chip_label": "{{camera}}의 {{label}}",
"attachment_chip_remove": "첨부 파일 삭제",
"open_in_explore": "탐색에서 열기",
"attach_event_aria": "{{eventId}} 이벤트 첨부",
"attachment_picker_paste_label": "또는 이벤트 ID를 붙여넣으세요",
"attachment_picker_attach": "첨부하기",
"attachment_picker_placeholder": "이벤트를 첨부해 주세요",
"quick_reply_find_similar": "유사한 감지 기록 찾기",
"quick_reply_tell_me_more": "자세한 설명 요청",
"quick_reply_when_else": "다른 시간대 감지 확인",
"quick_reply_find_similar_text": "이와 유사한 감지 기록을 찾아주세요.",
"quick_reply_tell_me_more_text": "이 내용에 대해 더 자세히 알려주세요.",
"quick_reply_when_else_text": "이 대상이 다른 때에 또 감지된 적이 있나요?",
"anchor": "참조",
"similarity_score": "유사도",
"no_similar_objects_found": "유사한 객체를 찾을 수 없습니다.",
"semantic_search_required": "유사한 객체를 찾으려면 시맨틱 검색(Semantic search) 기능이 활성화되어 있어야 합니다.",
"send": "전송",
"suggested_requests": "다음과 같이 질문해 보세요:",
"starting_requests": {
"show_recent_events": "최근 이벤트 표시",
"show_camera_status": "카메라 상태 확인",
"recap": "부재 중 발생한 이벤트 요약",
"watch_camera": "카메라 활동 감시"
},
"starting_requests_prompts": {
"show_recent_events": "최근 1시간 동안 발생한 이벤트를 보여주세요",
"show_camera_status": "현재 카메라 상태는 어떤가요?",
"recap": "제가 자리를 비운 사이에 어떤 일이 있었나요?",
"watch_camera": "현관문을 주시하고 누군가 나타나면 저에게 알려주세요"
},
"new_chat": "새 채팅",
"settings": {
"title": "채팅 설정",
"show_stats": {
"title": "통계 표시",
"desc": "채팅 응답의 토큰 생성 속도 및 컨텍스트 크기를 표시합니다.",
"while_generating": "생성 중에만 표시",
"always": "항상 표시"
},
"auto_scroll": {
"title": "자동 스크롤",
"desc": "새 메시지가 도착하면 화면을 자동으로 아래로 이동합니다."
}
},
"stats": {
"context": "{{tokens}} 토큰",
"tokens_per_second": "{{rate}} t/s"
},
"reasoning": {
"active": "추론 중입니다…",
"show": "추론 과정 보기",
"hide": "추론 과정 숨기기"
},
"thinking": {
"toggle": "생각 과정 전환"
}
}
@@ -1,7 +1,7 @@
{
"documentTitle": "분류 모델 - Frigate",
"details": {
"scoreInfo": "점수는 해당 객체에 대한 모든 탐지 결과의 평균 분류 신뢰도를 나타냅니다.",
"scoreInfo": "점수는 이 객체에 대해 감지된 모든 결과의 평균 분류 신뢰도를 나타냅니다.",
"none": "없음",
"unknown": "알 수 없음"
},
@@ -10,26 +10,196 @@
"renameCategory": "클래스 이름 변경",
"deleteCategory": "클래스 삭제",
"deleteImages": "이미지 삭제",
"trainModel": "모델 훈련",
"trainModel": "모델 학습",
"addClassification": "분류 추가",
"deleteModels": "모델 삭제",
"editModel": "모델 편집"
"editModel": "모델 수정"
},
"tooltip": {
"trainingInProgress": "모델이 현재 학습 중입니다",
"noNewImages": "훈련할 새 이미지가 없습니다. 먼저 데이터셋에서 더 많은 이미지를 분류하세요.",
"noChanges": "마지막 훈련 이후 데이터셋에 변경 사항이 없습니다.",
"modelNotReady": "모델이 훈련 준비가 되지 않았습니다"
"trainingInProgress": "모델 학습이 진행 중입니다",
"noNewImages": "학습할 새 이미지가 없습니다. 데이터셋에서 이미지를 먼저 분류하세요.",
"noChanges": "마지막 학습 이후 데이터셋에 변경 사항이 없습니다.",
"modelNotReady": "모델이 학습할 준비가 되지 않았습니다"
},
"toast": {
"success": {
"deletedModel_other": "{{count}}개 모델을 성공적으로 삭제했습니다",
"categorizedImage": "이미지 분류 성공",
"reclassifiedImage": "이미지 재분류 성공",
"trainedModel": "모델 훈련 완료."
"deletedModel_other": "모델 {{count}}개를 성공적으로 삭제했습니다",
"categorizedImage": "이미지를 성공적으로 분류했습니다",
"reclassifiedImage": "이미지를 성공적으로 재분류했습니다",
"trainedModel": "모델 학습을 성공적으로 완료했습니다.",
"trainingModel": "모델 학습을 성공적으로 시작했습니다.",
"updatedModel": "모델 설정을 성공적으로 업데이트했습니다",
"renamedCategory": "클래스 이름을 '{{name}}'(으)로 성공적으로 변경했습니다",
"deletedCategory_other": "클래스 {{count}}개를 삭제했습니다",
"deletedImage_other": "이미지 {{count}}장을 삭제했습니다"
},
"error": {
"deleteImageFailed": "삭제 실패: {{errorMessage}}",
"deleteCategoryFailed": "클래스 삭제 실패: {{errorMessage}}",
"deleteModelFailed": "모델 삭제 실패: {{errorMessage}}",
"categorizeFailed": "이미지 분류 실패: {{errorMessage}}",
"trainingFailed": "모델 학습에 실패했습니다. 자세한 내용은 Frigate 로그를 확인하세요.",
"trainingFailedToStart": "모델 학습 시작 실패: {{errorMessage}}",
"updateModelFailed": "모델 업데이트 실패: {{errorMessage}}",
"renameCategoryFailed": "클래스 이름 변경 실패: {{errorMessage}}",
"reclassifyFailed": "이미지 재분류 실패: {{errorMessage}}"
}
},
"train": {
"titleShort": "최근"
"titleShort": "최근",
"title": "최근 분류",
"aria": "최근 분류 선택"
},
"disabled": "비활성화됨",
"deleteCategory": {
"title": "클래스 삭제",
"desc": "정말로 '{{name}}' 클래스를 삭제하시겠습니까? 연결된 모든 이미지가 영구적으로 삭제되며 모델을 다시 학습해야 합니다.",
"minClassesTitle": "클래스를 삭제할 수 없음",
"minClassesDesc": "분류 모델은 최소 2개 이상의 클래스가 필요합니다. 이 클래스를 삭제하기 전에 다른 클래스를 추가하세요."
},
"deleteModel": {
"title": "분류 모델 삭제",
"single": "정말로 '{{name}}' 모델을 삭제하시겠습니까? 이미지 및 학습 데이터를 포함한 모든 연결된 데이터가 영구적으로 삭제됩니다. 이 작업은 되돌릴 수 없습니다.",
"desc_other": "정말로 모델 {{count}}개를 삭제하시겠습니까? 이미지 및 학습 데이터를 포함한 모든 연결된 데이터가 영구적으로 삭제됩니다. 이 작업은 되돌릴 수 없습니다."
},
"edit": {
"title": "분류 모델 수정",
"descriptionState": "이 상태 분류 모델의 클래스를 수정합니다. 변경 사항을 적용하려면 모델을 다시 학습해야 합니다.",
"descriptionObject": "이 객체 분류 모델의 객체 유형 및 분류 유형을 수정합니다.",
"enabled": "활성화됨",
"enabledDesc": "이 모델을 실행합니다. 비활성화하면 모델 실행이 중단되고 더 이상 분류 작업을 수행하지 않습니다.",
"saveAttempts": "시도 기록 저장 수",
"saveAttemptsDesc": "최근 분류 UI에 유지할 분류 시도 이미지의 개수입니다.",
"motion": "움직임 감지 시 실행",
"motionDesc": "설정된 크롭 영역 내에서 움직임이 감지될 때 분류를 실행합니다.",
"interval": "주기",
"intervalDesc": "주기적 분류 실행 간격(초)입니다. 움직임 감지 시에만 실행하려면 비워 두세요.",
"intervalPlaceholder": "주기 없음",
"stateClassesInfo": "모델이 업데이트되었습니다. 클래스 변경 사항을 적용하려면 모델을 다시 학습하세요.",
"errors": {
"saveAttemptsInvalid": "시도 기록 저장 수는 0 이상의 정수여야 합니다",
"intervalInvalid": "주기는 0보다 큰 정수여야 합니다"
}
},
"deleteDatasetImages": {
"title": "데이터셋 이미지 삭제",
"desc_other": "정말로 {{dataset}}에서 이미지 {{count}}장을 삭제하시겠습니까? 이 작업은 되돌릴 수 없으며 모델을 다시 학습해야 합니다."
},
"deleteTrainImages": {
"title": "학습 이미지 삭제",
"desc_other": "정말로 이미지 {{count}}장을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다."
},
"renameCategory": {
"title": "클래스 이름 변경",
"desc": "'{{name}}'의 새 이름을 입력하세요. 이름 변경 사항을 적용하려면 모델을 다시 학습해야 합니다."
},
"description": {
"invalidName": "유효하지 않은 이름입니다. 이름에는 문자, 숫자, 공백, 아포스트로피('), 밑줄(_), 하이픈(-)만 포함할 수 있습니다."
},
"categories": "클래스",
"createCategory": {
"new": "새 클래스 만들기"
},
"categorizeImageAs": "이미지를 다음으로 분류:",
"categorizeImage": "이미지 분류",
"reclassifyImageAs": "이미지를 다음으로 재분류:",
"reclassifyImage": "이미지 재분류",
"menu": {
"objects": "객체",
"states": "상태"
},
"noModels": {
"object": {
"title": "객체 분류 모델 없음",
"description": "감지된 객체를 분류하기 위한 커스텀 모델을 생성하세요.",
"buttonText": "객체 모델 생성"
},
"state": {
"title": "상태 분류 모델 없음",
"description": "특정 카메라 영역의 상태 변화를 모니터링하고 분류하기 위한 커스텀 모델을 생성하세요.",
"buttonText": "상태 모델 생성"
}
},
"wizard": {
"title": "새 분류 생성",
"steps": {
"nameAndDefine": "이름 및 정의",
"stateArea": "상태 영역",
"chooseExamples": "예시 선택"
},
"step1": {
"description": "상태 모델은 고정된 카메라 영역의 변화(예: 문 열림/닫힘)를 모니터링합니다. 객체 모델은 감지된 객체에 세부 분류(예: 특정 동물, 배달원 등)를 추가합니다.",
"name": "이름",
"namePlaceholder": "모델 이름 입력...",
"type": "유형",
"typeState": "상태",
"typeObject": "객체",
"objectLabel": "객체 레이블",
"objectLabelPlaceholder": "객체 유형 선택...",
"classificationType": "분류 유형",
"classificationTypeTip": "분류 유형 자세히 알아보기",
"classificationTypeDesc": "하위 레이블은 객체 레이블에 추가 텍스트를 부여합니다 (예: 'Person: UPS'). 속성은 객체 메타데이터에 별도로 저장되는 검색 가능한 메타데이터입니다.",
"classificationSubLabel": "하위 레이블",
"classificationAttribute": "속성",
"classes": "클래스",
"states": "상태",
"classesTip": "클래스 자세히 알아보기",
"classesStateDesc": "카메라 영역이 가질 수 있는 서로 다른 상태를 정의합니다. 예를 들어 차고 문의 경우 'open'과 'closed'입니다.",
"classesObjectDesc": "감지된 객체를 분류할 서로 다른 범주를 정의합니다. 예를 들어 사람 분류의 경우 'delivery_person', 'resident', 'stranger'입니다.",
"classPlaceholder": "클래스 이름 입력...",
"errors": {
"nameRequired": "모델 이름은 필수입니다",
"nameLength": "모델 이름은 64자 이하여야 합니다",
"nameOnlyNumbers": "모델 이름은 숫자로만 구성될 수 없습니다",
"classRequired": "최소 1개 이상의 클래스가 필요합니다",
"classesUnique": "클래스 이름은 중복될 수 없습니다",
"noneNotAllowed": "'none' 클래스는 사용할 수 없습니다",
"stateRequiresTwoClasses": "상태 모델은 최소 2개 이상의 클래스가 필요합니다",
"objectLabelRequired": "객체 레이블을 선택하세요",
"objectTypeRequired": "분류 유형을 선택하세요"
}
},
"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": "샘플 이미지를 성공적으로 생성했습니다",
"refreshExamples": "새로운 예시 생성",
"refreshConfirm": {
"title": "새로운 예시를 생성하시겠습니까?",
"description": "새 이미지 세트가 생성되며 이전 클래스를 포함한 모든 선택 항목이 지워집니다. 모든 클래스에 대해 예시를 다시 선택해야 합니다."
},
"missingStatesWarning": {
"title": "클래스 예시 누락",
"description": "모든 클래스에 예시가 존재하는 것은 아닙니다. 새로운 예시를 생성하여 누락된 클래스를 찾거나, 계속 진행한 후 '최근 분류' 보기에서 나중에 이미지를 추가하세요."
}
}
}
}
@@ -2,17 +2,17 @@
"documentTitle": "설정 편집기 - Frigate",
"configEditor": "설정 편집기",
"safeConfigEditor": "설정 편집기 (안전 모드)",
"safeModeDescription": "설정 오류로 인해 Frigate가 안전 모드로 전환되었습니다.",
"safeModeDescription": "설정 유효성 검사 오류로 인해 Frigate가 안전 모드로 실행 중입니다.",
"copyConfig": "설정 복사",
"saveAndRestart": "저장 & 재시작",
"saveAndRestart": "저장 및 재시작",
"saveOnly": "저장만 하기",
"confirm": "저장 없이 나갈까요?",
"confirm": "저장하지 않고 종료하시겠습니까?",
"toast": {
"success": {
"copyToClipboard": "설정이 클립보드에 저장되었습니다."
"copyToClipboard": "설정이 클립보드에 복사되었습니다."
},
"error": {
"savingError": "설정 저장 오류"
"savingError": "설정 저장 중 오류가 발생했습니다"
}
}
}
+64 -27
View File
@@ -1,18 +1,18 @@
{
"alerts": "경보",
"detections": "대상 감지",
"alerts": "알림",
"detections": "감지",
"motion": {
"label": "움직임 감지",
"only": "움직임 감지만"
"label": "움직임",
"only": "움직임만"
},
"allCameras": "모든 카메라",
"empty": {
"alert": "다시 볼 '경보' 영상이 없습니다",
"detection": "다시 볼 '대상 감지' 영상이 없습니다",
"motion": "움직임 감지 데이터가 없습니다",
"alert": "검토할 알림이 없습니다",
"detection": "검토할 감지 내역이 없습니다",
"motion": "움직임 데이터가 없습니다",
"recordingsDisabled": {
"title": "녹화가 활성화되어야 합니다",
"description": "다시 보기 항목은 해당 카메라에서 녹화가 활성화된 경우에만 카메라에 대해 생성할 수 있습니다."
"title": "녹화가 활성화되어 있어야 합니다",
"description": "해당 카메라의 녹화 기능이 활성화되어 있어야 다시보기 항목이 생성될 수 있습니다."
}
},
"timeline": {
@@ -22,39 +22,76 @@
"events": {
"label": "이벤트",
"aria": "이벤트 선택",
"noFoundForTimePeriod": "이 시간대에 이벤트가 없습니다."
"noFoundForTimePeriod": "해당 기간에 발생한 이벤트가 없습니다."
},
"detail": {
"noDataFound": "다시 볼 상세 데이터가 없습니다",
"aria": "상세 보기",
"trackedObject_one": "추적 대상",
"trackedObject_other": "추적 대상",
"noObjectDetailData": "상세 보기 데이터가 없습니다.",
"label": "세부 정보"
"noDataFound": "검토할 세부 정보 데이터가 없습니다",
"aria": "세부 정보 보기 전환",
"trackedObject_one": "객체 {{count}}개",
"trackedObject_other": "객체 {{count}}개",
"noObjectDetailData": "사용 가능한 객체 세부 정보가 없습니다.",
"label": "세부 정보",
"settings": "세부 정보 보기 설정",
"alwaysExpandActive": {
"title": "활성 항목 항상 펼치기",
"desc": "사용 가능한 경우 활성 다시보기 항목의 객체 세부 정보를 항상 펼쳐서 표시합니다."
}
},
"objectTrack": {
"trackedPoint": "추적 포인트",
"clickToSeek": "이 시점으로 이동"
"trackedPoint": "추적 지점",
"clickToSeek": "이 시간대로 이동하려면 클릭하세요"
},
"documentTitle": "다시 보기 - Frigate",
"documentTitle": "다시보기 - Frigate",
"recordings": {
"documentTitle": "녹화 - Frigate"
"documentTitle": "녹화 - Frigate",
"invalidSharedLink": "파싱 오류로 인해 타임스탬프 녹화 링크를 열 수 없습니다.",
"invalidSharedCamera": "알 수 없거나 권한이 없는 카메라이므로 타임스탬프 녹화 링크를 열 수 없습니다."
},
"calendarFilter": {
"last24Hours": "최근 24시간"
},
"markAsReviewed": "'다시 봤음'으로 표시",
"markTheseItemsAsReviewed": "이 영상들을 '다시 봤음'으로 표시",
"markAsReviewed": "검토 완료로 표시",
"markTheseItemsAsReviewed": "이 항목들을 검토 완료로 표시",
"newReviewItems": {
"label": "새로운 '다시 보기' 영상 보기",
"button": "새로운 '다시 보기' 영상"
"label": "새로운 다시보기 항목 보기",
"button": "검토할 새 항목"
},
"selected_one": "{{count}} 선택됨",
"selected_other": "{{count}} 선택됨",
"selected_one": "{{count}}개 선택됨",
"selected_other": "{{count}}개 선택됨",
"camera": "카메라",
"detected": "감지됨",
"suspiciousActivity": "수상한 행동",
"threateningActivity": "위협적인 행동",
"zoomIn": "확대",
"zoomOut": "축소"
"zoomOut": "축소",
"select_all": "전체",
"normalActivity": "정상 활동",
"needsReview": "검토 필요",
"securityConcern": "보안 주의",
"motionSearch": {
"menuItem": "움직임 검색",
"openMenu": "카메라 옵션"
},
"motionPreviews": {
"menuItem": "움직임 미리보기 보기",
"title": "움직임 미리보기: {{camera}}",
"mobileSettingsTitle": "움직임 미리보기 설정",
"mobileSettingsDesc": "재생 속도, 어둡기(Dim), 자르기(Crop)를 조절하고 움직임 전용 클립을 검토할 날짜를 선택하세요.",
"dim": "어둡기",
"dimAria": "어둡기 강도 조절",
"dimDesc": "배경 어둡기를 높여 움직임 영역의 가시성을 높입니다.",
"speed": "재생 속도",
"speedAria": "미리보기 재생 속도 선택",
"speedDesc": "미리보기 클립의 재생 속도를 선택하세요.",
"back": "뒤로",
"empty": "사용 가능한 미리보기가 없습니다",
"noPreview": "미리보기를 사용할 수 없습니다",
"seekAria": "{{camera}} 플레이어를 {{time}} 위치로 이동",
"filter": "필터",
"filterDesc": "선택한 영역에 움직임이 있는 클립만 표시합니다.",
"filterClear": "초기화",
"crop": "필터 영역으로 확대",
"cropAria": "미리보기를 필터 영역으로 자르기 전환",
"cropDesc": "전체 화면 대신 선택한 필터 영역으로 미리보기를 확대합니다."
}
}
+236 -12
View File
@@ -1,39 +1,263 @@
{
"documentTitle": "탐색 - Frigate",
"generativeAI": "생성형 AI",
"exploreMore": "{{label}} 더 많은 감지 대상 탐색하기",
"exploreMore": "더 많은 {{label}} 객체 탐색",
"exploreIsUnavailable": {
"title": "탐색을 사용할 수 없습니다",
"title": "탐색 기능을 사용할 수 없음",
"embeddingsReindexing": {
"context": "추적된 객체의 임베딩 색인 재구성이 완료된 후 '탐색' 기능을 사용할 수 있습니다.",
"context": "추적 객체 임베딩 재색인이 완료된 후 탐색 기능을 사용할 수 있습니다.",
"startingUp": "시작 중…",
"estimatedTime": "예상 남은시간:",
"estimatedTime": "예상 남은 시간:",
"finishingShortly": "곧 완료됩니다",
"step": {
"thumbnailsEmbedded": "처리된 썸네일: ",
"descriptionsEmbedded": "처리된 설명: ",
"trackedObjectsProcessed": "처리된 추적 감지: "
"thumbnailsEmbedded": "임베딩된 썸네일: ",
"descriptionsEmbedded": "임베딩된 설명: ",
"trackedObjectsProcessed": "처리된 추적 객체: "
}
},
"downloadingModels": {
"context": "Frigate가 시맨틱 검색 기능을 지원하기 위해 필요한 임베딩 모델을 다운로드하고 있습니다. 네트워크 연결 속도에 따라 몇 분 정도 소요될 수 있습니다.",
"context": "Frigate이 시맨틱 검색 기능을 지원하기 위해 필요한 임베딩 모델을 다운로드하고 있습니다. 네트워크 연결 속도에 따라 몇 분 정도 걸릴 수 있습니다.",
"setup": {
"visionModel": "비전 모델",
"visionModelFeatureExtractor": "비전 모델 특징 추출기",
"textModel": "Text model",
"textModel": "텍스트 모델",
"textTokenizer": "텍스트 토크나이저"
},
"tips": {
"context": "모델이 다운로드된 후 추적 객체의 임베딩을 색인 재구성하는 것이 좋습니다."
"context": "모델 다운로드가 완료되면 추적 객체의 임베딩을 다시 색인하는 것이 좋습니다."
},
"error": "오류가 발생했습니다. Frigate 로그를 확인하세요."
}
},
"details": {
"timestamp": "시간 기록"
"timestamp": "타임스탬프",
"item": {
"title": "다시보기 항목 세부 정보",
"desc": "다시보기 항목 세부 정보",
"button": {
"share": "이 다시보기 항목 공유",
"viewInExplore": "탐색에서 보기"
},
"tips": {
"mismatch_other": "사용할 수 없는 객체 {{count}}개가 감지되어 이 다시보기 항목에 포함되었습니다. 해당 객체는 알림 또는 감지 기준을 충족하지 못했거나 이미 정리/삭제되었습니다.",
"hasMissingObjects": "다음 레이블에 대해 Frigate이 추적 객체를 저장하도록 하려면 설정을 조정하세요: <em>{{objects}}</em>"
},
"toast": {
"success": {
"regenerate": "{{provider}}에 새로운 설명을 요청했습니다. 제공업체의 처리 속도에 따라 새 설명을 다시 생성하는 데 시간이 걸릴 수 있습니다.",
"updatedSublabel": "하위 레이블을 성공적으로 업데이트했습니다.",
"updatedLPR": "차량 번호판을 성공적으로 업데이트했습니다.",
"updatedAttributes": "속성을 성공적으로 업데이트했습니다.",
"audioTranscription": "오디오 텍스트 변환을 성공적으로 요청했습니다. Frigate 서버 성능에 따라 변환이 완료되기까지 시간이 걸릴 수 있습니다."
},
"error": {
"regenerate": "{{provider}}에 새 설명 요청 실패: {{errorMessage}}",
"updatedSublabelFailed": "하위 레이블 업데이트 실패: {{errorMessage}}",
"updatedLPRFailed": "차량 번호판 업데이트 실패: {{errorMessage}}",
"updatedAttributesFailed": "속성 업데이트 실패: {{errorMessage}}",
"audioTranscription": "오디오 텍스트 변환 요청 실패: {{errorMessage}}"
}
}
},
"label": "레이블",
"editSubLabel": {
"title": "하위 레이블 수정",
"desc": "이 {{label}}의 새 하위 레이블 입력",
"descNoLabel": "이 추적 객체의 새 하위 레이블 입력"
},
"editLPR": {
"title": "차량 번호판 수정",
"desc": "이 {{label}}의 새 번호판 번호 입력",
"descNoLabel": "이 추적 객체의 새 번호판 번호 입력"
},
"editAttributes": {
"title": "속성 수정",
"desc": "이 {{label}}의 분류 속성 선택"
},
"snapshotScore": {
"label": "스냅샷 점수"
},
"topScore": {
"label": "최고 점수",
"info": "최고 점수는 추적 객체의 가장 높은 중간값(median) 점수이므로 검색 결과 썸네일에 표시된 점수와 다를 수 있습니다."
},
"score": {
"label": "신뢰도 점수"
},
"recognizedLicensePlate": "인식된 차량 번호판",
"attributes": "분류 속성",
"estimatedSpeed": "예상 속도",
"objects": "객체",
"camera": "카메라",
"zones": "구역",
"button": {
"findSimilar": "유사 항목 찾기",
"regenerate": {
"title": "다시 생성",
"label": "추적 객체 설명 다시 생성"
}
},
"description": {
"label": "설명",
"placeholder": "추적된 객체에 대한 설명",
"aiTips": "Frigate은 추적 객체의 수명주기가 완전히 끝날 때까지 생성형 AI 제공업체에 설명을 요청하지 않습니다."
},
"expandRegenerationMenu": "설명 재생성 메뉴 펼치기",
"regenerateFromSnapshot": "스냅샷 기반으로 다시 생성",
"regenerateFromThumbnails": "썸네일 기반으로 다시 생성",
"tips": {
"descriptionSaved": "설명을 성공적으로 저장했습니다",
"saveDescriptionFailed": "설명 업데이트 실패: {{errorMessage}}"
},
"title": {
"label": "제목"
},
"scoreInfo": "점수 정보"
},
"trackedObjectDetails": "추적 객체 세부 정보",
"type": {
"details": "세부 정보"
"details": "세부 정보",
"snapshot": "스냅샷",
"thumbnail": "썸네일",
"video": "동영상",
"tracking_details": "추적 세부 정보"
},
"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": "점수",
"computedScore": "계산된 점수",
"topScore": "최고 점수",
"toggleAdvancedScores": "고급 점수 전환"
}
},
"annotationSettings": {
"title": "어노테이션 설정",
"showAllZones": {
"title": "모든 구역 표시",
"desc": "객체가 특정 구역에 진입한 프레임에서 항상 모든 구역을 표시합니다."
},
"offset": {
"label": "어노테이션 오프셋",
"desc": "이 데이터는 카메라의 감지(detect) 피드에서 생성되지만 녹화(record) 피드의 영상 위에 덧씌워집니다. 두 스트림이 완벽히 동기화되지 않을 수 있어 바운딩 박스와 녹화 영상이 정확히 일치하지 않을 수 있습니다. 이 설정을 사용하여 어노테이션을 시간상 앞뒤로 이동해 녹화 영상과의 싱크를 맞출 수 있습니다.",
"millisecondsToOffset": "감지 어노테이션을 오프셋할 밀리초(ms) 단위 시간입니다. <em>기본값: 0</em>",
"tips": "영상 재생이 박스 및 이동 경로 지점보다 앞서면 값을 낮추고, 영상 재생이 뒤처지면 값을 높이세요. 음수 값도 가능합니다.",
"toast": {
"success": "{{camera}} 카메라의 어노테이션 오프셋이 설정 파일에 저장되었습니다."
}
}
},
"carousel": {
"previous": "이전 슬라이드",
"next": "다음 슬라이드"
}
},
"itemMenu": {
"downloadVideo": {
"label": "동영상 다운로드",
"aria": "동영상 다운로드"
},
"downloadSnapshot": {
"label": "스냅샷 다운로드",
"aria": "스냅샷 다운로드"
},
"downloadCleanSnapshot": {
"label": "클린 스냅샷(박스 제외) 다운로드",
"aria": "클린 스냅샷 다운로드"
},
"viewTrackingDetails": {
"label": "추적 세부 정보 보기",
"aria": "추적 세부 정보 표시"
},
"findSimilar": {
"label": "유사 항목 찾기",
"aria": "유사한 추적 객체 찾기"
},
"addTrigger": {
"label": "트리거 추가",
"aria": "이 추적 객체에 대한 트리거 추가"
},
"audioTranscription": {
"label": "음성 변환",
"aria": "오디오 텍스트 변환 요청"
},
"submitToPlus": {
"label": "Frigate+에 제출",
"aria": "Frigate Plus에 제출"
},
"viewInHistory": {
"label": "기록에서 보기",
"aria": "기록에서 보기"
},
"deleteTrackedObject": {
"label": "이 추적 객체 삭제"
},
"showObjectDetails": {
"label": "객체 이동 경로 표시"
},
"hideObjectDetails": {
"label": "객체 이동 경로 숨기기"
},
"debugReplay": {
"label": "디버그 리플레이",
"aria": "디버그 리플레이 보기에서 이 추적 객체 보기"
},
"more": {
"aria": "더보기"
}
},
"dialog": {
"confirmDelete": {
"title": "삭제 확인",
"desc": "이 추적 객체를 삭제하면 스냅샷, 저장된 임베딩 및 연결된 모든 추적 세부 정보 항목이 제거됩니다. 기록 보기의 녹화 영상은 삭제되지 <em>않습니다</em>.<br /><br />정말로 계속 진행하시겠습니까?"
},
"toast": {
"error": "이 추적 객체 삭제 중 오류 발생: {{errorMessage}}"
}
},
"noTrackedObjects": "추적된 객체를 찾을 수 없음",
"fetchingTrackedObjectsFailed": "추적 객체 불러오기 오류: {{errorMessage}}",
"trackedObjectsCount_other": "추적된 객체 {{count}}개 ",
"searchResult": {
"tooltip": "{{type}} 기준 {{confidence}}% 일치",
"previousTrackedObject": "이전 추적 객체",
"nextTrackedObject": "다음 추적 객체",
"deleteTrackedObject": {
"toast": {
"success": "추적 객체가 성공적으로 삭제되었습니다.",
"error": "추적 객체 삭제 실패: {{errorMessage}}"
}
}
},
"aiAnalysis": {
"title": "AI 분석"
},
"concerns": {
"label": "주의 사항"
},
"objectLifecycle": {
"noImageFound": "이 추적 객체에 대한 이미지를 찾을 수 없습니다."
}
}
+101 -9
View File
@@ -1,11 +1,11 @@
{
"documentTitle": "내보내기 - Frigate",
"search": "검색",
"noExports": "내보내기가 없습니다",
"noExports": "내보내기 항목을 찾을 수 없음",
"deleteExport": {
"label": "내보내기 삭제"
},
"deleteExport.desc": "{{exportName}}을 지우시겠습니까?",
"deleteExport.desc": "정말로 {{exportName}} 항목을 삭제하시겠습니까?",
"editExport": {
"title": "내보내기 이름 변경",
"desc": "이 내보내기의 새 이름을 입력하세요.",
@@ -13,24 +13,116 @@
},
"toast": {
"error": {
"renameExportFailed": "내보내기 이름 변경에 실패했습니다: {{errorMessage}}",
"assignCaseFailed": "케이스 할당 업데이트 실패: {{errorMessage}}"
"renameExportFailed": "내보내기 이름 변경 실패: {{errorMessage}}",
"assignCaseFailed": "케이스 지정 업데이트 실패: {{errorMessage}}",
"caseSaveFailed": "케이스 저장 실패: {{errorMessage}}",
"caseDeleteFailed": "케이스 삭제 실패: {{errorMessage}}"
}
},
"headings": {
"uncategorizedExports": "분류되지 않은 내보내기",
"uncategorizedExports": "미분류 내보내기",
"cases": "케이스"
},
"tooltip": {
"shareExport": "내보내기 공유",
"downloadVideo": "동영상 다운로드",
"editName": "이름 편집",
"editName": "이름 수정",
"deleteExport": "내보내기 삭제",
"assignToCase": "케이스에 추가"
"assignToCase": "케이스에 추가",
"removeFromCase": "케이스에서 지우기"
},
"caseDialog": {
"title": "케이스에 추가",
"description": "기존 케이스를 선택하거나 새 케이스를 만드세요.",
"selectLabel": "케이스"
"description": "기존 케이스를 선택하거나 새 케이스를 생성하세요.",
"selectLabel": "케이스",
"newCaseOption": "새 케이스 생성",
"nameLabel": "케이스 이름",
"descriptionLabel": "설명"
},
"selected_one": "{{count}}개 선택됨",
"selected_other": "{{count}}개 선택됨",
"toolbar": {
"newCase": "새 케이스",
"addExport": "내보내기 추가",
"editCase": "케이스 수정",
"deleteCase": "케이스 지우기"
},
"deleteCase": {
"label": "케이스 삭제",
"desc": "정말로 {{caseName}} 케이스를 삭제하시겠습니까?",
"descKeepExports": "내보내기 파일들은 미분류 내보내기로 계속 유지됩니다.",
"descDeleteExports": "이 케이스에 포함된 모든 내보내기 파일이 영구적으로 삭제됩니다.",
"deleteExports": "내보내기 파일도 함께 삭제"
},
"caseCard": {
"emptyCase": "아직 내보내기 항목이 없습니다"
},
"jobCard": {
"defaultName": "{{camera}} 내보내기",
"queued": "대기 중",
"running": "실행 중",
"preparing": "준비 중",
"copying": "복사 중",
"encoding": "인코딩 중",
"encodingRetry": "인코딩 재시도 중",
"finalizing": "마무리 중"
},
"caseView": {
"noDescription": "설명 없음",
"createdAt": "{{value}} 생성됨",
"exportCount_one": "내보내기 1건",
"exportCount_other": "내보내기 {{count}}건",
"cameraCount_one": "카메라 1대",
"cameraCount_other": "카메라 {{count}}대",
"showMore": "더보기",
"showLess": "간략히 보기",
"emptyTitle": "이 케이스가 비어 있습니다",
"emptyDescription": "케이스를 정리하려면 기존의 미분류 내보내기 항목을 추가하세요.",
"emptyDescriptionNoExports": "추가할 수 있는 미분류 내보내기 항목이 아직 없습니다."
},
"caseEditor": {
"createTitle": "케이스 생성",
"editTitle": "케이스 수정",
"namePlaceholder": "케이스 이름",
"descriptionPlaceholder": "이 케이스에 대한 메모나 컨텍스트 추가"
},
"addExportDialog": {
"title": "{{caseName}}에 내보내기 추가",
"searchPlaceholder": "미분류 내보내기 검색",
"empty": "검색 결과와 일치하는 미분류 내보내기가 없습니다.",
"addButton_one": "내보내기 1건 추가",
"addButton_other": "내보내기 {{count}}건 추가",
"adding": "추가 중..."
},
"bulkActions": {
"addToCase": "케이스에 추가",
"moveToCase": "케이스로 이동",
"removeFromCase": "케이스에서 제거",
"delete": "삭제",
"deleteNow": "지금 삭제"
},
"bulkDelete": {
"title": "내보내기 일괄 삭제",
"desc_one": "정말로 내보내기 {{count}}건을 삭제하시겠습니까?",
"desc_other": "정말로 내보내기 {{count}}건을 삭제하시겠습니까?"
},
"bulkRemoveFromCase": {
"title": "케이스에서 제거",
"desc_one": "이 케이스에서 내보내기 {{count}}건을 제거하시겠습니까?",
"desc_other": "이 케이스에서 내보내기 {{count}}건을 제거하시겠습니까?",
"descKeepExports": "내보내기 파일이 미분류 상태로 이동됩니다.",
"descDeleteExports": "내보내기 파일이 영구적으로 삭제됩니다.",
"deleteExports": "대신 내보내기 파일 영구 삭제"
},
"bulkToast": {
"success": {
"delete": "내보내기 항목을 성공적으로 삭제했습니다",
"reassign": "케이스 지정을 성공적으로 업데이트했습니다",
"remove": "케이스에서 내보내기 항목을 성공적으로 제거했습니다"
},
"error": {
"deleteFailed": "내보내기 삭제 실패: {{errorMessage}}",
"reassignFailed": "케이스 지정 업데이트 실패: {{errorMessage}}"
}
}
}
+54 -42
View File
@@ -1,92 +1,104 @@
{
"description": {
"placeholder": "이 모음집의 이름을 입력해주세요",
"addFace": "안면인식 라이브러리에서 첫 사진을 업로드해 새로운 컬렉션을 만들어보세요.",
"invalidName": "잘못된 이름입니다. 이름은 문자, 숫자, 공백, 따옴표 ('), 밑줄 (_), 그리고 붙임표 (-)만 포함이 가능합니다.",
"nameCannotContainHash": "이름에 #을 포함할 수 없습니다."
"placeholder": "이 컬렉션의 이름 입력",
"addFace": "첫 번째 이미지를 업로드하여 얼굴 라이브러리에 새 컬렉션을 추가하세요.",
"invalidName": "유효하지 않은 이름입니다. 이름에는 문자, 숫자, 공백, 아포스트로피('), 밑줄(_), 하이픈(-)만 포함할 수 있습니다.",
"nameCannotContainHash": "이름에는 # 기호를 포함할 수 없습니다."
},
"details": {
"person": "사람",
"subLabelScore": "보조 레이블 신뢰도",
"face": "얼굴 상세정보",
"timestamp": "시간 기록",
"timestamp": "타임스탬프",
"unknown": "알 수 없음",
"scoreInfo": "점수는 각 이미지에서 얼굴의 크기를 가중치로 적용하여 모든 얼굴 점수의 평균을 낸 값입니다."
"scoreInfo": "점수는 각 이미지에서 얼굴이 차지하는 크기로 가중치를 부여한 모든 얼굴 점수의 가중 평균입니다."
},
"selectItem": "{{item}} 선택",
"documentTitle": "얼굴 라이브러리 - Frigate",
"uploadFaceImage": {
"title": "얼굴 사진 올리기",
"desc": "얼굴을 스캔하고 {{pageToggle}}에 포함하기 위해 이미지를 업로드하세요"
"title": "얼굴 이미지 업로드",
"desc": "얼굴을 스캔하여 {{pageToggle}}에 추가할 이미지를 업로드하세요"
},
"collections": "모음집",
"collections": "컬렉션",
"createFaceLibrary": {
"title": "모음집 만들기",
"desc": "새로운 모음집 만들기",
"new": "새 얼굴 만들기",
"nextSteps": "강력한 기반을 구축하려면:<li>최근 인식 탭을 사용하여 감지된 각 사람의 이미지를 선택하고 학습하세요.</li><li>최상의 결과를 위해 정면 이미지에 집중하고, 각도가 있는 얼굴이 촬영된 이미지는 학습에 사용하지 마세요.</li></ul>"
"new": "새 얼굴 등록",
"nextSteps": "정확도를 높이기 위한 권장 사항:<li>'최근 인식' 탭을 사용하여 감지된 인물별 이미지를 선택하고 학습시키세요.</li><li>최상의 결과를 위해 정면을 바라보는 사진 위주로 등록하고, 각도가 틀어진 얼굴 이미지는 피하세요.</li></ul>"
},
"steps": {
"faceName": "얼굴 이름 입력",
"uploadFace": "얼굴 사진 올리기",
"uploadFace": "얼굴 이미지 업로드",
"nextSteps": "다음 단계",
"description": {
"uploadFace": "정면을 향한 {{name}}의 얼굴이 보이는 이미지를 업로드하세요. 이미지를 얼굴만 자를 필요는 없습니다."
"uploadFace": "{{name}}의 얼굴이 정면에서 보이는 이미지를 업로드하세요. 얼굴 부분만 따로 크롭하지 않아도 됩니다."
}
},
"train": {
"title": "최근 인식",
"aria": "최근 인식 선택",
"titleShort": "최근"
"titleShort": "최근",
"empty": "최근 얼굴 인식 시도 내역이 없습니다",
"emptyNoLibrary": {
"title": "얼굴 업로드",
"description": "얼굴 인식 기능이 작동하려면 라이브러리에 최소 한 개 이상의 얼굴을 등록해야 합니다."
}
},
"selectFace": "얼굴 선택",
"deleteFaceLibrary": {
"title": "이름 삭제"
"title": "이름 삭제",
"desc": "정말로 '{{name}}' 컬렉션을 삭제하시겠습니까? 연결된 모든 얼굴이 영구적으로 삭제됩니다."
},
"deleteFaceAttempts": {
"title": "얼굴 삭제"
"title": "얼굴 삭제",
"desc_other": "정말로 얼굴 {{count}}개를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다."
},
"renameFace": {
"title": "얼굴 이름 바꾸기",
"desc": "{{name}}의 새 이름을 입력하세요"
"title": "얼굴 이름 변경",
"desc": "'{{name}}'의 새 이름을 입력하세요"
},
"button": {
"deleteFaceAttempts": "얼굴 삭제",
"addFace": "얼굴 추가",
"renameFace": "얼굴 이름 바꾸기",
"renameFace": "얼굴 이름 변경",
"deleteFace": "얼굴 삭제",
"uploadImage": "이미지 올리기",
"reprocessFace": "얼굴 재조정"
"uploadImage": "이미지 업로드",
"reprocessFace": "얼굴 재처리"
},
"imageEntry": {
"validation": {
"selectImage": "이미지 파일을 선택해주세요."
"selectImage": "이미지 파일을 선택해 주세요."
},
"dropActive": "여기에 이미지 놓기…",
"dropInstructions": "이미지를 끌어다 놓거나 여기에 붙여넣으세요. 선택할 수도 있습니다.",
"maxSize": "최대 용량: {{size}}MB"
"dropActive": "여기에 이미지를 놓으세요…",
"dropInstructions": "이미지를 여기로 드래그 앤 드롭하거나 붙여넣기, 또는 클릭하여 선택하세요",
"maxSize": "최대 크기: {{size}}MB"
},
"nofaces": "얼굴을 찾을 수 없습니다",
"nofaces": "사용 가능한 얼굴 없음",
"pixels": "{{area}}px",
"trainFaceAs": "얼굴을 다음과 같이 훈련하기:",
"trainFace": "얼굴 훈련하기",
"trainFaceAs": "다음으로 얼굴 학습:",
"trainFace": "얼굴 학습",
"toast": {
"success": {
"uploadedImage": "이미지 업로드에 성공했습니다.",
"addFaceLibrary": "{{name}} 을 성공적으로 얼굴 라이브러리에 추가했습니다!",
"deletedFace_other": "{{count}} 얼굴을 성공적으로 삭제했습니다.",
"renamedFace": "얼굴 이름을 {{name}} 으로 성공적으로 바꿨습니다",
"trainedFace": "얼굴 훈련을 성공적으로 마쳤습니다.",
"updatedFaceScore": "{{name}} 얼굴 점수 업데이트 성공 {{score}}."
"uploadedImage": "이미지를 성공적으로 업로드했습니다.",
"addFaceLibrary": "'{{name}}'이(가) 얼굴 라이브러리에 성공적으로 추가되었습니다!",
"deletedFace_other": "얼굴 {{count}}개를 성공적으로 삭제했습니다.",
"renamedFace": "얼굴 이름을 '{{name}}'(으)로 성공적으로 변경했습니다",
"trainedFace": "얼굴 학습을 성공적으로 완료했습니다.",
"updatedFaceScore": "얼굴 점수를 '{{name}}' ({{score}})(으)로 성공적으로 업데이트했습니다.",
"deletedName_other": "얼굴 {{count}}개를 성공적으로 삭제했습니다.",
"reclassifiedFace": "얼굴 재분류를 성공적으로 완료했습니다."
},
"error": {
"uploadingImageFailed": "이미지 업로드 실패:{{errorMessage}}",
"addFaceLibraryFailed": "얼굴 이름 설정 실패:{{errorMessage}}",
"deleteFaceFailed": "삭제 실패:{{errorMessage}}",
"deleteNameFailed": "이름 삭제 실패:{{errorMessage}}",
"renameFaceFailed": "이름 바꾸기 실패:{{errorMessage}}",
"trainFailed": "훈련 실패:{{errorMessage}}",
"updateFaceScoreFailed": "얼굴 신뢰도 업데이트 실패:{{errorMessage}}"
"uploadingImageFailed": "이미지 업로드 실패: {{errorMessage}}",
"addFaceLibraryFailed": "얼굴 이름 설정 실패: {{errorMessage}}",
"deleteFaceFailed": "삭제 실패: {{errorMessage}}",
"deleteNameFailed": "이름 삭제 실패: {{errorMessage}}",
"renameFaceFailed": "얼굴 이름 변경 실패: {{errorMessage}}",
"trainFailed": "학습 실패: {{errorMessage}}",
"updateFaceScoreFailed": "얼굴 점수 업데이트 실패: {{errorMessage}}",
"reclassifyFailed": "얼굴 재분류 실패: {{errorMessage}}"
}
}
},
"reclassifyFaceAs": "다음으로 얼굴 재분류:",
"reclassifyFace": "얼굴 재분류"
}
+71 -65
View File
@@ -1,22 +1,24 @@
{
"documentTitle": "실시간 보기 - Frigate",
"documentTitle.withCamera": "{{camera}} - 실시간 보기 - Frigate",
"documentTitle": {
"default": "실시간 - Frigate"
},
"documentTitle.withCamera": "{{camera}} - 실시간 - Frigate",
"lowBandwidthMode": "저대역폭 모드",
"twoWayTalk": {
"enable": "양방향 말하기 활성화",
"disable": "양방향 말하기 비활성화"
"enable": "양방향 대화 켜기",
"disable": "양방향 대화 끄기"
},
"cameraAudio": {
"enable": "카메라 오디오 활성화",
"disable": "카메라 오디오 비활성화"
"enable": "카메라 오디오 켜기",
"disable": "카메라 오디오 끄기"
},
"ptz": {
"move": {
"clickMove": {
"label": "클릭해서 카메라 중앙 배치",
"enable": "클릭해서 움직이기 기능 활성화",
"disable": "클릭해서 움직이기 기능 비활성화",
"enableWithZoom": "클릭하여 이동 / 드래그하여 확대 활성화"
"label": "화면을 클릭하여 카메라 중앙 맞추기",
"enable": "클릭 이동 활성화",
"disable": "클릭 이동 비활성화",
"enableWithZoom": "클릭 이동 / 드래그 줌 활성화"
},
"left": {
"label": "PTZ 카메라 왼쪽으로 이동"
@@ -41,158 +43,162 @@
},
"focus": {
"in": {
"label": "PTZ 카메라 포커스 인"
"label": "PTZ 카메라 초점 당기기"
},
"out": {
"label": "PTZ 카메라 포커스 아웃"
"label": "PTZ 카메라 초점 밀기"
}
},
"frame": {
"center": {
"label": "클릭해서 PTZ 카메라 중앙 배치"
"label": "화면을 클릭하여 PTZ 카메라 중앙 맞추기"
}
},
"presets": "PTZ 카메라 프리셋"
},
"camera": {
"enable": "카메라 활성화",
"disable": "카메라 비활성화"
"disable": "카메라 비활성화",
"turnOn": "카메라 켜기",
"turnOff": "카메라 끄기"
},
"muteCameras": {
"enable": "모든 카메라 음소거",
"disable": "모든 카메라 음소거 해제"
},
"detect": {
"enable": "감지 활성화",
"disable": "감지 비활성화"
"enable": "감지(Detect) 켜기",
"disable": "감지(Detect) 끄기"
},
"recording": {
"enable": "녹화 활성화",
"disable": "녹화 비활성화"
"enable": "녹화 켜기",
"disable": "녹화 끄기",
"disabledInConfig": "이 카메라의 녹화를 활성화하려면 먼저 설정에서 켜야 합니다."
},
"snapshots": {
"enable": "스냅샷 활성화",
"disable": "스냅샷 비활성화"
"enable": "스냅샷 켜기",
"disable": "스냅샷 끄기"
},
"audioDetect": {
"enable": "오디오 감지 활성화",
"disable": "오디오 감지 비활성화"
"enable": "오디오 감지 켜기",
"disable": "오디오 감지 끄기"
},
"transcription": {
"enable": "실시간 오디오 자막 활성화",
"disable": "실시간 오디오 자막 비활성화"
"enable": "실시간 음성 전사 켜기",
"disable": "실시간 음성 전사 끄기"
},
"autotracking": {
"enable": "자동 추적 활성화",
"disable": "자동 추적 비활성화"
"enable": "자동 추적 켜기",
"disable": "자동 추적 끄기"
},
"streamStats": {
"enable": "스트림 통계 보기",
"disable": "스트림 통계 숨기기"
},
"manualRecording": {
"title": "수동 녹화",
"tips": "이 카메라의 녹화 보관 설정에 따라 인스턴트 스냅샷을 다운로드하거나 수동 녹화를 시작할 수 있습니다.",
"title": "수동 감지/녹화",
"tips": "즉시 스냅샷을 다운로드하거나 이 카메라의 녹화 보관 설정을 기반으로 수동 이벤트를 시작합니다.",
"playInBackground": {
"label": "백그라운드에서 재생",
"desc": "이 옵션을 활성화하면 플레이어가 숨겨져도 계속 스트리밍됩니다."
"desc": "플레이어가 화면에서 가려져 있을 때도 스트리밍을 계속 유지합니다."
},
"showStats": {
"label": "통계 보기",
"desc": "이 옵션을 활성화하면 카메라 피드에 스트림 통계가 나타납니다."
"label": "통계 표시",
"desc": "카메라 피드 위에 실시간 스트림 통계 정보를 오버레이로 표시합니다."
},
"debugView": "디버그 보기",
"debugView": "디버그 뷰",
"start": "수동 녹화 시작",
"started": "수동 녹화 시작되었습니다.",
"failedToStart": "수동 녹화 시작이 실패했습니다.",
"recordDisabledTips": "이 카메라 설정에서 녹화가 비활성화 되었거나 제한되어 있어 스냅샷만 저장됩니다.",
"started": "수동 녹화를 시작했습니다.",
"failedToStart": "수동 녹화 시작에 실패했습니다.",
"recordDisabledTips": "이 카메라는 설정에서 녹화가 비활성화되었거나 제한되어 있어 스냅샷만 저장됩니다.",
"end": "수동 녹화 종료",
"ended": "수동 녹화가 종료되었습니다.",
"failedToEnd": "수동 녹화 종료가 실패했습니다."
"ended": "수동 녹화를 종료했습니다.",
"failedToEnd": "수동 녹화 종료에 실패했습니다."
},
"streamingSettings": "스트리밍 설정",
"notifications": "알림",
"audio": "오디오",
"suspend": {
"forTime": "일시정지 시간: "
"forTime": "일시 중지 시간: "
},
"stream": {
"title": "스트림",
"audio": {
"available": "이 스트림에서 오디오를 사용할 수 있습니다",
"unavailable": "이 스트림에서 오디오를 사용할 수 없습니다",
"available": "이 스트림에서 오디오 기능을 사용할 수 있습니다",
"unavailable": "이 스트림에서는 오디오 기능을 사용할 수 없습니다",
"tips": {
"title": "이 스트림에서 오디오를 사용하려면 카메라에서 오디오를 출력하고 go2rtc에서 설정해야 합니다."
"title": "오디오를 출력하려면 카메라에서 오디오를 지원하고 go2rtc에 해당 스트림이 설정되어 있어야 합니다."
}
},
"debug": {
"picker": "디버그 모드에선 스트림 모드를 선택할 수 없습니다. 디버그 뷰에서는 항상 감지(Detect) 역할로 설정한 스트림을 사용합니다."
"picker": "디버그 모드에서는 스트림을 선택할 수 없습니다. 디버그 뷰는 항상 detect 역할이 할당된 스트림을 사용합니다."
},
"twoWayTalk": {
"tips": "양방향 말하기 기능을 사용하려면 기기에서 기능을 지원해야하며 WebRTC를 설정해야합니다.",
"available": "이 기기는 양방향 말하기 기능을 사용할 수 있습니다",
"unavailable": "이 기기는 양방향 말하기 기능을 사용할 수 없습니다"
"tips": "기기에서 해당 기능을 지원해야 하며 양방향 대화를 위해 WebRTC가 설정되어 있어야 합니다.",
"available": "이 스트림에서 양방향 대화를 사용할 수 있습니다",
"unavailable": "이 스트림에서는 양방향 대화를 사용할 수 없습니다"
},
"lowBandwidth": {
"tips": "버퍼링 또는 스트림 오류로 실시간 화면을 저대역폭 모드로 변경되었습니다.",
"resetStream": "스트림 리셋"
"tips": "버퍼링 또는 스트림 오류로 인해 실시간 화면이 저대역폭 모드로 전환되었습니다.",
"resetStream": "스트림 초기화"
},
"playInBackground": {
"label": "백그라운드에서 재생",
"tips": "이 옵션을 활성화하면 플레이어가 숨겨져도 스트리밍이 지속됩니다."
"tips": "플레이어가 화면에서 가려져 있을 때도 스트리밍을 계속 유지합니다."
}
},
"cameraSettings": {
"title": "{{camera}} 설정",
"cameraEnabled": "카메라 활성화",
"objectDetection": "대상 감지",
"objectDetection": "객체 감지",
"recording": "녹화",
"snapshots": "스냅샷",
"audioDetection": "오디오 감지",
"transcription": "오디오 자막",
"autotracking": "자동 추적"
"transcription": "오디오 텍스트 변환",
"autotracking": "자동 추적",
"camera": "카메라"
},
"history": {
"label": "이전 영상 보기"
"label": "과거 녹화 영상 보기"
},
"effectiveRetainMode": {
"modes": {
"all": "전체",
"motion": "움직임 감지",
"active_objects": "활성 대상"
"motion": "움직임",
"active_objects": "활동 중인 객체"
},
"notAllTips": "{{source}} 녹화 보관 설정이 <code>mode: {{effectiveRetainMode}}</code>로 되어 있어, 이 수동 녹화는 {{effectiveRetainModeName}}이(가) 있는 구간만 저장됩니다."
},
"editLayout": {
"label": "레이아웃 편집",
"group": {
"label": "카메라 그룹 편집"
"label": "카메라 그룹 수정"
},
"exitEdit": "편집 종료"
},
"noCameras": {
"title": "설정된 카메라 없음",
"description": "카메라를 연결해 시작하세요.",
"description": "Frigate에 카메라를 연결하여 시작하세요.",
"buttonText": "카메라 추가",
"restricted": {
"title": "연결된 카메라 없음",
"description": "이 그룹의 카메라를 볼 권한이 없습니다."
"title": "사용 가능한 카메라 없음",
"description": "이 그룹의 카메라를 볼 수 있는 권한이 없습니다."
},
"default": {
"title": "설정된 카메라 없음",
"description": "카메라를 연결하여 Frigate을 시작하세요.",
"description": "Frigate에 카메라를 연결하여 시작하세요.",
"buttonText": "카메라 추가"
},
"group": {
"title": "그룹에 카메라 없음",
"description": "이 그룹에 할당되거나 활성화된 카메라가 없습니다.",
"title": "그룹 내 카메라 없음",
"description": "이 카메라 그룹에 할당되거나 활성화된 카메라가 없습니다.",
"buttonText": "그룹 관리"
}
},
"snapshot": {
"takeSnapshot": "인스턴트 스냅샷 다운로드",
"noVideoSource": "스냅샷 찍을 비디오 소스가 없습니다.",
"captureFailed": "스냅샷 캡쳐를 하지 못했습니다.",
"downloadStarted": "스냅샷 다운로드가 시작됐습니다."
"takeSnapshot": "즉시 스냅샷 다운로드",
"noVideoSource": "스냅샷을 캡처할 비디오 소스가 없습니다.",
"captureFailed": "스냅샷 캡처에 실패했습니다.",
"downloadStarted": "스냅샷 다운로드가 시작되었습니다."
}
}
+76 -1
View File
@@ -1 +1,76 @@
{}
{
"documentTitle": "움직임 검색 - Frigate",
"title": "움직임 검색",
"description": "다각형을 그려 관심 영역(ROI)을 지정하고, 해당 영역 내에서 움직임 변화를 검색할 시간 범위를 지정하세요.",
"selectCamera": "움직임 검색을 불러오는 중입니다",
"startSearch": "검색 시작",
"searchStarted": "검색이 시작되었습니다",
"searchCancelled": "검색이 취소되었습니다",
"cancelSearch": "취소",
"searching": "검색 진행 중입니다.",
"scanning": "{{time}} 스캔 중",
"searchComplete": "검색 완료",
"noResultsYet": "선택한 영역의 움직임 변화를 찾으려면 검색을 실행하세요",
"noChangesFound": "선택한 영역에서 감지된 픽셀 변화가 없습니다",
"changesFound_other": "움직임 변화 {{count}}건 발견",
"framesProcessed": "{{count}}개 프레임 처리됨",
"jumpToTime": "이 시간대로 이동",
"results": "결과",
"showSegmentHeatmap": "히트맵",
"newSearch": "새 검색",
"clearResults": "결과 지우기",
"clearROI": "다각형 지우기",
"polygonControls": {
"points_other": "점 {{count}}개",
"undo": "마지막 점 취소",
"reset": "다각형 초기화",
"drawMode": "그리기",
"moveMode": "이동"
},
"motionHeatmapLabel": "움직임 히트맵",
"dialog": {
"title": "움직임 검색",
"cameraLabel": "카메라",
"previewAlt": "{{camera}} 카메라 미리보기"
},
"timeRange": {
"title": "검색 범위",
"start": "시작 시간",
"end": "종료 시간"
},
"settings": {
"title": "검색 설정",
"parallelMode": "병렬 모드",
"parallelModeDesc": "여러 녹화 구간을 동시에 스캔합니다 (더 빠르지만 디코딩 자원을 더 많이 소모함)",
"threshold": "민감도 임계값",
"thresholdDesc": "값이 낮을수록 더 미세한 변화를 감지합니다 (1-255)",
"minArea": "최소 변화 면적",
"minAreaDesc": "단일 움직임 영역의 최소 크기(관심 영역 대비 백분율)",
"maxResults": "최대 결과 수",
"maxResultsDesc": "일치하는 타임스탬프가 이 개수에 도달하면 검색을 중단합니다"
},
"errors": {
"noCamera": "카메라를 선택해 주세요",
"noROI": "관심 영역(ROI)을 그려 주세요",
"noTimeRange": "시간 범위를 선택해 주세요",
"invalidTimeRange": "종료 시간은 시작 시간 이후여야 합니다",
"searchFailed": "검색 실패: {{message}}",
"polygonTooSmall": "다각형은 최소 3개 이상의 점이 필요합니다",
"unknown": "알 수 없는 오류"
},
"changePercentage": "{{percentage}}% 변화됨",
"metrics": {
"title": "검색 지표",
"segmentsScanned": "스캔한 세그먼트",
"segmentsProcessed": "처리됨",
"segmentsSkippedInactive": "건너뜀 (활동 없음)",
"segmentsSkippedHeatmap": "건너뜀 (ROI 겹침 없음)",
"fallbackFullRange": "전체 범위 폴백 스캔",
"framesDecoded": "디코딩된 프레임",
"wallTime": "검색 소요 시간",
"segmentErrors": "세그먼트 오류",
"seconds": "{{seconds}}초",
"minutesSeconds": "{{minutes}}분 {{seconds}}초",
"scanSummary": "{{segments}}개 세그먼트 · {{time}}"
}
}
+3 -3
View File
@@ -1,12 +1,12 @@
{
"filter": "필터",
"export": "내보내기",
"calendar": "날짜",
"calendar": "달력",
"filters": "필터",
"toast": {
"error": {
"noValidTimeSelected": "올바른 시간 범위를 선택하세요",
"endTimeMustAfterStartTime": "종료 시간은 시작 시간보다 뒤에 있어야합니다"
"noValidTimeSelected": "유효한 시간 범위가 선택되지 않았습니다",
"endTimeMustAfterStartTime": "종료 시간은 시작 시간 이후여야 합니다"
}
}
}
+60 -1
View File
@@ -1 +1,60 @@
{}
{
"title": "디버그 리플레이",
"description": "디버깅을 위해 카메라 녹화본을 다시 재생합니다. 객체 목록에는 감지된 객체의 시간 지연 요약이 표시되며, 메시지 탭에는 리플레이 영상에 대한 Frigate 내부 메시지 스트림이 표시됩니다.",
"websocket_messages": "메시지",
"dialog": {
"title": "디버그 리플레이 시작",
"description": "객체 감지 및 추적 문제 디버깅을 위해 지난 녹화본을 반복 재생하는 임시 리플레이 카메라를 생성합니다. 리플레이 카메라는 원본 카메라와 동일한 감지 설정을 가집니다. 시작할 시간 범위를 선택하세요.",
"camera": "원본 카메라",
"timeRange": "시간 범위",
"preset": {
"1m": "최근 1분",
"5m": "최근 5분",
"timeline": "타임라인에서 선택",
"custom": "사용자 정의"
},
"startButton": "리플레이 시작",
"selectFromTimeline": "선택",
"starting": "리플레이 시작 중...",
"startLabel": "시작",
"endLabel": "종료",
"toast": {
"error": "디버그 리플레이 시작 실패: {{error}}",
"alreadyActive": "이미 활성화된 리플레이 세션이 있습니다",
"noRecordings": "선택한 시간 범위에서 녹화본을 찾을 수 없습니다",
"stopError": "디버그 리플레이 중지 실패: {{error}}",
"goToReplay": "리플레이로 이동"
}
},
"page": {
"noSession": "활성화된 디버그 리플레이 세션 없음",
"noSessionDesc": "기록(History) 보기 툴바에서 작업(Actions) 버튼을 클릭하고 '디버그 리플레이'를 선택하여 시작하세요.",
"goToRecordings": "기록으로 이동",
"preparingClip": "클립 준비 중…",
"preparingClipDesc": "Frigate이 선택한 시간 범위의 녹화본을 이어 붙이는 중입니다. 긴 시간 범위의 경우 약 1분 정도 소요될 수 있습니다.",
"startingCamera": "디버그 리플레이 시작 중…",
"startError": {
"title": "디버그 리플레이 시작 실패",
"back": "기록으로 돌아가기"
},
"sourceCamera": "원본 카메라",
"replayCamera": "리플레이 카메라",
"initializingReplay": "디버그 리플레이 초기화 중...",
"stoppingReplay": "디버그 리플레이 중지 중...",
"stopReplay": "리플레이 중지",
"confirmStop": {
"title": "디버그 리플레이를 중지하시겠습니까?",
"description": "세션이 중지되고 모든 임시 데이터가 정리됩니다. 계속하시겠습니까?",
"confirm": "리플레이 중지",
"cancel": "취소"
},
"activity": "활동",
"objects": "객체 목록",
"audioDetections": "오디오 감지",
"noActivity": "감지된 활동 없음",
"activeTracking": "활성 추적 중",
"noActiveTracking": "활성 추적 없음",
"configuration": "설정",
"configurationDesc": "디버그 리플레이 카메라의 움직임 감지 및 객체 추적 설정을 미세 조정합니다. Frigate 설정 파일에는 변경 사항이 저장되지 않습니다."
}
}
+52 -7
View File
@@ -1,14 +1,14 @@
{
"search": "검색",
"savedSearches": "저장된 검색들",
"savedSearches": "저장된 검색 조건",
"button": {
"clear": "검색 초기화",
"save": "검색 저장",
"clear": "검색어 지우기",
"save": "검색 조건 저장",
"filterInformation": "필터 정보",
"delete": "저장된 검색 삭제",
"filterActive": "필터 활성화됨"
"delete": "저장된 검색 조건 삭제",
"filterActive": "필터 적용됨"
},
"searchFor": "{{inputValue}} 검색",
"searchFor": "'{{inputValue}}' 검색",
"trackedObjectId": "추적 객체 ID",
"filter": {
"label": {
@@ -22,7 +22,52 @@
"before": "이전",
"after": "이후",
"min_score": "최소 점수",
"max_score": "최대 점수"
"max_score": "최대 점수",
"min_speed": "최소 속도",
"max_speed": "최대 속도",
"recognized_license_plate": "인식된 차량 번호판",
"has_clip": "비디오 클립 있음",
"has_snapshot": "스냅샷 있음"
},
"searchType": {
"thumbnail": "썸네일",
"description": "설명"
},
"toast": {
"error": {
"beforeDateBeLaterAfter": "'이전(before)' 날짜는 '이후(after)' 날짜보다 뒤여야 합니다.",
"afterDatebeEarlierBefore": "'이후(after)' 날짜는 '이전(before)' 날짜보다 앞서야 합니다.",
"minScoreMustBeLessOrEqualMaxScore": "'최소 점수'는 '최대 점수'보다 작거나 같아야 합니다.",
"maxScoreMustBeGreaterOrEqualMinScore": "'최대 점수'는 '최소 점수'보다 크거나 같아야 합니다.",
"minSpeedMustBeLessOrEqualMaxSpeed": "'최소 속도'는 '최대 속도'보다 작거나 같아야 합니다.",
"maxSpeedMustBeGreaterOrEqualMinSpeed": "'최대 속도'는 '최소 속도'보다 크거나 같아야 합니다."
}
},
"tips": {
"title": "텍스트 필터 사용 방법",
"desc": {
"text": "필터를 사용하면 검색 결과를 좁힐 수 있습니다. 입력창에서 다음과 같이 사용하세요:",
"step1": "필터 키 이름 뒤에 콜론을 입력합니다 (예: \"cameras:\").",
"step2": "추천 목록에서 값을 선택하거나 직접 입력합니다.",
"step3": "필터 사이에 공백을 두어 여러 개의 필터를 연속으로 사용할 수 있습니다.",
"step4": "날짜 필터(before:, after:)는 {{DateFormat}} 형식을 사용합니다.",
"step5": "시간 범위 필터는 {{exampleTime}} 형식을 사용합니다.",
"step6": "필터 옆의 'x'를 클릭하여 필터를 제거합니다.",
"exampleLabel": "예시:"
}
},
"header": {
"currentFilterType": "필터 값",
"noFilters": "필터",
"activeFilters": "적용된 필터"
}
},
"similaritySearch": {
"title": "유사도 검색",
"active": "유사도 검색 활성 상태",
"clear": "유사도 검색 초기화"
},
"placeholder": {
"search": "검색…"
}
}
File diff suppressed because it is too large Load Diff
+150 -91
View File
@@ -1,198 +1,247 @@
{
"documentTitle": {
"cameras": "카메라 통계 - Frigate",
"storage": "저장소 통계 - Frigate",
"general": "기본 통계 - Frigate",
"enrichments": "데이터 보강 통계 - Frigate",
"storage": "저장 공간 통계 - Frigate",
"general": "일반 통계 - Frigate",
"enrichments": "확장 기능 통계 - Frigate",
"logs": {
"frigate": "Frigate 로그 -Frigate",
"frigate": "Frigate 로그 - Frigate",
"go2rtc": "Go2RTC 로그 - Frigate",
"nginx": "Nginx 로그 - Frigate",
"websocket": "메세지 로그 - Frigate"
"websocket": "메시지 로그 - Frigate"
}
},
"title": "시스템",
"metrics": "시스템 통계",
"metrics": "시스템 지표",
"logs": {
"download": {
"label": "다운로드 로그"
"label": "로그 다운로드"
},
"copy": {
"label": "클립보드에 복사하기",
"success": "클립보드에 로그가 복사되었습니다",
"error": "클립보드에 로그를 저장할 수 없습니다"
"label": "클립보드에 복사",
"success": "로그를 클립보드에 복사했습니다",
"error": "로그를 클립보드에 복사할 수 없습니다"
},
"type": {
"label": "타입",
"timestamp": "시간 기록",
"label": "유형",
"timestamp": "타임스탬프",
"tag": "태그",
"message": "메시지"
},
"tips": "서버에서 로그 스트리밍 중",
"tips": "서버에서 로그가 실시간 스트리밍 중입니다",
"toast": {
"error": {
"fetchingLogsFailed": "로그 가져오기 오류: {{errorMessage}}",
"whileStreamingLogs": "스크리밍 로그 중 오류: {{errorMessage}}"
"whileStreamingLogs": "로그 스트리밍 중 오류 발생: {{errorMessage}}"
}
},
"websocket": {
"label": "메세지",
"pause": "일시중지",
"resume": "재개",
"clear": "비우기",
"label": "메시지",
"pause": "일시 중지",
"resume": "다시 시작",
"clear": "지우기",
"filter": {
"all": "전체 항목",
"topics": "항목",
"all": "모든 토픽",
"topics": "토픽",
"events": "이벤트",
"reviews": "리뷰",
"reviews": "다시보기",
"classification": "분류",
"face_recognition": "얼굴 인식",
"lpr": "번호판 인식",
"lpr": "차량 번호판 인식 (LPR)",
"system": "시스템",
"camera": "카메라",
"all_cameras": "모든 카메라",
"cameras_count_one": "{{count}} 카메라",
"cameras_count_other": "{{count}} 카메라"
"cameras_count_one": "카메라 {{count}}대",
"cameras_count_other": "카메라 {{count}}대",
"camera_activity": "카메라 활동"
},
"empty": "수신된 메시지 없음",
"count_one": "{{count}} 메세지",
"count_other": "{{count}} 메세지"
"empty": "수집된 메시지가 아직 없습니다",
"count_one": "메시지 {{count}}개",
"count_other": "메시지 {{count}}개",
"expanded": {
"payload": "페이로드"
}
}
},
"general": {
"title": "기본",
"title": "일반",
"detector": {
"title": "감지기",
"inferenceSpeed": "감지 추론 속도",
"inferenceSpeed": "감지기 추론 속도",
"temperature": "감지기 온도",
"cpuUsage": "감지기 CPU 사용률",
"memoryUsage": "감지기 메모리 사용률",
"cpuUsageInformation": "감지 모델로 데이터를 입력/출력하기 위한 전처리 과정에서 사용되는 CPU 사용량입니다. GPU나 가속기를 사용하는 경우에도 추론 자체의 사용량은 포함되지 않습니다."
"cpuUsage": "감지기 CPU 사용량",
"memoryUsage": "감지기 메모리 사용량",
"cpuUsageInformation": "감지 모델과의 입출력 데이터를 준비하는 데 사용된 CPU 리소스입니다. GPU 또는 전용 가속기를 사용하더라도 추론 연산 자체의 사용량은 측정되지 않습니다."
},
"hardwareInfo": {
"title": "하드웨어 정보",
"gpuUsage": "GPU 사용률",
"gpuUsage": "GPU 사용량",
"gpuMemory": "GPU 메모리",
"gpuEncoder": "GPU 인코더",
"gpuDecoder": "GPU 디코더",
"gpuInfo": {
"vainfoOutput": {
"title": "Vainfo 출력",
"title": "Vainfo 출력 결과",
"processOutput": "프로세스 출력:",
"processError": "프로세스 오류:",
"returnCode": "리턴 코드:{{code}}"
"returnCode": "반환 코드: {{code}}"
},
"nvidiaSMIOutput": {
"title": "Nvidia SMI 출력",
"name": "이름:{{name}}",
"driver": "드라이버:{{driver}}",
"cudaComputerCapability": "CUDA Compute Capability:{{cuda_compute}}",
"vbios": "VBios Info: {{vbios}}"
"title": "Nvidia SMI 출력 결과",
"name": "이름: {{name}}",
"driver": "드라이버: {{driver}}",
"cudaComputerCapability": "CUDA 연산 능력: {{cuda_compute}}",
"vbios": "VBIOS 정보: {{vbios}}"
},
"copyInfo": {
"label": "GPU 정보 복사"
},
"toast": {
"success": "GPU 정보가 클립보드에 복사되었습니다"
"success": "GPU 정보를 클립보드에 복사했습니다"
},
"closeInfo": {
"label": "GPU 정보 닫기"
}
},
"npuUsage": "NPU 사용률",
"npuMemory": "NPU 메모리"
"npuUsage": "NPU 사용량",
"npuMemory": "NPU 메모리",
"gpuCompute": "GPU 연산 / 인코딩",
"gpuTemperature": "GPU 온도",
"npuTemperature": "NPU 온도"
},
"otherProcesses": {
"title": "다른 프로세스들",
"processCpuUsage": "사용중인 CPU 사용률",
"processMemoryUsage": "사용중인 메모리 사용률"
"title": "기타 프로세스",
"processCpuUsage": "프로세스 CPU 사용량",
"processMemoryUsage": "프로세스 메모리 사용량",
"series": {
"go2rtc": "go2rtc",
"recording": "녹화",
"review_segment": "다시보기 세그먼트",
"embeddings": "임베딩",
"audio_detector": "오디오 감지기"
}
}
},
"storage": {
"title": "스토리지",
"overview": "전체 현황",
"title": "저장 공간",
"overview": "개요",
"recordings": {
"title": "녹화",
"tips": "이 값은 Frigate 데이터베이스의 녹화 영상이 사용 중인 전체 저장 공간입니다. Frigate는 디스크 내 다른 파일들의 저장 공간은 추적하지 않습니다.",
"earliestRecording": "가장 오래된 녹화 영상:"
"title": "녹화 파일",
"tips": "이 수치는 Frigate 데이터베이스에 기록된 녹화 파일이 사용하는 총 저장 공간을 나타냅니다. Frigate은 디스크 상의 모든 파일에 대한 사용량을 추적하지는 않습니다.",
"earliestRecording": "가장 오래된 녹화 시점:"
},
"cameraStorage": {
"title": "카메라 저장소",
"title": "카메라별 저장 공간",
"camera": "카메라",
"unusedStorageInformation": "미사용 저장소 정보",
"storageUsed": "용량",
"percentageOfTotalUsed": "전체 대비 비율",
"unusedStorageInformation": "여유 공간 정보",
"storageUsed": "저장 공간",
"percentageOfTotalUsed": "전체 대비 사용 비율",
"bandwidth": "대역폭",
"unused": {
"title": "미사용",
"tips": "드라이브에 Frigate 녹화 영상 외에 다른 파일이 저장되어 있는 경우, 이 값은 Frigate에서 실제 사용 가능한 여유 공간을 정확히 나타내지 않을 수 있습니다. Frigate는 녹화 영상 외의 저장 공간 사용량을 추적하지 않습니다."
"title": "여유 공간",
"tips": "드라이브에 Frigate 녹화본 외에 다른 파일이 저장되어 있는 경우 이 수치가 Frigate에서 사용 가능한 실제 여유 공간과 정확히 일치하지 않을 수 있습니다. Frigate은 자체 녹화본 외부의 저장 공간 사용량을 추적하지 않습니다."
}
},
"shm": {
"title": "SHM (공유 메모리) 할당량",
"warning": "현재 SHM 사이즈가 {{total}}MB로 너무 적습니다. 최소 {{min_shm}}MB 이상 올려주세요."
"title": "공유 메모리 (SHM) 할당",
"warning": "현재 공유 메모리 크기({{total}}MB)가 너무 작습니다. 최소 {{min_shm}}MB 이상으로 늘려주세요.",
"frameLifetime": {
"title": "프레임 유지 시간",
"description": "각 카메라는 공유 메모리에 {{frames}}개의 프레임 슬롯을 가집니다. 가장 빠른 카메라의 프레임 속도를 기준으로, 각 프레임은 덮어쓰기 전까지 약 {{lifetime}}초 동안 유지됩니다."
}
}
},
"cameras": {
"title": "카메라",
"overview": "전체 현황",
"overview": "개요",
"info": {
"aspectRatio": "종횡비",
"fetching": "카메라 데이터 수집 중",
"aspectRatio": "화면비",
"fetching": "카메라 데이터 가져오는 중",
"stream": "스트림 {{idx}}",
"streamDataFromFFPROBE": "스트림 데이터는 <code>ffprobe</code>에서 받습니다.",
"streamDataFromFFPROBE": "스트림 데이터는 <code>ffprobe</code>를 통해 가져옵니다.",
"video": "비디오:",
"codec": "코덱:",
"resolution": "해상도:",
"fps": "FPS:",
"unknown": "알 수 없음",
"audio": "오디오:",
"error": "오류:{{error}}",
"cameraProbeInfo": "{{camera}} 카메라 장치 정보",
"error": "오류: {{error}}",
"cameraProbeInfo": "{{camera}} 카메라 탐색 정보",
"tips": {
"title": "카메라 장치 정보"
"title": "카메라 탐색 정보"
},
"keyframes": {
"title": "키프레임 분석",
"analyzing": "키프레임 분석 중... {{seconds}}초 남음",
"stillAnalyzing": "키프레임을 계속 분석하고 있습니다...",
"recordStream": "녹화 스트림:",
"keyframeCount": "감지된 키프레임 수:",
"observedDuration": "측정 기간:",
"gap": "키프레임 간격 (최소 / 평균 / 최대):",
"segmentLength": "녹화 세그먼트 길이:",
"ok": "키프레임이 약 {{seconds}}초마다 배치되어 녹화 및 재생에 적합합니다.",
"warning": "키프레임 간격이 불규칙하거나 멉니다(최대 간격 약 {{seconds}}초). 스마트 코덱(H.264+/H.265+)일 가능성이 높으며 권장되지 않습니다.",
"error": "키프레임 간격(약 {{seconds}}초)이 녹화 세그먼트 길이({{segmentTime}}초)를 초과합니다. 일부 세그먼트에 키프레임이 없어 재생에 문제가 발생할 수 있습니다. 카메라에서 스마트/+ 코덱을 끄거나 키프레임 간격을 줄이세요.",
"unknown": "키프레임 간격을 확인할 수 없습니다.",
"recordDisabled": "이 카메라의 녹화 기능이 비활성화되어 있습니다."
}
},
"framesAndDetections": "프레임 / 감지 (Detections)",
"framesAndDetections": "프레임 / 감지",
"label": {
"camera": "카메라",
"detect": "감지",
"skipped": "건너뜀",
"ffmpeg": "FFmpeg",
"capture": "캡쳐",
"overallFramesPerSecond": "전체 초당 프레임",
"overallDetectionsPerSecond": "전체 초당 감지",
"overallSkippedDetectionsPerSecond": "전체 초당 건너뛴 감지",
"capture": "캡처",
"overallFramesPerSecond": "전체 초당 프레임 수",
"overallDetectionsPerSecond": "전체 초당 감지 수",
"overallSkippedDetectionsPerSecond": "전체 초당 건너뛴 감지 수",
"cameraFfmpeg": "{{camName}} FFmpeg",
"cameraCapture": "{{camName}} 캡쳐",
"cameraCapture": "{{camName}} 캡처",
"cameraDetect": "{{camName}} 감지",
"cameraFramesPerSecond": "{{camName}} 초당 프레임",
"cameraDetectionsPerSecond": "{{camName}} 초당 감지",
"cameraSkippedDetectionsPerSecond": "{{camName}} 초당 건너뛴 감지"
"cameraFramesPerSecond": "{{camName}} 초당 프레임 수",
"cameraDetectionsPerSecond": "{{camName}} 초당 감지 수",
"cameraSkippedDetectionsPerSecond": "{{camName}} 초당 건너뛴 감지 수",
"cameraGpu": "{{camName}} GPU"
},
"toast": {
"success": {
"copyToClipboard": "데이터 정보가 클립보드에 복사되었습니다."
"copyToClipboard": "탐색 데이터를 클립보드에 복사했습니다."
},
"error": {
"unableToProbeCamera": "카메라 정보 알 수 없음: {{errorMessage}}"
"unableToProbeCamera": "카메라를 탐색할 수 없음: {{errorMessage}}"
}
},
"noCameras": {
"title": "발견된 카메라 없음"
},
"connectionQuality": {
"title": "연결 상태",
"excellent": "매우 좋음",
"fair": "보통",
"poor": "불안정",
"unusable": "사용 불가",
"fps": "FPS",
"expectedFps": "예상 FPS",
"reconnectsLastHour": "재연결 횟수 (최근 1시간)",
"stallsLastHour": "지연/끊김 횟수 (최근 1시간)"
}
},
"lastRefreshed": "마지막 새로고침: ",
"lastRefreshed": "마지막 갱신: ",
"stats": {
"ffmpegHighCpuUsage": "{{camera}} FFmpeg CPU 사용량이 높습니다 ({{ffmpegAvg}}%)",
"detectHighCpuUsage": "{{camera}} 감지 CPU 사용량이 높습니다 ({{detectAvg}}%)",
"healthy": "시스템 정상",
"reindexingEmbeddings": "검색 데이터 재정리 중 ({{processed}}% 완료)",
"cameraIsOffline": "{{camera}} 오프라인입니다",
"detectIsSlow": "{{detect}} (이/가) 느립니다 ({{speed}} ms)",
"detectIsVerySlow": "{{detect}} (이/가) 매우 느립니다 ({{speed}} ms)",
"shmTooLow": "/dev/shm 할당량을 ({{total}} MB) 최소 {{min}} MB 이상 증가시켜야합니다."
"ffmpegHighCpuUsage": "{{camera}} 카메라의 FFmpeg CPU 사용량이 높습니다 ({{ffmpegAvg}}%)",
"detectHighCpuUsage": "{{camera}} 카메라의 감지(detect) CPU 사용량이 높습니다 ({{detectAvg}}%)",
"healthy": "시스템 상태가 양호합니다",
"reindexingEmbeddings": "임베딩 재색인 중 ({{processed}}% 완료)",
"cameraIsOffline": "{{camera}} 카메라가 오프라인 상태입니다",
"detectIsSlow": "{{detect}} 처리가 느립니다 ({{speed}}ms)",
"detectIsVerySlow": "{{detect}} 처리가 매우 느립니다 ({{speed}}ms)",
"shmTooLow": "/dev/shm 할당량({{total}}MB)을 최소 {{min}}MB 이상으로 늘려야 합니다.",
"debugReplayActive": "디버그 리플레이 세션이 실행 중입니다"
},
"enrichments": {
"title": "데이터 보강",
"infPerSecond": "초당 추론 속도",
"title": "확장 기능",
"infPerSecond": "초당 추론 횟수",
"embeddings": {
"image_embedding": "이미지 임베딩",
"text_embedding": "텍스트 임베딩",
@@ -203,8 +252,18 @@
"face_recognition_speed": "얼굴 인식 속도",
"plate_recognition_speed": "번호판 인식 속도",
"text_embedding_speed": "텍스트 임베딩 속도",
"yolov9_plate_detection_speed": "YOLOv9 플레이트 감지 속도",
"yolov9_plate_detection": "YOLOv9 플레이트 감지"
}
"yolov9_plate_detection_speed": "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": "평균 추론 시간"
}
}