Bagikan melalui


Melokalisasi Pustaka UI dalam aplikasi

Lokalisasi adalah kunci untuk membuat produk yang dapat digunakan di seluruh dunia dan oleh orang-orang yang berbicara dengan bahasa yang berbeda. Pustaka Antarmuka Pengguna Azure Communication Services menyediakan dukungan siap pakai untuk beberapa bahasa dan kemampuan, seperti kanan ke kiri (RTL). Pengembang dapat menyediakan file pelokalan mereka sendiri untuk Pustaka UI.

Dalam artikel ini, Anda mempelajari cara menyiapkan pelokalan dengan benar dengan menggunakan Pustaka UI di aplikasi Anda.

Prasyarat

Menyiapkan pelokalan

Untuk dokumentasi terperinci dan mulai cepat tentang Pustaka Antarmuka Pengguna Web, lihat Buku Cerita Pustaka UI Web.

Untuk mempelajari selengkapnya, lihat Pelokalan di Pustaka Antarmuka Pengguna Web.

Untuk informasi selengkapnya, lihat Pustaka UI Android sumber terbuka dan kode aplikasi sampel.

Bahasa yang tersedia

Tabel berikut mencantumkan CallCompositeSupportedLocale ID untuk terjemahan di luar kotak. Jika Anda ingin melokalisasi komposit, teruskan Locale objek dari CallCompositeSupportedLocale ke dalam CallCompositeLocalizationOptions sebagai opsi ke dalam CallComposite.

Bahasa CallCompositeSupportedLocale
Arab (Arab Saudi) CallCompositeSupportedLocale.AR_SA
Bahasa Jerman (Jerman) CallCompositeSupportedLocale.DE_DE
Inggris (US) CallCompositeSupportedLocale.EN_US
Bahasa Inggris (UK) CallCompositeSupportedLocale.EN_UK
Spanyol (Spanyol) CallCompositeSupportedLocale.ES_ES
Spanyol CallCompositeSupportedLocale.ES
Finlandia (Finlandia) CallCompositeSupportedLocale.FI_FI
Bahasa Prancis (Prancis) CallCompositeSupportedLocale.FR_FR
Prancis CallCompositeSupportedLocale.FR
Ibrani (Israel) CallCompositeSupportedLocale.IW_IL
Italia (Italia) CallCompositeSupportedLocale.IT_IT
Italia CallCompositeSupportedLocale.IT
Jepang (Jepang) CallCompositeSupportedLocale.JA_JP
Jepang CallCompositeSupportedLocale.JA
Korea (Korea) CallCompositeSupportedLocale.KO_KR
Korea CallCompositeSupportedLocale.KO
Bahasa Belanda (Belanda) CallCompositeSupportedLocale.NL_NL
Belanda CallCompositeSupportedLocale.NL
Norwegia (Bokmål) CallCompositeSupportedLocale.NB_NO
Polandia (Polandia) CallCompositeSupportedLocale.PL_PL
Polski CallCompositeSupportedLocale.PL
Portugis (Brasil) CallCompositeSupportedLocale.PT_BR
Portugis CallCompositeSupportedLocale.PT
Rusia (Rusia) CallCompositeSupportedLocale.RU_RU
Rusia CallCompositeSupportedLocale.RU
Swedia (Swedia) CallCompositeSupportedLocale.SV_SE
Turki (Turki) CallCompositeSupportedLocale.TR_TR
Turki CallCompositeSupportedLocale.TR
Tionghoa (Aksara Sederhana) CallCompositeSupportedLocale.ZH_CN
Tionghoa (Aksara Tradisional) CallCompositeSupportedLocale.ZH_TW
Mandarin CallCompositeSupportedLocale.ZH

Penyedia pelokalan

CallCompositeLocalizationOptions adalah pembungkus opsi yang mengatur semua string untuk komponen Pustaka UI Android dengan menggunakan CallCompositeSupportedLocale. Secara default, semua label teks menggunakan string bahasa Inggris. Anda dapat menggunakan CallCompositeLocalizationOptions untuk mengatur bahasa yang berbeda dengan meneruskan Locale objek dari CallCompositeSupportedLocale. Di luar kotak, Pustaka UI menyertakan sekumpulan Locale objek yang dapat digunakan dengan komponen dan komposit UI.

Anda juga bisa mendapatkan daftar Locale objek dengan menggunakan fungsi CallCompositeSupportedLocale.getSupportedLocales()statis .

Cuplikan layar yang memperlihatkan pelokalan Android.

Untuk menggunakan CallCompositeLocalizationOptions, tentukan CallCompositeSupportedLocale dan teruskan ke CallCompositeBuilder. Contoh berikut melokalisasi komposit ke Bahasa Prancis.

import com.azure.android.communication.ui.calling.models.CallCompositeLocalizationOptions
import com.azure.android.communication.ui.calling.models.CallCompositeSupportedLocale

// CallCompositeSupportedLocale provides a list of supported locales
val callComposite: CallComposite =
            CallCompositeBuilder().localization(
                CallCompositeLocalizationOptions(CallCompositeSupportedLocale.FR)
            ).build()

Arah tata letak

Budaya tertentu (misalnya, Arab dan Ibrani) mungkin memerlukan pelokalan untuk memiliki tata letak kanan-ke-kiri. Anda dapat menentukan layoutDirection sebagai bagian CallCompositeLocalizationOptionsdari . Tata letak komposit akan dicerminkan, tetapi teks akan tetap berada di arah string.

import com.azure.android.communication.ui.calling.models.CallCompositeLocalizationOptions
import com.azure.android.communication.ui.calling.models.CallCompositeSupportedLocale

// CallCompositeSupportedLocale provides a list of supported locales
val callComposite: CallComposite =
            CallCompositeBuilder().localization(
                CallCompositeLocalizationOptions(CallCompositeSupportedLocale.FR, LayoutDirection.LTR)
            ).build()
LayoutDirection.RTL LayoutDirection.LTR
Cuplikan layar tata letak kanan-ke-kiri Android. Cuplikan layar tata letak kiri-ke-kanan Android.

Menyesuaikan terjemahan

Ada dua opsi untuk menyesuaikan terjemahan bahasa yang kami sediakan. Anda dapat menggunakan daftar kunci pelokalan untuk mengambil alih string tertentu untuk pasangan kunci/nilai. Anda dapat menentukan lokal sebagai salah satu bahasa yang didukung. Ketika kunci tidak disediakan, kunci akan kembali ke string terjemahan yang didukung. Jika Anda menentukan bahasa yang tidak didukung, Anda harus memberikan terjemahan untuk semua kunci untuk bahasa tersebut string.xml (dengan menggunakan file) lalu kembali ke string bahasa Inggris saat kunci tidak disediakan.

Katakanlah Anda ingin agar bilah kontrol menggunakan string dari lokal Bahasa Inggris (AS), tetapi Anda ingin mengubah label tombol Gabung Panggilan menjadi Mulai Rapat dalam tampilan penyetelan. Buat string.xml file (atau nama file lainnya) dengan pasangan kunci/nilai untuk kunci yang dipilih yang ingin Anda ambil alih. Contoh berikut mengambil alih kunci azure_communication_ui_calling_setup_view_button_join_call.

Cuplikan layar yang memperlihatkan proyek penyiapan pelokalan Android.

Cuplikan layar yang memperlihatkan label kustom contoh Android.

Untuk informasi selengkapnya, lihat Pustaka UI iOS sumber terbuka dan kode aplikasi sampel.

Deteksi bahasa

Jika aplikasi Anda mendukung pelokalan, Pustaka UI ditampilkan berdasarkan bahasa pilihan sistem pengguna jika merupakan bagian dari bahasa yang tersedia yang tercantum di bagian berikutnya. Jika tidak, bahasa default ke string bahasa Inggris (en) yang telah ditentukan sebelumnya.

Bahasa yang tersedia

Tabel berikut ini mencantumkan terjemahan di luar kotak untuk locale. Jika Anda ingin melokalisasi komposit, teruskan locale sebagai LocalizationOptions opsi ke dalam CallComposite.

Bahasa SupportedLocale pengidentifikasi
Cina Sederhana zh zh
Cina Sederhana zhHans zh-Hans
Tionghoa, Sederhana (Tiongkok daratan) zhHansCN zh-Hans-CN
Bahasa Mandarin, Tradisional zhHant zh-Hant
Tionghoa, Tradisional (Taiwan) zhHantTW zh-Hant-TW
Belanda nl nl
Bahasa Belanda (Belanda) nlNL nl-NL
Inggris en en
Inggris (Kerajaan Inggris Bersatu) enGB en-GB
Inggris (Amerika Serikat) enUS en-US
Prancis fr fr
Bahasa Prancis (Prancis) frFR fr-FR
Jerman de de
Bahasa Jerman (Jerman) deDE de-DE
Italia it it
Italia (Italia) itIT it-IT
Jepang ja ja
Jepang (Jepang) jaJP ja-JP
Korea ko ko
Korea (Korea Selatan) koKR ko-KR
Portugis pt pt
Portugis (Brasil) ptBR pt-BR
Rusia ru ru
Rusia (Rusia) ruRU ru-RU
Spanyol es es
Spanyol (Spanyol) esES es-ES
Turki tr tr
Turki (Türkiye) trTR tr-TR

Anda juga bisa mendapatkan daftar locale struktur dengan menggunakan fungsi SupportedLocale.valuesstatis .

let locales: [Locale] = SupportedLocale.values.map{ $0.identifier }
print(locales)

// ["de", "de-DE", "en", "en-GB", "en-US", "es", "es-ES", "fr", "fr-FR", "it", "it-IT", "ja", "ja-JP", "ko", "ko-KR", "nl", "nl-NL", "pt", "pt-BR", "ru", "ru-RU", "tr", "tr-TR", "zh", "zh-Hans", "zh-Hans-CN", "zh-Hant", "zh-Hant-TW"]

LocalizationOptions

LocalizationOptions adalah pembungkus opsi yang mengatur semua string untuk komponen Pustaka UI dengan menggunakan locale. Secara default, semua label teks menggunakan string bahasa Inggris (en). Anda dapat menggunakan LocalizationOptions untuk mengatur struktur yang berbeda locale . Di luar kotak, Pustaka UI menyertakan sekumpulan locale struktur yang dapat digunakan dengan komponen dan komposit UI.

Untuk menggunakan LocalizationOptions, tentukan struktur Swift locale (dengan atau tanpa kode wilayah) dan teruskan ke CallCompositeOptions. Contoh berikut melokalisasi komposit ke Bahasa Prancis untuk Prancis (fr-FR).

// Creating a Swift locale structure
var localizationOptions = LocalizationOptions(locale: Locale(identifier: "fr-FR"))

// Use IntelliSense SupportedLocale to get supported locale structures
localizationOptions = LocalizationOptions(locale: SupportedLocale.frFR)

let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
let callComposite = CallComposite(withOptions: callCompositeOptions)

Cuplikan layar yang memperlihatkan pelokalan iOS.

Arah tata letak

Budaya tertentu (misalnya, Arab dan Ibrani) mungkin memerlukan pelokalan untuk memiliki tata letak kanan-ke-kiri. Anda dapat menentukan layoutDirection sebagai bagian LocalizationOptionsdari . Tata letak komposit akan dicerminkan, tetapi teks akan tetap berada di arah string.

var localizationOptions: LocalizationOptions

// Initializer with locale and layoutDirection
localizationOptions = LocalizationOptions(locale: Locale(identifier: "en"),
                                          layoutDirection: .rightToLeft)

// Initializer with locale, localizableFilename, and layoutDirection
localizationOptions = LocalizationOptions(locale: Locale(identifier: "en"),
                                          localizableFilename: "Localizable",
                                          layoutDirection: .rightToLeft)

// Add localizationOptions as an option
let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
let callComposite = CallComposite(withOptions: callCompositeOptions)

Contoh berikut menunjukkan pencerminan tata letak kanan-ke-kiri. Jika Anda tidak menentukan layoutDirection, defaultnya ke false (tata letak kiri-ke-kanan).

layoutDirection = .leftToRight (default) layoutDirection = .rightToLeft
Cuplikan layar yang memperlihatkan arah tata letak iOS dari kiri ke kanan. Cuplikan layar yang memperlihatkan arah tata letak iOS kanan ke kiri.

Menyesuaikan terjemahan

Ada dua opsi untuk menyesuaikan terjemahan bahasa yang kami sediakan. Untuk mengambil alih string tertentu, Anda dapat menggunakan daftar kunci pelokalan untuk pasangan kunci/nilai. Anda dapat menentukan locale sebagai salah satu bahasa yang didukung. Saat kunci tidak disediakan, kunci akan kembali ke string terjemahan yang didukung. Jika Anda menentukan bahasa yang tidak didukung, Anda harus memberikan terjemahan untuk semua kunci untuk bahasa tersebut Localizable.strings (dengan menggunakan file) lalu kembali ke string bahasa Inggris saat kunci tidak disediakan.

Katakanlah Anda ingin agar bilah kontrol menggunakan string dari lokal Bahasa Inggris (AS), tetapi Anda ingin mengubah label tombol Gabung Panggilan menjadi Mulai Rapat dalam tampilan penyetelan. Aktifkan pelokalan dalam proyek untuk locale instans yang ingin Anda ambil alih. Buat Localizable.strings file (atau nama file lain dengan ekstensi .strings) dengan pasangan kunci/nilai untuk kunci yang dipilih yang ingin Anda ambil alih. Contoh berikut mengambil alih kunci AzureCommunicationUI.SetupView.Button.JoinCall.

Cuplikan layar yang memperlihatkan proyek penyiapan iOS.

Cuplikan layar yang memperlihatkan string kustom iOS.

Untuk menentukan bahwa Anda mengambil alih dengan Localizable.strings, buat LocalizationOptions objek untuk menentukan locale dan localizationFilename. Atau saat Anda menggunakan penginisialisasi locale , ini melihat kunci Localizable.strings sebagai locale.collatorIdentifier bahasa dalam proyek Anda.

let localizationOptions = LocalizationOptions(locale: Locale(identifier: "fr"),
                                              localizableFilename: "Localizable")
let callCompositeOptions = CallCompositeOptions(localization: localizationOptions)
let callComposite = CallComposite(withOptions: callCompositeOptions)

Voiceover aksesibilitas untuk pelokalan

Agar voiceover berfungsi dengan baik untuk pelokalan, pastikan bahasa ditambahkan ke pelokalan aplikasi Anda. Voiceover kemudian mendeteksi bahwa aplikasi mendukung bahasa yang ditentukan untuk LocalizationOptions locale. Ini memilih suara ucapan untuk bahasa dengan menggunakan suara yang ditemukan di Pengaturan> Pengaturan> Akses di perangkat. Anda dapat memverifikasi bahwa bahasa ditambahkan ke proyek Anda, seperti yang diperlihatkan dalam contoh berikut.

Cuplikan layar yang memperlihatkan pelokalan proyek iOS Xcode.

Langkah berikutnya