exit;
}
-global $translations; // allows including Adminer inside a function
+// Adminer doesn't use any global variables; they used to be declared here
if (!$_SERVER["REQUEST_URI"]) { // IIS 5 compatibility
$_SERVER["REQUEST_URI"] = $_SERVER["ORIG_PATH_INFO"];
*/
function lang(string $idf, $number = null): string {
// this is matched by compile.php
- global $translations;
- $translation = ($translations[$idf] ?: $idf);
+ $translation = (Lang::$translations[$idf] ?: $idf);
if (is_array($translation)) {
// this is matched by compile.php
$pos = ($number == 1 ? 0
if (isset($_POST["lang"]) && verify_token()) { // $error not yet available
cookie("adminer_lang", $_POST["lang"]);
$_SESSION["lang"] = $_POST["lang"]; // cookies may be disabled
- $_SESSION["translations"] = array(); // used in compiled version
redirect(remove_from_uri());
}
}
define('Adminer\LANG', $LANG);
+
+class Lang {
+ /** @var array<literal-string, string|list<string>> */ static array $translations;
+}
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'تسجيل الدخول',
'Logout successful.' => 'تم تسجيل الخروج بنجاح.',
'Invalid credentials.' => 'بيانات الدخول غير صالحة.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Система',
'Server' => 'Сървър',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'লগইন',
'Logout successful.' => 'সফলভাবে লগআউট হয়েছে।',
'Invalid credentials.' => 'ভুল পাসওয়ার্ড।',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Sistem',
'Server' => 'Server',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Inicia la sessió',
'Logout successful.' => 'Desconnexió correcta.',
'Invalid credentials.' => 'Credencials invàlides.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Systém',
'Server' => 'Server',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'System' => 'System',
'Server' => 'Server',
'Username' => 'Brugernavn',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Login',
'Logout successful.' => 'Abmeldung erfolgreich.',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Danke, dass Sie Adminer genutzt haben. <a href="https://www.adminer.org/de/donation/">Spenden willkommen!</a>.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Σύστημα',
'Server' => 'Διακομιστής',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Too many unsuccessful logins, try again in %d minute(s).' => array('Too many unsuccessful logins, try again in %d minute.', 'Too many unsuccessful logins, try again in %d minutes.'),
'Query executed OK, %d row(s) affected.' => array('Query executed OK, %d row affected.', 'Query executed OK, %d rows affected.'),
'%d byte(s)' => array('%d byte', '%d bytes'),
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Login',
'Logout successful.' => 'Sesión finalizada con éxito.',
'Invalid credentials.' => 'Usuario y/o clave de acceso incorrecta.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Logi sisse',
'Logout successful.' => 'Väljalogimine õnnestus.',
'Invalid credentials.' => 'Ebakorrektsed andmed.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'سیستم',
'Server' => 'سرور',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Järjestelmä',
'Server' => 'Palvelin',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Authentification',
'Logout successful.' => 'Au revoir !',
'Invalid credentials.' => 'Authentification échouée.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Conectar',
'Logout successful.' => 'Pechouse a sesión con éxito.',
'Invalid credentials.' => 'Credenciais (usuario e/ou contrasinal) inválidos.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'התחברות',
'Logout successful.' => 'ההתחברות הצליחה',
'Invalid credentials.' => 'פרטי התחברות שגויים',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Belépés',
'Logout successful.' => 'Sikeres kilépés.',
'Invalid credentials.' => 'Érvénytelen adatok.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Sistem',
'Server' => 'Server',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Autenticazione',
'Logout successful.' => 'Uscita effettuata con successo.',
'Invalid credentials.' => 'Credenziali non valide.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'ログイン',
'Logout successful.' => 'ログアウトしました。',
'Invalid credentials.' => '不正なログインです。',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'შესვლა',
'Logout successful.' => 'გამოხვედით სისტემიდან.',
'Invalid credentials.' => 'არასწორი მომხმარებელი ან პაროლი.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'$1-$3-$5' => '$1-$3-$5',
'%.3f s' => '%.3f 초',
'%d byte(s)' => '%d 바이트',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Sistema',
'Server' => 'Serveris',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Ieiet',
'Logout successful.' => 'Jūs veiksmīgi izgājāt no sistēmas.',
'Invalid credentials.' => 'Nepareizs lietotāja vārds vai parole.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Sistem',
'Server' => 'Pelayan',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Aanmelden',
'Logout successful.' => 'Successvol afgemeld.',
'Invalid credentials.' => 'Ongeldige gebruikersgegevens.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'System' => 'System',
'Server' => 'Server',
'Username' => 'Brukernavn',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Rodzaj bazy',
'Server' => 'Serwer',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Entrar',
'Logout successful.' => 'Saída bem sucedida.',
'Invalid credentials.' => 'Identificação inválida.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Entrar',
'Logout successful.' => 'Sessão terminada com sucesso.',
'Invalid credentials.' => 'Identificação inválida.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Intră',
'Logout successful.' => 'Ați ieșit cu succes.',
'Invalid credentials.' => 'Numele de utilizator sau parola este greșită.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Войти',
'Logout successful.' => 'Вы успешно покинули систему.',
'Invalid credentials.' => 'Неправильное имя пользователя или пароль.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'Prihlásiť sa',
'Logout successful.' => 'Odhlásenie prebehlo v poriadku.',
'Invalid credentials.' => 'Neplatné prihlasovacie údaje.',
'Warnings' => 'Varovania',
'%d / ' => '%d / ',
'Limit rows' => 'Limit riadkov',
- 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer nepodporuje prístup k databáze bez hesla, <a href="https://www.adminer.org/cs/password/"%s>viac informácií</a>.',
+ 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer nepodporuje prístup k databáze bez hesla, <a href="https://www.adminer.org/en/password/"%s>viac informácií</a>.',
'Default value' => 'Predvolená hodnota',
'Full table scan' => 'Prechod celej tabuľky',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Príliš veľa pokusov o prihlásenie, skúste to znova za %d minutu.', 'Príliš veľa pokusov o prihlásenie, skúste to znova za %d minuty.', 'Príliš veľa pokusov o prihlásenie, skúste to znova za %d minút.'),
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Sistem',
'Server' => 'Strežnik',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Систем',
'Server' => 'Сервер',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'System',
'Server' => 'Server',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'நுழை',
'Logout successful.' => 'வெற்றிகரமாய் வெளியேறியாயிற்று.',
'Invalid credentials.' => 'சரியான விபரங்கள் இல்லை.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
'Login' => 'เข้าสู่ระบบ',
'Logout successful.' => 'ออกจากระบบเรียบร้อยแล้ว.',
'Invalid credentials.' => 'ข้อมูลไม่ถูกต้อง.',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Sistem',
'Server' => 'Sunucu',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Система Бази Даних',
'Server' => 'Сервер',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Tizim',
'Server' => 'Server',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Hệ thống',
'Server' => 'Máy chủ',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => 'Xx',
'Server' => 'Xx',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => '資料庫系統',
'Server' => '伺服器',
<?php
namespace Adminer;
-$translations = array(
+Lang::$translations = array(
// label for database system selection (MySQL, SQLite, ...)
'System' => '系统',
'Server' => '服务器',
}
function remove_lang($match) {
- global $translations;
$idf = strtr($match[2], array("\\'" => "'", "\\\\" => "\\"));
- $s = ($translations[$idf] ?: $idf);
+ $s = (Adminer\Lang::$translations[$idf] ?: $idf);
if ($match[3] == ",") { // lang() has parameters
return $match[1] . (is_array($s) ? "lang(array('" . implode("', '", array_map('add_apo_slashes', $s)) . "')," : "sprintf('" . add_apo_slashes($s) . "',");
}
}
$return = "";
foreach (Adminer\langs() as $lang => $val) {
- include __DIR__ . "/adminer/lang/$lang.inc.php"; // assign $translations
+ include __DIR__ . "/adminer/lang/$lang.inc.php";
$translation_ids = array_flip($lang_ids); // default translation
- foreach ($translations as $key => $val) {
+ foreach (Adminer\Lang::$translations as $key => $val) {
if ($val !== null) {
$translation_ids[$lang_ids[$key]] = implode("\t", (array) $val);
}
case "' . $lang . '": $compressed = "' . add_quo_slashes(lzw_compress(implode("\n", $translation_ids))) . '"; break;';
}
$translations_version = crc32($return);
- return '$translations = $_SESSION["translations"];
-if ($_SESSION["translations_version"] != ' . $translations_version . ') {
- $translations = array();
- $_SESSION["translations_version"] = ' . $translations_version . ';
+ return 'Lang::$translations = $_SESSION["translations"];
+if ($_SESSION["translations_version"] != LANG . ' . $translations_version . ') {
+ Lang::$translations = array();
+ $_SESSION["translations_version"] = LANG . ' . $translations_version . ';
+}
+if (!Lang::$translations) {
+ Lang::$translations = get_translations(LANG);
+ $_SESSION["translations"] = Lang::$translations;
}
function get_translations($lang) {
}
return $translations;
}
-
-if (!$translations) {
- $translations = get_translations(LANG);
- $_SESSION["translations"] = $translations;
-}
';
}
-Subproject commit 0245ae4ea92f7de28c0b5633fc8ed691dbb25992
+Subproject commit 9ff1f4be6800a72e6cc866104b38a61d706b0417
unset($_COOKIE["adminer_lang"]);
$_SESSION["lang"] = $_SERVER["argv"][1]; // Adminer functions read language from session
if (isset($_SESSION["lang"])) {
- include __DIR__ . "/adminer/include/lang.inc.php";
- if (isset($_SERVER["argv"][2]) || (!idx(Adminer\langs(), $_SESSION["lang"]) && $_SESSION["lang"] != "xx")) {
+ if (isset($_SERVER["argv"][2]) || !file_exists($filename)) {
echo "Usage: php lang.php [lang]\nPurpose: Update adminer/lang/*.inc.php from source code messages.\n";
exit(1);
}
glob(__DIR__ . "/adminer/drivers/*.php"),
glob(__DIR__ . "/editor/*.php"),
glob(__DIR__ . "/editor/include/*.php")
- ) as $filename
+ ) as $include
) {
- $file = file_get_contents($filename);
+ $file = file_get_contents($include);
if (preg_match_all("~lang\\(('(?:[^\\\\']+|\\\\.)*')([),])~", $file, $matches)) { // lang() always uses apostrophes
$messages_all += array_combine($matches[1], $matches[2]);
}
}
}
}
- $s = "<?php\nnamespace Adminer;\n\n\$translations = array(\n$s);\n\n// run `php ../../lang.php $lang` to update this file\n";
+ $s = "<?php\nnamespace Adminer;\n\nLang::\$translations = array(\n$s\t);\n\n// run `php ../../lang.php $lang` to update this file\n";
if ($s != $file) {
file_put_contents($filename, $s);
echo "$filename updated.\n";