%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
<?php
/**
* Internasionalisasi sederhana (Bahasa Indonesia / English).
*
* Pendekatan: kunci terjemahan = teks sumber Bahasa Indonesia. Pada mode 'id',
* t() mengembalikan teks apa adanya; pada mode 'en', mencari di kamus lang/en.php
* dan jatuh kembali ke teks Indonesia bila terjemahan belum tersedia.
*/
define('AVAILABLE_LANGS', ['id', 'en']);
/**
* Inisialisasi bahasa: tangkap parameter ?lang= dan simpan ke session + cookie.
* Dipanggil sekali saat bootstrap (config.php).
*/
function i18n_init(): void
{
if (isset($_GET['lang']) && in_array($_GET['lang'], AVAILABLE_LANGS, true)) {
$_SESSION['lang'] = $_GET['lang'];
// Cookie 1 tahun agar pilihan diingat lintas sesi.
setcookie('ppid_lang', $_GET['lang'], time() + 31536000, '/');
} elseif (!isset($_SESSION['lang']) && isset($_COOKIE['ppid_lang']) && in_array($_COOKIE['ppid_lang'], AVAILABLE_LANGS, true)) {
$_SESSION['lang'] = $_COOKIE['ppid_lang'];
}
}
/**
* Bahasa aktif saat ini ('id' atau 'en').
*/
function current_lang(): string
{
$l = $_SESSION['lang'] ?? 'id';
return in_array($l, AVAILABLE_LANGS, true) ? $l : 'id';
}
/**
* Terjemahkan teks (kunci = sumber Bahasa Indonesia).
*/
function t(string $text): string
{
if (current_lang() === 'id') {
return $text;
}
static $map = null;
if ($map === null) {
$file = ROOT_PATH . '/lang/' . current_lang() . '.php';
$map = is_file($file) ? (require $file) : [];
}
return $map[$text] ?? $text;
}
/**
* URL halaman saat ini dengan parameter bahasa di-set (untuk tombol ganti bahasa).
*/
function lang_url(string $lang): string
{
$uri = $_SERVER['REQUEST_URI'] ?? '/';
$parts = explode('?', $uri, 2);
$path = $parts[0];
$query = [];
if (isset($parts[1])) {
parse_str($parts[1], $query);
}
$query['lang'] = $lang;
return $path . '?' . http_build_query($query);
}