32 lines
1.1 KiB
PHP
32 lines
1.1 KiB
PHP
<?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;
|
|
}
|