{
  "projectHistory": {
    "title": "프로젝트 기록",
    "description": "이 기기에 저장된 자동 저장 스냅샷을 살펴봅니다.",
    "empty": "아직 자동 저장된 스냅샷이 없습니다.",
    "summary": "레이어 {{count}}개 · 줌 {{zoom}}",
    "restore": "복원",
    "discard": "버리기",
    "restoreError": "이 스냅샷을 복원할 수 없습니다. 손상되었거나 현재 GeoLibre 버전과 호환되지 않을 수 있습니다.",
    "recoveryTitle": "저장하지 않은 작업을 복구할까요?",
    "recoveryDescription": "GeoLibre가 정상적으로 종료되지 않았습니다. \"{{name}}\"의 더 최신 자동 저장본이 있습니다."
  },
  "browser": {
    "title": "브라우저",
    "services": "서비스",
    "recent": "최근 프로젝트",
    "databases": "데이터베이스",
    "newDatabaseConnection": "새 데이터베이스 연결",
    "searchPlaceholder": "데이터 소스 검색",
    "empty": "저장된 서비스나 최근 프로젝트가 아직 없습니다.",
    "emptyGroup": "비어 있음",
    "noMatches": "일치하는 항목이 없습니다.",
    "addFailed": "이 데이터 소스를 추가할 수 없습니다.",
    "builtinBadge": "내장",
    "newConnection": "새 {{kind}} 연결",
    "loadingTables": "테이블을 불러오는 중…",
    "files": "파일",
    "addFolder": "폴더 추가",
    "addFolderFailed": "이 폴더를 추가할 수 없습니다.",
    "addFileFailed": "이 파일을 추가할 수 없습니다.",
    "loadFolderFailed": "이 폴더를 읽을 수 없습니다.",
    "unpinFolder": "목록에서 “{{name}}” 제거",
    "loadingFolder": "불러오는 중…",
    "folderTruncated": "{{total}}개 중 처음 {{shown}}개 표시",
    "favorites": "즐겨찾기",
    "favorite": "“{{name}}”을(를) 즐겨찾기에 추가",
    "unfavorite": "즐겨찾기에서 “{{name}}” 제거",
    "favoriteMissing": "해당 데이터 소스가 더 이상 존재하지 않아 즐겨찾기에서 제거했습니다.",
    "myData": "내 데이터",
    "renameLibraryLayer": "\"{{name}}\" 이름 바꾸기",
    "deleteLibraryLayer": "내 데이터에서 \"{{name}}\" 제거",
    "desktopOnlyBadge": "데스크톱",
    "importLibrary": "저장된 레이어 가져오기",
    "exportLibrary": "저장된 레이어 내보내기",
    "libraryFilterName": "레이어 라이브러리 JSON",
    "libraryImportFailed": "이 레이어 라이브러리 파일을 읽을 수 없습니다.",
    "libraryExportFailed": "레이어 라이브러리를 내보낼 수 없습니다.",
    "libraryLayerMissing": "해당 저장된 레이어는 더 이상 존재하지 않습니다.",
    "libraryLayerNeedsDesktop": "이 저장된 레이어는 디스크의 파일을 읽으므로 GeoLibre Desktop이 필요합니다. 파일을 다시 추가해 새 항목으로 저장하세요.",
    "libraryLayerConfigNotApplied": "\"{{name}}\"의 파일을 추가했지만, 저장된 스타일을 단일 레이어에 연결할 수 없어 다시 적용하지 못했습니다.",
    "libraryLayerJoinsUnresolved_other": "레이어를 추가했지만 저장된 조인 {{count}}개를 다시 적용하지 못했습니다. 조인 대상 레이어가 이 프로젝트에 없습니다."
  },
  "about": {
    "trigger": "정보",
    "title": "GeoLibre 정보",
    "description": "GeoLibre는 경량 클라우드 네이티브 GIS 플랫폼입니다.",
    "version": "버전",
    "checkForUpdates": "업데이트 확인",
    "tryAgain": "다시 시도",
    "checking": "업데이트를 확인하는 중",
    "upToDate": "최신 버전입니다 ({{version}}).",
    "upToDateNoVersion": "최신 버전입니다.",
    "generalSectionTitle": "일반",
    "homePage": "홈페이지",
    "githubRepository": "GitHub 저장소"
  },
  "updates": {
    "changelogTitle": "새로운 기능",
    "noChangelog": "릴리스 노트를 사용할 수 없습니다. 자세한 내용은 다운로드 페이지를 참조하세요.",
    "stepsTitle": "업데이트 방법",
    "download": "업데이트 다운로드",
    "steps": {
      "download": "다운로드 페이지에서 사용 중인 플랫폼에 맞는 설치 프로그램을 다운로드하세요.",
      "install": "설치 프로그램을 실행하세요. 로컬 프로젝트, 설정, API 키는 유지됩니다.",
      "reopen": "GeoLibre를 다시 열어 업데이트를 완료하세요."
    },
    "severity": {
      "major": "주요 릴리스",
      "minor": "기능 업데이트",
      "patch": "패치 업데이트"
    },
    "available": {
      "title": "{{version}} 버전을 사용할 수 있습니다",
      "fallback": "새 버전",
      "summary": "현재 {{current}} 버전을 사용 중입니다."
    },
    "error": {
      "message": "업데이트를 확인할 수 없습니다.",
      "rateLimit": "GitHub 요청 한도를 초과했습니다. 나중에 다시 시도하세요.",
      "http": "GitHub에서 {{status}}을(를) 반환했습니다.",
      "noTag": "최신 릴리스에 버전 태그가 없습니다.",
      "network": "GitHub에 연결할 수 없습니다. 연결 상태를 확인한 후 다시 시도하세요.",
      "viewDownloads": "다운로드 보기",
      "viewDownloadsHint": "브라우저에서 GeoLibre 다운로드 페이지를 열어 최신 버전을 직접 확인할 수 있습니다."
    },
    "startup": {
      "title": "업데이트 사용 가능",
      "currentVersion": "현재 버전",
      "latestVersion": "최신 버전",
      "download": "업데이트 패키지 다운로드",
      "remindLater": "나중에 다시 알림",
      "skipVersion": "이 버전 건너뛰기",
      "settingsHint": "설정 → 업데이트에서 업데이트 확인 방식을 변경할 수 있습니다."
    }
  },
  "masBuild": {
    "unavailable": "이 기능은 Mac App Store 버전의 GeoLibre Desktop에서는 사용할 수 없습니다."
  },
  "bookmark": {
    "captureStateLabel": "전체 레이어 상태 포함(활성, 비활성, 레이어 순서)",
    "captureStateTooltip": "전역 설정이 아니라 다음에 저장할 북마크에만 적용됩니다. 나중에 이 레이어 배치를 그대로 복원하려면 켜 두세요.",
    "export": "내보내기",
    "exportSelected": "선택 항목 내보내기",
    "exportAll": "전체 내보내기",
    "newFolder": "새 폴더",
    "defaultFolderName": "폴더"
  },
  "managePlugins": {
    "failed": "실패",
    "failedToLoad": "로드 실패: {{message}}",
    "trust": {
      "title": "이 프로젝트의 플러그인을 로드하시겠습니까?",
      "description_other": "이 프로젝트가 설치되지 않은 URL에서 외부 플러그인 {{count}}개를 로드하려고 합니다. 플러그인은 앱에 대한 전체 액세스 권한으로 코드를 실행합니다.",
      "warning": "신뢰할 수 있는 출처의 플러그인만 로드하세요. 로드된 플러그인은 GeoLibre 자체와 동일한 권한으로 실행됩니다.",
      "trustButton": "신뢰하고 로드",
      "dismissButton": "로드하지 않음"
    },
    "title": "플러그인 관리",
    "searchAria": "플러그인 검색",
    "searchPlaceholder": "플러그인 검색",
    "refresh": "새로 고침",
    "loadingRegistry": "레지스트리를 불러오는 중…",
    "registryEmpty": "레지스트리에 등록된 플러그인이 없습니다.",
    "noPluginsHere": "여기에 플러그인이 없습니다.",
    "sectionAll": "전체({{total}})",
    "sectionInstalled": "설치됨({{total}})",
    "sectionNotInstalled": "미설치({{total}})",
    "sectionUpgradeable": "업그레이드 가능({{total}})",
    "sectionSettings": "설정",
    "openHomepageAria": "{{name}} 홈페이지 열기",
    "byAuthor": "작성자: {{author}}",
    "updateAvailable": "업데이트 있음",
    "requiresVersion": "GeoLibre {{version}}+ 필요",
    "install": "설치",
    "installAria": "{{name}} 설치",
    "removeConfirm": "제거할까요?",
    "uninstall": "제거",
    "uninstallAria": "{{name}} 제거",
    "confirmUninstallAria": "{{name}} 제거 확인",
    "update": "업데이트",
    "updateAria": "{{name}} 업데이트",
    "loading": "불러오는 중…",
    "installed": "설치됨",
    "settingsIntro": "GeoLibre는 항상 앱 데이터의 플러그인 디렉터리를 검색합니다. 패키지된 플러그인(.zip)을 파일에서 설치하거나 로컬 디렉터리를 추가할 수 있습니다(데스크톱 전용). 매니페스트 URL(마켓플레이스 설치 포함)은 네트워크로 불러오며, 여기서 변경한 내용은 즉시 적용됩니다.",
    "installFromFile": "파일에서 설치",
    "chooseZip": ".zip 선택…",
    "installFromFileHintDesktop": "패키지된 플러그인 아카이브를 GeoLibre의 플러그인 디렉터리로 복사합니다.",
    "installFromFileHintWeb": "패키지된 플러그인 아카이브를 불러옵니다. 브라우저에 저장되며 다음 방문 시 다시 로드됩니다.",
    "localDirectories": "로컬 디렉터리",
    "directoryAria": "플러그인 디렉터리",
    "browseDirectoryAria": "플러그인 디렉터리 찾아보기",
    "noDirectories": "추가로 설정된 플러그인 디렉터리가 없습니다.",
    "manifestUrls": "매니페스트 URL",
    "manifestUrlAria": "플러그인 매니페스트 URL",
    "noManifestUrls": "설정된 플러그인 매니페스트 URL이 없습니다.",
    "removeAria": "{{name}} 제거",
    "errorLoadRegistry": "플러그인 레지스트리를 불러오지 못했습니다.",
    "errorUpdate": "플러그인을 업데이트하지 못했습니다.",
    "errorDirectoryPicker": "디렉터리 선택 창을 열지 못했습니다.",
    "errorInstall": "플러그인을 설치하지 못했습니다.",
    "errorUninstall": "플러그인을 제거하지 못했습니다.",
    "description": "외부 GeoLibre 플러그인을 찾아보고 설치, 업데이트, 제거합니다. 플러그인은 <registryLink>GeoLibre 플러그인 레지스트리</registryLink>에 등록되어 있습니다."
  },
  "viewState": {
    "panelTitle": "정보"
  },
  "terrainMeasure": {
    "title": "지형 (3D)",
    "surfaceDistance": "표면 거리",
    "surfaceArea": "표면적",
    "elevationGainLoss": "상승 / 하강",
    "elevationRange": "최소 / 최대 고도",
    "meanSlope": "평균 경사",
    "computing": "지형 계산 중…",
    "partialData": "일부 샘플에 지형 데이터가 없습니다"
  },
  "fileNamePrompt": {
    "title": "다른 이름으로 저장",
    "description": "파일 이름을 입력하세요. 파일은 브라우저의 다운로드 폴더에 저장됩니다.",
    "label": "파일 이름"
  },
  "newProject": {
    "basemapDescription": "OpenFreeMap 또는 Protomaps 베이스맵, 빈 배경, MapLibre 스타일 URL 중에서 선택하세요.",
    "basemapDescriptionNoProtomaps": "OpenFreeMap 베이스맵, 빈 배경, MapLibre 스타일 URL 중에서 선택하세요.",
    "sectionOpenFreeMap": "OpenFreeMap",
    "sectionProtomaps": "Protomaps",
    "sectionOther": "기타",
    "customUrlButton": "사용자 지정 URL",
    "invalidCustomUrl": "유효한 style.json 또는 .pmtiles URL을 입력하세요.",
    "savePromptTitle": "현재 프로젝트를 저장하시겠습니까?",
    "savePromptDescription": "현재 프로젝트에 저장되지 않은 변경 사항이 있습니다. 새 프로젝트를 만들기 전에 저장하시겠습니까?",
    "doNotSave": "저장 안 함",
    "saving": "저장하는 중...",
    "title": "새 프로젝트",
    "projectName": "프로젝트 이름",
    "savedTemplates": "저장된 템플릿",
    "deleteTemplate": "템플릿 삭제",
    "basemapLabel": "배경지도",
    "create": "만들기"
  },
  "basemapPicker": {
    "title": "베이스맵 변경",
    "applyCustom": "적용",
    "invalidUrl": "유효한 HTTP 또는 HTTPS 스타일 URL을 입력하세요.",
    "sectionMoon": "달",
    "sectionMars": "화성",
    "sectionOther": "기타 천체"
  },
  "planetSwitcher": {
    "label": "천체",
    "earth": "지구",
    "mercury": "수성",
    "venus": "금성",
    "moon": "달",
    "mars": "화성",
    "io": "이오",
    "europa": "유로파",
    "ganymede": "가니메데",
    "callisto": "칼리스토",
    "titan": "타이탄",
    "pluto": "명왕성",
    "charon": "카론"
  },
  "common": {
    "pickColorFromScreen": "화면에서 색상 선택",
    "save": "저장",
    "cancel": "취소",
    "close": "닫기",
    "retry": "재시도",
    "reset": "초기화",
    "remove": "제거",
    "add": "추가",
    "ok": "확인",
    "done": "완료",
    "openWebApp": "GeoLibre 웹 앱 열기"
  },
  "addData": {
    "title": "데이터 추가",
    "kind": {
      "xyz": {
        "label": "XYZ 레이어 추가",
        "description": "x, y, z 플레이스홀더를 사용하는 래스터 타일 템플릿을 추가합니다."
      },
      "wms": {
        "label": "WMS 레이어 추가",
        "description": "WMS GetMap 서비스를 타일형 래스터 레이어로 추가합니다."
      },
      "wfs": {
        "label": "WFS 레이어 추가",
        "description": "GetFeature 서비스에서 GeoJSON을 요청하여 WFS 피처를 추가합니다."
      },
      "wmts": {
        "label": "WMTS 레이어 추가",
        "description": "WMTS 타일 URL 템플릿을 래스터 레이어로 추가합니다."
      },
      "ogcVectorTiles": {
        "label": "OGC 벡터 타일 추가",
        "description": "TileJSON 또는 타일 템플릿으로 OGC API - Tiles(벡터) 서비스를 추가합니다. 필요하면 스타일 URL에서 소스 레이어를 읽어올 수 있습니다."
      },
      "gpx": {
        "label": "GPX 레이어 추가",
        "description": "GPX 웨이포인트, 루트, 트랙을 하나 이상의 벡터 레이어로 추가합니다."
      },
      "georss": {
        "label": "GeoRSS 레이어 추가",
        "description": "URL 또는 파일에서 GeoRSS 피드(RSS, Atom, RDF)를 벡터 레이어로 추가합니다."
      },
      "delimitedText": {
        "label": "구분 텍스트 레이어 추가",
        "description": "경도·위도 필드를 사용해 구분 텍스트 파일이나 URL을 포인트 레이어로 추가하거나, 좌표가 없는 경우 비공간 속성 테이블로 추가합니다."
      },
      "cad": {
        "label": "CAD(DXF/DWG) 레이어 추가",
        "description": "AutoCAD DXF 또는 DWG 도면을 벡터 레이어로 추가합니다. 불러올 레이어와 투영에 사용할 좌표계를 선택할 수 있습니다."
      },
      "gdb": {
        "label": "파일 지오데이터베이스 레이어 추가",
        "description": "Esri 파일 지오데이터베이스(.gdb 폴더)에서 레이어를 추가합니다. 레이어는 로컬 GeoLibre 서버로 읽어 WGS84로 재투영됩니다."
      },
      "photos": {
        "label": "위치 태그 사진 추가",
        "description": "JPEG/HEIC 사진을 EXIF GPS 위치에 따라 배치하여 포인트 레이어로 가져옵니다."
      },
      "mbtiles": {
        "label": "MBTiles 레이어 추가",
        "description": "로컬 MBTiles 파일을 래스터 또는 벡터 타일 레이어로 추가합니다."
      },
      "arcgis": {
        "label": "ArcGIS 레이어 추가",
        "description": "ArcGIS FeatureServer, VectorTileServer, MapServer, ImageServer 레이어 또는 포털 항목을 추가합니다."
      },
      "postgres": {
        "label": "PostgreSQL 레이어 추가",
        "description": "Martin을 로컬에서 실행하여 PostGIS 소스를 검색하고 벡터 타일로 추가합니다."
      },
      "deckglViz": {
        "label": "Deck.gl 레이어 추가",
        "description": "deck.gl 레이어 유형을 선택한 다음 예제 데이터를 불러오거나 CSV/JSON/GeoJSON 파일 또는 URL을 업로드하세요."
      },
      "video": {
        "label": "비디오 레이어 추가",
        "description": "MP4 URL과 네 모서리 좌표를 입력하여 지리참조된 비디오 오버레이를 추가합니다."
      },
      "ogcFeatures": {
        "label": "OGC API - Features 레이어 추가",
        "description": "OGC API - Features 컬렉션의 피처를 벡터 레이어로 추가합니다. 요청한 피처 수가 모두 로드될 때까지 서비스의 페이징 링크를 따라갑니다."
      }
    },
    "shared": {
      "layerName": "레이어 이름",
      "insertBelow": "아래에 삽입",
      "insertTop": "레이어 목록 맨 위(기본값)",
      "layersGroup": "레이어",
      "basemapLayersGroup": "베이스맵 레이어",
      "showBasemapLayers": "베이스맵 레이어 표시(고급)",
      "addLayer": "레이어 추가",
      "adding": "추가하는 중…",
      "addError": "레이어를 추가할 수 없습니다.",
      "sampleData": "샘플 데이터",
      "loadSampleData": "샘플 데이터 불러오기…"
    },
    "common": {
      "serviceUrl": "서비스 URL",
      "tileSize": "타일 크기",
      "tileUrlTemplate": "타일 URL 템플릿",
      "sourceType": "소스 유형",
      "layerType": "레이어 유형",
      "format": "형식",
      "optional": "선택 사항",
      "chooseFile": "파일 선택",
      "noFileSelected": "선택된 파일 없음",
      "loading": "불러오는 중...",
      "workspaceLayerPlaceholder": "workspace:layer",
      "requestFailed": "요청이 실패했습니다(상태: {{status}})",
      "networkFailure": "서비스에 연결할 수 없습니다. 호스트에 접근할 수 있는지, 그리고 TLS 인증서, 방화벽, 프록시 설정이 요청을 허용하는지 확인하세요. 브라우저에서는 CORS로 차단될 수도 있으니 데스크톱 앱을 사용해 보세요.",
      "requestTimedOut": "요청 시간이 초과되었습니다. 호스트가 느리거나, 접근할 수 없거나, 방화벽 또는 프록시로 차단되었을 수 있습니다."
    },
    "serviceLibrary": {
      "title": "저장된 서비스",
      "saveCurrent": "현재 항목 저장",
      "importLibrary": "JSON에서 라이브러리 가져오기",
      "exportLibrary": "라이브러리를 JSON으로 내보내기",
      "loadAria": "저장된 서비스 불러오기",
      "loadPlaceholder": "저장된 서비스 불러오기…",
      "builtin": "{{name}}(내장)",
      "deleteAria": "저장된 서비스 삭제",
      "empty": "저장된 서비스가 아직 없습니다 — 양식을 작성한 후 \"현재 항목 저장\"을 선택하세요.",
      "name": "이름",
      "category": "범주",
      "categoryPlaceholder": "선택 사항(예: 국가, 테마)",
      "uncategorized": "미분류",
      "errorName": "저장할 서비스의 이름을 입력하세요.",
      "saved": "\"{{name}}\"을(를) 서비스 라이브러리에 저장했습니다.",
      "removed": "\"{{name}}\"을(를) 삭제했습니다.",
      "errorExport": "라이브러리를 내보낼 수 없습니다.",
      "errorTooLarge": "가져오기에는 파일이 너무 큽니다(최대 5MB).",
      "errorNoServices": "해당 파일에서 유효한 서비스를 찾을 수 없습니다.",
      "errorRead": "해당 파일을 서비스 라이브러리로 읽을 수 없습니다.",
      "imported_other": "서비스 {{count}}개를 가져왔습니다.",
      "importedWithDropped_other": "서비스 {{count}}개를 가져왔습니다({{dropped}}개는 라이브러리가 가득 차서 건너뜀)."
    },
    "xyz": {
      "defaultName": "XYZ 레이어",
      "sampleLabel": "USGS 영상",
      "errorUrl": "XYZ 타일 URL 템플릿을 입력하세요.",
      "urlPlaceholder": "https://example.com/{z}/{x}/{y}.png",
      "shortUrlPlaceholder": "https://go.example.com/layer",
      "shortUrl": "짧은 URL"
    },
    "wms": {
      "defaultName": "WMS 레이어",
      "sampleLabel": "USGS NAIP 영상",
      "sampleLabelGebco": "GEBCO 해양 수심",
      "errorUrl": "WMS 서비스 URL을 입력하세요.",
      "errorLayers": "하나 이상의 WMS 레이어 이름을 입력하세요.",
      "urlPlaceholder": "https://example.com/geoserver/wms",
      "layers": "레이어",
      "styles": "스타일",
      "transparent": "투명 배경",
      "retrieveLayers": "레이어 조회",
      "retrieving": "조회하는 중...",
      "retrievedLayers": "조회된 레이어",
      "selectLayer_other": "{{count}}개 레이어 중에서 선택",
      "noLayersFound": "이 서비스에서 레이어를 찾을 수 없습니다.",
      "retrieveError": "이 서비스에서 레이어를 조회할 수 없습니다.",
      "version": "WMS 버전"
    },
    "wfs": {
      "defaultName": "WFS 레이어",
      "sampleLabel": "미국 주(GeoServer)",
      "errorUrl": "WFS 서비스 URL을 입력하세요.",
      "errorTypeName": "WFS 피처 유형 이름을 입력하세요.",
      "errorOutputFormat": "WFS 출력 형식을 입력하세요.",
      "urlPlaceholder": "https://example.com/geoserver/wfs",
      "featureType": "피처 유형",
      "version": "버전",
      "outputFormat": "출력 형식",
      "srsName": "SRS 이름",
      "maxFeatures": "최대 피처 수",
      "errorMaxFeaturesNumeric": "최대 피처 수는 숫자로 입력하세요.",
      "retrieveTypes": "유형 조회",
      "retrieving": "조회하는 중...",
      "retrievedTypes": "조회된 피처 유형",
      "selectType_other": "{{count}}개 피처 유형 중에서 선택",
      "noTypesFound": "이 서비스에서 피처 유형을 찾을 수 없습니다.",
      "retrieveError": "이 서비스에서 피처 유형을 조회할 수 없습니다."
    },
    "wmts": {
      "defaultName": "WMTS 레이어",
      "sampleLabel": "EOX 세계 영상(Sentinel-2)",
      "errorUrl": "WMTS 타일 URL 템플릿을 입력하세요.",
      "urlPlaceholder": "https://example.com/wmts/{z}/{y}/{x}.png"
    },
    "ogcVectorTiles": {
      "defaultName": "OGC 벡터 타일 레이어",
      "tilesUrl": "타일 URL",
      "tilesUrlPlaceholder": "https://example.com/tiles/WebMercatorQuad?f=tilejson",
      "tilesUrlHint": "TileJSON 메타데이터 URL 또는 {z}/{y}/{x} MVT 타일 템플릿입니다.",
      "styleUrl": "스타일 URL",
      "styleUrlPlaceholder": "https://example.com/styles/default?f=mapbox",
      "styleUrlHint": "선택 사항인 Mapbox/MapLibre 스타일 JSON입니다. TileJSON에 소스 레이어 정보가 없을 때 타일셋의 소스 레이어를 찾는 데 사용됩니다.",
      "sourceLayers": "소스 레이어",
      "sourceLayersPlaceholder": "layer_a, layer_b",
      "sourceLayersHint": "선택 사항으로, 쉼표로 구분된 소스 레이어 이름입니다. TileJSON이나 스타일에서 찾은 레이어보다 우선 적용됩니다.",
      "sampleLabel": "PDOK BGT(네덜란드)",
      "errorUrl": "타일 URL 또는 스타일 URL을 입력하세요.",
      "errorNoTiles": "벡터 타일 엔드포인트를 확인할 수 없습니다. TileJSON URL, 타일 템플릿, 또는 스타일 URL을 입력하세요.",
      "errorNoLayers": "벡터 타일 소스 레이어를 확인할 수 없습니다. 스타일 URL을 추가하거나 소스 레이어 이름을 입력하세요."
    },
    "arcgis": {
      "defaultName": "ArcGIS 레이어",
      "sampleFeatureLabel": "미국 주요 도시(피처)",
      "sampleVectorTileLabel": "산타모니카 필지(벡터 타일)",
      "sampleMapServiceLabel": "미국 행정 경계(맵 서비스)",
      "sampleImageServiceLabel": "USGS 3DEP 음영기복(이미지 서비스)",
      "featureLayer": "피처 레이어",
      "vectorTileLayer": "벡터 타일 레이어",
      "mapServiceLayer": "맵 서비스",
      "imageServiceLayer": "이미지 서비스",
      "portalItemId": "포털 항목 ID",
      "featureUrlPlaceholder": "https://services.arcgis.com/.../FeatureServer/0",
      "vectorTileUrlPlaceholder": "https://.../arcgis/rest/services/.../VectorTileServer",
      "mapServiceUrlPlaceholder": "https://.../arcgis/rest/services/.../MapServer",
      "imageServiceUrlPlaceholder": "https://.../arcgis/rest/services/.../ImageServer",
      "sublayers": "하위 레이어",
      "sublayersPlaceholder": "표시된 모든 하위 레이어",
      "sublayersHint": "선택 사항인 하위 레이어 ID를 쉼표로 구분해 입력합니다(예: 0,2,5). 하위 레이어를 선택하면 캐시된 타일 대신 서비스를 동적으로 그립니다.",
      "renderingRule": "렌더링 규칙",
      "renderingRulePlaceholder": "{\"rasterFunction\":\"Hillshade\"}",
      "renderingRuleHint": "서비스가 적용하는 래스터 함수 JSON(선택 사항)입니다. 렌더링 규칙을 지정하면 캐시된 타일 대신 서비스를 동적으로 그립니다.",
      "portalUrl": "포털 URL",
      "portalUrlPlaceholder": "https://www.arcgis.com/sharing/rest",
      "accessToken": "액세스 토큰"
    },
    "gpx": {
      "defaultName": "GPX 레이어",
      "sampleLabel": "Fells Loop 트레일",
      "errorFileMissing": "GPX 파일 데이터가 없습니다.",
      "readError": "GPX 파일을 읽을 수 없습니다.",
      "errorChooseFile": "GPX 파일을 선택하세요.",
      "errorUrl": "GPX URL을 입력하세요.",
      "errorSelectType": "GPX 레이어 유형을 하나 이상 선택하세요.",
      "errorNotFound": "선택한 GPX 레이어 유형을 찾을 수 없습니다.",
      "waypoints": "웨이포인트",
      "tracks": "트랙",
      "trackPoints": "트랙 포인트",
      "routes": "루트",
      "routePoints": "루트 포인트",
      "url": "GPX URL",
      "file": "GPX 파일",
      "urlPlaceholder": "https://example.com/route.gpx",
      "layerTypes": "레이어 유형"
    },
    "georss": {
      "defaultName": "GeoRSS 레이어",
      "sampleLabel": "USGS 지진(지난 24시간)",
      "errorFileMissing": "GeoRSS 파일 데이터가 없습니다.",
      "readError": "GeoRSS 파일을 읽을 수 없습니다.",
      "errorChooseFile": "GeoRSS 파일을 선택하세요.",
      "errorUrl": "GeoRSS URL을 입력하세요.",
      "url": "GeoRSS URL",
      "file": "GeoRSS 파일",
      "urlPlaceholder": "https://example.com/feed.atom"
    },
    "cad": {
      "defaultName": "CAD 레이어",
      "fileFilter": "CAD(DXF/DWG)",
      "layer": "CAD 레이어",
      "layerPlaceholder": "먼저 CAD 파일을 선택하세요",
      "readingLayers": "레이어를 읽는 중...",
      "layerOption": "{{name}}({{type}}, 피처 {{count}}개)",
      "crs": "원본 CRS",
      "crsPlaceholder": "예: EPSG:26915",
      "crsPresetLabel": "자주 사용하는 좌표계...",
      "crsHelp": "도면이 이미 경도/위도(WGS84)로 되어 있으면 비워 두세요. 그렇지 않으면 도면의 좌표계 EPSG 코드를 입력하여 투영을 변환하세요.",
      "readError": "이 CAD 파일을 읽을 수 없습니다.",
      "errorNoLayers": "이 CAD 파일에서 레이어를 찾을 수 없습니다.",
      "errorChooseFile": "먼저 CAD(DXF/DWG) 파일을 선택하세요.",
      "errorNoLayer": "불러올 CAD 레이어를 선택하세요.",
      "errorUnsupportedGeometry": "이 CAD 레이어에는 표시할 수 없는 혼합 또는 컬렉션 지오메트리가 포함되어 있습니다. 다른 레이어를 시도하세요."
    },
    "gdb": {
      "defaultName": "지오데이터베이스 레이어",
      "chooseFolder": ".gdb 폴더 선택...",
      "noFolderSelected": "선택된 지오데이터베이스 없음",
      "layer": "피처 클래스",
      "layerPlaceholder": "먼저 지오데이터베이스를 선택하세요",
      "readingLayers": "레이어를 읽는 중...",
      "layerOption": "{{name}} ({{type}}, 피처 {{count}}개)",
      "help": "속성 전용 테이블은 표시되지 않습니다. 선택한 피처 클래스는 로컬 GeoLibre 서버를 통해 로드되어 WGS84로 재투영됩니다.",
      "desktopOnly": "파일 지오데이터베이스 레이어는 GeoLibre Desktop에서만 사용할 수 있습니다. 이 기능은 로컬 .gdb 폴더를 로컬 GeoLibre 서버를 통해 읽으며, 웹 앱은 이에 접근할 수 없습니다.",
      "readError": "이 파일 지오데이터베이스를 읽을 수 없습니다.",
      "convertError": "이 피처 클래스를 로드할 수 없습니다.",
      "errorNotGdb": ".gdb로 끝나는 폴더(Esri 파일 지오데이터베이스)를 선택하세요.",
      "errorNoLayers": "이 지오데이터베이스에서 지오메트리가 있는 피처 클래스를 찾을 수 없습니다.",
      "errorChooseFolder": "먼저 .gdb 폴더를 선택하세요.",
      "errorNoLayer": "로드할 피처 클래스를 선택하세요.",
      "errorTimeout": "지오데이터베이스를 읽는 중 시간이 초과되었습니다.",
      "crs": "원본 CRS",
      "crsPlaceholder": "예: EPSG:26915",
      "crsHelp": "이 피처 클래스의 좌표계를 감지할 수 없습니다. WGS84로 재투영할 수 있도록 저장된 EPSG(또는 ESRI) 코드를 입력하세요.",
      "errorMissingCrs": "이 피처 클래스의 좌표계를 감지할 수 없습니다. 추가하려면 원본 CRS를 입력하세요."
    },
    "delimitedText": {
      "defaultName": "구분 텍스트 레이어",
      "sampleLabel": "미국 도시",
      "errorChooseFile": "구분 텍스트 파일을 선택하세요.",
      "errorUrl": "구분 텍스트 URL을 입력하세요.",
      "errorFileMissing": "구분 텍스트 파일 데이터가 없습니다.",
      "readError": "구분 텍스트 파일을 읽을 수 없습니다.",
      "errorDataMissing": "구분 텍스트 데이터가 없습니다.",
      "retrievedColumns_other": "열 {{count}}개를 조회했습니다.",
      "retrievedColumnsTable_other": "열 {{count}}개를 조회했습니다. 좌표 열이 감지되지 않아 속성 테이블로 추가됩니다.",
      "errorRetrieveColumns": "열 이름을 조회할 수 없습니다.",
      "url": "구분 텍스트 URL",
      "file": "구분 텍스트 파일",
      "urlPlaceholder": "https://example.com/data.csv",
      "retrieving": "조회하는 중...",
      "retrieveColumns": "열 조회",
      "delimiter": "구분 기호",
      "delimiterComma": "쉼표",
      "delimiterTab": "탭",
      "delimiterSemicolon": "세미콜론",
      "delimiterPipe": "파이프",
      "delimiterCustom": "사용자 지정",
      "customDelimiter": "사용자 지정 구분 기호",
      "longitudeField": "경도 필드",
      "latitudeField": "위도 필드",
      "noneField": "없음(속성 테이블)",
      "tableHint": "두 좌표 필드를 모두 '없음'으로 두면 파일이 비공간 속성 테이블로 추가됩니다(속성 조인에 사용).",
      "crs": "좌표계",
      "crsPlaceholder": "예: EPSG:32643",
      "crsPresetLabel": "자주 사용하는 좌표계...",
      "crsHelp": "좌표가 이미 경도/위도(WGS84)이면 비워 두세요. 그렇지 않으면 좌표 열의 EPSG 코드를 입력하면 포인트가 WGS84로 투영 변환됩니다. 투영 좌표계인 경우 경도와 위도 필드에서 X(동거리)와 Y(북거리) 열을 선택합니다.",
      "importMode": "가져올 형식",
      "modeCoordinates": "좌표",
      "modeAddresses": "주소(지오코딩)",
      "addressColumns": "주소 열",
      "addressColumnsEmptyHint": "주소 열을 선택하려면 먼저 열을 가져오세요.",
      "addressColumnsHint": "지오코더로 보낼 주소로 이어 붙일 열을 하나 이상 선택하세요(예: 도로명, 시, 도).",
      "errorNoAddressColumns": "주소 열을 하나 이상 선택하세요.",
      "errorNoAddressesFound": "선택한 주소 열에 값이 있는 행이 없습니다."
    },
    "photos": {
      "defaultName": "사진",
      "chooseLabel": "사진",
      "choosePhotos": "사진 선택",
      "hint": "JPEG, PNG, TIFF, HEIC 사진을 선택하세요. 각 사진은 EXIF GPS 위치에 따라 배치됩니다. HEIC 사진은 위치는 지정되지만 미리보기 없이 표시됩니다.",
      "readError": "선택한 사진을 읽을 수 없습니다.",
      "errorChooseFiles": "사진을 하나 이상 선택하세요.",
      "selectedCount_other": "사진 {{count}}장 선택됨",
      "errorNoGps_other": "선택한 사진 {{count}}장에서 GPS 위치를 찾을 수 없습니다.",
      "addedSummary_other": "위치 태그 사진 {{count}}장을 추가했습니다.",
      "skippedNote_other": "{{count}}장은 GPS 위치가 없어 건너뛰었습니다.",
      "noThumbnailNote_other": "{{count}}장에는 미리보기가 없습니다(HEIC 또는 지원되지 않는 형식).",
      "manualPromptTitle": "이 사진에서 GPS 위치를 찾을 수 없습니다.",
      "manualPromptBody": "현재 지도 중심에 배치한 후 지도에서 원하는 위치로 드래그하세요.",
      "manualPromptCenter": "지도 중심: {{lng}}, {{lat}}",
      "manualPlace": "지도 중심에 배치",
      "manualHint": "이 핀을 드래그하여 사진 위치를 지정한 다음 완료를 클릭하세요."
    },
    "mbtiles": {
      "defaultName": "MBTiles 레이어",
      "readError": "MBTiles 파일을 읽을 수 없습니다.",
      "errorChooseFile": "MBTiles 파일을 선택하세요.",
      "errorSourceLayers": "벡터 소스 레이어를 하나 이상 입력하세요.",
      "tileType": "타일 유형",
      "sourceLayers": "소스 레이어",
      "sourceLayersPlaceholder": "building, place, water"
    },
    "postgres": {
      "defaultName": "PostgreSQL 레이어",
      "errorDesktopOnly": "PostgreSQL 레이어를 사용하려면 GeoLibre Desktop이 필요합니다.",
      "errorConnectionString": "PostgreSQL 연결 문자열을 입력하세요.",
      "statusCheckingBinary": "Martin 실행 파일을 확인하는 중...",
      "statusDownloaded": "Martin을 다운로드했습니다. 로컬 서버를 시작하는 중...",
      "statusStarting": "로컬 Martin 서버를 시작하는 중...",
      "statusReadingCatalog": "Martin 카탈로그를 읽는 중...",
      "statusFound_other": "소스 {{count}}개를 찾았습니다.",
      "statusNoSources": "Martin이 실행 중이지만 호환되는 PostGIS 소스를 찾을 수 없습니다.",
      "errorConnect": "PostgreSQL에 연결할 수 없습니다.",
      "statusStopped": "Martin이 중지되었습니다.",
      "errorStop": "Martin을 중지할 수 없습니다.",
      "errorConnectFirst": "먼저 PostgreSQL에 연결하세요.",
      "errorNoVectorLayers": "선택한 Martin 소스에 벡터 레이어가 없습니다.",
      "errorSelectSource": "추가할 Martin 소스를 선택하세요.",
      "desktopOnlyNotice": "PostgreSQL 레이어는 GeoLibre Desktop에서만 사용할 수 있습니다. 이 기능은 로컬 Martin 타일 서버를 실행하는데, 웹 앱에서는 이를 실행할 수 없습니다.",
      "savedConnection": "저장된 연결",
      "selectSavedConnection": "저장된 연결 선택",
      "connectionString": "PostgreSQL 연결 문자열",
      "connectionStringPlaceholder": "postgres://user:password@host:5432/database",
      "defaultSrid": "기본 SRID",
      "connect": "연결",
      "stop": "중지",
      "martinSource": "Martin 소스",
      "runningOnPort": "Martin이 포트 {{port}}에서 실행 중입니다.",
      "loadMode": "불러오기 방식",
      "loadModeTiles": "벡터 타일(Martin, 읽기 전용)",
      "loadModeEditable": "편집 가능 레이어(모든 피처 불러오기)",
      "editableNotice": "로컬 처리 서버를 통해 테이블의 피처를 불러와 편집할 수 있게 합니다. 변경 사항은 레이어의 \"PostGIS 테이블에 편집 내용 저장\" 작업으로 다시 저장하세요.",
      "statusListingTables": "공간 테이블을 읽는 중...",
      "statusTablesFound_other": "공간 테이블 {{count}}개를 찾았습니다.",
      "statusNoTables": "이 데이터베이스에서 공간 테이블을 찾을 수 없습니다.",
      "editableTable": "테이블",
      "tableReadOnly": "{{table}}(읽기 전용: 기본 키 없음)",
      "errorSelectTable": "불러올 테이블을 선택하세요.",
      "errorRuntimeMissing": "처리 서버에 PostGIS 런타임(psycopg)이 설치되어 있지 않습니다. 편집 가능한 레이어를 불러오려면 geolibre-server의 'postgis' 추가 패키지를 설치하세요."
    },
    "video": {
      "defaultName": "비디오 레이어",
      "sampleLabel": "샌프란시스코 인근 해안 파도",
      "errorUrl": "비디오 URL을 입력하세요.",
      "errorHttps": "비디오 URL은 https://로 시작해야 합니다.",
      "cornerTopLeft": "왼쪽 위",
      "cornerTopRight": "오른쪽 위",
      "cornerBottomRight": "오른쪽 아래",
      "cornerBottomLeft": "왼쪽 아래",
      "errorCornerFormat": "{{corner}} 모서리를 \"경도, 위도\" 형식으로 입력하세요.",
      "errorCornerNumber": "{{corner}} 모서리의 경도와 위도를 숫자로 입력하세요.",
      "errorCornerLng": "{{corner}} 모서리의 경도는 -180에서 180 사이여야 합니다.",
      "errorCornerLat": "{{corner}} 모서리의 위도는 -90에서 90 사이여야 합니다.",
      "primaryUrl": "기본 비디오 URL",
      "primaryUrlPlaceholder": "https://example.com/clip.mp4",
      "fallbackUrl": "대체 비디오 URL(선택 사항)",
      "fallbackUrlPlaceholder": "https://example.com/clip.webm",
      "topLeft": "왼쪽 위(경도, 위도)",
      "topRight": "오른쪽 위(경도, 위도)",
      "bottomRight": "오른쪽 아래(경도, 위도)",
      "bottomLeft": "왼쪽 아래(경도, 위도)",
      "cornersNote": "네 모서리 좌표로 비디오를 지도에 지리참조합니다. 프레임이 렌더링되려면 비디오가 HTTPS로 제공되어야 하고 호스트가 교차 출처 요청(CORS)을 허용해야 합니다."
    },
    "netcdf": {
      "sampleLabel": "기온",
      "title": "NetCDF / HDF 추가",
      "description": "NetCDF 또는 HDF5 데이터셋을 렌더링합니다. kerchunk 참조를 통한 원격 클라우드 최적화 파일(HTTP 범위 요청으로 읽음) 또는 브라우저에서 읽는 로컬 NetCDF/HDF5 파일을 사용할 수 있습니다.",
      "sourceLabel": "소스",
      "sourceCloud": "클라우드 최적화(kerchunk URL)",
      "sourceLocal": "로컬 파일(NetCDF / HDF5)",
      "localFileLabel": "로컬 파일",
      "chooseDifferentFile": "다른 파일 선택",
      "readingFile": "읽는 중...",
      "readingRemote": "HTTP로 파일의 메타데이터를 읽는 중...",
      "localFileHelp": "로컬 NetCDF 또는 HDF5 파일(.nc, .nc4, .cdf, .h5, .hdf5)을 선택하세요. 클래식 NetCDF-3과 NetCDF-4/HDF5를 모두 지원합니다. 브라우저에서 디코딩되며 파일이 클수록 메모리를 더 많이 사용합니다.",
      "errorNoVariables": "파일에서 렌더링 가능한(2차원 이상) 변수를 찾을 수 없습니다.",
      "errorNoFile": "불러온 파일이 없습니다.",
      "kerchunkUrlLabel": "kerchunk 참조 URL",
      "kerchunkUrlHelp": "위에서 샘플 데이터셋을 선택하거나 직접 kerchunk 참조 URL을 붙여 넣은 뒤 변수 불러오기를 클릭하세요.",
      "loading": "불러오는 중...",
      "loadVariables": "변수 불러오기",
      "variableLabel": "변수",
      "dimIndexLabel": "{{dim}} 인덱스",
      "colormapLabel": "컬러맵",
      "bandCombinationLabel": "밴드 조합",
      "bandCombinationHelp": "단일 밴드는 컬러맵으로 그려지고, RGB 합성은 이 변수의 세 밴드를 빨강, 초록, 파랑 채널로 그리며 각 채널을 자체 2-98 % 범위로 스트레치합니다.",
      "modeSingleBand": "단일 밴드(컬러맵)",
      "modeRgb": "RGB 합성(세 밴드)",
      "colorMin": "색상 최솟값(선택 사항)",
      "colorMax": "색상 최댓값(선택 사항)",
      "adding": "추가하는 중...",
      "addLayer": "레이어 추가",
      "channel": {
        "red": "빨강 밴드",
        "green": "초록 밴드",
        "blue": "파랑 밴드"
      }
    },
    "deckViz": {
      "defaultName": "Deck.gl 레이어",
      "errorChooseFile": "CSV, JSON, GeoJSON 파일을 선택하세요.",
      "errorUrl": "데이터 URL을 입력하세요.",
      "errorUnknownType": "알 수 없는 레이어 유형입니다.",
      "needsGeojson": "{{label}}에는 GeoJSON 파일이 필요합니다.",
      "needsTabular": "{{label}}에는 GeoJSON이 아닌 표 형식의 CSV/JSON 데이터가 필요합니다.",
      "mapRequiredFields_other": "필수 필드를 매핑하세요: {{fields}}.",
      "errorExample": "예제 데이터를 불러올 수 없습니다.",
      "loadedFeatures_other": "피처 {{count}}개를 불러왔습니다.",
      "loadedRows_other": "{{count}}행",
      "loadedColumns_other": "{{count}}열",
      "loadedTabular": "{{rows}} · {{columns}}을(를) 불러왔습니다.",
      "errorLoad": "데이터를 불러올 수 없습니다.",
      "errorLoadFirst": "먼저 예제 데이터나 파일/URL을 불러오세요.",
      "useExample": "예제 데이터 사용",
      "loadYourOwn": "또는 직접 데이터 불러오기",
      "dataUrl": "데이터 URL",
      "localFile": "로컬 파일",
      "urlPlaceholder": "https://example.com/data.csv",
      "chooseFileLoad": "파일 선택 및 불러오기",
      "loadData": "데이터 불러오기",
      "selectRole": "— 선택 —",
      "roleNone": "(없음)",
      "closeAfterAdd": "레이어 추가 후 대화 상자 닫기",
      "color": "색상",
      "pointSize": "포인트 크기",
      "cellSize": "셀 크기",
      "lineWidth": "선 두께",
      "extrusion": "3D 돌출",
      "modelUrlPlaceholder": "https://example.com/model.glb"
    },
    "ogcFeatures": {
      "defaultName": "OGC API - Features 레이어",
      "sampleLabel": "세계의 호수 (pygeoapi 데모)",
      "urlPlaceholder": "https://example.com/ogcapi",
      "urlHint": "서비스의 랜딩 페이지 또는 거기에서 복사한 URL (/collections 또는 /collections/{id}/items URL도 사용할 수 있습니다).",
      "retrieveCollections": "컬렉션 조회",
      "retrieving": "조회하는 중...",
      "retrievedCollections": "조회한 컬렉션",
      "selectCollection_other": "{{count}}개 컬렉션에서 선택",
      "noCollectionsFound": "이 서비스에서 피처 컬렉션을 찾지 못했습니다.",
      "retrieveError": "이 서비스에서 컬렉션을 조회할 수 없습니다.",
      "collection": "컬렉션",
      "collectionPlaceholder": "collection-id",
      "maxFeatures": "최대 피처 수",
      "bbox": "경계 상자",
      "datetime": "날짜 및 시간",
      "errorCollection": "OGC API - Features 컬렉션 id를 입력하세요.",
      "errorMaxFeatures": "최대 피처 수를 1 이상으로 입력하세요.",
      "errorBbox": "경계 상자를 “서,남,동,북” 형식으로 입력하세요.",
      "errorNoFeatures": "이 컬렉션은 피처를 반환하지 않았습니다."
    },
    "nonGeographicCoordinates": "{{names}}의 좌표가 경위도가 아니므로 지도에 아무것도 그려지지 않습니다. CRS가 잘못 지정되어 있습니다 — 데이터를 재투영하거나 .prj를 수정한 뒤 다시 불러오세요."
  },
  "offline": {
    "title": "오프라인 지역 다운로드",
    "description": "현재 지도 화면의 배경지도 타일을 저장하여 네트워크 연결 없이도 이 지역을 사용할 수 있도록 합니다.",
    "noServiceWorker": "오프라인 캐싱을 사용하려면 설치된 웹 앱이 필요합니다. 이 빌드에서는 여기서 다운로드한 타일이 오프라인 사용을 위해 저장되지 않습니다.",
    "uncacheable": "다음 배경지도 소스는 오프라인 다운로드를 지원하지 않으며 오프라인 지도에서 제외됩니다: {{hosts}}.",
    "cacheable": "다음 배경지도 소스는 다운로드되어 오프라인에서 사용할 수 있습니다: {{hosts}}.",
    "includeExtra": "확대를 위한 추가 상세 수준 포함",
    "currentViewOnly": "현재 화면만 · 줌 {{zoom}}",
    "detailLevels": "추가 상세 수준",
    "relativeLevels_other": "+{{count}}단계 · 줌 {{min}}–{{max}}",
    "tiles": "다운로드할 리소스",
    "tooManyTiles": "이 지역은 오프라인 캐시 한도({{max}}개 리소스)를 초과합니다. 새 리소스를 다운로드하면 가장 오래된 캐시 타일이 삭제될 수 있습니다. 상세 수준을 줄이거나 더 작은 지역을 선택하세요.",
    "acknowledgeEviction": "필요한 경우 오래된 타일을 삭제하고 계속 다운로드",
    "download": "다운로드",
    "cancel": "취소",
    "progress": "다운로드 중 {{done}} / {{total}}…",
    "complete_other": "오프라인 지역이 저장되었습니다. {{count}}개 리소스가 오프라인 사용을 위해 캐시되었습니다.",
    "completeWithFailures": "{{total}}개 중 {{done}}개 리소스를 저장했습니다({{failed}}개 실패).",
    "retryFailed_other": "실패한 리소스 {{count}}개 재시도",
    "retryAll": "모든 리소스 재시도",
    "advanced": "고급 옵션",
    "concurrency": "동시 요청 수",
    "concurrencyHint": "빠른 타일 요청을 제한하는 서버의 부하를 줄이려면 이 값을 낮추세요.",
    "timeout": "요청 제한 시간(초)",
    "timeoutHint": "각 타일 요청은 실패로 처리되기 전까지 최대 {{seconds}}초가 주어집니다.",
    "timeoutDisabled": "제한 시간 없음 — 요청은 브라우저 기본값을 사용합니다. 느린 연결에서는 값을 늘리세요."
  },
  "offlineManager": {
    "title": "오프라인 지역 관리",
    "description": "오프라인 사용을 위해 다운로드한 배경지도 지역을 확인하고 새로고침하거나 삭제하여 저장 공간을 확보하세요.",
    "noServiceWorker": "오프라인 캐싱을 사용하려면 설치된 웹 앱이 필요합니다. 이 빌드에서는 지역을 새로고침해도 타일이 오프라인 사용을 위해 저장되지 않습니다.",
    "empty": "아직 오프라인 지역이 없습니다. \"오프라인 지역 다운로드\"를 사용하여 현재 지도 화면을 오프라인용으로 저장하세요.",
    "zoomRange": "줌 {{min}}–{{max}}",
    "tilesCount_other": "타일 {{count}}개",
    "savedOn": "{{date}}에 저장됨",
    "rename": "이 지역 이름 바꾸기",
    "nameLabel": "지역 이름",
    "update": "이 지역 새로고침",
    "delete": "이 지역 삭제",
    "confirmDelete": "삭제",
    "updateAll": "모두 새로고침",
    "updating": "새로고침 중 {{done}} / {{total}}…",
    "totalFootprint_other": "{{count}}개 지역, 총 {{size}}",
    "deviceUsage": "{{quota}} 중 {{usage}} 사용 중"
  },
  "recordTour": {
    "title": "지도 투어 녹화",
    "hint": "지도를 이동하고 확대/축소한 다음 각 화면을 캡처하세요. 이 패널이 열려 있는 동안에도 지도는 계속 조작할 수 있습니다.",
    "unsupported": "이 브라우저에서는 지도 캔버스를 녹화할 수 없습니다. 최신 버전의 Chrome, Edge 또는 Firefox를 사용해 보세요.",
    "addView": "현재 화면 추가",
    "pathTitle": "경로에서 생성",
    "pathNoLayers": "경로에서 키프레임을 생성하려면 LineString 레이어를 추가하세요.",
    "pathLayer": "경로 레이어",
    "pathLayerOption": "{{name}} ({{count}}개 지점)",
    "pathKeyframes": "키프레임",
    "pathZoom": "확대/축소",
    "pathPitch": "기울기",
    "pathHold": "유지",
    "pathTransition": "이동",
    "pathGenerate": "생성",
    "pathConfirmReplace": "현재 키프레임을 이 경로에서 생성된 키프레임으로 바꾸시겠습니까?",
    "pathGenerated_other": "경로에서 키프레임 {{count}}개를 생성했습니다.",
    "pathGenerateError": "이 경로에서 키프레임을 생성할 수 없습니다.",
    "loadConfig": "설정 불러오기",
    "saveConfig": "설정 저장",
    "confirmLoad": "현재 키프레임을 불러온 설정으로 바꾸시겠습니까?",
    "configFileType": "투어 설정",
    "configSaved": "설정을 {{name}}(으)로 저장했습니다",
    "configLoaded_other": "키프레임 {{count}}개가 포함된 설정을 불러왔습니다.",
    "configSaveError": "투어 설정을 저장하지 못했습니다. 다시 시도하세요.",
    "configLoadError": "투어 설정을 불러오지 못했습니다. 파일이 잘못되었을 수 있습니다.",
    "keyframeCount_other": "키프레임 {{count}}개",
    "empty": "지도를 이동/확대하여 시작 화면을 설정한 다음 첫 번째 키프레임으로 추가하세요. 투어를 녹화하려면 키프레임을 두 개 이상 추가해야 합니다.",
    "flyToKeyframe": "이 화면으로 이동",
    "hold": "정지 시간",
    "transition": "전환",
    "secondsShort": "초",
    "holdSeconds": "이 화면에서 정지할 시간(초)",
    "segmentSeconds": "다음 화면으로 이동하는 시간(초)",
    "resizeLeft": "왼쪽 아래 모서리로 패널 크기 조절",
    "resizeRight": "오른쪽 아래 모서리로 패널 크기 조절",
    "recapture": "현재 지도 화면으로 업데이트",
    "moveUp": "키프레임 위로 이동",
    "moveDown": "키프레임 아래로 이동",
    "removeKeyframe": "키프레임 삭제",
    "fps": "초당 프레임 수",
    "estimatedLength": "약 {{seconds}}초",
    "record": "녹화",
    "videoFileType": "WebM 동영상",
    "recordingStatus": "녹화 중… {{percent}}%",
    "savingStatus": "동영상 저장 중…",
    "stop": "중지",
    "recordingReady": "녹화가 완료되었습니다. 이름을 지정하여 저장하거나 삭제하고 다시 녹화하세요.",
    "fileNameLabel": "파일 이름",
    "saveVideo": "동영상 저장…",
    "discard": "삭제",
    "saved": "{{name}} 저장됨",
    "saveCancelled": "저장이 취소되었습니다.",
    "recordError": "투어를 녹화하지 못했습니다. 다시 시도하세요.",
    "saveError": "동영상을 저장하지 못했습니다. 다시 시도하세요."
  },
  "recordVideo": {
    "title": "동영상 녹화",
    "hint": "실시간 지도를 동영상으로 녹화합니다. 녹화 중에 지도를 이동하고 확대/축소하면 모든 움직임이 캡처됩니다. 이 패널과 선택 프레임은 동영상에 포함되지 않습니다.",
    "unsupported": "이 브라우저에서는 지도 캔버스를 녹화할 수 없습니다. 최신 버전의 Chrome, Edge 또는 Firefox를 사용해 보세요.",
    "area": "캡처 영역",
    "wholeMap": "지도 전체",
    "selectArea": "영역 선택…",
    "redrawArea": "영역 다시 그리기…",
    "drawHint": "지도에서 사각형을 드래그하여 녹화 영역을 설정하거나 Esc 키를 눌러 취소하세요.",
    "regionChosen": "녹화 영역: {{width}} × {{height}} px. 지도가 아래에서 움직이는 동안 프레임은 고정된 상태로 유지됩니다.",
    "noRegion": "지도에 사각형을 그려 녹화 영역을 선택하세요.",
    "needRegion": "먼저 지도에서 영역을 선택하세요.",
    "fps": "초당 프레임 수",
    "caption": "캡션 (영상에 삽입)",
    "captionTitlePlaceholder": "제목 (선택 사항)",
    "captionTextLabel": "캡션 부제목 또는 데이터 출처",
    "captionTextPlaceholder": "부제목 또는 데이터 출처 (선택 사항)",
    "captionPosition": "캡션 위치",
    "captionPos": {
      "top-left": "왼쪽 위",
      "top-center": "가운데 위",
      "top-right": "오른쪽 위",
      "bottom-left": "왼쪽 아래",
      "bottom-center": "가운데 아래",
      "bottom-right": "오른쪽 아래"
    },
    "includePanels": "지도 패널(범례, 색상 막대, HTML)을 영상에 포함",
    "record": "녹화",
    "preparing": "준비 중…",
    "stop": "중지",
    "savingStatus": "동영상 저장 중…",
    "recordingReady": "녹화가 완료되었습니다. 이름을 지정하여 저장하거나 삭제하고 다시 녹화하세요.",
    "fileNameLabel": "파일 이름",
    "saveVideo": "동영상 저장…",
    "discard": "삭제",
    "videoFileType": "동영상",
    "saved": "{{name}} 저장됨",
    "saveCancelled": "저장이 취소되었습니다.",
    "recordError": "동영상을 녹화하지 못했습니다. 다시 시도하세요.",
    "saveError": "동영상을 저장하지 못했습니다. 다시 시도하세요."
  },
  "fieldCollection": {
    "title": "현장 수집",
    "description": "사용자 지정 양식에 맞춰 점, 선 또는 폴리곤 관측 데이터를 수집합니다. GPS로 또는 지도를 탭하여 점을 배치하고, 정점을 하나씩 찍어 선과 폴리곤을 그립니다.",
    "captureDescription": "GPS 또는 지도에서 위치를 캡처한 다음 양식을 작성하여 저장하세요.",
    "captureReviewDescription": "캡처한 위치를 확인하고 양식을 작성한 다음 레이어에 저장하세요.",
    "reopen": "현장 수집 열기",
    "targetLayer": "수집 레이어",
    "newLayer": "새 수집 레이어…",
    "layerName": "레이어 이름",
    "layerNamePlaceholder": "현장 관측",
    "geometry": "지오메트리",
    "geom": {
      "point": "점",
      "line": "선",
      "polygon": "폴리곤"
    },
    "fields": "양식 필드",
    "addField": "필드 추가",
    "fieldLabel": "라벨",
    "fieldType": "유형",
    "options": "옵션(쉼표로 구분)",
    "required": "필수",
    "noFields": "아직 필드가 없습니다. 속성을 수집하려면 필드를 추가하거나, 위치 정보만 있는 점을 수집하려면 레이어를 생성하세요.",
    "type": {
      "text": "텍스트",
      "number": "숫자",
      "date": "날짜",
      "choice": "선택"
    },
    "createLayer": "레이어 생성",
    "captureHint": "GPS를 사용하거나 지도에서 점을 선택하여 캡처를 시작하세요.",
    "drawHint": "지도에 도형을 그려 캡처를 시작하세요.",
    "useGps": "GPS 사용",
    "pickOnMap": "지도에서 선택",
    "reposition": "점 위치 재조정",
    "drawOnMap": "지도에 그리기",
    "pickBannerTitle": "배치 모드 활성화됨",
    "pickBannerHint": "지도의 아무 곳이나 클릭하여 점을 선택하거나 Esc 키를 눌러 취소하세요.",
    "addGpsVertex": "GPS 정점 추가",
    "undo": "실행 취소",
    "finish": "완료",
    "vertices_other": "정점 {{count}}개",
    "needMore": "정점을 {{min}}개 이상 추가하세요",
    "dblClickHint": "탭하여 정점을 추가하고, 더블클릭하여 완료하세요.",
    "locating": "위치 확인 중…",
    "photo": "사진",
    "photoOptional": "사진(선택 사항)",
    "choosePhoto": "사진 선택…",
    "removePhoto": "제거",
    "save": {
      "point": "점 저장",
      "line": "선 저장",
      "polygon": "폴리곤 저장"
    },
    "saved": {
      "point_other": "{{layer}}에 점 {{count}}개를 저장했습니다.",
      "line_other": "{{layer}}에 선 {{count}}개를 저장했습니다.",
      "polygon_other": "{{layer}}에 폴리곤 {{count}}개를 저장했습니다."
    },
    "layerGone": "수집 레이어를 더 이상 사용할 수 없습니다.",
    "noGeolocation": "이 기기에서는 위치 확인 기능을 사용할 수 없습니다.",
    "geolocationDenied": "위치를 가져올 수 없습니다. 위치 권한을 확인하고 다시 시도하세요.",
    "photoTooLarge": "사진이 너무 큽니다(최대 {{max}}). 더 작은 이미지를 선택하세요.",
    "photoReadError": "이미지를 읽을 수 없습니다. 다른 파일을 시도하세요.",
    "errorRequired": "이 필드는 필수입니다.",
    "errorNumber": "올바른 숫자를 입력하세요.",
    "errorChoice": "목록에 있는 옵션 중 하나를 선택하세요."
  },
  "gps": {
    "title": "GPS 추적",
    "description": "기기 위치를 지도에 스트리밍하고, 트랙 로그를 기록하며, 현재 위치에서 지점을 캡처합니다.",
    "start": "GPS 시작",
    "stop": "GPS 중지",
    "follow": "지도를 내 위치 중심으로 유지",
    "waitingForFix": "GPS 신호를 기다리는 중…",
    "noGeolocation": "이 기기에서는 위치 정보를 사용할 수 없습니다.",
    "permissionDenied": "위치 권한이 거부되었습니다. 브라우저 또는 시스템 설정에서 활성화한 후 다시 시도하세요.",
    "trackLog": "트랙 로그",
    "record": "트랙 기록",
    "pause": "일시정지",
    "resume": "재개",
    "discard": "버리기",
    "saveTrack": "레이어로 저장",
    "exportGpx": "GPX 내보내기",
    "exportGeojson": "GeoJSON 내보내기",
    "points_other": "{{count}}개 지점",
    "trackLayerName": "GPS 트랙",
    "trackSaved": "{{name}}을(를) 레이어로 저장했습니다.",
    "trackExported": "트랙을 내보냈습니다.",
    "exportCancelled": "내보내기를 취소했습니다.",
    "exportFailed": "트랙을 내보낼 수 없습니다. 다시 시도하세요.",
    "capture": "디지타이즈",
    "capturePoint": "지점 캡처",
    "captureLayerName": "GPS 지점",
    "captured_other": "이 세션에서 지점 {{count}}개를 캡처했습니다.",
    "pointCaptured": "{{layer}}에 지점을 저장했습니다.",
    "captureBlocked": "측위 정확도가 ±{{accuracy}}로, {{max}} m 임계값보다 나쁩니다. 지점을 저장하지 않았습니다.",
    "satellites": "위성",
    "satellitesShort": "위성",
    "satellitesValue": "위성: {{value}}",
    "satellitesShortValue": "위성: {{value}}",
    "notAvailable": "—",
    "settings": "로깅 필터",
    "minDistance": "최소 거리 (m)",
    "minTime": "최소 시간 (초)",
    "maxAccuracy": "최대 정확도 (m)",
    "settingsHint": "최소 거리 또는 시간보다 가까운 측위는 건너뜁니다. 정확도 임계값보다 부정확한 측위는 기록되지 않으며 지점 캡처가 차단됩니다. 0은 필터를 비활성화합니다.",
    "openDialog": "GPS 추적 열기",
    "altitudeValue": "고도: {{value}} m",
    "speedValue": "{{value}} km/h",
    "headingValue": "{{value}}°",
    "source": "위치 소스",
    "sourceDevice": "이 기기",
    "sourceNmea": "NMEA 수신기(시리얼 또는 블루투스)",
    "nmeaBaudRate": "전송 속도(보율)",
    "nmeaConnectSerial": "시리얼 연결",
    "nmeaConnectBluetooth": "블루투스 연결",
    "nmeaConnecting": "연결 중…",
    "nmeaConnected": "{{device}}에 연결되었습니다.",
    "nmeaDisconnect": "연결 해제",
    "nmeaNotConnected": "위치 스트리밍을 시작하려면 위에서 NMEA 수신기를 연결하세요.",
    "nmeaWaiting": "문장을 기다리는 중…",
    "nmeaStats": "문장 {{parsed}}개 · 측위 {{fixes}}회",
    "nmeaConnectFailed": "수신기에 연결할 수 없습니다.",
    "nmeaDisconnected": "수신기 연결이 끊어졌습니다.",
    "nmeaUnsupportedDevice": "해당 기기에서 NMEA 서비스를 찾지 못했습니다. 클래식 블루투스 수신기일 수 있으며, 이 경우 시스템 설정에서 페어링한 뒤 여기서 시리얼 포트로 연결해야 합니다.",
    "nmeaUnsupported": "NMEA 수신기를 읽으려면 Web Serial 또는 Web Bluetooth API가 필요하지만 이 브라우저는 지원하지 않습니다. Chrome이나 Edge 같은 Chromium 기반 브라우저에서 GeoLibre를 열어 주세요.",
    "nmeaSerialUnsupported": "여기서는 Web Serial을 사용할 수 없으므로 시리얼 수신기를 열 수 없습니다.",
    "nmeaBluetoothUnsupported": "여기서는 Web Bluetooth를 사용할 수 없으므로 저전력 블루투스 수신기를 열 수 없습니다.",
    "nmeaBluetoothHint": "대부분의 블루투스 GPS 수신기는 클래식 블루투스를 사용합니다. 시스템 설정에서 페어링하면 여기에 시리얼 포트로 표시됩니다. \"블루투스 연결\"은 저전력 블루투스 수신기에만 사용하세요.",
    "fixQuality": {
      "invalid": "측위 없음",
      "gps": "GPS 측위",
      "dgps": "차분 GPS",
      "pps": "PPS 측위",
      "rtk-fixed": "RTK 고정",
      "rtk-float": "RTK 부동",
      "estimated": "추측 항법",
      "manual": "수동 입력",
      "simulation": "시뮬레이션"
    }
  },
  "georeferencer": {
    "title": "이미지 지오레퍼런싱",
    "description": "이미지를 지도에 고정합니다. 이미지를 불러온 다음 이미지 점을 지도 위치에 연결하고 지오레퍼런스된 오버레이로 추가하세요.",
    "loadImage": "클릭하여 이미지 불러오기(PNG, JPG, TIFF)",
    "imageTooLarge": "이미지가 너무 큽니다(최대 {{max}}). 더 작은 이미지를 선택하세요.",
    "imageReadError": "이미지를 읽을 수 없습니다. 다른 파일을 시도하세요.",
    "imageNoDimensions": "이미지 크기를 확인할 수 없습니다. 래스터 이미지(PNG, JPG, TIFF)를 사용하세요.",
    "sourceImage": "원본 이미지({{w}} × {{h}} px)",
    "clickImageHint": "이미지에서 점을 클릭한 다음 지도에서 연결하세요.",
    "pixelPicked": "이미지 점: {{x}}, {{y}}",
    "linkOnMap": "지도에서 연결",
    "zoomIn": "확대",
    "zoomOut": "축소",
    "zoomReset": "줌 초기화",
    "importGcps": "가져오기",
    "exportGcps": "내보내기",
    "gcpsImported": "지상기준점 {{count}}개를 가져왔습니다.",
    "gcpsReadError": "해당 파일에서 지상기준점을 읽을 수 없습니다.",
    "gcpsOutsideImage": "일부 지상기준점이 불러온 이미지 범위를 벗어납니다. 다른 이미지의 점일 수 있습니다.",
    "transformNeedsMore": "이 변환에는 지상기준점이 {{min}}개 이상 필요합니다.",
    "gcps": "지상기준점({{count}}개)",
    "needGcps": "지오레퍼런싱하려면 지상기준점을 {{min}}개 이상 추가하세요.",
    "collinear": "지상기준점이 일직선상에 있거나 겹칩니다. 하나를 선 밖으로 이동하세요.",
    "cornersOutOfRange": "이 맞춤은 이미지를 유효한 지도 범위 밖에 배치합니다. 지상기준점을 조정하세요.",
    "residual": "잔차",
    "rms": "RMS {{rms}} m",
    "opacity": "오버레이 불투명도",
    "addToMap": "지도에 추가",
    "clear": "지우기",
    "defaultName": "지오레퍼런스 이미지",
    "exportTiff": "GeoTIFF 내보내기",
    "exportTiffButton": "내보내기",
    "exportTiffHint": "브라우저에서 이미지를 클라우드 최적화 GeoTIFF(Cloud-Optimized GeoTIFF)로 워핑합니다(GDAL/WASM). 엔진은 처음 사용할 때 다운로드됩니다.",
    "transform": {
      "affine": "아핀(선형)",
      "polynomial": "다항식(2차)",
      "tps": "박판 스플라인(Thin Plate Spline)"
    },
    "exporting": "GeoTIFF 내보내는 중…(처음 사용 시 GDAL 로드)",
    "exported": "GeoTIFF를 내보냈습니다.",
    "exportFailed": "GeoTIFF 내보내기에 실패했습니다. 자세한 내용은 콘솔을 확인하세요."
  },
  "collaborate": {
    "title": "실시간 공동작업",
    "description": "실시간 세션을 공유하여 다른 사람들이 이 지도를 함께 보고 편집할 수 있도록 하세요.",
    "displayName": "내 이름",
    "displayNamePlaceholder": "예: Alex",
    "color": "내 색상",
    "startHeading": "세션 시작",
    "joinHeading": "세션 참가",
    "mode": "편집 권한",
    "modeCoEdit": "누구나 편집 가능",
    "modeViewOnly": "본인만 편집 가능(다른 사람은 보기만 가능)",
    "start": "세션 시작",
    "join": "참가",
    "joinSession": "세션 참가",
    "invitedHeading": "초대받았습니다",
    "invitedDescription": "이름과 색상을 선택한 다음 호스트의 실시간 세션에 참가하세요.",
    "startInstead": "대신 새 세션 시작",
    "sessionCode": "세션 코드",
    "sessionCodePlaceholder": "코드 입력",
    "shareLink": "공유 링크",
    "scanToJoin": "스캔하여 참가",
    "copyLink": "링크 복사",
    "copyCode": "코드 복사",
    "copied": "복사됨",
    "participants": "참가자({{count}}명)",
    "host": "호스트",
    "you": "본인",
    "guest": "게스트",
    "connectFailed": "공동작업 서버에 연결할 수 없습니다.",
    "copyFailed": "클립보드에 복사할 수 없습니다.",
    "connecting": "연결 중…",
    "reconnecting": "재연결 중…",
    "connected": "실시간 세션 활성화됨",
    "followHost": "호스트 화면 따라가기",
    "goToMap": "지도로 이동하여 공동작업",
    "goToMapViewOnly": "지도로 이동하여 보기",
    "collapseRoster": "참가자 목록 접기",
    "manageSession": "세션 관리",
    "sessionStatusTooltip": "실시간 공동작업 세션입니다. 클릭하여 접속자를 확인하세요.",
    "announcements": "세션 알림",
    "participantJoined": "{{name}}님이 세션에 참가했습니다",
    "participantLeft": "{{name}}님이 세션을 나갔습니다",
    "leave": "세션 나가기",
    "switchToCoEdit": "모두에게 편집 허용",
    "switchToViewOnly": "보기 전용으로 설정",
    "nameRequired": "계속하려면 이름을 입력하세요.",
    "codeRequired": "참가하려면 세션 코드를 입력하세요.",
    "canEdit": "편집 가능",
    "viewOnly": "보기 전용",
    "allowEdit": "이 사용자에게 편집 허용",
    "setViewOnly": "이 사용자를 보기 전용으로 설정",
    "chatLog": "세션 채팅",
    "chatCompose": "메시지 입력",
    "chatEmpty": "아직 메시지가 없습니다.",
    "chatPlaceholder": "메시지 보내기…",
    "chatSend": "메시지 보내기",
    "chatAttachLocation": "현재 지도 위치 첨부",
    "chatLocationAttached": "위치가 첨부됨(클릭하여 제거)",
    "chatGoToLocation": "이 위치로 이동",
    "sessionStatusUnread_other": "실시간 공동작업 세션, 읽지 않은 메시지 {{count}}개. 클릭하여 접속자를 확인하고 채팅하세요."
  },
  "share": {
    "title": "프로젝트 공유",
    "description": "현재 프로젝트를 {{shareHost}}에 업로드하고 공유 가능한 링크를 받으세요.",
    "setupIntro": "업로드하기 전에 {{shareHost}} 계정을 연결하세요.",
    "step1Title": "1. API 토큰 받기",
    "step1Description": "{{shareHost}}에 로그인한 다음 설정 → API 토큰에서 토큰을 생성하세요.",
    "getToken": "API 토큰 받기",
    "step2Title": "2. GeoLibre에 토큰 추가",
    "step2Description": "이 기기의 설정 → 환경 변수에 토큰을 붙여넣으세요.",
    "configureToken": "로컬 토큰 구성",
    "liveAt": "프로젝트가 게시된 위치:",
    "copyLink": "링크 복사",
    "open": "열기",
    "done": "완료",
    "projectTitle": "프로젝트 제목",
    "titlePlaceholder": "프로젝트 이름 입력",
    "titleRequired": "공유하기 전에 프로젝트 제목을 입력하세요.",
    "visibility": "공개 범위",
    "visibilityUnlisted": "목록에 없음(링크가 있는 모든 사람)",
    "visibilityPublic": "공개(갤러리에 표시됨)",
    "visibilityPrivate": "비공개(본인만)",
    "shareButton": "공유",
    "sharing": "공유 중…",
    "errorFallback": "프로젝트를 공유할 수 없습니다.",
    "usernameRequired": "공유하기 전에 {{shareHost}} 계정에 사용자 이름을 설정하세요. 계정 설정을 열어 사용자 이름을 선택한 다음 다시 시도하세요.",
    "openAccountSettings": "계정 설정 열기",
    "credentialsRemoved": "자격 증명 필드 {{count}}개가 포함되지 않았습니다. 수신자는 자신의 자격 증명을 제공하거나 브로커 참조를 사용해야 합니다."
  },
  "gallery": {
    "title": "프로젝트 갤러리",
    "description": "{{shareHost}}에 공유된 공개 프로젝트를 둘러보고 GeoLibre에서 여세요.",
    "searchPlaceholder": "불러온 프로젝트를 제목, 작성자 또는 태그로 필터링",
    "loading": "프로젝트 불러오는 중…",
    "loadingMore": "더 불러오는 중…",
    "loadMore": "더 불러오기",
    "empty": "표시할 공개 프로젝트가 아직 없습니다.",
    "noMatches": "필터와 일치하는 불러온 프로젝트가 없습니다.",
    "errorFallback": "프로젝트 갤러리를 불러올 수 없습니다.",
    "errorTimeout": "프로젝트 갤러리 요청 시간이 초과되었습니다. 다시 시도하세요.",
    "errorNetwork": "{{shareHost}}에 연결할 수 없습니다. 인터넷 연결을 확인하세요.",
    "errorHttp": "갤러리를 불러올 수 없습니다(HTTP {{status}}).",
    "errorInvalidResponse": "갤러리를 불러올 수 없습니다(잘못된 서버 응답).",
    "errorUnauthorized": "{{shareHost}} API 토큰이 유효하지 않거나 만료되었습니다. 설정에서 업데이트하세요.",
    "errorUsernameRequired": "프로젝트를 불러오기 전에 {{shareHost}} 계정에 사용자 이름을 설정하세요.",
    "errorNotConfigured": "이 배포에는 프로젝트 공유 서버가 구성되어 있지 않습니다.",
    "retry": "다시 시도",
    "open": "열기",
    "openCopy": "사본 열기",
    "opening": "여는 중…",
    "openingCopy": "사본을 여는 중…",
    "openOnWeb": "웹에서 보기",
    "openError": "이 프로젝트를 열 수 없습니다.",
    "byAuthor": "작성자: {{author}}",
    "views_other": "조회수 {{count}}회",
    "untitled": "제목 없는 프로젝트",
    "noThumbnail": "미리보기 없음",
    "resizeDialog": "갤러리 크기 조절",
    "scopeFeatured": "추천",
    "scopeAll": "모든 프로젝트",
    "scopeMine": "내 프로젝트",
    "signedOutHint": "본인의 목록에 없는 프로젝트와 비공개 프로젝트를 보려면 설정에서 {{shareHost}} API 토큰을 추가하세요.",
    "emptyFeatured": "아직 추천 프로젝트가 없습니다.",
    "emptyMine": "아직 공유한 프로젝트가 없습니다.",
    "visibilityUnlisted": "목록에 없음",
    "visibilityPrivate": "비공개"
  },
  "template": {
    "saveTitle": "템플릿으로 저장",
    "saveDescription": "이 프로젝트를 미리 구성된 재사용 가능한 템플릿으로 개인 라이브러리에 저장합니다.",
    "defaultName": "제목 없는 템플릿",
    "nameLabel": "템플릿 이름",
    "namePlaceholder": "예: 조직 표준 지도",
    "descriptionLabel": "설명 (선택 사항)",
    "descriptionPlaceholder": "예: 팀 지도를 위한 배경지도, 스타일, 대시보드 레이아웃 사전 구성",
    "stripDataLayersLabel": "데이터 레이어 제거",
    "stripDataLayersDesc": "배경지도, 레이어 그룹, 스타일, 범례, 위젯, 레이아웃은 유지하고 데이터 레이어의 내용만 제거합니다.",
    "saveAction": "템플릿 라이브러리에 저장"
  },
  "language": {
    "label": "언어",
    "description": "인터페이스에서 사용할 언어를 선택하세요."
  },
  "printLayout": {
    "title": "인쇄 레이아웃",
    "description": "제목, 범례, 축척 막대, 방위표를 포함한 인쇄용 지도를 구성한 다음 PNG 또는 PDF로 내보내세요.",
    "preview": "미리보기",
    "resizeControls": "컨트롤 패널 크기 조절",
    "resizeDialog": "대화상자 크기 조절",
    "recapture": "지도 다시 캡처",
    "copyToClipboard": "클립보드에 복사",
    "copied": "복사됨",
    "exportPng": "PNG 내보내기",
    "exportPdf": "PDF 내보내기",
    "titleLabel": "제목",
    "titlePlaceholder": "지도 제목",
    "subtitleLabel": "부제목",
    "subtitlePlaceholder": "부제목(선택 사항)",
    "size": "크기",
    "sizeGroup": {
      "paper": "용지",
      "screen": "화면/디지털"
    },
    "sizeCustom": "사용자 지정…",
    "orientation": "방향",
    "portrait": "세로",
    "landscape": "가로",
    "width": "너비",
    "height": "높이",
    "unit": "단위",
    "titlePlacement": "제목 배치",
    "placement": {
      "outside": "프레임 바깥쪽",
      "inside": "프레임 안쪽"
    },
    "alignment": "정렬",
    "align": {
      "left": "왼쪽",
      "center": "가운데",
      "right": "오른쪽"
    },
    "mapElements": "지도 요소",
    "element": {
      "title": "제목",
      "subtitle": "부제목",
      "legend": "범례",
      "scaleBar": "축척 막대",
      "northArrow": "방위표",
      "groupNavigation": "방위표와 축척 막대 그룹화",
      "footer": "바닥글 텍스트",
      "date": "날짜",
      "attribution": "GeoLibre 저작권 표시 포함",
      "pageBorder": "페이지 테두리",
      "infoBlock": "정보 블록(제목 블록)",
      "colorbar": "컬러바",
      "customLegend": "사용자 지정 범례",
      "dataTable": "속성 테이블",
      "dataChart": "차트"
    },
    "dataBlocks": {
      "layer": "레이어",
      "titleLabel": "제목",
      "position": "위치",
      "filterToPage": "페이지 범위 내 피처만",
      "filterToPageHint": "아틀라스 페이지와 그려진 인쇄 범위에 적용됩니다. 그 외에는 전체 레이어가 사용됩니다."
    },
    "dataTable": {
      "columns": "열",
      "columnsHint": "기본적으로 처음 {{count}}개 필드가 선택됩니다. 열을 선택하여 사용자 지정하세요.",
      "maxRows": "최대 행 수",
      "moreRows_other": "+{{count}}개 더",
      "noRows": "현재 설정으로 표시할 행이 없습니다."
    },
    "dataChart": {
      "type": "차트 유형",
      "typeBar": "막대",
      "typePie": "원형",
      "typeLine": "선",
      "categoryField": "범주 필드",
      "aggregation": "집계",
      "aggCount": "개수",
      "aggSum": "합계",
      "aggMean": "평균",
      "valueField": "값 필드",
      "noNumericFields": "이 레이어에는 집계할 숫자 필드가 없습니다.",
      "noData": "현재 설정으로 표시할 차트 데이터가 없습니다."
    },
    "customLegend": {
      "title": "범례 제목",
      "color": "색상",
      "itemLabel": "라벨",
      "position": "위치",
      "addItem": "항목 추가",
      "removeItem": "항목 제거",
      "importFromDict": "딕셔너리에서 가져오기",
      "import": "가져오기",
      "importError": "올바른 {\"label\": \"color\"} 딕셔너리를 입력하세요."
    },
    "colorbar": {
      "colormap": "컬러맵",
      "min": "최솟값",
      "max": "최댓값",
      "label": "라벨",
      "labelPlaceholder": "예: 고도(m)",
      "orientation": "방향",
      "vertical": "세로",
      "horizontal": "가로",
      "position": "위치",
      "length": "길이"
    },
    "position": {
      "topLeft": "왼쪽 위",
      "topRight": "오른쪽 위",
      "bottomLeft": "왼쪽 아래",
      "bottomRight": "오른쪽 아래"
    },
    "footerTextLabel": "바닥글 텍스트",
    "footerPlaceholder": "사용자 지정 바닥글 텍스트",
    "margin": "여백",
    "marginOption": {
      "normal": "보통",
      "narrow": "좁게",
      "none": "없음(테두리 없음)"
    },
    "mapBackground": "지도 배경",
    "scaleLabel": "축척(1:N)",
    "scalePlaceholder": "예: 25000",
    "scalePresets": "사전 설정…",
    "scalePresetsAria": "축척 사전 설정",
    "extent": {
      "label": "인쇄 범위",
      "draw": "지도에 범위 그리기",
      "redraw": "지도에 범위 다시 그리기",
      "useViewport": "현재 화면 사용",
      "useCustom": "사용자 지정 범위로 자르기",
      "clear": "범위 지우기",
      "hint": "지도 위에서 상자를 드래그하여 정확한 인쇄 영역을 설정하세요. Shift 키를 누르고 있으면 페이지 비율에 맞출 수 있습니다."
    },
    "info": {
      "author": "작성자",
      "authorPlaceholder": "작성자 또는 조직",
      "project": "프로젝트 번호",
      "projectPlaceholder": "참조 번호",
      "crs": "CRS",
      "crsPlaceholder": "예: EPSG:4326",
      "scale": "축척",
      "revision": "개정",
      "revisionPlaceholder": "예: Rev 01"
    },
    "borderColor": "테두리 색상",
    "borderWidth": "테두리 두께",
    "mapBorderColor": "지도 프레임 색상",
    "mapBorderWidth": "지도 프레임 두께",
    "errors": {
      "mapNotReady": "지도가 아직 준비되지 않았습니다. 잠시 후 다시 시도하세요.",
      "captureFailed": "지도 이미지를 캡처할 수 없습니다.",
      "captureFirst": "내보내기 전에 지도를 캡처하세요.",
      "exportFailed": "{{format}} 내보내기에 실패했습니다.",
      "clipboardFailed": "레이아웃을 클립보드에 복사할 수 없습니다.",
      "scaleOutOfRange": "이 축척은 현재 화면이 도달할 수 있는 범위를 벗어납니다. 사용 가능한 가장 가까운 축척을 표시합니다."
    },
    "legend": {
      "section": "범례",
      "titleLabel": "범례 제목",
      "defaultTitle": "범례",
      "groupByLayer": "레이어별로 클래스 그룹화",
      "empty": "범례에 포함할 표시된 레이어가 없습니다.",
      "labelPlaceholder": "라벨",
      "moveUp": "항목 위로 이동",
      "moveDown": "항목 아래로 이동",
      "showEntry": "항목 표시",
      "hideEntry": "항목 숨기기",
      "moreItems_other": "+{{count}}개 더"
    },
    "atlas": {
      "section": "아틀라스 (지도 시리즈)",
      "enable": "여러 페이지 지도 시리즈 생성",
      "coverageLayer": "커버리지 레이어",
      "coverage": "커버리지",
      "coveragePerFeature": "피처당 한 페이지",
      "coverageAlongLine": "선을 따라 페이지",
      "segmentLength": "구간 길이 (km)",
      "segmentRequired": "최소 0.1 km의 구간 길이를 입력하세요.",
      "segmentTruncated": "시리즈가 {{count}}페이지로 제한되었습니다. 구간 길이를 늘리세요.",
      "noLineFeatures": "커버리지 레이어에 선 피처가 없습니다.",
      "noLayers": "로드된 피처가 있는 벡터 레이어가 없습니다. 먼저 GeoJSON 또는 기타 로컬 벡터 레이어를 추가하세요.",
      "nameField": "페이지 이름 필드",
      "nameFieldNone": "피처 번호",
      "extentMode": "페이지 범위",
      "extentMargin": "피처 주변 여백",
      "extentScale": "고정 축척",
      "marginLabel": "여백 (%)",
      "scaleLabel": "축척",
      "scaleRequired": "0보다 큰 축척을 입력하세요.",
      "sortField": "정렬 기준",
      "sortNone": "레이어 순서",
      "sortOrder": "순서",
      "sortAsc": "오름차순",
      "sortDesc": "내림차순",
      "filterLabel": "필터",
      "filterPlaceholder": "예: POP2000 > 100000 and ST = \"CA\"",
      "filterError": "필터를 파싱할 수 없습니다. \"and\"로 연결된 필드-연산자-값 비교(=, !=, >, >=, <, <=, contains)를 사용하세요.",
      "filenamePattern": "페이지 파일 이름 (ZIP 내보내기)",
      "pages_other": "{{count}}페이지",
      "noPages": "현재 필터와 일치하는 피처가 없습니다.",
      "pageOf": "{{total}}페이지 중 {{current}}페이지",
      "prevPage": "이전 아틀라스 페이지",
      "nextPage": "다음 아틀라스 페이지",
      "exportZip": "PNG ZIP 내보내기",
      "exportPdfPages_other": "PDF 내보내기 ({{count}}페이지)",
      "exporting": "{{total}}페이지 중 {{current}}페이지 내보내는 중...",
      "tokensHint": "토큰 {atlas.name}, {atlas.pagenumber}, {atlas.total}, {atlas.attr:FIELD}은(는) 제목, 부제목, 바닥글, 페이지 파일 이름에서 페이지마다 대체됩니다.",
      "alongLineHint": "페이지는 각 선을 순서대로 따릅니다. km_start, km_end, segment, segments를 {atlas.attr:FIELD} 토큰으로 사용할 수 있습니다."
    }
  },
  "kml": {
    "importFailed": "KML/KMZ를 가져올 수 없습니다.",
    "timeOverlayGroup": "시간 오버레이 애니메이션"
  },
  "map": {
    "boundsRestricted": "경계 잠김",
    "boundsRestrictedTooltip": "지도 경계가 제한되어 있습니다. 설정에서 변경할 수 있습니다.",
    "directionsMode": {
      "title": "길찾기 모드 활성화됨",
      "hint": "지도를 클릭하여 경유지를 추가하세요. 경유지를 드래그하면 이동하고, 클릭하면 제거합니다. 경로는 자동으로 업데이트됩니다.",
      "removeLast": "마지막 항목 제거",
      "clear": "지우기",
      "exit": "종료",
      "calculating": "경로 계산 중...",
      "totalDistance": "거리",
      "estimatedTime": "예상 시간",
      "segment": "구간 {{index}}",
      "metricsUnavailable": "경로 정보를 사용할 수 없습니다",
      "distanceKilometers": "{{value}} km",
      "distanceMeters": "{{value}} m",
      "durationLessThanMinute": "1분 미만",
      "durationMinutes": "{{value}}분",
      "durationHours": "{{value}}시간",
      "durationHoursMinutes": "{{hours}}시간 {{minutes}}분",
      "waypointCount_zero": "아직 배치된 경유지가 없습니다",
      "waypointCount_other": "경유지 {{count}}개 배치됨"
    },
    "reverseGeocodeMode": {
      "title": "역지오코딩 모드 활성화됨",
      "hint": "지도의 아무 곳이나 클릭하여 해당 지점의 주소를 조회하세요.",
      "exit": "종료"
    },
    "pixelTimeSeriesMode": {
      "start": "픽셀 시계열"
    }
  },
  "terrainSettings": {
    "title": "지형 과장",
    "description": "3D 지형의 수직 과장 정도를 조정합니다. 값이 클수록 언덕과 산이 더 가파르게 표시됩니다.",
    "label": "수직 과장",
    "controlLabel": "지형 켜기/끄기(과장 설정은 더블클릭)",
    "reset": "초기화",
    "done": "완료"
  },
  "pixelTimeSeries": {
    "title": "픽셀 시계열",
    "empty": "지도에서 픽셀을 클릭하면 시간에 따른 값을 표시합니다. 픽셀을 더 추가하여 비교할 수 있습니다.",
    "band": "밴드",
    "bandOption": "밴드 {{index}}",
    "pointLabel": "지점 {{number}}",
    "pickPoints": "지점 선택",
    "stopPicking": "선택 중지",
    "clearAll": "모두 지우기",
    "removePoint": "{{label}} 제거",
    "close": "닫기",
    "erroredExcluded": "내보내기에서 읽기 실패한 {{n}}개 항목이 제외됩니다.",
    "querying": "타임라인 전체에서 픽셀 값을 읽는 중...",
    "progress": "{{total}}개 중 {{done}}개 읽는 중...",
    "noValues": "선택한 위치에 대한 이 밴드의 값이 없습니다(래스터 범위를 벗어났거나 모든 시간 단계가 nodata입니다).",
    "truncated": "전체 {{total}}개 타임라인 단계 중 {{kept}}개를 표시합니다(읽기 횟수를 제한하기 위해 다운샘플링됨).",
    "chartAria": "시간에 따른 픽셀 값의 선 차트",
    "yAxis": "Y축",
    "yMin": "최소",
    "yMax": "최대",
    "axisAuto": "자동",
    "gapNote": "점선 구간은 값이 없는 날짜(nodata 또는 적용 범위 밖)를 연결합니다.",
    "exportCsv": "CSV 내보내기",
    "exportGeoParquet": "GeoParquet 내보내기"
  },
  "basemapExtract": {
    "title": "오프라인 베이스맵 추출",
    "url": "베이스맵 URL",
    "urlPlaceholder": "https://data.source.coop/…/planet.pmtiles",
    "useView": "지도 화면 사용",
    "drawBbox": "지도에 그리기",
    "drawing": "그리는 중…",
    "drawHint": "지도에서 상자를 드래그하여 추출 영역을 설정하세요.",
    "clearBbox": "그린 영역 지우기",
    "north": "북쪽",
    "south": "남쪽",
    "west": "서쪽",
    "east": "동쪽",
    "bboxHint": "유효한 경계 상자를 입력하세요: 서쪽 < 동쪽, 남쪽 < 북쪽이며 [-180, 180] 및 [-90, 90] 범위 내여야 합니다.",
    "minZoom": "최소 줌",
    "maxZoom": "최대 줌",
    "zoomHint": "줌 레벨은 정수여야 하며 최소 ≤ 최대(0–30)여야 합니다. 아카이브의 최대 수준을 초과하는 레벨은 무시됩니다.",
    "errorNoSourceLayers": "이 벡터 아카이브에는 레이어 메타데이터가 없어 렌더링할 수 없습니다. 다른 아카이브를 시도하세요.",
    "savedTitle": "저장된 베이스맵",
    "openFile": "파일 열기…",
    "savedEmpty": "저장된 베이스맵이 아직 없습니다. 위에서 추출하거나 .pmtiles 파일을 여세요.",
    "errorNotBasemap": "이 파일은 Protomaps 벡터 베이스맵이 아니므로 스타일을 적용할 수 없습니다.",
    "apply": "베이스맵으로 사용",
    "rename": "이름 바꾸기",
    "delete": "삭제",
    "confirmDelete": "삭제할까요?",
    "style": "베이스맵 스타일",
    "flavor": {
      "light": "라이트",
      "dark": "다크",
      "white": "화이트",
      "grayscale": "그레이스케일",
      "black": "블랙"
    },
    "flavorOverlay": "없음(오버레이 레이어)",
    "styleHintBasemap": "추출본을 스타일이 적용된 Protomaps 베이스맵(도로, 수계, 라벨)으로 오프라인에서 렌더링합니다.",
    "styleHintOverlay": "추출본을 스타일이 적용된 베이스맵 대신 일반 오버레이 레이어로 추가합니다.",
    "phaseDirectories": "아카이브 디렉터리를 읽는 중…",
    "phaseData": "타일을 다운로드하는 중…",
    "resize": "패널 크기 조절",
    "estimatedSize": "≈ {{size}} · 타일 {{tiles}}개",
    "estimatedSizeLarge": "대용량 다운로드: ≈ {{size}} · 타일 {{tiles}}개",
    "planWarning": "이 추출은 타일 {{tiles}}개에 걸쳐 약 {{size}}이며 메모리에서 조합됩니다. 계속하시겠습니까?",
    "planContinue": "계속",
    "extract": "추출",
    "extracting": "추출하는 중…",
    "successSaved": "{{path}}에 저장하고 지도에 추가했습니다.",
    "successAdded": "지도에 추가했습니다(파일은 저장되지 않았습니다).",
    "successAddedSaveFailed": "지도에 추가했지만 디스크에 저장하지 못했습니다: {{error}}",
    "successBasemapSaved": "{{path}}에 저장하고 베이스맵으로 설정했습니다.",
    "successBasemapApplied": "베이스맵으로 설정했습니다(파일은 저장되지 않았습니다).",
    "successBasemapSaveFailed": "베이스맵으로 설정했지만 디스크에 저장하지 못했습니다: {{error}}"
  },
  "rasterSubset": {
    "title": "부분 추출",
    "drawBbox": "경계 상자 그리기",
    "drawing": "그리는 중…",
    "drawHint": "지도에서 클릭하고 드래그하여 추출 영역을 그리세요. Esc를 눌러 취소합니다.",
    "useView": "현재 화면 사용",
    "north": "북",
    "south": "남",
    "west": "서",
    "east": "동",
    "bboxHint": "유효한 상자를 입력하세요: 서/동은 -180~180, 남/북은 -90~90 범위이며 서 < 동, 남 < 북이어야 합니다.",
    "bboxAntimeridianHint": "서쪽은 동쪽보다 작아야 합니다. 180° 자오선을 넘는 상자는 지원되지 않으므로 두 개의 추출로 나누세요.",
    "zoom": "확대/축소 레벨",
    "zoomHint": "0에서 30 사이의 정수 확대/축소 레벨을 입력하세요.",
    "resolution": "해상도",
    "resolutionPlaceholder": "원본",
    "resolutionHint": "출력 CRS 단위의 출력 픽셀 크기입니다. 원본 해상도를 유지하려면 비워 두세요.",
    "advanced": "고급 옵션",
    "outputCrs": "출력 CRS (EPSG)",
    "outputCrsPlaceholder": "입력과 동일",
    "nodata": "Nodata 값",
    "nodataPlaceholder": "없음",
    "additionalArgs": "추가 옵션",
    "additionalArgsPlaceholder": "level=2\nwidth=512",
    "additionalArgsHint": "한 줄에 하나씩 key=value 형식으로 입력하세요. 예: level, width, height.",
    "errorResolution": "해상도는 양수여야 합니다.",
    "errorOutputCrs": "출력 CRS는 양의 EPSG 코드여야 합니다.",
    "errorNodata": "Nodata는 숫자여야 합니다.",
    "errorAdditionalArgs": "추가 옵션은 한 줄에 하나씩 key=value 형식이어야 합니다.",
    "extract": "추출 및 저장",
    "extracting": "추출 중…",
    "success": "부분을 저장했습니다."
  },
  "mapGrid": {
    "layers": "레이어",
    "layersLabel": "지도 {{number}}의 레이어 표시 여부",
    "noLayers": "아직 레이어가 없습니다",
    "labelPlaceholder": "라벨",
    "labelLabel": "지도 {{number}}의 라벨",
    "removePane": "지도 {{number}} 제거",
    "show3d": "지도 {{number}}을(를) 3D 지구본으로 표시",
    "show2d": "지도 {{number}}을(를) 2D 지도로 표시",
    "only2d": "2D만"
  },
  "mapContextMenu": {
    "copyCoordinatesHint": "좌표를 클립보드에 복사",
    "quickActions": "빠른 작업",
    "whatsHere": "여기에 무엇이 있나요?",
    "copyGeoJson": "GeoJSON으로 복사",
    "centerHere": "여기를 지도 중심으로 이동",
    "zoomInHere": "여기로 확대",
    "viewInGoogleMaps": "Google 지도에서 보기",
    "viewInGoogleEarth": "Google Earth에서 보기"
  },
  "quickAnalysis": {
    "menu": "빠른 분석",
    "bufferHere": "여기에 {{distance}} 버퍼",
    "bufferFeatures": "모든 피처를 {{distance}}로 버퍼",
    "driveTimeHere": "여기에서 차량 이동 시간({{contours}}분)",
    "walkTimeHere": "여기에서 도보 이동 시간({{contours}}분)",
    "centroids": "중심점",
    "convexHull": "볼록 껍질",
    "boundingBox": "경계 상자",
    "openInProcessing": "처리에서 열기…",
    "bufferLayerName": "버퍼 {{distance}}",
    "bufferOfLayerName": "{{name}} 버퍼 {{distance}}",
    "driveTimeLayerName": "차량 이동 시간",
    "walkTimeLayerName": "도보 이동 시간",
    "centroidsLayerName": "{{name}} 중심점",
    "convexHullLayerName": "{{name}} 볼록 껍질",
    "boundingBoxLayerName": "{{name}} 경계 상자",
    "running": "{{tool}} 실행 중…",
    "failed": "{{tool}} 실패",
    "viewDetails": "세부 정보 보기",
    "unit": {
      "meters": "m",
      "kilometers": "km",
      "miles": "마일"
    }
  },
  "knowledgeCard": {
    "title": "장소 정보",
    "loading": "이 장소를 검색하는 중…",
    "empty": "이 장소 근처에서 Wikipedia 문서를 찾을 수 없습니다.",
    "error": "장소 정보를 불러올 수 없습니다. 다시 시도하세요.",
    "readMore": "Wikipedia에서 더 읽기",
    "nearby": "주변 장소",
    "attribution": "Wikipedia 콘텐츠, CC BY-SA 라이선스.",
    "noticeTitle": "지식 카드는 Wikipedia를 사용합니다",
    "noticeDesc": "지식 카드를 열면 클릭한 장소의 좌표(및 여는 주변 문서의 제목)가 요약과 사진을 가져오기 위해 Wikipedia의 공개 API로 전송됩니다. 이러한 요청에서는 좌표가 기기를 벗어납니다."
  },
  "onboarding": {
    "title": "GeoLibre에 오신 것을 환영합니다",
    "description": "인터페이스를 맞춤 설정할 경험 수준을 선택하세요. 설정 → 인터페이스에서 언제든지 변경할 수 있습니다.",
    "level": {
      "beginner": {
        "title": "초급",
        "description": "필수 데이터 소스와 도구만 표시합니다."
      },
      "intermediate": {
        "title": "중급",
        "description": "일반적인 데이터 소스, 서비스, 플러그인을 표시합니다."
      },
      "advanced": {
        "title": "고급",
        "description": "GeoLibre가 제공하는 모든 기능을 표시합니다."
      }
    },
    "showEverything": "건너뛰기 — 모두 표시"
  },
  "settings": {
    "title": "설정",
    "description": "프로젝트 환경설정과 런타임 설정을 구성합니다.",
    "saveButton": "설정 저장",
    "section": {
      "map": "지도",
      "layout": "레이아웃",
      "appearance": "모양",
      "interface": "인터페이스",
      "geocoding": "지오코딩",
      "ai": "AI 제공자",
      "environment": "환경",
      "updates": "업데이트"
    },
    "menu": {
      "mapPreferences": "지도 환경설정",
      "layoutSettings": "레이아웃 설정",
      "appearanceSettings": "모양 설정",
      "interfaceSettings": "인터페이스 설정",
      "geocoding": "지오코딩",
      "ai": "AI 제공자",
      "environmentVariables": "환경 변수",
      "updates": "업데이트 설정",
      "managePlugins": "플러그인 관리",
      "styleManager": "스타일 관리자",
      "urlOverrideNote": "URL 레이아웃 매개변수가 저장된 설정보다 우선 적용됩니다."
    },
    "updates": {
      "title": "소프트웨어 업데이트",
      "description": "데스크톱 앱이 시작될 때 GeoLibre가 새 버전을 확인하는 방식을 설정합니다.",
      "checkOnStartup": "시작 시 업데이트 확인",
      "checkOnStartupHint": "활성화하면 앱이 시작될 때마다 GeoLibre가 최신 버전을 확인합니다. 완전한 오프라인 작업 환경을 원하면 이 옵션을 끄세요.",
      "notificationLevel": "알림 받을 항목",
      "notificationLevelHint": "시작 시 알림을 표시할 릴리스 종류를 선택하세요.",
      "level": {
        "all": "모든 릴리스(주, 부, 패치 버전)",
        "minor": "주 및 부 버전만",
        "major": "주 버전만"
      }
    },
    "map": {
      "constraintsTitle": "지도 제약 조건",
      "restrictBounds": "지도 경계 제한",
      "west": "서쪽",
      "south": "남쪽",
      "east": "동쪽",
      "north": "북쪽",
      "useCurrentView": "현재 화면 사용",
      "useCurrentViewHint": "현재 지도 범위를 캡처하고 지도 경계 제한을 켭니다.",
      "useCurrentViewGlobeHint": "이 기능을 사용하기 전에 메르카토르 도법으로 전환하세요. 지구본 도법에서는 지도가 캡처된 경계를 약간 벗어날 수 있습니다.",
      "minZoom": "최소 확대 수준",
      "maxZoom": "최대 확대 수준",
      "maxPitch": "최대 기울기",
      "renderWorldCopies": "세계 지도 반복 렌더링",
      "ellipsoid": "천체",
      "ellipsoidHint": "거리, 면적, 축척 측정에 사용되는 반지름을 설정합니다. 데이터 추가에서 일치하는 행성 배경지도를 선택하세요.",
      "scaleUnit": "축척 막대 단위",
      "scaleUnitMetric": "미터법 (m / km)",
      "scaleUnitImperial": "야드파운드법 (ft / mi)",
      "scaleUnitNautical": "해상 (nmi)",
      "scaleUnitHint": "지도 하단의 축척 막대에 표시할 단위를 선택하세요.",
      "errorBoundsUnavailable": "지도 경계를 아직 사용할 수 없습니다."
    },
    "layout": {
      "title": "레이아웃",
      "description": "작업 공간 표시 및 도구 모음 표시 방식입니다.",
      "toolbar": "도구 모음",
      "panels": "패널",
      "showToolbarLabels": "도구 모음 라벨 표시",
      "showProjectInfo": "프로젝트 정보 표시",
      "showProjectInfoToolbar": "도구 모음에 프로젝트 정보 표시",
      "showLayersPanel": "레이어 패널 표시",
      "showStylePanel": "스타일 패널 표시",
      "showBrowserPanel": "브라우저 패널 표시",
      "showCommentsPanel": "댓글 패널 표시",
      "showAttributePanel": "속성 패널 표시",
      "urlParamsNote": "공유된 뷰어 링크에 URL 레이아웃 매개변수가 있으면 계속 적용됩니다."
    },
    "appearance": {
      "title": "모양",
      "description": "밝은 모드 또는 어두운 모드와 그 위에 적용할 강조 색상을 선택하세요.",
      "themeMode": "모드",
      "mode": {
        "light": "밝게",
        "dark": "어둡게"
      },
      "accentColor": "강조 색상",
      "custom": "사용자 지정",
      "customColor": "사용자 지정 색상",
      "customColorHex": "사용자 지정 색상 16진 코드",
      "scheme": {
        "blue": "파랑",
        "violet": "보라",
        "emerald": "에메랄드",
        "rose": "로즈",
        "amber": "호박색"
      }
    },
    "interface": {
      "title": "인터페이스 프로필",
      "description": "인터페이스를 단순화할 경험 수준을 선택하세요. 아무것도 삭제되지 않으므로 언제든지 수준을 전환하거나 여기서 항목을 다시 활성화할 수 있습니다.",
      "presets": "경험 수준",
      "presetsHint": "초급, 중급, 고급은 미리 구성된 레이아웃을 즉시 적용합니다. 아래 항목을 수정하면 사용자 지정 모드로 전환되며, 현재 설정을 사용자 지정 모드로 유지하려면 사용자 지정을 클릭하세요.",
      "level": {
        "beginner": "초급",
        "intermediate": "중급",
        "advanced": "고급",
        "custom": "사용자 지정"
      },
      "dataSources": "데이터 소스",
      "plugins": "플러그인",
      "menus": "메뉴",
      "lockedNote": "이 인터페이스 프로필은 관리자가 관리하며 변경할 수 없습니다."
    },
    "env": {
      "tokenTitle": "Share.GeoLibre API 토큰",
      "tokenDescription": "프로젝트 > 공유는 이 토큰을 사용하여 지도를 {{shareHost}}에 업로드합니다. <tokenLink>{{shareHost}}/settings</tokenLink>를 열고 설정 > API 토큰에서 토큰을 생성한 다음 아래 필드에 붙여넣으세요.",
      "tokenStorageNote": "이 기기에 로컬로 저장되며 업로드 인증을 위해 {{shareHost}}에만 전송됩니다. 웹 빌드에서는 다른 사이트 데이터와 동일한 브라우저 저장소를 공유하므로, 기기가 침해된 경우 {{shareHost}}에서 토큰을 폐기하세요.",
      "tokenUnavailable": "이 배포에는 프로젝트 공유 서버가 구성되어 있지 않으므로 API 토큰이 필요하지 않습니다.",
      "tokenHostInvalid": "이 배포의 프로젝트 공유 서버 주소가 올바르지 않아 이 토큰을 사용할 수 없습니다.",
      "tokenPlaceholder": "glb_…",
      "cesiumTokenTitle": "Cesium Ion 토큰",
      "cesiumTokenDescription": "3D 지구본(분할 화면 패널)은 접근 토큰이 필요한 Cesium Ion 세계 영상과 지형을 사용합니다. <tokenLink>ion.cesium.com/tokens</tokenLink>에서 무료 계정을 만들고 기본 접근 토큰을 복사하여 아래에 붙여넣으세요. 토큰이 없으면 3D 지구본 전환 버튼이 숨겨집니다.",
      "cesiumTokenStorageNote": "이 기기에 로컬로 저장되며(프로젝트 파일에는 저장되지 않으므로 공유되지 않음) Cesium Ion에만 전송됩니다. 웹 빌드에서는 다른 사이트 데이터와 동일한 브라우저 저장소를 공유합니다.",
      "cesiumTokenPlaceholder": "eyJhbGciOi…",
      "variablesTitle": "환경 변수",
      "variablesCount_other": "활성화된 런타임 변수 {{count}}개.",
      "secretsWarning": "값은 프로젝트 파일에 평문으로 저장되며 프로젝트를 공유할 때 노출될 수 있습니다. 프로젝트 파일이 비공개로 유지되지 않는 한 여기에 비밀 정보를 입력하지 마세요.",
      "empty": "구성된 환경 변수가 없습니다.",
      "variableFallback": "변수",
      "enableAria": "{{name}} 활성화",
      "nameAria": "변수 이름",
      "namePlaceholder": "VITE_EXAMPLE_KEY",
      "valueAria": "변수 값",
      "valuePlaceholder": "값",
      "showValueAria": "{{name}}의 값 표시",
      "hideValueAria": "{{name}}의 값 숨기기",
      "removeAria": "{{name}} 제거",
      "errorNamePattern": "환경 변수 이름은 문자나 밑줄로 시작해야 하며 문자, 숫자, 밑줄만 포함할 수 있습니다.",
      "errorDuplicate": "환경 변수 \"{{name}}\"이(가) 중복되었습니다.",
      "stripPromptTitle": "자격 증명을 제거하시겠습니까?",
      "stripPromptDesc": "이 프로젝트에는 API 키, 요청 헤더 또는 플러그인 설정과 같은 자격 증명 포함 필드가 {{count}}개 있습니다. 저장 파일에서 제거하시겠습니까? 현재 작업 공간에는 어느 경우든 유지됩니다.",
      "stripButton": "자격 증명 제거",
      "keepButton": "파일에 유지"
    },
    "geocoding": {
      "title": "지오코딩",
      "description": "주소 지오코딩과 역지오코딩에 사용할 지오코딩 백엔드를 선택하세요. 기본값은 Nominatim이며 키가 필요하지 않습니다.",
      "provider": "제공자",
      "requiresKey": "이 제공자는 API 키 또는 접근 토큰이 필요합니다.",
      "optionalKey": "호스팅 서비스는 API 키가 필요하지만, 자체 호스팅 인스턴스는 필요하지 않습니다.",
      "noKey": "이 제공자는 API 키 없이도 작동합니다.",
      "apiKey": "API 키",
      "apiKeyPlaceholder": "제공자 API 키 또는 토큰을 붙여넣으세요",
      "toggleApiKey": "API 키 표시 전환",
      "forwardEndpoint": "정방향 엔드포인트(선택 사항)",
      "reverseEndpoint": "역방향 엔드포인트(선택 사항)",
      "email": "연락처 이메일(선택 사항)",
      "emailPlaceholder": "you@example.org",
      "emailHint": "Nominatim에서만 사용되며, 애플리케이션을 식별하는 데 도움이 되도록 제공할 것을 권장합니다 — 입력한 경우에만 전송됩니다.",
      "secretsWarning": "키는 프로젝트 파일에 평문으로 저장되며 프로젝트를 공유할 때 노출될 수 있습니다. 또한 쿼리 매개변수로 전송되므로 브라우저 개발자 도구와 프록시 로그에서 볼 수 있는 지오코딩 요청 URL에 표시됩니다.",
      "corsNote": "Google은 공식적으로 브라우저에서 Geocoding API로의 요청을 허용하지 않으므로, 동일 출처 프록시를 통하지 않으면 요청이 차단될 수 있습니다."
    },
    "ai": {
      "title": "AI 어시스턴트 제공자",
      "description": "AI 어시스턴트의 자격 증명을 구성합니다. 제공자를 선택하고 필요한 필드를 입력한 다음 저장하세요. 채팅을 시작하려면 하나의 제공자만 구성하면 됩니다.",
      "providerLabel": "제공자",
      "providerHint": "제공자를 선택하면 필요한 필드가 표시됩니다.",
      "configuredMark": "(구성됨)",
      "optionalMark": "(선택 사항)",
      "statusReady": "{{provider}}이(가) 구성되어 사용할 준비가 되었습니다.",
      "statusIncomplete": "{{provider}}을(를) 활성화하려면 아래 필수 필드를 입력하세요.",
      "secretsNote": "자격 증명은 공유하는 프로젝트 파일이 아니라 이 기기에 로컬로 저장되므로 재시작 후에도 유지됩니다. 이 기기에 접근할 수 있는 사람은 누구나 읽을 수 있습니다.",
      "getCredentials": "{{provider}} 자격 증명을 받는 방법",
      "showValue": "{{name}} 표시",
      "hideValue": "{{name}} 숨기기",
      "osEnvNote": "데스크톱 앱은 시스템 환경 변수에서 일치하는 API 키도 읽습니다. 이러한 키는 자동으로 사용되며 프로젝트 파일에 저장되지 않습니다. 환경 값을 계속 사용하려면 필드를 비워 두세요.",
      "osEnvField": "시스템 환경 변수 {{name}}에서 읽습니다.",
      "osEnvPlaceholder": "시스템 환경에서 설정됨",
      "newProfile": "새 프로필",
      "cancel": "취소",
      "addProfile": "프로필 추가",
      "profileName": "프로필 이름",
      "profileNamePlaceholder": "예: 업무용 Gemini, 로컬 Ollama",
      "profileCount_other": "프로필 {{count}}개",
      "noProfiles": "아직 프로필이 없습니다. 아래에서 추가하여 AI 어시스턴트를 구성하세요.",
      "setDefault": "기본값으로 설정",
      "defaultProfile": "기본",
      "edit": "편집",
      "deleteProfile": "프로필 삭제",
      "backToProfiles": "← 프로필 목록으로",
      "saveProfile": "프로필 저장",
      "profileEditSaveHint": "위의 프로필 변경 사항을 저장하거나 취소한 후 \"설정 저장\"을 클릭하여 모든 변경 사항을 적용하세요.",
      "field": {
        "apiKey": "API 키",
        "baseUrl": "기본 URL",
        "model": "모델",
        "region": "리전",
        "accessKeyId": "액세스 키 ID",
        "secretAccessKey": "보안 액세스 키",
        "sessionToken": "세션 토큰"
      },
      "placeholder": {
        "geminiKey": "AIza…",
        "anthropicKey": "sk-ant-…",
        "openaiKey": "sk-…",
        "ollamaBaseUrl": "http://localhost:11434",
        "ollamaModel": "llama3.2",
        "awsAccessKey": "AKIA…",
        "awsSecretKey": "wJalrXUtnFEMI…",
        "awsRegion": "us-east-1",
        "awsSessionToken": "FwoGZXIvYXdz…(임시 자격 증명을 사용하는 경우)",
        "customBaseUrl": "https://api.example.com/v1",
        "customModel": "model-id",
        "customApiKey": "sk-…(필요한 경우)"
      }
    }
  },
  "toolbar": {
    "menu": {
      "project": "프로젝트",
      "import": "가져오기",
      "edit": "편집",
      "view": "보기",
      "addData": "데이터 추가",
      "processing": "처리",
      "controls": "컨트롤",
      "plugins": "플러그인",
      "help": "도움말",
      "settings": "설정"
    },
    "atmosphere": {
      "haloColor": "헤일로 색상",
      "haloExtent": "헤일로 범위",
      "haloExtentHint": "대기광이 지구 표면 너머로 퍼지는 정도입니다. 값이 낮으면 데이터가 표면에 가깝게 유지되고, 값이 높으면 넓고 은은한 헤일로가 나타납니다.",
      "haloOpacity": "헤일로 강도",
      "spaceColor": "우주 색상",
      "reset": "기본값으로 재설정",
      "globeOnly": "대기 효과는 지구본 보기가 활성화된 경우에만 사용할 수 있습니다."
    },
    "sun": {
      "title": "태양",
      "date": "날짜",
      "time": "시간",
      "timeOfDay": "시각",
      "play": "재생",
      "pause": "일시정지",
      "stepBack": "한 시간 뒤로 이동",
      "stepForward": "한 시간 앞으로 이동",
      "speed": "애니메이션 속도",
      "loop": "애니메이션 반복",
      "now": "현재",
      "shade": "야간 음영",
      "close": "닫기",
      "localTimeNote": "표시된 시간은 컴퓨터의 시간대를 기준으로 합니다."
    },
    "routeAnimation": {
      "title": "경로 애니메이션",
      "layer": "경로 레이어",
      "selectLayer": "라인 레이어 선택…",
      "noLineLayers": "프로젝트에 라인 레이어가 없습니다",
      "play": "재생",
      "pause": "일시정지",
      "loop": "애니메이션 반복",
      "progress": "진행률",
      "speed": "속도",
      "followCamera": "따라가기",
      "followPitch": "카메라 기울기",
      "followZoom": "카메라 확대/축소",
      "followRotate": "진행 방향으로 회전",
      "color": "경로 색상",
      "marker": "마커",
      "markerStyle": {
        "arrow": "화살표(방향)",
        "point": "점",
        "none": "없음"
      },
      "trail": "이동 경로",
      "saveVideoMp4": "MP4로 저장",
      "saveVideoWebm": "WebM으로 저장",
      "estimatedLength": "≈ {{seconds}}초",
      "recordingStatus": "녹화 중… {{percent}}%",
      "savingVideo": "영상 저장 중…",
      "stop": "중지",
      "videoSaved": "{{name}} 저장됨",
      "videoError": "애니메이션을 녹화할 수 없습니다. 다시 시도하세요.",
      "videoUnsupported": "이 브라우저에서는 영상 녹화가 지원되지 않습니다.",
      "videoFileTypeMp4": "MP4 영상",
      "videoFileTypeWebm": "WebM 영상",
      "collapse": "접기",
      "expand": "펼치기",
      "close": "닫기"
    },
    "flightSim": {
      "title": "비행 시뮬레이터",
      "start": "비행 시작",
      "stop": "비행 중지",
      "collapse": "접기",
      "expand": "펼치기",
      "close": "닫기",
      "speed": "속도",
      "altitude": "고도",
      "heading": "방위",
      "agl": "지면 위 고도",
      "throttle": "스로틀",
      "maxSpeed": "최고 속도",
      "minAgl": "지형 여유 고도",
      "units": "단위",
      "imperial": "노트 / 피트",
      "metric": "km/h / 미터",
      "bankCamera": "선회 시 수평선 기울이기",
      "invertPitch": "피치 축 반전",
      "knots": "kt",
      "kph": "km/h",
      "feet": "ft",
      "meters": "m",
      "terrainWarning": "지형 — 상승하십시오",
      "help": "방향키 또는 A/D로 조종 · W/S 또는 Page Up/Down으로 스로틀 · 스페이스로 수평 회복 · Esc로 종료."
    },
    "setView": {
      "title": "보기 설정",
      "description": "지도를 정확한 카메라 위치로 이동합니다.",
      "sectionCoordinates": "좌표",
      "smartPaste": "좌표 붙여넣기",
      "smartPasteInputLabel": "좌표 문자열",
      "smartPastePlaceholder": "예: 51.5074, -0.1278 또는 51°30'26\"N, 0°07'39\"W",
      "smartPasteInfo": "전체 좌표 문자열을 DD, DMS, DDM 형식으로 입력하거나 붙여넣은 다음 입력 처리를 실행하세요. GeoLibre가 형식을 자동으로 감지하여 아래의 경도와 위도 필드를 채웁니다. 확대/축소, 기울기, 방위각은 이동하기 전에 별도로 조정하세요.",
      "smartPasteInfoLabel": "좌표 붙여넣기 안내",
      "smartPasteInvalid": "해당 좌표를 읽을 수 없습니다. DD, DMS, DDM 형식으로 경도와 위도를 모두 입력하세요. 예: 51.5074, -0.1278. 일부만 입력되었거나 불완전한 문자열은 해석할 수 없습니다.",
      "processInput": "입력 처리",
      "processed": "아래의 경도와 위도 필드를 채웠습니다.",
      "sectionZoom": "카메라 확대/축소",
      "sectionOrientation": "카메라 방향",
      "orientationHint": "기울기와 방위각을 비워두면 기본값 0이 적용됩니다.",
      "format": "수동 입력 형식",
      "formatInfo": "이 버튼들은 중심 좌표를 직접 입력할 때의 형식만 선택합니다. 위의 붙여넣기 상자는 이미 모든 형식을 지원합니다.\nDD: 51.5074, -0.1278\nDMS: 51°30'26\"N, 0°07'39\"W\nDDM: 51°30.44'N, 0°07.65'W",
      "formatInfoLabel": "좌표 형식 안내",
      "formatDd": "십진도 (DD)",
      "formatDms": "도, 분, 초 (DMS)",
      "formatDdm": "도와 십진분 (DDM)",
      "formatDdShort": "DD",
      "formatDmsShort": "DMS",
      "formatDdmShort": "DDM",
      "longitude": "경도",
      "latitude": "위도",
      "degrees": "도",
      "minutes": "분",
      "seconds": "초",
      "hemisphere": "반구",
      "zoom": "확대/축소",
      "pitch": "기울기",
      "bearing": "방위각",
      "go": "이동",
      "invalid": "유효한 경도(−180~180), 위도(−90~90), 확대/축소 값을 입력하세요.",
      "invalidDms": "유효한 도, 분(0~59), 초(0~59), 확대/축소 값을 입력하세요.",
      "invalidDdm": "유효한 도, 십진분(0~60 미만), 확대/축소 값을 입력하세요."
    },
    "commandGroup": {
      "project": "프로젝트",
      "addData": "데이터 추가",
      "processing": "처리",
      "controls": "컨트롤",
      "view": "보기",
      "help": "도움말",
      "plugins": "플러그인",
      "settings": "설정"
    },
    "command": {
      "projectNew": "새 프로젝트",
      "projectOpenFile": "파일에서 프로젝트 열기",
      "projectOpenUrl": "URL에서 프로젝트 열기",
      "projectSave": "프로젝트 저장",
      "projectSaveAs": "다른 이름으로 프로젝트 저장…",
      "projectShare": "프로젝트 공유…",
      "projectCollaborate": "공동 작업…",
      "projectPrint": "인쇄…",
      "addVectorLayer": "벡터 레이어 추가",
      "addRasterLayer": "래스터 레이어 추가",
      "addOsmPbfLayer": "OSM PBF 레이어 추가",
      "addLayer": "{{name}} 추가",
      "addStacLayer": "STAC 레이어 추가",
      "addGeoparquetLayer": "GeoParquet 레이어 추가",
      "addFlatgeobufLayer": "FlatGeobuf 레이어 추가",
      "addPmtilesLayer": "PMTiles 레이어 추가",
      "addZarrLayer": "Zarr 레이어 추가",
      "addNetcdfLayer": "NetCDF / HDF 레이어 추가",
      "addLidarLayer": "LiDAR 레이어 추가",
      "addSplattingLayer": "가우시안 스플래팅 추가",
      "add3dTilesLayer": "3D Tiles 레이어 추가",
      "addDuckdbLayer": "DuckDB 레이어 추가",
      "whiteboxTools": "Whitebox Tools",
      "sqlWorkspace": "SQL 작업 공간",
      "pythonConsole": "Python 콘솔",
      "notebook": "Jupyter Notebook",
      "dashboard": "대시보드",
      "assistant": "AI 어시스턴트",
      "geocode": "주소 지오코딩",
      "modelBuilder": "배치 및 모델",
      "planetaryComputer": "Planetary Computer",
      "earthEngine": "Earth Engine",
      "segmentation": "AI 분할",
      "objectDetection": "객체 탐지",
      "segmentEverything": "전체 세그먼트",
      "toggleControl": "{{name}} 컨트롤 전환",
      "toggleAtmosphereEffects": "대기 효과 전환",
      "toggleDirections": "길찾기 전환",
      "toggleSearch": "검색 전환",
      "toggleColorbar": "컬러바 전환",
      "toggleLegend": "범례 전환",
      "toggleHtmlPanel": "HTML 패널 전환",
      "toggleMeasure": "측정 전환",
      "toggleBookmark": "책갈피 전환",
      "toggleMinimap": "미니맵 전환",
      "toggleViewState": "보기 상태 전환",
      "previousView": "이전 보기",
      "nextView": "다음 보기",
      "resetNorth": "방위각 재설정",
      "resetPitch": "기울기 재설정",
      "resetPitchBearing": "기울기 및 방위각 재설정",
      "setView": "보기 설정",
      "viewComments": "댓글 보기",
      "zoomIn": "확대",
      "zoomOut": "축소",
      "switchToLight": "라이트 모드로 전환",
      "switchToDark": "다크 모드로 전환",
      "keyboardShortcuts": "키보드 단축키",
      "website": "웹사이트",
      "githubRepository": "GitHub 저장소",
      "diagnostics": "진단",
      "giveFeedback": "피드백 보내기",
      "checkForUpdates": "업데이트 확인",
      "about": "정보",
      "togglePlugin": "{{name}} 전환",
      "managePlugins": "플러그인 관리",
      "styleManager": "스타일 관리자…"
    },
    "layerType": {
      "delimitedText": "구분된 텍스트 레이어",
      "photos": "위치 태그 사진",
      "gpx": "GPX 레이어",
      "mbtiles": "MBTiles 레이어",
      "xyz": "XYZ 레이어",
      "wms": "WMS 레이어",
      "wfs": "WFS 레이어",
      "wmts": "WMTS 레이어",
      "ogcFeatures": "OGC API - Features",
      "ogcVectorTiles": "OGC 벡터 타일",
      "arcgis": "ArcGIS 레이어",
      "georss": "GeoRSS 레이어",
      "video": "동영상 레이어",
      "deckglViz": "Deck.gl 레이어",
      "gltfModel": "3D 모델 (glTF)",
      "postgres": "PostgreSQL 레이어"
    },
    "conversion": {
      "vectorToVector": "벡터에서 벡터로",
      "zipInputBrowserError": "압축된 Shapefile은 GeoLibre 데스크톱 앱에서만 변환할 수 있습니다. 브라우저에서는 압축을 푼 .shp 파일과 .dbf, .shx, .prj 파일을 함께 선택하세요.",
      "browserOutputUnsupported": "브라우저에서는 GeoJSON, CSV, GeoParquet, GeoPackage, Shapefile(.zip)로만 출력할 수 있습니다. \".{{extension}}\" 출력에는 GeoLibre 데스크톱 앱이 필요합니다.",
      "outputExtensionRequired": "형식을 선택하려면 출력 이름에 파일 확장자를 추가하세요.",
      "readingWithDuckDb": "DuckDB-WASM으로 {{name}} 읽는 중",
      "readFeatures": "{{name}}에서 피처 {{features}}개를 읽었습니다.",
      "savedFile": "{{name}} 저장됨",
      "saveCanceled": "변환이 완료되었지만 저장이 취소되었습니다.",
      "vectorToGeoparquet": "벡터에서 GeoParquet로",
      "vectorToFlatgeobuf": "벡터에서 FlatGeobuf로",
      "vectorToShapefile": "벡터에서 Shapefile로",
      "vectorToGeopackage": "벡터에서 GeoPackage로",
      "csvToGeoparquet": "CSV에서 GeoParquet로",
      "vectorToPmtiles": "벡터에서 PMTiles로",
      "rasterToCog": "래스터에서 COG로",
      "rasterToPmtiles": "래스터를 PMTiles로",
      "needsDesktop": "이 변환에는 GeoLibre 데스크톱 앱 또는 실행 중인 사이드카가 필요합니다.",
      "runsInBrowserDuckDb": "변환은 DuckDB-WASM으로 브라우저에서 실행됩니다.",
      "runsInBrowserWriters": "변환은 DuckDB-WASM과 내장 라이터로 브라우저에서 실행됩니다.",
      "runsInBrowserWasm": "변환은 geolibre-wasm으로 브라우저에서 실행됩니다. 사이드카가 필요하지 않습니다.",
      "convertingWithWasm": "geolibre-wasm으로 {{name}} 변환 중",
      "rasterShape": "{{bands}}개 밴드의 {{width}}×{{height}} 래스터를 읽음",
      "wroteCog": "오버뷰가 있는 타일 COG를 작성함 ({{compression}})",
      "notAGeoTiff": "이 파일은 읽을 수 있는 GeoTIFF가 아닙니다. 브라우저에서 래스터를 COG로 변환은 GeoTIFF만 읽으며, 다른 형식은 데스크톱 앱이 필요합니다.",
      "zoomRangeError": "확대/축소 레벨은 0 ≤ 최소 ≤ 최대 ≤ {{max}}을(를) 만족해야 합니다.",
      "colormap": "색상표",
      "resampling": "리샘플링",
      "colormapDefault": "기본 (viridis)",
      "zoomNative": "원본",
      "rasterToPmtilesDesc": "래스터를 클라우드 네이티브 서빙에 바로 사용할 수 있는 Web Mercator PNG 타일의 단일 PMTiles 아카이브로 렌더링합니다. 하나의 밴드가 색상표를 통해 렌더링되므로 다중 밴드 영상은 실제 색상으로 그려지지 않습니다. 전적으로 WebAssembly에서 실행되므로 웹과 데스크톱 앱 모두에서 사이드카가 필요하지 않습니다.",
      "cogBrowserNote": "브라우저에서 8비트 래스터는 유형을 유지하고 나머지(Int16 DEM, Float64 등)는 Float32로 작성됩니다. 데스크톱 앱은 원본 유형을 보존합니다.",
      "noSidecarConversion": "{{kind}}에는 사이드카 변환이 없습니다.",
      "minZoom": "최소 확대/축소",
      "maxZoom": "최대 확대/축소",
      "convertFailed": "이 파일을 변환할 수 없습니다.",
      "notAGeoTiffRasterOnly": "이 파일은 읽을 수 있는 GeoTIFF가 아닙니다. 래스터를 PMTiles로 변환은 웹과 데스크톱 앱 모두에서 GeoTIFF만 읽습니다.",
      "band": "밴드",
      "bandError": "밴드는 양의 정수여야 합니다.",
      "bandOutOfRange": "밴드 {{band}}은(는) 존재하지 않습니다. 이 래스터에는 {{bands}}개 밴드가 있습니다.",
      "runsInBrowserVectorEngines": "변환은 DuckDB-WASM으로, 또는 FlatGeobuf 출력의 경우 geolibre-wasm으로 브라우저에서 실행됩니다.",
      "vectorToVectorDesc": "DuckDB의 spatial 확장이 지원하는 모든 벡터 형식 간에 변환합니다. 입력과 출력 형식은 파일 확장자로 감지됩니다. 데스크톱 앱은 모든 형식(FlatGeobuf, GeoPackage, Shapefile, KML, GML 등)을 쓸 수 있고, 브라우저는 GeoJSON, CSV, GeoParquet, GeoPackage, FlatGeobuf, Shapefile을 씁니다.",
      "vectorToVectorInputLabel": "입력 벡터 파일",
      "vectorToVectorOutputLabel": "출력 벡터 파일",
      "vectorToGeoparquetDesc": "벡터 데이터셋을 클라우드 네이티브 범위 요청에 최적화된, 힐베르트 순으로 정렬된 압축 GeoParquet 파일로 변환합니다.",
      "vectorToGeoparquetInputLabel": "입력 벡터 파일",
      "vectorToGeoparquetOutputLabel": "출력 GeoParquet 파일",
      "vectorToFlatgeobufDesc": "벡터 데이터셋을 빠른 클라우드 네이티브 접근을 위한 패킹된 공간 인덱스를 갖춘, 힐베르트 순으로 정렬된 FlatGeobuf로 변환합니다.",
      "vectorToFlatgeobufInputLabel": "입력 벡터 파일",
      "vectorToFlatgeobufOutputLabel": "출력 FlatGeobuf 파일",
      "vectorToShapefileDesc": "벡터 데이터셋을 ZIP으로 압축된 ESRI 셰이프파일(.shp/.shx/.dbf/.prj)로 변환합니다. 필드 이름은 10자로 잘립니다.",
      "vectorToShapefileInputLabel": "입력 벡터 파일",
      "vectorToShapefileOutputLabel": "출력 ZIP 압축 셰이프파일",
      "vectorToGeopackageDesc": "벡터 데이터셋을 GeoPackage(.gpkg)로 변환하여 QGIS, ArcGIS 등 다른 GIS 도구와 공유할 수 있게 합니다.",
      "vectorToGeopackageInputLabel": "입력 벡터 파일",
      "vectorToGeopackageOutputLabel": "출력 GeoPackage 파일",
      "csvToGeoparquetDesc": "경도/위도 열에서 포인트 지오메트리를 만들고 힐베르트 순으로 정렬된 압축 GeoParquet를 씁니다.",
      "csvToGeoparquetInputLabel": "입력 CSV 파일",
      "csvToGeoparquetOutputLabel": "출력 GeoParquet 파일",
      "vectorToPmtilesDesc": "벡터 데이터셋을 클라우드 네이티브 서비스에 바로 쓸 수 있는 단일 PMTiles 벡터 타일 아카이브로 타일링합니다.",
      "vectorToPmtilesInputLabel": "입력 벡터 파일",
      "vectorToPmtilesOutputLabel": "출력 PMTiles 파일",
      "rasterToPmtilesInputLabel": "입력 래스터 파일",
      "rasterToPmtilesOutputLabel": "출력 PMTiles 파일",
      "rasterToCogDesc": "래스터 데이터셋을 내부 타일링과 오버뷰를 갖춘 유효하고 압축된 Cloud Optimized GeoTIFF로 변환합니다.",
      "rasterToCogInputLabel": "입력 래스터 파일",
      "rasterToCogOutputLabel": "출력 COG 파일",
      "outputFileName": "출력 파일 이름",
      "shapefileSidecarHint": "셰이프파일의 경우 .shp와 함께 .dbf, .shx, .prj 파일도 선택하세요.",
      "longitudeColumn": "경도 열",
      "latitudeColumn": "위도 열",
      "compression": "압축",
      "rowGroupSize": "행 그룹 크기",
      "layerName": "레이어 이름",
      "noOutput": "아직 출력이 없습니다.",
      "fallbackTitle": "변환"
    },
    "vectorTool": {
      "buffer": "버퍼",
      "centroids": "중심점",
      "convexHull": "볼록 껍질",
      "dissolve": "디졸브",
      "boundingBox": "경계 상자",
      "simplify": "단순화",
      "clip": "자르기",
      "intersection": "교집합",
      "difference": "차집합",
      "union": "합집합",
      "spatialJoin": "공간 조인",
      "attributeJoin": "속성 조인",
      "selectByValue": "값으로 선택",
      "selectByLocation": "위치로 선택",
      "randomExtract": "무작위 추출",
      "reproject": "재투영",
      "explode": "분해",
      "aggregate": "속성별 집계",
      "smooth": "평활화",
      "grid": "정규 격자",
      "voronoi": "Voronoi / Delaunay",
      "cellSectors": "기지국 커버리지",
      "dggsGenerator": "DGGS 생성기",
      "dggsBinning": "DGGS 비닝",
      "dggsCompact": "DGGS 압축",
      "trajectorySpeed": "궤적 속도",
      "detectStops": "정지 지점 감지",
      "spaceTimeProximity": "시공간 근접성",
      "checkValidity": "유효성 검사",
      "fixGeometries": "지오메트리 수정",
      "checkTopologyRules": "토폴로지 규칙 검사",
      "fixTopology": "토폴로지 수정"
    },
    "networkTool": {
      "isochrone": "등시선 / 서비스 권역",
      "odMatrix": "OD 비용 행렬",
      "sequentialRoute": "순차 경로 (길찾기)"
    },
    "statisticsTool": {
      "globalMoransI": "전역 Moran's I",
      "localMoransI": "국지 Moran's I (LISA)",
      "getisOrd": "Getis-Ord Gi* 핫스팟",
      "averageNearestNeighbor": "평균 최근접 이웃",
      "kernelDensity": "커널 밀도 (히트맵)",
      "emergingHotSpot": "신흥 핫스팟(시공간 큐브)"
    },
    "rasterTool": {
      "hillshade": "음영 기복",
      "slope": "경사",
      "aspect": "사면향",
      "reproject": "재투영",
      "resample": "리샘플링",
      "clipExtent": "범위로 자르기",
      "clipMask": "마스크 레이어로 자르기",
      "polygonize": "폴리곤화",
      "contour": "등고선",
      "interpolate": "보간 (IDW / 크리깅)",
      "zonal": "구역 통계",
      "rasterCalc": "래스터 계산기",
      "spectralIndex": "분광 지수",
      "invalidSpectralIndex": "잘못된 분광 지수입니다.",
      "reclassify": "재분류",
      "mosaic": "모자이크 / 병합",
      "focal": "초점 통계",
      "inputRaster": "입력 래스터",
      "inputRasterA": "입력 래스터 A",
      "inputRaster1": "첫 번째 래스터",
      "inputPoints": "입력 점 (GeoJSON)",
      "engine": "엔진",
      "engineClient": "클라이언트 (브라우저)",
      "engineSidecar": "사이드카 (rasterio/GDAL)",
      "clientHint": "브라우저에서 계산하여 결과를 지도에 추가합니다. 대용량 래스터나 지리 좌표계 지형 데이터에는 사이드카를 사용하는 것이 좋습니다.",
      "switchToClientHint": "또는 엔진을 클라이언트로 전환하여 이 도구를 브라우저에서 실행하세요.",
      "chooseGeoTiff": "GeoTIFF 선택",
      "downloadGeoTiff": "GeoTIFF 다운로드",
      "chooseInputRaster": "입력 래스터를 선택하세요.",
      "useAddedLayer": "지도의 레이어 사용",
      "useAddedLayerPlaceholder": "레이어 선택…",
      "loadingLayer": "레이어 불러오는 중…",
      "layerLoadError": "선택한 레이어를 불러올 수 없습니다.",
      "runningInBrowser": "브라우저에서 \"{{tool}}\" 실행 중...",
      "loadedRaster": "래스터를 불러왔습니다: {{width}}×{{height}}, {{bands}}밴드.",
      "computedInBrowser": "브라우저에서 \"{{tool}}\"을(를) 계산했습니다.",
      "addedToMap": "\"{{name}}\"을(를) 지도에 추가했습니다.",
      "largeRasterWarning": "대용량 래스터({{mp}} M 픽셀)입니다. 계산하는 동안 브라우저가 응답하지 않을 수 있습니다.",
      "mapAddFailed": "지도 추가에 실패했습니다(결과는 여전히 다운로드할 수 있습니다): {{message}}",
      "mapAddError": "결과를 지도에 추가할 수 없습니다.",
      "runError": "래스터 도구를 실행할 수 없습니다.",
      "saveError": "결과를 저장할 수 없습니다.",
      "dialogTitle": "래스터 도구",
      "dialogDescription": "Python 사이드카(rasterio/GDAL)에서 일반적인 래스터 연산을 실행하고, 사이드카를 사용할 수 없으면 브라우저에서 실행합니다.",
      "outputFile": "출력 파일",
      "noOutput": "아직 출력이 없습니다.",
      "errorConnect": "사이드카에 연결하지 못했습니다.",
      "needsDesktopSidecar": "래스터 도구에는 사이드카가 실행 중인 GeoLibre 데스크톱 앱이 필요합니다.",
      "errorPoll": "작업 상태를 조회하지 못했습니다.",
      "errorStartSidecar": "GeoLibre 사이드카를 시작하지 못했습니다.",
      "errorStartTool": "래스터 도구를 시작하지 못했습니다."
    },
    "mapControl": {
      "navigation": "내비게이션",
      "fullscreen": "전체 화면",
      "compass": "나침반",
      "geolocate": "내 위치",
      "globe": "지구본",
      "terrain": "지형",
      "scale": "축척",
      "attribution": "저작권 표시",
      "logos": "로고",
      "logo": "MapLibre 로고",
      "maptoolkitLogo": "Maptoolkit 로고",
      "maptoolkitLogoHint": "로고를 표시하려면 Maptoolkit 배경 지도를 추가하세요."
    },
    "position": {
      "topLeft": "왼쪽 위",
      "topRight": "오른쪽 위",
      "bottomLeft": "왼쪽 아래",
      "bottomRight": "오른쪽 아래"
    },
    "item": {
      "newEllipsis": "새로 만들기...",
      "openFrom": "다음에서 열기",
      "fileEllipsis": "파일...",
      "urlEllipsis": "URL...",
      "galleryEllipsis": "갤러리...",
      "openRecent": "최근 항목 열기",
      "projectHistoryEllipsis": "기록...",
      "noRecentProjects": "최근 프로젝트가 없습니다",
      "removeFromRecent": "최근 프로젝트에서 {{name}} 제거",
      "clearRecentProjects": "최근 프로젝트 지우기",
      "duplicate": "프로젝트 복제",
      "saveAsEllipsis": "다른 이름으로 저장...",
      "saveAsTemplateEllipsis": "템플릿으로 저장...",
      "shareEllipsis": "공유...",
      "shareHostUnavailable": "사용할 수 없음: 이 배포의 공유 서버 주소가 올바르지 않습니다.",
      "exportHtmlEllipsis": "HTML로 내보내기...",
      "htmlFile": "HTML",
      "collaborateEllipsis": "공동 작업...",
      "printEllipsis": "인쇄...",
      "printLayoutEllipsis": "인쇄 레이아웃...",
      "offlineBasemapEllipsis": "오프라인 베이스맵...",
      "undo": "실행 취소",
      "redo": "다시 실행",
      "selectByExpressionEllipsis": "표현식으로 선택...",
      "selectByLocationEllipsis": "위치로 선택...",
      "zoomToSelection": "선택 항목으로 확대",
      "invertSelection": "선택 반전",
      "clearSelection": "선택 해제",
      "exportSelection": "선택한 피처를 레이어로 내보내기",
      "previousView": "이전 보기",
      "nextView": "다음 보기",
      "resetOrientation": "방향 재설정",
      "resetPitch": "기울기 재설정",
      "resetBearing": "방위각 재설정",
      "resetPitchBearing": "기울기 및 방위각 재설정",
      "setView": "보기 설정…",
      "splitView": "화면 분할",
      "splitViewSingle": "단일 지도",
      "splitViewTwoColumns": "2열",
      "splitViewTwoRows": "2행",
      "splitViewGrid2x2": "2 × 2 격자",
      "splitViewGrid2x3": "2 × 3 격자",
      "splitViewGrid3x3": "3 × 3 격자",
      "splitViewSync": "보기 동기화",
      "viewInGoogleMaps": "Google 지도에서 보기",
      "viewInGoogleEarth": "Google Earth에서 보기",
      "zoomIn": "확대",
      "zoomOut": "축소",
      "sectionFiles": "파일",
      "sectionWebServices": "웹 서비스",
      "sectionCloudFormats": "클라우드 형식",
      "section3dLayers": "3D 레이어",
      "sectionDatabases": "데이터베이스",
      "georeferencing": "지리참조",
      "vectorLayer": "벡터 레이어",
      "cadLayer": "CAD (DXF/DWG) 레이어",
      "gdbLayer": "파일 지오데이터베이스 (GDB)",
      "rasterLayer": "래스터 레이어",
      "osmPbfLayer": "OSM PBF 레이어",
      "stacLayer": "STAC 레이어",
      "geoparquetLayer": "GeoParquet 레이어",
      "flatgeobufLayer": "FlatGeobuf 레이어",
      "pmtilesLayer": "PMTiles 레이어",
      "basemapExtract": "오프라인 베이스맵 추출",
      "zarrLayer": "Zarr 레이어",
      "netcdfHdf": "NetCDF / HDF",
      "lidarLayer": "LiDAR 레이어",
      "splattingLayer": "가우시안 스플래팅",
      "threeDTilesLayer": "3D Tiles 레이어",
      "duckdbLayer": "DuckDB 레이어",
      "whitebox": "Whitebox",
      "geocode": "주소 지오코딩",
      "modelBuilder": "배치 및 모델",
      "processingHistory": "기록",
      "conversion": "변환",
      "vector": "벡터",
      "network": "네트워크",
      "statistics": "공간 통계",
      "raster": "래스터",
      "hydrology": "수문",
      "lidar": "LiDAR",
      "terrain": "지형",
      "remoteSensing": "원격 탐사",
      "projection": "투영법",
      "geolibre": "GeoLibre",
      "subGroupGeometry": "지오메트리",
      "subGroupOverlay": "오버레이",
      "subGroupJoin": "조인",
      "subGroupSelect": "선택",
      "subGroupDggs": "DGGS",
      "subGroupH3": "H3",
      "subGroupMovement": "이동 및 시간",
      "subGroupDataQuality": "데이터 품질",
      "subGroupTerrain": "지형",
      "subGroupReproject": "재투영",
      "subGroupClip": "자르기",
      "subGroupRasterToVector": "래스터에서 벡터로",
      "subGroupVectorToRaster": "벡터에서 래스터로",
      "subGroupAnalysis": "분석",
      "mapControls": "지도 컨트롤",
      "fieldCollection": "현장 수집...",
      "gpsTracking": "GPS 추적...",
      "recordTour": "지도 투어 기록...",
      "recordVideo": "동영상 녹화...",
      "atmosphereEffects": "대기 효과",
      "atmosphereEnabled": "사용",
      "spinGlobe": "회전하는 지구본",
      "graticule": "격자선",
      "weather": "날씨",
      "weatherTooltip": "애니메이션할 수 있는 거의 실시간 날씨 레이어를 오버레이합니다.",
      "weatherPlay": "애니메이션 재생",
      "weatherPause": "애니메이션 일시정지",
      "clouds": "구름",
      "cloudsShow": "구름 표시",
      "cloudsTooltip": "Google Earth처럼 NASA의 실시간에 가까운 위성 구름 이미지를 오버레이합니다. 날짜별로 애니메이션할 수 있는 레이어가 추가됩니다.",
      "cloudsDate": "날짜",
      "precipitation": "강수",
      "precipitationShow": "강수 표시",
      "precipitationTooltip": "거의 실시간 RainViewer 기상 레이더. 최근 약 2시간을 애니메이션으로 표시합니다.",
      "precipitationTime": "시간",
      "sun": "태양",
      "sunTooltip": "특정 날짜와 시각의 태양 위치와 밤낮 경계선을 시뮬레이션합니다.",
      "routeAnimation": "경로 애니메이션",
      "routeAnimationTooltip": "라인 레이어를 따라 마커를 애니메이션으로 표시합니다. 재생/일시정지, 속도, 이동 경로, 카메라 따라가기를 지원합니다.",
      "flightSimulator": "비행 시뮬레이터",
      "flightSimulatorTooltip": "키보드로 지형 위를 비행합니다. 비행 시뮬레이터처럼 조종할 수 있습니다.",
      "spinGlobeBoundsTitle": "경계가 잠겨 있습니다",
      "spinGlobeBoundsDesc": "지도 경계가 잠겨 있는 동안에는 지구본을 회전할 수 없습니다.",
      "spinGlobeBoundsHint": "경계를 잠금 해제하면 지구본이 자유롭게 회전할 수 있습니다. 설정에서 언제든지 다시 잠글 수 있습니다.",
      "spinGlobeBoundsUnlock": "경계 잠금 해제 및 회전",
      "directions": "길찾기",
      "directionsTooltip": "길찾기는 경유지를 공개 OSRM 데모 서버(router.project-osrm.org)로 전송합니다.",
      "search": "검색",
      "colorbar": "컬러바",
      "legend": "범례",
      "html": "HTML",
      "measure": "측정",
      "bookmark": "책갈피",
      "minimap": "미니맵",
      "viewState": "보기 상태",
      "activatePlugin": "플러그인 활성화",
      "deactivate": "비활성화",
      "activate": "활성화",
      "position": "위치",
      "webServices": "웹 서비스",
      "dggs": "DGGS",
      "commandPalette": "명령 팔레트",
      "openProjectFromUrl": "URL에서 프로젝트 열기",
      "importQgisProjectEllipsis": "QGIS 프로젝트 가져오기…",
      "importArcgisProjectEllipsis": "ArcGIS Pro 프로젝트 가져오기…",
      "arcgisImportComplete": "ArcGIS Pro 프로젝트를 가져왔습니다",
      "arcgisImportWarnings_other": "프로젝트를 가져왔지만 레이어 {{count}}개를 불러오지 못했습니다.",
      "arcgisUnknownLayerType": "알 수 없음",
      "qgisImportComplete": "QGIS 프로젝트를 가져왔습니다",
      "qgisImportWarnings_other": "프로젝트를 가져왔지만 레이어 {{count}}개를 불러오지 못했습니다.",
      "qgisUnknownProvider": "알 수 없음",
      "qgisImportReason": {
        "non-vector": "이 첫 번째 버전에서는 파일 기반 벡터 레이어만 지원합니다.",
        "provider": "{{provider}} 데이터 공급자는 지원되지 않습니다.",
        "missing-source": "레이어에 읽을 수 있는 데이터 소스가 없습니다.",
        "format": "레이어의 파일 형식은 지원되지 않습니다.",
        "remote-file": "원격 QGIS 파일 소스는 아직 지원되지 않습니다.",
        "network-path": "네트워크 공유 경로는 보안상의 이유로 불러오지 않습니다.",
        "browser-local-file": "로컬 파일이 참조되어 있지만 브라우저는 QGIS 데이터 경로를 다시 열 수 없습니다. GeoLibre Desktop으로 불러오세요.",
        "browser-local-raster": "래스터가 로컬 경로로 참조되어 있습니다. GeoLibre Desktop으로 불러오세요."
      },
      "openProjectFromUrlDesc": "`.geolibre.json` 프로젝트를 불러와 최근 프로젝트에 추가합니다.",
      "projectUrl": "프로젝트 URL",
      "opening": "여는 중...",
      "open": "열기",
      "somethingWentWrong": "문제가 발생했습니다",
      "dismiss": "닫기",
      "saveProjectAsTitle": "다른 이름으로 프로젝트 저장",
      "saveProjectAsDesc": "파일 이름을 입력하세요. 저장을 클릭하면 프로젝트가 브라우저의 다운로드 폴더로 다운로드됩니다.",
      "embedVectorTitle": "로컬 벡터 데이터를 포함하시겠습니까?",
      "embedVectorDesc": "이 프로젝트에는 컴퓨터에서 불러온 로컬 벡터 레이어가 {{count}}개 있습니다. 프로젝트를 다시 열 때 브라우저가 이 파일들을 다시 읽을 수 없으므로, 복원하려면 데이터를 프로젝트 파일에 포함해야 합니다. 포함하면 파일 크기가 약 {{size}} 늘어납니다.",
      "embedVectorDescDesktop": "이 프로젝트에는 컴퓨터에서 불러온 로컬 벡터 레이어가 {{count}}개 있습니다. 데이터를 포함하면 프로젝트가 독립적으로 완결되지만(약 {{size}} 추가), 프로젝트를 다시 열 때 디스크에서 다시 불러오는 파일 참조로 저장할 수도 있습니다. 참조는 파일 크기를 작게 유지하지만 원본 파일이 나중에 이동되거나 삭제되면 깨집니다.",
      "embedVectorEmbedButton": "데이터 포함",
      "embedVectorReferenceButton": "파일 참조 저장",
      "embedVectorSkipButton": "데이터 없이 저장",
      "saveProjectFileName": "파일 이름",
      "saveProjectFileNamePlaceholder": "my-project.geolibre.json",
      "exportHtmlAsTitle": "대화형 HTML로 내보내기",
      "exportHtmlAsDesc": "파일 이름을 입력하세요. 저장을 클릭하면 HTML 페이지가 브라우저의 다운로드 폴더로 다운로드됩니다.",
      "exportHtmlFileName": "파일 이름",
      "exportHtmlFileNamePlaceholder": "my-map.html",
      "vectorDataFilter": "벡터 데이터",
      "directionsNoticeTitle": "길찾기는 공개 라우팅 서버를 사용합니다",
      "directionsNoticeDesc": "길찾기를 켜면 배치한 경유지가 경로를 계산하기 위해 공개 OSRM 데모 서버(router.project-osrm.org)로 전송됩니다. 이 요청에 대해 좌표가 기기 밖으로 전송됩니다. 데모 서버는 요청 빈도가 제한되며 자동차 경로만 지원합니다.",
      "reverseGeocode": "역지오코딩",
      "reverseGeocodeTooltip": "지도를 클릭하여 주소를 조회합니다. 클릭한 좌표는 설정된 지오코딩 공급자(기본값은 공개 Nominatim)로 전송됩니다. 설정 → 지오코딩에서 변경할 수 있습니다.",
      "reverseGeocodeNoticeTitle": "역지오코딩은 외부 서비스를 사용합니다",
      "reverseGeocodeNoticeDesc": "역지오코딩을 켜면 클릭한 각 지점의 좌표가 주소를 확인하기 위해 설정된 지오코딩 공급자(기본값은 공개 Nominatim 서비스)로 전송됩니다. 이 요청에 대해 좌표가 기기 밖으로 전송됩니다. 설정 → 지오코딩에서 다른 공급자를 선택할 수 있습니다.",
      "networkNoticeTitle": "네트워크 분석은 외부 라우팅 서버를 사용합니다",
      "networkNoticeDesc": "네트워크 분석 도구를 실행하면 입력 지점의 좌표가 등시선, 비용 행렬, 경로를 계산하기 위해 라우팅 서버로 전송됩니다.",
      "networkNoticePrivacyHeading": "데이터 개인정보 보호",
      "networkNoticePrivacy": "입력 좌표는 이 기기를 벗어나 valhalla1.openstreetmap.de의 공개 Valhalla 서버로 전송됩니다. 프로젝트가 데이터 개인정보 보호 또는 데이터 주권 규정의 적용을 받는다면 취소를 누르세요.",
      "networkNoticePrivacyCustom": "입력 좌표는 이 기기를 벗어나 설정된 라우팅 서버({{endpoint}})로 전송됩니다. 프로젝트가 데이터 개인정보 보호 또는 데이터 주권 규정의 적용을 받는다면 취소를 누르세요.",
      "networkNoticePerformanceHeading": "성능 및 제한",
      "networkNoticePerformance": "공개 서버는 무료이지만 요청 빈도가 제한되므로 대량의 지점을 처리할 때 속도가 느려지거나 실패할 수 있습니다. 사용량이 많다면 자체 Valhalla 서버를 운영하여 도구의 \"라우팅 서버 (Valhalla)\" 필드에 URL을 입력하세요(또는 설정 → 환경 변수에서 VITE_ROUTING_ENDPOINT를 설정하여 기본값으로 지정할 수 있습니다).",
      "continue": "계속",
      "largeOsmPbfTitle": "대용량 OSM PBF 파일",
      "largeOsmPbfDesc": "이 파일은 약 {{sizeMb}} MB입니다. 파싱하면 모든 피처가 메모리에서 GeoJSON으로 변환되므로 속도가 느려지거나 브라우저에서 메모리를 많이 사용할 수 있습니다. 계속하시겠습니까?",
      "largeVectorDesc": "{{name}}에는 약 {{count}}개의 피처가 있습니다. 불러오면 모든 피처가 메모리에서 GeoJSON으로 변환되어 앱이 느려지거나 멈출 수 있습니다. 계속하시겠습니까?",
      "addOsmPbfLayerTitle": "OSM PBF 레이어 추가",
      "addOsmPbfLayerDesc": "OpenStreetMap .osm.pbf 파일을 불러옵니다. 브라우저에서 파싱되어 점, 선, 폴리곤 레이어로 각각 분리됩니다.",
      "urlLabel": "URL",
      "osmPbfUrlPlaceholder": "https://example.com/region.osm.pbf",
      "osmPbfSampleLabel": "라스베이거스",
      "osmPbfUrlHint": "원격 URL은 데스크톱 앱에서 불러올 수 있습니다. 브라우저에서는 서버가 교차 출처 요청(CORS)을 허용해야 합니다.",
      "chooseLocalFile": "로컬 파일 선택…",
      "loadFromUrl": "URL에서 불러오기",
      "loadingOsmPbf": "OSM PBF 불러오는 중…",
      "loadingOsmPbfDesc": "파일을 파싱하고 피처를 GeoJSON으로 변환하는 중입니다. 백그라운드에서 실행되며 대용량 추출 파일의 경우 시간이 걸릴 수 있습니다.",
      "loadingOsmPbfProgress": "피처를 GeoJSON으로 변환하는 중… OSM 엔티티 {{total}}개 중 {{processed}}개 처리됨.",
      "projectName": "프로젝트 이름",
      "storymapEllipsis": "스토리 맵...",
      "arcgisImportReason": {
        "layer-type": "{{layerType}} 레이어 유형은 지원되지 않습니다.",
        "missing-source": "레이어에 읽을 수 있는 로컬 데이터 소스가 없습니다.",
        "format": "레이어의 데이터 형식은 지원되지 않습니다.",
        "network-path": "네트워크 공유 경로는 보안상의 이유로 불러오지 않습니다.",
        "service": "프로젝트에 포함된 ArcGIS 서비스 레이어는 아직 지원되지 않습니다.",
        "browser-local-file": "로컬 파일이 참조되어 있지만 브라우저는 ArcGIS Pro 데이터 경로를 다시 열 수 없습니다. GeoLibre Desktop으로 불러오세요.",
        "map-extent": "저장된 지도 범위가 GeoLibre가 변환할 수 없는 좌표계를 사용하므로 지도를 기본 보기로 열었습니다.",
        "nesting": "그룹의 중첩이 너무 깊거나, 프로젝트가 이 그룹을 이미 포함한 그룹을 다시 참조합니다."
      }
    },
    "plugin": {
      "maplibre-gl-annotations": "주석",
      "maplibre-gl-streetview": "거리 뷰",
      "maplibre-gl-time-slider": "시간 슬라이더",
      "geolibre-timelapse": "타임랩스",
      "maplibre-gl-esri-wayback": "과거 영상",
      "maplibre-gl-openaerialmap": "OpenAerialMap",
      "maplibre-gl-arcgis-hub": "ArcGIS Hub",
      "geolibre-stac-catalogs": "STAC 카탈로그",
      "maplibre-gl-source-coop": "Source Cooperative",
      "maplibre-gl-natural-earth": "Natural Earth",
      "maplibre-gl-swipe": "레이어 스와이프",
      "geolibre-elevation-profile": "고도 프로파일",
      "maplibre-gl-basemap-control": "베이스맵",
      "maplibre-layer-control": "레이어 컨트롤",
      "maplibre-gl-huggingface": "Hugging Face",
      "carto-light": "Carto Light 베이스맵",
      "geolibre-flight-simulator": "비행 시뮬레이터",
      "geolibre-route-animation": "경로 애니메이션",
      "geolibre-sun": "태양 시뮬레이션",
      "maplibre-atmosphere-effects": "대기 효과",
      "maplibre-deckgl-viz": "Deck.gl 레이어",
      "maplibre-gl-clouds": "구름",
      "maplibre-gl-components": "구성 요소",
      "maplibre-gl-directions": "길찾기",
      "maplibre-gl-earthdata-gis": "Earthdata GIS",
      "maplibre-gl-enviroatlas": "US EPA EnviroAtlas",
      "maplibre-gl-fema-wms": "FEMA NFHL",
      "maplibre-gl-geo-editor": "GeoEditor",
      "maplibre-gl-geoagent": "GeoAgent",
      "maplibre-gl-geolens": "GeoLens",
      "maplibre-gl-graticule": "격자선",
      "maplibre-gl-mapillary": "Mapillary",
      "maplibre-gl-nasa-earthdata": "NASA Earthdata",
      "maplibre-gl-national-map": "USGS National Map",
      "maplibre-gl-overture-maps": "Overture Maps",
      "maplibre-gl-precipitation": "강수",
      "maplibre-gl-usgs-lidar": "USGS LiDAR",
      "maplibre-h3-grid": "H3 격자",
      "maplibre-s2-grid": "S2",
      "maplibre-a5-grid": "A5",
      "maplibre-dggrid": "DGGRID",
      "maplibre-dggal": "DGGAL",
      "maplibre-olc": "OLC",
      "maplibre-geohash": "Geohash",
      "maplibre-tilecode": "Tilecode",
      "maplibre-reverse-geocode": "역지오코딩",
      "osm-basemap": "OpenStreetMap 베이스맵"
    },
    "fileDrop": {
      "overlayTitle": "벡터 또는 래스터 파일을 여기에 놓아 레이어를 추가하세요",
      "overlaySubtext": "데이터가 레이어 패널에 즉시 추가됩니다.",
      "addedLayer": "\"{{name}}\"을(를) 레이어 패널에 추가했습니다.",
      "addedVectorLayers_other": "벡터 레이어 {{count}}개를 레이어 패널에 추가했습니다.",
      "addedRasterLayers_other": "래스터 레이어 {{count}}개를 레이어 패널에 추가했습니다.",
      "addedBoth": "{{vector}}와(과) {{raster}}을(를) 레이어 패널에 추가했습니다.",
      "bothVectorLayers_other": "벡터 레이어 {{count}}개",
      "bothRasterLayers_other": "래스터 레이어 {{count}}개"
    },
    "error": {
      "couldNotOpenProject": "프로젝트를 열 수 없습니다.",
      "couldNotImportQgisProject": "QGIS 프로젝트를 가져올 수 없습니다.",
      "couldNotImportArcgisProject": "ArcGIS Pro 프로젝트를 가져올 수 없습니다.",
      "invalidProjectUrl": "유효한 HTTP 또는 HTTPS 프로젝트 URL을 입력하세요.",
      "couldNotOpenProjectUrl": "프로젝트 URL을 열 수 없습니다.",
      "couldNotOpenRecentProject": "최근 프로젝트를 열 수 없습니다.",
      "couldNotLoadRecentProject": "최근 프로젝트를 불러올 수 없습니다.",
      "couldNotSaveProject": "프로젝트를 저장할 수 없습니다.",
      "couldNotExportHtml": "프로젝트를 HTML로 내보낼 수 없습니다.",
      "osmPbfNoFeatures": "이 OSM PBF 파일에서 점, 선, 폴리곤 피처를 찾을 수 없습니다.",
      "couldNotLoadOsmPbf": "OSM PBF 파일을 불러올 수 없습니다.",
      "osmPbfLoadFailedWithHint": "{{message}} Mapbox Vector Tile(.pbf) 파일이라면 OSM 추출 파일로 불러올 수 없습니다.",
      "osmPbfTooLarge": "이 OSM 추출 파일이 너무 커서 불러오는 중 메모리나 시간이 부족했습니다. 더 작은 영역을 시도하거나, 불러오기 전에 파일을 미리 필터링하세요(예: osmium-tool 또는 QGIS 사용).",
      "couldNotOpenOsmPbf": "OSM PBF 파일을 열 수 없습니다.",
      "invalidOsmPbfUrl": ".osm.pbf 파일의 유효한 http(s) URL을 입력하세요.",
      "couldNotDownloadOsmPbf": "OSM PBF 파일을 다운로드할 수 없습니다.",
      "scenegraphModelUrlRequired": "glTF/GLB 모델 URL을 입력하세요.",
      "scenegraphInvalidLngLat": "유효한 경도와 위도를 입력하세요.",
      "scenegraphOutOfRange": "경도는 -180에서 180 사이, 위도는 -90에서 90 사이여야 합니다.",
      "scenegraphNoPointFeatures": "이 GeoJSON에는 모델을 배치할 점 피처가 없습니다."
    },
    "scenegraph": {
      "modelUrl": "glTF / GLB 모델 URL",
      "placement": "배치",
      "placementSingle": "단일 위치",
      "placementData": "점 데이터에서",
      "longitude": "경도",
      "latitude": "위도",
      "scale": "크기",
      "bearing": "방위각°",
      "altitude": "고도 m"
    },
    "sqlWorkspace": {
      "description": {
        "postgis": "불러온 레이어에 대해 PostGIS SQL을 실행합니다. PostGIS 확장이 로드되어 있어 ST_* 함수를 사용할 수 있습니다. 처음 실행할 때 약 19MB의 데이터베이스 엔진을 불러옵니다.",
        "duckdb": "불러온 레이어, 파일, URL에 대해 DuckDB SQL을 실행합니다. spatial 확장이 로드되어 있어 ST_* 함수를 사용할 수 있습니다. 공개 데이터의 경우 클라우드 URL(s3://, gs://, az://)을 지원합니다.",
        "sedona": "불러온 레이어에 대해 Apache Sedona 공간 SQL을 실행합니다. 브라우저에서는 CereusDB(SedonaDB의 WebAssembly 빌드)를 통해 실행되며, 데스크톱에서는 선택적 sedona 확장이 설치된 경우 SedonaDB 사이드카를 사용합니다. ST_* 함수를 사용할 수 있습니다."
      },
      "title": "SQL 작업 공간",
      "engine": "SQL 엔진",
      "resize": "SQL 작업 공간 크기 조절",
      "resizeEditor": "편집기와 결과 창 크기 조절",
      "collapse": "SQL 작업 공간 접기",
      "expand": "SQL 작업 공간 펼치기",
      "close": "SQL 작업 공간 닫기",
      "run": "실행",
      "runHint": "실행 (Ctrl/Cmd+Enter)",
      "clear": "지우기",
      "completions": "자동 완성",
      "placeholder": "여기에 SQL 입력 · Ctrl/Cmd+Enter로 실행 · Tab 또는 Ctrl+Space로 자동 완성",
      "resultsPlaceholder": "쿼리를 실행하면 결과가 여기에 표시됩니다.",
      "queryableHint": "쿼리 가능한 레이어: {{names}}",
      "queryableLayers": "쿼리 가능한 레이어:",
      "queryLabel": "SQL 쿼리",
      "engineOption": "엔진: {{name}}",
      "sampleQueries": "샘플 쿼리…",
      "sampleQueriesLabel": "샘플 쿼리 삽입",
      "history": "기록…",
      "historyLabel": "기록에서 쿼리 재사용",
      "sampleForLayer": "레이어용 샘플 쿼리…",
      "sampleForLayerLabel": "레이어용 샘플 쿼리 삽입",
      "noLayersEngine": "아직 테이블로 불러온 벡터 레이어가 없습니다. {{engine}}(으)로 쿼리하려면 벡터 레이어를 불러오세요.",
      "noLayersReaders": "아직 테이블로 불러온 벡터 레이어가 없습니다. read_parquet(), read_csv_auto(), ST_Read()를 사용하여 파일과 URL을 계속 읽을 수 있습니다.",
      "layerName": "레이어 이름",
      "layerNamePlaceholder": "레이어 이름 (선택 사항)",
      "addAsLayer": "레이어로 추가",
      "exportCsv": "CSV 내보내기",
      "exportGeoParquet": "GeoParquet 내보내기",
      "addedAsLayer_other": "피처 {{count}}개를 \"{{name}}\"(으)로 지도에 추가했습니다.",
      "addAsQueryLayer": "쿼리 레이어로 추가",
      "addAsQueryLayerHint": "새로 고침할 때 이 SQL을 다시 실행하는 실시간 레이어로 결과를 추가합니다",
      "addedAsQueryLayer_other": "쿼리 레이어 \"{{name}}\"로 피처 {{count}}개를 지도에 추가했습니다. 레이어 패널에서 새로 고침하여 SQL을 다시 실행하세요.",
      "savedAs": "{{label}}을(를) {{name}}(으)로 저장했습니다.",
      "noRows": "문이 실행되었습니다. 반환된 행이 없습니다.",
      "showingRows": "전체 {{total}}개 중 처음 {{shown}}개 행을 표시합니다. 모두 보려면 내보내세요.",
      "rowsCount_other": "{{count}}개 행",
      "columnsCount_other": "{{count}}개 열",
      "samples": {
        "countriesGeom": "지오메트리가 있는 국가",
        "attributesOnly": "속성만 (지오메트리 없음)",
        "populationByContinent": "대륙별 인구 (집계)",
        "mostPopulous": "인구가 가장 많은 국가 (지오메트리)",
        "countryCentroids": "국가 중심점 (공간)",
        "largestByArea": "면적이 가장 큰 국가 (공간)",
        "postgisVersion": "PostGIS 버전",
        "makePoint": "점 만들기 (지오메트리)",
        "firstRows": "레이어의 처음 행",
        "featureCount": "피처 수",
        "layerCentroids": "레이어의 중심점 (공간)",
        "bufferFeatures": "피처를 0.01도만큼 버퍼 (공간)",
        "boundingBox": "레이어의 경계 상자 (공간)",
        "bufferPoint": "점 버퍼 (공간)",
        "areaPerFeature": "각 피처의 면적"
      }
    }
  },
  "selection": {
    "byExpressionTitle": "표현식으로 선택",
    "byExpressionDescription": "속성이 부울 표현식과 일치하는 피처를 선택합니다. 일치 항목은 지도와 속성 테이블에 강조 표시되는 실시간 선택이 됩니다.",
    "byLocationTitle": "위치로 선택",
    "byLocationDescription": "다른 레이어의 피처와의 공간 관계로 피처를 선택합니다.",
    "targetLayer": "선택할 피처 레이어",
    "referenceLayer": "비교 대상 피처 레이어",
    "predicate": "조건: 피처가",
    "predicateIntersects": "교차함",
    "predicateWithin": "내부에 있음",
    "predicateContains": "포함함",
    "predicateDisjoint": "분리됨 (교차 없음)",
    "mode": "현재 선택 수정 방식",
    "modeNew": "새 선택 만들기",
    "modeAdd": "현재 선택에 추가",
    "modeRemove": "현재 선택에서 제거",
    "modeIntersect": "현재 선택 내에서 선택",
    "expression": "표현식",
    "expressionPlaceholder": "[\">=\", [\"get\", \"population\"], 100000]",
    "expressionTarget": "선택 필터",
    "openBuilder": "표현식 빌더...",
    "invalidExpression": "유효한 부울 표현식을 입력하세요.",
    "select": "피처 선택",
    "noLayers": "선택하려면 피처가 있는 벡터 레이어를 추가하세요.",
    "needTwoLayers": "위치로 선택하려면 피처가 있는 벡터 레이어 두 개가 필요합니다.",
    "summary": "전체 {{total}}개 중 피처 {{selected}}개 선택됨 ({{matched}}개 일치).",
    "evaluationErrors": "피처 {{count}}개를 평가할 수 없어 일치되지 않았습니다.",
    "unevaluableDisjoint": "피처 {{count}}개는 지오메트리를 평가할 수 없어 제외되었습니다.",
    "tooManyPairs": "이 비교에는 {{pairs}}개의 피처 쌍 테스트가 필요합니다(한도 {{limit}}). 대신 처리 → GeoLibre → 벡터 → 위치로 선택을 사이드카 엔진으로 사용하세요.",
    "exportedLayerName": "{{name}} (선택)"
  },
  "loadEditorFeatures": {
    "menuItem": "편집기에 피처 불러오기…",
    "title": "편집기에 피처 불러오기",
    "collapse": "패널 접기",
    "expand": "패널 펼치기",
    "description": "현재 지도 화면에 표시된 벡터 피처를 GeoEditor로 불러와 편집한 후, 모든 피처 또는 변경 사항만 GeoJSON으로 저장하세요.",
    "vectorLayer": "벡터 레이어",
    "selectPlaceholder": "레이어 선택…",
    "refresh": "레이어 목록 새로고침",
    "noLayers": "현재 화면에 벡터 레이어가 없습니다. 벡터 레이어를 추가하거나 벡터 피처가 있는 베이스맵 영역으로 이동한 후 새로고침하세요.",
    "editSessionActive": "여기서 피처를 불러오거나 저장하기 전에 인플레이스 지오메트리 편집을 완료하세요 (레이어 패널 → 지오메트리 편집 완료).",
    "editorName": "편집자 이름",
    "editorNamePlaceholder": "이름 (선택 사항)",
    "loadFeatures": "피처 불러오기",
    "loading": "피처를 불러오는 중…",
    "selectLayer": "먼저 레이어를 선택하세요.",
    "noneInView": "이 레이어의 현재 화면에서 피처를 찾을 수 없습니다.",
    "editorUnavailable": "GeoEditor를 활성화할 수 없습니다. 지도가 완전히 로드된 후 다시 시도하세요.",
    "noEditable": "이 레이어의 현재 화면에서 편집 가능한 피처를 찾을 수 없습니다.",
    "loaded": "\"{{layer}}\"에서 {{count}}개의 피처를 불러왔습니다.",
    "appended": "\"{{layer}}\"에서 {{count}}개의 피처를 추가했습니다.",
    "loadedWithDropped": "{{message}} (잘못된 항목 {{dropped}}개 건너뜀)",
    "loadFailed": "편집기로 피처를 불러오지 못했습니다.",
    "confirmExisting": "편집기에 이미 {{count}}개의 피처가 있습니다. 기존 항목에 추가하시겠습니까, 아니면 삭제 후 교체하시겠습니까?",
    "tooMany": "{{count}}개의 피처를 불러오면 편집기 응답 속도가 느려질 수 있습니다. 그래도 불러오시겠습니까?",
    "loadAnyway": "그래도 불러오기",
    "append": "추가",
    "appendHint": "새 피처를 기존 피처와 함께 추가합니다.",
    "discard": "삭제 후 교체",
    "discardHint": "기존 피처를 제거하고 새 피처를 불러옵니다.",
    "noChanges": "아직 저장할 변경 사항이 없습니다.",
    "nothingToSave": "저장할 피처가 없습니다.",
    "saved": "{{count}}개의 피처를 저장했습니다.",
    "savedChanges": "변경 사항 저장됨: 추가 {{added}}개, 수정 {{modified}}개, 삭제 {{deleted}}개.",
    "saveFailed": "피처를 저장하지 못했습니다.",
    "saveChanges": "변경 사항 저장",
    "saveChangesHint": "추가, 편집 또는 삭제한 피처만 저장합니다.",
    "saveAll": "모두 저장"
  },
  "geocode": {
    "title": "주소 지오코딩",
    "description": "CSV 주소 목록을 포인트 레이어로 지오코딩합니다. 일치하는 각 행은 원본 열과 해석된 좌표, 일치 점수를 포함한 포인트가 됩니다.",
    "chooseFile": "CSV 파일 선택",
    "noFile": "선택된 CSV 파일이 없습니다.",
    "fileLoaded": "{{name}} ({{count}}행)",
    "provider": "지오코딩 제공자",
    "providerHint": "API 키와 엔드포인트는 설정에서 관리합니다.",
    "apiKeyRequired": "{{provider}}에는 API 키가 필요합니다. 결과를 받으려면 설정에서 추가하세요.",
    "corsNote": "Google은 공식적으로 Geocoding API에 대한 브라우저 요청을 허용하지 않습니다. 동일 출처 프록시를 통하지 않으면 요청이 차단될 수 있습니다.",
    "addressColumn": "주소 열",
    "run": "지오코딩 시작",
    "cancel": "취소",
    "outputPlaceholder": "진행 상황이 여기에 표시됩니다.",
    "usingEndpoint": "{{endpoint}} 사용 중",
    "usingProvider": "{{provider}} ({{endpoint}}) 사용 중",
    "rowCapWarning": "공개 Nominatim 사용 정책을 준수하기 위해 처음 {{cap}}행만 지오코딩됩니다. 더 많은 배치를 처리하려면 자체 호스팅 엔드포인트를 구성하세요.",
    "skippedEmpty": "주소가 비어 있는 {{count}}개의 행을 건너뛰었습니다.",
    "progress": "{{total}}행 중 {{current}}행 지오코딩 중: {{address}}",
    "summary": "{{total}}행 중 {{matched}}행이 지오코딩되었습니다. {{failed}}행은 일치하지 않았습니다.",
    "failedRows": "일치하지 않은 행: {{rows}}",
    "noMatches": "지오코딩할 수 있는 행이 없습니다.",
    "cancelledNoRows": "어떤 행도 지오코딩되기 전에 취소되었습니다.",
    "cancelled": "취소됨. 일치한 {{matched}}개의 행이 추가되었습니다.",
    "error": "오류: {{message}}",
    "reverseLookingUp": "주소를 조회하는 중...",
    "reverseNoAddress": "주소를 찾을 수 없습니다.",
    "reverseCopyAddress": "주소 복사",
    "reverseFailed": "역지오코딩에 실패했습니다."
  },
  "graticule": {
    "title": "격자선",
    "controlTitle": "격자선 설정",
    "gridType": "격자 유형",
    "typeGeographic": "지리 (위도/경도)",
    "typeUtm": "UTM (동거/북거)",
    "spacing": "간격",
    "spacingAuto": "자동 (줌 레벨 기준)",
    "spacingFixed": "고정 간격",
    "interval": "간격 (°)",
    "intervalMeters": "간격 (m)",
    "lineColor": "선 색상",
    "lineWidth": "선 두께",
    "lineOpacity": "선 불투명도",
    "dashedLines": "점선",
    "showLabels": "레이블 표시",
    "labelFormat": "레이블 형식",
    "formatDecimal": "십진 도",
    "formatDms": "도/분/초",
    "labelEdges": "레이블 가장자리",
    "edgesLeftBottom": "왼쪽 + 아래쪽",
    "edgesAll": "모든 면",
    "labelColor": "레이블 색상",
    "labelSize": "레이블 크기"
  },
  "h3Plugin": {
    "title": "H3 격자",
    "controlTitle": "H3 격자 설정",
    "autoResolution": "해상도 자동 설정",
    "resolution": "해상도",
    "cellCount": "화면에 {{count}}개 셀",
    "tooManyCells": "이 화면은 셀 {{limit}}개 한도를 초과합니다. 확대하거나 해상도를 낮추세요.",
    "fillColor": "채우기 색상",
    "fillOpacity": "채우기 불투명도",
    "lineColor": "윤곽선 색상",
    "lineWidth": "외곽선 두께",
    "showLabels": "셀 ID 표시",
    "identifyHint": "지도를 클릭하여 H3 셀을 확인하세요.",
    "selectedCell": "선택한 셀",
    "noSelection": "선택한 셀 없음",
    "copyId": "ID 복사",
    "copied": "복사됨",
    "parent": "상위 셀",
    "children": "하위 셀",
    "neighbors": "인접 셀",
    "baseCell": "기본 셀",
    "center": "중심",
    "pentagon": "오각형",
    "yes": "예",
    "no": "아니요",
    "zoomToCell": "셀로 확대",
    "addAsLayer": "격자를 레이어로 추가",
    "exportGeoJson": "GeoJSON 내보내기",
    "exportCsv": "CSV 내보내기",
    "includeNeighbors": "선택한 셀의 인접 셀 포함",
    "includeParents": "선택한 셀의 상위 셀 포함",
    "showIcosahedron": "정이십면체 표시"
  },
  "timelapse": {
    "title": "타임랩스",
    "provider": "이미지 소스",
    "legend": "범례",
    "yearSlider": "타임랩스 연도",
    "play": "재생",
    "pause": "일시정지",
    "speed": "속도",
    "secondsPerYear": "연도당 초",
    "secondsPerYearSuffix": "초/년",
    "loop": "반복",
    "record": "동영상 녹화",
    "stopRecording": "녹화 중지",
    "recording": "녹화 중",
    "recordingFailed": "녹화에 실패했습니다.",
    "recordingUnsupported": "이 브라우저는 캔버스 녹화를 지원하지 않습니다.",
    "loadingTiles": "타일 불러오는 중…"
  },
  "mapillary": {
    "title": "Mapillary",
    "hint": "지도에서 커버리지 지점을 클릭하여 거리 수준 영상을 확인하세요.",
    "noToken": "커버리지와 영상을 로드하려면 Mapillary 액세스 토큰이 필요합니다. 시작하려면 아래에 붙여넣으세요.",
    "tokenPlaceholder": "MLY|…",
    "tokenSave": "토큰 저장",
    "tokenHelp": "토큰 받기",
    "tokenLabel": "Mapillary 액세스 토큰",
    "loading": "영상 로드 중…",
    "loadError": "이 이미지를 로드할 수 없습니다.",
    "coverageLines": "Mapillary 시퀀스",
    "coveragePoints": "Mapillary 이미지"
  },
  "openAerialMap": {
    "hint": "지도 화면, 그린 상자 또는 좌표로 OpenAerialMap 영상을 검색하세요.",
    "search": "이 화면 검색",
    "loadMore": "더 불러오기",
    "searching": "검색 중…",
    "loadingMore": "더 불러오는 중…",
    "noResults": "이 지역에서 영상을 찾을 수 없습니다.",
    "showing": "이미지 {{total}}개 중 {{shown}}개 표시.",
    "searchError": "OpenAerialMap에 연결할 수 없습니다: {{message}}. 다시 시도하세요.",
    "add": "추가",
    "remove": "제거",
    "zoom": "확대",
    "download": "다운로드",
    "metadata": "메타데이터",
    "addTitle": "이 이미지를 지도에 추가",
    "removeTitle": "이 이미지를 지도에서 제거",
    "addUnavailableTitle": "이 이미지에 사용 가능한 타일 서비스가 없습니다",
    "zoomTitle": "이 이미지로 확대",
    "downloadTitle": "원본 GeoTIFF 다운로드",
    "metadataTitle": "이 이미지의 메타데이터 보기",
    "modeView": "지도 화면",
    "modeDraw": "상자 그리기",
    "modeBbox": "좌표",
    "drawHint": "지도에서 클릭하고 드래그하여 검색 상자를 그리세요.",
    "drawStart": "지도에 상자 그리기",
    "drawCancel": "그리기 취소",
    "drawnBox": "검색 상자: {{box}}",
    "coordWest": "서",
    "coordSouth": "남",
    "coordEast": "동",
    "coordNorth": "북",
    "coordSearch": "이 상자 검색",
    "bboxInvalid": "서 < 동, 남 < 북이 되도록 유효한 좌표 4개를 입력하세요.",
    "footprintsLayer": "OpenAerialMap 풋프린트",
    "footprintUnavailable": "이 이미지에 사용 가능한 타일 서비스가 없습니다.",
    "metadataHeading": "이미지 메타데이터",
    "close": "닫기",
    "metaTitle": "제목",
    "metaProvider": "제공자",
    "metaPlatform": "플랫폼",
    "metaResolution": "해상도",
    "metaAcquired": "취득일",
    "metaBounds": "경계 (W, S, E, N)",
    "metaSource": "원본 GeoTIFF",
    "metaRaw": "원시 메타데이터"
  },
  "arcgisHub": {
    "hint": "ArcGIS Hub의 공개 데이터셋을 검색합니다. 지원되는 레이어를 지도에 추가하거나 데이터를 내려받을 수 있습니다.",
    "searchPlaceholder": "ArcGIS Hub 데이터셋 검색",
    "search": "검색",
    "searchCurrentView": "현재 지도 영역 검색",
    "enterKeyword": "시작하려면 키워드를 입력하세요.",
    "loadMore": "더 불러오기",
    "searching": "검색 중…",
    "loadingMore": "데이터셋을 더 불러오는 중…",
    "noResults": "공개 데이터셋을 찾을 수 없습니다.",
    "searchError": "ArcGIS Hub를 검색할 수 없습니다.",
    "showing": "데이터셋 {{total}}개 중 {{shown}}개를 표시하고 있습니다.",
    "noDescription": "설명이 제공되지 않았습니다.",
    "add": "지도에 추가",
    "adding": "{{title}} 추가 중…",
    "added": "{{title}}을(를) 추가했습니다.",
    "addError": "이 데이터셋을 추가할 수 없습니다.",
    "zoom": "확대",
    "download": "다운로드",
    "preparing": "{{title}} 준비 중…",
    "downloading": "{{title}} 다운로드 중: 피처 {{total}}개 중 {{completed}}개…",
    "downloadStarted": "{{title}} 다운로드를 시작했습니다.",
    "downloadFirstLayer": "{{title}}에는 레이어가 {{layerCount}}개 있으며 첫 번째만 내려받았습니다.",
    "downloadError": "이 데이터셋을 내려받을 수 없습니다.",
    "details": "세부 정보"
  },
  "openDataCatalogs": {
    "socrataHint": "공개 Socrata 오픈 데이터 카탈로그를 검색하고 GeoJSON 데이터셋을 추가합니다.",
    "ckanHint": "Humanitarian Data Exchange의 CKAN 카탈로그를 검색하고 사용 가능한 GeoJSON 리소스를 추가합니다.",
    "searchPlaceholder": "{{name}} 검색",
    "search": "검색",
    "enterKeyword": "시작하려면 키워드를 입력하세요.",
    "loadMore": "더 불러오기",
    "searching": "검색 중…",
    "noResults": "데이터셋을 찾을 수 없습니다.",
    "showing": "데이터셋 {{total}}개 중 {{shown}}개를 표시하고 있습니다.",
    "noDescription": "설명이 제공되지 않았습니다.",
    "add": "지도에 추가",
    "details": "세부 정보",
    "adding": "{{title}} 추가 중…",
    "added": "{{title}}을(를) 추가했습니다.",
    "addError": "데이터셋을 추가할 수 없습니다.",
    "searchError": "검색에 실패했습니다."
  },
  "earthdataGis": {
    "hint": "NASA Earthdata GIS에서 영상, 지도, 피처 서비스를 검색하세요.",
    "searchPlaceholder": "Earthdata GIS 검색…",
    "search": "검색",
    "searching": "검색 중…",
    "loadingMore": "더 불러오는 중…",
    "loadMore": "더 불러오기",
    "noResults": "이 검색과 일치하는 서비스가 없습니다.",
    "showing": "서비스 {{total}}개 중 {{shown}}개를 표시하고 있습니다.",
    "searchError": "Earthdata GIS에 연결할 수 없습니다: {{message}}. 다시 시도하세요.",
    "limitToView": "지도 화면으로 제한",
    "limitToViewTitle": "현재 지도 화면과 교차하는 서비스만 반환합니다",
    "filterAll": "전체",
    "filterImage": "영상",
    "filterMap": "지도",
    "filterFeature": "피처",
    "kindImage": "이미지 서비스",
    "kindMap": "맵 서비스",
    "kindFeature": "피처 서비스",
    "kindWebMap": "웹 맵",
    "filterWebMap": "웹 맵",
    "webMapAdded_other": "이 웹 맵에서 레이어 {{count}}개를 추가했습니다.",
    "webMapAddedPartial": "이 웹 맵의 레이어 {{total}}개 중 {{added}}개를 추가했습니다. 나머지는 연결할 수 없었습니다.",
    "webMapEmpty": "이 웹 맵에는 GeoLibre가 렌더링할 수 있는 레이어가 없습니다.",
    "add": "추가",
    "adding": "추가 중…",
    "remove": "제거",
    "zoom": "확대",
    "details": "세부 정보",
    "portal": "포털",
    "portalTitle": "이 항목을 Earthdata GIS 포털에서 열기",
    "cog": "COG",
    "cogTitle": "이 서비스를 Cloud Optimized GeoTIFF로 다운로드",
    "cogHeading": "COG로 다운로드",
    "cogAreaView": "현재 화면",
    "cogAreaExtent": "전체 범위",
    "cogSize": "내보내기 크기: {{width}} x {{height}} px",
    "cogResolution": "지상 해상도: {{metres}} m/px",
    "cogNote": "서비스는 이 크기로 다시 내보내진 뒤 COG로 재인코딩됩니다. 따라서 이는 해당 영역을 리샘플링한 결과이며, 원본 해상도의 소스 래스터가 아닙니다.",
    "cogDownload": "다운로드",
    "cogDownloading": "내보내고 변환하는 중…",
    "cogRetrying": "서비스가 해당 크기를 거부했습니다. {{width}} x {{height}} px로 다시 시도하는 중…",
    "cogConverting": "COG로 변환하는 중…",
    "cogDone": "COG를 {{width}} x {{height}} px로 저장했습니다.",
    "cogFailed": "COG를 다운로드할 수 없습니다: {{message}}",
    "cogUnavailable": "다운로드하려면 데스크톱 앱이나 브라우저의 저장 대화 상자가 필요합니다.",
    "cancel": "취소",
    "addTitle": "이 서비스를 지도에 추가",
    "removeTitle": "이 서비스를 지도에서 제거",
    "zoomTitle": "이 서비스로 확대",
    "zoomUnavailableTitle": "이 서비스는 범위를 게시하지 않습니다",
    "detailsTitle": "이 서비스의 메타데이터 보기",
    "addError": "서비스를 추가할 수 없습니다: {{message}}",
    "addTimeout": "1분 내에 응답하지 않았습니다. 처리가 끝나면 레이어는 그래도 표시됩니다.",
    "zoomedToData": "이 레이어의 전체 범위를 넘어 확대했습니다. 이 서비스는 더 높은 축척 수준에서만 렌더링됩니다.",
    "detailsHeading": "서비스 세부 정보",
    "close": "닫기",
    "metaTitle": "제목",
    "metaType": "유형",
    "metaSummary": "요약",
    "metaDescription": "설명",
    "metaOwner": "게시자",
    "metaModified": "마지막 수정",
    "metaTags": "태그",
    "metaExtent": "범위 (서, 남, 동, 북)",
    "metaCredits": "크레딧",
    "metaLicense": "이용 조건",
    "metaService": "서비스 URL",
    "metaPortalItem": "포털 항목",
    "metaRaw": "원시 메타데이터"
  },
  "sourceCoop": {
    "hint": "Source Cooperative에서 오픈 지리공간 데이터를 검색하거나 계정/제품 id를 입력하세요.",
    "searchPlaceholder": "데이터 또는 계정/제품 검색",
    "search": "검색",
    "searching": "검색 중…",
    "loading": "카탈로그 로드 중…",
    "loadError": "Source Cooperative에 연결할 수 없습니다: {{message}}. 다시 시도하세요.",
    "noResults": "일치하는 제품이 없습니다.",
    "retry": "재시도",
    "featured": "추천",
    "showing": "제품 {{total}}개 중 {{shown}}개 표시.",
    "browseAccount": "{{account}}의 모든 제품 찾아보기",
    "back": "뒤로",
    "files": "파일",
    "noFiles": "이 폴더에 파일이 없습니다.",
    "loadingFiles": "파일 로드 중…",
    "loadMore": "더 불러오기",
    "parent": "상위 폴더로",
    "add": "추가",
    "adding": "추가 중…",
    "added": "추가됨",
    "stream": "스트림",
    "streaming": "스트리밍 중",
    "remove": "제거",
    "download": "다운로드",
    "copyUrl": "URL 복사",
    "copied": "복사됨",
    "openProduct": "source.coop에서 열기",
    "addTitle": "이 파일을 지도에 추가",
    "streamTitle": "이 파일을 있는 위치에서 쿼리하여 화면에 보이는 부분만 읽습니다. 전체 파일은 DuckDB로 복사되지 않으므로 대용량 파일에 가장 적합합니다.",
    "removeTitle": "이 파일을 지도에서 제거",
    "downloadTitle": "이 파일 다운로드",
    "copyUrlTitle": "이 파일의 URL 복사",
    "openProductTitle": "source.coop에서 이 제품 페이지 열기",
    "unsupportedTitle": "GeoLibre가 이 형식을 렌더링할 수 없습니다 — 대신 다운로드하세요",
    "addError": "이 파일을 추가할 수 없습니다: {{message}}",
    "largeFileWarning": "이 파일은 {{size}}입니다. 원본에서 스트리밍되므로 화면에 보이는 부분만 읽습니다.",
    "streamHint": "이 파일은 {{size}}입니다. 추가는 메모리로 복사하고, 스트림은 화면에 보이는 부분만 읽습니다.",
    "tooLargeToOpen": "이 파일은 {{size}}로 브라우저에서 열기에는 너무 큽니다({{limit}} 한도). 다운로드하거나 이 데이터셋의 분할 버전을 사용하세요."
  },
  "huggingFace": {
    "browseTab": "찾아보기",
    "uploadTab": "업로드",
    "settingsTab": "설정",
    "hint": "Hugging Face에서 데이터셋 저장소를 검색하거나 계정 이름 또는 owner/dataset id를 입력하세요.",
    "searchPlaceholder": "데이터셋, 계정 또는 owner/dataset 검색",
    "search": "검색",
    "searching": "검색 중…",
    "loadError": "Hugging Face에 연결할 수 없습니다: {{message}}. 다시 시도하세요.",
    "noResults": "일치하는 데이터셋이 없습니다.",
    "retry": "재시도",
    "suggestions": "추천 데이터셋",
    "showing_other": "데이터셋 {{count}}개.",
    "browseOwner": "{{owner}}의 데이터셋 모두 보기",
    "back": "뒤로",
    "private": "비공개",
    "gated": "접근 제한",
    "privateHint": "이 데이터셋은 비공개이거나 접근이 제한되어 있습니다. 파일에 인증된 요청이 필요한데 지도 소스는 이를 수행할 수 없으므로 여기서는 추가하거나 다운로드할 수 없습니다.",
    "stats": "좋아요 {{likes}} · 다운로드 {{downloads}}",
    "noFiles": "이 폴더에 파일이 없습니다.",
    "loadingFiles": "파일 로드 중…",
    "loadMore": "더 불러오기",
    "parent": "상위 폴더로",
    "add": "추가",
    "adding": "추가 중…",
    "stream": "스트림",
    "streaming": "스트리밍 중",
    "remove": "제거",
    "download": "다운로드",
    "copyUrl": "URL 복사",
    "copied": "복사됨",
    "openDataset": "Hugging Face에서 열기",
    "addTitle": "이 파일을 지도에 추가",
    "streamTitle": "이 파일을 있는 위치에서 쿼리하여 화면에 보이는 부분만 읽습니다. 전체 파일은 DuckDB로 복사되지 않으므로 대용량 파일에 가장 적합합니다.",
    "removeTitle": "이 파일을 지도에서 제거",
    "downloadTitle": "이 파일 다운로드",
    "copyUrlTitle": "이 파일의 URL 복사",
    "openDatasetTitle": "이 데이터셋 페이지를 huggingface.co에서 열기",
    "unsupportedTitle": "GeoLibre가 이 형식을 렌더링할 수 없습니다 — 대신 다운로드하세요",
    "addError": "이 파일을 추가할 수 없습니다: {{message}}",
    "notRasterIndex": "이 JSON 파일은 래스터를 색인하지 않으므로 지도에 올릴 것이 없습니다. MosaicJSON과 STAC 컬렉션을 지원합니다.",
    "largeFileWarning": "이 파일은 {{size}}입니다. 원본에서 스트리밍되므로 화면에 보이는 부분만 읽습니다.",
    "streamHint": "이 파일은 {{size}}입니다. 추가는 메모리로 복사하고, 스트림은 화면에 보이는 부분만 읽습니다.",
    "tooLargeToOpen": "이 파일은 {{size}}로 브라우저에서 열기에는 너무 큽니다({{limit}} 한도). 다운로드하거나 이 데이터셋의 분할 버전을 사용하세요.",
    "tokenLabel": "액세스 토큰",
    "tokenHint": "데이터셋 저장소를 만들고 파일을 업로드하려면 쓰기 권한이 있는 Hugging Face 액세스 토큰이 필요합니다. 토큰은 이 브라우저에만 저장되며 huggingface.co로만 전송됩니다.",
    "tokenPlaceholder": "hf_…",
    "tokenSave": "토큰 저장",
    "tokenClear": "지우기",
    "tokenHelp": "토큰 받기",
    "tokenChecking": "토큰 확인 중…",
    "tokenError": "이 토큰을 확인할 수 없습니다: {{message}}",
    "signedInAs": "{{name}}(으)로 로그인함",
    "readOnlyToken": "이 토큰은 읽기 전용입니다. 업로드하려면 쓰기 권한이 있는 토큰을 만드세요.",
    "createHeading": "데이터셋 저장소 만들기",
    "ownerLabel": "소유자",
    "datasetNameLabel": "데이터셋 이름",
    "datasetNamePlaceholder": "my-geodata",
    "privateLabel": "비공개",
    "create": "만들기",
    "creating": "만드는 중…",
    "createdRepo": "{{repoId}}을(를) 만들었습니다.",
    "createError": "이 데이터셋을 만들 수 없습니다: {{message}}",
    "uploadHeading": "파일 업로드",
    "targetLabel": "데이터셋",
    "targetPlaceholder": "owner/dataset",
    "folderLabel": "폴더 (선택 사항)",
    "folderPlaceholder": "data/",
    "chooseFiles": "파일 선택",
    "chooseLayer": "레이어 선택",
    "chooseLayerTitle": "지도 레이어의 피처를 GeoJSON 파일로 업로드",
    "layerPickerHeading": "레이어를 GeoJSON으로 업로드",
    "layerFeatures_other": "피처 {{count}}개",
    "layerOriginalFile": "원본 파일",
    "layerUnavailable": "{{name}}은(는) 더 이상 업로드할 수 없습니다.",
    "remoteRasterNote": "URL에서 불러온 래스터는 목록에 없습니다. 데이터가 브라우저에 없고, 이미 공유할 수 있는 링크가 있기 때문입니다. 로컬에서 연 파일만 업로드할 수 있습니다.",
    "noUploadableLayers": "지도에 업로드할 수 있는 피처를 가진 레이어가 없습니다. 먼저 벡터 레이어를 추가하세요.",
    "clearSelection": "지우기",
    "selectedFiles_other": "파일 {{count}}개 선택됨 ({{size}}).",
    "commitMessageLabel": "커밋 메시지 (선택 사항)",
    "commitMessagePlaceholder": "GeoLibre에서 업로드",
    "upload": "업로드",
    "uploadPreparing": "업로드 준비 중…",
    "uploadHashing": "{{name}} 해시 계산 중 ({{index}}/{{total}})…",
    "uploadSending": "{{name}} 업로드 중 ({{index}}/{{total}})…",
    "uploadCommitting": "커밋하는 중…",
    "uploadDone_other": "파일 {{count}}개를 업로드했습니다.",
    "uploadError": "업로드 실패: {{message}}",
    "fileTooLarge": "{{name}}은(는) 업로드 한도 {{limit}}보다 큽니다.",
    "selectionTooLarge": "선택한 파일의 합계가 {{size}}로, 한 번의 업로드 한도인 {{limit}}을 초과합니다. 더 작은 묶음으로 나누어 업로드하세요.",
    "openUploaded": "데이터셋 열기",
    "rgbHeading": "다중 밴드 영상",
    "rgbHint": "영상에 밴드가 3개 이상일 때 어떤 밴드를 빨강, 초록, 파랑으로 쓸지 정합니다. 번호는 1부터 시작하며, 이후에도 스타일 패널에서 각 레이어를 변경할 수 있습니다.",
    "bandR": "빨강",
    "bandG": "초록",
    "bandB": "파랑",
    "colormapHeading": "단일 밴드 영상",
    "colormapHint": "영상에 밴드가 하나일 때 적용되는 컬러맵입니다.",
    "colormapLabel": "컬러맵",
    "engineHeading": "렌더링 엔진",
    "engineHint": "어떤 렌더러가 영상을 디코딩할지 정합니다. 위 설정과 달리 레이어별이 아니며, 이미 추가된 것을 포함해 지도의 모든 래스터에 적용됩니다.",
    "engineLabel": "엔진",
    "engineAuto": "변경하지 않음",
    "engineGpu": "GPU (deck.gl)",
    "engineWasm": "WebAssembly 타일러",
    "engineTitiler": "TiTiler 서버",
    "resetDefaults": "기본값으로 재설정"
  },
  "basemaps": {
    "confirmStyleReplace_other": "\"{{name}}\"(으)로 전환하면 전체 지도 스타일이 교체되며 추가한 {{count}}개의 중첩 베이스맵이 제거됩니다. 계속하시겠습니까?"
  },
  "annotations": {
    "toolbar": "주석 도구",
    "layerName": "주석",
    "elementsPanelTitle": "요소",
    "tools": {
      "text": "텍스트",
      "arrow": "화살표",
      "rectangle": "사각형 강조",
      "ellipse": "타원 강조",
      "freehand": "자유형 강조",
      "pin": "핀 마커",
      "sticky_note": "메모지",
      "placed_image": "배치된 이미지"
    },
    "color": "주석 색상",
    "width": "선 두께",
    "widthOptions": {
      "thin": "얇게",
      "medium": "보통",
      "thick": "굵게"
    },
    "deleteLast": "마지막 주석 삭제",
    "clearAll": "모든 주석 지우기",
    "textPlaceholder": "레이블 입력 후 Enter로 배치",
    "pinTitlePrompt": "제목",
    "pinDescPrompt": "설명",
    "stickyNotePrompt": "메모 내용",
    "imageUrlPrompt": "이미지 URL",
    "cancel": "취소",
    "saveElement": "요소 저장",
    "atPoint": "지점에 고정",
    "pinnedToExtent": "범위에 고정"
  },
  "pythonConsole": {
    "title": "Python 콘솔",
    "resize": "Python 콘솔 크기 조절",
    "clear": "출력 지우기",
    "collapse": "Python 콘솔 접기",
    "expand": "Python 콘솔 펼치기",
    "close": "Python 콘솔 닫기",
    "run": "실행",
    "runHint": "실행 (Ctrl/Cmd+Enter)",
    "completions": "자동 완성",
    "placeholder": "여기에 Python 코드 입력 · Ctrl/Cmd+Enter로 실행 · Tab으로 자동 완성 · ↑/↓로 기록 탐색",
    "intro": "Python 콘솔이 준비되었습니다. `geolibre` 객체를 사용해 지도를 스크립팅하세요. 예: geolibre.get_center(). Tab으로 자동 완성, ↑/↓로 이전 명령 불러오기, `await geolibre.load_package(\"numpy\")`로 패키지를 추가할 수 있습니다.",
    "loadFailed": "Python 런타임을 불러오지 못했습니다.",
    "showEditor": "편집기 표시",
    "hideEditor": "편집기 숨기기",
    "resizeEditor": "편집기 크기 조절",
    "fileNew": "새 스크립트",
    "fileOpen": "스크립트 열기…",
    "fileSave": "스크립트 저장 (Ctrl/Cmd+S)",
    "fileSaveAs": "다른 이름으로 스크립트 저장…",
    "clearEditor": "편집기 지우기",
    "runScript": "스크립트 또는 선택 영역 실행 (Ctrl/Cmd+Enter)",
    "untitled": "untitled.py",
    "discardChanges": "현재 스크립트의 저장되지 않은 변경 사항을 취소하시겠습니까?",
    "editorPlaceholder": "여기에 여러 줄의 Python 스크립트를 작성하세요. Ctrl/Cmd+Enter로 콘솔에서 실행(또는 선택 영역 실행)하고, Tab으로 들여쓰기, Ctrl+Space로 자동 완성합니다."
  },
  "notebook": {
    "title": "노트북",
    "resize": "노트북 패널 크기 조절",
    "collapse": "노트북 접기",
    "expand": "노트북 펼치기",
    "close": "노트북 닫기",
    "copyServerUrl": "외부 클라이언트(VS Code…)용 서버 URL 복사",
    "serverUrlCopied": "서버 URL이 복사됨",
    "loading": "노트북을 불러오는 중…",
    "loadFailed": "노트북을 불러오지 못했습니다."
  },
  "dashboard": {
    "title": "대시보드",
    "resize": "대시보드 패널 크기 조절",
    "collapse": "대시보드 접기",
    "expand": "대시보드 펼치기",
    "close": "대시보드 닫기",
    "columns": "열",
    "addWidget": "위젯 추가",
    "widgetCount_other": "위젯 {{count}}개",
    "empty": "아직 위젯이 없습니다. 차트를 추가해 레이어를 요약하세요.",
    "emptyNoLayers": "호환되는 레이어가 없습니다. 위의 데이터 추가 메뉴를 사용해 프로젝트에 벡터 또는 DuckDB 쿼리 레이어를 추가한 후 여기로 돌아와 차트를 만드세요.",
    "noLayersHint": "먼저 벡터 또는 DuckDB 쿼리 레이어를 추가하세요.",
    "layerMissing": "레이어를 사용할 수 없음",
    "noData": "이 레이어에는 차트로 표시할 속성이 없습니다.",
    "selectorMatches_other": "피처 {{total}}개 중 {{count}}개",
    "selectorClear": "지우기",
    "moveBack": "뒤로 이동",
    "moveForward": "앞으로 이동",
    "editWidget": "위젯 편집",
    "removeWidget": "위젯 제거",
    "chartType": {
      "histogram": "히스토그램",
      "scatter": "산점도",
      "bar": "막대",
      "line": "선",
      "box": "상자 그림",
      "pie": "원형",
      "indicator": "지표",
      "selector": "선택기",
      "list": "목록"
    },
    "aggregate": {
      "count": "개수",
      "sum": "합계",
      "mean": "평균"
    },
    "chart": {
      "emptyNumeric": "표시할 숫자 값이 없습니다.",
      "emptyScatter": "두 필드 모두 숫자로 설정된 행이 없습니다.",
      "emptyBar": "그룹화할 행이 없습니다.",
      "emptyPie": "차트로 표시할 양수 값이 없습니다.",
      "pieCaptionCount_other": "행 개수 · 카테고리 {{count}}개",
      "pieCaptionSum_other": "합계 · 카테고리 {{count}}개"
    },
    "editor": {
      "addTitle": "위젯 추가",
      "editTitle": "위젯 편집",
      "description": "레이어, 차트 유형, 표시할 필드를 선택하세요.",
      "noLayers": "차트로 표시할 수 있는 레이어가 없습니다. 먼저 벡터 또는 DuckDB 쿼리 레이어를 추가하세요.",
      "noFields": "이 레이어에는 차트로 표시할 숫자 또는 범주 필드가 없습니다.",
      "layer": "레이어",
      "chartType": "차트 유형",
      "field": "필드",
      "bins": "구간",
      "xAxis": "X축",
      "yAxis": "Y축",
      "category": "카테고리",
      "aggregate": "집계",
      "value": "값",
      "prefix": "접두사",
      "suffix": "접미사",
      "multiSelect": "다중 선택 허용",
      "listColumns": "열",
      "sortBy": "정렬 기준",
      "sortDir": "방향",
      "ascending": "오름차순",
      "descending": "내림차순",
      "limit": "행 제한",
      "titleLabel": "제목",
      "titlePlaceholder": "제목 (선택 사항)",
      "color": "색상",
      "colorReset": "재설정",
      "colorDefault": "기본 차트 색상",
      "cancel": "취소",
      "save": "저장"
    },
    "indicatorAggregation": {
      "count": "개수",
      "sum": "합계",
      "mean": "평균",
      "min": "최솟값",
      "max": "최댓값",
      "median": "중앙값"
    }
  },
  "assistant": {
    "title": "AI 어시스턴트",
    "resize": "어시스턴트 패널 크기 조절",
    "clear": "대화 지우기",
    "close": "어시스턴트 닫기",
    "send": "보내기",
    "sendHint": "보내기 (Ctrl/Cmd+Enter)",
    "stop": "중지",
    "placeholder": "데이터에 대해 질문하세요. 예: \"인구가 5천만 명이 넘는 국가 표시\" · Ctrl/Cmd+Enter로 전송",
    "intro": "데이터와 대화하세요. Spatial SQL을 실행하고, 레이어를 추가하거나 제거하고, 스타일을 다시 지정하고, 지도를 이동할 수 있습니다. 모든 변경 사항은 실행 취소가 가능합니다. \"국가를 인구에 따라 붉은색 계열 그라데이션으로 표시해줘\"를 시도해보세요.",
    "setupTitle": "AI 어시스턴트 설정",
    "setupStatus": "어시스턴트가 작업을 수행하려면 AI 제공자가 필요합니다. 아래에서 제공자 하나를 선택해 자격 증명을 추가하면 저장 즉시 패널이 채팅 모드로 전환됩니다.",
    "setupProviders": "제공자 하나를 선택해 자격 증명 추가",
    "setupOpenSettings": "설정 → AI 제공자 열기",
    "thinking": "작업 중…",
    "toolError": "실패",
    "provider": "LLM 제공자",
    "profile": "AI 프로필",
    "deploymentProxy": "배포 프록시",
    "model": "모델",
    "codeApprovalTitle": "어시스턴트 코드를 실행하시겠습니까?",
    "codeApprovalBody": "어시스턴트가 앱에서 {{language}} 코드를 실행하려고 합니다. 먼저 검토하세요 — 지도를 변경하고 앱 데이터에 접근할 수 있습니다.",
    "codeApprovalAlways": "이 세션 동안 어시스턴트 코드 허용",
    "codeApprovalRun": "실행",
    "codeApprovalDecline": "취소"
  },
  "storymap": {
    "title": "스토리 맵",
    "description": "지도 챕터로 스크롤 기반 스토리를 만듭니다. 각 챕터는 카메라 시점과 텍스트를 담습니다.",
    "chapters": "챕터 ({{count}})",
    "addChapter": "챕터 추가",
    "empty": "아직 챕터가 없습니다. 지도를 탐색한 후 챕터를 추가해 현재 화면을 저장하세요.",
    "defaultChapterTitle": "챕터 {{index}}",
    "untitledChapter": "제목 없는 챕터",
    "present": "프레젠테이션",
    "exportHtml": "HTML 내보내기",
    "exitPresentation": "종료",
    "preview": "이 챕터로 이동",
    "captureView": "현재 화면으로 설정",
    "composeOnMap": "지도에서 구성",
    "resizeDialog": "대화 상자 크기 조절",
    "composeMode": {
      "title": "챕터 구성 중",
      "hint": "지도를 이동, 확대/축소, 기울인 후 이 챕터에 화면을 저장하세요.",
      "save": "화면 저장 후 스토리 맵으로 돌아가기",
      "cancel": "취소",
      "waiting": "지도 이동이 끝날 때까지 기다려주세요"
    },
    "moveUp": "위로 이동",
    "moveDown": "아래로 이동",
    "onEnter": "진입 시",
    "onExit": "이탈 시",
    "addEffect": "레이어 효과 추가",
    "field": {
      "title": "제목",
      "subtitle": "부제목",
      "byline": "작성자 표시줄",
      "footer": "바닥글",
      "theme": "패널 테마",
      "showMarkers": "마커 표시",
      "markerColor": "마커 색상",
      "inset": "인셋 미니맵",
      "hideChapterNav": "챕터 목록 숨기기",
      "startView": "시작 화면 사용",
      "closingSlide": "마무리 슬라이드 사용",
      "chapterTitle": "챕터 제목",
      "description": "설명 (HTML 사용 가능)",
      "image": "이미지 URL",
      "alignment": "패널 정렬",
      "animation": "지도 애니메이션",
      "hidden": "패널 숨기기",
      "rotate": "카메라 회전",
      "imagePlaceholder": "https://example.com/image.jpg"
    },
    "theme": {
      "dark": "다크",
      "light": "라이트"
    },
    "align": {
      "left": "왼쪽",
      "center": "가운데",
      "right": "오른쪽",
      "full": "전체"
    },
    "inset": {
      "topLeft": "왼쪽 위",
      "topRight": "오른쪽 위",
      "bottomLeft": "왼쪽 아래",
      "bottomRight": "오른쪽 아래"
    },
    "slide": {
      "blank": "빈 화면",
      "black": "검은 화면",
      "global": "전체 보기",
      "startAdjacent": "첫 챕터 미리보기",
      "endAdjacent": "마지막 챕터 유지"
    },
    "loadSample": "샘플 스토리 불러오기",
    "htmlFile": "HTML",
    "handout": {
      "button": "핸드아웃 (PDF)",
      "title": "PDF 핸드아웃 생성기",
      "description": "선택한 챕터 화면을 여러 페이지의 PDF 핸드아웃으로 내보냅니다.",
      "screens": "화면 ({{count}}/{{total}})",
      "selectAll": "모두 선택",
      "selectNone": "선택 해제",
      "paperSize": "용지 크기",
      "orientation": "방향",
      "portrait": "세로",
      "landscape": "가로",
      "documentTitle": "문서 제목",
      "documentTitlePlaceholder": "각 페이지 상단에 표시되는 제목",
      "subtitle": "부제목",
      "subtitlePlaceholder": "각 페이지에서 제목 아래에 표시되는 부제목",
      "byline": "작성자 표시줄",
      "bylinePlaceholder": "작성자 또는 크레딧",
      "footerText": "바닥글 텍스트",
      "footerPlaceholder": "각 페이지 하단에 표시되는 바닥글",
      "startSlide": "시작 슬라이드",
      "endSlide": "마무리 슬라이드",
      "generate": "PDF 생성",
      "stop": "중지",
      "cancelled": "내보내기가 취소되었습니다.",
      "progress": "{{total}}개 중 {{current}}번째 화면 캡처 중…",
      "pdfFile": "PDF 문서",
      "noMap": "지도가 아직 준비되지 않았습니다. 잠시 후 다시 시도하세요.",
      "noneSelected": "내보낼 화면을 하나 이상 선택하세요."
    },
    "opacityLabel": "불투명도",
    "toggleNav": "챕터 목록 토글",
    "chapterNav": "스토리 챕터",
    "durationLabel": "전환 시간 (ms)",
    "dragHint": "드래그하여 이동 (더블클릭으로 초기화)",
    "resizeHint": "드래그하여 크기 조절",
    "import": "가져오기",
    "importJson": "JSON 가져오기…",
    "importCsv": "CSV 가져오기…",
    "exportData": "내보내기",
    "exportJson": "JSON 내보내기",
    "exportCsv": "CSV 내보내기",
    "reset": "초기화",
    "resetTitle": "스토리를 지우고 새로 시작",
    "resetConfirm": "이 스토리 맵을 지우시겠습니까? 모든 챕터와 설정이 제거되어 새로 시작할 수 있습니다."
  },
  "network": {
    "title": "네트워크 분석",
    "description": "포인트 레이어로부터 등시선, 서비스 권역, 출발지-목적지 비용 행렬을 생성합니다.",
    "heading": "네트워크",
    "run": "실행",
    "outputPlaceholder": "결과가 여기에 표시됩니다.",
    "endpointNotice": "점 좌표가 라우팅 서버({{endpoint}})로 전송됩니다. 기본값은 공용 공유 Valhalla 서버(FOSSGIS)이며 요청 빈도가 제한됩니다. 사용량이 많다면 위의 \"라우팅 서버(Valhalla)\" 필드에 직접 서버 URL을 입력하세요."
  },
  "statistics": {
    "title": "공간 통계",
    "description": "공간 자기상관, 핫스팟 분석, 밀도 측정을 수행합니다. 모든 도구는 GeoJSON 레이어에서 클라이언트 측으로 실행됩니다.",
    "heading": "공간 통계",
    "run": "실행",
    "requiredFieldLegend": "필수 입력 항목을 표시합니다",
    "outputPlaceholder": "결과가 여기에 표시됩니다."
  },
  "processing": {
    "filePicker": {
      "filePath": "파일 경로",
      "chooseFile": "파일 선택",
      "chooseFilePlaceholder": "파일을 선택하세요",
      "chooseInputFile": "입력 파일 선택",
      "chooseOutputFile": "출력 파일 선택"
    },
    "searchTools": "도구 검색",
    "refreshCatalog": "카탈로그 새로고침",
    "increaseValue": "값 증가",
    "decreaseValue": "값 감소",
    "distance": {
      "unitLabel": "거리 단위",
      "units": {
        "degrees": "도",
        "meters": "미터",
        "kilometers": "킬로미터",
        "feet": "피트",
        "miles": "마일"
      },
      "north": "북위 {{latitude}}°",
      "south": "남위 {{latitude}}°",
      "equator": "적도",
      "geographicNote": "선택한 레이어가 지리 좌표계(WGS84)를 사용하므로 거리 단위는 도입니다. 거리 입력란 옆에서 단위를 선택하면 미터로 입력할 수 있으며, 정확한 결과가 필요하면 투영 좌표계로 재투영하세요.",
      "converted": "{{latitude}} 기준으로 환산하여 {{degrees}}°로 도구에 전달됩니다. 1도의 길이는 위도와 방향에 따라 달라지므로 근사값입니다.",
      "convertedEmpty": "값은 {{latitude}} 기준으로 도 단위로 환산됩니다. 1도의 길이는 위도와 방향에 따라 달라지므로 근사값입니다.",
      "notANumber": "숫자가 아니므로 환산하지 않고 입력한 그대로 도구에 전달됩니다. 12000이나 1.5 같은 일반 소수를 사용하세요."
    },
    "history": {
      "title": "처리 기록",
      "description": "이 프로젝트의 모든 처리 실행이 최신순으로 표시됩니다. 도구를 다시 실행하거나, 동일한 매개변수로 다시 열거나, 실행을 JSON 또는 Python으로 복사하세요.",
      "empty": "아직 기록된 처리 실행이 없습니다. 처리 메뉴에서 도구를 실행하면 여기에 표시됩니다.",
      "rerun": "다시 실행",
      "editRerun": "편집 후 다시 실행",
      "copyJson": "JSON 복사",
      "copyPython": "Python 복사",
      "copied": "복사됨",
      "clear": "기록 지우기",
      "count_other": "{{count}}개 실행 기록됨",
      "toolUnavailable": "도구 \"{{toolId}}\"을(를) 더 이상 사용할 수 없습니다"
    },
    "modelBuilder": {
      "moveStepUp": "단계 위로 이동",
      "moveStepDown": "단계 아래로 이동",
      "removeStep": "단계 제거",
      "title": "일괄 처리 및 모델",
      "description": "여러 레이어에 벡터 도구를 실행하거나, 도구를 연결해 프로젝트와 함께 저장되는 재사용 가능한 모델을 만듭니다.",
      "tabBatch": "일괄 처리",
      "tabModels": "모델",
      "outputPlaceholder": "여기에 출력이 표시됩니다.",
      "tool": "도구",
      "sharedParameters": "공통 매개변수",
      "noExtraParameters": "이 도구에는 추가 매개변수가 없습니다.",
      "inputLayers": "입력 레이어",
      "selectAll": "모두 선택",
      "clearSelection": "선택 해제",
      "noCompatibleLayers": "호환되는 GeoJSON 레이어가 없습니다.",
      "newModel": "새 모델",
      "noSavedModels": "저장된 모델이 아직 없습니다.",
      "untitledModel": "제목 없는 모델",
      "modelName": "모델 이름",
      "emptyPipelineHint": "단계를 추가해 파이프라인을 구성하세요. 첫 단계는 입력 레이어를 읽고, 이후 각 단계는 이전 단계의 출력을 받습니다.",
      "addStep": "단계 추가",
      "runModel": "모델 실행",
      "deleteModel": "삭제",
      "inputPreviousStep": "입력: ← 이전 단계의 출력",
      "unknownTool": "알 수 없는 도구 \"{{id}}\"",
      "noParameters": "매개변수가 없습니다."
    },
    "parameterField": {
      "selectLayer": "레이어 선택...",
      "selectField": "필드 선택...",
      "selectLayerFirst": "먼저 레이어를 선택하세요"
    },
    "whitebox": {
      "run": "실행",
      "running": "실행 중…",
      "runLocal": "로컬에서 실행(WASM)",
      "runLocalHint": "WebAssembly에서 로컬로 실행합니다(Python 사이드카 불필요)",
      "runningLocally": "WebAssembly로 로컬에서 실행 중입니다. 사이드카가 필요하지 않습니다.",
      "copyLink": "링크 복사",
      "copyLinkCopied": "복사됨!",
      "copyLinkHint": "현재 설정으로 이 도구를 여는 공유 링크를 복사합니다",
      "copyLinkFailed": "링크를 클립보드에 복사하지 못했습니다.",
      "catalogSnapshotError": "Whitebox 카탈로그 스냅샷을 불러올 수 없습니다.",
      "localRunnerError": "로컬(WASM) 도구 실행기를 불러올 수 없습니다. 새로고침 후 다시 시도하거나, 사용 가능한 경우 사이드카를 이용하세요.",
      "output": {
        "geojson": "GeoJSON(지도에 추가)",
        "geoparquet": "GeoParquet(다운로드, CRS 유지)",
        "flatgeobuf": "FlatGeobuf(다운로드, CRS 유지)",
        "shapefile": "Shapefile(다운로드, CRS 유지)",
        "projectedHint": "대상 CRS로 다운로드 폴더에 저장됩니다. 지도는 EPSG:4326만 표시하므로 투영된 결과는 레이어로 추가되지 않습니다."
      },
      "filterBySource": "출처별 필터링",
      "allSources": "모든 출처",
      "geolibreTools": "GeoLibre 도구",
      "whiteboxTools": "Whitebox 도구",
      "toolbox": "Whitebox 도구 상자",
      "checkingRuntime": "런타임 확인 중.",
      "toolsAvailable_other": "{{count}}개 도구 사용 가능.",
      "runtimeUnavailable": "Whitebox 런타임을 사용할 수 없습니다.",
      "useMapExtent": "지도 범위 사용",
      "fromLayer": "레이어에서",
      "drawBbox": "지도에 그리기",
      "drawingBbox": "그리는 중…",
      "drawBboxHint": "지도에서 상자를 드래그하여 경계 상자를 설정하세요. Esc를 눌러 취소합니다.",
      "mapExtentPlaceholder": "minX,minY,maxX,maxY",
      "mapExtentUnavailable": "지도 화면을 아직 사용할 수 없습니다. 지도가 로드될 때까지 기다린 후 다시 시도하세요.",
      "mapExtentInvalid": "현재 지도 화면을 경계 상자로 사용할 수 없습니다: 180° 자오선을 넘거나 유효한 경도/위도 경계를 벗어납니다. 화면을 조정한 후 다시 시도하세요.",
      "extentLabel": "관심 영역",
      "extentNorth": "북",
      "extentSouth": "남",
      "extentWest": "서",
      "extentEast": "동",
      "extentHint": "경계를 하나씩 입력하는 대신 현재 지도 화면에서 범위를 가져오거나 지도 위에 끌어서 지정하세요. 좌표는 WGS84(EPSG:4326)로 입력됩니다.",
      "noToolSelected": "선택된 도구 없음",
      "optionDefault": "기본값",
      "optionPath": "경로",
      "selectedLayer": "선택한 레이어",
      "filePath": "파일 경로",
      "auto": "자동",
      "chooseOutputPath": "출력 경로 선택",
      "chooseInputPath": "입력 경로 선택",
      "categoryGeneral": "일반",
      "categoryAll": "전체({{total}})",
      "errorLoadSnapshot": "Whitebox 카탈로그 스냅샷을 불러오지 못했습니다.",
      "errorLoadLive": "실시간 카탈로그를 불러오지 못했습니다.",
      "errorConnect": "사이드카에 연결하지 못했습니다.",
      "errorPoll": "작업 상태를 조회하지 못했습니다.",
      "errorStartTool": "Whitebox 도구를 시작하지 못했습니다.",
      "errorStartSidecar": "GeoLibre 사이드카를 시작하지 못했습니다.",
      "errorStopSidecar": "GeoLibre 사이드카를 중지하지 못했습니다.",
      "noToolsFound": "도구를 찾을 수 없습니다.",
      "noParameters": "이 도구에는 매개변수가 없습니다.",
      "noOutput": "아직 출력이 없습니다.",
      "enabled": "사용",
      "requiredSuffix": " | 필수",
      "selectField": "필드 선택",
      "fieldName": "필드 이름",
      "crs": {
        "browse": "찾아보기",
        "codePlaceholder": "EPSG 코드",
        "searchLabel": "좌표 참조 시스템 검색",
        "searchPlaceholder": "이름 또는 EPSG 코드로 검색",
        "geographic": "지리 좌표계",
        "projected": "투영 좌표계",
        "noResults": "일치하는 좌표계가 없습니다. 그래도 임의의 EPSG 코드를 직접 입력할 수 있습니다."
      },
      "vectorUnitsNote": "벡터 레이어는 WGS84로 읽으므로 거리, 간격, 허용 오차 값의 단위는 미터가 아니라 도입니다. 1°는 약 111km, 0.001°는 약 111m입니다."
    },
    "sidecar": {
      "unavailableTitle": "처리 서버를 사용할 수 없습니다.",
      "showHelp": "의미와 해결 방법 보기",
      "hideHelp": "세부정보 숨기기",
      "intro": "처리 서버는 앱과 별도로 백그라운드에서 더 무거운 Python 기반 도구를 실행하는 선택적 로컬 도우미({{sidecarUrl}})입니다. 대부분의 Whitebox 도구는 이것이 필요하지 않으며, 브라우저에서 WebAssembly로 전부 실행할 수 있습니다.",
      "wasmTipTitle": "서버 없이 실행하기",
      "wasmTip": "\"로컬에서 실행(WASM)\"을 활성화하면 브라우저에서 Whitebox 도구를 실행할 수 있습니다. 서버, 설치, 설정이 필요하지 않습니다.",
      "runLocallyButton": "로컬에서 실행(WASM)",
      "troubleshootingTitle": "그래도 서버를 사용하시겠습니까?",
      "stepStartServerDesktop": "도구 목록 패널에서 \"서버 시작\"을 클릭하여 실행한 후, 몇 초간 기다려 서버가 온라인 상태가 되도록 하세요.",
      "stepStartServerBrowser": "서버는 GeoLibre 데스크톱 앱에서만 시작할 수 있습니다. 브라우저에서는 대신 \"로컬에서 실행(WASM)\"을 계속 활성화하세요.",
      "stepCheckPort": "방화벽, 백신, 또는 네트워크 정책이 로컬 포트 {{port}}를 차단하고 있지 않은지 확인하세요.",
      "stepRestart": "서버가 예기치 않게 중지된 경우, GeoLibre 데스크톱 앱을 재시작하고 이 대화상자를 다시 여세요."
    },
    "vectorTools": {
      "title": "벡터 도구",
      "description": "GeoJSON 레이어에 일반적인 벡터 지오메트리 연산을 실행합니다.",
      "engine": "엔진",
      "engineClient": "클라이언트(Turf.js)",
      "engineSidecar": "사이드카(GeoPandas)",
      "enginePyodide": "Python(Pyodide)",
      "checkingSidecar": "사이드카 사용 가능 여부를 확인하는 중...",
      "sidecarUnavailableClient": "GeoPandas 사이드카를 사용할 수 없습니다. vector 추가 구성으로 사이드카를 시작하거나 클라이언트 엔진으로 전환하세요.",
      "sidecarUnavailablePyodide": "GeoPandas 사이드카를 사용할 수 없습니다. vector 추가 구성으로 사이드카를 시작하거나 Python(Pyodide)으로 전환하세요.",
      "pyodideNote": "브라우저에서 GeoPandas를 실행합니다. 첫 실행 시 Python 런타임을 내려받습니다(한 번만, 인터넷 연결 필요).",
      "run": "실행",
      "outputPlaceholder": "여기에 출력이 표시됩니다.",
      "resolutionRange": "해상도(0-{{max}})"
    }
  },
  "segmentation": {
    "title": "AI 분할",
    "description": "SAM3(segment-geospatial)로 이미지를 벡터 피처로 변환합니다. GeoTIFF를 선택하고 분할할 대상을 설명하면 새 레이어로 폴리곤을 얻을 수 있습니다.",
    "startServer": "서버 시작",
    "downloadDesktop": "데스크톱 앱 다운로드",
    "imageLabel": "이미지(GeoTIFF)",
    "imagePlaceholder": "GeoTIFF를 선택하세요…",
    "chooseImage": "이미지 선택",
    "modeLabel": "모드",
    "modeText": "텍스트 프롬프트",
    "modeAutomatic": "자동(전체)",
    "promptLabel": "프롬프트",
    "promptPlaceholder": "예: 나무, 건물, 물",
    "confidenceLabel": "신뢰도 임계값",
    "segment": "분할",
    "status": {
      "checking": "AI 분할 서비스 확인 중…",
      "unavailableDesktop": "AI 분할 서비스가 아직 실행되고 있지 않습니다. segment-geospatial이 활성화된 GeoLibre 서버를 시작하여 사용하세요.",
      "unavailableWeb": "브라우저에서는 AI 분할을 사용할 수 없습니다. GeoLibre 데스크톱 앱을 사용하여 실행하세요."
    },
    "error": {
      "chooseImage": "분할할 이미지(GeoTIFF)를 선택하세요.",
      "enterPrompt": "텍스트 프롬프트를 입력하세요. 예: \"나무\" 또는 \"건물\".",
      "startServer": "GeoLibre 사이드카를 시작할 수 없습니다.",
      "failed": "분할에 실패했습니다."
    },
    "noObjects": "찾은 객체가 없습니다.",
    "added": "{{count}}개의 피처를 \"{{name}}\"(으)로 추가했습니다.",
    "layerName": "분할: {{prompt}}",
    "layerNameDefault": "분할",
    "sidecar": {
      "title": "AI 분할 서버를 시작할 수 없습니다.",
      "intro": "AI 분할은 segment-geospatial의 SAM3 모델을 호스팅하는 로컬 도우미 서버({{sidecarUrl}})에서 실행됩니다. 앱과 별도로 백그라운드에서 Python을 실행하며, 브라우저 빌드에는 포함되지 않습니다.",
      "troubleshootingTitle": "서버를 실행하는 방법",
      "stepInstall": "분할 모델을 사용할 수 있도록 segment-geospatial 백엔드가 활성화된 상태로 GeoLibre 서버가 설치되어 있는지 확인하세요.",
      "stepStartServerDesktop": "위의 \"서버 시작\"을 클릭하여 실행한 후, 모델이 온라인 상태가 될 때까지 몇 초간 기다리세요."
    }
  },
  "objectDetection": {
    "title": "객체 탐지",
    "description": "ONNX로 내보낸 YOLO 모델을 GeoTIFF에 대해 전적으로 브라우저에서 실행합니다. 탐지된 상자는 지오레퍼런싱되며 각 클래스가 개별 레이어로 추가됩니다.",
    "hint": "내장 COCO 모델(한 번 다운로드 후 캐시됨)을 사용하거나 직접 만든 YOLOv5/v8/v11 ONNX를 가져오세요. 탐지는 브라우저에서 로컬로 실행됩니다. 내장 모델은 일상적인 객체를 탐지합니다. 항공 영상의 경우 직접 상공 촬영으로 학습한 모델을 제공하세요.",
    "imageLabel": "이미지 (GeoTIFF)",
    "imagePlaceholder": "GeoTIFF 선택…",
    "chooseImage": "이미지 선택",
    "modelLabel": "모델",
    "modelSourceBuiltin": "내장 (다운로드)",
    "modelSourceLocal": "로컬 파일",
    "builtinModelLabel": "내장 모델",
    "modelFileLabel": "모델 파일 (ONNX)",
    "modelPlaceholder": ".onnx 모델 선택…",
    "chooseModel": "모델 선택",
    "downloadingModel": "모델 다운로드 중…",
    "classNamesLabel": "클래스 이름 (쉼표로 구분, 선택 사항)",
    "classNamesPlaceholder": "예: car, tree, building",
    "confidenceLabel": "신뢰도",
    "iouLabel": "IoU (NMS)",
    "inputSizeLabel": "입력 크기",
    "detect": "탐지",
    "noObjects": "탐지된 객체가 없습니다. 신뢰도 임계값을 낮춰 보세요.",
    "added": "{{classes}}개 클래스에 걸쳐 탐지 {{count}}개를 추가했습니다.",
    "layerName": "탐지: {{class}}",
    "error": {
      "chooseImage": "탐지를 실행할 이미지(GeoTIFF)를 선택하세요.",
      "photoLocation": "이 사진에는 사용할 수 있는 GPS 좌표가 없습니다. 지오태그가 있는 사진을 선택하세요.",
      "chooseModel": "ONNX(.onnx)로 내보낸 YOLO 모델을 선택하세요.",
      "downloadModel": "모델을 다운로드할 수 없습니다. 연결 상태를 확인하고 다시 시도하세요.",
      "failed": "탐지에 실패했습니다."
    }
  },
  "segmentEverything": {
    "title": "전체 세그먼트",
    "description": "SlimSAM을 GeoTIFF에 대해 자동으로 전적으로 브라우저에서 실행합니다. 탐지된 모든 객체가 지오레퍼런싱된 폴리곤이 되어 하나의 레이어로 추가됩니다.",
    "hint": "이미지 전체에 점 격자를 샘플링하여 SlimSAM(한 번 다운로드 후 캐시됨)으로 세그먼트화합니다. 클릭이나 레이블이 필요 없습니다 — 격자가 조밀할수록 더 많은 객체를 찾지만 시간이 더 걸립니다.",
    "imageLabel": "이미지 (GeoTIFF)",
    "imagePlaceholder": "GeoTIFF 선택…",
    "chooseImage": "이미지 선택",
    "gridLabel": "격자",
    "qualityLabel": "품질",
    "minSizeLabel": "최소 크기 %",
    "run": "세그먼트",
    "downloadingModel": "모델 다운로드 중…",
    "progress": "세그먼트화 중… {{done}}/{{total}}",
    "noObjects": "세그먼트화된 객체가 없습니다. 더 조밀한 격자나 더 낮은 품질 임계값을 시도하세요.",
    "added": "세그먼트 {{count}}개를 추가했습니다.",
    "layerName": "세그먼트",
    "error": {
      "chooseImage": "세그먼트화할 이미지(GeoTIFF)를 선택하세요.",
      "downloadModel": "모델을 다운로드할 수 없습니다. 연결 상태를 확인하고 다시 시도하세요.",
      "failed": "세그먼트화에 실패했습니다."
    }
  },
  "pluginPanel": {
    "expand": "패널 펼치기",
    "collapse": "패널 접기",
    "close": "패널 닫기",
    "resize": "패널 크기 조정",
    "moveLeft": "패널을 왼쪽으로 이동",
    "moveRight": "패널을 오른쪽으로 이동",
    "mergeIntoStyleRail": "스타일 레일에 병합",
    "mergeIntoLayersRail": "레이어 레일에 병합",
    "detach": "이동 가능한 패널로 분리",
    "collapsedLabel": "{{title}}(접힘)"
  },
  "sharedRail": {
    "label": "사이드바",
    "layers": "레이어",
    "style": "스타일",
    "expand": "{{title}} 펼치기",
    "collapse": "{{title}} 접기"
  },
  "attributeTable": {
    "title": "속성 테이블",
    "resize": "속성 테이블 크기 조정",
    "editValues": "속성 값 편집",
    "editTitleFinishGeometry": "속성을 편집하려면 지오메트리 편집을 완료하세요",
    "editTitleReadOnly": "벡터 레이어 추가로 생성된 레이어는 편집할 수 없습니다",
    "editTitleUseSaveCancel": "저장 또는 취소를 사용하여 편집을 완료하세요",
    "exitEditMode": "편집 모드 종료",
    "editTitleDuckdb": "표시된 DuckDB 쿼리 속성을 메모리에서 편집합니다",
    "saveEdits": "속성 편집 저장",
    "saveTitleInvalid": "저장하기 전에 잘못된 JSON을 수정하세요",
    "saveTitleDuckdb": "메모리 내 DuckDB 속성 편집 저장",
    "addFieldTitle": "새 필드 추가",
    "addField": "필드 추가",
    "fieldCalculatorTitle": "표현식으로 필드 값 계산",
    "fieldCalculator": "필드 계산기",
    "manageFieldsTitle": "필드 표시 또는 숨기기",
    "manageFields": "필드 관리",
    "columnExplorerTitle": "모든 필드를 한눈에 살펴보기",
    "columnExplorerTitleDisabled": "열 탐색기는 벡터 또는 DuckDB 쿼리 레이어가 필요합니다",
    "columnExplorer": "열 탐색기",
    "statisticsTitle": "필드 통계 요약",
    "statisticsTitleDisabled": "통계는 벡터 또는 DuckDB 쿼리 레이어가 필요합니다",
    "statistics": "필드 통계",
    "chartsTitle": "숫자 필드 차트로 표시",
    "chartsTitleDisabled": "차트는 벡터 또는 DuckDB 쿼리 레이어가 필요합니다",
    "charts": "차트",
    "dashboardTitle": "대시보드를 열어 차트 위젯 만들기",
    "dashboard": "대시보드",
    "exportSelectedLayer": "선택한 레이어 내보내기",
    "exportTitleDisabled": "내보내기는 GeoJSON 기반 레이어가 필요합니다",
    "cancelEdits": "속성 편집 취소",
    "searchPlaceholder": "속성 검색...",
    "searchAria": "속성 검색",
    "clearSelectedFeature": "선택한 피처 지우기",
    "statusFeatures_other": "피처 {{count}}개",
    "statusShown_other": "{{count}}개 표시",
    "statusSelected_other": "{{count}}개 선택",
    "featureViewAria": "피처 보기",
    "showAllFeatures": "모든 피처 표시",
    "showSelectedFeatures": "선택 항목 표시 ({{count}})",
    "expand": "속성 테이블 펼치기",
    "collapse": "속성 테이블 접기",
    "close": "속성 테이블 닫기",
    "newFieldPlaceholder": "예: category",
    "defaultValuePlaceholder": "비워두면 빈 값으로 설정됩니다",
    "newFieldNamePlaceholder": "새 필드 이름",
    "showFields": "필드 표시",
    "noFields": "필드 없음",
    "showAllFields": "모든 필드 표시",
    "buttons": {
      "edit": "편집",
      "calculate": "계산",
      "fields": "필드",
      "explore": "탐색",
      "statistics": "통계",
      "export": "내보내기"
    },
    "chart": {
      "field": "필드",
      "xAxis": "X축",
      "yAxis": "Y축",
      "category": "카테고리",
      "value": "값",
      "title": "차트",
      "description": "\"{{layer}}\"의 필드를 시각화합니다.",
      "noChartableFields": "이 레이어에는 차트로 만들 숫자 또는 범주형 필드가 없습니다.",
      "chartType": "차트 종류",
      "typeHistogram": "히스토그램",
      "typeScatter": "산점도",
      "typeBar": "막대",
      "typeLine": "선",
      "typeBox": "상자 그림",
      "typePie": "원",
      "bins": "구간 수",
      "aggregate": "집계",
      "aggCount": "개수",
      "aggSum": "합계",
      "aggAverage": "평균",
      "download": "다운로드",
      "downloadPng": "PNG 이미지",
      "downloadSvg": "SVG 벡터",
      "exportError": "차트를 내보내지 못했습니다."
    },
    "selectedLayerName": "- {{name}}",
    "noLayerSelected": "- 속성이 있는 레이어 선택",
    "zoomToSelection": "선택 항목으로 확대",
    "loadingAttributes": "레이어 속성을 불러오는 중…",
    "requiresVectorLayer": "속성 테이블에는 벡터 또는 DuckDB 쿼리 레이어가 필요합니다.",
    "invalidJson": "잘못된 JSON",
    "editCellAria": "피처 {{featureId}}의 {{col}} 편집",
    "resizeColumn": "{{name}} 열 크기 조정",
    "renameFieldAria": "필드 {{name}} 이름 변경",
    "manageFieldTitle": "필드 \"{{name}}\" 관리",
    "manageFieldAria": "필드 {{name}} 관리",
    "renameField": "필드 이름 변경",
    "hideField": "필드 숨기기",
    "excludeField": "내보낼 때 필드 제외",
    "includeField": "내보낼 때 필드 포함",
    "moveLeft": "왼쪽으로 이동",
    "moveRight": "오른쪽으로 이동",
    "deleteField": "필드 삭제",
    "joinedColumnTitle": "조인 테이블에서 파생된 조인 열입니다. 대신 조인 테이블이나 조인 정의를 편집하세요.",
    "virtualColumnTitle": "표현식으로 계산되는 가상 필드입니다. 대신 레이어의 스타일 패널에서 정의를 편집하세요.",
    "deleteFieldConfirm": "이 작업은 \"{{layer}}\"의 모든 피처에서 필드 \"{{field}}\"를 영구적으로 제거합니다. 이를 참조하는 스타일이나 라벨은 지워집니다. 이 작업은 되돌릴 수 없습니다.",
    "addFieldDescription": "\"{{layer}}\"의 모든 피처에 새 필드를 추가합니다.",
    "fieldName": "필드 이름",
    "fieldExists": "\"{{name}}\"(이)라는 필드가 이미 있습니다.",
    "fieldType": "유형",
    "typeText": "텍스트",
    "typeNumber": "숫자",
    "typeBoolean": "부울",
    "defaultValue": "기본값",
    "noDefault": "(기본값 없음)",
    "noFeaturesForField": "이 레이어에는 필드를 추가할 피처가 없습니다.",
    "calcDescription": "JavaScript 표현식으로 값을 계산하여 \"{{layer}}\"의 필드에 씁니다.",
    "targetField": "대상 필드",
    "updateField": "필드 업데이트",
    "createField": "필드 생성",
    "outputType": "출력 유형",
    "outputAuto": "자동(계산된 유형 유지)",
    "expression": "표현식",
    "calcExpressionPlaceholder": "예: pop / area, upper(name), pop > 100 ? \"big\" : \"small\"",
    "fieldsLabel": "필드:",
    "insertField": "{{name}} 삽입",
    "functionsLabel": "함수:",
    "insertFunction": "{{name}}() 삽입",
    "geomMeasureLabel": "지오메트리:",
    "geomMetric": {
      "length": "길이",
      "perimeter": "둘레",
      "area": "면적"
    },
    "geomInsert": "삽입",
    "sampleRowErrored": "샘플 행에서 오류가 발생했습니다(다른 행은 계산될 수 있음): {{message}}",
    "preview": "미리보기:",
    "onlySelectedFeature": "선택한 피처만 업데이트",
    "evaluationFailed": "평가에 실패했습니다.",
    "invalidExpression": "잘못된 표현식입니다.",
    "calcCouldNotApply": "이 레이어에 계산을 적용할 수 없습니다.",
    "calcAppliedWithErrors": "적용했지만 {{evaluated}}개 피처 중 {{errors}}개에서 오류가 발생하여 null로 기록되었습니다.",
    "exportFailed": "선택한 레이어를 내보낼 수 없습니다.",
    "saveTitleFormErrors": "저장하기 전에 속성 폼 위반을 수정하세요"
  },
  "styleManager": {
    "title": "스타일 관리자",
    "description": "레이어와 프로젝트 전반에서 재사용 가능한 스타일, 심볼, 레이블 사전 설정, 색상 램프를 저장, 탐색, 적용합니다.",
    "searchPlaceholder": "스타일 및 태그 검색…",
    "presetsSection": "내장 사전 설정",
    "librarySection": "내 라이브러리",
    "projectSection": "이 프로젝트",
    "empty": "일치하는 저장된 스타일이 없습니다. 레이어의 스타일을 저장하거나 라이브러리를 가져와 시작하세요.",
    "apply": "적용",
    "delete": "삭제",
    "saveCurrent": "현재 스타일 저장…",
    "nameLabel": "이름",
    "kindLabel": "저장할 항목",
    "kindStyle": "전체 스타일",
    "kindSymbol": "심볼만",
    "kindLabels": "레이블만",
    "kindRamp": "색상 램프만",
    "tagsLabel": "태그",
    "tagsPlaceholder": "boundary, basemap (쉼표로 구분)",
    "scopeLabel": "저장 위치",
    "scopeApp": "내 라이브러리 (모든 프로젝트)",
    "scopeProject": "이 프로젝트만",
    "saveButton": "스타일 저장",
    "cancel": "취소",
    "import": "가져오기…",
    "export": "내보내기…",
    "importFilterName": "스타일 라이브러리 / QML / SLD",
    "exportFilterName": "GeoLibre 스타일 라이브러리",
    "applied": "\"{{name}}\"을(를) {{layer}}에 적용했습니다.",
    "appliedRampHint": "\"{{name}}\"을(를) 적용했습니다. 램프를 보려면 레이어를 등급별 또는 범주별 스타일로 전환하세요.",
    "saved": "\"{{name}}\"을(를) 라이브러리에 저장했습니다.",
    "deleted": "\"{{name}}\"을(를) 삭제했습니다.",
    "importedCount_other": "스타일 {{count}}개를 가져왔습니다.",
    "importedEntryName": "가져온 스타일",
    "importInvalid": "해당 파일은 스타일 라이브러리, QML 또는 SLD가 아닙니다.",
    "importNoMatch": "해당 스타일에서 심볼을 읽을 수 없습니다.",
    "exportEmpty": "내보낼 저장된 스타일이 없습니다.",
    "exportFailed": "스타일 라이브러리를 내보낼 수 없습니다.",
    "exportSuccess": "스타일 라이브러리를 내보냈습니다.",
    "noLayer": "스타일을 저장하거나 적용하려면 벡터 레이어를 선택하세요."
  },
  "style": {
    "panelLabel": "레이어 스타일",
    "panelLabelCollapsed": "레이어 스타일(접힘)",
    "heading": "스타일",
    "headingWithLayer": "스타일 - {{name}}",
    "resizePanel": "스타일 패널 크기 조정",
    "expand": "스타일 펼치기",
    "collapse": "스타일 접기",
    "openStyleManager": "저장된 스타일…",
    "addClass": "클래스 추가",
    "removeClass": "클래스 제거",
    "beforeIdSavedUnavailable": "저장됨(사용 불가)",
    "raster": {
      "greyscale": "그레이스케일",
      "greyscaleHint": "그레이스케일 배경지도를 전환합니다(채도를 최소로 낮춤)",
      "reset": "재설정",
      "resetHint": "조정값을 기본값으로 재설정합니다",
      "exactValueHint": "두 번 클릭하여 정확한 값을 입력하세요",
      "opacity": "불투명도",
      "brightnessMin": "밝기 최소",
      "brightnessMax": "밝기 최대",
      "saturation": "채도",
      "contrast": "대비",
      "hueRotate": "색조 회전",
      "footerDeck": "변경 사항은 래스터 레이어 불투명도에 즉시 적용됩니다.",
      "footerMaplibre": "변경 사항은 MapLibre 래스터 페인트 속성에 즉시 적용됩니다.",
      "valueAria": "{{label}} 값",
      "editValueAria": "{{label}} 값 편집"
    },
    "visibility": {
      "minZoom": "최소 줌",
      "maxZoom": "최대 줌",
      "minZoomTooltip": "이 레이어가 나타나는 줌 레벨입니다. 숫자가 클수록 더 확대된 상태입니다.",
      "maxZoomTooltip": "이 레이어가 사라지는 줌 레벨입니다. 숫자가 클수록 더 확대된 상태입니다."
    },
    "joins": {
      "heading": "조인",
      "empty": "키 필드를 일치시켜 다른 레이어나 테이블의 열을 추가합니다. 조인된 열은 테이블이 바뀌면 갱신되며 프로젝트와 함께 저장됩니다.",
      "addJoin": "조인 추가",
      "joinLayer": "조인 레이어",
      "selectLayer": "레이어 선택…",
      "joinField": "조인 필드",
      "targetField": "대상 필드",
      "selectField": "필드 선택…",
      "fields": "조인할 필드",
      "fieldCount_other": "필드 {{count}}개",
      "prefix": "필드 이름 접두사",
      "prefixPlaceholder": "예: census_",
      "add": "추가",
      "cancel": "취소",
      "remove": "조인 제거",
      "enabledTitle": "이 조인 적용",
      "missingLayer": "조인 레이어를 찾을 수 없음",
      "noCandidates": "조인할 속성 테이블이 있는 다른 레이어가 없습니다",
      "statsMatched": "{{total}}개 중 {{matched}}개 피처 일치",
      "statsUnmatchedJoin_other": "일치하지 않은 테이블 행 {{count}}개"
    },
    "virtualFields": {
      "heading": "가상 필드",
      "empty": "데이터가 바뀔 때마다 다시 계산되는 표현식 기반 열을 추가합니다. 가상 필드는 프로젝트와 함께 저장되며 속성 테이블, 스타일, 라벨, 선택 등 필드가 쓰이는 모든 곳에 표시됩니다.",
      "addField": "가상 필드 추가",
      "name": "필드 이름",
      "namePlaceholder": "예: density",
      "nameTaken": "이 이름의 열이 이미 있습니다",
      "nameConflict": "적용되지 않음: 이름이 기존 열과 충돌합니다",
      "expression": "표현식",
      "expressionPlaceholder": "[\"/\", [\"get\", \"pop\"], [\"get\", \"area_km2\"]]",
      "expressionTarget": "가상 필드 표현식",
      "openBuilder": "빌더 열기",
      "invalidExpression": "잘못된 표현식",
      "add": "추가",
      "save": "저장",
      "cancel": "취소",
      "edit": "가상 필드 편집",
      "remove": "가상 필드 제거",
      "enabledTitle": "이 가상 필드 적용",
      "evaluationErrors_other": "피처 {{count}}개의 평가에 실패했습니다(null 셀)"
    },
    "labels": {
      "heading": "라벨",
      "show": "라벨 표시",
      "field": "라벨 필드",
      "noAttributes": "속성을 찾을 수 없습니다",
      "selectField": "필드 선택…",
      "placement": "배치",
      "placementPoint": "중심점 / 점",
      "placementLine": "선 / 폴리곤 가장자리를 따라",
      "textSize": "텍스트 크기",
      "haloWidth": "외곽선 너비",
      "textColor": "텍스트 색상",
      "haloColor": "외곽선 색상",
      "minZoom": "최소 줌",
      "maxZoom": "최대 줌",
      "allowOverlap": "라벨 겹침 허용",
      "anchor": "앵커",
      "anchorCenter": "가운데",
      "anchorLeft": "왼쪽",
      "anchorRight": "오른쪽",
      "anchorTop": "위",
      "anchorBottom": "아래",
      "anchorTopLeft": "왼쪽 위",
      "anchorTopRight": "오른쪽 위",
      "anchorBottomLeft": "왼쪽 아래",
      "anchorBottomRight": "오른쪽 아래",
      "offsetX": "오프셋 X(em)",
      "offsetY": "오프셋 Y(em)",
      "rotation": "회전(°)",
      "maxWidth": "줄바꿈 너비(em)",
      "transform": "문자 대소문자",
      "transformNone": "입력한 그대로",
      "transformUppercase": "대문자",
      "transformLowercase": "소문자",
      "dedupe": "중복 라벨",
      "dedupeOff": "모든 피처에 라벨 표시",
      "dedupeUnique": "위치당 라벨 하나",
      "dedupeConcatenate": "같은 위치의 값 병합",
      "dedupeHint": "같은 좌표에 겹쳐진 점을 하나로 합칩니다. 로컬 점 레이어에서는 라벨 필드를 사용합니다.",
      "expression": "표현식(선택 사항)",
      "expressionHint": "MapLibre 표현식(JSON)입니다. 설정 시 필드보다 우선합니다.",
      "expressionInvalid": "유효한 MapLibre 표현식이 아닙니다(JSON 배열이어야 함). 이 값은 무시됩니다.",
      "dataDefined": {
        "heading": "데이터 정의 재정의",
        "size": "크기",
        "color": "색상",
        "opacity": "불투명도",
        "visibility": "표시 여부",
        "priority": "우선순위",
        "sizeTarget": "라벨 크기 표현식",
        "colorTarget": "라벨 색상 표현식",
        "opacityTarget": "라벨 불투명도 표현식",
        "visibilityTarget": "라벨 표시 표현식",
        "priorityTarget": "라벨 우선순위 표현식",
        "notSet": "설정 안 됨",
        "clear": "표현식 지우기",
        "hint": "피처별 MapLibre 표현식입니다. 크기·불투명도·우선순위는 숫자(우선순위 값이 낮은 라벨이 먼저 배치됨), 색상은 색상, 표시 여부는 참/거짓을 반환합니다. 중복 라벨 병합이 활성화된 동안에는 무시됩니다. 불투명도 표현식은 라벨에 대해 레이어 불투명도를 대체합니다."
      }
    },
    "elevation3d": {
      "mode": "3D(Z 값)",
      "fillColor": "채우기 색상",
      "outlineColor": "윤곽선 색상",
      "strokeWidth": "선 너비",
      "strokeWidthMeters": "선 너비(미터)",
      "fillOpacity": "채우기 불투명도",
      "circleRadius": "원 반지름",
      "verticalScale": "수직 과장",
      "verticalScaleTooltip": "각 좌표의 Z 값에 곱해집니다. 1이면 실제 고도로 렌더링되며, 값이 클수록 지형 기복이 강조됩니다.",
      "offset": "고도 오프셋(m)",
      "offsetTooltip": "모든 피처에 미터 단위로 일정하게 더해지는 높이입니다. 예를 들어 궤적을 3D 건물이나 지형 위로 띄우는 데 사용합니다.",
      "footer": "deck.gl을 통해 좌표의 Z 값으로 3D 렌더링됩니다. 변경 사항은 즉시 적용됩니다. 이 모드에서는 식별 및 피처 강조 표시를 사용할 수 없습니다."
    },
    "diagrams": {
      "heading": "다이어그램",
      "chartType": "차트 유형",
      "typeNone": "없음",
      "typePie": "원형 차트",
      "typeDonut": "도넛 차트",
      "typeBar": "막대 차트",
      "typeStackedBar": "누적 막대 차트",
      "fields": "속성",
      "addField": "속성 추가",
      "removeField": "속성 제거",
      "noFields": "각 피처에 표시할 숫자 속성을 추가하세요.",
      "fieldAttribute": "다이어그램 속성 {{index}}",
      "sizeMode": "크기",
      "sizeFixed": "고정 크기",
      "sizeSum": "속성 합계로 크기 조정",
      "sizeAttribute": "속성으로 크기 조정",
      "sizeField": "크기 속성",
      "size": "크기 (px)",
      "minZoom": "최소 줌",
      "declutter": "겹치는 다이어그램 숨기기",
      "truncated": "다이어그램은 {{count}}개의 피처에만 그려지며 나머지는 표시되지 않습니다.",
      "atlasFull": "이 크기에서는 {{count}}개의 다이어그램이 들어가지 않아 숨겨집니다. 다이어그램 크기를 줄이세요."
    },
    "symbology": {
      "colormap": "컬러맵",
      "modeSingle": "단일 심볼",
      "modeGraduated": "단계 구분",
      "modeCategorized": "범주 구분",
      "modeRuleBased": "규칙 기반",
      "modeExpression": "고급 표현식",
      "rules": "규칙",
      "addRule": "규칙 추가",
      "removeRule": "규칙 제거",
      "noRulesPrefix": "아직 규칙이 없습니다. 규칙을 추가하고 MapLibre 필터 표현식을 지정하세요(예: ",
      "noRulesSuffix": "). 가장 먼저 일치하는 규칙이 적용되며, Else 규칙은 나머지 모든 항목에 색상을 지정합니다.",
      "ruleColor": "규칙 {{index}} 색상",
      "ruleColorPick": "화면에서 규칙 {{index}} 색상 선택",
      "ruleLabel": "규칙 {{index}} 라벨",
      "ruleFilter": "규칙 {{index}} 필터",
      "ruleEnabled": "규칙 {{index}} 활성화",
      "ruleAddChild": "하위 규칙 추가",
      "ruleOptions": "심볼 및 가시성",
      "ruleMinZoom": "최소 줌",
      "ruleMaxZoom": "최대 줌",
      "ruleZoomInvalid": "최소 줌은 최대 줌보다 작아야 합니다. 범위가 비어 있는 동안 이 규칙은 적용되지 않습니다.",
      "ruleStrokeWidth": "선 굵기",
      "ruleFillOpacity": "채우기 불투명도",
      "ruleCircleSize": "원 반지름",
      "ruleOutlineColor": "윤곽선 색상 재정의",
      "ruleOutlineColorPick": "화면에서 규칙 {{index}} 윤곽선 색상 선택",
      "ruleInherit": "상속",
      "ruleGroupNote": "이 규칙에는 하위 규칙이 있습니다. 하위 규칙이 일치하는 범위를 좁히기만 하며 자체적으로는 그리지 않습니다.",
      "labelPlaceholder": "라벨(선택 사항)",
      "filterInvalid": "잘못된 필터입니다. JSON 배열 표현식이어야 합니다. 수정할 때까지 이 규칙은 건너뜁니다.",
      "elseRuleColor": "Else 규칙 색상",
      "elseRuleColorPick": "화면에서 Else 규칙 색상 선택",
      "elseRuleEnabled": "기타 규칙 활성화(끄면 어떤 규칙과도 일치하지 않는 피처가 숨겨집니다)",
      "elseAllOtherFeatures": "Else(나머지 모든 피처)",
      "applyHint": "적용을 클릭하여 규칙 기반 렌더링을 활성화하세요.",
      "rulesApplyLive": "규칙 변경 사항은 지도에 즉시 적용됩니다. 별도의 적용 단계가 필요하지 않습니다.",
      "proportionalSize": "비례 크기",
      "sizeByValue": "값에 따른 크기",
      "sizeField": "크기 필드",
      "chooseField": "필드 선택…",
      "minValue": "최솟값",
      "maxValue": "최댓값",
      "minSize": "최소 크기(px)",
      "maxSize": "최대 크기(px)",
      "sizeLegend": "크기 범례",
      "fillPattern": "채우기 패턴",
      "patternColor": "패턴 색상",
      "patternSvg": "패턴 SVG",
      "svgPlaceholder": "<svg xmlns='http://www.w3.org/2000/svg' ...>…</svg> 또는 data/https URL",
      "marker": "마커",
      "useMarkerIcon": "마커 아이콘 사용",
      "markerShape": "마커 모양",
      "markerColor": "마커 색상",
      "markerSize": "마커 크기(px)",
      "markerSvg": "마커 SVG",
      "markerShapes": {
        "circle": "원",
        "square": "사각형",
        "triangle": "삼각형",
        "diamond": "다이아몬드",
        "star": "별",
        "cross": "십자",
        "pin": "핀",
        "custom": "사용자 지정 SVG"
      },
      "fillPatterns": {
        "none": "없음(단색 채우기)",
        "hatch": "해칭",
        "crossHatch": "교차 해칭",
        "horizontal": "가로선",
        "vertical": "세로선",
        "dots": "점",
        "svg": "사용자 지정 SVG"
      },
      "transparent": "투명",
      "transparentSwatch": "색상 없음(투명). 클릭하여 색상을 선택하세요.",
      "styleType": "스타일 유형",
      "attribute": "속성",
      "classes": "클래스 수",
      "allClasses": "전체({{total}})",
      "scheme": "분류 방식",
      "stops": "구분점",
      "categories": "카테고리",
      "classColor": "클래스 {{index}} 색상",
      "classColorPick": "화면에서 클래스 {{index}} 색상 선택",
      "classValue": "클래스 {{index}} 값",
      "colorExpression": "색상 표현식",
      "applyStyleType": "스타일 유형 적용",
      "pointRenderer": "점 렌더러",
      "pointRendererSingle": "단일 심볼",
      "pointRendererHeatmap": "히트맵",
      "pointRendererClustered": "클러스터링",
      "heatmapRadius": "히트맵 반경",
      "heatmapIntensity": "히트맵 강도",
      "clusterRadius": "클러스터 반경(px)",
      "clusterMaxZoom": "클러스터 최대 줌",
      "strokeWidthUnit": "선 너비 단위",
      "strokeWidthUnitPixels": "픽셀(화면에서 일정)",
      "strokeWidthUnitMeters": "미터(지도에 따라 확대·축소)",
      "textHaloColor": "텍스트 외곽선 색상",
      "textHaloWidth": "텍스트 외곽선 너비",
      "schemeEqualInterval": "등간격",
      "schemeQuantile": "분위수",
      "schemeNaturalBreaks": "자연 분류",
      "schemeTopValues": "최빈값",
      "schemeAlphabetical": "알파벳순",
      "schemeFirstValues": "처음 값",
      "errorChooseAttribute": "이 스타일 모드에 사용할 속성을 선택하세요.",
      "errorAttributesUnavailable": "이 레이어의 속성 값을 불러올 수 없습니다.",
      "errorProportionalSizeField": "크기 필드는 숫자형이어야 하며 서로 다른 값이 둘 이상이어야 합니다.",
      "errorGraduatedStops": "단계 구분 스타일에는 숫자 구분점이 두 개 이상 필요합니다.",
      "errorCategorizedStops": "범주 구분 스타일에는 카테고리가 하나 이상 필요합니다.",
      "invertedFill": "반전 채우기",
      "invertedFillHint": "피처 바깥쪽 채우기"
    },
    "suggestions": {
      "title": "스타일 제안",
      "dismiss": "제안 닫기",
      "categorize": "{{field}} 기준으로 분류",
      "graduate": "{{field}} 기준으로 등급 구분",
      "heatmap": "히트맵"
    },
    "selectLayerHint": "스타일을 편집할 레이어를 선택하세요.",
    "layerOrderDefault": "레이어 순서(기본값)",
    "increaseValue": "{{label}} 늘리기",
    "decreaseValue": "{{label}} 줄이기",
    "visualization": "시각화",
    "mode2d": "2D",
    "mode3dExtrusion": "3D 돌출",
    "noControls": "이 레이어 유형에서는 아직 스타일 컨트롤을 사용할 수 없습니다.",
    "selectedLayerType": "선택한 레이어 유형: {{type}}",
    "footerDeck": "변경 사항은 DuckDB deck.gl 레이어 스타일에 즉시 적용됩니다.",
    "footerMaplibre": "변경 사항은 MapLibre 페인트 속성에 즉시 적용됩니다.",
    "pluginPaintedFooter": "이 레이어는 해당 플러그인이 그리며, 플러그인이 자체 스타일 컨트롤을 제공합니다.",
    "extrusion": {
      "color": "돌출 색상",
      "opacity": "돌출 불투명도",
      "advanced": "고급 높이 표현식",
      "heightExpression": "높이 표현식",
      "heightProperty": "높이 속성",
      "heightScale": "높이 배율",
      "base": "기준 높이",
      "apply": "3D 돌출 적용",
      "footer": "3D 돌출 설정은 저장할 때 적용됩니다."
    },
    "expressionLabels": {
      "style": "스타일 표현식",
      "color": "색상 표현식",
      "height": "높이 표현식"
    },
    "expressionErrors": {
      "notArray": "{{label}}은(는) JSON 배열 표현식이어야 합니다.",
      "notOperator": "{{label}}은(는) 연산자로 시작해야 합니다. 예: [\"==\", [\"get\", \"field\"], value].",
      "notJson": "{{label}}은(는) 유효한 JSON이 아닙니다: {{message}}"
    },
    "expressionBuilder": {
      "title": "표현식 빌더",
      "openBuilder": "표현식 빌더 열기",
      "openBuilderForRule": "규칙 {{index}}의 표현식 빌더 열기",
      "expressionLabel": "표현식",
      "clear": "표현식 지우기",
      "valid": "유효한 표현식입니다.",
      "apply": "적용",
      "preview": "미리보기",
      "previewEmpty": "실시간 미리보기를 보려면 표현식을 입력하세요.",
      "previewNoFeatures": "미리볼 피처가 없습니다.",
      "sampleFeature": "피처 {{index}} / {{count}}",
      "previousFeature": "이전 피처",
      "nextFeature": "다음 피처",
      "filterMatches": "이 피처와 일치함",
      "filterNoMatch": "이 피처와 일치하지 않음",
      "fields": "필드",
      "noFields": "이 레이어에는 속성 필드가 없습니다.",
      "insertField": "필드 {{name}} 삽입",
      "functionsHeading": "함수",
      "functionSearch": "함수 검색",
      "noFunctionMatches": "검색과 일치하는 함수가 없습니다.",
      "variables": "변수",
      "variablesHint": "변수는 표현식이 적용될 때 현재 값으로 대체됩니다.",
      "categories": {
        "data": "데이터 및 조회",
        "decision": "조건 및 비교",
        "math": "수학",
        "string": "문자열",
        "conversion": "유형 변환",
        "camera": "확대/축소 및 색상"
      },
      "functions": {
        "get": "지정된 피처 속성의 값을 반환합니다.",
        "has": "피처에 지정된 속성이 있으면 참입니다.",
        "id": "피처의 id를 반환합니다.",
        "properties": "피처의 전체 속성 객체를 반환합니다.",
        "geometryType": "피처의 지오메트리 유형(Point, LineString, Polygon 등)을 반환합니다.",
        "at": "지정된 인덱스의 배열 요소를 반환합니다.",
        "in": "첫 번째 값이 두 번째 값(문자열 또는 배열)에 포함되면 참입니다.",
        "indexOf": "두 번째 값에서 첫 번째 값의 위치를 반환하거나, 없으면 -1을 반환합니다.",
        "length": "문자열 또는 배열의 길이를 반환합니다.",
        "literal": "리터럴 배열 또는 객체를 표현식에 포함합니다.",
        "typeofOp": "값의 유형 이름을 반환합니다.",
        "caseOp": "조건이 참인 첫 번째 출력을 반환하고, 없으면 대체 값을 반환합니다.",
        "match": "입력을 나열된 값과 비교하여 일치하는 출력을 반환합니다.",
        "coalesce": "null이 아닌 첫 번째 값을 반환합니다.",
        "eq": "두 값이 같으면 참입니다.",
        "neq": "두 값이 다르면 참입니다.",
        "gt": "첫 번째 값이 두 번째 값보다 크면 참입니다.",
        "gte": "첫 번째 값이 두 번째 값보다 크거나 같으면 참입니다.",
        "lt": "첫 번째 값이 두 번째 값보다 작으면 참입니다.",
        "lte": "첫 번째 값이 두 번째 값보다 작거나 같으면 참입니다.",
        "all": "모든 조건이 참이면 참입니다.",
        "any": "하나 이상의 조건이 참이면 참입니다.",
        "not": "부울 값을 부정합니다.",
        "add": "숫자를 더합니다.",
        "subtract": "첫 번째 숫자에서 두 번째 숫자를 뺍니다.",
        "multiply": "숫자를 곱합니다.",
        "divide": "첫 번째 숫자를 두 번째 숫자로 나눕니다.",
        "modulo": "나눗셈의 나머지를 반환합니다.",
        "power": "첫 번째 숫자를 두 번째 숫자의 거듭제곱으로 올립니다.",
        "abs": "절댓값을 반환합니다.",
        "ceil": "가장 가까운 정수로 올림합니다.",
        "floor": "가장 가까운 정수로 내림합니다.",
        "round": "가장 가까운 정수로 반올림합니다.",
        "sqrt": "제곱근을 반환합니다.",
        "ln": "자연로그를 반환합니다.",
        "log10": "밑이 10인 로그를 반환합니다.",
        "min": "값 중 가장 작은 값을 반환합니다.",
        "max": "값 중 가장 큰 값을 반환합니다.",
        "concat": "값을 하나의 문자열로 결합합니다.",
        "upcase": "문자열을 대문자로 변환합니다.",
        "downcase": "문자열을 소문자로 변환합니다.",
        "slice": "문자열 또는 배열의 일부를 반환합니다.",
        "toNumber": "값을 숫자로 변환합니다.",
        "toString": "값을 문자열로 변환합니다.",
        "toBoolean": "값을 참 또는 거짓으로 변환합니다.",
        "toColor": "값을 색상으로 변환합니다.",
        "zoom": "현재 지도 확대/축소 레벨(지도가 실시간으로 평가).",
        "interpolate": "입력이 변할 때 출력 사이를 부드럽게 블렌딩합니다.",
        "step": "지정된 입력 임계값에서 단계별 출력을 반환합니다.",
        "rgb": "빨강, 초록, 파랑(0-255)으로 색상을 만듭니다.",
        "rgba": "빨강, 초록, 파랑, 알파로 색상을 만듭니다."
      }
    },
    "decorations": {
      "heading": "선 장식",
      "typeNone": "없음",
      "typeArrow": "화살표",
      "typeTriangle": "삼각형",
      "typeCircle": "원",
      "typeSquare": "사각형",
      "color": "장식 색상",
      "size": "기호 크기 (px)",
      "spacing": "간격 (px)"
    },
    "generator": {
      "heading": "지오메트리 생성기",
      "type": "파생 지오메트리",
      "typeNone": "없음",
      "typeCentroid": "중심점",
      "typeBoundingBox": "경계 상자",
      "typeConvexHull": "볼록 껍질",
      "typeBuffer": "버퍼",
      "bufferDistance": "버퍼 거리 (m)",
      "fillColor": "채우기 색상",
      "strokeColor": "윤곽선 색상",
      "strokeWidth": "윤곽선 너비 (px)",
      "opacity": "채우기 불투명도",
      "circleRadius": "점 반지름 (px)"
    },
    "attributeForm": {
      "heading": "속성 폼",
      "empty": "구성된 필드가 없습니다. 필드에 편집 위젯, 제약 조건 또는 표시 규칙을 지정하세요.",
      "configureField": "필드 구성",
      "field": "필드",
      "selectField": "필드 선택…",
      "widgetLabel": "편집 위젯",
      "widget": {
        "text": "텍스트",
        "number": "숫자",
        "range": "범위",
        "checkbox": "체크박스",
        "date": "날짜",
        "valueMap": "값 맵"
      },
      "alias": "별칭",
      "required": "필수",
      "requiredTag": "필수",
      "constraintTag": "제약",
      "visibilityTag": "표시",
      "valueMap": "값 맵 항목",
      "valueMapPlaceholder": "residential=Residential\ncommercial=Commercial",
      "valueMapHint": "한 줄에 한 항목: 값 또는 값=레이블.",
      "min": "최소",
      "max": "최대",
      "step": "단계",
      "constraintExpression": "제약 조건 표현식",
      "constraintPlaceholder": "[\">\", [\"get\", \"population\"], 0]",
      "constraintDescription": "제약 조건 설명",
      "constraintDescriptionPlaceholder": "제약 조건이 충족되지 않을 때 표시됩니다",
      "visibilityExpression": "표시 표현식",
      "visibilityPlaceholder": "[\"==\", [\"get\", \"type\"], \"school\"]",
      "invalidExpression": "잘못된 표현식",
      "openBuilder": "표현식 빌더 열기",
      "edit": "필드 구성 편집",
      "remove": "필드 구성 제거",
      "cancel": "취소",
      "save": "저장",
      "noFields": "레이어에 구성할 속성 필드가 없습니다.",
      "minMaxInvalid": "최소값은 최대값보다 작거나 같아야 합니다."
    }
  },
  "layers": {
    "panelCollapsedLabel": "레이어(접힘)",
    "expand": "레이어 펼치기",
    "collapse": "레이어 접기",
    "resizePanel": "레이어 패널 크기 조정",
    "dragToReorder": "드래그하여 순서 변경",
    "saveGeometryEdits": "지오메트리 편집 저장",
    "discardGeometryEdits": "지오메트리 편집 취소",
    "moveUp": "위로 이동",
    "moveDown": "아래로 이동",
    "zoomToLayer": "레이어로 확대",
    "layerActions": "레이어 작업",
    "metadata": "메타데이터",
    "removeLayer": "레이어 제거",
    "identifyFeatures": "피처 식별",
    "identifyDeactivate": "식별 비활성화",
    "identifyInspectPixels": "픽셀 값 검사",
    "identifyStopInspectPixels": "픽셀 값 검사 중지",
    "identifyUnavailable": "식별은 벡터, WMS, COG 레이어에서만 사용할 수 있습니다",
    "exportGeoTiff": "GeoTIFF(COG)",
    "extractSubset": "부분 추출…",
    "stylesMenu": "스타일",
    "exportMapboxStyle": "Mapbox GL 스타일로 내보내기",
    "exportSldStyle": "OGC SLD로 내보내기",
    "exportQmlStyle": "QGIS QML로 내보내기",
    "exportStyleSuccess": "스타일을 내보냈습니다.",
    "exportStyleDataNotReady": "레이어 데이터가 아직 준비되지 않았습니다. 잠시 후 다시 시도하세요.",
    "exportStyleNeedsFeatures": "스타일 내보내기는 피처가 있는 벡터 레이어가 필요합니다.",
    "exportStyleError": "이 레이어의 스타일을 내보낼 수 없습니다.",
    "importStyle": "스타일 가져오기(Mapbox GL / SLD / QML)…",
    "openStyleManager": "저장된 스타일 (스타일 관리자)…",
    "importStyleSuccess": "스타일을 가져왔습니다.",
    "importStyleInvalid": "해당 파일은 유효한 JSON, SLD, QML이 아닙니다.",
    "importStyleNoMatch": "해당 스타일에서 심볼 정보를 읽을 수 없습니다.",
    "importStyleError": "이 스타일을 가져올 수 없습니다.",
    "copyStyle": "스타일 복사",
    "pasteStyle": "스타일 붙여넣기",
    "pasteStyleFrom": "\"{{name}}\"의 스타일 붙여넣기",
    "pasteStyleEmpty": "먼저 레이어의 스타일을 복사하세요",
    "pasteStyleMismatch": "복사한 스타일은 다른 레이어 유형용입니다",
    "styleCopied": "\"{{name}}\"의 스타일을 복사했습니다.",
    "stylePasted": "\"{{name}}\"의 스타일을 붙여넣었습니다.",
    "saveToLibrary": "내 데이터에 저장",
    "savedToLibrary": "\"{{name}}\"을(를) 내 데이터에 저장했습니다.",
    "saveToLibraryNoSource": "이 레이어에는 다시 추가할 수 있는 소스가 없어 내 데이터에 저장할 수 없습니다.",
    "saveToLibraryTooLarge": "이 레이어의 피처는 유일한 사본이며 내 데이터에 저장하기에는 너무 큽니다.",
    "saveToLibraryConfigTooLarge": "이 레이어의 저장된 구성이 내 데이터에 저장하기에는 너무 큽니다.",
    "bindToTimeSlider": "타임 슬라이더에 연결…",
    "bindTimeDimensionToTimeSlider": "시간 차원을 타임 슬라이더에 연결",
    "bindNoTimeDimension": "이 레이어에는 읽을 수 있는 시간 차원이 없습니다.",
    "unbindFromTimeSlider": "타임 슬라이더 연결 해제",
    "bindDialogDescription": "타임라인을 이동함에 따라 날짜 또는 타임스탬프 속성으로 이 레이어의 피처를 필터링합니다. 레이어의 스타일과 불투명도는 유지됩니다.",
    "bindScanning": "날짜 및 타임스탬프 속성을 위해 피처를 검색하는 중…",
    "bindNoProperty": "이 레이어에서 날짜 또는 타임스탬프 속성을 찾을 수 없습니다.",
    "bindNoTimestamps": "선택한 속성에 읽을 수 있는 타임스탬프가 없습니다. 다른 속성을 선택하세요.",
    "bindTileNoFeatures": "이 레이어의 타일이 아직 불러와지지 않았습니다. 레이어로 확대한 후 다시 시도하세요.",
    "bindRange": "시간 범위",
    "bindRangeEnd": "시간 범위 종료",
    "bindRangeHint": "지금까지 불러온 타일에서 가져온 값이므로 전체 데이터셋보다 좁을 수 있습니다. 연도(1958) 또는 날짜(1958-03-01)를 입력하세요.",
    "bindRangeInvalid": "두 경계를 모두 연도(1958) 또는 날짜(1958-03-01) 형식으로 입력하세요.",
    "bindProperty": "시간 속성",
    "bindWindow": "피처 표시",
    "bindWindowStep": "현재 단계에서",
    "bindWindowWide": "전후 한 단계 이내",
    "bindWindowWider": "전후 세 단계 이내",
    "bindWindowCumulative": "현재 단계까지 전체 (누적)",
    "bindCancel": "취소",
    "bindConfirm": "연결",
    "openRasterStylePanel": "래스터 스타일 편집…",
    "exportRasterSuccess": "래스터를 내보냈습니다.",
    "exportRasterError": "이 래스터를 내보낼 수 없습니다.",
    "saveEditsToSource": "원본 파일에 편집 저장",
    "saveEditsSuccess": "{{count}}개의 피처를 원본 파일에 저장했습니다.",
    "saveEditsNoFeatures": "이 레이어에는 저장할 피처가 없습니다.",
    "saveEditsError": "원본 파일에 편집 내용을 저장할 수 없습니다.",
    "saveEditsToPostgis": "PostGIS 테이블에 편집 저장",
    "saveEditsPostgisSuccess": "{{table}}에 저장했습니다: {{inserted}}개 삽입, {{updated}}개 수정, {{deleted}}개 삭제.",
    "saveEditsPostgisSkippedFields": "일치하는 테이블 열이 없는 필드는 저장되지 않았습니다: {{fields}}.",
    "saveEditsPostgisRefreshWarning": "편집 내용은 테이블에 저장되었지만 레이어 새로고침에 실패했습니다. 다시 저장하기 전에 레이어를 다시 불러오세요. 그렇지 않으면 새 피처가 중복으로 삽입될 수 있습니다.",
    "saveEditsPostgisNoConnection": "이 레이어에 사용 가능한 PostgreSQL 연결이 없습니다. 데이터 추가 > PostgreSQL에서 다시 연결한 후 다시 시도하세요.",
    "typeBasemap": "배경지도",
    "searchPlaces": "장소 검색",
    "searchPlacesPlaceholder": "장소, 좌표 또는 H3 셀 검색...",
    "searchPlacesSearching": "검색 중...",
    "searchPlacesNoResults": "장소를 찾을 수 없습니다",
    "searchPlacesError": "검색에 실패했습니다. 다시 시도하세요.",
    "searchPlacesClear": "검색 지우기",
    "searchPlacesGoToCoordinate": "{{coordinate}}(으)로 이동",
    "searchPlacesGoToH3Cell": "H3 셀 {{cell}}(으)로 이동 (해상도 {{resolution}})",
    "background": "배경",
    "backgroundCannotReorder": "배경은 순서를 변경할 수 없습니다",
    "hideBackground": "배경 숨기기",
    "showBackground": "배경 표시",
    "opacity": "불투명도",
    "opacityExactHint": "두 번 클릭하여 정확한 값을 입력하세요",
    "opacityFor": "{{name}}의 불투명도",
    "opacityValueInputAria": "{{label}} 값",
    "opacityValueEditAria": "{{label}} 값 편집",
    "basemapOpacity": "배경지도 불투명도",
    "newGroup": "새 그룹",
    "basemaps": "배경지도",
    "geoEditor": "GeoEditor",
    "collapseGroup": "그룹 접기",
    "expandGroup": "그룹 펼치기",
    "hideGroup": "그룹 숨기기",
    "showGroup": "그룹 표시",
    "renameGroup": "그룹 이름 변경",
    "moveGroupUp": "그룹 위로 이동",
    "moveGroupDown": "그룹 아래로 이동",
    "ungroupKeepLayers": "그룹 해제(레이어 유지)",
    "deleteGroupAndLayers": "그룹 및 레이어 삭제",
    "groupActions": "그룹 작업",
    "addDataToGroup": "그룹에 데이터 추가",
    "groupOpacity": "불투명도",
    "groupOpacityAria": "{{name}} 그룹 불투명도",
    "doubleClickToRename": "두 번 클릭하여 이름 변경",
    "doubleClickToChangeBasemap": "두 번 클릭하여 배경지도 변경",
    "renameNamed": "{{name}} 이름 변경",
    "newGroupFromLayer": "레이어로 새 그룹 만들기",
    "newGroupFromSelectedLayers": "선택한 레이어로 새 그룹 만들기",
    "moveToGroup": "그룹으로 이동",
    "moveSelectedToGroup": "선택한 레이어를 그룹으로 이동",
    "removeFromGroup": "그룹에서 제거",
    "hiddenByGroup": "그룹이 표시되지 않아 숨겨짐",
    "empty": "데이터 레이어가 없습니다. 도구 모음에서 데이터를 추가하세요.",
    "emptyBeginner": "아직 레이어가 없습니다. 플러그인 → 배경지도에서 배경지도를 추가하거나 데이터 추가 메뉴에서 직접 데이터를 추가하세요.",
    "hideAllLayers": "모든 레이어 숨기기",
    "showAllLayers": "모든 레이어 표시",
    "dragNamedToReorder": "{{name}}을(를) 드래그하여 순서 변경",
    "hideLayer": "레이어 숨기기",
    "showLayer": "레이어 표시",
    "editingGeometry": "지오메트리 편집 중",
    "rename": "이름 변경",
    "materializeToEditable": "편집 가능한 레이어로 변환",
    "finishEditingGeometry": "지오메트리 편집 완료",
    "editGeometry": "지오메트리 편집",
    "openAttributeTable": "속성 테이블 열기",
    "openRasterAttributeTable": "래스터 속성 테이블 열기",
    "export": "내보내기",
    "refresh": "새로고침",
    "autoRefreshOn": "자동 새로고침 켜짐",
    "lastSynced": "마지막 동기화 {{time}}",
    "syncErrorStatus": "동기화 실패: {{message}}",
    "autoRefresh": "자동 새로고침",
    "refreshWfsGeojsonOnly": "WFS 및 GeoJSON URL만",
    "editSqlQuery": "SQL 워크스페이스에서 쿼리 편집",
    "reloadFromDisk": "디스크에서 다시 로드",
    "watchFile": "파일 변경 감시",
    "watchError": "이 파일의 변경을 감시할 수 없습니다.",
    "autoRefreshDialogTitle": "{{name}} 자동 새로고침",
    "layerFallback": "레이어",
    "autoRefreshDialogDescription": "일정한 간격으로 이 레이어를 소스에서 다시 불러옵니다.",
    "interval": "간격",
    "custom": "사용자 지정",
    "customIntervalSeconds": "사용자 지정 간격(초)",
    "refreshFailurePolicy": "새로 고침이 실패하면",
    "refreshFailureKeepLast": "마지막으로 성공한 데이터 유지",
    "refreshFailureClear": "레이어 비우기",
    "apply": "적용",
    "enterPositiveSeconds": "양수의 초를 입력하세요.",
    "metadataDialogTitle": "{{name}} 메타데이터",
    "metadataDialogDescription": "레이어 메타데이터 및 소스 정보",
    "metadataRasterLoading": "래스터 메타데이터를 읽는 중…",
    "metadataRasterError": "이 래스터의 메타데이터를 읽을 수 없습니다.",
    "resizeMetadataDialog": "메타데이터 대화 상자 크기 조정",
    "removeLayerConfirmTitle": "레이어를 제거하시겠습니까?",
    "removeLayerConfirmBody": "{{name}}을(를) 프로젝트와 지도에서 제거합니다.",
    "thisLayerFallback": "이 레이어",
    "refreshingAuto": "자동 새로고침 중...",
    "refreshing": "새로고침 중...",
    "refreshVectorControlError": "이 레이어를 새로고침할 수 없습니다. 벡터 레이어 추가 패널을 다시 열어 보세요.",
    "refreshed": "새로고침했습니다.",
    "refreshedCount": "{{count}}개의 피처를 새로고침했습니다.",
    "refreshError": "이 레이어를 새로고침할 수 없습니다.",
    "exportNeedsFeatures": "내보내기는 피처가 있는 벡터 레이어가 필요합니다.",
    "exportedWithWarnings": "레이어를 내보냈습니다. {{warnings}}",
    "exported": "레이어를 내보냈습니다.",
    "exportLayerError": "이 레이어를 내보낼 수 없습니다.",
    "refreshIntervals": {
      "off": "끄기",
      "s15": "15초",
      "s30": "30초",
      "m1": "1분",
      "m5": "5분",
      "m15": "15분"
    }
  },
  "timeSliderSymbology": {
    "bands": "밴드",
    "bandsPlaceholder": "자동",
    "bandsHint": "1부터 시작하는 밴드 번호를 쉼표로 구분합니다(예: 4,3,2). 비워 두면 렌더러 기본값을 사용합니다.",
    "bandsInvalid": "1 이상의 정수 밴드 번호를 쉼표로 구분해 입력하세요.",
    "colormapNone": "없음(RGB / 다중 밴드)"
  },
  "rasterSymbology": {
    "gamma": "감마",
    "min": "최소",
    "max": "최대",
    "value": "값",
    "autoPlaceholder": "자동",
    "colorRampLabel": "색상 램프",
    "reverseRamp": "램프 반전",
    "customRamp": "사용자 지정…",
    "customColors": "사용자 지정 색상",
    "customColorsValid": "{{count}}개 색상, 낮은 값에서 높은 값 순입니다. 반전을 사용하여 뒤집으세요.",
    "customColorsHint": "쉼표 또는 공백으로 구분하여 헥스 코드를 두 개 이상 입력하세요.",
    "imagePalette": "이미지 팔레트",
    "createLegend": "팔레트로 범례 만들기",
    "createLegendHint": "래스터의 팔레트 색상을 사용하여 픽셀 값마다 항목이 하나씩 있는 범례를 추가합니다. 이후 항목 이름을 클래스 이름으로 변경하세요.",
    "createLegendPending": "팔레트를 읽는 중…",
    "createLegendEmpty": "이 래스터에서 팔레트 색상을 찾을 수 없습니다.",
    "createLegendError": "래스터 팔레트를 읽을 수 없습니다.",
    "heading": "래스터 심볼",
    "renderMode": "렌더링 모드",
    "modeSingle": "단일 밴드(의사 색상)",
    "modeIndex": "지수(정규화 차이)",
    "modeRgb": "RGB 합성",
    "band": "밴드",
    "stretch": "스트레치",
    "stretchLinear": "선형",
    "stretchLog": "로그",
    "stretchSqrt": "제곱근",
    "index": "지수",
    "classifyToggle": "이산 클래스로 분류",
    "method": "방법",
    "methodEqualInterval": "등간격",
    "methodQuantile": "분위수",
    "methodManual": "수동 구간",
    "classes": "클래스 수",
    "classEdges": "클래스 경계",
    "noData": "데이터 없음",
    "nodataAuto": "자동(파일에서)",
    "nodataOff": "모든 픽셀 렌더링",
    "nodataCustom": "사용자 지정 값"
  },
  "rasterAttributeTable": {
    "title": "래스터 속성 테이블",
    "resize": "래스터 속성 테이블 크기 조정",
    "noRasterSelected": "속성 테이블을 보려면 래스터 레이어를 선택하세요.",
    "computing": "래스터 클래스를 읽는 중…",
    "empty": "아직 클래스가 없습니다. 다시 계산으로 테이블을 만드세요.",
    "band": "밴드",
    "bandOption": "밴드 {{band}}",
    "close": "래스터 속성 테이블 닫기",
    "noSource": "이 래스터에는 읽을 수 있는 원본 파일이 없습니다.",
    "readError": "래스터 데이터를 읽을 수 없습니다.",
    "bandMissing": "밴드 {{band}}을(를) 이 래스터에서 찾을 수 없습니다.",
    "notCategorical": "이 밴드는 고유 값이 너무 많아 범주형이 아닙니다.",
    "tooManyClasses": "심볼 적용은 최대 {{max}}개 클래스를 지원합니다.",
    "symbologyApplied": "테이블에서 심볼이 적용되었습니다.",
    "noPalette": "이 래스터에는 내장 팔레트가 없습니다.",
    "legendError": "범례를 열 수 없습니다.",
    "csvError": "CSV 파일을 내보낼 수 없습니다.",
    "recomputeTitle": "래스터를 스캔하여 클래스 테이블 다시 만들기",
    "applyTitle": "테이블의 클래스로 래스터 색상 지정",
    "paletteTitle": "내장 팔레트에서 색상 재설정",
    "legendTitle": "테이블의 클래스로 지도 범례 채우기",
    "csvTitle": "테이블을 CSV로 내보내기",
    "buttons": {
      "recompute": "다시 계산",
      "apply": "심볼 적용",
      "palette": "팔레트에서",
      "legend": "범례로",
      "csv": "CSV"
    },
    "columns": {
      "value": "값",
      "count": "개수",
      "percent": "%",
      "area_m2": "면적 (m²)",
      "area_ha": "면적 (ha)",
      "area_km2": "면적 (km²)",
      "color": "색상",
      "label": "레이블"
    },
    "rowColor": "값 {{value}}의 색상",
    "rowLabel": "값 {{value}}의 레이블"
  },
  "raster": {
    "filePickerLabel": "래스터",
    "cogConvertConfirm": "\"{{name}}\"은(는) 직접 표시할 수 없는 일반(스트라이프) GeoTIFF입니다. 지금 Cloud-Optimized GeoTIFF로 변환하여 불러오시겠습니까?",
    "cogConvertRemoteConfirm": "\"{{name}}\"은(는) 직접 표시할 수 없는 일반(스트라이프) GeoTIFF입니다. 표시하려면 전체 파일을 다운로드하여 브라우저에서 Cloud-Optimized GeoTIFF로 변환해야 하며, 파일이 클 경우 느리고 메모리를 많이 사용할 수 있습니다. 계속하시겠습니까?",
    "cogConvertLargeConfirm": "\"{{name}}\"은(는) {{width}}×{{height}} 크기의 대용량 GeoTIFF로, Cloud-Optimized GeoTIFF가 아닙니다. 브라우저에서 변환하면 느리고 메모리를 많이 사용할 수 있습니다. 그래도 변환하여 불러오시겠습니까?",
    "cogConvertFailed": "\"{{name}}\"을(를) Cloud-Optimized GeoTIFF로 변환할 수 없습니다. gdal_translate 또는 rio cogeo로 변환한 후 결과를 불러오세요.",
    "rasterDownloadFailed": "\"{{name}}\"을(를) 다운로드할 수 없습니다. 서버가 느리거나 응답하지 않거나 교차 출처 요청을 차단하고 있을 수 있으며, 또는 파일이 너무 커서 메모리에 담을 수 없을 수 있습니다. URL을 확인한 후 다시 시도하세요.",
    "rasterNotGeotiff": "\"{{name}}\"이(가) GeoTIFF를 반환하지 않았습니다. 서버가 대신 오류 또는 로그인 페이지를 보냈을 수 있습니다. URL을 확인한 후 다시 시도하세요."
  },
  "attributeForm": {
    "error": {
      "required": "값이 필요합니다",
      "number": "숫자여야 합니다",
      "range": "{{min}}에서 {{max}} 사이여야 합니다",
      "rangeMin": "{{min}} 이상이어야 합니다",
      "rangeMax": "{{max}} 이하여야 합니다",
      "valueMap": "값이 허용 목록에 없습니다",
      "constraint": "제약 조건이 충족되지 않았습니다"
    }
  },
  "legendPanel": {
    "edit": "범례 편집",
    "done": "편집 완료",
    "close": "범례 닫기",
    "empty": "표시할 레이어가 없습니다.",
    "renameTitle": "범례 제목",
    "renameEntry": "{{name}} 이름 바꾸기",
    "renameItem": "{{name}} 이름 바꾸기",
    "moveUp": "위로 이동",
    "moveDown": "아래로 이동",
    "hideEntry": "범례에서 숨기기",
    "showEntry": "범례에 표시",
    "hideItem": "항목 숨기기",
    "showItem": "항목 표시",
    "customizeEntry": "항목 사용자 지정",
    "resetEntry": "자동으로 재설정",
    "removeSection": "섹션 제거",
    "addSection": "사용자 지정 섹션 추가",
    "newSectionTitle": "새 섹션",
    "newItemLabel": "새 항목",
    "addItem": "항목 추가",
    "removeItem": "항목 제거",
    "itemColor": "항목 색상",
    "position": "위치",
    "positions": {
      "top-left": "왼쪽 위",
      "top-right": "오른쪽 위",
      "bottom-left": "왼쪽 아래",
      "bottom-right": "오른쪽 아래"
    },
    "low": "낮음",
    "high": "높음",
    "addFromDictionary": "사전에서 추가",
    "dictionaryHint": "{\"레이블\": \"색상\"} 쌍의 JSON 객체 또는 줄마다 \"레이블: 색상\" 하나.",
    "dictionaryAdd": "섹션 추가",
    "cancel": "취소",
    "resize": "범례 크기 조절",
    "collapseEntry": "섹션 접기",
    "expandEntry": "섹션 펼치기",
    "collapsePanel": "범례 접기",
    "expandPanel": "범례 펼치기",
    "exportJson": "JSON으로 내보내기"
  },
  "errorBoundary": {
    "title": "문제가 발생했습니다",
    "description": "GeoLibre에서 예기치 않은 오류가 발생하여 계속할 수 없습니다. 작업이 저장되지 않았을 수 있습니다 — 다시 로드하기 전에 복구를 시도해 보세요.",
    "tryAgain": "다시 시도",
    "reload": "앱 다시 로드",
    "sectionFailed": "{{label}}을(를) 렌더링하지 못했습니다. GeoLibre의 나머지 기능은 계속 사용할 수 있습니다."
  },
  "commandPalette": {
    "title": "명령 팔레트",
    "searchAria": "명령 검색",
    "searchPlaceholder": "명령 검색…",
    "listAria": "명령",
    "noMatches": "일치하는 명령이 없습니다"
  },
  "shortcuts": {
    "title": "키보드 단축키",
    "description": "{{shortcut}}을(를) 누르면 명령 팔레트에서 모든 작업을 검색할 수 있습니다.",
    "groupGeneral": "일반",
    "groupMapNavigation": "지도 탐색",
    "openCommandPalette": "명령 팔레트 열기",
    "showKeyboardShortcuts": "키보드 단축키 표시",
    "nav": {
      "zoomIn": "확대",
      "zoomOut": "축소",
      "pan": "이동",
      "rotate": "회전",
      "tilt": "기울이기"
    }
  },
  "diagnostics": {
    "title": "진단",
    "description": "최근 네트워크 요청, MapLibre 오류, 콘솔 경고 및 런타임 예외입니다.",
    "countTotal_other": "전체 {{count}}건",
    "countErrors_other": "오류 {{count}}건",
    "countWarnings_other": "경고 {{count}}건",
    "countNetwork_other": "네트워크 {{count}}건",
    "countNetworkErrors_other": "네트워크 오류 {{count}}건",
    "logAllRequests": "모든 네트워크 요청 기록",
    "logAllRequestsHint": "지금부터 성공 및 중단된 네트워크 요청을 기록합니다. 기록이 꺼져 있는 동안의 요청은 소급 기록되지 않습니다. 모든 요청을 기록하면 앱이 느려지므로 기본값은 꺼짐입니다.",
    "copyJson": "JSON 복사",
    "copied": "복사됨",
    "clear": "지우기",
    "emptyAll": "수집된 진단 정보가 없습니다.",
    "emptyError": "수집된 오류 진단 정보가 없습니다.",
    "emptyWarning": "수집된 경고 진단 정보가 없습니다.",
    "emptyInfo": "수집된 정보 진단 정보가 없습니다.",
    "emptyNetwork": "수집된 네트워크 진단 정보가 없습니다.",
    "emptyNetworkError": "수집된 네트워크 오류 진단 정보가 없습니다."
  },
  "shell": {
    "workspaceTitle": "GeoLibre 지도 작업 공간",
    "section": {
      "toolbar": "도구 모음",
      "sharedLeftSidebar": "공유 왼쪽 사이드바",
      "pluginPanelLeftOfLayers": "플러그인 패널(레이어 왼쪽)",
      "layerPanel": "레이어 패널",
      "pluginPanelRightOfLayers": "플러그인 패널(레이어 오른쪽)",
      "map": "지도",
      "pluginFloatingPanels": "플러그인 플로팅 패널",
      "selectionPanels": "선택 패널",
      "sunSimulationPanel": "일조 시뮬레이션 패널",
      "routeAnimationPanel": "경로 애니메이션 패널",
      "flightSimulatorPanel": "비행 시뮬레이터 패널",
      "sharedRightSidebar": "공유 오른쪽 사이드바",
      "pluginPanelLeftOfStyle": "플러그인 패널(스타일 왼쪽)",
      "stylePanel": "스타일 패널",
      "pluginPanelRightOfStyle": "플러그인 패널(스타일 오른쪽)",
      "notebook": "노트북",
      "attributeTable": "속성 테이블",
      "rasterAttributeTable": "래스터 속성 테이블",
      "dashboard": "대시보드",
      "pythonConsole": "Python 콘솔",
      "sqlWorkspace": "SQL 작업 공간",
      "assistant": "어시스턴트",
      "statusBar": "상태 표시줄"
    }
  },
  "attributeStats": {
    "title": "필드 통계",
    "description": "\"{{layer}}\"의 필드 요약 통계입니다.",
    "noFields": "이 레이어에는 요약할 필드가 없습니다.",
    "field": "필드",
    "scope": "범위",
    "scopeAll": "전체 피처({{total}})",
    "scopeFiltered": "필터링됨({{total}})",
    "copiedToClipboard": "클립보드에 복사했습니다.",
    "copy": "복사",
    "copyHeader": "필드 통계 — {{field}}",
    "copyHeaderFiltered": "필드 통계 — {{field}}(필터링됨)",
    "noValues": "요약할 값이 없습니다.",
    "mostFrequent": "가장 빈번한 값",
    "noPopulated": "입력된 값이 없습니다.",
    "stat": {
      "count": "개수",
      "nulls": "널",
      "nonNumeric": "비숫자",
      "unique": "고유값",
      "min": "최소",
      "max": "최대",
      "mean": "평균",
      "median": "중앙값",
      "std": "표준편차",
      "sum": "합계"
    }
  },
  "columnExplorer": {
    "title": "열 탐색기",
    "description": "\"{{layer}}\"의 모든 필드에 대한 유형, 완전성 및 분포입니다.",
    "noFields": "이 레이어에는 탐색할 필드가 없습니다.",
    "findField": "필드 찾기",
    "findFieldPlaceholder": "이름으로 필드 필터링...",
    "scope": "범위",
    "scopeAll": "전체 피처({{total}})",
    "scopeFiltered": "필터링됨({{total}})",
    "fieldsShown": "전체 {{total}}개 중 {{shown}}개 필드",
    "noMatches": "\"{{search}}\"과(와) 일치하는 필드가 없습니다.",
    "typeNumeric": "숫자",
    "typeText": "텍스트",
    "completenessTitle": "입력됨 {{populated}}, 널 {{nulls}}",
    "populated": "입력됨 {{total}}",
    "null": "널 {{total}}",
    "unique": "고유값 {{total}}",
    "min": "최소",
    "mean": "평균",
    "max": "최대",
    "noNumericValues": "표시할 숫자 값이 없습니다.",
    "distributionAria": "{{field}}의 분포: {{min}}부터 {{max}}까지 {{total}}개 값",
    "noPopulated": "입력된 값이 없습니다.",
    "moreValues": "+{{total}}개 값 더 보기"
  },
  "stacPlugin": {
    "title": "STAC 카탈로그",
    "footprintLayerName": "STAC 검색 범위",
    "catalogSearch": "STAC Index에서 공개 카탈로그 찾기",
    "catalogSearchPlaceholder": "카탈로그 이름 검색…",
    "indexLoading": "STAC Index 로드 중…",
    "indexUnavailable": "STAC Index를 사용할 수 없습니다: URL을 입력하세요",
    "indexLoadFailed": "STAC Index를 불러오지 못했습니다",
    "urlLabel": "STAC 카탈로그 또는 API URL",
    "connect": "연결",
    "connecting": "STAC에 연결 중…",
    "connected": "연결되었습니다. 필터를 선택하고 검색하세요.",
    "connectFailed": "STAC에 연결하지 못했습니다",
    "selectCatalog": "카탈로그 선택…",
    "noMatchingCatalogs": "일치하는 카탈로그 없음",
    "catalogApiSuffix": " (API)",
    "catalogStaticSuffix": " (정적)",
    "kindApi": "STAC API",
    "kindStatic": "정적 카탈로그",
    "collectionsHint": "Ctrl/Cmd를 누른 채 여러 컬렉션을 선택할 수 있습니다. 아래쪽 가장자리를 끌어 크기를 조절하세요",
    "limitToExtent": "현재 지도 범위로 검색 제한",
    "bboxLabel": "경계 상자(서, 남, 동, 북)",
    "bboxPlaceholder": "선택 사항이며 지도 범위보다 우선합니다",
    "bboxInvalid": "올바른 경계 상자를 입력하세요: 서, 남, 동, 북.",
    "drawBbox": "지도에 상자 그리기",
    "cancelDrawing": "그리기 취소",
    "clearDrawnBbox": "그린 상자 지우기",
    "drawHint": "지도에서 클릭한 뒤 끌어 검색 상자를 그리세요.",
    "drawnBbox": "그린 상자: {{bbox}}",
    "drawnBboxCleared": "그린 상자를 지웠습니다.",
    "mapNotReady": "지도가 아직 그리기 준비되지 않았습니다.",
    "startDate": "시작 날짜",
    "endDate": "종료 날짜",
    "additionalParams": "추가 검색 매개변수(JSON, STAC API 전용)",
    "additionalInvalid": "추가 검색 매개변수는 JSON 객체여야 합니다.",
    "searchItems": "항목 검색",
    "clearResults": "결과 지우기",
    "resultsCleared": "검색 결과를 지웠습니다.",
    "searching": "STAC 항목 검색 중…",
    "loadingMore": "항목 더 불러오는 중…",
    "noResults": "이 필터와 일치하는 STAC 항목이 없습니다.",
    "searchFailed": "STAC 검색에 실패했습니다",
    "showing": "{{count}}개 항목을 표시하고 있습니다.",
    "showingOfMatched": "{{matched}}개 중 {{count}}개 항목을 표시하고 있습니다.",
    "loadMore": "더 불러오기",
    "renderOptions": "래스터 렌더링 옵션",
    "bands": "밴드",
    "bandsPlaceholder": "예: 1 또는 1,2,3(기본값: 자동)",
    "colormap": "컬러맵(단일 밴드 전용)",
    "colormapDefault": "렌더러 기본값",
    "minValue": "최솟값",
    "maxValue": "최댓값",
    "nodata": "NoData 값",
    "nodataPlaceholder": "파일의 NoData 태그보다 우선합니다",
    "renderHint": "비워 두면 렌더러가 GeoTIFF에서 값을 추론합니다. 옵션은 변경 후 추가한 자산에 적용됩니다.",
    "initialStatus": "STAC Index에서 카탈로그를 선택하거나 URL을 입력하세요.",
    "catalogInfo": "{{title}} · {{kind}}",
    "zoom": "확대",
    "add": "추가",
    "download": "다운로드",
    "adding": "{{asset}} 추가 중…",
    "added": "{{asset}}을(를) 지도에 추가했습니다.",
    "addUnsupported": "GeoTIFF/COG 및 GeoJSON 자산만 지도에 추가할 수 있습니다",
    "addFailed": "자산을 추가하지 못했습니다",
    "cogUnsupported": "이 GeoLibre 호스트는 원격 GeoTIFF 자산을 표시할 수 없습니다"
  },
  "vectorExport": {
    "invalidKmlCoordinatesByPosition": "좌표가 올바르지 않아 KML 내보내기에서 {{position}}번째 피처를 기록하지 못했습니다.",
    "invalidKmlCoordinatesById": "좌표가 올바르지 않아 KML 내보내기에서 ID {{id}} 피처를 기록하지 못했습니다."
  },
  "comments": {
    "title": "댓글",
    "addDialogTitle": "검토 의견 추가",
    "addDialogDescription": "팀 검토나 오프라인 참고용으로 이 프로젝트에 위치가 고정된 메모를 게시합니다.",
    "authorNameLabel": "이름 (한 번만 묻고 자동으로 저장됩니다)",
    "authorNamePlaceholder": "예: 홍길동 또는 김철수",
    "commentLabel": "의견 / 피드백",
    "commentPlaceholder": "여기에 검토 메모나 피드백을 입력하세요...",
    "confirmDelete": "이 의견 스레드를 삭제하시겠습니까?",
    "sessionDisconnected": "세션 연결이 끊어졌습니다.",
    "defaultAuthorName": "작성자"
  },
  "s2Plugin": {
    "title": "S2 격자",
    "controlTitle": "S2 격자 설정",
    "autoResolution": "해상도 자동 설정",
    "resolution": "해상도",
    "cellCount": "화면에 {{count}}개 셀",
    "tooManyCells": "이 화면은 셀 {{limit}}개 한도를 초과합니다. 확대하거나 해상도를 낮추세요.",
    "fillColor": "채우기 색상",
    "fillOpacity": "채우기 불투명도",
    "lineColor": "윤곽선 색상",
    "lineWidth": "외곽선 두께",
    "showLabels": "셀 ID 표시",
    "identifyHint": "지도를 클릭하여 S2 셀을 확인하세요.",
    "selectedCell": "선택한 셀",
    "noSelection": "선택한 셀 없음",
    "copyId": "ID 복사",
    "parent": "상위 셀",
    "children": "하위 셀",
    "neighbors": "인접 셀",
    "center": "중심",
    "zoomToCell": "셀로 확대",
    "addAsLayer": "격자를 레이어로 추가",
    "exportGeoJson": "GeoJSON 내보내기",
    "exportCsv": "CSV 내보내기",
    "includeNeighbors": "선택한 셀의 인접 셀 포함",
    "includeParents": "선택한 셀의 상위 셀 포함"
  },
  "a5Plugin": {
    "title": "A5 격자",
    "controlTitle": "A5 격자 설정",
    "autoResolution": "해상도 자동 설정",
    "resolution": "해상도",
    "cellCount": "화면에 {{count}}개 셀",
    "tooManyCells": "이 화면은 셀 {{limit}}개 한도를 초과합니다. 확대하거나 해상도를 낮추세요.",
    "fillColor": "채우기 색상",
    "fillOpacity": "채우기 불투명도",
    "lineColor": "윤곽선 색상",
    "lineWidth": "외곽선 두께",
    "showLabels": "셀 ID 표시",
    "identifyHint": "지도를 클릭하여 A5 셀을 확인하세요.",
    "selectedCell": "선택한 셀",
    "noSelection": "선택한 셀 없음",
    "copyId": "ID 복사",
    "parent": "상위 셀",
    "children": "하위 셀",
    "neighbors": "인접 셀",
    "center": "중심",
    "zoomToCell": "셀로 확대",
    "addAsLayer": "격자를 레이어로 추가",
    "exportGeoJson": "GeoJSON 내보내기",
    "exportCsv": "CSV 내보내기",
    "includeNeighbors": "선택한 셀의 인접 셀 포함",
    "includeParents": "선택한 셀의 상위 셀 포함"
  },
  "dggridPlugin": {
    "title": "DGGRID",
    "controlTitle": "DGGRID 설정",
    "cellType": "셀 유형",
    "topologyHexagon": "육각형",
    "topologyDiamond": "마름모",
    "topologyTriangle": "삼각형",
    "projection": "투영법",
    "aperture": "구경",
    "autoResolution": "해상도 자동 설정",
    "resolution": "해상도",
    "cellCount": "화면에 {{count}}개 셀",
    "tooManyCells": "이 화면은 셀 {{limit}}개 한도를 초과합니다. 확대하거나 해상도를 낮추세요.",
    "fillColor": "채우기 색상",
    "fillOpacity": "채우기 불투명도",
    "lineColor": "윤곽선 색상",
    "lineWidth": "외곽선 두께",
    "showLabels": "셀 ID 표시",
    "identifyHint": "지도를 클릭하여 DGGRID 셀을 확인하세요.",
    "selectedCell": "선택한 셀",
    "noSelection": "선택한 셀 없음",
    "copyId": "ID 복사",
    "parent": "상위 셀",
    "children": "하위 셀",
    "neighbors": "인접 셀",
    "center": "중심",
    "zoomToCell": "셀로 확대",
    "addAsLayer": "격자를 레이어로 추가",
    "exportGeoJson": "GeoJSON 내보내기",
    "exportCsv": "CSV 내보내기",
    "includeNeighbors": "선택한 셀의 인접 셀 포함",
    "includeParents": "선택한 셀의 상위 셀 포함"
  },
  "dggalPlugin": {
    "title": "DGGAL",
    "controlTitle": "DGGAL 설정",
    "gridType": "DGGS 유형",
    "autoResolution": "해상도 자동 설정",
    "resolution": "해상도",
    "cellCount": "화면에 {{count}}개 셀",
    "tooManyCells": "이 화면은 셀 {{limit}}개 한도를 초과합니다. 확대하거나 해상도를 낮추세요.",
    "fillColor": "채우기 색상",
    "fillOpacity": "채우기 불투명도",
    "lineColor": "윤곽선 색상",
    "lineWidth": "외곽선 두께",
    "showLabels": "셀 ID 표시",
    "identifyHint": "지도를 클릭하여 DGGAL 셀을 확인하세요.",
    "selectedCell": "선택한 셀",
    "noSelection": "선택한 셀 없음",
    "copyId": "ID 복사",
    "parent": "상위 셀",
    "children": "하위 셀",
    "neighbors": "인접 셀",
    "center": "중심",
    "zoomToCell": "셀로 확대",
    "addAsLayer": "격자를 레이어로 추가",
    "exportGeoJson": "GeoJSON 내보내기",
    "exportCsv": "CSV 내보내기",
    "includeNeighbors": "선택한 셀의 인접 셀 포함",
    "includeParents": "선택한 셀의 상위 셀 포함"
  },
  "olcPlugin": {
    "title": "OLC",
    "controlTitle": "OLC 설정",
    "autoResolution": "해상도 자동 설정",
    "resolution": "해상도",
    "cellCount": "화면에 {{count}}개 셀",
    "tooManyCells": "이 화면은 셀 {{limit}}개 한도를 초과합니다. 확대하거나 해상도를 낮추세요.",
    "fillColor": "채우기 색상",
    "fillOpacity": "채우기 불투명도",
    "lineColor": "윤곽선 색상",
    "lineWidth": "외곽선 두께",
    "showLabels": "셀 ID 표시",
    "identifyHint": "지도를 클릭하여 OLC 셀을 확인하세요.",
    "selectedCell": "선택한 셀",
    "noSelection": "선택한 셀 없음",
    "copyId": "ID 복사",
    "parent": "상위 셀",
    "children": "하위 셀",
    "neighbors": "인접 셀",
    "center": "중심",
    "zoomToCell": "셀로 확대",
    "addAsLayer": "격자를 레이어로 추가",
    "exportGeoJson": "GeoJSON 내보내기",
    "exportCsv": "CSV 내보내기",
    "includeNeighbors": "선택한 셀의 인접 셀 포함",
    "includeParent": "선택한 셀의 상위 셀 포함"
  },
  "geohashPlugin": {
    "title": "Geohash",
    "controlTitle": "Geohash 설정",
    "autoResolution": "해상도 자동 설정",
    "resolution": "해상도",
    "cellCount": "화면에 {{count}}개 셀",
    "tooManyCells": "이 화면은 셀 {{limit}}개 한도를 초과합니다. 확대하거나 해상도를 낮추세요.",
    "fillColor": "채우기 색상",
    "fillOpacity": "채우기 불투명도",
    "lineColor": "윤곽선 색상",
    "lineWidth": "외곽선 두께",
    "showLabels": "셀 ID 표시",
    "identifyHint": "지도를 클릭하여 Geohash 셀을 확인하세요.",
    "selectedCell": "선택한 셀",
    "noSelection": "선택한 셀 없음",
    "copyId": "ID 복사",
    "parent": "상위 셀",
    "children": "하위 셀",
    "neighbors": "인접 셀",
    "center": "중심",
    "zoomToCell": "셀로 확대",
    "addAsLayer": "격자를 레이어로 추가",
    "exportGeoJson": "GeoJSON 내보내기",
    "exportCsv": "CSV 내보내기",
    "includeNeighbors": "선택한 셀의 인접 셀 포함",
    "includeParent": "선택한 셀의 상위 셀 포함"
  },
  "tilecodePlugin": {
    "title": "Tilecode",
    "controlTitle": "Tilecode 설정",
    "autoResolution": "해상도 자동 설정",
    "resolution": "해상도",
    "cellCount": "화면에 타일 {{count}}개",
    "tooManyCells": "이 화면은 타일 {{limit}}개 한도를 초과합니다. 확대하거나 해상도를 낮추세요.",
    "fillColor": "채우기 색상",
    "fillOpacity": "채우기 불투명도",
    "lineColor": "윤곽선 색상",
    "lineWidth": "외곽선 두께",
    "showLabels": "타일 ID 표시",
    "identifyHint": "지도를 클릭하여 타일을 확인하세요.",
    "selectedCell": "선택한 타일",
    "noSelection": "선택한 타일 없음",
    "copyId": "ID 복사",
    "quadkey": "쿼드키",
    "parent": "상위 타일",
    "children": "하위 타일",
    "neighbors": "인접 타일",
    "center": "중심",
    "zoomToCell": "타일로 확대",
    "addAsLayer": "격자를 레이어로 추가",
    "exportGeoJson": "GeoJSON 내보내기",
    "exportCsv": "CSV 내보내기",
    "includeNeighbors": "선택한 타일의 인접 타일 포함",
    "includeParent": "선택한 타일의 상위 타일 포함"
  },
  "netcdfSymbology": {
    "heading": "NetCDF 심볼",
    "colorRampLabel": "컬러맵",
    "reverse": "컬러맵 반전",
    "colorMin": "색상 최소",
    "colorMax": "색상 최대",
    "resetRange": "데이터 범위로 초기화",
    "openCube": "3D 큐브"
  },
  "netcdfCube": {
    "heading": "3D 영상 큐브",
    "close": "닫기",
    "settings": "설정",
    "setupTitle": "3D 영상 큐브",
    "setupDescription": "큐브를 만들기 전에 무엇을 읽을지 선택하세요. 밴드마다 별도로 읽으므로 범위와 밴드 수가 소요 시간을 좌우합니다.",
    "extent": "범위",
    "extentView": "현재 지도 화면",
    "extentDraw": "지도에 그리기",
    "extentFull": "레이어 전체 범위",
    "viewHint": "큐브를 만드는 시점에 지도에 보이는 영역을 읽습니다.",
    "fullHint": "격자 전체를 읽습니다. 장면 크기의 큐브에서는 느립니다.",
    "drawBbox": "지도에 그리기",
    "drawing": "지도에서 상자를 드래그하여 큐브의 범위를 설정하세요",
    "drawHint": "지도에서 상자를 드래그하여 범위를 설정하세요.",
    "drawnExtent": "서 {{west}}, 남 {{south}}, 동 {{east}}, 북 {{north}}",
    "detail": "상세도",
    "detailOption": "한 변당 {{size}}개 셀",
    "bands": "밴드",
    "allBands": "전체({{count}})",
    "rgbOverlay": "윗면에 RGB 영상",
    "rgbHint": "세 밴드를 합성한 컬러 영상을 윗면에 덮어, 큐브를 하나의 장소로 알아볼 수 있게 합니다.",
    "red": "빨강",
    "green": "초록",
    "blue": "파랑",
    "planeEstimate": "밴드 읽기 {{count}}회",
    "create": "큐브 만들기",
    "colorRampLabel": "컬러맵",
    "reverse": "반전",
    "showRgb": "윗면 RGB",
    "rgbBands": "RGB 밴드",
    "recomposing": "읽는 중...",
    "zScale": "높이",
    "slice": "단면",
    "sliceAt": "{{band}} {{units}}에서 자름",
    "reading": "{{total}}개 밴드 중 {{done}}번째를 읽는 중...",
    "summary": "{{nx}} x {{ny}} 셀, {{axis}} 축을 따라 {{nz}}개 밴드",
    "errorNoCube": "이 레이어의 원본 파일이 더 이상 열려 있지 않아 큐브를 읽을 수 없습니다.",
    "error": {
      "shapeMismatch": "이 변수의 밴드 평면들이 같은 형태가 아니어서 큐브로 쌓을 수 없습니다.",
      "rgbShapeMismatch": "선택한 RGB 밴드가 큐브의 형태와 맞지 않습니다.",
      "noBands": "이 변수에는 읽을 밴드가 없습니다.",
      "noReadWindow": "이 큐브는 그 자리에서 갱신할 수 없습니다. 설정에서 다시 만드세요."
    }
  },
  "netcdfProfile": {
    "heading": "분광 프로파일",
    "clear": "지우기",
    "chartAria": "밴드 축을 따라 추출한 픽셀 값",
    "popOut": "떼어내기",
    "dock": "도킹",
    "poppedOutHint": "차트가 지도 위의 창에 열려 있습니다.",
    "noValues": "이 픽셀들에는 차트로 그릴 값이 없습니다.",
    "exportPng": "PNG",
    "exportCsv": "CSV",
    "exportError": "차트를 내보낼 수 없습니다."
  },
  "netcdfIdentify": {
    "noData": "데이터 없음",
    "coordinates": "경도, 위도",
    "cell": "행, 열"
  }
}
