From c42ccfbcdf46341d1350dc213d9970838d015a3f Mon Sep 17 00:00:00 2001 From: CodeST <694468528@qq.com> Date: Wed, 4 Mar 2026 19:08:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BD=E5=AE=B6=E5=8C=96=E8=AF=AD=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Localization/es.lproj/Localizable.strings | 226 +++++++++++++++++ .../Localization/id.lproj/Localizable.strings | 227 ++++++++++++++++++ .../pt-PT.lproj/Localizable.strings | 227 ++++++++++++++++++ .../zh-Hant.lproj/Localizable.strings | 226 +++++++++++++++++ keyBoard.xcodeproj/project.pbxproj | 28 +++ keyBoard/es.lproj/LaunchScreen.strings | 1 + keyBoard/es.lproj/Main.strings | 1 + keyBoard/id.lproj/LaunchScreen.strings | 1 + keyBoard/id.lproj/Main.strings | 1 + keyBoard/pt-PT.lproj/LaunchScreen.strings | 1 + keyBoard/pt-PT.lproj/Main.strings | 1 + keyBoard/zh-Hant.lproj/LaunchScreen.strings | 1 + keyBoard/zh-Hant.lproj/Main.strings | 1 + 13 files changed, 942 insertions(+) create mode 100644 Shared/Localization/es.lproj/Localizable.strings create mode 100644 Shared/Localization/id.lproj/Localizable.strings create mode 100644 Shared/Localization/pt-PT.lproj/Localizable.strings create mode 100644 Shared/Localization/zh-Hant.lproj/Localizable.strings create mode 100644 keyBoard/es.lproj/LaunchScreen.strings create mode 100644 keyBoard/es.lproj/Main.strings create mode 100644 keyBoard/id.lproj/LaunchScreen.strings create mode 100644 keyBoard/id.lproj/Main.strings create mode 100644 keyBoard/pt-PT.lproj/LaunchScreen.strings create mode 100644 keyBoard/pt-PT.lproj/Main.strings create mode 100644 keyBoard/zh-Hant.lproj/LaunchScreen.strings create mode 100644 keyBoard/zh-Hant.lproj/Main.strings diff --git a/Shared/Localization/es.lproj/Localizable.strings b/Shared/Localization/es.lproj/Localizable.strings new file mode 100644 index 0000000..0d206a9 --- /dev/null +++ b/Shared/Localization/es.lproj/Localizable.strings @@ -0,0 +1,226 @@ +/* + Localizable.strings (Español) + Keys shared by App and Keyboard extension +*/ + +"perm_title_enable" = "Activar teclado"; +"perm_steps" = "1 Activar teclado > 2 Permitir acceso total"; +"perm_open_settings" = "Abrir en Ajustes"; +"perm_help" = "¿No encuentras el teclado? Ve a Ajustes > General > Teclado > Teclados > Añadir nuevo teclado"; + +// Home page & language test +"home_title" = "Inicio"; +"home_input_placeholder" = "Escribe aquí para probar el teclado"; +"home_item_lang_test" = "Prueba de idioma"; +"home_item_keyboard_permission" = "Guía de permisos del teclado"; + +"lang_test_title" = "Prueba de idioma"; +"lang_toggle" = "Cambiar idioma"; +"current_lang" = "Actual: %@"; +"common_back" = "Atrás"; + +// search +"Recommended Skin" = "Skin recomendado"; +"Historical Search" = "Búsqueda histórica"; +"Search Themes" = "Buscar temas"; +"Search" = "Buscar"; + +// Login & account +"Log In" = "Iniciar sesión"; +"Signed in successfully" = "Inicio de sesión correcto"; +"Sign-in failed" = "Error al iniciar sesión"; +"Sign in to unlock all features" = "Inicia sesión para desbloquear todas las funciones"; +"We'll use Apple for a quick, secure sign-in" = "Usaremos Apple para un inicio de sesión rápido y seguro"; +"Log In To Key Of Love" = "Iniciar sesión en Key Of Love"; +"Sign in with Apple requires iOS 13 or later" = "Iniciar sesión con Apple requiere iOS 13 o posterior"; +"Invalid login credential" = "Credenciales de inicio no válidas"; +"No token returned" = "No se devolvió token"; +"Failed to save login state" = "No se pudo guardar el estado de inicio"; +"Sign-in canceled" = "Inicio de sesión cancelado"; +"Please switch to the key of love app to finish signing in" = "Cambia a la app Key of Love para finalizar el inicio de sesión"; +"Continue Via Email" = "Continuar por correo"; +"Login With Email Password" = "Iniciar sesión con correo y contraseña"; +"Enter Email Address" = "Introduce la dirección de correo"; +"Enter Password" = "Introduce la contraseña"; +"Enter Repeat Password" = "Repite la contraseña"; +"Enter Your Email Address" = "Introduce tu dirección de correo"; +"Enter The Password" = "Introduce la contraseña"; +"Please Enter Your Email Address" = "Por favor, introduce tu dirección de correo"; +"Please Enter The Password" = "Por favor, introduce la contraseña"; +"Please complete all fields" = "Por favor, completa todos los campos"; +"The two passwords do not match" = "Las dos contraseñas no coinciden"; +"Reset Password" = "Restablecer contraseña"; +"Next Step" = "Siguiente paso"; +"Enter Email Verification Code" = "Introduce el código de verificación del correo"; +"Verify Email" = "Verificar correo"; +"We have already sent it to the email address %@. Please enter the 6-digit verification code from the email to verify your mailbox." = "Ya lo enviamos a la dirección de correo %@. Introduce el código de verificación de 6 dígitos del correo para verificar tu buzón."; +"Forgot Password?" = "¿Olvidaste la contraseña?"; +"Already Have An Account?" = "¿Ya tienes una cuenta?"; +"Don't Have An Account?" = "¿No tienes una cuenta?"; +"Sign Up" = "Registrarse"; +"Sign In" = "Iniciar sesión"; +"Login" = "Iniciar sesión"; + + +// Language switching prompt +"Change Language" = "Cambiar idioma"; +"Changing language will reload the Home screen." = "Cambiar el idioma recargará la pantalla de inicio."; + +// Generic buttons & tips +"OK" = "OK"; +"Confirm" = "Confirmar"; +"Cancel" = "Cancelar"; +"Close" = "Cerrar"; +"Delete" = "Eliminar"; +"Clear" = "Limpiar"; +"Paste" = "Pegar"; +"Send" = "Enviar"; +"Retry" = "Reintentar"; +"Success" = "Éxito"; +"Failed" = "Falló"; +"Network error" = "Error de red"; +"Saved" = "Guardado"; +"Copy Success" = "Copiado con éxito"; +"Email Copy Success" = "Correo copiado con éxito"; + +// Network +"Network unavailable" = "Red no disponible"; +"Network disabled (Full Access may be off)" = "Red desactivada (el acceso total puede estar desactivado)"; +"Invalid URL" = "URL no válida"; +"Invalid response" = "Respuesta no válida"; +"No data" = "Sin datos"; +"Failed to parse JSON" = "No se pudo analizar JSON"; +"Parse failed" = "Error al analizar"; +"No data received" = "No se recibieron datos"; +"Request failed\nURL: %@\nStatus: %ld\nError: %@\nUserInfo: %@" = "Solicitud fallida\nURL: %@\nEstado: %ld\nError: %@\nUserInfo: %@"; +"Response OK (JSON)\nURL: %@\nStatus: %ld\nContent-Type: %@\nData: %@" = "Respuesta OK (JSON)\nURL: %@\nEstado: %ld\nContent-Type: %@\nDatos: %@"; +"Response decode failed (JSON)\nURL: %@\nError: %@" = "Falló la decodificación de la respuesta (JSON)\nURL: %@\nError: %@"; +"HTTP GET\nURL: %@\nHeaders: %@\nParams: %@" = "HTTP GET\nURL: %@\nHeaders: %@\nParámetros: %@"; +"Invalid response\nURL: %@\nReason: %@" = "Respuesta no válida\nURL: %@\nMotivo: %@"; +"Please check this app's wireless-data permission or network connection in Settings." = "Revisa en Ajustes el permiso de datos móviles de esta app o la conexión de red."; + +// Permission & guides +"Turn on Allow Full Access to experience all features" = "Activa \"Permitir acceso total\" para disfrutar de todas las funciones"; +"Allow Full Access" = "Permitir acceso total"; +"Follow: Settings → General → Keyboard → Keyboards → %@ → Allow Full Access" = "Sigue: Ajustes → General → Teclado → Teclados → %@ → Permitir acceso total"; +"Go enable" = "Ir a activar"; +"Open Settings" = "Abrir Ajustes"; +"After pasting the conversation in the keyboard, choose a reply style" = "Después de pegar la conversación en el teclado, elige un estilo de respuesta"; +"Current: %@" = "Actual: %@"; + +// Home / Tab labels +"Home" = "Inicio"; +"Shop" = "Tienda"; +"Circle" = "Círculo"; +"Mine" = "Mi"; +"Hot" = "Popular"; +"Rank" = "Ranking"; +"Recharge Now" = "Recargar ahora"; +"By clicking Pay, you indicate your agreement to the" = "Al hacer clic en Pagar, indicas tu acuerdo con el"; +"《Embership Agreement》" = "《Acuerdo de membresía》"; + +// Mine +"Settings" = "Ajustes"; +"Personal" = "Personal"; +"My Keyboard" = "Mi teclado"; +"Notice" = "Avisos"; +"invite" = "invitar"; +"Feedback" = "Comentarios"; +"E-mail" = "Correo"; +"Agreement" = "Acuerdo"; +"Privacy Policy" = "Política de privacidad"; +"Notice" = "Avisos"; +"Feedback" = "Comentarios"; +// Notice & Feedback detail pages +"Notification Setting" = "Configuración de notificaciones"; +"Please Enter The Content" = "Por favor, introduce el contenido"; +"Commit" = "Enviar"; +"Nickname" = "Apodo"; +"Gender" = "Género"; +"Input Language" = "Idioma de entrada"; +"Choose Layout" = "Elegir distribución"; +"Multiple Keyboard Layouts" = "Varios diseños de teclado"; +"This language has a default skin configured. It won't be auto-applied when switching language." = "Este idioma tiene un skin predeterminado configurado. No se aplicará automáticamente al cambiar de idioma."; +"Please configure a default skin for this language before switching." = "Configura un skin predeterminado para este idioma antes de cambiar."; +"Default skin install failed. Please check skin resource configuration." = "La instalación del skin predeterminado falló. Revisa la configuración de recursos del skin."; +"User ID" = "ID de usuario"; +"Modify Gender" = "Modificar género"; +"Male" = "Hombre"; +"Female" = "Mujer"; +"The Third Gender" = "Tercer género"; + +" Paste Ta's Words" = " Pegar las palabras de Ta"; + + +// Search & history +"Clear history" = "Borrar historial"; +"Delete all history?" = "¿Eliminar todo el historial?"; +"Delete this tag?" = "¿Eliminar esta etiqueta?"; +"This action cannot be undone" = "Esta acción no se puede deshacer"; +"Loaded more successfully" = "Se cargó más con éxito"; + +// Skins & shop +"Skin Center" = "Centro de skins"; +"No skins yet" = "Aún no hay skins"; +"Pull down to refresh" = "Desliza hacia abajo para actualizar"; +"Download & Apply" = "Descargar y aplicar"; +"Applied. Switch to the keyboard to view." = "Aplicado. Cambia al teclado para verlo."; +"Apply failed" = "Aplicación fallida"; +"Open agreement" = "Abrir acuerdo"; +"Shop Mall" = "Centro comercial"; +"My skin" = "Mi skin"; +"my_skin_selected_count" = "Seleccionados: %ld skins"; +"Editor" = "Editor"; +"Cancel" = "Cancelar"; +"Delete" = "Eliminar"; +"Points\nMall" = "Tienda\nde puntos"; +"Log Out" = "Cerrar sesión"; +"Cancel Account" = "Cancelar cuenta"; +"After cancellation, your account will be deactivated and local login data will be cleared. Continue?" = "Después de cancelar, tu cuenta se desactivará y se borrarán los datos de inicio locales. ¿Continuar?"; +"Please enter your password" = "Por favor, introduce tu contraseña"; +"Cancel Account Notice" = "Aviso de cancelación de cuenta"; +"Confirm Cancel Account" = "Confirmar cancelación de cuenta"; +"Ranking List" = "Lista de ranking"; +"Persona circle" = "Círculo de persona"; +"Clear" = "Limpiar"; +"Copy" = "Copiar"; +"Report报" = "Reportar"; +"Thumbs Up" = "Me gusta"; +"Chatting" = "Chat"; + +// Payment & IAP +"Payment successful" = "Pago exitoso"; +"Payment failed" = "Pago fallido"; +"Purchase: %@ Coins %@" = "Compra: %@ monedas %@"; +"Pay clicked" = "Pago pulsado"; +"Points Recharge" = "Recarga de puntos"; +"Recharge" = "Recargar"; +"Consumption Record" = "Registro de consumo"; +"My Points" = "Mis puntos"; +"Consumption Details" = "Detalles de consumo"; +"No data" = "Sin datos"; + + +// Misc +"Test" = "Prueba"; +"Settings content placeholder" = "Marcador de contenido de ajustes"; + +// English-only keys with Chinese equivalents +"Change The Nickname" = "Cambiar el apodo"; +"Please Enter The Modified Nickname" = "Por favor, introduce el nuevo apodo"; +"Save" = "Guardar"; +"Please copy the text first" = "Por favor, copia el texto primero"; +"Purchase cancelled." = "Compra cancelada."; +"Purchase pending approval." = "Compra pendiente de aprobación."; +"Unable to obtain transaction payload." = "No se pudo obtener el payload de la transacción."; +"Resume Purchase" = "Reanudar compra"; +"Downloading..." = "Descargando..."; + +// Chinese-only keys for compatibility +"Apple 登录需要 iOS 13 及以上版本" = "Iniciar sesión con Apple requiere iOS 13 o posterior"; +"HTTP GET\nURL: %@\nHeaders: %@\n参数: %@" = "HTTP GET\nURL: %@\nHeaders: %@\nParámetros: %@"; +"响应成功(JSON)\nURL: %@\n状态: %ld\nContent-Type: %@\n数据: %@" = "Respuesta OK (JSON)\nURL: %@\nEstado: %ld\nContent-Type: %@\nDatos: %@"; +"响应解析失败(JSON)\nURL: %@\n错误: %@" = "Falló el análisis de la respuesta (JSON)\nURL: %@\nError: %@"; +"无效响应\nURL: %@\n说明: %@" = "Respuesta no válida\nURL: %@\nDetalle: %@"; +"暂无数据" = "Sin datos"; +"请求失败\nURL: %@\n状态: %ld\n错误: %@\nUserInfo: %@" = "Solicitud fallida\nURL: %@\nEstado: %ld\nError: %@\nUserInfo: %@"; diff --git a/Shared/Localization/id.lproj/Localizable.strings b/Shared/Localization/id.lproj/Localizable.strings new file mode 100644 index 0000000..9cecac0 --- /dev/null +++ b/Shared/Localization/id.lproj/Localizable.strings @@ -0,0 +1,227 @@ +/* + Localizable.strings (Bahasa Indonesia) + Keys shared by App and Keyboard extension +*/ + +"perm_title_enable" = "Aktifkan Keyboard"; +"perm_steps" = "1 Aktifkan Keyboard > 2 Izinkan Akses Penuh"; +"perm_open_settings" = "Buka di Pengaturan"; +"perm_help" = "Tidak menemukan keyboard? Buka Pengaturan > Umum > Keyboard > Keyboard > Tambah Keyboard Baru"; + +// Home page & language test +"home_title" = "Beranda"; +"home_input_placeholder" = "Ketik di sini untuk menguji keyboard"; +"home_item_lang_test" = "Tes Bahasa"; +"home_item_keyboard_permission" = "Panduan Izin Keyboard"; + +"lang_test_title" = "Tes Bahasa"; +"lang_toggle" = "Ganti Bahasa"; +"current_lang" = "Saat ini: %@"; +"common_back" = "Kembali"; + +// search +"Recommended Skin" = "Skin Rekomendasi"; +"Historical Search" = "Riwayat Pencarian"; +"Search Themes" = "Cari Tema"; +"Search" = "Cari"; + +// Login & account +"Log In" = "Masuk"; +"Signed in successfully" = "Berhasil masuk"; +"Sign-in failed" = "Gagal masuk"; +"Sign in to unlock all features" = "Masuk untuk membuka semua fitur"; +"We'll use Apple for a quick, secure sign-in" = "Kami akan menggunakan Apple untuk masuk yang cepat dan aman"; +"Log In To Key Of Love" = "Masuk ke Key Of Love"; +"Sign in with Apple requires iOS 13 or later" = "Masuk dengan Apple memerlukan iOS 13 atau lebih baru"; +"Invalid login credential" = "Kredensial masuk tidak valid"; +"No token returned" = "Tidak ada token yang dikembalikan"; +"Failed to save login state" = "Gagal menyimpan status masuk"; +"Sign-in canceled" = "Masuk dibatalkan"; +"Please switch to the key of love app to finish signing in" = "Silakan beralih ke aplikasi Key of Love untuk menyelesaikan masuk"; +"Continue Via Email" = "Lanjutkan via Email"; +"Login With Email Password" = "Masuk dengan Email dan Kata Sandi"; +"Enter Email Address" = "Masukkan Alamat Email"; +"Enter Password" = "Masukkan Kata Sandi"; +"Enter Repeat Password" = "Masukkan Ulang Kata Sandi"; +"Enter Your Email Address" = "Masukkan Alamat Email Anda"; +"Enter The Password" = "Masukkan Kata Sandi"; +"Please Enter Your Email Address" = "Silakan masukkan alamat email Anda"; +"Please Enter The Password" = "Silakan masukkan kata sandi"; +"Please complete all fields" = "Silakan lengkapi semua kolom"; +"The two passwords do not match" = "Dua kata sandi tidak cocok"; +"Reset Password" = "Atur Ulang Kata Sandi"; +"Next Step" = "Langkah Berikutnya"; +"Enter Email Verification Code" = "Masukkan Kode Verifikasi Email"; +"Verify Email" = "Verifikasi Email"; +"We have already sent it to the email address %@. Please enter the 6-digit verification code from the email to verify your mailbox." = "Kami sudah mengirimkannya ke alamat email %@. Masukkan kode verifikasi 6 digit dari email untuk memverifikasi kotak surat Anda."; +"Forgot Password?" = "Lupa Kata Sandi?"; +"Already Have An Account?" = "Sudah punya akun?"; +"Don't Have An Account?" = "Belum punya akun?"; +"Sign Up" = "Daftar"; +"Sign In" = "Masuk"; +"Login" = "Masuk"; + + +// Language switching prompt +"Change Language" = "Ubah Bahasa"; +"Changing language will reload the Home screen." = "Mengubah bahasa akan memuat ulang Beranda."; + +// Generic buttons & tips +"OK" = "OK"; +"Confirm" = "Konfirmasi"; +"Cancel" = "Batal"; +"Close" = "Tutup"; +"Delete" = "Hapus"; +"Clear" = "Bersihkan"; +"Paste" = "Tempel"; +"Send" = "Kirim"; +"Retry" = "Coba lagi"; +"Success" = "Berhasil"; +"Failed" = "Gagal"; +"Network error" = "Kesalahan jaringan"; +"Saved" = "Tersimpan"; +"Copy Success" = "Berhasil disalin"; +"Email Copy Success" = "Email berhasil disalin"; + +// Network +"Network unavailable" = "Jaringan tidak tersedia"; +"Network disabled (Full Access may be off)" = "Jaringan dinonaktifkan (Akses Penuh mungkin nonaktif)"; +"Invalid URL" = "URL tidak valid"; +"Invalid response" = "Respons tidak valid"; +"No data" = "Tidak ada data"; +"Failed to parse JSON" = "Gagal mengurai JSON"; +"Parse failed" = "Penguraian gagal"; +"No data received" = "Tidak ada data diterima"; +"Request failed\nURL: %@\nStatus: %ld\nError: %@\nUserInfo: %@" = "Permintaan gagal\nURL: %@\nStatus: %ld\nError: %@\nUserInfo: %@"; +"Response OK (JSON)\nURL: %@\nStatus: %ld\nContent-Type: %@\nData: %@" = "Respons OK (JSON)\nURL: %@\nStatus: %ld\nContent-Type: %@\nData: %@"; +"Response decode failed (JSON)\nURL: %@\nError: %@" = "Dekode respons gagal (JSON)\nURL: %@\nError: %@"; +"HTTP GET\nURL: %@\nHeaders: %@\nParams: %@" = "HTTP GET\nURL: %@\nHeaders: %@\nParams: %@"; +"Invalid response\nURL: %@\nReason: %@" = "Respons tidak valid\nURL: %@\nAlasan: %@"; +"Please check this app's wireless-data permission or network connection in Settings." = "Periksa izin data seluler aplikasi ini atau koneksi jaringan di Pengaturan."; + +// Permission & guides +"Turn on Allow Full Access to experience all features" = "Aktifkan \"Izinkan Akses Penuh\" untuk menikmati semua fitur"; +"Allow Full Access" = "Izinkan Akses Penuh"; +"Follow: Settings → General → Keyboard → Keyboards → %@ → Allow Full Access" = "Ikuti: Pengaturan → Umum → Keyboard → Keyboard → %@ → Izinkan Akses Penuh"; +"Go enable" = "Buka untuk mengaktifkan"; +"Open Settings" = "Buka Pengaturan"; +"After pasting the conversation in the keyboard, choose a reply style" = "Setelah menempelkan percakapan di keyboard, pilih gaya balasan"; +"Current: %@" = "Saat ini: %@"; + +// Home / Tab labels +"Home" = "Beranda"; +"Shop" = "Toko"; +"Circle" = "Lingkaran"; +"Mine" = "Saya"; +"Hot" = "Populer"; +"Rank" = "Peringkat"; +"Recharge Now" = "Isi ulang sekarang"; +"By clicking Pay, you indicate your agreement to the" = "Dengan menekan Bayar, Anda menyetujui"; +"《Embership Agreement》" = "《Perjanjian Keanggotaan》"; + +// Mine +"Settings" = "Pengaturan"; +"Personal" = "Pribadi"; +"My Keyboard" = "Keyboard Saya"; +"Notice" = "Pemberitahuan"; +"invite" = "undang"; +"Feedback" = "Masukan"; +"E-mail" = "Email"; +"Agreement" = "Perjanjian"; +"Privacy Policy" = "Kebijakan Privasi"; +"Notice" = "Pemberitahuan"; +"Feedback" = "Masukan"; +// Notice & Feedback detail pages +"Notification Setting" = "Pengaturan Notifikasi"; +"Please Enter The Content" = "Silakan masukkan konten"; +"Commit" = "Kirim"; +"Nickname" = "Nama Panggilan"; +"Gender" = "Jenis Kelamin"; +"Input Language" = "Bahasa Input"; +"Choose Layout" = "Pilih Tata Letak"; +"Multiple Keyboard Layouts" = "Beberapa Tata Letak Keyboard"; +"This language has a default skin configured. It won't be auto-applied when switching language." = "Bahasa ini memiliki skin bawaan. Skin tersebut tidak akan diterapkan otomatis saat mengganti bahasa."; +"Please configure a default skin for this language before switching." = "Harap atur skin bawaan untuk bahasa ini sebelum mengganti."; +"Default skin install failed. Please check skin resource configuration." = "Instalasi skin bawaan gagal. Periksa konfigurasi sumber daya skin."; +"User ID" = "ID Pengguna"; +"Modify Gender" = "Ubah Jenis Kelamin"; +"Male" = "Pria"; +"Female" = "Wanita"; +"The Third Gender" = "Jenis Kelamin Ketiga"; + +" Paste Ta's Words" = " Tempel kata-kata Ta"; + + +// Search & history +"Clear history" = "Hapus riwayat"; +"Delete all history?" = "Hapus semua riwayat?"; +"Delete this tag?" = "Hapus tag ini?"; +"This action cannot be undone" = "Tindakan ini tidak dapat dibatalkan"; +"Loaded more successfully" = "Berhasil memuat lebih banyak"; + +// Skins & shop +"Skin Center" = "Pusat Skin"; +"No skins yet" = "Belum ada skin"; +"Pull down to refresh" = "Tarik ke bawah untuk memuat ulang"; +"Download & Apply" = "Unduh & Terapkan"; +"Applied. Switch to the keyboard to view." = "Diterapkan. Pindah ke keyboard untuk melihat."; +"Apply failed" = "Gagal menerapkan"; +"Open agreement" = "Buka perjanjian"; +"Shop Mall" = "Pusat Belanja"; +"My skin" = "Skin Saya"; +"my_skin_selected_count" = "Dipilih: %ld Skin"; +"Editor" = "Editor"; +"Cancel" = "Batal"; +"Delete" = "Hapus"; +"Points\nMall" = "Toko\nPoin"; +"Log Out" = "Keluar"; +"Cancel Account" = "Batalkan Akun"; +"After cancellation, your account will be deactivated and local login data will be cleared. Continue?" = "Setelah pembatalan, akun Anda akan dinonaktifkan dan data masuk lokal akan dihapus. Lanjutkan?"; +"Please enter your password" = "Silakan masukkan kata sandi"; +"Cancel Account Notice" = "Pemberitahuan Pembatalan Akun"; +"Confirm Cancel Account" = "Konfirmasi Pembatalan Akun"; +"Ranking List" = "Daftar Peringkat"; +"Persona circle" = "Lingkaran Persona"; +"Clear" = "Bersihkan"; +"Copy" = "Salin"; +"Report报" = "Laporkan"; +"Thumbs Up" = "Suka"; +"Chatting" = "Mengobrol"; + +// Payment & IAP +"Payment successful" = "Pembayaran berhasil"; +"Payment failed" = "Pembayaran gagal"; +"Purchase: %@ Coins %@" = "Pembelian: %@ Koin %@"; +"Pay clicked" = "Bayar ditekan"; +"Points Recharge" = "Isi Ulang Poin"; +"Recharge" = "Isi Ulang"; +"Consumption Record" = "Catatan Konsumsi"; +"My Points" = "Poin Saya"; +"Consumption Details" = "Detail Konsumsi"; +"No data" = "Tidak ada data"; + + +// Misc +"Test" = "Tes"; +"Settings content placeholder" = "Placeholder konten pengaturan"; + +// English-only keys with Chinese equivalents +"Change The Nickname" = "Ubah Nama Panggilan"; +"Please Enter The Modified Nickname" = "Silakan masukkan nama panggilan baru"; +"Save" = "Simpan"; +"Please copy the text first" = "Silakan salin teks terlebih dahulu"; +"Purchase cancelled." = "Pembelian dibatalkan."; +"Purchase pending approval." = "Pembelian menunggu persetujuan."; +"Unable to obtain transaction payload." = "Tidak dapat memperoleh payload transaksi."; +"Resume Purchase" = "Lanjutkan Pembelian"; +"Downloading..." = "Mengunduh..."; + +// Chinese-only keys for compatibility +"Apple 登录需要 iOS 13 及以上版本" = "Masuk dengan Apple memerlukan iOS 13 atau lebih baru"; +"HTTP GET\nURL: %@\nHeaders: %@\n参数: %@" = "HTTP GET\nURL: %@\nHeaders: %@\nParameter: %@"; +"响应成功(JSON)\nURL: %@\n状态: %ld\nContent-Type: %@\n数据: %@" = "Respons OK (JSON)\nURL: %@\nStatus: %ld\nContent-Type: %@\nData: %@"; +"响应解析失败(JSON)\nURL: %@\n错误: %@" = "Gagal mengurai respons (JSON)\nURL: %@\nError: %@"; +"无效响应\nURL: %@\n说明: %@" = "Respons tidak valid\nURL: %@\nKeterangan: %@"; +"暂无数据" = "Tidak ada data"; +"请求失败\nURL: %@\n状态: %ld\n错误: %@\nUserInfo: %@" = "Permintaan gagal\nURL: %@\nStatus: %ld\nError: %@\nUserInfo: %@"; + diff --git a/Shared/Localization/pt-PT.lproj/Localizable.strings b/Shared/Localization/pt-PT.lproj/Localizable.strings new file mode 100644 index 0000000..75a682e --- /dev/null +++ b/Shared/Localization/pt-PT.lproj/Localizable.strings @@ -0,0 +1,227 @@ +/* + Localizable.strings (Português) + Keys shared by App and Keyboard extension +*/ + +"perm_title_enable" = "Ativar Teclado"; +"perm_steps" = "1 Ativar Teclado > 2 Permitir Acesso Total"; +"perm_open_settings" = "Abrir em Definições"; +"perm_help" = "Não encontra o teclado? Vá a Definições > Geral > Teclado > Teclados > Adicionar Novo Teclado"; + +// Home page & language test +"home_title" = "Início"; +"home_input_placeholder" = "Escreva aqui para testar o teclado"; +"home_item_lang_test" = "Teste de Idioma"; +"home_item_keyboard_permission" = "Guia de Permissões do Teclado"; + +"lang_test_title" = "Teste de Idioma"; +"lang_toggle" = "Mudar Idioma"; +"current_lang" = "Atual: %@"; +"common_back" = "Voltar"; + +// search +"Recommended Skin" = "Skin recomendado"; +"Historical Search" = "Histórico de pesquisa"; +"Search Themes" = "Pesquisar temas"; +"Search" = "Pesquisar"; + +// Login & account +"Log In" = "Iniciar sessão"; +"Signed in successfully" = "Sessão iniciada com sucesso"; +"Sign-in failed" = "Falha ao iniciar sessão"; +"Sign in to unlock all features" = "Inicie sessão para desbloquear todas as funcionalidades"; +"We'll use Apple for a quick, secure sign-in" = "Usaremos a Apple para um início de sessão rápido e seguro"; +"Log In To Key Of Love" = "Iniciar sessão no Key Of Love"; +"Sign in with Apple requires iOS 13 or later" = "Iniciar sessão com Apple requer iOS 13 ou superior"; +"Invalid login credential" = "Credenciais inválidas"; +"No token returned" = "Nenhum token retornado"; +"Failed to save login state" = "Falha ao guardar o estado de sessão"; +"Sign-in canceled" = "Início de sessão cancelado"; +"Please switch to the key of love app to finish signing in" = "Mude para a app Key of Love para concluir o início de sessão"; +"Continue Via Email" = "Continuar por e-mail"; +"Login With Email Password" = "Iniciar sessão com e-mail e palavra-passe"; +"Enter Email Address" = "Introduza o endereço de e-mail"; +"Enter Password" = "Introduza a palavra-passe"; +"Enter Repeat Password" = "Introduza novamente a palavra-passe"; +"Enter Your Email Address" = "Introduza o seu endereço de e-mail"; +"Enter The Password" = "Introduza a palavra-passe"; +"Please Enter Your Email Address" = "Por favor, introduza o seu endereço de e-mail"; +"Please Enter The Password" = "Por favor, introduza a palavra-passe"; +"Please complete all fields" = "Por favor, preencha todos os campos"; +"The two passwords do not match" = "As duas palavras-passe não coincidem"; +"Reset Password" = "Repor palavra-passe"; +"Next Step" = "Próximo passo"; +"Enter Email Verification Code" = "Introduza o código de verificação do e-mail"; +"Verify Email" = "Verificar e-mail"; +"We have already sent it to the email address %@. Please enter the 6-digit verification code from the email to verify your mailbox." = "Já o enviámos para o endereço de e-mail %@. Introduza o código de verificação de 6 dígitos do e-mail para verificar a sua caixa de correio."; +"Forgot Password?" = "Esqueceu-se da palavra-passe?"; +"Already Have An Account?" = "Já tem uma conta?"; +"Don't Have An Account?" = "Não tem uma conta?"; +"Sign Up" = "Registar"; +"Sign In" = "Iniciar sessão"; +"Login" = "Iniciar sessão"; + + +// Language switching prompt +"Change Language" = "Mudar idioma"; +"Changing language will reload the Home screen." = "Mudar o idioma irá recarregar o ecrã inicial."; + +// Generic buttons & tips +"OK" = "OK"; +"Confirm" = "Confirmar"; +"Cancel" = "Cancelar"; +"Close" = "Fechar"; +"Delete" = "Eliminar"; +"Clear" = "Limpar"; +"Paste" = "Colar"; +"Send" = "Enviar"; +"Retry" = "Tentar novamente"; +"Success" = "Sucesso"; +"Failed" = "Falhou"; +"Network error" = "Erro de rede"; +"Saved" = "Guardado"; +"Copy Success" = "Cópia bem-sucedida"; +"Email Copy Success" = "E-mail copiado com sucesso"; + +// Network +"Network unavailable" = "Rede indisponível"; +"Network disabled (Full Access may be off)" = "Rede desativada (o Acesso Total pode estar desativado)"; +"Invalid URL" = "URL inválido"; +"Invalid response" = "Resposta inválida"; +"No data" = "Sem dados"; +"Failed to parse JSON" = "Falha ao analisar JSON"; +"Parse failed" = "Análise falhou"; +"No data received" = "Nenhum dado recebido"; +"Request failed\nURL: %@\nStatus: %ld\nError: %@\nUserInfo: %@" = "Pedido falhou\nURL: %@\nEstado: %ld\nErro: %@\nUserInfo: %@"; +"Response OK (JSON)\nURL: %@\nStatus: %ld\nContent-Type: %@\nData: %@" = "Resposta OK (JSON)\nURL: %@\nEstado: %ld\nContent-Type: %@\nDados: %@"; +"Response decode failed (JSON)\nURL: %@\nError: %@" = "Falha ao descodificar resposta (JSON)\nURL: %@\nErro: %@"; +"HTTP GET\nURL: %@\nHeaders: %@\nParams: %@" = "HTTP GET\nURL: %@\nHeaders: %@\nParâmetros: %@"; +"Invalid response\nURL: %@\nReason: %@" = "Resposta inválida\nURL: %@\nMotivo: %@"; +"Please check this app's wireless-data permission or network connection in Settings." = "Verifique nas Definições a permissão de dados móveis desta app ou a ligação de rede."; + +// Permission & guides +"Turn on Allow Full Access to experience all features" = "Ative \"Permitir Acesso Total\" para usufruir de todas as funcionalidades"; +"Allow Full Access" = "Permitir Acesso Total"; +"Follow: Settings → General → Keyboard → Keyboards → %@ → Allow Full Access" = "Siga: Definições → Geral → Teclado → Teclados → %@ → Permitir Acesso Total"; +"Go enable" = "Ir ativar"; +"Open Settings" = "Abrir Definições"; +"After pasting the conversation in the keyboard, choose a reply style" = "Depois de colar a conversa no teclado, escolha um estilo de resposta"; +"Current: %@" = "Atual: %@"; + +// Home / Tab labels +"Home" = "Início"; +"Shop" = "Loja"; +"Circle" = "Círculo"; +"Mine" = "Meu"; +"Hot" = "Popular"; +"Rank" = "Classificação"; +"Recharge Now" = "Recarregar agora"; +"By clicking Pay, you indicate your agreement to the" = "Ao clicar em Pagar, indica o seu acordo com o"; +"《Embership Agreement》" = "《Acordo de Associação》"; + +// Mine +"Settings" = "Definições"; +"Personal" = "Pessoal"; +"My Keyboard" = "Meu Teclado"; +"Notice" = "Avisos"; +"invite" = "convidar"; +"Feedback" = "Feedback"; +"E-mail" = "E-mail"; +"Agreement" = "Acordo"; +"Privacy Policy" = "Política de Privacidade"; +"Notice" = "Avisos"; +"Feedback" = "Feedback"; +// Notice & Feedback detail pages +"Notification Setting" = "Definições de Notificações"; +"Please Enter The Content" = "Por favor, introduza o conteúdo"; +"Commit" = "Enviar"; +"Nickname" = "Alcunha"; +"Gender" = "Género"; +"Input Language" = "Idioma de entrada"; +"Choose Layout" = "Escolher disposição"; +"Multiple Keyboard Layouts" = "Várias disposições de teclado"; +"This language has a default skin configured. It won't be auto-applied when switching language." = "Este idioma tem um skin predefinido configurado. Não será aplicado automaticamente ao mudar de idioma."; +"Please configure a default skin for this language before switching." = "Configure um skin predefinido para este idioma antes de mudar."; +"Default skin install failed. Please check skin resource configuration." = "Falha na instalação do skin predefinido. Verifique a configuração dos recursos do skin."; +"User ID" = "ID de Utilizador"; +"Modify Gender" = "Alterar Género"; +"Male" = "Masculino"; +"Female" = "Feminino"; +"The Third Gender" = "Terceiro Género"; + +" Paste Ta's Words" = " Colar as palavras de Ta"; + + +// Search & history +"Clear history" = "Limpar histórico"; +"Delete all history?" = "Eliminar todo o histórico?"; +"Delete this tag?" = "Eliminar esta etiqueta?"; +"This action cannot be undone" = "Esta ação não pode ser desfeita"; +"Loaded more successfully" = "Mais carregado com sucesso"; + +// Skins & shop +"Skin Center" = "Centro de Skins"; +"No skins yet" = "Ainda não há skins"; +"Pull down to refresh" = "Puxe para baixo para atualizar"; +"Download & Apply" = "Transferir e aplicar"; +"Applied. Switch to the keyboard to view." = "Aplicado. Mude para o teclado para ver."; +"Apply failed" = "Falha ao aplicar"; +"Open agreement" = "Abrir acordo"; +"Shop Mall" = "Centro comercial"; +"My skin" = "Meu skin"; +"my_skin_selected_count" = "Selecionados: %ld Skins"; +"Editor" = "Editor"; +"Cancel" = "Cancelar"; +"Delete" = "Eliminar"; +"Points\nMall" = "Loja\nde pontos"; +"Log Out" = "Terminar sessão"; +"Cancel Account" = "Cancelar conta"; +"After cancellation, your account will be deactivated and local login data will be cleared. Continue?" = "Após o cancelamento, a sua conta será desativada e os dados de sessão locais serão apagados. Continuar?"; +"Please enter your password" = "Por favor, introduza a sua palavra-passe"; +"Cancel Account Notice" = "Aviso de cancelamento de conta"; +"Confirm Cancel Account" = "Confirmar cancelamento de conta"; +"Ranking List" = "Lista de classificação"; +"Persona circle" = "Círculo de persona"; +"Clear" = "Limpar"; +"Copy" = "Copiar"; +"Report报" = "Reportar"; +"Thumbs Up" = "Gosto"; +"Chatting" = "Conversar"; + +// Payment & IAP +"Payment successful" = "Pagamento bem-sucedido"; +"Payment failed" = "Pagamento falhou"; +"Purchase: %@ Coins %@" = "Compra: %@ Moedas %@"; +"Pay clicked" = "Pagar clicado"; +"Points Recharge" = "Recarga de pontos"; +"Recharge" = "Recarregar"; +"Consumption Record" = "Registo de consumo"; +"My Points" = "Meus pontos"; +"Consumption Details" = "Detalhes de consumo"; +"No data" = "Sem dados"; + + +// Misc +"Test" = "Teste"; +"Settings content placeholder" = "Marcador de conteúdo das definições"; + +// English-only keys with Chinese equivalents +"Change The Nickname" = "Alterar alcunha"; +"Please Enter The Modified Nickname" = "Por favor, introduza a nova alcunha"; +"Save" = "Guardar"; +"Please copy the text first" = "Por favor, copie o texto primeiro"; +"Purchase cancelled." = "Compra cancelada."; +"Purchase pending approval." = "Compra pendente de aprovação."; +"Unable to obtain transaction payload." = "Não foi possível obter o payload da transação."; +"Resume Purchase" = "Retomar compra"; +"Downloading..." = "A transferir..."; + +// Chinese-only keys for compatibility +"Apple 登录需要 iOS 13 及以上版本" = "Iniciar sessão com Apple requer iOS 13 ou superior"; +"HTTP GET\nURL: %@\nHeaders: %@\n参数: %@" = "HTTP GET\nURL: %@\nHeaders: %@\nParâmetros: %@"; +"响应成功(JSON)\nURL: %@\n状态: %ld\nContent-Type: %@\n数据: %@" = "Resposta OK (JSON)\nURL: %@\nEstado: %ld\nContent-Type: %@\nDados: %@"; +"响应解析失败(JSON)\nURL: %@\n错误: %@" = "Falha ao analisar resposta (JSON)\nURL: %@\nErro: %@"; +"无效响应\nURL: %@\n说明: %@" = "Resposta inválida\nURL: %@\nDetalhe: %@"; +"暂无数据" = "Sem dados"; +"请求失败\nURL: %@\n状态: %ld\n错误: %@\nUserInfo: %@" = "Pedido falhou\nURL: %@\nEstado: %ld\nErro: %@\nUserInfo: %@"; + diff --git a/Shared/Localization/zh-Hant.lproj/Localizable.strings b/Shared/Localization/zh-Hant.lproj/Localizable.strings new file mode 100644 index 0000000..b8dbc34 --- /dev/null +++ b/Shared/Localization/zh-Hant.lproj/Localizable.strings @@ -0,0 +1,226 @@ +/* + Localizable.strings (繁體中文) + App 與鍵盤擴展共用的文案 Key +*/ + +"perm_title_enable" = "啟用鍵盤"; +"perm_steps" = "1 啟用鍵盤 > 2 允許完整存取"; +"perm_open_settings" = "前往設定開啟"; +"perm_help" = "找不到鍵盤?請前往 設定 > 一般 > 鍵盤 > 鍵盤 > 新增鍵盤"; + +// Home page & language test +"home_title" = "首頁"; +"home_input_placeholder" = "在此輸入,測試鍵盤"; +"home_item_lang_test" = "多語言測試"; +"home_item_keyboard_permission" = "鍵盤權限引導"; + +"lang_test_title" = "多語言測試"; +"lang_toggle" = "切換語言"; +"current_lang" = "目前:%@"; +"common_back" = "返回"; + +// search +"Recommended Skin" = "推薦皮膚"; +"Historical Search" = "歷史搜尋"; +"Search Themes" = "搜尋主題"; +"Search" = "搜尋"; + +// Login & account +"Log In" = "登入"; +"Signed in successfully" = "登入成功"; +"Sign-in failed" = "登入失敗"; +"Sign in to unlock all features" = "登入後可使用全部功能"; +"We'll use Apple for a quick, secure sign-in" = "我們將使用 Apple 進行快速安全登入"; +"Log In To Key Of Love" = "登入 Key Of Love"; +"Sign in with Apple requires iOS 13 or later" = "Apple 登入需要 iOS 13 或以上版本"; +"Invalid login credential" = "無效的登入憑證"; +"No token returned" = "未返回 token"; +"Failed to save login state" = "儲存登入狀態失敗"; +"Sign-in canceled" = "登入已取消"; +"Please switch to the key of love app to finish signing in" = "請切換到 Key of Love App 完成登入"; +"Continue Via Email" = "透過電子郵件登入"; +"Login With Email Password" = "使用電子郵件密碼登入"; +"Enter Email Address" = "請輸入電子郵件地址"; +"Enter Password" = "請輸入密碼"; +"Enter Repeat Password" = "請再次輸入密碼"; +"Enter Your Email Address" = "請輸入您的電子郵件地址"; +"Enter The Password" = "請輸入密碼"; +"Please Enter Your Email Address" = "請輸入您的電子郵件地址"; +"Please Enter The Password" = "請輸入密碼"; +"Please complete all fields" = "請先填寫完整資訊"; +"The two passwords do not match" = "兩次輸入的密碼不一致"; +"Reset Password" = "重設密碼"; +"Next Step" = "下一步"; +"Enter Email Verification Code" = "請輸入電子郵件驗證碼"; +"Verify Email" = "驗證電子郵件"; +"We have already sent it to the email address %@. Please enter the 6-digit verification code from the email to verify your mailbox." = "我們已將驗證碼寄至 %@,請在郵件中查看並輸入 6 位驗證碼完成驗證。"; +"Forgot Password?" = "忘記密碼?"; +"Already Have An Account?" = "已有帳號?"; +"Don't Have An Account?" = "還沒有帳號?"; +"Sign Up" = "註冊"; +"Sign In" = "登入"; +"Login" = "登入"; + + +// Language switching prompt +"Change Language" = "切換語言"; +"Changing language will reload the Home screen." = "切換語言後將重新載入首頁。"; + +// Generic buttons & tips +"OK" = "好"; +"Confirm" = "確定"; +"Cancel" = "取消"; +"Close" = "關閉"; +"Delete" = "刪除"; +"Clear" = "清空"; +"Paste" = "貼上"; +"Send" = "送出"; +"Retry" = "重試"; +"Success" = "成功"; +"Failed" = "失敗"; +"Network error" = "網路錯誤"; +"Saved" = "已儲存"; +"Copy Success" = "複製成功"; +"Email Copy Success" = "電子郵件複製成功"; + +// Network +"Network unavailable" = "網路不可用"; +"Network disabled (Full Access may be off)" = "網路未啟用(可能未開啟完整存取)"; +"Invalid URL" = "無效的 URL"; +"Invalid response" = "無效的回應"; +"No data" = "暫無資料"; +"Failed to parse JSON" = "JSON 解析失敗"; +"Parse failed" = "解析失敗"; +"No data received" = "未取得資料"; +"Request failed\nURL: %@\nStatus: %ld\nError: %@\nUserInfo: %@" = "請求失敗\nURL: %@\n狀態: %ld\n錯誤: %@\nUserInfo: %@"; +"Response OK (JSON)\nURL: %@\nStatus: %ld\nContent-Type: %@\nData: %@" = "回應成功(JSON)\nURL: %@\n狀態: %ld\nContent-Type: %@\n資料: %@"; +"Response decode failed (JSON)\nURL: %@\nError: %@" = "回應解析失敗(JSON)\nURL: %@\n錯誤: %@"; +"HTTP GET\nURL: %@\nHeaders: %@\nParams: %@" = "HTTP GET\nURL: %@\nHeaders: %@\n參數: %@"; +"Invalid response\nURL: %@\nReason: %@" = "無效回應\nURL: %@\n原因: %@"; +"Please check this app's wireless-data permission or network connection in Settings." = "請在「設定」中檢查本應用的行動數據權限或網路連線。"; + +// Permission & guides +"Turn on Allow Full Access to experience all features" = "開啟「允許完整存取」以體驗完整功能"; +"Allow Full Access" = "允許完整存取"; +"Follow: Settings → General → Keyboard → Keyboards → %@ → Allow Full Access" = "請依路徑:設定 → 一般 → 鍵盤 → 鍵盤 → %@ → 允許完整存取"; +"Go enable" = "前往開啟"; +"Open Settings" = "前往設定"; +"After pasting the conversation in the keyboard, choose a reply style" = "在鍵盤貼上對話後,選擇回覆方式"; +"Current: %@" = "目前:%@"; + +// Home / Tab labels +"Home" = "首頁"; +"Shop" = "商城"; +"Circle" = "社群"; +"Mine" = "我的"; +"Hot" = "熱門"; +"Rank" = "排行"; +"Recharge Now" = "立即儲值"; +"By clicking Pay, you indicate your agreement to the" = "點擊付款即表示您同意"; +"《Embership Agreement》" = "《會員協議》"; + +// Mine +"Settings" = "設定"; +"Personal" = "個人"; +"My Keyboard" = "我的鍵盤"; +"Notice" = "通知"; +"invite" = "邀請"; +"Feedback" = "回饋"; +"E-mail" = "電子郵件"; +"Agreement" = "協議"; +"Privacy Policy" = "隱私政策"; +"Notice" = "通知"; +"Feedback" = "回饋"; +// Notice & Feedback detail pages +"Notification Setting" = "通知設定"; +"Please Enter The Content" = "請輸入內容"; +"Commit" = "提交"; +"Nickname" = "暱稱"; +"Gender" = "性別"; +"Input Language" = "輸入語言"; +"Choose Layout" = "選擇佈局"; +"Multiple Keyboard Layouts" = "多種鍵盤佈局"; +"This language has a default skin configured. It won't be auto-applied when switching language." = "此語言已設定預設皮膚,切換語言時不會自動套用。"; +"Please configure a default skin for this language before switching." = "切換前請先為此語言設定預設皮膚。"; +"Default skin install failed. Please check skin resource configuration." = "預設皮膚安裝失敗,請檢查皮膚資源設定。"; +"User ID" = "使用者 ID"; +"Modify Gender" = "修改性別"; +"Male" = "男"; +"Female" = "女"; +"The Third Gender" = "第三性別"; + +" Paste Ta's Words" = " 貼上 Ta 的話"; + + +// Search & history +"Clear history" = "清除歷史"; +"Delete all history?" = "刪除所有歷史?"; +"Delete this tag?" = "刪除此標籤?"; +"This action cannot be undone" = "此操作無法復原"; +"Loaded more successfully" = "載入更多成功"; + +// Skins & shop +"Skin Center" = "皮膚中心"; +"No skins yet" = "暫無皮膚"; +"Pull down to refresh" = "下拉以重新整理"; +"Download & Apply" = "下載並套用"; +"Applied. Switch to the keyboard to view." = "已套用。切換到鍵盤查看。"; +"Apply failed" = "套用失敗"; +"Open agreement" = "開啟協議"; +"Shop Mall" = "商城"; +"My skin" = "我的皮膚"; +"my_skin_selected_count" = "已選:%ld 個皮膚"; +"Editor" = "編輯"; +"Cancel" = "取消"; +"Delete" = "刪除"; +"Points\nMall" = "積分\n商城"; +"Log Out" = "登出"; +"Cancel Account" = "註銷帳號"; +"After cancellation, your account will be deactivated and local login data will be cleared. Continue?" = "註銷後帳號將被停用,且本地登入資料會被清除。繼續?"; +"Please enter your password" = "請輸入密碼"; +"Cancel Account Notice" = "註銷帳號提示"; +"Confirm Cancel Account" = "確認註銷帳號"; +"Ranking List" = "排行榜"; +"Persona circle" = "人物圈"; +"Clear" = "清空"; +"Copy" = "複製"; +"Report报" = "檢舉"; +"Thumbs Up" = "讚"; +"Chatting" = "聊天"; + +// Payment & IAP +"Payment successful" = "付款成功"; +"Payment failed" = "付款失敗"; +"Purchase: %@ Coins %@" = "購買:%@ 金幣 %@"; +"Pay clicked" = "點擊付款"; +"Points Recharge" = "積分儲值"; +"Recharge" = "儲值"; +"Consumption Record" = "消費記錄"; +"My Points" = "我的積分"; +"Consumption Details" = "消費明細"; +"No data" = "暫無資料"; + + +// Misc +"Test" = "測試"; +"Settings content placeholder" = "設定內容佔位"; + +// English-only keys with Chinese equivalents +"Change The Nickname" = "修改暱稱"; +"Please Enter The Modified Nickname" = "請輸入新暱稱"; +"Save" = "儲存"; +"Please copy the text first" = "請先複製文字"; +"Purchase cancelled." = "購買已取消。"; +"Purchase pending approval." = "購買待核准。"; +"Unable to obtain transaction payload." = "無法取得交易資料。"; +"Resume Purchase" = "繼續購買"; +"Downloading..." = "下載中..."; + +// Chinese-only keys for compatibility +"Apple 登录需要 iOS 13 及以上版本" = "Apple 登入需要 iOS 13 或以上版本"; +"HTTP GET\nURL: %@\nHeaders: %@\n参数: %@" = "HTTP GET\nURL: %@\nHeaders: %@\n參數: %@"; +"响应成功(JSON)\nURL: %@\n状态: %ld\nContent-Type: %@\n数据: %@" = "回應成功(JSON)\nURL: %@\n狀態: %ld\nContent-Type: %@\n資料: %@"; +"响应解析失败(JSON)\nURL: %@\n错误: %@" = "回應解析失敗(JSON)\nURL: %@\n錯誤: %@"; +"无效响应\nURL: %@\n说明: %@" = "無效回應\nURL: %@\n說明: %@"; +"暂无数据" = "暫無資料"; +"请求失败\nURL: %@\n状态: %ld\n错误: %@\nUserInfo: %@" = "請求失敗\nURL: %@\n狀態: %ld\n錯誤: %@\nUserInfo: %@"; diff --git a/keyBoard.xcodeproj/project.pbxproj b/keyBoard.xcodeproj/project.pbxproj index f52037d..3e368c0 100644 --- a/keyBoard.xcodeproj/project.pbxproj +++ b/keyBoard.xcodeproj/project.pbxproj @@ -540,6 +540,18 @@ 047C655D2EBCD5B20035E841 /* UIImage+KBColor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIImage+KBColor.m"; sourceTree = ""; }; 04837ADA2F5830970012BDE2 /* KBAppUpdateView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KBAppUpdateView.h; sourceTree = ""; }; 04837ADB2F5830970012BDE2 /* KBAppUpdateView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KBAppUpdateView.m; sourceTree = ""; }; + 04837ADF2F5848040012BDE2 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/LaunchScreen.strings"; sourceTree = ""; }; + 04837AE02F5848040012BDE2 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/Main.strings"; sourceTree = ""; }; + 04837AE12F5848050012BDE2 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.strings"; sourceTree = ""; }; + 04837AE22F5848590012BDE2 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/LaunchScreen.strings; sourceTree = ""; }; + 04837AE32F5848590012BDE2 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Main.strings; sourceTree = ""; }; + 04837AE42F58485A0012BDE2 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; + 04837AE52F5848680012BDE2 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/LaunchScreen.strings; sourceTree = ""; }; + 04837AE62F5848680012BDE2 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/Main.strings; sourceTree = ""; }; + 04837AE72F5848680012BDE2 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/Localizable.strings; sourceTree = ""; }; + 04837AE82F5848820012BDE2 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/LaunchScreen.strings"; sourceTree = ""; }; + 04837AE92F5848820012BDE2 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/Main.strings"; sourceTree = ""; }; + 04837AEA2F5848820012BDE2 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/Localizable.strings"; sourceTree = ""; }; 048908BA2EBE1FCB00FABA60 /* BaseViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = ""; }; 048908BB2EBE1FCB00FABA60 /* BaseViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = ""; }; 048908C12EBE32B800FABA60 /* KBSearchVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KBSearchVC.h; sourceTree = ""; }; @@ -2352,6 +2364,10 @@ en, Base, "zh-Hans", + "zh-Hant", + es, + id, + "pt-PT", ); mainGroup = 727EC74A2EAF848B00B36487; minimizedProjectReferenceProxies = 1; @@ -2813,6 +2829,10 @@ children = ( 04A9FE1C2EB893F10020DB6D /* en */, 04A9FE1D2EB893F10020DB6D /* zh-Hans */, + 04837AE12F5848050012BDE2 /* zh-Hant */, + 04837AE42F58485A0012BDE2 /* es */, + 04837AE72F5848680012BDE2 /* id */, + 04837AEA2F5848820012BDE2 /* pt-PT */, ); name = Localizable.strings; sourceTree = ""; @@ -2821,6 +2841,10 @@ isa = PBXVariantGroup; children = ( 04C6EAB02EAF86530089C901 /* Base */, + 04837ADF2F5848040012BDE2 /* zh-Hant */, + 04837AE22F5848590012BDE2 /* es */, + 04837AE52F5848680012BDE2 /* id */, + 04837AE82F5848820012BDE2 /* pt-PT */, ); name = LaunchScreen.storyboard; sourceTree = ""; @@ -2829,6 +2853,10 @@ isa = PBXVariantGroup; children = ( 04C6EAB32EAF86530089C901 /* Base */, + 04837AE02F5848040012BDE2 /* zh-Hant */, + 04837AE32F5848590012BDE2 /* es */, + 04837AE62F5848680012BDE2 /* id */, + 04837AE92F5848820012BDE2 /* pt-PT */, ); name = Main.storyboard; sourceTree = ""; diff --git a/keyBoard/es.lproj/LaunchScreen.strings b/keyBoard/es.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/keyBoard/es.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/keyBoard/es.lproj/Main.strings b/keyBoard/es.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/keyBoard/es.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/keyBoard/id.lproj/LaunchScreen.strings b/keyBoard/id.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/keyBoard/id.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/keyBoard/id.lproj/Main.strings b/keyBoard/id.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/keyBoard/id.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/keyBoard/pt-PT.lproj/LaunchScreen.strings b/keyBoard/pt-PT.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/keyBoard/pt-PT.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/keyBoard/pt-PT.lproj/Main.strings b/keyBoard/pt-PT.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/keyBoard/pt-PT.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/keyBoard/zh-Hant.lproj/LaunchScreen.strings b/keyBoard/zh-Hant.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/keyBoard/zh-Hant.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/keyBoard/zh-Hant.lproj/Main.strings b/keyBoard/zh-Hant.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/keyBoard/zh-Hant.lproj/Main.strings @@ -0,0 +1 @@ +