From fdea9307bbfb8f3f62cfb795bfb3ca58c38c33d9 Mon Sep 17 00:00:00 2001 From: TAE-IN Sappho KIM Date: Tue, 5 Mar 2024 23:52:48 +0900 Subject: [PATCH] feat(translations): add Korean translation (#1275) * Create Korean translation * More natrual translation on Korean * Add credit of Korean translation --- lib/collections/language_codes.dart | 8 +- lib/l10n/app_ko.arb | 291 ++++++++++++++++++++++++++++ lib/l10n/l10n.dart | 2 + 3 files changed, 297 insertions(+), 4 deletions(-) create mode 100644 lib/l10n/app_ko.arb diff --git a/lib/collections/language_codes.dart b/lib/collections/language_codes.dart index 4754de469..4b7a3a906 100644 --- a/lib/collections/language_codes.dart +++ b/lib/collections/language_codes.dart @@ -353,10 +353,10 @@ abstract class LanguageLocals { // name: "Kongo", // nativeName: "KiKongo", // ), - // "ko": const ISOLanguageName( - // name: "Korean", - // nativeName: "한국어 (韓國語), 조선말 (朝鮮語)", - // ), + "ko": const ISOLanguageName( + name: "Korean", + nativeName: "한국어 (韓國語), 조선말 (朝鮮語)", + ), // "ku": const ISOLanguageName( // name: "Kurdish", // nativeName: "Kurdî, كوردی‎", diff --git a/lib/l10n/app_ko.arb b/lib/l10n/app_ko.arb new file mode 100644 index 000000000..dac5b72ae --- /dev/null +++ b/lib/l10n/app_ko.arb @@ -0,0 +1,291 @@ +{ + "guest": "게스트", + "browse": "찾아보기", + "search": "검색", + "library": "라이브러리", + "lyrics": "가사", + "settings": "설정", + "genre_categories_filter": "카테고리 혹은 장르별로 불러오기", + "genre": "장르", + "personalized": "맞춤 추천", + "featured": "인기", + "new_releases": "신곡", + "songs": "노래", + "playing_track": "{track} 을 재생", + "queue_clear_alert": "현재 재생 대기열을 없앱니다。{track_length} 곡이 제거됩니다。\n계속 진행할까요?", + "load_more": "더 불러오기", + "playlists": "플레이리스트", + "artists": "아티스트", + "albums": "앨범", + "tracks": "곡", + "downloads": "다운로드한 곡", + "filter_playlists": "플레이리스트를 필터링", + "liked_tracks": "좋아하는 곡", + "liked_tracks_description": "좋아요를 남긴 곡들", + "create_playlist": "플레이리스트 생성", + "create_a_playlist": "플레이리스트를 생성", + "create": "생성", + "cancel": "취소", + "playlist_name": "플레이리스트명", + "name_of_playlist": "플레이리스트의 이름", + "description": "설명", + "public": "공개", + "collaborative": "공유 플레이리스트", + "search_local_tracks": "기기에 저장된 곡을 검색하기", + "play": "재생", + "delete": "삭제", + "none": "없음", + "sort_a_z": "A-Z 순으로 정렬", + "sort_z_a": "Z-A 순으로 정렬", + "sort_artist": "아티스트 순으로 정렬", + "sort_album": "앨범 순으로 정렬", + "sort_tracks": "곡명 순으로 정렬", + "currently_downloading": "현재 ({tracks_length}) 곡 다운로드 중", + "cancel_all": "모두 취소", + "filter_artist": "아티스트 필터링", + "followers": "{followers} 팔로워", + "add_artist_to_blacklist": "이 아티스트를 블랙리스트에 추가", + "top_tracks": "인기곡", + "fans_also_like": "애청자들이 좋아하는 곡", + "loading": "불러오는 중...", + "artist": "아티스트", + "blacklisted": "블랙리스트", + "following": "팔로우 중", + "follow": "팔로우하기", + "artist_url_copied": "아티스트의 URL 주소를 클립보드에 복사함", + "added_to_queue": "{tracks} 곡을 대기열에 추가함", + "filter_albums": "앨범 필터링", + "synced": "동기화됨", + "plain": "그대로", + "shuffle": "셔플", + "search_tracks": "곡 검색하기", + "released": "공개일", + "error": "에러", + "title": "타이틀", + "time": "길이", + "more_actions": "다른 작업", + "download_count": "({count}) 곡 다운로드", + "add_count_to_playlist": "플레이리스트에 ({count}) 곡을 추가", + "add_count_to_queue": "대기열에 ({count}) 곡을 추가", + "play_count_next": "이 다음에 ({count}) 곡을 재생", + "album": "앨범", + "copied_to_clipboard": "{data} 를 클립보드에 복사함", + "add_to_following_playlists": "{track} 을 이 플레이리스트에 추가", + "add": "추가", + "added_track_to_queue": "대기열에 {track} 을 추가함", + "add_to_queue": "대기열에 추가", + "track_will_play_next": "{track} 을 이 다음에 재생", + "play_next": "이 다음에 재생", + "removed_track_from_queue": "대기열에서 {track} 를 제거함", + "remove_from_queue": "대기열에서 제거", + "remove_from_favorites": "즐겨찾기에서 제거", + "save_as_favorite": "즐겨찾기에 추가", + "add_to_playlist": "플레이리스트에 추가", + "remove_from_playlist": "플레이리스트에서 제거", + "add_to_blacklist": "블랙리스트에 추가", + "remove_from_blacklist": "블랙리스트에서 제거", + "share": "공유", + "mini_player": "미니 플레이어", + "slide_to_seek": "앞뒤로 슬라이드하여 탐색", + "shuffle_playlist": "플레이리스트를 섞기", + "unshuffle_playlist": "플레이리스트를 섞지 않기", + "previous_track": "이전 곡", + "next_track": "다음 곡", + "pause_playback": "일시정지", + "resume_playback": "재개", + "loop_track": "반복 재생", + "repeat_playlist": "플레이리스트 반복", + "queue": "재생 대기열", + "alternative_track_sources": "대체가능한 음악 서버", + "download_track": "곡 다운로드", + "tracks_in_queue": "대기열에 {tracks} 곡이 있음", + "clear_all": "모두 제거", + "show_hide_ui_on_hover": "마우스를 올리면 UI를 표시/숨김", + "always_on_top": "항상 위에 표시", + "exit_mini_player": "미니 플레이어 닫기", + "download_location": "다운로드 경로", + "account": "계정", + "login_with_spotify": "Spotify 계정으로 로그인", + "connect_with_spotify": "Spotify에 연결", + "logout": "로그아웃", + "logout_of_this_account": "이 계정에서 로그아웃", + "language_region": "언어 & 지역", + "language": "언어", + "system_default": "시스템 기본설정", + "market_place_region": "마켓플레이스 지역", + "recommendation_country": "추천 국가", + "appearance": "디자인", + "layout_mode": "레이아웃 모드", + "override_layout_settings": "반응형 레이아웃 모드 설정 덮어씌우기", + "adaptive": "적응형", + "compact": "컴팩트", + "extended": "확장", + "theme": "테마", + "dark": "다크", + "light": "라이트", + "system": "시스템과 동일", + "accent_color": "보조색", + "sync_album_color": "앨범 색상", + "sync_album_color_description": "앨범아트의 주요 색상을 보조색으로 사용", + "playback": "재생", + "audio_quality": "음질", + "high": "높음", + "low": "낮음", + "pre_download_play": "재생할 곡을 미리 다운로드", + "pre_download_play_description": "스트리밍 방식을 쓰는 대신 파일 단위로 다운로드 받고 재생 (인터넷 대역폭이 높은 환경에서 추천)", + "skip_non_music": "음악이 아닌 부분을 스킵 (SponsorBlock)", + "blacklist_description": "블랙리스트에 추가된 곡과 아티스트", + "wait_for_download_to_finish": "현재 진행중인 다운로드가 끝날 때까지 기다려주세요", + "desktop": "데스크톱", + "close_behavior": "닫을 때의 동작", + "close": "닫기", + "minimize_to_tray": "트레이로 최소화", + "show_tray_icon": "시스템 트레이 아이콘 표시", + "about": "앱 정보", + "u_love_spotube": "Spotube... 사랑하시죠?", + "check_for_updates": "업데이트 확인", + "about_spotube": "Spotube에 관해", + "blacklist": "블랙리스트", + "please_sponsor": "후원해주시면 감사하겠습니다.", + "spotube_description": "Spotube는, 경량에 크로스플랫폼인데다 무료이기까지한 스포티파이 클라이언트입니다", + "version": "버전", + "build_number": "빌드 번호", + "founder": "창시자", + "repository": "리포지토리", + "bug_issues": "버그 및 이슈", + "made_with": "❤️을 담아 방글라데시에서 만듦", + "kingkor_roy_tirtho": "Kingkor Roy Tirtho", + "copyright": "© 2021-{current_year} Kingkor Roy Tirtho", + "license": "라이선스", + "add_spotify_credentials": "먼저 Spotify의 로그인정보를 추가하기", + "credentials_will_not_be_shared_disclaimer": "걱정마세요. 개인정보를 수집하거나 공유하지 않습니다.", + "know_how_to_login": "어떻게 하는건지 모르겠나요?", + "follow_step_by_step_guide": "사용법 확인하기", + "spotify_cookie": "Spotify {name} Cookies", + "cookie_name_cookie": "{name} Cookies", + "fill_in_all_fields": "모든 필드에 정보를 입력해주세요", + "submit": "제출", + "exit": "종료", + "previous": "이전으로", + "next": "다음으로", + "done": "완료", + "step_1": "1단계", + "first_go_to": "가장 먼저 먼저 들어갈 곳은 ", + "login_if_not_logged_in": "그리고 로그인을 하지 않았다면 로그인해주세요", + "step_2": "2단계", + "step_2_steps": "1. 로그인에 성공하면、F12나 마우스 우클릭 > 검사(Inspect)을 눌러 브라우저의 개발자 도구(devtools)를 열어주세요.\n2. 애플리케이션 (Application) 탭 (Chrome, Edge, Brave 등) 또는 스토리지 탭 (Firefox, Palemoon 등)을 열어주세요.\n3. 쿠키 (Cookies) 섹션으로 들어가서, https://accounts.spotify.com 서브섹션으로 들어가주세요.", + "step_3": "3단계", + "success_emoji": "성공🥳", + "success_message": "성공적으로 스포티파이 게정으로 로그인했습니다. 잘했어요!", + "step_4": "4단계", + "something_went_wrong": "알 수 없는 이유로 동작에 실패했습니다.", + "piped_instance": "Piped 서버의 인스턴스", + "piped_description": "곡 탐색에 사용할 Piped 서버 인스턴스", + "piped_warning": "몇몇 서버는 제대로 동작하지 않을 수 있습니다. 본인 책임 하에 이용해주세요.", + "generate_playlist": "플레이리스트 생성", + "track_exists": "곡 {track} 은 이미 리스트에 있습니다", + "replace_downloaded_tracks": "다운로드한 모든 곡을 교체", + "skip_download_tracks": "다운로드가 끝난 곡을 모두 건너뛰기", + "do_you_want_to_replace": "현재 곡을 교체하시겠습니까?", + "replace": "교체", + "skip": "건너뛰기", + "select_up_to_count_type": "{type}을 {count}개까지 선택", + "select_genres": "장르 선택", + "add_genres": "장르 추가", + "country": "국가", + "number_of_tracks_generate": "생성할 곡 수", + "acousticness": "반주 구간 (Acousticness)", + "danceability": "흥겨운 정도 (Danceability)", + "energy": "에너지 (Energy)", + "instrumentalness": "기악성 (Instrumentalness)", + "liveness": "생동감 (Liveness)", + "loudness": "라우드니스 (Loudness)", + "speechiness": "회화성 (Speechniss)", + "valence": "감정가 (Valence)", + "popularity": "인기도 (Popularity)", + "key": "조성 (키)", + "duration": "길이 (초)", + "tempo": "템포 (BPM)", + "mode": "장조", + "time_signature": "박자", + "short": "짧음", + "medium": "중간", + "long": "긺", + "min": "최소", + "max": "최대", + "target": "목표", + "moderate": "보통", + "deselect_all": "모두 선택해제", + "select_all": "모두 선택", + "are_you_sure": "괜찮겠습니까?", + "generating_playlist": "커스텀 플레이리스트를 생성하는 중...", + "selected_count_tracks": "{count} 곡이 선택되었습니다.", + "download_warning": "모든 트랙을 대량으로 다운로드하는 것은 명백한 불법 복제이며 음악 창작 사회에 피해를 입히는 행위입니다. 이 점을 알아주셨으면 합니다. 항상 아티스트의 노력을 존중하고 응원해 주세요.", + "download_ip_ban_warning": "참고로, 평소보다 과도한 다운로드 요청으로 인해 YouTube에서 IP가 차단될 수 있습니다. IP 차단은 해당 IP 기기에서 최소 2~3개월 동안 (로그인한 상태에서도) YouTube를 사용할 수 없음을 의미합니다. 그리고 이런 일이 발생하더라도 스포튜브는 어떠한 책임도 지지 않습니다.", + "by_clicking_accept_terms": "'동의'를 클릭하면 다음 약관에 동의하는 것입니다:", + "download_agreement_1": "알고 있습니다. 전 나쁜 사람입니다.", + "download_agreement_2": "제가 할 수 있는 모든 곳에서 아티스트를 지원할 것이며, 저는 그들의 작품을 살 돈이 없기 때문에 이렇게 하는 것뿐입니다.", + "download_agreement_3": "본인은 YouTube에서 내 IP가 차단될 수 있음을 완전히 알고 있으며, 현재 내 행동으로 인해 발생하는 사고에 대해 Spotube 또는 그 소유자/기여자에게 책임을 묻지 않습니다.", + "decline": "거절", + "accept": "동의", + "details": "상세", + "youtube": "YouTube", + "channel": "채널", + "likes": "좋아요", + "dislikes": "싫어요", + "views": "조회수", + "streamUrl": "스트림 URL", + "stop": "중지", + "sort_newest": "최근에 추가된 순으로 정렬", + "sort_oldest": "예전에 추가된 순으로 정렬", + "sleep_timer": "취침 타이머", + "mins": "{minutes} 분", + "hours": "{hours} 시간", + "hour": "{hours} 시간", + "custom_hours": "시간 설정", + "logs": "로그", + "developers": "개발", + "not_logged_in": "로그인하지 않았습니다", + "search_mode": "검색 모드", + "audio_source": "오디오 출처", + "ok": "알겠습니다", + "failed_to_encrypt": "암호화에 실패했습니다", + "encryption_failed_warning": "Spotube는 암호화를 사용하여 데이터를 안전하게 저장합니다. 하지만 그렇게 하지 못했습니다. 따라서 안전하지 않은 저장소로 대체됩니다.\n리눅스를 사용하는 경우, 비밀 서비스(gnome-keyring, kde-wallet, keepassxc 등)가 설치되어 있는지 확인하세요.", + "querying_info": "정보를 얻는 중...", + "piped_api_down": "Piped API가 응답하지 않습니다", + "piped_down_error_instructions": "Piped 인스턴스 {pipedInstance}가 현재 다운되었습니다.\n\n인스턴스를 변경하거나 'API 유형'을 공식 YouTube API로 변경하세요.\n\n변경 후 앱을 다시 시작해야 합니다.", + "you_are_offline": "현재 오프라인입니다", + "connection_restored": "인터넷에 다시 연결되었습니다", + "use_system_title_bar": "시스템 타이틀바를 사용", + "update_playlist": "플레이리스트를 업데이트", + "update": "업데이트", + "crunching_results": "결과를 처리하는 중...", + "search_to_get_results": "결과를 얻으려면 검색해주세요", + "use_amoled_mode": "AMOLED모드를 사용", + "pitch_dark_theme": "검정색 기반의 어두운 테마", + "normalize_audio": "오디오 노멀라이즈", + "change_cover": "커버 변경", + "add_cover": "커버 추가", + "restore_defaults": "기본값으로 복원", + "download_music_codec": "다운로드 음악 코덱", + "streaming_music_codec": "스트리밍 음악 코덱", + "login_with_lastfm": "Last.fm에 로그인", + "connect": "연결", + "disconnect_lastfm": "Last.fm에서 연결 해제", + "disconnect": "연결 해제", + "username": "사용자명", + "password": "비밀번호", + "login": "로그인", + "login_with_your_lastfm": "내 Last.fm 계정으로로그인", + "scrobble_to_lastfm": "Scrobble to Last.fm", + "go_to_album": "앨범으로 이동", + "discord_rich_presence": "Discord Rich Presence", + "browse_all": "모두 탐색", + "genres": "장르", + "explore_genres": "장르 탐색", + "step_3_steps": "\"sp_dc\" 쿠키의 값을 복사", + "step_4_steps": "복사한 \"sp_dc\"값을 붙여넣기", + "friends": "친구", + "no_lyrics_available": "죄송하지만 이 곡의 가사를 찾지 못했습니다", + "@@locale": "ko" +} diff --git a/lib/l10n/l10n.dart b/lib/l10n/l10n.dart index 364e542ae..7aec682a6 100644 --- a/lib/l10n/l10n.dart +++ b/lib/l10n/l10n.dart @@ -10,6 +10,7 @@ /// mdksec@github => Turkish /// Stephan-P@github, SecularSteve@github => Dutch /// doannc2212@github => Vietnamese +/// sappho192@github => Korean import 'package:flutter/material.dart'; class L10n { @@ -26,6 +27,7 @@ class L10n { const Locale('hi', 'IN'), const Locale('it', 'IT'), const Locale('ja', 'JP'), + const Locale('ko', 'KR'), const Locale('nl', 'NL'), const Locale('pl', 'PL'), const Locale('pt', 'PT'),