]> git.joonet.de Git - adminer.git/commitdiff
Editor: Split sending e-mails to a plugin
authorJakub Vrana <jakub@vrana.cz>
Fri, 4 Apr 2025 07:51:08 +0000 (09:51 +0200)
committerJakub Vrana <jakub@vrana.cz>
Fri, 4 Apr 2025 15:26:56 +0000 (17:26 +0200)
49 files changed:
CHANGELOG.md
adminer/lang/ar.inc.php
adminer/lang/bg.inc.php
adminer/lang/bn.inc.php
adminer/lang/bs.inc.php
adminer/lang/ca.inc.php
adminer/lang/cs.inc.php
adminer/lang/da.inc.php
adminer/lang/de.inc.php
adminer/lang/el.inc.php
adminer/lang/en.inc.php
adminer/lang/es.inc.php
adminer/lang/et.inc.php
adminer/lang/fa.inc.php
adminer/lang/fi.inc.php
adminer/lang/fr.inc.php
adminer/lang/gl.inc.php
adminer/lang/he.inc.php
adminer/lang/hu.inc.php
adminer/lang/id.inc.php
adminer/lang/it.inc.php
adminer/lang/ja.inc.php
adminer/lang/ka.inc.php
adminer/lang/ko.inc.php
adminer/lang/lt.inc.php
adminer/lang/lv.inc.php
adminer/lang/ms.inc.php
adminer/lang/nl.inc.php
adminer/lang/no.inc.php
adminer/lang/pl.inc.php
adminer/lang/pt-br.inc.php
adminer/lang/pt.inc.php
adminer/lang/ro.inc.php
adminer/lang/ru.inc.php
adminer/lang/sk.inc.php
adminer/lang/sl.inc.php
adminer/lang/sr.inc.php
adminer/lang/sv.inc.php
adminer/lang/ta.inc.php
adminer/lang/th.inc.php
adminer/lang/tr.inc.php
adminer/lang/uk.inc.php
adminer/lang/uz.inc.php
adminer/lang/vi.inc.php
adminer/lang/xx.inc.php
adminer/lang/zh-tw.inc.php
adminer/lang/zh.inc.php
editor/include/adminer.inc.php
plugins/select-email.php [new file with mode: 0644]

index 7c1639391893e3a532605c047d32e453346582e4..4356a573db66e2a373276277d1a48d73b8f875d6 100644 (file)
@@ -5,6 +5,7 @@
 - MySQL: Display number of found rows in group queries (regression from 5.1.1)
 - non-MySQL: Parse '--' without trailing space as comment in SQL command (bug SF-842)
 - CSS: Add logo
+- Editor: Move mass sending e-mails to a plugin
 - Plugins: Allow formatting translations using Adminer\lang_format()
 - New plugin: Set up driver, server and database in Adminer Editor
 
index 5c640223c9fe14dd29a87ca7577d7174b8d65e4f..09f4af2a9f35b1d77f063de58c42385d899a5c8e 100644 (file)
@@ -212,11 +212,6 @@ Lang::$translations = array(
        'Binary' => 'ثنائية',
        'Lists' => 'قوائم',
        'Editor' => 'المحرر',
-       'E-mail' => 'البريد الإلكتروني',
-       'From' => 'من',
-       'Subject' => 'الموضوع',
-       'Send' => 'إرسال',
-       '%d e-mail(s) have been sent.' => 'تم إرسال %d رسالة.',
        'Webserver file %s' => 'ملف %s من خادم الويب',
        'File does not exist.' => 'الملف غير موجود.',
        '%d in total' => '%d في المجموع',
@@ -251,7 +246,6 @@ Lang::$translations = array(
        'Network' => 'شبكة',
        'Geometry' => 'هندسة',
        'File exists.' => 'الملف موجود.',
-       'Attachments' => 'ملفات مرفقة',
        'Item%s has been inserted.' => '%sتم إدراج العنصر.',
        'now' => 'الآن',
        '%d query(s) executed OK.' => array('تم تنفيذ الاستعلام %d بنجاح.', 'تم تنفيذ الاستعلامات %d بنجاح.'),
index 37c5443fbbfdf4e95e2d7a1c18b4e6cffdb880d3..7ad1b8dc0d290a376ff40646f2a3763de9bca93b 100644 (file)
@@ -279,13 +279,6 @@ Lang::$translations = array(
        'Delete' => 'Изтриване',
        'You have no privileges to update this table.' => 'Нямате праве за обновяване на таблицата.',
 
-       'E-mail' => 'E-mail',
-       'From' => 'От',
-       'Subject' => 'Тема',
-       'Attachments' => 'Прикачени',
-       'Send' => 'Изпращане',
-       '%d e-mail(s) have been sent.' => array('%d писмо беше изпратено.', '%d писма бяха изпратени.'),
-
        // data type descriptions
        'Numbers' => 'Числа',
        'Date and time' => 'Дата и час',
index 452d9b5c20ee8b832bf4baa7feef48060d410db9..76ce7481ad11247753005d891f70c31f7710cc1b 100644 (file)
@@ -214,11 +214,6 @@ Lang::$translations = array(
        'Binary' => 'বাইনারি',
        'Lists' => 'তালিকা',
        'Editor' => 'সম্পাদক',
-       'E-mail' => '​​ই-মেইল',
-       'From' => 'থেকে',
-       'Subject' => 'বিষয়',
-       'Send' => 'পাঠান',
-       '%d e-mail(s) have been sent.' => array('%d ইমেইল(গুলি) পাঠানো হয়েছে।', '%d ইমেইল(গুলি) পাঠানো হয়েছে।'),
        'Webserver file %s' => 'ওয়েবসার্ভার ফাইল %s',
        'File does not exist.' => 'ফাইলটির কোন অস্তিত্ব নেই।',
        '%d in total' => 'সর্বমোটঃ %d টি',
@@ -252,7 +247,6 @@ Lang::$translations = array(
        'Network' => 'নেটওয়ার্ক',
        'Geometry' => 'জ্যামিতি',
        'File exists.' => 'ফাইল রয়েছে।',
-       'Attachments' => 'সংযুক্তিগুলো',
        '%d query(s) executed OK.' => array('SQL-অনুসন্ধান সফলভাবে সম্পন্ন হয়েছে।', '%d SQL-অনুসন্ধানসমূহ সফলভাবে সম্পন্ন হয়েছে।'),
        'Show only errors' => 'শুধুমাত্র ত্রুটিগুলো দেখান',
        'Refresh' => 'রিফ্রেশ',
index c1f7e587dfcfe9d2906f3cbaaa8de11de27ca1d2..56a733658a739596b5ba2f4e6ec2b1cf51e9b63d 100644 (file)
@@ -264,13 +264,6 @@ Lang::$translations = array(
        'Delete' => 'Izbriši',
        'Modify' => 'Izmjene',
 
-       'E-mail' => 'El. pošta',
-       'From' => 'Od',
-       'Subject' => 'Naslov',
-       'Attachments' => 'Prilozi',
-       'Send' => 'Pošalji',
-       '%d e-mail(s) have been sent.' => array('%d poruka el. pošte je poslata.', '%d poruke el. pošte su poslate.', '%d poruka el. pošte je poslato.'),
-
        // data type descriptions
        'Numbers' => 'Broj',
        'Date and time' => 'Datum i vrijeme',
index f64607bfd4b50cba7d24db741d03bdc3e5dff11a..94f2b9ec22e45299516e9901d152e2aa36894c1a 100644 (file)
@@ -206,11 +206,6 @@ Lang::$translations = array(
        'History' => 'Història',
        'Variables' => 'Variables',
        'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Les columnes d\'origen i de destinació han de ser del mateix tipus, la columna de destinació ha d\'estar indexada i les dades referenciades han d\'existir.',
-       'E-mail' => 'Correu electrònic',
-       'From' => 'De',
-       'Subject' => 'Assumpte',
-       'Send' => 'Envia',
-       '%d e-mail(s) have been sent.' => array('S\'ha enviat %d correu electrònic.', 'S\'han enviat %d correus electrònics.'),
        'Run file' => 'Executa el fitxer',
        'Numbers' => 'Nombres',
        'Date and time' => 'Data i hora',
@@ -225,7 +220,6 @@ Lang::$translations = array(
        'File does not exist.' => 'El fitxer no existeix.',
        'Permanent login' => 'Sessió permanent',
        '%d in total' => '%d en total',
-       'Attachments' => 'Adjuncions',
        'System' => 'Sistema',
        'last' => 'darrera',
        'Network' => 'Xarxa',
index 0973e41956b0bd0b4add5226aa925139e9bec238..ff945c6d7c5b9a680c524be2bead3e2fd322510a 100644 (file)
@@ -295,13 +295,6 @@ Lang::$translations = array(
        'Delete' => 'Smazat',
        'You have no privileges to update this table.' => 'Nemáte oprávnění editovat tuto tabulku.',
 
-       'E-mail' => 'E-mail',
-       'From' => 'Odesílatel',
-       'Subject' => 'Předmět',
-       'Attachments' => 'Přílohy',
-       'Send' => 'Odeslat',
-       '%d e-mail(s) have been sent.' => array('Byl odeslán %d e-mail.', 'Byly odeslány %d e-maily.', 'Bylo odesláno %d e-mailů.'),
-
        // data type descriptions
        'Numbers' => 'Čísla',
        'Date and time' => 'Datum a čas',
index 2543febe68244930d03ec191270eedd47a3aa33f..3c695150f17d7722b4761c7a511fe561709aa65e 100644 (file)
@@ -238,12 +238,6 @@ Lang::$translations = array(
        'Clone' => 'Klon',
        'Delete' => 'Slet',
        'You have no privileges to update this table.' => 'Du mangler rettigheder til at ændre denne tabellen.',
-       'E-mail' => 'E-mail',
-       'From' => 'Fra',
-       'Subject' => 'Titel',
-       'Attachments' => 'Vedhæft',
-       'Send' => 'Send',
-       '%d e-mail(s) have been sent.' => array('%d email sendt.', '%d emails sendt.'),
        'Numbers' => 'Nummer',
        'Date and time' => 'Dato og tid',
        'Strings' => 'Strenge',
index 27d95e672e714f6c735acd08e571168e38e00bcc..bcd152b20a765db815204964f80c650c5720fdc5 100644 (file)
@@ -215,11 +215,6 @@ Lang::$translations = array(
        'Binary' => 'Binär',
        'Lists' => 'Listen',
        'Editor' => 'Editor',
-       'E-mail' => 'E-Mail',
-       'From' => 'Von',
-       'Subject' => 'Betreff',
-       'Send' => 'Abschicken',
-       '%d e-mail(s) have been sent.' => array('%d E-Mail abgeschickt.', '%d E-Mails abgeschickt.'),
        'Webserver file %s' => 'Webserver Datei %s',
        'File does not exist.' => 'Datei existiert nicht.',
        '%d in total' => '%d insgesamt',
@@ -254,7 +249,6 @@ Lang::$translations = array(
        'Network' => 'Netzwerk',
        'Geometry' => 'Geometrie',
        'File exists.' => 'Datei existiert schon.',
-       'Attachments' => 'Anhänge',
        '%d query(s) executed OK.' => array('SQL-Abfrage erfolgreich ausgeführt.', '%d SQL-Abfragen erfolgreich ausgeführt.'),
        'Show only errors' => 'Nur Fehler anzeigen',
        'Refresh' => 'Aktualisieren',
index 98cefc1d92aa5562d5693cb344c7324cf27e9b62..1923ebe2363eb14baf5e45fcc4294d9c37122929 100644 (file)
@@ -279,13 +279,6 @@ Lang::$translations = array(
        'Delete' => 'Διαγραφή',
        'You have no privileges to update this table.' => 'Δεν έχετε δικαίωμα να τροποποιήσετε αυτό τον πίνακα.',
 
-       'E-mail' => 'E-mail',
-       'From' => 'Από',
-       'Subject' => 'Θέμα',
-       'Attachments' => 'Συνημμένα',
-       'Send' => 'Αποστολή',
-       '%d e-mail(s) have been sent.' => array('%d e-mail απεστάλη.', '%d e-mail απεστάλησαν.'),
-
        // data type descriptions
        'Numbers' => 'Αριθμοί',
        'Date and time' => 'Ημερομηνία και ώρα',
index 3dcd6355eb748fc98e4124042e61ff3e513049cc..7796a9c2d74a1ace0701cff9f78156f141341f2d 100644 (file)
@@ -11,7 +11,6 @@ Lang::$translations = array(
        '%d row(s)' => array('%d row', '%d rows'),
        '%d item(s) have been affected.' => array('%d item has been affected.', '%d items have been affected.'),
        '%d row(s) have been imported.' => array('%d row has been imported.', '%d rows have been imported.'),
-       '%d e-mail(s) have been sent.' => array('%d e-mail has been sent.', '%d e-mails have been sent.'),
        '%d in total' => '%d in total',
        '%d query(s) executed OK.' => array('%d query executed OK.', '%d queries executed OK.'),
 );
index 1b2733e1ca9ba4e5995ee5e9343646ed207fdfde..308f04a1101a700e54d1f29238be52e696f694bb 100644 (file)
@@ -222,11 +222,6 @@ Lang::$translations = array(
        'Binary' => 'Binario',
        'Lists' => 'Listas',
        'Editor' => 'Editor',
-       'E-mail' => 'Email',
-       'From' => 'De',
-       'Subject' => 'Asunto',
-       'Send' => 'Enviar',
-       '%d e-mail(s) have been sent.' => array('%d email enviado.', '%d emails enviados.'),
        'Webserver file %s' => 'Archivo de servidor web %s',
        'File does not exist.' => 'Ese archivo no existe.',
        '%d in total' => '%d en total',
@@ -261,7 +256,6 @@ Lang::$translations = array(
        'Network' => 'Red',
        'Geometry' => 'Geometría',
        'File exists.' => 'Ese archivo ya existe.',
-       'Attachments' => 'Adjuntos',
        '%d query(s) executed OK.' => array('%d sentencia SQL ejecutada correctamente.', '%d sentencias SQL ejecutadas correctamente.'),
        'Show only errors' => 'Mostrar solamente errores',
        'Refresh' => 'Actualizar',
index 099194c06760cce644363624a36c036932d75dc2..ebd3da00cfe8cd8e3598e2ce9719971f7cbddc69 100644 (file)
@@ -214,11 +214,6 @@ Lang::$translations = array(
        'Binary' => 'Binaar',
        'Lists' => 'Listid',
        'Editor' => 'Redaktor',
-       'E-mail' => 'E-post',
-       'From' => 'Kellelt',
-       'Subject' => 'Pealkiri',
-       'Send' => 'Saada',
-       '%d e-mail(s) have been sent.' => 'Saadetud kirju: %d.',
        'Webserver file %s' => 'Fail serveris: %s',
        'File does not exist.' => 'Faili ei leitud.',
        '%d in total' => 'Kokku: %d',
@@ -253,7 +248,6 @@ Lang::$translations = array(
        'Network' => 'Võrk (network)',
        'Geometry' => 'Geomeetria',
        'File exists.' => 'Fail juba eksisteerib.',
-       'Attachments' => 'Manused',
        '%d query(s) executed OK.' => array('%d päring edukalt käivitatud.', '%d päringut edukalt käivitatud.'),
        'Show only errors' => 'Kuva vaid veateateid',
        'Refresh' => 'Uuenda',
index 13586eb715a3415f4a1961c44d899bb945b1a3cc..3c44fe858846d4ba90aad71c3afb9bece15d943a 100644 (file)
@@ -277,13 +277,6 @@ Lang::$translations = array(
        'Delete' => 'حذف',
        'You have no privileges to update this table.' => 'شما اختیار ویرایش این جدول را ندارید.',
 
-       'E-mail' => 'پست الکترونیک',
-       'From' => 'فرستنده',
-       'Subject' => 'موضوع',
-       'Attachments' => 'پیوست ها',
-       'Send' => 'ارسال',
-       '%d e-mail(s) have been sent.' => array('%d ایمیل ارسال شد.', '%d ایمیل ارسال شد.'),
-
        // data type descriptions
        'Numbers' => 'اعداد',
        'Date and time' => 'تاریخ و زمان',
index bd11f9ce4c8d5e4f99948f4f99efe196912059f2..b9b534c8e82c225e957378ba4e843f9c7dfe4a3f 100644 (file)
@@ -279,13 +279,6 @@ Lang::$translations = array(
        'Delete' => 'Poista',
        'You have no privileges to update this table.' => 'Sinulla ei ole oikeutta päivittää tätä taulua.',
 
-       'E-mail' => 'S-posti',
-       'From' => 'Lähettäjä',
-       'Subject' => 'Aihe',
-       'Attachments' => 'Liitteet',
-       'Send' => 'Lähetä',
-       '%d e-mail(s) have been sent.' => array('% sähköpostiviestiä lähetetty.', '% sähköpostiviestiä lähetetty.'),
-
        // data type descriptions
        'Numbers' => 'Numerot',
        'Date and time' => 'Päiväys ja aika',
index 5f84a06562ae0da193e7ead337951186f175c576..a0b4a1ab5dbd4f0e30d8465c5db41fb0d50b282d 100644 (file)
@@ -212,11 +212,6 @@ Lang::$translations = array(
        'Binary' => 'Binaires',
        'Lists' => 'Listes',
        'Editor' => 'Éditeur',
-       'E-mail' => 'Courriel',
-       'From' => 'De',
-       'Subject' => 'Sujet',
-       'Send' => 'Envoyer',
-       '%d e-mail(s) have been sent.' => array('%d message a été envoyé.', '%d messages ont été envoyés.'),
        'Webserver file %s' => 'Fichier %s du serveur Web',
        'File does not exist.' => 'Le fichier est introuvable.',
        '%d in total' => '%d au total',
@@ -252,7 +247,6 @@ Lang::$translations = array(
        'Network' => 'Réseau',
        'Geometry' => 'Géométrie',
        'File exists.' => 'Le fichier existe.',
-       'Attachments' => 'Pièces jointes',
        'Item%s has been inserted.' => 'L\'élément%s a été inséré.',
        'now' => 'maintenant',
        '%d query(s) executed OK.' => array('%d requête exécutée avec succès.', '%d requêtes exécutées avec succès.'),
index 726eea77c8c8d6a74526c32e414353c2fba6084d..00b6735a9f4f0ef7d1ca7a4d1c350b17635ebf85 100644 (file)
@@ -214,11 +214,6 @@ Lang::$translations = array(
        'Binary' => 'Binario',
        'Lists' => 'Listas',
        'Editor' => 'Editor',
-       'E-mail' => 'Email',
-       'From' => 'De',
-       'Subject' => 'Asunto',
-       'Send' => 'Enviar',
-       '%d e-mail(s) have been sent.' => array('%d email enviado.', '%d emails enviados.'),
        'Webserver file %s' => 'Ficheiro de servidor web %s',
        'File does not exist.' => 'O ficheiro non existe.',
        '%d in total' => '%d en total',
@@ -253,7 +248,6 @@ Lang::$translations = array(
        'Network' => 'Rede',
        'Geometry' => 'Xeometría',
        'File exists.' => 'O ficheiro xa existe.',
-       'Attachments' => 'Adxuntos',
        '%d query(s) executed OK.' => array('%d consulta executada correctamente.', '%d consultas executadas correctamente.'),
        'Show only errors' => 'Amosar só erros',
        'Refresh' => 'Refrescar',
index 97489126eeb98e217aacffabe37ec48efdfa35e2..d59f08f8942d2612a5d535b8fa73ee707e0a8bdc 100644 (file)
@@ -212,11 +212,6 @@ Lang::$translations = array(
        'Binary' => 'בינארי',
        'Lists' => 'רשימות',
        'Editor' => 'עורך',
-       'E-mail' => 'דוא"ל',
-       'From' => 'מ:',
-       'Subject' => 'נושא',
-       'Send' => 'שלח',
-       '%d e-mail(s) have been sent.' => '%d הודעות דוא"ל נשלחו',
        'Webserver file %s' => 'קובץ השרת %s',
        'File does not exist.' => 'הקובץ אינו קיים',
        '%d in total' => '%d בסך הכל',
@@ -251,7 +246,6 @@ Lang::$translations = array(
        'Network' => 'רשת',
        'Geometry' => 'גיאומטריה',
        'File exists.' => 'קובץ קיים',
-       'Attachments' => 'קבצים מצורפים',
        'Item%s has been inserted.' => 'הפריט %s הוזן בהצלחה',
        'now' => 'כעת',
        '%d query(s) executed OK.' => '%d שאילתות בוצעו בהצלחה',
index 881a4961a9375cb29534cfdd169bc2763673110b..902d50d010445de6007d9217cd3f066a0d7f5c66 100644 (file)
@@ -206,11 +206,6 @@ Lang::$translations = array(
        'History' => 'Történet',
        'Variables' => 'Változók',
        'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'A forrás és cél oszlopoknak azonos típusúak legyenek, a cél oszlopok indexeltek legyenek, és a hivatkozott adatnak léteznie kell.',
-       'E-mail' => 'E-mail',
-       'From' => 'Feladó',
-       'Subject' => 'Tárgy',
-       'Send' => 'Küldés',
-       '%d e-mail(s) have been sent.' => array('%d e-mail elküldve.', '%d e-mail elküldve.', '%d e-mail elküldve.'),
        'Run file' => 'Fájl futtatása',
        'Numbers' => 'Szám',
        'Date and time' => 'Dátum és idő',
@@ -225,7 +220,6 @@ Lang::$translations = array(
        'File does not exist.' => 'A fájl nem létezik.',
        'Permanent login' => 'Emlékezz rám',
        '%d in total' => 'összesen %d',
-       'Attachments' => 'Csatolmány',
        'System' => 'Adatbázis',
        'last' => 'utolsó',
        'Network' => 'Hálózat',
index 5537b6f6179554db66f6661411e2606fb0a07ff9..8debc3784f4b4c10903efdbd35721161405ee88f 100644 (file)
@@ -259,13 +259,6 @@ Lang::$translations = array(
        'Clone' => 'Gandakan',
        'Delete' => 'Hapus',
 
-       'E-mail' => 'Surel',
-       'From' => 'Dari',
-       'Subject' => 'Judul',
-       'Attachments' => 'Lampiran',
-       'Send' => 'Kirim',
-       '%d e-mail(s) have been sent.' => '%d surel berhasil dikirim.',
-
        // data type descriptions
        'Numbers' => 'Angka',
        'Date and time' => 'Tanggal dan waktu',
index 81287e21c7d15020db62a95c7b036bcf0278b69d..b3f08d0210bef8b8f09785853369df69204ec051 100644 (file)
@@ -214,11 +214,6 @@ Lang::$translations = array(
        'Binary' => 'Binari',
        'Lists' => 'Liste',
        'Editor' => 'Editor',
-       'E-mail' => 'E-mail',
-       'From' => 'Da',
-       'Subject' => 'Oggetto',
-       'Send' => 'Invia',
-       '%d e-mail(s) have been sent.' => array('%d e-mail inviata.', '%d e-mail inviate.'),
        'Webserver file %s' => 'Webserver file %s',
        'File does not exist.' => 'Il file non esiste.',
        '%d in total' => '%d in totale',
@@ -253,7 +248,6 @@ Lang::$translations = array(
        'Network' => 'Rete',
        'Geometry' => 'Geometria',
        'File exists.' => 'Il file esiste già.',
-       'Attachments' => 'Allegati',
        '%d query(s) executed OK.' => array('%d query eseguita con successo.', '%d query eseguite con successo.'),
        'Show only errors' => 'Mostra solo gli errori',
        'Refresh' => 'Aggiorna',
index 029b7b3379725f1f2956fe208b83afe30774b051..99c78b7caa093eb59332ef5e2f0d2df45eaff446 100644 (file)
@@ -243,11 +243,6 @@ Lang::$translations = array(
        'Binary' => 'バイナリ',
        'Lists' => 'リスト',
        'Editor' => 'エディタ',
-       'E-mail' => 'メール',
-       'From' => '差出人',
-       'Subject' => '題名',
-       'Send' => '送信',
-       '%d e-mail(s) have been sent.' => '%d メールを送信しました。',
        'Webserver file %s' => 'Webサーバファイル %s',
        'File does not exist.' => 'ファイルは存在しません。',
        '%d in total' => '合計 %d',
@@ -280,7 +275,6 @@ Lang::$translations = array(
        'Network' => 'ネットワーク型',
        'Geometry' => 'ジオメトリ型',
        'File exists.' => 'ファイルが既に存在します。',
-       'Attachments' => '添付ファイル',
        'Item%s has been inserted.' => '%s項目を挿入しました。',
        'now' => '現在の日時',
        '%d query(s) executed OK.' => '%d クエリーを実行しました。',
index 97cc9666063e286ea42b5326733f2aaf1338bff9..e4d87c17183dddd1360a51a5a4400c720d9c880a 100644 (file)
@@ -210,11 +210,6 @@ Lang::$translations = array(
        'Binary' => 'ორობითი',
        'Lists' => 'სია',
        'Editor' => 'რედაქტორი',
-       'E-mail' => 'ელ. ფოსტა',
-       'From' => 'ავტორი:',
-       'Subject' => 'თემა',
-       'Send' => 'გაგზავნა',
-       '%d e-mail(s) have been sent.' => 'გაიგზავნა %d წერილი.',
        'Webserver file %s' => 'ფაილი %s ვებსერვერზე',
        'File does not exist.' => 'ასეთი ფაილი არ არსებობს.',
        '%d in total' => 'სულ %d',
@@ -249,7 +244,6 @@ Lang::$translations = array(
        'Network' => 'ქსელი',
        'Geometry' => 'გეომეტრია',
        'File exists.' => 'ფაილი უკვე არსებობს.',
-       'Attachments' => 'მიმაგრებული ფაილები',
        '%d query(s) executed OK.' => '%d მოთხოვნა შესრულდა.',
        'Show only errors' => 'მხოლოდ შეცდომები',
        'Refresh' => 'განახლება',
index 28e20738b93578f731d605ce1b0da9151befc253..53b87ee6575371845caac7438e778bfde3e2de6c 100644 (file)
@@ -5,7 +5,6 @@ Lang::$translations = array(
        '$1-$3-$5' => '$1-$3-$5',
        '%.3f s' => '%.3f 초',
        '%d byte(s)' => '%d 바이트',
-       '%d e-mail(s) have been sent.' => '%d개 메일을 보냈습니다.',
        '%d in total' => '총 %d개',
        '%d item(s) have been affected.' => '%d개 항목을 갱신했습니다.',
        '%d process(es) have been killed.' => '%d개 프로세스를 강제 종료하였습니다.',
@@ -38,7 +37,6 @@ Lang::$translations = array(
        'anywhere' => '모든',
        'Are you sure?' => '실행 하시겠습니까?',
        'At given time' => '지정 시간',
-       'Attachments' => '첨부 파일',
        'Auto Increment' => '자동 증가',
        'Binary' => '이진',
        'Call' => '호출',
@@ -80,7 +78,6 @@ Lang::$translations = array(
        'Delete' => '삭제',
        'descending' => '역순',
        'Drop' => '삭제',
-       'E-mail' => '메일',
        'Edit all' => '모두 편집',
        'Edit' => '편집',
        'edit' => '편집',
@@ -109,7 +106,6 @@ Lang::$translations = array(
        'Foreign keys' => '외부 키',
        'Format' => '형식',
        'From server' => '서버에서 실행',
-       'From' => '보낸 사람',
        'Functions' => '함수',
        'Geometry' => '기하 형',
        'Grant' => '권한 부여',
@@ -211,7 +207,6 @@ Lang::$translations = array(
        'Select' => '선택',
        'select' => '선택',
        'Selected' => '선택됨',
-       'Send' => '보내기',
        'Sequence has been altered.' => '시퀀스를 변경했습니다.',
        'Sequence has been created.' => '시퀀스를 추가했습니다.',
        'Sequence has been dropped.' => '시퀀스를 제거했습니다.',
@@ -230,7 +225,6 @@ Lang::$translations = array(
        'Status' => '상태',
        'Stop on error' => '오류의 경우 중지',
        'Strings' => '문자열',
-       'Subject' => '제목',
        'System' => '데이터베이스 형식',
        'Table has been altered.' => '테이블을 변경했습니다.',
        'Table has been created.' => '테이블을 만들었습니다.',
index e37b2e3bd74e0386a68347726cde891c5925932b..64b2870cad21519043a6972458ed391cd168ff08 100644 (file)
@@ -257,13 +257,6 @@ Lang::$translations = array(
        'Clone' => 'Klonuoti',
        'Delete' => 'Trinti',
 
-       'E-mail' => 'El. paštas',
-       'From' => 'Nuo',
-       'Subject' => 'Antraštė',
-       'Attachments' => 'Priedai',
-       'Send' => 'Siųsti',
-       '%d e-mail(s) have been sent.' => array('Išsiųstas %d laiškas.', 'Išsiųsti %d laiškai.', 'Išsiųsta %d laiškų.'),
-
        // data type descriptions
        'Numbers' => 'Skaičiai',
        'Date and time' => 'Data ir laikas',
index 72591236cd38ddd2db48e595316c0ba8869aa6fc..38ec3ef1d92b1d865f4ad6a7f9d7e99609d98ba4 100644 (file)
@@ -214,11 +214,6 @@ Lang::$translations = array(
        'Binary' => 'Binārie',
        'Lists' => 'Saraksti',
        'Editor' => 'Redaktors',
-       'E-mail' => 'Epasts',
-       'From' => 'No',
-       'Subject' => 'Tēma',
-       'Send' => 'Sūtīt',
-       '%d e-mail(s) have been sent.' => array('Nosūtīts %d epasts.', 'Nosūtīti %d epasti.', 'Nosūtīti %d epasti.'),
        'Webserver file %s' => 'Fails %s uz servera',
        'File does not exist.' => 'Fails neeksistē.',
        '%d in total' => 'Kopā %d',
@@ -253,7 +248,6 @@ Lang::$translations = array(
        'Network' => 'Tīkls',
        'Geometry' => 'Ģeometrija',
        'File exists.' => 'Fails eksistē.',
-       'Attachments' => 'Pielikumi',
        '%d query(s) executed OK.' => array('%d pieprasījums veiksmīgs.', '%d pieprasījumi veiksmīgi.', '%d pieprasījumi veiksmīgi.'),
        'Show only errors' => 'Rādīt tikai kļūdas',
        'Refresh' => 'Atjaunot',
index 245d8dfd4f56b8ac186d6f79f73d7b5a3de21665..c39c0e2140bab01adedc9f580304f3e8ba11659f 100644 (file)
@@ -283,13 +283,6 @@ Lang::$translations = array(
        'Delete' => 'Padam',
        'You have no privileges to update this table.' => 'Anda tidak mempunyai keistimewaan untuk mengemaskini jadual ini.',
 
-       'E-mail' => 'Emel',
-       'From' => 'Dari',
-       'Subject' => 'Subjek',
-       'Attachments' => 'Lampiran',
-       'Send' => 'Hantar',
-       '%d e-mail(s) have been sent.' => '%d emel telah dihantar.',
-
        // data type descriptions
        'Numbers' => 'Nombor',
        'Date and time' => 'Tarikh dan masa',
index 44428d77d3b28df8d771d4a03c6ab65c36d82274..7f10995a9bb2668df9b03f2aacbdace0d7ae686d 100644 (file)
@@ -215,11 +215,6 @@ Lang::$translations = array(
        'Binary' => 'Binaire gegevens',
        'Lists' => 'Lijsten',
        'Editor' => 'Editor',
-       'E-mail' => 'E-mail',
-       'From' => 'Van',
-       'Subject' => 'Onderwerp',
-       'Send' => 'Verzenden',
-       '%d e-mail(s) have been sent.' => array('%d e-mail verzonden.', '%d e-mails verzonden.'),
        'Webserver file %s' => 'Webserver bestand %s',
        'File does not exist.' => 'Bestand niet gevonden.',
        '%d in total' => '%d in totaal',
@@ -253,7 +248,6 @@ Lang::$translations = array(
        'Network' => 'Netwerk',
        'Geometry' => 'Geometrie',
        'File exists.' => 'Bestand bestaat reeds.',
-       'Attachments' => 'Bijlagen',
        '%d query(s) executed OK.' => array('%d query succesvol uitgevoerd.', '%d querys succesvol uitgevoerd.'),
        'Show only errors' => 'Enkel fouten tonen',
        'Refresh' => 'Vernieuwen',
index 6996a2500623f7ca4b43b8ab71b4617ac4acef54..f7610d907eb4b72eacc360257f8b760a004949ed 100644 (file)
@@ -238,12 +238,6 @@ Lang::$translations = array(
        'Clone' => 'Klon',
        'Delete' => 'Slett',
        'You have no privileges to update this table.' => 'Du mangler rettighetene som trengs for å endre denne tabellen.',
-       'E-mail' => 'E-post',
-       'From' => 'Fra',
-       'Subject' => 'Tittel',
-       'Attachments' => 'Vedlegg',
-       'Send' => 'Send',
-       '%d e-mail(s) have been sent.' => array('%d epost sendt.', '%d eposter sendt.'),
        'Numbers' => 'Nummer',
        'Date and time' => 'Dato og tid',
        'Strings' => 'Strenger',
index b32b2c29fdda2ae45d42b8911885f3bc3b3c595e..f9b0c3e0ff2af88a1eeee8921cb9f58552d912e4 100644 (file)
@@ -295,13 +295,6 @@ Lang::$translations = array(
        'Delete' => 'Usuń',
        'You have no privileges to update this table.' => 'Brak uprawnień do edycji tej tabeli.',
 
-       'E-mail' => 'E-mail',
-       'From' => 'Nadawca',
-       'Subject' => 'Temat',
-       'Attachments' => 'Załączniki',
-       'Send' => 'Wyślij',
-       '%d e-mail(s) have been sent.' => array('Wysłano %d e-mail.', 'Wysłano %d e-maile.', 'Wysłano %d e-maili.'),
-
        // data type descriptions
        'Numbers' => 'Numeryczne',
        'Date and time' => 'Data i czas',
index 536315f99a643e7f9c462ef7029b41637648dee9..5e729334cd2ebbccdc9a86e85abaf9ee4c2a7959 100644 (file)
@@ -214,11 +214,6 @@ Lang::$translations = array(
        'Binary' => 'Binário',
        'Lists' => 'Listas',
        'Editor' => 'Editor',
-       'E-mail' => 'E-mail',
-       'From' => 'De',
-       'Subject' => 'Assunto',
-       'Send' => 'Enviar',
-       '%d e-mail(s) have been sent.' => array('%d email foi enviado.', '%d emails foram enviados.'),
        'Webserver file %s' => 'Arquivo do servidor web %s',
        'File does not exist.' => 'Arquivo não existe.',
        '%d in total' => '%d no total',
@@ -253,7 +248,6 @@ Lang::$translations = array(
        'Network' => 'Rede',
        'Geometry' => 'Geometria',
        'File exists.' => 'Arquivo já existe.',
-       'Attachments' => 'Anexos',
        '%d query(s) executed OK.' => array('%d consulta sql executada corretamente.', '%d consultas sql executadas corretamente.'),
        'Show only errors' => 'Mostrar somente erros',
        'Refresh' => 'Atualizar',
index dd40fc76128bb612ed86c8918568c51b5d8329f2..8c81c3d82933d555cb0698ad448685328bda7c42 100644 (file)
@@ -214,11 +214,6 @@ Lang::$translations = array(
        'Binary' => 'Binário',
        'Lists' => 'Listas',
        'Editor' => 'Editor',
-       'E-mail' => 'E-mail',
-       'From' => 'De',
-       'Subject' => 'Assunto',
-       'Send' => 'Enviar',
-       '%d e-mail(s) have been sent.' => array('%d email enviado.', '%d emails enviados.'),
        'Webserver file %s' => 'Ficheiro do servidor web %s',
        'File does not exist.' => 'Ficheiro não existe.',
        '%d in total' => '%d no total',
@@ -253,7 +248,6 @@ Lang::$translations = array(
        'Network' => 'Rede',
        'Geometry' => 'Geometria',
        'File exists.' => 'Ficheiro já existe.',
-       'Attachments' => 'Anexos',
        '%d query(s) executed OK.' => array('%d consulta sql executada corretamente.', '%d consultas sql executadas corretamente.'),
        'Show only errors' => 'Mostrar somente erros',
        'Refresh' => 'Atualizar',
index 36f752121ff5724cd5bd9af65c238b768efb4132..7fac7d7c7494174b7ec76bb509cd8ffc0bab4dfe 100644 (file)
@@ -214,11 +214,6 @@ Lang::$translations = array(
        'Binary' => 'Tip binar',
        'Lists' => 'Liste',
        'Editor' => 'Editor',
-       'E-mail' => 'Poșta electronică',
-       'From' => 'De la',
-       'Subject' => 'Pentru',
-       'Send' => 'Trimite',
-       '%d e-mail(s) have been sent.' => array('A fost trimis %d mail.', 'Au fost trimise %d mail-uri.'),
        'Webserver file %s' => 'Fișierul %s pe server',
        'File does not exist.' => 'Acest fișier nu există.',
        '%d in total' => 'În total %d',
@@ -253,7 +248,6 @@ Lang::$translations = array(
        'Network' => 'Rețea',
        'Geometry' => 'Geometrie',
        'File exists.' => 'Fișierul există deja.',
-       'Attachments' => 'Fișiere atașate',
        '%d query(s) executed OK.' => array('%d query executat.', '%d query-uri executate cu succes.'),
        'Show only errors' => 'Arată doar greșeli',
        'Refresh' => 'Împrospătează',
index 9461d9eb472666eb8a279641c28bcb415c9573f0..ac68b642f5ed346a1c1ad4ac598b0d5c2745e7bd 100644 (file)
@@ -214,11 +214,6 @@ Lang::$translations = array(
        'Binary' => 'Двоичный тип',
        'Lists' => 'Списки',
        'Editor' => 'Редактор',
-       'E-mail' => 'Эл. почта',
-       'From' => 'От',
-       'Subject' => 'Тема',
-       'Send' => 'Послать',
-       '%d e-mail(s) have been sent.' => array('Было отправлено %d письмо.', 'Было отправлено %d письма.', 'Было отправлено %d писем.'),
        'Webserver file %s' => 'Файл %s на вебсервере',
        'File does not exist.' => 'Такого файла не существует.',
        '%d in total' => 'Всего %d',
@@ -253,7 +248,6 @@ Lang::$translations = array(
        'Network' => 'Сеть',
        'Geometry' => 'Геометрия',
        'File exists.' => 'Файл уже существует.',
-       'Attachments' => 'Прикреплённые файлы',
        '%d query(s) executed OK.' => array('%d запрос выполнен успешно.', '%d запроса выполнено успешно.', '%d запросов выполнено успешно.'),
        'Show only errors' => 'Только ошибки',
        'Refresh' => 'Обновить',
index 064f6451293d36343a7431caed5105571fa7d3e0..f5438edcc5757497b8e84cc70fae52917c1955a7 100644 (file)
@@ -205,11 +205,6 @@ Lang::$translations = array(
        'History' => 'História',
        'Variables' => 'Premenné',
        'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Zdrojové a cieľové stĺpce musia mať rovnaký datový typ, nad cieľovými stĺpcami musí byť definovaný index a odkazované dáta musia existovať.',
-       'E-mail' => 'E-mail',
-       'From' => 'Odosielateľ',
-       'Subject' => 'Predmet',
-       'Send' => 'Odoslať',
-       '%d e-mail(s) have been sent.' => array('Bol odoslaný %d e-mail.', 'Boli odoslané %d e-maily.', 'Bolo odoslaných %d e-mailov.'),
        'Run file' => 'Spustiť súbor',
        'Numbers' => 'Čísla',
        'Date and time' => 'Dátum a čas',
@@ -253,7 +248,6 @@ Lang::$translations = array(
        'Network' => 'Sieť',
        'Geometry' => 'Geometria',
        'File exists.' => 'Súbor existuje.',
-       'Attachments' => 'Prílohy',
        '%d query(s) executed OK.' => array('Bol vykonaný %d dotaz.', 'Boli vykonané %d dotazy.', 'Bolo vykonaných %d dotazov.'),
        'Show only errors' => 'Zobraziť iba chyby',
        'Refresh' => 'Obnoviť',
index 4b20bef81d2c17bb40492b9ae358d519b48eb680..6b81096b1cc248d80d4667e98d0ea122f29fdee1 100644 (file)
@@ -254,13 +254,6 @@ Lang::$translations = array(
        'Clone' => 'Kloniraj',
        'Delete' => 'Izbriši',
 
-       'E-mail' => 'E-mail',
-       'From' => 'Od',
-       'Subject' => 'Zadeva',
-       'Attachments' => 'Priponke',
-       'Send' => 'Pošlji',
-       '%d e-mail(s) have been sent.' => array('Poslan je %d e-mail.', 'Poslana sta %d e-maila.', 'Poslani so %d e-maili.', 'Poslanih je %d e-mailov.'),
-
        // data type descriptions
        'Numbers' => 'Števila',
        'Date and time' => 'Datum in čas',
index db98d24eabe18845110cb5418b0bb4c3254be1f1..908049f788a22399fe489e7e9ac8b3e17e3eaeb0 100644 (file)
@@ -262,13 +262,6 @@ Lang::$translations = array(
        'Clone' => 'Дуплирај',
        'Delete' => 'Избриши',
 
-       'E-mail' => 'Ел. пошта',
-       'From' => 'Од',
-       'Subject' => 'Наслов',
-       'Attachments' => 'Прилози',
-       'Send' => 'Пошаљи',
-       '%d e-mail(s) have been sent.' => array('%d порука ел. поште је послата.', '%d поруке ел. поште су послате.', '%d порука ел. поште је послато.'),
-
        // data type descriptions
        'Numbers' => 'Број',
        'Date and time' => 'Датум и време',
index e96943dcfed7973d726062283b802edb2ea45412..70ddaaff6a4c2bc06f535867abe65ebfeb21d123 100644 (file)
@@ -292,13 +292,6 @@ Lang::$translations = array(
        'Delete' => 'Ta bort',
        'You have no privileges to update this table.' => 'Du har inga privilegier för att uppdatera den här tabellen.',
 
-       'E-mail' => 'Email',
-       'From' => 'Från',
-       'Subject' => 'Ämne',
-       'Attachments' => 'Bilagor',
-       'Send' => 'Skicka',
-       '%d e-mail(s) have been sent.' => array('%d email har blivit skickat.', '%d email har blivit skickade.'),
-
        // data type descriptions
        'Numbers' => 'Nummer',
        'Date and time' => 'Datum och tid',
index 87cfc54bc5b10395b1293af215223954cf6e3bd7..e0a3208b85ecb78028ddd6976e434d702e46aca4 100644 (file)
@@ -212,11 +212,6 @@ Lang::$translations = array(
        'Binary' => 'பைன‌ரி',
        'Lists' => 'ப‌ட்டிய‌ல்',
        'Editor' => 'தொகுப்பாளர்',
-       'E-mail' => 'மின்ன‌ஞ்ச‌ல்',
-       'From' => 'அனுப்புனர்',
-       'Subject' => 'பொருள்',
-       'Send' => 'அனுப்பு',
-       '%d e-mail(s) have been sent.' => array('%d மின்ன‌ஞ்ச‌ல் அனுப்ப‌ப‌ட்ட‌து.', '%d மின்ன‌ஞ்ச‌ல்க‌ள் அனுப்ப‌ப்ப‌ட்ட‌ன‌.'),
        'Webserver file %s' => 'வெப் ச‌ர்வ‌ர் கோப்பு %s',
        'File does not exist.' => 'கோப்பு இல்லை.',
        '%d in total' => 'மொத்தம் %d ',
@@ -252,7 +247,6 @@ Lang::$translations = array(
        'Network' => 'நெட்வொர்க்',
        'Geometry' => 'வ‌டிவ‌விய‌ல் (Geometry)',
        'File exists.' => 'கோப்பு உள்ள‌து.',
-       'Attachments' => 'இணைப்புக‌ள்',
        'now' => 'இப்பொழுது',
        '%d query(s) executed OK.' => array('%d வின‌வ‌ல் செய‌ல்ப‌டுத்த‌ப்ப‌ட்ட‌து.', '%d வின‌வ‌ல்க‌ள் செய‌ல்ப‌டுத்த‌ப்ப‌ட்ட‌ன‌.'),
        'Show only errors' => 'பிழைக‌ளை ம‌ட்டும் காண்பிக்க‌வும்',
index f278ce8fa51c61048df3f1ebff6a0e819d66d2e6..4e4b50bdf50b42e068c06b36b301fc4a33190e2f 100644 (file)
@@ -214,11 +214,6 @@ Lang::$translations = array(
        'Binary' => 'เลขฐานสอง',
        'Lists' => 'รายการ',
        'Editor' => 'ผู้แก้ไข',
-       'E-mail' => 'อีเมล์',
-       'From' => 'จาก',
-       'Subject' => 'หัวข้อ',
-       'Send' => 'ส่ง',
-       '%d e-mail(s) have been sent.' => 'มี %d อีเมล์ ถูกส่งออกแล้ว.',
        'Webserver file %s' => 'Webserver file %s',
        'File does not exist.' => 'ไม่มีไฟล์.',
        '%d in total' => '%d ของทั้งหมด',
@@ -253,7 +248,6 @@ Lang::$translations = array(
        'Network' => 'เครื่องข่าย',
        'Geometry' => 'เรขาคณิต',
        'File exists.' => 'มีไฟล์นี้อยู่แล้ว.',
-       'Attachments' => 'ไฟล์แนบ',
        '%d query(s) executed OK.' => '%d คำสั่งถูกดำเนินการแล้ว.',
        'Show only errors' => 'แสดงเฉพาะเออเรอ',
        'Refresh' => 'โหลดใหม่',
index b1c93feaa150182cbffaf18c5e51e30869c11e94..b14bc1e370dbc9df1f840b62a3b273b1d0813372 100644 (file)
@@ -286,13 +286,6 @@ Lang::$translations = array(
        'Delete' => 'Sil',
        'You have no privileges to update this table.' => 'Bu tabloyu güncellemek için yetkiniz yok.',
 
-       'E-mail' => 'E-posta',
-       'From' => 'Gönderen',
-       'Subject' => 'Konu',
-       'Attachments' => 'Ekler',
-       'Send' => 'Gönder',
-       '%d e-mail(s) have been sent.' => array('%d e-posta gönderildi.', '%d adet e-posta gönderildi.'),
-
        // data type descriptions
        'Numbers' => 'Sayılar',
        'Date and time' => 'Tarih ve zaman',
index ba5ff9dd25cfdb9a954b25fca5939aaba872605d..0095df6b2bb1c1f500a493be9cccc3ae7b9c5744 100644 (file)
@@ -259,13 +259,6 @@ Lang::$translations = array(
        'Clone' => 'Клонувати',
        'Delete' => 'Видалити',
 
-       'E-mail' => 'E-mail',
-       'From' => 'Від',
-       'Subject' => 'Заголовок',
-       'Attachments' => 'Додатки',
-       'Send' => 'Надіслати',
-       '%d e-mail(s) have been sent.' => array('Було надіслано %d повідомлення.', 'Було надіслано %d повідомлення.', 'Було надіслано %d повідомлень.'),
-
        // data type descriptions
        'Numbers' => 'Числа',
        'Date and time' => 'Дата і час',
index b87b42e5ea7bfbae997ae95b15ea2d3f4d6f18ad..677c3f3aa06e1dfef63be0ad2c28eaad46b65a85 100644 (file)
@@ -297,13 +297,6 @@ Lang::$translations = array(
        'Delete' => 'O\'chirish',
        'You have no privileges to update this table.' => 'Bu jadvalni yangilash uchun sizda huquqlar yo\'q.',
 
-       'E-mail' => 'E-pochta',
-       'From' => 'Kimdan',
-       'Subject' => 'Mavzu',
-       'Attachments' => 'Ilovalar',
-       'Send' => 'Yuborish',
-       '%d e-mail(s) have been sent.' => array('%d e-pochta yuborildi.', '%d e-pochtalar yuborildi.'),
-
        // data type descriptions
        'Numbers' => 'Raqamlar',
        'Date and time' => 'Sana va vaqt',
index 2302f3796da060b6358166a94a834440f008caa6..d014868e173d0923283bda8a2676856b94519d79 100644 (file)
@@ -271,13 +271,6 @@ Lang::$translations = array(
        'Delete' => 'Xoá',
        'You have no privileges to update this table.' => 'Bạn không có quyền sửa bảng này.',
 
-       'E-mail' => 'Địa chỉ email',
-       'From' => 'Người gửi',
-       'Subject' => 'Chủ đề',
-       'Attachments' => 'Đính kèm',
-       'Send' => 'Gửi',
-       '%d e-mail(s) have been sent.' => '%d thư đã gửi.',
-
        // data type descriptions
        'Numbers' => 'Số',
        'Date and time' => 'Ngày giờ',
index fcd6e31c719c7745f10a3532e8df54584fb58dfe..edea4521d6f8f87e44816c43876600d2bbc6fb9c 100644 (file)
@@ -297,13 +297,6 @@ Lang::$translations = array(
        'Delete' => 'Xx',
        'You have no privileges to update this table.' => 'Xx.',
 
-       'E-mail' => 'Xx',
-       'From' => 'Xx',
-       'Subject' => 'Xx',
-       'Attachments' => 'Xx',
-       'Send' => 'Xx',
-       '%d e-mail(s) have been sent.' => array('%d xx.', '%d xx.'),
-
        // data type descriptions
        'Numbers' => 'Xx',
        'Date and time' => 'Xx',
index 1bf1d2e6f6f7ecb43468904bc7a3b219257af2c0..0b01b42e317a3e36928e1bb6eda3fa49eca30bb1 100644 (file)
@@ -292,13 +292,6 @@ Lang::$translations = array(
        'Delete' => '刪除',
        'You have no privileges to update this table.' => '您沒有許可權更新這個資料表。',
 
-       'E-mail' => '電子郵件',
-       'From' => '來自',
-       'Subject' => '主旨',
-       'Attachments' => '附件',
-       'Send' => '寄出',
-       '%d e-mail(s) have been sent.' => '已寄出 %d 封郵件。',
-
        // data type descriptions
        'Numbers' => '數字',
        'Date and time' => '日期時間',
index 81fcfc1329f571508b1b08f5001d7256cdda107d..5956077ec529e71771e3296b5d8e77de8943142d 100644 (file)
@@ -208,7 +208,6 @@ Lang::$translations = array(
        'Alter indexes' => '修改索引',
        'Add next' => '下一行插入',
        'Index Type' => '索引类型',
-       // 'Column (length)' => '列(长度)',
 
        'Foreign keys' => '外键',
        'Foreign key' => '外键',
@@ -292,13 +291,6 @@ Lang::$translations = array(
        'Delete' => '删除',
        'You have no privileges to update this table.' => '您没有权限更新这个表。',
 
-       'E-mail' => '电子邮件',
-       'From' => '来自',
-       'Subject' => '主题',
-       'Attachments' => '附件',
-       'Send' => '发送',
-       '%d e-mail(s) have been sent.' => '%d 封邮件已发送。',
-
        // data type descriptions
        'Numbers' => '数字',
        'Date and time' => '日期时间',
index 65ed681e2ba3f7a826440349e6a92e0512bc926f..03e5ed5f6ba40b960488963ee78f4247685486e1 100644 (file)
@@ -332,20 +332,6 @@ ORDER BY ORDINAL_POSITION", null, "") as $row
        }
 
        function selectEmailPrint($emailFields, $columns) {
-               if ($emailFields) {
-                       print_fieldset("email", lang('E-mail'), $_POST["email_append"]);
-                       echo "<div>";
-                       echo script("qsl('div').onkeydown = partialArg(bodyKeydown, 'email');");
-                       echo "<p>" . lang('From') . ": <input name='email_from' value='" . h($_POST ? $_POST["email_from"] : $_COOKIE["adminer_email"]) . "'>\n";
-                       echo lang('Subject') . ": <input name='email_subject' value='" . h($_POST["email_subject"]) . "'>\n";
-                       echo "<p><textarea name='email_message' rows='15' cols='75'>" . h($_POST["email_message"] . ($_POST["email_append"] ? '{$' . "$_POST[email_addition]}" : "")) . "</textarea>\n";
-                       echo "<p>" . script("qsl('p').onkeydown = partialArg(bodyKeydown, 'email_append');", "") . html_select("email_addition", $columns, $_POST["email_addition"]) . "<input type='submit' name='email_append' value='" . lang('Insert') . "'>\n"; //! JavaScript
-                       echo "<p>" . lang('Attachments') . ": <input type='file' name='email_files[]'>" . script("qsl('input').onchange = emailFileChange;");
-                       echo "<p>" . (count($emailFields) == 1 ? input_hidden("email_field", key($emailFields)) : html_select("email_field", $emailFields));
-                       echo "<input type='submit' name='email' value='" . lang('Send') . "'>" . confirm();
-                       echo "</div>\n";
-                       echo "</div></fieldset>\n";
-               }
        }
 
        function selectColumnsProcess($columns, $indexes) {
@@ -422,37 +408,6 @@ ORDER BY ORDINAL_POSITION", null, "") as $row
        }
 
        function selectEmailProcess($where, $foreignKeys) {
-               if ($_POST["email_append"]) {
-                       return true;
-               }
-               if ($_POST["email"]) {
-                       $sent = 0;
-                       if ($_POST["all"] || $_POST["check"]) {
-                               $field = idf_escape($_POST["email_field"]);
-                               $subject = $_POST["email_subject"];
-                               $message = $_POST["email_message"];
-                               preg_match_all('~\{\$([a-z0-9_]+)\}~i', "$subject.$message", $matches); // allows {$name} in subject or message
-                               $rows = get_rows(
-                                       "SELECT DISTINCT $field" . ($matches[1] ? ", " . implode(", ", array_map('Adminer\idf_escape', array_unique($matches[1]))) : "") . " FROM " . table($_GET["select"])
-                                       . " WHERE $field IS NOT NULL AND $field != ''"
-                                       . ($where ? " AND " . implode(" AND ", $where) : "")
-                                       . ($_POST["all"] ? "" : " AND ((" . implode(") OR (", array_map('Adminer\where_check', (array) $_POST["check"])) . "))")
-                               );
-                               $fields = fields($_GET["select"]);
-                               foreach (adminer()->rowDescriptions($rows, $foreignKeys) as $row) {
-                                       $replace = array('{\\' => '{'); // allow literal {$name}
-                                       foreach ($matches[1] as $val) {
-                                               $replace['{$' . "$val}"] = adminer()->editVal($row[$val], $fields[$val]);
-                                       }
-                                       $email = $row[$_POST["email_field"]];
-                                       if (is_mail($email) && send_mail($email, strtr($subject, $replace), strtr($message, $replace), $_POST["email_from"], $_FILES["email_files"])) {
-                                               $sent++;
-                                       }
-                               }
-                       }
-                       cookie("adminer_email", $_POST["email_from"]);
-                       redirect(remove_from_uri(), lang('%d e-mail(s) have been sent.', $sent));
-               }
                return false;
        }
 
diff --git a/plugins/select-email.php b/plugins/select-email.php
new file mode 100644 (file)
index 0000000..6a908a2
--- /dev/null
@@ -0,0 +1,154 @@
+<?php
+
+/** Allow sending e-mails to addresses in table
+* @link https://www.adminer.org/plugins/#use
+* @author Jakub Vrana, https://www.vrana.cz/
+* @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)
+*/
+class AdminerSelectEmail {
+
+       function selectEmailPrint($emailFields, $columns) {
+               if ($emailFields) {
+                       Adminer\print_fieldset("email", $this->lang('E-mail'), $_POST["email_append"]);
+                       echo "<div>";
+                       echo Adminer\script("qsl('div').onkeydown = partialArg(bodyKeydown, 'email');");
+                       echo Adminer\script("function emailFileChange() { const el = this.cloneNode(true); this.onchange = null; el.onchange = emailFileChange; el.value = ''; this.parentNode.appendChild(el); }");
+                       echo "<p>" . $this->lang('From') . ": <input name='email_from' value='" . Adminer\h($_POST ? $_POST["email_from"] : $_COOKIE["adminer_email"]) . "'>\n";
+                       echo $this->lang('Subject') . ": <input name='email_subject' value='" . Adminer\h($_POST["email_subject"]) . "'>\n";
+                       echo "<p><textarea name='email_message' rows='15' cols='75'>" . Adminer\h($_POST["email_message"] . ($_POST["email_append"] ? '{$' . "$_POST[email_addition]}" : "")) . "</textarea>\n";
+                       echo "<p>" . Adminer\script("qsl('p').onkeydown = partialArg(bodyKeydown, 'email_append');", "") . Adminer\html_select("email_addition", $columns, $_POST["email_addition"])
+                               . " <input type='submit' name='email_append' value='" . $this->lang('Insert') . "'>\n"; //! JavaScript
+                       echo "<p>" . $this->lang('Attachments') . ": <input type='file' name='email_files[]'>" . Adminer\script("qsl('input').onchange = emailFileChange;");
+                       echo "<p>" . (count($emailFields) == 1 ? Adminer\input_hidden("email_field", key($emailFields)) : Adminer\html_select("email_field", $emailFields));
+                       echo "<input type='submit' name='email' value='" . $this->lang('Send') . "'>" . Adminer\confirm();
+                       echo "</div>\n";
+                       echo "</div></fieldset>\n";
+                       return true;
+               }
+       }
+
+       function selectEmailProcess($where, $foreignKeys) {
+               if ($_POST["email_append"]) {
+                       return true;
+               }
+               if ($_POST["email"]) {
+                       $sent = 0;
+                       if ($_POST["all"] || $_POST["check"]) {
+                               $field = Adminer\idf_escape($_POST["email_field"]);
+                               $subject = $_POST["email_subject"];
+                               $message = $_POST["email_message"];
+                               preg_match_all('~\{\$([a-z0-9_]+)\}~i', "$subject.$message", $matches); // allows {$name} in subject or message
+                               $rows = Adminer\get_rows(
+                                       "SELECT DISTINCT $field" . ($matches[1] ? ", " . implode(", ", array_map('Adminer\idf_escape', array_unique($matches[1]))) : "") . " FROM " . Adminer\table($_GET["select"])
+                                       . " WHERE $field IS NOT NULL AND $field != ''"
+                                       . ($where ? " AND " . implode(" AND ", $where) : "")
+                                       . ($_POST["all"] ? "" : " AND ((" . implode(") OR (", array_map('Adminer\where_check', (array) $_POST["check"])) . "))")
+                               );
+                               $fields = Adminer\fields($_GET["select"]);
+                               foreach (Adminer\adminer()->rowDescriptions($rows, $foreignKeys) as $row) {
+                                       $replace = array('{\\' => '{'); // allow literal {$name}
+                                       foreach ($matches[1] as $val) {
+                                               $replace['{$' . "$val}"] = Adminer\adminer()->editVal($row[$val], $fields[$val]);
+                                       }
+                                       $email = $row[$_POST["email_field"]];
+                                       if (Adminer\is_mail($email) && $this->sendMail($email, strtr($subject, $replace), strtr($message, $replace), $_POST["email_from"], $_FILES["email_files"])) {
+                                               $sent++;
+                                       }
+                               }
+                       }
+                       Adminer\cookie("adminer_email", $_POST["email_from"]);
+                       Adminer\redirect(Adminer\remove_from_uri(), $this->lang('%d e-mail(s) have been sent.', $sent));
+               }
+               return false;
+       }
+
+       /** Encode e-mail header in UTF-8 */
+       private function emailHeader($header) {
+               // iconv_mime_encode requires iconv, imap_8bit requires IMAP extension
+               return "=?UTF-8?B?" . base64_encode($header) . "?="; //! split long lines
+       }
+
+       /** Send e-mail in UTF-8
+       * @param array{error?:list<int>, type?:list<string>, name?:list<string>, tmp_name?:list<string>} $files
+       */
+       private function sendMail($email, $subject, $message, $from = "", array $files = array()) {
+               $eol = PHP_EOL;
+               $message = str_replace("\n", $eol, wordwrap(str_replace("\r", "", "$message\n")));
+               $boundary = uniqid("boundary");
+               $attachments = "";
+               foreach ((array) $files["error"] as $key => $val) {
+                       if (!$val) {
+                               $attachments .= "--$boundary$eol"
+                                       . "Content-Type: " . str_replace("\n", "", $files["type"][$key]) . $eol
+                                       . "Content-Disposition: attachment; filename=\"" . preg_replace('~["\n]~', '', $files["name"][$key]) . "\"$eol"
+                                       . "Content-Transfer-Encoding: base64$eol$eol"
+                                       . chunk_split(base64_encode(file_get_contents($files["tmp_name"][$key])), 76, $eol) . $eol
+                               ;
+                       }
+               }
+               $beginning = "";
+               $headers = "Content-Type: text/plain; charset=utf-8$eol" . "Content-Transfer-Encoding: 8bit";
+               if ($attachments) {
+                       $attachments .= "--$boundary--$eol";
+                       $beginning = "--$boundary$eol$headers$eol$eol";
+                       $headers = "Content-Type: multipart/mixed; boundary=\"$boundary\"";
+               }
+               $headers .= $eol . "MIME-Version: 1.0$eol" . "X-Mailer: Adminer Editor"
+                       . ($from ? $eol . "From: " . str_replace("\n", "", $from) : "") //! should escape display name
+               ;
+               return mail($email, $this->emailHeader($subject), $beginning . $message . $attachments, $headers);
+       }
+
+       private function lang($idf, $number = null) {
+               return Adminer\lang_format(Adminer\idx(self::$translations[Adminer\LANG], $idf) ?: $idf, $number);
+       }
+
+       private static $translations = array(
+               'ar' => array('E-mail' => 'البريد الإلكتروني', 'From' => 'من', 'Subject' => 'الموضوع', 'Send' => 'إرسال', '%d e-mail(s) have been sent.' => 'تم إرسال %d رسالة.', 'Attachments' => 'ملفات مرفقة'),
+               'bg' => array('E-mail' => 'E-mail', 'From' => 'От', 'Subject' => 'Тема', 'Attachments' => 'Прикачени', 'Send' => 'Изпращане', '%d e-mail(s) have been sent.' => array('%d писмо беше изпратено.', '%d писма бяха изпратени.')),
+               'bn' => array('E-mail' => '​​ই-মেইল', 'From' => 'থেকে', 'Subject' => 'বিষয়', 'Send' => 'পাঠান', '%d e-mail(s) have been sent.' => array('%d ইমেইল(গুলি) পাঠানো হয়েছে।', '%d ইমেইল(গুলি) পাঠানো হয়েছে।'), 'Attachments' => 'সংযুক্তিগুলো'),
+               'bs' => array('E-mail' => 'El. pošta', 'From' => 'Od', 'Subject' => 'Naslov', 'Attachments' => 'Prilozi', 'Send' => 'Pošalji', '%d e-mail(s) have been sent.' => array('%d poruka el. pošte je poslata.', '%d poruke el. pošte su poslate.', '%d poruka el. pošte je poslato.')),
+               'ca' => array('E-mail' => 'Correu electrònic', 'From' => 'De', 'Subject' => 'Assumpte', 'Send' => 'Envia', '%d e-mail(s) have been sent.' => array('S\'ha enviat %d correu electrònic.', 'S\'han enviat %d correus electrònics.'), 'Attachments' => 'Adjuncions'),
+               'cs' => array('E-mail' => 'E-mail', 'From' => 'Odesílatel', 'Subject' => 'Předmět', 'Attachments' => 'Přílohy', 'Send' => 'Odeslat', '%d e-mail(s) have been sent.' => array('Byl odeslán %d e-mail.', 'Byly odeslány %d e-maily.', 'Bylo odesláno %d e-mailů.')),
+               'da' => array('E-mail' => 'E-mail', 'From' => 'Fra', 'Subject' => 'Titel', 'Attachments' => 'Vedhæft', 'Send' => 'Send', '%d e-mail(s) have been sent.' => array('%d email sendt.', '%d emails sendt.')),
+               'de' => array('E-mail' => 'E-Mail', 'From' => 'Von', 'Subject' => 'Betreff', 'Send' => 'Abschicken', '%d e-mail(s) have been sent.' => array('%d E-Mail abgeschickt.', '%d E-Mails abgeschickt.'), 'Attachments' => 'Anhänge'),
+               'el' => array('E-mail' => 'E-mail', 'From' => 'Από', 'Subject' => 'Θέμα', 'Attachments' => 'Συνημμένα', 'Send' => 'Αποστολή', '%d e-mail(s) have been sent.' => array('%d e-mail απεστάλη.', '%d e-mail απεστάλησαν.')),
+               'en' => array('%d e-mail(s) have been sent.' => array('%d e-mail has been sent.', '%d e-mails have been sent.')),
+               'es' => array('E-mail' => 'Email', 'From' => 'De', 'Subject' => 'Asunto', 'Send' => 'Enviar', '%d e-mail(s) have been sent.' => array('%d email enviado.', '%d emails enviados.'), 'Attachments' => 'Adjuntos'),
+               'et' => array('E-mail' => 'E-post', 'From' => 'Kellelt', 'Subject' => 'Pealkiri', 'Send' => 'Saada', '%d e-mail(s) have been sent.' => 'Saadetud kirju: %d.', 'Attachments' => 'Manused'),
+               'fa' => array('E-mail' => 'پست الکترونیک', 'From' => 'فرستنده', 'Subject' => 'موضوع', 'Attachments' => 'پیوست ها', 'Send' => 'ارسال', '%d e-mail(s) have been sent.' => array('%d ایمیل ارسال شد.', '%d ایمیل ارسال شد.')),
+               'fi' => array('E-mail' => 'S-posti', 'From' => 'Lähettäjä', 'Subject' => 'Aihe', 'Attachments' => 'Liitteet', 'Send' => 'Lähetä', '%d e-mail(s) have been sent.' => array('% sähköpostiviestiä lähetetty.', '% sähköpostiviestiä lähetetty.')),
+               'fr' => array('E-mail' => 'Courriel', 'From' => 'De', 'Subject' => 'Sujet', 'Send' => 'Envoyer', '%d e-mail(s) have been sent.' => array('%d message a été envoyé.', '%d messages ont été envoyés.'), 'Attachments' => 'Pièces jointes'),
+               'gl' => array('E-mail' => 'Email', 'From' => 'De', 'Subject' => 'Asunto', 'Send' => 'Enviar', '%d e-mail(s) have been sent.' => array('%d email enviado.', '%d emails enviados.'), 'Attachments' => 'Adxuntos'),
+               'he' => array('E-mail' => 'דוא"ל', 'From' => 'מ:', 'Subject' => 'נושא', 'Send' => 'שלח', '%d e-mail(s) have been sent.' => '%d הודעות דוא"ל נשלחו', 'Attachments' => 'קבצים מצורפים'),
+               'hu' => array('E-mail' => 'E-mail', 'From' => 'Feladó', 'Subject' => 'Tárgy', 'Send' => 'Küldés', '%d e-mail(s) have been sent.' => array('%d e-mail elküldve.', '%d e-mail elküldve.', '%d e-mail elküldve.'), 'Attachments' => 'Csatolmány'),
+               'id' => array('E-mail' => 'Surel', 'From' => 'Dari', 'Subject' => 'Judul', 'Attachments' => 'Lampiran', 'Send' => 'Kirim', '%d e-mail(s) have been sent.' => '%d surel berhasil dikirim.'),
+               'it' => array('E-mail' => 'E-mail', 'From' => 'Da', 'Subject' => 'Oggetto', 'Send' => 'Invia', '%d e-mail(s) have been sent.' => array('%d e-mail inviata.', '%d e-mail inviate.'), 'Attachments' => 'Allegati'),
+               'ja' => array('E-mail' => 'メール', 'From' => '差出人', 'Subject' => '題名', 'Send' => '送信', '%d e-mail(s) have been sent.' => '%d メールを送信しました。', 'Attachments' => '添付ファイル'),
+               'ka' => array('E-mail' => 'ელ. ფოსტა', 'From' => 'ავტორი:', 'Subject' => 'თემა', 'Send' => 'გაგზავნა', '%d e-mail(s) have been sent.' => 'გაიგზავნა %d წერილი.', 'Attachments' => 'მიმაგრებული ფაილები'),
+               'ko' => array('%d e-mail(s) have been sent.' => '%d개 메일을 보냈습니다.', 'Attachments' => '첨부 파일', 'E-mail' => '메일', 'From' => '보낸 사람', 'Send' => '보내기', 'Subject' => '제목'),
+               'lt' => array('E-mail' => 'El. paštas', 'From' => 'Nuo', 'Subject' => 'Antraštė', 'Attachments' => 'Priedai', 'Send' => 'Siųsti', '%d e-mail(s) have been sent.' => array('Išsiųstas %d laiškas.', 'Išsiųsti %d laiškai.', 'Išsiųsta %d laiškų.')),
+               'lv' => array('E-mail' => 'Epasts', 'From' => 'No', 'Subject' => 'Tēma', 'Send' => 'Sūtīt', '%d e-mail(s) have been sent.' => array('Nosūtīts %d epasts.', 'Nosūtīti %d epasti.', 'Nosūtīti %d epasti.'), 'Attachments' => 'Pielikumi'),
+               'ms' => array('E-mail' => 'Emel', 'From' => 'Dari', 'Subject' => 'Subjek', 'Attachments' => 'Lampiran', 'Send' => 'Hantar', '%d e-mail(s) have been sent.' => '%d emel telah dihantar.'),
+               'nl' => array('E-mail' => 'E-mail', 'From' => 'Van', 'Subject' => 'Onderwerp', 'Send' => 'Verzenden', '%d e-mail(s) have been sent.' => array('%d e-mail verzonden.', '%d e-mails verzonden.'), 'Attachments' => 'Bijlagen'),
+               'no' => array('E-mail' => 'E-post', 'From' => 'Fra', 'Subject' => 'Tittel', 'Attachments' => 'Vedlegg', 'Send' => 'Send', '%d e-mail(s) have been sent.' => array('%d epost sendt.', '%d eposter sendt.')),
+               'pl' => array('E-mail' => 'E-mail', 'From' => 'Nadawca', 'Subject' => 'Temat', 'Attachments' => 'Załączniki', 'Send' => 'Wyślij', '%d e-mail(s) have been sent.' => array('Wysłano %d e-mail.', 'Wysłano %d e-maile.', 'Wysłano %d e-maili.')),
+               'pt-br' => array('E-mail' => 'E-mail', 'From' => 'De', 'Subject' => 'Assunto', 'Send' => 'Enviar', '%d e-mail(s) have been sent.' => array('%d email foi enviado.', '%d emails foram enviados.'), 'Attachments' => 'Anexos'),
+               'pt' => array('E-mail' => 'E-mail', 'From' => 'De', 'Subject' => 'Assunto', 'Send' => 'Enviar', '%d e-mail(s) have been sent.' => array('%d email enviado.', '%d emails enviados.'), 'Attachments' => 'Anexos'),
+               'ro' => array('E-mail' => 'Poșta electronică', 'From' => 'De la', 'Subject' => 'Pentru', 'Send' => 'Trimite', '%d e-mail(s) have been sent.' => array('A fost trimis %d mail.', 'Au fost trimise %d mail-uri.'), 'Attachments' => 'Fișiere atașate'),
+               'ru' => array('E-mail' => 'Эл. почта', 'From' => 'От', 'Subject' => 'Тема', 'Send' => 'Послать', '%d e-mail(s) have been sent.' => array('Было отправлено %d письмо.', 'Было отправлено %d письма.', 'Было отправлено %d писем.'), 'Attachments' => 'Прикреплённые файлы'),
+               'sk' => array('E-mail' => 'E-mail', 'From' => 'Odosielateľ', 'Subject' => 'Predmet', 'Send' => 'Odoslať', '%d e-mail(s) have been sent.' => array('Bol odoslaný %d e-mail.', 'Boli odoslané %d e-maily.', 'Bolo odoslaných %d e-mailov.'), 'Attachments' => 'Prílohy'),
+               'sl' => array('E-mail' => 'E-mail', 'From' => 'Od', 'Subject' => 'Zadeva', 'Attachments' => 'Priponke', 'Send' => 'Pošlji', '%d e-mail(s) have been sent.' => array('Poslan je %d e-mail.', 'Poslana sta %d e-maila.', 'Poslani so %d e-maili.', 'Poslanih je %d e-mailov.')),
+               'sr' => array('E-mail' => 'Ел. пошта', 'From' => 'Од', 'Subject' => 'Наслов', 'Attachments' => 'Прилози', 'Send' => 'Пошаљи', '%d e-mail(s) have been sent.' => array('%d порука ел. поште је послата.', '%d поруке ел. поште су послате.', '%d порука ел. поште је послато.')),
+               'sv' => array('E-mail' => 'Email', 'From' => 'Från', 'Subject' => 'Ämne', 'Attachments' => 'Bilagor', 'Send' => 'Skicka', '%d e-mail(s) have been sent.' => array('%d email har blivit skickat.', '%d email har blivit skickade.')),
+               'ta' => array('E-mail' => 'மின்ன‌ஞ்ச‌ல்', 'From' => 'அனுப்புனர்', 'Subject' => 'பொருள்', 'Send' => 'அனுப்பு', '%d e-mail(s) have been sent.' => array('%d மின்ன‌ஞ்ச‌ல் அனுப்ப‌ப‌ட்ட‌து.', '%d மின்ன‌ஞ்ச‌ல்க‌ள் அனுப்ப‌ப்ப‌ட்ட‌ன‌.'), 'Attachments' => 'இணைப்புக‌ள்'),
+               'th' => array('E-mail' => 'อีเมล์', 'From' => 'จาก', 'Subject' => 'หัวข้อ', 'Send' => 'ส่ง', '%d e-mail(s) have been sent.' => 'มี %d อีเมล์ ถูกส่งออกแล้ว.', 'Attachments' => 'ไฟล์แนบ'),
+               'tr' => array('E-mail' => 'E-posta', 'From' => 'Gönderen', 'Subject' => 'Konu', 'Attachments' => 'Ekler', 'Send' => 'Gönder', '%d e-mail(s) have been sent.' => array('%d e-posta gönderildi.', '%d adet e-posta gönderildi.')),
+               'uk' => array('E-mail' => 'E-mail', 'From' => 'Від', 'Subject' => 'Заголовок', 'Attachments' => 'Додатки', 'Send' => 'Надіслати', '%d e-mail(s) have been sent.' => array('Було надіслано %d повідомлення.', 'Було надіслано %d повідомлення.', 'Було надіслано %d повідомлень.')),
+               'uz' => array('E-mail' => 'E-pochta', 'From' => 'Kimdan', 'Subject' => 'Mavzu', 'Attachments' => 'Ilovalar', 'Send' => 'Yuborish', '%d e-mail(s) have been sent.' => array('%d e-pochta yuborildi.', '%d e-pochtalar yuborildi.')),
+               'vi' => array('E-mail' => 'Địa chỉ email', 'From' => 'Người gửi', 'Subject' => 'Chủ đề', 'Attachments' => 'Đính kèm', 'Send' => 'Gửi', '%d e-mail(s) have been sent.' => '%d thư đã gửi.'),
+               'zh-tw' => array('E-mail' => '電子郵件', 'From' => '來自', 'Subject' => '主旨', 'Attachments' => '附件', 'Send' => '寄出', '%d e-mail(s) have been sent.' => '已寄出 %d 封郵件。'),
+               'zh' => array('E-mail' => '电子邮件', 'From' => '来自', 'Subject' => '主题', 'Attachments' => '附件', 'Send' => '发送', '%d e-mail(s) have been sent.' => '%d 封邮件已发送。'),
+       );
+}