fix(i18n): shorten nav labels and complete translations in all locales

Nav bar labels that overflow their tab slot on phones are shortened to
idiomatic short forms: fr (Bibliothèque, Téléchargement, Recherche),
ru/bg/it (Live TV), pl (Home).

All 21 locales get the ~280 keys that were empty (falling back to
English at runtime): explore detail/badges/stats, fileInfo, startup
repair flow, mediaMenu delete dialogs, addServer, rating sources,
downloads sync-rule removal, and more.

settings.displayScale was missing entirely in 16 locales; the new
exoplayer playbackBuffer keys (upstream feat) are translated too.

Fixes mis-translations found in review: es/zh/zh-Hant sidecar-format
wording, sv adaptation, nb transcoding.

Regenerated with dart run slang; translation hygiene and i18n tests
pass.

Close #1823
This commit is contained in:
edde746
2026-08-07 10:15:48 +02:00
parent 4816e3928f
commit feb34caeb7
43 changed files with 20701 additions and 6215 deletions
+287 -287
View File
@@ -11,7 +11,7 @@
"waitingForAuth": "인증 대기 중...\n브라우저에서 로그인하세요.",
"useBrowser": "브라우저 사용",
"or": "또는",
"connectToMediaBrowser": "",
"connectToMediaBrowser": "${product}에 연결",
"useQuickConnect": "Quick Connect 사용",
"quickConnectInstructions": "Jellyfin에서 Quick Connect를 열고 이 코드를 입력하세요.",
"quickConnectWaiting": "승인 대기 중…",
@@ -66,17 +66,17 @@
"exitFullscreen": "전체 화면 종료",
"pressBackAgainToExit": "한 번 더 누르면 종료됩니다",
"ratingSource": {
"critic": "",
"audience": "",
"imdb": "",
"tmdb": "",
"rottenTomatoes": "",
"simkl": "",
"mal": "",
"anilist": "",
"trakt": "",
"rottenTomatoesCritic": "",
"rottenTomatoesAudience": ""
"critic": "평론가",
"audience": "관객",
"imdb": "IMDb",
"tmdb": "TMDB",
"rottenTomatoes": "Rotten Tomatoes",
"simkl": "Simkl",
"mal": "MyAnimeList",
"anilist": "AniList",
"trakt": "Trakt",
"rottenTomatoesCritic": "Rotten Tomatoes 평론가",
"rottenTomatoesAudience": "Rotten Tomatoes 관객"
}
},
"screens": {
@@ -120,7 +120,7 @@
"darkTheme": "다크",
"oledTheme": "OLED",
"libraryDensity": "라이브러리 표시 밀도",
"displayScale": "",
"displayScale": "표시 배율",
"compact": "조밀하게",
"comfortable": "여유롭게",
"tvCornerSpotlightBackdrop": "모서리 스포트라이트 배경",
@@ -170,11 +170,11 @@
"bufferSizeMB": "${size}MB",
"bufferSizeAuto": "자동 (권장)",
"bufferSizeWarning": "${heap}MB 메모리를 사용할 수 있습니다. ${size}MB 버퍼는 재생에 영향을 줄 수 있습니다.",
"playbackBuffer": "",
"playbackBufferAuto": "",
"playbackBufferLarge": "",
"playbackBufferExtraLarge": "",
"playbackBufferDescription": "",
"playbackBuffer": "재생 버퍼",
"playbackBufferAuto": "자동 (권장)",
"playbackBufferLarge": "대형",
"playbackBufferExtraLarge": "초대형",
"playbackBufferDescription": "불안정한 연결에 대비해 더 많은 버퍼를 사용합니다. 버퍼 크기에 의해서도 제한됩니다.",
"defaultQualityTitle": "기본 화질",
"musicQualityTitle": "음악 음질",
"subtitleStyling": "자막 스타일",
@@ -208,9 +208,9 @@
"debugLoggingDescription": "문제 해결을 위해 상세 로깅 활성화",
"viewLogs": "로그 보기",
"viewLogsDescription": "애플리케이션 로그 확인",
"clearImageCache": "",
"clearImageCacheDescription": "",
"clearImageCacheSuccess": "",
"clearImageCache": "이미지 캐시 지우기",
"clearImageCacheDescription": "캐시된 아트워크와 썸네일을 지웁니다. 다시 다운로드할 때까지 이미지가 느리게 로드될 수 있습니다.",
"clearImageCacheSuccess": "이미지 캐시를 성공적으로 지웠습니다",
"resetSettings": "설정 재설정",
"resetSettingsDescription": "기본 설정으로 복원합니다. 되돌릴 수 없습니다.",
"resetSettingsSuccess": "설정 재설정 성공",
@@ -402,118 +402,118 @@
},
"fileInfo": {
"title": "파일 정보",
"overview": "",
"overview": "개요",
"video": "비디오",
"audio": "오디오",
"subtitles": "자막",
"images": "",
"dataStreams": "",
"lyrics": "",
"images": "내장 이미지",
"dataStreams": "데이터 스트림",
"lyrics": "가사",
"file": "파일",
"attachments": "",
"delivery": "",
"versionCounter": "",
"fileCounter": "",
"noStreams": "",
"copyPath": "",
"pathCopied": "",
"attachments": "첨부 파일",
"delivery": "재생 방식",
"versionCounter": "버전 ${index} / ${count}",
"fileCounter": "파일 ${index} / ${count}",
"noStreams": "서버에서 이 파일에 대한 스트림 정보를 보고하지 않았습니다.",
"copyPath": "경로 복사",
"pathCopied": "파일 경로가 복사되었습니다",
"codec": "코덱",
"codecTag": "",
"codecTag": "코덱 태그",
"resolution": "해상도",
"codedResolution": "",
"codedResolution": "코딩 해상도",
"bitrate": "비트레이트",
"frameRate": "프레임 속도",
"rotation": "",
"comment": "",
"audioDescription": "",
"headerCompression": "",
"sidecarFile": "",
"transportTimestamp": "",
"displayOffset": "",
"previewFailureCode": "",
"previewRetries": "",
"rotation": "회전",
"comment": "주석",
"audioDescription": "오디오 설명",
"headerCompression": "헤더 압축",
"sidecarFile": "사이드카 파일",
"transportTimestamp": "전송 타임스탬프",
"displayOffset": "표시 오프셋",
"previewFailureCode": "미리보기 오류 코드",
"previewRetries": "미리보기 재시도 횟수",
"aspectRatio": "종횡비",
"pixelAspectRatio": "",
"pixelAspectRatio": "픽셀 종횡비",
"profile": "프로파일",
"level": "",
"level": "레벨",
"bitDepth": "비트 심도",
"pixelFormat": "",
"pixelFormat": "픽셀 포맷",
"colorSpace": "색 공간",
"colorRange": "색 범위",
"colorPrimaries": "색 원색",
"colorTransfer": "",
"colorTransfer": "색상 전송",
"chromaSubsampling": "색차 서브샘플링",
"chromaLocation": "",
"scanType": "",
"interlaced": "",
"anamorphic": "",
"referenceFrames": "",
"dynamicRange": "",
"dolbyVision": "",
"dolbyVisionLevel": "",
"dolbyVisionVersion": "",
"dolbyVisionLayers": "",
"baseLayerCompatibility": "",
"avcBitstream": "",
"nalLengthSize": "",
"scalingMatrix": "",
"streamIdentifier": "",
"streamIndex": "",
"streamId": "",
"language": "",
"languageCode": "",
"streamTitle": "",
"chromaLocation": "크로마 위치",
"scanType": "주사 방식",
"interlaced": "비월 주사",
"anamorphic": "아나모픽",
"referenceFrames": "참조 프레임",
"dynamicRange": "동적 범위",
"dolbyVision": "Dolby Vision",
"dolbyVisionLevel": "Dolby Vision 레벨",
"dolbyVisionVersion": "Dolby Vision 버전",
"dolbyVisionLayers": "Dolby Vision 레이어",
"baseLayerCompatibility": "베이스 레이어 호환성",
"avcBitstream": "AVC 비트스트림",
"nalLengthSize": "NAL 길이 크기",
"scalingMatrix": "사용자 지정 스케일링 매트릭스",
"streamIdentifier": "스트림 식별자",
"streamIndex": "스트림 인덱스",
"streamId": "스트림 ID",
"language": "언어",
"languageCode": "언어 코드",
"streamTitle": "트랙 제목",
"channels": "채널",
"sampleRate": "",
"spatialAudio": "",
"textBased": "",
"subtitleFormat": "",
"provider": "",
"matchScore": "",
"externalDelivery": "",
"sidecarPath": "",
"sourceStream": "",
"temporary": "",
"timeBase": "",
"sampleRate": "샘플 레이트",
"spatialAudio": "공간 오디오",
"textBased": "텍스트 기반",
"subtitleFormat": "사이드카 포맷",
"provider": "제공자",
"matchScore": "일치 점수",
"externalDelivery": "별도 제공 가능",
"sidecarPath": "사이드카 경로",
"sourceStream": "복사 출처",
"temporary": "임시",
"timeBase": "시간 기준",
"overallBitrate": "전체 비트레이트",
"path": "경로",
"fileName": "",
"fileName": "파일 이름",
"size": "크기",
"totalSize": "",
"totalSize": "총 크기",
"container": "컨테이너",
"duration": "재생 시간",
"previewThumbnails": "",
"previewIndex": "",
"packetLength": "",
"filePresent": "",
"fileReadable": "",
"streamPath": "",
"previewThumbnails": "미리보기 썸네일",
"previewIndex": "미리보기 인덱스",
"packetLength": "패킷 길이",
"filePresent": "파일 있음",
"fileReadable": "서버에서 읽기 가능",
"streamPath": "스트림 경로",
"optimizedForStreaming": "스트리밍 최적화",
"has64bitOffsets": "64비트 오프셋",
"protocol": "",
"mediaType": "",
"sourceKind": "",
"optimizedVersion": "",
"optimizationTarget": "",
"deletedAt": "",
"remoteSource": "",
"infiniteStream": "",
"directPlay": "",
"directStream": "",
"transcoding": "",
"etag": "",
"versionId": "",
"fileId": "",
"defaultAudioTrack": "",
"defaultSubtitleTrack": "",
"subtitlesOff": "",
"flagDefault": "",
"flagForced": "",
"flagSelected": "",
"flagExternal": "",
"flagHearingImpaired": "",
"flagDub": "",
"flagOriginal": ""
"protocol": "프로토콜",
"mediaType": "미디어 유형",
"sourceKind": "소스 종류",
"optimizedVersion": "최적화 버전",
"optimizationTarget": "최적화 대상",
"deletedAt": "삭제됨",
"remoteSource": "원격 소스",
"infiniteStream": "무한 스트림",
"directPlay": "Direct Play",
"directStream": "Direct Stream",
"transcoding": "트랜스코딩",
"etag": "ETag",
"versionId": "버전 ID",
"fileId": "파일 ID",
"defaultAudioTrack": "기본 오디오 트랙",
"defaultSubtitleTrack": "기본 자막 트랙",
"subtitlesOff": "꺼짐",
"flagDefault": "기본",
"flagForced": "강제",
"flagSelected": "선택됨",
"flagExternal": "외부",
"flagHearingImpaired": "청각 장애인용",
"flagDub": "더빙",
"flagOriginal": "원본"
},
"mediaMenu": {
"markAsWatched": "시청 완료로 표시",
@@ -524,32 +524,32 @@
"shufflePlay": "무작위 재생",
"shuffleNotAvailableOffline": "오프라인에서는 무작위 재생을 사용할 수 없습니다",
"fileInfo": "파일 정보",
"deleteEpisodeFromServer": "",
"deleteSeasonFromServer": "",
"deleteShowFromServer": "",
"deleteMovieFromServer": "",
"deleteEpisodeTitle": "",
"deleteSeasonTitle": "",
"deleteShowTitle": "",
"deleteMovieTitle": "",
"deleteEpisodeConfirm": "",
"deleteSeasonConfirm": "",
"deleteShowConfirm": "",
"deleteMovieConfirm": "",
"deleteAnyway": "",
"confirmDeleteTarget": "",
"deleteEpisodeFromServer": "서버에서 에피소드 삭제",
"deleteSeasonFromServer": "서버에서 시즌 삭제",
"deleteShowFromServer": "서버에서 프로그램 삭제",
"deleteMovieFromServer": "서버에서 영화 삭제",
"deleteEpisodeTitle": "이 에피소드를 삭제할까요?",
"deleteSeasonTitle": "이 시즌을 삭제할까요?",
"deleteShowTitle": "이 프로그램을 삭제할까요?",
"deleteMovieTitle": "이 영화를 삭제할까요?",
"deleteEpisodeConfirm": "에피소드 삭제",
"deleteSeasonConfirm": "시즌 삭제",
"deleteShowConfirm": "프로그램 삭제",
"deleteMovieConfirm": "영화 삭제",
"deleteAnyway": "그래도 삭제",
"confirmDeleteTarget": "서버에서 ${title}을(를) 영구 삭제할까요?",
"deleteMultipleWarning": "모든 에피소드와 파일이 포함됩니다.",
"deleteEpisodeCountWarning": {
"other": ""
"other": "포함된 에피소드 ${n}개와 해당 파일이 모두 삭제됩니다."
},
"deleteMultiPartWarning": {
"other": ""
"other": "이 항목은 파일 ${n}개에 걸쳐 저장되어 있으며, 모든 파일이 삭제됩니다."
},
"deleteSharedFileHeading": {
"other": ""
"other": "같은 파일에 저장된 다른 에피소드 ${n}개도 함께 삭제됩니다:"
},
"deleteScopeUnverifiedProbeFailed": "",
"deleteScopeUnverifiedNoFileInfo": "",
"deleteScopeUnverifiedProbeFailed": "Plezy가 어떤 파일이 삭제될지 확인하지 못해 위 항목보다 더 많은 파일이 삭제될 수 있습니다. 취소하고 다시 시도하거나 그래도 삭제하세요.",
"deleteScopeUnverifiedNoFileInfo": "서버가 이 항목의 파일 정보를 제공하지 않아 Plezy가 어떤 파일이 삭제될지 확인할 수 없습니다. 위 항목보다 더 많은 파일이 삭제될 수 있습니다.",
"mediaDeletedSuccessfully": "미디어 항목이 성공적으로 삭제되었습니다",
"mediaFailedToDelete": "미디어 항목 삭제 실패",
"rate": "평가",
@@ -625,9 +625,9 @@
"playNext": "다음 재생",
"playButton": "재생",
"pauseButton": "일시정지",
"playbackPaused": "",
"playbackResumed": "",
"loadingVideo": "",
"playbackPaused": "일시정지됨",
"playbackResumed": "재생 중",
"loadingVideo": "동영상 로딩 중...",
"showPlaybackControls": "재생 컨트롤 표시",
"hidePlaybackControls": "재생 컨트롤 숨기기",
"seekBackwardButton": "${seconds}초 뒤로 이동",
@@ -698,7 +698,7 @@
},
"removedFromContinueWatching": "계속 시청 목록에서 제거됨",
"errorLoading": "오류: ${error}",
"searchPartialResults": "",
"searchPartialResults": "일부 미디어 서버를 검색하지 못했습니다. 사용 가능한 결과만 표시합니다.",
"streamInterrupted": "스트림이 중단되었습니다. 재생을 누르거나 탐색하여 다시 시도하세요.",
"liveStreamInterrupted": "라이브 스트림이 중단되었습니다. 재생을 눌러 다시 시도하세요.",
"fileInfoNotAvailable": "파일 정보가 없습니다",
@@ -737,8 +737,8 @@
"switchingToCompatiblePlayer": "호환되는 플레이어로 전환 중...",
"serverLimitTitle": "재생 실패",
"serverLimitBody": "서버 오류(HTTP 500). 대역폭/트랜스코딩 제한으로 세션이 거부된 것 같습니다. 소유자에게 조정을 요청하세요.",
"mediaUnreadableTitle": "",
"mediaUnreadableBody": "",
"mediaUnreadableTitle": "파일을 사용할 수 없음",
"mediaUnreadableBody": "서버에서 이 항목을 찾았지만 파일을 읽을 수 없습니다(HTTP 404). 파일이 이동되거나 삭제되었거나 저장소가 오프라인 상태일 수 있습니다. 서버 관리자에게 파일 확인과 라이브러리 재스캔을 요청하세요.",
"logsUploaded": "로그 업로드 완료",
"logsUploadFailed": "로그 업로드 실패",
"logId": "로그 ID"
@@ -857,8 +857,8 @@
"sessionExpiredOne": "${name}의 세션이 만료되었습니다",
"sessionExpiredMany": "${count}개 서버의 세션이 만료되었습니다",
"signInAgain": "다시 로그인",
"editMediaBrowserTitle": "",
"editMediaBrowserIntro": ""
"editMediaBrowserTitle": "${product} 연결 편집",
"editMediaBrowserIntro": "${serverName}의 URL을 추가하거나 제거하세요. Plezy는 연결 가능한 URL 중 지연 시간이 가장 낮은 URL을 사용합니다."
},
"discover": {
"title": "둘러보기",
@@ -888,7 +888,7 @@
},
"errors": {
"searchFailed": "검색 실패: ${error}",
"searchUnavailable": "",
"searchUnavailable": "검색이 어떤 미디어 서버에도 연결할 수 없습니다.",
"connectionTimeout": "${context} 로드 중 연결 시간 초과",
"connectionFailed": "미디어 서버에 연결할 수 없습니다",
"unableToLoad": "${context}을(를) 불러올 수 없습니다. 다시 시도하세요.",
@@ -1016,36 +1016,36 @@
"uploadLogs": "로그 업로드"
},
"startup": {
"failedTitle": "",
"failedBody": "",
"failedBodyRepairable": "",
"phaseLabel": "",
"showDetails": "",
"hideDetails": "",
"copyDetails": "",
"detailsCopied": "",
"uploadDetails": "",
"repairStorage": "",
"repairTitle": "",
"repairBodyCommon": "",
"repairBodyOneCredential": "",
"repairBodySignInsKept": "",
"repairBodySignInsLost": "",
"repairBodySessionsUncertain": "",
"repairConfirm": "",
"repairSucceeded": "",
"repairNeedsRestart": "",
"restartRequiredBody": "",
"quitPlezy": "",
"repairFailed": "",
"repairKeptSignIns": "",
"repairLostSignIns": "",
"repairLostSessions": "",
"backupTitle": "",
"backupWarning": "",
"deleteBackup": "",
"backupDeleted": "",
"previousFailureTitle": ""
"failedTitle": "Plezy를 시작하지 못했습니다",
"failedBody": "시작 중 문제가 발생했습니다. 아래 세부 정보에서 실패 원인을 확인할 수 있습니다.",
"failedBodyRepairable": "Plezy의 저장된 설정 파일이 손상되어 Plezy를 시작하려면 먼저 파일을 다시 만들어야 합니다. 재시도해도 해결되지 않습니다 — 저장소 복구를 선택하세요.",
"phaseLabel": "단계",
"showDetails": "세부 정보 표시",
"hideDetails": "세부 정보 숨기기",
"copyDetails": "세부 정보 복사",
"detailsCopied": "세부 정보가 클립보드에 복사되었습니다",
"uploadDetails": "세부 정보 업로드",
"repairStorage": "저장소 복구",
"repairTitle": "저장된 데이터를 복구할까요?",
"repairBodyCommon": "Plezy의 설정 파일이 손상되어 읽을 수 없습니다. 복구하면 모든 설정이 기본값으로 재설정됩니다.",
"repairBodyOneCredential": "저장된 로그인 정보 하나가 손상되어 읽을 수 없습니다. 복구하면 해당 로그인 정보만 제거되며 다른 설정은 그대로 유지됩니다.",
"repairBodySignInsKept": "서버와 프로필은 로그인 상태가 유지됩니다.",
"repairBodySignInsLost": "저장된 로그인 정보를 보호하는 키를 이 파일에서 복구할 수 없어 모든 서버와 프로필에 다시 로그인해야 합니다. 미디어 서버의 데이터에는 영향이 없습니다.",
"repairBodySessionsUncertain": "트래커(MAL, AniList, Simkl, Trakt)와 Seerr는 별도로 저장되며 유지 여부가 확실하지 않습니다. Plezy가 유지된 항목을 정확히 알려줄 것입니다.",
"repairConfirm": "복구",
"repairSucceeded": "저장소가 복구되었습니다",
"repairNeedsRestart": "저장소가 복구되었습니다 — 재시작 필요",
"restartRequiredBody": "데이터가 복구되었지만 Plezy는 이를 사용하려면 새로 시작해야 합니다. Plezy를 종료한 후 다시 열어주세요.",
"quitPlezy": "Plezy 종료",
"repairFailed": "복구 실패",
"repairKeptSignIns": "서버와 프로필이 계속 로그인 상태입니다.",
"repairLostSignIns": "저장된 로그인 정보를 보호하는 키를 복구할 수 없었습니다. 모든 서버와 프로필에 다시 로그인해야 합니다.",
"repairLostSessions": "트래커 또는 Seerr 연결이 하나 이상 끊어져 다시 연결해야 합니다.",
"backupTitle": "손상된 파일의 복사본이 보관되었습니다",
"backupWarning": "로그인 자격 증명이 포함되어 있습니다. 업로드하거나 공유하지 마세요.",
"deleteBackup": "복사본 삭제",
"backupDeleted": "복사본이 삭제되었습니다.",
"previousFailureTitle": "지난번에 Plezy를 시작하지 못했습니다"
},
"licenses": {
"relatedPackages": "관련 소프트웨어 패키지",
@@ -1102,131 +1102,131 @@
"searchPrompt": "${source}에서 영화와 TV 프로그램을 검색하세요.",
"searchFailed": "검색에 실패했습니다. 연결을 확인하고 다시 시도하세요.",
"badge": {
"rankPopular": "",
"rankAiring": "",
"rankRated": "",
"rankFavorited": "",
"rankTrending": "",
"rankSeasonal": "",
"watchingNow": "",
"available": "",
"partiallyAvailable": "",
"availableIn4k": "",
"requested": "",
"pendingApproval": "",
"processing": "",
"declined": "",
"requestFailed": "",
"requested4k": "",
"seasonsAvailable": "",
"nextEpisodeIn": "",
"nextAiringIn": "",
"episodesShort": "",
"minutesPerEpisode": "",
"adult": ""
"rankPopular": "#${n} 인기",
"rankAiring": "#${n} 방영 중",
"rankRated": "#${n} 평가",
"rankFavorited": "#${n} 즐겨찾기",
"rankTrending": "#${n} 트렌드",
"rankSeasonal": "#${n} ${season}",
"watchingNow": "${n}명 시청 중",
"available": "이용 가능",
"partiallyAvailable": "부분 이용 가능",
"availableIn4k": "4K 이용 가능",
"requested": "요청됨",
"pendingApproval": "승인 대기 중",
"processing": "처리 중",
"declined": "거절됨",
"requestFailed": "요청 실패",
"requested4k": "4K 요청됨",
"seasonsAvailable": "시즌 ${available}/${total}",
"nextEpisodeIn": "${episode}화 · ${duration} 후",
"nextAiringIn": "${duration} 후 다음 화",
"episodesShort": "${n}화",
"minutesPerEpisode": "${n}분/화",
"adult": "18+"
},
"stats": {
"listed": "",
"viewersDay": "",
"viewersWeek": "",
"viewersMonth": "",
"viewersYear": "",
"viewersAllTime": "",
"planning": "",
"favorited": "",
"dropRate": "",
"listed": "${n}명 등록",
"viewersDay": "오늘 ${n}명 시청",
"viewersWeek": "이번 주 ${n}명 시청",
"viewersMonth": "이번 달 ${n}명 시청",
"viewersYear": "올해 ${n}명 시청",
"viewersAllTime": "시청자 ${n}명",
"planning": "${n}명 볼 예정",
"favorited": "즐겨찾기 ${n}명",
"dropRate": "${percent} 하차",
"comments": {
"other": ""
"other": "댓글 ${n}개"
},
"votes": "",
"watching": "",
"completed": "",
"onHold": "",
"dropped": ""
"votes": "투표 ${n}개",
"watching": "시청 중 ${n}명",
"completed": "완료 ${n}명",
"onHold": "보류 ${n}명",
"dropped": "하차 ${n}명"
},
"season": {
"winter": "",
"spring": "",
"summer": "",
"fall": "",
"withYear": ""
"winter": "겨울",
"spring": "",
"summer": "여름",
"fall": "가을",
"withYear": "${season} ${year}년"
},
"format": {
"tv": "",
"tvShort": "",
"movie": "",
"special": "",
"ova": "",
"ona": "",
"music": "",
"other": ""
"tv": "TV",
"tvShort": "TV 단편",
"movie": "영화",
"special": "스페셜",
"ova": "OVA",
"ona": "ONA",
"music": "음악",
"other": "기타"
},
"sourceMaterial": {
"original": "",
"manga": "",
"lightNovel": "",
"novel": "",
"visualNovel": "",
"game": "",
"webComic": "",
"musicRelease": "",
"otherMedia": ""
"original": "오리지널",
"manga": "만화",
"lightNovel": "라이트 노벨",
"novel": "소설",
"visualNovel": "비주얼 노벨",
"game": "게임",
"webComic": "웹툰",
"musicRelease": "음악",
"otherMedia": "기타"
},
"creditRole": {
"director": "",
"writer": "",
"producer": "",
"creator": "",
"composer": ""
"director": "감독",
"writer": "각본",
"producer": "프로듀서",
"creator": "제작자",
"composer": "작곡"
},
"relation": {
"prequel": "",
"sequel": "",
"sideStory": "",
"spinOff": "",
"alternativeVersion": "",
"summary": "",
"parentStory": "",
"adaptation": "",
"other": ""
"prequel": "프리퀄",
"sequel": "시퀄",
"sideStory": "사이드 스토리",
"spinOff": "스핀오프",
"alternativeVersion": "대체 버전",
"summary": "요약",
"parentStory": "원작",
"adaptation": "각색",
"other": "관련"
},
"broadcast": "",
"broadcastWithZone": "",
"broadcast": "${day} ${time} 방영",
"broadcastWithZone": "${day} ${time} ${timezone} 방영",
"detail": {
"originalTitle": "",
"alsoKnownAs": "",
"studios": "",
"country": "",
"language": "",
"released": "",
"physicalRelease": "",
"ended": "",
"addedOn": "",
"yourRating": "",
"budget": "",
"revenue": "",
"contentAdvisory": "",
"tags": "",
"revealSpoilerTags": "",
"links": "",
"watchOn": "",
"watchTrailer": "",
"openOn": "",
"crew": "",
"ratings": "",
"schedule": "",
"originalTitle": "원제",
"alsoKnownAs": "다른 이름",
"studios": "스튜디오",
"country": "국가",
"language": "언어",
"released": "출시일",
"physicalRelease": "디스크 출시",
"ended": "종영",
"addedOn": "${date}에 추가됨",
"yourRating": "내 평점",
"budget": "제작비",
"revenue": "흥행 수익",
"contentAdvisory": "연령 등급",
"tags": "태그",
"revealSpoilerTags": "스포일러 태그 표시",
"links": "링크",
"watchOn": "시청처",
"watchTrailer": "예고편 보기",
"openOn": "${site}에서 열기",
"crew": "제작진",
"ratings": "평점",
"schedule": "방영 일정",
"recommendedByUsers": {
"other": ""
"other": "사용자 ${n}명이 추천"
},
"recommendedBy": "",
"favoritedBy": "",
"unairedEpisodes": "",
"recommendedByPercent": "",
"relatedTitles": "",
"background": ""
"recommendedBy": "${who} 추천",
"favoritedBy": "${who} 즐겨찾기",
"unairedEpisodes": "미방영 ${n}개",
"recommendedByPercent": "시청자의 ${percent} 추천",
"relatedTitles": "관련 작품",
"background": "배경"
},
"totalResults": {
"other": ""
"other": "결과 ${n}개"
}
},
"liveTv": {
@@ -1492,15 +1492,15 @@
"editSyncRule": "동기화 규칙 편집",
"removeSyncRule": "동기화 규칙 제거",
"removeSyncRuleConfirm": "\"${title}\" 동기화를 중단하시겠습니까? 다운로드된 에피소드는 유지됩니다.",
"removeListSyncRuleConfirm": "",
"deleteSyncRuleDownloads": "",
"deleteSyncRuleDownloadsDescription": "",
"removeListSyncRuleConfirm": "\"${title}\" 동기화를 중지할까요?",
"deleteSyncRuleDownloads": "연결된 다운로드도 삭제",
"deleteSyncRuleDownloadsDescription": "다른 동기화 규칙이나 프로필에서 사용하는 다운로드는 유지됩니다.",
"syncRuleCreated": "동기화 규칙 생성됨 — 미시청 에피소드 ${count}개 유지",
"syncRuleUpdated": "동기화 규칙 업데이트됨",
"syncRuleRemoved": "동기화 규칙 제거됨",
"syncRuleAndDownloadsRemoved": "",
"syncRuleCleanupBusy": "",
"syncRuleCleanupUnavailable": "",
"syncRuleAndDownloadsRemoved": "동기화 규칙과 연결된 다운로드가 삭제되었습니다",
"syncRuleCleanupBusy": "동기화 규칙이 현재 업데이트 중입니다. 잠시 후 다시 시도하세요.",
"syncRuleCleanupUnavailable": "연결된 다운로드를 안전하게 확인할 수 없습니다. 서버에 다시 연결한 후 시도하거나, 다운로드를 삭제하지 않고 규칙만 제거하세요.",
"syncedNewEpisodes": "${title}의 새 에피소드 ${count}개 동기화됨",
"activeSyncRules": "동기화 규칙",
"noSyncRules": "동기화 규칙 없음",
@@ -1865,7 +1865,7 @@
"anilist": "AniList",
"simkl": "Simkl",
"seerr": "Seerr",
"mdblist": ""
"mdblist": "MDBList"
},
"deviceCode": {
"title": "${service}에서 Plezy 활성화",
@@ -1898,12 +1898,12 @@
}
},
"addServer": {
"addMediaBrowserTitle": "",
"addMediaBrowserTitle": "${product} 서버 추가",
"serverUrls": "서버 URL",
"serverUrlsHelper": "쉼표로 구분하여 여러 URL을 입력할 수 있습니다.",
"findServer": "서버 찾기",
"searchingLocalMediaBrowserServers": "",
"localMediaBrowserServers": "",
"searchingLocalMediaBrowserServers": "로컬 ${product} 서버를 찾는 중...",
"localMediaBrowserServers": "로컬 ${product} 서버",
"username": "사용자 이름",
"password": "비밀번호",
"signIn": "로그인",
@@ -1915,15 +1915,15 @@
"addPlexTitle": "Plex로 로그인",
"pinExpired": "로그인 전에 PIN이 만료되었습니다. 다시 시도하세요.",
"failedToRegisterAccount": "계정 등록 실패: ${error}",
"enterMediaBrowserUrlError": "",
"enterMediaBrowserUrlError": "${product} 서버 URL을 입력하세요",
"addConnectionTitle": "연결 추가",
"addConnectionTitleScoped": "${name}에 추가",
"signInWithPlexCard": "Plex로 로그인",
"signInWithPlexCardSubtitle": "이 기기를 승인합니다. 공유 서버가 추가됩니다.",
"signInWithPlexCardSubtitleScoped": "Plex 계정을 승인합니다. Home 사용자는 프로필이 됩니다.",
"connectToMediaBrowserCard": "",
"connectToMediaBrowserCardSubtitle": "",
"connectToMediaBrowserCardSubtitleScoped": "",
"connectToMediaBrowserCard": "${product}에 연결",
"connectToMediaBrowserCardSubtitle": "서버 URL, 사용자 이름, 비밀번호를 입력하세요.",
"connectToMediaBrowserCardSubtitleScoped": "${product} 서버에 로그인하세요. ${name}에 연결됩니다.",
"borrowFromAnotherProfile": "다른 프로필에서 빌리기",
"borrowFromAnotherProfileSubtitle": "다른 프로필의 연결을 재사용합니다. PIN으로 보호된 프로필에는 PIN이 필요합니다."
}