<?php include_once 'Db.php'; include_once 'Localization.php'; $db = Db::getInstance(); $result = $db->query("SHOW COLUMNS FROM translations"); $columns = $result->fetchAll(PDO::FETCH_ASSOC); $possibleLanguages = array_values(array_map(function ($array) { return str_replace('text_', '', $array['Field']); }, array_filter($columns, function ($array) { return strpos($array['Field'], 'text_') !== false; }))); if (isset($_GET['lang'])) { $lang = $_GET['lang']; if (!in_array($lang, $possibleLanguages)) { throw new Exception("Wrong language"); } setcookie('lang', $lang); $_COOKIE['lang'] = $lang; } Localization::$LANG_DEFAULT = $possibleLanguages[0]; function __($tag) { $lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : Localization::LANG_DEFAULT; $sth = Db::getInstance()->prepare("\n SELECT text_{$lang}\n FROM translations\n WHERE tag = ?;\n "); $data = array($tag); $sth->execute($data); $row = $sth->fetch(PDO::FETCH_NUM); return $row[0]; }
<?php require_once 'Db.php'; require_once 'Localization.php'; Localization::$LANG_DEFAULT = $_COOKIE['lang']; $db = Db::getInstance(); $resTranslations = $db->query("SELECT id, tag, text_en, text_bg FROM TRANSLATIONS"); $translations = $resTranslations->fetchAll(PDO::FETCH_ASSOC); ?> <html> <head> <meta charset="UTF-8"> <title>Edit</title> </head> <body> <form method="post"> <?php foreach ($translations as $translation) { ?> <div class="source-translation"><?php echo $translation['text_' . Localization::$LANG_DEFAULT]; ?> </div> <textarea name="<?php echo $translation['id']; ?> "><?php echo $translation['text_bg']; ?> </textarea>