diff --git a/LocalDevVPN/ContentView.swift b/LocalDevVPN/ContentView.swift index de2aadb..a49a4df 100644 --- a/LocalDevVPN/ContentView.swift +++ b/LocalDevVPN/ContentView.swift @@ -1320,6 +1320,8 @@ struct SettingsView: View { Text("korean").tag("ko") Text("TChinese").tag("zh-Hant") Text("french").tag("fr") + Text("japanese").tag("ja") + } .onChange(of: selectedLanguage) { newValue in let languageCode = newValue diff --git a/LocalDevVPN/Localization/en.lproj/Localizable.strings b/LocalDevVPN/Localization/en.lproj/Localizable.strings index c84e8b0..5529c82 100644 --- a/LocalDevVPN/Localization/en.lproj/Localizable.strings +++ b/LocalDevVPN/Localization/en.lproj/Localizable.strings @@ -50,6 +50,8 @@ "korean" = "Korean"; "TChinese" = "Traditional Chinese"; "french" = "French"; +"japanese" = "Japanese"; + /* MARK: Settings */ @@ -151,4 +153,4 @@ "restart_title" = "Restart"; "restart_message" = "To apply the changes, you need to restart the application."; "confirmYes" = "Yes"; -"confirmNo" = "No"; \ No newline at end of file +"confirmNo" = "No"; diff --git a/LocalDevVPN/Localization/es.lproj/Localizable.strings b/LocalDevVPN/Localization/es.lproj/Localizable.strings index 0bc2a62..dbe0194 100644 --- a/LocalDevVPN/Localization/es.lproj/Localizable.strings +++ b/LocalDevVPN/Localization/es.lproj/Localizable.strings @@ -50,6 +50,7 @@ "korean" = "Coreano"; "TChinese" = "Chino tradicional"; "french" = "Francés"; +"japanese" = "Japonés"; /* MARK: Configuración */ @@ -149,4 +150,4 @@ "restart_title" = "Reiniciar"; "restart_message" = "Para aplicar los cambios, es necesario reiniciar la aplicación."; "confirmYes" = "Sí"; -"confirmNo" = "No"; \ No newline at end of file +"confirmNo" = "No"; diff --git a/LocalDevVPN/Localization/fr.lproj/Localizable.strings b/LocalDevVPN/Localization/fr.lproj/Localizable.strings index 5836c8b..c269b06 100644 --- a/LocalDevVPN/Localization/fr.lproj/Localizable.strings +++ b/LocalDevVPN/Localization/fr.lproj/Localizable.strings @@ -67,6 +67,7 @@ "korean" = "Coréen"; "TChinese" = "Chinois traditionnel"; "french" = "Français"; +"japanese" = "Japonais"; "settings" = "Paramètres"; "done" = "Valider"; @@ -150,4 +151,4 @@ "restart_title" = "Redémarrer"; "restart_message" = "Pour appliquer les modifications, vous devez redémarrer l'application."; "confirmYes" = "Oui"; -"confirmNo" = "Non"; \ No newline at end of file +"confirmNo" = "Non"; diff --git a/LocalDevVPN/Localization/it.lproj/Localizable.strings b/LocalDevVPN/Localization/it.lproj/Localizable.strings index 01a8ebf..6182f3e 100644 --- a/LocalDevVPN/Localization/it.lproj/Localizable.strings +++ b/LocalDevVPN/Localization/it.lproj/Localizable.strings @@ -50,6 +50,7 @@ "korean" = "Coreano"; "TChinese" = "Cinese Tradizionale"; "french" = "Francese"; +"japanese" = "Giapponese"; /* MARK: Settings*/ @@ -149,4 +150,4 @@ "restart_title" = "Riavvia"; "restart_message" = "Per applicare le modifiche, è necessario riavviare l'applicazione."; "confirmYes" = "Si"; -"confirmNo" = "No"; \ No newline at end of file +"confirmNo" = "No"; diff --git a/LocalDevVPN/Localization/ja.lproj/Localizable.strings b/LocalDevVPN/Localization/ja.lproj/Localizable.strings new file mode 100644 index 0000000..5ef0a1a --- /dev/null +++ b/LocalDevVPN/Localization/ja.lproj/Localizable.strings @@ -0,0 +1,153 @@ +/* MARK: Start Screen */ + +"current_status" = "現在の状態"; + +"disconnected" = "切断済み"; +"connecting" = "接続中"; +"connected" = "接続済み"; +"disconnecting" = "切断中"; +"error" = "エラー"; + +"local_tunnel_active" = "ローカルトンネルは起動中です"; +"local_tunnel_inactive" = "ローカルトンネルは停止中です"; + +"connected_to_ip" = "%@ に接続しました"; +"connected_at" = "接続日時"; +"ios_might_ask_you_to_allow_the_vpn" = "iOS から VPN の許可を求められる場合があります"; +"disconnecting_safely" = "安全に切断しています…"; +"open_settings_to_review_details" = "詳細を確認するには設定を開いてください"; +"tap_connect_to_create_the_tunnel" = "「接続」をタップしてトンネルを作成"; + +"connection" = "接続"; +"start_or_stop_the_secure_local_tunnel" = "セキュアなローカルトンネルを開始または停止します。"; + +"connect" = "接続"; +"disconnect" = "切断"; +"connecting_ellipsis" = "接続中..."; +"disconnecting_ellipsis" = "切断中..."; +"server_address_name" = "LocalDevVPN ローカルトンネル"; + +"auto-connect_on_launch" = "起動時に自動接続"; +"resume_your_last_state_automatically" = "前回の状態を自動的に復元します。"; + +"session_details" = "セッションの詳細"; +"live_stats_while_the_tunnel_is_connected" = "トンネル接続中のリアルタイム統計情報。"; +"local_device_ip" = "ローカルデバイス IP"; + +"local_tunnel_details" = "トンネルの詳細"; +"time_connected" = "接続時間"; +"status" = "状態"; +"active" = "有効"; +"network_interface" = "ネットワークインターフェース"; +"local" = "ローカル"; +"assigned_ip" = "割り当てられた IP"; + +/* 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" = "言語"; + +/*MARK: Locales*/ +"english" = "英語"; +"spanish" = "スペイン語"; +"italian" = "イタリア語"; +"polish" = "ポーランド語"; +"korean" = "韓国語"; +"TChinese" = "繁体字中国語"; +"french" = "フランス語"; + +"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" = "第三者への提供なし"; +"no_third_party_sharing_description" = "データを収集していないため、第三者と共有することもありません。このアプリには解析、トラッキング、データ収集の仕組みは含まれていません。"; +"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" = "• ネットワーク拡張機能の権限が許可されているか確認する"; +"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" = "このアプリは誰でも利用でき、iOS 上でネットワーク機能をテストする必要がある開発者にとって役立ちます。"; +"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 のネットワーク拡張 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 はローカルトンネルを作成するだけで、通信を外部サーバーへ送信することはありません。すべての通信はデバイス内にとどまり、プライバシーと安全性が確保されます。データが収集されたり、第三者と共有されたりすることもありません。"; +"setup_nav" = "設定"; +"setup_get_started" = "はじめる"; +"setup_next" = "次へ"; +"setup_skip" = "スキップ"; + +/*MARK: Restart pop-up*/ +"restart_title" = "再起動"; +"restart_message" = "変更を適用するには、アプリを再起動する必要があります。"; +"confirmYes" = "はい"; +"confirmNo" = "いいえ"; diff --git a/LocalDevVPN/Localization/ko.lproj/Localizable.strings b/LocalDevVPN/Localization/ko.lproj/Localizable.strings index be731a1..0dd1854 100644 --- a/LocalDevVPN/Localization/ko.lproj/Localizable.strings +++ b/LocalDevVPN/Localization/ko.lproj/Localizable.strings @@ -50,6 +50,7 @@ "korean" = "한국어"; "TChinese" = "중국어(번체)"; "french" = "프랑스어"; +"japanese" = "일본어"; /* MARK: Settings */ @@ -150,4 +151,4 @@ "restart_title" = "재시작"; "restart_message" = "변경사항을 적용할려면 앱을 재시작해야 합니다."; "confirmYes" = "네"; -"confirmNo" = "아니요"; \ No newline at end of file +"confirmNo" = "아니요"; diff --git a/LocalDevVPN/Localization/pl.lproj/Localizable.strings b/LocalDevVPN/Localization/pl.lproj/Localizable.strings index f1b7f59..c0084f3 100644 --- a/LocalDevVPN/Localization/pl.lproj/Localizable.strings +++ b/LocalDevVPN/Localization/pl.lproj/Localizable.strings @@ -51,6 +51,7 @@ "korean" = "koreański"; "TChinese" = "Tradycyjny chiński"; "french" = "Francuski"; +"japanese" = "Japoński"; /* MARK: Settings */ @@ -150,4 +151,4 @@ "restart_title" = "Restartuj"; "restart_message" = "Aby zastosować zmiany, należy ponownie uruchomić aplikację."; "confirmYes" = "Tak"; -"confirmNo" = "Nie"; \ No newline at end of file +"confirmNo" = "Nie"; diff --git a/LocalDevVPN/Localization/zh-Hant.lproj/Localizable.strings b/LocalDevVPN/Localization/zh-Hant.lproj/Localizable.strings index 832dd82..25fdc28 100644 --- a/LocalDevVPN/Localization/zh-Hant.lproj/Localizable.strings +++ b/LocalDevVPN/Localization/zh-Hant.lproj/Localizable.strings @@ -67,6 +67,7 @@ "korean" = "韓文"; "TChinese" = "繁體中文"; "french" = "法語"; +"japanese" = "日语"; "settings" = "設定"; "done" = "完成"; @@ -150,4 +151,4 @@ "restart_title" = "重新啟動"; "restart_message" = "要套用變更,必須重新啟動應用程式。"; "confirmYes" = "是"; -"confirmNo" = "不"; \ No newline at end of file +"confirmNo" = "不";