From 14ef9100d5579bc6875254ce013b66c381325989 Mon Sep 17 00:00:00 2001 From: Daniel Winzen Date: Mon, 26 Dec 2022 15:14:16 +0100 Subject: [PATCH] Migrate translations to gettext --- .gitignore | 1 + README.md | 11 +- common_config.php | 115 +++--- cron/phishing_tests.php | 5 +- cron/update.php | 8 +- helpers/fill_unknown_phishing.php | 2 +- helpers/tmp.php | 2 +- helpers/tmp2.php | 2 +- helpers/tmp3.php | 2 +- helpers/tmp4.php | 2 +- helpers/tmp5.php | 2 +- helpers/tmp6.php | 2 +- helpers/tmp7.php | 2 +- lang_de.php | 77 ---- lang_en.php | 79 ---- lang_fa.php | 78 ---- lang_ja.php | 94 ----- lang_pt.php | 78 ---- lang_tr.php | 70 ---- lang_update.php | 45 --- locale/de_DE/LC_MESSAGES/onion-link-list.mo | Bin 0 -> 6537 bytes locale/de_DE/LC_MESSAGES/onion-link-list.po | 391 ++++++++++++++++++++ locale/fa_IR/LC_MESSAGES/onion-link-list.mo | Bin 0 -> 6073 bytes locale/fa_IR/LC_MESSAGES/onion-link-list.po | 375 +++++++++++++++++++ locale/ja_JP/LC_MESSAGES/onion-link-list.mo | Bin 0 -> 6132 bytes locale/ja_JP/LC_MESSAGES/onion-link-list.po | 375 +++++++++++++++++++ locale/onion-link-list.pot | 375 +++++++++++++++++++ locale/pt_PT/LC_MESSAGES/onion-link-list.mo | Bin 0 -> 5160 bytes locale/pt_PT/LC_MESSAGES/onion-link-list.po | 375 +++++++++++++++++++ locale/tr_TR/LC_MESSAGES/onion-link-list.mo | Bin 0 -> 4911 bytes locale/tr_TR/LC_MESSAGES/onion-link-list.po | 375 +++++++++++++++++++ setup.php | 21 +- update-translation.sh | 3 + www/admin.php | 111 +++--- www/onions.php | 141 +++---- www/sitemap.php | 12 +- www/test.php | 37 +- 37 files changed, 2511 insertions(+), 757 deletions(-) create mode 100644 .gitignore delete mode 100644 lang_de.php delete mode 100644 lang_en.php delete mode 100644 lang_fa.php delete mode 100644 lang_ja.php delete mode 100644 lang_pt.php delete mode 100644 lang_tr.php delete mode 100644 lang_update.php create mode 100644 locale/de_DE/LC_MESSAGES/onion-link-list.mo create mode 100644 locale/de_DE/LC_MESSAGES/onion-link-list.po create mode 100644 locale/fa_IR/LC_MESSAGES/onion-link-list.mo create mode 100644 locale/fa_IR/LC_MESSAGES/onion-link-list.po create mode 100644 locale/ja_JP/LC_MESSAGES/onion-link-list.mo create mode 100644 locale/ja_JP/LC_MESSAGES/onion-link-list.po create mode 100644 locale/onion-link-list.pot create mode 100644 locale/pt_PT/LC_MESSAGES/onion-link-list.mo create mode 100644 locale/pt_PT/LC_MESSAGES/onion-link-list.po create mode 100644 locale/tr_TR/LC_MESSAGES/onion-link-list.mo create mode 100644 locale/tr_TR/LC_MESSAGES/onion-link-list.po create mode 100755 update-translation.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b25c15b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/README.md b/README.md index a6fe53b..4965053 100644 --- a/README.md +++ b/README.md @@ -24,14 +24,9 @@ Recommended schedule: Translating: ------------ -Copy `lang_en.php` and rename it to `lang_YOUR_LANGCODE.php` -Then edit the file and translate the messages into your language and change $I to $T at the top. -If you ever use a ' character, you have to escape it by using \' instead, or the script will fail. -When you are done, you have to edit `common_config.php`, to include your translation. Simply add a line with -`'lang_code' => 'Language name',` -to the $L array below the settings, similar to what I did for the German translation. -Please share your translation with me, so I can add it to the official version. -To update your translation, you can copy each new string to your translation file or edit the automated `lang_update.php` script to reflect you language and run it. +The scrip `update-translations.sh` can be used to update the language template and translation files from source. +It will generate the file `locale/main-website.pot` which you can then use as basis to create a new language file in `YOUR_LANG_CODE/LC_MESSAGES/main-website.po` and edit it with a translation program, such as [Poedit](https://poedit.net/). +Once you are done, you can open a pull request, or [email me](mailto:daniel@danwin1210.de), to include the translation. Live Demo: ---------- diff --git a/common_config.php b/common_config.php index 3c5cbdc..7c33c0f 100644 --- a/common_config.php +++ b/common_config.php @@ -2,7 +2,7 @@ /* * Onion Link List - Configuration * -* Copyright (C) 2016-2020 Daniel Winzen +* Copyright (C) 2016-2020 Daniel Winzen * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -35,54 +35,76 @@ const PER_PAGE = 50; // Sites listed per page const VERSION = '1.1'; // Script version const DBVERSION = 8; // Database layout version const REQUIRE_APPROVAL = false; // require admin approval of new sites? true/false -const CANONICAL_URL = 'https://onions.danwin1210.me'; // our preferred domain for search engines +const CANONICAL_URL = 'https://onions.danwin1210.de'; // our preferred domain for search engines //Categories - new links will always be put into the first one, leave it to Unsorted //once configured, only add new categories at the end or you have to manually adjust the database. $categories=['Unsorted', 'Adult/Porn', 'Communication/Social', 'Forums', 'Hacking/Programming/Software', 'Hosting', 'Libraries/Wikis', 'Link Lists', 'Market/Shop/Store', 'Other', 'Personal Sites/Blogs', 'Security/Privacy/Encryption', 'Whistleblowing', 'Empty/Error/Unknown', 'Cryptocurrencies', 'Scams', 'Fun/Games/Joke', 'Search']; // Language selection -$I = $T = []; -$language = LANG; -$L=[ - 'de' => 'Deutsch', - 'en' => 'English', - 'fa' => 'فارسی', - 'ja' => '日本語', - 'pt' => 'Português', - 'tr' => 'Türkçe', +const LANGUAGES = [ + 'de' => ['name' => 'Deutsch', 'locale' => 'de_DE', 'flag' => '🇩🇪', 'show_in_menu' => true, 'dir' => 'ltr'], + 'en' => ['name' => 'English', 'locale' => 'en_GB', 'flag' => '🇬🇧', 'show_in_menu' => true, 'dir' => 'ltr'], + 'fa' => ['name' => 'فارسی', 'locale' => 'fa_IR', 'flag' => '🇮🇷', 'show_in_menu' => true, 'dir' => 'rtl'], + 'ja' => ['name' => '日本語', 'locale' => 'ja_JP', 'flag' => '🇯🇵', 'show_in_menu' => true, 'dir' => 'ltr'], + 'pt' => ['name' => 'Português', 'locale' => 'pt_PT', 'flag' => '🇵🇹', 'show_in_menu' => true, 'dir' => 'ltr'], + 'tr' => ['name' => 'Türkçe', 'locale' => 'tr_TR', 'flag' => '🇹🇷', 'show_in_menu' => true, 'dir' => 'ltr'], ]; -if(isset($_REQUEST['lang']) && isset($L[$_REQUEST['lang']])){ - $language=$_REQUEST['lang']; - if(!isset($_COOKIE['language']) || $_COOKIE['language']!==$language){ - set_secure_cookie('language', $language); - } -}elseif(isset($_COOKIE['language']) && isset($L[$_COOKIE['language']])){ - $language=$_COOKIE['language']; -} -require_once(__DIR__.'/lang_en.php'); //always include English -if($language!=='en'){ - require_once(__DIR__."/lang_$language.php"); //replace with translation if available - foreach($T as $name=>$translation){ - $I[$name]=$translation; +$language = LANG; +$locale = LANGUAGES[LANG]['locale']; +$dir = LANGUAGES[LANG]['dir']; +if(isset($_REQUEST['lang']) && isset(LANGUAGES[$_REQUEST['lang']])){ + $locale = LANGUAGES[$_REQUEST['lang']]['locale']; + $language = $_REQUEST['lang']; + $dir = LANGUAGES[$_REQUEST['lang']]['dir']; + setcookie('language', $_REQUEST['lang'], ['expires' => 0, 'path' => '/', 'domain' => '', 'secure' => ($_SERVER['HTTPS'] ?? '' === 'on'), 'httponly' => true, 'samesite' => 'Strict']); +}elseif(isset($_COOKIE['language']) && isset(LANGUAGES[$_COOKIE['language']])){ + $locale = LANGUAGES[$_COOKIE['language']]['locale']; + $language = $_COOKIE['language']; + $dir = LANGUAGES[$_COOKIE['language']]['dir']; +}elseif(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ + $prefLocales = array_reduce( + explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']), + function (array $res, string $el) { + list($l, $q) = array_merge(explode(';q=', $el), [1]); + $res[$l] = (float) $q; + return $res; + }, []); + arsort($prefLocales); + foreach($prefLocales as $l => $q){ + $lang = locale_lookup(array_keys(LANGUAGES), $l); + if(!empty($lang)){ + $locale = LANGUAGES[$lang]['locale']; + $language = $lang; + $dir = LANGUAGES[$lang]['dir']; + setcookie('language', $lang, ['expires' => 0, 'path' => '/', 'domain' => '', 'secure' => ($_SERVER['HTTPS'] ?? '' === 'on'), 'httponly' => true, 'samesite' => 'Strict']); + break; + } } } +putenv('LC_ALL='.$locale); +setlocale(LC_ALL, $locale); -function print_langs(){ - global $I, $L; - echo "
  • $I[language]:
  • "; +bindtextdomain('onion-link-list', __DIR__.'/locale'); +bind_textdomain_codeset('onion-link-list', 'UTF-8'); +textdomain('onion-link-list'); + +function print_langs(): void +{ + echo "
    • "._('Language:')."
    • "; $query=ltrim(preg_replace('/&?lang=[a-z_\-]*/i', '', $_SERVER['QUERY_STRING']), '&'); - foreach($L as $code=>$name){ + foreach(LANGUAGES as $code => $data){ if($query===''){ $uri="?lang=$code"; }else{ $uri='?'.htmlspecialchars($query)."&lang=$code"; } - echo "
    • $name
    • "; + echo "
    • $data[name]
    • "; } echo '
    '; } -function blacklist_scams(string $address, string $content){ +function blacklist_scams(string $address, string $content): void +{ global $db; $scams = ['Black&White Cards :: Index', 'Shadow guide | The ultimate guide of dark web ', 'ONIONLIST - SAFE .ONION LINKS LISTING', 'Dir ', 'netAuth', 'POPBUY MARKET', 'Digital Goods - Verified by GoDark Search, Hidden Links, Wiki, Escrow', 'Delta - Secure Black Market', 'DeDope', 'Unlocker - iCloud Activation Services', '222LOTTO!', 'STREAMING SERVICES ACCOUNTS', 'Red Room', 'Digital Cash']; $cp_scams = ['Wonderful shop', '~ DROP BY TARYAXX ~', 'Magic CP', 'Lolita Club', 'Daft Tadjikskiy Sex Video _ Inductively Fiberless Porno Qom Along With Post Porn Com Numb _ Porn Zdarma', 'xPlay - hosting service for porn videos', 'DARK PRIVATE PACK', 'Good Porn']; @@ -113,7 +135,8 @@ function blacklist_scams(string $address, string $content){ } } -function send_headers(array $styles = []){ +function send_headers(array $styles = []): void +{ header('Content-Type: text/html; charset=UTF-8'); header('Pragma: no-cache'); header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0, private'); @@ -130,40 +153,20 @@ function send_headers(array $styles = []){ header("Content-Security-Policy: base-uri 'self'; default-src 'none'; form-action 'self'; frame-ancestors 'none'; img-src data: 'self'; style-src $style_hashes"); header('X-Content-Type-Options: nosniff'); header('X-Frame-Options: deny'); - header('X-XSS-Protection: 1; mode=block'); + header('X-XSS-Protection: 0'); if($_SERVER['REQUEST_METHOD'] === 'HEAD'){ exit; // headers sent, no further processing needed } } -function set_secure_cookie(string $name, string $value){ - if (version_compare(PHP_VERSION, '7.3.0') >= 0) { - setcookie($name, $value, ['expires' => 0, 'path' => '/', 'domain' => '', 'secure' => is_definitely_ssl(), 'httponly' => true, 'samesite' => 'Strict']); - }else{ - setcookie($name, $value, 0, '/', '', is_definitely_ssl(), true); - } -} - -function is_definitely_ssl() : bool { - if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') { - return true; - } - if (isset($_SERVER['SERVER_PORT']) && ('443' == $_SERVER['SERVER_PORT'])) { - return true; - } - if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && ('https' === $_SERVER['HTTP_X_FORWARDED_PROTO'])) { - return true; - } - return false; -} - -function set_curl_options($ch){ +function set_curl_options($ch): void +{ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_USERAGENT, USERAGENT); curl_setopt($ch, CURLOPT_PROXY, PROXY); curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); - curl_setopt($ch, CURLOPT_TIMEOUT, 60); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); + curl_setopt($ch, CURLOPT_TIMEOUT, 120); curl_setopt($ch, CURLOPT_ENCODING, ''); } diff --git a/cron/phishing_tests.php b/cron/phishing_tests.php index 96303eb..f8d1eb8 100644 --- a/cron/phishing_tests.php +++ b/cron/phishing_tests.php @@ -5,7 +5,7 @@ require_once(__DIR__.'/../common_config.php'); try{ $db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME . ';charset=utf8mb4', DBUSER, DBPASS, [PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>PERSISTENT]); }catch(PDOException $e){ - die($I['nodb']); + die(_('No database connection!')); } $ch=curl_init(); set_curl_options($ch); @@ -14,7 +14,8 @@ set_curl_options($ch); //check('http://skunksworkedp2cg.onion/sites.html', 'http://skunkrdunsylcfqd.onion/sites.html'); //check('http://dhosting4xxoydyaivckq7tsmtgi4wfs3flpeyitekkmqwu4v4r46syd.onion/list.php', 'http://dhostingwwafxyuaxhs6bkhzo5e2mueztbmhqe6wsng547ucvzfuh2ad.onion/list.php'); -function check(string $link, string $phishing_link){ +function check(string $link, string $phishing_link): void +{ global $ch, $db; curl_setopt($ch, CURLOPT_URL, $link); $links=curl_exec($ch); diff --git a/cron/update.php b/cron/update.php index c9b2f7e..cd9e607 100644 --- a/cron/update.php +++ b/cron/update.php @@ -4,7 +4,7 @@ require_once(__DIR__.'/../common_config.php'); try{ $db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME, DBUSER, DBPASS, [PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>PERSISTENT]); }catch(PDOException $e){ - die($I['nodb']); + die(_('No database connection!')); } $ch=curl_init(); set_curl_options($ch); @@ -30,7 +30,8 @@ add_onions($onions, $db); //delete links that were not seen within a month $db->exec('DELETE FROM ' . PREFIX . "onions WHERE address!='' AND timediff>2419200 AND lasttest-timeadded>2419200;"); -function check_links(array &$onions, $ch, string $link_to_check, bool $scan_children = false, array &$scanned_onoins = []){ +function check_links(array &$onions, $ch, string $link_to_check, bool $scan_children = false, array &$scanned_onoins = []): void +{ curl_setopt($ch, CURLOPT_URL, $link_to_check); $links=curl_exec($ch); if(preg_match_all('~(https?://)?([a-z0-9]*\.)?([a-z2-7]{55}d).onion(/[^\s><"]*)?~i', $links, $addr)){ @@ -80,7 +81,8 @@ function check_links(array &$onions, $ch, string $link_to_check, bool $scan_chil } } -function add_onions(&$onions, $db){ +function add_onions(&$onions, $db): void +{ $stmt=$db->query('SELECT md5sum FROM ' . PREFIX . 'onions;'); while($tmp=$stmt->fetch(PDO::FETCH_NUM)){ if(isset($onions[$tmp[0]])){ diff --git a/helpers/fill_unknown_phishing.php b/helpers/fill_unknown_phishing.php index 64e8250..29c79ed 100644 --- a/helpers/fill_unknown_phishing.php +++ b/helpers/fill_unknown_phishing.php @@ -3,7 +3,7 @@ require_once(__DIR__.'/../common_config.php'); try{ $db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME, DBUSER, DBPASS, [PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>PERSISTENT]); }catch(PDOException $e){ - die('No Connection to MySQL database!'); + die(_('No database connection!')); } $ch=curl_init(); set_curl_options($ch); diff --git a/helpers/tmp.php b/helpers/tmp.php index 0494d31..da4911e 100644 --- a/helpers/tmp.php +++ b/helpers/tmp.php @@ -3,7 +3,7 @@ require_once(__DIR__.'/../common_config.php'); try{ $db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME . ';charset=utf8mb4', DBUSER, DBPASS, [PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>true]); }catch(PDOException $e){ - die('No Connection to MySQL database!'); + die(_('No database connection!')); } $stmt=$db->query("SELECT onions.address FROM onions LEFT JOIN phishing ON (phishing.onion_id=onions.id) WHERE onions.address!='' AND onions.category!=15 AND onions.category!=18 AND isnull(phishing.onion_id) LIMIT 2100,10000;"); $move=$db->prepare("UPDATE onions SET category=18, locked=1, timechanged=? WHERE address=?;"); diff --git a/helpers/tmp2.php b/helpers/tmp2.php index 7a57721..c4f0521 100644 --- a/helpers/tmp2.php +++ b/helpers/tmp2.php @@ -3,7 +3,7 @@ require_once(__DIR__.'/../common_config.php'); try{ $db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME . ';charset=utf8mb4', DBUSER, DBPASS, [PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>true]); }catch(PDOException $e){ - die('No Connection to MySQL database!'); + die(_('No database connection!')); } $stmt=$db->query("SELECT onions.address FROM onions LEFT JOIN phishing ON (phishing.onion_id=onions.id) WHERE onions.address!='' AND onions.category!=15 AND isnull(phishing.onion_id) AND timeadded>1506800000;"); $move=$db->prepare("UPDATE onions SET category=15, locked=1, description='WARNING - This site will crash your browser with infinite iframes.', timechanged=? WHERE address=?;"); diff --git a/helpers/tmp3.php b/helpers/tmp3.php index 986a871..9e35aaa 100644 --- a/helpers/tmp3.php +++ b/helpers/tmp3.php @@ -3,7 +3,7 @@ require_once(__DIR__.'/../common_config.php'); try{ $db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME . ';charset=utf8mb4', DBUSER, DBPASS, [PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>true]); }catch(PDOException $e){ - die('No Connection to MySQL database!'); + die(_('No database connection!')); } $stmt=$db->query("SELECT onions.address FROM onions LEFT JOIN phishing ON (phishing.onion_id=onions.id) WHERE onions.address!='' AND isnull(phishing.onion_id) AND onions.id>22439;"); $move=$db->prepare("UPDATE onions SET category=18, locked=1, description='Add injecting phishing clone of an existing site - SCAM', timechanged=? WHERE address=?;"); diff --git a/helpers/tmp4.php b/helpers/tmp4.php index d819b8e..8b88606 100644 --- a/helpers/tmp4.php +++ b/helpers/tmp4.php @@ -3,7 +3,7 @@ require_once(__DIR__.'/../common_config.php'); try{ $db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME . ';charset=utf8mb4', DBUSER, DBPASS, [PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>true]); }catch(PDOException $e){ - die('No Connection to MySQL database!'); + die(_('No database connection!')); } $stmt=$db->query("SELECT onions.address FROM onions LEFT JOIN phishing ON (phishing.onion_id=onions.id) WHERE onions.address!='' AND onions.locked=0 AND isnull(phishing.onion_id);"); $move=$db->prepare("UPDATE onions SET category=18, locked=1, description='CP - SCAM', timechanged=? WHERE address=?;"); diff --git a/helpers/tmp5.php b/helpers/tmp5.php index 4321463..1704af4 100644 --- a/helpers/tmp5.php +++ b/helpers/tmp5.php @@ -3,7 +3,7 @@ require_once(__DIR__.'/../common_config.php'); try{ $db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME . ';charset=utf8mb4', DBUSER, DBPASS, [PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>true]); }catch(PDOException $e){ - die('No Connection to MySQL database!'); + die(_('No database connection!')); } $stmt=$db->query("SELECT onions.address FROM onions LEFT JOIN phishing ON (phishing.onion_id=onions.id) WHERE onions.address!='' AND onions.locked=0 AND isnull(phishing.onion_id);"); $move=$db->prepare("UPDATE onions SET category=18, locked=1, description='Part of scam network - SCAM', timechanged=? WHERE address=?;"); diff --git a/helpers/tmp6.php b/helpers/tmp6.php index 0429ed6..0315c0c 100644 --- a/helpers/tmp6.php +++ b/helpers/tmp6.php @@ -3,7 +3,7 @@ require_once(__DIR__.'/../common_config.php'); try{ $db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME . ';charset=utf8mb4', DBUSER, DBPASS, [PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>true]); }catch(PDOException $e){ - die('No Connection to MySQL database!'); + die(_('No database connection!')); } $stmt=$db->query("SELECT onions.address FROM onions LEFT JOIN phishing ON (phishing.onion_id=onions.id) WHERE onions.address!='' AND onions.locked=0 AND isnull(phishing.onion_id);"); $move=$db->prepare("UPDATE onions SET category=18, locked=1, description='Part of scam network - SCAM', timechanged=? WHERE address=?;"); diff --git a/helpers/tmp7.php b/helpers/tmp7.php index 5cb6e59..94ad491 100644 --- a/helpers/tmp7.php +++ b/helpers/tmp7.php @@ -3,7 +3,7 @@ require_once(__DIR__.'/../common_config.php'); try{ $db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME . ';charset=utf8mb4', DBUSER, DBPASS, [PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>true]); }catch(PDOException $e){ - die('No Connection to MySQL database!'); + die(_('No database connection!')); } $stmt=$db->prepare("SELECT null FROM onions WHERE md5sum = ?;"); $move=$db->prepare("UPDATE onions SET category=18, locked=1, description=CONCAT(description, ' - Part of scam network - SCAM'), timechanged=? WHERE md5sum = ? AND locked=0;"); diff --git a/lang_de.php b/lang_de.php deleted file mode 100644 index 9299de9..0000000 --- a/lang_de.php +++ /dev/null @@ -1,77 +0,0 @@ - 'Alle', - 'all_legitimate'=> 'Alle legitimen', - 'lastadded' => 'Zuletzt hinzugefügt', - 'offline' => 'Offline > 1 Woche', - 'removed' => 'Entfernt/Kinderporno', - 'phishingclones'=> 'Phishingklon', - 'title' => 'Onion Linkliste', - 'error' => 'FEHLER', - 'nodb' => 'Keine Datenbankverbindung!', - 'addonion' => 'Onion-Adresse', - 'adddesc' => 'Beschreibung', - 'category' => 'Kategorie', - 'search' => 'Suchen', - 'searchterm' => 'Suchwort', - 'specialcat' => 'Spezielle Kategorien', - 'categories' => 'Kategorien', - 'pages' => 'Seiten', - 'invalonion' => 'Ungültige Onion-Adresse!', - 'valid' => 'Eine gültige Adresse sieht so aus', - 'succadd' => 'Onion-Adresse erfolgreich hinzugefügt!', - 'faillocked' => 'Entschuldigung, das Bearbeiten dieser Onion-Adresse wurde gesperrt!', - 'succupddesc' => 'Beschreibung erfolgreich aktualisiert!', - 'succupdcat' => 'Kategorie erfolgreich aktualisiert!', - 'alreadyknown' => 'Danke, aber ich kannte diese Adresse bereits.', - 'searchresult' => 'Suche nach "%1$s", %2$d Ergebnisse gefunden:', - 'link' => 'Onion Link', - 'description' => 'Beschreibung', - 'lasttested' => 'Zuletzt getested', - 'lastup' => 'Zuletzt online', - 'timeadded' => 'Hinzgefügt am', - 'actions' => 'Aktionen', - 'edit' => 'Bearbeiten', - 'test' => 'Testen', - 'never' => 'Nie', - 'cloneof' => 'Klon von', - 'admintitle' => 'Admin Schnittstelle', - 'password' => 'Passwort', - 'login' => 'Anmelden', - 'bitcoins' => 'Bitcoins', - 'remove' => 'Entfernen', - 'readd' => 'Wieder hinzufügen', - 'lock' => 'Sperren', - 'unlock' => 'Entsperren', - 'promote' => 'Hervorheben', - 'unpromote' => 'Nicht mehr hervorheben', - 'phishing' => 'Phishing', - 'unphishing' => 'Kein Phishing', - 'update' => 'Aktualisieren', - 'succremove' => 'Onion-Adresse erfolgreich entfernt!', - 'succreadd' => 'Onion-Adresse erfolgreich wieder hinzugefügt!', - 'succlock' => 'Onion-Adresse erfolgreich gesperrt!', - 'succunlock' => 'Onion-Adresse erfolgreich entsperrt!', - 'succpromote' => 'Onion-Adresse erfolgreich hervorgehoben bis %1$s!', - 'succunpromote' => 'Onion-Adresse erfolgreich nicht mehr hervorgehoben!', - 'succaddphish' => 'Phishingklon erfolgreich hinzugefügt!', - 'samephish' => 'Phishingklon nicht hinzugefügt! Phishing und original haben die gleiche Adresse.', - 'succrmphish' => 'Phishingklon erfolgreich entfernt!', - 'noaction' => 'Keine Aktion ausgeführt!', - 'wrongpass' => 'Falsches Passwort!', - 'testtitle' => 'Online-Test', - 'testdesc' => 'Hier kann getestet werden, ob eine Onion-Adresse online ist oder nicht.', - 'testonline' => 'Ja, der Dienst ist online!', - 'testoffline' => 'Nein, der Dienst ist offline!', - 'testphishing' => 'Warnung, diese Adresse ist ein bekannter Phishingklon. Die Original-Seite ist hier: %s.', - 'unknown' => 'Unbekannt', - 'language' => 'Sprache', - 'format' => 'Format', - 'hidelocked' => 'Gesperrte nicht anzeigen', - 'pendingapproval' => 'Genehmigung ausstehend', - 'rejected' => 'Abgelehnt', - 'reject' => 'Ablehnen', - 'approve' => 'Akzeptieren', - 'switchviewmode' => 'Ansichtsmodus wechseln', - 'statusok' => 'Status: OK', -]; diff --git a/lang_en.php b/lang_en.php deleted file mode 100644 index a674d7e..0000000 --- a/lang_en.php +++ /dev/null @@ -1,79 +0,0 @@ - 'All', - 'all_legitimate'=> 'All legitimate', - 'lastadded' => 'Last added', - 'offline' => 'Offline > 1 week', - 'removed' => 'Removed/Child porn', - 'phishingclones'=> 'Phishing Clones', - 'title' => 'Onion link list', - 'error' => 'ERROR', - 'nodb' => 'No database connection!', - 'addonion' => 'Onion address', - 'adddesc' => 'Description', - 'category' => 'Category', - 'search' => 'Search', - 'searchterm' => 'Search term', - 'specialcat' => 'Special categories', - 'categories' => 'Categories', - 'pages' => 'Pages', - 'invalonion' => 'Invalid onion address!', - 'valid' => 'A valid address looks like this', - 'succadd' => 'Successfully added onion address!', - 'faillocked' => 'Sorry, editing this onion address has been locked!', - 'succupddesc' => 'Successfully updated description!', - 'succupdcat' => 'Successfully updated category!', - 'alreadyknown' => 'Thanks, but I already knew this address!', - 'searchresult' => 'Searching for "%1$s", %2$d results found:', - 'link' => 'Onion link', - 'description' => 'Description', - 'lasttested' => 'Last tested', - 'lastup' => 'Last seen', - 'timeadded' => 'Added at', - 'actions' => 'Actions', - 'edit' => 'Edit', - 'test' => 'Test', - 'never' => 'Never', - 'cloneof' => 'Clone of', - 'admintitle' => 'Admin interface', - 'password' => 'Password', - 'login' => 'Login', - 'bitcoins' => 'Bitcoins', - 'remove' => 'Remove', - 'readd' => 'Re-add', - 'lock' => 'Lock', - 'unlock' => 'Unlock', - 'promote' => 'Promote', - 'unpromote' => 'Un-promote', - 'phishing' => 'Phishing', - 'unphishing' => 'No phishing', - 'update' => 'Update', - 'succremove' => 'Successfully removed onion address!', - 'succreadd' => 'Successfully re-added onion address!', - 'succlock' => 'Successfully locked onion address!', - 'succunlock' => 'Successfully unlocked onion address!', - 'succpromote' => 'Successfully promoted onion address until %1$s!', - 'succunpromote' => 'Successfully un-promoted onion address!', - 'succaddphish' => 'Successfully added Phishing clone!', - 'samephish' => 'Not added Phishing clone! Phishing and original have the same address.', - 'succrmphish' => 'Successfully removed Phishing clone!', - 'noaction' => 'No action taken!', - 'wrongpass' => 'Wrong Pass!', - 'testtitle' => 'Online-Test', - 'testdesc' => 'Here an onion address can be tested, for whether it is online or not.', - 'testonline' => 'Yes, the service is online!', - 'testoffline' => 'No, the service is offline!', - 'testphishing' => 'Warning, this is a known phishing clone. The original site is located at %s.', - 'unknown' => 'Unknown', - 'language' => 'Language', - 'format' => 'Format', - 'hidelocked' => 'Hide locked', - 'pendingapproval' => 'Pending approval', - 'rejected' => 'Rejected', - 'reject' => 'Reject', - 'approve' => 'Approve', - 'succreject' => 'Successfully rejected onion address', - 'succapprove' => 'Successfully approved onion address', - 'switchviewmode' => 'Switch view mode', - 'statusok' => 'Status: OK', -]; diff --git a/lang_fa.php b/lang_fa.php deleted file mode 100644 index e83c46c..0000000 --- a/lang_fa.php +++ /dev/null @@ -1,78 +0,0 @@ - 'همه', - 'lastadded' => 'آخرین تغییرات', - 'offline' => 'غیر فعال > 1 هفته', - 'removed' => 'حذف/ پورن کودکان', - 'phishingclones'=> 'کلاهبرداری فیشینگ', - 'title' => 'پیوندهای پیازی', - 'error' => 'خطا', - 'nodb' => 'مشکل در اتصال به دیتابیس', - 'addonion' => 'آدرس پیازی', - 'adddesc' => 'توضیحات', - 'category' => 'دسته بندی', - 'search' => 'جستجو', - 'searchterm' => 'جستجوی اصطلاح', - 'specialcat' => 'دسته بندی های خاص', - 'categories' => 'دسته بندی ها', - 'pages' => 'صفحه', - 'invalonion' => 'آدرس پیازی غیر مجاز!', - 'valid' => 'آدرس معتبری به این شکل است', - 'succadd' => 'آدرس پیازی با موفقیت اضافه شد!', - 'faillocked' => 'متاسفیم، این آدرس قفل شده است نمیتوانید ویرایش کنید!', - 'succupddesc' => 'توضیحات با موفقیت بروزرسانی شد !', - 'succupdcat' => 'دسته بندی به موفقیت بروزرسانی شد!', - 'alreadyknown' => 'با تشکر ، اما این آدرس موجود است !', - 'searchresult' => 'جستجو برای "%1$s", %2$d نتیجه یافت شد:', - 'link' => 'پیوند پیازی', - 'description' => 'توضیح', - 'lasttested' => 'آخرین آزمون', - 'lastup' => 'آخرین بازدید', - 'timeadded' => 'اضافه شده در', - 'actions' => 'اقدامات', - 'edit' => 'ویرایش', - 'test' => 'آزمون', - 'never' => 'هرگز', - 'cloneof' => 'کلون از', - 'admintitle' => 'رابط مدیریت', - 'password' => 'رمز عبور', - 'login' => 'ورود', - 'bitcoins' => 'بیت کوین', - 'remove' => 'حذف', - 'readd' => 'دوباره-اضافه', - 'lock' => 'قفل', - 'unlock' => 'قفل باز', - 'promote' => 'تبلیغ', - 'unpromote' => 'لغو-تبلیغ', - 'phishing' => 'فیشینگ', - 'unphishing' => 'بدون فیشینگ', - 'update' => 'بروزرسانی', - 'succremove' => 'آدرس پیازی با موفقیت حذف شد!', - 'succreadd' => 'آدرس پیازی با موفقیت دوباره اضافه شد !', - 'succlock' => 'آدرس پیازی با موفقیت قفل شد !', - 'succunlock' => 'قفل آدرس پیازی با موفقیت باز شد !', - 'succpromote' => 'آدرس پیازی با موفقیت تبلیغ شد تا %1$s!', - 'succunpromote' => 'تبلیغ آدرس با موفقیت لغو شد!', - 'succaddphish' => 'کلون فیشینگ با موفقیت اضافه شد !', - 'samephish' => 'کلون فیشینگ اضافه نشد! فیشینگ و اصلی آدرس یکسانی دارند.', - 'succrmphish' => 'کلون فیشینگ با موفقیت حذف شد !', - 'noaction' => 'اقدامی انجام نشده است!', - 'wrongpass' => 'رمز اشتباه !', - 'testtitle' => 'آزمون-انلاین', - 'testdesc' => 'در اینجا میتوانید انلاین یا افلاین بودن آدرس پیازی را آزمایش کنید.', - 'testonline' => 'بله، سرویس انلاین است!', - 'testoffline' => 'خیر، سرویس افلاین است.', - 'testphishing' => 'هشدار، این یک کلون فیشینگ شناخته شده است. ساید اصلی در اینجاست %s.', - 'unknown' => 'ناشناخته', - 'language' => 'زبان', - 'format' => 'فرمت', - 'hidelocked' => 'پنهان کردن قفل', - 'pendingapproval' => 'در انتضار تایید', - 'rejected' => 'رد شد', - 'reject' => 'رد کردن', - 'approve' => 'تایید', - 'succreject' => 'آدرس پیازی با موفقیت رد شد', - 'succapprove' => 'آدرس پیازی با موفقیت تایید شد', - 'switchviewmode' => 'نغییر حالت مشاهده', - 'statusok' => 'وضعیت: خوب', -]; diff --git a/lang_ja.php b/lang_ja.php deleted file mode 100644 index 067afcc..0000000 --- a/lang_ja.php +++ /dev/null @@ -1,94 +0,0 @@ - -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . -*/ -$T=[ - 'all' => '全て', - 'lastadded' => '最近の追加', - 'offline' => '1週間以上オフライン', - 'removed' => '削除済', - 'phishingclones'=> '詐欺サイト(クローン)', - 'title' => 'Onionリンクの一覧', - 'error' => 'エラー', - 'nodb' => 'データベースの接続がありません!', - 'addonion' => 'Onion アドレス', - 'adddesc' => '詳細', - 'category' => 'カテゴリ', - 'search' => '検索', - 'searchterm' => '検索キーワード', - 'specialcat' => '特別な分類', - 'categories' => 'カテゴリ', - 'pages' => 'ページ', - 'invalonion' => 'Onionアドレスが不正です。', - 'valid' => '正しいアドレスはこんな感じのはず:', - 'succadd' => 'Onionアドレスを追加しました。', - 'faillocked' => 'ごめん、このOnionアドレスはロックされていて編集できない。', - 'succupddesc' => '説明の更新に成功しました。', - 'succupdcat' => 'カテゴリの変更に成功しました。', - 'alreadyknown' => 'ありがとう、でも、このアドレスはもう知ってるんだ。', - 'searchresult' => '検索キーワード "%1$s" - %2$d 件見つかりました:', - 'link' => 'Onion リンク', - 'description' => '説明', - 'lasttested' => '接続試験日', - 'lastup' => '最後に見た日', - 'timeadded' => '追加された日', - 'actions' => '操作', - 'edit' => '編集', - 'test' => 'テスト', - 'never' => 'なし', - 'cloneof' => 'クローン元(オリジナル)', - 'admintitle' => '管理者の操作画面', - 'password' => 'パスワード', - 'login' => 'ログイン', - 'bitcoins' => 'ビットコイン', - 'remove' => '削除', - 'readd' => '再追加', - 'lock' => '施錠', - 'unlock' => '解錠', - 'promote' => '宣伝', - 'unpromote' => '宣伝解除', - 'phishing' => '詐欺サイト', - 'unphishing' => '詐欺サイトではない', - 'update' => '更新', - 'succremove' => 'Onionアドレスを削除しました。', - 'succreadd' => 'Onionアドレスを再度追加しました。', - 'succlock' => 'Onionアドレスをロックしました。', - 'succunlock' => 'Onionアドレスのロックを解除しました。', - 'succpromote' => 'Onionアドレスを次の日まで宣伝します: %1$s!', - 'succunpromote' => 'Onionアドレスの宣伝をやめました。', - 'succaddphish' => '詐欺サイトを追加しました。', - 'samephish' => '追加できませんでした。詐欺サイトとオリジナルのアドレスが同一です。', - 'succrmphish' => '詐欺サイトを削除しました。', - 'noaction' => '何も操作していません。', - 'wrongpass' => 'パスワードが違います。', - 'testtitle' => 'オンラインテスト', - 'testdesc' => 'ここで、Onionアドレスが「オンライン」かどうかを試すことができます。', - 'testonline' => '対象はオンラインです。', - 'testoffline' => '対象はオフラインです!', - 'testphishing' => '警告。これは知られた詐欺サイト(クローン)です。オリジナルは %s です。', - 'unknown' => '不明', - 'language' => '言語', - 'format' => '形式', - 'pdo_mysqlextrequired' => 'PHPのpdo_mysqlが必要です。先にインストールしてください。', - 'pcreextrequired' => 'PHPのpcre拡張が必要です。先にインストールしてください。', - 'jsonextrequired' => 'PHPのjson拡張が必要です。先にインストールしてください。', - 'curlextrequired' => 'PHPのcurl拡張が必要です。先にインストールしてください。', - 'dateextrequired' => 'PHPのdate拡張が必要です。先にインストールしてください。', - 'succdbcreate' => 'データベースの作成に成功しました!', - 'statusok' => '状態: 良好', -]; diff --git a/lang_pt.php b/lang_pt.php deleted file mode 100644 index d8dcaba..0000000 --- a/lang_pt.php +++ /dev/null @@ -1,78 +0,0 @@ - 'Todos', - 'lastadded' => 'Últimos adicionados', - 'offline' => 'Offline > 1 semana', - 'removed' => 'Removidos/Pornografia infantil', - 'phishingclones'=> 'Clone com phishing', - 'title' => 'Lista de links onion', - 'error' => 'ERRO', - 'nodb' => 'Sem conexão com a database!', - 'addonion' => 'Endereço onion', - 'adddesc' => 'Descrição', - 'category' => 'Categoria', - 'search' => 'Pesquisar', - 'searchterm' => 'Termo de pesquisa', - 'specialcat' => 'Categorias especiais', - 'categories' => 'Categorias', - 'pages' => 'Páginas', - 'invalonion' => 'Endereço onion inválido!', - 'valid' => 'Um endereço válido é parecido com este', - 'succadd' => 'Endereço onion adicionado com sucesso!', - 'faillocked' => 'Desculpe, a edição deste endereço onion foi bloqueada!', - 'succupddesc' => 'Descrição atualizada com sucesso!', - 'succupdcat' => 'Categoria atualizada com sucesso!', - 'alreadyknown' => 'Obrigado, mas já conhecia este endereço!', - 'searchresult' => 'Procurando por "%1$s", %2$d resultados encontrados:', - 'link' => 'Onion link', - 'description' => 'Descrição', - 'lasttested' => 'Testado pela última vez', - 'lastup' => 'Visto pela última vez', - 'timeadded' => 'Adicionado em', - 'actions' => 'Ações', - 'edit' => 'Editar', - 'test' => 'Testar', - 'never' => 'Nunca', - 'cloneof' => 'Clone de', - 'admintitle' => 'Interface do administrador', - 'password' => 'Senha', - 'login' => 'Login', - 'bitcoins' => 'Bitcoins', - 'remove' => 'Remover', - 'readd' => 'Re-adicionar', - 'lock' => 'Bloquear', - 'unlock' => 'Desbloquear', - 'promote' => 'Promover', - 'unpromote' => 'Despromover', - 'phishing' => 'Phishing', - 'unphishing' => 'Sem phishing', - 'update' => 'Atualizar', - 'succremove' => 'Endereço onion removido com sucesso!', - 'succreadd' => 'Endereço onion adicionado com sucesso!', - 'succlock' => 'Endereço onion bloqueado com sucesso!', - 'succunlock' => 'Endereço onion desbloqueado com sucesso!', - 'succpromote' => 'Successfully promoted onion address until %1$s!', - 'succunpromote' => 'Endereço onion despromovido com sucesso!', - 'succaddphish' => 'Clone com phishing adicionado com sucesso!', - 'samephish' => 'Clone com phishing não adicionado! Phishing e original têm o mesmo endereço.', - 'succrmphish' => 'Clone para phishing removido com sucesso!', - 'noaction' => 'Nenhuma ação tomada!', - 'wrongpass' => 'Senha errada!', - 'testtitle' => 'Online-Teste', - 'testdesc' => 'Aqui um endereço onion pode ser testado, para saber se está online ou não.', - 'testonline' => 'Sim, o serviço está online!', - 'testoffline' => 'Não, o serviço está offline!', - 'testphishing' => 'Aviso, este é um clone para phishing conhecido. O site original está localizado em %s.', - 'unknown' => 'Desconhecido', - 'language' => 'Linguagem', - 'format' => 'Formato', - 'hidelocked' => 'Esconder bloqueado', - 'pendingapproval' => 'Aprovação pendente', - 'rejected' => 'Rejeitado', - 'reject' => 'Rejeitar', - 'approve' => 'Aprovar', - 'succreject' => 'Endereço onion rejeitado com sucesso', - 'succapprove' => 'Endereço onion aprovado com sucesso', - 'switchviewmode' => 'Alternar modo de visualização', - 'statusok' => 'Status: OK', -]; diff --git a/lang_tr.php b/lang_tr.php deleted file mode 100644 index b9aa4c1..0000000 --- a/lang_tr.php +++ /dev/null @@ -1,70 +0,0 @@ - 'Tümü', - 'lastadded' => 'Son eklenen', - 'offline' => 'Çevrimdışı > 1 hafta', - 'removed' => 'Kaldırıldı/Çocuk pornografisi', - 'phishingclones'=> 'Phishing Klonları', - 'title' => 'Onion bağlantı listesi', - 'error' => 'HATA', - 'nodb' => 'Veritabanı bağlantısı yok!', - 'addonion' => 'Onion-Adresi', - 'adddesc' => 'Açıklama', - 'category' => 'Kategori', - 'search' => 'Ara', - 'searchterm' => 'Arama terimi', - 'specialcat' => 'Özel kategoriler', - 'categories' => 'Kategoriler', - 'pages' => 'Sayfalar', - 'invalonion' => 'Geçersiz onion-Adresi!', - 'valid' => 'Geçerli bir adres şöyle gözükür:', - 'succadd' => 'Onion-Adresi başarıyla eklendi!', - 'faillocked' => 'Üzgünüm, bu onion-Adresini düzenlemek kilitli!', - 'succupddesc' => 'Açıklama başarılı bir şekilde güncellendi!', - 'succupdcat' => 'Kategori başarılı bir şekilde güncellendi!', - 'alreadyknown' => 'Teşekkürler, ama bu adresi zaten biliyorum!', - 'searchresult' => '"%1$s" için aranıyor, %2$d sonuç bulundu:', - 'link' => 'Onion bağlantısı', - 'description' => 'Açıklama', - 'lasttested' => 'Son denenme', - 'lastup' => 'Son görülme', - 'timeadded' => 'Şu tarihte eklendi', - 'actions' => 'Eylemler', - 'edit' => 'Düzenle', - 'test' => 'Dene', - 'never' => 'Asla', - 'cloneof' => 'Klonu', - 'admintitle' => 'Yönetici arayüzü', - 'password' => 'Şifre', - 'login' => 'Giriş', - 'bitcoins' => 'Bitcoinler', - 'remove' => 'Kaldır', - 'readd' => 'Yeniden-ekle', - 'lock' => 'Kilitle', - 'unlock' => 'Kilidi aç', - 'promote' => 'Destekle', - 'unpromote' => 'Destekleme', - 'phishing' => 'Phishing', - 'unphishing' => 'Phishing değil', - 'update' => 'Güncelle', - 'succremove' => 'Onion-Adresi başarıyla kaldırıldı!', - 'succreadd' => 'Onion-Adresi başarılı bir şekilde okundu!', - 'succlock' => 'Onion-Adresi başarılı bir şekilde kilitlendi!', - 'succunlock' => 'Onion-Adresi\'nin kilidi başarılı bir şekilde açıldı!', - 'succpromote' => '%1$s tarihine kadar onion-Adresi başarılı bir şekilde desteklendi!', - 'succunpromote' => 'Onion-Adresine destek başarılı bir şekilde bırakıldı!', - 'succaddphish' => 'Phishing klonu eklendi!', - 'samephish' => 'Phishing klonu eklenemedi! Phishing ve orijinal aynı adrese sahip.', - 'succrmphish' => 'Phishing klonu başarılı bir şekilde kaldırıldı!', - 'noaction' => 'İşlem yapılmadı!', - 'wrongpass' => 'Yanlış şifre!', - 'testtitle' => 'Çevrimiçi-Deneme', - 'testdesc' => 'Burada çevrimiçi veya değil farketmeksizin bir Onion-Adresi denenebilir.', - 'testonline' => 'Evet, bu servis çevrimiçi!', - 'testoffline' => 'Hayır, bu servis çevrimdışı!', - 'testphishing' => 'Uyarı, bu bilinen bir phishing klonu. Gerçek site %s adresinde bulunuyor.', - 'unknown' => 'Bilinmiyor', - 'language' => 'Dil', - 'format' => 'Biçim', - 'hidelocked' => 'Kilitlileri gizle', -]; diff --git a/lang_update.php b/lang_update.php deleted file mode 100644 index 55acdd0..0000000 --- a/lang_update.php +++ /dev/null @@ -1,45 +0,0 @@ - -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . -*/ - -//Native language name: $native -\$T=[ -"; -if(file_exists("lang_$code.php")){ - include("lang_$code.php"); -} -include('lang_en.php'); -foreach($T as $id=>$value){ - if(isset($I[$id])){ - $I[$id]=$value; - } -} -foreach($I as $id=>$value){ - echo "\t'$id' => '".str_replace("'", "\'", $value)."',\n"; -} -echo "];\n"; -$file=ob_get_clean(); -file_put_contents("lang_$code.php", $file); diff --git a/locale/de_DE/LC_MESSAGES/onion-link-list.mo b/locale/de_DE/LC_MESSAGES/onion-link-list.mo new file mode 100644 index 0000000000000000000000000000000000000000..226ee1592120c5e1d983bf8f65a8c23fab6bd971 GIT binary patch literal 6537 zcmb`KTZ|-C8OIL`co{%0x~{j?)9Wtm%Jl5aEa1}XuFmev?0sk4nPJxplIpHA-Nn>Y zHC5F!%t&IQ#s?oHCTJvq5EBB4iQ)r70@GAJ7)r{FmJBYZF1N+Ysn58MH7ffaZTejKiq^$)|n zl%Ih+;j88Mttdz3+o9Tj3El+1TGsynN>9&2jr$7JKCio`kaq>{rhFs(G@L1Uf63=d zUW-sC^&M)x4?ykf5h%GlUh+rq6y={n&ASC5N{$s?($^T=b(t}zq4t}y7|HRwQ0*Rp zlFJiN_HY3*l=&rO%jUOG`ubB@ei>>#|AHFlitCH-*Fd&vwn4UFc0#oqhaZ9mq2@mi zKLEcBwVwyzQTR|<|7Z9?%KwHMe;Z1cy<4bt-3po7OhWZvfNFOq)cIS4>VG%XykCb} z&m(X<{2}}-d=@f=+0N!Q?p~;NhoIzg3TppfEZKsZFN2cDeNgA@8&LB<4AuWJsD3|z zOktiWzyBJl--{*x0=2JKq4aqr1&wnx)I3|^Fx(E0z!PvQ{1%j4AB8u;N+ycy6O~N;MO9#R~)9dcL2yG__$I zFYykRoXuK6Y9<<45J%AW9j!7l%Ryv=D09i8*KlSc43%u?nn4yUdl^;jb`q~Rb2!Kv zaS)|7bA;+sqsZk;uXI13OX8?$8%19;9Ve`{W{$bUSue72#FRZLG^nW~ z0heaZAGV8eVpm%(Yq`V*nGI5!hk@3f*eK3M%(1|Ch_123YK}*RLUnmv6>q-ja(ds<`M@sc)mTRuDC5GmHwI zOuLW)=})B(q+cuEvQ^&P6`kv0iReUTC^2 z?qzIlN2!@j;^i3gJL{^f5ZsLglt9*J-Lj0bfWP-hD+qntj+4mDIWK9nN}%*)xy;u} zYJSCxlW_OkzDMA;aXuY8`>$fb+IO!%x-Xy;$WiKemxD2Qdsd| z3zpiy7EZSWy=fTRiLxNH649piNv@F1?O)SK>e}3BaN;Caq5sBW=r$VI;u~9bC2*^DIrg2&jeox7MN8?ht#>ke+xvic?6Fy$^2FWKkzX9Kv!U~FhPdF&!$sq| z7K0?kU#Y(q{dW4_oigj&n7`e?^S+(_etg&RT6)i07Q#Z$2+TsX6ve9%l)lYEt}=7Z zOCrv)+$dt@=b;Ol^?YpMG)Jt&+4GfYfLv+JNV!>fncbC+bO)=^cyO?^;VoB8aXWS0 zUd4RQVF$U#?Q`F`pRCBy>8wBs%c`f-X5d#3cbaK+KBjthrh3+` z1Zq^BWIZ)IJ~}>L9UHHX-)6`5)o$H)^XS;<=#Xxr>U`owY3OCTWT`1GEc~*!+*hty z-`zDiHFWy;>8XwR$3{knj>JR-5yPytnI}WHd)uKGLQvN-<>YI2e?7>CX2VY6g;ibAc*3Zi7t@2|2W*i&xI40ygLZ7sfuZx&qb_nuvE}I7fd#IW*^~>lLr}A%K!e-&SP-punr`vJ(@ieM zXz1J`y6Oc|y^OZz6dJF@Nz1Wrb1ra_N4`;=5=p%tx|R;l zgv^mF@p+VSoK;umvb`rULzgJbiglMWUk+lstSl2csoq9d!eE3ol{8&F3R12xw1_kv z2a1s~<4)-3+dxf3RU2nT0w&;H_~Rc=qE148tcvJQWAasP4!{jT;6 znoST|;o4Fnv`&gsY_w7rMn&4E|zZiPG!=;bE)rffzcS%Rg z!@5g4Vjk#S+7Wx9-z6LNj1+DAjIQu|3sK$Wdd>Y#_rBS%CCorkBD%yA$@TOUuRBAx zO4%P9=|4Clx?1c^`Tx3_yXyR!X`$^}FJNTcnp!IQ+&tW2mn9wD@7;U73?4D>6W(jD IuQGQ0A8!=v-v9sr literal 0 HcmV?d00001 diff --git a/locale/de_DE/LC_MESSAGES/onion-link-list.po b/locale/de_DE/LC_MESSAGES/onion-link-list.po new file mode 100644 index 0000000..e006c00 --- /dev/null +++ b/locale/de_DE/LC_MESSAGES/onion-link-list.po @@ -0,0 +1,391 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-12-26 13:51+0100\n" +"PO-Revision-Date: 2022-12-26 13:53+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: de_DE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.1.1\n" + +#: www/test.php:7 www/test.php:15 +msgid "Online-Test" +msgstr "Online-Test" + +#: www/test.php:17 +msgid "Here an onion address can be tested, for whether it is online or not." +msgstr "" +"Hier kann getestet werden, ob eine Onion-Adresse online ist oder nicht." + +#: www/test.php:20 www/admin.php:157 +msgid "Onion link:" +msgstr "Onion Link:" + +#: www/test.php:27 www/onions.php:379 www/onions.php:408 +msgid "Test" +msgstr "Testen" + +#: www/test.php:36 www/admin.php:12 www/sitemap.php:7 cron/update.php:7 +#: cron/phishing_tests.php:8 helpers/tmp5.php:6 helpers/tmp6.php:6 +#: helpers/fill_unknown_phishing.php:6 helpers/tmp3.php:6 helpers/tmp7.php:6 +#: helpers/tmp4.php:6 helpers/tmp2.php:6 helpers/tmp.php:6 setup.php:48 +#: setup.php:51 +msgid "No database connection!" +msgstr "Keine Datenbankverbindung!" + +#: www/test.php:39 www/onions.php:234 www/admin.php:48 www/admin.php:108 +msgid "Invalid onion address!" +msgstr "Ungültige Onion-Adresse!" + +#: www/test.php:54 +#, php-format +msgid "" +"Warning, this is a known phishing clone. The original site is located at %s." +msgstr "" +"Warnung, diese Adresse ist ein bekannter Phishingklon. Die Original-Seite " +"ist hier: %s." + +#: www/test.php:59 +msgid "Warning: This is a known scam!" +msgstr "Warnung: Dies ist ein bekannter Betrug!" + +#: www/test.php:64 www/test.php:99 +msgid "Yes, the service is online!" +msgstr "Ja, der Dienst ist online!" + +#: www/test.php:105 +msgid "No, the service is offline!" +msgstr "Nein, der Dienst ist offline!" + +#: www/onions.php:55 +msgid "All legitimate" +msgstr "Alle legitimen" + +#: www/onions.php:56 www/onions.php:90 +msgid "Last added" +msgstr "Zuletzt hinzugefügt" + +#: www/onions.php:57 +msgid "Offline > 1 week" +msgstr "Offline > 1 Woche" + +#: www/onions.php:119 www/onions.php:128 +msgid "Onion link list" +msgstr "Onion Linkliste" + +#: www/onions.php:130 www/onions.php:449 www/onions.php:466 +msgid "Error: No database connection!" +msgstr "Fehler: Keine Datenbankverbindung!" + +#: www/onions.php:137 +msgid "Onion address:" +msgstr "Onion-Adresse:" + +#: www/onions.php:142 www/admin.php:181 +msgid "Description:" +msgstr "Beschreibung:" + +#: www/onions.php:157 www/onions.php:177 www/admin.php:197 +msgid "Category:" +msgstr "Kategorie:" + +#: www/onions.php:167 www/admin.php:78 www/admin.php:218 +msgid "Update" +msgstr "Aktualisieren" + +#: www/onions.php:172 +msgid "Search:" +msgstr "Suchen:" + +#: www/onions.php:172 +msgid "Search term" +msgstr "Suchwort" + +#: www/onions.php:182 www/onions.php:490 www/onions.php:492 +msgid "All" +msgstr "Alle" + +#: www/onions.php:195 +msgid "Hide locked" +msgstr "Gesperrte nicht anzeigen" + +#: www/onions.php:196 +msgid "Search" +msgstr "Suchen" + +#: www/onions.php:198 +msgid "Format:" +msgstr "Format:" + +#: www/onions.php:201 +msgid "Special categories:" +msgstr "Spezielle Kategorien:" + +#: www/onions.php:212 www/onions.php:214 +msgid "Phishing Clones" +msgstr "Phishingklone" + +#: www/onions.php:216 +msgid "Removed/Child porn" +msgstr "Entfernt/Kinderporno" + +#: www/onions.php:218 +msgid "Pending approval" +msgstr "Genehmigung ausstehend" + +#: www/onions.php:219 +msgid "Rejected" +msgstr "Abgelehnt" + +#: www/onions.php:223 +msgid "Categories:" +msgstr "Kategorien:" + +#: www/onions.php:235 +msgid "A valid address looks like this" +msgstr "Eine gültige Adresse sieht so aus" + +#: www/onions.php:238 www/onions.php:251 +msgid "Error: Wrong captcha" +msgstr "Fehler: Falsches Captcha" + +#: www/onions.php:244 +msgid "Error: Captcha expired" +msgstr "Fehler: Captcha abgelaufen" + +#: www/onions.php:272 www/admin.php:94 +msgid "Successfully added onion address!" +msgstr "Onion-Adresse erfolgreich hinzugefügt!" + +#: www/onions.php:274 +msgid "Sorry, editing this onion address has been locked!" +msgstr "Entschuldigung, das Bearbeiten dieser Onion-Adresse wurde gesperrt!" + +#: www/onions.php:278 www/admin.php:98 +msgid "Successfully updated description!" +msgstr "Beschreibung erfolgreich aktualisiert!" + +#: www/onions.php:282 www/admin.php:102 +msgid "Successfully updated category!" +msgstr "Kategorie erfolgreich aktualisiert!" + +#: www/onions.php:284 www/admin.php:104 +msgid "Thanks, but I already knew this address!" +msgstr "Danke, aber ich kannte diese Adresse bereits!" + +#: www/onions.php:310 +#, php-format +msgid "Searching for \"%1$s\", %2$d results found:" +msgstr "Suche nach \"%1$s\", %2$d Ergebnisse gefunden:" + +#: www/onions.php:357 www/onions.php:422 +msgid "Onion link" +msgstr "Onion-Adresse" + +#: www/onions.php:357 +msgid "Description" +msgstr "Beschreibung" + +#: www/onions.php:357 +msgid "Last tested" +msgstr "Zuletzt getestet" + +#: www/onions.php:357 www/onions.php:422 +msgid "Last seen" +msgstr "Zuletzt online" + +#: www/onions.php:357 +msgid "Added at" +msgstr "Hinzugefügt am" + +#: www/onions.php:357 +msgid "Actions" +msgstr "Aktionen" + +#: www/onions.php:369 www/onions.php:374 www/onions.php:389 www/onions.php:394 +#: www/onions.php:431 +msgid "Never" +msgstr "Nie" + +#: www/onions.php:406 +msgid "Edit" +msgstr "Bearbeiten" + +#: www/onions.php:422 +msgid "Clone of" +msgstr "Klon von" + +#: www/onions.php:438 +msgid "Unknown" +msgstr "Unbekannt" + +#: www/onions.php:488 +msgid "Pages:" +msgstr "Seiten:" + +#: www/admin.php:17 www/admin.php:24 +msgid "Admin interface" +msgstr "Admin Schnittstelle" + +#: www/admin.php:32 +msgid "Password:" +msgstr "Passwort:" + +#: www/admin.php:33 +msgid "Login" +msgstr "Anmelden" + +#: www/admin.php:36 +msgid "Wrong Password!" +msgstr "Falsches Passwort!" + +#: www/admin.php:52 www/admin.php:208 +msgid "Remove" +msgstr "Entfernen" + +#: www/admin.php:54 +msgid "Successfully removed onion address!" +msgstr "Onion-Adresse erfolgreich entfernt!" + +#: www/admin.php:55 www/admin.php:209 +msgid "Lock" +msgstr "Sperren" + +#: www/admin.php:57 +msgid "Successfully locked onion address!" +msgstr "Onion-Adresse erfolgreich gesperrt!" + +#: www/admin.php:58 www/admin.php:213 +msgid "Re-add" +msgstr "Wieder hinzufügen" + +#: www/admin.php:60 +msgid "Successfully re-added onion address!" +msgstr "Onion-Adresse erfolgreich wieder hinzugefügt!" + +#: www/admin.php:61 www/admin.php:214 +msgid "Unlock" +msgstr "Entsperren" + +#: www/admin.php:63 +msgid "Successfully unlocked onion address!" +msgstr "Onion-Adresse erfolgreich entsperrt!" + +#: www/admin.php:64 www/admin.php:210 +msgid "Promote" +msgstr "Hervorheben" + +#: www/admin.php:74 +#, php-format +msgid "Successfully promoted onion address until %1$s!" +msgstr "Onion-Adresse erfolgreich hervorgehoben bis %1$s!" + +#: www/admin.php:75 www/admin.php:215 +msgid "Un-promote" +msgstr "Nicht mehr hervorheben" + +#: www/admin.php:77 +msgid "Successfully un-promoted onion address!" +msgstr "Onion-Adresse erfolgreich nicht mehr hervorgehoben!" + +#: www/admin.php:106 www/admin.php:211 +msgid "Phishing" +msgstr "Phishing" + +#: www/admin.php:120 +msgid "Successfully added Phishing clone!" +msgstr "Phishingklon erfolgreich hinzugefügt!" + +#: www/admin.php:122 +msgid "Not added Phishing clone! Phishing and original have the same address." +msgstr "" +"Phishingklon nicht hinzugefügt! Phishing und original haben die gleiche " +"Adresse." + +#: www/admin.php:125 www/admin.php:216 +msgid "No phishing" +msgstr "Kein Phishing" + +#: www/admin.php:130 +msgid "Successfully removed Phishing clone!" +msgstr "Phishingklon erfolgreich entfernt!" + +#: www/admin.php:131 www/admin.php:220 +msgid "Reject" +msgstr "Ablehnen" + +#: www/admin.php:133 +msgid "Successfully rejected onion address" +msgstr "Onion-Adresse erfolgreich abgelehnt" + +#: www/admin.php:134 www/admin.php:221 +msgid "Approve" +msgstr "Akzeptieren" + +#: www/admin.php:136 +msgid "Successfully approved onion address" +msgstr "Onion-Adresse erfolgreich genehmigt" + +#: www/admin.php:138 +msgid "No action taken!" +msgstr "Keine Aktion ausgeführt!" + +#: www/admin.php:151 +msgid "Switch view mode" +msgstr "Ansichtsmodus wechseln" + +#: www/admin.php:171 +msgid "Clone of:" +msgstr "Klon von:" + +#: www/admin.php:176 +msgid "Bitcoins:" +msgstr "Bitcoins:" + +#: common_config.php:93 +msgid "Language:" +msgstr "Sprache:" + +#: setup.php:25 +msgid "The pdo_mysql extension of PHP is required. Please install it first." +msgstr "" +"Die pdo_mysql Erweiterung von PHP wird benötigt. Bitte installieren Sie " +"diese zuerst." + +#: setup.php:28 +msgid "The pcre extension of PHP is required. Please install it first." +msgstr "" +"Die pcre Erweiterung von PHP wird benötigt. Bitte installieren Sie diese " +"zuerst." + +#: setup.php:31 +msgid "The json extension of PHP is required. Please install it first." +msgstr "" +"Die json Erweiterung von PHP wird benötigt. Bitte installieren Sie diese " +"zuerst." + +#: setup.php:34 +msgid "The curl extension of PHP is required. Please install it first." +msgstr "" +"Die curl Erweiterung von PHP wird benötigt. Bitte installieren Sie diese " +"zuerst." + +#: setup.php:37 +msgid "The date extension of PHP is required. Please install it first." +msgstr "" +"Die date Erweiterung von PHP wird benötigt. Bitte installieren Sie diese " +"zuerst." + +#: setup.php:106 +msgid "Status: OK" +msgstr "Status: OK" diff --git a/locale/fa_IR/LC_MESSAGES/onion-link-list.mo b/locale/fa_IR/LC_MESSAGES/onion-link-list.mo new file mode 100644 index 0000000000000000000000000000000000000000..cca3acc20f21b252b482c2371bb95974ee7500ce GIT binary patch literal 6073 zcmbW3TWlQF8OIN|LJhP93beG4vuRQYWF6a(G;9dup19;oxj$Y0r-#W`Qe%Tj4^BAMR+582i^pK3qKF9 z!0X^&^7ns*pJn_hycued#O6EZ*`L3LgLdosO$KCLD#y$DC40YbKQ0qtF z2KXJ=1t;MhZ~;oskKtPQcUXY;GWj+51k`*PZh~jwI`~HZejy+KGas+x(EE9R07`BM zDlQkG_ML~a^F1g({}Da_KZ0yw?j)$v*FxF*K+a9@Amc4ie)%qx-+urfy2hAkDE$_0 zHRf~hW_}d!d*Ge06KcQxQ0E+m(&GeFJfDT~-)YDe<^tr;{Foof&q7o*zknQN-hq$6 z_aH7aH>1>Z@J@IS{2rA37opz23%?9gsPjI7(yI+6q?d(?=lwZ5p#1VE+z3xX$-k7( z{{)s9zYBH$x^An#KLX_!AIknQsPldZrN?WKCFU~Jy5B(A^CzhI{0++9yK#ort%dSO z32OZTD1DE@d*KNv`B5nQPDA7x=V6-SsI%qACuxt+NFUQl zQ>}cQrreRedUOx;JVBFB56~1V-AmLnlw4=q4yZe)=O)@iG}6oI-45lqEi^sysh+RX zRNr>f3bcK+ZrXLU%``oVukOD5v-ot-k$(w8<53)yD|)ullpo3kJ@UEoak~cjBmeHA z5o-6W&nax6J(!Qbk@HJXwS4hW+!Sj)ikY5b9j>M*uT^t&|IAK1;#Gr+^(vLfk7HY{ z)du(t27H_J2eH{%PJ&tpD-|E9gw9|P+8|8)sMjm|W@oi(b`A|iwGrR!3X*ay2;-93 z?InI+EeiZ*{}i*;TIkzaZ=+K(d;GW@1w%TdwO=xOD?wuRMo}#)*~2wk@e=Q(7yGtc z3q#*2RWSQ%(V&-<%mF|0tryx_$TkgA%FLX^3_ni%%0}B;i|lB>pY;2Y4H6r~h*tyY z6WOqqw3`D##mD~gfL}4)VcjiDb}X2KUf4J6_4y@waiWuub=}za!+NiNo;k=y{PYE( zIqZ-4k--Sh>1`8lzz++WSk)@#hj4v=5cVOnkvRA^_M?%Y>^rS{d!@G4=Nj0aT-=uB z;6iikg%!*TP{OO)es4rUWixLOchv*lZjRLVvyaxb=7{qmXS8-ni8yI_RiZC7 zipO!U>A@#Ny2p#-(OOiY=Z6*ax1P%kuWA-mY;>$khS>B(wZU5Ao1=aamB6z^HwVr= z>JKWj>Zokm-5*pdcBmGG=9uqA<^CK*IU3CSrJOonL0`MRb6vc4qg~&%u3|~@;c61| zVmL(4W3?zcwbA+{o5Yp!%d)87i^(EC%rm24jt%+c0C$#KQv6urCBt#a9(mFn8!nf* zNWH_=>Zy8yG{aF3&uSve@@(lQ_1i@xThn{#F7>osDuJr4x^PA1=w;j3;V=oRRxVm5 zAGv@mmtP^Ia4i>FdT``ISozOxSQJ`f(N1+L$Y1pcTUtW|vDlK*(W7Y@W5?aAT9c3ZC+`CjFe9S9L}`IO(Zf_bW;Kiz?_ zHX1^yYMyeZnWw!dBn@@t$wU4;wn3~>59$}Z-5%!_H|}*DB(5;9le5T6?E1LfJRQ}@ z=*25pFeiL;TwY7u9WLk+DvrhOO7UBM6jMb@w(Y3TJxhv*;=Z6#+%?=67mwGN?m1FC z>W>5xD(>OHlI`l~>MC}26}z_B&dsHctq*l{c6790~x;(}{)i*;$*; zU%8mQ$S9plr%XDLoo2-Z;uCI|zQJHj;`8aWz;=cmC)nyu?K-`1UV9>(jb~@Fal z%*?b&C-uT|z&V{&GOXqlZ8Mpj)l!>{rxUBpmyEQ^&Plbyj?U9|<&Mnbw+3GUuXJjQ>rn3c;&Jr3{W5Ub$fY?ZhsT4U$B1D*5-XP2pxq*PS z%scHA0h6DOJu|Y&pxw-sX`;e0dA7(V&Xf+>8A~V67ME28^FPG^^`~9rvoX0w`d>k{ zOHO;vnUfj}=9W1;KdX^At;-Q@WO7}*f?e`HJ13FXvlnH_V#F5C6M;Dyrdh59CzH1A zM$VMe$GB8VCH*^+jWZ;-2_P!tH*!Q>RuS@+*^J<_->UCgW?lS95N%bI4vVQ}P;)GO zH5*4l$vSJ%LfJOc$XX7clD$g!=5=f}*xe|09mm_`m_()15|2|Zq*`yb1s=kUm{%3_zd|E6}VjEKwcy3$we z*5(?Pv{=3v%awuW4qR4Y;!06N-8Z0FoSOAxwa~k&-cWEwa&oiBmn9iDimaUFUNtJ7 zJGc3*B@ao)mCjgwC0W3A%)dI8ia?=cy*>r5?(pA)QY)`;#_fw+_*ScG>4GAvkLt2} z%FR&Ca9>~*5S`=vRBSp`Cr_mF?)Or?DCgdDe$ipej5XP~+{~((W^qvc*B!6_Bhp$N z@oaN*=VtuLV)SX(7Ye283g%yw`oA8sM4w2fw*Ku!3s=9lc{0lM{UPS-^ literal 0 HcmV?d00001 diff --git a/locale/fa_IR/LC_MESSAGES/onion-link-list.po b/locale/fa_IR/LC_MESSAGES/onion-link-list.po new file mode 100644 index 0000000..6034f98 --- /dev/null +++ b/locale/fa_IR/LC_MESSAGES/onion-link-list.po @@ -0,0 +1,375 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-12-26 13:53+0100\n" +"PO-Revision-Date: 2022-12-26 15:08+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: fa_IR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n==0 || n==1);\n" +"X-Generator: Poedit 3.1.1\n" + +#: www/test.php:7 www/test.php:15 +msgid "Online-Test" +msgstr "آزمون-انلاین" + +#: www/test.php:17 +msgid "Here an onion address can be tested, for whether it is online or not." +msgstr "در اینجا میتوانید انلاین یا افلاین بودن آدرس پیازی را آزمایش کنید." + +#: www/test.php:20 www/admin.php:157 +msgid "Onion link:" +msgstr "پیوند پیازی:" + +#: www/test.php:27 www/onions.php:379 www/onions.php:408 +msgid "Test" +msgstr "آزمون" + +#: www/test.php:36 www/admin.php:12 www/sitemap.php:7 cron/update.php:7 +#: cron/phishing_tests.php:8 helpers/tmp5.php:6 helpers/tmp6.php:6 +#: helpers/fill_unknown_phishing.php:6 helpers/tmp3.php:6 helpers/tmp7.php:6 +#: helpers/tmp4.php:6 helpers/tmp2.php:6 helpers/tmp.php:6 setup.php:48 +#: setup.php:51 +msgid "No database connection!" +msgstr "مشکل در اتصال به دیتابیس" + +#: www/test.php:39 www/onions.php:234 www/admin.php:48 www/admin.php:108 +msgid "Invalid onion address!" +msgstr "آدرس پیازی غیر مجاز!" + +#: www/test.php:54 +#, php-format +msgid "Warning, this is a known phishing clone. The original site is located at %s." +msgstr "هشدار، این یک کلون فیشینگ شناخته شده است. ساید اصلی در اینجاست %s." + +#: www/test.php:59 +msgid "Warning: This is a known scam!" +msgstr "" + +#: www/test.php:64 www/test.php:99 +msgid "Yes, the service is online!" +msgstr "بله، سرویس انلاین است!" + +#: www/test.php:105 +msgid "No, the service is offline!" +msgstr "خیر، سرویس افلاین است!" + +#: www/onions.php:55 +msgid "All legitimate" +msgstr "" + +#: www/onions.php:56 www/onions.php:90 +msgid "Last added" +msgstr "آخرین تغییرات" + +#: www/onions.php:57 +msgid "Offline > 1 week" +msgstr "غیر فعال > 1 هفته" + +#: www/onions.php:119 www/onions.php:128 +msgid "Onion link list" +msgstr "پیوندهای پیازی" + +#: www/onions.php:130 www/onions.php:449 www/onions.php:466 +msgid "Error: No database connection!" +msgstr "خطا: مشکل در اتصال به دیتابیس" + +#: www/onions.php:137 +msgid "Onion address:" +msgstr "" + +#: www/onions.php:142 www/admin.php:181 +msgid "Description:" +msgstr "توضیح:" + +#: www/onions.php:157 www/onions.php:177 www/admin.php:197 +msgid "Category:" +msgstr "دسته بندی:" + +#: www/onions.php:167 www/admin.php:78 www/admin.php:218 +msgid "Update" +msgstr "بروزرسانی" + +#: www/onions.php:172 +msgid "Search:" +msgstr "جستجو:" + +#: www/onions.php:172 +msgid "Search term" +msgstr "جستجوی اصطلاح" + +#: www/onions.php:182 www/onions.php:490 www/onions.php:492 +msgid "All" +msgstr "همه" + +#: www/onions.php:195 +msgid "Hide locked" +msgstr "پنهان کردن قفل" + +#: www/onions.php:196 +msgid "Search" +msgstr "جستجو" + +#: www/onions.php:198 +msgid "Format:" +msgstr "فرمت:" + +#: www/onions.php:201 +msgid "Special categories:" +msgstr "دسته بندی های خاص:" + +#: www/onions.php:212 www/onions.php:214 +msgid "Phishing Clones" +msgstr "کلاهبرداری فیشینگ" + +#: www/onions.php:216 +msgid "Removed/Child porn" +msgstr "حذف/ پورن کودکان" + +#: www/onions.php:218 +msgid "Pending approval" +msgstr "در انتضار تایید" + +#: www/onions.php:219 +msgid "Rejected" +msgstr "رد شد" + +#: www/onions.php:223 +msgid "Categories:" +msgstr "دسته بندی ها:" + +#: www/onions.php:235 +msgid "A valid address looks like this" +msgstr "آدرس معتبری به این شکل است" + +#: www/onions.php:238 www/onions.php:251 +msgid "Error: Wrong captcha" +msgstr "" + +#: www/onions.php:244 +msgid "Error: Captcha expired" +msgstr "" + +#: www/onions.php:272 www/admin.php:94 +msgid "Successfully added onion address!" +msgstr "آدرس پیازی با موفقیت اضافه شد!" + +#: www/onions.php:274 +msgid "Sorry, editing this onion address has been locked!" +msgstr "متاسفیم، این آدرس قفل شده است نمیتوانید ویرایش کنید!" + +#: www/onions.php:278 www/admin.php:98 +msgid "Successfully updated description!" +msgstr "توضیحات با موفقیت بروزرسانی شد !" + +#: www/onions.php:282 www/admin.php:102 +msgid "Successfully updated category!" +msgstr "دسته بندی به موفقیت بروزرسانی شد!" + +#: www/onions.php:284 www/admin.php:104 +msgid "Thanks, but I already knew this address!" +msgstr "با تشکر ، اما این آدرس موجود است !" + +#: www/onions.php:310 +#, php-format +msgid "Searching for \"%1$s\", %2$d results found:" +msgstr "جستجو برای \"%1$s\", %2$d نتیجه یافت شد:" + +#: www/onions.php:357 www/onions.php:422 +msgid "Onion link" +msgstr "پیوند پیازی" + +#: www/onions.php:357 +msgid "Description" +msgstr "توضیح" + +#: www/onions.php:357 +msgid "Last tested" +msgstr "آخرین آزمون" + +#: www/onions.php:357 www/onions.php:422 +msgid "Last seen" +msgstr "آخرین بازدید" + +#: www/onions.php:357 +msgid "Added at" +msgstr "اضافه شده در" + +#: www/onions.php:357 +msgid "Actions" +msgstr "اقدامات" + +#: www/onions.php:369 www/onions.php:374 www/onions.php:389 www/onions.php:394 +#: www/onions.php:431 +msgid "Never" +msgstr "هرگز" + +#: www/onions.php:406 +msgid "Edit" +msgstr "ویرایش" + +#: www/onions.php:422 +msgid "Clone of" +msgstr "کلون از" + +#: www/onions.php:438 +msgid "Unknown" +msgstr "ناشناخته" + +#: www/onions.php:488 +msgid "Pages:" +msgstr "صفحه:" + +#: www/admin.php:17 www/admin.php:24 +msgid "Admin interface" +msgstr "رابط مدیریت" + +#: www/admin.php:32 +msgid "Password:" +msgstr "رمز عبور:" + +#: www/admin.php:33 +msgid "Login" +msgstr "ورود" + +#: www/admin.php:36 +msgid "Wrong Password!" +msgstr "رمز اشتباه !" + +#: www/admin.php:52 www/admin.php:208 +msgid "Remove" +msgstr "حذف" + +#: www/admin.php:54 +msgid "Successfully removed onion address!" +msgstr "آدرس پیازی با موفقیت حذف شد!" + +#: www/admin.php:55 www/admin.php:209 +msgid "Lock" +msgstr "قفل" + +#: www/admin.php:57 +msgid "Successfully locked onion address!" +msgstr "آدرس پیازی با موفقیت قفل شد !" + +#: www/admin.php:58 www/admin.php:213 +msgid "Re-add" +msgstr "دوباره-اضافه" + +#: www/admin.php:60 +msgid "Successfully re-added onion address!" +msgstr "آدرس پیازی با موفقیت دوباره اضافه شد !" + +#: www/admin.php:61 www/admin.php:214 +msgid "Unlock" +msgstr "قفل باز" + +#: www/admin.php:63 +msgid "Successfully unlocked onion address!" +msgstr "قفل آدرس پیازی با موفقیت باز شد !" + +#: www/admin.php:64 www/admin.php:210 +msgid "Promote" +msgstr "تبلیغ" + +#: www/admin.php:74 +#, php-format +msgid "Successfully promoted onion address until %1$s!" +msgstr "آدرس پیازی با موفقیت تبلیغ شد تا %1$s!" + +#: www/admin.php:75 www/admin.php:215 +msgid "Un-promote" +msgstr "لغو-تبلیغ" + +#: www/admin.php:77 +msgid "Successfully un-promoted onion address!" +msgstr "تبلیغ آدرس با موفقیت لغو شد!" + +#: www/admin.php:106 www/admin.php:211 +msgid "Phishing" +msgstr "فیشینگ" + +#: www/admin.php:120 +msgid "Successfully added Phishing clone!" +msgstr "کلون فیشینگ با موفقیت اضافه شد !" + +#: www/admin.php:122 +msgid "Not added Phishing clone! Phishing and original have the same address." +msgstr "کلون فیشینگ اضافه نشد! فیشینگ و اصلی آدرس یکسانی دارند." + +#: www/admin.php:125 www/admin.php:216 +msgid "No phishing" +msgstr "بدون فیشینگ" + +#: www/admin.php:130 +msgid "Successfully removed Phishing clone!" +msgstr "کلون فیشینگ با موفقیت حذف شد !" + +#: www/admin.php:131 www/admin.php:220 +msgid "Reject" +msgstr "رد کردن" + +#: www/admin.php:133 +msgid "Successfully rejected onion address" +msgstr "آدرس پیازی با موفقیت رد شد" + +#: www/admin.php:134 www/admin.php:221 +msgid "Approve" +msgstr "تایید" + +#: www/admin.php:136 +msgid "Successfully approved onion address" +msgstr "آدرس پیازی با موفقیت تایید شد" + +#: www/admin.php:138 +msgid "No action taken!" +msgstr "اقدامی انجام نشده است!" + +#: www/admin.php:151 +msgid "Switch view mode" +msgstr "نغییر حالت مشاهده" + +#: www/admin.php:171 +msgid "Clone of:" +msgstr "کلون از:" + +#: www/admin.php:176 +msgid "Bitcoins:" +msgstr "بیت کوین:" + +#: common_config.php:93 +msgid "Language:" +msgstr "زبان:" + +#: setup.php:25 +msgid "The pdo_mysql extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:28 +msgid "The pcre extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:31 +msgid "The json extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:34 +msgid "The curl extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:37 +msgid "The date extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:106 +msgid "Status: OK" +msgstr "وضعیت: خوب" diff --git a/locale/ja_JP/LC_MESSAGES/onion-link-list.mo b/locale/ja_JP/LC_MESSAGES/onion-link-list.mo new file mode 100644 index 0000000000000000000000000000000000000000..f6d0d5f9e99bb3abf804482474347fdca3715391 GIT binary patch literal 6132 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 literal 0 HcmV?d00001 diff --git a/locale/ja_JP/LC_MESSAGES/onion-link-list.po b/locale/ja_JP/LC_MESSAGES/onion-link-list.po new file mode 100644 index 0000000..c9d4e65 --- /dev/null +++ b/locale/ja_JP/LC_MESSAGES/onion-link-list.po @@ -0,0 +1,375 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-12-26 13:53+0100\n" +"PO-Revision-Date: 2022-12-26 14:53+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: ja_JP\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 3.1.1\n" + +#: www/test.php:7 www/test.php:15 +msgid "Online-Test" +msgstr "オンラインテスト" + +#: www/test.php:17 +msgid "Here an onion address can be tested, for whether it is online or not." +msgstr "ここで、Onionアドレスが「オンライン」かどうかを試すことができます。" + +#: www/test.php:20 www/admin.php:157 +msgid "Onion link:" +msgstr "Onion リンク:" + +#: www/test.php:27 www/onions.php:379 www/onions.php:408 +msgid "Test" +msgstr "テスト" + +#: www/test.php:36 www/admin.php:12 www/sitemap.php:7 cron/update.php:7 +#: cron/phishing_tests.php:8 helpers/tmp5.php:6 helpers/tmp6.php:6 +#: helpers/fill_unknown_phishing.php:6 helpers/tmp3.php:6 helpers/tmp7.php:6 +#: helpers/tmp4.php:6 helpers/tmp2.php:6 helpers/tmp.php:6 setup.php:48 +#: setup.php:51 +msgid "No database connection!" +msgstr "データベースの接続がありません!" + +#: www/test.php:39 www/onions.php:234 www/admin.php:48 www/admin.php:108 +msgid "Invalid onion address!" +msgstr "Onionアドレスが不正です!" + +#: www/test.php:54 +#, php-format +msgid "Warning, this is a known phishing clone. The original site is located at %s." +msgstr "警告。これは知られた詐欺サイト(クローン)です。オリジナルは %s です。" + +#: www/test.php:59 +msgid "Warning: This is a known scam!" +msgstr "" + +#: www/test.php:64 www/test.php:99 +msgid "Yes, the service is online!" +msgstr "対象はオンラインです!" + +#: www/test.php:105 +msgid "No, the service is offline!" +msgstr "対象はオフラインです!" + +#: www/onions.php:55 +msgid "All legitimate" +msgstr "" + +#: www/onions.php:56 www/onions.php:90 +msgid "Last added" +msgstr "最近の追加" + +#: www/onions.php:57 +msgid "Offline > 1 week" +msgstr "1週間以上オフライン" + +#: www/onions.php:119 www/onions.php:128 +msgid "Onion link list" +msgstr "Onionリンクの一覧" + +#: www/onions.php:130 www/onions.php:449 www/onions.php:466 +msgid "Error: No database connection!" +msgstr "エラー:データベースの接続がありません!" + +#: www/onions.php:137 +msgid "Onion address:" +msgstr "Onion アドレス:" + +#: www/onions.php:142 www/admin.php:181 +msgid "Description:" +msgstr "詳細:" + +#: www/onions.php:157 www/onions.php:177 www/admin.php:197 +msgid "Category:" +msgstr "カテゴリ:" + +#: www/onions.php:167 www/admin.php:78 www/admin.php:218 +msgid "Update" +msgstr "更新" + +#: www/onions.php:172 +msgid "Search:" +msgstr "検索:" + +#: www/onions.php:172 +msgid "Search term" +msgstr "検索キーワード" + +#: www/onions.php:182 www/onions.php:490 www/onions.php:492 +msgid "All" +msgstr "全て" + +#: www/onions.php:195 +msgid "Hide locked" +msgstr "" + +#: www/onions.php:196 +msgid "Search" +msgstr "検索" + +#: www/onions.php:198 +msgid "Format:" +msgstr "形式:" + +#: www/onions.php:201 +msgid "Special categories:" +msgstr "特別な分類:" + +#: www/onions.php:212 www/onions.php:214 +msgid "Phishing Clones" +msgstr "詐欺サイト(クローン)" + +#: www/onions.php:216 +msgid "Removed/Child porn" +msgstr "削除済" + +#: www/onions.php:218 +msgid "Pending approval" +msgstr "" + +#: www/onions.php:219 +msgid "Rejected" +msgstr "" + +#: www/onions.php:223 +msgid "Categories:" +msgstr "カテゴリ:" + +#: www/onions.php:235 +msgid "A valid address looks like this" +msgstr "正しいアドレスはこんな感じのはず:" + +#: www/onions.php:238 www/onions.php:251 +msgid "Error: Wrong captcha" +msgstr "" + +#: www/onions.php:244 +msgid "Error: Captcha expired" +msgstr "" + +#: www/onions.php:272 www/admin.php:94 +msgid "Successfully added onion address!" +msgstr "Onionアドレスを追加しました!" + +#: www/onions.php:274 +msgid "Sorry, editing this onion address has been locked!" +msgstr "ごめん、このOnionアドレスはロックされていて編集できない!" + +#: www/onions.php:278 www/admin.php:98 +msgid "Successfully updated description!" +msgstr "説明の更新に成功しました!" + +#: www/onions.php:282 www/admin.php:102 +msgid "Successfully updated category!" +msgstr "カテゴリの変更に成功しました!" + +#: www/onions.php:284 www/admin.php:104 +msgid "Thanks, but I already knew this address!" +msgstr "ありがとう、でも、このアドレスはもう知ってるんだ!" + +#: www/onions.php:310 +#, php-format +msgid "Searching for \"%1$s\", %2$d results found:" +msgstr "検索キーワード \"%1$s\" - %2$d 件見つかりました:" + +#: www/onions.php:357 www/onions.php:422 +msgid "Onion link" +msgstr "Onion リンク" + +#: www/onions.php:357 +msgid "Description" +msgstr "説明" + +#: www/onions.php:357 +msgid "Last tested" +msgstr "接続試験日" + +#: www/onions.php:357 www/onions.php:422 +msgid "Last seen" +msgstr "最後に見た日" + +#: www/onions.php:357 +msgid "Added at" +msgstr "追加された日" + +#: www/onions.php:357 +msgid "Actions" +msgstr "操作" + +#: www/onions.php:369 www/onions.php:374 www/onions.php:389 www/onions.php:394 +#: www/onions.php:431 +msgid "Never" +msgstr "なし" + +#: www/onions.php:406 +msgid "Edit" +msgstr "編集" + +#: www/onions.php:422 +msgid "Clone of" +msgstr "クローン元(オリジナル)" + +#: www/onions.php:438 +msgid "Unknown" +msgstr "不明" + +#: www/onions.php:488 +msgid "Pages:" +msgstr "ページ:" + +#: www/admin.php:17 www/admin.php:24 +msgid "Admin interface" +msgstr "管理者の操作画面" + +#: www/admin.php:32 +msgid "Password:" +msgstr "パスワード:" + +#: www/admin.php:33 +msgid "Login" +msgstr "ログイン" + +#: www/admin.php:36 +msgid "Wrong Password!" +msgstr "パスワードが違います!" + +#: www/admin.php:52 www/admin.php:208 +msgid "Remove" +msgstr "" + +#: www/admin.php:54 +msgid "Successfully removed onion address!" +msgstr "Onionアドレスを削除しました!" + +#: www/admin.php:55 www/admin.php:209 +msgid "Lock" +msgstr "施錠" + +#: www/admin.php:57 +msgid "Successfully locked onion address!" +msgstr "Onionアドレスをロックしました!" + +#: www/admin.php:58 www/admin.php:213 +msgid "Re-add" +msgstr "再追加" + +#: www/admin.php:60 +msgid "Successfully re-added onion address!" +msgstr "Onionアドレスを再度追加しました!" + +#: www/admin.php:61 www/admin.php:214 +msgid "Unlock" +msgstr "解錠" + +#: www/admin.php:63 +msgid "Successfully unlocked onion address!" +msgstr "Onionアドレスのロックを解除しました!" + +#: www/admin.php:64 www/admin.php:210 +msgid "Promote" +msgstr "宣伝" + +#: www/admin.php:74 +#, php-format +msgid "Successfully promoted onion address until %1$s!" +msgstr "Onionアドレスを次の日まで宣伝します: %1$s!" + +#: www/admin.php:75 www/admin.php:215 +msgid "Un-promote" +msgstr "宣伝解除" + +#: www/admin.php:77 +msgid "Successfully un-promoted onion address!" +msgstr "Onionアドレスの宣伝をやめました!" + +#: www/admin.php:106 www/admin.php:211 +msgid "Phishing" +msgstr "詐欺サイト" + +#: www/admin.php:120 +msgid "Successfully added Phishing clone!" +msgstr "詐欺サイトを追加しました!" + +#: www/admin.php:122 +msgid "Not added Phishing clone! Phishing and original have the same address." +msgstr "追加できませんでした。詐欺サイトとオリジナルのアドレスが同一です。" + +#: www/admin.php:125 www/admin.php:216 +msgid "No phishing" +msgstr "詐欺サイトではない" + +#: www/admin.php:130 +msgid "Successfully removed Phishing clone!" +msgstr "詐欺サイトを削除しました!" + +#: www/admin.php:131 www/admin.php:220 +msgid "Reject" +msgstr "" + +#: www/admin.php:133 +msgid "Successfully rejected onion address" +msgstr "" + +#: www/admin.php:134 www/admin.php:221 +msgid "Approve" +msgstr "" + +#: www/admin.php:136 +msgid "Successfully approved onion address" +msgstr "" + +#: www/admin.php:138 +msgid "No action taken!" +msgstr "何も操作していません!" + +#: www/admin.php:151 +msgid "Switch view mode" +msgstr "" + +#: www/admin.php:171 +msgid "Clone of:" +msgstr "クローン元(オリジナル):" + +#: www/admin.php:176 +msgid "Bitcoins:" +msgstr "ビットコイン:" + +#: common_config.php:93 +msgid "Language:" +msgstr "言語:" + +#: setup.php:25 +msgid "The pdo_mysql extension of PHP is required. Please install it first." +msgstr "PHPのpdo_mysql拡張が必要です。先にインストールしてください。" + +#: setup.php:28 +msgid "The pcre extension of PHP is required. Please install it first." +msgstr "PHPのpcre拡張が必要です。先にインストールしてください。" + +#: setup.php:31 +msgid "The json extension of PHP is required. Please install it first." +msgstr "PHPのjson拡張が必要です。先にインストールしてください。" + +#: setup.php:34 +msgid "The curl extension of PHP is required. Please install it first." +msgstr "PHPのcurl拡張が必要です。先にインストールしてください。" + +#: setup.php:37 +msgid "The date extension of PHP is required. Please install it first." +msgstr "PHPのdate拡張が必要です。先にインストールしてください。" + +#: setup.php:106 +msgid "Status: OK" +msgstr "状態: 良好" diff --git a/locale/onion-link-list.pot b/locale/onion-link-list.pot new file mode 100644 index 0000000..c6188b6 --- /dev/null +++ b/locale/onion-link-list.pot @@ -0,0 +1,375 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-12-26 15:11+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: www/test.php:7 www/test.php:15 +msgid "Online-Test" +msgstr "" + +#: www/test.php:17 +msgid "Here an onion address can be tested, for whether it is online or not." +msgstr "" + +#: www/test.php:20 www/admin.php:157 +msgid "Onion link:" +msgstr "" + +#: www/test.php:27 www/onions.php:379 www/onions.php:408 +msgid "Test" +msgstr "" + +#: www/test.php:36 www/admin.php:12 www/sitemap.php:7 cron/update.php:7 +#: cron/phishing_tests.php:8 helpers/tmp5.php:6 helpers/tmp6.php:6 +#: helpers/fill_unknown_phishing.php:6 helpers/tmp3.php:6 helpers/tmp7.php:6 +#: helpers/tmp4.php:6 helpers/tmp2.php:6 helpers/tmp.php:6 setup.php:48 +#: setup.php:51 +msgid "No database connection!" +msgstr "" + +#: www/test.php:39 www/onions.php:234 www/admin.php:48 www/admin.php:108 +msgid "Invalid onion address!" +msgstr "" + +#: www/test.php:54 +#, php-format +msgid "" +"Warning, this is a known phishing clone. The original site is located at %s." +msgstr "" + +#: www/test.php:59 +msgid "Warning: This is a known scam!" +msgstr "" + +#: www/test.php:64 www/test.php:99 +msgid "Yes, the service is online!" +msgstr "" + +#: www/test.php:105 +msgid "No, the service is offline!" +msgstr "" + +#: www/onions.php:55 +msgid "All legitimate" +msgstr "" + +#: www/onions.php:56 www/onions.php:90 +msgid "Last added" +msgstr "" + +#: www/onions.php:57 +msgid "Offline > 1 week" +msgstr "" + +#: www/onions.php:119 www/onions.php:128 +msgid "Onion link list" +msgstr "" + +#: www/onions.php:130 www/onions.php:449 www/onions.php:466 +msgid "Error: No database connection!" +msgstr "" + +#: www/onions.php:137 +msgid "Onion address:" +msgstr "" + +#: www/onions.php:142 www/admin.php:181 +msgid "Description:" +msgstr "" + +#: www/onions.php:157 www/onions.php:177 www/admin.php:197 +msgid "Category:" +msgstr "" + +#: www/onions.php:167 www/admin.php:78 www/admin.php:218 +msgid "Update" +msgstr "" + +#: www/onions.php:172 +msgid "Search:" +msgstr "" + +#: www/onions.php:172 +msgid "Search term" +msgstr "" + +#: www/onions.php:182 www/onions.php:490 www/onions.php:492 +msgid "All" +msgstr "" + +#: www/onions.php:195 +msgid "Hide locked" +msgstr "" + +#: www/onions.php:196 +msgid "Search" +msgstr "" + +#: www/onions.php:198 +msgid "Format:" +msgstr "" + +#: www/onions.php:201 +msgid "Special categories:" +msgstr "" + +#: www/onions.php:212 www/onions.php:214 +msgid "Phishing Clones" +msgstr "" + +#: www/onions.php:216 +msgid "Removed/Child porn" +msgstr "" + +#: www/onions.php:218 +msgid "Pending approval" +msgstr "" + +#: www/onions.php:219 +msgid "Rejected" +msgstr "" + +#: www/onions.php:223 +msgid "Categories:" +msgstr "" + +#: www/onions.php:235 +msgid "A valid address looks like this" +msgstr "" + +#: www/onions.php:238 www/onions.php:251 +msgid "Error: Wrong captcha" +msgstr "" + +#: www/onions.php:244 +msgid "Error: Captcha expired" +msgstr "" + +#: www/onions.php:272 www/admin.php:94 +msgid "Successfully added onion address!" +msgstr "" + +#: www/onions.php:274 +msgid "Sorry, editing this onion address has been locked!" +msgstr "" + +#: www/onions.php:278 www/admin.php:98 +msgid "Successfully updated description!" +msgstr "" + +#: www/onions.php:282 www/admin.php:102 +msgid "Successfully updated category!" +msgstr "" + +#: www/onions.php:284 www/admin.php:104 +msgid "Thanks, but I already knew this address!" +msgstr "" + +#: www/onions.php:310 +#, php-format +msgid "Searching for \"%1$s\", %2$d results found:" +msgstr "" + +#: www/onions.php:357 www/onions.php:422 +msgid "Onion link" +msgstr "" + +#: www/onions.php:357 +msgid "Description" +msgstr "" + +#: www/onions.php:357 +msgid "Last tested" +msgstr "" + +#: www/onions.php:357 www/onions.php:422 +msgid "Last seen" +msgstr "" + +#: www/onions.php:357 +msgid "Added at" +msgstr "" + +#: www/onions.php:357 +msgid "Actions" +msgstr "" + +#: www/onions.php:369 www/onions.php:374 www/onions.php:389 www/onions.php:394 +#: www/onions.php:431 +msgid "Never" +msgstr "" + +#: www/onions.php:406 +msgid "Edit" +msgstr "" + +#: www/onions.php:422 +msgid "Clone of" +msgstr "" + +#: www/onions.php:438 +msgid "Unknown" +msgstr "" + +#: www/onions.php:488 +msgid "Pages:" +msgstr "" + +#: www/admin.php:17 www/admin.php:24 +msgid "Admin interface" +msgstr "" + +#: www/admin.php:32 +msgid "Password:" +msgstr "" + +#: www/admin.php:33 +msgid "Login" +msgstr "" + +#: www/admin.php:36 +msgid "Wrong Password!" +msgstr "" + +#: www/admin.php:52 www/admin.php:208 +msgid "Remove" +msgstr "" + +#: www/admin.php:54 +msgid "Successfully removed onion address!" +msgstr "" + +#: www/admin.php:55 www/admin.php:209 +msgid "Lock" +msgstr "" + +#: www/admin.php:57 +msgid "Successfully locked onion address!" +msgstr "" + +#: www/admin.php:58 www/admin.php:213 +msgid "Re-add" +msgstr "" + +#: www/admin.php:60 +msgid "Successfully re-added onion address!" +msgstr "" + +#: www/admin.php:61 www/admin.php:214 +msgid "Unlock" +msgstr "" + +#: www/admin.php:63 +msgid "Successfully unlocked onion address!" +msgstr "" + +#: www/admin.php:64 www/admin.php:210 +msgid "Promote" +msgstr "" + +#: www/admin.php:74 +#, php-format +msgid "Successfully promoted onion address until %1$s!" +msgstr "" + +#: www/admin.php:75 www/admin.php:215 +msgid "Un-promote" +msgstr "" + +#: www/admin.php:77 +msgid "Successfully un-promoted onion address!" +msgstr "" + +#: www/admin.php:106 www/admin.php:211 +msgid "Phishing" +msgstr "" + +#: www/admin.php:120 +msgid "Successfully added Phishing clone!" +msgstr "" + +#: www/admin.php:122 +msgid "Not added Phishing clone! Phishing and original have the same address." +msgstr "" + +#: www/admin.php:125 www/admin.php:216 +msgid "No phishing" +msgstr "" + +#: www/admin.php:130 +msgid "Successfully removed Phishing clone!" +msgstr "" + +#: www/admin.php:131 www/admin.php:220 +msgid "Reject" +msgstr "" + +#: www/admin.php:133 +msgid "Successfully rejected onion address" +msgstr "" + +#: www/admin.php:134 www/admin.php:221 +msgid "Approve" +msgstr "" + +#: www/admin.php:136 +msgid "Successfully approved onion address" +msgstr "" + +#: www/admin.php:138 +msgid "No action taken!" +msgstr "" + +#: www/admin.php:151 +msgid "Switch view mode" +msgstr "" + +#: www/admin.php:171 +msgid "Clone of:" +msgstr "" + +#: www/admin.php:176 +msgid "Bitcoins:" +msgstr "" + +#: common_config.php:93 +msgid "Language:" +msgstr "" + +#: setup.php:25 +msgid "The pdo_mysql extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:28 +msgid "The pcre extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:31 +msgid "The json extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:34 +msgid "The curl extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:37 +msgid "The date extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:106 +msgid "Status: OK" +msgstr "" diff --git a/locale/pt_PT/LC_MESSAGES/onion-link-list.mo b/locale/pt_PT/LC_MESSAGES/onion-link-list.mo new file mode 100644 index 0000000000000000000000000000000000000000..b113ac0a4da997adda5fd8163da7e1f421215054 GIT binary patch literal 5160 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, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-12-26 13:53+0100\n" +"PO-Revision-Date: 2022-12-26 14:14+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.1.1\n" + +#: www/test.php:7 www/test.php:15 +msgid "Online-Test" +msgstr "Online-Teste" + +#: www/test.php:17 +msgid "Here an onion address can be tested, for whether it is online or not." +msgstr "Aqui um endereço onion pode ser testado, para saber se está online ou não." + +#: www/test.php:20 www/admin.php:157 +msgid "Onion link:" +msgstr "" + +#: www/test.php:27 www/onions.php:379 www/onions.php:408 +msgid "Test" +msgstr "Testar" + +#: www/test.php:36 www/admin.php:12 www/sitemap.php:7 cron/update.php:7 +#: cron/phishing_tests.php:8 helpers/tmp5.php:6 helpers/tmp6.php:6 +#: helpers/fill_unknown_phishing.php:6 helpers/tmp3.php:6 helpers/tmp7.php:6 +#: helpers/tmp4.php:6 helpers/tmp2.php:6 helpers/tmp.php:6 setup.php:48 +#: setup.php:51 +msgid "No database connection!" +msgstr "Sem conexão com a database!" + +#: www/test.php:39 www/onions.php:234 www/admin.php:48 www/admin.php:108 +msgid "Invalid onion address!" +msgstr "Endereço onion inválido!" + +#: www/test.php:54 +#, php-format +msgid "Warning, this is a known phishing clone. The original site is located at %s." +msgstr "Aviso, este é um clone para phishing conhecido. O site original está localizado em %s." + +#: www/test.php:59 +msgid "Warning: This is a known scam!" +msgstr "" + +#: www/test.php:64 www/test.php:99 +msgid "Yes, the service is online!" +msgstr "Sim, o serviço está online!" + +#: www/test.php:105 +msgid "No, the service is offline!" +msgstr "Não, o serviço está offline!" + +#: www/onions.php:55 +msgid "All legitimate" +msgstr "" + +#: www/onions.php:56 www/onions.php:90 +msgid "Last added" +msgstr "Últimos adicionados" + +#: www/onions.php:57 +msgid "Offline > 1 week" +msgstr "Offline > 1 semana" + +#: www/onions.php:119 www/onions.php:128 +msgid "Onion link list" +msgstr "Lista de links onion" + +#: www/onions.php:130 www/onions.php:449 www/onions.php:466 +msgid "Error: No database connection!" +msgstr "Erro: Sem conexão com a database!" + +#: www/onions.php:137 +msgid "Onion address:" +msgstr "Endereço onion:" + +#: www/onions.php:142 www/admin.php:181 +msgid "Description:" +msgstr "Descrição:" + +#: www/onions.php:157 www/onions.php:177 www/admin.php:197 +msgid "Category:" +msgstr "Categoria:" + +#: www/onions.php:167 www/admin.php:78 www/admin.php:218 +msgid "Update" +msgstr "Atualizar" + +#: www/onions.php:172 +msgid "Search:" +msgstr "Pesquisar:" + +#: www/onions.php:172 +msgid "Search term" +msgstr "Termo de pesquisa" + +#: www/onions.php:182 www/onions.php:490 www/onions.php:492 +msgid "All" +msgstr "Todos" + +#: www/onions.php:195 +msgid "Hide locked" +msgstr "Esconder bloqueado" + +#: www/onions.php:196 +msgid "Search" +msgstr "Pesquisar" + +#: www/onions.php:198 +msgid "Format:" +msgstr "Formato:" + +#: www/onions.php:201 +msgid "Special categories:" +msgstr "Categorias especiais:" + +#: www/onions.php:212 www/onions.php:214 +msgid "Phishing Clones" +msgstr "Clone com phishing" + +#: www/onions.php:216 +msgid "Removed/Child porn" +msgstr "Removidos/Pornografia infantil" + +#: www/onions.php:218 +msgid "Pending approval" +msgstr "Aprovação pendente" + +#: www/onions.php:219 +msgid "Rejected" +msgstr "" + +#: www/onions.php:223 +msgid "Categories:" +msgstr "Categorias:" + +#: www/onions.php:235 +msgid "A valid address looks like this" +msgstr "Um endereço válido é parecido com este" + +#: www/onions.php:238 www/onions.php:251 +msgid "Error: Wrong captcha" +msgstr "" + +#: www/onions.php:244 +msgid "Error: Captcha expired" +msgstr "" + +#: www/onions.php:272 www/admin.php:94 +msgid "Successfully added onion address!" +msgstr "Endereço onion adicionado com sucesso!" + +#: www/onions.php:274 +msgid "Sorry, editing this onion address has been locked!" +msgstr "Desculpe, a edição deste endereço onion foi bloqueada!" + +#: www/onions.php:278 www/admin.php:98 +msgid "Successfully updated description!" +msgstr "Descrição atualizada com sucesso!" + +#: www/onions.php:282 www/admin.php:102 +msgid "Successfully updated category!" +msgstr "Categoria atualizada com sucesso!" + +#: www/onions.php:284 www/admin.php:104 +msgid "Thanks, but I already knew this address!" +msgstr "Obrigado, mas já conhecia este endereço!" + +#: www/onions.php:310 +#, php-format +msgid "Searching for \"%1$s\", %2$d results found:" +msgstr "Procurando por \"%1$s\", %2$d resultados encontrados:" + +#: www/onions.php:357 www/onions.php:422 +msgid "Onion link" +msgstr "Onion link" + +#: www/onions.php:357 +msgid "Description" +msgstr "Descrição" + +#: www/onions.php:357 +msgid "Last tested" +msgstr "Testado pela última vez" + +#: www/onions.php:357 www/onions.php:422 +msgid "Last seen" +msgstr "Visto pela última vez" + +#: www/onions.php:357 +msgid "Added at" +msgstr "Adicionado em" + +#: www/onions.php:357 +msgid "Actions" +msgstr "Ações" + +#: www/onions.php:369 www/onions.php:374 www/onions.php:389 www/onions.php:394 +#: www/onions.php:431 +msgid "Never" +msgstr "Nunca" + +#: www/onions.php:406 +msgid "Edit" +msgstr "Editar" + +#: www/onions.php:422 +msgid "Clone of" +msgstr "Clone de" + +#: www/onions.php:438 +msgid "Unknown" +msgstr "Desconhecido" + +#: www/onions.php:488 +msgid "Pages:" +msgstr "Páginas:" + +#: www/admin.php:17 www/admin.php:24 +msgid "Admin interface" +msgstr "Interface do administrador" + +#: www/admin.php:32 +msgid "Password:" +msgstr "Senha:" + +#: www/admin.php:33 +msgid "Login" +msgstr "Login" + +#: www/admin.php:36 +msgid "Wrong Password!" +msgstr "Senha errada!" + +#: www/admin.php:52 www/admin.php:208 +msgid "Remove" +msgstr "Remover" + +#: www/admin.php:54 +msgid "Successfully removed onion address!" +msgstr "Endereço onion removido com sucesso!" + +#: www/admin.php:55 www/admin.php:209 +msgid "Lock" +msgstr "Bloquear" + +#: www/admin.php:57 +msgid "Successfully locked onion address!" +msgstr "Endereço onion bloqueado com sucesso!" + +#: www/admin.php:58 www/admin.php:213 +msgid "Re-add" +msgstr "Re-adicionar" + +#: www/admin.php:60 +msgid "Successfully re-added onion address!" +msgstr "Endereço onion adicionado com sucesso!" + +#: www/admin.php:61 www/admin.php:214 +msgid "Unlock" +msgstr "Desbloquear" + +#: www/admin.php:63 +msgid "Successfully unlocked onion address!" +msgstr "Endereço onion desbloqueado com sucesso!" + +#: www/admin.php:64 www/admin.php:210 +msgid "Promote" +msgstr "Promover" + +#: www/admin.php:74 +#, php-format +msgid "Successfully promoted onion address until %1$s!" +msgstr "" + +#: www/admin.php:75 www/admin.php:215 +msgid "Un-promote" +msgstr "Despromover" + +#: www/admin.php:77 +msgid "Successfully un-promoted onion address!" +msgstr "Endereço onion despromovido com sucesso!" + +#: www/admin.php:106 www/admin.php:211 +msgid "Phishing" +msgstr "Phishing" + +#: www/admin.php:120 +msgid "Successfully added Phishing clone!" +msgstr "Clone com phishing adicionado com sucesso!" + +#: www/admin.php:122 +msgid "Not added Phishing clone! Phishing and original have the same address." +msgstr "Clone com phishing não adicionado! Phishing e original têm o mesmo endereço." + +#: www/admin.php:125 www/admin.php:216 +msgid "No phishing" +msgstr "Sem phishing" + +#: www/admin.php:130 +msgid "Successfully removed Phishing clone!" +msgstr "Clone para phishing removido com sucesso!" + +#: www/admin.php:131 www/admin.php:220 +msgid "Reject" +msgstr "Rejeitar" + +#: www/admin.php:133 +msgid "Successfully rejected onion address" +msgstr "Endereço onion rejeitado com sucesso" + +#: www/admin.php:134 www/admin.php:221 +msgid "Approve" +msgstr "Aprovar" + +#: www/admin.php:136 +msgid "Successfully approved onion address" +msgstr "Endereço onion aprovado com sucesso" + +#: www/admin.php:138 +msgid "No action taken!" +msgstr "Nenhuma ação tomada!" + +#: www/admin.php:151 +msgid "Switch view mode" +msgstr "Alternar modo de visualização" + +#: www/admin.php:171 +msgid "Clone of:" +msgstr "Clone de:" + +#: www/admin.php:176 +msgid "Bitcoins:" +msgstr "Bitcoins:" + +#: common_config.php:93 +msgid "Language:" +msgstr "Linguagem:" + +#: setup.php:25 +msgid "The pdo_mysql extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:28 +msgid "The pcre extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:31 +msgid "The json extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:34 +msgid "The curl extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:37 +msgid "The date extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:106 +msgid "Status: OK" +msgstr "" diff --git a/locale/tr_TR/LC_MESSAGES/onion-link-list.mo b/locale/tr_TR/LC_MESSAGES/onion-link-list.mo new file mode 100644 index 0000000000000000000000000000000000000000..290ae93c7b8e16462fc91567d750d355fa61aabb GIT binary patch literal 4911 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 literal 0 HcmV?d00001 diff --git a/locale/tr_TR/LC_MESSAGES/onion-link-list.po b/locale/tr_TR/LC_MESSAGES/onion-link-list.po new file mode 100644 index 0000000..6abe4e3 --- /dev/null +++ b/locale/tr_TR/LC_MESSAGES/onion-link-list.po @@ -0,0 +1,375 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-12-26 13:53+0100\n" +"PO-Revision-Date: 2022-12-26 14:30+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: tr_TR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.1.1\n" + +#: www/test.php:7 www/test.php:15 +msgid "Online-Test" +msgstr "Çevrimiçi-Deneme" + +#: www/test.php:17 +msgid "Here an onion address can be tested, for whether it is online or not." +msgstr "Burada çevrimiçi veya değil farketmeksizin bir Onion-Adresi denenebilir." + +#: www/test.php:20 www/admin.php:157 +msgid "Onion link:" +msgstr "" + +#: www/test.php:27 www/onions.php:379 www/onions.php:408 +msgid "Test" +msgstr "Dene" + +#: www/test.php:36 www/admin.php:12 www/sitemap.php:7 cron/update.php:7 +#: cron/phishing_tests.php:8 helpers/tmp5.php:6 helpers/tmp6.php:6 +#: helpers/fill_unknown_phishing.php:6 helpers/tmp3.php:6 helpers/tmp7.php:6 +#: helpers/tmp4.php:6 helpers/tmp2.php:6 helpers/tmp.php:6 setup.php:48 +#: setup.php:51 +msgid "No database connection!" +msgstr "Veritabanı bağlantısı yok!" + +#: www/test.php:39 www/onions.php:234 www/admin.php:48 www/admin.php:108 +msgid "Invalid onion address!" +msgstr "Geçersiz onion-Adresi!" + +#: www/test.php:54 +#, php-format +msgid "Warning, this is a known phishing clone. The original site is located at %s." +msgstr "Uyarı, bu bilinen bir phishing klonu. Gerçek site %s adresinde bulunuyor." + +#: www/test.php:59 +msgid "Warning: This is a known scam!" +msgstr "" + +#: www/test.php:64 www/test.php:99 +msgid "Yes, the service is online!" +msgstr "Evet, bu servis çevrimiçi!" + +#: www/test.php:105 +msgid "No, the service is offline!" +msgstr "Hayır, bu servis çevrimdışı!" + +#: www/onions.php:55 +msgid "All legitimate" +msgstr "" + +#: www/onions.php:56 www/onions.php:90 +msgid "Last added" +msgstr "Son eklenen" + +#: www/onions.php:57 +msgid "Offline > 1 week" +msgstr "Çevrimdışı > 1 hafta" + +#: www/onions.php:119 www/onions.php:128 +msgid "Onion link list" +msgstr "Onion bağlantı listesi" + +#: www/onions.php:130 www/onions.php:449 www/onions.php:466 +msgid "Error: No database connection!" +msgstr "Hata: Veritabanı bağlantısı yok!" + +#: www/onions.php:137 +msgid "Onion address:" +msgstr "Onion-Adresi:" + +#: www/onions.php:142 www/admin.php:181 +msgid "Description:" +msgstr "Açıklama:" + +#: www/onions.php:157 www/onions.php:177 www/admin.php:197 +msgid "Category:" +msgstr "Kategori:" + +#: www/onions.php:167 www/admin.php:78 www/admin.php:218 +msgid "Update" +msgstr "Güncelle" + +#: www/onions.php:172 +msgid "Search:" +msgstr "Ara:" + +#: www/onions.php:172 +msgid "Search term" +msgstr "Arama terimi" + +#: www/onions.php:182 www/onions.php:490 www/onions.php:492 +msgid "All" +msgstr "Tümü" + +#: www/onions.php:195 +msgid "Hide locked" +msgstr "Kilitlileri gizle" + +#: www/onions.php:196 +msgid "Search" +msgstr "Ara" + +#: www/onions.php:198 +msgid "Format:" +msgstr "Biçim:" + +#: www/onions.php:201 +msgid "Special categories:" +msgstr "Özel kategoriler:" + +#: www/onions.php:212 www/onions.php:214 +msgid "Phishing Clones" +msgstr "Phishing Klonları" + +#: www/onions.php:216 +msgid "Removed/Child porn" +msgstr "Kaldırıldı/Çocuk pornografisi" + +#: www/onions.php:218 +msgid "Pending approval" +msgstr "" + +#: www/onions.php:219 +msgid "Rejected" +msgstr "" + +#: www/onions.php:223 +msgid "Categories:" +msgstr "Kategoriler:" + +#: www/onions.php:235 +msgid "A valid address looks like this" +msgstr "Geçerli bir adres şöyle gözükür:" + +#: www/onions.php:238 www/onions.php:251 +msgid "Error: Wrong captcha" +msgstr "" + +#: www/onions.php:244 +msgid "Error: Captcha expired" +msgstr "" + +#: www/onions.php:272 www/admin.php:94 +msgid "Successfully added onion address!" +msgstr "Onion-Adresi başarıyla eklendi!" + +#: www/onions.php:274 +msgid "Sorry, editing this onion address has been locked!" +msgstr "Üzgünüm, bu onion-Adresini düzenlemek kilitli!" + +#: www/onions.php:278 www/admin.php:98 +msgid "Successfully updated description!" +msgstr "Açıklama başarılı bir şekilde güncellendi!" + +#: www/onions.php:282 www/admin.php:102 +msgid "Successfully updated category!" +msgstr "Kategori başarılı bir şekilde güncellendi!" + +#: www/onions.php:284 www/admin.php:104 +msgid "Thanks, but I already knew this address!" +msgstr "Teşekkürler, ama bu adresi zaten biliyorum!" + +#: www/onions.php:310 +#, php-format +msgid "Searching for \"%1$s\", %2$d results found:" +msgstr "\"%1$s\" için aranıyor, %2$d sonuç bulundu:" + +#: www/onions.php:357 www/onions.php:422 +msgid "Onion link" +msgstr "Onion bağlantısı" + +#: www/onions.php:357 +msgid "Description" +msgstr "Açıklama" + +#: www/onions.php:357 +msgid "Last tested" +msgstr "Son denenme" + +#: www/onions.php:357 www/onions.php:422 +msgid "Last seen" +msgstr "Son görülme" + +#: www/onions.php:357 +msgid "Added at" +msgstr "Şu tarihte eklendi" + +#: www/onions.php:357 +msgid "Actions" +msgstr "Eylemler" + +#: www/onions.php:369 www/onions.php:374 www/onions.php:389 www/onions.php:394 +#: www/onions.php:431 +msgid "Never" +msgstr "Asla" + +#: www/onions.php:406 +msgid "Edit" +msgstr "Düzenle" + +#: www/onions.php:422 +msgid "Clone of" +msgstr "Klonu" + +#: www/onions.php:438 +msgid "Unknown" +msgstr "Bilinmiyor" + +#: www/onions.php:488 +msgid "Pages:" +msgstr "Sayfalar:" + +#: www/admin.php:17 www/admin.php:24 +msgid "Admin interface" +msgstr "Yönetici arayüzü" + +#: www/admin.php:32 +msgid "Password:" +msgstr "Şifre:" + +#: www/admin.php:33 +msgid "Login" +msgstr "Giriş" + +#: www/admin.php:36 +msgid "Wrong Password!" +msgstr "Yanlış şifre!" + +#: www/admin.php:52 www/admin.php:208 +msgid "Remove" +msgstr "Kaldır" + +#: www/admin.php:54 +msgid "Successfully removed onion address!" +msgstr "Onion-Adresi başarıyla kaldırıldı!" + +#: www/admin.php:55 www/admin.php:209 +msgid "Lock" +msgstr "Kilitle" + +#: www/admin.php:57 +msgid "Successfully locked onion address!" +msgstr "Onion-Adresi başarılı bir şekilde kilitlendi!" + +#: www/admin.php:58 www/admin.php:213 +msgid "Re-add" +msgstr "Yeniden-ekle" + +#: www/admin.php:60 +msgid "Successfully re-added onion address!" +msgstr "Onion-Adresi başarılı bir şekilde okundu!" + +#: www/admin.php:61 www/admin.php:214 +msgid "Unlock" +msgstr "Kilidi aç" + +#: www/admin.php:63 +msgid "Successfully unlocked onion address!" +msgstr "Onion-Adresi'nin kilidi başarılı bir şekilde açıldı!" + +#: www/admin.php:64 www/admin.php:210 +msgid "Promote" +msgstr "Destekle" + +#: www/admin.php:74 +#, php-format +msgid "Successfully promoted onion address until %1$s!" +msgstr "%1$s tarihine kadar onion-Adresi başarılı bir şekilde desteklendi!" + +#: www/admin.php:75 www/admin.php:215 +msgid "Un-promote" +msgstr "Destekleme" + +#: www/admin.php:77 +msgid "Successfully un-promoted onion address!" +msgstr "Onion-Adresine destek başarılı bir şekilde bırakıldı!" + +#: www/admin.php:106 www/admin.php:211 +msgid "Phishing" +msgstr "Phishing" + +#: www/admin.php:120 +msgid "Successfully added Phishing clone!" +msgstr "Phishing klonu eklendi!" + +#: www/admin.php:122 +msgid "Not added Phishing clone! Phishing and original have the same address." +msgstr "Phishing klonu eklenemedi! Phishing ve orijinal aynı adrese sahip." + +#: www/admin.php:125 www/admin.php:216 +msgid "No phishing" +msgstr "Phishing değil" + +#: www/admin.php:130 +msgid "Successfully removed Phishing clone!" +msgstr "Phishing klonu başarılı bir şekilde kaldırıldı!" + +#: www/admin.php:131 www/admin.php:220 +msgid "Reject" +msgstr "" + +#: www/admin.php:133 +msgid "Successfully rejected onion address" +msgstr "" + +#: www/admin.php:134 www/admin.php:221 +msgid "Approve" +msgstr "" + +#: www/admin.php:136 +msgid "Successfully approved onion address" +msgstr "" + +#: www/admin.php:138 +msgid "No action taken!" +msgstr "İşlem yapılmadı!" + +#: www/admin.php:151 +msgid "Switch view mode" +msgstr "" + +#: www/admin.php:171 +msgid "Clone of:" +msgstr "Klonu:" + +#: www/admin.php:176 +msgid "Bitcoins:" +msgstr "Bitcoinler:" + +#: common_config.php:93 +msgid "Language:" +msgstr "Dil:" + +#: setup.php:25 +msgid "The pdo_mysql extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:28 +msgid "The pcre extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:31 +msgid "The json extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:34 +msgid "The curl extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:37 +msgid "The date extension of PHP is required. Please install it first." +msgstr "" + +#: setup.php:106 +msgid "Status: OK" +msgstr "" diff --git a/setup.php b/setup.php index 0e9f315..bc2fb0f 100644 --- a/setup.php +++ b/setup.php @@ -2,7 +2,7 @@ /* * Onion Link List - Setup * -* Copyright (C) 2016-2020 Daniel Winzen +* Copyright (C) 2016-2020 Daniel Winzen * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,21 +17,24 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ +if(!extension_loaded('gettext')){ + die('The gettext extension of PHP is required. Please install it first.'); +} require_once(__DIR__.'/common_config.php'); if(!extension_loaded('pdo_mysql')){ - die($I['pdo_mysqlextrequired']); + die(_('The pdo_mysql extension of PHP is required. Please install it first.')); } if(!extension_loaded('pcre')){ - die($I['pcreextrequired']); + die(_('The pcre extension of PHP is required. Please install it first.')); } if(!extension_loaded('json')){ - die($I['jsonextrequired']); + die(_('The json extension of PHP is required. Please install it first.')); } if(!extension_loaded('curl')){ - die($I['curlextrequired']); + die(_('The curl extension of PHP is required. Please install it first.')); } if(!extension_loaded('date')){ - die($I['dateextrequired']); + die(_('The date extension of PHP is required. Please install it first.')); } try{ $db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME . ';charset=utf8mb4', DBUSER, DBPASS, [PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>PERSISTENT]); @@ -42,10 +45,10 @@ try{ if(false!==$db->exec('CREATE DATABASE ' . DBNAME)){ $db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME . ';charset=utf8mb4', DBUSER, DBPASS, [PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>PERSISTENT]); }else{ - die($I['nodb']); + die(_('No database connection!')); } }catch(PDOException $e){ - die($I['nodb']); + die(_('No database connection!')); } } if(!@$db->query('SELECT * FROM ' . PREFIX . 'settings LIMIT 1;')){ @@ -100,4 +103,4 @@ if(!@$db->query('SELECT * FROM ' . PREFIX . 'settings LIMIT 1;')){ $stmt=$db->prepare('UPDATE ' . PREFIX . "settings SET value=? WHERE setting='version';"); $stmt->execute([DBVERSION]); } -echo "$I[statusok]\n"; +echo _('Status: OK').PHP_EOL; diff --git a/update-translation.sh b/update-translation.sh new file mode 100755 index 0000000..d0d50b6 --- /dev/null +++ b/update-translation.sh @@ -0,0 +1,3 @@ +#!/bin/bash +xgettext -o locale/onion-link-list.pot `find . -iname '*.php'` +for translation in `find locale -iname '*.po'`; do msgmerge -U "$translation" locale/onion-link-list.pot; msgfmt -o ${translation:0:-2}mo "$translation"; done diff --git a/www/admin.php b/www/admin.php index 1da906d..cc3d453 100644 --- a/www/admin.php +++ b/www/admin.php @@ -1,5 +1,6 @@ PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>PERSISTENT]); }catch(PDOException $e){ http_response_code(500); - die($I['nodb']); + die(_('No database connection!')); } asort($categories); ?> - -<?php echo $I['admintitle']; ?> + +<?php echo _('Admin interface'); ?> - +
    -

    +

    "; echo ""; - echo "

    "; - echo ""; + echo "

    "; + echo ""; echo ''; if(isset($_POST['pass'])){ - echo "

    $I[wrongpass]

    "; + echo "

    "._('Wrong Password!')."

    "; } }else{ $msg = ''; @@ -44,23 +45,23 @@ if(!isset($_POST['pass']) || $_POST['pass']!==ADMINPASS){ $addrs = is_array($_POST['addr']) ? $_POST['addr'] : [$_POST['addr']]; foreach ($addrs as $addr_single) { if ( ! preg_match( '~(^(https?://)?([a-z2-7]{55}d)(\.onion(/.*)?)?$)~i', trim( $addr_single ), $addr ) ) { - $msg .= "

    $I[invalonion]

    "; + $msg .= "

    "._('Invalid onion address!')."

    "; } else { $addr = strtolower( $addr[ 3 ] ); $md5 = md5( $addr, true ); - if ( $_POST[ 'action' ] === $I[ 'remove' ] ) { //remove address from public display + if ( $_POST[ 'action' ] === _('Remove') ) { //remove address from public display $db->prepare( 'UPDATE ' . PREFIX . "onions SET address='', locked=1, approved=-1, timechanged=? WHERE md5sum=?;" )->execute( [ time(), $md5 ] ); - $msg .= "

    $I[succremove]

    "; - } elseif ( $_POST[ 'action' ] === $I[ 'lock' ] ) { //lock editing + $msg .= "

    "._('Successfully removed onion address!')."

    "; + } elseif ( $_POST[ 'action' ] === _('Lock') ) { //lock editing $db->prepare( 'UPDATE ' . PREFIX . 'onions SET locked=1, approved=1, timechanged=? WHERE md5sum=?;' )->execute( [ time(), $md5 ] ); - $msg .= "

    role=\"alert\"$I[succlock]

    "; - } elseif ( $_POST[ 'action' ] === $I[ 'readd' ] ) { //add onion back, if previously removed + $msg .= "

    role=\"alert\">"._('Successfully locked onion address!')."

    "; + } elseif ( $_POST[ 'action' ] === _('Re-add') ) { //add onion back, if previously removed $db->prepare( 'UPDATE ' . PREFIX . 'onions SET address=?, locked=1, approved=1, timechanged=? WHERE md5sum=?;' )->execute( [ $addr, time(), $md5 ] ); - $msg .= "

    $I[succreadd]

    "; - } elseif ( $_POST[ 'action' ] === $I[ 'unlock' ] ) { //unlock editing + $msg .= "

    "._('Successfully re-added onion address!')."

    "; + } elseif ( $_POST[ 'action' ] === _('Unlock') ) { //unlock editing $db->prepare( 'UPDATE ' . PREFIX . 'onions SET locked=0, approved=1, timechanged=? WHERE md5sum=?;' )->execute( [ time(), $md5 ] ); - $msg .= "

    $I[succunlock]

    "; - } elseif ( $_POST[ 'action' ] === $I[ 'promote' ] ) { //promote link for payed time + $msg .= "

    "._('Successfully unlocked onion address!')."

    "; + } elseif ( $_POST[ 'action' ] === _('Promote') ) { //promote link for paid time $stmt = $db->prepare( 'SELECT special FROM ' . PREFIX . 'onions WHERE md5sum=?;' ); $stmt->execute( [ $md5 ] ); $specialtime = $stmt->fetch( PDO::FETCH_NUM ); @@ -70,11 +71,11 @@ if(!isset($_POST['pass']) || $_POST['pass']!==ADMINPASS){ $time = $specialtime[ 0 ] + ( ( $_POST[ 'btc' ] / PROMOTEPRICE ) * PROMOTETIME ); } $db->prepare( 'UPDATE ' . PREFIX . 'onions SET special=?, locked=1, approved=1, timechanged=? WHERE md5sum=?;' )->execute( [ $time, time(), $md5 ] ); - $msg .= sprintf( "

    $I[succpromote]

    ", date( 'Y-m-d H:i', $time ) ); - } elseif ( $_POST[ 'action' ] === $I[ 'unpromote' ] ) { //remove promoted status + $msg .= "

    ".sprintf(_('Successfully promoted onion address until %1$s!'), date( 'Y-m-d H:i', $time ))."

    "; + } elseif ( $_POST[ 'action' ] === _('Un-promote') ) { //remove promoted status $db->prepare( 'UPDATE ' . PREFIX . 'onions SET special=0, timechanged=? WHERE md5sum=?;' )->execute( [ time(), $md5 ] ); - $msg .= "

    $I[succunpromote]

    "; - } elseif ( $_POST[ 'action' ] === $I[ 'update' ] ) { //update description + $msg .= "

    "._('Successfully un-promoted onion address!')."

    "; + } elseif ( $_POST[ 'action' ] === _('Update') ) { //update description $stmt = $db->prepare( 'SELECT * FROM ' . PREFIX . 'onions WHERE md5sum=?;' ); $stmt->execute( [ $md5 ] ); if ( $category === count( $categories ) ) { @@ -90,21 +91,21 @@ if(!isset($_POST['pass']) || $_POST['pass']!==ADMINPASS){ if ( ! $stmt->fetch( PDO::FETCH_ASSOC ) ) { //not yet there, add it $stmt = $db->prepare( 'INSERT INTO ' . PREFIX . 'onions (address, description, md5sum, category, timeadded, locked, approved, timechanged) VALUES (?, ?, ?, ?, ?, 1, 1, ?);' ); $stmt->execute( [ $addr, $desc, $md5, $category, time(), time() ] ); - $msg .= "

    $I[succadd]

    "; + $msg .= "

    "._('Successfully added onion address!')."

    "; } elseif ( $desc != '' ) { //update description+category $stmt = $db->prepare( 'UPDATE ' . PREFIX . 'onions SET description=?, category=?, locked=1, approved=1, timechanged=? WHERE md5sum=?;' ); $stmt->execute( [ $desc, $category, time(), $md5 ] ); - $msg .= "

    $I[succupddesc]

    "; + $msg .= "

    "._('Successfully updated description!')."

    "; } elseif ( $category != 0 ) { //only update category $stmt = $db->prepare( 'UPDATE ' . PREFIX . 'onions SET category=?, locked=1, approved=1, timechanged=? WHERE md5sum=?;' ); $stmt->execute( [ $category, time(), $md5 ] ); - $msg .= "

    $I[succupdcat]!

    "; + $msg .= "

    "._('Successfully updated category!')."

    "; } else { //no description or category change and already known - $msg .= "

    $I[alreadyknown]

    "; + $msg .= "

    "._('Thanks, but I already knew this address!')."

    "; } - } elseif ( $_POST[ 'action' ] === $I[ 'phishing' ] ) {//mark as phishing clone + } elseif ( $_POST[ 'action' ] === _('Phishing') ) {//mark as phishing clone if ( $_POST[ 'original' ] !== '' && ! preg_match( '~(^(https?://)?([a-z2-7]{55}d)(\.onion(/.*)?)?$)~i', $_POST[ 'original' ], $orig ) ) { - $msg .= "

    $I[invalonion]

    "; + $msg .= "

    "._('Invalid onion address!')."

    "; } else { if ( isset( $orig[ 3 ] ) ) { $orig = strtolower( $orig[ 3 ] ); @@ -116,30 +117,30 @@ if(!isset($_POST['pass']) || $_POST['pass']!==ADMINPASS){ $stmt->execute( [ $addr, $orig ] ); $stmt = $db->prepare( 'UPDATE ' . PREFIX . 'onions SET locked=1, approved=1, timechanged=? WHERE address=?;' ); $stmt->execute( [ time(), $addr ] ); - $msg .= "

    $I[succaddphish]

    "; + $msg .= "

    "._('Successfully added Phishing clone!')."

    "; } else { - $msg .= "

    $I[samephish]

    "; + $msg .= "

    "._('Not added Phishing clone! Phishing and original have the same address.')."

    "; } } - } elseif ( $_POST[ 'action' ] === $I[ 'unphishing' ] ) { //remove phishing clone status + } elseif ( $_POST[ 'action' ] === _('No phishing') ) { //remove phishing clone status $stmt = $db->prepare( 'DELETE FROM ' . PREFIX . 'phishing WHERE onion_id=(SELECT id FROM ' . PREFIX . 'onions WHERE address=?);' ); $stmt->execute( [ $addr ] ); $stmt = $db->prepare( 'UPDATE ' . PREFIX . 'onions SET locked=1, approved=1, timechanged=? WHERE address=?;' ); $stmt->execute( [ time(), $addr ] ); - $msg .= "

    $I[succrmphish]

    "; - } elseif ( $_POST[ 'action' ] === $I[ 'reject' ] ) { //lock editing + $msg .= "

    "._('Successfully removed Phishing clone!')."

    "; + } elseif ( $_POST[ 'action' ] === _('Reject') ) { //lock editing $db->prepare( 'UPDATE ' . PREFIX . 'onions SET approved=-1, timechanged=? WHERE md5sum=?;' )->execute( [ time(), $md5 ] ); - $msg .= "

    $I[succreject]

    "; - } elseif ( $_POST[ 'action' ] === $I[ 'approve' ] ) { //lock editing + $msg .= "

    "._('Successfully rejected onion address')."

    "; + } elseif ( $_POST[ 'action' ] === _('Approve') ) { //lock editing $db->prepare( 'UPDATE ' . PREFIX . 'onions SET approved=1, timechanged=? WHERE md5sum=?;' )->execute( [ time(), $md5 ] ); - $msg .= "

    $I[succapprove]

    "; + $msg .= "

    "._('Successfully approved onion address')."

    "; } else { //no specific button was pressed - $msg .= "

    $I[noaction]

    "; + $msg .= "

    "._('No action taken!')."

    "; } } } } - $view_mode = isset($_POST['view_mode']) ? $_POST['view_mode'] : 'single'; + $view_mode = $_POST[ 'view_mode' ] ?? 'single'; if(isset($_POST['switch_view_mode'])){ $view_mode = $view_mode === 'single' ? 'multi' : 'single'; } @@ -147,13 +148,13 @@ if(!isset($_POST['pass']) || $_POST['pass']!==ADMINPASS){ echo ""; echo ""; echo ""; - echo "
    "; + echo "
    "; echo "
    "; echo ""; echo ""; echo ""; if($view_mode === 'single') { - echo "

    '; - echo "

    '; - echo "


    '; - echo "

    '; echo ''; echo '
    '; - echo "
    "; - echo "
    "; - echo "
    "; - echo "
    "; + echo "
    "; + echo "
    "; + echo "
    "; + echo "
    "; echo '
    '; - echo "
    "; - echo "
    "; - echo "
    "; - echo "
    "; + echo "
    "; + echo "
    "; + echo "
    "; + echo "
    "; echo '
    '; - echo "
    "; + echo "
    "; if(REQUIRE_APPROVAL) { - echo "
    "; - echo "
    "; + echo "
    "; + echo "
    "; } echo '
    '; echo '

    '; diff --git a/www/onions.php b/www/onions.php index e55087c..4983513 100644 --- a/www/onions.php +++ b/www/onions.php @@ -2,7 +2,7 @@ /* * Onion Link List - Main listing script * -* Copyright (C) 2016-2020 Daniel Winzen +* Copyright (C) 2016-2020 Daniel Winzen * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -39,8 +39,9 @@ if(!isset($_REQUEST['format'])){ send_html(); } -function send_html(){ - global $I, $categories, $db, $language; +function send_html(): void +{ + global $categories, $db, $language, $dir; $numrows = 0; $style = '.row{display:flex;flex-wrap:wrap}.headerrow{font-weight:bold}.col{display:flex;flex:1;padding:3px 3px;flex-direction:column}'; $style .= '.red{color:red}.green{color:green}.up .col:nth-child(0n+3),.up .col:nth-child(0n+4){background-color:#aaff88}.down .col:nth-child(0n+3),.down .col:nth-child(0n+4){background-color:#ff4444}'; @@ -51,9 +52,9 @@ function send_html(){ asort($categories); //sql for special categories $special=[ - $I['all_legitimate']=>"address!='' AND category!=15 AND id NOT IN (SELECT onion_id FROM " . PREFIX . 'phishing) AND timediff<604800', - $I['lastadded']=>"address!='' AND id NOT IN (SELECT onion_id FROM " . PREFIX . 'phishing)', - $I['offline']=>"address!='' AND id NOT IN (SELECT onion_id FROM " . PREFIX . 'phishing) AND timediff>604800' + _('All legitimate')=>"address!='' AND category!=15 AND id NOT IN (SELECT onion_id FROM " . PREFIX . 'phishing) AND timediff<604800', + _('Last added')=>"address!='' AND id NOT IN (SELECT onion_id FROM " . PREFIX . 'phishing)', + _('Offline > 1 week')=>"address!='' AND id NOT IN (SELECT onion_id FROM " . PREFIX . 'phishing) AND timediff>604800' ]; $canonical_query = []; if(isset($_REQUEST['cat'])) { @@ -62,9 +63,6 @@ function send_html(){ if(isset($_REQUEST['pg'])) { $canonical_query['pg'] = $_REQUEST['pg']; } - if(!empty($_REQUEST['lang'])) { - $canonical_query['lang'] = $_REQUEST['lang']; - } if(!isset($_REQUEST['pg'])){ $_REQUEST['pg']=1; }else{ @@ -89,7 +87,7 @@ function send_html(){ $cat=count($categories); if($db instanceof PDO) { foreach ( $special as $name => $query ) { - if ( $name === $I[ 'lastadded' ] ) { + if ( $name === _('Last added') ) { $category_count[ $cat ] = PER_PAGE; } else { $category_count[ $cat ] = $db->query( 'SELECT COUNT(*) FROM ' . PREFIX . "onions WHERE $admin_approval $query;" )->fetch( PDO::FETCH_NUM )[ 0 ]; @@ -117,31 +115,31 @@ function send_html(){ http_response_code( 404 ); } } - echo ''; - echo "$I[title]"; + echo ''; + echo ""._('Onion link list').""; echo ''; echo ''; echo ''; echo ''; echo ''; - echo ''; + echo ''; echo ''; echo '
    '; - echo "

    $I[title]

    "; + echo "

    "._('Onion link list')."

    "; if(!isset($db)){ - send_error("$I[error]: $I[nodb]"); + send_error(_('Error: No database connection!')); } echo '

    I\'m not responsible for any content of websites linked here. 99% of darkweb sites selling anything are scams. Be careful and use your brain. Every week I get 2-5 E-Mails from people that were desperate to make money and fell for scammers, don\'t be one of them!

    '; //update onions description form echo "
    "; echo ""; echo ""; - echo "

    '; - echo "

    '; - echo "

    '; send_captcha(); - echo "
    "; + echo "
    "; //search from echo "
    "; echo ""; echo ""; - echo "

    '; - echo "

    "; - echo "
    "; + echo ">"._('Hide locked')."

    "; + echo "
    "; echo ''; - echo ""; + echo ""; print_langs(); //List special categories - echo "
    • $I[specialcat]:
    • "; + echo "'; //List normal categories - echo "
      • $I[categories]:
      • "; + echo "
        • "._('Categories:')."
        • "; foreach($categories as $cat=>$name){ if($category==$cat){ echo "
        • $name ($category_count[$cat])
        • "; @@ -233,24 +231,24 @@ function send_html(){ echo '
        '; if($_SERVER['REQUEST_METHOD']==='POST' && !empty($_REQUEST['addr'])){ if(!preg_match('~(^(https?://)?([a-z0-9]*\.)?([a-z2-7]{55}d)(\.onion(/.*)?)?$)~i', trim($_REQUEST['addr']), $addr)){ - echo "

        $I[invalonion]

        "; - echo "

        $I[valid]: http://tt3j2x4k5ycaa5zt.onion

        "; + echo "

        "._('Invalid onion address!')."

        "; + echo "

        "._('A valid address looks like this')." http://tt3j2x4k5ycaa5zt.onion

        "; }else{ if(!isset($_REQUEST['challenge'])){ - send_error('Error: Wrong Captcha'); + send_error(_('Error: Wrong captcha')); } $stmt=$db->prepare('SELECT code FROM ' . PREFIX . 'captcha WHERE id=?;'); $stmt->execute([$_REQUEST['challenge']]); $stmt->bindColumn(1, $code); if(!$stmt->fetch(PDO::FETCH_BOUND)){ - send_error('Error: Captcha expired'); + send_error(_('Error: Captcha expired')); } $time=time(); $stmt=$db->prepare('DELETE FROM ' . PREFIX . 'captcha WHERE id=? OR timeexecute([$_REQUEST['challenge'], $time-3600]); if($_REQUEST['captcha']!==$code){ if(strrev($_REQUEST['captcha'])!==$code){ - send_error('Error: Wrong captcha'); + send_error(_('Error: Wrong captcha')); } } $addr=strtolower($addr[4]); @@ -271,19 +269,19 @@ function send_html(){ if(!$stmt->fetch(PDO::FETCH_BOUND)){//new link, add to database $stmt=$db->prepare('INSERT INTO ' . PREFIX . 'onions (address, description, md5sum, category, timeadded, timechanged) VALUES (?, ?, ?, ?, ?, ?);'); $stmt->execute([$addr, $desc, $md5, $category, time(), time()]); - echo "

        $I[succadd]

        "; + echo "

        "._('Successfully added onion address!')."

        "; }elseif($locked==1){//locked, not editable - echo "

        $I[faillocked]

        "; + echo "

        "._('Sorry, editing this onion address has been locked!')."

        "; }elseif($desc!==''){//update description $stmt=$db->prepare('UPDATE ' . PREFIX . 'onions SET description=?, category=?, timechanged=? WHERE md5sum=?;'); $stmt->execute([$desc, $category, time(), $md5]); - echo "

        $I[succupddesc]

        "; + echo "

        "._('Successfully updated description!')."

        "; }elseif($category!=0){//update category only $stmt=$db->prepare('UPDATE ' . PREFIX . 'onions SET category=?, timechanged=? WHERE md5sum=?;'); $stmt->execute([$category, time(), $md5]); - echo "

        $I[succupdcat]

        "; + echo "

        "._('Successfully updated category!')."

        "; }else{//nothing changed and already known - echo "

        $I[alreadyknown]

        "; + echo "

        "._('Thanks, but I already knew this address!')."

        "; } } } @@ -309,7 +307,7 @@ function send_html(){ $stmt->execute([$category, $query, $query]); } $table=get_table($stmt, $numrows); - printf("

        $I[searchresult]

        ", trim(str_replace(['http://', 'https://', '.onion', '/'], '', htmlspecialchars($_REQUEST['q']))), $numrows); + printf("

        "._('Searching for "%1$s", %2$d results found:')."

        ", trim(str_replace(['http://', 'https://', '.onion', '/'], '', htmlspecialchars($_REQUEST['q']))), $numrows); echo $table; }elseif($category>=count($categories)+count($special)){//show phishing clones print_phishing_table(); @@ -349,14 +347,14 @@ function send_html(){ } function get_table(PDOStatement $stmt, int &$numrows = 0, bool $promoted = false) : string { - global $I, $db, $language; + global $db, $language; $time=time(); $admin_approval = ''; if(REQUIRE_APPROVAL){ $admin_approval = PREFIX . 'onions.approved = 1 AND'; } ob_start(); - echo "
        $I[link]
        $I[description]
        $I[lasttested]
        $I[lastup]
        $I[timeadded]
        $I[actions]
        "; + echo "
        "._('Onion link')."
        "._('Description')."
        "._('Last tested')."
        "._('Last seen')."
        "._('Added at')."
        "._('Actions')."
        "; if($promoted){//print promoted links at the top $time=time(); $promo=$db->prepare('SELECT address, lasttest, lastup, timeadded, description, locked, special FROM ' . PREFIX . "onions WHERE $admin_approval special>? AND address!='' AND id NOT IN (SELECT onion_id FROM " . PREFIX . 'phishing) AND timediff<604800 ORDER BY address;'); @@ -368,17 +366,17 @@ function get_table(PDOStatement $stmt, int &$numrows = 0, bool $promoted = false $class='down'; } if($link['lastup']==0){ - $lastup=$I['never']; + $lastup=_('Never'); }else{ $lastup=date('Y-m-d H:i:s', $link['lastup']); } if($link['lasttest']==0){ - $lasttest=$I['never']; + $lasttest=_('Never'); }else{ $lasttest=date('Y-m-d H:i:s', $link['lasttest']); } $timeadded=date('Y-m-d H:i:s', $link['timeadded']); - echo "
        $link[description]
        $lasttest
        $lastup
        $timeadded
        "; + echo "
        $link[description]
        $lasttest
        $lastup
        $timeadded
        "; } } while($link=$stmt->fetch(PDO::FETCH_ASSOC)){ @@ -388,12 +386,12 @@ function get_table(PDOStatement $stmt, int &$numrows = 0, bool $promoted = false $class='down'; } if($link['lastup']==0){ - $lastup=$I['never']; + $lastup=_('Never'); }else{ $lastup=date('Y-m-d H:i:s', $link['lastup']); } if($link['lasttest']==0){ - $lasttest=$I['never']; + $lasttest=_('Never'); $class=''; }else{ $lasttest=date('Y-m-d H:i:s', $link['lasttest']); @@ -405,22 +403,23 @@ function get_table(PDOStatement $stmt, int &$numrows = 0, bool $promoted = false if($link['locked']==1){ $edit='-'; }else{ - $edit="
        "; + $edit="
        "; } - echo "
        $link[description]
        $lasttest
        $lastup
        $timeadded
        $edit
        "; + echo "
        $link[description]
        $lasttest
        $lastup
        $timeadded
        $edit
        "; ++$numrows; } echo '
        '; return ob_get_clean(); } -function print_phishing_table(){ - global $I, $db; +function print_phishing_table(): void +{ + global $db; $admin_approval = ''; if(REQUIRE_APPROVAL){ $admin_approval = 'approved = 1 AND'; } - echo "
        $I[link]
        $I[cloneof]
        $I[lastup]
        "; + echo "
        "._('Onion link')."
        "._('Clone of')."
        "._('Last seen')."
        "; $stmt=$db->query('SELECT address, original, lasttest, lastup FROM ' . PREFIX . 'onions, ' . PREFIX . 'phishing WHERE ' . "$admin_approval " . PREFIX . "onions.id=onion_id AND address!='' AND timediff<604800 ORDER BY address;"); while($link=$stmt->fetch(PDO::FETCH_ASSOC)){ if($link['lastup']===$link['lasttest']){ @@ -429,24 +428,25 @@ function print_phishing_table(){ $class='down'; } if($link['lastup']==0){ - $lastup=$I['never']; + $lastup=_('Never'); }else{ $lastup=date('Y-m-d H:i:s', $link['lastup']); } if($link['original']!==''){ $orig="$link[original].onion"; }else{ - $orig=$I['unknown']; + $orig=_('Unknown'); } echo "
        $link[address].onion
        $orig
        $lastup
        "; } echo '
        '; } -function send_text(){ - global $I, $db; +function send_text(): void +{ + global $db; if(!isset($db)){ - die("$I[error]: $I[nodb]"); + die(_('Error: No database connection!')); } header('Content-Type: text/plain; charset=UTF-8'); $admin_approval = ''; @@ -459,10 +459,11 @@ function send_text(){ } } -function send_json(){ - global $I, $db, $categories; +function send_json(): void +{ + global $db, $categories; if(!isset($db)){ - die("$I[error]: $I[nodb]"); + die(_('Error: No database connection!')); } header('Content-Type: application/json;'); $admin_approval = ''; @@ -482,13 +483,13 @@ function send_json(){ } function get_pagination(int $category, int $pages) : string { - global $I, $language; + global $language; ob_start(); - echo "
        • $I[pages]:
        • "; + echo "
          • "._('Pages:')."
          • "; if($_REQUEST['pg']==0){ - echo "
          • $I[all]
          • "; + echo "
          • "._('All')."
          • "; }else{ - echo "
          • $I[all]
          • "; + echo "
          • "._('All')."
          • "; } for($i=1; $i<=$pages; ++$i){ if($_REQUEST['pg']==$i){ @@ -501,7 +502,8 @@ function get_pagination(int $category, int $pages) : string { return ob_get_clean(); } -function send_captcha(){ +function send_captcha(): void +{ global $db; $difficulty=1; if($difficulty===0 || !extension_loaded('gd')){ @@ -548,6 +550,7 @@ function send_captcha(){ echo "

            "; } -function send_error(string $msg){ +function send_error(string $msg): void +{ die("

            $msg

    "); } diff --git a/www/sitemap.php b/www/sitemap.php index 0a2fee3..169aeee 100644 --- a/www/sitemap.php +++ b/www/sitemap.php @@ -4,7 +4,7 @@ try{ $db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME . ';charset=utf8mb4', DBUSER, DBPASS, [PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>PERSISTENT]); }catch(PDOException $e){ http_response_code(500); - die($I['nodb']); + die(_('No database connection!')); } $links = []; $links []= ['loc' => CANONICAL_URL . '/test.php', 'changefreq' => 'weekly', 'priority' => '0.8']; @@ -15,7 +15,7 @@ $admin_approval = ''; if(REQUIRE_APPROVAL){ $admin_approval = PREFIX . 'onions.approved = 1 AND'; } -foreach ($L as $lang_code => $lang){ +foreach (LANGUAGES as $lang_code => $data){ $links []= ['loc' => CANONICAL_URL . "/test.php?lang=$lang_code", 'changefreq' => 'weekly', 'priority' => '0.4']; $links []= ['loc' => CANONICAL_URL . "/onions.php?lang=$lang_code", 'changefreq' => 'daily', 'priority' => '0.5']; $stmt=$db->prepare('SELECT COUNT(*) FROM ' . PREFIX . "onions WHERE $admin_approval category=? AND address!='' AND id NOT IN (SELECT onion_id FROM " . PREFIX . 'phishing) AND timediff<604800;'); @@ -32,12 +32,12 @@ foreach ($L as $lang_code => $lang){ } } $special=[ - $I['all']=>"address!='' AND category!=15 AND id NOT IN (SELECT onion_id FROM " . PREFIX . 'phishing) AND timediff<604800', - $I['lastadded']=>"address!='' AND id NOT IN (SELECT onion_id FROM " . PREFIX . 'phishing)', - $I['offline']=>"address!='' AND id NOT IN (SELECT onion_id FROM " . PREFIX . 'phishing) AND timediff>604800' + 'all'=>"address!='' AND category!=15 AND id NOT IN (SELECT onion_id FROM " . PREFIX . 'phishing) AND timediff<604800', + 'lastadded'=>"address!='' AND id NOT IN (SELECT onion_id FROM " . PREFIX . 'phishing)', + 'offline'=>"address!='' AND id NOT IN (SELECT onion_id FROM " . PREFIX . 'phishing) AND timediff>604800' ]; $cat=count($categories); - foreach($special as $name=>$query){ + foreach($special as $query){ $links []= ['loc' => CANONICAL_URL . "/onions.php?cat=$cat&lang=$lang_code", 'changefreq' => 'daily', 'priority' => '0.3']; if($cat===count($categories)+1){ $num[0]=PER_PAGE; diff --git a/www/test.php b/www/test.php index f528d9f..314b891 100644 --- a/www/test.php +++ b/www/test.php @@ -1,33 +1,30 @@ '; -echo "$I[testtitle]"; +echo ''; +echo ""._('Online-Test').""; echo ''; echo ''; echo ''; echo ''; -echo ''; -echo ''; +echo ''; +echo ''; echo '
    '; -echo "

    $I[testtitle]

    "; +echo "

    "._('Online-Test')."

    "; print_langs(); -echo "

    $I[testdesc]

    "; +echo "

    "._('Here an onion address can be tested, for whether it is online or not.')."

    "; echo "
    "; echo ""; -echo "



    '; -echo "

    "; +echo "
    "; if(!empty($_REQUEST['addr'])){ if(ob_get_level()>0){ ob_end_flush(); @@ -36,15 +33,15 @@ if(!empty($_REQUEST['addr'])){ $db=new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME . ';charset=utf8mb4', DBUSER, DBPASS, [PDO::ATTR_ERRMODE=>PDO::ERRMODE_WARNING, PDO::ATTR_PERSISTENT=>PERSISTENT]); }catch(PDOException $e){ http_response_code(500); - die($I['nodb']); + die(_('No database connection!')); } if(!preg_match('~(^(https?://)?([a-z0-9]*\.)?([a-z2-7]{55}d)(\.onion(/.*)?)?$)~i', trim($_REQUEST['addr']), $addr)){ - echo "

    $I[invalonion]

    "; + echo "

    "._('Invalid onion address!')."

    "; }else{ $ch=curl_init(); set_curl_options($ch); curl_setopt($ch, CURLOPT_HEADER, true); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_URL, "http://$addr[4].onion/"); curl_setopt($ch, CURLOPT_HTTPHEADER, ["Host: $addr[4].onion", 'User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0', 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language: en-US,en;q=0.5', 'Accept-Encoding: gzip, deflate', 'Connection: keep-alive', 'Upgrade-Insecure-Requests: 1']); @@ -54,17 +51,17 @@ if(!empty($_REQUEST['addr'])){ $phishing=$db->prepare('SELECT original FROM ' . PREFIX . 'phishing, ' . PREFIX . 'onions WHERE address=? AND onion_id=' . PREFIX . 'onions.id;'); $phishing->execute([$addr]); if($orig=$phishing->fetch(PDO::FETCH_NUM)){ - printf("

    $I[testphishing]

    ", "$orig[0].onion"); + printf("

    "._('Warning, this is a known phishing clone. The original site is located at %s.')."

    ", "$orig[0].onion"); } $scam=$db->prepare('SELECT null FROM ' . PREFIX . 'onions WHERE md5sum=? AND category=15 AND locked=1;'); $scam->execute([$md5]); if($scam->fetch(PDO::FETCH_NUM)){ - echo "

    Warning: This is a known scam!

    "; + echo "

    "._('Warning: This is a known scam!')."

    "; } $stmt=$db->prepare('SELECT null FROM ' . PREFIX . 'onions WHERE md5sum=? AND timediff=0 AND lasttest>?;'); $stmt->execute([$md5, time()-60]); if($stmt->fetch(PDO::FETCH_NUM)){ - echo "

    $I[testonline]

    "; + echo "

    "._('Yes, the service is online!')."

    "; }elseif(($content=curl_exec($ch))!==false){ $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $header = substr($content, 0, $header_size); @@ -99,13 +96,13 @@ if(!empty($_REQUEST['addr'])){ } blacklist_scams($addr, $content); } - echo "

    $I[testonline]

    "; + echo "

    "._('Yes, the service is online!')."

    "; }else{ if(isset($db)){ $time=time(); $db->prepare('UPDATE ' . PREFIX . 'onions SET lasttest=?, timediff=lasttest-lastup WHERE md5sum=? AND lasttestexecute([$time, $md5, $time]); } - echo "

    $I[testoffline]

    "; + echo "

    "._('No, the service is offline!')."

    "; } curl_close($ch); }