Pernah menggunakan User Values di level Field? Pernah mengalami kesulitan ketika ingin menterjemahkan User Values atau nilai yang didefinisikan oleh Pengguna pada field tadi, tanpa menggunakan Multi-Language Property Editor? Jika ya, maka berikut ini solusinya.
Katakanlah di table users, terdapat field yang bernama Is_Active. Field ini kita buat menggunakan control Select atau Combobox. Karena default bahasa yang digunakan adalah English, maka selanjutnya, kita mendefinisikan 2 pilihan dari panel User Values, yaitu:
Value | Label |
Y | Yes |
N | No |
Itu artinya, kedua pilihan tadi Y = Yes dan N = No akan di-generate ke dalam file english.xml language. Dan itu artinya pula, kita bisa menterjemahkan data pada kolom Label ke dalam bahasa yang sedang terpilih, tanpa harus menggunakan Multi-Language Property Editor.
Jadi, misalnya aplikasi web yang kita buat dengan PHPMaker 2023 menggunakan bahasa Inggris sebagai default bahasa, kemudian kita juga menggunakan bahasa Indonesia, dan ketika bahasa Indonesia dipilih, maka data Label di atas akan diterjemahkan menjadi seperti ini:
Value | Label |
Y | Ya |
N | Tidak |
Caranya bagaimana? Ternyata gampang sekali, Saudara-saudara!
Cukup sisipkan 4 baris kode PHP berikut ke dalam server event Table_Load milik table users di project PHPMaker 2023:
if (CurrentLanguageID() == "id-ID") { // jika bahasa Indonesia dipilih
Language()->setFieldPhrase("users", "Is_Active", "FldTagCaption1", "Ya");
Language()->setFieldPhrase("users", "Is_Active", "FldTagCaption2", "Tidak");
}
Perhatikan kode di atas. Kita cukup memanggil method setFieldPhrase milik object Language. Method ini memiliki 4 param, yang akan kita jelaskan berikut ini.
Param pertama adalah nama table-nya, dalam hal ini adalah users. Param kedua adalah nama field-nya, dalam hal ini Is_Active. Param ketiga adalah ID dari phrase yang di-generate oleh PHPMaker 2023 di file .xml yaitu FldTagCaption diikuti dengan nomor barisnya masing-masing. Param keempat atau terakhir adalah phrase yang baru atau terjemahan yang kita inginkan.
Karena hanya ada 2 pilihan saja, maka itu artinya param ketiga yang merupakan ID phrase, masing-masing menjadi FldTagCaption1 dan FldTagCaption2. Nah, PHPMaker 2023 akan men-generate kedua pilihan pada User Values tersebut berdasarkan ID phrase, yang bertalian, dan posisinya masing-masing berada di bawah hirarki table users dan field Is_Active.
Jika masih penasaran, kita bisa melihat kodenya di dalam file english.xml yang dibangkitkan oleh PHPMaker 2023:
...
<table id="users">
<phrase id="tblcaption" value="Users" />
...
<field id="is_active">
<phrase id="fldcaption" value="Is Active" />
<phrase id="fldtagvalue1" value="Y" />
<phrase id="fldtagcaption1" value="Yes" />
<phrase id="fldtagvalue2" value="N" />
<phrase id="fldtagcaption2" value="No" />
</field>
...
Itu adalah data phrase asli yang di-generate oleh PHPMaker 2023 ke dalam file english.xml. Tanda tiga titik di atas mewakili kode yang tidak ditampilkan milik field lainnya yang tidak kita bahas di sini.
Meskipun PHPMaker 2023 mengubah nilai param seperti nama table, nama field, dan nilainya menjadi huruf kecil, kita tetap dapat menggunakan kode pada server event Table_Load di atas tadi.
Kesimpulannya, kita bisa menterjemahkan phrase milik suatu Field yang menggunakan User Values tanpa harus selalu menggunakan Multi-Language Property Editor di bawah menu Tools project PHPMaker 2023. Kita bisa menterjemahkannya cukup melalui server event Table_Load saja.
Hanya dengan sedikit kode itu saja, kita sudah bisa menterjemahkan phrase apapun yang terdapat pada Field yang menggunakan User Values. Selebihnya kita serahkan kepada PHPMaker 2023 untuk menanganinya.
Tidak perlu lagi menulis kode yang panjangnya bisa sampai puluhan atau ratusan baris jika kita menggunakan cara-cara konvensional dalam membangun aplikasi web.
Keren kan, PHPMaker 2023? 😉
Tinggalkan Balasan