2011-02-09 17:57:10 +01:00
< ? php
/* Requires this table :
CREATE TABLE translation (
id int NOT NULL AUTO_INCREMENT , -- optional
language_id varchar ( 5 ) NOT NULL ,
2011-02-14 12:09:14 +01:00
idf text NOT NULL COLLATE utf8_bin ,
2011-02-09 17:57:10 +01:00
translation text NOT NULL ,
2011-02-14 12:09:14 +01:00
UNIQUE ( language_id , idf ( 100 )),
2011-02-09 17:57:10 +01:00
PRIMARY KEY ( id )
);
*/
2025-04-07 16:32:57 +02:00
/** Translate all table and field comments , enum and set values from the translation table ( inserts new translations )
2015-09-08 09:23:25 -07:00
* @ link https :// www . adminer . org / plugins / #use
2017-02-27 13:43:33 +01:00
* @ author Jakub Vrana , https :// www . vrana . cz /
2018-01-14 11:03:54 +01:00
* @ license https :// www . apache . org / licenses / LICENSE - 2.0 Apache License , Version 2.0
* @ license https :// www . gnu . org / licenses / gpl - 2.0 . html GNU General Public License , version 2 ( one or other )
2011-02-09 17:57:10 +01:00
*/
2025-04-07 16:32:57 +02:00
class AdminerTranslation extends Adminer\Plugin {
2025-02-21 13:53:18 +01:00
2025-03-11 07:56:28 +01:00
private function translate ( $idf ) {
2011-02-09 17:57:10 +01:00
static $translations , $lang ;
2012-05-13 23:54:07 -07:00
if ( $lang === null ) {
2025-04-04 16:20:51 +02:00
$lang = Adminer\LANG ;
2011-02-09 17:57:10 +01:00
}
2011-02-14 12:09:14 +01:00
if ( $idf == " " || $lang == " en " ) {
return $idf ;
2011-02-09 17:57:10 +01:00
}
2012-05-13 23:54:07 -07:00
if ( $translations === null ) {
2025-03-05 11:40:56 +01:00
$translations = Adminer\get_key_vals ( " SELECT idf, translation FROM translation WHERE language_id = " . Adminer\q ( $lang ));
2011-02-09 17:57:10 +01:00
}
$return = & $translations [ $idf ];
2012-05-13 23:54:07 -07:00
if ( $return === null ) {
2011-02-14 12:09:14 +01:00
$return = $idf ;
2025-03-29 21:16:28 +01:00
Adminer\connection () -> query ( " INSERT INTO translation (language_id, idf, translation) VALUES ( " . Adminer\q ( $lang ) . " , " . Adminer\q ( $idf ) . " , " . Adminer\q ( $idf ) . " ) " );
2011-02-09 17:57:10 +01:00
}
return $return ;
}
2025-02-21 13:53:18 +01:00
2011-02-09 17:57:10 +01:00
function tableName ( & $tableStatus ) {
2025-03-11 07:56:28 +01:00
$tableStatus [ " Comment " ] = $this -> translate ( $tableStatus [ " Comment " ]);
2011-02-09 17:57:10 +01:00
}
2025-02-21 13:53:18 +01:00
2011-02-09 17:57:10 +01:00
function fieldName ( & $field , $order = 0 ) {
2025-03-11 07:56:28 +01:00
$field [ " comment " ] = $this -> translate ( $field [ " comment " ]);
2011-02-09 17:57:10 +01:00
}
2025-02-21 13:53:18 +01:00
2011-02-09 17:57:10 +01:00
function editVal ( & $val , $field ) {
if ( $field [ " type " ] == " enum " ) {
2025-03-11 07:56:28 +01:00
$val = $this -> translate ( $val );
2011-02-09 17:57:10 +01:00
}
}
2025-04-07 17:00:59 +02:00
2025-04-08 12:57:03 +02:00
protected $translations = array (
2025-04-07 17:00:59 +02:00
'cs' => array ( '' => 'Přeloží všechny komentáře tabulek a sloupců, hodnoty políček enum a set pomocí tabulky "translation" (automaticky vkládá nové překlady)' ),
'de' => array ( '' => 'Übersetzen Sie alle Tabellen- und Feldkommentare, enum- und set-Werte aus der "translation"-Tabelle (fügt automatisch neue Übersetzungen ein)' ),
'pl' => array ( '' => 'Przetłumacz wszystkie komentarze do tabeli i pól, wartości enum i set z tabeli "translation" (automatycznie wstawia nowe tłumaczenia)' ),
'ro' => array ( '' => 'Traduceți toate comentariile tabelelor și câmpurilor, valorile enum și set din tabelul "translation" (inserează automat noi traduceri)' ),
2025-04-08 19:34:12 +09:00
'ja' => array ( '' => 'テーブル "translation" を用いてすべてのテーブルや列のコメント、列挙型、セット値を翻訳 (自動的に翻訳文で更新)' ),
2025-04-07 17:00:59 +02:00
);
2011-02-09 17:57:10 +01:00
}