Artikel ini menjelaskan cara mengonfigurasi bahasa kustom.
1.1. Pengantar
Secara default, SuperApp SDK menyediakan bahasa Inggris, Tiongkok Sederhana, dan Tiongkok Tradisional, serta mendukung penyesuaian bahasa tambahan oleh pengguna.
1.2. Konfigurasi kustom multi-bahasa
Tabel teks yang digunakan dalam SuperApp SDK adalah sebagai berikut:
/*
Localizable.strings
*/
// Dasar
"WV_OK" = "OK";
"WV_Cancel" = "Batal";
// Segarkan
"WV_PageLoading" = "Memuat";
"WV_PullToRefresh" = "tarik untuk menyegarkan";
"WV_ReleaseToRefresh" = "lepas untuk menyegarkan";
"WV_PullToRefresh_Loading" = "Memuat...";
// Simpan gambar
"WV_AskSaveImage" = "Simpan gambar?";
"WV_SaveImage" = "Simpan";
"WV_SaveImageSuccess" = "Berhasil menyimpan gambar";
"WV_SaveImageFailed" = "Gagal menyimpan gambar";
// Ambil gambar
"WV_ChoosePhotoSource" = "Pilih sumber gambar";
"WV_ChooseCamera" = "Ambil gambar";
"WV_ChooseVideoCamera" = "Ambil video";
"WV_ChoosePhotoLibrary" = "Pilih dari album";
"WV_ChoosePhotoFromLibrary" = "Pilih gambar";
"WV_ChoosePhotoLimit" = "Pilih maksimal %lu foto";
"WV_ChoosePhotoLimit_Confirm" = "Konfirmasi";
"WV_ChooseVideoSource" = "Pilih sumber video";
"WV_AddMorePhotos" = "Tambahkan lebih banyak foto yang dapat diakses";
"WV_AccessAllPhotos" = "Izinkan %@ untuk mengakses semua foto Anda";
"WV_PermissionSetting" = "Aktifkan izin berikut untuk aplikasi di pengaturan sistem Anda";
"WV_LeavePage" = "Tinggalkan halaman ini?";
"WV_PromptDefaultContent" = "Harap masukkan nilai";
"WV_AlertTitleTips" = "Tips";
// Pesan Kesalahan
"WV_ErrorNoNetwork" = "Tidak dapat terhubung ke jaringan";
"WV_ErrorSSLError" = "Kesalahan koneksi SSL";
"WV_ErrorDownloadFailed" = "Unduhan gagal";
"WV_ErrorLoadFailed" = "Gagal memuat";
//aksesibilitas
"mini_app_ok" = "OK";
"mini_app_no" = "TIDAK";
"mini_app_about_us" = "Tentang Kami";
"mini_app_cancel" = "Batal";
"mini_app_name" = "Nama Aplikasi";
"mini_app_slogan" = "Slogan";
"mini_app_desc" = "Deskripsi";
"mini_app_add_favorite" = "Tambahkan ke Favorit Saya";
"mini_app_remove_favorite" = "Hapus dari Favorit Saya";
"mini_app_favorite_desc" = "Apakah Anda ingin menambahkan program mini ini ke favorit saya?";
"mini_app_generate_qr_code" = "Buat kode QR";
"mini_app_authorize_user_desc" = "Ajukan untuk mendapatkan informasi Anda berikut ini untuk menyediakan layanan.";
"mini_app_permission_tip" = "Harap otorisasi akses lokasi untuk kami di pengaturan seluler dan coba lagi.";
//aksesibilitas
"mini_app_accessibility_back_btn" = "Tombol Kembali";
"mini_app_accessibility_more_btn" = "Tombol Lainnya";
"mini_app_accessibility_close_btn" = "Tombol Tutup";
"mini_app_accessibility_favorite_add_btn" = "Tombol Tambah Favorit";
"mini_app_accessibility_favorite_remove_btn" = "Tombol Hapus Favorit";
"mini_app_accessibility_generate_qr_code_btn" = "Tombol Buat kode QR";
"mini_app_accessibility_about_btn" = "Tombol Tentang";
"mini_app_accessibility_cancel_btn" = "Tombol Batal";
"mini_app_accessibility_ok_btn" = "Tombol OK";
"mini_app_accessibility_no_btn" = "Tombol TIDAK";
//pemilih tanggal
"select_date"="Pilih Tanggal";
"select_year" = "";
"select_day" = "";
"JAN"="Jan";
"FEB"="Feb";
"MAR"="Mar";
"APR"="Apr";
"MAY"="Mei";
"JUN"="Jun";
"JUL"="Jul";
"AUG"="Ags";
"SEP"="Sep";
"OCT"="Okt";
"NOV"="Nov";
"DEC"="Des";
//informasi halaman kesalahan
"miniapp_loading_error_title" = "Gagal memuat";
"miniapp_loading_error_info" = "Program mini gagal dimuat";
"miniapp_loading_error_noNetwork_info" = "Kesalahan jaringan";
"miniapp_toke_offline_info" = "Program mini tidak ditemukan";
"miniapp_unable_open_info" = "Tidak dapat membuka halaman ini";
"miniapp_page_not_found_info" = "Halaman tidak ditemukan";
"miniapp_error_code_tip" = "Kode Kesalahan";
"miniapp_error_exit_btn_title" = "Keluar";
"miniapp_error_refresh_btn_title" = "Segarkan";
"miniapp_add_favorite_title" = "Tambahkan ke \"Favorit Saya\"";
"miniapp_add_favorite_info" = "Apakah Anda ingin menambahkan program mini ini ke \"Favorit Saya\" untuk akses cepat?";
// otentikasi
"miniapp_auth_apply_tip" = "Terapkan Ke";
"miniapp_auth_reject" = "Tolak";
"miniapp_auth_allow" = "Izinkan";
"miniapp_location_tip" = "Akses informasi lokasi Anda";
"miniapp_camera_tip" = "Akses informasi kamera Anda";
"miniapp_album_tip" = "Akses informasi album foto Anda";
"miniapp_bluetooth_tip" = "Akses informasi bluetooth Anda";
"miniapp_microphone_tip" = "Akses informasi mikrofon Anda";
"miniapp_contacts_tip" = "Akses informasi daftar kontak Anda";
"miniapp_file_tip" = "Akses informasi file Anda";
"miniapp_call_tip" = "Akses informasi panggilan Anda";
"miniapp_vibrate_tip" = "Akses informasi getaran perangkat Anda";
"miniapp_screen_tip" = "Akses informasi layar Anda";
"miniapp_location" = "Lokasi";
"miniapp_camera" = "Kamera";
"miniapp_album" = "Album";
"miniapp_bluetooth" = "Bluetooth";
"miniapp_microphone" = "Mikrofon";
"miniapp_contacts" = "Kontak";
"miniapp_file" = "File";
"miniapp_call" = "Panggilan";
"miniapp_vibrate" = "Getaran";
"miniapp_screen" = "Layar";
"miniapp_auth_tip" = "Akses informasi berikut";
"miniapp_location_desc" = "Program mini ini akan mengakses lokasi Anda untuk memberikan rekomendasi alamat dan layanan yang dilokalkan";
"miniapp_camera_desc" = "Program mini ini akan mengakses kamera Anda untuk mengambil foto atau memindai kode QR";
"miniapp_album_desc" = "Program mini ini akan mengakses album foto Anda untuk memilih dan mengunggah gambar untuk dibagikan atau diedit";
"miniapp_bluetooth_desc" = "Program mini ini akan mengakses bluetooth untuk terhubung ke perangkat pintar dan mengaktifkan interaksi data";
"miniapp_microphone_desc" = "Program mini ini akan mengakses mikrofon Anda untuk input suara dan fitur berbasis suara";
"miniapp_contacts_desc" = "Program mini ini akan mengakses kontak Anda untuk menemukan kontak dengan cepat atau mengundang teman";
"miniapp_file_desc" = "Program mini ini akan mengakses file untuk membaca dan mengelola dokumen atau file sumber daya yang diperlukan oleh aplikasi";
"miniapp_call_desc" = "Program mini ini akan mengakses log panggilan untuk mengidentifikasi panggilan masuk atau meningkatkan fitur terkait komunikasi";
"miniapp_vibrate_desc" = "Program mini ini akan mengakses kontrol getaran perangkat untuk memberikan umpan balik taktil dan meningkatkan pengalaman operasional";
"miniapp_screen_desc" = "Program mini ini akan mengakses informasi layar untuk menyesuaikan tampilan antarmuka, mendukung fitur tangkapan layar dan perekaman layar, serta meningkatkan interaksi pengguna";
//informasi tampilan halaman lainnya
"miniapp_more_add_favorite_info" = "Tambahkan ke favorit saya";
"miniapp_more_remove_favorite_info" = "Hapus dari favorit saya";
"miniapp_more_settings_info" = "Pengaturan";
"miniapp_more_copy_link_info" = "Salin tautan";
"miniapp_more_share_url_info" = "Bagikan";
"miniapp_more_refresh_info" = "Segarkan";
"miniapp_more_about_us_info" = "Tentang Kami";
"miniapp_more_copy_success" = "Disalin";
"miniapp_more_share_success" = "Berhasil Dibagikan";
"miniapp_more_favorite_success" = "Ditambahkan ke favorit saya";
"miniapp_more_remove_favorite_success" = "Dihapus dari favorit saya";
"miniapp_about_us_miniapp_name_descrip"= "Nama program mini";
"miniapp_about_us_slogan_descrip" = "Slogan";
"miniapp_about_us_miniapp_version_descrip"= "Nomor versi";
"miniapp_about_us_miniapp_descrip"= "Deskripsi";
//halaman pengaturan
"miniapp_settings_title" = "Pengaturan";
"miniapp_settings_allow_tip" = "Izinkan \"%@\" untuk mengakses informasi berikut";
Sebagai contoh, ambil Vietnam:
Tambahkan language bundle di aplikasi host.
Terjemahkan string dalam Localizable.strings ke dalam bahasa Vietnam.
Pastikan tidak ada bagian yang terlewat.
Ubah bahasa perangkat ke bahasa Vietnam.
Panggil metode konfigurasi language bundle setelah container diinisialisasi.

Catatan
Jika bahasa perlu mengikuti pengaturan bahasa perangkat, konfigurasikan hal ini di proyek: pilih PROJECT → Localizations dan tambahkan bahasa yang sesuai.

|
|
Konfigurasi
// Komentar: Inisialisasi konfigurasi miniapp
let miniAppInitConfig = EMASMiniAppInitConfig()
miniAppInitConfig.useUniApp = true
miniAppInitConfig.useWindVane = true
miniAppInitConfig.accessKey = "your access key"
miniAppInitConfig.secretKey = "your secret key"
miniAppInitConfig.host = "your Host"
miniAppInitConfig.appCode = "your App Code"
miniAppInitConfig.openLog = true
miniAppInitConfig.needAuthFromApp = true
let miniAppService = EMASMiniAppServiceImpl();
miniAppService.initialize(miniAppInitConfig)
EMASServiceManager.sharedInstance().registerServiceProtocol("EMASMiniAppService", impClass: "EMASMiniAppServiceImpl", target: miniAppService)
//Konfigurasi multi-language bundle
if let bundlePath = Bundle.main.path(forResource: "SALanguage", ofType: "bundle"),let bundle = Bundle(path: bundlePath) {
SAMiniAppUserConfig.localized(with: bundle)
}
//Mendukung konfigurasi penggantian bahasa dalam aplikasi
EMASMiniAppPortal.share().setAppLanguage("vi")
