Compare commits
No commits in common. "master" and "3.5.0" have entirely different histories.
71 changed files with 2005 additions and 5534 deletions
2
.github/workflows/test_suite.yml
vendored
2
.github/workflows/test_suite.yml
vendored
|
@ -12,7 +12,7 @@ jobs:
|
|||
strategy:
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest]
|
||||
php-versions: ["7.3", "7.4", "8.0", "8.1", "8.2"]
|
||||
php-versions: ["7.2", "7.3", "7.4", "8.0"]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
|
52
CHANGELOG.md
52
CHANGELOG.md
|
@ -5,58 +5,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||
|
||||
## Unreleased
|
||||
|
||||
## [3.7.0] - 2024-01-14
|
||||
### Added
|
||||
- Added support for vanity urls.
|
||||
- Added KDE integration for linux script.
|
||||
|
||||
### Changed
|
||||
- Updated translations.
|
||||
- File preview is now clickable to open the file.
|
||||
|
||||
### Fixed
|
||||
- Fixes for LDAP authentication.
|
||||
|
||||
## [3.6.3] - 2023-05-27
|
||||
### Fixed
|
||||
- Fix LDAP for php >= 8.1
|
||||
|
||||
## [3.6.2] - 2023-05-24
|
||||
### Changed
|
||||
- Support for PHP 8.2
|
||||
|
||||
### Removed
|
||||
- Azure blob storage driver
|
||||
|
||||
## [3.6.1] - 2022-11-27
|
||||
### Changed
|
||||
- Upgraded dependencies
|
||||
- Updated translations
|
||||
|
||||
### Fixed
|
||||
- Fixed error in export data (#499)
|
||||
- Fixed issues with reverse proxies (#495)
|
||||
- Fixed duplicated twitter tags
|
||||
|
||||
## [3.6.0] - 2022-06-20
|
||||
### Changed
|
||||
- Improved embedding on discord of large videos.
|
||||
- Releases are now compressed for faster downloads
|
||||
- Updated translations
|
||||
|
||||
### Fixed
|
||||
- Fixed deprecation notices on php >= 8
|
||||
- Fixed embed UA for Discord.
|
||||
- Fixed error with post_max_size = 0
|
||||
|
||||
### Removed
|
||||
- Support for php 7.2
|
||||
|
||||
## [3.5.1] - 2021-10-22
|
||||
### Changed
|
||||
- Fixed embed UA for Discord.
|
||||
- Updated translations.
|
||||
|
||||
## [3.5.0] - 2021-09-05
|
||||
### Added
|
||||
- Support for theme-park.dev themes.
|
||||
|
|
71
Gruntfile.js
71
Gruntfile.js
|
@ -128,6 +128,33 @@ module.exports = function (grunt) {
|
|||
],
|
||||
},
|
||||
},
|
||||
zip: {
|
||||
[releaseFilename]: [
|
||||
'app/**/*',
|
||||
'bin/**/*',
|
||||
'bootstrap/**/*',
|
||||
'install/**/*',
|
||||
'logs/**/',
|
||||
'resources/cache',
|
||||
'resources/sessions',
|
||||
'resources/database',
|
||||
'resources/lang/**/*',
|
||||
'resources/templates/**/*',
|
||||
'resources/schemas/**/*',
|
||||
'resources/lang/**/*',
|
||||
'resources/uploaders/**/*',
|
||||
'static/**/*',
|
||||
'vendor/**/*',
|
||||
'.htaccess',
|
||||
'config.example.php',
|
||||
'index.php',
|
||||
'composer.json',
|
||||
'composer.lock',
|
||||
'LICENSE',
|
||||
'favicon.ico',
|
||||
'CHANGELOG.md'
|
||||
]
|
||||
},
|
||||
|
||||
shell: {
|
||||
phpstan: {
|
||||
|
@ -136,47 +163,7 @@ module.exports = function (grunt) {
|
|||
composer_no_dev: {
|
||||
command: 'composer install --no-dev --prefer-dist'
|
||||
}
|
||||
},
|
||||
|
||||
compress: {
|
||||
main: {
|
||||
options: {
|
||||
archive: releaseFilename,
|
||||
mode: 'zip',
|
||||
level: 9,
|
||||
},
|
||||
files: [{
|
||||
expand: true,
|
||||
cwd: './',
|
||||
src: [
|
||||
'app/**/*',
|
||||
'bin/**/*',
|
||||
'bootstrap/**/*',
|
||||
'install/**/*',
|
||||
'logs/**/',
|
||||
'resources/cache',
|
||||
'resources/sessions',
|
||||
'resources/database',
|
||||
'resources/lang/**/*',
|
||||
'resources/templates/**/*',
|
||||
'resources/schemas/**/*',
|
||||
'resources/lang/**/*',
|
||||
'resources/uploaders/**/*',
|
||||
'static/**/*',
|
||||
'vendor/**/*',
|
||||
'.htaccess',
|
||||
'config.example.php',
|
||||
'index.php',
|
||||
'composer.json',
|
||||
'composer.lock',
|
||||
'LICENSE',
|
||||
'favicon.ico',
|
||||
'CHANGELOG.md'
|
||||
],
|
||||
dest: '/'
|
||||
}]
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
@ -185,5 +172,5 @@ module.exports = function (grunt) {
|
|||
grunt.registerTask('test', ['jshint']);
|
||||
grunt.registerTask('phpstan', ['shell:phpstan']);
|
||||
grunt.registerTask('composer_no_dev', ['shell:composer_no_dev']);
|
||||
grunt.registerTask('build-release', ['default', 'composer_no_dev', 'compress']);
|
||||
grunt.registerTask('build-release', ['default', 'composer_no_dev', 'zip']);
|
||||
};
|
|
@ -34,15 +34,15 @@ class AdminController extends Controller
|
|||
);
|
||||
|
||||
return view()->render($response, 'dashboard/system.twig', [
|
||||
'usersCount' => $this->database->query('SELECT COUNT(*) AS `count` FROM `users`')->fetch()->count,
|
||||
'mediasCount' => $this->database->query('SELECT COUNT(*) AS `count` FROM `uploads`')->fetch()->count,
|
||||
'orphanFilesCount' => $this->database->query('SELECT COUNT(*) AS `count` FROM `uploads` WHERE `user_id` IS NULL')->fetch()->count,
|
||||
'totalSize' => humanFileSize($this->database->query('SELECT SUM(`current_disk_quota`) AS `sum` FROM `users`')->fetch()->sum ?? 0),
|
||||
'usersCount' => $usersCount = $this->database->query('SELECT COUNT(*) AS `count` FROM `users`')->fetch()->count,
|
||||
'mediasCount' => $mediasCount = $this->database->query('SELECT COUNT(*) AS `count` FROM `uploads`')->fetch()->count,
|
||||
'orphanFilesCount' => $orphanFilesCount = $this->database->query('SELECT COUNT(*) AS `count` FROM `uploads` WHERE `user_id` IS NULL')->fetch()->count,
|
||||
'totalSize' => humanFileSize($totalSize = $this->database->query('SELECT SUM(`current_disk_quota`) AS `sum` FROM `users`')->fetch()->sum ?? 0),
|
||||
'post_max_size' => ini_get('post_max_size'),
|
||||
'upload_max_filesize' => ini_get('upload_max_filesize'),
|
||||
'installed_lang' => $this->lang->getList(),
|
||||
'forced_lang' => $request->getAttribute('forced_lang'),
|
||||
'php_version' => PHP_VERSION,
|
||||
'php_version' => phpversion(),
|
||||
'max_memory' => ini_get('memory_limit'),
|
||||
'settings' => $settings,
|
||||
]);
|
||||
|
|
|
@ -27,7 +27,7 @@ abstract class AuthController extends Controller
|
|||
|
||||
/**
|
||||
* Connects to LDAP server and logs in with service account (if configured)
|
||||
* @return \LDAP\Connection|resource|false
|
||||
* @return resource|false
|
||||
*/
|
||||
public function ldapConnect()
|
||||
{
|
||||
|
@ -39,7 +39,7 @@ abstract class AuthController extends Controller
|
|||
$ldapSchema=(@is_string($this->config['ldap']['schema'])) ?
|
||||
strtolower($this->config['ldap']['schema']) : 'ldap';
|
||||
$ldapURI="$ldapSchema://".$this->config['ldap']['host'].':'.$this->config['ldap']['port'];
|
||||
|
||||
|
||||
// Connecting to LDAP server
|
||||
$this->logger->debug("Connecting to $ldapURI");
|
||||
$server = ldap_connect($ldapURI);
|
||||
|
@ -48,18 +48,18 @@ abstract class AuthController extends Controller
|
|||
ldap_set_option($server, LDAP_OPT_REFERRALS, 0);
|
||||
ldap_set_option($server, LDAP_OPT_NETWORK_TIMEOUT, 10);
|
||||
} else {
|
||||
$this->logger->error('LDAP-URI was not parseable');
|
||||
$this->logger->error(ldap_error($server));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// Upgrade to StartTLS
|
||||
$useStartTLS = @is_bool($this->config['ldap']['useStartTLS']) ? $this->config['ldap']['useStartTLS'] : false;
|
||||
if (($useStartTLS === true) && (ldap_start_tls($server) === false)) {
|
||||
$this->logger->debug(ldap_error($server));
|
||||
$this->logger-debug(ldap_error($server));
|
||||
$this->logger->error("Failed to establish secure LDAP swith StartTLS");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// Authenticating LDAP service account (if configured)
|
||||
$serviceAccountFQDN= (@is_string($this->config['ldap']['service_account_dn'])) ?
|
||||
$this->config['ldap']['service_account_dn'] : null;
|
||||
|
@ -77,7 +77,7 @@ abstract class AuthController extends Controller
|
|||
/**
|
||||
* Returns User's LDAP DN
|
||||
* @param string $username
|
||||
* @param \LDAP\Connection|resource $server LDAP Server Resource
|
||||
* @param resource $server LDAP Server Resource
|
||||
* @return string|null
|
||||
*/
|
||||
protected function getLdapRdn(string $username, $server)
|
||||
|
@ -85,7 +85,7 @@ abstract class AuthController extends Controller
|
|||
//Dynamic LDAP User Binding
|
||||
if (@is_string($this->config['ldap']['search_filter'])) {
|
||||
//Replace ???? with username
|
||||
$searchFilter = str_replace('????', ldap_escape($username, '', LDAP_ESCAPE_FILTER), $this->config['ldap']['search_filter']);
|
||||
$searchFilter = str_replace('????', ldap_escape($username, null, LDAP_ESCAPE_FILTER), $this->config['ldap']['search_filter']);
|
||||
$ldapAddributes = array('dn');
|
||||
$this->logger->debug("LDAP Search filter: $searchFilter");
|
||||
$ldapSearchResp = ldap_search(
|
||||
|
@ -94,7 +94,7 @@ abstract class AuthController extends Controller
|
|||
$searchFilter,
|
||||
$ldapAddributes
|
||||
);
|
||||
if (!$ldapSearchResp) {
|
||||
if (!is_resource($ldapSearchResp)) {
|
||||
$this->logger->debug(ldap_error($server));
|
||||
$this->logger->error("User LDAP search for user $username failed");
|
||||
return null;
|
||||
|
@ -112,7 +112,7 @@ abstract class AuthController extends Controller
|
|||
if ($this->config['ldap']['user_domain'] !== null) {
|
||||
$bindString .= ','.$this->config['ldap']['user_domain'];
|
||||
}
|
||||
|
||||
|
||||
if ($this->config['ldap']['base_domain'] !== null) {
|
||||
$bindString .= ','.$this->config['ldap']['base_domain'];
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ class LoginController extends AuthController
|
|||
$password = param($request, 'password');
|
||||
$user = $this->database->query('SELECT `id`, `email`, `username`, `password`,`is_admin`, `active`, `current_disk_quota`, `max_disk_quota`, `ldap`, `copy_raw` FROM `users` WHERE `username` = ? OR `email` = ? LIMIT 1', [$username, $username])->fetch();
|
||||
|
||||
if ($this->config['ldap']['enabled'] && (!$user || $user->ldap ?? true)) {
|
||||
if ($this->config['ldap']['enabled'] && ($user->ldap ?? true)) {
|
||||
$user = $this->ldapLogin($request, $username, param($request, 'password'), $user);
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ use Slim\Exception\HttpNotFoundException;
|
|||
|
||||
class PasswordRecoveryController extends AuthController
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Response $response
|
||||
* @return Response
|
||||
|
|
|
@ -13,6 +13,7 @@ use Slim\Exception\HttpNotFoundException;
|
|||
|
||||
class RegisterController extends AuthController
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
|
|
|
@ -114,35 +114,4 @@ class ClientController extends Controller
|
|||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param int $id
|
||||
*
|
||||
* @return Response
|
||||
* @throws \Twig\Error\LoaderError
|
||||
* @throws \Twig\Error\RuntimeError
|
||||
* @throws \Twig\Error\SyntaxError
|
||||
*/
|
||||
public function getKDEScript(Request $request, Response $response, int $id): Response
|
||||
{
|
||||
$user = make(UserRepository::class)->get($request, $id, true);
|
||||
|
||||
if (!$user->token) {
|
||||
$this->session->alert(lang('no_upload_token'), 'danger');
|
||||
|
||||
return redirect($response, $request->getHeaderLine('Referer'));
|
||||
}
|
||||
|
||||
return view()->render(
|
||||
$response->withHeader('Content-Disposition', 'attachment;filename="xbackbone_uploader_'.$user->username.'.sh"'),
|
||||
'scripts/xbackbone_kde_uploader.sh.twig',
|
||||
[
|
||||
'username' => $user->username,
|
||||
'upload_url' => route('upload'),
|
||||
'token' => $user->token,
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ class ExportController extends Controller
|
|||
|
||||
$medias = $this->database->query('SELECT `uploads`.`filename`, `uploads`.`storage_path` FROM `uploads` WHERE `user_id` = ?', $user->id);
|
||||
|
||||
$this->logger->info("User $user->id, $user->username, exporting data...");
|
||||
$this->logger->info("User $user->id, $user->name, exporting data...");
|
||||
|
||||
set_time_limit(0);
|
||||
ob_end_clean();
|
||||
|
|
|
@ -4,6 +4,7 @@ namespace App\Controllers;
|
|||
|
||||
use App\Database\Repositories\UserRepository;
|
||||
use App\Web\UA;
|
||||
use GuzzleHttp\Psr7\Stream;
|
||||
use Intervention\Image\Constraint;
|
||||
use Intervention\Image\ImageManagerStatic as Image;
|
||||
use League\Flysystem\FileNotFoundException;
|
||||
|
@ -13,7 +14,6 @@ use Psr\Http\Message\ServerRequestInterface as Request;
|
|||
use Slim\Exception\HttpBadRequestException;
|
||||
use Slim\Exception\HttpNotFoundException;
|
||||
use Slim\Exception\HttpUnauthorizedException;
|
||||
use Slim\Psr7\Stream;
|
||||
|
||||
class MediaController extends Controller
|
||||
{
|
||||
|
@ -53,6 +53,10 @@ class MediaController extends Controller
|
|||
$userAgent = $request->getHeaderLine('User-Agent');
|
||||
$mime = $filesystem->getMimetype($media->storage_path);
|
||||
|
||||
if (UA::isBot($userAgent) && !(UA::embedsLinks($userAgent) && isDisplayableImage($mime) && $this->getSetting('image_embeds') === 'on')) {
|
||||
return $this->streamMedia($request, $response, $filesystem, $media);
|
||||
}
|
||||
|
||||
try {
|
||||
$media->mimetype = $mime;
|
||||
$media->extension = pathinfo($media->filename, PATHINFO_EXTENSION);
|
||||
|
@ -76,22 +80,6 @@ class MediaController extends Controller
|
|||
throw new HttpNotFoundException($request);
|
||||
}
|
||||
|
||||
if (
|
||||
UA::isBot($userAgent) &&
|
||||
!(
|
||||
// embed if enabled
|
||||
(UA::embedsLinks($userAgent) &&
|
||||
isEmbeddable($mime) &&
|
||||
$this->getSetting('image_embeds') === 'on') ||
|
||||
// if the file is too large to be displayed as non embedded
|
||||
(UA::embedsLinks($userAgent) &&
|
||||
isEmbeddable($mime) &&
|
||||
$size >= (8 * 1024 * 1024))
|
||||
)
|
||||
) {
|
||||
return $this->streamMedia($request, $response, $filesystem, $media);
|
||||
}
|
||||
|
||||
return view()->render($response, 'upload/public.twig', [
|
||||
'delete_token' => $token,
|
||||
'media' => $media,
|
||||
|
@ -188,43 +176,6 @@ class MediaController extends Controller
|
|||
return $this->streamMedia($request, $response, $this->storage, $media, 'attachment');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
* @param string $vanity
|
||||
* @param string $id
|
||||
*
|
||||
* @return Response
|
||||
* @throws HttpNotFoundException
|
||||
* @throws HttpBadRequestException
|
||||
*/
|
||||
public function createVanity(Request $request, Response $response, int $id): Response
|
||||
{
|
||||
$media = $this->database->query('SELECT * FROM `uploads` WHERE `id` = ? LIMIT 1', $id)->fetch();
|
||||
|
||||
$vanity = param($request, 'vanity');
|
||||
$vanity = preg_replace('/[^a-z0-9]+/', '-', strtolower($vanity));
|
||||
|
||||
//handle collisions
|
||||
$collision = $this->database->query('SELECT * FROM `uploads` WHERE `code` = ? AND `id` != ? LIMIT 1', [$vanity, $id])->fetch();
|
||||
|
||||
if (!$media) {
|
||||
throw new HttpNotFoundException($request);
|
||||
}
|
||||
|
||||
if ($vanity === '' || $collision) {
|
||||
throw new HttpBadRequestException($request);
|
||||
}
|
||||
|
||||
$this->database->query('UPDATE `uploads` SET `code` = ? WHERE `id` = ?', [$vanity, $media->id]);
|
||||
$media->code = $vanity;
|
||||
$response->getBody()->write(json_encode($media));
|
||||
|
||||
$this->logger->info('User '.$this->session->get('username').' created a vanity link for media '.$media->id);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
|
|
|
@ -12,6 +12,7 @@ use Slim\Exception\HttpNotFoundException;
|
|||
|
||||
class TagController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Response $response
|
||||
|
|
|
@ -123,9 +123,7 @@ class UploadController extends Controller
|
|||
*/
|
||||
protected function validateFile(Request $request, Response $response)
|
||||
{
|
||||
$iniValue = ini_get('post_max_size');
|
||||
$maxPostSize = $iniValue === '0' ? INF : stringToBytes($iniValue);
|
||||
if ($request->getServerParams()['CONTENT_LENGTH'] > $maxPostSize) {
|
||||
if ($request->getServerParams()['CONTENT_LENGTH'] > stringToBytes(ini_get('post_max_size'))) {
|
||||
$this->json['message'] = 'File too large (post_max_size too low?).';
|
||||
|
||||
throw new ValidationException(json($response, $this->json, 400));
|
||||
|
@ -208,7 +206,6 @@ class UploadController extends Controller
|
|||
|
||||
$this->json['message'] = 'OK';
|
||||
$this->json['url'] = urlFor("/{$user->user_code}/{$code}.{$fileInfo['extension']}");
|
||||
$this->json['raw_url'] = urlFor("/{$user->user_code}/{$code}/raw.{$fileInfo['extension']}");
|
||||
|
||||
$this->logger->info("User $user->username uploaded new media.", [$mediaId]);
|
||||
|
||||
|
|
|
@ -208,38 +208,21 @@ class MediaRepository
|
|||
array_multisort(array_column($files, 'size'), $this->buildOrderBy(), SORT_NUMERIC, $files);
|
||||
|
||||
$params = [];
|
||||
$queryPagesParams = [];
|
||||
|
||||
if ($this->text !== null) {
|
||||
if ($this->isAdmin) {
|
||||
[$queryMedia, $queryPages] = $this->buildAdminQueries();
|
||||
[$queryMedia,] = $this->buildAdminQueries();
|
||||
} else {
|
||||
[$queryMedia, $queryPages] = $this->buildUserQueries();
|
||||
[$queryMedia,] = $this->buildUserQueries();
|
||||
$params[] = $this->userId;
|
||||
}
|
||||
|
||||
$params[] = '%'.htmlentities($this->text).'%';
|
||||
$queryPagesParams = $params;
|
||||
$paths = array_column($files, 'path');
|
||||
} elseif ($this->tagId !== null) {
|
||||
if ($this->isAdmin) {
|
||||
[, $queryPages] = $this->buildAdminQueries();
|
||||
} else {
|
||||
[, $queryPages] = $this->buildUserQueries();
|
||||
$queryPagesParams[] = $this->userId;
|
||||
}
|
||||
|
||||
$paths = array_column($files, 'path');
|
||||
$ids = $this->getMediaIdsByTagId($this->tagId);
|
||||
$queryMedia = 'SELECT `uploads`.*, `users`.`user_code`, `users`.`username` FROM `uploads` LEFT JOIN `users` ON `uploads`.`user_id` = `users`.`id` WHERE `uploads`.`storage_path` IN ("'.implode('","', $paths).'") AND `uploads`.`id` IN ('.implode(',', $ids).')';
|
||||
} else {
|
||||
if ($this->isAdmin) {
|
||||
[, $queryPages] = $this->buildAdminQueries();
|
||||
} else {
|
||||
[, $queryPages] = $this->buildUserQueries();
|
||||
$queryPagesParams[] = $this->userId;
|
||||
}
|
||||
|
||||
$files = array_slice($files, $offset, $limit, true);
|
||||
$paths = array_column($files, 'path');
|
||||
$queryMedia = 'SELECT `uploads`.*, `users`.`user_code`, `users`.`username` FROM `uploads` LEFT JOIN `users` ON `uploads`.`user_id` = `users`.`id` WHERE `uploads`.`storage_path` IN ("'.implode('","', $paths).'")';
|
||||
|
@ -270,7 +253,7 @@ class MediaRepository
|
|||
}
|
||||
}
|
||||
|
||||
$this->pages = $this->db->query($queryPages, $queryPagesParams)->fetch()->count / $limit;
|
||||
$this->pages = count($this->media) / $limit;
|
||||
|
||||
if ($this->text !== null || $this->tagId !== null) {
|
||||
$this->media = array_slice($this->media, $offset, $limit, true);
|
||||
|
@ -362,7 +345,7 @@ class MediaRepository
|
|||
protected function getMediaIdsByTagId($tagId)
|
||||
{
|
||||
$mediaIds = $this->db->query('SELECT `upload_id` FROM `uploads_tags` WHERE `tag_id` = ?', $tagId)->fetchAll();
|
||||
$ids = [-1];
|
||||
$ids = [];
|
||||
foreach ($mediaIds as $pivot) {
|
||||
$ids[] = $pivot->upload_id;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Middleware;
|
||||
|
||||
use GuzzleHttp\Psr7\Response;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
|
||||
|
@ -15,7 +16,7 @@ class AdminMiddleware extends Middleware
|
|||
*
|
||||
* @throws HttpUnauthorizedException
|
||||
*
|
||||
* @return ResponseInterface
|
||||
* @return Response
|
||||
*/
|
||||
public function __invoke(Request $request, RequestHandler $handler): ResponseInterface
|
||||
{
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
namespace App\Middleware;
|
||||
|
||||
use GuzzleHttp\Psr7\Response;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
|
||||
use Slim\Psr7\Factory\ResponseFactory;
|
||||
|
||||
class AuthMiddleware extends Middleware
|
||||
{
|
||||
|
@ -18,16 +18,16 @@ class AuthMiddleware extends Middleware
|
|||
public function __invoke(Request $request, RequestHandler $handler): ResponseInterface
|
||||
{
|
||||
if (!$this->session->get('logged', false)) {
|
||||
$this->session->set('redirectTo', (string) $request->getUri()->getPath());
|
||||
$this->session->set('redirectTo', (string) $request->getUri());
|
||||
|
||||
return redirect((new ResponseFactory())->createResponse(), route('login.show'));
|
||||
return redirect(new Response(), route('login.show'));
|
||||
}
|
||||
|
||||
if (!$this->database->query('SELECT `id`, `active` FROM `users` WHERE `id` = ? LIMIT 1', [$this->session->get('user_id')])->fetch()->active) {
|
||||
$this->session->alert(lang('account_disabled'), 'danger');
|
||||
$this->session->set('logged', false);
|
||||
|
||||
return redirect((new ResponseFactory())->createResponse(), route('login.show'));
|
||||
return redirect(new Response(), route('login.show'));
|
||||
}
|
||||
|
||||
return $handler->handle($request);
|
||||
|
|
|
@ -4,6 +4,7 @@ namespace App\Web;
|
|||
|
||||
class UA
|
||||
{
|
||||
|
||||
/**
|
||||
* bot user agent => perform link embed
|
||||
* @var string[]
|
||||
|
@ -18,9 +19,8 @@ class UA
|
|||
'Slack' => false,
|
||||
'Twitterbot/' => false,
|
||||
'discord' => true,
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0' => true
|
||||
// discord image bot
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 11.6; rv:92.0) Gecko/20100101 Firefox/92.0' => true,
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0' => true,
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
|
@ -73,30 +73,6 @@ if (!function_exists('isDisplayableImage')) {
|
|||
}
|
||||
}
|
||||
|
||||
if (!function_exists('isEmbeddable')) {
|
||||
/**
|
||||
* @param ?string $mime
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function isEmbeddable(?string $mime): bool
|
||||
{
|
||||
return in_array($mime, [
|
||||
'image/apng',
|
||||
'image/bmp',
|
||||
'image/gif',
|
||||
'image/x-icon',
|
||||
'image/jpeg',
|
||||
'image/png',
|
||||
'image/tiff',
|
||||
'image/webp',
|
||||
'video/mp4',
|
||||
'video/ogg',
|
||||
'video/webm',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('stringToBytes')) {
|
||||
/**
|
||||
* @param $str
|
||||
|
@ -117,13 +93,13 @@ if (!function_exists('stringToBytes')) {
|
|||
switch ($last) {
|
||||
case 't':
|
||||
$val *= 1024;
|
||||
// no break
|
||||
// no break
|
||||
case 'g':
|
||||
$val *= 1024;
|
||||
// no break
|
||||
// no break
|
||||
case 'm':
|
||||
$val *= 1024;
|
||||
// no break
|
||||
// no break
|
||||
case 'k':
|
||||
$val *= 1024;
|
||||
}
|
||||
|
|
2
app/routes.php
Executable file → Normal file
2
app/routes.php
Executable file → Normal file
|
@ -57,13 +57,11 @@ $app->group('', function (RouteCollectorProxy $group) {
|
|||
$group->post('/user/{id}/refreshToken', [UserController::class, 'refreshToken'])->setName('refreshToken');
|
||||
$group->get('/user/{id}/config/sharex', [ClientController::class, 'getShareXConfig'])->setName('config.sharex');
|
||||
$group->get('/user/{id}/config/script', [ClientController::class, 'getBashScript'])->setName('config.script');
|
||||
$group->get('/user/{id}/config/kde_script', [ClientController::class, 'getKDEScript'])->setName('kde_config.script');
|
||||
|
||||
$group->get('/user/{id}/export', [ExportController::class, 'downloadData'])->setName('export.data');
|
||||
|
||||
$group->post('/upload/{id}/publish', [MediaController::class, 'togglePublish'])->setName('upload.publish');
|
||||
$group->post('/upload/{id}/unpublish', [MediaController::class, 'togglePublish'])->setName('upload.unpublish');
|
||||
$group->post('/upload/{id}/vanity', [MediaController::class, 'createVanity'])->setName('upload.vanity');
|
||||
$group->get('/upload/{id}/raw', [MediaController::class, 'getRawById'])->add(AdminMiddleware::class)->setName('upload.raw');
|
||||
$group->map(['GET', 'POST'], '/upload/{id}/delete', [MediaController::class, 'delete'])->setName('upload.delete');
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env php
|
||||
<?php
|
||||
((PHP_MAJOR_VERSION >= 7 && PHP_MINOR_VERSION >= 3) || PHP_MAJOR_VERSION > 7) ?: die('Sorry, PHP 7.3 or above is required to run XBackBone.');
|
||||
((PHP_MAJOR_VERSION >= 7 && PHP_MINOR_VERSION >= 2) || PHP_MAJOR_VERSION > 7) ?: die('Sorry, PHP 7.2 or above is required to run XBackBone.');
|
||||
if (PHP_SAPI !== 'cli') {
|
||||
die();
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env php
|
||||
<?php
|
||||
((PHP_MAJOR_VERSION >= 7 && PHP_MINOR_VERSION >= 3) || PHP_MAJOR_VERSION > 7) ?: die('Sorry, PHP 7.3 or above is required to run XBackBone.');
|
||||
((PHP_MAJOR_VERSION >= 7 && PHP_MINOR_VERSION >= 2) || PHP_MAJOR_VERSION > 7) ?: die('Sorry, PHP 7.2 or above is required to run XBackBone.');
|
||||
if (PHP_SAPI !== 'cli') {
|
||||
die();
|
||||
}
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
use App\Database\DB;
|
||||
use App\Web\Lang;
|
||||
use Aws\S3\S3Client;
|
||||
use League\Flysystem\Cached\CachedAdapter;
|
||||
use League\Flysystem\Cached\Storage\Adapter;
|
||||
use function DI\factory;
|
||||
use function DI\get;
|
||||
use Google\Cloud\Storage\StorageClient;
|
||||
|
@ -48,61 +46,58 @@ return [
|
|||
|
||||
Filesystem::class => factory(function (Container $container) {
|
||||
$config = $container->get('config');
|
||||
$driver = $config['storage']['driver'];
|
||||
if ($driver === 'local') {
|
||||
return new Filesystem(new Local($config['storage']['path']));
|
||||
} elseif ($driver === 's3') {
|
||||
$client = new S3Client([
|
||||
'credentials' => [
|
||||
'key' => $config['storage']['key'],
|
||||
'secret' => $config['storage']['secret'],
|
||||
],
|
||||
'region' => $config['storage']['region'],
|
||||
'endpoint' => $config['storage']['endpoint'],
|
||||
'version' => 'latest',
|
||||
'use_path_style_endpoint' => $config['storage']['use_path_style_endpoint'] ?? false,
|
||||
'@http' => ['stream' => true],
|
||||
]);
|
||||
switch ($config['storage']['driver']) {
|
||||
case 'local':
|
||||
return new Filesystem(new Local($config['storage']['path']));
|
||||
case 's3':
|
||||
$client = new S3Client([
|
||||
'credentials' => [
|
||||
'key' => $config['storage']['key'],
|
||||
'secret' => $config['storage']['secret'],
|
||||
],
|
||||
'region' => $config['storage']['region'],
|
||||
'endpoint' => $config['storage']['endpoint'],
|
||||
'version' => 'latest',
|
||||
'use_path_style_endpoint' => $config['storage']['use_path_style_endpoint'] ?? false,
|
||||
'@http' => ['stream' => true],
|
||||
]);
|
||||
|
||||
$adapter = new AwsS3Adapter($client, $config['storage']['bucket'], $config['storage']['path']);
|
||||
} elseif ($driver === 'dropbox') {
|
||||
$client = new DropboxClient($config['storage']['token']);
|
||||
return new Filesystem(new AwsS3Adapter($client, $config['storage']['bucket'], $config['storage']['path']));
|
||||
case 'dropbox':
|
||||
$client = new DropboxClient($config['storage']['token']);
|
||||
|
||||
$adapter = new DropboxAdapter($client);
|
||||
} elseif ($driver === 'ftp') {
|
||||
$adapter = new FtpAdapter([
|
||||
'host' => $config['storage']['host'],
|
||||
'username' => $config['storage']['username'],
|
||||
'password' => $config['storage']['password'],
|
||||
'port' => $config['storage']['port'],
|
||||
'root' => $config['storage']['path'],
|
||||
'passive' => $config['storage']['passive'],
|
||||
'ssl' => $config['storage']['ssl'],
|
||||
'timeout' => 30,
|
||||
]);
|
||||
} elseif ($driver === 'google-cloud') {
|
||||
$client = new StorageClient([
|
||||
'projectId' => $config['storage']['project_id'],
|
||||
'keyFilePath' => $config['storage']['key_path'],
|
||||
]);
|
||||
return new Filesystem(new DropboxAdapter($client), ['case_sensitive' => false]);
|
||||
case 'ftp':
|
||||
return new Filesystem(new FtpAdapter([
|
||||
'host' => $config['storage']['host'],
|
||||
'username' => $config['storage']['username'],
|
||||
'password' => $config['storage']['password'],
|
||||
'port' => $config['storage']['port'],
|
||||
'root' => $config['storage']['path'],
|
||||
'passive' => $config['storage']['passive'],
|
||||
'ssl' => $config['storage']['ssl'],
|
||||
'timeout' => 30,
|
||||
]));
|
||||
case 'google-cloud':
|
||||
$client = new StorageClient([
|
||||
'projectId' => $config['storage']['project_id'],
|
||||
'keyFilePath' => $config['storage']['key_path'],
|
||||
]);
|
||||
|
||||
$adapter = new GoogleStorageAdapter($client, $client->bucket($config['storage']['bucket']));
|
||||
} elseif ($driver === 'azure') {
|
||||
$client = BlobRestProxy::createBlobService(
|
||||
sprintf(
|
||||
'DefaultEndpointsProtocol=https;AccountName=%s;AccountKey=%s;',
|
||||
$config['storage']['account_name'],
|
||||
$config['storage']['account_key']
|
||||
)
|
||||
);
|
||||
return new Filesystem(new GoogleStorageAdapter($client, $client->bucket($config['storage']['bucket'])));
|
||||
case 'azure':
|
||||
$client = BlobRestProxy::createBlobService(
|
||||
sprintf(
|
||||
'DefaultEndpointsProtocol=https;AccountName=%s;AccountKey=%s;',
|
||||
$config['storage']['account_name'],
|
||||
$config['storage']['account_key']
|
||||
)
|
||||
);
|
||||
|
||||
$adapter = new AzureBlobStorageAdapter($client, $config['storage']['container_name']);
|
||||
} else {
|
||||
throw new InvalidArgumentException('The driver specified is not supported.');
|
||||
return new Filesystem(new AzureBlobStorageAdapter($client, $config['storage']['container_name']));
|
||||
default:
|
||||
throw new InvalidArgumentException('The driver specified is not supported.');
|
||||
}
|
||||
|
||||
$cache = new Adapter(new Local(BASE_DIR.'resources/cache/fs'), 'file', 300); // 5min
|
||||
return new Filesystem(new CachedAdapter($adapter, $cache));
|
||||
}),
|
||||
'storage' => get(Filesystem::class),
|
||||
|
||||
|
|
|
@ -1,27 +1,27 @@
|
|||
{
|
||||
"name": "sergix44/xbackbone",
|
||||
"license": "AGPL-3.0-only",
|
||||
"version": "3.7.0",
|
||||
"version": "3.5.0",
|
||||
"description": "A lightweight ShareX PHP backend",
|
||||
"type": "project",
|
||||
"require": {
|
||||
"php": ">=7.3",
|
||||
"ext-filter": "*",
|
||||
"php": ">=7.2",
|
||||
"ext-gd": "*",
|
||||
"ext-intl": "*",
|
||||
"ext-json": "*",
|
||||
"ext-pdo": "*",
|
||||
"ext-zip": "*",
|
||||
"ext-filter": "*",
|
||||
"erusev/parsedown": "^1.7",
|
||||
"guzzlehttp/psr7": "^1.6",
|
||||
"http-interop/http-factory-guzzle": "^1.0",
|
||||
"intervention/image": "^2.6",
|
||||
"league/flysystem": "^1.1.4",
|
||||
"league/flysystem-aws-s3-v3": "^1.0",
|
||||
"league/flysystem-cached-adapter": "^1.1",
|
||||
"league/flysystem-azure-blob-storage": "^0.1.6",
|
||||
"maennchen/zipstream-php": "^2.0",
|
||||
"monolog/monolog": "^1.23",
|
||||
"php-di/slim-bridge": "^3.0",
|
||||
"sapphirecat/slim4-http-interop-adapter": "^1.0",
|
||||
"slim/psr7": "^1.5",
|
||||
"slim/slim": "^4.0",
|
||||
"spatie/flysystem-dropbox": "^1.0",
|
||||
"superbalist/flysystem-google-storage": "^7.2",
|
||||
|
@ -32,7 +32,7 @@
|
|||
"preferred-install": "dist",
|
||||
"sort-packages": true,
|
||||
"platform": {
|
||||
"php": "7.3.33"
|
||||
"php": "7.2.34"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
@ -48,12 +48,10 @@
|
|||
"Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true,
|
||||
"require-dev": {
|
||||
"roave/security-advisories": "dev-latest",
|
||||
"phpstan/phpstan": "^0.11.5",
|
||||
"phpunit/phpunit": "^9.0",
|
||||
"phpunit/phpunit": "^8.5",
|
||||
"symfony/dom-crawler": "^4.4"
|
||||
}
|
||||
}
|
||||
|
|
3575
composer.lock
generated
3575
composer.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -1 +0,0 @@
|
|||
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1835087833720665" crossorigin="anonymous"></script>
|
|
@ -1 +0,0 @@
|
|||
google.com, pub-1835087833720665, DIRECT, f08c47fec0942fa0
|
|
@ -5,58 +5,6 @@ nav_order: 9
|
|||
---
|
||||
# Changelog
|
||||
|
||||
## [3.7.0] - 2024-01-14
|
||||
### Added
|
||||
- Added support for vanity urls.
|
||||
- Added KDE integration for linux script.
|
||||
|
||||
### Changed
|
||||
- Updated translations.
|
||||
- File preview is now clickable to open the file.
|
||||
|
||||
### Fixed
|
||||
- Fixes for LDAP authentication.
|
||||
|
||||
## [3.6.3] - 2023-05-27
|
||||
### Fixed
|
||||
- Fix LDAP for php >= 8.1
|
||||
|
||||
## [3.6.2] - 2023-05-24
|
||||
### Changed
|
||||
- Support for PHP 8.2
|
||||
|
||||
### Removed
|
||||
- Azure blob storage driver
|
||||
|
||||
## [3.6.1] - 2022-11-27
|
||||
### Changed
|
||||
- Upgraded dependencies
|
||||
- Updated translations
|
||||
|
||||
### Fixed
|
||||
- Fixed error in export data (#499)
|
||||
- Fixed issues with reverse proxies (#495)
|
||||
- Fixed duplicated twitter tags (#496)
|
||||
|
||||
## [3.6.0] - 2022-06-20
|
||||
### Changed
|
||||
- Improved embedding on discord of large videos.
|
||||
- Releases are now compressed for faster downloads
|
||||
- Updated translations
|
||||
|
||||
### Fixed
|
||||
- Fixed deprecation notices on php >= 8
|
||||
- Fixed embed UA for Discord.
|
||||
- Fixed error with post_max_size = 0
|
||||
|
||||
### Removed
|
||||
- Support for php 7.2
|
||||
|
||||
## [3.5.1] - 2021-10-22
|
||||
### Changed
|
||||
- Fixed embed UA for Discord.
|
||||
- Updated translations.
|
||||
|
||||
## [3.5.0] - 2021-09-05
|
||||
### Added
|
||||
- Support for theme-park.dev themes.
|
||||
|
|
|
@ -71,7 +71,7 @@ return array(
|
|||
'host' => 'ad.example.com', // set the ldap host
|
||||
'port' => 389, // ldap port
|
||||
'base_domain' => 'dc=example,dc=com', // the base_dn string
|
||||
'search_filter' => '(&(objectClass=user)(sAMAccountName=????))', // ???? is replaced with user provided username
|
||||
'search_filter' => '(&((objectClass=user)(sAMAccountName=????)))', // ???? is replaced with user provided username
|
||||
'rdn_attribute' => 'sAMAccountName', // the attribute to use as username
|
||||
'service_account_dn' => 'cn=xbackbone,cn=Users,dc=example,dc=com', // LDAP Service Account Full DN
|
||||
'service_account_password' => 'examplepassword',
|
||||
|
@ -191,6 +191,19 @@ return array(
|
|||
);
|
||||
```
|
||||
|
||||
+ Azure Blob Storage
|
||||
```php
|
||||
return array(
|
||||
...
|
||||
'storage' => array (
|
||||
'driver' => 'azure',
|
||||
'account_name' => 'the-storage-account-name',
|
||||
'account_key' => 'the-account-key',
|
||||
'container_name' => 'container-name',
|
||||
),
|
||||
);
|
||||
```
|
||||
|
||||
## Changing themes
|
||||
XBackBone supports all [bootswatch.com](https://bootswatch.com/) themes.
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ nav_order: 2
|
|||
# Installation
|
||||
|
||||
### Prerequisites
|
||||
XBackBone require PHP >= `7.3`, with installed the required extensions:
|
||||
XBackBone require PHP >= `7.2`, with installed the required extensions:
|
||||
+ `php-sqlite3` for SQLite.
|
||||
+ `php-mysql` for MariaDB/MySQL.
|
||||
+ `php-gd` image manipualtion library.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
((PHP_MAJOR_VERSION >= 7 && PHP_MINOR_VERSION >= 3) || PHP_MAJOR_VERSION > 7) ?: die('Sorry, PHP 7.3 or above is required to run XBackBone.');
|
||||
((PHP_MAJOR_VERSION >= 7 && PHP_MINOR_VERSION >= 2) || PHP_MAJOR_VERSION > 7) ?: die('Sorry, PHP 7.2 or above is required to run XBackBone.');
|
||||
require __DIR__.'/vendor/autoload.php';
|
||||
|
||||
define('BASE_DIR', realpath(__DIR__).DIRECTORY_SEPARATOR);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
((PHP_MAJOR_VERSION >= 7 && PHP_MINOR_VERSION >= 3) || PHP_MAJOR_VERSION > 7) ?: die('Sorry, PHP 7.3 or above is required to run XBackBone.');
|
||||
((PHP_MAJOR_VERSION >= 7 && PHP_MINOR_VERSION >= 2) || PHP_MAJOR_VERSION > 7) ?: die('Sorry, PHP 7.2 or above is required to run XBackBone.');
|
||||
require __DIR__.'/../vendor/autoload.php';
|
||||
|
||||
use App\Database\Migrator;
|
||||
|
@ -9,13 +9,13 @@ use App\Web\Session;
|
|||
use App\Web\View;
|
||||
use DI\Bridge\Slim\Bridge;
|
||||
use DI\ContainerBuilder;
|
||||
use function DI\factory;
|
||||
use function DI\get;
|
||||
use function DI\value;
|
||||
use League\Flysystem\FileExistsException;
|
||||
use Psr\Container\ContainerInterface as Container;
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use function DI\factory;
|
||||
use function DI\get;
|
||||
use function DI\value;
|
||||
|
||||
define('PLATFORM_VERSION', json_decode(file_get_contents(__DIR__.'/../composer.json'))->version);
|
||||
define('BASE_DIR', realpath(__DIR__.'/../').DIRECTORY_SEPARATOR);
|
||||
|
|
1830
package-lock.json
generated
1830
package-lock.json
generated
File diff suppressed because it is too large
Load diff
14
package.json
14
package.json
|
@ -1,26 +1,26 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^5.15.2",
|
||||
"bootstrap": "^4.6.1",
|
||||
"bootstrap": "^4.6.0",
|
||||
"bootstrap4-toggle": "^3.6.1",
|
||||
"clipboard": "^2.0.10",
|
||||
"dropzone": "^5.9.3",
|
||||
"clipboard": "^2.0.7",
|
||||
"dropzone": "^5.8.0",
|
||||
"highlightjs": "^9.16.2",
|
||||
"highlightjs-line-numbers.js": "^2.8.0",
|
||||
"jquery": "^3.6.0",
|
||||
"plyr": "^3.6.12",
|
||||
"plyr": "^3.6.4",
|
||||
"popper.js": "^1.16.1",
|
||||
"tooltip.js": "^1.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"grunt": "^1.5.3",
|
||||
"grunt-contrib-compress": "^2.0.0",
|
||||
"grunt": "^1.3.0",
|
||||
"grunt-contrib-copy": "^1.0.0",
|
||||
"grunt-contrib-cssmin": "^3.0.0",
|
||||
"grunt-contrib-jshint": "^3.1.1",
|
||||
"grunt-contrib-jshint": "^2.1.0",
|
||||
"grunt-contrib-uglify": "^4.0.1",
|
||||
"grunt-contrib-watch": "^1.1.0",
|
||||
"grunt-shell": "^3.0.1",
|
||||
"grunt-zip": "^0.18.2",
|
||||
"load-grunt-tasks": "^4.0.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,9 +17,9 @@ return [
|
|||
'pager.next' => 'التالي',
|
||||
'pager.previous' => 'السابق',
|
||||
'copy_link' => 'نسخ الرابط',
|
||||
'public.telegram' => 'شارك على تيليجرام',
|
||||
'public.delete_text' => 'هل أنت متأكد من أنك تريد حذف هذا العنصر؟ لن تتمكن من استعادته',
|
||||
'preview' => 'استعراض',
|
||||
'public.telegram' => 'مشاركة عبر تلغرام',
|
||||
'public.delete_text' => 'هل تريد بالتأكيد حذف هذا العنصر؟ سيحذف نهائيا!',
|
||||
'preview' => 'السابق',
|
||||
'filename' => 'اسم الملف',
|
||||
'size' => 'حجم',
|
||||
'public' => 'عام',
|
||||
|
@ -33,7 +33,7 @@ return [
|
|||
'hide' => 'إخفاء',
|
||||
'files' => 'ملفات',
|
||||
'theme' => 'سمة',
|
||||
'click_to_load' => 'انقر للتحميل…',
|
||||
'click_to_load' => 'انقر للتحميل...',
|
||||
'apply' => 'تطبيق',
|
||||
'save' => 'حفظ',
|
||||
'used' => 'مستخدَم',
|
||||
|
@ -59,13 +59,13 @@ return [
|
|||
'account_disabled' => 'حسابك معطل.',
|
||||
'welcome' => 'مرحبا، %s!',
|
||||
'goodbye' => 'وداعا!',
|
||||
'email_required' => 'عنوان البريد الإلكتروني مطلوب.',
|
||||
'email_taken' => 'عنوان البريد الإلكتروني قيد الاستخدام بالفعل.',
|
||||
'email_required' => 'البريد الإلكتروني مطلوب.',
|
||||
'email_taken' => 'البريد الإلكتروني قيد الاستخدام.',
|
||||
'username_required' => 'اسم المستخدم مطلوب.',
|
||||
'username_taken' => 'اسم المستخدم قيد الاستخدام.',
|
||||
'password_required' => 'كلمة المرور مطلوبة.',
|
||||
'user_created' => 'تم إنشاء المستخدم "٪s"!',
|
||||
'user_updated' => 'تم تحديث المستخدم "%s"!',
|
||||
'user_created' => 'المستخدم "%s" أنشئ!',
|
||||
'user_updated' => 'المستخدم "%s" تم تحديثه!',
|
||||
'profile_updated' => 'تم تحديث الملف الشخصي بنجاح!',
|
||||
'user_deleted' => 'تم حذف المستخدم.',
|
||||
'cannot_delete' => 'لا يمكنك حذف نفسك.',
|
||||
|
@ -73,8 +73,8 @@ return [
|
|||
'switch_to' => 'تبديل إلى',
|
||||
'gallery' => 'معرض',
|
||||
'table' => 'جدول',
|
||||
'dotted_search' => 'بحث…',
|
||||
'order_by' => 'ترتيب حسب…',
|
||||
'dotted_search' => 'بحث...',
|
||||
'order_by' => 'ترتيب حسب...',
|
||||
'time' => 'وقت',
|
||||
'name' => 'اسم',
|
||||
'maintenance' => 'صيانة',
|
||||
|
@ -88,7 +88,7 @@ return [
|
|||
'updates' => 'تحديثات',
|
||||
'cancel' => 'إلغاء',
|
||||
'auto_set' => 'حدد تلقائيا',
|
||||
'prerelease_channel' => 'قناة ما قبل الإصدار',
|
||||
'prerelease_channel' => 'قناة إصدار تجريبي',
|
||||
'drop_to_upload' => 'انقر أو اسحب ملفاتك هنا للرفع.',
|
||||
'donation' => 'تبرع',
|
||||
'remember_me' => 'تذكرني',
|
||||
|
@ -101,7 +101,7 @@ return [
|
|||
'password_recovery' => 'استعادة كلمة المرور',
|
||||
'no_account' => 'لا تملك حسابا؟',
|
||||
'register' => 'تسجيل',
|
||||
'register_success' => 'تم إنشاء الحساب، تم إرسال رسالة تأكيد عبر البريد الإلكتروني.',
|
||||
'register_success' => 'تم إنشاء الحساب، تم إرسال رسالة تأكيد إلكترونية.',
|
||||
'mail.activate_account' => '%s - تفعيل الحساب',
|
||||
'mail.recover_password' => '%s - استعادة كلمة المرور',
|
||||
'recover_email_sent' => 'إن وجد، سيتم إرسال رسالة إلكترونية لاستعادة كلمة المرور إلى الحساب المحدد.',
|
||||
|
@ -115,51 +115,6 @@ return [
|
|||
'clear_account' => 'مسح الحساب',
|
||||
'account_media_deleted' => 'كل الوسائط في الحساب تم حذفها.',
|
||||
'danger_zone' => 'منطقة خطرة',
|
||||
'send_notification' => 'إرسال إشعار بالبريد الإلكتروني',
|
||||
'send_notification' => 'إرسال رسالة إشعار إلكترونية',
|
||||
'mail.new_account' => '%s - إنشاء حساب جديد',
|
||||
'php_info' => 'معلومات الPHP',
|
||||
'enforce_language' => 'فرض اللغة',
|
||||
'image_embeds' => 'تضمين الصور',
|
||||
'token_not_found' => 'لم يتم العثور على الرمز المميز المحدد.',
|
||||
'clean_orphaned_uploads' => 'تنظيف التحميلات المعزولة',
|
||||
'show_all_tags' => 'إظهار جميع العلامات',
|
||||
'cannot_demote' => 'لا يمكنك تخفيض رتبتك.',
|
||||
'recaptcha_secret_key' => 'المفتاح السري reCAPTCHA',
|
||||
'recaptcha_failed' => 'فشل reCAPTCHA',
|
||||
'recaptcha_enabled' => 'تم تفعيل reCAPTCHA',
|
||||
'default_user_quota' => 'الحصة الافتراضية للمستخدم',
|
||||
'invalid_quota' => 'قيم غير صالحة كحصة مستخدم افتراضية.',
|
||||
'copy_url_behavior' => 'نسخ وضع الرابط',
|
||||
'token' => 'الرمز المميز',
|
||||
'vanity_url' => 'رابط مخصص',
|
||||
'orphaned_files' => 'الملفات المعزولة',
|
||||
'copied' => 'تم النسخ إلى الحافظة!',
|
||||
'client_config' => 'إعدادات العميل',
|
||||
'deleted_orphans' => 'تم حذف %d من الملفات المعزولة بنجاح.',
|
||||
'maintenance_in_progress' => 'المنصة تحت الصيانة، حاول مرة أخرى لاحقاً…',
|
||||
'default_lang_behavior' => 'سيحاول XBackBone مطابقة لغة المتصفح افتراضيا (الاحتياطي هو الإنجليزية).',
|
||||
'no_upload_token' => 'ليس لديك رمز مميز شخصي للتحميل. (قم بإنشاء واحد وحاول مرة أخرى.)',
|
||||
'donate_text' => 'إذا كنت تحب XBackBone، ففكر في التبرع لدعم التطوير!',
|
||||
'custom_head_html' => 'محتوى رأس HTML مخصص',
|
||||
'custom_head_html_hint' => 'ستتم إضافة هذا المحتوى عند علامة <head> في كل صفحة.',
|
||||
'custom_head_set' => 'تم تطبيق رأس HTML المخصص.',
|
||||
'max_user_quota' => 'الحد الأقصى لحصة المستخدم',
|
||||
'quota_enabled' => 'تفعيل حصة المستخدم',
|
||||
'recalculate_user_quota' => 'إعادة حساب حصة المستخدم من القرص',
|
||||
'mail.activate_text' => 'مرحبًا %s!<br>شكرًا لك على إنشاء حسابك على %s (<a href="%s">%s</a>)، انقر على الرابط التالي لتفعيله:<br><br><a href="%s">%s</a>',
|
||||
'quota_recalculated' => 'تمت إعادة حساب حصة المستخدم من القرص بنجاح.',
|
||||
'only_recaptcha_v3' => 'يتم دعم reCAPTCHA v3 فقط.',
|
||||
'recaptcha_site_key' => 'مفتاح موقع reCAPTCHA',
|
||||
'ldap_cant_connect' => 'لا يمكن الاتصال بخادم مصادقة LDAP.',
|
||||
'upload_max_file_size' => 'الحد الأقصى لحجم الملف حاليًا هو %s.',
|
||||
'zip_ext_not_loaded' => 'لم يتم تحميل الامتداد "zip" المطلوب',
|
||||
'no_tags' => 'لم تتم إضافة أي علامات',
|
||||
'changelog' => 'سجل التغيير',
|
||||
'show_changelog' => 'عرض سجل التغيير',
|
||||
'auto_tagging' => 'تحميل العلامات تلقائيًا',
|
||||
'recaptcha_keys_required' => 'جميع مفاتيح reCAPTCHA مطلوبة.',
|
||||
'user_create_password' => 'إذا تركت فارغة، فقد تحتاج إلى إرسال إعلام إلى عنوان البريد الإلكتروني للمستخدم.',
|
||||
'mail.recover_text' => 'مرحبًا %s،<br>لقد تم طلب إعادة تعيين كلمة المرور لحسابك. لإكمال الإجراء انقر على الرابط التالي:<br><br><a href="%s">%s</a><br><br>إذا لم تكن أنت من طلب إعادة تعيين كلمة المرور، فما عليك سوى تجاهل هذا البريد الإلكتروني.',
|
||||
'mail.new_account_text_with_reset' => 'مرحبًا %s!<br>تم إنشاء حساب جديد لك على %s (<a href="%s">%s</a>)، انقر على الرابط التالي لتعيين كلمة مرور وتنشيطها:<br ><br><a href="%s">%s</a>',
|
||||
'mail.new_account_text_with_pw' => 'مرحبًا %s!<br>تم إنشاء حساب جديد لك على %s (<a href="%s">%s</a>)، باستخدام بيانات الاعتماد التالية:<br><br>اسم المستخدم: %s <br>كلمة المرور: %s<br><br>انقر على الرابط التالي للانتقال إلى صفحة تسجيل الدخول:<br><a href="%s">%s</a>',
|
||||
];
|
||||
|
|
|
@ -19,7 +19,7 @@ return [
|
|||
'pager.previous' => 'Предишно',
|
||||
'copy_link' => 'Копирай линк',
|
||||
'public.telegram' => 'Сподели по Telegram',
|
||||
'public.delete_text' => 'Наистина ли искате да изтриете този елемент? Няма да можете да го възстановите',
|
||||
'public.delete_text' => 'Сигурни ли сте, че искате да изтриете това? Ще изчезне завинаги!',
|
||||
'preview' => 'Предварителен преглед',
|
||||
'filename' => 'Файлово име',
|
||||
'size' => 'Размер',
|
||||
|
@ -34,7 +34,7 @@ return [
|
|||
'files' => 'Файлове',
|
||||
'orphaned_files' => 'Загубени файлове',
|
||||
'theme' => 'Тема',
|
||||
'click_to_load' => 'Щракнете за зареждане…',
|
||||
'click_to_load' => 'Натиснете за да заредите...',
|
||||
'apply' => 'Приложи',
|
||||
'save' => 'Запомни',
|
||||
'used' => 'Използвано',
|
||||
|
@ -58,107 +58,15 @@ return [
|
|||
'installed' => 'Инсталацията завърши успешно!',
|
||||
'welcome' => 'Добре дошли, %s!',
|
||||
'goodbye' => 'Довиждане!',
|
||||
'email_required' => 'Изисква се имейл адрес.',
|
||||
'email_taken' => 'Имейл адресът вече се използва.',
|
||||
'email_required' => 'Имейлът е необходим.',
|
||||
'email_taken' => 'Имейлът вече се използва.',
|
||||
'username_required' => 'Потребителското име е необходимо.',
|
||||
'username_taken' => 'Потребителското име вече е заето.',
|
||||
'password_required' => 'Паролата е задължителна.',
|
||||
'password_required' => 'Паролата е необходима.',
|
||||
'user_created' => 'Потребител „%s“ бе създаден!',
|
||||
'user_updated' => 'Потребител „%s“ бе обновен!',
|
||||
'profile_updated' => 'Профилът бе обновен успешно!',
|
||||
'user_deleted' => 'Потребителят бе изтрит.',
|
||||
'cannot_delete' => 'Не можете да изтриете себе си.',
|
||||
'gallery' => 'Галерия',
|
||||
'image_embeds' => 'Вграждане на изображения',
|
||||
'bad_login' => 'Грешни идентификационни данни.',
|
||||
'account_disabled' => 'Вашият акаунт е деактивиран.',
|
||||
'copied' => 'Копирано в клипборда!',
|
||||
'none' => 'Нито един',
|
||||
'open' => 'Отвори',
|
||||
'token_not_found' => 'Посоченият токен не е намерен.',
|
||||
'cannot_demote' => 'Не можете да се понижавате.',
|
||||
'cannot_write_file' => 'Пътят на дестинацията не е за запис.',
|
||||
'deleted_orphans' => 'Успешно изтрити %d осиротели файла.',
|
||||
'switch_to' => 'Преминат към',
|
||||
'table' => 'Таблица',
|
||||
'time' => 'Време',
|
||||
'name' => 'Име',
|
||||
'maintenance' => 'Поддръжка',
|
||||
'clean_orphaned_uploads' => 'Изчистване на остарели качвания',
|
||||
'path_not_writable' => 'Изходният път не е за запис.',
|
||||
'already_latest_version' => 'Вече имате най-новата версия.',
|
||||
'new_version_available' => 'Налична е нова версия %s!',
|
||||
'cannot_retrieve_file' => 'Файлът не може да бъде извлечен.',
|
||||
'upgrade' => 'Подобряване',
|
||||
'updates' => 'Надстройки',
|
||||
'auto_set' => 'Задайте автоматично',
|
||||
'default_lang_behavior' => 'XBackBone ще се опита да съвпадне с езика на браузъра по подразбиране (резервният вариант е английски).',
|
||||
'donation' => 'Дарение',
|
||||
'donate_text' => 'Ако харесвате XBackBone, помислете за дарение в подкрепа на развитието!',
|
||||
'custom_head_html' => 'Персонализирано съдържание на HTML Head',
|
||||
'custom_head_html_hint' => 'Това съдържание ще бъде добавено към маркера <head> на всяка страница.',
|
||||
'custom_head_set' => 'Приложена е персонализирана HTML Head.',
|
||||
'remember_me' => 'Помни ме',
|
||||
'please_wait' => 'Моля изчакай…',
|
||||
'dont_close' => 'Не затваряйте този раздел до приключване.',
|
||||
'copy_url_behavior' => 'Режим на копиране на URL',
|
||||
'dotted_search' => 'Търсене…',
|
||||
'order_by' => 'Подредени по…',
|
||||
'file_size_no_match' => 'Изтегленият файл не съответства на правилния размер на файла.',
|
||||
'check_for_updates' => 'Провери за актуализации',
|
||||
'no_account' => 'Нямате акаунт?',
|
||||
'default_user_quota' => 'Потребителска квота по подразбиране',
|
||||
'register' => 'Регистрация',
|
||||
'max_user_quota' => 'Максимална потребителска квота',
|
||||
'invalid_quota' => 'Невалидни стойности като потребителска квота по подразбиране.',
|
||||
'account_activated' => 'Акаунтът е активиран, сега можете да влезете!',
|
||||
'quota_enabled' => 'Активиране на потребителска квота',
|
||||
'password_restored' => 'Нулиране на паролата.',
|
||||
'quota_recalculated' => 'Потребителската квота е преизчислена от диска успешно.',
|
||||
'delete_selected' => 'Изтрий избраното',
|
||||
'delete_all' => 'Изтриване на всички',
|
||||
'account_media_deleted' => 'Всички медии в акаунта са изтрити.',
|
||||
'danger_zone' => 'Опасна зона',
|
||||
'recaptcha_failed' => 'reCAPTCHA неуспешно',
|
||||
'recaptcha_enabled' => 'reCAPTCHA е активирана',
|
||||
'recaptcha_keys_required' => 'Всички ключове reCAPTCHA са задължителни.',
|
||||
'recaptcha_site_key' => 'Ключ на сайта reCAPTCHA',
|
||||
'send_notification' => 'Изпращане на известие по имейл',
|
||||
'mail.new_account' => '%s - Създаване на нов акаунт',
|
||||
'user_create_password' => 'Ако се остави празно, може да искате да изпратите известие до имейл адреса на потребителя.',
|
||||
'ldap_cant_connect' => 'Не може да се свърже към LDAP сървъра за удостоверяване.',
|
||||
'upload_max_file_size' => 'Максималният размер на файла в момента е %s.',
|
||||
'no_tags' => 'Няма добавени тагове',
|
||||
'auto_tagging' => 'Маркиране за автоматично качване',
|
||||
'zip_ext_not_loaded' => 'Необходимото разширение "zip" не е заредено',
|
||||
'changelog' => 'Регистър на промените',
|
||||
'show_changelog' => 'Показване на регистъра на промените',
|
||||
'register_success' => 'Акаунтът е създаден, изпратен е имейл за потвърждение.',
|
||||
'recover_email_sent' => 'Ако е налице, имейл за възстановяване е изпратен до посочения акаунт.',
|
||||
'mail.recover_password' => '%s - Възстановяване на парола',
|
||||
'php_info' => 'PHP информация',
|
||||
'system_settings' => 'Системни настройки',
|
||||
'upload' => 'Качване',
|
||||
'prerelease_channel' => 'Предварителен канал',
|
||||
'settings_saved' => 'Системните настройки са запазени!',
|
||||
'export_data' => 'Експортиране на данни',
|
||||
'cancel' => 'Отмяна',
|
||||
'no_upload_token' => 'Нямате личен токен за качване. (Генерирайте един и опитайте отново.)',
|
||||
'maintenance_in_progress' => 'Платформата е в процес на поддръжка, опитайте отново по-късно…',
|
||||
'drop_to_upload' => 'Щракнете или пуснете вашите файлове тук, за да ги качите.',
|
||||
'register_enabled' => 'Регистрациите са активирани',
|
||||
'hide_by_default' => 'Скриване на медиите по подразбиране',
|
||||
'password_recovery' => 'Възстановяване на парола',
|
||||
'mail.activate_text' => 'Здравейте %s!<br>благодаря ви, че създадохте своя акаунт в %s (<a href="%s">%s</a>), щракнете върху следната връзка, за да го активирате:<br><br>< a href="%s">%s</a>',
|
||||
'mail.activate_account' => '%s - Активиране на акаунт',
|
||||
'mail.recover_text' => 'Здравейте %s,<br>за вашия акаунт бе поискано нулиране на паролата. За да завършите процедурата, щракнете върху следната връзка:<br><br><a href="%s">%s</a><br><br>Ако не вие сте поискали нулирането на паролата, просто игнорирайте този имейл.',
|
||||
'password_match' => 'Паролата и повторната парола трябва да са еднакви.',
|
||||
'recalculate_user_quota' => 'Преизчисляване на потребителската квота от диска',
|
||||
'password_repeat' => 'Повтори паролата',
|
||||
'recaptcha_secret_key' => 'Секретен ключ на reCAPTCHA',
|
||||
'mail.new_account_text_with_reset' => 'Здравейте %s!<br>за вас беше създаден нов акаунт на %s (<a href="%s">%s</a>), щракнете върху следната връзка, за да зададете парола и да я активирате:<br ><br><a href="%s">%s</a>',
|
||||
'used_space' => 'Използвано пространство',
|
||||
'clear_account' => 'Изчистване на акаунта',
|
||||
'only_recaptcha_v3' => 'Поддържа се само reCAPTCHA v3.',
|
||||
'mail.new_account_text_with_pw' => 'Здравейте %s!<br>за вас бе създаден нов акаунт на %s (<a href="%s">%s</a>) със следните идентификационни данни:<br><br>Потребителско име: %s <br>Парола: %s<br><br>Щракнете върху следната връзка, за да отидете на страницата за вход:<br><a href="%s">%s</a>',
|
||||
];
|
||||
|
|
|
@ -1,163 +0,0 @@
|
|||
<?php
|
||||
return [
|
||||
'no_media' => 'Sense medis.',
|
||||
'raw' => 'Mostra raw',
|
||||
'lang' => 'Anglès',
|
||||
'enforce_language' => 'Aplicar idioma',
|
||||
'no' => 'No',
|
||||
'send' => 'Envia',
|
||||
'login.username' => 'Nom d\'usuari o Email',
|
||||
'password' => 'Contrasenya',
|
||||
'login' => 'Registre',
|
||||
'username' => 'Nom Usuari',
|
||||
'home' => 'Casa',
|
||||
'copy_link' => 'Copiar Link',
|
||||
'public.telegram' => 'Compartir a Telegram',
|
||||
'public.delete_text' => 'Segur que vols esborrar l\'element? No el podràs recuperar',
|
||||
'preview' => 'Vista prèvia',
|
||||
'filename' => 'Nom Arxiu',
|
||||
'size' => 'Mida',
|
||||
'public' => 'Public',
|
||||
'owner' => 'Propietari',
|
||||
'date' => 'Data',
|
||||
'upload' => 'Puja',
|
||||
'delete' => 'Esborra',
|
||||
'hide' => 'Oculta',
|
||||
'files' => 'Arxius',
|
||||
'orphaned_files' => 'Arxius orfes',
|
||||
'theme' => 'Tema',
|
||||
'click_to_load' => 'Click per pujar…',
|
||||
'apply' => 'Aplicar',
|
||||
'save' => 'Guardar',
|
||||
'used' => 'Usat',
|
||||
'php_info' => 'Informació PHP',
|
||||
'system_settings' => 'Opcions de Sistema',
|
||||
'user.create' => 'Crear Usuari',
|
||||
'user.edit' => 'Editar Usuari',
|
||||
'is_active' => 'Està Actiu',
|
||||
'is_admin' => 'és administrador',
|
||||
'your_profile' => 'el teu perfil',
|
||||
'token' => 'Token',
|
||||
'copy' => 'Copiar',
|
||||
'copied' => 'Copiat al portaretalls!',
|
||||
'client_config' => 'Configuració Client',
|
||||
'user_code' => 'Codi Usuari',
|
||||
'active' => 'Actiu',
|
||||
'reg_date' => 'Data Registre',
|
||||
'none' => 'Cap',
|
||||
'open' => 'Obert',
|
||||
'confirm' => 'Confirmació',
|
||||
'confirm_string' => 'Estàs segur?',
|
||||
'installed' => 'Instal·lació satisfactòria!',
|
||||
'bad_login' => 'Credencials Errònies.',
|
||||
'account_disabled' => 'Compte Deshabilitat.',
|
||||
'goodbye' => 'Adéu!',
|
||||
'token_not_found' => 'Token no trobat.',
|
||||
'email_taken' => 'Compte de correu en ús.',
|
||||
'username_required' => 'Nom usuari Requerit.',
|
||||
'username_taken' => 'Nom d\'usuari ja en ús.',
|
||||
'password_required' => 'Contrasenya requerida.',
|
||||
'user_created' => 'Usuari "%s" creat!',
|
||||
'user_updated' => 'Usuari "%s" actualitzat!',
|
||||
'profile_updated' => 'Perfil Actualitzat!',
|
||||
'user_deleted' => 'Usuari esborrat.',
|
||||
'cannot_delete' => 'No pots esborrar.-te.',
|
||||
'cannot_demote' => 'No et pots degradar.',
|
||||
'cannot_write_file' => 'No es pot escriure al path.',
|
||||
'deleted_orphans' => '%d Fitxers orfes esborrats.',
|
||||
'dotted_search' => 'Cerca…',
|
||||
'order_by' => 'Endreça per.…',
|
||||
'time' => 'Temps',
|
||||
'name' => 'Nom',
|
||||
'maintenance' => 'Manteniment',
|
||||
'clean_orphaned_uploads' => 'Neteja càrregues orfes',
|
||||
'path_not_writable' => 'No es pot escriure al path de sortida.',
|
||||
'already_latest_version' => 'Ja estàs a la darrera versió.',
|
||||
'new_version_available' => 'Nova versió %s disponible!',
|
||||
'cannot_retrieve_file' => 'No es pot recuperar el fitxer.',
|
||||
'file_size_no_match' => 'El fitxer baixat no coincideix amb la mida correcta del fitxer.',
|
||||
'upgrade' => 'Actualitza',
|
||||
'maintenance_in_progress' => 'En manteniment, torna-ho a provar més tard…',
|
||||
'cancel' => 'Cancel·la',
|
||||
'auto_set' => 'Estableix automàticament',
|
||||
'default_lang_behavior' => 'XBackBone intentarà fer coincidir l\'idioma del navegador de manera predeterminada (la alternativa és l\'anglès).',
|
||||
'prerelease_channel' => 'Canal de preestrena',
|
||||
'drop_to_upload' => 'Feu clic o deixeu anar els vostres fitxers aquí per carregar-los.',
|
||||
'donation' => 'Donatiu',
|
||||
'custom_head_html' => 'Contingut de capçalera HTML personalitzat',
|
||||
'custom_head_set' => 'Capçalera HTML personalitzada aplicada.',
|
||||
'remember_me' => 'Recorda\'m',
|
||||
'please_wait' => 'Esperi…',
|
||||
'dont_close' => 'No tanquis la pestanya.',
|
||||
'register_enabled' => 'Registres habilitats',
|
||||
'hide_by_default' => 'Amaga medis per defecte',
|
||||
'copy_url_behavior' => 'Mode copia URL',
|
||||
'password_recovery' => 'Recupera password',
|
||||
'no_account' => 'No tens compte?',
|
||||
'register' => 'Registre',
|
||||
'register_success' => 'S\'ha creat el compte, s\'ha enviat un correu electrònic de confirmació.',
|
||||
'default_user_quota' => 'Quota d\'usuari per defecte',
|
||||
'max_user_quota' => 'Quota màxima d\'usuari',
|
||||
'invalid_quota' => 'Valors no vàlids com a quota d\'usuari predeterminada.',
|
||||
'mail.activate_account' => '%s - Activació del compte',
|
||||
'mail.recover_password' => '%s - Recuperació de la contrasenya',
|
||||
'recover_email_sent' => 'Si existeix, s\'enviarà un correu electrònic de recuperació al compte especificat.',
|
||||
'account_activated' => 'Compte activat, ara pots iniciar sessió!',
|
||||
'quota_enabled' => 'Activa la quota d\'usuari',
|
||||
'password_repeat' => 'Repeteix Contrasenya',
|
||||
'password_match' => 'Les contrasenyes han de coincidir.',
|
||||
'password_restored' => 'Contrasenya restablerta.',
|
||||
'recalculate_user_quota' => 'Torneu a calcular la quota d\'usuari del disc',
|
||||
'quota_recalculated' => 'La quota d\'usuari s\'ha recalculat des del disc correctament.',
|
||||
'used_space' => 'Espai Utilitzat',
|
||||
'delete_selected' => 'Esborra seleccionat',
|
||||
'delete_all' => 'Esborra Tot',
|
||||
'clear_account' => 'Esborra el compte',
|
||||
'account_media_deleted' => 'S\'han suprimit tots els mitjans del compte.',
|
||||
'danger_zone' => 'Zona Perillosa',
|
||||
'recaptcha_failed' => 'reCAPTCHA Erroni',
|
||||
'recaptcha_keys_required' => 'Calen totes les claus reCAPTCHA.',
|
||||
'only_recaptcha_v3' => 'Només s\'admet reCAPTCHA v3.',
|
||||
'recaptcha_site_key' => 'Clau del lloc reCAPTCHA',
|
||||
'recaptcha_secret_key' => 'Clau secreta reCAPTCHA',
|
||||
'send_notification' => 'Envia notificació per e-mail',
|
||||
'mail.new_account' => '%s - Creació nou Compte',
|
||||
'users' => 'Usuaris',
|
||||
'system' => 'Sistema',
|
||||
'mail.new_account_text_with_pw' => 'Hola, %s!<br>s\'ha creat un compte nou a %s (<a href="%s">%s</a>), amb les credencials següents:<br><br>Nom d\'usuari: %s <br>Contrasenya: %s<br><br>Feu clic a l\'enllaç següent per anar a la pàgina d\'inici de sessió:<br><a href="%s">%s</a>',
|
||||
'user_create_password' => 'Si es deixa buit, és possible que vulgueu enviar una notificació a l\'adreça de correu electrònic de l\'usuari.',
|
||||
'ldap_cant_connect' => 'No es pot connectar al servidor d\'autenticació LDAP.',
|
||||
'upload_max_file_size' => 'La mida màxima del fitxer és actualment %s.',
|
||||
'no_tags' => 'Sense Etiquetes',
|
||||
'auto_tagging' => 'Etiquetatge de càrrega automàtica',
|
||||
'zip_ext_not_loaded' => 'L\'extensió "zip" necessària no està carregada',
|
||||
'changelog' => 'Codi de canvis',
|
||||
'show_changelog' => 'Mostra canvis',
|
||||
'image_embeds' => 'Insereix imatges',
|
||||
'yes' => 'Sí',
|
||||
'profile' => 'Perfil',
|
||||
'pager.previous' => 'Anterior',
|
||||
'logout' => 'Tancar Sessió',
|
||||
'pager.next' => 'Següent',
|
||||
'publish' => 'Publica',
|
||||
'download' => 'Descarrega',
|
||||
'update' => 'Actualitza',
|
||||
'admin' => 'Admin',
|
||||
'edit' => 'Edita',
|
||||
'welcome' => 'Benvolgut, %s!',
|
||||
'email_required' => 'Adreça email requerida.',
|
||||
'gallery' => 'Galeria',
|
||||
'switch_to' => 'Canvia a',
|
||||
'no_upload_token' => 'No tens cap testimoni de càrrega personal. (Genereu-ne un i torneu-ho a provar.)',
|
||||
'table' => 'Taula',
|
||||
'check_for_updates' => 'Comprova actualitzacions',
|
||||
'updates' => 'Actualitzacions',
|
||||
'donate_text' => 'Si t\'agrada XBackBone, considera una donació per donar suport al desenvolupament!',
|
||||
'settings_saved' => 'Opcions de sistema gravades!',
|
||||
'export_data' => 'Exporta dades',
|
||||
'custom_head_html_hint' => 'Aquest contingut s\'afegirà a l\'etiqueta <head> de cada pàgina.',
|
||||
'mail.activate_text' => 'Hola, %s!<br>gràcies per crear el vostre compte a %s (<a href="%s">%s</a>), feu clic a l\'enllaç següent per activar-lo:<br><br>< a href="%s">%s</a>',
|
||||
'mail.recover_text' => 'Hola %s,<br>s\'ha sol·licitat un restabliment de la contrasenya per al vostre compte. Per completar el procediment, feu clic a l\'enllaç següent:<br><br><a href="%s">%s</a><br><br>Si no heu estat vosaltres qui heu sol·licitat la restabliment de la contrasenya, simplement ignora aquest correu electrònic.',
|
||||
'recaptcha_enabled' => 'reCAPTCHA Habilitat',
|
||||
'mail.new_account_text_with_reset' => 'Hola, %s!<br>s\'ha creat un compte nou a %s (<a href="%s">%s</a>), feu clic a l\'enllaç següent per establir una contrasenya i activar-la:<br ><br><a href="%s">%s</a>',
|
||||
];
|
|
@ -113,8 +113,8 @@ return [
|
|||
'mail.new_account_text_with_reset' => 'Zdravíme, %s!<br>Byl pro vás vytvořen nový účet na %s (<a href="%s">%s</a>). Klikněte na následující odkaz pro nastavení hesla a aktivaci účtu:<br><br><a href="%s">%s</a>',
|
||||
'mail.new_account' => '%s - tvorba nového účtu',
|
||||
'send_notification' => 'Poslat e-mailové oznámení',
|
||||
'recaptcha_secret_key' => 'reCAPTCHA Tajný klíč',
|
||||
'recaptcha_site_key' => 'reCAPTCHA Webový Klíč',
|
||||
'recaptcha_secret_key' => 'reCAPTCHA Secret Key',
|
||||
'recaptcha_site_key' => 'reCAPTCHA Site Key',
|
||||
'only_recaptcha_v3' => 'Je podporována pouze reCAPTCHA v3.',
|
||||
'recaptcha_keys_required' => 'Jsou vyžadovány všechny klíče reCAPTCHA.',
|
||||
'recaptcha_enabled' => 'reCAPTCHA povolena',
|
||||
|
@ -159,5 +159,4 @@ return [
|
|||
'donation' => 'Přispět',
|
||||
'drop_to_upload' => 'Klikněte nebo sem přetáhněte soubory pro nahrání.',
|
||||
'no_upload_token' => 'Nemáte osobní nahrávací token. (Vygenerujte si jej a zkuste to znovu.)',
|
||||
'image_embeds' => 'Vložené obrázky',
|
||||
];
|
||||
|
|
|
@ -18,7 +18,7 @@ return [
|
|||
'pager.previous' => 'Forrige',
|
||||
'copy_link' => 'Kopier link',
|
||||
'public.telegram' => 'Del på Telegram',
|
||||
'public.delete_text' => 'Er du sikker på, at du vil slette dette element? Du vil ikke være i stand til at gendanne den',
|
||||
'public.delete_text' => 'Er du sikker på du vil slette dette element? Du vil ikke kunne gendanne det',
|
||||
'preview' => 'Forhåndsvisning',
|
||||
'filename' => 'Filnavn',
|
||||
'size' => 'Størrelse',
|
||||
|
@ -68,19 +68,19 @@ return [
|
|||
'remember_me' => 'Husk mig',
|
||||
'custom_head_html' => 'Tilpasset HTML Head indhold',
|
||||
'donate_text' => 'Hvis du kan lide XBackBone, kan du overveje en donation for at støtte udviklingen!',
|
||||
'donation' => 'Donering',
|
||||
'donation' => 'Donation',
|
||||
'drop_to_upload' => 'Klik eller slip dine filer her for at uploade.',
|
||||
'auto_set' => 'Sæt automatisk',
|
||||
'auto_set' => 'Indstil automatisk',
|
||||
'cancel' => 'Annuller',
|
||||
'maintenance_in_progress' => 'Platformen er under vedligeholdelse, prøv igen senere…',
|
||||
'updates' => 'Opdateringer',
|
||||
'upgrade' => 'Opgrader',
|
||||
'check_for_updates' => 'Søg efter opdateringer',
|
||||
'file_size_no_match' => 'Den downloadede fil matcher ikke den korrekte filstørrelse.',
|
||||
'cannot_retrieve_file' => 'Filen kan ikke hentes.',
|
||||
'cannot_retrieve_file' => 'Kan ikke hente filen.',
|
||||
'new_version_available' => 'Ny version %s tilgængelig!',
|
||||
'already_latest_version' => 'Du har allerede den seneste version.',
|
||||
'maintenance' => 'Vedligeholdelse',
|
||||
'maintenance' => 'Vedligehold',
|
||||
'name' => 'Navn',
|
||||
'time' => 'Tid',
|
||||
'order_by' => 'Sorter efter…',
|
||||
|
@ -92,14 +92,14 @@ return [
|
|||
'cannot_demote' => 'Du kan ikke degradere dig selv.',
|
||||
'cannot_delete' => 'Du kan ikke slette dig selv.',
|
||||
'user_deleted' => 'Bruger slettet.',
|
||||
'profile_updated' => 'Profilen blev opdateret!',
|
||||
'password_required' => 'Adgangskoden er påkrævet.',
|
||||
'profile_updated' => 'Profil opdateret!',
|
||||
'password_required' => 'Adgangskoden er krævet.',
|
||||
'username_taken' => 'Brugernavnet er allerede i brug.',
|
||||
'username_required' => 'Brugernavnet er påkrævet.',
|
||||
'username_required' => 'Brugernavnet er krævet.',
|
||||
'goodbye' => 'Farvel!',
|
||||
'welcome' => 'Velkommen, %s!',
|
||||
'account_disabled' => 'Din konto er deaktiveret.',
|
||||
'bad_login' => 'Forkerte loginoplysninger.',
|
||||
'account_disabled' => 'Din konto er slået fra.',
|
||||
'bad_login' => 'Forkerte legitimationsoplysninger.',
|
||||
'installed' => 'Installationen blev gennemført!',
|
||||
'confirm_string' => 'Er du sikker?',
|
||||
'confirm' => 'Bekræftelse',
|
||||
|
@ -117,48 +117,6 @@ return [
|
|||
'token' => 'Nøgle',
|
||||
'system_settings' => 'Systemindstillinger',
|
||||
'php_info' => 'PHP Informationer',
|
||||
'upload' => 'Overfør',
|
||||
'enforce_language' => 'Håndhæve sproget',
|
||||
'deleted_orphans' => 'Slettet %d forældreløse filer.',
|
||||
'default_lang_behavior' => 'XBackBone vil prøve at matche browsersproget som standard (tilbagefaldet er Engelsk).',
|
||||
'prerelease_channel' => 'Forhåndsudgivelse Kanal',
|
||||
'token_not_found' => 'Den angivne token blev ikke fundet.',
|
||||
'clean_orphaned_uploads' => 'Fjern forældreløse overførsler',
|
||||
'custom_head_set' => 'Brugerdefineret HTML-hoved anvendt.',
|
||||
'dont_close' => 'Luk ikke denne fane, før den er færdig.',
|
||||
'default_user_quota' => 'Standard bruger plads',
|
||||
'max_user_quota' => 'Max bruger plads',
|
||||
'invalid_quota' => 'Ugyldige værdier som standard bruger plads.',
|
||||
'mail.activate_account' => '%s - Aktivering af konto',
|
||||
'mail.recover_password' => '%s - Gendan adgangskode',
|
||||
'password_restored' => 'Nulstil kodeord.',
|
||||
'recalculate_user_quota' => 'Genberegn bruger plads fra disk',
|
||||
'quota_recalculated' => 'Bruger pladsen genberegnet fra disken med succes.',
|
||||
'account_media_deleted' => 'Alle medier på kontoen er blevet slettet.',
|
||||
'danger_zone' => 'Farligt område',
|
||||
'recaptcha_keys_required' => 'Alle reCAPTCHA nøgler er påkrævet.',
|
||||
'recaptcha_site_key' => 'reCAPTCHA webstedsnøgle',
|
||||
'recaptcha_secret_key' => 'reCAPTCHA hemmelig nøgle',
|
||||
'mail.new_account_text_with_reset' => 'Hej %s!<br>en ny konto blev oprettet til dig den %s (<a href="%s">%s</a>), klik på følgende link for at indstille en adgangskode og aktivere den:<br><br><a href="%s">%s</a>',
|
||||
'user_create_password' => 'Hvis den efterlades tom, vil det være en god idé selv at sende en meddelelse til brugerens e-mailadresse.',
|
||||
'ldap_cant_connect' => 'Kan ikke oprette forbindelse til LDAP-godkendelsesserveren.',
|
||||
'upload_max_file_size' => 'Den maksimale filstørrelse er i øjeblikket %s.',
|
||||
'no_tags' => 'Ingen tags tilføjet',
|
||||
'auto_tagging' => 'Automatisk upload tagging',
|
||||
'zip_ext_not_loaded' => 'Den nødvendige "zip"-udvidelse er ikke indlæst',
|
||||
'changelog' => 'Ændringslog',
|
||||
'show_changelog' => 'Vis ændringslog',
|
||||
'no_upload_token' => 'Du har ikke et personligt upload token. (Generer en og prøv igen.)',
|
||||
'custom_head_html_hint' => 'Dette indhold vil blive tilføjet ved <head> tagget på hver side.',
|
||||
'register_success' => 'Kontoen er oprettet, en bekræftelses-e-mail er blevet sendt.',
|
||||
'quota_enabled' => 'Aktiver brugerkvote',
|
||||
'mail.activate_text' => 'Hej %s!<br>tak fordi du oprettede din konto på %s (<a href="%s">%s</a>), klik på følgende link for at aktivere den:<br><br><a href="%s">%s</a>',
|
||||
'mail.recover_text' => 'Hej %s,<br>der er blevet anmodet om en nulstilling af adgangskoden til din konto. For at fuldføre proceduren, klik på følgende link:<br><br><a href="%s">%s</a><br><br>Hvis det ikke var dig, der anmodede om nulstilling af adgangskoden, skal du blot ignorere denne e-mail.',
|
||||
'recover_email_sent' => 'Hvis tilstede, blev der sendt en gendannelses-e-mail til den angivne konto.',
|
||||
'password_match' => 'Adgangskode og den gentaget adgangskode skal være ens.',
|
||||
'clear_account' => 'Ryd Konto',
|
||||
'only_recaptcha_v3' => 'Kun reCAPTCHA v3 understøttes.',
|
||||
'image_embeds' => 'Integrer billeder',
|
||||
'mail.new_account_text_with_pw' => 'Hej %s!<br>en ny konto blev oprettet til dig den %s (<a href="%s">%s</a>), med følgende oplysninger:<br><br>Brugernavn: %s<br>Adgangskode: %s<br><br>Klik på følgende link for at gå til login-siden:<br><a href="%s">%s</a>',
|
||||
'path_not_writable' => 'Outputstien er ikke skrivbar.',
|
||||
'upload' => 'Upload',
|
||||
'enforce_language' => 'Håndhæv sprog',
|
||||
];
|
||||
|
|
|
@ -54,7 +54,7 @@ return [
|
|||
'reg_date' => 'Registrierungsdatum',
|
||||
'none' => 'keine',
|
||||
'open' => 'Öffnen',
|
||||
'confirm' => 'Bestätigen',
|
||||
'confirm' => 'Bestätigung',
|
||||
'confirm_string' => 'Bist du sicher?',
|
||||
'installed' => 'Installation erfolgreich abgeschlossen!',
|
||||
'bad_login' => 'Falsche Anmeldeinformationen.',
|
||||
|
@ -153,7 +153,6 @@ return [
|
|||
'mail.new_account' => '%s – Erstellung von Konto',
|
||||
'user_create_password' => 'Wenn das leer bleibt, wollen Sie vielleicht eine Benachrichtigung an die Benutzer per E-Mail senden.',
|
||||
'no_tags' => 'Keine Tags hinzugefügt',
|
||||
'show_all_tags' => 'Alle Tags anzeigen',
|
||||
'upload_max_file_size' => 'Die maximale Dateigröße beträgt derzeit %s.',
|
||||
'ldap_cant_connect' => 'Es kann keine Verbindung zum LDAP-Auth-Server hergestellt werden.',
|
||||
'zip_ext_not_loaded' => 'Die zip-Erweiterung ist erforderlich',
|
||||
|
@ -166,5 +165,4 @@ return [
|
|||
'changelog' => 'Änderungsprotokoll',
|
||||
'copied' => 'In Zwischenablage kopiert!',
|
||||
'image_embeds' => 'Bilder einbetten',
|
||||
'vanity_url' => 'Benutzerdefinierte URL',
|
||||
];
|
||||
|
|
4
resources/lang/en.lang.php
Executable file → Normal file
4
resources/lang/en.lang.php
Executable file → Normal file
|
@ -30,8 +30,6 @@ return [
|
|||
'download' => 'Download',
|
||||
'upload' => 'Upload',
|
||||
'delete' => 'Delete',
|
||||
'confirm' => 'Confirm',
|
||||
'vanity_url' => 'Custom URL',
|
||||
'publish' => 'Publish',
|
||||
'hide' => 'Hide',
|
||||
'files' => 'Files',
|
||||
|
@ -60,6 +58,7 @@ return [
|
|||
'reg_date' => 'Registration Date',
|
||||
'none' => 'None',
|
||||
'open' => 'Open',
|
||||
'confirm' => 'Confirmation',
|
||||
'confirm_string' => 'Are you sure?',
|
||||
'installed' => 'Installation completed successfully!',
|
||||
'bad_login' => 'Wrong credentials.',
|
||||
|
@ -156,7 +155,6 @@ return [
|
|||
'ldap_cant_connect' => 'Can\'t connect to the LDAP auth server.',
|
||||
'upload_max_file_size' => 'The max file size is currently %s.',
|
||||
'no_tags' => 'No tags added',
|
||||
'show_all_tags' => 'Show all tags',
|
||||
'auto_tagging' => 'Auto upload tagging',
|
||||
'zip_ext_not_loaded' => 'The required "zip" extension is not loaded',
|
||||
'changelog' => 'Changelog',
|
||||
|
|
|
@ -18,7 +18,7 @@ return [
|
|||
'pager.previous' => 'Previo',
|
||||
'copy_link' => 'Copiar enlace',
|
||||
'public.telegram' => 'Compartir en Telegram',
|
||||
'public.delete_text' => '¿Está seguro que desea borrar este elemento? No vas a poder recuperarlo',
|
||||
'public.delete_text' => '¿Está seguro que desea borrar este elemento? ¡Será borrado para siempre!',
|
||||
'preview' => 'Vista previa',
|
||||
'filename' => 'Nombre del archivo',
|
||||
'size' => 'Tamaño',
|
||||
|
@ -54,7 +54,7 @@ return [
|
|||
'reg_date' => 'Fecha de Registración',
|
||||
'none' => 'Ninguno',
|
||||
'open' => 'Abrir',
|
||||
'confirm' => 'Confirmar',
|
||||
'confirm' => 'Confirmación',
|
||||
'confirm_string' => '¿Está seguro?',
|
||||
'installed' => '¡Instalación completa!',
|
||||
'bad_login' => 'Credenciales incorrectas.',
|
||||
|
@ -129,8 +129,8 @@ return [
|
|||
'upload_max_file_size' => 'El tamaño máximo del archivo es actualmente %s.',
|
||||
'ldap_cant_connect' => 'No se puede conectar con el servidor de autentificación LDAP.',
|
||||
'user_create_password' => 'Si se deja vacío, es posible que desee enviar una notificación a la dirección de correo electrónico del usuario.',
|
||||
'mail.new_account_text_with_pw' => '¡Hola %s!<br>se ha creado una nueva cuenta para ti en %s (<a href="%s">%s</a>), haz clic en el siguiente enlace para establecer una contraseña y activarla:<br><br><a href="%s">%s</a>',
|
||||
'mail.new_account_text_with_reset' => '¡Hola, %s!<br>Se creó una nueva cuenta para ti en %s (<a href="%s">%s</a>), haz clic en el siguiente enlace para establecer una contraseña y activarla:<br ><br><a href="%s">%s</a>',
|
||||
'mail.new_account_text_with_pw' => 'Hola %s!<br>se ha creado una nueva cuenta para ti en %s (<a href="%s">%s</a>), haz clic en el siguiente enlace para establecer una contraseña y activarla:<br><br><a href="%s">%s</a>',
|
||||
'mail.new_account_text_with_reset' => 'Hola %s!<br>se ha creado una nueva cuenta para ti en %s (<a href="%s">%s</a>), haz clic en el siguiente enlace para establecer una contraseña y activarla:<br><br><a href="%s">%s</a>',
|
||||
'recaptcha_enabled' => 'reCAPTCHA activado',
|
||||
'account_media_deleted' => 'Se han eliminado todos los archivos de la cuenta.',
|
||||
'clear_account' => 'Limpiar cuenta',
|
||||
|
@ -144,7 +144,7 @@ return [
|
|||
'mail.recover_text' => 'Hola %s,<br>se ha solicitado el restablecimiento de la contraseña de su cuenta. Para completar el procedimiento haga clic en el siguiente enlace:<br><br><a href="%s">%s</a><br>Si no fue usted quien solicitó el restablecimiento de la contraseña, simplemente ignore este correo electrónico.',
|
||||
'mail.activate_text' => 'Hola %s!<br>gracias por crear tu cuenta en %s (<a href="%s">%s</a>), haz clic en el siguiente enlace para activarla:<br><br><a href="%s">%s</a>',
|
||||
'invalid_quota' => 'Valores no válidos como cuota de usuario por defecto.',
|
||||
'max_user_quota' => 'Cuota máxima del usuario',
|
||||
'max_user_quota' => 'Cuota máxima del usuario',
|
||||
'default_user_quota' => 'Cuota de usuarios por defecto',
|
||||
'register' => 'Registrarse',
|
||||
'no_account' => '¿No tienes cuenta?',
|
||||
|
@ -160,11 +160,4 @@ return [
|
|||
'custom_head_html_hint' => 'Este contenido se añadirá en la etiqueta <head> de cada página.',
|
||||
'custom_head_html' => 'Contenido personalizado del encabezado HTML',
|
||||
'image_embeds' => 'Incrustar imágenes',
|
||||
'recaptcha_keys_required' => 'Todas las claves reCAPTCHA son requeridas.',
|
||||
'recaptcha_secret_key' => 'Clave secreta de reCAPTCHA',
|
||||
'recaptcha_site_key' => 'Clave del sitio reCAPTCHA',
|
||||
'only_recaptcha_v3' => 'Solo reCAPTCHA v3 está soportado.',
|
||||
'custom_head_set' => 'Cabecera HTML personalizada aplicada.',
|
||||
'vanity_url' => 'URL personalizada',
|
||||
'show_all_tags' => 'Mostrar todas las etiquetas',
|
||||
];
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
<?php
|
||||
return [
|
||||
'lang' => 'انگلیسی',
|
||||
'login.username' => 'نام کاربری یا صندوق پستی الکترونیک',
|
||||
'enforce_language' => 'اجرا کردن زبان',
|
||||
'yes' => 'بله',
|
||||
'send' => 'ارسال',
|
||||
'no_media' => 'رسانه ای یافت نشد .',
|
||||
'home' => 'خانه',
|
||||
'users' => 'کاربران',
|
||||
'system' => 'سیستم',
|
||||
'profile' => 'حساب کاربری',
|
||||
'logout' => 'خارج شدن',
|
||||
'public.telegram' => 'اشتراک گذاری در تلگرام',
|
||||
'public.delete_text' => 'آیا مطمعن به حذف این آیتم هستید ؟ غیرقابل بازیابی بعد از حذف',
|
||||
'preview' => 'پیش نمایش',
|
||||
'size' => 'سایز',
|
||||
'public' => 'عمومی',
|
||||
'owner' => 'مالک',
|
||||
'date' => 'تاریخ',
|
||||
'no' => 'خیر',
|
||||
'password' => 'کلمه عبور',
|
||||
'login' => 'وارد شدن',
|
||||
'username' => 'نام کاربری',
|
||||
'pager.next' => 'بعدی',
|
||||
'pager.previous' => 'قبلی',
|
||||
'copy_link' => 'رونوشت از پیوند',
|
||||
'filename' => 'نام فایل',
|
||||
];
|
|
@ -17,7 +17,7 @@ return [
|
|||
'token_not_found' => 'Määritettyä tunnusta ei löydy.',
|
||||
'client_config' => 'Asiakasohjelman konfigurointi',
|
||||
'home' => 'Koti',
|
||||
'enforce_language' => 'Pakota kieli',
|
||||
'enforce_language' => 'Vahvista kieli',
|
||||
'cannot_demote' => 'Et voi alentaa itseäsi.',
|
||||
'cannot_delete' => 'Et voi poistaa itseäsi.',
|
||||
'user_deleted' => 'Käyttäjä poistettu.',
|
||||
|
@ -35,7 +35,7 @@ return [
|
|||
'bad_login' => 'Väärät kirjautumistiedot.',
|
||||
'installed' => 'Asennus suoritettu loppuun onnistuneesti!',
|
||||
'confirm_string' => 'Oletko varma?',
|
||||
'confirm' => 'Vahvista',
|
||||
'confirm' => 'Vahvistus',
|
||||
'open' => 'Auki',
|
||||
'none' => 'Ei mitään',
|
||||
'reg_date' => 'Rekisteröitymis päivä',
|
||||
|
@ -91,74 +91,4 @@ return [
|
|||
'no' => 'Ei',
|
||||
'yes' => 'Kyllä',
|
||||
'lang' => 'Englanti',
|
||||
'recaptcha_enabled' => 'reCAPTCHA Käytössä',
|
||||
'cancel' => 'Peruuta',
|
||||
'send_notification' => 'Lähetä sähköpostivahvistus',
|
||||
'auto_set' => 'Määritä automaattisesti',
|
||||
'drop_to_upload' => 'Lähetä tiedostosi painamalla tai tiputtamalla tähän.',
|
||||
'account_activated' => 'Käyttäjä aktivoitu, voit nyt kirjautua sisään!',
|
||||
'used_space' => 'Käytetty Tila',
|
||||
'delete_selected' => 'Poista Valitut',
|
||||
'delete_all' => 'Poista Kaikki',
|
||||
'danger_zone' => 'Vaarallinen Alue',
|
||||
'recaptcha_failed' => 'reCAPTCHA Epäonnistui',
|
||||
'only_recaptcha_v3' => 'Vain reCAPTCHA v3 on tuettu.',
|
||||
'upload_max_file_size' => 'Suurin tiedostokoko on tällä hetkellä %s.',
|
||||
'changelog' => 'Muutosloki',
|
||||
'show_changelog' => 'Näytä muutosloki',
|
||||
'please_wait' => 'Odota…',
|
||||
'hide_by_default' => 'Piilota media oletuksena',
|
||||
'settings_saved' => 'Järjestelmäasetukset tallennettu!',
|
||||
'export_data' => 'Vie dataa',
|
||||
'dont_close' => 'Älä sulje tätä välilehteä ennen kuin on valmista.',
|
||||
'donation' => 'Lahjoitus',
|
||||
'donate_text' => 'Jos tykkäät XBackBone-sovelluksesta, harkitse lahjoittamista kannattaaksesi sovelluksen ohjelmointia/kehittämistä!',
|
||||
'table' => 'Pöytä',
|
||||
'check_for_updates' => 'Tarkista päivitykset',
|
||||
'upgrade' => 'Päivitä',
|
||||
'updates' => 'Päivitykset',
|
||||
'maintenance_in_progress' => 'Alusta huollossa, yritä myöhemmin uudelleen…',
|
||||
'password_recovery' => 'Palauta salasana',
|
||||
'no_account' => 'Eikö sinulla ole käyttäjää?',
|
||||
'register' => 'Rekisteröidy',
|
||||
'register_success' => 'Käyttäjä on luotu, vahvistussähköposti on lähetetty.',
|
||||
'mail.recover_password' => '%s - Salasanan Palautus',
|
||||
'password_repeat' => 'Toista salasana',
|
||||
'password_match' => 'Salasanan ja uudelleenkirjoitetun salasanan täytyy olla sama.',
|
||||
'password_restored' => 'Salana nollattu.',
|
||||
'image_embeds' => 'Kuvien upottaminen',
|
||||
'recalculate_user_quota' => 'Käyttäjäkiintiön laskeminen uudelleen levyltä',
|
||||
'quota_recalculated' => 'Käyttäjäkiintiö lasketaan uudelleen levyltä onnistuneesti.',
|
||||
'recaptcha_secret_key' => 'reCAPTCHA:n salainen avain',
|
||||
'recaptcha_keys_required' => 'Kaikki reCAPTCHA-näppäimet ovat pakollisia.',
|
||||
'mail.new_account' => '%s - Uuden tilin luominen',
|
||||
'no_tags' => 'Tunnisteita ei ole lisätty',
|
||||
'auto_tagging' => 'Automaattisen latauksen taggaus',
|
||||
'zip_ext_not_loaded' => 'Vaadittua "zip" -laajennusta ei ladata',
|
||||
'remember_me' => 'Muista minut',
|
||||
'copy_url_behavior' => 'Kopioi URL-osoite -tila',
|
||||
'register_enabled' => 'Rekisteröinnit käytössä',
|
||||
'no_upload_token' => 'Sinulla ei ole henkilökohtaista lataustunnusta. (Luo sellainen ja yritä uudelleen.)',
|
||||
'custom_head_html_hint' => 'Tämä sisältö lisätään <head> jokaisen sivun tunnisteeseen.',
|
||||
'custom_head_set' => 'Mukautettu HTML-pää käytössä.',
|
||||
'file_size_no_match' => 'Ladattu tiedosto ei vastaa oikeaa tiedostokokoa.',
|
||||
'prerelease_channel' => 'Ennakkojulkaisukanava',
|
||||
'default_user_quota' => 'Käyttäjän oletuskiintiö',
|
||||
'max_user_quota' => 'Käyttäjän enimmäiskiintiö',
|
||||
'mail.activate_account' => '%s - Tilin aktivointi',
|
||||
'recover_email_sent' => 'Jos sellainen on, tietylle tilille lähetettiin palautussähköpostiviesti.',
|
||||
'clear_account' => 'Tyhjennä tili',
|
||||
'user_create_password' => 'Jos sinut jätetään tyhjäksi, sinun kannattaa ehkä lähettää ilmoitus käyttäjän sähköpostiosoitteeseen.',
|
||||
'default_lang_behavior' => 'XBackBone yrittää oletusarvoisesti vastata selaimen kieltä (vara on englanti).',
|
||||
'mail.activate_text' => 'Hei %s! <br>kiitos, että loit tilisi %s(<a href="%s":lle">%s</a>), napsauta seuraavaa linkkiä aktivoidaksesi sen:<br><br><a href="%s">%s</a>',
|
||||
'account_media_deleted' => 'Kaikki tilin mediat on poistettu.',
|
||||
'mail.new_account_text_with_reset' => 'Hei %s! <br>sinulle luotiin uusi tili %s(<a href="%s">%s</a>), napsauta seuraavaa linkkiä asettaaksesi salasanan ja aktivoidaksesi sen:<br><br><a href="%s">%s</a>',
|
||||
'mail.new_account_text_with_pw' => 'Hei %s! <br>sinulle luotiin uusi tili %s(<a href="%s">%s</a>), jolla on seuraavat tunnistetiedot:<br><br>Käyttäjänimi: %s<br>Salasana: %s<br><br>Napsauta seuraavaa linkkiä siirtyäksesi kirjautumissivulle:<br><a href="%s">%s</a>',
|
||||
'ldap_cant_connect' => 'Yhteyden muodostaminen LDAP-todennuspalvelimeen ei onnistu.',
|
||||
'recaptcha_site_key' => 'reCAPTCHA-sivuston avain',
|
||||
'custom_head_html' => 'Mukautettu HTML Head -sisältö',
|
||||
'invalid_quota' => 'Virheelliset arvot oletuskäyttäjäkiintiönä.',
|
||||
'mail.recover_text' => 'Hei %s, <br>tilillesi on pyydetty salasanan palautusta. Suorita toimenpide napsauttamalla seuraavaa linkkiä:<br><br><a href="%s">%s</a><br><br>Jos et ollut sinä, joka pyysit salasanan vaihtamista, ohita tämä sähköposti.',
|
||||
'quota_enabled' => 'Käyttäjäkiintiön ottaminen käyttöön',
|
||||
'vanity_url' => 'Mukautettu URL',
|
||||
];
|
||||
|
|
|
@ -54,7 +54,7 @@ return [
|
|||
'reg_date' => 'Date d\'inscription',
|
||||
'none' => 'Aucun',
|
||||
'open' => 'Ouvrir',
|
||||
'confirm' => 'Confirmer',
|
||||
'confirm' => 'Confirmation',
|
||||
'confirm_string' => 'Êtes-vous sûr·e ?',
|
||||
'installed' => 'L\'installation s\'est déroulée avec succès !',
|
||||
'bad_login' => 'Identifiant ou mot de passe incorrect.',
|
||||
|
@ -162,5 +162,4 @@ return [
|
|||
'zip_ext_not_loaded' => 'L\'extension zip requise n\'est pas chargée',
|
||||
'copied' => 'Copié dans le presse-papier !',
|
||||
'image_embeds' => 'Intégrer des images',
|
||||
'vanity_url' => 'URL personnalisée',
|
||||
];
|
||||
|
|
|
@ -64,7 +64,7 @@ return [
|
|||
'cancel' => 'Annuler',
|
||||
'maintenance_in_progress' => 'Plateforme en maintenance, réessayez plus tard…',
|
||||
'updates' => 'Mises à jour',
|
||||
'upgrade' => 'Mettre à niveau',
|
||||
'upgrade' => 'Mettre à jour',
|
||||
'check_for_updates' => 'Vérifier les mises à jour',
|
||||
'file_size_no_match' => 'Le fichier téléchargé n\'a pas la taille correcte.',
|
||||
'cannot_retrieve_file' => 'Impossible de retrouver le fichier.',
|
||||
|
@ -107,7 +107,7 @@ return [
|
|||
'lang' => 'Français (Canada)',
|
||||
'mail.new_account_text_with_pw' => 'Bonjour %s! <br> un nouveau compte a été créé pour vous sur %s (<a href="%s">% s</a>), avec les informations d\'identification suivantes : <br> <br> Nom d\'utilisateur :%s <br> Mot de passe :%s <br> <br> Cliquez sur le lien suivant pour accéder à la page de connexion : <br> <a href="%s">%s </a>',
|
||||
'maintenance' => 'Maintenance',
|
||||
'confirm' => 'Confirmer',
|
||||
'confirm' => 'Confirmation',
|
||||
'user_create_password' => 'Si laissé vide, vous souhaiterez peut-être envoyer une notification à l\'utilisateur par courriel.',
|
||||
'mail.new_account' => '%s – Création d\'un nouveau compte',
|
||||
'mail.recover_password' => '%s – Récupération de mot de passe',
|
||||
|
@ -160,5 +160,4 @@ return [
|
|||
'enforce_language' => 'Forcer la langue',
|
||||
'copied' => 'Copié dans le presse-papier!',
|
||||
'image_embeds' => 'Intégrer des images',
|
||||
'vanity_url' => 'URL personnalisée',
|
||||
];
|
||||
|
|
|
@ -158,7 +158,5 @@ return [
|
|||
'no' => 'Nem',
|
||||
'yes' => 'Igen',
|
||||
'enforce_language' => 'A nyelv érvényesítése',
|
||||
'lang' => 'Magyar',
|
||||
'image_embeds' => 'Képek beágyazása',
|
||||
'vanity_url' => 'Egyedi URL',
|
||||
'lang' => 'Angol',
|
||||
];
|
||||
|
|
|
@ -159,6 +159,4 @@ return [
|
|||
'password_match' => 'Kata sandi harus sama.',
|
||||
'custom_head_set' => 'Head HTML khusus diterapkan.',
|
||||
'path_not_writable' => 'Destinasi berkas tidak dapat ditulis.',
|
||||
'image_embeds' => 'Sematkan gambar',
|
||||
'vanity_url' => 'URL kostum',
|
||||
];
|
||||
|
|
|
@ -39,10 +39,10 @@ return [
|
|||
'save' => 'Salva',
|
||||
'used' => 'Usato',
|
||||
'system_info' => 'Informazioni di Sistema',
|
||||
'user.create' => 'Crea utente',
|
||||
'user.edit' => 'Modifica utente',
|
||||
'is_active' => 'È attivo',
|
||||
'is_admin' => 'È amministratore',
|
||||
'user.create' => 'Crea Utente',
|
||||
'user.edit' => 'Modifica Utente',
|
||||
'is_active' => 'Attivo',
|
||||
'is_admin' => 'Amministratore',
|
||||
'your_profile' => 'Il tuo profilo',
|
||||
'token' => 'Token',
|
||||
'copy' => 'Copia',
|
||||
|
@ -162,5 +162,4 @@ return [
|
|||
'show_changelog' => 'Mostra registro dei cambiamenti',
|
||||
'copied' => 'Copiato negli appunti!',
|
||||
'image_embeds' => 'Incorpora immagini',
|
||||
'vanity_url' => 'URL personalizzato',
|
||||
];
|
||||
|
|
|
@ -35,7 +35,7 @@ return [
|
|||
'files' => 'ファイル',
|
||||
'orphaned_files' => '所有者のいないファイル',
|
||||
'theme' => 'テーマ',
|
||||
'click_to_load' => 'クリックしてロード…',
|
||||
'click_to_load' => 'クリックしてロード...',
|
||||
'apply' => '適用',
|
||||
'save' => '保存',
|
||||
'system_info' => 'システム情報',
|
||||
|
@ -90,25 +90,4 @@ return [
|
|||
'system_settings' => 'システム設定',
|
||||
'php_info' => 'PHPの情報',
|
||||
'used' => '使用済み',
|
||||
'switch_to' => '転換する:',
|
||||
'table' => 'テーブル形',
|
||||
'name' => 'ファイル名順',
|
||||
'clean_orphaned_uploads' => '所有者のないファイルを削除',
|
||||
'already_latest_version' => 'もうすでに最新のXbackboneを使っています。',
|
||||
'check_for_updates' => '更新を確認',
|
||||
'updates' => '更新内容',
|
||||
'cancel' => 'キャンセル',
|
||||
'default_lang_behavior' => 'Xbackboneで使用者のブラウザの言語を自動的に検索(Defaultは英語).',
|
||||
'donation' => '支援',
|
||||
'donate_text' => '支援も受け入れていますので、Xbackboneが気に入った場合、よろしくお願いいたします!',
|
||||
'custom_head_html' => 'HTML Headのコンテンツをカスタマイズ',
|
||||
'register_enabled' => '登録を活性化',
|
||||
'order_by' => '…順',
|
||||
'custom_head_set' => 'HTML Headのカスタマイズが適用されました。',
|
||||
'copied' => 'コピーしました!',
|
||||
'custom_head_html_hint' => 'この部分に入力した内容は全てのページの<head></head>の中に入ります.',
|
||||
'remember_me' => 'ログイン情報を保存',
|
||||
'please_wait' => '少々お待ちください…',
|
||||
'dont_close' => '作業を完了する前にはこのタブを閉じないでください。',
|
||||
'no_upload_token' => 'アップロードのための個人トークンがありません。(まず新しく生成してもう一度試してください)',
|
||||
];
|
||||
|
|
|
@ -101,7 +101,7 @@ return [
|
|||
'account_disabled' => '당신의 계정은 비활성 상태입니다.',
|
||||
'bad_login' => '잘못된 자격증명입니다.',
|
||||
'installed' => '설치가 완료되었어요!',
|
||||
'confirm' => '확인',
|
||||
'confirm' => '재확인',
|
||||
'confirm_string' => '확실한가요?',
|
||||
'open' => '열기',
|
||||
'none' => '없음',
|
||||
|
@ -160,5 +160,4 @@ return [
|
|||
'yes' => '확인',
|
||||
'enforce_language' => '언어 설정',
|
||||
'lang' => 'Korean',
|
||||
'vanity_url' => '사용자 정의 URL',
|
||||
];
|
||||
|
|
|
@ -162,5 +162,4 @@ return [
|
|||
'mail.new_account' => '%s - Opprettelse av ny konto',
|
||||
'send_notification' => 'Send e-postmerknad',
|
||||
'copied' => 'Kopiert til utklippstavle.',
|
||||
'image_embeds' => 'Integrer bilder',
|
||||
];
|
||||
|
|
|
@ -54,7 +54,7 @@ return [
|
|||
'reg_date' => 'Registratiedatum',
|
||||
'none' => 'Geen',
|
||||
'open' => 'Open',
|
||||
'confirm' => 'Bevestig',
|
||||
'confirm' => 'Bevestiging',
|
||||
'confirm_string' => 'Weet je het zeker?',
|
||||
'installed' => 'Installatie succesvol voltooid!',
|
||||
'bad_login' => 'Verkeerde verificatiegegevens.',
|
||||
|
@ -101,9 +101,9 @@ return [
|
|||
'lang_name' => 'Taal',
|
||||
'default_lang_behavior' => 'XBackBone probeert standaard de taal van de browser te matchen (fallback is Engels).',
|
||||
'lang_set' => 'Systeemtaal "%s" afgedwongen',
|
||||
'show_changelog' => 'Wijzigingslog weergeven',
|
||||
'changelog' => 'Wijzigingslog',
|
||||
'zip_ext_not_loaded' => 'De vereiste "zip" extensie is niet geladen',
|
||||
'show_changelog' => 'Changelog weergeven',
|
||||
'changelog' => 'Changelog',
|
||||
'zip_ext_not_loaded' => 'De vereiste zip extensie is niet geladen',
|
||||
'auto_tagging' => 'Automatisch tags aanmaken',
|
||||
'no_tags' => 'Geen tags toegevoegd',
|
||||
'upload_max_file_size' => 'De maximale bestandsgrootte is momenteel %s.',
|
||||
|
@ -164,7 +164,4 @@ return [
|
|||
'php_info' => 'PHP Informatie',
|
||||
'upload' => 'Uploaden',
|
||||
'copied' => 'Gekopieerd naar klembord!',
|
||||
'vanity_url' => 'Eigen URL',
|
||||
'image_embeds' => 'Afbeeldingen insluiten',
|
||||
'show_all_tags' => 'Toon alle tags',
|
||||
];
|
||||
|
|
|
@ -21,7 +21,7 @@ return [
|
|||
'delete' => 'Usuń',
|
||||
'hide' => 'Ukryj',
|
||||
'files' => 'Pliki',
|
||||
'click_to_load' => 'Kliknij, aby załadować…',
|
||||
'click_to_load' => 'Kliknij, aby załadować...',
|
||||
'apply' => 'Zastosuj',
|
||||
'save' => 'Zapisz',
|
||||
'system_info' => 'Informacje o systemie',
|
||||
|
@ -38,7 +38,7 @@ return [
|
|||
'admin' => 'Admin',
|
||||
'reg_date' => 'Data rejestracji',
|
||||
'open' => 'Otwórz',
|
||||
'confirm' => 'Potwierdź',
|
||||
'confirm' => 'Potwierdzenie',
|
||||
'confirm_string' => 'Jesteś pewien?',
|
||||
'installed' => 'Instalacja zakończona pomyślnie!',
|
||||
'welcome' => 'Witaj, %s!',
|
||||
|
@ -80,8 +80,8 @@ return [
|
|||
'switch_to' => 'Przełącz na',
|
||||
'gallery' => 'Galeria',
|
||||
'table' => 'Tabela',
|
||||
'dotted_search' => 'Szukaj…',
|
||||
'order_by' => 'Sortuj…',
|
||||
'dotted_search' => 'Szukaj...',
|
||||
'order_by' => 'Sortuj...',
|
||||
'time' => 'Czas',
|
||||
'name' => 'Nazwa',
|
||||
'maintenance' => 'Konserwacja',
|
||||
|
@ -94,7 +94,7 @@ return [
|
|||
'check_for_updates' => 'Sprawdź aktualizacje',
|
||||
'upgrade' => 'Aktualizuj',
|
||||
'updates' => 'Aktualizacje',
|
||||
'maintenance_in_progress' => 'Trwają prace techniczne, spróbuj ponownie później…',
|
||||
'maintenance_in_progress' => 'Platforma w trakcie konserwacji, spróbuj ponownie później...',
|
||||
'cancel' => 'Anuluj',
|
||||
'auto_set' => 'Ustaw automatycznie',
|
||||
'default_lang_behavior' => 'XBackBone domyślnie spróbuje dopasować język przeglądarki (zastępczym jest Angielski).',
|
||||
|
@ -160,7 +160,4 @@ return [
|
|||
'mail.new_account_text_with_reset' => 'Cześć %s!<br>zostało utworzone nowe konto dla Ciebie na %s (<a href="%s">%s</a>), kliknij w poniższy link aby ustawić hasło i aktywować je:<br><br><a href="%s">%s</a>',
|
||||
'mail.recover_text' => 'Cześć %s,<br>została wysłana prośba o zresetowanie hasła do twojego konta. Aby zakończyć procedurę, kliknij w poniższy link:<br><br><a href="%s">%s</a><br><br>Jeśli to nie ty poprosiłeś o zresetowanie hasła, po prostu zignoruj ten e-mail.',
|
||||
'mail.activate_text' => 'Cześć %s!<br>dziękuję za utworzenie konta na %s (<a href="%s">%s</a>), kliknij w poniższy link, aby je aktywować:<br><br><a href="%s">%s</a>',
|
||||
'image_embeds' => 'Osadź obrazy',
|
||||
'copied' => 'Skopiowano!',
|
||||
'vanity_url' => 'Niestandardowy adres URL',
|
||||
];
|
||||
|
|
|
@ -26,7 +26,7 @@ return [
|
|||
'owner' => 'Dono',
|
||||
'date' => 'Data',
|
||||
'raw' => 'Mostrar raw',
|
||||
'download' => 'Descarregar',
|
||||
'download' => 'Transferir',
|
||||
'delete' => 'Apagar',
|
||||
'publish' => 'Publicar',
|
||||
'hide' => 'Esconder',
|
||||
|
@ -54,7 +54,7 @@ return [
|
|||
'reg_date' => 'Data de registo',
|
||||
'none' => 'Nenhum',
|
||||
'open' => 'Abrir',
|
||||
'confirm' => 'Confirmar',
|
||||
'confirm' => 'Confirmação',
|
||||
'confirm_string' => 'Tem a certeza?',
|
||||
'installed' => 'Instalação completa com sucesso!',
|
||||
'bad_login' => 'Login inválido.',
|
||||
|
@ -161,5 +161,4 @@ return [
|
|||
'register' => 'Registar',
|
||||
'settings_saved' => 'Definições de sistema guardadas!',
|
||||
'image_embeds' => 'Embutir imagens',
|
||||
'vanity_url' => 'URL personalizado',
|
||||
];
|
||||
|
|
|
@ -1,163 +0,0 @@
|
|||
<?php
|
||||
return [
|
||||
'login' => 'Autentificare',
|
||||
'password' => 'Parola',
|
||||
'lang' => 'Română',
|
||||
'enforce_language' => 'Aplică limba',
|
||||
'yes' => 'Da',
|
||||
'username' => 'Utilizator',
|
||||
'send' => 'Trimite',
|
||||
'no_media' => 'Nu s-a gasit media.',
|
||||
'login.username' => 'Utilizator sau E-Mail',
|
||||
'no' => 'Nu',
|
||||
'users' => 'Utilizatori',
|
||||
'system' => 'Sistem',
|
||||
'profile' => 'Profil',
|
||||
'pager.previous' => 'Anterior',
|
||||
'public.telegram' => 'Distribuie pe Telegram',
|
||||
'home' => 'Acasa',
|
||||
'logout' => 'Iesire',
|
||||
'pager.next' => 'Urmatorul',
|
||||
'copy_link' => 'Copiaza link-ul',
|
||||
'public.delete_text' => 'Esti sigur ca doresti sa stergi acest element? Nu il vei putea recupera',
|
||||
'preview' => 'Previzualizeaza',
|
||||
'filename' => 'Numele fisierului',
|
||||
'size' => 'Dimensiune',
|
||||
'public' => 'Public',
|
||||
'delete' => 'Elimina',
|
||||
'publish' => 'Publica',
|
||||
'hide' => 'Ascunde',
|
||||
'files' => 'Fisiere',
|
||||
'orphaned_files' => 'Fisiere Orfane',
|
||||
'theme' => 'Tema',
|
||||
'click_to_load' => 'Apasa pentru a incarca…',
|
||||
'apply' => 'Aplica',
|
||||
'save' => 'Salveaza',
|
||||
'used' => 'Folosit',
|
||||
'php_info' => 'Informatii PHP',
|
||||
'system_settings' => 'Setari de Sistem',
|
||||
'user.create' => 'Creaza Utilizator',
|
||||
'is_active' => 'Este activ',
|
||||
'is_admin' => 'Este administrator',
|
||||
'your_profile' => 'Profilul Tau',
|
||||
'token' => 'Token',
|
||||
'copy' => 'Copiaza',
|
||||
'copied' => 'Copiat in clipboard!',
|
||||
'update' => 'Actualizare',
|
||||
'edit' => 'Editare',
|
||||
'client_config' => 'Configuratie Client',
|
||||
'user_code' => 'Cod Utilizator',
|
||||
'active' => 'Activ',
|
||||
'admin' => 'Admin',
|
||||
'reg_date' => 'Data de Inregistrare',
|
||||
'none' => 'Nimic',
|
||||
'open' => 'Deschis',
|
||||
'confirm' => 'Confirmare',
|
||||
'bad_login' => 'Date gresite.',
|
||||
'account_disabled' => 'Contul tau este dezactivat.',
|
||||
'welcome' => 'Bine ai venit, %s!',
|
||||
'goodbye' => 'La revedere!',
|
||||
'email_required' => 'Adresa de e-mail este necesara.',
|
||||
'email_taken' => 'Adresa de e-mail este deja folosita.',
|
||||
'username_required' => 'Numele de utilizator este necesar.',
|
||||
'username_taken' => 'Numele de utilizator este deja folosit.',
|
||||
'cannot_demote' => 'Nu te poti retrograda.',
|
||||
'cannot_write_file' => 'Nu se poate scrie in calea de destinatie.',
|
||||
'deleted_orphans' => 'S-au sters cu succes %d fisiere orfane.',
|
||||
'switch_to' => 'Comuta la',
|
||||
'gallery' => 'Galerie',
|
||||
'order_by' => 'Comanda dupa…',
|
||||
'time' => 'Timp',
|
||||
'name' => 'Nume',
|
||||
'maintenance' => 'Mentenanta',
|
||||
'clean_orphaned_uploads' => 'Curata Incarcarile Orfane',
|
||||
'path_not_writable' => 'Nu se poate scrie in calea de iesire.',
|
||||
'already_latest_version' => 'Ai deja ultima versiune.',
|
||||
'new_version_available' => 'Versiune noua %s valabila!',
|
||||
'cannot_retrieve_file' => 'Nu se poate recupera fisierul.',
|
||||
'file_size_no_match' => 'Fisierul descarcat nu se potriveste cu dimensiunea corecta a fisierului.',
|
||||
'check_for_updates' => 'Verifica actualizari',
|
||||
'upgrade' => 'Actualizare',
|
||||
'updates' => 'Actualizari',
|
||||
'cancel' => 'Anuleaza',
|
||||
'auto_set' => 'Seteaza automat',
|
||||
'default_lang_behavior' => 'XBackBone va incerca in mod implicit sa foloseasca limba browser-ului (limba de rezerva este Engleza).',
|
||||
'prerelease_channel' => 'Canal Pre-Lansari',
|
||||
'no_upload_token' => 'Nu ai un token personal de incarcare. (Genereaza unul si incearca din nou.)',
|
||||
'drop_to_upload' => 'Apasa sau lasa fisierele aici pentru a le incarca.',
|
||||
'donation' => 'Donatie',
|
||||
'donate_text' => 'Daca-ti place XBackBone, ia in considerare o donatie pentru a sprijini dezvoltarea lui!',
|
||||
'custom_head_html' => 'Continut personalizat HTML Head',
|
||||
'custom_head_html_hint' => 'Acest continut va fi adaugat in tagul <head> pe fiecare pagina.',
|
||||
'custom_head_set' => 'HTML head personalizat aplicat.',
|
||||
'remember_me' => 'Nu ma uita',
|
||||
'please_wait' => 'Te rog sa astepti…',
|
||||
'dont_close' => 'Nu inchide acest tab inainte de finalizare.',
|
||||
'register_enabled' => 'Inregistrari active',
|
||||
'hide_by_default' => 'Ascunde media in mod implicit',
|
||||
'copy_url_behavior' => 'Modul Copiere URL',
|
||||
'settings_saved' => 'Setari de sistem salvate!',
|
||||
'export_data' => 'Exporta data',
|
||||
'password_recovery' => 'Recupereaza parola',
|
||||
'no_account' => 'Nu ai un cont?',
|
||||
'register' => 'Inregistrare',
|
||||
'register_success' => 'Contul a fost creat, un e-mail de confirmare a fost trimis.',
|
||||
'default_user_quota' => 'Quota User Implicit',
|
||||
'max_user_quota' => 'Quota User Maxim',
|
||||
'invalid_quota' => 'Valori invalide ca si user quota in mod implicit.',
|
||||
'mail.recover_password' => '%s - Recuperare Parola',
|
||||
'recover_email_sent' => 'Daca exista, un e-mail pentru recuperare a fost trimis catre contul specificat.',
|
||||
'account_activated' => 'Cont activat, acum te poti autentifica!',
|
||||
'quota_enabled' => 'Activeaza user quota',
|
||||
'password_repeat' => 'Repeta Parola',
|
||||
'password_match' => 'Parola si parola repetata trebuie sa fie identice.',
|
||||
'password_restored' => 'Parola resetata.',
|
||||
'recalculate_user_quota' => 'Recalculeaza user quota de pe disc',
|
||||
'quota_recalculated' => 'User quota recalculata de pe disc cu succes.',
|
||||
'used_space' => 'Spatiu Utilizat',
|
||||
'delete_selected' => 'Sterge cele Selectate',
|
||||
'delete_all' => 'Sterge Tot',
|
||||
'clear_account' => 'Curata Contul',
|
||||
'recaptcha_failed' => 'reCAPTCHA Esuat',
|
||||
'recaptcha_enabled' => 'reCAPTCHA Activat',
|
||||
'recaptcha_keys_required' => 'Toate cheile reCAPTCHA sunt necesare.',
|
||||
'only_recaptcha_v3' => 'Doar reCAPTCHA v3 este suportat.',
|
||||
'recaptcha_site_key' => 'reCAPTCHA Cheie Site',
|
||||
'recaptcha_secret_key' => 'reCAPTCHA Cheie Secreta',
|
||||
'send_notification' => 'Trimite Notificare prin E-mail',
|
||||
'mail.new_account' => '%s - Crearea Unui Cont Nou',
|
||||
'mail.new_account_text_with_reset' => 'Hey %s!<br>un nou cont a fost creat pentru tine pe %s (<a href="%s">%s</a>), apasa pe urmatorul link pentru a-ti seta o parola si a-ti activa contul:<br><br><a href="%s">%s</a>',
|
||||
'user_create_password' => 'Daca este lasat gol, este posibil sa doresti sa trimiti o notificare la adresa de e-mail a utilizatorului.',
|
||||
'ldap_cant_connect' => 'Nu se poate conecta la serverul de autentificare LDAP.',
|
||||
'upload_max_file_size' => 'In acest moment dimensiunea maxima pentru un fisier este %s.',
|
||||
'no_tags' => 'Nu s-au adaugat etichete',
|
||||
'auto_tagging' => 'Incarcare automata a etichetarii',
|
||||
'zip_ext_not_loaded' => 'Extensia "zip" necesara nu este incarcata',
|
||||
'show_changelog' => 'Afiseaza jurnalul cu schimbari',
|
||||
'image_embeds' => 'Incorporeaza imagini',
|
||||
'user_updated' => 'Utilizator "%s" actualizat!',
|
||||
'user_deleted' => 'Utilizator eliminat.',
|
||||
'owner' => 'Proprietar',
|
||||
'date' => 'Data',
|
||||
'upload' => 'Incarca',
|
||||
'user.edit' => 'Editeaza Utilizator',
|
||||
'confirm_string' => 'Esti sigur?',
|
||||
'raw' => 'Afiseaza brut',
|
||||
'download' => 'Descarca',
|
||||
'password_required' => 'Parola este necesara.',
|
||||
'user_created' => 'Utilizator "%s" creat!',
|
||||
'table' => 'Tabel',
|
||||
'dotted_search' => 'Cauta…',
|
||||
'installed' => 'Instalarea s-a completat cu succes!',
|
||||
'profile_updated' => 'Profil actualizat cu succes!',
|
||||
'mail.recover_text' => 'Hey %s,<br>o resetare de parola a fost ceruta pentru contul tau. Pentru a completa procedura, apasa pe urmatorul link:<br><br><a href="%s">%s</a><br><br>Daca nu ai fost tu cel care a cerut resetarea, te rog sa ignori acest e-mail.',
|
||||
'token_not_found' => 'Token-ul specificat nu a fost gasit.',
|
||||
'cannot_delete' => 'Nu te poti elimina pe tine.',
|
||||
'maintenance_in_progress' => 'Platforma este in mentenanta, incearca mai tarziu…',
|
||||
'mail.activate_text' => 'Hey %s!<br>iti multumesc ca ti-ai creat cont pe %s (<a href="%s">%s</a>), apasa pe urmatorul link pentru a-ti activa contul:<br><br><a href="%s">%s</a>',
|
||||
'danger_zone' => 'Zona Periculoasa',
|
||||
'mail.activate_account' => '%s - Activare Cont',
|
||||
'account_media_deleted' => 'Toata media de pe cont a fost eliminata.',
|
||||
'changelog' => 'Schimbari',
|
||||
'mail.new_account_text_with_pw' => 'Hey %s!<br>un nou cont a fost creat pentru tine pe %s (<a href="%s">%s</a>), cu urmatoarele date:<br><br>Nume de utilizator: %s<br>Parola: %s<br><br>Apasa pe urmatorul link pentru a te autentifica:<br><a href="%s">%s</a>',
|
||||
];
|
|
@ -45,16 +45,16 @@ return [
|
|||
'your_profile' => 'Ваш профиль',
|
||||
'token' => 'Ключ',
|
||||
'copy' => 'Копировать',
|
||||
'update' => 'Обновление',
|
||||
'update' => 'Обновить',
|
||||
'edit' => 'Редактировать',
|
||||
'client_config' => 'Конфигурация клиента',
|
||||
'user_code' => 'Код пользователя',
|
||||
'active' => 'Активный',
|
||||
'active' => 'Активен',
|
||||
'admin' => 'Админ',
|
||||
'reg_date' => 'Дата регистрации',
|
||||
'none' => 'Никак',
|
||||
'none' => 'Нет',
|
||||
'open' => 'Открыть',
|
||||
'confirm' => 'Потвердить',
|
||||
'confirm' => 'Подтверждение',
|
||||
'confirm_string' => 'Вы уверены?',
|
||||
'installed' => 'Установка успешно завершена!',
|
||||
'bad_login' => 'Неверные учетные данные.',
|
||||
|
@ -163,7 +163,5 @@ return [
|
|||
'copied' => 'Скопировано!',
|
||||
'system_settings' => 'Системные настройки',
|
||||
'upload' => 'Выгрузить',
|
||||
'php_info' => 'Информация о PHP',
|
||||
'image_embeds' => 'Встроенные изображения',
|
||||
'vanity_url' => 'Пользовательский URL',
|
||||
'php_info' => 'Инфо о PHP',
|
||||
];
|
||||
|
|
|
@ -1,163 +0,0 @@
|
|||
<?php
|
||||
return [
|
||||
'no' => 'Ne',
|
||||
'yes' => 'Da',
|
||||
'send' => 'Pošalji',
|
||||
'no_media' => 'Nije pronađen nijedan medija.',
|
||||
'login.username' => 'Korisničko ime ili e-mail',
|
||||
'password' => 'Lozinka',
|
||||
'login' => 'Prijavite se',
|
||||
'username' => 'Korisničko ime',
|
||||
'home' => 'Kuća',
|
||||
'users' => 'Korisnici',
|
||||
'profile' => 'Profil',
|
||||
'logout' => 'Odjavi se',
|
||||
'pager.next' => 'Sledeće',
|
||||
'pager.previous' => 'Prethodno',
|
||||
'copy_link' => 'Kopiraj link',
|
||||
'public.telegram' => 'Podeli na Telegramu',
|
||||
'public.delete_text' => 'Da li ste sigurni da želite da izbrišete ovu stvar? Nećete moći da ga povratite',
|
||||
'preview' => 'Pregled',
|
||||
'size' => 'Veličina',
|
||||
'public' => 'Javno',
|
||||
'owner' => 'Vlasnik',
|
||||
'date' => 'Datum',
|
||||
'raw' => 'Prikaži raw',
|
||||
'download' => 'Preuzimanje',
|
||||
'delete' => 'Izbriši',
|
||||
'publish' => 'Objavite',
|
||||
'hide' => 'Sakri',
|
||||
'files' => 'Fajlovi',
|
||||
'theme' => 'Tema',
|
||||
'click_to_load' => 'Kliknite za učitavanje…',
|
||||
'apply' => 'Primeniti',
|
||||
'save' => 'Sačuvaj',
|
||||
'used' => 'Korišćeno',
|
||||
'php_info' => 'PHP informacije',
|
||||
'user.create' => 'Napravi korisnika',
|
||||
'upload' => 'Upload',
|
||||
'orphaned_files' => 'Orphaned Fajlovi',
|
||||
'is_active' => 'Aktivan',
|
||||
'is_admin' => 'Je administrator',
|
||||
'token' => 'Token',
|
||||
'copy' => 'Kopiraj',
|
||||
'update' => 'Ažuriraj',
|
||||
'edit' => 'Urediti',
|
||||
'client_config' => 'Konfiguracija klijenta',
|
||||
'user_code' => 'Korisnički kod',
|
||||
'active' => 'Aktivan',
|
||||
'admin' => 'Admin',
|
||||
'reg_date' => 'Datum registracije',
|
||||
'none' => 'Nijedan',
|
||||
'open' => 'Otvori',
|
||||
'confirm' => 'Potvrda',
|
||||
'installed' => 'Instalacija je uspešno završena!',
|
||||
'bad_login' => 'Pogrešne akreditive.',
|
||||
'account_disabled' => 'Vaš nalog je onemogućen.',
|
||||
'welcome' => 'Dobrodošli, %s!',
|
||||
'goodbye' => 'Doviđenja!',
|
||||
'token_not_found' => 'Navedeni token nije pronađen.',
|
||||
'email_required' => 'E-mail adresa je obavezna.',
|
||||
'email_taken' => 'E-mail adresa je već u upotrebi.',
|
||||
'username_required' => 'Korisničko ime je obavezno.',
|
||||
'user_created' => 'Korisnik "%s“ je kreiran!',
|
||||
'user_updated' => 'Korisnik "%s“ je ažuriran!',
|
||||
'profile_updated' => 'Profil je uspešno ažuriran!',
|
||||
'user_deleted' => 'Korisnik je obrisan.',
|
||||
'cannot_delete' => 'Ne možete da sami sebe izbrisati.',
|
||||
'deleted_orphans' => 'Uspešno izbrisano %d orphaned files.',
|
||||
'switch_to' => 'Prebacite na',
|
||||
'gallery' => 'Galerija',
|
||||
'table' => 'Sto',
|
||||
'dotted_search' => 'Pretraga…',
|
||||
'order_by' => 'Pretraga po…',
|
||||
'time' => 'Vreme',
|
||||
'name' => 'Ime',
|
||||
'maintenance' => 'Održavanje',
|
||||
'clean_orphaned_uploads' => 'Očistite neispunjene otpremanja',
|
||||
'path_not_writable' => 'Na izlaznu putanju nije moguće pisati.',
|
||||
'already_latest_version' => 'Već imate najnoviju verziju.',
|
||||
'new_version_available' => 'Dostupna je nova verzija %s!',
|
||||
'file_size_no_match' => 'Preuzet fajl ne odgovara ispravnoj veličini fajla.',
|
||||
'check_for_updates' => 'Proveri ažuriranja',
|
||||
'upgrade' => 'Nadogradi',
|
||||
'updates' => 'Ažuriranja',
|
||||
'cancel' => 'Otkaži',
|
||||
'auto_set' => 'Podesite automatski',
|
||||
'default_lang_behavior' => 'KSBackBone će pokušati da podrazumeva jezik pretraživača (zamena je engleski).',
|
||||
'prerelease_channel' => 'Prerelease kanal',
|
||||
'no_upload_token' => 'Nemate lični token za otpremanje. (Generišite jedan i pokušajte ponovo.)',
|
||||
'donation' => 'Donacija',
|
||||
'donate_text' => 'Ako vam se sviđa KSBackBone, razmislite o donaciji za podršku razvoju!',
|
||||
'custom_head_html' => 'Prilagođeni sadržaj HTML glave',
|
||||
'custom_head_html_hint' => 'Ovaj sadržaj će biti dodat u oznaku <head> na svakoj stranici.',
|
||||
'custom_head_set' => 'Primenjena prilagođena HTML glava.',
|
||||
'remember_me' => 'Zapamti me',
|
||||
'dont_close' => 'Ne zatvarajte ovu karticu dok se ne završi.',
|
||||
'hide_by_default' => 'Podrazumevano sakrijte medije',
|
||||
'copy_url_behavior' => 'Režim kopiranja URL-a',
|
||||
'settings_saved' => 'Podešavanja sistema su sačuvana!',
|
||||
'export_data' => 'Izvadi podatke',
|
||||
'password_recovery' => 'Oporavi lozinku',
|
||||
'no_account' => 'Nemate nalog?',
|
||||
'register' => 'Registrujte se',
|
||||
'default_user_quota' => 'Podrazumevana korisnička kvota',
|
||||
'max_user_quota' => 'Maksimalna kvota korisnika',
|
||||
'invalid_quota' => 'Nevažeće vrednosti kao podrazumevana korisnička kvota.',
|
||||
'mail.activate_account' => '%s - Aktivacija naloga',
|
||||
'mail.recover_password' => '%s - Oporavak lozinke',
|
||||
'recover_email_sent' => 'Ako postoji, na navedeni nalog je poslata e-pošta za oporavak.',
|
||||
'account_activated' => 'Nalog je aktiviran, sada možete da se prijavite!',
|
||||
'quota_enabled' => 'Omogući korisničku kvotu',
|
||||
'password_repeat' => 'Ponovite lozinku',
|
||||
'password_match' => 'Lozinka i lozinka za ponavljanje moraju biti iste.',
|
||||
'password_restored' => 'Resetovanje lozinke.',
|
||||
'recalculate_user_quota' => 'Ponovo izračunajte korisničku kvotu sa diska',
|
||||
'lang' => 'Engleski',
|
||||
'quota_recalculated' => 'Korisnička kvota je ponovo izračunata sa diska.',
|
||||
'used_space' => 'Iskorišćeni prostor',
|
||||
'delete_selected' => 'Izbriši izabrano',
|
||||
'delete_all' => 'Izbriši sve',
|
||||
'clear_account' => 'Obriši nalog',
|
||||
'account_media_deleted' => 'Svi mediji na nalogu su izbrisani.',
|
||||
'danger_zone' => 'Opasna zona',
|
||||
'recaptcha_failed' => 'reCAPTCHA nije uspela',
|
||||
'recaptcha_enabled' => 'reCAPTCHA je omogućena',
|
||||
'recaptcha_keys_required' => 'Svi reCAPTCHA ključevi su obavezni.',
|
||||
'only_recaptcha_v3' => 'Samo je reCAPTCHA v3 podržan.',
|
||||
'recaptcha_site_key' => 'reCAPTCHA ključ sajta',
|
||||
'recaptcha_secret_key' => 'reCAPTCHA tajni ključ',
|
||||
'send_notification' => 'Pošaljite obaveštenje e-poštom',
|
||||
'mail.new_account' => '%s - Kreiranje novog naloga',
|
||||
'mail.new_account_text_with_reset' => 'Zdravo %s!<br>novi nalog je napravljen za vas na %s (<a href="%s">%s</a>), kliknite na sledeću vezu da postavite lozinku i aktivirate je:<br ><br><a href="%s">%s</a>',
|
||||
'mail.new_account_text_with_pw' => 'Zdravo %s!<br>novi nalog je napravljen za vas na %s (<a href="%s">%s</a>), sa sledećim akreditivima:<br><br>Korisničko ime: %s <br>Lozinka: %s<br><br>Kliknite na sledeću vezu da biste otišli na stranicu za prijavu:<br><a href="%s">%s</a>',
|
||||
'user_create_password' => 'Ako ostavite prazno, možda ćete želeti da pošaljete obaveštenje na adresu e-pošte korisnika.',
|
||||
'ldap_cant_connect' => 'Ne mogu da se povežem sa LDAP serverom za potvrdu identiteta.',
|
||||
'upload_max_file_size' => 'Maksimalna veličina fajla je trenutno %s.',
|
||||
'no_tags' => 'Nema dodatih oznaka',
|
||||
'auto_tagging' => 'Automatsko otpremanje oznaka',
|
||||
'zip_ext_not_loaded' => 'Potrebna ekstenzija "zip" nije učitana',
|
||||
'changelog' => 'Dnevnik pronena',
|
||||
'show_changelog' => 'Prikaži dnevnik promena',
|
||||
'image_embeds' => 'Ugradi slike',
|
||||
'enforce_language' => 'Sprovedite jezik',
|
||||
'user.edit' => 'Uredi korisnika',
|
||||
'system' => 'Sistem',
|
||||
'filename' => 'Naziv dokumenta',
|
||||
'system_settings' => 'Podešavanja sistema',
|
||||
'your_profile' => 'Tvoj profil',
|
||||
'copied' => 'Kopirano u međuspremnik!',
|
||||
'confirm_string' => 'Da li ste sigurni?',
|
||||
'username_taken' => 'Korisničko ime je već zauzeto.',
|
||||
'cannot_retrieve_file' => 'Nije moguće preuzeti fajl.',
|
||||
'cannot_write_file' => 'Putanja odredišta nije upisiva.',
|
||||
'maintenance_in_progress' => 'Platforma se održava, pokušajte ponovo kasnije…',
|
||||
'password_required' => 'Lozinka je obavezna.',
|
||||
'cannot_demote' => 'Ne možete sami sebe degradirati.',
|
||||
'drop_to_upload' => 'Kliknite ili otpustite svoje fajlove ovde da biste ih otpremili.',
|
||||
'register_enabled' => 'Registracije su omogućene',
|
||||
'please_wait' => 'Sačekajte…',
|
||||
'register_success' => 'Nalog je kreiran, e-mail za potvrdu je poslat.',
|
||||
'mail.activate_text' => 'Zdravo %s!<br>hvala što ste otvorili svoj nalog na %s (<a href="%s">%s</a>), kliknite na sledeću vezu da biste ga aktivirali:<br><br>< a href="%s">%s</a>',
|
||||
'mail.recover_text' => 'Zdravo %s,<br>zatraženo je resetovanje lozinke za vaš nalog. Da biste završili proceduru kliknite na sledeću vezu:<br><br><a href="%s">%s</a><br><br>Ako niste vi tražili resetovanje lozinke, jednostavno ignorišite ovu e-poštu.',
|
||||
];
|
|
@ -155,11 +155,9 @@ return [
|
|||
'cannot_write_file' => 'Destinationens sökväg är ej skrivbar.',
|
||||
'cannot_demote' => 'Du kan inte degradera dig själv.',
|
||||
'token_not_found' => 'Den token som angavs hittades inte.',
|
||||
'confirm' => 'Bekräfta',
|
||||
'confirm' => 'Bekräftelse',
|
||||
'copied' => 'Kopierat till urklipp!',
|
||||
'token' => 'Token',
|
||||
'orphaned_files' => 'Föräldralösa Filer',
|
||||
'image_embeds' => 'Inbäddade bilder',
|
||||
'vanity_url' => 'Anpassad URL',
|
||||
'show_all_tags' => 'Visa alla taggar',
|
||||
];
|
||||
|
|
|
@ -1,165 +1,51 @@
|
|||
<?php
|
||||
return [
|
||||
'orphaned_files' => 'Sahipsiz Dosyalar',
|
||||
'orphaned_files' => 'Çöp dosyalar',
|
||||
'files' => 'Dosyalar',
|
||||
'hide' => 'Gizle',
|
||||
'publish' => 'Yayınla',
|
||||
'publish' => 'yayınla',
|
||||
'delete' => 'Sil',
|
||||
'upload' => 'Yükle',
|
||||
'download' => 'İndir',
|
||||
'raw' => 'Kaynak göster',
|
||||
'upload' => 'yükle',
|
||||
'download' => 'indir',
|
||||
'raw' => 'kaynak göster',
|
||||
'date' => 'Tarih',
|
||||
'owner' => 'Sahip',
|
||||
'public' => 'Herkese açık',
|
||||
'size' => 'Boyut',
|
||||
'size' => 'boyut',
|
||||
'filename' => 'Dosya adı',
|
||||
'preview' => 'Ön izleme',
|
||||
'public.delete_text' => 'Bu ögeyi silmek istediğinizden emin misiniz? Geri dönüşü olmayacaktır',
|
||||
'public.telegram' => 'Telegram\'da paylaş',
|
||||
'preview' => 'Önizle',
|
||||
'public.delete_text' => 'Bu öğeyi silmek istediğinizden emin misiniz? geri dönüşü olmayacaktır',
|
||||
'public.telegram' => 'Telegram\'da paylaş !',
|
||||
'copy_link' => 'Bağlantıyı kopyala',
|
||||
'pager.previous' => 'Önceki',
|
||||
'pager.next' => 'Sonraki',
|
||||
'logout' => 'Oturumu kapat',
|
||||
'logout' => 'Çıkış yap',
|
||||
'profile' => 'Profil',
|
||||
'system' => 'Sistem',
|
||||
'users' => 'Kullanıcılar',
|
||||
'home' => 'Ana sayfa',
|
||||
'home' => 'Anasayfa',
|
||||
'username' => 'Kullanıcı adı',
|
||||
'login' => 'Oturum aç',
|
||||
'password' => 'Parola',
|
||||
'login' => 'Giriş',
|
||||
'password' => 'Şifre',
|
||||
'login.username' => 'Kullanıcı adı veya e-posta',
|
||||
'no_media' => 'Medya ortamı bulunamadı.',
|
||||
'send' => 'Gönder',
|
||||
'no' => 'Hayır',
|
||||
'yes' => 'Evet',
|
||||
'enforce_language' => 'Dili uygula',
|
||||
'lang' => 'Türkçe',
|
||||
'enforce_language' => 'Mevcut dile zorla',
|
||||
'lang' => 'ingilizce',
|
||||
'copy' => 'Kopyala',
|
||||
'token' => 'Belirteç',
|
||||
'token' => 'Token',
|
||||
'your_profile' => 'Profiliniz',
|
||||
'is_admin' => 'Yönetici mi',
|
||||
'is_active' => 'Etkin mi',
|
||||
'user.edit' => 'Kullanıcıyı düzenle',
|
||||
'is_active' => 'Aktif mi',
|
||||
'user.edit' => 'Kullanıcı bilgilerini değiştir',
|
||||
'user.create' => 'Kullanıcı oluştur',
|
||||
'system_settings' => 'Sistem Ayarları',
|
||||
'php_info' => 'PHP Bilgileri',
|
||||
'used' => 'Kullanılan',
|
||||
'save' => 'Kaydet',
|
||||
'apply' => 'Uygula',
|
||||
'click_to_load' => 'Yüklemek için tıklayın…',
|
||||
'click_to_load' => 'Yüklemek için tıklayınız…',
|
||||
'theme' => 'Tema',
|
||||
'username_taken' => 'Kullanıcı adı zaten alınmış.',
|
||||
'password_required' => 'Parola gerekli.',
|
||||
'reg_date' => 'Kayıt Tarihi',
|
||||
'active' => 'Etkin',
|
||||
'none' => 'Yok',
|
||||
'open' => 'Açık',
|
||||
'admin' => 'Yönetici',
|
||||
'copied' => 'Panoya kopyalandı!',
|
||||
'update' => 'Güncelle',
|
||||
'edit' => 'Düzenle',
|
||||
'client_config' => 'İstemci Yapılandırması',
|
||||
'user_code' => 'Kullanıcı kodu',
|
||||
'confirm_string' => 'Emin misiniz?',
|
||||
'installed' => 'Kurulum başarıyla tamamlandı!',
|
||||
'bad_login' => 'Yanlış kimlik bilgileri.',
|
||||
'account_disabled' => 'Hesabınız devre dışı bırakıldı.',
|
||||
'welcome' => 'Hoş geldiniz, %s!',
|
||||
'goodbye' => 'Hoşça kal!',
|
||||
'token_not_found' => 'Belirtilen belirteç bulunamadı.',
|
||||
'email_required' => 'E-posta adresi gerekli.',
|
||||
'email_taken' => 'Bu e-posta adresi zaten kullanılıyor.',
|
||||
'username_required' => 'Kullanıcı adı gerekli.',
|
||||
'image_embeds' => 'Gömülü görüntü',
|
||||
'default_lang_behavior' => 'XBackBone varsayılan olarak tarayıcı diliyle eşleşmeye çalışacaktır (yedek dil İngilizce\'dir).',
|
||||
'no_upload_token' => 'Kişisel bir yükleme belirteciniz yok. (Bir tane oluşturun ve tekrar deneyin.)',
|
||||
'copy_url_behavior' => 'URL\'i kopyalama modu',
|
||||
'delete_all' => 'Hepsini Sil',
|
||||
'max_user_quota' => 'Azami Kullanıcı Kotası',
|
||||
'mail.recover_text' => 'Merhaba %s,<br>hesabınız için bir parola sıfırlama istendi. İşlemleri tamamlamak için aşağıdaki bağlantıya tıklayın:<br><br><a href="%s">%s</a><br><br>Parola sıfırlamayı isteyen siz değilseniz bu e-postayı dikkate almayın.',
|
||||
'clear_account' => 'Hesabı Temizle',
|
||||
'mail.new_account_text_with_pw' => 'Merhaba %s!<br>, %s (<a href="%s">%s</a>) tarihinde sizin için aşağıdaki kimlik bilgileriyle yeni bir hesap oluşturuldu:<br><br>Kullanıcı adı: %s<br>Parola: %s<br><br>Oturum açma sayfasına gitmek için aşağıdaki bağlantıya tıklayın:<br><a href="%s">%s</a>',
|
||||
'upload_max_file_size' => 'Azami dosya boyutu şu anda %s.',
|
||||
'recover_email_sent' => 'Varsa, belirtilen hesaba bir kurtarma e-postası gönderildi.',
|
||||
'cannot_demote' => 'Kendinizi rütbenizi indiremezsiniz.',
|
||||
'cannot_write_file' => 'Hedef yol yazılabilir değil.',
|
||||
'deleted_orphans' => '%d sahipsiz dosya başarıyla silindi.',
|
||||
'gallery' => 'Galeri',
|
||||
'table' => 'Tablo',
|
||||
'dotted_search' => 'Ara…',
|
||||
'time' => 'Zaman',
|
||||
'name' => 'Ad',
|
||||
'maintenance' => 'Bakım',
|
||||
'path_not_writable' => 'Çıkış yolu yazılabilir değil.',
|
||||
'already_latest_version' => 'Zaten son sürüme sahipsiniz.',
|
||||
'new_version_available' => 'Yeni %s sürümü var!',
|
||||
'cannot_retrieve_file' => 'Dosya alınamıyor.',
|
||||
'file_size_no_match' => 'İndirilen dosya doğru dosya boyutu ile eşleşmiyor.',
|
||||
'check_for_updates' => 'Güncellemeleri denetle',
|
||||
'upgrade' => 'Güncelle',
|
||||
'updates' => 'Güncellemeler',
|
||||
'maintenance_in_progress' => 'Platform bakımda, daha sonra tekrar deneyin…',
|
||||
'cancel' => 'İptal',
|
||||
'auto_set' => 'Otomatik olarak ayarla',
|
||||
'prerelease_channel' => 'Ön Yayın Kanalı',
|
||||
'drop_to_upload' => 'Yüklemek için dosyalarınızı buraya bırakın veya tıklayın.',
|
||||
'donation' => 'Bağış',
|
||||
'donate_text' => 'XBackBone\'u beğendiyseniz, geliştirmeyi desteklemek için bir bağış yapmayı düşünün!',
|
||||
'custom_head_html_hint' => 'Bu içerik her sayfanın <head> etiketine eklenecek.',
|
||||
'remember_me' => 'Beni hatırla',
|
||||
'please_wait' => 'Lütfen bekleyin…',
|
||||
'dont_close' => 'Tamamlanana kadar bu sekmeyi kapatmayın.',
|
||||
'register_enabled' => 'Kayıtlar etkinleştirildi',
|
||||
'hide_by_default' => 'Varsayılan olarak medyayı gizle',
|
||||
'settings_saved' => 'Sistem ayarları kaydedildi!',
|
||||
'export_data' => 'Veriyi dışarı çıkar',
|
||||
'password_recovery' => 'Parolayı kurtar',
|
||||
'no_account' => 'Hesabınız yok mu?',
|
||||
'register' => 'Kaydol',
|
||||
'register_success' => 'Hesap oluşturuldu, bir onay e-postası gönderildi.',
|
||||
'default_user_quota' => 'Varsayılan Kullanıcı Kotası',
|
||||
'invalid_quota' => 'Varsayılan kullanıcı kotası geçersiz değer.',
|
||||
'mail.activate_account' => '%s - Hesap Etkinleştirme',
|
||||
'mail.recover_password' => '%s - Parola Kurtarma',
|
||||
'account_activated' => 'Hesap etkinleştirildi, artık oturum açabilirsiniz!',
|
||||
'quota_enabled' => 'Kullanıcı kotasını etkinleştir',
|
||||
'password_repeat' => 'Parolayı Tekrarla',
|
||||
'password_match' => 'Parola ve tekrarlanan parola aynı olmalıdır.',
|
||||
'password_restored' => 'Parola sıfırlandı.',
|
||||
'recalculate_user_quota' => 'Diskten kullanıcı kotasını yeniden hesapla',
|
||||
'quota_recalculated' => 'Diskten kullanıcı kotası başarıyla yeniden hesaplandı.',
|
||||
'used_space' => 'Kullanılan Alan',
|
||||
'delete_selected' => 'Seçilenleri Sil',
|
||||
'account_media_deleted' => 'Hesaptaki tüm medya silindi.',
|
||||
'danger_zone' => 'Tehlike Bölgesi',
|
||||
'recaptcha_failed' => 'reCAPTCHA Başarısız oldu',
|
||||
'recaptcha_enabled' => 'reCAPTCHA etkinleştirildi',
|
||||
'recaptcha_keys_required' => 'Bütün reCAPTCHA anahtarları gerekli.',
|
||||
'only_recaptcha_v3' => 'Yalnızca reCAPTCHA v3 desteklenmektedir.',
|
||||
'recaptcha_site_key' => 'reCAPTCHA Site Anahtarı',
|
||||
'recaptcha_secret_key' => 'reCAPTCHA Gizli Anahtarı',
|
||||
'send_notification' => 'E-posta Bildirimi Gönder',
|
||||
'mail.new_account' => '%s - Yeni Hesap Oluşturma',
|
||||
'mail.new_account_text_with_reset' => 'Merhaba %s!<br>, %s (<a href="%s">%s</a>) tarihinde sizin için yeni bir hesap oluşturuldu, bir parola belirlemek ve etkinleştirmek için aşağıdaki bağlantıya tıklayın:<br><br><a href="%s">%s</a>',
|
||||
'user_create_password' => 'Boş bırakılırsa, kullanıcı e-posta adresine bir bildirim göndermek isteyebilirsiniz.',
|
||||
'ldap_cant_connect' => 'LDAP kimlik doğrulama sunucusuna bağlanılamıyor.',
|
||||
'no_tags' => 'Etiket eklenmedi',
|
||||
'auto_tagging' => 'Otomatik yükleme etiketleme',
|
||||
'zip_ext_not_loaded' => 'Gereken "zip" eklentisi yüklenmedi',
|
||||
'changelog' => 'Değişiklik Günlüğü (Yama Notları)',
|
||||
'show_changelog' => 'Değişiklik günlüğünü göster',
|
||||
'confirm' => 'Onayla',
|
||||
'user_created' => '"%s" kullanıcısı oluşturuldu!',
|
||||
'user_updated' => '"%s" kullanıcısı güncellendi!',
|
||||
'profile_updated' => 'Profil başarıyla güncellendi!',
|
||||
'user_deleted' => 'Kullanıcı silindi.',
|
||||
'cannot_delete' => 'Kendi kullanıcınızı silemezsiniz.',
|
||||
'order_by' => 'Sıralama ölçütü…',
|
||||
'clean_orphaned_uploads' => 'Sahipsiz Yüklemeleri Temizle',
|
||||
'custom_head_html' => 'Özel HTML başlık içeriği',
|
||||
'custom_head_set' => 'Özel HTML başlığı uygulandı.',
|
||||
'mail.activate_text' => 'Merhaba %s!<br>%s (<a href="%s">%s</a>) hesabınızı oluşturduğunuz için teşekkür ederiz, etkinleştirmek için aşağıdaki bağlantıya tıklayın:<br><br><a href="%s">%s</a>',
|
||||
'switch_to' => 'Şuna geç',
|
||||
'vanity_url' => 'Özel URL',
|
||||
'show_all_tags' => 'Tüm etiketleri göster',
|
||||
];
|
||||
|
|
|
@ -1,163 +0,0 @@
|
|||
<?php
|
||||
return [
|
||||
'yes' => 'Có',
|
||||
'reg_date' => 'Ngày đăng ký',
|
||||
'lang' => 'Tiếng Việt',
|
||||
'enforce_language' => 'Cài đặt ngôn ngữ',
|
||||
'send' => 'Gửi',
|
||||
'login.username' => 'Tên đăng nhập hoặc Email',
|
||||
'password' => 'Mật khẩu',
|
||||
'users' => 'Người dùng',
|
||||
'system' => 'Hệ thống',
|
||||
'profile' => 'Hồ sơ',
|
||||
'logout' => 'Thoát',
|
||||
'pager.previous' => 'Trước',
|
||||
'copy_link' => 'Copy đường link',
|
||||
'pager.next' => 'Tiếp',
|
||||
'public.telegram' => 'Chia sẻ lên Telegram',
|
||||
'public.delete_text' => 'Bạn có chắc là muốn xoá mục này? Bạn sẽ không thể khôi phục lại nó sau khi xoá',
|
||||
'preview' => 'Xem trước',
|
||||
'filename' => 'Tên tập tin',
|
||||
'size' => 'Kích cỡ',
|
||||
'public' => 'Chia sẻ công cộng',
|
||||
'owner' => 'Chủ sở hữu',
|
||||
'date' => 'Ngày',
|
||||
'raw' => 'Xem dạng thuần',
|
||||
'download' => 'Tải xuống',
|
||||
'delete' => 'Xoá',
|
||||
'publish' => 'Đăng lên',
|
||||
'hide' => 'Ẩn đi',
|
||||
'files' => 'Tập tin',
|
||||
'theme' => 'Phông nền',
|
||||
'click_to_load' => 'Bấm vào để tải…',
|
||||
'save' => 'Lưu',
|
||||
'used' => 'Đã sử dụng',
|
||||
'php_info' => 'Thông tin PHP',
|
||||
'no_media' => 'Không tìm thấy dữ liệu.',
|
||||
'orphaned_files' => 'Tập tin với thư mục chính đã bị xoá',
|
||||
'user.edit' => 'Chỉnh sửa Người dùng',
|
||||
'is_active' => 'Đang hoạt động',
|
||||
'token' => 'Mã token',
|
||||
'copied' => 'Đã sao chép!',
|
||||
'update' => 'Cập nhật',
|
||||
'edit' => 'Chỉnh sửa',
|
||||
'user_code' => 'Mã Người dùng',
|
||||
'none' => 'Không có',
|
||||
'open' => 'Mở',
|
||||
'confirm' => 'Xác nhận',
|
||||
'confirm_string' => 'Bạn có chắc chứ?',
|
||||
'installed' => 'Đã hoàn thành cài đặt thành công!',
|
||||
'welcome' => 'Chào mừng vào XBackBone, %s!',
|
||||
'goodbye' => 'Gặp lại lần sau nhé!',
|
||||
'token_not_found' => 'Mã token nhập vào không được tìm thấy.',
|
||||
'email_taken' => 'Địa chỉ email đã được sử dụng.',
|
||||
'username_taken' => 'Tên đăng nhập này đã có người sử dụng rồi.',
|
||||
'password_required' => 'Bạn cần nhập mật khẩu.',
|
||||
'user_created' => 'Người dùng "%s" đã được tạo!',
|
||||
'user_updated' => 'Người dùng "%s" đã được cập nhật!',
|
||||
'user_deleted' => 'Đã xoá người dùng.',
|
||||
'cannot_demote' => 'Bạn không thể tự giáng cấp tài khoản người dùng của mình.',
|
||||
'cannot_write_file' => 'Đường dẫn đích không thể ghi dữ liệu vào được.',
|
||||
'switch_to' => 'Chuyển về',
|
||||
'gallery' => 'Xem theo ô',
|
||||
'table' => 'Xem dạng bảng',
|
||||
'path_not_writable' => 'Đường dẫn xuất ra không ghi dữ liệu vào được.',
|
||||
'already_latest_version' => 'Bạn đang dùng phiên bản mới nhất.',
|
||||
'cannot_retrieve_file' => 'Không thể trích xuất tập tin.',
|
||||
'check_for_updates' => 'Kiểm tra phiên bản mới',
|
||||
'upgrade' => 'Nâng cấp',
|
||||
'updates' => 'Cập nhật',
|
||||
'maintenance_in_progress' => 'Hệ thống đang bảo trì, vui lòng thử lại sau…',
|
||||
'cancel' => 'Bỏ',
|
||||
'auto_set' => 'Tự động cài đặt',
|
||||
'no_upload_token' => 'Bạn chưa có một mã tải lên cá nhân. (Hãy tạo một mã và thử lại nhé.)',
|
||||
'drop_to_upload' => 'Bấm vào hoặc bỏ tập tin của bạn vào đây để tải lên.',
|
||||
'donate_text' => 'Nếu bạn thích XBackBone, xin hãy quyên góp để hỗ trợ việc phát triển phần mềm cho người dùng!',
|
||||
'custom_head_html' => 'Nội dung phần đầu dạng HTML tuỳ chỉnh',
|
||||
'remember_me' => 'Nhớ tên đăng nhập',
|
||||
'please_wait' => 'Xin chờ một chút…',
|
||||
'settings_saved' => 'Cài đặt hệ thống đã được lưu!',
|
||||
'export_data' => 'Xuất dữ liệu',
|
||||
'password_recovery' => 'Khôi phục mật khẩu',
|
||||
'no_account' => 'Bạn chưa có tài khoản?',
|
||||
'register' => 'Hãy đăng ký',
|
||||
'register_success' => 'Tài khoản của bạn đã được tạo, email xác nhận đã được gửi cho bạn.',
|
||||
'default_user_quota' => 'Dung lượng mặc định cho người dùng',
|
||||
'invalid_quota' => 'Thông tin dung lượng người dùng mặc định nhập vào không hợp lệ.',
|
||||
'mail.activate_account' => '%s - Kích hoạt tài khoản',
|
||||
'mail.recover_text' => 'Chào bạn %s,<br>một lệnh khôi phục mật khẩu đã được yêu cầu cho tài khoản của bạn. Để hoàn thành khôi phục mật khẩu bạn hãy bấm vào đường link sau :<br><br><a href="%s">%s</a><br><br>Nếu bạn không gửi yêu cầu, hãy bỏ qua email này.',
|
||||
'mail.recover_password' => '%s - Khôi phục mật khẩu',
|
||||
'recover_email_sent' => 'Nếu tài khoản hiện hữu, hệ thống sẽ gửi một email khôi phục mật khẩu đến tài khoản bạn đã nhập vào.',
|
||||
'password_match' => 'Mật khẩu nhập vào và nhập lại phải trùng khớp nhau.',
|
||||
'password_restored' => 'Đặt lại mật khẩu.',
|
||||
'recalculate_user_quota' => 'Chỉnh lại dung lượng cho người dùng dựa trên ổ đĩa',
|
||||
'quota_recalculated' => 'Dung lượng cho người dùng đã được chỉnh lại thành công theo dung lượng ổ đĩa.',
|
||||
'delete_selected' => 'Xoá phần được chọn',
|
||||
'delete_all' => 'Xoá hết',
|
||||
'clear_account' => 'Xoá dữ liệu trong tài khoản',
|
||||
'recaptcha_failed' => 'Xác minh reCAPTCHA thất bại',
|
||||
'recaptcha_enabled' => 'Xác minh reCAPTCHA đã được bật',
|
||||
'mail.new_account' => '%s - Tạo tài khoản mới',
|
||||
'recaptcha_site_key' => 'Mã reCAPTCHA chia sẻ công cộng',
|
||||
'user_create_password' => 'Nếu mật khẩu để trống, bạn có thể sẽ muốn gửi một thông báo đến email người dùng.',
|
||||
'upload_max_file_size' => 'Kích cỡ tập tin tối đa hiện giờ là %s.',
|
||||
'no_tags' => 'Không có thẻ nào được thêm vào',
|
||||
'auto_tagging' => 'Tự động gắn thẻ vào các tập tin tải lên',
|
||||
'zip_ext_not_loaded' => 'Gói mở rộng zip được yêu cầu không được tải thành công',
|
||||
'changelog' => 'Nhật ký những thay đổi',
|
||||
'show_changelog' => 'Hiển thị nhật ký những thay đổi',
|
||||
'image_embeds' => 'Chèn hình ảnh',
|
||||
'no' => 'Không',
|
||||
'login' => 'Đăng nhập',
|
||||
'username' => 'Tên đăng nhập',
|
||||
'home' => 'Trang chủ',
|
||||
'is_admin' => 'Là quản trị viên',
|
||||
'copy_url_behavior' => 'Chế độ sao chép URL',
|
||||
'upload' => 'Tải lên',
|
||||
'your_profile' => 'Hồ sơ của bạn',
|
||||
'email_required' => 'Bạn cần nhập địa chỉ email.',
|
||||
'maintenance' => 'Bảo trì',
|
||||
'username_required' => 'Bạn cần nhập tên đăng nhập.',
|
||||
'system_settings' => 'Cài đặt hệ thống',
|
||||
'apply' => 'Áp dụng',
|
||||
'client_config' => 'Cấu hình client',
|
||||
'account_disabled' => 'Tài khoản của bạn đang bị vô hiệu hoá.',
|
||||
'name' => 'Tên',
|
||||
'user.create' => 'Tạo Người dùng',
|
||||
'copy' => 'Sao chép',
|
||||
'bad_login' => 'Sai tên hoặc mật khẩu.',
|
||||
'active' => 'Đang hoạt động',
|
||||
'admin' => 'Quản trị viên',
|
||||
'profile_updated' => 'Hồ sơ được cập nhật thành công!',
|
||||
'cannot_delete' => 'Bạn không thể tự xoá tài khoản người dùng của bạn.',
|
||||
'deleted_orphans' => 'Đã xoá %d tập tin không còn thư mục chính thành công.',
|
||||
'dotted_search' => 'Tìm kiếm…',
|
||||
'time' => 'Thời gian',
|
||||
'order_by' => 'Sắp xếp theo…',
|
||||
'new_version_available' => 'Đã có phiên bản %s mới!',
|
||||
'custom_head_html_hint' => 'Nội dung này sẽ được thêm vào phần thẻ <head> trên mỗi trang.',
|
||||
'clean_orphaned_uploads' => 'Xoá những phần tải lên với thư mục chính đã bị xoá',
|
||||
'file_size_no_match' => 'Tập tin tải xuống không cùng kích cỡ đúng.',
|
||||
'default_lang_behavior' => 'XBackBone sẽ khớp ngôn ngữ bạn đang sử dụng mặc định trên trình duyệt (trường hợp ngôn ngữ bạn dùng chưa hỗ trợ, ngôn ngữ dự phòng là tiếng Anh).',
|
||||
'donation' => 'Quyên góp',
|
||||
'dont_close' => 'Xin đừng đóng tab này đến khi đã hoàn thành xử lý.',
|
||||
'register_enabled' => 'Đã bật chế độ cho người dùng đăng ký',
|
||||
'prerelease_channel' => 'Kênh phát hành phiên bản sớm',
|
||||
'hide_by_default' => 'Mặc định ẩn đi hình ảnh video tải lên',
|
||||
'custom_head_set' => 'Phần đầu HTML tuỳ chỉnh đã được áp dụng.',
|
||||
'mail.activate_text' => 'Xin chào %s!<br>cảm ơn bạn đã tạp tài khảon trên %s (<a href="%s">%s</a>), hãy bấm vào đường link sau để kích hoạt tài khoản của bạn:<br><br><a href="%s">%s</a>',
|
||||
'max_user_quota' => 'Dung lượng tối đa cho người dùng',
|
||||
'only_recaptcha_v3' => 'Chỉ hỗ trợ reCAPTCHA v3.',
|
||||
'account_activated' => 'Tài khoản đã được kích hoạt, bạn có thể đăng nhập vào rồi!',
|
||||
'password_repeat' => 'Nhập lại mật khẩu',
|
||||
'recaptcha_keys_required' => 'Tất cả những mã reCAPTCHA đều buộc phải có.',
|
||||
'send_notification' => 'Gửi email thông báo',
|
||||
'quota_enabled' => 'Bật dung lượng cho người dùng',
|
||||
'used_space' => 'Dung lượng đã dùng',
|
||||
'danger_zone' => 'Vùng nguy hiểm',
|
||||
'account_media_deleted' => 'Tất cả những hình ảnh video có trong tài khoản đã được xoá.',
|
||||
'recaptcha_secret_key' => 'Mã reCAPTCHA bí mật',
|
||||
'mail.new_account_text_with_reset' => 'Xin chào %s!<br>một tài khoản mới đã được tạo cho bạn ở %s (<a href="%s">%s</a>), hãy bấm vào đường link sau để cài mật khẩu và kích hoạt tài khoản nhé:<br><br><a href="%s">%s</a>',
|
||||
'mail.new_account_text_with_pw' => 'Xin chào %s!<br>một tài khoản mới đã được tạo cho bạn trên %s (<a href="%s">%s</a>), với thông tin đăng nhập như sau:<br><br>Tên đăng nhập: %s<br>Mật khẩu: %s<br><br>Hãy bấm vào đường link sau đây để truy cập trang đăng nhập tài khoản nhé:<br><a href="%s">%s</a>',
|
||||
'ldap_cant_connect' => 'Không thể kết nối với máy chủ xác minh LDAP.',
|
||||
];
|
|
@ -1,164 +0,0 @@
|
|||
<?php
|
||||
return [
|
||||
'send' => '发送',
|
||||
'no_media' => '未找到媒体。',
|
||||
'yes' => '是',
|
||||
'enforce_language' => '默认语言',
|
||||
'no' => '否',
|
||||
'lang' => '中文(简体)',
|
||||
'copy_link' => '复制链接',
|
||||
'size' => '大小',
|
||||
'download' => '下载',
|
||||
'user.edit' => '编辑用户',
|
||||
'deleted_orphans' => '已成功删除 %d 个孤立文件。',
|
||||
'drop_to_upload' => '单击或将您的文件拖放到此处进行上传。',
|
||||
'settings_saved' => '系统设置已保存!',
|
||||
'file_size_no_match' => '下载的文件与正确的文件大小不匹配。',
|
||||
'default_lang_behavior' => '默认情况下,XBackBone 将尝试匹配浏览器语言(后备为英语)。',
|
||||
'custom_head_html' => '自定义 HTML Head 内容',
|
||||
'remember_me' => '记住我',
|
||||
'recover_email_sent' => '如果存在,则恢复电子邮件已发送到指定帐户。',
|
||||
'hide_by_default' => '默认隐藏媒体',
|
||||
'password_recovery' => '恢复密码',
|
||||
'password' => '密码',
|
||||
'login' => '登录',
|
||||
'home' => '家',
|
||||
'users' => '用户',
|
||||
'profile' => '用户资料',
|
||||
'pager.next' => '下一页',
|
||||
'public.telegram' => '在Telegram上分享',
|
||||
'preview' => '预览',
|
||||
'filename' => '文件名',
|
||||
'upload' => '上传',
|
||||
'delete' => '删除',
|
||||
'publish' => '发布',
|
||||
'hide' => '隐藏',
|
||||
'files' => '文件',
|
||||
'orphaned_files' => '孤立文件',
|
||||
'theme' => '主题',
|
||||
'click_to_load' => '点击加载…',
|
||||
'apply' => '应用',
|
||||
'save' => '保存',
|
||||
'php_info' => 'PHP 信息',
|
||||
'system_settings' => '系统设置',
|
||||
'user.create' => '创建用户',
|
||||
'update' => '更新',
|
||||
'is_active' => '是普通用户',
|
||||
'is_admin' => '是管理员',
|
||||
'token' => '令牌',
|
||||
'your_profile' => '你的个人资料',
|
||||
'user_code' => '用户代码',
|
||||
'reg_date' => '注册日期',
|
||||
'open' => '打开',
|
||||
'confirm_string' => '你确定吗?',
|
||||
'installed' => '安装成功完成!',
|
||||
'bad_login' => '错误的凭据。',
|
||||
'welcome' => '欢迎, %s!',
|
||||
'goodbye' => '再见!',
|
||||
'token_not_found' => '未找到指定的令牌。',
|
||||
'email_required' => '需要电子邮件地址。',
|
||||
'email_taken' => '电子邮件地址已被使用。',
|
||||
'username_taken' => '用户名已被占用。',
|
||||
'password_required' => '密码是必需的。',
|
||||
'user_created' => '用户 "%s" 创建成功!',
|
||||
'none' => '空',
|
||||
'confirm' => '确认',
|
||||
'cannot_write_file' => '目标路径不可写。',
|
||||
'switch_to' => '切换到',
|
||||
'table' => '表格',
|
||||
'dotted_search' => '搜索…',
|
||||
'order_by' => '分组…',
|
||||
'gallery' => '大图模式',
|
||||
'time' => '时间',
|
||||
'name' => '名称',
|
||||
'maintenance' => '维护',
|
||||
'new_version_available' => '新版本 %s 可用!',
|
||||
'donation' => '捐款',
|
||||
'register_success' => '帐户已创建,确认电子邮件已发送。',
|
||||
'max_user_quota' => '最大用户配额',
|
||||
'invalid_quota' => '作为默认用户配额的值无效。',
|
||||
'mail.activate_text' => '你好 %s !<br>感谢您创建您的帐户 %s (<a href="%s">%s</a>), 点击以下链接激活它:<br><br><a href="%s">%s</a>',
|
||||
'mail.activate_account' => '%s - 帐号激活',
|
||||
'mail.recover_password' => '%s - 密码恢复',
|
||||
'recalculate_user_quota' => '从磁盘重新计算用户配额',
|
||||
'danger_zone' => '危险区',
|
||||
'send_notification' => '发送电子邮件通知',
|
||||
'mail.new_account_text_with_reset' => '你好 %s !<br>为您创建了一个新帐户 %s (<a href="%s">%s</a>), 点击以下链接设置密码并激活:<br><br><a href="%s">%s</a>',
|
||||
'user_create_password' => '如果留空,您可能希望向用户电子邮件地址发送通知。',
|
||||
'ldap_cant_connect' => '无法连接到 LDAP 身份验证服务器。',
|
||||
'auto_tagging' => '自动上传标签',
|
||||
'account_disabled' => '您的帐户已被禁用。',
|
||||
'copy_url_behavior' => '复制网址方式',
|
||||
'zip_ext_not_loaded' => '未加载所需的zip扩展名',
|
||||
'changelog' => '变更日志',
|
||||
'show_changelog' => '显示日志',
|
||||
'image_embeds' => '嵌入图像',
|
||||
'already_latest_version' => '您已经拥有最新版本。',
|
||||
'edit' => '编辑',
|
||||
'system' => '系统',
|
||||
'owner' => '所有者',
|
||||
'date' => '日期',
|
||||
'client_config' => '客户端配置',
|
||||
'active' => '普通用户',
|
||||
'login.username' => '用户名或电子邮件',
|
||||
'username' => '用户名',
|
||||
'logout' => '注销',
|
||||
'pager.previous' => '上一页',
|
||||
'public' => '公共',
|
||||
'public.delete_text' => '你确定要删除这个项目吗?你将无法恢复它',
|
||||
'raw' => '显示原始',
|
||||
'copy' => '复制',
|
||||
'copied' => '已复制到剪贴板!',
|
||||
'admin' => '管理员',
|
||||
'username_required' => '用户名是必需的。',
|
||||
'user_updated' => '用户"%s" 更新成功!',
|
||||
'cannot_delete' => '您不能删除自己。',
|
||||
'cannot_demote' => '你不能禁用自己。',
|
||||
'clean_orphaned_uploads' => '清理孤立上传',
|
||||
'path_not_writable' => '输出路径不可写。',
|
||||
'cannot_retrieve_file' => '无法检索文件。',
|
||||
'profile_updated' => '个人资料更新成功!',
|
||||
'user_deleted' => '用户已删除。',
|
||||
'check_for_updates' => '检查更新',
|
||||
'updates' => '更新',
|
||||
'maintenance_in_progress' => '平台维护中,稍后再试…',
|
||||
'auto_set' => '自动设置',
|
||||
'upgrade' => '升级',
|
||||
'cancel' => '取消',
|
||||
'please_wait' => '请稍等…',
|
||||
'no_upload_token' => '您没有个人上传令牌。 (生成一个并重试。)',
|
||||
'custom_head_html_hint' => '此内容将添加到每个页面的 <head> 标记处。',
|
||||
'custom_head_set' => '应用了自定义 HTML 头。',
|
||||
'dont_close' => '在完成之前不要关闭此选项卡。',
|
||||
'donate_text' => '如果您喜欢 XBackBone,请考虑捐赠以支持开发!',
|
||||
'register_enabled' => '已启用注册',
|
||||
'no_account' => '没有帐户?',
|
||||
'account_activated' => '帐号已激活,现在您可以登录了!',
|
||||
'quota_enabled' => '启用用户配额',
|
||||
'password_match' => '密码和重复密码必须相同。',
|
||||
'password_restored' => '重设密码。',
|
||||
'export_data' => '导出数据',
|
||||
'default_user_quota' => '默认用户配额',
|
||||
'register' => '注册',
|
||||
'password_repeat' => '重复输入密码',
|
||||
'quota_recalculated' => '成功从磁盘重新计算用户配额。',
|
||||
'delete_all' => '删除全部',
|
||||
'clear_account' => '清除帐户',
|
||||
'account_media_deleted' => '帐户中的所有媒体均已删除。',
|
||||
'mail.new_account_text_with_pw' => '你好 %s !<br>为您创建了一个新帐户 %s (<a href="%s">%s</a>), 一下是登录信息:<br><br>用户名: %s <br>密码: %s <br><br>点击以下链接进入登录页面:<br><a href="%s"> %s </a>',
|
||||
'used_space' => '已用空间',
|
||||
'delete_selected' => '删除所选',
|
||||
'upload_max_file_size' => '当前最大文件大小为 %s.',
|
||||
'no_tags' => '未添加标签',
|
||||
'mail.recover_text' => 'Hi %s,<br>已为您的帐户请求重置密码。要完成该过程,请单击以下链接:<br><br><a href="%s">%s</a><br><br>如果不是您要求重置密码,请忽略此电子邮件。',
|
||||
'used' => '使用中',
|
||||
'recaptcha_site_key' => 'reCAPTCHA 站点密钥',
|
||||
'only_recaptcha_v3' => '只支持reCAPTCHA v3.',
|
||||
'vanity_url' => '自定义网址',
|
||||
'mail.new_account' => '新帐户创建',
|
||||
'recaptcha_failed' => '验证失败',
|
||||
'recaptcha_enabled' => '验证码启用',
|
||||
'recaptcha_secret_key' => 'reCAPTCHA 密钥',
|
||||
'prerelease_channel' => '预发布渠道',
|
||||
'recaptcha_keys_required' => '所有 reCAPTCHA 密钥都是必需的。',
|
||||
];
|
|
@ -1,19 +0,0 @@
|
|||
<div class="modal fade" id="modalVanity" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">{{ lang('vanity_url') }}</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<input type="text" class="form-control" id="modalVanity-input" maxlength="64">
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-primary media-vanity" id="modalVanity-link"><i class="fas fa-check fa-fw"></i> {{ lang('confirm') }}</button>
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">{{ lang('no') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
2
resources/templates/dashboard/grid.twig
Executable file → Normal file
2
resources/templates/dashboard/grid.twig
Executable file → Normal file
|
@ -28,7 +28,6 @@
|
|||
{% else %}
|
||||
<a class="btn btn-sm btn-info publish-toggle" data-toggle="tooltip" title="{{ lang('publish') }}" data-id="{{ media.id }}" data-published="{{ media.published }}"><i class="fas fa-check-circle"></i></a>
|
||||
{% endif %}
|
||||
<button class="btn btn-info btn-sm public-vanity" data-id="{{ media.id }}" data-toggle="tooltip" title="{{ lang('vanity_url') }}"><i class="fas fa-star"></i></button>
|
||||
<button type="button" class="btn btn-sm btn-danger media-delete" data-link="{{ route('upload.delete', {'id': media.id}) }}" data-id="{{ media.id }}" data-toggle="tooltip" title="{{ lang('delete') }}">
|
||||
<i class="fas fa-trash"></i>
|
||||
</button>
|
||||
|
@ -69,5 +68,4 @@
|
|||
<div class="text-center text-muted"><i>{{ lang('no_media') }}</i></div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% include 'comp/modal_vanity.twig' %}
|
||||
{% endblock %}
|
||||
|
|
4
resources/templates/dashboard/list.twig
Executable file → Normal file
4
resources/templates/dashboard/list.twig
Executable file → Normal file
|
@ -6,7 +6,6 @@
|
|||
{% include 'comp/navbar.twig' %}
|
||||
<div class="container">
|
||||
{% include 'comp/alert.twig' %}
|
||||
{% include 'comp/modal_vanity.twig' %}
|
||||
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-body">
|
||||
|
@ -33,7 +32,6 @@
|
|||
{% for media in medias %}
|
||||
<tr id="media_{{ media.id }}" class="bulk-selector" data-id="{{ media.id }}">
|
||||
<td class="text-center">
|
||||
<a href="{{ urlFor('/' ~ media.user_code ~ '/' ~ media.code ~ '.' ~ media.extension) }}" target="_blank" class="text-dark">
|
||||
{% if isDisplayableImage(media.mimetype) %}
|
||||
{% if media.username is not null %}
|
||||
<img src="{{ urlFor('/' ~ media.user_code ~ '/' ~ media.code ~ '.' ~ media.extension ~ '/raw?width=84&height=42') }}" class="img-fluid rounded">
|
||||
|
@ -43,7 +41,6 @@
|
|||
{% else %}
|
||||
<i class="far {{ mime2font(media.mimetype) }} fa-2x"></i>
|
||||
{% endif %}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<span class="text-maxlen">{{ media.filename }}</span>
|
||||
|
@ -80,7 +77,6 @@
|
|||
{% else %}
|
||||
<a href="javascript:void(0)" class="btn btn-sm btn-outline-info publish-toggle" data-toggle="tooltip" title="{{ lang('publish') }}" data-id="{{ media.id }}" data-published="{{ media.published }}"><i class="fas fa-check-circle"></i></a>
|
||||
{% endif %}
|
||||
<a href="javascript:void(0)" class="btn btn-sm btn-outline-info public-vanity" data-id="{{ media.id }}" data-toggle="tooltip" title="{{ lang('vanity_url') }}"><i class="fas fa-star"></i></a>
|
||||
<a href="javascript:void(0)" class="btn btn-sm btn-outline-danger media-delete" data-link="{{ route('upload.delete', {'id': media.id}) }}" data-id="{{ media.id }}" data-toggle="tooltip" title="{{ lang('delete') }}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</td>
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
{% if tags is empty %}
|
||||
<h6 class="dropdown-header">{{ lang('no_tags') }}</h6>
|
||||
{% else %}
|
||||
<a class="dropdown-item" href="{{ route('home') }}">{{ lang('show_all_tags') }}</a>
|
||||
{% for tag in tags %}
|
||||
<a class="dropdown-item {{ request.queryParams['tag'] == tag.id ? 'active' }}" href="{{ queryParams({'tag': tag.id}) }}" data-id="{{ tag.id }}">{{ tag.name }}</a>
|
||||
{% endfor %}
|
||||
|
|
|
@ -1,52 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
create_desktop_entry() {
|
||||
cat << "EOF" > "$HOME/.local/share/kio/servicemenus/xbackbone-uploader.desktop"
|
||||
[Desktop Entry]
|
||||
Type=Service
|
||||
ServiceTypes=KonqPopupMenu/Plugin
|
||||
Icon=imaga
|
||||
X-KDE-StartupNotify=false
|
||||
X-KDE-Priority=TopLevel
|
||||
MimeType=image/*;
|
||||
Actions=xbackbone_upload
|
||||
|
||||
[Desktop Action xbackbone_upload]
|
||||
Name=Upload with XBackBone
|
||||
Exec=sh -c 'RESPONSE="$(curl -s -F "token={{ token }}" -F "upload=@%u" {{ upload_url }})"; if [ "$(echo "${RESPONSE}" | jq -r ".message")" = "OK" ]; then URL="$(echo "${RESPONSE}" | jq -r ".url")"; if [ "${DESKTOP_SESSION}" != "" ]; then echo "${URL}" | xclip -selection c; notify-send "Upload completed!" "${URL}"; else echo "${URL}"; fi; exit 0; else MESSAGE="$(echo "${RESPONSE}" | jq -r ".message")"; if [ $? -ne 0 ]; then echo "Unexpected response:"; echo "${RESPONSE}"; exit 1; fi; if [ "${DESKTOP_SESSION}" != "" ]; then notify-send "Error!" "${MESSAGE}"; else echo "Error! ${MESSAGE}"; fi; exit 1; fi'
|
||||
Icon=image
|
||||
EOF
|
||||
|
||||
echo "Service menu created!";
|
||||
}
|
||||
|
||||
check() {
|
||||
ERRORS=0;
|
||||
|
||||
if [ ! -x "$(command -v jq)" ]; then
|
||||
echo "jq command not found.";
|
||||
ERRORS=1;
|
||||
fi
|
||||
|
||||
if [ ! -x "$(command -v curl)" ]; then
|
||||
echo "curl command not found.";
|
||||
ERRORS=1;
|
||||
fi
|
||||
|
||||
if [ ! -x "$(command -v xclip)" ] && [ "${DESKTOP_SESSION}" != "" ]; then
|
||||
echo "xclip command not found.";
|
||||
ERRORS=1;
|
||||
fi
|
||||
|
||||
if [ ! -x "$(command -v notify-send)" ] && [ "${DESKTOP_SESSION}" != "" ]; then
|
||||
echo "notify-send command not found.";
|
||||
ERRORS=1;
|
||||
fi
|
||||
|
||||
if [ "${ERRORS}" -eq 1 ]; then
|
||||
exit 1;
|
||||
fi
|
||||
}
|
||||
|
||||
check
|
||||
create_desktop_entry
|
22
resources/templates/upload/public.twig
Executable file → Normal file
22
resources/templates/upload/public.twig
Executable file → Normal file
|
@ -17,22 +17,8 @@
|
|||
<meta id="embed-image" property="og:image" content="{{ url }}/raw">
|
||||
<meta id="discord" name="twitter:image" content="{{ url }}/raw">
|
||||
<meta id="image-src" name="twitter:image:src" content="{{ url }}/raw">
|
||||
{% elseif type == 'video' %}
|
||||
<meta name="twitter:card" content="player" />
|
||||
<meta name="twitter:title" content="{{ media.filename }} ({{ media.size }})" />
|
||||
<meta name="twitter:image" content="0" />
|
||||
<meta name="twitter:player:stream" content="{{ url }}/raw" />
|
||||
<meta name="twitter:player:width" content="720" />
|
||||
<meta name="twitter:player:height" content="480" />
|
||||
<meta name="twitter:player:stream:content_type" content="{{ media.mimetype }}" />
|
||||
|
||||
<meta property="og:url" content="{{ url }}/raw" />
|
||||
<meta property="og:video" content="{{ url }}/raw" />
|
||||
<meta property="og:video:secure_url" content="{{ url }}/raw" />
|
||||
<meta property="og:video:type" content="{{ media.mimetype }}" />
|
||||
<meta property="og:video:width" content="720" />
|
||||
<meta property="og:video:height" content="480" />
|
||||
<meta property="og:image" content="0" />
|
||||
<meta id="discord" name="twitter:image" content="{{ url }}/raw">
|
||||
<meta id="image-src" name="twitter:image:src" content="{{ url }}/raw">
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
@ -49,7 +35,6 @@
|
|||
<a href="{{ url }}/raw" class="btn btn-secondary my-2 my-sm-0" data-toggle="tooltip" title="{{ lang('raw') }}"><i class="fas fa-file-alt fa-lg fa-fw"></i></a>
|
||||
<a href="{{ url }}/download" class="btn btn-warning my-2 my-sm-0" data-toggle="tooltip" title="{{ lang('download') }}"><i class="fas fa-cloud-download-alt fa-lg fa-fw"></i></a>
|
||||
{% if session.get('logged') %}
|
||||
<a href="javascript:void(0)" class="btn btn-info my-2 my-sm-0 public-vanity" data-link="{{ route('upload.vanity', {'id': media.mediaId}) }}" data-id="{{ media.mediaId }}" data-toggle="tooltip" title="{{ lang('vanity') }}"><i class="fas fa-star fa-lg fa-fw"></i></a>
|
||||
<a href="javascript:void(0)" class="btn btn-danger my-2 my-sm-0 public-delete" data-link="{{ route('upload.delete', {'id': media.mediaId}) }}" data-toggle="tooltip" title="{{ lang('delete') }}"><i class="fas fa-trash fa-lg fa-fw"></i></a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
@ -58,7 +43,7 @@
|
|||
</nav>
|
||||
<div class="container-fluid">
|
||||
{% include 'comp/alert.twig' %}
|
||||
<div class="row">
|
||||
<div class="row ml-auto mr-auto">
|
||||
<div class="col-md-12 justify-content-center">
|
||||
{% if delete_token is not null %}
|
||||
<form method="post" action="{{ url }}/delete/{{ delete_token }}">
|
||||
|
@ -163,5 +148,4 @@
|
|||
</div>
|
||||
</div>
|
||||
{% include 'comp/modal_delete.twig' %}
|
||||
{% include 'comp/modal_vanity.twig' %}
|
||||
{% endblock %}
|
||||
|
|
|
@ -66,11 +66,7 @@
|
|||
<div class="btn-group">
|
||||
<a href="{{ route('config.sharex', {'id': user.id}) }}" class="btn btn-lg btn-outline-dark"><i class="fas fa-fw fa-download"></i> ShareX</a>
|
||||
<a href="javascript:alert('{{ lang('copied') }}')" data-clipboard-text="{{ route('config.screencloud', {'token': user.token}) }}" class="btn btn-lg btn-outline-info btn-clipboard"><i class="fas fa-fw fa-download"></i> Screencloud</a>
|
||||
<a href="{{ route('config.script', {'id': user.id}) }}" type="button" class="btn btn-lg btn-outline-danger"><i class="fas fa-fw fa-download"></i> Linux Script</a>
|
||||
<button type="button" class="btn btn-outline-danger dropdown-toggle dropdown-toggle-split" id="userDropdown" data-toggle="dropdown" aria-expanded="false"></button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item text-danger" href="{{ route('kde_config.script', {'id': user.id}) }}"><i class="fas fa-fw fa-download"></i> KDE Linux Script</a></li>
|
||||
</ul>
|
||||
<a href="{{ route('config.script', {'id': user.id}) }}" class="btn btn-lg btn-outline-danger"><i class="fas fa-fw fa-download"></i> Linux Script</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
45
src/js/app.js
Executable file → Normal file
45
src/js/app.js
Executable file → Normal file
|
@ -29,10 +29,8 @@ var app = {
|
|||
|
||||
$('.user-delete').click(app.modalDelete);
|
||||
$('.public-delete').click(app.modalDelete);
|
||||
$('.public-vanity').click(app.modalVanity);
|
||||
$('.media-delete').click(app.mediaDelete);
|
||||
$('.publish-toggle').click(app.publishToggle);
|
||||
|
||||
$('.refresh-token').click(app.refreshToken);
|
||||
$('#themes').mousedown(app.loadThemes);
|
||||
$('.checkForUpdatesButton').click(app.checkForUpdates);
|
||||
|
@ -48,10 +46,6 @@ var app = {
|
|||
$('.alert').slideUp(500);
|
||||
});
|
||||
|
||||
if ($('.dropzone').length > 0) {
|
||||
app.initClipboardPasteToUpload();
|
||||
}
|
||||
|
||||
new ClipboardJS('.btn-clipboard');
|
||||
new Plyr($('#player'), {ratio: '16:9'});
|
||||
|
||||
|
@ -63,30 +57,6 @@ var app = {
|
|||
$('#modalDelete-link').attr('href', $(this).data('link'));
|
||||
$('#modalDelete').modal('show');
|
||||
},
|
||||
modalVanity: function () {
|
||||
var id = $(this).data('id');
|
||||
$('#modalVanity').modal('show');
|
||||
$('#modalVanity-link').click(function () {
|
||||
var $callerButton = $(this);
|
||||
$.post(window.AppConfig.base_url + '/upload/' + id + '/vanity', {vanity: $('#modalVanity-input').val()}, function (responseData, status) {
|
||||
$callerButton.tooltip('dispose');
|
||||
$('#modalVanity').modal('hide');
|
||||
$('#modalVanity-input').val('');
|
||||
var parsedData = JSON.parse(responseData);
|
||||
if ($('#media_' + id).find('.btn-group').length > 0) {
|
||||
$('#media_' + id).find('.btn-group').find('a').each(function (item) {
|
||||
var oldUrl = $(this).attr('href');
|
||||
var newUrl = oldUrl.replace(oldUrl.substr(oldUrl.lastIndexOf('/') + 1), parsedData.code.code);
|
||||
$(this).attr('href', newUrl);
|
||||
});
|
||||
} else {
|
||||
var oldUrl = window.location.href;
|
||||
var newUrl = oldUrl.replace(oldUrl.substr(oldUrl.lastIndexOf('/') + 1), parsedData.code.code);
|
||||
window.location.href = newUrl;
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
publishToggle: function () {
|
||||
var id = $(this).data('id');
|
||||
var $callerButton = $(this);
|
||||
|
@ -256,20 +226,7 @@ var app = {
|
|||
$('#dropdown-tag-list > a[data-id="' + $tag.data('id') + '"]').remove();
|
||||
}
|
||||
});
|
||||
},
|
||||
initClipboardPasteToUpload: function() {
|
||||
document.onpaste = function(event){
|
||||
if (event.clipboardData || event.originalEvent.clipboardData) {
|
||||
const items = (event.clipboardData || event.originalEvent.clipboardData).items;
|
||||
items.forEach((item) => {
|
||||
if (item.kind === 'file') {
|
||||
// Add the file to the dropzone instance.
|
||||
Dropzone.forElement('.dropzone').addFile(item.getAsFile());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
app.init();
|
||||
|
|
|
@ -7,6 +7,7 @@ use Tests\TestCase;
|
|||
|
||||
class LoginControllerTest extends TestCase
|
||||
{
|
||||
|
||||
/** @test */
|
||||
public function it_loads_the_login_page()
|
||||
{
|
||||
|
|
|
@ -97,7 +97,7 @@ class RegisterControllerTest extends TestCase
|
|||
$this->assertSame(route('login'), $response->getHeaderLine('Location'));
|
||||
|
||||
$result = $this->database()->query('SELECT * FROM users WHERE id = ?', $userId)->fetch();
|
||||
$this->assertSame(1, (int) $result->active);
|
||||
$this->assertSame('1', $result->active);
|
||||
$this->assertNull($result->activate_token);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue