Add Korean localization (#2)

* Add Korean localization

* Add Korean localization
This commit is contained in:
Jeongmin
2025-12-10 00:43:09 +09:00
committed by se2crid
parent 456fb72ae6
commit b1f140a0cb
7 changed files with 139 additions and 1 deletions

View File

@@ -200,6 +200,7 @@
es,
it,
pl,
ko,
);
mainGroup = 4EB3C74F2D96631A00C1B22C;
minimizedProjectReferenceProxies = 1;

View File

@@ -991,6 +991,7 @@ struct SettingsView: View {
Text("spanish").tag("es")
Text("italian").tag("it")
Text("polish").tag("pl")
Text("korean").tag("ko")
}
.onChange(of: selectedLanguage) { newValue in
let languageCode = newValue
@@ -1396,7 +1397,7 @@ struct SetupPageView: View {
class LanguageManager: ObservableObject {
static let shared = LanguageManager()
@Published var currentLanguage: String = Locale.current.languageCode ?? "en"
private let supportedLanguages = ["en", "es", "it", "pl"]
private let supportedLanguages = ["en", "es", "it", "pl", "ko"]
func updateLanguage(to languageCode: String) {
if supportedLanguages.contains(languageCode) {

View File

@@ -28,6 +28,7 @@
"spanish" = "Spanish";
"italian" = "Italian";
"polish" = "Polish";
"korean" = "Korean";
/* MARK: Settings */

View File

@@ -28,6 +28,7 @@
"spanish" = "Español";
"italian" = "Italiano";
"polish" = "Polaco";
"korean" = "Coreano";
/* MARK: Configuración */

View File

@@ -28,6 +28,7 @@
"spanish" = "Spagnolo";
"italian" = "Italiano";
"polish" = "Polacco";
"korean" = "Coreano";
/* MARK: Settings*/

View File

@@ -0,0 +1,132 @@
/* MARK: Start Screen */
"disconnected" = "연결 끊김";
"connecting" = "연결중";
"connected" = "연결됨";
"disconnecting" = "연결 해제 중";
"error" = "오류";
"local_tunnel_active" = "로컬 터널 활성화됨";
"local_tunnel_inactive" = "로컬 터널 비활성화됨";
"connect" = "연결";
"disconnect" = "연결 끊기";
"connecting_ellipsis" = "연결중...";
"disconnecting_ellipsis" = "연결 해제 중...";
"server_address_name" = "LocalDevVPN 로컬 터널";
"local_tunnel_details" = "터널 정보";
"time_connected" = "연결 지속 시간";
"status" = "상태";
"active" = "활성화됨";
"network_interface" = "네트워크 인터페이스";
"local" = "로컬";
"assigned_ip" = "햘당된 IP";
/* MARK: Locales */
"english" = "영어";
"spanish" = "스페인어";
"italian" = "이탈리아어";
"polish" = "폴란드어";
"korean" = "한국어";
/* MARK: Settings */
"connection_settings" = "연결 설정";
"auto_connect_on_launch" = "실행 시 자동 연결";
"connection_logs" = "연결 로그";
"network_configuration" = "네트워크 구성";
"device_ip" = "기기 IP";
"tunnel_ip" = "터널 IP";
"subnet_mask" = "서브넷 마스크";
"app_information" = "앱 정보";
"privacy_policy" = "개인정보 처리방침";
"data_collection_policy" = "데이터 수집 정책";
"app_version" = "앱 버전";
"help_and_support" = "도움말";
"language" = "언어 설정";
"dropdown_language" = "언어";
"settings" = "설정";
"done" = "완료";
"warning_alert" = "주의";
"warning_message" = "터널 IP 설정을 변경하면 네트워크 연결이 중단될 수 있습니다. 확실히 알고 있는 경우에만 진행하십시오.";
"understand_button" = "이해했습니다.";
"data_collection_policy_title" = "데이터 수집 정책";
"no_data_collection" = "데이터 수집 없음";
"no_data_collection_description" = "LocalDevVPN은 사용자 데이터, 트래픽 정보 또는 브라우징 활동을 수집하지 않습니다. 이 앱은 완전히 사용자의 기기 내에서만 유지되는 로컬 네트워크 터널을 생성해요.";
"local_processing_only" = "로컬에서만 처리";
"local_processing_only_description" = "모든 네트워크 트래픽과 구성은 사용자의 기기에서 로컬로 처리돼요. 어떠한 정보도 기기를 벗어나거나 인터넷을 통해 전송되지 않습니다.";
"no_third_party_sharing" = "제3자와 공유하지 않음";
"no_third_party_sharing_description" = "데이터를 수집하지 않으므로 제3자와의 공유는 없습니다. 본 앱에는 분석, 추적 또는 데이터 수집 메커니즘이 없습니다.";
"why_use_network_permissions" = "네트워크 권한을 사용하는 이유는 무엇인가요?";
"why_use_network_permissions_description" = "LocalDevVPN은 기기에 로컬 네트워크 인터페이스를 생성하기 위해 네트워크 확장 권한이 필요합니다. 이는 오직 로컬 개발 및 테스트 목적으로만 사용됩니다.";
"our_promise" = "저희의 약속";
"our_promise_description" = "우리는 개인정보 보호와 투명성을 중요하게 생각합니다. 이 앱은 개발자가 로컬 서버에 연결하고 테스트할 수 있도록 설계되었으며, 개인정보 관련 위험이 없습니다.";
"data_collection_policy_nav" = "데이터 수집 정책";
"logs_nav" = "로그";
"faq_header" = "자주 묻는 질문";
"faq_q1" = "이 앱은 어떤 기능을 하나요?";
"faq_q1_a1" = "LocalDevVPN은 개발 및 테스트를 위해 로컬 네트워크 인터페이스를 생성합니다. 외부 서버로 트래픽이 전달되지 않으며, 모든 데이터는 기기 안에 머무릅니다.";
"faq_common_use_cases" = "주요 사용 사례:";
"faq_case1" = "• 로컬 서버 기반 웹 앱 테스트";
"faq_case2" = "• 네트워크 기능 개발 및 디버깅";
"faq_case3" = "• 로컬 개발 환경 접근";
"faq_case4" = "• 특정 네트워크 구성이 필요한 앱 테스트";
"faq_q2" = "전통적인 VPN인가요?";
"faq_q2_a1" = "아니요, LocalDevVPN은 일반적인 VPN 서비스가 아닙니다. 다음과 같은 기능을 제공하지 않습니다:";
"faq_q2_point1" = "• 외부 서버를 통한 트래픽 라우팅";
"faq_q2_point2" = "• 인터넷 사용 시 개인정보 보호 또는 익명성 제공";
"faq_q2_point3" = "• 원격 VPN 서버 연결";
"faq_q2_point4" = "• 인터넷 트래픽 암호화 또는 라우팅";
"faq_q2_a2" = "LocalDevVPN은 개발 및 테스트를 위해 로컬 네트워크 인터페이스만 생성합니다.";
"faq_q3" = "연결이 실패하는 이유는 무엇인가요?";
"faq_q3_a1" = "연결 실패는 시스템 권한 문제, 잘못된 설정, 또는 iOS 제한 사항으로 인해 발생할 수 있습니다.";
"faq_troubleshoot_header" = "문제 해결 단계:";
"faq_troubleshoot1" = "• 네트워크 확장(Network Extension) 권한을 승인했는지 확인하세요";
"faq_troubleshoot2" = "• 앱을 다시 실행해보세요";
"faq_troubleshoot3" = "• IP 설정이 유효한지 확인하세요";
"faq_troubleshoot4" = "• 문제가 계속되면 기기를 재부팅하세요";
"faq_q4" = "이 앱은 누구를 위한 것인가요?";
"faq_q4_intro" = "LocalDevVPN은 주로 다음과 같은 사용자를 위해 설계되었습니다:";
"faq_q4_case1" = "• 로컬 웹 서버를 테스트하는 개발자";
"faq_q4_case2" = "• 네트워크 기능을 테스트하는 앱 개발자";
"faq_q4_case3" = "• 격리된 환경에서 앱을 테스트하는 QA 엔지니어";
"faq_q4_case4" = "• iOS에서 로컬 서비스에 접근해야 하는 사용자";
"faq_q4_conclusion" = "이 앱은 공개적으로 제공되며, 네트워크 기능이 필요한 개발자에게 특히 유용합니다.";
"business_model_header" = "비즈니스 모델";
"biz_q1" = "LocalDevVPN은 어떻게 작동하나요?";
"biz_q1_a1" = "LocalDevVPN은 완전히 무료로 제공되는 앱입니다. 유료 기능, 구독, 인앱 결제는 없습니다.";
"biz_key_points_header" = "모델 주요 특징:";
"biz_point1" = "• 특정 기업이나 단체에 속하지 않습니다";
"biz_point2" = "• 누구나 App Store에서 다운로드하여 사용할 수 있습니다";
"biz_point3" = "• 계정 생성이 필요하지 않습니다";
"biz_point4" = "• 모든 기능을 무료로 제공합니다";
"biz_point5" = "• iOS 커뮤니티를 위한 공개 유틸리티로 개발·유지됩니다";
"app_info_header" = "앱 정보";
"requires_ios" = "iOS 14.0 이상 필요";
"uses_network_extension" = "Apple Network Extension API 사용";
"help_and_support_nav" = "도움말 & 지원";
"setup_welcome_title" = "LocalDevVPN에 오신 것을 환영합니다";
"setup_welcome_description" = "개발자를 위한 간단한 로컬 네트워크 터널";
"setup_welcome_details" = "LocalDevVPN은 개발, 테스트, 그리고 로컬 서버 접근을 위해 로컬 네트워크 인터페이스를 생성합니다. 이 앱은 사용자 데이터를 수집하지 않으며 외부 서버로 트래픽을 전송하지 않습니다.";
"setup_why_title" = "왜 LocalDevVPN을 사용하나요?";
"setup_why_description" = "iOS 개발자에게 최적";
"setup_why_details" = "• 로컬 웹 서버 및 개발 환경 접근\n• 네트워크 구성이 필요한 앱 테스트\n• 복잡한 설정 없이 로컬 서비스 접속\n• 격리된 테스트 환경 구축";
"setup_easy_title" = "간편한 사용";
"setup_easy_description" = "원탭으로 연결";
"setup_easy_details" = "LocalDevVPN은 간단하게 설계되었습니다. 연결 버튼을 탭하면 미리 구성된 로컬 터널이 즉시 활성화됩니다.";
"setup_privacy_title" = "프라이버시 중심";
"setup_privacy_description" = "데이터는 기기 내부에만 보관됩니다";
"setup_privacy_details" = "LocalDevVPN은 외부 서버로 트래픽을 전달하지 않는 로컬 터널을 생성합니다. 모든 트래픽은 기기 안에 머물며, 개인정보 보호 및 보안을 보장합니다. 어떤 데이터도 수집하거나 제3자와 공유하지 않습니다.";
"setup_nav" = "설정";
"setup_get_started" = "시작하기";
"setup_next" = "다음";
"setup_skip" = "건너뛰기";
/*MARK: Restart pop-up*/
restart_title = "재시작";
restart_message = "변경사항을 적용할려면 앱을 재시작해야 합니다.";
confirmYes = "네";
confirmNo = "아니요";

View File

@@ -29,6 +29,7 @@
"spanish" = "Hiszpański";
"italian" = "Włoski";
"polish" = "Polski";
"korean" = "koreański";
/* MARK: Settings */