feat(i18n): integrasi sistem bilingual otomatis dan instant switcher pada dashboard admin

This commit is contained in:
Mas Budi Kusuma
2026-09-16 00:34:05 +07:00
parent 1325362eca
commit ada95fdea3
3 changed files with 223 additions and 196 deletions
+31
View File
@@ -0,0 +1,31 @@
<?php
/**
* Modul Native Internationalization (i18n) Dashboard EduKarsa
* Mendeteksi bahasa sistem WordPress atau switcher manual tanpa plugin
*/
function edukarsa_get_admin_lang() {
// 1. Cek parameter URL manual jika diklik dari switcher
if ( isset( $_GET['edukarsa_admin_lang'] ) && in_array( $_GET['edukarsa_admin_lang'], array( 'id', 'en' ) ) ) {
$lang = sanitize_text_field( $_GET['edukarsa_admin_lang'] );
setcookie( 'edukarsa_dashboard_lang', $lang, time() + ( 86400 * 30 ), '/' );
return $lang;
}
// 2. Cek cookie preferensi tersimpan
if ( isset( $_COOKIE['edukarsa_dashboard_lang'] ) && in_array( $_COOKIE['edukarsa_dashboard_lang'], array( 'id', 'en' ) ) ) {
return sanitize_text_field( $_COOKIE['edukarsa_dashboard_lang'] );
}
// 3. Fallback otomatis mengikuti locale pengguna / sistem WordPress
$locale = function_exists( 'get_user_locale' ) ? get_user_locale() : get_locale();
if ( strpos( $locale, 'en' ) === 0 ) {
return 'en';
}
return 'id';
}
function edukarsa_t( $id_text, $en_text ) {
return ( edukarsa_get_admin_lang() === 'en' ) ? $en_text : $id_text;
}