Migrate translations to gettext
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*~
|
11
README.md
11
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:
|
||||
----------
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Onion Link List - Configuration
|
||||
*
|
||||
* Copyright (C) 2016-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||
* Copyright (C) 2016-2020 Daniel Winzen <daniel@danwin1210.de>
|
||||
*
|
||||
* 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);
|
||||
$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;
|
||||
}
|
||||
}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;
|
||||
}
|
||||
}
|
||||
putenv('LC_ALL='.$locale);
|
||||
setlocale(LC_ALL, $locale);
|
||||
|
||||
function print_langs(){
|
||||
global $I, $L;
|
||||
echo "<ul class=\"list\"><li>$I[language]:</li>";
|
||||
bindtextdomain('onion-link-list', __DIR__.'/locale');
|
||||
bind_textdomain_codeset('onion-link-list', 'UTF-8');
|
||||
textdomain('onion-link-list');
|
||||
|
||||
function print_langs(): void
|
||||
{
|
||||
echo "<ul class=\"list\"><li>"._('Language:')."</li>";
|
||||
$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 "<li><a href=\"$uri\" target='_self' hreflang=\"$code\">$name</a></li>";
|
||||
echo "<li><a href=\"$uri\" target='_self' hreflang=\"$code\">$data[name]</a></li>";
|
||||
}
|
||||
echo '</ul>';
|
||||
}
|
||||
|
||||
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, '');
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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]])){
|
||||
|
@ -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);
|
||||
|
@ -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=?;");
|
||||
|
@ -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=?;");
|
||||
|
@ -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=?;");
|
||||
|
@ -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=?;");
|
||||
|
@ -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=?;");
|
||||
|
@ -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=?;");
|
||||
|
@ -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;");
|
||||
|
77
lang_de.php
77
lang_de.php
@ -1,77 +0,0 @@
|
||||
<?php
|
||||
$T=[
|
||||
'all' => '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',
|
||||
];
|
79
lang_en.php
79
lang_en.php
@ -1,79 +0,0 @@
|
||||
<?php
|
||||
$I=[
|
||||
'all' => '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',
|
||||
];
|
78
lang_fa.php
78
lang_fa.php
@ -1,78 +0,0 @@
|
||||
<?php
|
||||
$T=[
|
||||
'all' => 'همه',
|
||||
'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' => 'وضعیت: خوب',
|
||||
];
|
94
lang_ja.php
94
lang_ja.php
@ -1,94 +0,0 @@
|
||||
<?php
|
||||
/*
|
||||
* Onion Link List - Japanese translation
|
||||
*
|
||||
* Copyright (C) 2017 Anonymous <meow@meow.meow>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
$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' => '状態: 良好',
|
||||
];
|
78
lang_pt.php
78
lang_pt.php
@ -1,78 +0,0 @@
|
||||
<?php
|
||||
$T=[
|
||||
'all' => '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',
|
||||
];
|
70
lang_tr.php
70
lang_tr.php
@ -1,70 +0,0 @@
|
||||
<?php
|
||||
$T=[
|
||||
'all' => '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',
|
||||
];
|
@ -1,45 +0,0 @@
|
||||
<?php
|
||||
$native = 'Deutsch'; // Native lanugae name
|
||||
$english = 'German'; // English language name
|
||||
$code = 'de'; // Language code
|
||||
$I=[];
|
||||
$T=[];
|
||||
ob_start();
|
||||
echo "<?php
|
||||
/*
|
||||
* Onion Link List - $english translation
|
||||
*
|
||||
* Copyright (C) 2016-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
//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);
|
BIN
locale/de_DE/LC_MESSAGES/onion-link-list.mo
Normal file
BIN
locale/de_DE/LC_MESSAGES/onion-link-list.mo
Normal file
Binary file not shown.
391
locale/de_DE/LC_MESSAGES/onion-link-list.po
Normal file
391
locale/de_DE/LC_MESSAGES/onion-link-list.po
Normal file
@ -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 <EMAIL@ADDRESS>, 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"
|
BIN
locale/fa_IR/LC_MESSAGES/onion-link-list.mo
Normal file
BIN
locale/fa_IR/LC_MESSAGES/onion-link-list.mo
Normal file
Binary file not shown.
375
locale/fa_IR/LC_MESSAGES/onion-link-list.po
Normal file
375
locale/fa_IR/LC_MESSAGES/onion-link-list.po
Normal file
@ -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 <EMAIL@ADDRESS>, 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 "وضعیت: خوب"
|
BIN
locale/ja_JP/LC_MESSAGES/onion-link-list.mo
Normal file
BIN
locale/ja_JP/LC_MESSAGES/onion-link-list.mo
Normal file
Binary file not shown.
375
locale/ja_JP/LC_MESSAGES/onion-link-list.po
Normal file
375
locale/ja_JP/LC_MESSAGES/onion-link-list.po
Normal file
@ -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 <EMAIL@ADDRESS>, 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 "状態: 良好"
|
375
locale/onion-link-list.pot
Normal file
375
locale/onion-link-list.pot
Normal file
@ -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 <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\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 ""
|
BIN
locale/pt_PT/LC_MESSAGES/onion-link-list.mo
Normal file
BIN
locale/pt_PT/LC_MESSAGES/onion-link-list.mo
Normal file
Binary file not shown.
375
locale/pt_PT/LC_MESSAGES/onion-link-list.po
Normal file
375
locale/pt_PT/LC_MESSAGES/onion-link-list.po
Normal file
@ -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 <EMAIL@ADDRESS>, 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 ""
|
BIN
locale/tr_TR/LC_MESSAGES/onion-link-list.mo
Normal file
BIN
locale/tr_TR/LC_MESSAGES/onion-link-list.mo
Normal file
Binary file not shown.
375
locale/tr_TR/LC_MESSAGES/onion-link-list.po
Normal file
375
locale/tr_TR/LC_MESSAGES/onion-link-list.po
Normal file
@ -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 <EMAIL@ADDRESS>, 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 ""
|
21
setup.php
21
setup.php
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Onion Link List - Setup
|
||||
*
|
||||
* Copyright (C) 2016-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||
* Copyright (C) 2016-2020 Daniel Winzen <daniel@danwin1210.de>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
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;
|
||||
|
3
update-translation.sh
Executable file
3
update-translation.sh
Executable file
@ -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
|
111
www/admin.php
111
www/admin.php
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
require_once(__DIR__.'/../common_config.php');
|
||||
global $language, $dir;
|
||||
$style = '.row{display:flex;flex-wrap:wrap}.headerrow{font-weight:bold}.col{display:flex;flex:1;padding:3px 3px;flex-direction:column}.button_table{max-width:500px}';
|
||||
$style .= '.list{padding:0;}.list li{display:inline-block;padding:0.35em}#maintable .col{min-width:5em}#maintable .col:first-child{max-width:5em}';
|
||||
$style .= '.red{color:red}.green{color:green}.software-link{text-align:center;font-size:small}#maintable,#maintable .col{border: 1px solid black}';
|
||||
@ -8,19 +9,19 @@ 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!'));
|
||||
}
|
||||
asort($categories);
|
||||
?>
|
||||
<!DOCTYPE html><html lang="<?php echo $language; ?>"><head>
|
||||
<title><?php echo $I['admintitle']; ?></title>
|
||||
<!DOCTYPE html><html lang="<?php echo $language; ?>" dir="<?php echo $dir; ?>"><head>
|
||||
<title><?php echo _('Admin interface'); ?></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name=viewport content="width=device-width, initial-scale=1">
|
||||
<meta name="robots" content="noindex">
|
||||
<link rel="canonical" href="<?php echo CANONICAL_URL . $_SERVER['SCRIPT_NAME']; ?>">
|
||||
<style type="text/css"><?php echo $style; ?></style>
|
||||
<style><?php echo $style; ?></style>
|
||||
</head><body><main>
|
||||
<h1><?php echo $I['admintitle']; ?></h1>
|
||||
<h1><?php echo _('Admin interface'); ?></h1>
|
||||
<?php
|
||||
print_langs();
|
||||
|
||||
@ -28,11 +29,11 @@ print_langs();
|
||||
if(!isset($_POST['pass']) || $_POST['pass']!==ADMINPASS){
|
||||
echo "<form action=\"$_SERVER[SCRIPT_NAME]\" method=\"POST\">";
|
||||
echo "<input type=\"hidden\" name=\"lang\" value=\"$language\">";
|
||||
echo "<p><label>$I[password]: <input type=\"password\" name=\"pass\" size=\"30\" required autocomplete=\"current-password\"></label></p>";
|
||||
echo "<input type=\"submit\" name=\"action\" value=\"$I[login]\">";
|
||||
echo "<p><label>"._('Password:')." <input type=\"password\" name=\"pass\" size=\"30\" required autocomplete=\"current-password\"></label></p>";
|
||||
echo "<input type=\"submit\" name=\"action\" value=\""._('Login')."\">";
|
||||
echo '</form>';
|
||||
if(isset($_POST['pass'])){
|
||||
echo "<p class=\"red\" role=\"alert\">$I[wrongpass]</p>";
|
||||
echo "<p class=\"red\" role=\"alert\">"._('Wrong Password!')."</p>";
|
||||
}
|
||||
}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 .= "<p class=\"red\" role=\"alert\">$I[invalonion]</p>";
|
||||
$msg .= "<p class=\"red\" role=\"alert\">"._('Invalid onion address!')."</p>";
|
||||
} 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 .= "<p class=\"green\" role=\"alert\">$I[succremove]</p>";
|
||||
} elseif ( $_POST[ 'action' ] === $I[ 'lock' ] ) { //lock editing
|
||||
$msg .= "<p class=\"green\" role=\"alert\">"._('Successfully removed onion address!')."</p>";
|
||||
} elseif ( $_POST[ 'action' ] === _('Lock') ) { //lock editing
|
||||
$db->prepare( 'UPDATE ' . PREFIX . 'onions SET locked=1, approved=1, timechanged=? WHERE md5sum=?;' )->execute( [ time(), $md5 ] );
|
||||
$msg .= "<p class=\"green\"> role=\"alert\"$I[succlock]</p>";
|
||||
} elseif ( $_POST[ 'action' ] === $I[ 'readd' ] ) { //add onion back, if previously removed
|
||||
$msg .= "<p class=\"green\"> role=\"alert\">"._('Successfully locked onion address!')."</p>";
|
||||
} 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 .= "<p class=\"green\" role=\"alert\">$I[succreadd]</p>";
|
||||
} elseif ( $_POST[ 'action' ] === $I[ 'unlock' ] ) { //unlock editing
|
||||
$msg .= "<p class=\"green\" role=\"alert\">"._('Successfully re-added onion address!')."</p>";
|
||||
} elseif ( $_POST[ 'action' ] === _('Unlock') ) { //unlock editing
|
||||
$db->prepare( 'UPDATE ' . PREFIX . 'onions SET locked=0, approved=1, timechanged=? WHERE md5sum=?;' )->execute( [ time(), $md5 ] );
|
||||
$msg .= "<p class=\"green\" role=\"alert\">$I[succunlock]</p>";
|
||||
} elseif ( $_POST[ 'action' ] === $I[ 'promote' ] ) { //promote link for payed time
|
||||
$msg .= "<p class=\"green\" role=\"alert\">"._('Successfully unlocked onion address!')."</p>";
|
||||
} 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( "<p class=\"green\" role=\"alert\">$I[succpromote]</p>", date( 'Y-m-d H:i', $time ) );
|
||||
} elseif ( $_POST[ 'action' ] === $I[ 'unpromote' ] ) { //remove promoted status
|
||||
$msg .= "<p class=\"green\" role=\"alert\">".sprintf(_('Successfully promoted onion address until %1$s!'), date( 'Y-m-d H:i', $time ))."</p>";
|
||||
} elseif ( $_POST[ 'action' ] === _('Un-promote') ) { //remove promoted status
|
||||
$db->prepare( 'UPDATE ' . PREFIX . 'onions SET special=0, timechanged=? WHERE md5sum=?;' )->execute( [ time(), $md5 ] );
|
||||
$msg .= "<p class=\"green\" role=\"alert\">$I[succunpromote]</p>";
|
||||
} elseif ( $_POST[ 'action' ] === $I[ 'update' ] ) { //update description
|
||||
$msg .= "<p class=\"green\" role=\"alert\">"._('Successfully un-promoted onion address!')."</p>";
|
||||
} 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 .= "<p class=\"green\" role=\"alert\">$I[succadd]</p>";
|
||||
$msg .= "<p class=\"green\" role=\"alert\">"._('Successfully added onion address!')."</p>";
|
||||
} 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 .= "<p class=\"green\" role=\"alert\">$I[succupddesc]</p>";
|
||||
$msg .= "<p class=\"green\" role=\"alert\">"._('Successfully updated description!')."</p>";
|
||||
} 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 .= "<p class=\"green\" role=\"alert\">$I[succupdcat]!</p>";
|
||||
$msg .= "<p class=\"green\" role=\"alert\">"._('Successfully updated category!')."</p>";
|
||||
} else { //no description or category change and already known
|
||||
$msg .= "<p class=\"green\" role=\"alert\">$I[alreadyknown]</p>";
|
||||
$msg .= "<p class=\"green\" role=\"alert\">"._('Thanks, but I already knew this address!')."</p>";
|
||||
}
|
||||
} 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 .= "<p class=\"red\" role=\"alert\">$I[invalonion]</p>";
|
||||
$msg .= "<p class=\"red\" role=\"alert\">"._('Invalid onion address!')."</p>";
|
||||
} 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 .= "<p class=\"green\" role=\"alert\">$I[succaddphish]</p>";
|
||||
$msg .= "<p class=\"green\" role=\"alert\">"._('Successfully added Phishing clone!')."</p>";
|
||||
} else {
|
||||
$msg .= "<p class=\"red\" role=\"alert\">$I[samephish]</p>";
|
||||
$msg .= "<p class=\"red\" role=\"alert\">"._('Not added Phishing clone! Phishing and original have the same address.')."</p>";
|
||||
}
|
||||
}
|
||||
} 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 .= "<p class=\"green\" role=\"alert\">$I[succrmphish]</p>";
|
||||
} elseif ( $_POST[ 'action' ] === $I[ 'reject' ] ) { //lock editing
|
||||
$msg .= "<p class=\"green\" role=\"alert\">"._('Successfully removed Phishing clone!')."</p>";
|
||||
} elseif ( $_POST[ 'action' ] === _('Reject') ) { //lock editing
|
||||
$db->prepare( 'UPDATE ' . PREFIX . 'onions SET approved=-1, timechanged=? WHERE md5sum=?;' )->execute( [ time(), $md5 ] );
|
||||
$msg .= "<p class=\"green\" role=\"alert\">$I[succreject]</p>";
|
||||
} elseif ( $_POST[ 'action' ] === $I[ 'approve' ] ) { //lock editing
|
||||
$msg .= "<p class=\"green\" role=\"alert\">"._('Successfully rejected onion address')."</p>";
|
||||
} elseif ( $_POST[ 'action' ] === _('Approve') ) { //lock editing
|
||||
$db->prepare( 'UPDATE ' . PREFIX . 'onions SET approved=1, timechanged=? WHERE md5sum=?;' )->execute( [ time(), $md5 ] );
|
||||
$msg .= "<p class=\"green\" role=\"alert\">$I[succapprove]</p>";
|
||||
$msg .= "<p class=\"green\" role=\"alert\">"._('Successfully approved onion address')."</p>";
|
||||
} else { //no specific button was pressed
|
||||
$msg .= "<p class=\"red\" role=\"alert\">$I[noaction]</p>";
|
||||
$msg .= "<p class=\"red\" role=\"alert\">"._('No action taken!')."</p>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$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 "<input type=\"hidden\" name=\"lang\" value=\"$language\">";
|
||||
echo "<input type=\"hidden\" name=\"pass\" value=\"$_POST[pass]\">";
|
||||
echo "<input type=\"hidden\" name=\"view_mode\" value=\"$view_mode\">";
|
||||
echo "<br><input type=\"submit\" name=\"switch_view_mode\" value=\"$I[switchviewmode]\"></form>";
|
||||
echo "<br><input type=\"submit\" name=\"switch_view_mode\" value=\""._('Switch view mode')."\"></form>";
|
||||
echo "<form action=\"$_SERVER[SCRIPT_NAME]\" method=\"POST\">";
|
||||
echo "<input type=\"hidden\" name=\"lang\" value=\"$language\">";
|
||||
echo "<input type=\"hidden\" name=\"pass\" value=\"$_POST[pass]\">";
|
||||
echo "<input type=\"hidden\" name=\"view_mode\" value=\"$view_mode\">";
|
||||
if($view_mode === 'single') {
|
||||
echo "<p><label>$I[link]: <input name=\"addr\" size=\"30\" value=\"";
|
||||
echo "<p><label>"._('Onion link:')." <input name=\"addr\" size=\"30\" value=\"";
|
||||
if ( isset( $_REQUEST[ 'addr' ] ) ) {
|
||||
echo htmlspecialchars( $_REQUEST[ 'addr' ] );
|
||||
}
|
||||
@ -167,17 +168,17 @@ if(!isset($_POST['pass']) || $_POST['pass']!==ADMINPASS){
|
||||
}
|
||||
echo '</div>';
|
||||
}
|
||||
echo "<p><label>$I[cloneof]: <input type=\"text\" name=\"original\" size=\"30\"";
|
||||
echo "<p><label>"._('Clone of:')." <input type=\"text\" name=\"original\" size=\"30\"";
|
||||
if(isset($_REQUEST['original'])){
|
||||
echo ' value="'.htmlspecialchars($_REQUEST['original']).'"';
|
||||
}
|
||||
echo '></label></p>';
|
||||
echo "<p><label>$I[bitcoins]: <input type=\"text\" name=\"btc\" size=\"30\"";
|
||||
echo "<p><label>"._('Bitcoins:')." <input type=\"text\" name=\"btc\" size=\"30\"";
|
||||
if(isset($_REQUEST['btc'])){
|
||||
echo ' value="'.htmlspecialchars($_REQUEST['btc']).'"';
|
||||
}
|
||||
echo '></label></p>';
|
||||
echo "<p><label for=\"desc\">$I[adddesc]:</label> <br><textarea id=\"desc\" name=\"desc\" rows=\"2\" cols=\"30\">";
|
||||
echo "<p><label for=\"desc\">"._('Description:')."</label> <br><textarea id=\"desc\" name=\"desc\" rows=\"2\" cols=\"30\">";
|
||||
if(!empty($_REQUEST['desc'])){
|
||||
echo htmlspecialchars(trim($_REQUEST['desc']));
|
||||
}elseif(isset($_REQUEST['addr']) && is_string($_REQUEST['addr'])){
|
||||
@ -193,7 +194,7 @@ if(!isset($_POST['pass']) || $_POST['pass']!==ADMINPASS){
|
||||
}
|
||||
}
|
||||
echo '</textarea></p>';
|
||||
echo "<p><label>$I[category]: <select name=\"cat\">";
|
||||
echo "<p><label>"._('Category:')." <select name=\"cat\">";
|
||||
foreach($categories as $cat=>$name){
|
||||
echo "<option value=\"$cat\"";
|
||||
if($category==$cat || ($cat===0 && $category>=count($categories))){
|
||||
@ -204,20 +205,20 @@ if(!isset($_POST['pass']) || $_POST['pass']!==ADMINPASS){
|
||||
echo '</select></label></p>';
|
||||
echo '<input type="submit" name="action" value="None" hidden>';
|
||||
echo '<div class="table button_table"><div class="row">';
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\"$I[remove]\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\"$I[lock]\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\"$I[promote]\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\"$I[phishing]\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\""._('Remove')."\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\""._('Lock')."\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\""._('Promote')."\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\""._('Phishing')."\"></div>";
|
||||
echo '</div><div class="row">';
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\"$I[readd]\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\"$I[unlock]\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\"$I[unpromote]\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\"$I[unphishing]\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\""._('Re-add')."\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\""._('Unlock')."\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\""._('Un-promote')."\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\""._('No phishing')."\"></div>";
|
||||
echo '</div><div class="row">';
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\"$I[update]\"></div>";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\""._('Update')."\"></div>";
|
||||
if(REQUIRE_APPROVAL) {
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\"$I[reject]\"></div class=\"col\">";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\"$I[approve]\"></div class=\"col\">";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\""._('Reject')."\"></div class=\"col\">";
|
||||
echo "<div class=\"col\"><input type=\"submit\" name=\"action\" value=\""._('Approve')."\"></div class=\"col\">";
|
||||
}
|
||||
echo '</div></div>';
|
||||
echo '</form><br>';
|
||||
|
141
www/onions.php
141
www/onions.php
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Onion Link List - Main listing script
|
||||
*
|
||||
* Copyright (C) 2016-2020 Daniel Winzen <daniel@danwin1210.me>
|
||||
* Copyright (C) 2016-2020 Daniel Winzen <daniel@danwin1210.de>
|
||||
*
|
||||
* 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 '<!DOCTYPE html><html lang="'.$language.'"><head>';
|
||||
echo "<title>$I[title]</title>";
|
||||
echo '<!DOCTYPE html><html lang="'.$language.'" dir="'.$dir.'"><head>';
|
||||
echo "<title>"._('Onion link list')."</title>";
|
||||
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
|
||||
echo '<meta name="author" content="Daniel Winzen">';
|
||||
echo '<meta name="viewport" content="width=device-width, initial-scale=1">';
|
||||
echo '<meta name="description" content="Huge link list of Tor hidden service onions. All the darknet links you need in one place.">';
|
||||
echo '<link rel="canonical" href="' . CANONICAL_URL . $_SERVER['SCRIPT_NAME'] . (empty($canonical_query) ? '' : '?' . http_build_query($canonical_query)) . '">';
|
||||
echo '<style type="text/css">'.$style.'</style>';
|
||||
echo '<style>'.$style.'</style>';
|
||||
echo '<base target="_blank">';
|
||||
echo '</head><body><main>';
|
||||
echo "<h1>$I[title]</h1>";
|
||||
echo "<h1>"._('Onion link list')."</h1>";
|
||||
if(!isset($db)){
|
||||
send_error("<b>$I[error]:</b> $I[nodb]");
|
||||
send_error(_('Error: No database connection!'));
|
||||
}
|
||||
echo '<p>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!</p>';
|
||||
//update onions description form
|
||||
echo "<div class=\"table\" id=\"edit-search\"><div class=\"row\"><div class=\"col\"><form action=\"$_SERVER[SCRIPT_NAME]\" target=\"_self\" method=\"POST\">";
|
||||
echo "<input type=\"hidden\" name=\"pg\" value=\"$_REQUEST[newpg]\">";
|
||||
echo "<input type=\"hidden\" name=\"lang\" value=\"$language\">";
|
||||
echo "<p><label>$I[addonion]: <br><input name=\"addr\" size=\"30\" placeholder=\"http://$_SERVER[HTTP_HOST]\" value=\"";
|
||||
echo "<p><label>"._('Onion address:')." <br><input name=\"addr\" size=\"30\" placeholder=\"http://$_SERVER[HTTP_HOST]\" value=\"";
|
||||
if(isset($_REQUEST['addr'])){
|
||||
echo htmlspecialchars($_REQUEST['addr']);
|
||||
}
|
||||
echo '" required></label></p>';
|
||||
echo "<p><label>$I[adddesc]: <br><textarea name=\"desc\" rows=\"2\" cols=\"30\">";
|
||||
echo "<p><label>"._('Description:')." <br><textarea name=\"desc\" rows=\"2\" cols=\"30\">";
|
||||
if(!empty($_REQUEST['desc'])){//use posted description
|
||||
echo htmlspecialchars(trim($_REQUEST['desc']));
|
||||
}elseif(!empty($_REQUEST['addr'])){//fetch description from database
|
||||
@ -156,7 +154,7 @@ function send_html(){
|
||||
}
|
||||
}
|
||||
echo '</textarea></label></p>';
|
||||
echo "<p><label>$I[category]: <select name=\"cat\">";
|
||||
echo "<p><label>"._('Category:')." <select name=\"cat\">";
|
||||
foreach($categories as $cat=>$name){
|
||||
echo "<option value=\"$cat\"";
|
||||
if($category==$cat || ($cat===0 && $category>=count($categories))){
|
||||
@ -166,22 +164,22 @@ function send_html(){
|
||||
}
|
||||
echo '</select></label></p>';
|
||||
send_captcha();
|
||||
echo "<input type=\"submit\" name=\"action\" value=\"$I[update]\"></form></div>";
|
||||
echo "<input type=\"submit\" name=\"action\" value=\""._('Update')."\"></form></div>";
|
||||
//search from
|
||||
echo "<div class=\"col\"><form action=\"$_SERVER[SCRIPT_NAME]\" target=\"_self\" method=\"post\">";
|
||||
echo "<input type=\"hidden\" name=\"pg\" value=\"$_REQUEST[newpg]\">";
|
||||
echo "<input type=\"hidden\" name=\"lang\" value=\"$language\">";
|
||||
echo "<p><label>$I[search]: <br><input name=\"q\" size=\"30\" placeholder=\"$I[searchterm]\" value=\"";
|
||||
echo "<p><label>"._('Search:')." <br><input name=\"q\" size=\"30\" placeholder=\""._('Search term')."\" value=\"";
|
||||
if(isset($_REQUEST['q'])){
|
||||
echo trim(str_replace(['http://', 'https://', '.onion', '/'], '', htmlspecialchars($_REQUEST['q'])));
|
||||
}
|
||||
echo '"></label></p>';
|
||||
echo "<p><label>$I[category]: <select name=\"cat\">";
|
||||
echo "<p><label>"._('Category:')." <select name=\"cat\">";
|
||||
echo '<option value="'.count($categories).'"';
|
||||
if($category>=count($categories)){
|
||||
echo ' selected';
|
||||
}
|
||||
echo ">$I[all]</option>";
|
||||
echo ">"._('All')."</option>";
|
||||
foreach($categories as $cat=>$name){
|
||||
echo "<option value=\"$cat\"";
|
||||
if($category==$cat){
|
||||
@ -194,13 +192,13 @@ function send_html(){
|
||||
if(isset($_REQUEST['hidelocked'])){
|
||||
echo ' checked';
|
||||
}
|
||||
echo ">$I[hidelocked]</label></p>";
|
||||
echo "<input type=\"submit\" name=\"action\" value=\"$I[search]\"></form></div>";
|
||||
echo ">"._('Hide locked')."</label></p>";
|
||||
echo "<input type=\"submit\" name=\"action\" value=\""._('Search')."\"></form></div>";
|
||||
echo '</div></div>';
|
||||
echo "<ul class=\"list\"><li>$I[format]:</li><li><a href=\"?format=text\" target=\"_self\">Text</a></li><li><a href=\"?format=json\" target=\"_self\">JSON</a></li></ul>";
|
||||
echo "<ul class=\"list\"><li>"._('Format:')."</li><li><a href=\"?format=text\" target=\"_self\">Text</a></li><li><a href=\"?format=json\" target=\"_self\">JSON</a></li></ul>";
|
||||
print_langs();
|
||||
//List special categories
|
||||
echo "<ul class=\"list\"><li>$I[specialcat]:</li>";
|
||||
echo "<ul class=\"list\"><li>"._('Special categories:')."</li>";
|
||||
$cat=count($categories);
|
||||
foreach($special as $name=>$query){
|
||||
if($category==$cat){
|
||||
@ -211,18 +209,18 @@ function send_html(){
|
||||
++$cat;
|
||||
}
|
||||
if($category==$cat){
|
||||
echo " <li class=\"active\"><a href=\"?cat=$cat&lang=$language\" target=\"_self\">$I[phishingclones] ($category_count[$cat])</a></li>";
|
||||
echo " <li class=\"active\"><a href=\"?cat=$cat&lang=$language\" target=\"_self\">"._('Phishing Clones')." ($category_count[$cat])</a></li>";
|
||||
}else{
|
||||
echo " <li><a href=\"?cat=$cat&lang=$language\" target=\"_self\">$I[phishingclones] ($category_count[$cat])</a></li>";
|
||||
echo " <li><a href=\"?cat=$cat&lang=$language\" target=\"_self\">"._('Phishing Clones')." ($category_count[$cat])</a></li>";
|
||||
}
|
||||
echo " <li>$I[removed] ($category_count[removed])</li>";
|
||||
echo " <li>"._('Removed/Child porn')." ($category_count[removed])</li>";
|
||||
if(REQUIRE_APPROVAL) {
|
||||
echo " <li>$I[pendingapproval] ($category_count[pending])</li>";
|
||||
echo " <li>$I[rejected] ($category_count[rejected])</li>";
|
||||
echo " <li>"._('Pending approval')." ($category_count[pending])</li>";
|
||||
echo " <li>"._('Rejected')." ($category_count[rejected])</li>";
|
||||
}
|
||||
echo '</ul>';
|
||||
//List normal categories
|
||||
echo "<ul class=\"list\"><li>$I[categories]:</li>";
|
||||
echo "<ul class=\"list\"><li>"._('Categories:')."</li>";
|
||||
foreach($categories as $cat=>$name){
|
||||
if($category==$cat){
|
||||
echo " <li class=\"active\"><a href=\"?cat=$cat&pg=$_REQUEST[newpg]&lang=$language\" target=\"_self\">$name ($category_count[$cat])</a></li>";
|
||||
@ -233,24 +231,24 @@ function send_html(){
|
||||
echo '</ul>';
|
||||
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 "<p class=\"red\" role=\"alert\">$I[invalonion]</p>";
|
||||
echo "<p>$I[valid]: http://tt3j2x4k5ycaa5zt.onion</p>";
|
||||
echo "<p class=\"red\" role=\"alert\">"._('Invalid onion address!')."</p>";
|
||||
echo "<p>"._('A valid address looks like this')." http://tt3j2x4k5ycaa5zt.onion</p>";
|
||||
}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 time<?;');
|
||||
$stmt->execute([$_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 "<p class=\"green\" role=\"alert\">$I[succadd]</p>";
|
||||
echo "<p class=\"green\" role=\"alert\">"._('Successfully added onion address!')."</p>";
|
||||
}elseif($locked==1){//locked, not editable
|
||||
echo "<p class=\"red\" role=\"alert\">$I[faillocked]</p>";
|
||||
echo "<p class=\"red\" role=\"alert\">"._('Sorry, editing this onion address has been locked!')."</p>";
|
||||
}elseif($desc!==''){//update description
|
||||
$stmt=$db->prepare('UPDATE ' . PREFIX . 'onions SET description=?, category=?, timechanged=? WHERE md5sum=?;');
|
||||
$stmt->execute([$desc, $category, time(), $md5]);
|
||||
echo "<p class=\"green\" role=\"alert\">$I[succupddesc]</p>";
|
||||
echo "<p class=\"green\" role=\"alert\">"._('Successfully updated description!')."</p>";
|
||||
}elseif($category!=0){//update category only
|
||||
$stmt=$db->prepare('UPDATE ' . PREFIX . 'onions SET category=?, timechanged=? WHERE md5sum=?;');
|
||||
$stmt->execute([$category, time(), $md5]);
|
||||
echo "<p class=\"green\" role=\"alert\">$I[succupdcat]</p>";
|
||||
echo "<p class=\"green\" role=\"alert\">"._('Successfully updated category!')."</p>";
|
||||
}else{//nothing changed and already known
|
||||
echo "<p class=\"green\" role=\"alert\">$I[alreadyknown]</p>";
|
||||
echo "<p class=\"green\" role=\"alert\">"._('Thanks, but I already knew this address!')."</p>";
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -309,7 +307,7 @@ function send_html(){
|
||||
$stmt->execute([$category, $query, $query]);
|
||||
}
|
||||
$table=get_table($stmt, $numrows);
|
||||
printf("<p><b>$I[searchresult]</b></p>", trim(str_replace(['http://', 'https://', '.onion', '/'], '', htmlspecialchars($_REQUEST['q']))), $numrows);
|
||||
printf("<p><b>"._('Searching for "%1$s", %2$d results found:')."</b></p>", 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 "<div class=\"table\" id=\"maintable\"><div class=\"row headerrow\"><div class=\"col\">$I[link]</div><div class=\"col\">$I[description]</div><div class=\"col\">$I[lasttested]</div><div class=\"col\">$I[lastup]</div><div class=\"col\">$I[timeadded]</div><div class=\"col\">$I[actions]</div></div>";
|
||||
echo "<div class=\"table\" id=\"maintable\"><div class=\"row headerrow\"><div class=\"col\">"._('Onion link')."</div><div class=\"col\">"._('Description')."</div><div class=\"col\">"._('Last tested')."</div><div class=\"col\">"._('Last seen')."</div><div class=\"col\">"._('Added at')."</div><div class=\"col\">"._('Actions')."</div></div>";
|
||||
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 "<div class=\"$class row promo\"><div class=\"col\"><a href=\"http://$link[address].onion\" rel=\"noopener\">$link[address].onion</a></div><div class=\"col\">$link[description]</div><div class=\"col\">$lasttest</div><div class=\"col\">$lastup</div><div class=\"col\">$timeadded</div><div class=\"col\"><form method=\"post\" action=\"test.php\"><input name=\"addr\" value=\"$link[address]\" type=\"hidden\"><input name=\"lang\" value=\"$language\" type=\"hidden\"><input value=\"$I[test]\" type=\"submit\"></form></div></div>";
|
||||
echo "<div class=\"$class row promo\"><div class=\"col\"><a href=\"http://$link[address].onion\" rel=\"noopener\">$link[address].onion</a></div><div class=\"col\">$link[description]</div><div class=\"col\">$lasttest</div><div class=\"col\">$lastup</div><div class=\"col\">$timeadded</div><div class=\"col\"><form method=\"post\" action=\"test.php\"><input name=\"addr\" value=\"$link[address]\" type=\"hidden\"><input name=\"lang\" value=\"$language\" type=\"hidden\"><input value=\""._('Test')."\" type=\"submit\"></form></div></div>";
|
||||
}
|
||||
}
|
||||
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="<form><input name=\"addr\" value=\"$link[address]\" type=\"hidden\"><input type=\"hidden\" name=\"pg\" value=\"$_REQUEST[newpg]\"><input type=\"hidden\" name=\"lang\" value=\"$language\"><input value=\"$I[edit]\" type=\"submit\"></form>";
|
||||
$edit="<form><input name=\"addr\" value=\"$link[address]\" type=\"hidden\"><input type=\"hidden\" name=\"pg\" value=\"$_REQUEST[newpg]\"><input type=\"hidden\" name=\"lang\" value=\"$language\"><input value=\""._('Edit')."\" type=\"submit\"></form>";
|
||||
}
|
||||
echo "<div class=\"row $class\"><div class=\"col\"><a href=\"http://$link[address].onion\" rel=\"noopener\">$link[address].onion</a></div><div class=\"col\">$link[description]</div><div class=\"col\">$lasttest</div><div class=\"col\">$lastup</div><div class=\"col\">$timeadded</div><div class=\"col\">$edit <form method=\"post\" action=\"test.php\"><input name=\"addr\" value=\"$link[address]\" type=\"hidden\"><input type=\"hidden\" name=\"lang\" value=\"$language\"><input value=\"$I[test]\" type=\"submit\"></form></div></div>";
|
||||
echo "<div class=\"row $class\"><div class=\"col\"><a href=\"http://$link[address].onion\" rel=\"noopener\">$link[address].onion</a></div><div class=\"col\">$link[description]</div><div class=\"col\">$lasttest</div><div class=\"col\">$lastup</div><div class=\"col\">$timeadded</div><div class=\"col\">$edit <form method=\"post\" action=\"test.php\"><input name=\"addr\" value=\"$link[address]\" type=\"hidden\"><input type=\"hidden\" name=\"lang\" value=\"$language\"><input value=\""._('Test')."\" type=\"submit\"></form></div></div>";
|
||||
++$numrows;
|
||||
}
|
||||
echo '</div>';
|
||||
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 "<div class=\"table\" id=\"maintable\"><div class=\"row headerrow\"><div class=\"col\">$I[link]</div><div class=\"col\">$I[cloneof]</div><div class=\"col\">$I[lastup]</div></div>";
|
||||
echo "<div class=\"table\" id=\"maintable\"><div class=\"row headerrow\"><div class=\"col\">"._('Onion link')."</div><div class=\"col\">"._('Clone of')."</div><div class=\"col\">"._('Last seen')."</div></div>";
|
||||
$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="<a href=\"http://$link[original].onion\" rel=\"noopener\">$link[original].onion</a>";
|
||||
}else{
|
||||
$orig=$I['unknown'];
|
||||
$orig=_('Unknown');
|
||||
}
|
||||
echo "<div class=\"row $class\"><div class=\"col\">$link[address].onion</div><div class=\"col\">$orig</div><div class=\"col\">$lastup</div></div>";
|
||||
}
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
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 "<ul class=\"list pagination\"><li>$I[pages]:</li>";
|
||||
echo "<ul class=\"list pagination\"><li>"._('Pages:')."</li>";
|
||||
if($_REQUEST['pg']==0){
|
||||
echo " <li class=\"active\"><a href=\"?cat=$category&pg=0&lang=$language\" target=\"_self\">$I[all]</a></li>";
|
||||
echo " <li class=\"active\"><a href=\"?cat=$category&pg=0&lang=$language\" target=\"_self\">"._('All')."</a></li>";
|
||||
}else{
|
||||
echo " <li><a href=\"?cat=$category&pg=0&lang=$language\" target=\"_self\">$I[all]</a></li>";
|
||||
echo " <li><a href=\"?cat=$category&pg=0&lang=$language\" target=\"_self\">"._('All')."</a></li>";
|
||||
}
|
||||
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 "<input type=\"hidden\" name=\"challenge\" value=\"$randid\"><input type=\"text\" name=\"captcha\" size=\"15\" autocomplete=\"off\"></label></p>";
|
||||
}
|
||||
|
||||
function send_error(string $msg){
|
||||
function send_error(string $msg): void
|
||||
{
|
||||
die("<p class=\"red\" role=\"alert\">$msg</p></main></body></html>");
|
||||
}
|
||||
|
@ -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;
|
||||
|
37
www/test.php
37
www/test.php
@ -1,33 +1,30 @@
|
||||
<?php
|
||||
require_once(__DIR__.'/../common_config.php');
|
||||
global $language, $dir;
|
||||
$style = '.red{color:red}.green{color:green}.software-link{text-align:center;font-size:small}.list{padding:0;}.list li{display:inline-block;padding:0.35em}';
|
||||
send_headers([$style]);
|
||||
$canonical_query = [];
|
||||
if(!empty($_REQUEST['lang'])) {
|
||||
$canonical_query['lang'] = $_REQUEST['lang'];
|
||||
}
|
||||
echo '<!DOCTYPE html><html lang="'.$language.'"><head>';
|
||||
echo "<title>$I[testtitle]</title>";
|
||||
echo '<!DOCTYPE html><html lang="'.$language.'" dir="'.$dir.'"><head>';
|
||||
echo "<title>"._('Online-Test')."</title>";
|
||||
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
|
||||
echo '<meta name="author" content="Daniel Winzen">';
|
||||
echo '<meta name="viewport" content="width=device-width, initial-scale=1">';
|
||||
echo '<meta name="description" content="Test whether a Tor hidden service onion is online or offline">';
|
||||
echo '<link rel="canonical" href="' . CANONICAL_URL . $_SERVER['SCRIPT_NAME'] . (empty($canonical_query) ? '' : '?' . http_build_query($canonical_query)) . '">';
|
||||
echo '<style type="text/css">'.$style.'</style>';
|
||||
echo '<link rel="canonical" href="' . CANONICAL_URL . $_SERVER['SCRIPT_NAME'] . '">';
|
||||
echo '<style>'.$style.'</style>';
|
||||
echo '</head><body><main>';
|
||||
echo "<h1>$I[testtitle]</h1>";
|
||||
echo "<h1>"._('Online-Test')."</h1>";
|
||||
print_langs();
|
||||
echo "<p>$I[testdesc]</p>";
|
||||
echo "<p>"._('Here an onion address can be tested, for whether it is online or not.')."</p>";
|
||||
echo "<form action=\"$_SERVER[SCRIPT_NAME]\" method=\"POST\">";
|
||||
echo "<input type=\"hidden\" name=\"lang\" value=\"$language\">";
|
||||
echo "<p><label for=\"addr\">$I[link]:</label><br><input id=\"addr\" name=\"addr\" size=\"30\" value=\"";
|
||||
echo "<p><label for=\"addr\">"._('Onion link:')."</label><br><input id=\"addr\" name=\"addr\" size=\"30\" value=\"";
|
||||
if(isset($_REQUEST['addr'])){
|
||||
echo htmlspecialchars($_REQUEST['addr']);
|
||||
}else{
|
||||
echo "http://$_SERVER[HTTP_HOST]";
|
||||
}
|
||||
echo '" required></p>';
|
||||
echo "<input type=\"submit\" name=\"action\" value=\"$I[test]\"></form><br>";
|
||||
echo "<input type=\"submit\" name=\"action\" value=\""._('Test')."\"></form><br>";
|
||||
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 "<p class=\"red\" role=\"alert\">$I[invalonion]</p>";
|
||||
echo "<p class=\"red\" role=\"alert\">"._('Invalid onion address!')."</p>";
|
||||
}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("<p class=\"red\" role=\"alert\">$I[testphishing]</p>", "<a href=\"http://$orig[0].onion\">$orig[0].onion</a>");
|
||||
printf("<p class=\"red\" role=\"alert\">"._('Warning, this is a known phishing clone. The original site is located at %s.')."</p>", "<a href=\"http://$orig[0].onion\">$orig[0].onion</a>");
|
||||
}
|
||||
$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 "<p class=\"red\" role=\"alert\">Warning: This is a known scam!</p>";
|
||||
echo "<p class=\"red\" role=\"alert\">"._('Warning: This is a known scam!')."</p>";
|
||||
}
|
||||
$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 "<p class=\"green\" role=\"alert\">$I[testonline]</p>";
|
||||
echo "<p class=\"green\" role=\"alert\">"._('Yes, the service is online!')."</p>";
|
||||
}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 "<p class=\"green\" role=\"alert\">$I[testonline]</p>";
|
||||
echo "<p class=\"green\" role=\"alert\">"._('Yes, the service is online!')."</p>";
|
||||
}else{
|
||||
if(isset($db)){
|
||||
$time=time();
|
||||
$db->prepare('UPDATE ' . PREFIX . 'onions SET lasttest=?, timediff=lasttest-lastup WHERE md5sum=? AND lasttest<?;')->execute([$time, $md5, $time]);
|
||||
}
|
||||
echo "<p class=\"red\" role=\"alert\">$I[testoffline]</p>";
|
||||
echo "<p class=\"red\" role=\"alert\">"._('No, the service is offline!')."</p>";
|
||||
}
|
||||
curl_close($ch);
|
||||
}
|
||||
|
Reference in New Issue
Block a user