Jawa Jawa Jawa..!!

blog 8 Agt 2023

Menulis lagi. Sesuai janji, bluemeda.web.id sekarang tersedia dalam Basa Jawa dan menggunakan Aksara Jawa. Jika dalam penulisannya banyak kesalahan, mohon kritik dan sarannya, karena jika menunggu kesempurnaan, wacana ini tidak akan pernah terealisasi.

Secara asali, Ghost tidak mendukung Multi-Language Content. Di dalam FAQ Ghost sendiri, jika ingin menerapkan multi-bahasa, disarankan untuk memakai satu instance tiap bahasa. Menurut saya ini sangat tidak efisien.

Lantas bagaimana?

Dalam Ghost terdapat fitur internal tag. FItur ini membuat tag tanpa terekspos ke publik. Saya memanfaatkan fitur tersebut untuk membuat tag #jv, kemudian menyaring dan mengelompokkan daftar tulisan dalam Aksara Jawa. Jika postingan tidak memiliki tag #jv, maka ia masuk daftar tulisan dalam Bahasa Indonesia.

Kemudian saya membuat route untuk /jv/ pada routes.yaml.

routes:

collections:
  /:
    filter: "tag:-jv"
    permalink: /{slug}/
    template: index-id
  /jv/:
   filter: "tag:jv"
    permalink: /jv/{slug}/
    template: index-jv

taxonomies:
  tag: /tag/{slug}/
  author: /author/{slug}/

Di sini saya membuat dua index. Pertama menggunakan index-id.hbs, kemudian berikutnya index-jv.hbs pada templates.
Lalu, edit {mythemes}/locales/id.json. Saya menambahkan pasangan kunci-nilai baru dengan nama kunci yang sama namun ditambahkan prefix id. dan jv. .

Contoh:

{
  "id.% min read": "% menit baca",
  "jv.% min read": "% ꦩꦼꦤꦶꦠ꧀ꦮꦕ",
  "id.% posts": "% postingan",
  "jv.% posts": "% ꦠꦸꦭꦶꦱꦤ꧀",
  "id.1 min read": "1 menit baca",
  "jv.1 min read": "꧇꧑꧇ꦩꦼꦤꦶꦠ꧀ꦮꦕ",
}

Edit index-id.hbs dan index-jv.hbs dengan menambahkan data-data yang diperlukan untuk proses translasi, misal untuk index-id.hbs:

{{#contentFor "lang"}}id{{/contentFor}}
{{#contentFor "newer-post"}}{{t "id.Newer posts"}}{{/contentFor}}
{{#contentFor "older-post"}}{{t "id.Older posts"}}{{/contentFor}}
{{#contentFor "Page"}}{{t "id.Page"}}{{/contentFor}}
{{#contentFor "of"}}{{t "id.of"}}{{/contentFor}}

Untuk index-jv.hbs tinggal mengganti prefix dengan jv..

Tidak lupa untuk mengubah lang pada html tag yang terdapat pada file default.hbs dengan <html lang="{{{block "lang"}}}"> agar nilainya berubah secara dinamis tergantung konten yang ditampilkan. Untuk valuenya, kita ubah di bagian index (seperti contoh di atas pada baris {{#contentFor "lang"}}id{{/contentFor}}), post, page, dan file template lainnya. Untuk file post.hbs dan page.hbs, karena kita hanya memakai satu file, maka saya memakai {{#has}}. Contoh:

{{#post}}
  {{#has tag="#jv"}}
    {{#contentFor "lang"}}jv{{/contentFor}}
  {{else}}
    {{#contentFor "lang"}}id{{/contentFor}}
  {{/has}}
{{/post}}

Untuk datetime locale belum saya ubah. Mungkin harus kostumisasi pustaka Moment.js.

Untuk layout keyboard bisa memakai layout yang sudah sesuai Kongres Aksara Jawa. Sayang, websitenya dipenuhi spam judi slot. Untuk Sistem Operasi MacOS bisa memakai https://github.com/lantip/Nataksara sedangkan pengguna Windows bisa memakai https://github.com/mahalisyarifuddin/nataksara.

Tag