mirror of
https://github.com/linuxserver/Heimdall.git
synced 2026-02-24 05:30:33 +09:00
Compare commits
103 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b8e5a22648 | ||
|
|
e821edf01a | ||
|
|
188316df47 | ||
|
|
dd14ce8738 | ||
|
|
d8e4053ce4 | ||
|
|
f73b78f292 | ||
|
|
96ec1e0b08 | ||
|
|
1904d9d910 | ||
|
|
beb2851f4a | ||
|
|
645a0bc7fe | ||
|
|
ef73918098 | ||
|
|
06a23c70af | ||
|
|
323a6e17c7 | ||
|
|
0ca07c9698 | ||
|
|
fbb21d2885 | ||
|
|
b6741c8ff0 | ||
|
|
7fdca02af7 | ||
|
|
271100c25b | ||
|
|
cfecce6100 | ||
|
|
d71341df7a | ||
|
|
ac851f5a02 | ||
|
|
d2a8b7af48 | ||
|
|
4d7a86fbf7 | ||
|
|
87a3af3dbf | ||
|
|
79c76b9f50 | ||
|
|
d7742df802 | ||
|
|
736222e173 | ||
|
|
047ffb0b55 | ||
|
|
505d17cf57 | ||
|
|
71c2da160d | ||
|
|
3487b9e479 | ||
|
|
7cdf315d78 | ||
|
|
a1812a962c | ||
|
|
b97cab34b0 | ||
|
|
3426450b3c | ||
|
|
75804f4624 | ||
|
|
23f757e06f | ||
|
|
fabd704bab | ||
|
|
c16fbae963 | ||
|
|
348759b9ad | ||
|
|
d961aeb19b | ||
|
|
987a9c03b0 | ||
|
|
d17fb04983 | ||
|
|
b07918d751 | ||
|
|
f9a19fce91 | ||
|
|
1b71e80d52 | ||
|
|
9fac11cb77 | ||
|
|
a94fb108fa | ||
|
|
f51893b2d6 | ||
|
|
a4b32dcafd | ||
|
|
862f870303 | ||
|
|
869cfd34ab | ||
|
|
9e67b7c72e | ||
|
|
a5b7f10809 | ||
|
|
698665176c | ||
|
|
1bd65222e4 | ||
|
|
61a5a1a8b0 | ||
|
|
e51cdd7f7a | ||
|
|
a626222ff3 | ||
|
|
af68a45a3d | ||
|
|
7969df9344 | ||
|
|
67bc656325 | ||
|
|
b5baf0d606 | ||
|
|
32964e9045 | ||
|
|
27a667675a | ||
|
|
9a221f47bf | ||
|
|
8d2fbc5599 | ||
|
|
84ebe6587d | ||
|
|
89a71a18da | ||
|
|
05dd7a090b | ||
|
|
3a9bdd2c43 | ||
|
|
0292e9976e | ||
|
|
365de9512f | ||
|
|
e857023903 | ||
|
|
c058e1a452 | ||
|
|
7f42967b67 | ||
|
|
994961de54 | ||
|
|
049d20536c | ||
|
|
c9c8171a52 | ||
|
|
e7a6ac5a75 | ||
|
|
3a372107ba | ||
|
|
493374de65 | ||
|
|
c43fc929f7 | ||
|
|
895d5f2ebe | ||
|
|
cb4768e2cf | ||
|
|
6ca4bfb9ee | ||
|
|
1f7de03d90 | ||
|
|
861d287750 | ||
|
|
e2cc32fd0a | ||
|
|
762df25c45 | ||
|
|
0b114e7dc1 | ||
|
|
981876c43c | ||
|
|
7fe9c477e3 | ||
|
|
5b3a7f4e02 | ||
|
|
60e20c4023 | ||
|
|
9e1bb6c075 | ||
|
|
9c05d0d803 | ||
|
|
3d1393c0b3 | ||
|
|
9914fdb111 | ||
|
|
9b24c9f1b5 | ||
|
|
81b8c646d2 | ||
|
|
f734832e0f | ||
|
|
1bde11b30b |
18
.env.example
18
.env.example
@@ -1,15 +1,17 @@
|
||||
APP_NAME=Heimdall
|
||||
APP_ENV=local
|
||||
APP_KEY=
|
||||
APP_DEBUG=true
|
||||
APP_LOG_LEVEL=debug
|
||||
APP_DEBUG=false
|
||||
APP_URL=http://localhost
|
||||
|
||||
LOG_CHANNEL=daily
|
||||
|
||||
DB_CONNECTION=sqlite
|
||||
DB_DATABASE=app.sqlite
|
||||
|
||||
BROADCAST_DRIVER=log
|
||||
CACHE_DRIVER=file
|
||||
QUEUE_CONNECTION=sync
|
||||
SESSION_DRIVER=file
|
||||
SESSION_LIFETIME=120
|
||||
QUEUE_DRIVER=sync
|
||||
@@ -18,14 +20,24 @@ REDIS_HOST=127.0.0.1
|
||||
REDIS_PASSWORD=null
|
||||
REDIS_PORT=6379
|
||||
|
||||
MAIL_DRIVER=smtp
|
||||
MAIL_MAILER=smtp
|
||||
MAIL_HOST=smtp.mailtrap.io
|
||||
MAIL_PORT=2525
|
||||
MAIL_USERNAME=null
|
||||
MAIL_PASSWORD=null
|
||||
MAIL_ENCRYPTION=null
|
||||
MAIL_FROM_ADDRESS=null
|
||||
MAIL_FROM_NAME="${APP_NAME}"
|
||||
|
||||
AWS_ACCESS_KEY_ID=
|
||||
AWS_SECRET_ACCESS_KEY=
|
||||
AWS_DEFAULT_REGION=us-east-1
|
||||
AWS_BUCKET=
|
||||
|
||||
PUSHER_APP_ID=
|
||||
PUSHER_APP_KEY=
|
||||
PUSHER_APP_SECRET=
|
||||
PUSHER_APP_CLUSTER=mt1
|
||||
|
||||
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
||||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
||||
|
||||
14
SECURITY.md
Normal file
14
SECURITY.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| 2.3.x | :white_check_mark: |
|
||||
| < 2.3 | :x: |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
You can report any vulnerabilities on our discord server by DM-ing a team member, or asking a team member to DM you.
|
||||
|
||||
https://discord.com/invite/YWrKVTn
|
||||
@@ -52,7 +52,8 @@ class Application extends Model
|
||||
$list['null'] = 'None';
|
||||
foreach($all as $app) {
|
||||
$name = $app->name;
|
||||
$name = preg_replace('/\PL/u', '', $name);
|
||||
// $name = preg_replace('/\PL/u', '', $name);
|
||||
$name = preg_replace('/[^\p{L}\p{N}]/u', '', $name);
|
||||
|
||||
$list['\App\SupportedApps\\'.$name.'\\'.$name] = $app->name;
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||
use Throwable;
|
||||
|
||||
class Handler extends ExceptionHandler
|
||||
{
|
||||
@@ -22,32 +22,20 @@ class Handler extends ExceptionHandler
|
||||
* @var array
|
||||
*/
|
||||
protected $dontFlash = [
|
||||
'current_password',
|
||||
'password',
|
||||
'password_confirmation',
|
||||
];
|
||||
|
||||
/**
|
||||
* Report or log an exception.
|
||||
* Register the exception handling callbacks for the application.
|
||||
*
|
||||
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
|
||||
*
|
||||
* @param \Exception $exception
|
||||
* @return void
|
||||
*/
|
||||
public function report(Exception $exception)
|
||||
public function register()
|
||||
{
|
||||
parent::report($exception);
|
||||
}
|
||||
|
||||
/**
|
||||
* Render an exception into an HTTP response.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Exception $exception
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function render($request, Exception $exception)
|
||||
{
|
||||
return parent::render($request, $exception);
|
||||
$this->reportable(function (Throwable $e) {
|
||||
//
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
function format_bytes($bytes, $is_drive_size = true, $beforeunit = '', $afterunit = '')
|
||||
{
|
||||
$btype = ($is_drive_size === true) ? 1000 : 1024;
|
||||
@@ -11,6 +13,27 @@ function format_bytes($bytes, $is_drive_size = true, $beforeunit = '', $afteruni
|
||||
else return(round($bytes, 0).$beforeunit.$labels[$x].$afterunit);
|
||||
}
|
||||
|
||||
function str_slug($title, $separator = '-', $language = 'en')
|
||||
{
|
||||
return Str::slug($title, $separator, $language);
|
||||
}
|
||||
|
||||
if (! function_exists('str_is')) {
|
||||
/**
|
||||
* Determine if a given string matches a given pattern.
|
||||
*
|
||||
* @param string|array $pattern
|
||||
* @param string $value
|
||||
* @return bool
|
||||
*
|
||||
* @deprecated Str::is() should be used directly instead. Will be removed in Laravel 6.0.
|
||||
*/
|
||||
function str_is($pattern, $value)
|
||||
{
|
||||
return Str::is($pattern, $value);
|
||||
}
|
||||
}
|
||||
|
||||
function get_brightness($hex) {
|
||||
// returns brightness value from 0 to 255
|
||||
// strip off any leading #
|
||||
|
||||
@@ -306,7 +306,7 @@ class ItemController extends Controller
|
||||
->where('id', $id)
|
||||
->restore();
|
||||
|
||||
$route = route('items.inded', []);
|
||||
$route = route('items.index', []);
|
||||
return redirect($route)
|
||||
->with('success',__('app.alert.success.item_restored'));
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ class SearchController extends Controller
|
||||
$provider = Search::providerDetails($requestprovider);
|
||||
|
||||
if($provider->type == 'standard') {
|
||||
return redirect($provider->url.'?'.$provider->var.'='.urlencode($query));
|
||||
return redirect($provider->url.'?'.$provider->query.'='.urlencode($query));
|
||||
} elseif($provider->type == 'external') {
|
||||
$class = new $provider->class;
|
||||
//print_r($provider);
|
||||
|
||||
@@ -66,7 +66,7 @@ class SettingsController extends Controller
|
||||
$user = $this->user();
|
||||
|
||||
if (!is_null($setting)) {
|
||||
$data = Setting::getInput();
|
||||
$data = Setting::getInput($request);
|
||||
|
||||
$setting_value = null;
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
|
||||
use Symfony\Component\HttpFoundation\Cookie;
|
||||
|
||||
class VerifyCsrfToken extends Middleware
|
||||
{
|
||||
@@ -18,4 +19,40 @@ class VerifyCsrfToken extends Middleware
|
||||
'test_config',
|
||||
//'get_stats'
|
||||
];
|
||||
|
||||
/**
|
||||
* Add the CSRF token to the response cookies.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Symfony\Component\HttpFoundation\Response $response
|
||||
* @return \Symfony\Component\HttpFoundation\Response
|
||||
*/
|
||||
protected function addCookieToResponse($request, $response)
|
||||
{
|
||||
$config = config('session');
|
||||
|
||||
if ($response instanceof Responsable) {
|
||||
$response = $response->toResponse($request);
|
||||
}
|
||||
|
||||
$response->headers->setCookie(
|
||||
new Cookie(
|
||||
'HEIMDALL-XSRF-TOKEN', $request->session()->token(), $this->availableAt(60 * $config['lifetime']),
|
||||
$config['path'], $config['domain'], $config['secure'], false, false, $config['same_site'] ?? null
|
||||
)
|
||||
);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if the cookie contents should be serialized.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function serialized()
|
||||
{
|
||||
return EncryptCookies::serialized('HEIMDALL-XSRF-TOKEN');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
19
app/Item.php
19
app/Item.php
@@ -56,19 +56,6 @@ class Item extends Model
|
||||
if(empty($config)) {
|
||||
$config = null;
|
||||
} else {
|
||||
$store = false;
|
||||
//die(var_dump($config));
|
||||
foreach($config as $key => $check) {
|
||||
if($key == 'type') continue;
|
||||
if($key == 'dataonly') continue;
|
||||
if(!empty($check) && $check != '0') {
|
||||
$store = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
//die(var_dump($store))
|
||||
|
||||
$config['enabled'] = ($store) ? true : false;
|
||||
$config = json_encode($config);
|
||||
}
|
||||
return $config;
|
||||
@@ -106,7 +93,7 @@ class Item extends Model
|
||||
public function getLinkAttribute()
|
||||
{
|
||||
if((int)$this->type === 1) {
|
||||
return '/tag/'.$this->url;
|
||||
return url('tag/'.$this->url);
|
||||
} else {
|
||||
return $this->url;
|
||||
}
|
||||
@@ -214,6 +201,8 @@ class Item extends Model
|
||||
$config = new \stdClass;
|
||||
$config->name = end($explode);
|
||||
$config->enabled = false;
|
||||
$config->override_url = null;
|
||||
$config->apikey = null;
|
||||
return $config;
|
||||
}
|
||||
|
||||
@@ -227,6 +216,8 @@ class Item extends Model
|
||||
$config->url = $this->url;
|
||||
if(isset($config->override_url) && !empty($config->override_url)) {
|
||||
$config->url = $config->override_url;
|
||||
} else {
|
||||
$config->override_url = null;
|
||||
}
|
||||
|
||||
return $config;
|
||||
|
||||
@@ -72,7 +72,8 @@ class AppServiceProvider extends ServiceProvider
|
||||
explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
|
||||
}
|
||||
if(!\Auth::check()) {
|
||||
if(isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
|
||||
if(isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])
|
||||
&& !empty($_SERVER['PHP_AUTH_USER']) && !empty($_SERVER['PHP_AUTH_PW'])) {
|
||||
$credentials = ['username' => $_SERVER['PHP_AUTH_USER'], 'password' => $_SERVER['PHP_AUTH_PW']];
|
||||
|
||||
if (\Auth::attempt($credentials, true)) {
|
||||
@@ -84,15 +85,17 @@ class AppServiceProvider extends ServiceProvider
|
||||
}
|
||||
elseif(isset($_SERVER['REMOTE_USER']) && !empty($_SERVER['REMOTE_USER'])) {
|
||||
$user = User::where('username', $_SERVER['REMOTE_USER'])->first();
|
||||
\Auth::login($user, true);
|
||||
session(['current_user' => $user]);
|
||||
if ($user) {
|
||||
\Auth::login($user, true);
|
||||
session(['current_user' => $user]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$alt_bg = '';
|
||||
if($bg_image = Setting::fetch('background_image')) {
|
||||
$alt_bg = ' style="background-image: url(/storage/'.$bg_image.')"';
|
||||
$alt_bg = ' style="background-image: url(storage/'.$bg_image.')"';
|
||||
}
|
||||
$lang = Setting::fetch('language');
|
||||
\App::setLocale($lang);
|
||||
|
||||
@@ -6,6 +6,7 @@ use App\Item;
|
||||
use App\Setting;
|
||||
use Form;
|
||||
use Cache;
|
||||
use Yaml;
|
||||
|
||||
abstract class Search
|
||||
{
|
||||
@@ -19,7 +20,7 @@ abstract class Search
|
||||
{
|
||||
$providers = self::standardProviders();
|
||||
$providers = $providers + self::appProviders();
|
||||
return $providers;
|
||||
return collect($providers);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -41,38 +42,16 @@ abstract class Search
|
||||
*/
|
||||
public static function standardProviders()
|
||||
{
|
||||
return [
|
||||
'google' => [
|
||||
'url' => 'https://www.google.com/search',
|
||||
'var' => 'q',
|
||||
'method' => 'get',
|
||||
'type' => 'standard',
|
||||
],
|
||||
'ddg' => [
|
||||
'url' => 'https://duckduckgo.com/',
|
||||
'var' => 'q',
|
||||
'method' => 'get',
|
||||
'type' => 'standard',
|
||||
],
|
||||
'bing' => [
|
||||
'url' => 'https://www.bing.com/search',
|
||||
'var' => 'q',
|
||||
'method' => 'get',
|
||||
'type' => 'standard',
|
||||
],
|
||||
'qwant' => [
|
||||
'url' => 'https://www.qwant.com/',
|
||||
'var' => 'q',
|
||||
'method' => 'get',
|
||||
'type' => 'standard',
|
||||
],
|
||||
'startpage' => [
|
||||
'url' => 'https://www.startpage.com/do/dsearch',
|
||||
'var' => 'query',
|
||||
'method' => 'get',
|
||||
'type' => 'standard',
|
||||
],
|
||||
];
|
||||
// $providers = json_decode(file_get_contents(storage_path('app/searchproviders.json')));
|
||||
// print_r($providers);
|
||||
$providers = Yaml::parseFile(storage_path('app/searchproviders.yaml'));
|
||||
$all = [];
|
||||
foreach($providers as $key => $provider) {
|
||||
$all[$key] = $provider;
|
||||
$all[$key]['type'] = 'standard';
|
||||
}
|
||||
|
||||
return $all;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -89,10 +68,15 @@ abstract class Search
|
||||
if(empty($app->class)) continue;
|
||||
if(($provider = Item::isSearchProvider($app->class)) !== false) {
|
||||
$name = Item::nameFromClass($app->class);
|
||||
$providers[strtolower($name)] = [
|
||||
$providers[$app->id] = [
|
||||
'id' => $app->id,
|
||||
'type' => $provider->type,
|
||||
'class' => $app->class,
|
||||
'url' => $app->url,
|
||||
'name' => $app->title,
|
||||
'colour' => $app->colour,
|
||||
'icon' => $app->icon,
|
||||
'description' => $app->description
|
||||
];
|
||||
|
||||
}
|
||||
@@ -129,8 +113,8 @@ abstract class Search
|
||||
$output .= '<div id="search-container" class="input-container">';
|
||||
$output .= '<select name="provider">';
|
||||
foreach(self::providers() as $key => $searchprovider) {
|
||||
$selected = ($key === $user_search_provider) ? ' selected="selected"' : '';
|
||||
$output .= '<option value="'.$key.'"'.$selected.'>'.__('app.options.'.$key).'</option>';
|
||||
$selected = ((string)$key === (string)$user_search_provider) ? ' selected="selected"' : '';
|
||||
$output .= '<option value="'.$key.'"'.$selected.'>'.$searchprovider['name'].'</option>';
|
||||
}
|
||||
$output .= '</select>';
|
||||
$output .= Form::text('q', null, ['class' => 'homesearch', 'autofocus' => 'autofocus', 'placeholder' => __('app.settings.search').'...']);
|
||||
@@ -144,4 +128,4 @@ abstract class Search
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ use Form;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\User;
|
||||
use App\Search;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class Setting extends Model
|
||||
{
|
||||
@@ -39,11 +40,11 @@ class Setting extends Model
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function getInput()
|
||||
public static function getInput(Request $request)
|
||||
{
|
||||
return (object) [
|
||||
'value' => Input::get('value'),
|
||||
'image' => Input::file('value'),
|
||||
'value' => $request->input('value'),
|
||||
'image' => $request->file('value'),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -73,6 +74,9 @@ class Setting extends Model
|
||||
case 'select':
|
||||
if(!empty($this->value) && $this->value !== 'none') {
|
||||
$options = (array)json_decode($this->options);
|
||||
if($this->key === 'search_provider') {
|
||||
$options = Search::providers()->pluck('name', 'id')->toArray();
|
||||
}
|
||||
$value = __($options[$this->value]);
|
||||
} else {
|
||||
$value = __('app.options.none');
|
||||
@@ -121,11 +125,17 @@ class Setting extends Model
|
||||
break;
|
||||
case 'select':
|
||||
$options = json_decode($this->options);
|
||||
if($this->key === 'search_provider') {
|
||||
$options = Search::providers()->pluck('name', 'id');
|
||||
}
|
||||
foreach($options as $key => $opt) {
|
||||
$options->$key = __($opt);
|
||||
}
|
||||
$value = Form::select('value', $options, null, ['class' => 'form-control']);
|
||||
break;
|
||||
case 'textarea':
|
||||
$value = Form::textarea('value', null, ['class' => 'form-control', 'cols' => '44', 'rows' => '15']);
|
||||
break;
|
||||
default:
|
||||
$value = Form::text('value', null, ['class' => 'form-control']);
|
||||
break;
|
||||
|
||||
@@ -5,14 +5,15 @@
|
||||
"license": "MIT",
|
||||
"type": "project",
|
||||
"require": {
|
||||
"php": ">=7.0.0",
|
||||
"php": ">=7.2.5",
|
||||
"fideloper/proxy": "^4.0",
|
||||
"graham-campbell/github": "^7.5",
|
||||
"guzzlehttp/guzzle": "^6.3",
|
||||
"laravel/framework": "5.7.*",
|
||||
"laravel/tinker": "~1.0",
|
||||
"laravelcollective/html": "^5.5",
|
||||
"php-http/guzzle6-adapter": "^1.1"
|
||||
"graham-campbell/github": "^10.5",
|
||||
"guzzlehttp/guzzle": "^7.4",
|
||||
"laravel/framework": "^7.0",
|
||||
"laravel/tinker": "^2.0",
|
||||
"laravel/ui": "^2.4",
|
||||
"laravelcollective/html": "^6.0",
|
||||
"symfony/yaml": "^5.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"filp/whoops": "~2.0",
|
||||
@@ -59,6 +60,10 @@
|
||||
"config": {
|
||||
"preferred-install": "dist",
|
||||
"sort-packages": true,
|
||||
"optimize-autoloader": true
|
||||
"optimize-autoloader": true,
|
||||
"allow-plugins": {
|
||||
"kylekatarnls/update-helper": true,
|
||||
"symfony/thanks": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
5342
composer.lock
generated
5342
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -14,7 +14,7 @@ return [
|
||||
*/
|
||||
|
||||
'name' => env('APP_NAME', 'Heimdall'),
|
||||
'version' => '2.2.2',
|
||||
'version' => '2.3.2',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -228,6 +228,7 @@ return [
|
||||
'URL' => Illuminate\Support\Facades\URL::class,
|
||||
'Validator' => Illuminate\Support\Facades\Validator::class,
|
||||
'View' => Illuminate\Support\Facades\View::class,
|
||||
'Yaml' => Symfony\Component\Yaml\Yaml::class,
|
||||
|
||||
'SupportedApps' => App\SupportedApps::class,
|
||||
'EnhancedApps' => App\EnhancedApps::class,
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
@@ -107,13 +109,27 @@ return [
|
||||
|
||||
'redis' => [
|
||||
|
||||
'client' => 'predis',
|
||||
'client' => env('REDIS_CLIENT', 'phpredis'),
|
||||
|
||||
'options' => [
|
||||
'cluster' => env('REDIS_CLUSTER', 'redis'),
|
||||
'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
|
||||
],
|
||||
|
||||
'default' => [
|
||||
'url' => env('REDIS_URL'),
|
||||
'host' => env('REDIS_HOST', '127.0.0.1'),
|
||||
'password' => env('REDIS_PASSWORD', null),
|
||||
'port' => env('REDIS_PORT', 6379),
|
||||
'database' => 0,
|
||||
'port' => env('REDIS_PORT', '6379'),
|
||||
'database' => env('REDIS_DB', '0'),
|
||||
],
|
||||
|
||||
'cache' => [
|
||||
'url' => env('REDIS_URL'),
|
||||
'host' => env('REDIS_HOST', '127.0.0.1'),
|
||||
'password' => env('REDIS_PASSWORD', null),
|
||||
'port' => env('REDIS_PORT', '6379'),
|
||||
'database' => env('REDIS_CACHE_DB', '1'),
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
104
config/logging.php
Normal file
104
config/logging.php
Normal file
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
|
||||
use Monolog\Handler\NullHandler;
|
||||
use Monolog\Handler\StreamHandler;
|
||||
use Monolog\Handler\SyslogUdpHandler;
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Log Channel
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option defines the default log channel that gets used when writing
|
||||
| messages to the logs. The name specified in this option should match
|
||||
| one of the channels defined in the "channels" configuration array.
|
||||
|
|
||||
*/
|
||||
|
||||
'default' => env('LOG_CHANNEL', 'stack'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Log Channels
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may configure the log channels for your application. Out of
|
||||
| the box, Laravel uses the Monolog PHP logging library. This gives
|
||||
| you a variety of powerful log handlers / formatters to utilize.
|
||||
|
|
||||
| Available Drivers: "single", "daily", "slack", "syslog",
|
||||
| "errorlog", "monolog",
|
||||
| "custom", "stack"
|
||||
|
|
||||
*/
|
||||
|
||||
'channels' => [
|
||||
'stack' => [
|
||||
'driver' => 'stack',
|
||||
'channels' => ['single'],
|
||||
'ignore_exceptions' => false,
|
||||
],
|
||||
|
||||
'single' => [
|
||||
'driver' => 'single',
|
||||
'path' => storage_path('logs/laravel.log'),
|
||||
'level' => 'debug',
|
||||
],
|
||||
|
||||
'daily' => [
|
||||
'driver' => 'daily',
|
||||
'path' => storage_path('logs/laravel.log'),
|
||||
'level' => 'debug',
|
||||
'days' => 14,
|
||||
],
|
||||
|
||||
'slack' => [
|
||||
'driver' => 'slack',
|
||||
'url' => env('LOG_SLACK_WEBHOOK_URL'),
|
||||
'username' => 'Laravel Log',
|
||||
'emoji' => ':boom:',
|
||||
'level' => 'critical',
|
||||
],
|
||||
|
||||
'papertrail' => [
|
||||
'driver' => 'monolog',
|
||||
'level' => 'debug',
|
||||
'handler' => SyslogUdpHandler::class,
|
||||
'handler_with' => [
|
||||
'host' => env('PAPERTRAIL_URL'),
|
||||
'port' => env('PAPERTRAIL_PORT'),
|
||||
],
|
||||
],
|
||||
|
||||
'stderr' => [
|
||||
'driver' => 'monolog',
|
||||
'handler' => StreamHandler::class,
|
||||
'formatter' => env('LOG_STDERR_FORMATTER'),
|
||||
'with' => [
|
||||
'stream' => 'php://stderr',
|
||||
],
|
||||
],
|
||||
|
||||
'syslog' => [
|
||||
'driver' => 'syslog',
|
||||
'level' => 'debug',
|
||||
],
|
||||
|
||||
'errorlog' => [
|
||||
'driver' => 'errorlog',
|
||||
'level' => 'debug',
|
||||
],
|
||||
|
||||
'null' => [
|
||||
'driver' => 'monolog',
|
||||
'handler' => NullHandler::class,
|
||||
],
|
||||
|
||||
'emergency' => [
|
||||
'path' => storage_path('logs/laravel.log'),
|
||||
],
|
||||
],
|
||||
|
||||
];
|
||||
@@ -164,7 +164,7 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'secure' => env('SESSION_SECURE_COOKIE', false),
|
||||
'secure' => env('SESSION_SECURE_COOKIE', null),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -44,6 +44,16 @@ class SettingsSeeder extends Seeder
|
||||
$setting_group->title = 'app.settings.miscellaneous';
|
||||
$setting_group->save();
|
||||
}
|
||||
if(!$setting_group = SettingGroup::find(4)) {
|
||||
$setting_group = new SettingGroup;
|
||||
$setting_group->id = 4;
|
||||
$setting_group->title = 'app.settings.advanced';
|
||||
$setting_group->order = 3;
|
||||
$setting_group->save();
|
||||
} else {
|
||||
$setting_group->title = 'app.settings.advanced';
|
||||
$setting_group->save();
|
||||
}
|
||||
|
||||
if($version = Setting::find(1)) {
|
||||
$version->label = 'app.settings.version';
|
||||
@@ -96,7 +106,7 @@ class SettingsSeeder extends Seeder
|
||||
]);
|
||||
|
||||
if(!$setting = Setting::find(4)) {
|
||||
|
||||
|
||||
$setting = new Setting;
|
||||
$setting->id = 4;
|
||||
$setting->group_id = 3;
|
||||
@@ -117,9 +127,10 @@ class SettingsSeeder extends Seeder
|
||||
'en' => 'English',
|
||||
'fi' => 'Suomi (Finnish)',
|
||||
'fr' => 'Français (French)',
|
||||
'el' => 'Ελληνικά (Greek)',
|
||||
'it' => 'Italiano (Italian)',
|
||||
'no' => 'Norsk (Norwegian)',
|
||||
'pl' => 'Polski (Polish)',
|
||||
'no' => 'Norsk (Norwegian)',
|
||||
'pl' => 'Polski (Polish)',
|
||||
'sv' => 'Svenska (Swedish)',
|
||||
'es' => 'Español (Spanish)',
|
||||
'tr' => 'Türkçe (Turkish)',
|
||||
@@ -146,7 +157,7 @@ class SettingsSeeder extends Seeder
|
||||
]);
|
||||
|
||||
if(!$setting = Setting::find(7)) {
|
||||
|
||||
|
||||
$setting = new Setting;
|
||||
$setting->id = 7;
|
||||
$setting->group_id = 3;
|
||||
@@ -193,6 +204,38 @@ class SettingsSeeder extends Seeder
|
||||
$setting->system = true;
|
||||
$setting->save();
|
||||
}
|
||||
|
||||
if(!$setting = Setting::find(10)) {
|
||||
$setting = new Setting;
|
||||
$setting->id = 10;
|
||||
$setting->group_id = 4;
|
||||
$setting->key = 'custom_css';
|
||||
$setting->type = 'textarea';
|
||||
$setting->label = 'app.settings.custom_css';
|
||||
$setting->value = '';
|
||||
$setting->save();
|
||||
} else {
|
||||
$setting->type = 'textarea';
|
||||
$setting->group_id = 4;
|
||||
$setting->label = 'app.settings.custom_css';
|
||||
$setting->save();
|
||||
}
|
||||
|
||||
if(!$setting = Setting::find(11)) {
|
||||
$setting = new Setting;
|
||||
$setting->id = 11;
|
||||
$setting->group_id = 4;
|
||||
$setting->key = 'custom_js';
|
||||
$setting->type = 'textarea';
|
||||
$setting->label = 'app.settings.custom_js';
|
||||
$setting->value = '';
|
||||
$setting->save();
|
||||
} else {
|
||||
$setting->type = 'textarea';
|
||||
$setting->group_id = 4;
|
||||
$setting->label = 'app.settings.custom_js';
|
||||
$setting->save();
|
||||
}
|
||||
|
||||
if(!$home_tag = \App\Item::find(0)) {
|
||||
$home_tag = new \App\Item;
|
||||
|
||||
218
package-lock.json
generated
218
package-lock.json
generated
@@ -1962,6 +1962,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"clone-deep": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
|
||||
"integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-plain-object": "^2.0.4",
|
||||
"kind-of": "^6.0.2",
|
||||
"shallow-clone": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"coa": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
|
||||
@@ -3643,7 +3654,8 @@
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"aproba": {
|
||||
"version": "1.2.0",
|
||||
@@ -3664,12 +3676,14 @@
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
@@ -3684,17 +3698,20 @@
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
@@ -3811,7 +3828,8 @@
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.5",
|
||||
@@ -3823,6 +3841,7 @@
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
}
|
||||
@@ -3837,6 +3856,7 @@
|
||||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
@@ -3844,12 +3864,14 @@
|
||||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.3.5",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.2",
|
||||
"yallist": "^3.0.0"
|
||||
@@ -3868,6 +3890,7 @@
|
||||
"version": "0.5.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
@@ -3948,7 +3971,8 @@
|
||||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
@@ -3960,6 +3984,7 @@
|
||||
"version": "1.4.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
@@ -4045,7 +4070,8 @@
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
@@ -4081,6 +4107,7 @@
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
@@ -4100,6 +4127,7 @@
|
||||
"version": "3.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^2.0.0"
|
||||
}
|
||||
@@ -4143,12 +4171,14 @@
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"yallist": {
|
||||
"version": "3.0.3",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -4641,6 +4671,12 @@
|
||||
"loader-utils": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"immutable": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz",
|
||||
"integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==",
|
||||
"dev": true
|
||||
},
|
||||
"import-cwd": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
|
||||
@@ -5237,9 +5273,9 @@
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.11",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
|
||||
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.memoize": {
|
||||
@@ -6132,6 +6168,12 @@
|
||||
"sha.js": "^2.4.8"
|
||||
}
|
||||
},
|
||||
"picomatch": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
||||
"dev": true
|
||||
},
|
||||
"pify": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
|
||||
@@ -7195,6 +7237,139 @@
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||
"dev": true
|
||||
},
|
||||
"sass": {
|
||||
"version": "1.49.9",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz",
|
||||
"integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chokidar": ">=3.0.0 <4.0.0",
|
||||
"immutable": "^4.0.0",
|
||||
"source-map-js": ">=0.6.2 <2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"anymatch": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
|
||||
"integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"normalize-path": "^3.0.0",
|
||||
"picomatch": "^2.0.4"
|
||||
}
|
||||
},
|
||||
"binary-extensions": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
||||
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
|
||||
"dev": true
|
||||
},
|
||||
"braces": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
||||
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fill-range": "^7.0.1"
|
||||
}
|
||||
},
|
||||
"chokidar": {
|
||||
"version": "3.5.3",
|
||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
|
||||
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"anymatch": "~3.1.2",
|
||||
"braces": "~3.0.2",
|
||||
"fsevents": "~2.3.2",
|
||||
"glob-parent": "~5.1.2",
|
||||
"is-binary-path": "~2.1.0",
|
||||
"is-glob": "~4.0.1",
|
||||
"normalize-path": "~3.0.0",
|
||||
"readdirp": "~3.6.0"
|
||||
}
|
||||
},
|
||||
"fill-range": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"to-regex-range": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"fsevents": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"glob-parent": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
||||
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-glob": "^4.0.1"
|
||||
}
|
||||
},
|
||||
"is-binary-path": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
||||
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"binary-extensions": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"is-number": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||
"dev": true
|
||||
},
|
||||
"readdirp": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
||||
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"picomatch": "^2.2.1"
|
||||
}
|
||||
},
|
||||
"to-regex-range": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-number": "^7.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sass-loader": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz",
|
||||
"integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"clone-deep": "^4.0.1",
|
||||
"loader-utils": "^1.0.1",
|
||||
"neo-async": "^2.5.0",
|
||||
"pify": "^4.0.1",
|
||||
"semver": "^6.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
||||
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"sax": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
|
||||
@@ -7408,6 +7583,15 @@
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"shallow-clone": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
|
||||
"integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"kind-of": "^6.0.2"
|
||||
}
|
||||
},
|
||||
"shebang-command": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
||||
@@ -7642,6 +7826,12 @@
|
||||
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
|
||||
"dev": true
|
||||
},
|
||||
"source-map-js": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
|
||||
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map-resolve": {
|
||||
"version": "0.5.2",
|
||||
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
|
||||
|
||||
5
public/css/all.min.css
vendored
Normal file
5
public/css/all.min.css
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
/*!
|
||||
* Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Commercial License)
|
||||
*/
|
||||
.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-ban:before{content:"\f05e"}.fa-check:before{content:"\f00c"}.fa-cloud-download:before{content:"\f0ed"}.fa-cogs:before{content:"\f085"}.fa-edit:before{content:"\f044"}.fa-exchange:before{content:"\f0ec"}.fa-list:before{content:"\f03a"}.fa-pencil:before{content:"\f040"}.fa-plus:before{content:"\f067"}.fa-save:before{content:"\f0c7"}.fa-tag:before{content:"\f02b"}.fa-th:before{content:"\f00a"}.fa-thumbtack:before{content:"\f08d"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-user:before{content:"\f007"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Pro";font-weight:900}
|
||||
1890
public/css/app.css
vendored
1890
public/css/app.css
vendored
File diff suppressed because one or more lines are too long
742
public/js/app.js
vendored
742
public/js/app.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/jquery-3.3.1.min.js
vendored
2
public/js/jquery-3.3.1.min.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/jquery-3.6.0.min.js
vendored
Normal file
2
public/js/jquery-3.6.0.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
public/manifest.json
generated
2
public/manifest.json
generated
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "App",
|
||||
"name": "Heimdall",
|
||||
"icons": [
|
||||
{
|
||||
"src": "\/android-icon-36x36.png",
|
||||
|
||||
4
public/mix-manifest.json
generated
4
public/mix-manifest.json
generated
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"/css/app.css": "/css/app.css?id=e4ac968c3a08d246c3b0",
|
||||
"/js/app.js": "/js/app.js?id=f5edf362209887248205"
|
||||
"/css/app.css": "/css/app.css?id=bafda2139c75830558d2",
|
||||
"/js/app.js": "/js/app.js?id=0ff185efa8c02e94999e"
|
||||
}
|
||||
|
||||
15
readme.md
15
readme.md
@@ -34,11 +34,11 @@ Supported applications are recognized by the title of the application as entered
|
||||
[](https://apps.heimdall.site/applications/foundation)
|
||||
|
||||
## Installing
|
||||
Apart from the Laravel dependencies, namely PHP >= 7.1.3, OpenSSL PHP Extension, PDO PHP Extension, Filter PHP Extension, Mbstring PHP Extension, Tokenizer PHP Extension, XML PHP Extension, Ctype PHP Extension and JSON PHP Extension, the only other thing Heimdall needs is sqlite support and zip support (php-zip).
|
||||
Apart from the Laravel dependencies, namely PHP >= 7.2.5, BCMath PHP Extension, Ctype PHP Extension, Fileinfo PHP extension, JSON PHP Extension, Mbstring PHP Extension, OpenSSL PHP Extension, PDO PHP Extension, Tokenizer PHP Extension, XML PHP Extension, the only other thing Heimdall needs is sqlite support and zip support (php-zip).
|
||||
|
||||
If you find you can't change the background make sure `php_fileinfo` is enabled in your php.ini. I believe it should be by default, but one user came across the issue on a windows system.
|
||||
|
||||
Installation is as simple as cloning the repository somewhere, or downloading and extracting the zip/tar and pointing your httpd document root to the `/public` folder.
|
||||
Installation is as simple as cloning the repository somewhere, or downloading and extracting the zip/tar and pointing your httpd document root to the `/public` folder then creating the .env file and generating an encryption key (this is all taken care of for you with the docker).
|
||||
|
||||
```
|
||||
cd /path/to/heimdall
|
||||
@@ -52,6 +52,9 @@ There is also a multi-arch Docker which supports x86-64, armhf and arm64, instru
|
||||
|
||||
- https://hub.docker.com/r/linuxserver/heimdall/
|
||||
|
||||
## Updating
|
||||
To update your instance, simply clone this repository or download the zip/tar file with the new version and copy it over the old installation.
|
||||
|
||||
## New background image not being set
|
||||
If you are using the docker image or a default php install you may find images over 2MB wont get set as the background image, you just need to change the `upload_max_filesize` in the php.ini.
|
||||
|
||||
@@ -78,6 +81,7 @@ Currently added languages are
|
||||
- Swedish
|
||||
- Spanish
|
||||
- Turkish
|
||||
- Russian
|
||||
|
||||
## Web Server Configuration
|
||||
|
||||
@@ -129,7 +133,7 @@ location /webfonts {
|
||||
If there are any other locations which might interfere with any of the folders in the `/public` folder, you might have to do the same for those as well, but it's a super fringe case.
|
||||
|
||||
### Reverse proxy
|
||||
If you'd like to reverse proxy this app, we recommend using our letsencrypt/nginx docker image: [Letsencrypt/Nginx](https://hub.docker.com/r/linuxserver/letsencrypt/)
|
||||
If you'd like to reverse proxy this app, we recommend using our letsencrypt/nginx docker image: [SWAG - Secure Web Application Gateway](https://hub.docker.com/r/linuxserver/swag)
|
||||
You can either reverse proxy from the root location, or from a subdomain (subfolder method is currently not supported). For HTTPS proxy, make sure you use the HTTPS port of Heimdall webserver, otherwise some links may break. You can add security through `.htpasswd`
|
||||
|
||||
```
|
||||
@@ -137,12 +141,11 @@ location / {
|
||||
auth_basic "Restricted";
|
||||
auth_basic_user_file /config/nginx/.htpasswd;
|
||||
include /config/nginx/proxy.conf;
|
||||
proxy_pass https://heimdall:443;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
proxy_pass http://heimdall;
|
||||
}
|
||||
```
|
||||
|
||||
If you are using HTTPS and things aren't working try adding `FORCE_HTTPS=true` to the end of your `.env` file or proxy to the https version of the app.
|
||||
|
||||
### Self-signed certificates and local CAs
|
||||
Per default Heimdall uses the standard certificate bundle file (`ca-certificates.crt`) to verify HTTPS sites and will ignore additional certificates placed in `/etc/ssl/certs`. If you wish to use enhanced apps with HTTPS sites that use a self-signed certificate or certs signed with your own local CA, you can override the default bundle:
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ $.when( $.ready ).then(function() {
|
||||
var timer = 5000;
|
||||
var fun = function worker() {
|
||||
$.ajax({
|
||||
url: base+'/get_stats/'+id,
|
||||
url: base+'get_stats/'+id,
|
||||
dataType: 'json',
|
||||
success: function(data) {
|
||||
container.html(data.html);
|
||||
@@ -120,7 +120,7 @@ $.when( $.ready ).then(function() {
|
||||
attribute: 'data-id'
|
||||
});
|
||||
$.post(
|
||||
base+'/order',
|
||||
base+'order',
|
||||
{ order:idsInOrder }
|
||||
);
|
||||
}
|
||||
@@ -128,7 +128,41 @@ $.when( $.ready ).then(function() {
|
||||
});
|
||||
$('#sortable').sortable('disable');
|
||||
|
||||
|
||||
$('#search-container').on('input', 'input[name=q]', function () {
|
||||
const search = this.value
|
||||
const items = $('#sortable').children('.item-container')
|
||||
if($('#search-container select[name=provider]').val() === 'tiles') {
|
||||
if(search.length > 0) {
|
||||
items.hide()
|
||||
items.filter(function () {
|
||||
const name = $(this).data('name').toLowerCase();
|
||||
return name.includes(search.toLowerCase())
|
||||
}).show()
|
||||
} else {
|
||||
items.show()
|
||||
}
|
||||
} else {
|
||||
items.show()
|
||||
}
|
||||
}).on('change', 'select[name=provider]', function () {
|
||||
const items = $('#sortable').children('.item-container')
|
||||
if($(this).val() === 'tiles') {
|
||||
$('#search-container button').hide()
|
||||
const search = $('#search-container input[name=q]').val()
|
||||
if(search.length > 0) {
|
||||
items.hide()
|
||||
items.filter(function () {
|
||||
const name = $(this).data('name').toLowerCase();
|
||||
return name.includes(search.toLowerCase())
|
||||
}).show()
|
||||
} else {
|
||||
items.show()
|
||||
}
|
||||
} else {
|
||||
$('#search-container button').show()
|
||||
items.show()
|
||||
}
|
||||
})
|
||||
|
||||
$('#app').on('click', '#config-button', function(e) {
|
||||
e.preventDefault();
|
||||
@@ -175,7 +209,7 @@ $.when( $.ready ).then(function() {
|
||||
data[config] = $(this).val();
|
||||
});
|
||||
|
||||
$.post(base+'/test_config', { data: data }, function(data) {
|
||||
$.post(base+'test_config', { data: data }, function(data) {
|
||||
alert(data);
|
||||
});
|
||||
|
||||
@@ -185,7 +219,7 @@ $.when( $.ready ).then(function() {
|
||||
var current = $(this);
|
||||
var id = current.data('id');
|
||||
var tag = current.data('tag');
|
||||
$.get(base+'/items/pintoggle/'+id+'/true/'+tag, function(data) {
|
||||
$.get(base+'items/pintoggle/'+id+'/true/'+tag, function(data) {
|
||||
var inner = $(data).filter('#sortable').html();
|
||||
$('#sortable').html(inner);
|
||||
current.toggleClass('active');
|
||||
|
||||
120
resources/lang/cn/app.php
Normal file
120
resources/lang/cn/app.php
Normal file
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| App Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
*/
|
||||
|
||||
'settings.system' => '系统',
|
||||
'settings.appearance' => '外观',
|
||||
'settings.miscellaneous' => '其他',
|
||||
'settings.support' => '支持',
|
||||
'settings.donate' => '捐赠',
|
||||
|
||||
'settings.version' => '版本',
|
||||
'settings.background_image' => '背景图片',
|
||||
'settings.window_target' => '链接打开方式',
|
||||
'settings.window_target.current' => '在当前选项卡中打开',
|
||||
'settings.window_target.one' => '在同一个选项卡中打开',
|
||||
'settings.window_target.new' => '在新的选项卡中打开',
|
||||
'settings.homepage_search' => '主页搜索',
|
||||
'settings.search_provider' => '默认搜索引擎',
|
||||
'settings.language' => '语言',
|
||||
'settings.reset' => '重置为默认值',
|
||||
'settings.remove' => '删除',
|
||||
'settings.search' => '搜索',
|
||||
'settings.no_items' => '没有可用项目',
|
||||
|
||||
|
||||
'settings.label' => '设置项',
|
||||
'settings.value' => '内容',
|
||||
'settings.edit' => '编辑',
|
||||
'settings.view' => '查看',
|
||||
|
||||
'options.none' => '- 未设置 -',
|
||||
'options.google' => 'Google',
|
||||
'options.ddg' => 'DuckDuckGo',
|
||||
'options.bing' => 'Bing',
|
||||
'options.qwant' => 'Qwant',
|
||||
'options.startpage' => 'StartPage',
|
||||
'options.yes' => '是',
|
||||
'options.no' => '否',
|
||||
'options.nzbhydra' => 'NZBHydra',
|
||||
'options.jackett' => 'Jackett',
|
||||
|
||||
'buttons.save' => '保存',
|
||||
'buttons.cancel' => '取消',
|
||||
'buttons.add' => '添加',
|
||||
'buttons.upload' => '上传图标',
|
||||
'buttons.downloadapps' => '更新应用列表',
|
||||
|
||||
'dash.pin_item' => '将应用固定到仪表盘',
|
||||
'dash.no_apps' => '当前没有固定的应用, 请 :link1 或 :link2',
|
||||
'dash.link1' => '添加应用',
|
||||
'dash.link2' => '将应用固定到仪表盘',
|
||||
'dash.pinned_items' => '固定应用',
|
||||
|
||||
'apps.app_list' => '应用列表',
|
||||
'apps.view_trash' => '查看垃圾箱',
|
||||
'apps.add_application' => '添加应用',
|
||||
'apps.application_name' => '应用名称',
|
||||
'apps.colour' => '颜色',
|
||||
'apps.icon' => '图标',
|
||||
'apps.pinned' => '固定',
|
||||
'apps.title' => '标题',
|
||||
'apps.hex' => 'Hex颜色',
|
||||
'apps.username' => '用户名称',
|
||||
'apps.password' => '密码',
|
||||
'apps.config' => '配置',
|
||||
'apps.apikey' => 'API 密钥',
|
||||
'apps.enable' => 'Enable',
|
||||
'apps.tag_list' => '标签列表',
|
||||
'apps.add_tag' => '添加标签',
|
||||
'apps.tag_name' => '标签名称',
|
||||
'apps.tags' => '标签',
|
||||
'apps.override' => '如果与主链接不同',
|
||||
'apps.preview' => '预览',
|
||||
'apps.apptype' => '应用类型',
|
||||
|
||||
'dashboard' => '主页-控制台',
|
||||
|
||||
'user.user_list' => '用户',
|
||||
'user.add_user' => '添加用户',
|
||||
'user.username' => '用户名称',
|
||||
'user.avatar' => '头像',
|
||||
'user.email' => '邮箱地址',
|
||||
'user.password_confirm' => '重复密码',
|
||||
'user.secure_front' => '仅设置密码后才允许公开访问.',
|
||||
'user.autologin' => '仅可从特定的链接访问(任何通过链接都可访问).',
|
||||
|
||||
'url' => '链接',
|
||||
'title' => '标题',
|
||||
'delete' => '删除',
|
||||
'optional' => '可选',
|
||||
'restore' => '复位',
|
||||
|
||||
'alert.success.item_created' => '应用添加成功',
|
||||
'alert.success.item_updated' => '应用更新成功',
|
||||
'alert.success.item_deleted' => '应用删除成功',
|
||||
'alert.success.item_restored' => '应用复位成功',
|
||||
'alert.success.updating' => '更新应用列表完成',
|
||||
|
||||
'alert.success.tag_created' => '标签添加成功',
|
||||
'alert.success.tag_updated' => '标签更新成功',
|
||||
'alert.success.tag_deleted' => '标签删除成功',
|
||||
'alert.success.tag_restored' => '标签复位成功',
|
||||
|
||||
'alert.success.setting_updated' => '你已成功编辑此设置',
|
||||
'alert.error.not_exist' => '此设置项不存在.',
|
||||
|
||||
'alert.success.user_created' => '用户添加成功',
|
||||
'alert.success.user_updated' => '用户更新成功',
|
||||
'alert.success.user_deleted' => '用户删除成功',
|
||||
'alert.success.user_restored' => '用户复位成功',
|
||||
|
||||
|
||||
];
|
||||
120
resources/lang/da/app.php
Normal file
120
resources/lang/da/app.php
Normal file
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| App Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
*/
|
||||
|
||||
'settings.system' => 'System',
|
||||
'settings.appearance' => 'Appearance',
|
||||
'settings.miscellaneous' => 'Miscellaneous',
|
||||
'settings.support' => 'Support',
|
||||
'settings.donate' => 'Doner',
|
||||
|
||||
'settings.version' => 'Version',
|
||||
'settings.background_image' => 'Baggrundsbillede',
|
||||
'settings.window_target' => 'Link opens in',
|
||||
'settings.window_target.current' => 'Åbn i denne fane',
|
||||
'settings.window_target.one' => 'Åbn i den samme fane',
|
||||
'settings.window_target.new' => 'Åbn i en ny fane',
|
||||
'settings.homepage_search' => 'Homepage Search',
|
||||
'settings.search_provider' => 'Standardsøgemaskine',
|
||||
'settings.language' => 'Sprog',
|
||||
'settings.reset' => 'Nulstil tilbage til standard',
|
||||
'settings.remove' => 'Fjern',
|
||||
'settings.search' => 'søg',
|
||||
'settings.no_items' => 'Intet fundet',
|
||||
|
||||
|
||||
'settings.label' => 'Etiket',
|
||||
'settings.value' => 'Værdi',
|
||||
'settings.edit' => 'Rediger',
|
||||
'settings.view' => 'Vis',
|
||||
|
||||
'options.none' => '- ikke indstillet -',
|
||||
'options.google' => 'Google',
|
||||
'options.ddg' => 'DuckDuckGo',
|
||||
'options.bing' => 'Bing',
|
||||
'options.qwant' => 'Qwant',
|
||||
'options.startpage' => 'Startside',
|
||||
'options.yes' => 'Ja',
|
||||
'options.no' => 'Nej',
|
||||
'options.nzbhydra' => 'NZBHydra',
|
||||
'options.jackett' => 'Jackett',
|
||||
|
||||
'buttons.save' => 'Gem',
|
||||
'buttons.cancel' => 'Afbryd',
|
||||
'buttons.add' => 'Tilføj',
|
||||
'buttons.upload' => 'Upload et ikon',
|
||||
'buttons.downloadapps' => 'Opdater apps-listen',
|
||||
|
||||
'dash.pin_item' => 'Fastgør element til dashboard',
|
||||
'dash.no_apps' => 'Der er i øjeblikket ingen fastgjorte applikationer, :link1 eller :link2',
|
||||
'dash.link1' => 'Add an application here',
|
||||
'dash.link2' => 'Pin an item to the dash',
|
||||
'dash.pinned_items' => 'Fastgjorte elementer',
|
||||
|
||||
'apps.app_list' => 'Applikations liste',
|
||||
'apps.view_trash' => 'View trash',
|
||||
'apps.add_application' => 'Tilføj applikation',
|
||||
'apps.application_name' => 'Applikations navn',
|
||||
'apps.colour' => 'Farver',
|
||||
'apps.icon' => 'Ikon',
|
||||
'apps.pinned' => 'Fastgjort',
|
||||
'apps.title' => 'Titel',
|
||||
'apps.hex' => 'Hex farver',
|
||||
'apps.username' => 'brugernavn',
|
||||
'apps.password' => 'kodeord',
|
||||
'apps.config' => 'Config',
|
||||
'apps.apikey' => 'API nøgle',
|
||||
'apps.enable' => 'Aktiver',
|
||||
'apps.tag_list' => 'Tags liste',
|
||||
'apps.add_tag' => 'Tilføj tag',
|
||||
'apps.tag_name' => 'Tag navn',
|
||||
'apps.tags' => 'Tags',
|
||||
'apps.override' => 'Hvis det er anderledes end hovedwebadressen',
|
||||
'apps.preview' => 'Eksempel',
|
||||
'apps.apptype' => 'Applikationstype',
|
||||
|
||||
'dashboard' => 'Home dashboard',
|
||||
|
||||
'user.user_list' => 'Brugere',
|
||||
'user.add_user' => 'Tilføj bruger',
|
||||
'user.username' => 'Brugernavn',
|
||||
'user.avatar' => 'Avatar',
|
||||
'user.email' => 'E-mail',
|
||||
'user.password_confirm' => 'Bekræft kodeord',
|
||||
'user.secure_front' => 'Tillad offentlig adgang til forsiden - Kun håndhævet, hvis der er angivet en adgangskode.',
|
||||
'user.autologin' => 'Tillad at logge ind fra en bestemt URL. Alle med linket kan logge ind.',
|
||||
|
||||
'url' => 'URL',
|
||||
'title' => 'Title',
|
||||
'delete' => 'Slet',
|
||||
'optional' => 'Valgfri',
|
||||
'restore' => 'Genskab',
|
||||
|
||||
'alert.success.item_created' => 'Item created successfully',
|
||||
'alert.success.item_updated' => 'Item updated successfully',
|
||||
'alert.success.item_deleted' => 'Item deleted successfully',
|
||||
'alert.success.item_restored' => 'Item restored successfully',
|
||||
'alert.success.updating' => 'Updating apps list',
|
||||
|
||||
'alert.success.tag_created' => 'Tag oprettet med succes',
|
||||
'alert.success.tag_updated' => 'Tag opdateret med succes',
|
||||
'alert.success.tag_deleted' => 'Tag slettet med succes',
|
||||
'alert.success.tag_restored' => 'Tag genskabt med succes',
|
||||
|
||||
'alert.success.setting_updated' => 'You have successfully edited this setting',
|
||||
'alert.error.not_exist' => 'Denne indstilling findes ikke.',
|
||||
|
||||
'alert.success.user_created' => 'Bruger oprettet med succes',
|
||||
'alert.success.user_updated' => 'Bruger opdateret med succes',
|
||||
'alert.success.user_deleted' => 'Bruger slettet med succes',
|
||||
'alert.success.user_restored' => 'Bruger genskabt med succes',
|
||||
|
||||
|
||||
];
|
||||
19
resources/lang/da/pagination.php
Normal file
19
resources/lang/da/pagination.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '« Tidligere',
|
||||
'next' => 'Næste »',
|
||||
|
||||
];
|
||||
22
resources/lang/da/passwords.php
Normal file
22
resources/lang/da/passwords.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
'password' => 'Adgangskoder skal bestå af mindst seks tegn og matche bekræftelsen.',
|
||||
'reset' => 'Din adgangskode er nulstillet!',
|
||||
'sent' => 'Vi har sendt dig en e-mail med et link til nulstilling af adgangskode!',
|
||||
'token' => 'Dit token er ikke gyldigt!',
|
||||
'user' => "Vi kan ikke finde en bruger med den e-mail-adresse.",
|
||||
|
||||
];
|
||||
@@ -4,16 +4,16 @@ return array (
|
||||
'settings.system' => 'System',
|
||||
'settings.appearance' => 'Aussehen',
|
||||
'settings.miscellaneous' => 'Sonstiges',
|
||||
'settings.version' => 'Ausführung',
|
||||
'settings.version' => 'Version',
|
||||
'settings.background_image' => 'Hintergrundbild',
|
||||
'settings.homepage_search' => 'Homepage Suchen',
|
||||
'settings.homepage_search' => 'Startseite Sucheingabe',
|
||||
'settings.search_provider' => 'Suchanbieter',
|
||||
'settings.language' => 'Sprache',
|
||||
'settings.reset' => 'Zurücksetzen auf Standard zurück',
|
||||
'settings.reset' => 'Zurücksetzen auf Standard',
|
||||
'settings.remove' => 'Entfernen',
|
||||
'settings.search' => 'suche',
|
||||
'settings.no_items' => 'Keine Elemente gefunden',
|
||||
'settings.label' => 'Etikett',
|
||||
'settings.label' => 'Bezeichnung',
|
||||
'settings.value' => 'Wert',
|
||||
'settings.edit' => 'Bearbeiten',
|
||||
'settings.view' => 'Ansicht',
|
||||
@@ -29,9 +29,9 @@ return array (
|
||||
'buttons.add' => 'Hinzufügen',
|
||||
'buttons.upload' => 'Hochladen einer Datei',
|
||||
'dash.pin_item' => 'Element auf dem Dashboard anheften',
|
||||
'dash.no_apps' => 'Derzeit gibt es keine angeheftete Anwendungen :link1 oder :link2',
|
||||
'dash.link1' => 'Hinzufügen einer Anwendung hier',
|
||||
'dash.link2' => 'Heften Sie ein Element auf dem Armaturenbrett',
|
||||
'dash.no_apps' => 'Derzeit gibt es keine angeheftete Anwendungen. :link1 oder :link2',
|
||||
'dash.link1' => 'Anwendung neu hinzufügen',
|
||||
'dash.link2' => 'anheften',
|
||||
'dash.pinned_items' => 'Angeheftete Elemente',
|
||||
'apps.app_list' => 'Anwendungsliste',
|
||||
'apps.view_trash' => 'Ansicht Papierkorb',
|
||||
@@ -39,21 +39,22 @@ return array (
|
||||
'apps.application_name' => 'Anwendungsname',
|
||||
'apps.colour' => 'Farbe',
|
||||
'apps.icon' => 'Symbol',
|
||||
'apps.pinned' => 'Festgesteckt',
|
||||
'apps.pinned' => 'Angeheftet',
|
||||
'apps.title' => 'Titel',
|
||||
'apps.hex' => 'Hex-Farbe',
|
||||
'apps.username' => 'Benutzername',
|
||||
'apps.password' => 'Passwort',
|
||||
'apps.config' => 'Konfig',
|
||||
'url' => 'Url',
|
||||
'apps.config' => 'Konfiguration',
|
||||
'apps.only_admin_account' => 'Nur mit Admin-Konto!',
|
||||
'url' => 'URL',
|
||||
'title' => 'Titel',
|
||||
'delete' => 'Löschen',
|
||||
'optional' => 'Wahlweise',
|
||||
'optional' => 'Optional',
|
||||
'restore' => 'Wiederherstellen',
|
||||
'alert.success.item_created' => 'Element erfolgreich erstellt',
|
||||
'alert.success.item_updated' => 'Artikel erfolgreich aktualisiert',
|
||||
'alert.success.item_updated' => 'Element erfolgreich aktualisiert',
|
||||
'alert.success.item_deleted' => 'Element erfolgreich gelöscht',
|
||||
'alert.success.item_restored' => 'Element erfolgreich wiederhergestellt',
|
||||
'alert.success.setting_updated' => 'Sie haben diese Einstellung erfolgreich bearbeitet',
|
||||
'alert.success.setting_updated' => 'Die Einstellungen wurden übernommen',
|
||||
'alert.error.not_exist' => 'Diese Einstellung existiert nicht.',
|
||||
);
|
||||
120
resources/lang/el/app.php
Normal file
120
resources/lang/el/app.php
Normal file
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| App Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
*/
|
||||
|
||||
'settings.system' => 'Σύστημα',
|
||||
'settings.appearance' => 'Εμφάνιση',
|
||||
'settings.miscellaneous' => 'Λοιπά',
|
||||
'settings.support' => 'Υποστήριξη',
|
||||
'settings.donate' => 'Δωρεά',
|
||||
|
||||
'settings.version' => 'Έκδοση',
|
||||
'settings.background_image' => 'Εικόνα Παρασκηνίου',
|
||||
'settings.window_target' => 'Ο Σύνδεσμος ανοίγει σε',
|
||||
'settings.window_target.current' => 'Άνοιγμα σε αυτή την καρτέλα',
|
||||
'settings.window_target.one' => 'Άνοιγμα στην ίδια καρτέλα',
|
||||
'settings.window_target.new' => 'Άνοιγμα σε νέα καρτέλα',
|
||||
'settings.homepage_search' => 'Αναζήτηση στην Αρχική Σελίδα',
|
||||
'settings.search_provider' => 'Προεπιλεγμένος Πάροχος Αναζήτησης',
|
||||
'settings.language' => 'Γλώσσα',
|
||||
'settings.reset' => 'Επαναφορά πίσω στις προεπιλογές',
|
||||
'settings.remove' => 'Αφαίρεση',
|
||||
'settings.search' => 'αναζήτηση',
|
||||
'settings.no_items' => 'Δε βρεθηκαν αποτελέσματα',
|
||||
|
||||
|
||||
'settings.label' => 'Ετικέτα',
|
||||
'settings.value' => 'Τιμή',
|
||||
'settings.edit' => 'Επεξεργασία',
|
||||
'settings.view' => 'Προβολή',
|
||||
|
||||
'options.none' => '- μη ορισμένο -',
|
||||
'options.google' => 'Google',
|
||||
'options.ddg' => 'DuckDuckGo',
|
||||
'options.bing' => 'Bing',
|
||||
'options.qwant' => 'Qwant',
|
||||
'options.startpage' => 'StartPage',
|
||||
'options.yes' => 'Ναι',
|
||||
'options.no' => 'Όχι',
|
||||
'options.nzbhydra' => 'NZBHydra',
|
||||
'options.jackett' => 'Jackett',
|
||||
|
||||
'buttons.save' => 'Αποθήκευση',
|
||||
'buttons.cancel' => 'Ακύρωση',
|
||||
'buttons.add' => 'Προσθήκη',
|
||||
'buttons.upload' => 'Μεταφόρτωση ενός αρχείου',
|
||||
'buttons.downloadapps' => 'Ανανέωση Λίστας Εφαρμογών',
|
||||
|
||||
'dash.pin_item' => 'Καρφίτσωμα του αντικειμένου στο ταμπλό',
|
||||
'dash.no_apps' => 'Δεν υπάρχουν προς το παρόν καρφιτσωμένες εφαρμογές, :link1 ή :link2',
|
||||
'dash.link1' => 'Προσθήκη μίας εφαρμογής εδώ',
|
||||
'dash.link2' => 'Καρφίτσωμα ενός αντικειμένου στο ταμπλό',
|
||||
'dash.pinned_items' => 'Καρφιτσωμένα αντικείμενα',
|
||||
|
||||
'apps.app_list' => 'Λίστα Εφαρμογών',
|
||||
'apps.view_trash' => 'Εμφάνιση Απορριμμάτων',
|
||||
'apps.add_application' => 'Προσθήκη εφαρμογής',
|
||||
'apps.application_name' => 'Όνομα Εφαρμογής',
|
||||
'apps.colour' => 'Χρώμα',
|
||||
'apps.icon' => 'Εικονίδιο',
|
||||
'apps.pinned' => 'Καρφιτσωμένο',
|
||||
'apps.title' => 'Τίτλος',
|
||||
'apps.hex' => 'Hex χρώμα',
|
||||
'apps.username' => 'Όνομα χρήστη',
|
||||
'apps.password' => 'Κωδικός πρόσβασης',
|
||||
'apps.config' => 'Ρύθμιση',
|
||||
'apps.apikey' => 'Κλειδί API',
|
||||
'apps.enable' => 'Ενεργοποίηση',
|
||||
'apps.tag_list' => 'Λίστα Ετικετών',
|
||||
'apps.add_tag' => 'Προσθήκη ετικέτας',
|
||||
'apps.tag_name' => 'Όνομα Ετικέτας',
|
||||
'apps.tags' => 'Ετικέτες',
|
||||
'apps.override' => 'Αν διαφορετικό με το κύριο url',
|
||||
'apps.preview' => 'Προεπισκόπιση',
|
||||
'apps.apptype' => 'Τύπος Εφαρμογής',
|
||||
|
||||
'dashboard' => 'Αρχικό ταμπλό',
|
||||
|
||||
'user.user_list' => 'Χρήστες',
|
||||
'user.add_user' => 'Προσθήκη χρήστη',
|
||||
'user.username' => 'Όνομα χρήστη',
|
||||
'user.avatar' => 'Εικόνα χρήστη',
|
||||
'user.email' => 'Email',
|
||||
'user.password_confirm' => 'Επιβεβαίωση κωδικού πρόσβασης',
|
||||
'user.secure_front' => 'Χορήγηση δημόσιας πρόσβασης στο εμπρόσθιο τμήμα - Τίθεται σε ενέργεια μόνο εαν έχει ορισθεί κωδικός.',
|
||||
'user.autologin' => 'Χορήγηση πρόσβασης από ένα συγκεκριμένο URL. Οποιοσδήποτε με τον σύνδεσμο μπορεί να εισέρθει.',
|
||||
|
||||
'url' => 'URL',
|
||||
'title' => 'Τίτλος',
|
||||
'delete' => 'Διαγραφή',
|
||||
'optional' => 'Προεραιτικό',
|
||||
'restore' => 'Επαναφορά',
|
||||
|
||||
'alert.success.item_created' => 'Το αντικείμενο δημιουργήθηκε επιτυχώς',
|
||||
'alert.success.item_updated' => 'Το αντικείμενο ενημερώθηκε επιτυχώς',
|
||||
'alert.success.item_deleted' => 'Το αντικείμενο διαγράφηκε επιτυχώς',
|
||||
'alert.success.item_restored' => 'Το αντικείμενο επαναφέρθηκε επιτυχώς',
|
||||
'alert.success.updating' => 'Η λίστα των εφαρμογών ενημερώνεται',
|
||||
|
||||
'alert.success.tag_created' => 'Η ετικέτα δημιουργήθηκε επιτυχώ',
|
||||
'alert.success.tag_updated' => 'Η ετικέτα ενημερώθηκε επιτυχώς',
|
||||
'alert.success.tag_deleted' => 'Η ετικέτα διαγράφηκε επιτυχώς',
|
||||
'alert.success.tag_restored' => 'Η ετικέτα επαναφέρθηκε επιτυχώς',
|
||||
|
||||
'alert.success.setting_updated' => 'Επεξεργαστήκατε επιτυχώς αυτή τη ρύθμιση',
|
||||
'alert.error.not_exist' => 'Αυτή η ρύθμιση δεν υπάρχει.',
|
||||
|
||||
'alert.success.user_created' => 'Ο χρήστης δημιουργήθηκε επιτυχώς',
|
||||
'alert.success.user_updated' => 'Ο χρήστης ενημερώθηκε επιτυχώς',
|
||||
'alert.success.user_deleted' => 'Ο χρήστης διαγράφηκε επιτυχώς',
|
||||
'alert.success.user_restored' => 'Ο χρήστης επαναφέρθηκε επιτυχώς',
|
||||
|
||||
|
||||
];
|
||||
19
resources/lang/el/auth.php
Normal file
19
resources/lang/el/auth.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
'failed' => 'Αυτά τα διαπιστευτήρια δεν ταιριάζουν με τα μητρώα μας.',
|
||||
'throttle' => 'Πολλές προσπάθειες εισόδου. Παρακαλούμε προσπαθήστε ξανά σε :seconds δευτερόλεπτα.',
|
||||
|
||||
];
|
||||
19
resources/lang/el/pagination.php
Normal file
19
resources/lang/el/pagination.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '« Προηγούμενη',
|
||||
'next' => 'Επόμενη »',
|
||||
|
||||
];
|
||||
22
resources/lang/el/passwords.php
Normal file
22
resources/lang/el/passwords.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
'password' => 'Οι κωδικοί πρόσβασης πρέπει να αποτελλούνται τουλάχιστον από έξι χαρακτήρες και να ταιριάζουν με την επικύρωση.',
|
||||
'reset' => 'Έχει γίνει επαναφορά του κωδικού σας!',
|
||||
'sent' => 'Σας στείλαμε ένα Ε-mail με τον σύνδεσμο για την επαναφορά του κωδικού πρόσβασής σας!',
|
||||
'token' => 'Αυτό το token για την επαναφορά του κωδικού πρόσβασής σας είναι άκυρο.',
|
||||
'user' => "Δεν μπορούμε να βρόυμε κάποιον χρήστη με αυτή τη διεύθυνση E-mail.",
|
||||
|
||||
];
|
||||
121
resources/lang/el/validation.php
Normal file
121
resources/lang/el/validation.php
Normal file
@@ -0,0 +1,121 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines contain the default error messages used by
|
||||
| the validator class. Some of these rules have multiple versions such
|
||||
| as the size rules. Feel free to tweak each of these messages here.
|
||||
|
|
||||
*/
|
||||
|
||||
'accepted' => 'Το πεδίο :attribute πρέπει να έχει γίνει αποδεκτό.',
|
||||
'active_url' => 'Το πεδίο :attribute δέν είναι μία έγκυρη διεύθυνση URL.',
|
||||
'after' => 'Το πεδίο :attribute πρέπει να είναι μία ημερομηνία μετά από :date.',
|
||||
'after_or_equal' => 'Το πεδίο :attribute πρέπει να είναι μία ημερομηνία μετά από :date ή ίδια με :date.',
|
||||
'alpha' => 'Το πεδίο :attribute μπορεί να περιέχει μόνο γράμματαμπορεί να περιέχει μόνο γράμματα.',
|
||||
'alpha_dash' => 'Το πεδίο :attribute μπορεί να περιέχει μόνο γράμματα, αριθμούς, και παύλες.',
|
||||
'alpha_num' => 'Το πεδίο :attribute μπορεί να περιέχει μόνο γράμματα και αριθμούς.',
|
||||
'array' => 'Το πεδίο :attribute πρέπει να είναι ένας πίνακας.',
|
||||
'before' => 'Το πεδίο :attribute πρέπει να είναι μία ημερομηνία πρίν από :date.',
|
||||
'before_or_equal' => 'Το πεδίο :attribute πρέπει να είναι μία ημερομηνία πρίν από :date ή ίση με :date.',
|
||||
'between' => [
|
||||
'numeric' => 'Το πεδίο :attribute πρέπει να είναι μεταξύ από :min και :max.',
|
||||
'file' => 'Το πεδίο :attribute πρέπει να είναι μεταξύ από :min και :max kilobytes.',
|
||||
'string' => 'Το πεδίο :attribute πρέπει να είναι μεταξύ από :min και :max characters.',
|
||||
'array' => 'Το πεδίο :attribute πρέπει να έχει μεταξύ :min και :max αντικείμενα.',
|
||||
],
|
||||
'boolean' => 'Το πεδίο :attribute πρέπει να είναι αληθές ή ψευδές.',
|
||||
'confirmed' => 'Η επικύρωση του πεδίου :attribute δεν ταιριάζει.',
|
||||
'date' => 'Το πεδίο :attribute δεν είναι μία έγκυρη ημερομηνία.',
|
||||
'date_format' => 'Το πεδίο :attribute δεν ταιριάζει με τη μορφή :format.',
|
||||
'different' => 'Τα πεδία :attribute και :other πρέπει να είναι διαφορετικά.',
|
||||
'digits' => 'Το πεδίο :attribute πρέπει να είναι :digits ψηφία.',
|
||||
'digits_between' => 'Το πεδίο :attribute πρέπει να είναι μεταξύ από :min και :max ψηφία.',
|
||||
'dimensions' => 'Το πεδίο :attribute δεν έχει έγκυρες διαστάσεις εικόνας.',
|
||||
'distinct' => 'Το πεδίο :attribute έχει μία διπλότυπη τιμή.',
|
||||
'email' => 'Το πεδίο :attribute πρέπει να είναι μία έγκυρη διεύθυνση E-mail.',
|
||||
'exists' => 'Το επιλεγμένο πεδίο :attribute είναι άκυρο.',
|
||||
'file' => 'Το πεδίο :attribute πρέπει να έιναι ένα αρχείο.',
|
||||
'filled' => 'Το πεδίο :attribute πρέπει να έχει μία τιμή.',
|
||||
'image' => 'Το πεδίο :attribute πρέπει να είναι μία εικόνα.',
|
||||
'in' => 'Το πεδίο selected :attribute είναι άκυρο.',
|
||||
'in_array' => 'Το πεδίο :attribute δεν υπάρχει στο :other.',
|
||||
'integer' => 'Το πεδίο :attribute πρέπει να είναι ένας ακέραιος αριθμός.',
|
||||
'ip' => 'Το πεδίο :attribute πρέπει να είναι μία έγκυρη διεύθυνση IP.',
|
||||
'ipv4' => 'Το πεδίο :attribute πρέπει να είναι μία έγκυρη διεύθυνση IPv4.',
|
||||
'ipv6' => 'Το πεδίο :attribute πρέπει να είναι μία έγκυρη διεύθυνση IPv6.',
|
||||
'json' => 'Το πεδίο :attribute πρέπει να είναι ένα έγκυρο JSON string.',
|
||||
'max' => [
|
||||
'numeric' => 'Το πεδίο :attribute δεν γίνεται να είναι μεγαλύτερο από :max.',
|
||||
'file' => 'Το πεδίο :attribute δεν γίνεται να είναι μεγαλύτερο από :max kilobytes.',
|
||||
'string' => 'Το πεδίο :attribute δεν γίνεται να είναι μεγαλύτερο από :max χαρακτήρες.',
|
||||
'array' => 'Το πεδίο :attribute δεν γίνεται να έχει περισσότερα από :max αντικείμενα.',
|
||||
],
|
||||
'mimes' => 'Το πεδίο :attribute πρέπει να είναι ένα αρχείου τύπου: :values.',
|
||||
'mimetypes' => 'Το πεδίο :attribute πρέπει να είναι ένα αρχείου τύπου: :values.',
|
||||
'min' => [
|
||||
'numeric' => 'Το πεδίο :attribute πρέπει να είναι τουλάχιστον :min.',
|
||||
'file' => 'Το πεδίο :attribute πρέπει να είναι τουλάχιστον :min kilobytes.',
|
||||
'string' => 'Το πεδίο :attribute πρέπει να είναι τουλάχιστον :min χαρακτήρες.',
|
||||
'array' => 'Το πεδίο :attribute πρέπει να έχει τουλάχιστον :min αντικείμενα.',
|
||||
],
|
||||
'not_in' => 'Το επιλεγμένο πεδίο :attribute είναι άκυρο.',
|
||||
'numeric' => 'Το πεδίο :attribute πρέπει να ένας αριθμός.',
|
||||
'present' => 'Το πεδίο :attribute πρέπει να είναι παρόν.',
|
||||
'regex' => 'Η μορφή του πεδίου :attribute είναι άκυρη.',
|
||||
'required' => 'Το πεδίο :attribute είναι απαιτούμενο.',
|
||||
'required_if' => 'Το πεδίο :attribute είναι απαιτούμενο εάν :other είναι :value.',
|
||||
'required_unless' => 'Το πεδίο :attribute είναι απαιτούμενο εκτός αν :other βρίσκεται στις τιμές :values.',
|
||||
'required_with' => 'Το πεδίο :attribute είναι απαιτούμενο εάν οι τιμές :values είναι παρούσες.',
|
||||
'required_with_all' => 'Το πεδίο :attribute είναι απαιτούμενο εάν οι τιμές :values είναι παρούσες.',
|
||||
'required_without' => 'Το πεδίο :attribute είναι απαιτούμενο εάν οι τιμές :values δεν είναι παρούσες.',
|
||||
'required_without_all' => 'Το πεδίο :attribute είναι απαιτούμενο εάν καμία από τις τιμές :values δεν είναι παρούσες.',
|
||||
'same' => 'Το πεδίο :attribute και :other πρέπει να είναι ίδια.',
|
||||
'size' => [
|
||||
'numeric' => 'Το πεδίο :attribute πρέπει να είναι :size.',
|
||||
'file' => 'Το πεδίο :attribute πρέπει να είναι :size kilobytes.',
|
||||
'string' => 'Το πεδίο :attribute πρέπει να είναι :size χαρακτήρες.',
|
||||
'array' => 'Το πεδίο :attribute πρέπει να περιέχει :size αντικείμενα.',
|
||||
],
|
||||
'string' => 'Το πεδίο :attribute πρέπει να είναι ένα string.',
|
||||
'timezone' => 'Το πεδίο :attribute πρέπει να είναι μία έγκυρη ζώνη ώρας.',
|
||||
'unique' => 'Το πεδίο :attribute έχει ήδη χρησιμοποιηθεί.',
|
||||
'uploaded' => 'Το πεδίο :attribute απέτυχε να μεταφορτωθεί.',
|
||||
'url' => 'Η μορφή του πεδίου :attribute είναι άκυρη.',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify custom validation messages for attributes using the
|
||||
| convention "attribute.rule" to name the lines. This makes it quick to
|
||||
| specify a specific custom language line for a given attribute rule.
|
||||
|
|
||||
*/
|
||||
|
||||
'custom' => [
|
||||
'attribute-name' => [
|
||||
'rule-name' => 'custom-message',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used to swap attribute place-holders
|
||||
| with something more reader friendly such as E-Mail Address instead
|
||||
| of "email". This simply helps us make messages a little cleaner.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => [],
|
||||
|
||||
];
|
||||
@@ -12,6 +12,8 @@ return [
|
||||
'settings.system' => 'System',
|
||||
'settings.appearance' => 'Appearance',
|
||||
'settings.miscellaneous' => 'Miscellaneous',
|
||||
'settings.advanced' => 'Advanced',
|
||||
|
||||
'settings.support' => 'Support',
|
||||
'settings.donate' => 'Donate',
|
||||
|
||||
@@ -29,11 +31,13 @@ return [
|
||||
'settings.search' => 'search',
|
||||
'settings.no_items' => 'No items found',
|
||||
|
||||
|
||||
'settings.label' => 'Label',
|
||||
'settings.value' => 'Value',
|
||||
'settings.edit' => 'Edit',
|
||||
'settings.view' => 'View',
|
||||
|
||||
'settings.custom_css' => 'Custom CSS',
|
||||
'settings.custom_js' => 'Custom JavaScript',
|
||||
|
||||
'options.none' => '- not set -',
|
||||
'options.google' => 'Google',
|
||||
@@ -44,11 +48,12 @@ return [
|
||||
'options.yes' => 'Yes',
|
||||
'options.no' => 'No',
|
||||
'options.nzbhydra' => 'NZBHydra',
|
||||
'options.jackett' => 'Jackett',
|
||||
|
||||
'buttons.save' => 'Save',
|
||||
'buttons.cancel' => 'Cancel',
|
||||
'buttons.add' => 'Add',
|
||||
'buttons.upload' => 'Upload a file',
|
||||
'buttons.upload' => 'Upload an icon',
|
||||
'buttons.downloadapps' => 'Update Apps List',
|
||||
|
||||
'dash.pin_item' => 'Pin item to dashboard',
|
||||
@@ -78,6 +83,7 @@ return [
|
||||
'apps.override' => 'If different to main url',
|
||||
'apps.preview' => 'Preview',
|
||||
'apps.apptype' => 'Application Type',
|
||||
'apps.only_admin_account' => 'Only if you have admin-account!',
|
||||
|
||||
'dashboard' => 'Home dashboard',
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ return array (
|
||||
'options.ddg' => 'DuckDuckGo',
|
||||
'options.bing' => 'Bing',
|
||||
'options.qwant' => 'Qwant',
|
||||
'options.jackett' => 'Jackett',
|
||||
'options.yes' => 'Sí',
|
||||
'options.no' => 'No',
|
||||
'buttons.save' => 'Guardar',
|
||||
@@ -29,19 +30,19 @@ return array (
|
||||
'buttons.add' => 'Añadir',
|
||||
'buttons.upload' => 'Cargar un archivo',
|
||||
'dash.pin_item' => 'Pin elemento al tablero',
|
||||
'dash.no_apps' => 'Actualmente no hay anclados aplicaciones :link1 o :link2',
|
||||
'dash.no_apps' => 'Actualmente no hay aplicaciones ancladas, :link1 o :link2',
|
||||
'dash.link1' => 'Agregue una aplicación aquí',
|
||||
'dash.link2' => 'Pin de un elemento en el tablero',
|
||||
'dash.pinned_items' => 'Elementos Anclados',
|
||||
'apps.app_list' => 'Lista de aplicaciones',
|
||||
'apps.view_trash' => 'Vista de la basura',
|
||||
'apps.view_trash' => 'Vista de la papelera de reciclaje',
|
||||
'apps.add_application' => 'Agregar aplicación',
|
||||
'apps.application_name' => 'Nombre de la aplicación',
|
||||
'apps.colour' => 'Color',
|
||||
'apps.icon' => 'Icono',
|
||||
'apps.pinned' => 'Fijado',
|
||||
'apps.title' => 'Título',
|
||||
'apps.hex' => 'Hexagonal de color',
|
||||
'apps.hex' => 'Código de color hexadecimal',
|
||||
'apps.username' => 'Nombre de usuario',
|
||||
'apps.password' => 'Contraseña',
|
||||
'apps.config' => 'Config',
|
||||
@@ -56,4 +57,4 @@ return array (
|
||||
'alert.success.item_restored' => 'Elemento restaurado con éxito',
|
||||
'alert.success.setting_updated' => 'Ha editado con éxito esta configuración',
|
||||
'alert.error.not_exist' => 'Esta configuración no existe.',
|
||||
);
|
||||
);
|
||||
|
||||
@@ -34,11 +34,14 @@ return array (
|
||||
'options.startpage' => 'Page d\'accueil',
|
||||
'options.yes' => 'Oui',
|
||||
'options.no' => 'Non',
|
||||
'options.nzbhydra' => 'NZBHydra',
|
||||
'options.jackett' => 'Jackett',
|
||||
|
||||
'buttons.save' => 'Enregistrer',
|
||||
'buttons.cancel' => 'Annuler',
|
||||
'buttons.add' => 'Ajouter',
|
||||
'buttons.upload' => 'Choisir un fichier',
|
||||
'buttons.downloadapps' => 'Mettre à jour la liste',
|
||||
|
||||
'dash.pin_item' => 'Épingler l\'application au tableau de bord',
|
||||
'dash.no_apps' => 'Il n\'existe actuellement aucune application épinglée :link1 ou :link2',
|
||||
@@ -58,13 +61,28 @@ return array (
|
||||
'apps.username' => 'Nom d\'utilisateur',
|
||||
'apps.password' => 'Mot de passe',
|
||||
'apps.config' => 'Config',
|
||||
'apps.apikey' => 'Clé de l\'API',
|
||||
'apps.enable' => 'Actif',
|
||||
'apps.tag_list' => 'Liste des labels',
|
||||
'apps.add_tag' => 'Ajouter un label',
|
||||
'apps.tag_name' => 'Nom du label',
|
||||
'apps.tags' => 'Labels',
|
||||
'apps.override' => 'Si différent de l\'url actuelle',
|
||||
|
||||
'apps.preview' => 'Aperçu',
|
||||
'apps.apptype' => 'Type d\'application ',
|
||||
'apps.only_admin_account' => 'Seulement si vous avez un compte administrateur!',
|
||||
|
||||
'dashboard' => 'Tableau de bord',
|
||||
|
||||
'user.user_list' => 'Utilisateurs',
|
||||
'user.add_user' => 'Ajouter un utilisateur',
|
||||
'user.username' => 'Nom d\'utilisateur',
|
||||
'user.avatar' => 'Avatar',
|
||||
'user.email' => 'Email',
|
||||
'user.password_confirm' => 'Confirmer le mot de passe',
|
||||
'user.secure_front' => 'Autoriser l\'accès public au front - Uniquement appliqué si un mot de passe est défini.',
|
||||
'user.autologin' => 'Autorisez la connexion à partir d\'une URL spécifique. Toute personne disposant du lien peut se connecter.',
|
||||
|
||||
'url' => 'Url',
|
||||
'title' => 'Titre',
|
||||
'delete' => 'Effacer',
|
||||
@@ -75,6 +93,7 @@ return array (
|
||||
'alert.success.item_updated' => 'Application mise à jour avec succès',
|
||||
'alert.success.item_deleted' => 'Application supprimée avec succès',
|
||||
'alert.success.item_restored' => 'Application restaurée avec succès',
|
||||
'alert.success.updating' => 'Liste des applications mise à jour avec succès',
|
||||
|
||||
'alert.success.tag_created' => 'Label crée avec succès',
|
||||
'alert.success.tag_updated' => 'Label mis à jour avec succès',
|
||||
|
||||
19
resources/lang/fr/auth.php
Normal file
19
resources/lang/fr/auth.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
'failed' => 'Ces informations d\'identification ne correspondent pas à nos enregistrements.',
|
||||
'throttle' => 'Trop de tentatives de connexion. Veuillez réessayer dans :seconds secondes.',
|
||||
|
||||
];
|
||||
19
resources/lang/fr/pagination.php
Normal file
19
resources/lang/fr/pagination.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '« précédents',
|
||||
'next' => '» suivants',
|
||||
|
||||
];
|
||||
22
resources/lang/fr/passwords.php
Normal file
22
resources/lang/fr/passwords.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
'password' => 'Les mots de passe doivent comporter au moins six caractères et correspondre à la confirmation.',
|
||||
'reset' => 'Votre mot de passe a été réinitialisé!',
|
||||
'sent' => 'Nous avons envoyé votre lien de réinitialisation de mot de passe par e-mail!',
|
||||
'token' => 'Ce jeton de réinitialisation de mot de passe n\'est pas valide.',
|
||||
'user' => "Nous ne pouvons pas trouver un utilisateur avec cette adresse e-mail.",
|
||||
|
||||
];
|
||||
121
resources/lang/hu/app.php
Normal file
121
resources/lang/hu/app.php
Normal file
@@ -0,0 +1,121 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| App Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
*/
|
||||
|
||||
'settings.system' => 'Rendszer',
|
||||
'settings.appearance' => 'Megjelenés',
|
||||
'settings.miscellaneous' => 'Miscellaneous',
|
||||
'settings.support' => 'Támogatás',
|
||||
'settings.donate' => 'Adomány',
|
||||
|
||||
'settings.version' => 'Verzió',
|
||||
'settings.background_image' => 'Háttérkép',
|
||||
'settings.window_target' => 'Link megnyitása',
|
||||
'settings.window_target.current' => 'Ezen a lapon',
|
||||
'settings.window_target.one' => 'Azonos lapon',
|
||||
'settings.window_target.new' => 'Új lapon',
|
||||
'settings.homepage_search' => 'Kezdő oldal kereső',
|
||||
'settings.search_provider' => 'Alapértelmezett kereső motor ',
|
||||
'settings.language' => 'Nyelv',
|
||||
'settings.reset' => 'Alapértelmezetek visszaállítása',
|
||||
'settings.remove' => 'Eltávolítás',
|
||||
'settings.search' => 'keresés',
|
||||
'settings.no_items' => 'Nincs találat',
|
||||
|
||||
|
||||
'settings.label' => 'Címke',
|
||||
'settings.value' => 'Érték',
|
||||
'settings.edit' => 'Módosítás',
|
||||
'settings.view' => 'Megtekintés',
|
||||
|
||||
'options.none' => '- nincs beállítva -',
|
||||
'options.google' => 'Google',
|
||||
'options.ddg' => 'DuckDuckGo',
|
||||
'options.bing' => 'Bing',
|
||||
'options.qwant' => 'Qwant',
|
||||
'options.startpage' => 'Kezdő oldal',
|
||||
'options.yes' => 'Igen',
|
||||
'options.no' => 'Nem',
|
||||
'options.nzbhydra' => 'NZBHydra',
|
||||
'options.jackett' => 'Jackett',
|
||||
|
||||
'buttons.save' => 'Mentás',
|
||||
'buttons.cancel' => 'Mégsem',
|
||||
'buttons.add' => 'Hozzáadás',
|
||||
'buttons.upload' => 'Ikon feltöltése',
|
||||
'buttons.downloadapps' => 'Alkalmazás lista frissítése',
|
||||
|
||||
'dash.pin_item' => 'Kitőzés kezdő képernyőre',
|
||||
'dash.no_apps' => 'Jelenleg nincsenek kitűzött alkalmazások, :link1 or :link2',
|
||||
'dash.link1' => 'Alkalmazás hozzáadása',
|
||||
'dash.link2' => 'Elem kitűzése kezdőképernyőre',
|
||||
'dash.pinned_items' => 'Kitűzött elemek',
|
||||
|
||||
'apps.app_list' => 'Alkalmazás lista',
|
||||
'apps.view_trash' => 'Törölt elemek megtekintése',
|
||||
'apps.add_application' => 'Alkalmazás hozzáadása',
|
||||
'apps.application_name' => 'Alkalmazás neve',
|
||||
'apps.colour' => 'Szín',
|
||||
'apps.icon' => 'Ikon',
|
||||
'apps.pinned' => 'Kitűzve',
|
||||
'apps.title' => 'Cím',
|
||||
'apps.hex' => 'Hexa színkód',
|
||||
'apps.username' => 'Felhasználói név',
|
||||
'apps.password' => 'Jelszó',
|
||||
'apps.config' => 'Konfiguráció',
|
||||
'apps.apikey' => 'API Kulcs',
|
||||
'apps.enable' => 'Engedélyezés',
|
||||
'apps.tag_list' => 'Címke lista',
|
||||
'apps.add_tag' => 'Címke hozzáadása',
|
||||
'apps.tag_name' => 'Címke név',
|
||||
'apps.tags' => 'Címke',
|
||||
'apps.override' => 'Eltérő URL alkaplazása.',
|
||||
'apps.preview' => 'Előnézet',
|
||||
'apps.apptype' => 'Alkalmazás Típus',
|
||||
|
||||
'dashboard' => 'Kezdőképernyő',
|
||||
|
||||
'user.user_list' => 'Felhasználük',
|
||||
'user.add_user' => 'Felhasználó hozzáadása',
|
||||
'user.username' => 'Felhasználói név',
|
||||
'user.avatar' => 'Avatar',
|
||||
'user.email' => 'Email',
|
||||
'user.password_confirm' => 'Jelszó megerősítés',
|
||||
'user.secure_front' => 'Nyilvános hozzáférés engedélyezése - Csak jelszó alkalmazása esetén.',
|
||||
'user.autologin' => 'Bejelentkezés URL-el, Link birtokában bárki bejelentkezhet.',
|
||||
|
||||
|
||||
'url' => 'URL',
|
||||
'title' => 'Cím',
|
||||
'delete' => 'Törlés',
|
||||
'optional' => 'Opcionális',
|
||||
'restore' => 'Visszaállítás',
|
||||
|
||||
'alert.success.item_created' => 'Elem sikeresen létrehozva',
|
||||
'alert.success.item_updated' => 'Elem sikeresen frissítve',
|
||||
'alert.success.item_deleted' => 'Elem sikeresen törölve',
|
||||
'alert.success.item_restored' => 'Elem sikeresen visszaállítva',
|
||||
'alert.success.updating' => 'Alkalmazás lista frissítése',
|
||||
|
||||
'alert.success.tag_created' => 'Címkre sikeresen létrehozva',
|
||||
'alert.success.tag_updated' => 'Címke sikeresen frissítve',
|
||||
'alert.success.tag_deleted' => 'Címke sikeresen törölve',
|
||||
'alert.success.tag_restored' => 'Címke sikeresen visszaállítva',
|
||||
|
||||
'alert.success.setting_updated' => 'Sikeres beállítás módosítás.',
|
||||
'alert.error.not_exist' => 'Nem létező beállítás',
|
||||
|
||||
'alert.success.user_created' => 'Felhasználó sikeresen létrehozva',
|
||||
'alert.success.user_updated' => 'Felhasználó sikeresen frissítve',
|
||||
'alert.success.user_deleted' => 'Felhasználó sikeresen törölve',
|
||||
'alert.success.user_restored' => 'Felhasználó sikeresen visszaállítva',
|
||||
|
||||
|
||||
];
|
||||
19
resources/lang/hu/auth.php
Normal file
19
resources/lang/hu/auth.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
'failed' => 'Hitelesítő adat nem egyezik.',
|
||||
'throttle' => 'Túl sok hibás bejelentkezési kísérlet, Próbálja újra :seconds seconds.',
|
||||
|
||||
];
|
||||
19
resources/lang/hu/pagination.php
Normal file
19
resources/lang/hu/pagination.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '« Előző',
|
||||
'next' => 'Következő »',
|
||||
|
||||
];
|
||||
23
resources/lang/hu/passwords.php
Normal file
23
resources/lang/hu/passwords.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
/*'password' => 'Passwords must be at least six characters and match the confirmation.',*/
|
||||
'password' => 'A jelszónak legalább hat karakter hosszúnak kell lennie.',
|
||||
'reset' => 'A jelszó vissza lett állítva',
|
||||
'sent' => 'A jelszó visszaállító e-mail elküldve!',
|
||||
'token' => 'A jelszó visszaállító token nem érvényes',
|
||||
'user' => "Ezzel az e-mail címmel felhasználó nem található",
|
||||
|
||||
];
|
||||
@@ -1,20 +1,23 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| App Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
*/
|
||||
|
||||
'settings.system' => 'Sistema',
|
||||
'settings.appearance' => 'Aspetto',
|
||||
'settings.miscellaneous' => 'Miscellaneous',
|
||||
|
||||
'settings.miscellaneous' => 'Altre impostazioni',
|
||||
'settings.support' => 'Supporto',
|
||||
'settings.donate' => 'Dona',
|
||||
|
||||
'settings.version' => 'Versione',
|
||||
'settings.background_image' => 'Immagine di sfondo',
|
||||
'settings.window_target' => 'Apri link in',
|
||||
'settings.window_target.current' => 'Apri in questa scheda',
|
||||
'settings.window_target.one' => 'Apri nella stessa scheda',
|
||||
'settings.window_target.new' => 'Apri in una nuova scheda',
|
||||
'settings.homepage_search' => 'Ricerca in homepage',
|
||||
'settings.search_provider' => 'Motore di ricerca',
|
||||
'settings.language' => 'Lingua',
|
||||
@@ -23,33 +26,35 @@ return [
|
||||
'settings.search' => 'Cerca',
|
||||
'settings.no_items' => 'Nessun elemento trovato',
|
||||
|
||||
|
||||
'settings.label' => 'Etichetta',
|
||||
'settings.label' => 'Nome',
|
||||
'settings.value' => 'Valore',
|
||||
'settings.edit' => 'Modifica',
|
||||
'settings.view' => 'Vista',
|
||||
|
||||
'settings.view' => 'Mostra',
|
||||
|
||||
'options.none' => '- non impostato -',
|
||||
'options.google' => 'Google',
|
||||
'options.ddg' => 'DuckDuckGo',
|
||||
'options.bing' => 'Bing',
|
||||
'options.qwant' => 'Qwant',
|
||||
'options.yes' => 'Si',
|
||||
'options.startpage' => 'StartPage',
|
||||
'options.yes' => 'Sì',
|
||||
'options.no' => 'No',
|
||||
|
||||
'options.nzbhydra' => 'NZBHydra',
|
||||
|
||||
'buttons.save' => 'Salva',
|
||||
'buttons.cancel' => 'Annulla',
|
||||
'buttons.add' => 'Aggiungi',
|
||||
'buttons.upload' => 'Aggiungi un file',
|
||||
|
||||
'buttons.upload' => 'Carica un file',
|
||||
'buttons.downloadapps' => 'Aggiorna lista app',
|
||||
|
||||
'dash.pin_item' => 'Fissa un elemento sulla dashboard',
|
||||
'dash.no_apps' => 'Non ci sono applicazioni fissate, :link1 o :link2',
|
||||
'dash.link1' => 'Aggiungi un\'applicazione qui',
|
||||
'dash.link2' => 'Fissa un elemento alla dashboard',
|
||||
'dash.pinned_items' => 'Elementi fissati',
|
||||
|
||||
'apps.app_list' => 'Lista delle applicazioni',
|
||||
'apps.view_trash' => 'Guarda il cestino',
|
||||
|
||||
'apps.app_list' => 'Lista applicazioni',
|
||||
'apps.view_trash' => 'Mostra cestino',
|
||||
'apps.add_application' => 'Aggiungi applicazione',
|
||||
'apps.application_name' => 'Nome dell\'applicazione',
|
||||
'apps.colour' => 'Colore',
|
||||
@@ -60,22 +65,49 @@ return [
|
||||
'apps.username' => 'Nome utente',
|
||||
'apps.password' => 'Password',
|
||||
'apps.config' => 'Configurazione',
|
||||
'apps.apikey' => 'Api Key',
|
||||
'apps.apikey' => 'Chiave API',
|
||||
'apps.enable' => 'Abilitato',
|
||||
|
||||
'apps.tag_list' => 'Lista tag',
|
||||
'apps.add_tag' => 'Aggiungi tag',
|
||||
'apps.tag_name' => 'Nome tag',
|
||||
'apps.tags' => 'Tag',
|
||||
'apps.override' => 'Se diverso dall\'url principale',
|
||||
'apps.preview' => 'Anteprima',
|
||||
'apps.apptype' => 'Tipo di applicazione',
|
||||
|
||||
'dashboard' => 'Home dashboard',
|
||||
|
||||
'user.user_list' => 'Utenti',
|
||||
'user.add_user' => 'Aggiungi utente',
|
||||
'user.username' => 'Username',
|
||||
'user.avatar' => 'Logo',
|
||||
'user.email' => 'Email',
|
||||
'user.password_confirm' => 'Conferma password',
|
||||
'user.secure_front' => 'Permetti accesso pubblico alla pagina principale - Vale solo se una password è stata definita.',
|
||||
'user.autologin' => 'Abilita login da una URL specifica. Chiunque con questa URL può accedere.',
|
||||
|
||||
'url' => 'Url',
|
||||
'title' => 'Titolo',
|
||||
'delete' => 'Elimina',
|
||||
'optional' => 'Opzionale',
|
||||
'restore' => 'Ripristina',
|
||||
|
||||
'restore' => 'Ripristina',
|
||||
|
||||
'alert.success.item_created' => 'Elemento creato con successo',
|
||||
'alert.success.item_updated' => 'Elemento aggiornato con successo',
|
||||
'alert.success.item_deleted' => 'Elemento cancellato con successo',
|
||||
'alert.success.item_restored' => 'Elemento ripristinato con successo',
|
||||
|
||||
'alert.success.setting_updated' => 'Hai modificato questi settaggi',
|
||||
'alert.error.not_exist' => 'Questi settaggi non esistono.',
|
||||
|
||||
|
||||
];
|
||||
'alert.success.updating' => 'Aggiornamento lista app',
|
||||
|
||||
'alert.success.tag_created' => 'Tag creato con successo',
|
||||
'alert.success.tag_updated' => 'Tag aggiornato con successo',
|
||||
'alert.success.tag_deleted' => 'Tag eliminato con successo',
|
||||
'alert.success.tag_restored' => 'Tag ripristinato con successo',
|
||||
|
||||
'alert.success.setting_updated' => 'Hai modificato questa impostazione con successo',
|
||||
'alert.error.not_exist' => 'Questa impostazione non esiste.',
|
||||
|
||||
'alert.success.user_created' => 'Utente creato con successo',
|
||||
'alert.success.user_updated' => 'Utente aggiornato con successo',
|
||||
'alert.success.user_deleted' => 'Utente eliminato con successo',
|
||||
'alert.success.user_restored' => 'Utente ripristinato con successo',
|
||||
];
|
||||
|
||||
15
resources/lang/it/auth.php
Normal file
15
resources/lang/it/auth.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
'failed' => 'Le credenziali non sono valide.',
|
||||
'throttle' => 'Troppi tentativi di accesso. Riprovare in :seconds secondi.',
|
||||
];
|
||||
15
resources/lang/it/pagination.php
Normal file
15
resources/lang/it/pagination.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
'previous' => '« Precedente',
|
||||
'next' => 'Successivo »',
|
||||
];
|
||||
120
resources/lang/ko/app.php
Normal file
120
resources/lang/ko/app.php
Normal file
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| App Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
*/
|
||||
|
||||
'settings.system' => '시스템',
|
||||
'settings.appearance' => '외관',
|
||||
'settings.miscellaneous' => '잡동사니',
|
||||
'settings.support' => '지원',
|
||||
'settings.donate' => '기부',
|
||||
|
||||
'settings.version' => '버전',
|
||||
'settings.background_image' => '배경 이미지',
|
||||
'settings.window_target' => '다음에서 링크 열기',
|
||||
'settings.window_target.current' => '현재 탭에서 열기',
|
||||
'settings.window_target.one' => '같은 탭에서 열기',
|
||||
'settings.window_target.new' => '새 탭에서 열기',
|
||||
'settings.homepage_search' => '홈페이지 검색',
|
||||
'settings.search_provider' => '기본 검색 제공자',
|
||||
'settings.language' => '언어',
|
||||
'settings.reset' => '기본값으로 되돌리기',
|
||||
'settings.remove' => '제거',
|
||||
'settings.search' => '검색',
|
||||
'settings.no_items' => '항목을 찾을 수 없음',
|
||||
|
||||
|
||||
'settings.label' => '레이블',
|
||||
'settings.value' => '값',
|
||||
'settings.edit' => '편집',
|
||||
'settings.view' => '보기',
|
||||
|
||||
'options.none' => '- 구성되지 않음 -',
|
||||
'options.google' => 'Google',
|
||||
'options.ddg' => 'DuckDuckGo',
|
||||
'options.bing' => 'Bing',
|
||||
'options.qwant' => 'Qwant',
|
||||
'options.startpage' => '시작 페이지',
|
||||
'options.yes' => '예',
|
||||
'options.no' => '아니요',
|
||||
'options.nzbhydra' => 'NZBHydra',
|
||||
'options.jackett' => 'Jackett',
|
||||
|
||||
'buttons.save' => '저장',
|
||||
'buttons.cancel' => '취소',
|
||||
'buttons.add' => '추가',
|
||||
'buttons.upload' => '아이콘 업로드',
|
||||
'buttons.downloadapps' => '앱 목록 업데이트',
|
||||
|
||||
'dash.pin_item' => '대시보드에 항목 고정',
|
||||
'dash.no_apps' => '현재 고정된 응용 프로그램 없음, :link1 혹은 :link2',
|
||||
'dash.link1' => '여기에 앱 추가',
|
||||
'dash.link2' => '대시에 항목 고정',
|
||||
'dash.pinned_items' => '고정된 항목',
|
||||
|
||||
'apps.app_list' => '앱 목록',
|
||||
'apps.view_trash' => '휴지통 보기',
|
||||
'apps.add_application' => '앱 추가',
|
||||
'apps.application_name' => '앱 이름',
|
||||
'apps.colour' => '색상',
|
||||
'apps.icon' => '아이콘',
|
||||
'apps.pinned' => '고정됨',
|
||||
'apps.title' => '제목',
|
||||
'apps.hex' => '16진수 색상',
|
||||
'apps.username' => '사용자 이름',
|
||||
'apps.password' => '암호',
|
||||
'apps.config' => '설정',
|
||||
'apps.apikey' => 'API 키',
|
||||
'apps.enable' => '활성화',
|
||||
'apps.tag_list' => '태그 목록',
|
||||
'apps.add_tag' => '태그 추가',
|
||||
'apps.tag_name' => '태그 이름',
|
||||
'apps.tags' => '태그',
|
||||
'apps.override' => '기본 URL과 다른 경우',
|
||||
'apps.preview' => '미리보기',
|
||||
'apps.apptype' => '앱 형식',
|
||||
|
||||
'dashboard' => '홈 대시보드',
|
||||
|
||||
'user.user_list' => '사용자',
|
||||
'user.add_user' => '사용자 추가',
|
||||
'user.username' => '사용자 이름',
|
||||
'user.avatar' => '아바타',
|
||||
'user.email' => '전자 메일',
|
||||
'user.password_confirm' => '암호 확인',
|
||||
'user.secure_front' => 'Allow public access to front - Only enforced if a password is set.',
|
||||
'user.autologin' => 'Allow logging in from a specific URL. Anyone with the link can login.',
|
||||
|
||||
'url' => 'URL',
|
||||
'title' => '제목',
|
||||
'delete' => '제거',
|
||||
'optional' => '선택적',
|
||||
'restore' => '복원',
|
||||
|
||||
'alert.success.item_created' => '항목을 성공적으로 만들었습니다',
|
||||
'alert.success.item_updated' => '항목을 성공적으로 업데이트했습니다',
|
||||
'alert.success.item_deleted' => '항목을 성공적으로 제거했습니다',
|
||||
'alert.success.item_restored' => '항목을 성공적으로 복원했습니다',
|
||||
'alert.success.updating' => '앱 목록 업데이트 중',
|
||||
|
||||
'alert.success.tag_created' => '태그를 성공적으로 만들었습니다',
|
||||
'alert.success.tag_updated' => '태그를 성공적으로 업데이트했습니다',
|
||||
'alert.success.tag_deleted' => '태그를 성공적으로 제거했습니다',
|
||||
'alert.success.tag_restored' => '태그를 성공적으로 복원했습니다',
|
||||
|
||||
'alert.success.setting_updated' => '설정을 성공적으로 수정했습니다',
|
||||
'alert.error.not_exist' => '이 설정은 존재하지 않습니다.',
|
||||
|
||||
'alert.success.user_created' => '사용자를 성공적으로 만들었습니다',
|
||||
'alert.success.user_updated' => '사용자를 성공적으로 업데이트했습니다',
|
||||
'alert.success.user_deleted' => '사용자를 성공적으로 제거했습니다',
|
||||
'alert.success.user_restored' => '사용자를 성공적으로 복원했습니다',
|
||||
|
||||
|
||||
];
|
||||
19
resources/lang/ko/auth.php
Normal file
19
resources/lang/ko/auth.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
'failed' => 'These credentials do not match our records.',
|
||||
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
|
||||
|
||||
];
|
||||
19
resources/lang/ko/pagination.php
Normal file
19
resources/lang/ko/pagination.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '« 이전',
|
||||
'next' => '다음 »',
|
||||
|
||||
];
|
||||
22
resources/lang/ko/passwords.php
Normal file
22
resources/lang/ko/passwords.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
'password' => '암호는 6자 이상이어야 하며 확인란과 서로 일치해야 합니다.',
|
||||
'reset' => '암호가 재설정되었습니다!',
|
||||
'sent' => '암호 재설정 링크를 전자 메일로 전송했습니다!',
|
||||
'token' => '이 암호 재설정 토큰은 잘못되었습니다.',
|
||||
'user' => "해당 이메일 주소를 가진 사용자를 찾을 수 없습니다.",
|
||||
|
||||
];
|
||||
121
resources/lang/ko/validation.php
Normal file
121
resources/lang/ko/validation.php
Normal file
@@ -0,0 +1,121 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines contain the default error messages used by
|
||||
| the validator class. Some of these rules have multiple versions such
|
||||
| as the size rules. Feel free to tweak each of these messages here.
|
||||
|
|
||||
*/
|
||||
|
||||
'accepted' => 'The :attribute must be accepted.',
|
||||
'active_url' => 'The :attribute is not a valid URL.',
|
||||
'after' => 'The :attribute must be a date after :date.',
|
||||
'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
|
||||
'alpha' => 'The :attribute may only contain letters.',
|
||||
'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
|
||||
'alpha_num' => 'The :attribute may only contain letters and numbers.',
|
||||
'array' => 'The :attribute must be an array.',
|
||||
'before' => 'The :attribute must be a date before :date.',
|
||||
'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
|
||||
'between' => [
|
||||
'numeric' => 'The :attribute must be between :min and :max.',
|
||||
'file' => 'The :attribute must be between :min and :max kilobytes.',
|
||||
'string' => 'The :attribute must be between :min and :max characters.',
|
||||
'array' => 'The :attribute must have between :min and :max items.',
|
||||
],
|
||||
'boolean' => 'The :attribute field must be true or false.',
|
||||
'confirmed' => 'The :attribute confirmation does not match.',
|
||||
'date' => 'The :attribute is not a valid date.',
|
||||
'date_format' => 'The :attribute does not match the format :format.',
|
||||
'different' => 'The :attribute and :other must be different.',
|
||||
'digits' => 'The :attribute must be :digits digits.',
|
||||
'digits_between' => 'The :attribute must be between :min and :max digits.',
|
||||
'dimensions' => 'The :attribute has invalid image dimensions.',
|
||||
'distinct' => 'The :attribute field has a duplicate value.',
|
||||
'email' => 'The :attribute must be a valid email address.',
|
||||
'exists' => 'The selected :attribute is invalid.',
|
||||
'file' => 'The :attribute must be a file.',
|
||||
'filled' => 'The :attribute field must have a value.',
|
||||
'image' => 'The :attribute must be an image.',
|
||||
'in' => 'The selected :attribute is invalid.',
|
||||
'in_array' => 'The :attribute field does not exist in :other.',
|
||||
'integer' => 'The :attribute must be an integer.',
|
||||
'ip' => 'The :attribute must be a valid IP address.',
|
||||
'ipv4' => 'The :attribute must be a valid IPv4 address.',
|
||||
'ipv6' => 'The :attribute must be a valid IPv6 address.',
|
||||
'json' => 'The :attribute must be a valid JSON string.',
|
||||
'max' => [
|
||||
'numeric' => 'The :attribute may not be greater than :max.',
|
||||
'file' => 'The :attribute may not be greater than :max kilobytes.',
|
||||
'string' => 'The :attribute may not be greater than :max characters.',
|
||||
'array' => 'The :attribute may not have more than :max items.',
|
||||
],
|
||||
'mimes' => 'The :attribute must be a file of type: :values.',
|
||||
'mimetypes' => 'The :attribute must be a file of type: :values.',
|
||||
'min' => [
|
||||
'numeric' => 'The :attribute must be at least :min.',
|
||||
'file' => 'The :attribute must be at least :min kilobytes.',
|
||||
'string' => 'The :attribute must be at least :min characters.',
|
||||
'array' => 'The :attribute must have at least :min items.',
|
||||
],
|
||||
'not_in' => 'The selected :attribute is invalid.',
|
||||
'numeric' => 'The :attribute must be a number.',
|
||||
'present' => 'The :attribute field must be present.',
|
||||
'regex' => 'The :attribute format is invalid.',
|
||||
'required' => 'The :attribute field is required.',
|
||||
'required_if' => 'The :attribute field is required when :other is :value.',
|
||||
'required_unless' => 'The :attribute field is required unless :other is in :values.',
|
||||
'required_with' => 'The :attribute field is required when :values is present.',
|
||||
'required_with_all' => 'The :attribute field is required when :values is present.',
|
||||
'required_without' => 'The :attribute field is required when :values is not present.',
|
||||
'required_without_all' => 'The :attribute field is required when none of :values are present.',
|
||||
'same' => 'The :attribute and :other must match.',
|
||||
'size' => [
|
||||
'numeric' => 'The :attribute must be :size.',
|
||||
'file' => 'The :attribute must be :size kilobytes.',
|
||||
'string' => 'The :attribute must be :size characters.',
|
||||
'array' => 'The :attribute must contain :size items.',
|
||||
],
|
||||
'string' => 'The :attribute must be a string.',
|
||||
'timezone' => 'The :attribute must be a valid zone.',
|
||||
'unique' => 'The :attribute has already been taken.',
|
||||
'uploaded' => 'The :attribute failed to upload.',
|
||||
'url' => 'The :attribute format is invalid.',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify custom validation messages for attributes using the
|
||||
| convention "attribute.rule" to name the lines. This makes it quick to
|
||||
| specify a specific custom language line for a given attribute rule.
|
||||
|
|
||||
*/
|
||||
|
||||
'custom' => [
|
||||
'attribute-name' => [
|
||||
'rule-name' => 'custom-message',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used to swap attribute place-holders
|
||||
| with something more reader friendly such as E-Mail Address instead
|
||||
| of "email". This simply helps us make messages a little cleaner.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => [],
|
||||
|
||||
];
|
||||
@@ -22,11 +22,11 @@ return [
|
||||
'settings.window_target.one' => 'In dezelfde tab openen',
|
||||
'settings.window_target.new' => 'In een nieuwe tab openen',
|
||||
'settings.homepage_search' => 'Zoeken op thuispagina',
|
||||
'settings.search_provider' => 'Zoekaanbieder',
|
||||
'settings.search_provider' => 'Zoekmachine',
|
||||
'settings.language' => 'Taal',
|
||||
'settings.reset' => 'Standaardinstellingen herstellen',
|
||||
'settings.remove' => 'Verwijderen',
|
||||
'settings.search' => 'zoeken',
|
||||
'settings.search' => 'Zoeken',
|
||||
'settings.no_items' => 'Geen items gevonden',
|
||||
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'failed' => 'De door u opgegeven referenties komen niet overeen met onze gegevens.',
|
||||
'failed' => 'De door u opgegeven inloggegevens komen niet overeen met onze gegevens.',
|
||||
'throttle' => 'Te veel aanmeldpogingen. Probeer het over :seconds seconden opnieuw.',
|
||||
|
||||
];
|
||||
|
||||
@@ -82,8 +82,8 @@ return [
|
||||
'string' => ':attribute moet :size karakters bevatten.',
|
||||
'array' => ':attribute moet :size items bevatten.',
|
||||
],
|
||||
'string' => ':attribute moet een tekenreekswaarde zijn.',
|
||||
'timezone' => ':attribute moet een geldige zone bevatten.',
|
||||
'string' => ':attribute moet een tekstformaat zijn.',
|
||||
'timezone' => ':attribute moet een geldige tijdzone bevatten.',
|
||||
'unique' => ':attribute is reeds in gebruik.',
|
||||
'uploaded' => 'Het uploaden van :attribute is niet gelukt.',
|
||||
'url' => 'Het formaat van :attribute is ongeldig.',
|
||||
|
||||
120
resources/lang/ru/app.php
Normal file
120
resources/lang/ru/app.php
Normal file
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| App Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
*/
|
||||
|
||||
'settings.system' => 'Система',
|
||||
'settings.appearance' => 'Внешний вид',
|
||||
'settings.miscellaneous' => 'Разное',
|
||||
'settings.support' => 'Поддержка',
|
||||
'settings.donate' => 'Пожертвования',
|
||||
|
||||
'settings.version' => 'Версия',
|
||||
'settings.background_image' => 'Фоновое изображение',
|
||||
'settings.window_target' => 'Открывать ссылки в',
|
||||
'settings.window_target.current' => 'Открывать в этой же закладке',
|
||||
'settings.window_target.one' => 'Открывать в той же закладке',
|
||||
'settings.window_target.new' => 'Открывать в новой закладке',
|
||||
'settings.homepage_search' => 'Страница поиска',
|
||||
'settings.search_provider' => 'Поисковая система',
|
||||
'settings.language' => 'Язык',
|
||||
'settings.reset' => 'Вернуть к начальным значениям',
|
||||
'settings.remove' => 'Удалить',
|
||||
'settings.search' => 'найти',
|
||||
'settings.no_items' => 'Ничего не найдено',
|
||||
|
||||
|
||||
'settings.label' => 'Метка',
|
||||
'settings.value' => 'Значение',
|
||||
'settings.edit' => 'Редактировать',
|
||||
'settings.view' => 'Просмотр',
|
||||
|
||||
'options.none' => '- не установлено -',
|
||||
'options.google' => 'Google',
|
||||
'options.ddg' => 'DuckDuckGo',
|
||||
'options.bing' => 'Bing',
|
||||
'options.qwant' => 'Qwant',
|
||||
'options.startpage' => 'Начальная страница',
|
||||
'options.yes' => 'Да',
|
||||
'options.no' => 'Нет',
|
||||
'options.nzbhydra' => 'NZBHydra',
|
||||
'options.jackett' => 'Jackett',
|
||||
|
||||
'buttons.save' => 'Сохранить',
|
||||
'buttons.cancel' => 'Отменить',
|
||||
'buttons.add' => 'Добавить',
|
||||
'buttons.upload' => 'Загрузить картинку',
|
||||
'buttons.downloadapps' => 'Обновить список приложений',
|
||||
|
||||
'dash.pin_item' => 'Прикрепить к панели',
|
||||
'dash.no_apps' => 'Нет прикрепленных приложений, :link1 или :link2',
|
||||
'dash.link1' => 'Добавьте приложение',
|
||||
'dash.link2' => 'Прикрепите на доску',
|
||||
'dash.pinned_items' => 'Прикрепленные элементы',
|
||||
|
||||
'apps.app_list' => 'Список приложений',
|
||||
'apps.view_trash' => 'Показать корзину',
|
||||
'apps.add_application' => 'Добавить приложение',
|
||||
'apps.application_name' => 'Имя приложения',
|
||||
'apps.colour' => 'Цвет',
|
||||
'apps.icon' => 'Изображение',
|
||||
'apps.pinned' => 'Прикреплено',
|
||||
'apps.title' => 'Заголовок',
|
||||
'apps.hex' => 'Цвет в Hex',
|
||||
'apps.username' => 'Имя пользователя',
|
||||
'apps.password' => 'Пароль',
|
||||
'apps.config' => 'Настройки',
|
||||
'apps.apikey' => 'Ключ API',
|
||||
'apps.enable' => 'Включено',
|
||||
'apps.tag_list' => 'Список тегов',
|
||||
'apps.add_tag' => 'Добавить тэг',
|
||||
'apps.tag_name' => 'Название тэга',
|
||||
'apps.tags' => 'Тэги',
|
||||
'apps.override' => 'Если отличается от основного url',
|
||||
'apps.preview' => 'Предпросмотр',
|
||||
'apps.apptype' => 'Тип приложения',
|
||||
|
||||
'dashboard' => 'Основная панель',
|
||||
|
||||
'user.user_list' => 'Пользователи',
|
||||
'user.add_user' => 'Добавить пользователя',
|
||||
'user.username' => 'Имя пользователя',
|
||||
'user.avatar' => 'Аватар',
|
||||
'user.email' => 'Email',
|
||||
'user.password_confirm' => 'Подтверждение пароля',
|
||||
'user.secure_front' => 'Разрешить публичный доступ - Возможно только если установлен пароль.',
|
||||
'user.autologin' => 'Автоматический вход с определенного URL. Кто угодно может войти с данной ссылкой.',
|
||||
|
||||
'url' => 'URL',
|
||||
'title' => 'Заголовок',
|
||||
'delete' => 'Удалить',
|
||||
'optional' => 'Опционально',
|
||||
'restore' => 'Восстановить',
|
||||
|
||||
'alert.success.item_created' => 'Элемент создан успешно',
|
||||
'alert.success.item_updated' => 'Элемент обновлен успешно',
|
||||
'alert.success.item_deleted' => 'Элемент удален успешно',
|
||||
'alert.success.item_restored' => 'Элемент восстановлен успешно',
|
||||
'alert.success.updating' => 'Обновлен список приложений',
|
||||
|
||||
'alert.success.tag_created' => 'Тэг создан успешно',
|
||||
'alert.success.tag_updated' => 'Тэг обновлен успешно',
|
||||
'alert.success.tag_deleted' => 'Тэг удален успешно',
|
||||
'alert.success.tag_restored' => 'Тэг восстановлен успешно',
|
||||
|
||||
'alert.success.setting_updated' => 'Вы успешно отредактировали настройки',
|
||||
'alert.error.not_exist' => 'Ваших настроек не существует.',
|
||||
|
||||
'alert.success.user_created' => 'Пользователь создан успешно',
|
||||
'alert.success.user_updated' => 'Пользователь обновлен успешно',
|
||||
'alert.success.user_deleted' => 'Пользователь удален успешно',
|
||||
'alert.success.user_restored' => 'Пользователь восстановлен успешно',
|
||||
|
||||
|
||||
];
|
||||
19
resources/lang/ru/auth.php
Normal file
19
resources/lang/ru/auth.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
'failed' => 'Введенные реквизиты не совпадают c существующими.',
|
||||
'throttle' => 'Слишком много попыток авторизации. Попробуйте снова через :seconds секунд.',
|
||||
|
||||
];
|
||||
19
resources/lang/ru/pagination.php
Normal file
19
resources/lang/ru/pagination.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '« Предыдущий',
|
||||
'next' => 'Следующий »',
|
||||
|
||||
];
|
||||
22
resources/lang/ru/passwords.php
Normal file
22
resources/lang/ru/passwords.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
'password' => 'Длина пароля минимум 6 символов и он должен совпадать с подтверждением.',
|
||||
'reset' => 'Ваш пароль сброшен!',
|
||||
'sent' => 'Мы отправили вам ссылку для сброса пароля!',
|
||||
'token' => 'Неверный токен для сброса пароля.',
|
||||
'user' => "Не могу найти пользователя с таким адресом e-mail.",
|
||||
|
||||
];
|
||||
121
resources/lang/ru/validation.php
Normal file
121
resources/lang/ru/validation.php
Normal file
@@ -0,0 +1,121 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines contain the default error messages used by
|
||||
| the validator class. Some of these rules have multiple versions such
|
||||
| as the size rules. Feel free to tweak each of these messages here.
|
||||
|
|
||||
*/
|
||||
|
||||
'accepted' => ':attribute должен быть подтвержден.',
|
||||
'active_url' => ':attribute содержит неверный URL.',
|
||||
'after' => ':attribute должна быть дата больше :date.',
|
||||
'after_or_equal' => ':attribute должна быть дата больше или равная :date.',
|
||||
'alpha' => ':attribute может содержать только буквы.',
|
||||
'alpha_dash' => ':attribute может содержать только буквы, цифры и тире.',
|
||||
'alpha_num' => ':attribute может содержать только буквы и цифры.',
|
||||
'array' => ':attribute должен быть массивом.',
|
||||
'before' => ':attribute должна быть дата меньше :date.',
|
||||
'before_or_equal' => ':attribute должна быть дата меньше или равная :date.',
|
||||
'between' => [
|
||||
'numeric' => ':attribute должен быть в интервале :min и :max.',
|
||||
'file' => ':attribute должен быть в интервале :min и :max килобайт.',
|
||||
'string' => ':attribute должен быть в интервале :min и :max символов.',
|
||||
'array' => ':attribute должен иметь :min и :max элементов.',
|
||||
],
|
||||
'boolean' => ':attribute поле должно быть Истина или Ложь.',
|
||||
'confirmed' => ':attribute подтверждение не соответствует.',
|
||||
'date' => ':attribute неверная дата.',
|
||||
'date_format' => ':attribute не совпадает с форматом :format.',
|
||||
'different' => ':attribute и :other должны отличаться.',
|
||||
'digits' => ':attribute должен иметь :digits разрядов.',
|
||||
'digits_between' => ':attribute должен иметь :min и :max разрядов.',
|
||||
'dimensions' => ':attribute имеет неверное разрешение.',
|
||||
'distinct' => ':attribute поле имеет дублирующееся значение.',
|
||||
'email' => ':attribute должен быть правильным адресом email.',
|
||||
'exists' => 'Выбранный :attribute неверный.',
|
||||
'file' => ':attribute должен быть файлом.',
|
||||
'filled' => ':attribute поле должно быть заполнено.',
|
||||
'image' => ':attribute должно быть изображением.',
|
||||
'in' => 'Выбранное :attribute неверно.',
|
||||
'in_array' => ':attribute поле не должно существовать в :other.',
|
||||
'integer' => ':attribute должно быть целым.',
|
||||
'ip' => ':attribute должно содержать правильный адрес IP.',
|
||||
'ipv4' => ':attribute должно содержать правильный адрес IPv4.',
|
||||
'ipv6' => ':attribute должно содержать правильный адрес IPv6.',
|
||||
'json' => ':attribute должно содержать правильную строку JSON.',
|
||||
'max' => [
|
||||
'numeric' => ':attribute не может быть больше :max.',
|
||||
'file' => ':attribute не может быть больше :max килобайт.',
|
||||
'string' => ':attribute не может быть больше :max символов.',
|
||||
'array' => ':attribute не может быть больше :max элементов.',
|
||||
],
|
||||
'mimes' => ':attribute должен быть файлом вида: :values.',
|
||||
'mimetypes' => ':attribute должен быть файлом вида: :values.',
|
||||
'min' => [
|
||||
'numeric' => 'The :attribute должен быть как минимум :min.',
|
||||
'file' => 'The :attribute должен быть :min килобайт.',
|
||||
'string' => 'The :attribute должен быть :min символов.',
|
||||
'array' => 'The :attribute должен иметь минимум :min элементов.',
|
||||
],
|
||||
'not_in' => 'Выбранный :attribute неверен.',
|
||||
'numeric' => ':attribute должен быть числом.',
|
||||
'present' => ':attribute поле должно существовать.',
|
||||
'regex' => ':attribute формат неверен.',
|
||||
'required' => ':attribute поле обязательно.',
|
||||
'required_if' => ':attribute поле требуется в случае когда :other является :value.',
|
||||
'required_unless' => ':attribute поле требуется в случае кроме :other является :values.',
|
||||
'required_with' => ':attribute поле требуется в случае :values существует.',
|
||||
'required_with_all' => ':attribute поле требуется в случае :values существует.',
|
||||
'required_without' => ':attribute поле требуется в случае :values не существует.',
|
||||
'required_without_all' => ':attribute поле требуется в случае когда ни одно из :values не существует.',
|
||||
'same' => ':attribute и :other должны совпадать.',
|
||||
'size' => [
|
||||
'numeric' => ':attribute должен быть :size.',
|
||||
'file' => ':attribute должен быть килобайт.',
|
||||
'string' => ':attribute должен быть символов.',
|
||||
'array' => ':attribute олжен содержать :size элементов.',
|
||||
],
|
||||
'string' => ':attribute должен быть строе=кой.',
|
||||
'timezone' => ':attribute должна быть правильной зоной.',
|
||||
'unique' => ':attribute уже существует.',
|
||||
'uploaded' => ':attribute ошибка загрузки.',
|
||||
'url' => ':attribute неверный формат.',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify custom validation messages for attributes using the
|
||||
| convention "attribute.rule" to name the lines. This makes it quick to
|
||||
| specify a specific custom language line for a given attribute rule.
|
||||
|
|
||||
*/
|
||||
|
||||
'custom' => [
|
||||
'attribute-name' => [
|
||||
'rule-name' => 'Произвольное сообщение',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used to swap attribute place-holders
|
||||
| with something more reader friendly such as E-Mail Address instead
|
||||
| of "email". This simply helps us make messages a little cleaner.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => [],
|
||||
|
||||
];
|
||||
120
resources/lang/sl/app.php
Normal file
120
resources/lang/sl/app.php
Normal file
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| App Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
*/
|
||||
|
||||
'settings.system' => 'Sistem',
|
||||
'settings.appearance' => 'Videz',
|
||||
'settings.miscellaneous' => 'Ostalo',
|
||||
'settings.support' => 'Podpora',
|
||||
'settings.donate' => 'Doniraj',
|
||||
|
||||
'settings.version' => 'Verzija',
|
||||
'settings.background_image' => 'Slika za ozadje',
|
||||
'settings.window_target' => 'Povezava se odpre v',
|
||||
'settings.window_target.current' => 'Odpri v tem zavihku',
|
||||
'settings.window_target.one' => 'Odpri v istem zavihku',
|
||||
'settings.window_target.new' => 'Odpri v novem zavihku',
|
||||
'settings.homepage_search' => 'Iskanje po domači strani',
|
||||
'settings.search_provider' => 'Privzeti ponudnik iskanja',
|
||||
'settings.language' => 'Jezik',
|
||||
'settings.reset' => 'Ponastavi na privzeto',
|
||||
'settings.remove' => 'Odstrani',
|
||||
'settings.search' => 'išči',
|
||||
'settings.no_items' => 'Ni najdenih elementov',
|
||||
|
||||
|
||||
'settings.label' => 'Oznaka',
|
||||
'settings.value' => 'Vrednost',
|
||||
'settings.edit' => 'Uredi',
|
||||
'settings.view' => 'Poglej',
|
||||
|
||||
'options.none' => '- ni nastavljeno -',
|
||||
'options.google' => 'Google',
|
||||
'options.ddg' => 'DuckDuckGo',
|
||||
'options.bing' => 'Bing',
|
||||
'options.qwant' => 'Qwant',
|
||||
'options.startpage' => 'StartPage',
|
||||
'options.yes' => 'Da',
|
||||
'options.no' => 'Ne',
|
||||
'options.nzbhydra' => 'NZBHydra',
|
||||
'options.jackett' => 'Jackett',
|
||||
|
||||
'buttons.save' => 'Shrani',
|
||||
'buttons.cancel' => 'Prekliči',
|
||||
'buttons.add' => 'Dodaj',
|
||||
'buttons.upload' => 'Naloži ikono',
|
||||
'buttons.downloadapps' => 'Posodobi Seznam Aplikacij',
|
||||
|
||||
'dash.pin_item' => 'Pripni element na nadzorno ploščo',
|
||||
'dash.no_apps' => 'Trenutno ni pripetih aplikacij, :link1 ali :link2',
|
||||
'dash.link1' => 'Dodaj aplikacijo tukaj',
|
||||
'dash.link2' => 'Pripni aplikacijo na nadzorno ploščo',
|
||||
'dash.pinned_items' => 'Pripeti elementi',
|
||||
|
||||
'apps.app_list' => 'Seznam aplikacij',
|
||||
'apps.view_trash' => 'Poglej smeti',
|
||||
'apps.add_application' => 'Dodaj aplikacijo',
|
||||
'apps.application_name' => 'Ime aplikacije',
|
||||
'apps.colour' => 'Barva',
|
||||
'apps.icon' => 'Ikona',
|
||||
'apps.pinned' => 'Pripeto',
|
||||
'apps.title' => 'Naslov',
|
||||
'apps.hex' => 'Hex barva',
|
||||
'apps.username' => 'Uporabniško ime',
|
||||
'apps.password' => 'Geslo',
|
||||
'apps.config' => 'Konfiguracija',
|
||||
'apps.apikey' => 'API Ključ',
|
||||
'apps.enable' => 'Omogoči',
|
||||
'apps.tag_list' => 'Seznam oznak',
|
||||
'apps.add_tag' => 'Dodaj oznako',
|
||||
'apps.tag_name' => 'Ime oznake',
|
||||
'apps.tags' => 'Oznake',
|
||||
'apps.override' => 'Če je drugače od glavnega url-ja',
|
||||
'apps.preview' => 'Predogled',
|
||||
'apps.apptype' => 'Tip aplikacije',
|
||||
|
||||
'dashboard' => 'Home dashboard',
|
||||
|
||||
'user.user_list' => 'Uporabniki',
|
||||
'user.add_user' => 'Dodaj uporabnika',
|
||||
'user.username' => 'Uporabniško ime',
|
||||
'user.avatar' => 'Avatar',
|
||||
'user.email' => 'Email',
|
||||
'user.password_confirm' => 'Potrdi geslo',
|
||||
'user.secure_front' => 'Dovoli javni dostop do strani - Samo če je nastavljeno geslo.',
|
||||
'user.autologin' => 'Dovoli prijavo iz specifičnega URL-ja. Vsi s povezavo se lahko prijavijo.',
|
||||
|
||||
'url' => 'URL',
|
||||
'title' => 'Naslov',
|
||||
'delete' => 'Izbriši',
|
||||
'optional' => 'Opcijsko',
|
||||
'restore' => 'Obnovi',
|
||||
|
||||
'alert.success.item_created' => 'Element uspešno ustvarjen',
|
||||
'alert.success.item_updated' => 'Element uspešno posodobljen',
|
||||
'alert.success.item_deleted' => 'Element uspešno izbrisan',
|
||||
'alert.success.item_restored' => 'Element uspešno obnovljen',
|
||||
'alert.success.updating' => 'Posodabljam seznam aplikacij',
|
||||
|
||||
'alert.success.tag_created' => 'Oznaka uspešno ustvarjena',
|
||||
'alert.success.tag_updated' => 'Oznaka uspešno posodobljena',
|
||||
'alert.success.tag_deleted' => 'Oznaka uspešno izbrisana',
|
||||
'alert.success.tag_restored' => 'Oznaka uspešno obnovljena',
|
||||
|
||||
'alert.success.setting_updated' => 'Uspešno uredil to oznako',
|
||||
'alert.error.not_exist' => 'Ta nastavitev ne obstaja.',
|
||||
|
||||
'alert.success.user_created' => 'Uporabnik uspešno ustvarjen',
|
||||
'alert.success.user_updated' => 'Uporabnik uspešno posodobljen',
|
||||
'alert.success.user_deleted' => 'Uporabnik uspešno izbrisan',
|
||||
'alert.success.user_restored' => 'Uporabnik uspešno obnovljen',
|
||||
|
||||
|
||||
];
|
||||
19
resources/lang/sl/auth.php
Normal file
19
resources/lang/sl/auth.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used during authentication for various
|
||||
| messages that we need to display to the user. You are free to modify
|
||||
| these language lines according to your application's requirements.
|
||||
|
|
||||
*/
|
||||
|
||||
'failed' => 'Podatki za prijavo se ne ujemajo.',
|
||||
'throttle' => 'Preveč poizkusov prijave. Ponovno poizkusi čez :seconds sekund.',
|
||||
|
||||
];
|
||||
19
resources/lang/sl/pagination.php
Normal file
19
resources/lang/sl/pagination.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pagination Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used by the paginator library to build
|
||||
| the simple pagination links. You are free to change them to anything
|
||||
| you want to customize your views to better match your application.
|
||||
|
|
||||
*/
|
||||
|
||||
'previous' => '« Prejšna',
|
||||
'next' => 'Naslednja »',
|
||||
|
||||
];
|
||||
22
resources/lang/sl/passwords.php
Normal file
22
resources/lang/sl/passwords.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
'password' => 'Geslo mora imeti najmanj šest znakov in se mora ujemati s potrditvijo.',
|
||||
'reset' => 'Tvoje geslo je bilo ponastavljeno!',
|
||||
'sent' => 'Na tvoj email smo poslali povezavo za ponastavitev gesla!',
|
||||
'token' => 'Ta ključ za ponastavitev gesla ni veljaven.',
|
||||
'user' => "Ne najdemo uporabnika s tem e-naslovom.",
|
||||
|
||||
];
|
||||
121
resources/lang/sl/validation.php
Normal file
121
resources/lang/sl/validation.php
Normal file
@@ -0,0 +1,121 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines contain the default error messages used by
|
||||
| the validator class. Some of these rules have multiple versions such
|
||||
| as the size rules. Feel free to tweak each of these messages here.
|
||||
|
|
||||
*/
|
||||
|
||||
'accepted' => ':attribute mora biti potrjen.',
|
||||
'active_url' => ':attribute ni pravilen URL naslov.',
|
||||
'after' => ':attribute mora biti datum po :date.',
|
||||
'after_or_equal' => ':attribute mora biti datum po ali enak :date.',
|
||||
'alpha' => ':attribute lahko vsebuje samo črke.',
|
||||
'alpha_dash' => ':attribute lahko vsebuje samo črke, številke in pomišljaje.',
|
||||
'alpha_num' => ':attribute lahko vsebuje samo črke in številke.',
|
||||
'array' => ':attribute mora biti niz podatkov.',
|
||||
'before' => ':attribute mora biti datum pred :date.',
|
||||
'before_or_equal' => ':attribute mora biti datum pred ali enak :date.',
|
||||
'between' => [
|
||||
'numeric' => ':attribute mora biti med :min in :max.',
|
||||
'file' => ':attribute mora biti med :min in :max kilobajtov.',
|
||||
'string' => ':attribute mora biti med :min in :max znakov.',
|
||||
'array' => ':attribute mora biti med :min in :max elementov.',
|
||||
],
|
||||
'boolean' => ':attribute polje mora biti true ali false.',
|
||||
'confirmed' => ':attribute potrditev se ne ujema.',
|
||||
'date' => ':attribute ni pravilen datum.',
|
||||
'date_format' => ':attribute se ne ujema s formatom :format.',
|
||||
'different' => ':attribute in :other morata biti različna.',
|
||||
'digits' => ':attribute mora imeti :digits mest.',
|
||||
'digits_between' => ':attribute mora biti med :in and :max mest.',
|
||||
'dimensions' => ':attribute ima nepravilne dimenzije slike.',
|
||||
'distinct' => ':attribute polje ima podvojeno vrednost.',
|
||||
'email' => ':attribute mora biti pravilen e-naslov.',
|
||||
'exists' => 'izbrani :attribute ni pravilen.',
|
||||
'file' => ':attribute mora biti datoteka.',
|
||||
'filled' => ':attribute polje mora imeti vrednost.',
|
||||
'image' => ':attribute mora biti slika.',
|
||||
'in' => 'izbrani :attribute ni pravilen.',
|
||||
'in_array' => ':attribute polje ne obstaja v :other.',
|
||||
'integer' => ':attribute mora biti številka.',
|
||||
'ip' => ':attribute mora biti veljaven IP naslov.',
|
||||
'ipv4' => ':attribute must be a valid IPv4 naslov.',
|
||||
'ipv6' => ':attribute must be a valid IPv6 naslov.',
|
||||
'json' => ':attribute mora biti veljaven JSON.',
|
||||
'max' => [
|
||||
'numeric' => ':attribute ne sme biti več kot :max.',
|
||||
'file' => ':attribute ne sme biti več kot :max kilobajtov.',
|
||||
'string' => ':attribute ne sme biti več kot :max znakov.',
|
||||
'array' => ':attribute ne sme imeti več kot :max elementov.',
|
||||
],
|
||||
'mimes' => ':attribute mora biti datoteka tipa: :values.',
|
||||
'mimetypes' => ':attribute mora biti datoteka tipa: :values.',
|
||||
'min' => [
|
||||
'numeric' => ':attribute mora biti najmanj :min.',
|
||||
'file' => ':attribute mora biti najmanj :min kilobajtov.',
|
||||
'string' => ':attribute mora imeti najmanj :min znakov.',
|
||||
'array' => ':attribute mora imeti najmanj :min elementov.',
|
||||
],
|
||||
'not_in' => 'izbrani :attribute ni pravilen.',
|
||||
'numeric' => ':attribute mora biti številka.',
|
||||
'present' => ':attribute polje mora biti prisotno.',
|
||||
'regex' => ':attribute format ni veljaven.',
|
||||
'required' => ':attribute polje je obvezno.',
|
||||
'required_if' => ':attribute polje je obvezno, če :other je :value.',
|
||||
'required_unless' => ':attribute polje je obvezno, razen če :other je v :values.',
|
||||
'required_with' => ':attribute polje je obvezno, če :values je prisotno.',
|
||||
'required_with_all' => ':attribute polje je obvezno, če :values je prisotno.',
|
||||
'required_without' => ':attribute polje je obvezno, ko :values ni prisotno.',
|
||||
'required_without_all' => ':attribute polje je obvezno, ko nobeden od :values ni prisotnih.',
|
||||
'same' => ':attribute in :other se morata ujemati.',
|
||||
'size' => [
|
||||
'numeric' => ':attribute mora biti :size.',
|
||||
'file' => ':attribute mora biti :size kilobajtov.',
|
||||
'string' => ':attribute mora imeti :size znakov.',
|
||||
'array' => ':attribute mora imeti :size elementov.',
|
||||
],
|
||||
'string' => ':attribute mora biti niz.',
|
||||
'timezone' => ':attribute mora biti veljavno časovna cona.',
|
||||
'unique' => ':attribute je že zasedeno.',
|
||||
'uploaded' => ':attribute nalaganje neuspešno.',
|
||||
'url' => ':attribute format ni pravilen.',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify custom validation messages for attributes using the
|
||||
| convention "attribute.rule" to name the lines. This makes it quick to
|
||||
| specify a specific custom language line for a given attribute rule.
|
||||
|
|
||||
*/
|
||||
|
||||
'custom' => [
|
||||
'attribute-name' => [
|
||||
'rule-name' => 'custom-message',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Custom Validation Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are used to swap attribute place-holders
|
||||
| with something more reader friendly such as E-Mail Address instead
|
||||
| of "email". This simply helps us make messages a little cleaner.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => [],
|
||||
|
||||
];
|
||||
@@ -73,13 +73,13 @@ return array (
|
||||
'apps.preview' => 'Förhandsvisa',
|
||||
|
||||
|
||||
'user.user_list' => 'Avnändare',
|
||||
'user.user_list' => 'Användare',
|
||||
'user.add_user' => 'Lägg till användare',
|
||||
'user.username' => 'Användarnamn',
|
||||
'user.avatar' => 'Avatar',
|
||||
'user.email' => 'Epost',
|
||||
'user.password_confirm' => 'Upprepa lösenord',
|
||||
'user.secure_front' => 'Tillåt allmän åtkonst till framsidan - Upprätthålls endast om ett lösenord är satt.',
|
||||
'user.secure_front' => 'Tillåt allmän åtkomst till framsidan - Upprätthålls endast om ett lösenord är satt.',
|
||||
'user.autologin' => 'Tillåt inloggning från en specifik URL. Vem som helst med länken kan logga in.',
|
||||
|
||||
|
||||
@@ -90,9 +90,9 @@ return array (
|
||||
'restore' => 'Återställ',
|
||||
|
||||
|
||||
'alert.success.item_created' => 'Artickeln skapad',
|
||||
'alert.success.item_updated' => 'Artickeln uppdaterad',
|
||||
'alert.success.item_deleted' => 'Artickeln borttagen',
|
||||
'alert.success.item_created' => 'Artikeln skapad',
|
||||
'alert.success.item_updated' => 'Artikeln uppdaterad',
|
||||
'alert.success.item_deleted' => 'Artikeln borttagen',
|
||||
'alert.success.item_restored' => 'Artikeln återställd',
|
||||
'alert.success.updating' => 'Uppdaterar app lista',
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<section class="item-container{{ $app->droppable }}" data-id="{{ $app->id }}">
|
||||
<section class="item-container{{ $app->droppable }}" data-name="{{ $app->title }}" data-id="{{ $app->id }}">
|
||||
<div class="item" style="background-color: {{ $app->colour }}">
|
||||
@if($app->icon)
|
||||
<img class="app-icon" src="{{ asset('/storage/'.str_replace('supportedapps', 'icons', $app->icon)) }}" />
|
||||
@@ -11,7 +11,7 @@
|
||||
<div data-id="{{ $app->id }}" data-dataonly="{{ $app->getconfig()->dataonly ?? '0' }}" class="livestats-container{{ title_color($app->colour) }}"></div>
|
||||
@endif
|
||||
</div>
|
||||
<a title="{{ App\Item::getApplicationDescription($app->class) }}" class="link{{ title_color($app->colour) }}"{!! $app->link_target !!} href="{{ url($app->link) }}"><i class="fas {{ $app->link_icon }}"></i></a>
|
||||
<a rel="noopener noreferrer" title="{{ App\Item::getApplicationDescription($app->class) }}" class="link{{ title_color($app->colour) }}"{!! $app->link_target !!} href="{{ $app->link }}"><i class="fas {{ $app->link_icon }}"></i></a>
|
||||
</div>
|
||||
<a class="item-edit" href="{{ route($app->link_type.'.edit', [ $app->id ]) }}"><i class="fas fa-pencil"></i></a>
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
</div>
|
||||
<a class="link{{ title_color($item->colour) }}"{!! $item->link_target !!} href="{{ $item->link }}"><i class="fas {{ $item->link_icon }}"></i></a>
|
||||
</div>
|
||||
@if(isset($item->id))
|
||||
<a class="item-edit" href="{{ route($item->link_type.'.edit', [ $item->id ]) }}"><i class="fas fa-pencil"></i></a>
|
||||
|
||||
@endif
|
||||
</section>
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
$('#tile-preview .app-icon').attr('src', data.iconview);
|
||||
$('#tile-preview .title').html(data.name);
|
||||
if(data.config != null) {
|
||||
$.get(base+'/view/'+data.config, function(getdata) {
|
||||
$.get(base+'view/'+data.config, function(getdata) {
|
||||
$('#sapconfig').html(getdata).show();
|
||||
});
|
||||
} else {
|
||||
|
||||
@@ -20,19 +20,23 @@
|
||||
<link rel="icon" type="image/png" sizes="96x96" href="{{ asset('favicon-96x96.png') }}">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ asset('favicon-16x16.png') }}">
|
||||
<link rel="mask-icon" href="{{ asset('img/heimdall-logo-small.svg') }}" color="black">
|
||||
<link rel="manifest" href="{{ asset('manifest.json') }}">
|
||||
<meta name="msapplication-TileColor" content="#ffffff">
|
||||
<meta name="msapplication-TileImage" content="{{ asset('ms-icon-144x144.png') }}">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<link rel="stylesheet" href="{{ asset('css/app.css?v=2') }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ asset('css/all.min.css?v=2') }}" type="text/css" />
|
||||
<script src="{{ asset('js/fontawesome.js') }}"></script>
|
||||
@if(config('app.url') !== 'http://localhost')
|
||||
<base href="{{ config('app.url') }}">
|
||||
@else
|
||||
<base href="{{ url('') }}">
|
||||
@endif
|
||||
<style id="custom_css">
|
||||
/* editable using the 'Settings > Advanced > Custom CSS' option */
|
||||
{!! \App\Setting::fetch('custom_css') !!}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"{!! $alt_bg !!}>
|
||||
@@ -108,10 +112,14 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script src="{{ asset('js/jquery-3.3.1.min.js') }}"></script>
|
||||
<script src="{{ asset('js/jquery-3.6.0.min.js') }}"></script>
|
||||
<script src="{{ asset('js/jquery-ui.min.js') }}"></script>
|
||||
<script src="{{ asset('js/app.js?v=4') }}"></script>
|
||||
<script src="{{ asset('js/app.js?v=5') }}"></script>
|
||||
@yield('scripts')
|
||||
|
||||
<script id="custom_js">
|
||||
/* editable using the 'Settings > Advanced > Custom JavaScript' option */
|
||||
{!! \App\Setting::fetch('custom_js') !!}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -25,7 +25,11 @@
|
||||
<tr>
|
||||
<td>{{ __($setting->label) }}</td>
|
||||
<td>
|
||||
@if($setting->type === "textarea")
|
||||
<pre>{{ $setting->list_value }}</pre>
|
||||
@else
|
||||
{!! $setting->list_value !!}
|
||||
@endif
|
||||
</td>
|
||||
<td class="text-center">
|
||||
@if((bool)$setting->system !== true)
|
||||
@@ -49,4 +53,4 @@
|
||||
</section>
|
||||
@endforeach
|
||||
|
||||
@endsection
|
||||
@endsection
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
@foreach($apps as $app)
|
||||
<tr>
|
||||
<td>{{ $app->title }}</td>
|
||||
<td><a{{ $app->target }} href="/tag/{{ $app->url }}">{{ $app->link }}</a></td>
|
||||
<td><a{{ $app->target }} href="{{ url('tag/'.$app->link) }}">{{ $app->link }}</a></td>
|
||||
<td class="text-center"><a href="{!! route('tags.edit', [$app->id]) !!}" title="{{ __('app.settings.edit') }} {!! $app->title !!}"><i class="fas fa-edit"></i></a></td>
|
||||
<td class="text-center">
|
||||
{!! Form::open(['method' => 'DELETE','route' => ['tags.destroy', $app->id],'style'=>'display:inline']) !!}
|
||||
@@ -53,4 +53,4 @@
|
||||
</section>
|
||||
|
||||
|
||||
@endsection
|
||||
@endsection
|
||||
|
||||
@@ -44,7 +44,7 @@ Route::post('order', 'ItemController@setOrder')->name('items.order');
|
||||
|
||||
Route::post('appload', 'ItemController@appload')->name('appload');
|
||||
Route::post('test_config', 'ItemController@testConfig')->name('test_config');
|
||||
Route::get('/get_stats/{id}', 'ItemController@getStats')->name('get_stats');
|
||||
Route::get('get_stats/{id}', 'ItemController@getStats')->name('get_stats');
|
||||
|
||||
Route::get('/search', 'SearchController@index')->name('search');
|
||||
|
||||
|
||||
37
storage/app/searchproviders.yaml
Normal file
37
storage/app/searchproviders.yaml
Normal file
@@ -0,0 +1,37 @@
|
||||
tiles:
|
||||
id: tiles
|
||||
name: Tiles
|
||||
target: _blank
|
||||
|
||||
google:
|
||||
id: google
|
||||
url: https://www.google.com/search
|
||||
name: Google
|
||||
method: get
|
||||
target: _blank
|
||||
query: q
|
||||
|
||||
bing:
|
||||
id: bing
|
||||
url: https://www.bing.com/search
|
||||
name: Bing
|
||||
method: get
|
||||
target: _blank
|
||||
query: q
|
||||
|
||||
ddg:
|
||||
id: ddg
|
||||
url: https://duckduckgo.com/
|
||||
name: DuckDuckGo
|
||||
method: get
|
||||
target: _blank
|
||||
query: q
|
||||
|
||||
startpage:
|
||||
id: startpage
|
||||
url: https://www.startpage.com/do/dsearch
|
||||
name: Startpage
|
||||
method: get
|
||||
target: _blank
|
||||
query: query
|
||||
|
||||
117
vendor/bin/carbon
vendored
Normal file
117
vendor/bin/carbon
vendored
Normal file
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../nesbot/carbon/bin/carbon)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class BinProxyWrapper
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = $this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
public function stream_read($count)
|
||||
{
|
||||
$data = fread($this->handle, $count);
|
||||
|
||||
if ($this->position === 0) {
|
||||
$data = preg_replace('{^#!.*\r?\n}', '', $data);
|
||||
}
|
||||
|
||||
$this->position += strlen($data);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function stream_cast($castAs)
|
||||
{
|
||||
return $this->handle;
|
||||
}
|
||||
|
||||
public function stream_close()
|
||||
{
|
||||
fclose($this->handle);
|
||||
}
|
||||
|
||||
public function stream_lock($operation)
|
||||
{
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
public function stream_eof()
|
||||
{
|
||||
return feof($this->handle);
|
||||
}
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) {
|
||||
include("phpvfscomposer://" . __DIR__ . '/..'.'/nesbot/carbon/bin/carbon');
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
include __DIR__ . '/..'.'/nesbot/carbon/bin/carbon';
|
||||
5
vendor/bin/carbon.bat
vendored
Normal file
5
vendor/bin/carbon.bat
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/carbon
|
||||
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
|
||||
php "%BIN_TARGET%" %*
|
||||
117
vendor/bin/commonmark
vendored
Normal file
117
vendor/bin/commonmark
vendored
Normal file
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../league/commonmark/bin/commonmark)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class BinProxyWrapper
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = $this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
public function stream_read($count)
|
||||
{
|
||||
$data = fread($this->handle, $count);
|
||||
|
||||
if ($this->position === 0) {
|
||||
$data = preg_replace('{^#!.*\r?\n}', '', $data);
|
||||
}
|
||||
|
||||
$this->position += strlen($data);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function stream_cast($castAs)
|
||||
{
|
||||
return $this->handle;
|
||||
}
|
||||
|
||||
public function stream_close()
|
||||
{
|
||||
fclose($this->handle);
|
||||
}
|
||||
|
||||
public function stream_lock($operation)
|
||||
{
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
public function stream_eof()
|
||||
{
|
||||
return feof($this->handle);
|
||||
}
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) {
|
||||
include("phpvfscomposer://" . __DIR__ . '/..'.'/league/commonmark/bin/commonmark');
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
include __DIR__ . '/..'.'/league/commonmark/bin/commonmark';
|
||||
5
vendor/bin/commonmark.bat
vendored
Normal file
5
vendor/bin/commonmark.bat
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/commonmark
|
||||
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
|
||||
php "%BIN_TARGET%" %*
|
||||
117
vendor/bin/patch-type-declarations
vendored
Normal file
117
vendor/bin/patch-type-declarations
vendored
Normal file
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../symfony/error-handler/Resources/bin/patch-type-declarations)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class BinProxyWrapper
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = $this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
public function stream_read($count)
|
||||
{
|
||||
$data = fread($this->handle, $count);
|
||||
|
||||
if ($this->position === 0) {
|
||||
$data = preg_replace('{^#!.*\r?\n}', '', $data);
|
||||
}
|
||||
|
||||
$this->position += strlen($data);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function stream_cast($castAs)
|
||||
{
|
||||
return $this->handle;
|
||||
}
|
||||
|
||||
public function stream_close()
|
||||
{
|
||||
fclose($this->handle);
|
||||
}
|
||||
|
||||
public function stream_lock($operation)
|
||||
{
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
public function stream_eof()
|
||||
{
|
||||
return feof($this->handle);
|
||||
}
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) {
|
||||
include("phpvfscomposer://" . __DIR__ . '/..'.'/symfony/error-handler/Resources/bin/patch-type-declarations');
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
include __DIR__ . '/..'.'/symfony/error-handler/Resources/bin/patch-type-declarations';
|
||||
5
vendor/bin/patch-type-declarations.bat
vendored
Normal file
5
vendor/bin/patch-type-declarations.bat
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/patch-type-declarations
|
||||
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
|
||||
php "%BIN_TARGET%" %*
|
||||
1
vendor/bin/php-parse
vendored
1
vendor/bin/php-parse
vendored
@@ -1 +0,0 @@
|
||||
../nikic/php-parser/bin/php-parse
|
||||
117
vendor/bin/php-parse
vendored
Executable file
117
vendor/bin/php-parse
vendored
Executable file
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../nikic/php-parser/bin/php-parse)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class BinProxyWrapper
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = $this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
public function stream_read($count)
|
||||
{
|
||||
$data = fread($this->handle, $count);
|
||||
|
||||
if ($this->position === 0) {
|
||||
$data = preg_replace('{^#!.*\r?\n}', '', $data);
|
||||
}
|
||||
|
||||
$this->position += strlen($data);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function stream_cast($castAs)
|
||||
{
|
||||
return $this->handle;
|
||||
}
|
||||
|
||||
public function stream_close()
|
||||
{
|
||||
fclose($this->handle);
|
||||
}
|
||||
|
||||
public function stream_lock($operation)
|
||||
{
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
public function stream_eof()
|
||||
{
|
||||
return feof($this->handle);
|
||||
}
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) {
|
||||
include("phpvfscomposer://" . __DIR__ . '/..'.'/nikic/php-parser/bin/php-parse');
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
include __DIR__ . '/..'.'/nikic/php-parser/bin/php-parse';
|
||||
5
vendor/bin/php-parse.bat
vendored
Normal file
5
vendor/bin/php-parse.bat
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/php-parse
|
||||
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
|
||||
php "%BIN_TARGET%" %*
|
||||
1
vendor/bin/phpunit
vendored
1
vendor/bin/phpunit
vendored
@@ -1 +0,0 @@
|
||||
../phpunit/phpunit/phpunit
|
||||
120
vendor/bin/phpunit
vendored
Executable file
120
vendor/bin/phpunit
vendored
Executable file
@@ -0,0 +1,120 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../phpunit/phpunit/phpunit)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
$GLOBALS['__PHPUNIT_ISOLATION_EXCLUDE_LIST'] = $GLOBALS['__PHPUNIT_ISOLATION_BLACKLIST'] = array(realpath(__DIR__ . '/..'.'/phpunit/phpunit/phpunit'));
|
||||
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class BinProxyWrapper
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = 'phpvfscomposer://'.$this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
public function stream_read($count)
|
||||
{
|
||||
$data = fread($this->handle, $count);
|
||||
|
||||
if ($this->position === 0) {
|
||||
$data = preg_replace('{^#!.*\r?\n}', '', $data);
|
||||
}
|
||||
$data = str_replace('__DIR__', var_export(dirname($this->realpath), true), $data);
|
||||
$data = str_replace('__FILE__', var_export($this->realpath, true), $data);
|
||||
|
||||
$this->position += strlen($data);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function stream_cast($castAs)
|
||||
{
|
||||
return $this->handle;
|
||||
}
|
||||
|
||||
public function stream_close()
|
||||
{
|
||||
fclose($this->handle);
|
||||
}
|
||||
|
||||
public function stream_lock($operation)
|
||||
{
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
public function stream_eof()
|
||||
{
|
||||
return feof($this->handle);
|
||||
}
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) {
|
||||
include("phpvfscomposer://" . __DIR__ . '/..'.'/phpunit/phpunit/phpunit');
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
include __DIR__ . '/..'.'/phpunit/phpunit/phpunit';
|
||||
1
vendor/bin/psysh
vendored
1
vendor/bin/psysh
vendored
@@ -1 +0,0 @@
|
||||
../psy/psysh/bin/psysh
|
||||
117
vendor/bin/psysh
vendored
Executable file
117
vendor/bin/psysh
vendored
Executable file
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../psy/psysh/bin/psysh)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class BinProxyWrapper
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = $this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
public function stream_read($count)
|
||||
{
|
||||
$data = fread($this->handle, $count);
|
||||
|
||||
if ($this->position === 0) {
|
||||
$data = preg_replace('{^#!.*\r?\n}', '', $data);
|
||||
}
|
||||
|
||||
$this->position += strlen($data);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function stream_cast($castAs)
|
||||
{
|
||||
return $this->handle;
|
||||
}
|
||||
|
||||
public function stream_close()
|
||||
{
|
||||
fclose($this->handle);
|
||||
}
|
||||
|
||||
public function stream_lock($operation)
|
||||
{
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
public function stream_eof()
|
||||
{
|
||||
return feof($this->handle);
|
||||
}
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) {
|
||||
include("phpvfscomposer://" . __DIR__ . '/..'.'/psy/psysh/bin/psysh');
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
include __DIR__ . '/..'.'/psy/psysh/bin/psysh';
|
||||
5
vendor/bin/psysh.bat
vendored
Normal file
5
vendor/bin/psysh.bat
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/psysh
|
||||
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
|
||||
php "%BIN_TARGET%" %*
|
||||
1
vendor/bin/var-dump-server
vendored
1
vendor/bin/var-dump-server
vendored
@@ -1 +0,0 @@
|
||||
../symfony/var-dumper/Resources/bin/var-dump-server
|
||||
117
vendor/bin/var-dump-server
vendored
Executable file
117
vendor/bin/var-dump-server
vendored
Executable file
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../symfony/var-dumper/Resources/bin/var-dump-server)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class BinProxyWrapper
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = $this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
public function stream_read($count)
|
||||
{
|
||||
$data = fread($this->handle, $count);
|
||||
|
||||
if ($this->position === 0) {
|
||||
$data = preg_replace('{^#!.*\r?\n}', '', $data);
|
||||
}
|
||||
|
||||
$this->position += strlen($data);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function stream_cast($castAs)
|
||||
{
|
||||
return $this->handle;
|
||||
}
|
||||
|
||||
public function stream_close()
|
||||
{
|
||||
fclose($this->handle);
|
||||
}
|
||||
|
||||
public function stream_lock($operation)
|
||||
{
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
public function stream_eof()
|
||||
{
|
||||
return feof($this->handle);
|
||||
}
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) {
|
||||
include("phpvfscomposer://" . __DIR__ . '/..'.'/symfony/var-dumper/Resources/bin/var-dump-server');
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
include __DIR__ . '/..'.'/symfony/var-dumper/Resources/bin/var-dump-server';
|
||||
5
vendor/bin/var-dump-server.bat
vendored
Normal file
5
vendor/bin/var-dump-server.bat
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/var-dump-server
|
||||
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
|
||||
php "%BIN_TARGET%" %*
|
||||
1
vendor/bin/yaml-lint
vendored
Symbolic link
1
vendor/bin/yaml-lint
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../symfony/yaml/Resources/bin/yaml-lint
|
||||
415
vendor/brick/math/CHANGELOG.md
vendored
Normal file
415
vendor/brick/math/CHANGELOG.md
vendored
Normal file
@@ -0,0 +1,415 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [0.9.3](https://github.com/brick/math/releases/tag/0.9.3) - 2021-08-15
|
||||
|
||||
🚀 **Compatibility with PHP 8.1**
|
||||
|
||||
- Support for custom object serialization; this removes a warning on PHP 8.1 due to the `Serializable` interface being deprecated (thanks @TRowbotham)
|
||||
|
||||
## [0.9.2](https://github.com/brick/math/releases/tag/0.9.2) - 2021-01-20
|
||||
|
||||
🐛 **Bug fix**
|
||||
|
||||
- Incorrect results could be returned when using the BCMath calculator, with a default scale set with `bcscale()`, on PHP >= 7.2 (#55).
|
||||
|
||||
## [0.9.1](https://github.com/brick/math/releases/tag/0.9.1) - 2020-08-19
|
||||
|
||||
✨ New features
|
||||
|
||||
- `BigInteger::not()` returns the bitwise `NOT` value
|
||||
|
||||
🐛 **Bug fixes**
|
||||
|
||||
- `BigInteger::toBytes()` could return an incorrect binary representation for some numbers
|
||||
- The bitwise operations `and()`, `or()`, `xor()` on `BigInteger` could return an incorrect result when the GMP extension is not available
|
||||
|
||||
## [0.9.0](https://github.com/brick/math/releases/tag/0.9.0) - 2020-08-18
|
||||
|
||||
👌 **Improvements**
|
||||
|
||||
- `BigNumber::of()` now accepts `.123` and `123.` formats, both of which return a `BigDecimal`
|
||||
|
||||
💥 **Breaking changes**
|
||||
|
||||
- Deprecated method `BigInteger::powerMod()` has been removed - use `modPow()` instead
|
||||
- Deprecated method `BigInteger::parse()` has been removed - use `fromBase()` instead
|
||||
|
||||
## [0.8.17](https://github.com/brick/math/releases/tag/0.8.17) - 2020-08-19
|
||||
|
||||
🐛 **Bug fix**
|
||||
|
||||
- `BigInteger::toBytes()` could return an incorrect binary representation for some numbers
|
||||
- The bitwise operations `and()`, `or()`, `xor()` on `BigInteger` could return an incorrect result when the GMP extension is not available
|
||||
|
||||
## [0.8.16](https://github.com/brick/math/releases/tag/0.8.16) - 2020-08-18
|
||||
|
||||
🚑 **Critical fix**
|
||||
|
||||
- This version reintroduces the deprecated `BigInteger::parse()` method, that has been removed by mistake in version `0.8.9` and should have lasted for the whole `0.8` release cycle.
|
||||
|
||||
✨ **New features**
|
||||
|
||||
- `BigInteger::modInverse()` calculates a modular multiplicative inverse
|
||||
- `BigInteger::fromBytes()` creates a `BigInteger` from a byte string
|
||||
- `BigInteger::toBytes()` converts a `BigInteger` to a byte string
|
||||
- `BigInteger::randomBits()` creates a pseudo-random `BigInteger` of a given bit length
|
||||
- `BigInteger::randomRange()` creates a pseudo-random `BigInteger` between two bounds
|
||||
|
||||
💩 **Deprecations**
|
||||
|
||||
- `BigInteger::powerMod()` is now deprecated in favour of `modPow()`
|
||||
|
||||
## [0.8.15](https://github.com/brick/math/releases/tag/0.8.15) - 2020-04-15
|
||||
|
||||
🐛 **Fixes**
|
||||
|
||||
- added missing `ext-json` requirement, due to `BigNumber` implementing `JsonSerializable`
|
||||
|
||||
⚡️ **Optimizations**
|
||||
|
||||
- additional optimization in `BigInteger::remainder()`
|
||||
|
||||
## [0.8.14](https://github.com/brick/math/releases/tag/0.8.14) - 2020-02-18
|
||||
|
||||
✨ **New features**
|
||||
|
||||
- `BigInteger::getLowestSetBit()` returns the index of the rightmost one bit
|
||||
|
||||
## [0.8.13](https://github.com/brick/math/releases/tag/0.8.13) - 2020-02-16
|
||||
|
||||
✨ **New features**
|
||||
|
||||
- `BigInteger::isEven()` tests whether the number is even
|
||||
- `BigInteger::isOdd()` tests whether the number is odd
|
||||
- `BigInteger::testBit()` tests if a bit is set
|
||||
- `BigInteger::getBitLength()` returns the number of bits in the minimal representation of the number
|
||||
|
||||
## [0.8.12](https://github.com/brick/math/releases/tag/0.8.12) - 2020-02-03
|
||||
|
||||
🛠️ **Maintenance release**
|
||||
|
||||
Classes are now annotated for better static analysis with [psalm](https://psalm.dev/).
|
||||
|
||||
This is a maintenance release: no bug fixes, no new features, no breaking changes.
|
||||
|
||||
## [0.8.11](https://github.com/brick/math/releases/tag/0.8.11) - 2020-01-23
|
||||
|
||||
✨ **New feature**
|
||||
|
||||
`BigInteger::powerMod()` performs a power-with-modulo operation. Useful for crypto.
|
||||
|
||||
## [0.8.10](https://github.com/brick/math/releases/tag/0.8.10) - 2020-01-21
|
||||
|
||||
✨ **New feature**
|
||||
|
||||
`BigInteger::mod()` returns the **modulo** of two numbers. The *modulo* differs from the *remainder* when the signs of the operands are different.
|
||||
|
||||
## [0.8.9](https://github.com/brick/math/releases/tag/0.8.9) - 2020-01-08
|
||||
|
||||
⚡️ **Performance improvements**
|
||||
|
||||
A few additional optimizations in `BigInteger` and `BigDecimal` when one of the operands can be returned as is. Thanks to @tomtomsen in #24.
|
||||
|
||||
## [0.8.8](https://github.com/brick/math/releases/tag/0.8.8) - 2019-04-25
|
||||
|
||||
🐛 **Bug fixes**
|
||||
|
||||
- `BigInteger::toBase()` could return an empty string for zero values (BCMath & Native calculators only, GMP calculator unaffected)
|
||||
|
||||
✨ **New features**
|
||||
|
||||
- `BigInteger::toArbitraryBase()` converts a number to an arbitrary base, using a custom alphabet
|
||||
- `BigInteger::fromArbitraryBase()` converts a string in an arbitrary base, using a custom alphabet, back to a number
|
||||
|
||||
These methods can be used as the foundation to convert strings between different bases/alphabets, using BigInteger as an intermediate representation.
|
||||
|
||||
💩 **Deprecations**
|
||||
|
||||
- `BigInteger::parse()` is now deprecated in favour of `fromBase()`
|
||||
|
||||
`BigInteger::fromBase()` works the same way as `parse()`, with 2 minor differences:
|
||||
|
||||
- the `$base` parameter is required, it does not default to `10`
|
||||
- it throws a `NumberFormatException` instead of an `InvalidArgumentException` when the number is malformed
|
||||
|
||||
## [0.8.7](https://github.com/brick/math/releases/tag/0.8.7) - 2019-04-20
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Safer conversion from `float` when using custom locales
|
||||
- **Much faster** `NativeCalculator` implementation 🚀
|
||||
|
||||
You can expect **at least a 3x performance improvement** for common arithmetic operations when using the library on systems without GMP or BCMath; it gets exponentially faster on multiplications with a high number of digits. This is due to calculations now being performed on whole blocks of digits (the block size depending on the platform, 32-bit or 64-bit) instead of digit-by-digit as before.
|
||||
|
||||
## [0.8.6](https://github.com/brick/math/releases/tag/0.8.6) - 2019-04-11
|
||||
|
||||
**New method**
|
||||
|
||||
`BigNumber::sum()` returns the sum of one or more numbers.
|
||||
|
||||
## [0.8.5](https://github.com/brick/math/releases/tag/0.8.5) - 2019-02-12
|
||||
|
||||
**Bug fix**: `of()` factory methods could fail when passing a `float` in environments using a `LC_NUMERIC` locale with a decimal separator other than `'.'` (#20).
|
||||
|
||||
Thanks @manowark 👍
|
||||
|
||||
## [0.8.4](https://github.com/brick/math/releases/tag/0.8.4) - 2018-12-07
|
||||
|
||||
**New method**
|
||||
|
||||
`BigDecimal::sqrt()` calculates the square root of a decimal number, to a given scale.
|
||||
|
||||
## [0.8.3](https://github.com/brick/math/releases/tag/0.8.3) - 2018-12-06
|
||||
|
||||
**New method**
|
||||
|
||||
`BigInteger::sqrt()` calculates the square root of a number (thanks @peter279k).
|
||||
|
||||
**New exception**
|
||||
|
||||
`NegativeNumberException` is thrown when calling `sqrt()` on a negative number.
|
||||
|
||||
## [0.8.2](https://github.com/brick/math/releases/tag/0.8.2) - 2018-11-08
|
||||
|
||||
**Performance update**
|
||||
|
||||
- Further improvement of `toInt()` performance
|
||||
- `NativeCalculator` can now perform some multiplications more efficiently
|
||||
|
||||
## [0.8.1](https://github.com/brick/math/releases/tag/0.8.1) - 2018-11-07
|
||||
|
||||
Performance optimization of `toInt()` methods.
|
||||
|
||||
## [0.8.0](https://github.com/brick/math/releases/tag/0.8.0) - 2018-10-13
|
||||
|
||||
**Breaking changes**
|
||||
|
||||
The following deprecated methods have been removed. Use the new method name instead:
|
||||
|
||||
| Method removed | Replacement method |
|
||||
| --- | --- |
|
||||
| `BigDecimal::getIntegral()` | `BigDecimal::getIntegralPart()` |
|
||||
| `BigDecimal::getFraction()` | `BigDecimal::getFractionalPart()` |
|
||||
|
||||
---
|
||||
|
||||
**New features**
|
||||
|
||||
`BigInteger` has been augmented with 5 new methods for bitwise operations:
|
||||
|
||||
| New method | Description |
|
||||
| --- | --- |
|
||||
| `and()` | performs a bitwise `AND` operation on two numbers |
|
||||
| `or()` | performs a bitwise `OR` operation on two numbers |
|
||||
| `xor()` | performs a bitwise `XOR` operation on two numbers |
|
||||
| `shiftedLeft()` | returns the number shifted left by a number of bits |
|
||||
| `shiftedRight()` | returns the number shifted right by a number of bits |
|
||||
|
||||
Thanks to @DASPRiD 👍
|
||||
|
||||
## [0.7.3](https://github.com/brick/math/releases/tag/0.7.3) - 2018-08-20
|
||||
|
||||
**New method:** `BigDecimal::hasNonZeroFractionalPart()`
|
||||
|
||||
**Renamed/deprecated methods:**
|
||||
|
||||
- `BigDecimal::getIntegral()` has been renamed to `getIntegralPart()` and is now deprecated
|
||||
- `BigDecimal::getFraction()` has been renamed to `getFractionalPart()` and is now deprecated
|
||||
|
||||
## [0.7.2](https://github.com/brick/math/releases/tag/0.7.2) - 2018-07-21
|
||||
|
||||
**Performance update**
|
||||
|
||||
`BigInteger::parse()` and `toBase()` now use GMP's built-in base conversion features when available.
|
||||
|
||||
## [0.7.1](https://github.com/brick/math/releases/tag/0.7.1) - 2018-03-01
|
||||
|
||||
This is a maintenance release, no code has been changed.
|
||||
|
||||
- When installed with `--no-dev`, the autoloader does not autoload tests anymore
|
||||
- Tests and other files unnecessary for production are excluded from the dist package
|
||||
|
||||
This will help make installations more compact.
|
||||
|
||||
## [0.7.0](https://github.com/brick/math/releases/tag/0.7.0) - 2017-10-02
|
||||
|
||||
Methods renamed:
|
||||
|
||||
- `BigNumber:sign()` has been renamed to `getSign()`
|
||||
- `BigDecimal::unscaledValue()` has been renamed to `getUnscaledValue()`
|
||||
- `BigDecimal::scale()` has been renamed to `getScale()`
|
||||
- `BigDecimal::integral()` has been renamed to `getIntegral()`
|
||||
- `BigDecimal::fraction()` has been renamed to `getFraction()`
|
||||
- `BigRational::numerator()` has been renamed to `getNumerator()`
|
||||
- `BigRational::denominator()` has been renamed to `getDenominator()`
|
||||
|
||||
Classes renamed:
|
||||
|
||||
- `ArithmeticException` has been renamed to `MathException`
|
||||
|
||||
## [0.6.2](https://github.com/brick/math/releases/tag/0.6.2) - 2017-10-02
|
||||
|
||||
The base class for all exceptions is now `MathException`.
|
||||
`ArithmeticException` has been deprecated, and will be removed in 0.7.0.
|
||||
|
||||
## [0.6.1](https://github.com/brick/math/releases/tag/0.6.1) - 2017-10-02
|
||||
|
||||
A number of methods have been renamed:
|
||||
|
||||
- `BigNumber:sign()` is deprecated; use `getSign()` instead
|
||||
- `BigDecimal::unscaledValue()` is deprecated; use `getUnscaledValue()` instead
|
||||
- `BigDecimal::scale()` is deprecated; use `getScale()` instead
|
||||
- `BigDecimal::integral()` is deprecated; use `getIntegral()` instead
|
||||
- `BigDecimal::fraction()` is deprecated; use `getFraction()` instead
|
||||
- `BigRational::numerator()` is deprecated; use `getNumerator()` instead
|
||||
- `BigRational::denominator()` is deprecated; use `getDenominator()` instead
|
||||
|
||||
The old methods will be removed in version 0.7.0.
|
||||
|
||||
## [0.6.0](https://github.com/brick/math/releases/tag/0.6.0) - 2017-08-25
|
||||
|
||||
- Minimum PHP version is now [7.1](https://gophp71.org/); for PHP 5.6 and PHP 7.0 support, use version `0.5`
|
||||
- Deprecated method `BigDecimal::withScale()` has been removed; use `toScale()` instead
|
||||
- Method `BigNumber::toInteger()` has been renamed to `toInt()`
|
||||
|
||||
## [0.5.4](https://github.com/brick/math/releases/tag/0.5.4) - 2016-10-17
|
||||
|
||||
`BigNumber` classes now implement [JsonSerializable](http://php.net/manual/en/class.jsonserializable.php).
|
||||
The JSON output is always a string.
|
||||
|
||||
## [0.5.3](https://github.com/brick/math/releases/tag/0.5.3) - 2016-03-31
|
||||
|
||||
This is a bugfix release. Dividing by a negative power of 1 with the same scale as the dividend could trigger an incorrect optimization which resulted in a wrong result. See #6.
|
||||
|
||||
## [0.5.2](https://github.com/brick/math/releases/tag/0.5.2) - 2015-08-06
|
||||
|
||||
The `$scale` parameter of `BigDecimal::dividedBy()` is now optional again.
|
||||
|
||||
## [0.5.1](https://github.com/brick/math/releases/tag/0.5.1) - 2015-07-05
|
||||
|
||||
**New method: `BigNumber::toScale()`**
|
||||
|
||||
This allows to convert any `BigNumber` to a `BigDecimal` with a given scale, using rounding if necessary.
|
||||
|
||||
## [0.5.0](https://github.com/brick/math/releases/tag/0.5.0) - 2015-07-04
|
||||
|
||||
**New features**
|
||||
- Common `BigNumber` interface for all classes, with the following methods:
|
||||
- `sign()` and derived methods (`isZero()`, `isPositive()`, ...)
|
||||
- `compareTo()` and derived methods (`isEqualTo()`, `isGreaterThan()`, ...) that work across different `BigNumber` types
|
||||
- `toBigInteger()`, `toBigDecimal()`, `toBigRational`() conversion methods
|
||||
- `toInteger()` and `toFloat()` conversion methods to native types
|
||||
- Unified `of()` behaviour: every class now accepts any type of number, provided that it can be safely converted to the current type
|
||||
- New method: `BigDecimal::exactlyDividedBy()`; this method automatically computes the scale of the result, provided that the division yields a finite number of digits
|
||||
- New methods: `BigRational::quotient()` and `remainder()`
|
||||
- Fine-grained exceptions: `DivisionByZeroException`, `RoundingNecessaryException`, `NumberFormatException`
|
||||
- Factory methods `zero()`, `one()` and `ten()` available in all classes
|
||||
- Rounding mode reintroduced in `BigInteger::dividedBy()`
|
||||
|
||||
This release also comes with many performance improvements.
|
||||
|
||||
---
|
||||
|
||||
**Breaking changes**
|
||||
- `BigInteger`:
|
||||
- `getSign()` is renamed to `sign()`
|
||||
- `toString()` is renamed to `toBase()`
|
||||
- `BigInteger::dividedBy()` now throws an exception by default if the remainder is not zero; use `quotient()` to get the previous behaviour
|
||||
- `BigDecimal`:
|
||||
- `getSign()` is renamed to `sign()`
|
||||
- `getUnscaledValue()` is renamed to `unscaledValue()`
|
||||
- `getScale()` is renamed to `scale()`
|
||||
- `getIntegral()` is renamed to `integral()`
|
||||
- `getFraction()` is renamed to `fraction()`
|
||||
- `divideAndRemainder()` is renamed to `quotientAndRemainder()`
|
||||
- `dividedBy()` now takes a **mandatory** `$scale` parameter **before** the rounding mode
|
||||
- `toBigInteger()` does not accept a `$roundingMode` parameter any more
|
||||
- `toBigRational()` does not simplify the fraction any more; explicitly add `->simplified()` to get the previous behaviour
|
||||
- `BigRational`:
|
||||
- `getSign()` is renamed to `sign()`
|
||||
- `getNumerator()` is renamed to `numerator()`
|
||||
- `getDenominator()` is renamed to `denominator()`
|
||||
- `of()` is renamed to `nd()`, while `parse()` is renamed to `of()`
|
||||
- Miscellaneous:
|
||||
- `ArithmeticException` is moved to an `Exception\` sub-namespace
|
||||
- `of()` factory methods now throw `NumberFormatException` instead of `InvalidArgumentException`
|
||||
|
||||
## [0.4.3](https://github.com/brick/math/releases/tag/0.4.3) - 2016-03-31
|
||||
|
||||
Backport of two bug fixes from the 0.5 branch:
|
||||
- `BigInteger::parse()` did not always throw `InvalidArgumentException` as expected
|
||||
- Dividing by a negative power of 1 with the same scale as the dividend could trigger an incorrect optimization which resulted in a wrong result. See #6.
|
||||
|
||||
## [0.4.2](https://github.com/brick/math/releases/tag/0.4.2) - 2015-06-16
|
||||
|
||||
New method: `BigDecimal::stripTrailingZeros()`
|
||||
|
||||
## [0.4.1](https://github.com/brick/math/releases/tag/0.4.1) - 2015-06-12
|
||||
|
||||
Introducing a `BigRational` class, to perform calculations on fractions of any size.
|
||||
|
||||
## [0.4.0](https://github.com/brick/math/releases/tag/0.4.0) - 2015-06-12
|
||||
|
||||
Rounding modes have been removed from `BigInteger`, and are now a concept specific to `BigDecimal`.
|
||||
|
||||
`BigInteger::dividedBy()` now always returns the quotient of the division.
|
||||
|
||||
## [0.3.5](https://github.com/brick/math/releases/tag/0.3.5) - 2016-03-31
|
||||
|
||||
Backport of two bug fixes from the 0.5 branch:
|
||||
|
||||
- `BigInteger::parse()` did not always throw `InvalidArgumentException` as expected
|
||||
- Dividing by a negative power of 1 with the same scale as the dividend could trigger an incorrect optimization which resulted in a wrong result. See #6.
|
||||
|
||||
## [0.3.4](https://github.com/brick/math/releases/tag/0.3.4) - 2015-06-11
|
||||
|
||||
New methods:
|
||||
- `BigInteger::remainder()` returns the remainder of a division only
|
||||
- `BigInteger::gcd()` returns the greatest common divisor of two numbers
|
||||
|
||||
## [0.3.3](https://github.com/brick/math/releases/tag/0.3.3) - 2015-06-07
|
||||
|
||||
Fix `toString()` not handling negative numbers.
|
||||
|
||||
## [0.3.2](https://github.com/brick/math/releases/tag/0.3.2) - 2015-06-07
|
||||
|
||||
`BigInteger` and `BigDecimal` now have a `getSign()` method that returns:
|
||||
- `-1` if the number is negative
|
||||
- `0` if the number is zero
|
||||
- `1` if the number is positive
|
||||
|
||||
## [0.3.1](https://github.com/brick/math/releases/tag/0.3.1) - 2015-06-05
|
||||
|
||||
Minor performance improvements
|
||||
|
||||
## [0.3.0](https://github.com/brick/math/releases/tag/0.3.0) - 2015-06-04
|
||||
|
||||
The `$roundingMode` and `$scale` parameters have been swapped in `BigDecimal::dividedBy()`.
|
||||
|
||||
## [0.2.2](https://github.com/brick/math/releases/tag/0.2.2) - 2015-06-04
|
||||
|
||||
Stronger immutability guarantee for `BigInteger` and `BigDecimal`.
|
||||
|
||||
So far, it would have been possible to break immutability of these classes by calling the `unserialize()` internal function. This release fixes that.
|
||||
|
||||
## [0.2.1](https://github.com/brick/math/releases/tag/0.2.1) - 2015-06-02
|
||||
|
||||
Added `BigDecimal::divideAndRemainder()`
|
||||
|
||||
## [0.2.0](https://github.com/brick/math/releases/tag/0.2.0) - 2015-05-22
|
||||
|
||||
- `min()` and `max()` do not accept an `array` any more, but a variable number of parameters
|
||||
- **minimum PHP version is now 5.6**
|
||||
- continuous integration with PHP 7
|
||||
|
||||
## [0.1.1](https://github.com/brick/math/releases/tag/0.1.1) - 2014-09-01
|
||||
|
||||
- Added `BigInteger::power()`
|
||||
- Added HHVM support
|
||||
|
||||
## [0.1.0](https://github.com/brick/math/releases/tag/0.1.0) - 2014-08-31
|
||||
|
||||
First beta release.
|
||||
|
||||
20
vendor/brick/math/LICENSE
vendored
Normal file
20
vendor/brick/math/LICENSE
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013-present Benjamin Morel
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user