0Pricing
Swift Academy · Pelajaran

Katalog String dan String Terlokalisasi

Lokalkan teks dengan String Catalog modern.

Katalog String dan String Terlokalisasi adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.

Mengapa Melakukan Pelokalan

Pelokalan (l10n) berarti menampilkan teks aplikasi Anda dalam bahasa pengguna; internasionalisasi (i18n) berarti menyusun kode agar pelokalan dapat dilakukan. Langkah pertama adalah berhenti menulis string yang terlihat oleh pengguna secara langsung dan mengambilnya dari katalog sumber daya.

// Hardcoded — bad for localization
// let title = "Welcome"

// Localized — looked up by key
let title = String(localized: "Welcome")

Katalog String

Proyek Xcode modern menggunakan Katalog String (berkas .xcstrings). Ini adalah satu berkas berbasis JSON yang mencantumkan setiap key yang dapat dilokalkan, terjemahannya untuk setiap bahasa, serta metadata seperti komentar dan bentuk jamak. Xcode dapat mengekstrak key dari kode secara otomatis.

// Localizable.xcstrings holds entries like:
// key: "Welcome"
//   en: "Welcome"
//   tr: "Hos geldiniz"
//   ja: "Yokoso"

String(localized:)

Dalam kode, String(localized:) menyelesaikan suatu key saat program berjalan menjadi terjemahan untuk lokal saat ini. Literal yang Anda teruskan berfungsi sebagai key sekaligus fallback bahasa pengembangan.

let greeting = String(localized: "Welcome back")
let cancel = String(localized: "Cancel")
print(greeting)

Menambahkan Komentar untuk Penerjemah

Kata sederhana seperti Jalankan dapat berarti menjalankan program atau berlari. Parameter comment: memberi penerjemah konteks agar mereka memilih kata yang tepat. Komentar secara otomatis masuk ke Katalog String.

let runLabel = String(
    localized: "Run",
    comment: "Button that executes the user's code")

Menyisipkan Nilai

Anda dapat menyisipkan nilai saat program berjalan ke dalam string yang dilokalkan. Swift mengubah setiap interpolasi menjadi penampung format sehingga penerjemah dapat mengubah urutannya. Setiap bahasa menempatkan subjek dan angka pada posisi yang berbeda.

let name = "Mira"
let count = 3
let msg = String(localized: "\(name) has \(count) new messages")
print(msg)

LocalizedStringKey di SwiftUI

Di SwiftUI, Anda jarang memanggil String(localized:) secara langsung. Sebagian besar tampilan yang menerima teks menggunakan LocalizedStringKey, sehingga literal string biasa dilokalkan secara otomatis.

// In SwiftUI — the literal is a LocalizedStringKey
// Text("Welcome back")        // auto-localized
// Button("Save") { save() }   // auto-localized
let key: LocalizedStringKey = "Welcome back"
_ = key

Menghindari Pelokalan yang Tidak Disengaja

Karena SwiftUI memperlakukan literal sebagai key, variabel String yang dinamis tidak dilokalkan. Jika Anda membuat teks melalui penggabungan, katalog tidak pernah melihat key sebenarnya. Teruskan satu literal jika Anda ingin melakukan pelokalan, dan gunakan verbatim: jika Anda memang tidak menginginkannya.

let userInput = "hello"
// Text(userInput)            // NOT a localization key
// Text(verbatim: userInput)  // explicitly raw, never localized
let verbatimKey = userInput
_ = verbatimKey

Menentukan Tabel

Aplikasi besar membagi string ke beberapa katalog (tabel). Anda dapat menargetkan tabel dan bundel tertentu, yang penting saat mengirimkan string di dalam kerangka kerja atau paket Swift.

let onboardingTitle = String(
    localized: "Get Started",
    table: "Onboarding",
    bundle: .main)

LocalizedStringResource

LocalizedStringResource merepresentasikan string yang dapat dilokalkan sebagai nilai yang dapat Anda simpan dan selesaikan nanti, bahkan di antara proses yang berbeda (berguna untuk App Intents dan widget). Nilai ini menunda pencarian sebenarnya hingga waktu ditampilkan.

let resource = LocalizedStringResource("Order shipped")
// Resolve later, possibly in another locale context
let resolved = String(localized: resource)
print(resolved)

Pelokalan Default

Bahasa pengembangan proyek menyediakan fallback ketika terjemahan tidak tersedia. Literal string yang Anda tulis dalam kode diperlakukan sebagai nilai bahasa sumber, sehingga kode tetap mudah dibaca dan Anda tidak pernah mengirimkan key mentah seperti welcome_screen_title kepada pengguna.

// If only 'en' is translated and device is set to 'fr',
// the development-language value is shown as fallback.
let fallback = String(localized: "Settings")
print(fallback)

Pencarian yang Realistis

Jika digabungkan, hasilnya adalah fungsi yang mengembalikan pesan yang sepenuhnya dilokalkan, diberi konteks, dan berisi interpolasi, sehingga siap digunakan pada UI apa pun.

func welcomeMessage(for user: String) -> String {
    return String(
        localized: "Welcome, \(user)!",
        comment: "Greeting shown after sign-in")
}
print(welcomeMessage(for: "Ada"))

Pemeriksaan Singkat

Ingat kembali cara SwiftUI menentukan apakah teks perlu dilokalkan.

Ringkasan

Anda telah menyiapkan dasar teks yang dilokalkan:

  • Simpan terjemahan dalam Katalog String (.xcstrings).
  • Cari string dengan String(localized:), dan tambahkan comment: untuk penerjemah.
  • Di SwiftUI, literal menjadi LocalizedStringKey dan dilokalkan secara otomatis; variabel tidak.
  • Gunakan table:/bundle: untuk kerangka kerja dan LocalizedStringResource untuk penyelesaian tertunda.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Katalog String dan String Terlokalisasi” gratis?

Ya — teks lengkap “Katalog String dan String Terlokalisasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Katalog String dan String Terlokalisasi”?

Lokalkan teks dengan String Catalog modern. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Katalog String dan String Terlokalisasi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?

Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Katalog String dan String Terlokalisasi
  2. Pluralisasi dan Stringsdict
  3. Pemformatan yang Peka Lokal
  4. Kanan-ke-Kiri dan Arah Tata Letak
← Kembali ke Swift Academy