Tutorial Silverstripe 5, Silverstripe CMS dengan multibahasa

Banyak CMS saat ini menyediakan fasilitas untuk menggunakan lebih dari satu bahasa. Di Silverstripe, fitur ini sudah disediakan pada saat kita pertama kali menginstall silverstripe. Namun kita perlu mengaktifkannya jika kita ingin menggunakan fitur tersebut. Fitur ini dinamakan multilanguagecontent. Dinamakan demikian karena pada fitur ini kita bisa membuat website dengan multibahasa, tidak hanya dua bahasa. Pada tutorial kali ini saya akan menjelaskan cara menggunakan fitur tersebut.

Pada silverstripe sebenarnya sudah menyediakan banyak file bahasa (locale) yang disimpan di direktori sapphire/lang/ didalam direktori utama silverstripe. Penamaan file bahasa disesuai dengan jenis bahasanya. Misal untuk file bahasa inggris (US) diberi nama  en_US.php, file untuk bahasa indonesia diberi nama id_ID.php, dan begitu juga dengan yang lainnya. File bahasa ini nantinya akan kita gunakan untuk metode translate pada silverstripe.

Pengaktifan fitur multibahasa

Untuk mengaktifkan fitur multibahasa pada silverstripe caranya cukup mudah. Tambahkan sintaks extension Translatetable pada file mysite/_config.php dengan cara mengetikkan:

Object::add_extension('SiteTree', 'Translatable');

Setelah menambahkan extension Translatable, perlu juga ditentukan bahasa utama yang akan digunakan pada situs yang akan dibuat, misalnya bahasa utama yang digunakan adalah bahasa indoneisa maka ketikkan sintaks berikut pada mysite/_config.php:

Translatable::set_default_locale("id_ID");

Setelah itu dilakukan maka lakukan flush pada situs silverstripe dengan mengetikkan URL http://localhost/mysite/db/flush?=1 jika URL silvertsipe yang dibuat beralamat di http://localhost/mysite.

Penggunaan fitur multibahasa pada CMS

Setelah mengaktifkan fitur multibahasa, pada CMS akan ditambahkan kolom jenis bahasa yang kita gunakan. Penambahan kolom bahasa tersebut dapat dilihat pada gambar berikut:

CMS Multilingualcontent

Pada gambar dapat dilihat bahwa kolom pemilihan bahasa akan ditampilkan untuk menampilkan halaman-halaman pada website dengan bahasa tertentu. Selain kolom pemilihan bahasa tersebut, pada content sebuah halaman yang dibuat juga akan ditambahkan sebuah tab yang bernama Translations yang digunakan untuk membuat halaman dengan bahasa lainnya sesuai dengan halaman yang kita kehendaki.

Translations tab

Tab Translations dapat digunakan untuk membuat sebuah halaman yang sama dengan bahasa yang berbeda. Caranya dengan memilih bahasa lalu dilanjutkan dengan menekan tombol Create. Pada tab ini juga akan ditampilkan bahasa apa saja yang sudah dibuat untuk halaman tersebut.

Other Language

Yang menarik dari fitur multibahasa silverstripe adalah kita tidak perlu membuat seluruh halaman untuk di ubah ke bahasa lain. Cukup hanya beberapa halaman saja yang kita translate ke bahasa lain sesuai dengan yang kita inginkan tidak perlu seluruh halaman.

Penggunaan Fitur Multibahasa pada Template

Setelah mengaktifkan fitur multibahasa dan membuat halaman dengan bahasa tertentu pada CMS  silverstripe, cara penggunaan fitur multibahasa pada website Silverstripe ada dua cara.

Cara yang pertama dengan menambahkan query string ?locale=[kode jenis bahasa] yang kita inginkan pada URL, misalnya:

  • http://localhost/mysite/?locale=id_ID untuk website dengan bahasa indonesia, karena default bahasa adalah id_ID ini sama saja dengan memanggil URL http://localhost/mysite/. Halaman yang ditampilkan adalah halaman home untuk bahasa indonesia.
  • http://localhost/mysite/?locale=en_US untuk website dengan bahasa inggris. Halaman yang ditampilkan adalah halaman home untuk bahasa inggris.

Cara ini hanya dapat digunakan untuk pemindahan bahasa pada keseluruhan website yang akan dimulai dari home pada bahasa yang diinginkan, artinya jika ingin berpindah bahasa pada halaman tertentu saja cara ini tidak bisa digunakan.

Cara yang kedua adalah dengan sintaks pada templates. Untuk berpindah halaman ke bahasa lain pada halaman tertentu kita harus membuat sebuah kode template di file .ss pada silverstripe. Jika dimisalkan terdapat sebuah Page.ss yang digunakan pada setiap halaman sebagai template, maka untuk membuat perpindahan bahasa pada sebuah halaman dapat ditambahkan sintaks berikut pada bagian tertentu:

<% if Translations %>
        <h4>Switch Language to:
        <% control Translations %>
            <a href="$Link" hreflang="$Locale.RFC1766" title="$Title">
            $Locale.Nice
            </a>
        <% end_control %>
        </h4>
<% end_if %>

Sintaks tersebut akan memunculkan bahasa yang tersedia bagi halaman tertentu, namun jika halaman tidak memiliki bahasa lain, maka tampilan pindah halaman tidak akan dimunculkan. Cara yang kedua ini lebih saya anjurkan karena akan membuat website menjadi lebih terlihat professional.

Selamat Mencoba

Nanaz

Komentar untuk blog ini :

captcha

31 Januari 2010

Have you known about freelance writer ? I just want to say that your notes close to this post is high quality! Thank you so much for making this!

za

11 Juli 2010

Loh kok yg sya jdi byk errornya ketika di flush (http://localhost/mysite/db/flush?=1)...