Pelokalan
Frappe Framework menyertakan alat bawaan yang kuat bernama "Translation" yang memungkinkan pengguna untuk mengelola dan berkontribusi pada pelokalan aplikasi langsung dari antarmuka pengguna. Ini memudahkan pengguna non-developer untuk membantu membuat sistem tersedia dalam berbagai bahasa.
Memahami DocType "Translation"
DocType "Translation" adalah dokumen standar Frappe yang menyimpan semua string teks yang dapat diterjemahkan untuk aplikasi Anda. Ini berfungsi sebagai jembatan antara kode aplikasi dan frasa yang diterjemahkan yang dilihat oleh pengguna.
Mengakses DocType "Translation"
- Masuk ke situs Frappe Anda sebagai System Manager atau Administrator.
- Klik bilah pencarian (Awesome Bar) atau tekan
Ctrl + G/Cmd + G. - Ketik "Translation" dan pilih dari daftar dropdown.
- Anda akan diarahkan ke tampilan daftar Translation.
Menambahkan Terjemahan Baru
Untuk menambahkan terjemahan baru:
- Klik tombol Add Translation.
- Isi kolom-kolom formulir:
- Language: Pilih bahasa target untuk terjemahan.
- Source Text: Masukkan teks persis seperti yang muncul di aplikasi.
- Translated Text: Masukkan versi terjemahan dari teks tersebut.
- Context (opsional): Berikan konteks untuk menjelaskan penggunaan atau lokasi teks.
- Klik Save untuk menerapkan terjemahan.
Untuk Developer: Menandai String untuk Diterjemahkan
Sebagai developer, sangat penting untuk menandai semua string teks yang muncul ke pengguna dalam kode Anda agar dapat dikenali dan diterjemahkan. Dalam proyek ini, kami terutama menggunakan dua fungsi berbeda untuk tujuan ini, tergantung pada bahasa pemrograman: _() untuk Python dan __() untuk JavaScript.
Menggunakan _() dalam Kode Python
Gunakan fungsi _() untuk menandai string agar dapat diterjemahkan di semua file Python Anda (misalnya, di server script DocType, metode API, atau laporan kustom).
- Tujuan: Terutama untuk menerjemahkan string teks tunggal.
- Konteks dalam Python: Untuk string yang memiliki teks sama tetapi arti berbeda tergantung pada penggunaannya (misalnya, "Open" sebagai kata kerja vs. "Open" sebagai kata sifat), tambahkan argumen
contextke fungsi_().
Contoh Penggunaan:
String Dasar:
import frappe
def sayhello():
frappe.msgprint(("Welcome to our application!"))
Dengan Placeholder (Format): Gunakan metode .format() milik Python untuk nilai dinamis.
import frappe
def get_greeting(user_name):
frappe.msgprint(_("Hello, {0}!").format(user_name))
Menggunakan __() dalam Kode JavaScript
Gunakan fungsi __() untuk semua string yang perlu diterjemahkan dalam file JavaScript sisi klien Anda (misalnya, skrip klien DocType, halaman web kustom, atau komponen antarmuka pengguna).
- Tujuan: Menerjemahkan string teks tunggal dan mendukung format string dengan placeholder.
- Konteks dalam JavaScript: Untuk string dengan konteks spesifik, gabungkan konteks dan string menggunakan format
Context::Stringdalam pemanggilan__().
Contoh Penggunaan:
String Dasar:
frappe.ui.form.on('MyDocType', {
onload: function(frm) {
frappe.show_alert({
message: __("Data loaded successfully."),
indicator: 'green"
});
}
});
Dengan Placeholder (Format): Anda dapat menggunakan placeholder berbasis indeks array atau placeholder berbasis nama objek.
let item_count = 3;
frappe.msgprint(__("{0} items found.", [item_count]));
let user = { name: "Alice", role: "Admin" };
frappe.msgprint(__("User {name} with role {role} logged in.", user));