17 Commits
2.6 ... master

Author SHA1 Message Date
Caleb Mazalevskis
d745403757 Fix language code capitalisation. (#1385) 2026-03-28 17:32:38 +05:30
nilsjonsson
6d1e962fc6 Fix spelling and update Swedish translations (#1379)
* Add Swedish translation

* Correct spelling

* Update Swedish translation
2026-03-12 10:32:20 +05:30
nilsjonsson
bcc2fc5afa Add Swedish translation (#1378) 2026-03-11 19:24:32 +05:30
anawalinski
b67f3ca7d9 Added Docker Compose (#1372)
* Added docker compose

* Fixed typos in comments

* Added healtchcheck and made changes after review.
2026-02-03 22:06:38 +05:30
MKJJJ
2e4ac97399 Update translation.json (#1370)
Added 8 translations at the end of the german section.
2026-01-29 07:01:09 +05:30
Prasath Mani
dd79258999 Advanced Search not working for read-only users #1325 2025-11-13 13:28:40 +05:30
Milan Mitrovic
dd2e22781b Added missing csrf token verification (#1347)
Co-authored-by: Milan Mitrovic <milan.mitrovic@abstract.rs>
2025-10-13 09:09:05 +05:30
Annun
cc3426aebe fix: 部分虚拟机提供商的HTTPS值为ON,导致['HTTPS'] == 'on'失效,转换为小写后比较 (#1344) 2025-09-23 08:54:58 +05:30
Kogulan
645d09a6ef correction in MIME type (#1335)
correction in MIME type at line no 3303
2025-08-11 08:35:02 +05:30
maghuro
c049ba96c8 Add Portuguese from Portugal (#1326)
And rename Brazilian translation
2025-06-16 10:29:04 +05:30
kev1n
7e7fb1f505 translation.json: Corrected German translations (#1287)
CreateNewItem
Original: “Neue Datei erstellen”
Corrected: “Neues Element erstellen”

UploadingFiles
Original: “Datei hochladen”
Corrected: “Dateien hochladen”

Invalid file or folder name
Original: “Ungältiger Datei- oder Ordnername”
Corrected: “Ungültiger Datei- oder Ordnername”

Operations with archives are not available
Original: “Archiv-Funktionen nicht verfägbar”
Corrected: “Archiv-Funktionen nicht verfügbar”
2025-03-09 04:46:35 +05:30
Prasath Mani
bf2c2a9a4d Update tinyfilemanager.php
Resolve the problem of the User dropdown being cut off.
2025-02-26 08:17:58 +05:30
Prasath Mani
64f7b29c78 Update tinyfilemanager.php 2025-02-23 11:34:08 +05:30
ner0
07ac97c20b Date Modified in file view (#1250)
* Date Modified in file view

* Add translation support
2025-02-02 09:55:41 +05:30
Michele Locati
8c78bc78f9 Allow hiding files/folders by full path (#1092) 2025-01-23 07:32:50 +05:30
ner0
8a17a5b210 Minor identation issues (#1273) 2025-01-23 07:26:10 +05:30
imcraftsman
9792bd000f Update tinyfilemanager.php (#1268)
running envirement: Android 4.4+PHP 7.4.3+ KSWEB
http://192.168.1.2/tinyfilemanager.php, afer login,the main page could not be showed entirely,it just shows half of navigation bar.

that's becuase of
there are two same lines of codes which cause the problem. they are
$owner = posix_getpwuid(fileowner($path . '/' . $f));
when the funciton fileowner($path . '/' . $f)  return 0 and  run the function posix_getpwuid(....), it trig an error.
please check the codes in line 2156--2168 and 2221--2233

suggest replace these two parts with followed  codes:
                $owner = array('name' => '?');
                $group = array('name' => '?');
                if (function_exists('posix_getpwuid') && function_exists('posix_getgrgid')) {
                    try{
                        $owner_id = fileowner($path . '/' . $f);
                        if($owner_id != 0) {
                            $owner_info = posix_getpwuid($owner_id);
                           if ($owner_info) {
                                  $owner =  $owner_info;
                           }
                       }

                        $group_id = filegroup($path . '/' . $f);
                        $group_info = posix_getgrgid($group_id);
                        if ($group_info) {
                             $group =  $group_info;
                         }

                    } catch(Exception $e){
                       error_log("exception:" . $e->getMessage());
                    }
                }
2025-01-20 17:06:35 +05:30
3 changed files with 379 additions and 59 deletions

20
docker-compose.yml Normal file
View File

@@ -0,0 +1,20 @@
services:
tinyfilemanager:
build: . # Uncomment if you want to build locally instead of pulling
# image: tinyfilemanager/tinyfilemanager:latest ### If you want to run a Docker container on an image from Docker Hub, comment on the upper line 'build: .'
container_name: tinyfilemanager
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./data:/var/www/html/data ### You can change "./data:" to your path if you want to keep your data in a dedicated directory.
- ./config.php:/var/www/html/config.php ### Uncomment if you are using config.php
environment:
TZ: UTC
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/"]
interval: 30s
timeout: 10s
retries: 3

View File

@@ -3,7 +3,7 @@
$CONFIG = '{"lang":"en","error_reporting":false,"show_hidden":false,"hide_Cols":false,"theme":"light"}';
/**
* H3K - Tiny File Manager V2.6
* H3K ~ Tiny File Manager V2.6
* @author CCP Programmers
* @github https://github.com/prasathmani/tinyfilemanager
* @link https://tinyfilemanager.github.io
@@ -97,7 +97,7 @@ $allowed_upload_extensions = '';
$favicon_path = '';
// Files and folders to excluded from listing
// e.g. array('myfile.html', 'personal-folder', '*.php', ...)
// e.g. array('myfile.html', 'personal-folder', '*.php', '/path/to/folder', ...)
$exclude_items = array();
// Online office Docs Viewer
@@ -257,7 +257,7 @@ if (empty($auth_users)) {
$use_auth = false;
}
$is_https = isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1)
$is_https = isset($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) == 'on' || $_SERVER['HTTPS'] == 1)
|| isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https';
// update $root_url based on user specific directories
@@ -459,7 +459,7 @@ unset($p, $use_auth, $iconv_input_encoding, $use_highlightjs, $highlightjs_style
/*************************** ACTIONS ***************************/
// Handle all AJAX Request
if ((isset($_SESSION[FM_SESSION_ID]['logged'], $auth_users[$_SESSION[FM_SESSION_ID]['logged']]) || !FM_USE_AUTH) && isset($_POST['ajax'], $_POST['token']) && !FM_READONLY) {
if ((isset($_SESSION[FM_SESSION_ID]['logged'], $auth_users[$_SESSION[FM_SESSION_ID]['logged']]) || !FM_USE_AUTH) && isset($_POST['ajax'], $_POST['token'])) {
if (!verifyToken($_POST['token'])) {
header('HTTP/1.0 401 Unauthorized');
die("Invalid Token.");
@@ -473,6 +473,10 @@ if ((isset($_SESSION[FM_SESSION_ID]['logged'], $auth_users[$_SESSION[FM_SESSION_
exit();
}
if(FM_READONLY){
exit();
}
// save editor file
if (isset($_POST['type']) && $_POST['type'] == "save") {
// get current path
@@ -806,6 +810,7 @@ if (isset($_POST['file'], $_POST['copy_to'], $_POST['finish'], $_POST['token'])
if (!verifyToken($_POST['token'])) {
fm_set_msg(lng('Invalid Token.'), 'error');
die("Invalid Token.");
}
// from
@@ -875,6 +880,7 @@ if (isset($_POST['file'], $_POST['copy_to'], $_POST['finish'], $_POST['token'])
if (isset($_POST['rename_from'], $_POST['rename_to'], $_POST['token']) && !FM_READONLY) {
if (!verifyToken($_POST['token'])) {
fm_set_msg("Invalid Token.", 'error');
die("Invalid Token.");
}
// old name
$old = urldecode($_POST['rename_from']);
@@ -1089,6 +1095,7 @@ if (isset($_POST['group'], $_POST['delete'], $_POST['token']) && !FM_READONLY) {
if (!verifyToken($_POST['token'])) {
fm_set_msg(lng("Invalid Token."), 'error');
die("Invalid Token.");
}
$path = FM_ROOT_PATH;
@@ -1125,6 +1132,7 @@ if (isset($_POST['group'], $_POST['token']) && (isset($_POST['zip']) || isset($_
if (!verifyToken($_POST['token'])) {
fm_set_msg(lng("Invalid Token."), 'error');
die("Invalid Token.");
}
$path = FM_ROOT_PATH;
@@ -1189,6 +1197,7 @@ if (isset($_POST['unzip'], $_POST['token']) && !FM_READONLY) {
if (!verifyToken($_POST['token'])) {
fm_set_msg(lng("Invalid Token."), 'error');
die("Invalid Token.");
}
$unzip = urldecode($_POST['unzip']);
@@ -1259,6 +1268,7 @@ if (isset($_POST['chmod'], $_POST['token']) && !FM_READONLY && !FM_IS_WIN) {
if (!verifyToken($_POST['token'])) {
fm_set_msg(lng("Invalid Token."), 'error');
die("Invalid Token.");
}
$path = FM_ROOT_PATH;
@@ -1334,7 +1344,7 @@ $objects = is_readable($path) ? scandir($path) : array();
$folders = array();
$files = array();
$current_path = array_slice(explode("/", $path), -1)[0];
if (is_array($objects) && fm_is_exclude_items($current_path)) {
if (is_array($objects) && fm_is_exclude_items($current_path, $path)) {
foreach ($objects as $file) {
if ($file == '.' || $file == '..') {
continue;
@@ -1343,9 +1353,9 @@ if (is_array($objects) && fm_is_exclude_items($current_path)) {
continue;
}
$new_path = $path . '/' . $file;
if (@is_file($new_path) && fm_is_exclude_items($file)) {
if (@is_file($new_path) && fm_is_exclude_items($file, $new_path)) {
$files[] = $file;
} elseif (@is_dir($new_path) && $file != '.' && $file != '..' && fm_is_exclude_items($file)) {
} elseif (@is_dir($new_path) && $file != '.' && $file != '..' && fm_is_exclude_items($file, $new_path)) {
$folders[] = $file;
}
}
@@ -1640,7 +1650,7 @@ if (isset($_GET['settings']) && !FM_READONLY) {
</div>
</div>
<small class="text-body-secondary">* <?php echo lng('Sometimes the save action may not work on the first try, so please attempt it again') ?>.</span>
<small class="text-body-secondary">* <?php echo lng('Sometimes the save action may not work on the first try, so please attempt it again') ?>.</small>
</form>
</div>
</div>
@@ -1712,7 +1722,7 @@ if (isset($_GET['view'])) {
$file = $_GET['view'];
$file = fm_clean_path($file, false);
$file = str_replace('/', '', $file);
if ($file == '' || !is_file($path . '/' . $file) || !fm_is_exclude_items($file)) {
if ($file == '' || !is_file($path . '/' . $file) || !fm_is_exclude_items($file, $path . '/' . $file)) {
fm_set_msg(lng('File not found'), 'error');
$FM_PATH = FM_PATH;
fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
@@ -1769,8 +1779,9 @@ if (isset($_GET['view'])) {
<li class="list-group-item active" aria-current="true"><strong><?php echo lng($view_title) ?>:</strong> <?php echo fm_enc(fm_convert_win($file)) ?></li>
<?php $display_path = fm_get_display_path($file_path); ?>
<li class="list-group-item"><strong><?php echo $display_path['label']; ?>:</strong> <?php echo $display_path['path']; ?></li>
<li class="list-group-item"><strong>File size:</strong> <?php echo ($filesize_raw <= 1000) ? "$filesize_raw bytes" : $filesize; ?></li>
<li class="list-group-item"><strong>MIME-type:</strong> <?php echo $mime_type ?></li>
<li class="list-group-item"><strong><?php echo lng('Date Modified') ?>:</strong> <?php echo date(FM_DATETIME_FORMAT, filemtime($file_path)); ?></li>
<li class="list-group-item"><strong><?php echo lng('File size') ?>:</strong> <?php echo ($filesize_raw <= 1000) ? "$filesize_raw bytes" : $filesize; ?></li>
<li class="list-group-item"><strong><?php echo lng('MIME-type') ?>:</strong> <?php echo $mime_type ?></li>
<?php
// ZIP info
if (($is_zip || $is_gzip) && $filenames !== false) {
@@ -1917,7 +1928,7 @@ if (isset($_GET['edit']) && !FM_READONLY) {
$file = $_GET['edit'];
$file = fm_clean_path($file, false);
$file = str_replace('/', '', $file);
if ($file == '' || !is_file($path . '/' . $file) || !fm_is_exclude_items($file)) {
if ($file == '' || !is_file($path . '/' . $file) || !fm_is_exclude_items($file, $path . '/' . $file)) {
fm_set_msg(lng('File not found'), 'error');
$FM_PATH = FM_PATH;
fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH));
@@ -2008,7 +2019,7 @@ if (isset($_GET['edit']) && !FM_READONLY) {
} elseif ($is_text) {
echo '<div id="editor" contenteditable="true">' . htmlspecialchars($content) . '</div>';
} else {
fm_set_msg(lng('FILE EXTENSION HAS NOT SUPPORTED'), 'error');
fm_set_msg(lng('FILE EXTENSION IS NOT SUPPORTED'), 'error');
}
?>
</div>
@@ -2153,18 +2164,25 @@ $all_files_size = 0;
$filesize_raw = "";
$filesize = lng('Folder');
$perms = substr(decoct(fileperms($path . '/' . $f)), -4);
$owner = array('name' => '?');
$group = array('name' => '?');
if (function_exists('posix_getpwuid') && function_exists('posix_getgrgid')) {
$owner = posix_getpwuid(fileowner($path . '/' . $f));
$group = posix_getgrgid(filegroup($path . '/' . $f));
if ($owner === false) {
$owner = array('name' => '?');
try {
$owner_id = fileowner($path . '/' . $f);
if ($owner_id != 0) {
$owner_info = posix_getpwuid($owner_id);
if ($owner_info) {
$owner = $owner_info;
}
}
$group_id = filegroup($path . '/' . $f);
$group_info = posix_getgrgid($group_id);
if ($group_info) {
$group = $group_info;
}
} catch (Exception $e) {
error_log("exception:" . $e->getMessage());
}
if ($group === false) {
$group = array('name' => '?');
}
} else {
$owner = array('name' => '?');
$group = array('name' => '?');
}
?>
<tr>
@@ -2218,18 +2236,25 @@ $all_files_size = 0;
$filelink = '?p=' . urlencode(FM_PATH) . '&amp;view=' . urlencode($f);
$all_files_size += $filesize_raw;
$perms = substr(decoct(fileperms($path . '/' . $f)), -4);
$owner = array('name' => '?');
$group = array('name' => '?');
if (function_exists('posix_getpwuid') && function_exists('posix_getgrgid')) {
$owner = posix_getpwuid(fileowner($path . '/' . $f));
$group = posix_getgrgid(filegroup($path . '/' . $f));
if ($owner === false) {
$owner = array('name' => '?');
try {
$owner_id = fileowner($path . '/' . $f);
if ($owner_id != 0) {
$owner_info = posix_getpwuid($owner_id);
if ($owner_info) {
$owner = $owner_info;
}
}
$group_id = filegroup($path . '/' . $f);
$group_info = posix_getgrgid($group_id);
if ($group_info) {
$group = $group_info;
}
} catch (Exception $e) {
error_log("exception:" . $e->getMessage());
}
if ($group === false) {
$group = array('name' => '?');
}
} else {
$owner = array('name' => '?');
$group = array('name' => '?');
}
?>
<tr>
@@ -2650,12 +2675,13 @@ function fm_get_display_path($file_path)
/**
* Check file is in exclude list
* @param string $file
* @param string $name The name of the file/folder
* @param string $path The full path of the file/folder
* @return bool
*/
function fm_is_exclude_items($file)
function fm_is_exclude_items($name, $path)
{
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
$ext = strtolower(pathinfo($name, PATHINFO_EXTENSION));
if (isset($exclude_items) and sizeof($exclude_items)) {
unset($exclude_items);
}
@@ -2664,7 +2690,7 @@ function fm_is_exclude_items($file)
if (version_compare(PHP_VERSION, '7.0.0', '<')) {
$exclude_items = unserialize($exclude_items);
}
if (!in_array($file, $exclude_items) && !in_array("*.$ext", $exclude_items)) {
if (!in_array($name, $exclude_items) && !in_array("*.$ext", $exclude_items) && !in_array($path, $exclude_items)) {
return true;
}
return false;
@@ -3284,7 +3310,7 @@ function fm_get_file_mimes($extension)
$fileTypes['divx'] = 'video/x-msvideo';
$fileTypes['mp3'] = 'audio/mpeg';
$fileTypes['mp4'] = 'audio/mpeg';
$fileTypes['mp4'] = 'video/mp4';
$fileTypes['mpeg'] = 'video/mpeg';
$fileTypes['mpg'] = 'video/mpeg';
$fileTypes['mpe'] = 'video/mpeg';
@@ -3747,7 +3773,8 @@ function fm_show_nav_path($path)
<a class="nav-link dropdown-toggle" id="navbarDropdownMenuLink-5" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fa fa-user-circle"></i>
</a>
<div class="dropdown-menu text-small shadow" aria-labelledby="navbarDropdownMenuLink-5" data-bs-theme="<?php echo FM_THEME; ?>">
<div class="dropdown-menu dropdown-menu-end text-small shadow" aria-labelledby="navbarDropdownMenuLink-5" data-bs-theme="<?php echo FM_THEME; ?>">
<?php if (!FM_READONLY): ?>
<a title="<?php echo lng('Settings') ?>" class="dropdown-item nav-link" href="?p=<?php echo urlencode(FM_PATH) ?>&amp;settings=1"><i class="fa fa-cog" aria-hidden="true"></i> <?php echo lng('Settings') ?></a>
<?php endif ?>
@@ -5559,7 +5586,7 @@ function fm_show_header_login()
$tr['en']['Advanced Search'] = 'Advanced Search';
$tr['en']['Error while copying from'] = 'Error while copying from';
$tr['en']['Invalid characters in file name'] = 'Invalid characters in file name';
$tr['en']['FILE EXTENSION HAS NOT SUPPORTED'] = 'FILE EXTENSION HAS NOT SUPPORTED';
$tr['en']['FILE EXTENSION IS NOT SUPPORTED'] = 'FILE EXTENSION IS NOT SUPPORTED';
$tr['en']['Selected files and folder deleted'] = 'Selected files and folder deleted';
$tr['en']['Error while fetching archive info'] = 'Error while fetching archive info';
$tr['en']['Delete selected files and folders?'] = 'Delete selected files and folders?';
@@ -5570,6 +5597,9 @@ function fm_show_header_login()
$tr['en']['File or folder with this path already exists'] = 'File or folder with this path already exists';
$tr['en']['Are you sure want to rename?'] = 'Are you sure want to rename?';
$tr['en']['Are you sure want to'] = 'Are you sure want to';
$tr['en']['Date Modified'] = 'Date Modified';
$tr['en']['File size'] = 'File size';
$tr['en']['MIME-type'] = 'MIME-type';
$i18n = fm_get_translations($tr);
$tr = $i18n ? $i18n : $tr;
@@ -5580,4 +5610,4 @@ function fm_show_header_login()
else return "$txt";
}
?>
?>

View File

@@ -247,7 +247,7 @@
},
{
"name": "فارسی",
"code": "Fa",
"code": "fa",
"translation": {
"Tiny File Manager": "مدیریت فایل کوچک",
"File Manager": "مدیریت فایل",
@@ -485,7 +485,7 @@
"Error while renaming from": "Errore durante la ridenominazione da",
"ErrorReporting": "Segnala errori",
"Execute": "Esegui",
"FILE EXTENSION HAS NOT SUPPORTED": "IL FILE HA UN'ESTENSIONE NON SUPPORTATA",
"FILE EXTENSION IS NOT SUPPORTED": "IL FILE HA UN'ESTENSIONE NON SUPPORTATA",
"File extension is not allowed": "L'estensione del file non è autorizzata",
"File not found": "Impossibile trovare il file",
"File or folder with this path already exists": "Esiste già un file o una cartella con questo percorso",
@@ -863,10 +863,10 @@
"Rename": "Umbenennen",
"CopyTo": "Kopieren nach",
"DirectLink": "Direktlink",
"UploadingFiles": "Datei hochladen",
"UploadingFiles": "Dateien hochladen",
"ChangePermissions": "Berechtigungen ändern",
"Copying": "Kopieren",
"CreateNewItem": "Neue Datei erstellen",
"CreateNewItem": "Neues Element erstellen",
"Name": "Name",
"AdvancedEditor": "Erweiterter Editor",
"RememberMe": "Eingeloggt bleiben",
@@ -933,7 +933,7 @@
"already exists": "existiert bereits",
"Error while moving from": "Fehler beim Verschieben aus",
"Create archive?": "Archiv erstellen?",
"Invalid file or folder name": "Ungältiger Datei- oder Ordnername",
"Invalid file or folder name": "Ungültiger Datei- oder Ordnername",
"Archive unpacked": "Archive entpackt",
"File extension is not allowed": "Dateityp nicht erlaubt",
"Root path": "Quellverzeichnis",
@@ -941,16 +941,23 @@
"File not found": "Datei nicht gefunden",
"Error while deleting items": "Fehler beim Löschen der Objekte",
"Invalid characters in file name": "Unzulässige Zeichen im Dateinamen",
"FILE EXTENSION HAS NOT SUPPORTED": "DATEITYP NICHT UNTERSTÜTZT",
"FILE EXTENSION IS NOT SUPPORTED": "DATEITYP NICHT UNTERSTÜTZT",
"Selected files and folder deleted": "Ausgewählte Dateien und Ordner gelöscht",
"Error while fetching archive info": "Fehler beim Abrufen der Archiv-Informationen",
"Delete selected files and folders?": "Ausgewählte Dateien und Ordner löschen?",
"Search file in folder and subfolders...": "Suchen in Ordnern und Unterordnern...",
"Access denied. IP restriction applicable": "Zugriff verweigert - IP-Beschränkung.",
"Invalid characters in file or folder name": "Unzulässige Zeichen im Datei- oder Ordnernamen",
"Operations with archives are not available": "Archiv-Funktionen nicht verfägbar",
"Operations with archives are not available": "Archiv-Funktionen nicht verfügbar",
"File or folder with this path already exists": "Datei oder Ordner mit diesem Pfad existiert bereits",
"Moved from": "Verschoben aus"
"Moved from": "Verschoben aus",
"Are you sure want to rename?": "Wirklich umbenennen?",
"Enter new file name": "Neuen Dateinamen eingeben",
"Are you sure want to": "",
"Cancel": "Abbrechen",
"Sometimes the save action may not work on the first try, so please attempt it again": "Zweimal speichern, falls die Änderungen nicht übernommen werden",
"Upload from URL": "Upload von URL",
"Enter here...": "Hier eingeben..."
}
},
{
@@ -1130,7 +1137,7 @@
"dark": "深色",
"Error while fetching archive info": "获取存档信息时出错",
"File Saved Successfully": "文件保存成功",
"FILE EXTENSION HAS NOT SUPPORTED": "文件扩展名不受支持",
"FILE EXTENSION IS NOT SUPPORTED": "文件扩展名不受支持",
"Folder is empty": "文件夹为空",
"Delete selected files and folders?": "是否删除选定的文件和文件夹?",
"Create archive?": "创建存档?",
@@ -1393,8 +1400,8 @@
}
},
{
"name": "Português",
"code": "pt",
"name": "Português Brasileiro",
"code": "pt_BR",
"translation": {
"AppName": "Gerenciador de arquivos Tiny",
"AppTitle": "Gerenciador de arquivos",
@@ -1499,7 +1506,7 @@
"Error while renaming from": "Erro ao renomear de",
"Error while deleting items": "Erro ao excluir itens",
"Invalid characters in file name": "Caracteres inválidos no nome do arquivo",
"FILE EXTENSION HAS NOT SUPPORTED": "A EXTENSÃO DE ARQUIVO NÃO É SUPORTADA",
"FILE EXTENSION IS NOT SUPPORTED": "A EXTENSÃO DE ARQUIVO NÃO É SUPORTADA",
"Selected files and folder deleted": "Arquivos e pastas selecionados excluídos",
"Error while fetching archive info": "Erro ao obter informações do arquivo",
"Delete selected files and folders?": "Excluir arquivos e pastas selecionados?",
@@ -1517,6 +1524,120 @@
"Are you sure want to": "Tem certeza de que deseja"
}
},
{
"name": "Português Europeu",
"code": "pt_PT",
"translation": {
"AppName": "Gestor de Ficheiros",
"AppTitle": "Gestor de Ficheiros",
"Login": "Iniciar sessão",
"Username": "Nome de utilizador",
"Password": "Palavra-passe",
"Logout": "Terminar sessão",
"Move": "Mover",
"Copy": "Copiar",
"Save": "Guardar",
"SelectAll": "Seleccionar tudo",
"UnSelectAll": "Desseleccionar tudo",
"File": "Ficheiro",
"Back": "Voltar",
"Size": "Tamanho",
"Perms": "Permissões",
"Modified": "Modificado",
"Owner": "Proprietário",
"Search": "Procurar",
"NewItem": "Novo item",
"Folder": "Pasta",
"Delete": "Eliminar",
"Rename": "Renomear",
"CopyTo": "Copiar para",
"DirectLink": "Ligação directa",
"UploadingFiles": "A enviar ficheiros",
"ChangePermissions": "Alterar permissões",
"Copying": "A copiar",
"CreateNewItem": "Criar novo item",
"Name": "Nome",
"AdvancedEditor": "Editor avançado",
"Actions": "Acções",
"Folder is empty": "A pasta está vazia",
"Upload": "Enviar",
"Cancel": "Cancelar",
"InvertSelection": "Inverter selecção",
"DestinationFolder": "Pasta de destino",
"ItemType": "Tipo de item",
"ItemName": "Nome do item",
"CreateNow": "Criar agora",
"Download": "Descarregar",
"Open": "Abrir",
"UnZip": "Descomprimir",
"UnZipToFolder": "Descomprimir para pasta",
"Edit": "Editar",
"NormalEditor": "Editor normal",
"BackUp": "Cópia de segurança",
"SourceFolder": "Pasta de origem",
"Files": "Ficheiros",
"Change": "Alterar",
"Settings": "Definições",
"Language": "Idioma",
"ErrorReporting": "Relatório de erros",
"ShowHiddenFiles": "Mostrar ficheiros ocultos",
"Help": "Ajuda",
"Created": "Criado",
"Help Documents": "Documentos de ajuda",
"Report Issue": "Comunicar problema",
"Generate": "Gerar",
"FullSize": "Tamanho total",
"HideColumns": "Ocultar colunas de permissões/proprietário",
"You are logged in": "Sessão iniciada",
"Nothing selected": "Nenhum ficheiro seleccionado seleccionado",
"Paths must be not equal": "Os caminhos não podem ser iguais",
"Renamed from": "Renomeado de",
"Archive not unpacked": "Arquivo não descomprimido",
"Deleted": "Eliminado",
"Archive not created": "Arquivo não criado",
"Copied from": "Copiado de",
"Permissions changed": "Permissões alteradas",
"to": "para",
"Saved Successfully": "Guardado com sucesso",
"not found!": "não encontrado!",
"File Saved Successfully": "Ficheiro guardado com sucesso",
"Archive": "Arquivo",
"Permissions not changed": "Permissões não alteradas",
"Select folder": "Seleccionar pasta",
"Source path not defined": "Caminho de origem não definido",
"already exists": "já existe",
"Error while moving from": "Erro ao mover de",
"Create archive?": "Deseja criar um arquivo?",
"Invalid file or folder name": "Nome de ficheiro ou pasta inválido",
"Archive unpacked": "Arquivo descomprimido",
"File extension is not allowed": "Extensão de ficheiro não permitida",
"Root path": "Caminho raiz",
"Error while renaming from": "Erro ao renomear de",
"File not found": "Ficheiro não encontrado",
"Error while deleting items": "Erro ao eliminar itens",
"Moved from": "Movido de",
"Generate new password hash": "Gerar novo hash de palavra-passe",
"Login failed. Invalid username or password": "Falha na autenticação. Nome de utilizador ou palavra-passe inválido",
"password_hash not supported, Upgrade PHP version": "password_hash não suportado. Actualize a versão do PHP",
"Advanced Search": "Pesquisa avançada",
"Error while copying from": "Erro ao copiar de",
"Invalid characters in file name": "Caracteres inválidos no nome do ficheiro",
"FILE EXTENSION IS NOT SUPPORTED": "A EXTENSÃO DO FICHEIRO NÃO É SUPORTADA",
"Selected files and folder deleted": "Ficheiros e pasta seleccionados eliminados",
"Error while fetching archive info": "Erro ao obter informações do arquivo",
"Delete selected files and folders?": "Deseja eliminar os ficheiros e pastas seleccionados?",
"Search file in folder and subfolders...": "Procurar ficheiro na pasta e subpastas...",
"Access denied. IP restriction applicable": "Acesso negado. Restrição de IP activa",
"Invalid characters in file or folder name": "Caracteres inválidos no nome do ficheiro ou da pasta",
"Operations with archives are not available": "As operações com arquivos não estão disponíveis",
"File or folder with this path already exists": "Já existe um ficheiro ou pasta com este caminho",
"Are you sure want to rename?": "Tem a certeza que deseja renomear?",
"Are you sure want to": "Tem a certeza que deseja",
"Date Modified": "Data de modificação",
"File size": "Tamanho do ficheiro",
"MIME-type": "Tipo MIME"
}
},
{
"name": "Polski",
"code": "pl",
@@ -1685,7 +1806,7 @@
"Error while renaming from": "Lỗi khi đổi tên từ",
"Error while deleting items": "Lỗi khi xóa các mục",
"Invalid characters in file name": "Ký tự không hợp lệ",
"FILE EXTENSION HAS NOT SUPPORTED": "ĐỊNH DẠNG KHÔNG ĐƯỢC HỖ TRỢ",
"FILE EXTENSION IS NOT SUPPORTED": "ĐỊNH DẠNG KHÔNG ĐƯỢC HỖ TRỢ",
"Selected files and folder deleted": "Đã xóa các tệp và thư mục được chọn",
"Error while fetching archive info": "Lỗi",
"Delete selected files and folders?": "Xóa các tệp và thư mục đã chọn?",
@@ -1760,7 +1881,7 @@
},
{
"name": "العربية",
"code": "Ar",
"code": "ar",
"translation": {
"AppName": "مدير الملفات الصغير",
"AppTitle": "مدير الملفات",
@@ -2174,6 +2295,155 @@
"HideColumns": "Piilota oikeudet-/omistaja-sarakkeet"
}
},
{
"name": "Svenska",
"code": "sv",
"translation": {
"AppName": "Tiny File Manager",
"AppTitle": "Filhanterare",
"Login": "Logga in",
"Username": "Användarnamn",
"Password": "Lösenord",
"Logout": "Logga ut",
"Move": "Flytta",
"Copy": "Kopiera",
"Save": "Spara",
"SelectAll": "Markera alla",
"UnSelectAll": "Avmarkera alla",
"File": "Fil",
"Back": "Tillbaka",
"Size": "Storlek",
"Perms": "Behörigheter",
"Modified": "Ändrad",
"Owner": "Ägare",
"Search": "Sök",
"NewItem": "Skapa ny...",
"Folder": "Mapp",
"Delete": "Ta bort",
"Rename": "Byt namn",
"CopyTo": "Kopiera till",
"DirectLink": "Direktlänk",
"UploadingFiles": "Laddar upp filer",
"ChangePermissions": "Ändra behörigheter",
"Copying": "Kopierar",
"CreateNewItem": "Skapa ny fil eller mapp",
"Name": "Namn",
"AdvancedEditor": "Avancerad redigerare",
"Actions": "Åtgärder",
"Folder is empty": "Mappen är tom",
"Upload": "Ladda upp",
"Cancel": "Avbryt",
"InvertSelection": "Invertera markering",
"DestinationFolder": "Målmapp",
"ItemType": "Filtyp",
"ItemName": "Namn",
"Enter here...": "Skriv här...",
"CreateNow": "Skapa nu",
"Download": "Ladda ner",
"Open": "Öppna",
"UnZip": "Packa upp",
"UnZipToFolder": "Packa upp till mapp",
"Edit": "Redigera",
"NormalEditor": "Normal redigerare",
"BackUp": "Säkerhetskopiera",
"SourceFolder": "Källmapp",
"Files": "Filer",
"Change": "Byt",
"Settings": "Inställningar",
"Language": "Språk",
"ErrorReporting": "Felrapportering",
"ShowHiddenFiles": "Visa dolda filer",
"Help": "Hjälp",
"Created": "Skapad",
"Help Documents": "Hjälpdokument",
"Report Issue": "Rapportera problem",
"Generate": "Generera",
"FullSize": "Full storlek",
"HideColumns": "Dölj rättigheter-/ägare-kolumner",
"You are logged in": "Du är inloggad",
"Nothing selected": "Inget valt",
"Paths must be not equal": "Sökvägar måste vara olika",
"Renamed from": "Bytt namn från",
"Archive not unpacked": "Arkiv inte uppackat",
"Deleted": "Raderad",
"Archive not created": "Arkiv inte skapat",
"Copied from": "Kopierad från",
"Permissions changed": "Rättigheter ändrade",
"to": "till",
"Saved Successfully": "Sparad framgångsrikt",
"not found!": "hittades inte!",
"File Saved Successfully": "Fil sparad framgångsrikt",
"Archive": "Arkiv",
"Permissions not changed": "Rättigheter inte ändrade",
"Select folder": "Välj mapp",
"Source path not defined": "Källväg inte definierad",
"already exists": "finns redan",
"Error while moving from": "Fel vid flyttning från",
"Create archive?": "Skapa arkiv?",
"Invalid file or folder name": "Ogiltigt fil- eller mappnamn",
"Archive unpacked": "Arkiv uppackat",
"File extension is not allowed": "Filändelsen är inte tillåten",
"Root path": "Rotväg",
"Error while renaming from": "Fel vid namnändring från",
"File not found": "Fil hittades inte",
"Error while deleting items": "Fel vid radering av objekt",
"Moved from": "Flyttad från",
"Generate new password hash": "Generera ny lösenordshash",
"Login failed. Invalid username or password": "Inloggning misslyckades. Ogiltigt användarnamn eller lösenord",
"password_hash not supported, Upgrade PHP version": "password_hash stöds inte, uppgradera PHP-versionen",
"Advanced Search": "Avancerad sökning",
"Error while copying from": "Fel vid kopiering från",
"Invalid characters in file name": "Ogiltiga tecken i filnamn",
"FILE EXTENSION IS NOT SUPPORTED": "FILÄNDELSE STÖDS INTE",
"Selected files and folder deleted": "Valda filer och mappar raderade",
"Error while fetching archive info": "Fel vid hämtning av arkivinformation",
"Delete selected files and folders?": "Radera valda filer och mappar?",
"Search file in folder and subfolders...": "Sök fil i mapp och undermappar...",
"Access denied. IP restriction applicable": "Åtkomst nekad. IP-begränsning gäller",
"Invalid characters in file or folder name": "Ogiltiga tecken i fil- eller mappnamn",
"Operations with archives are not available": "Operationer med arkiv är inte tillgängliga",
"File or folder with this path already exists": "Fil eller mapp med denna sökväg finns redan",
"Are you sure want to rename?": "Är du säker på att du vill byta namn?",
"Are you sure want to": "Är du säker på att du vill",
"Date Modified": "Senast ändrad",
"File size": "Filstorlek",
"MIME-type": "MIME-typ",
"not deleted": "inte raderad",
"not created": "inte skapad",
"Invalid Token.": "Ogiltig token.",
"Upload from URL": "Ladda upp från URL",
"Theme": "Tema",
"light": "ljust",
"dark": "mörkt",
"Sometimes the save action may not work on the first try, so please attempt it again.": "Ibland fungerar inte spara-åtgärden vid första försöket, så försök igen.",
"Files in archive": "Filer i arkiv",
"Total size": "Total storlek",
"Size in archive": "Storlek i arkiv",
"Compression": "Komprimering",
"Image size": "Bildstorlek",
"Charset": "Teckenuppsättning",
"Fullscreen": "Helskärm",
"Undo": "Ångra",
"Redo": "Gör om",
"Word Wrap": "Radbrytning",
"Select Document Type": "Välj dokumenttyp",
"Select Mode": "Välj läge",
"Select Theme": "Välj tema",
"Select Font Size": "Välj teckenstorlek",
"Group": "Grupp",
"Other": "Annat",
"Read": "Läsa",
"Write": "Skriva",
"Execute": "Kör",
"Zip": "Zip",
"Tar": "Tar",
"Zero byte file! Aborting download": "Fil med storlek noll bytes! Avbryter nedladdning",
"Cannot open file! Aborting download": "Kan inte öppna fil! Avbryter nedladdning",
"a files": "filer",
"Enter new file name": "Ange nytt filnamn",
"Okay": "OK"
}
},
{
"name": "한국어",
"code": "ko",
@@ -2524,7 +2794,7 @@
"File not found": "Bestand is niet gevonden",
"Error while deleting items": "Fout bij het verwijderen van items",
"Invalid characters in file name": "Ongeldige karakters in bestandsnaam",
"FILE EXTENSION HAS NOT SUPPORTED": "BESTANDSTYPE IS NIET ONDERSTEUND",
"FILE EXTENSION IS NOT SUPPORTED": "BESTANDSTYPE IS NIET ONDERSTEUND",
"Selected files and folder deleted": "Geselecteerde bestanden en mappen verwijderd",
"Error while fetching archive info": "Fout bij het verkrijgen van archief informatie",
"Delete selected files and folders?": "Verwijder de geselecteerde bestanden en mappen?",
@@ -2605,7 +2875,7 @@
"Error while renaming from": "Fejl ved omdøbning fra",
"ErrorReporting": "Fejlrapportering",
"Execute": "Udfør",
"FILE EXTENSION HAS NOT SUPPORTED": "FILEXTENSION ER IKKE UNDERSTØTTET",
"FILE EXTENSION IS NOT SUPPORTED": "FILEXTENSION ER IKKE UNDERSTØTTET",
"File Saved Successfully": "Fil blev gemt",
"File extension is not allowed": "Filtypenavn er ikke tilladt",
"File not found": "Fil ikke fundet",
@@ -2729,7 +2999,7 @@
"Error while renaming from": "থেকে নাম পরিবর্তন করার সময় ত্রুটি",
"ErrorReporting": "এরর রিপোর্টিং",
"Execute": "এক্সিকিউট",
"FILE EXTENSION HAS NOT SUPPORTED": "ফাইল এক্সটেনশন সমর্থিত নয়",
"FILE EXTENSION IS NOT SUPPORTED": "ফাইল এক্সটেনশন সমর্থিত নয়",
"File Saved Successfully": "ফাইল সফলভাবে সংরক্ষিত হয়েছে৷",
"File extension is not allowed": "ফাইল এক্সটেনশন অনুমোদিত নয়",
"File not found": "ফাইল পাওয়া যায়নি",
@@ -2812,4 +3082,4 @@
}
}
]
}
}