diff --git a/LocalDevVPN.xcodeproj/project.pbxproj b/LocalDevVPN.xcodeproj/project.pbxproj index fecd826..5b68065 100644 --- a/LocalDevVPN.xcodeproj/project.pbxproj +++ b/LocalDevVPN.xcodeproj/project.pbxproj @@ -200,6 +200,7 @@ es, it, pl, + ko, ); mainGroup = 4EB3C74F2D96631A00C1B22C; minimizedProjectReferenceProxies = 1; diff --git a/LocalDevVPN/ContentView.swift b/LocalDevVPN/ContentView.swift index 8267c57..af1e421 100644 --- a/LocalDevVPN/ContentView.swift +++ b/LocalDevVPN/ContentView.swift @@ -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) { diff --git a/LocalDevVPN/Localization/en.lproj/Localizable.strings b/LocalDevVPN/Localization/en.lproj/Localizable.strings index 4fed88a..3b999f2 100644 --- a/LocalDevVPN/Localization/en.lproj/Localizable.strings +++ b/LocalDevVPN/Localization/en.lproj/Localizable.strings @@ -28,6 +28,7 @@ "spanish" = "Spanish"; "italian" = "Italian"; "polish" = "Polish"; +"korean" = "Korean"; /* MARK: Settings */ diff --git a/LocalDevVPN/Localization/es.lproj/Localizable.strings b/LocalDevVPN/Localization/es.lproj/Localizable.strings index 758f150..0373ac8 100644 --- a/LocalDevVPN/Localization/es.lproj/Localizable.strings +++ b/LocalDevVPN/Localization/es.lproj/Localizable.strings @@ -28,6 +28,7 @@ "spanish" = "Español"; "italian" = "Italiano"; "polish" = "Polaco"; +"korean" = "Coreano"; /* MARK: Configuración */ diff --git a/LocalDevVPN/Localization/it.lproj/Localizable.strings b/LocalDevVPN/Localization/it.lproj/Localizable.strings index 98e01b6..b65364d 100644 --- a/LocalDevVPN/Localization/it.lproj/Localizable.strings +++ b/LocalDevVPN/Localization/it.lproj/Localizable.strings @@ -28,6 +28,7 @@ "spanish" = "Spagnolo"; "italian" = "Italiano"; "polish" = "Polacco"; +"korean" = "Coreano"; /* MARK: Settings*/ diff --git a/LocalDevVPN/Localization/ko.lproj/Localizable.strings b/LocalDevVPN/Localization/ko.lproj/Localizable.strings new file mode 100644 index 0000000..557b1fb --- /dev/null +++ b/LocalDevVPN/Localization/ko.lproj/Localizable.strings @@ -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 = "아니요"; diff --git a/LocalDevVPN/Localization/pl.lproj/Localizable.strings b/LocalDevVPN/Localization/pl.lproj/Localizable.strings index 74a0f00..e3bb124 100644 --- a/LocalDevVPN/Localization/pl.lproj/Localizable.strings +++ b/LocalDevVPN/Localization/pl.lproj/Localizable.strings @@ -29,6 +29,7 @@ "spanish" = "Hiszpański"; "italian" = "Włoski"; "polish" = "Polski"; +"korean" = "koreański"; /* MARK: Settings */