App Localization iOS
14 Mar 2016
Localization adalah salah satu fitur yang paling penting apabila aplikasi yang kita buat memiliki target market yang beraneka ragam dan berasal dari negara yang berbeda-beda. Fitur ini memungkinkan aplikasi untuk dapat mengubah bahasa aplikasi tanpa mengubah pengaturan bahasa device. Dengan adanya fitur ini, user akan menjadi lebih nyaman ketika menggunakan bahasa nativenya sendiri dan user tidak akan terganggu karena pengaturan bahasa device tidak terpengaruh dengan pengaturan bahasa aplikasi.
Langkah Awal
-
Create New File - iOS - Resource - Strings File
. - Berikan nama:
Localizable.strings
. -
Klik
Localize
padaFile Inspector
tabUtilities
dan pilih bahasa yang digunakan. -
Untuk menambahkan bahasa lain, buka
Project Settings
dan tambahkan bahasa yang diinginkan. -
Setelah langkah-langkah diatas berhasil dilakukan, struktur
Project Navigator
akan menjadi sebagai berikut:
Penambahan Teks Localization
Untuk menambahkan text yang akan di-_localize_:
- Buka file
Localizable.strings
sesuai dengan bahasa yang diinginkan. -
Tambahkan sebuah baris string mapping.
"<string key>" = "<string value>";
Contoh:
"order_detail" = "Detail Pesanan"; "order_quantity" = "%d Boks"; "order_vitamin" = "%@ sebanyak %d mg";
- Jangan lupa untuk menambahkan string mapping untuk semua bahasa
Localizable.strings
yang digunakan di aplikasi.
Penggunaan Localization
Untuk memudahkan penggantian bahasa aplikasi tanpa perlu mengubah pengaturan bahasa device, gunakan library Localize-Swift
yang dapat diunduh di sini. Library ini berdasarkan marmelroy/Localize-Swift yang telah dimodifikasi oleh Riyan N. Hidayat.
Setelah library tersebut berhasil di-_import_ dengan benar. Localization dapat dilakukan dengan cara sebagai berikut:
self.title = "order_detail".localized();
self.quantityLabel.text = "order_quantity".localizedWithFormat(arguments: [10]);
self.vitaminLabel.text = "order_vitamin".localizedWithFormat(arguments: "Vitamin A", 25);
Fungsi-Fungsi Favorit
-
Set Default Language:
Ubah variabel
LCLDefaultLanguage
diLocalize.swift
:let LCLDefaultLanguage = "id"
atau:
let LCLDefaultLanguage = "en"
-
Get Default Language:
let lang = Localize.defaultLanguage() print(lang) // 'en'
-
Set Current Language:
Localize.setCurrentLanguage("id")
-
Get Current Language:
let lang = Localize.currentLanguage() print(lang) // 'id'
-
List Available Language:
let langs = Localize.availableLanguages() print(langs) // ['en', 'id']
-
Display Name for Language:
let langDisplayName = Localize.displayNameForLanguage('id') print(langDisplayName) // 'Bahasa Indonesia'
PS: ;)
- Jangan lupa reload ulang/set ulang text setelah penggantian bahasa ya.
- Nantikan artikel selanjutnya untuk Localization
attributedText
.