Jyavani memisahkan bahasa antarmuka dashboard dari locale dasar konten. Pemisahan ini memungkinkan editor memakai UI Indonesia sementara situs dasar menggunakan bahasa lain.
Dua setting
site_languagemengisi locale dashboard melaluiadmin_ui_locale().content_default_languagemengisi locale frontend melaluidefault_locale()/content_default_locale().
Jika content default kosong atau invalid, Core jatuh kembali ke site language; nilai invalid site language jatuh ke English. Seed UI menyediakan source English serta translasi Indonesia dan Jerman. English tidak memerlukan lookup database.
Bootstrap dan HTML
Bootstrap membaca kedua setting, mengaktifkan content locale untuk frontend, lalu dashboard mengaktifkan kembali site language. Atribut lang melewati filter sehingga integrasi dapat menyesuaikan nilai. Seed UI diimpor idempotent: string baru ditambahkan tanpa menimpa terjemahan yang sudah diedit.
Apa yang bukan fitur Core
Core tidak membuat salinan terjemahan artikel/halaman, workflow penerjemah, language switcher data, route terjemahan, hreflang, atau fallback konten otomatis. Core hanya menyediakan locale helper, UI seed, hook lifecycle konten, tabel route ber-locale, dan extension point.
Tanggung jawab plugin translasi
Plugin menentukan model translasi, locale yang didukung, akses editor, dan fallback. Gunakan hook admin_post_after_*/admin_page_after_* untuk sinkronisasi setelah mutasi. Buat canonical route dan alias untuk setiap locale tanpa collision; default locale biasanya tanpa prefix, locale lain memakai prefix.
Menu dan kategori hanya diterjemahkan bila plugin secara eksplisit mendukung record tersebut dan theme memakai hasil integrasinya. Jangan menganggap mengganti content default otomatis menerjemahkan slug, menu, kategori, metadata, atau isi lama. Uji UI en/id/de, URL default/terjemahan, redirect, canonical, sitemap, dan kondisi plugin disabled.