first commit

This commit is contained in:
benjibennn
2023-12-22 12:35:55 +08:00
commit 9f89a732d6
872 changed files with 156291 additions and 0 deletions

23
.gitignore vendored Normal file
View File

@@ -0,0 +1,23 @@
/.phpunit.cache
/node_modules
/public/build
/public/hot
/public/storage
/public/phpmyadmin
/storage/*.key
/vendor
.env
.env.backup
.env.production
.phpunit.result.cache
Homestead.json
Homestead.yaml
auth.json
npm-debug.log
yarn-error.log
/.fleet
/.idea
/.vscode
/public/wave/docs
composer.lock
composer.json

25
Dockerfile Normal file
View File

@@ -0,0 +1,25 @@
FROM haakco/stage3-ubuntu-20.04-php7.4-lv
USER www-data
## Cleanout previous dev just in case
RUN rm -rf /var/www/site/*
ADD --chown=www-data:www-data . /var/www/site
WORKDIR /var/www/site
RUN composer install --no-ansi --no-suggest --no-scripts --prefer-dist --no-progress --no-interaction \
--optimize-autoloader
USER root
RUN find /usr/share/GeoIP -not -user www-data -execdir chown "www-data:" {} \+ && \
find /var/www/site -not -user www-data -execdir chown "www-data:" {} \+
#HEALTHCHECK \
# --interval=30s \
# --timeout=60s \
# --retries=10 \
# --start-period=60s \
# CMD if [[ "$(curl -f http://127.0.0.1/ | jq -e . >/dev/null 2>&1)" != "0" ]]; then exit 1; else exit 0; fi

32
app/Console/Kernel.php Normal file
View File

@@ -0,0 +1,32 @@
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')->hourly();
}
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}

34
app/Events/ChatEvent.php Normal file
View File

@@ -0,0 +1,34 @@
<?php
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class ChatEvent implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $chatId;
public $toAdmin;
public $userId;
public function __construct($chatId, $toAdmin = false, $userId = null)
{
$this->chatId = $chatId;
$this->toAdmin = $toAdmin;
$this->userId = $userId;
}
public function broadcastOn(): array
{
return [
new Channel('chat-channel'),
];
}
}

View File

@@ -0,0 +1,73 @@
<?php
namespace App\Exceptions;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Tymon\JWTAuth\Exceptions\JWTException;
use Tymon\JWTAuth\Exceptions\TokenExpiredException;
use Tymon\JWTAuth\Exceptions\TokenInvalidException;
use Throwable;
use Response;
use Exception;
class Handler extends ExceptionHandler
{
/**
* A list of exception types with their corresponding custom log levels.
*
* @var array<class-string<\Throwable>, \Psr\Log\LogLevel::*>
*/
protected $levels = [
//
];
/**
* A list of the exception types that are not reported.
*
* @var array<int, class-string<\Throwable>>
*/
protected $dontReport = [
//
];
/**
* A list of the inputs that are never flashed to the session on validation exceptions.
*
* @var array<int, string>
*/
protected $dontFlash = [
'current_password',
'password',
'password_confirmation',
];
/**
* Register the exception handling callbacks for the application.
*
* @return void
*/
public function register()
{
if (request()->is('api/*')) {
$this->renderable(function (Throwable $e) {
return Response::json(['error'=>$e->getMessage()],500);
});
$this->renderable(function(TokenInvalidException $e, $request){
return Response::json(['error'=>'Invalid token'],401);
});
$this->renderable(function (TokenExpiredException $e, $request) {
return Response::json(['error'=>'Token has Expired'],401);
});
$this->renderable(function (JWTException $e, $request) {
return Response::json(['error'=>'Token not parsed'],401);
});
}
else {
$this->reportable(function (Throwable $e) {
//
});
}
}
}

View File

@@ -0,0 +1,49 @@
<?php
declare(strict_types=1);
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;
use Storage;
class BookkeepingDocumentLibraryExport implements FromCollection, WithMapping, WithHeadings
{
protected $documents;
public function __construct($documents)
{
$this->documents = $documents;
}
public function collection()
{
return $this->documents;
}
public function map($documents): array
{
return [
$documents->file_name,
(strtolower(app()->getLocale()) == 'zh_hk' ? $documents->name_chinese : $documents->name_english),
$documents->category_name,
$documents->user_name,
Storage::exists($documents->file_path) ? (round(Storage::size($documents->file_path) / 1000) . 'KB') : '-',
$documents->created_at->format('Ymd-H:i'),
];
}
public function headings(): array
{
return [
'Document Name',
'Company',
'Document Category',
'Upload User',
'Document Size',
'Date Uploaded',
];
}
}

BIN
app/Http/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,10 @@
<?php
namespace App\Http\Controllers\Auth;
use Wave\Http\Controllers\Auth\ForgotPasswordController as AuthForgotPasswordController;
class ForgotPasswordController extends AuthForgotPasswordController
{
}

View File

@@ -0,0 +1,10 @@
<?php
namespace App\Http\Controllers\Auth;
use Wave\Http\Controllers\Auth\LoginController as AuthLoginController;
class LoginController extends AuthLoginController
{
}

View File

@@ -0,0 +1,10 @@
<?php
namespace App\Http\Controllers\Auth;
use Wave\Http\Controllers\Auth\RegisterController as AuthRegisterController;
class RegisterController extends AuthRegisterController
{
}

View File

@@ -0,0 +1,10 @@
<?php
namespace App\Http\Controllers\Auth;
use Wave\Http\Controllers\Auth\ResetPasswordController as AuthResetPasswordController;
class ResetPasswordController extends AuthResetPasswordController
{
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}

72
app/Http/Kernel.php Normal file
View File

@@ -0,0 +1,72 @@
<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array<int, class-string|string>
*/
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
\Illuminate\Http\Middleware\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
/**
* The application's route middleware groups.
*
* @var array<string, array<int, class-string|string>>
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\Localization::class,
],
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array<string, class-string|string>
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'auth.jwt'=>\App\Http\Middleware\JwtMiddleWare::class,
'user' => \App\Http\Middleware\CheckIfUserRole::class,
'admin' => \App\Http\Middleware\CheckIfAdminRole::class,
'route.access' => \App\Http\Middleware\HasRouteAccess::class,
];
}

View File

@@ -0,0 +1,107 @@
<?php
namespace App\Http\Livewire\Wave;
use Illuminate\Support\Facades\Http;
use Livewire\Component;
class DeployToDo extends Component
{
public $api_key;
public $repo;
public $deploy;
public $app_id;
public $deployments;
public $app;
public function mount(){
// get the deploy.json file and convert to object
$this->deploy = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', file_get_contents(base_path('deploy.json')) ), true);
$this->checkForAppDeployment();
}
private function checkForAppDeployment(){
if(isset( $this->deploy['wave'] ) && isset( $this->deploy['wave']['app_id'] )){
$this->app_id = $this->deploy['wave']['app_id'];
$this->api_key = $this->deploy['wave']['api_key'];
$this->deployments = $this->getDeployments();
$this->app = $this->getAppInfo();
}
}
public function getDeployments(){
$response = Http::withToken($this->api_key)->get('https://api.digitalocean.com/v2/apps/' . $this->app_id . '/deployments');
return json_decode($response->body(), true);
}
public function getAppInfo(){
$response = Http::withToken($this->api_key)->get('https://api.digitalocean.com/v2/apps/' . $this->app_id);
return json_decode($response->body(), true);
}
private function writeToDeployFile($id, $key, $deployFileArray){
$deployFileArray['wave']['app_id'] = $id;
$deployFileArray['wave']['api_key'] = $key;
file_put_contents(base_path('deploy.json'), stripslashes(json_encode($deployFileArray, JSON_PRETTY_PRINT)));
$this->deploy = json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', file_get_contents(base_path('deploy.json')) ), true);
}
public function deploy(){
if(!isset($this->app_id)){
// repo must contain a '/', do a check for that
$repoSplit = explode('/', $this->repo);
$repoName = (isset($repoSplit[0]) && isset($repoSplit[1])) ? $repoSplit[0] . '-' . $repoSplit[1] : false;
if(!$repoName){
$this->dispatchBrowserEvent('notify', ['type' => 'error', 'message' => 'Please make sure you enter a valiid repo (ex: user/repo)']);
return;
}
if(empty($this->api_key)){
$this->dispatchBrowserEvent('notify', ['type' => 'error', 'message' => 'C\'mon, you can\'t leave the API key field empty.']);
return;
}
if(is_null($this->deploy)){
$this->dispatchBrowserEvent('notify', ['type' => 'error', 'message' => 'Sorry it looks like your deploy.json does not contain valid JSON']);
return;
}
// replace values with repoName and Repo url
$finalJSONPayload = json_encode($this->deploy);
$finalJSONPayload = str_replace('${wave.name}', str_replace('_', '-', $repoName), $finalJSONPayload);
//dd($this->repo);
$finalJSONPayload = str_replace('${wave.repo}', $this->repo, $finalJSONPayload);
$response = Http::withToken($this->api_key)->withBody( $finalJSONPayload, 'application/json')
->post('https://api.digitalocean.com/v2/apps');
// if the response is not successful, display the message back from DigitalOcean
if(!$response->successful()){
$responseBody = json_decode($response->body(), true);
$this->dispatchBrowserEvent('notify', ['type' => 'error', 'message' => $responseBody['message']]);
return;
}
// get app ID and set it in the JSON
$responseBody = json_decode($response->body(), true);
$this->writeToDeployFile($responseBody['app']['id'], $this->api_key, $this->deploy);
$this->checkForAppDeployment();
$this->dispatchBrowserEvent('notify', ['type' => 'success', 'message' => 'Successfully deployed your application!']);
//dd('hit');
}
}
public function render()
{
return view('livewire.wave.deploy-to-do');
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
class Authenticate extends Middleware
{
/**
* Get the path the user should be redirected to when they are not authenticated.
*
* @param \Illuminate\Http\Request $request
* @return string|null
*/
protected function redirectTo($request)
{
if (! $request->expectsJson()) {
return route('login');
}
}
}

View File

@@ -0,0 +1,39 @@
<?php
declare(strict_types=1);
namespace App\Http\Middleware;
use App\Models\Role;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class CheckIfAdminRole
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
// Check status
if (auth()->user()->status == 'inactive') {
$redirectUrl = auth()->user()->getRedirectRouteIfNotAuthenticated();
auth()->logout();
return redirect($redirectUrl);
}
// Check role
$roles = [
Role::IT_PERSONNEL_ROLE,
Role::NUMSTATION_MANAGER_ROLE,
Role::NUMSTATION_STAFF_ROLE,
];
if (in_array(auth()->user()->role_id, $roles)) {
return $next($request);
}
return abort(Response::HTTP_FORBIDDEN, '403 Access Forbidden');
}
}

View File

@@ -0,0 +1,40 @@
<?php
declare(strict_types=1);
namespace App\Http\Middleware;
use App\Models\Role;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class CheckIfUserRole
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
// Check status
if (auth()->user()->status == 'inactive') {
$redirectUrl = auth()->user()->getRedirectRoute();
auth()->logout();
return redirect($redirectUrl);
}
// Check role
$roles = [
Role::OWNER_ROLE,
Role::ADMINISTRATOR_ROLE,
Role::BOOKKEEPER_ROLE,
Role::COMPANY_SECRETARY_ROLE,
];
if (in_array(auth()->user()->role_id, $roles)) {
return $next($request);
}
return abort(Response::HTTP_FORBIDDEN, '403 Access Forbidden');
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
class EncryptCookies extends Middleware
{
/**
* The names of the cookies that should not be encrypted.
*
* @var array<int, string>
*/
protected $except = [
//
];
}

View File

@@ -0,0 +1,43 @@
<?php
declare(strict_types=1);
namespace App\Http\Middleware;
// use App\Models\Permission;
// use App\Models\RoleAccess;
use Auth;
use Closure;
use Illuminate\Auth\Access\AuthorizationException;
use Symfony\Component\HttpFoundation\Response;
class HasRouteAccess
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
*
* @return mixed
*
* @throws AuthorizationException
*/
public function handle($request, Closure $next)
{
$action = $request->route()->getActionName();
$permissionRoutes = config('permission-routes');
$permissionKey = '';
foreach ($permissionRoutes as $key => $routes) {
if (in_array($action, $routes)) {
$permissionKey = $key;
break;
}
}
if ($permissionKey == '' || Auth::user()->userRole->hasAccess($permissionKey)) {
return $next($request);
}
return abort(Response::HTTP_FORBIDDEN, '403 Access Forbidden');
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Http\Middleware;
use Closure;
class HttpsRedirect
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!$request->secure() && app()->environment('production')) {
return redirect()->secure($request->getRequestUri());
}
return $next($request);
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use JWTAuth;
class JWTMiddleWare
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
$user = JWTAuth::parseToken()->authenticate();
return $next($request);
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Session;
class Localization
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
if (Session::has('locale')) {
App::setLocale(Session::get('locale'));
}
return $next($request);
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware;
class PreventRequestsDuringMaintenance extends Middleware
{
/**
* The URIs that should be reachable while maintenance mode is enabled.
*
* @var array<int, string>
*/
protected $except = [
//
];
}

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @param string|null ...$guards
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next, ...$guards)
{
$guards = empty($guards) ? [null] : $guards;
foreach ($guards as $guard) {
if (Auth::guard($guard)->check()) {
return redirect(Auth::user()->getRedirectRoute());
}
}
return $next($request);
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
class TrimStrings extends Middleware
{
/**
* The names of the attributes that should not be trimmed.
*
* @var array<int, string>
*/
protected $except = [
'current_password',
'password',
'password_confirmation',
];
}

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Middleware\TrustHosts as Middleware;
class TrustHosts extends Middleware
{
/**
* Get the host patterns that should be trusted.
*
* @return array<int, string|null>
*/
public function hosts()
{
return [
$this->allSubdomainsOfApplicationUrl(),
];
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Middleware\TrustProxies as Middleware;
use Illuminate\Http\Request;
class TrustProxies extends Middleware
{
/**
* The trusted proxies for this application.
*
* @var array<int, string>|string|null
*/
protected $proxies;
/**
* The headers that should be used to detect proxies.
*
* @var int
*/
protected $headers =
Request::HEADER_X_FORWARDED_FOR |
Request::HEADER_X_FORWARDED_HOST |
Request::HEADER_X_FORWARDED_PORT |
Request::HEADER_X_FORWARDED_PROTO |
Request::HEADER_X_FORWARDED_AWS_ELB;
}

View File

@@ -0,0 +1,18 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array<int, string>
*/
protected $except = [
'/paddle/webhook',
'/v1/api/*',
];
}

View File

@@ -0,0 +1,64 @@
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
class ForgetPasswordOtp extends Mailable
{
use Queueable, SerializesModels;
protected $otp;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($otp)
{
$this->otp = $otp;
}
/**
* Get the message envelope.
*
* @return \Illuminate\Mail\Mailables\Envelope
*/
public function envelope()
{
return new Envelope(
subject: 'Forget Password Otp',
);
}
/**
* Get the message content definition.
*
* @return \Illuminate\Mail\Mailables\Content
*/
public function content()
{
return new Content(
markdown: 'theme::emails.forgot-password-otp',
with: [
'otp' => $this->otp,
],
);
}
/**
* Get the attachments for the message.
*
* @return array
*/
public function attachments()
{
return [];
}
}

View File

@@ -0,0 +1,67 @@
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
class SendUserInvite extends Mailable
{
use Queueable, SerializesModels;
protected $url;
protected $companyName;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($url, $companyName)
{
$this->url = $url;
$this->companyName = $companyName;
}
/**
* Get the message envelope.
*
* @return \Illuminate\Mail\Mailables\Envelope
*/
public function envelope()
{
return new Envelope(
subject: 'You are invited to ' . $this->companyName,
);
}
/**
* Get the message content definition.
*
* @return \Illuminate\Mail\Mailables\Content
*/
public function content()
{
return new Content(
markdown: 'theme::emails.send-user-invite',
with: [
'url' => $this->url,
'companyName' => $this->companyName,
],
);
}
/**
* Get the attachments for the message.
*
* @return array
*/
public function attachments()
{
return [];
}
}

View File

@@ -0,0 +1,73 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Storage;
class BookkeepingDocument extends Model
{
use HasFactory;
public const PATH_PREFIX = 'public/bookkeeping';
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'company_id',
'user_id',
'batch_name',
'remark',
'file_name',
'bookkeeping_document_category_id',
'status',
'data_molino_status',
'data_molino_return_status',
'xero_status',
'xero_amount',
'url',
'name',
'description',
'file_size',
];
public function company()
{
return $this->belongsTo(Company::class);
}
public function user()
{
return $this->belongsTo(User::class);
}
public function category()
{
return $this->belongsTo(BookkeepingDocumentCategory::class, 'bookkeeping_document_category_id', 'id');
}
public function getFolderPathAttribute()
{
return self::PATH_PREFIX . '/' . $this->id;
}
public function getFilePathAttribute()
{
return ! $this->file_name ? null : $this->getFolderPathAttribute() . "/{$this->file_name}";
}
public function getFileUrlAttribute()
{
$path = $this->getFilePathAttribute();
if ($path && Storage::exists($path)) {
return env('AWS_ENDPOINT') . env('AWS_BUCKET') . '/' . $path;
}
return '#';
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class BookkeepingDocumentCategory extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'name',
'status',
];
}

47
app/Models/Company.php Normal file
View File

@@ -0,0 +1,47 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Company extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'email',
'name_english',
'name_chinese',
'registered_office_address_english',
'registered_office_address_chinese',
'br_number',
'xero_api_key',
];
public function getNameAttribute()
{
if (strtolower(app()->getLocale()) == 'zh_hk') {
return $this->name_chinese;
}
return $this->name_english;
}
public function getRegisteredOfficeAddressAttribute()
{
if (strtolower(app()->getLocale()) == 'zh_hk') {
return $this->registered_office_address_chinese;
}
return $this->registered_office_address_english;
}
public function users()
{
return $this->hasMany(User::class);
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class CompanyDocument extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'company_id',
'member_id',
'filename',
'url',
];
}

View File

@@ -0,0 +1,39 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class CompanyMember extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'company_id',
'position',
'title',
'name_english',
'name_chinese',
'phone',
'email',
'document_type',
'document_number',
'country',
'address_english',
'address_chinese',
'year_date',
'month_date',
'day_date',
];
public function documents()
{
return $this->hasMany(CompanyDocument::class, 'member_id', 'id');
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class CompanySubscription extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'company_id',
'subscription_id',
'stripe_subscription_id',
'status',
'expiration_at',
];
public function company()
{
return $this->hasOne(Company::class, 'id', 'company_id');
}
public function subscription()
{
return $this->hasOne(Subscription::class, 'id', 'subscription_id');
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class DocumentActionLogs extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'user_id',
'event',
'description',
'status',
'type',
];
public function user()
{
return $this->belongsTo(User::class);
}
}

24
app/Models/InviteUser.php Normal file
View File

@@ -0,0 +1,24 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class InviteUser extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'email',
'token',
'user_id',
'company_id',
'is_used',
];
}

49
app/Models/OnlineHelp.php Normal file
View File

@@ -0,0 +1,49 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class OnlineHelp extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'title_english',
'title_chinese',
'details_english',
'details_chinese',
'category',
'sort',
];
public function getTitleAttribute()
{
if (strtolower(app()->getLocale()) == 'zh_hk') {
return $this->title_chinese;
}
return $this->title_english;
}
public function getDetailsAttribute()
{
if (strtolower(app()->getLocale()) == 'zh_hk') {
return $this->detailss_chinese;
}
return $this->detailss_english;
}
public function getCategoryNameDisplayAttribute()
{
if ($this->category == 'faq') {
return __("FAQ");
}
return __("Online Documents");
}
}

16
app/Models/Permission.php Normal file
View File

@@ -0,0 +1,16 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Permission extends Model
{
use HasFactory;
public function permissionGroup()
{
return $this->hasOne(PermissionGroup::class, 'id', 'permission_group_id');
}
}

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PermissionGroup extends Model
{
use HasFactory;
public function permissions()
{
return $this->hasMany(Permission::class);
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PermissionRole extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'permission_id',
'role_id',
'company_id',
];
public $timestamps = false;
public function permission()
{
return $this->hasOne(Permission::class, 'id', 'permission_id');
}
public function role()
{
return $this->hasOne(Role::class, 'id', 'role_id');
}
}

50
app/Models/Role.php Normal file
View File

@@ -0,0 +1,50 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Role extends Model
{
use HasFactory;
// Built In Roles
public const ADMIN_ROLE = 1;
public const TRIAL_ROLE = 2;
public const BASIC_ROLE = 3;
public const PRO_ROLE = 4;
public const PREMIUM_ROLE = 5;
public const CANCELLED_ROLE = 6;
// Custom Roles
// User
public const OWNER_ROLE = 7;
public const ADMINISTRATOR_ROLE = 8;
public const BOOKKEEPER_ROLE = 9;
public const COMPANY_SECRETARY_ROLE = 10;
// Admin
public const IT_PERSONNEL_ROLE = 11;
public const NUMSTATION_MANAGER_ROLE = 12;
public const NUMSTATION_STAFF_ROLE = 13;
public function users()
{
return $this->hasMany(User::class);
}
public function rolePermissions()
{
return $this->hasMany(PermissionRole::class);
}
public function hasAccess($permissionKey)
{
$permission = Permission::where('key', $permissionKey)->first();
if ($permission) {
return $this->rolePermissions()->where('permission_id', $permission->id)->exists();
}
return false;
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ServiceChat extends Model
{
use HasFactory;
public const PATH_PREFIX = 'public/chats';
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'company_id',
'user_id',
'service_type',
];
public function messages()
{
return $this->hasMany(ServiceChatMessage::class);
}
public function user()
{
return $this->belongsTo(User::class);
}
public function company()
{
return $this->belongsTo(Company::class);
}
public function getFolderPathAttribute()
{
return self::PATH_PREFIX . '/' . $this->id;
}
}

View File

@@ -0,0 +1,78 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Storage;
class ServiceChatMessage extends Model
{
use HasFactory;
public const PATH_PREFIX = 'public/chats';
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'service_chat_id',
'message',
'from_user_id',
'to_user_id',
'to_admin',
'is_file',
'file_name',
'is_read',
];
public function getElapsedTimeAttribute()
{
$time = time() - $this->created_at->timestamp;
$time = $time < 1 ? 1 : $time;
$tokens = [
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'min',
1 => 'second',
];
foreach ($tokens as $unit => $text) {
if ($time < $unit) {
continue;
}
$numberOfUnits = floor($time / $unit);
return $numberOfUnits . ' ' . $text . ($numberOfUnits > 1 ? 's' : '') . ' ago';
}
return '';
}
public function getFolderPathAttribute()
{
return self::PATH_PREFIX . '/' . $this->service_chat_id;
}
public function getFilePathAttribute()
{
return ! $this->file_name ? null : $this->getFolderPathAttribute() . "/{$this->file_name}";
}
public function getFileUrlAttribute()
{
$path = $this->getFilePathAttribute();
if ($path && Storage::exists($path)) {
return env('AWS_ENDPOINT') . env('AWS_BUCKET') . '/' . $path;
}
return null;
}
}

View File

@@ -0,0 +1,63 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class SiteSetting extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'terms_and_conditions_english',
'terms_and_conditions_chinese',
'privacy_policy_english',
'privacy_policy_chinese',
'phone',
'whatsapp',
'email',
'office_hour_english',
'office_hour_chinese',
'address_english',
'address_chinese',
'google_drive_api_key',
];
public function getTermsAndConditionsAttribute()
{
if (strtolower(app()->getLocale()) == 'zh_hk') {
return $this->terms_and_conditions_chinese;
}
return $this->terms_and_conditions_english;
}
public function getPrivacyPolicyAttribute()
{
if (strtolower(app()->getLocale()) == 'zh_hk') {
return $this->privacy_policy_chinese;
}
return $this->privacy_policy_english;
}
public function getOfficeHourAttribute()
{
if (strtolower(app()->getLocale()) == 'zh_hk') {
return $this->office_hour_chinese;
}
return $this->office_hour_english;
}
public function getAddressAttribute()
{
if (strtolower(app()->getLocale()) == 'zh_hk') {
return $this->address_chinese;
}
return $this->address_english;
}
}

View File

@@ -0,0 +1,38 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Subscription extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'service_type',
'name_english',
'name_chinese',
'period_english',
'period_chinese',
'description_english',
'description_chinese',
'price',
'status',
];
public function basicServices()
{
return $this->hasMany(SubscriptionBasicService::class);
}
public function optionalServices()
{
return $this->hasMany(SubscriptionOptionalService::class);
}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class SubscriptionBasicService extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'subscription_id',
'title_english',
'title_chinese',
];
public function lists()
{
return $this->hasMany(SubscriptionBasicServiceList::class);
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class SubscriptionBasicServiceList extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'subscription_basic_service_id',
'title_english',
'title_chinese',
];
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class SubscriptionOptionalService extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'subscription_id',
'title_english',
'title_chinese',
'price',
'period',
'is_custom',
'custom_description',
];
}

126
app/Models/User.php Normal file
View File

@@ -0,0 +1,126 @@
<?php
namespace App\Models;
use App\Providers\RouteServiceProvider;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Notifications\Notifiable;
use Wave\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable, SoftDeletes;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'name',
'email',
'username',
'password',
'verification_code',
'verified',
'trial_ends_at',
'company_id',
'first_name',
'last_name',
'alias_name',
'phone',
'forgot_password_otp',
'status',
'role_id',
'api_token',
'admin_active_company_id'
];
/**
* The attributes that should be hidden for serialization.
*
* @var array<int, string>
*/
protected $hidden = [
'password',
'remember_token',
];
/**
* The attributes that should be cast.
*
* @var array<string, string>
*/
protected $casts = [
'trial_ends_at' => 'datetime',
];
public function getRedirectRoute()
{
switch ($this->role_id) {
case Role::OWNER_ROLE:
return RouteServiceProvider::USER_HOME;
case Role::ADMINISTRATOR_ROLE:
return RouteServiceProvider::USER_HOME;
case Role::BOOKKEEPER_ROLE:
return RouteServiceProvider::USER_HOME;
case Role::COMPANY_SECRETARY_ROLE:
return RouteServiceProvider::USER_HOME;
case Role::IT_PERSONNEL_ROLE:
return RouteServiceProvider::ADMIN_HOME;
case Role::NUMSTATION_MANAGER_ROLE:
return RouteServiceProvider::ADMIN_HOME;
case Role::NUMSTATION_STAFF_ROLE:
return RouteServiceProvider::ADMIN_HOME;
default:
return RouteServiceProvider::USER_HOME;
}
}
public function getRedirectRouteIfNotAuthenticated()
{
switch ($this->role_id) {
case Role::OWNER_ROLE:
return RouteServiceProvider::USER_LOGIN;
case Role::ADMINISTRATOR_ROLE:
return RouteServiceProvider::USER_LOGIN;
case Role::BOOKKEEPER_ROLE:
return RouteServiceProvider::USER_LOGIN;
case Role::COMPANY_SECRETARY_ROLE:
return RouteServiceProvider::USER_LOGIN;
case Role::IT_PERSONNEL_ROLE:
return RouteServiceProvider::ADMIN_LOGIN;
case Role::NUMSTATION_MANAGER_ROLE:
return RouteServiceProvider::ADMIN_LOGIN;
case Role::NUMSTATION_STAFF_ROLE:
return RouteServiceProvider::ADMIN_LOGIN;
default:
return RouteServiceProvider::USER_LOGIN;
}
}
public function company()
{
return $this->belongsTo(Company::class);
}
public function notificationSettings()
{
return $this->hasMany(UserNotificationSetting::class);
}
public function userRole()
{
return $this->hasOne(Role::class, 'id', 'role_id');
}
public function notifications()
{
return $this->hasMany(UserNotification::class);
}
public function adminActiveCompany()
{
return $this->hasOne(Company::class, 'id', 'admin_active_company_id');
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UserAccessLog extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'user_id',
'event',
'description',
'status'
];
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UserCompany extends Model
{
use HasFactory;
}

View File

@@ -0,0 +1,33 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UserEnquiry extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'user_id',
'name',
'phone',
'email',
'title',
'message',
'category',
'status',
'reply',
];
public function user()
{
return $this->belongsTo(User::class);
}
}

View File

@@ -0,0 +1,72 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UserNotification extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'user_id',
'title',
'description',
'category',
'target_id',
'target_type',
'is_read',
'is_admin',
'status',
];
public function getUrlAttribute()
{
$url = '';
if (strtolower($this->category) == 'service chat') {
$url = route('cms.chat');
$chat = ServiceChat::find($this->target_id);
if ($chat) {
$url = $url . '?user_id=' . $chat->user_id . '&company_id=' . $chat->company_id . '&chat_id=' . $this->target_id;
}
}
else if (strtolower($this->category) == 'bookkeeping queue') {
$url = route('cms.bookkeepings');
}
return $url;
}
public function getCategoryUrlAttribute()
{
$url = '';
if (strtolower($this->category) == 'service chat') {
$url = route('cms.chat');
}
else if (strtolower($this->category) == 'bookkeeping queue') {
$url = route('cms.bookkeepings');
}
return $url;
}
public function getImageUrlAttribute()
{
$url = '';
if (strtolower($this->category) == 'service chat') {
$url = asset('themes/tailwind/images/building.svg');
}
else if (strtolower($this->category) == 'bookkeeping queue') {
$ext = pathinfo($this->description, PATHINFO_EXTENSION);
$url = $ext == 'pdf' ? asset('themes/tailwind/images/pdf.svg') : asset('themes/tailwind/images/jpg.svg');
}
return $url;
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UserNotificationSetting extends Model
{
use HasFactory;
//
public const USER_PUSH_NOTIFICATION = 'user_push_notification';
public const USER_BOOKKEEPING_QUEUE = 'user_bookkeeping_queue';
public const USER_COMPANY_SECURTY_QUEUE = 'user_company_securty_queue';
public const USER_CHAT_ROOM = 'user_chat_room';
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'user_id',
'notification',
'is_active',
];
}

View File

@@ -0,0 +1,107 @@
<?php
namespace App\Providers;
use App\Models\Company;
// use App\Models\RelationshipUserCompany;
use App\Models\User;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\View;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
if ($this->app->environment() == 'production') {
$this->app['request']->server->set('HTTPS', true);
}
$this->setSchemaDefaultLength();
Validator::extend('base64image', function ($attribute, $value, $parameters, $validator) {
$explode = explode(',', $value);
$allow = ['png', 'jpg', 'svg', 'jpeg'];
$format = str_replace(
[
'data:image/',
';',
'base64',
],
[
'', '', '',
],
$explode[0]
);
// check file format
if (!in_array($format, $allow)) {
return false;
}
// check base64 format
if (!preg_match('%^[a-zA-Z0-9/+]*={0,2}$%', $explode[1])) {
return false;
}
return true;
});
view()->composer('partials.language_switcher', function ($view) {
$view->with('current_locale', app()->getLocale());
$view->with('available_locales', config('app.available_locales'));
});
View::composer(['theme::user.layouts.app'], function ($view) {
if (auth()->check()) {
$current_user = auth()->user();
$current_company = Company::find($current_user->current_active_company);
// $userCompanies = RelationshipUserCompany::where('user_id', $current_user->id)->pluck('company_id')->all();
// $companies = Company::findMany($userCompanies);
$view->with([
// 'companies' => $companies,
// 'userCompanies' => $userCompanies,
'current_company' => $current_company,
]);
}
});
// View::composer(['theme::layouts.app'], function ($view) {
// if (auth()->check()) {
// $current_user = auth()->user();
// $users = User::where('role_id', '>=', '11')->where('status', 'active')->get();
// $view->with([
// 'users' => $users,
// ]);
// }
// });
}
private function setSchemaDefaultLength(): void
{
try {
Schema::defaultStringLength(191);
}
catch (\Exception $exception){}
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Providers;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Gate;
class AuthServiceProvider extends ServiceProvider
{
/**
* The model to policy mappings for the application.
*
* @var array<class-string, class-string>
*/
protected $policies = [
// 'App\Models\Model' => 'App\Policies\ModelPolicy',
];
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
//
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Broadcast;
use Illuminate\Support\ServiceProvider;
class BroadcastServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Broadcast::routes();
require base_path('routes/channels.php');
}
}

View File

@@ -0,0 +1,42 @@
<?php
namespace App\Providers;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Event;
class EventServiceProvider extends ServiceProvider
{
/**
* The event to listener mappings for the application.
*
* @var array<class-string, array<int, class-string>>
*/
protected $listen = [
// Registered::class => [
// SendEmailVerificationNotification::class,
// ],
];
/**
* Register any events for your application.
*
* @return void
*/
public function boot()
{
//
}
/**
* Determine if events and listeners should be automatically discovered.
*
* @return bool
*/
public function shouldDiscoverEvents()
{
return false;
}
}

View File

@@ -0,0 +1,55 @@
<?php
namespace App\Providers;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\Facades\Route;
class RouteServiceProvider extends ServiceProvider
{
/**
* The path to the "home" route for your application.
*
* Typically, users are redirected here after authentication.
*
* @var string
*/
public const USER_HOME = '/user/dashboard';
public const USER_LOGIN = '/login';
public const ADMIN_HOME = '/cms/dashboard';
public const ADMIN_LOGIN = '/cms/login';
/**
* Define your route model bindings, pattern filters, and other route configuration.
*
* @return void
*/
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::middleware('api')
->prefix('api')
->group(base_path('routes/api.php'));
Route::middleware('web')
->group(base_path('routes/web.php'));
});
}
/**
* Configure the rate limiters for the application.
*
* @return void
*/
protected function configureRateLimiting()
{
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
});
}
}

20
app/helpers.php Normal file
View File

@@ -0,0 +1,20 @@
<?php
use App\Models\UserNotification;
if (! function_exists('storeUserNotification')) {
function storeUserNotification($userId, $title, $description = null, $category = null, $isAdmin = false, $targetId = null, $targetType = null, $status = 'success', $isRead = false)
{
return UserNotification::create([
'user_id' => $userId,
'title' => $title,
'description' => $description,
'category' => $category,
'target_id' => $targetId,
'target_type' => $targetType,
'is_read' => $isRead,
'is_admin' => $isAdmin,
'status' => $status,
]);
}
}

55
bootstrap/app.php Normal file
View File

@@ -0,0 +1,55 @@
<?php
/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| The first thing we will do is create a new Laravel application instance
| which serves as the "glue" for all the components of Laravel, and is
| the IoC container for the system binding all of the various parts.
|
*/
$app = new Illuminate\Foundation\Application(
$_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
);
/*
|--------------------------------------------------------------------------
| Bind Important Interfaces
|--------------------------------------------------------------------------
|
| Next, we need to bind some important interfaces into the container so
| we will be able to resolve them when needed. The kernels serve the
| incoming requests to this application from both the web and CLI.
|
*/
$app->singleton(
Illuminate\Contracts\Http\Kernel::class,
App\Http\Kernel::class
);
$app->singleton(
Illuminate\Contracts\Console\Kernel::class,
App\Console\Kernel::class
);
$app->singleton(
Illuminate\Contracts\Debug\ExceptionHandler::class,
App\Exceptions\Handler::class
);
/*
|--------------------------------------------------------------------------
| Return The Application
|--------------------------------------------------------------------------
|
| This script returns the application instance. The instance is given to
| the calling script so we can separate the building of the instances
| from the actual running of the application and sending responses.
|
*/
return $app;

2
bootstrap/cache/.gitignore vendored Executable file
View File

@@ -0,0 +1,2 @@
*
!.gitignore

1
database/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*.sqlite

View File

@@ -0,0 +1,34 @@
<?php
namespace Database\Factories;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class UserFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = User::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition(): array
{
static $password;
return [
'name' => $this->faker->name,
'email' => $this->faker->unique()->safeEmail,
'password' => $password ?: $password = bcrypt('secret'),
'remember_token' => Str::random(10),
];
}
}

424
lang/al/voyager.php Normal file
View File

@@ -0,0 +1,424 @@
<?php
return [
'date' => [
'last_week' => 'Javën e kaluar',
'last_year' => 'Viti i kaluar',
'this_week' => 'Kjo javë',
'this_year' => 'Këtë vit',
],
'generic' => [
'action' => 'Veprimi',
'actions' => 'Veprimet',
'add' => 'Shto',
'add_folder' => 'Shto Dosje',
'add_new' => 'Shto të ri',
'all_done' => 'Të gjitha të kryera',
'are_you_sure' => 'Jeni i sigurt',
'are_you_sure_delete' => 'Jeni i sigurt që doni të fshini',
'auto_increment' => 'Rritja automatike',
'browse' => 'Shfleto',
'builder' => 'Ndërtues',
'bulk_delete' => 'Largo bulk',
'bulk_delete_confirm' => 'Po, fshini këto',
'bulk_delete_nothing' => 'Ju nuk keni zgjedhur ndonjë gjë për të fshirë',
'cancel' => 'Anulo',
'choose_type' => 'Zgjidhni Lloji',
'click_here' => 'Kliko këtu',
'close' => 'Mbyll',
'compass' => 'Kompasë',
'created_at' => 'Krijuar në',
'custom' => 'Custom',
'dashboard' => 'Dashboard',
'database' => 'Baza e të dhënave',
'default' => 'Default',
'delete' => 'Fshije',
'delete_confirm' => 'Po, fshij atë!',
'delete_question' => 'Jeni i sigurt që dëshironi të fshini këtë',
'delete_this_confirm' => 'Po, fshij këtë',
'deselect_all' => 'Deselect All',
'download' => 'Shkarko',
'edit' => 'Edit',
'email' => 'E-mail',
'error_deleting' => 'Më vjen keq që duket se ka pasur një problem duke fshirë këtë',
'exception' => 'Përjashtim',
'featured' => 'Të zgjedhura',
'field_does_not_exist' => 'Fusha nuk ekziston',
'how_to_use' => 'Si të përdorni',
'index' => 'Indeksi',
'internal_error' => 'Gabim i brendshëm',
'items' => 'artikull (et)',
'keep_sidebar_open' => 'Yarr! Hidhni ankorat! (dhe mbani sidebar hapur) ',
'key' => 'Çelësi',
'last_modified' => 'Modifikuar e fundit',
'length' => 'Gjatësia',
'login' => 'Login',
'media' => 'Media',
'menu_builder' => 'Ndërtuesi i menysë',
'move' => 'Leviz',
'name' => 'Emri',
'new' => 'New',
'no' => 'Jo',
'no_thanks' => 'Jo faleminderit',
'not_null' => 'Jo Null',
'options' => 'Opsionet',
'password' => 'Fjalëkalimi',
'permissions' => 'Lejet',
'profile' => 'Profili',
'public_url' => 'URL publik',
'read' => 'Lexo',
'rename' => 'Riemërtoj',
'required' => 'Required',
'return_to_list' => 'Kthehu në listë',
'route' => 'Rruga',
'save' => 'Ruaj',
'search' => 'Kërko',
'select_all' => 'Zgjidh të gjitha',
'select_group' => 'Zgjidh grupin ekzistues ose Shto të ri',
'settings' => 'Cilësimet',
'showing_entries' => 'Duke treguar: nga në: të: të gjitha entrie | '
.'Showing: from to: të: të gjitha shënimet',
'submit' => 'Paraqesë',
'successfully_added_new' => 'U shtua me sukses të ri',
'successfully_deleted' => 'Deleted me sukses',
'successfully_updated' => 'Përditëso me sukses',
'timestamp' => 'Timestamp',
'title' => 'Titulli',
'type' => 'Lloji',
'unsigned' => 'Unsigned',
'unstick_sidebar' => 'Zhvidhos shiritin anësor',
'update' => 'Përditëso',
'update_failed' => 'Përditëso dështimi',
'upload' => 'Ngarko',
'url' => 'URL',
'view' => 'Shikoni',
'viewing' => 'Duke parë',
'yes' => 'Po',
'yes_please' => 'Po, Ju lutem',
],
'login' => [
'loggingin' => 'Identifikimi',
'signin_below' => 'Hyni më poshtë:',
'welcome' => 'Mirë se vini në Voyager. Adminja e zhdukur për Laravel ',
],
'profile' => [
'avatar' => 'Avatari',
'edit' => 'Edit My Profile',
'edit_user' => 'Edit User',
'password' => 'Fjalëkalimi',
'password_hint' => 'Lëreni bosh për të mbajtur të njëjtën',
'role' => 'Roli',
'user_role' => 'Roli i përdoruesit',
],
'settings' => [
'usage_help' => 'Ju mund të merrni vlerën e çdo cilësie kudo në faqen tuaj duke telefonuar',
'save' => 'Save Settings',
'new' => 'Vendosja e re',
'help_name' => 'Vendosja e emrit ex: Title Admin',
'help_key' => 'Vendosja e tastit ex: admin_title',
'help_option' => '(opsional, vlen vetëm për lloje të caktuara si kuti dropdown ose radio button)',
'add_new' => 'Shto vendosjen e re',
'delete_question' => 'A jeni i sigurt që doni të fshini: vendosjen e Vendosjes?',
'delete_confirm' => 'Po, fshij këtë cilësim',
'successfully_created' => 'Cilësimet e krijuara me sukses',
'successfully_saved' => 'Parametrat e ruajtura me sukses',
'successfully_deleted' => 'Vendosja me sukses e fshirë',
'already_at_top' => 'Kjo është tashmë në krye të listës',
'already_at_bottom' => 'Kjo tashmë është në fund të listës',
'key_already_exists' => 'Çelësi: çelësi tashmë ekziston',
'moved_order_up' => 'Kaluar: emri i vendosjes së rendit lart',
'moved_order_down' => 'Moved: rregullimi i emrit të rendit poshtë',
'successfully_removed' => 'Hiqet me sukses: vlera e emrit',
'group_general' => 'Përgjithshme',
'group_admin' => 'Admin',
'group_site' => 'Site',
'group' => 'Grupi',
'help_group' => 'Grupi ky përcaktim është caktuar për',
],
'media' => [
'add_new_folder' => 'Shto një dosje të re',
'audio_support' => 'Shfletuesi juaj nuk e mbështet elementin audio.',
'create_new_folder' => 'Krijo dosje të re',
'delete_folder_question' => 'Fshirja e një dosjeje do të heqë të gjitha skedarët '
.' dhe dosjet e përmbajtura brenda',
'destination_folder' => 'Folder Destinacioni',
'drag_drop_info' => 'Drag dhe rrëzo skedarët ose kliko më poshtë për të ngarkuar',
'error_already_exists' => 'Na vjen keq që ekziston një skedar / dosje me atë emër ekzistues në atë dosje.',
'error_creating_dir' => 'Duket sikur diçka e keqe ka shkuar keq në krijimin e direktorisë.'
.' kontrolloni lejet tuaja',
'error_deleting_file' => 'Na duket diçka e keqe që duket se ka shkuar gabim duke fshirë këtë skedar,'
.' ju lutem kontrolloni lejet',
'error_deleting_folder' => 'Duket sikur diçka e keqe ka shkuar keq kur fshihet'
.' kjo dosje kontrolloni lejet tuaja',
'error_may_exist' => 'Skedari ose Folderi mund të ekzistojnë tashmë me këtë emër. '
.'Ju lutem zgjidhni një emër tjetër ose fshini skedarin tjetër.',
'error_moving' => 'Na vjen keq që duket se ka një problem të lëvizë atë '
.'skedar / dosje, ju lutemi bëni sigurohuni që keni lejet e duhura.',
'error_uploading' => 'Ngarko dështoj: Gabim i panjohur ndodhi!',
'folder_exists_already' => 'Na vjen keq se dosja tashmë ekziston, ju lutem'
.' fshini atë dosje nëse dëshironi për ta rikrijuar atë',
'image_does_not_exist' => 'Imazhi nuk ekziston',
'image_removed' => 'Imazhi i hequr',
'library' => 'Biblioteka e Medias',
'loading' => 'LOADING YOUR MEDIA FILES',
'move_file_folder' => 'Move File / Folder',
'new_file_folder' => 'Emri i ri i skedarit / folderit',
'new_folder_name' => 'Emri i ri i dosjes',
'no_files_here' => 'Asnjë fotografi këtu.',
'no_files_in_folder' => 'Asnjë fotografi në këtë dosje.',
'nothing_selected' => 'Nuk ka skedar ose dosje të zgjedhur',
'rename_file_folder' => 'Rename File / Folder',
'success_uploaded_file' => 'Skedari i ri i ngarkuar me sukses!',
'success_uploading' => 'Ngarkuar me sukses!',
'uploading_wrong_type' => 'Ngarko dështoj: Formati i skedarit të '
.'pambështetur ose Është tepër i madh për të ngarkuar!',
'video_support' => 'Shfletuesi juaj nuk e mbështet videon.',
'crop' => 'Crop',
'crop_and_create' => 'Crop & Krijo',
'crop_override_confirm' => 'Do të anashkalojë imazhin origjinal, a jeni i sigurt?',
'crop_image' => 'Imazhi i prerë',
'success_crop_image' => 'Kulloni me sukses imazhin',
'height' => 'Lartësia:',
'width' => 'Gjerësia:',
],
'menu_builder' => [
'color' => 'Ngjyra në RGB ose magji (opsionale)',
'color_ph' => 'Ngjyra (ex. #ffffff ose rgb (255, 255, 255)',
'create_new_item' => 'Krijo një artikull të ri të menysë',
'delete_item_confirm' => 'Po, fshini këtë artikull menu',
'delete_item_question' => 'A jeni i sigurt që doni ta fshini këtë artikull të menusë?',
'drag_drop_info' => 'Zvarriteni dhe hiqni menunë Artikujt e mëposhtëm për të riorganizuar ato.',
'dynamic_route' => 'Rruga dinamike',
'edit_item' => 'Modifiko artikullin e menysë',
'icon_class' => 'Klasa e Font Icon për Item Menu (Përdorni një',
'icon_class2' => 'Klasa e Fonteve Voyager)',
'icon_class_ph' => 'Klasa e ikonave (opsionale)',
'item_route' => 'Rruga për artikullin e menysë',
'item_title' => 'Titulli i artikullit të menysë',
'link_type' => 'Lloji i lidhjes',
'new_menu_item' => 'Artikulli i ri i menysë',
'open_in' => 'Hapni',
'open_new' => 'New Tab / Window',
'open_same' => 'Same Tab / Window',
'route_parameter' => 'Parametrat e rrugës (nëse ka)',
'static_url' => 'URL statik',
'successfully_created' => 'Krijoi me sukses artikullin e ri të menysë.',
'successfully_deleted' => 'U zhduk me sukses artikullin e menysë.',
'successfully_updated' => 'U përditësua me sukses artikulli i menusë.',
'updated_order' => 'Rendi i menysë i përditësuar me sukses.',
'url' => 'URL për artikullin e menysë',
'usage_hint' => 'Ju mund të nxjerrni një menu kudo në faqen tuaj duke '
.'telefonuar Mund të dalni këtë menu diku në faqen tënde duke telefonuar',
],
'post' => [
'category' => 'Kategoria postare',
'content' => 'Post Content',
'details' => 'Detajet e Postës',
'excerpt' => 'Ekstrakt <i vogël> Përshkrimi i vogël i këtij postimi </ small>',
'image' => 'Imazhi i postës',
'meta_description' => 'Meta Description',
'meta_keywords' => 'Meta Keywords',
'new' => 'Krijo postë të re',
'seo_content' => 'Përmbajtja SEO',
'seo_title' => 'Titulli i Seo',
'slug' => 'Slug URL',
'status' => 'Statusi i Postës',
'status_draft' => 'draft',
'status_pending' => 'në pritje',
'status_published' => 'publikuar',
'title' => 'Post Titulli',
'title_sub' => 'Titulli për postin tuaj',
'update' => 'Update Post',
],
'database' => [
'add_bread' => 'Shto BREAD në këtë tabelë',
'add_new_column' => 'Shto shtyllë të re',
'add_softdeletes' => 'Shto butona të fshira',
'add_timestamps' => 'Shto Timestamps',
'already_exists' => 'ekziston tashmë',
'already_exists_table' => 'Tabela: tabela tashmë ekziston',
'bread_crud_actions' => 'BREAD / Actions',
'bread_info' => 'BREAD info',
'column' => 'Column',
'composite_warning' => 'Paralajmërim: kjo kolonë është pjesë e një indeksi të përbërë',
'controller_name' => 'Emri i Kontrollorit',
'controller_name_hint' => 'ex. Kontrolluesi i faqes, nëse bosh do të përdorë kontrollorin e BREAD',
'create_bread_for_table' => 'Krijo BREAD për: table table',
'create_migration' => 'Krijo migrim për këtë tryezë?',
'create_model_table' => 'Krijo model për këtë tabelë?',
'create_new_table' => 'Krijo tabelë të re',
'create_your_new_table' => 'Krijo tabelën tënde të re',
'default' => 'Default',
'delete_bread' => 'Fshi BREAD',
'delete_bread_before_table' => 'Ju lutemi sigurohuni që të hiqni BREAD në këtë '
.'tabelë përpara se të fshini tabelën.',
'delete_table_bread_conf' => 'Po, hiq BREAD',
'delete_table_bread_quest' => 'Jeni i sigurt që dëshironi të fshini BREAD për: tabelën e tabelës?',
'delete_table_confirm' => 'Po, fshij këtë tabelë',
'delete_table_question' => 'A jeni i sigurt që doni të fshini: tabelën e tabelës?',
'description' => 'Përshkrimi',
'display_name' => 'Emri i shfaqjes',
'display_name_plural' => 'Shfaq Emri (Plural)',
'display_name_singular' => 'Shfaq emrin (Singular)',
'edit_bread' => 'Edit BREAD',
'edit_bread_for_table' => 'Ndrysho BREAD për: table table',
'edit_rows' => 'Redakto rreshtave për: tabelën e tabelës më poshtë',
'edit_table' => 'Ndrysho tabelën e tabelës më poshtë',
'edit_table_not_exist' => 'Tabela që dëshironi të redaktoni nuk ekziston',
'error_creating_bread' => 'Më vjen keq që duket se mund të ketë pasur një '
.'problem në krijimin e këtij brezi',
'error_removing_bread' => 'Më vjen keq që duket se ka pasur një problem'
.' duke hequr këtë BREAME',
'error_updating_bread' => 'Më vjen keq që duket se mund të ketë pasur '
.'një problem në përditësimin e këtij BREAK ',
'extra' => 'Extra',
'field' => 'Fusha',
'field_safe_failed' => 'Dështoi në ruajtjen e fushës: fushë, ne do të kthehemi prapa!',
'generate_permissions' => 'Generate Permissions',
'icon_class' => 'Ikona për t\'u përdorur për këtë tabelë',
'icon_hint' => 'Icon (opsional) Përdorni një',
'icon_hint2' => 'Klasa Font Voyager',
'index' => 'INDEKSI',
'input_type' => 'Lloji i hyrjes',
'key' => 'Çelësi',
'model_class' => 'Emri i emrit të modelit',
'model_name' => 'Emri i modelit',
'model_name_ph' => 'ex. \ App \ User, nëse majtas bosh do të përpiqet dhe '
.'të përdorë emrin e tabelës ',
'name_warning' => 'Ju lutemi emri kolonën para se të shtoni një indeks',
'no_composites_warning' => 'Kjo tabelë ka indekse të përbërë. Ju lutem vini re se ato nuk janë '
.'të mbështetura për momentin. Kini kujdes kur përpiqeni të shtoni/hiqni indekset',
'null' => 'Null',
'optional_details' => 'Detajet Opsionale',
'policy_class' => 'Emri i klasës së politikës',
'policy_name' => 'Emri i politikave',
'policy_name_ph' => 'ex. \ App \ Policies \ UserPolicy, nëse bosh bosh '
.'do të përpiqet dhe të përdorë parazgjedhjen ',
'primary' => 'FILLORE',
'server_pagination' => 'Paraqitja në anë të serverit',
'success_create_table' => 'Krijohet me sukses: tabela e tabelës',
'success_created_bread' => 'Krijoi me sukses krijesën e re',
'success_delete_table' => 'fshihet me sukses: tabela e tabelës',
'success_remove_bread' => 'U largua me sukses BREAD nga: tipi i të dhënave',
'success_update_bread' => 'Azhurohet me sukses: tipi i të dhënave BREAD',
'success_update_table' => 'Përditësuar me sukses: tabela e tabelës',
'table_actions' => 'Veprimet e tabelave',
'table_columns' => 'Kolona e tabelave',
'table_has_index' => 'Tabela tashmë ka një indeks primar.',
'table_name' => 'Emri i tabelës',
'table_no_columns' => 'Tabela nuk ka kollona ...',
'type' => 'Lloji',
'type_not_supported' => 'Ky lloj nuk është i mbështetur',
'unique' => 'UNIKË',
'unknown_type' => 'Tip i panjohur',
'update_table' => 'Tabela e përditësimit',
'url_slug' => 'Slug URL (duhet të jetë unik)',
'url_slug_ph' => 'Slug URL (ex posts)',
'visibility' => 'Shikueshmëria',
],
'dimmer' => [
'page' => 'Faqe | Faqet',
'page_link_text' => 'Shikoni të gjitha faqet',
'page_text' => 'Ju keni: count: string në databazën tuaj. Klikoni butonin më poshtë'
.' për të parë të gjitha faqet. ',
'post' => 'Posta | Postime',
'post_link_text' => 'Shiko të gjitha postimet',
'post_text' => 'Ju keni: count: string në databazën tuaj. Klikoni butonin '
.'më poshtë për të parë të gjitha postimet. ',
'user' => 'Përdorues',
'user_link_text' => 'Shikoni të gjithë përdoruesit',
'user_text' => 'Ju keni: count: string në databazën tuaj. Klikoni butonin'
.' më poshtë për të parë të gjithë përdoruesit. ',
],
'form' => [
'field_password_keep' => 'Lëreni bosh për të mbajtur të njëjtën',
'field_select_dd_relationship' => 'Sigurohuni që të konfiguroni marrëdhënien e '
.'duhur në metodën e metodës së klasa e klasës.',
'the :class class.',
'type_checkbox' => 'Kutia e Kontrollit',
'type_codeeditor' => 'Editor Kodi',
'type_file' => 'Skedar',
'type_image' => 'Image',
'type_radiobutton' => 'Radio Button',
'type_richtextbox' => 'Rich Textbox',
'type_selectdropdown' => 'Zgjidh Dropdown',
'type_textarea' => 'Zona e tekstit',
'type_textbox' => 'Kutia e tekstit',
],
// DataTable translations from: https://github.com/DataTables/Plugins/tree/master/i18n
'datatable' => [
'sEmptyTable' => 'Nuk ka të dhëna të disponueshme në tabelë',
'sInfo' => 'Duke shfaqur _START_ me _END_ të _TOTAL_ entries',
'sInfoEmpty' => 'Duke shfaqur 0 deri në 0 nga 0 shënime',
'sInfoFiltered' => '(filtruar nga hyrjet totale _MAX_)',
'sInfoPostFix' => '',
'sInfoThousands' => ',',
'sLengthMenu' => 'Shfaq _MENU_ entries',
'sLoadingRecords' => 'Loading ...',
'sProcessing' => 'Përpunimi ...',
'sSearch' => 'Kërko:',
'sZeroRecords' => 'Nuk u gjetën shënime përputhëse',
'oPaginate' => [
'sFirst' => 'Së pari',
'sLast' => 'I fundit',
'sNext' => 'Tjetra',
'sPrevious' => 'I mëparshmi',
],
'oAria' => [
'sSortAscending' => ': aktivizoni për të renditur kolonën në ngjitje',
'sSortDescending' => ': aktivizo për të renditur kolonën zbritëse',
],
],
'theme' => [
'footer_copyright' => 'Bërë me <i class = "voyager-heart"> </ i> nga',
'footer_copyright2' => 'Bërë me rum dhe rum më shumë',
],
'json' => [
'invalid' => 'Json i pavlefshëm',
'invalid_message' => 'Duket sikur keni futur disa JSON të pavlefshëm.',
'valid' => 'Valid Json',
'validation_errors' => 'Gabimet e validimit',
],
'analytics' => [
'by_pageview' => 'Nga pageview',
'by_sessions' => 'Nga sesionet',
'by_users' => 'Nga përdoruesit',
'no_client_id' => 'Për të parë analitikën që do t\'ju nevojitet për të marrë një ID '
.'të klientit të analytics google dhe shtoni në cilësimet tuaja për kodin '
.'<code>google_analytics_client_id</code>. Merrni çelësin tuaj në tastierën zhvilluese të Google: ',
'set_view' => 'Zgjidh një pamje',
'this_vs_last_week' => 'Këtë javë ndaj javës së kaluar',
'this_vs_last_year' => 'Këtë vit kundër vitit të kaluar',
'top_browsers' => 'Shfletuesit kryesorë',
'top_countries' => 'Vendet më të mira',
'various_visualizations' => 'Vizualizime të ndryshme',
],
'error' => [
'symlink_created_text' => 'Ne sapo krijuam linkun që mungon për ju.',
'symlink_created_title' => 'Sjellja e humbur e ruajtjes u krijua',
'symlink_failed_text' => 'Ne nuk arritëm të gjeneronim simbolin e humbur për aplikacionin tënd.'
.' Duket se ofruesi juaj i pritjes nuk e mbështet atë.',
'symlink_failed_title' => 'Nuk mundi të krijoj simbolin e ruajtjes së mungesës',
'symlink_missing_button' => 'Fix it',
'symlink_missing_text' => 'Ne nuk mund të gjejmë një symlink të ruajtjes. '
.'Kjo mund të shkaktojë probleme me ngarkimi i skedarëve të medias nga shfletuesi.',
'loading media files from the browser.',
'symlink_missing_title' => 'Skeda e munguar e ruajtjes',
],
];

376
lang/ar/voyager.php Normal file
View File

@@ -0,0 +1,376 @@
<?php
return [
'date' => [
'last_week' => 'الأسبوع الماضي',
'last_year' => 'السنة الماضية',
'this_week' => 'هذا الأسبوع',
'this_year' => 'هذا العام',
],
'generic' => [
'action' => 'إجراء',
'actions' => 'الإجراءات',
'add' => 'إضافة',
'add_folder' => 'إضافة مجلد',
'add_new' => 'إضافة جديد',
'all_done' => 'تم الكل',
'are_you_sure' => 'هل أنت واثق',
'are_you_sure_delete' => 'هل أنت متأكد أنك تريد الحذف',
'auto_increment' => 'زيادة تلقائية',
'browse' => 'استعراض',
'builder' => 'البناء',
'cancel' => 'إلغاء',
'choose_type' => 'اختر النوع',
'click_here' => 'اضغط هنا',
'close' => 'إغلاق',
'compass' => 'البوصلة',
'created_at' => 'تاريخ الإنشاء',
'custom' => 'معدل',
'dashboard' => 'لوحة التحكم',
'database' => 'قاعدة البيانات',
'default' => 'افتراضي',
'delete' => 'حذف',
'delete_confirm' => 'نعم، احذفه!',
'delete_question' => 'هل أنت متأكد أنك تريد الحذف',
'delete_this_confirm' => 'نعم، احذف',
'deselect_all' => 'إلغاء تحديد الكل',
'download' => 'تحميل',
'edit' => 'تعديل',
'email' => 'البريد الإلكتروني',
'error_deleting' => 'عذرا، يبدو أنه حدثت مشكلة أثناء الحذف',
'exception' => 'استثناء',
'featured' => 'مميز',
'field_does_not_exist' => 'الحقل غير موجود',
'how_to_use' => 'كيفة الاستخدام',
'index' => 'فهرس',
'internal_error' => 'خطأ داخلي',
'items' => 'عناصر',
'keep_sidebar_open' => 'الحفاظ على فتح الشريط الجانبي',
'key' => 'مفتاح',
'last_modified' => 'آخر تعديل',
'length' => 'الطول',
'login' => 'تسجيل الدخول',
'media' => 'الوسائط',
'menu_builder' => 'منشئ القوائم',
'move' => 'نقل',
'name' => 'الاسم',
'new' => 'جديد',
'no' => 'لا',
'no_thanks' => 'لا شكراً',
'not_null' => 'غير فارغة',
'options' => 'خيارات',
'password' => 'كلمه السر',
'permissions' => 'الصلاحيات',
'profile' => 'الملف الشخصي',
'public_url' => 'الرابط URL المنشور',
'read' => 'معاينة',
'rename' => 'إعادة تسمية',
'required' => 'مطلوب',
'return_to_list' => 'العودة إلى القائمة',
'route' => 'Route الرابط',
'save' => 'حفظ',
'search' => 'بحث',
'select_all' => 'تحديد الكل',
'settings' => 'الإعدادت',
'showing_entries' => 'عرض :from إلى :to من :all عنصر|عرض :from إلى :to من :all عناصر',
'submit' => 'إرسال',
'successfully_added_new' => 'تمت إضافة جديد بنجاح',
'successfully_deleted' => 'تم الحذف بنجاح',
'successfully_updated' => 'تم التحديث بنجاح',
'timestamp' => 'صيغة التوقيت',
'title' => 'العنوان',
'type' => 'النوع',
'unsigned' => 'غير سالبة',
'unstick_sidebar' => 'إلغاء تثبيت الشريط الجانبي',
'update' => 'تحديث',
'update_failed' => 'فشل التحديث',
'upload' => 'رفع',
'url' => 'URL الرابط',
'view' => 'معاينة',
'viewing' => 'معاينة',
'yes' => 'نعم',
'yes_please' => 'نعم، من فضلك',
],
'login' => [
'loggingin' => 'دخول',
'signin_below' => 'تسجيل الدخول :',
'welcome' => 'مرحبا بكم في Voyager. لوحة التحكم المكملة للارافيل',
],
'profile' => [
'avatar' => 'الصورة الرمزية',
'edit' => 'تعديل',
'edit_user' => 'تعديل المستخدم',
'password' => 'كلمه السر',
'password_hint' => 'اتركها فارغة إذا لم ترد التعديل عليها',
'role' => 'الدور',
'user_role' => 'دور المستخدم',
],
'settings' => [
'usage_help' => 'يمكنك الحصول على قيمة أي إعداد في أي مكان في موقعك عن طريق استخدام',
'save' => 'احفظ الإعدادات',
'new' => 'إعداد جديد',
'help_name' => 'اسم الإعداد مثال : Admin Title',
'help_key' => 'مفتاح الإعداد مثال : admin_title',
'help_option' => '(اختياري، ينطبق فقط على أنواع معينة مثل القائمة المنسدلة أو زر الاختيار)',
'add_new' => 'إضافة إعداد جديد',
'delete_question' => 'هل تريد بالتأكيد حذف الإعداد :setting ؟',
'delete_confirm' => 'نعم، حذف هذا الإعداد',
'successfully_created' => 'تم إنشاء الإعدادات بنجاح',
'successfully_saved' => 'تم حفظ الإعدادات بنجاح',
'successfully_deleted' => 'تم حذف الإعداد بنجاح',
'already_at_top' => 'موجود بالفعل في أعلى القائمة',
'already_at_bottom' => 'موجود بالفعل في أسفل القائمة',
'moved_order_up' => 'القيمة :name تم نقلها إلى أعلى',
'moved_order_down' => 'القيمة :name تم نقلها إلى أسفل',
'successfully_removed' => 'تم إزالة :name بنجاح',
],
'media' => [
'add_new_folder' => 'إضافة مجلد جديد',
'audio_support' => 'متصفحك لا يدعم عنصر الصوت.',
'create_new_folder' => 'إنشاء مجلد جديد',
'delete_folder_question' => 'سيؤدي حذف مجلد إلى إزالة جميع الملفات والمجلدات الموجودة في داخله',
'destination_folder' => 'مجلد الوجهة',
'drag_drop_info' => 'يمكنك سحب الملفات وإفلاتها أو النقر أدناه لرفعها',
'error_already_exists' => 'عذراً، يوجد بالفعل ملف/مجلد بهذا الاسم في هذا المجلد.',
'error_creating_dir' => 'عذراً يبدو أن هناك خطأ في إنشاء المجلد، يرجى التحقق من صلاحياتك',
'error_deleting_file' => 'عذراً، يبدو أنه حدث خطأ عند حذف هذا الملف، يرجى التحقق من صلاحياتك',
'error_deleting_folder' => 'عذراً، يبدو أنه حدث خطأ عند حذف هذا المجلد، يرجى التحقق من صلاحياتك',
'error_may_exist' => 'قد يكون هناك ملف أو مجلد موجود بالفعل بهذا الاسم. الرجاء اختيار اسم آخر أو حذف الملف الآخر.',
'error_moving' => 'عذراً، يبدو أنه حصلت مشكلة أثناء نقل هذا الملف/المجلد، يرجى التأكد من أن لديك الصلاحيات الصحيحة.',
'error_uploading' => 'أخفق الرفع: حدث خطأ غير معلوم!',
'folder_exists_already' => 'عذراً، هذا المجلد موجود بالفعل، يرجى حذف هذا المجلد إذا كنت ترغب في إعادة إنشائه',
'image_does_not_exist' => 'الصورة غير موجودة',
'image_removed' => 'تمت إزالة الصورة',
'library' => 'مكتبة الوسائط',
'loading' => 'تحميل ملفات الوسائط الخاصة بك',
'move_file_folder' => 'نقل ملف/مجلد',
'new_file_folder' => 'اسم ملف/مجلد جديد',
'new_folder_name' => 'اسم مجلد جديد',
'no_files_here' => 'لا توجد ملفات هنا.',
'no_files_in_folder' => 'لا توجد ملفات في هذا المجلد.',
'nothing_selected' => 'لم يتم تحديد ملف أو مجلد',
'rename_file_folder' => 'إعادة تسمية ملف/مجلد',
'success_uploaded_file' => 'تم رفع ملف جديد بنجاح!',
'success_uploading' => 'تم رفع الصورة بنجاح!',
'uploading_wrong_type' => 'فشل الرفع: تنسيق الملف غير مدعوم أو أنه كبير جدا لرفعه!',
'video_support' => 'متصفحك الحالي لا يدعم تشغيل الفيديو.',
],
'menu_builder' => [
'color' => 'اللون بصيغة RGB أو hex (اختياري)',
'color_ph' => 'اللون (مثل #ffffff أو rgb(255, 255, 255)',
'create_new_item' => 'إنشاء عنصر جديد',
'delete_item_confirm' => 'نعم، حذف هذا العنصر من القائمة',
'delete_item_question' => 'هل تريد بالتأكيد حذف هذا العنصر من القائمة؟',
'drag_drop_info' => 'سحب وإسقاط عناصر القائمة أدناه لإعادة ترتيبها.',
'dynamic_route' => 'موجه ديناميكي',
'edit_item' => 'تعديل عنصر القائمة',
'icon_class' => 'المعرف (class) لأيقونة عنصر القائمة (استخدم',
'icon_class2' => 'معرفات أيقونات فوياجر</a>)',
'icon_class_ph' => 'معرف الأيقونة (اختياري)',
'item_route' => 'Route الخاص بعنصر القائمة',
'item_title' => 'عنوان عنصر القائمة',
'link_type' => 'نوع الرابط',
'new_menu_item' => 'عنصر جديد',
'open_in' => 'فتح في',
'open_new' => 'تبويب/نافذة جديدة',
'open_same' => 'نفس التبويب/النافذة',
'route_parameter' => 'المتغيرات الخاصة بال Route (إذا وجدت)',
'static_url' => 'رابط URL ثابت',
'successfully_created' => 'تم إنشاء عنصر جديد فى القائمة بنجاح.',
'successfully_deleted' => 'تم حذف عنصر القائمة بنجاح.',
'successfully_updated' => 'تم تحديث عنصر فى القائمة بنجاح.',
'updated_order' => 'تم تحديث ترتيب القائمة بنجاح.',
'url' => 'رابط URL لعنصر القائمة',
'usage_hint' => 'يمكنك عرض قائمة في أي مكان في موقعك من طريق استدعاء | يمكنك عرض هذه القائمة في أي مكان على موقعك عن طريق استدعاء',
],
'post' => [
'category' => 'قسم المقال',
'content' => 'محتويات المقال',
'details' => 'تفاصيل المقال',
'excerpt' => 'مقتطف <small> وصف صغير لهذا المقال </small>',
'image' => 'صورة المقال',
'meta_description' => 'وصف',
'meta_keywords' => 'كلمات دلالية',
'new' => 'إنشاء مقال جديد',
'seo_content' => 'محتوى متوافق مع محركات البحث SEO',
'seo_title' => 'عنوان SEO',
'slug' => 'الرابط URL',
'status' => 'حالة المقال',
'status_draft' => 'مسودة',
'status_pending' => 'معلق',
'status_published' => 'منشور',
'title' => 'عنوان المقال',
'title_sub' => 'عنوان مقالك',
'update' => 'تحديث المقال',
],
'database' => [
'add_bread' => 'أضف BREAD إلى هذا الجدول',
'add_new_column' => 'إضافة عمود جديد',
'add_softdeletes' => 'إضافة الحذف الناعم soft Deletes',
'add_timestamps' => 'إضافة الطوابع الزمنية Timestamps',
'already_exists' => 'موجود بالفعل',
'already_exists_table' => 'الجدول :table موجود بالفعل',
'bread_crud_actions' => 'إجراءات BREAD/CRUD',
'bread_info' => 'معلومات ال BREAD',
'column' => 'عمود',
'composite_warning' => 'تحذير: هذا العمود جزء من فهرس مركب',
'controller_name' => 'اسم وحدة التحكم Controller',
'controller_name_hint' => 'مثال PageController, إذا تركت فارغة ستستخدم ال BREAD Controller',
'create_bread_for_table' => 'إنشاء ال BREAD للجدول :table',
'create_migration' => 'هل تريد إنشاء ملف تحديث قاعدة البيانات لهذا الجدول؟',
'create_model_table' => 'إنشاء نموذج Model لهذا الجدول؟',
'create_new_table' => 'إنشاء جدول جديد',
'create_your_new_table' => 'إنشاء جدولك الجديد',
'default' => 'افتراضي',
'delete_bread' => 'حذف ال BREAD',
'delete_bread_before_table' => 'الرجاء التأكد من إزالة ال BREAD الخاصة بهذا الجدول قبل حذف الجدول.',
'delete_table_bread_conf' => 'نعم، إزالة ال BREAD',
'delete_table_bread_quest' => 'هل أنت متأكد من حذف ال BREAD للجدول :table ؟',
'delete_table_confirm' => 'نعم، احذف هذا الجدول',
'delete_table_question' => 'هل تريد بالتأكيد حذف الجدول :table ؟',
'description' => 'الوصف',
'display_name' => 'اسم العرض',
'display_name_plural' => 'اسم العرض (جمع)',
'display_name_singular' => 'اسم العرض (مفرد)',
'edit_bread' => 'تعديل ال BREAD',
'edit_bread_for_table' => 'تعديل ال BREAD للجدول :table',
'edit_rows' => 'تعديل الصفوف للجدول :table أدناه',
'edit_table' => 'تعديل الجدول :table أدناه',
'edit_table_not_exist' => 'الجدول الذي تريد تعديله غير موجود',
'error_creating_bread' => 'عذراً، يبدو أن هناك مشكلة في إنشاء هذا ال BREAD',
'error_removing_bread' => 'عذراً، يبدو أنه حدثت مشكلة أثناء إزالة ال BREAD',
'error_updating_bread' => 'عذرا، يبدو أنه قد حدثت مشكلة أثناء تحديث هذا ال BREAD',
'extra' => 'إضافي',
'field' => 'حقل',
'field_safe_failed' => 'أخفق حفظ :field سيتم التراجع!',
'generate_permissions' => 'توليد الصلاحيات',
'icon_class' => 'رمز لاستخدامه لهذا الجدول',
'icon_hint' => 'رمز (اختياري) استخدم',
'icon_hint2' => 'معرفات أيقونات فوياجر',
'index' => 'فهرس',
'input_type' => 'نوع الإدخال',
'key' => 'مفتاح',
'model_class' => 'اسم فئة النموذج Model Class',
'model_name' => 'اسم النموذج Model',
'model_name_ph' => 'مثال. \App\Models\User, إذا تركت فارغة ستستخدم اسم الجدول',
'name_warning' => 'يرجى تسمية العمود قبل إضافة فهرس',
'no_composites_warning' => 'يحتوي هذا الجدول على فهارس مركبة. يرجى ملاحظة أنها غير معتمدة في الوقت الراهن. كن حذرا عند محاولة إضافة / إزالة الفهارس.',
'null' => 'Null',
'optional_details' => 'تفاصيل اختيارية',
'primary' => 'اساسي Primary',
'server_pagination' => 'ترقيم الصفحات من جانب الخادم',
'success_create_table' => 'تم إنشاء الجدول :table بنجاح',
'success_created_bread' => 'تم إنشاء BREAD بنجاح',
'success_delete_table' => 'تم حذف الجدول :table بنجاح',
'success_remove_bread' => 'تم إزالة ال BREAD من :datatype بنجاح',
'success_update_bread' => 'تم تحديث ال BREAD الخاصة ب :datatype بنجاح',
'success_update_table' => 'تم تحديث الدول :table بنجاح',
'table_actions' => 'إجراءات الجدول',
'table_columns' => 'أعمدة الجدول',
'table_has_index' => 'يحتوي الجدول بالفعل على فهرس أساسي.',
'table_name' => 'اسم الجدول',
'table_no_columns' => 'لا يحتوي الجدول على أعمدة ...',
'type' => 'النوع',
'type_not_supported' => 'هذا النوع غير معتمد',
'unique' => 'فريد',
'unknown_type' => 'نوع غير معروف',
'update_table' => 'تحديث الجدول',
'url_slug' => 'رابط URL (يجب أن يكون فريد)',
'url_slug_ph' => 'رابط URL (مثل posts)',
'visibility' => 'الظهور',
],
'dimmer' => [
'page' => 'صفحة|صفحات',
'page_link_text' => 'عرض جميع الصفحات',
'page_text' => 'لديك :count :string في قاعدة البيانات الخاصة بك. انقر على الزر أدناه لعرض جميع الصفحات.',
'post' => 'مقالة|مقالات',
'post_link_text' => 'عرض جميع المقالات',
'post_text' => 'لديك :count :string في قاعدة البيانات الخاصة بك. انقر على الزر أدناه لعرض جميع المقالات.',
'user' => 'عضو|أعضاء',
'user_link_text' => 'عرض جميع المستخدمين',
'user_text' => 'لديك :count :string في قاعدة البيانات الخاصة بك. انقر على الزر أدناه لعرض جميع المستخدمين.',
],
'form' => [
'field_password_keep' => 'اتركه فارغ لعدم التعديل',
'field_select_dd_relationship' => 'تأكد من إعداد العلاقة المناسبة في الطريقة :method الخاصة بالمعرف :class',
'type_checkbox' => 'مربع اختيار Checkbox',
'type_codeeditor' => 'محرر أكواد Code Editor',
'type_file' => 'ملف',
'type_image' => 'صورة',
'type_radiobutton' => 'زر اختيار من متعدد Radio Button',
'type_richtextbox' => 'مربع نص منسق Rich Textbox',
'type_selectdropdown' => 'قائمة تحديد منسدلة Dropdown',
'type_textarea' => 'منطقة نص Text Area',
'type_textbox' => 'مربع نص Text Box',
],
// DataTable translations from: https://github.com/DataTables/Plugins/tree/master/i18n
'datatable' => [
'sEmptyTable' => 'لا تتوفر بيانات في هذا الجدول',
'sInfo' => 'عرض من _START_ إلى _END_ من مجموع _TOTAL_ عنصر',
'sInfoEmpty' => 'عرض عناصر 0 إلى 0 من مجموع 0 عنصر',
'sInfoFiltered' => '(تمت تصفية من مجموع _MAX_ عناصر)',
'sInfoPostFix' => '',
'sInfoThousands' => ',',
'sLengthMenu' => 'عرض _MENU_ عنصر',
'sLoadingRecords' => 'جار التحميل...',
'sProcessing' => 'جار المعالجة...',
'sSearch' => 'بحث:',
'sZeroRecords' => 'لم يتم العثور على سجلات مطابقة',
'oPaginate' => [
'sFirst' => 'الأول',
'sLast' => 'الأخير',
'sNext' => 'التالي',
'sPrevious' => 'السابق',
],
'oAria' => [
'sSortAscending' => ': فعل لترتيب العمود تصاعديا',
'sSortDescending' => ': فعل لترتيب العمود تنازليا',
],
],
'theme' => [
'footer_copyright' => 'صنعت بـ <i class="voyager-heart"></i> بواسطة',
'footer_copyright2' => 'مصنوعة باستخدام الكثير من القهوة والشاي بالنعناع',
],
'json' => [
'invalid' => 'Json غير صالح',
'invalid_message' => 'يبدو أنك عرضت بعض Json الغير صالحة.',
'valid' => 'Json صالح',
'validation_errors' => 'أخطاء أثناء التحقق',
],
'analytics' => [
'by_pageview' => 'حسب المشاهدات',
'by_sessions' => 'حسب الجلسات',
'by_users' => 'حسب المستخدمين',
'no_client_id' => 'لعرض التحليلات، ستحتاج إلى الحصول على معرف عميل google analytics وإضافته إلى إعدادات المفتاح <code> google_analytics_client_id </code>. احصل على المفتاح من لوحة تحكم مطوري جوجل:',
'set_view' => 'حدد طريقة العرض',
'this_vs_last_week' => 'هذا الأسبوع ضد الأسبوع الماضي',
'this_vs_last_year' => 'هذا العام ضد العام الماضي',
'top_browsers' => 'أفضل المتصفحات',
'top_countries' => 'أعلى البلدان',
'various_visualizations' => 'تصورات مختلفة',
],
'error' => [
'symlink_created_text' => 'لقد أنشأنا للتو الاختصار symlink المفقود.',
'symlink_created_title' => 'تم إنشاء الاختصار المفقود symlink إلى storage',
'symlink_failed_text' => 'فشلنا في إنشاء الاختصار المفقود في تطبيقك. يبدو أن مزود خدمة الاستضافة لديك لا يدعمه.',
'symlink_failed_title' => 'تعذر إنشاء الاختصار المفقود symlink إلى مجلد التخزين',
'symlink_missing_button' => 'إصلاح المشكلة',
'symlink_missing_text' => 'لم نتمكن من العثور على اختصار symlink الى مجلد التخزين. قد يتسبب هذا في حدوث مشكلات في تحميل ملفات الوسائط من المتصفح.',
'symlink_missing_title' => 'الاختصار symlink إلى مجلد التخزين مفقود',
],
];

414
lang/de/voyager.php Normal file
View File

@@ -0,0 +1,414 @@
<?php
return [
'date' => [
'last_week' => 'Letzte Woche',
'last_year' => 'Letztes Jahr',
'this_week' => 'Diese Woche',
'this_year' => 'Dieses Jahr',
],
'generic' => [
'action' => 'Aktion',
'actions' => 'Aktionen',
'add' => 'Hinzufügen',
'add_folder' => 'Ordner Hinzufügen',
'add_new' => 'Neu Hinzufügen',
'all_done' => 'Alles erledigt',
'are_you_sure' => 'Sind Sie sicher',
'are_you_sure_delete' => 'Sind Sie sicher dass sie löschen möchten',
'auto_increment' => 'Automatische Werterhöhung',
'browse' => 'Browse',
'builder' => 'Builder',
'bulk_delete' => 'Massenlöschung',
'bulk_delete_confirm' => 'Ja, alle löschen',
'bulk_delete_nothing' => 'Sie haben nichts ausgewählt',
'cancel' => 'Abbruch',
'choose_type' => 'Typ auswählen',
'click_here' => 'Hier Klicken',
'close' => 'Schließen',
'compass' => 'Kompass',
'created_at' => 'Angelegt',
'custom' => 'Custom',
'dashboard' => 'Dashboard',
'database' => 'Datenbank',
'default' => 'Defaultwert',
'delete' => 'Löschen',
'delete_confirm' => 'Ja, Löschen!',
'delete_question' => 'Wirklich Löschen',
'delete_this_confirm' => 'Ja, Löschen',
'deselect_all' => 'Alles abwählen',
'download' => 'Herunterladen',
'edit' => 'Editieren',
'email' => 'E-Mail',
'error_deleting' => 'Es gab ein Problem beim Versuch dies zu Löschen',
'exception' => 'Exception',
'featured' => 'Featured',
'field_does_not_exist' => 'Feld existiert nicht',
'how_to_use' => 'Bedieneranleitung',
'index' => 'Index',
'internal_error' => 'Interner Fehler',
'items' => 'Element(e)',
'keep_sidebar_open' => 'Yarr! Anker werfen! (und Sidebar geöffnet lassen)',
'key' => 'Key',
'last_modified' => 'Zuletzt modifiziert',
'length' => 'Länge',
'login' => 'Login',
'media' => 'Medien',
'menu_builder' => 'Menü Editor',
'move' => 'Verschieben',
'name' => 'Name',
'new' => 'Neu',
'no' => 'Nein',
'no_thanks' => 'Nein Danke',
'not_null' => 'Not Null',
'options' => 'Optionen',
'password' => 'Passwort',
'permissions' => 'Rechte',
'profile' => 'Profil',
'public_url' => 'Öffentliche URL',
'read' => 'Lesen',
'rename' => 'Umbenennen',
'required' => 'Notwendig',
'return_to_list' => 'Zurück zur Liste',
'route' => 'Route',
'save' => 'Speichern',
'search' => 'Suchen',
'select_all' => 'Alles Auswählen',
'select_group' => 'Bestehende Gruppe auswählen oder neue Gruppe hinzufügen',
'settings' => 'Einstellungen',
'showing_entries' => 'Zeige :from bis :to von :all Eintrag|Zeige :from bis :to von :all Einträgen',
'submit' => 'Absenden',
'successfully_added_new' => 'Erfolgreich neu hinzugefügt',
'successfully_deleted' => 'Erfolgreich gelöscht',
'successfully_updated' => 'Erfolgreich Editiert',
'timestamp' => 'Zeitstempel',
'title' => 'Titel',
'type' => 'Typ',
'unsigned' => 'Unsigned',
'unstick_sidebar' => 'Sidebar ablösen',
'update' => 'Aktualisierung',
'update_failed' => 'Aktualisierung fehlgeschlagen',
'upload' => 'Upload',
'url' => 'URL',
'view' => 'Anzeige',
'viewing' => 'Anzeigen',
'yes' => 'Ja',
'yes_please' => 'Ja, Bitte',
],
'login' => [
'loggingin' => 'Einloggen',
'signin_below' => 'Unten anmelden:',
'welcome' => 'Willkommen bei Voyager. Der fehlende Admin für Laravel',
],
'profile' => [
'avatar' => 'Avatar',
'edit' => 'Mein Profil Editieren',
'edit_user' => 'Benutzer Editieren',
'password' => 'Passwort',
'password_hint' => 'Leer lassen um das Bisherige zu behalten',
'role' => 'Rolle',
'user_role' => 'Benutzerrolle',
],
'settings' => [
'usage_help' => 'Sie können den Wert jeder Einstellung überall auf der Seite erhalten durch den Aufruf',
'save' => 'Einstellungen Speichern',
'new' => 'Neue Einstellung',
'help_name' => 'Einstellung Name Beispiel: Admin Titel',
'help_key' => 'Einstellung Schlüssel Beispiel: admin_title',
'help_option' => '(optional, betrifft lediglich bestimmte Typen wie Dropdown Box oder Radio Button)',
'add_new' => 'Neue Einstellung Hinzufügen',
'delete_question' => 'Wollen Sie die Einstellung :setting wirklich Löschen?',
'delete_confirm' => 'Ja, diese Einstellung Löschen',
'successfully_created' => 'Einstellungen erfolgreich erstellt',
'successfully_saved' => 'Einstellungen erfolgreich gespeichert',
'successfully_deleted' => 'Einstellungen erfolgreich gelöscht',
'already_at_top' => 'Dies ist bereits an erster Stelle der Liste',
'already_at_bottom' => 'Dies ist bereits an letzter Stelle der Liste',
'key_already_exists' => 'Der Schlüssel :key existiert bereits',
'moved_order_up' => 'Einstellung :name wurde nach oben geschoben',
'moved_order_down' => 'Einstellung :name wurde nach unten geschoben',
'successfully_removed' => 'Wert :name wurde erfolgreich gelöscht',
'group_general' => 'General',
'group_admin' => 'Admin',
'group_site' => 'Site',
'group' => 'Gruppe',
'help_group' => 'Diese Einstellung ist zugewiesen zu',
],
'media' => [
'add_new_folder' => 'Neuen Ordner Hinzufügen',
'audio_support' => 'Ihr Browser unterstützt das Audio Element nicht.',
'create_new_folder' => 'Neuen Ordner Erstellen',
'delete_folder_question' => 'Das Löschen des Ordners wird alle darin enthaltenen Dateien und Ordnder löschen.',
'destination_folder' => 'Ziel Ordner',
'drag_drop_info' => 'Dateien mit Drag und Drop hineinziehen oder unten klicken um hochzuladen',
'error_already_exists' => 'Es ist bereits eine Datei bzw. ein Ordner mit diesem Namen in diesem Ordner enthalten.',
'error_creating_dir' => 'Beim Versuch das Verzeichnis Anzulegen ist ein Fehler aufgetreten. '.
'Stellen Sie sicher, dass Sie ausreichende Zugriffsrechte dafür haben.',
'error_deleting_file' => 'Beim Versuch diese Datei zu Löschen ist ein Fehler aufgetreten. '.
'Stellen Sie sicher, dass Sie ausreichende Zugriffsrechte dafür haben.',
'error_deleting_folder' => 'Beim Versuch diesen Ordner zu Löschen ist ein Fehler aufgetreten. Stellen Sie'.
'sicher, dass Sie ausreichende Zugriffsrechte dafür haben.',
'error_may_exist' => 'Datei oder Ordner unter diesem Namen können bereits existieren. Wählen Sie '.
'einen anderen Namen oder Löschen Sie die andere Datei.',
'error_moving' => 'Beim Versuch diese Datei bzw. Ordner zu Verschieben ist ein Fehler aufgetreten. '.
'Stellen Sie sicher, dass Sie ausreichende Zugriffsrechte dafür haben.',
'error_uploading' => 'Hochladen Fehlgeschlagen: Unbekannter Fehler aufgetreten!',
'folder_exists_already' => 'Dieser Ordner existiert bereits. Bitte Löschen Sie diesen Ordner falls Sie ihn '.
'neu Anlegen möchten',
'image_does_not_exist' => 'Bild existiert nicht',
'image_removed' => 'Bild entfernt',
'library' => 'Medien Bibliothek',
'loading' => 'LADE IHRE MEDIEN DATEIEN',
'move_file_folder' => 'Datei/Ordner Verschieben',
'new_file_folder' => 'Datei/Ordner Anlegen',
'new_folder_name' => 'Name des neuen Ordners',
'no_files_here' => 'Hier sind keine Dateien vorhanden.',
'no_files_in_folder' => 'Keine Dateien in diesem Ordner.',
'nothing_selected' => 'Keine Datei oder Ordner angewählt',
'rename_file_folder' => 'Datei/Ordner Umbenennen',
'success_uploaded_file' => 'Neue Datei erfolgreich hochgeladen!',
'success_uploading' => 'Bild erfolgreich hochgeladen!',
'uploading_wrong_type' => 'Fehler beim Hochladen: Nicht unterstütztes Dateiformat oder Datei zu groß '.
'zum Hochladen',
'video_support' => 'Ihr Browser unterstützt den Video Tag nicht.',
],
'menu_builder' => [
'color' => 'Farbe in RGB oder hex (optional)',
'color_ph' => 'Farbe (z. B. #ffffff oder rgb(255, 255, 255)',
'create_new_item' => 'Erstelle einen neues Menü Element',
'delete_item_confirm' => 'Ja, Lösche dieses Menü Element',
'delete_item_question' => 'Sind Sie sicher dass Sie dieses Menü Element Löschen möchten?',
'drag_drop_info' => 'Sie können die Reihenfolge der untenstehenden Menü Elemente durch Drag und Drop '.
'um Ihre Reihenfolge zu verändern.',
'dynamic_route' => 'Dynamische Route',
'edit_item' => 'Menü Element Editieren',
'icon_class' => 'Font Icon CSS-Klasse für das Menü Element (Benutze ',
'icon_class2' => 'Voyager Font CSS-Klasse</a>)',
'icon_class_ph' => 'Icon CSS-Klasse (optional)',
'item_route' => 'Route für das Menü Element',
'item_title' => 'Titel für das Menü Element',
'link_type' => 'Link Typ',
'new_menu_item' => 'Neues Menü Element',
'open_in' => 'Öffnen in',
'open_new' => 'Neuem Tab/Fenster',
'open_same' => 'Selber Tab/Fenster',
'route_parameter' => 'Route Parameter (falls vorhanden)',
'static_url' => 'Statische URL',
'successfully_created' => 'Neues Menü Element erfolgreich erstellt.',
'successfully_deleted' => 'Menü Element erfolgreich gelöscht.',
'successfully_updated' => 'Menü Element erfolgreich aktualisiert.',
'updated_order' => 'Menü Reihenfolge erfolgreich aktualisiert.',
'url' => 'URL des Menü Elements',
'usage_hint' => 'Sie können ein Menü überall auf der Seite ausgeben durch den Aufruf|'.
'Sie können dieses Menü überall auf der Seite ausgeben durch den Aufruf',
],
'post' => [
'category' => 'Post Kategorie',
'content' => 'Post Inhalt',
'details' => 'Post Details',
'excerpt' => 'Excerpt <small>Kurzbeschreibung dieses Posts</small>',
'image' => 'Post Bild',
'meta_description' => 'Meta Beschreibung',
'meta_keywords' => 'Meta Keywords',
'new' => 'Post Anlegen',
'seo_content' => 'SEO Content',
'seo_title' => 'SEO Titel',
'slug' => 'URL Slug',
'status' => 'Post Status',
'status_draft' => 'Entwurf',
'status_pending' => 'Warten auf Freigabe',
'status_published' => 'veröffentlicht',
'title' => 'Post Titel',
'title_sub' => 'Der Titel des Posts',
'update' => 'Post Aktualisieren',
],
'database' => [
'add_bread' => 'BREAD zu Tabelle Hinzufügen',
'add_new_column' => 'Neue Spalte Hinzufügen',
'add_softdeletes' => 'Soft Deletes Hinzufügen',
'add_timestamps' => 'Zeitstempel Hinzufügen',
'already_exists' => 'existiert bereits',
'already_exists_table' => 'Tabelle :table existiert bereits',
'bread_crud_actions' => 'BREAD/CRUD Aktionen',
'bread_info' => 'BREAD Info',
'browse_bread' => 'BREAD ansehen',
'column' => 'Spalte',
'composite_warning' => 'Warnung: Diese Spalte ist Teil eines zusammengesetzten indexes',
'controller_name' => 'Controller Name',
'controller_name_hint' => 'z. B. PageController, falls leer gelassen wird der BREAD Controller verwendet',
'create_bread_for_table' => 'BREAD Erstellen für :table Tabelle',
'create_migration' => 'Migration Erstellen für diese Tabelle?',
'create_model_table' => 'Model für diese Tabelle erstellen?',
'create_new_table' => 'Neue Tabelle Erstellen',
'create_your_new_table' => 'Erstellen Sie Ihre neue Tabelle',
'default' => 'Default',
'delete_bread' => 'BREAD Löschen',
'delete_bread_before_table' => 'Sie müssen zuerst das BREAD von dieser Tabelle Entfernen '.
'bevor Sie die Tabelle Löschen können.',
'delete_table_bread_conf' => 'Ja, BREAD Entfernen',
'delete_table_bread_quest' => 'Sind Sie sicher, dass Sie das BREAD für Tabelle :table Löschen möchten?',
'delete_table_confirm' => 'Ja, diese Tabelle Löschen',
'delete_table_question' => 'Sind Sie sicher, dass Sie die Tabelle :table Löschen möchten?',
'description' => 'Beschreibung',
'display_name' => 'Anzeigename',
'display_name_plural' => 'Anzeigename (Plural)',
'display_name_singular' => 'Anzeigename (Singular)',
'edit_bread' => 'BREAD Bearbeiten',
'edit_bread_for_table' => 'Bearbeite BREAD für Tabelle :table',
'edit_rows' => 'Bearbeite die Zeilen für untenstehende Tabelle :table',
'edit_table' => 'Bearbeite die untenstehende Tabelle :table',
'edit_table_not_exist' => 'Die Tabelle welche Sie Bearbeiten möchten existiert nicht',
'error_creating_bread' => 'Es ist ein Fehler aufgetreten beim Versuch dieses BREAD anzulegen',
'error_removing_bread' => 'Es ist ein Fehler aufgetreten beim Versuch dieses BREAD zu Löschen',
'error_updating_bread' => 'Es ist ein Fehler aufgetreten beim Versuch dieses BREAD zu Aktualisieren',
'extra' => 'Extra',
'field' => 'Feld',
'field_safe_failed' => 'Konnte Feld :field nicht speichern, Änderungen zurückgerollt!',
'generate_permissions' => 'Zugriffsrechte Generieren',
'icon_class' => 'Icon CSS-Klasse für diese Tabelle',
'icon_hint' => 'Icon (optional) Benutze',
'icon_hint2' => 'Voyager Font CSS-Klasse',
'index' => 'INDEX',
'input_type' => 'Input Typ',
'key' => 'Key',
'model_class' => 'Name der Model Klasse',
'model_name' => 'Model Name',
'model_name_ph' => 'z. B. \App\Models\User, falls leer gelassen wird versucht den Namen der Tabelle '.
'zu verwenden',
'name_warning' => 'Sie müssen einen Namen für die Spalte vergeben, '.
' bevor Sie einen Index hinzufügen',
'no_composites_warning' => 'Hinweis: Diese Tabelle hat zusammengesetzte Indexe. '.
'Diese werden momentan nicht unterstützt. '.
'Seien Sie vorsichtig beim Hinzufügen/Ändern von Indexen.',
'null' => 'Null',
'optional_details' => 'Optionale Details',
'policy_class' => 'Policy Klassenname',
'policy_name' => 'Policy Name',
'policy_name_ph' => 'Bspw. \App\Policies\UserPolicy, falls leer gelassen wird versucht '.
'den Default Wert zu Verwenden.',
'primary' => 'PRIMARY',
'server_pagination' => 'Serverseitige Pagination',
'success_create_table' => 'Tabelle :table erfolgreich erstellt',
'success_created_bread' => 'Neues BREAD erfolgreich erstellt',
'success_delete_table' => 'Tabelle :table erfolgreich erstellt',
'success_remove_bread' => 'BREAD erfolgreich von :datatype entfernt',
'success_update_bread' => ':datatype BREAD erfolgreich aktualisiert',
'success_update_table' => 'Tabelle :table erfolgreich aktualisiert',
'table_actions' => 'Tabellen Aktionen',
'table_columns' => 'Tabellen Spalten',
'table_has_index' => 'Die Tabelle hat bereits einen primären Index.',
'table_name' => 'Tabellenname',
'table_no_columns' => 'Die Tabelle hat keine Spalten...',
'type' => 'Typ',
'type_not_supported' => 'Dieser Typ wird nicht unterstützt',
'unique' => 'UNIQUE',
'unknown_type' => 'Unbekannter Typ',
'update_table' => 'Table Aktualisieren',
'url_slug' => 'URL Slug (muss unique sein)',
'url_slug_ph' => 'URL slug (z. B. posts)',
'visibility' => 'Sichtbarkeit',
],
'dimmer' => [
'page' => 'Seite|Seiten',
'page_link_text' => 'Alle Seiten Anzeigen',
'page_text' => 'Sie haben:count :string in Ihrer Datenbank. Klicken Sie auf untenstehenden Button '.
'um alle Seiten zu sehen.',
'post' => 'Post|Posts',
'post_link_text' => 'Alle Posts Anzeigen',
'post_text' => 'Sie haben :count :string in Ihrer Datenbank. Klicken Sie auf untenstehenden Button ',
'um alle Posts zu sehen.',
'user' => 'Benutzer|Benutzer',
'user_link_text' => 'Alle Benutzer Anzeigen',
'user_text' => 'Sie haben :count :string in Ihrer Datenbank. Klicken Sie auf untenstehenden Button ',
'um alle Benutzer zu sehen.',
],
'form' => [
'field_password_keep' => 'Leer lassen um das aktuelle zu Behalten',
'field_select_dd_relationship' => 'Stellen Sie sicher, dass Sie die entsprechende Relation in der '.
':method Methode der :class Klasse setzen.',
'type_checkbox' => 'Check Box',
'type_codeeditor' => 'Code Editor',
'type_file' => 'Datei',
'type_image' => 'Bild',
'type_radiobutton' => 'Radio Button',
'type_richtextbox' => 'Rich Textbox',
'type_selectdropdown' => 'Select Dropdown',
'type_textarea' => 'Text Area',
'type_textbox' => 'Text Box',
],
// DataTable translations from: https://github.com/DataTables/Plugins/tree/master/i18n
'datatable' => [
'sEmptyTable' => 'Keine Daten vorhanden in dieser Tabelle',
'sInfo' => 'Zeige _START_ bis _END_ von _TOTAL_ Einträgen',
'sInfoEmpty' => 'Zeige 0 von 0 Einträgen',
'sInfoFiltered' => '(gefiltert von _MAX_ Einträgen insgesamt)',
'sInfoPostFix' => '',
'sInfoThousands' => '.',
'sLengthMenu' => 'Zeige _MENU_ Einträge',
'sLoadingRecords' => 'Laden...',
'sProcessing' => 'Verarbeiten...',
'sSearch' => 'Suche:',
'sZeroRecords' => 'Keine passenden Einträge gefunden',
'oPaginate' => [
'sFirst' => 'Erste',
'sLast' => 'Letzte',
'sNext' => 'Nächste',
'sPrevious' => 'Vorige',
],
'oAria' => [
'sSortAscending' => ': Aktivieren um Spalte aufsteigend zu sortieren',
'sSortDescending' => ': Aktivieren um Spalte absteigend zu sortieren',
],
],
'theme' => [
'footer_copyright' => 'Made with <i class="voyager-heart"></i> by',
'footer_copyright2' => 'Made with Rum und noch mehr Rum',
],
'json' => [
'invalid' => 'Ungültiges JSON',
'invalid_message' => 'Es scheint Sie haben ungültiges JSON eingebracht.',
'valid' => 'Gültiges JSON',
'validation_errors' => 'Validierungsfehler',
],
'analytics' => [
'by_pageview' => 'nach pageview',
'by_sessions' => 'nach sessions',
'by_users' => 'nach users',
'no_client_id' => 'Um Analytics zu sehen müssen Sie im Besitz einer google Analytics client id '.
'sein und diese zu Ihren Settings hinzufügen für den Key '.
'<code>google_analytics_client_id</code>. '.
'Holen Sie sich Ihren Key in Ihrer Google developer console:',
'set_view' => 'eine Ansicht wählen',
'this_vs_last_week' => 'Diese Woche im Vergleich zu letzter Woche',
'this_vs_last_year' => 'Dieses Jahr im Vergleich zum letzten Jahr',
'top_browsers' => 'Top Browsers',
'top_countries' => 'Top Länder',
'various_visualizations' => 'verschiedenartige Visualisierungen',
],
'error' => [
'symlink_created_text' => 'Wir haben soeben den fehlenden Symlink für Sie angelegt.',
'symlink_created_title' => 'Fehlenden Storage Symlink angelegt',
'symlink_failed_text' => 'Fehlender Symlink für Ihre Applikation konnte nicht angelegt werden. '.
'Es scheint so als würde Ihr Hosting Provider dies nicht anbieten.',
'symlink_failed_title' => 'Fehlender Storage Symlink konnte nicht angelegt werden',
'symlink_missing_button' => 'Bereinigen',
'symlink_missing_text' => 'Wir konnten keinen Storage Symlink finden. Dies könnte zu Problemen führen '.
'beim Laden von Medien Dateien aus dem Browser.',
'symlink_missing_title' => 'Fehlender Storage Symlink',
],
];

20
lang/en/auth.php Normal file
View File

@@ -0,0 +1,20 @@
<?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.',
'password' => 'The provided password is incorrect.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
];

19
lang/en/pagination.php Normal file
View 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' => '&laquo; Previous',
'next' => 'Next &raquo;',
];

22
lang/en/passwords.php Normal file
View 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.
|
*/
'reset' => 'Your password has been reset!',
'sent' => 'We have emailed your password reset link!',
'throttled' => 'Please wait before retrying.',
'token' => 'This password reset token is invalid.',
'user' => "We can't find a user with that email address.",
];

169
lang/en/validation.php Normal file
View File

@@ -0,0 +1,169 @@
<?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.',
'accepted_if' => 'The :attribute must be accepted when :other is :value.',
'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 must only contain letters.',
'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.',
'alpha_num' => 'The :attribute must 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' => [
'array' => 'The :attribute must have between :min and :max items.',
'file' => 'The :attribute must be between :min and :max kilobytes.',
'numeric' => 'The :attribute must be between :min and :max.',
'string' => 'The :attribute must be between :min and :max characters.',
],
'boolean' => 'The :attribute field must be true or false.',
'confirmed' => 'The :attribute confirmation does not match.',
'current_password' => 'The password is incorrect.',
'date' => 'The :attribute is not a valid date.',
'date_equals' => 'The :attribute must be a date equal to :date.',
'date_format' => 'The :attribute does not match the format :format.',
'declined' => 'The :attribute must be declined.',
'declined_if' => 'The :attribute must be declined when :other is :value.',
'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.',
'ends_with' => 'The :attribute must end with one of the following: :values.',
'enum' => 'The selected :attribute is invalid.',
'exists' => 'The selected :attribute is invalid.',
'file' => 'The :attribute must be a file.',
'filled' => 'The :attribute field must have a value.',
'gt' => [
'array' => 'The :attribute must have more than :value items.',
'file' => 'The :attribute must be greater than :value kilobytes.',
'numeric' => 'The :attribute must be greater than :value.',
'string' => 'The :attribute must be greater than :value characters.',
],
'gte' => [
'array' => 'The :attribute must have :value items or more.',
'file' => 'The :attribute must be greater than or equal to :value kilobytes.',
'numeric' => 'The :attribute must be greater than or equal to :value.',
'string' => 'The :attribute must be greater than or equal to :value characters.',
],
'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.',
'lt' => [
'array' => 'The :attribute must have less than :value items.',
'file' => 'The :attribute must be less than :value kilobytes.',
'numeric' => 'The :attribute must be less than :value.',
'string' => 'The :attribute must be less than :value characters.',
],
'lte' => [
'array' => 'The :attribute must not have more than :value items.',
'file' => 'The :attribute must be less than or equal to :value kilobytes.',
'numeric' => 'The :attribute must be less than or equal to :value.',
'string' => 'The :attribute must be less than or equal to :value characters.',
],
'mac_address' => 'The :attribute must be a valid MAC address.',
'max' => [
'array' => 'The :attribute must not have more than :max items.',
'file' => 'The :attribute must not be greater than :max kilobytes.',
'numeric' => 'The :attribute must not be greater than :max.',
'string' => 'The :attribute must not be greater than :max characters.',
],
'mimes' => 'The :attribute must be a file of type: :values.',
'mimetypes' => 'The :attribute must be a file of type: :values.',
'min' => [
'array' => 'The :attribute must have at least :min items.',
'file' => 'The :attribute must be at least :min kilobytes.',
'numeric' => 'The :attribute must be at least :min.',
'string' => 'The :attribute must be at least :min characters.',
],
'multiple_of' => 'The :attribute must be a multiple of :value.',
'not_in' => 'The selected :attribute is invalid.',
'not_regex' => 'The :attribute format is invalid.',
'numeric' => 'The :attribute must be a number.',
'password' => [
'letters' => 'The :attribute must contain at least one letter.',
'mixed' => 'The :attribute must contain at least one uppercase and one lowercase letter.',
'numbers' => 'The :attribute must contain at least one number.',
'symbols' => 'The :attribute must contain at least one symbol.',
'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.',
],
'present' => 'The :attribute field must be present.',
'prohibited' => 'The :attribute field is prohibited.',
'prohibited_if' => 'The :attribute field is prohibited when :other is :value.',
'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.',
'prohibits' => 'The :attribute field prohibits :other from being present.',
'regex' => 'The :attribute format is invalid.',
'required' => 'The :attribute field is required.',
'required_array_keys' => 'The :attribute field must contain entries for: :values.',
'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 are 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' => [
'array' => 'The :attribute must contain :size items.',
'file' => 'The :attribute must be :size kilobytes.',
'numeric' => 'The :attribute must be :size.',
'string' => 'The :attribute must be :size characters.',
],
'starts_with' => 'The :attribute must start with one of the following: :values.',
'string' => 'The :attribute must be a string.',
'timezone' => 'The :attribute must be a valid timezone.',
'unique' => 'The :attribute has already been taken.',
'uploaded' => 'The :attribute failed to upload.',
'url' => 'The :attribute must be a valid URL.',
'uuid' => 'The :attribute must be a valid UUID.',
/*
|--------------------------------------------------------------------------
| 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 our attribute placeholder
| with something more reader friendly such as "E-Mail Address" instead
| of "email". This simply helps us make our message more expressive.
|
*/
'attributes' => [],
];

437
lang/en/voyager.php Normal file
View File

@@ -0,0 +1,437 @@
<?php
return [
'date' => [
'last_week' => 'Last Week',
'last_year' => 'Last Year',
'this_week' => 'This Week',
'this_year' => 'This Year',
],
'generic' => [
'action' => 'Action',
'actions' => 'Actions',
'add' => 'Add',
'add_folder' => 'Add Folder',
'add_new' => 'Add New',
'all_done' => 'All done',
'are_you_sure' => 'Are you sure',
'are_you_sure_delete' => 'Are you sure you want to delete',
'auto_increment' => 'Auto Increment',
'browse' => 'Browse',
'builder' => 'Builder',
'bulk_delete' => 'Bulk delete',
'bulk_delete_confirm' => 'Yes, Delete These',
'bulk_delete_nothing' => 'You haven\'t selected anything to delete',
'cancel' => 'Cancel',
'choose_type' => 'Choose Type',
'click_here' => 'Click Here',
'close' => 'Close',
'compass' => 'Compass',
'created_at' => 'Created at',
'custom' => 'Custom',
'dashboard' => 'Dashboard',
'database' => 'Database',
'default' => 'Default',
'delete' => 'Delete',
'delete_confirm' => 'Yes, Delete it!',
'delete_question' => 'Are you sure you want to delete this',
'delete_this_confirm' => 'Yes, Delete This',
'deselect_all' => 'Deselect All',
'download' => 'Download',
'edit' => 'Edit',
'email' => 'E-mail',
'error_deleting' => 'Sorry it appears there was a problem deleting this',
'exception' => 'Exception',
'featured' => 'Featured',
'field_does_not_exist' => 'Field does not exist',
'how_to_use' => 'How To Use',
'index' => 'Index',
'internal_error' => 'Internal error',
'items' => 'item(s)',
'keep_sidebar_open' => 'Yarr! Drop the anchors! (and keep the sidebar open)',
'key' => 'Key',
'last_modified' => 'Last modified',
'length' => 'Length',
'login' => 'Login',
'media' => 'Media',
'menu_builder' => 'Menu Builder',
'move' => 'Move',
'name' => 'Name',
'new' => 'New',
'no' => 'No',
'no_thanks' => 'No Thanks',
'not_null' => 'Not Null',
'options' => 'Options',
'password' => 'Password',
'permissions' => 'Permissions',
'profile' => 'Profile',
'public_url' => 'Public URL',
'read' => 'Read',
'rename' => 'Rename',
'required' => 'Required',
'return_to_list' => 'Return to List',
'route' => 'Route',
'save' => 'Save',
'search' => 'Search',
'select_all' => 'Select All',
'select_group' => 'Select Existing Group or Add New',
'settings' => 'Settings',
'showing_entries' => 'Showing :from to :to of :all entrie|Showing :from to :to of :all entries',
'submit' => 'Submit',
'successfully_added_new' => 'Successfully Added New',
'successfully_deleted' => 'Successfully Deleted',
'successfully_updated' => 'Successfully Updated',
'timestamp' => 'Timestamp',
'title' => 'Title',
'type' => 'Type',
'unsigned' => 'Unsigned',
'unstick_sidebar' => 'Unstick the sidebar',
'update' => 'Update',
'update_failed' => 'Update Failed',
'upload' => 'Upload',
'url' => 'URL',
'view' => 'View',
'viewing' => 'Viewing',
'yes' => 'Yes',
'yes_please' => 'Yes, Please',
],
'login' => [
'loggingin' => 'Logging in',
'signin_below' => 'Sign In Below:',
'welcome' => 'Welcome to Voyager. The Missing Admin for Laravel',
],
'profile' => [
'avatar' => 'Avatar',
'edit' => 'Edit My Profile',
'edit_user' => 'Edit User',
'password' => 'Password',
'password_hint' => 'Leave empty to keep the same',
'role' => 'Role',
'user_role' => 'User Role',
],
'settings' => [
'usage_help' => 'You can get the value of each setting anywhere on your site by calling',
'save' => 'Save Settings',
'new' => 'New Setting',
'help_name' => 'Setting name ex: Admin Title',
'help_key' => 'Setting key ex: admin_title',
'help_option' => '(optional, only applies to certain types like dropdown box or radio button)',
'add_new' => 'Add New Setting',
'delete_question' => 'Are you sure you want to delete the :setting Setting?',
'delete_confirm' => 'Yes, Delete This Setting',
'successfully_created' => 'Successfully Created Settings',
'successfully_saved' => 'Successfully Saved Settings',
'successfully_deleted' => 'Successfully Deleted Setting',
'already_at_top' => 'This is already at the top of the list',
'already_at_bottom' => 'This is already at the bottom of the list',
'key_already_exists' => 'The key :key already exists',
'moved_order_up' => 'Moved :name setting order up',
'moved_order_down' => 'Moved :name setting order down',
'successfully_removed' => 'Successfully removed :name value',
'group_general' => 'General',
'group_admin' => 'Admin',
'group_site' => 'Site',
'group' => 'Group',
'help_group' => 'Group this setting is assigned to',
],
'media' => [
'add_new_folder' => 'Add New Folder',
'audio_support' => 'Your browser does not support the audio element.',
'create_new_folder' => 'Create New Folder',
'delete_folder_question' => 'Deleting a folder will remove all files and folders contained inside',
'destination_folder' => 'Destination Folder',
'drag_drop_info' => 'Drag and drop files or click below to upload',
'error_already_exists' => 'Sorry there is already a file/folder with that existing name in that folder.',
'error_creating_dir' => 'Sorry something seems to have gone wrong with creating the directory, '.
'please check your permissions',
'error_deleting_file' => 'Sorry something seems to have gone wrong deleting this file, please check your '.
'permissions',
'error_deleting_folder' => 'Sorry something seems to have gone wrong when deleting this folder, '.
'please check your permissions',
'error_may_exist' => 'File or Folder may already exist with that name. Please choose another name or '.
'delete the other file.',
'error_moving' => 'Sorry there seems to be a problem moving that file/folder, please make '.
'sure you have the correct permissions.',
'error_uploading' => 'Upload Fail: Unknown error occurred!',
'folder_exists_already' => 'Sorry that folder already exists, please delete that folder if you wish '.
'to re-create it',
'image_does_not_exist' => 'Image does not exist',
'image_removed' => 'Image removed',
'library' => 'Media Library',
'loading' => 'LOADING YOUR MEDIA FILES',
'move_file_folder' => 'Move File/Folder',
'new_file_folder' => 'New File/Folder Name',
'new_folder_name' => 'New Folder Name',
'no_files_here' => 'No files here.',
'no_files_in_folder' => 'No files in this folder.',
'nothing_selected' => 'No file or folder selected',
'rename_file_folder' => 'Rename File/Folder',
'success_uploaded_file' => 'Successfully uploaded new file!',
'success_uploading' => 'Image successfully uploaded!',
'uploading_wrong_type' => 'Upload Fail: Unsupported file format or It is too large to upload!',
'video_support' => 'Your browser does not support the video tag.',
'crop' => 'Crop',
'crop_and_create' => 'Crop & Create',
'crop_override_confirm' => 'It will override the original image, are you sure?',
'crop_image' => 'Crop Image',
'success_crop_image' => 'Successfully crop the image',
'height' => 'Height: ',
'width' => 'Width: ',
],
'menu_builder' => [
'color' => 'Color in RGB or hex (optional)',
'color_ph' => 'Color (ex. #ffffff or rgb(255, 255, 255)',
'create_new_item' => 'Create a New Menu Item',
'delete_item_confirm' => 'Yes, Delete This Menu Item',
'delete_item_question' => 'Are you sure you want to delete this menu item?',
'drag_drop_info' => 'Drag and drop the menu Items below to re-arrange them.',
'dynamic_route' => 'Dynamic Route',
'edit_item' => 'Edit Menu Item',
'icon_class' => 'Font Icon class for the Menu Item (Use a',
'icon_class2' => 'Voyager Font Class</a>)',
'icon_class_ph' => 'Icon Class (optional)',
'item_route' => 'Route for the menu item',
'item_title' => 'Title of the Menu Item',
'link_type' => 'Link type',
'new_menu_item' => 'New Menu Item',
'open_in' => 'Open In',
'open_new' => 'New Tab/Window',
'open_same' => 'Same Tab/Window',
'route_parameter' => 'Route parameters (if any)',
'static_url' => 'Static URL',
'successfully_created' => 'Successfully Created New Menu Item.',
'successfully_deleted' => 'Successfully Deleted Menu Item.',
'successfully_updated' => 'Successfully Updated Menu Item.',
'updated_order' => 'Successfully updated menu order.',
'url' => 'URL for the Menu Item',
'usage_hint' => 'You can output a menu anywhere on your site by calling|You can output '.
'this menu anywhere on your site by calling',
],
'post' => [
'category' => 'Post Category',
'content' => 'Post Content',
'details' => 'Post Details',
'excerpt' => 'Excerpt <small>Small description of this post</small>',
'image' => 'Post Image',
'meta_description' => 'Meta Description',
'meta_keywords' => 'Meta Keywords',
'new' => 'Create New Post',
'seo_content' => 'SEO Content',
'seo_title' => 'Seo Title',
'slug' => 'URL slug',
'status' => 'Post Status',
'status_draft' => 'draft',
'status_pending' => 'pending',
'status_published' => 'published',
'title' => 'Post Title',
'title_sub' => 'The title for your post',
'update' => 'Update Post',
],
'database' => [
'add_bread' => 'Add BREAD to this table',
'add_new_column' => 'Add New Column',
'add_softdeletes' => 'Add Soft Deletes',
'add_timestamps' => 'Add Timestamps',
'already_exists' => 'already exists',
'already_exists_table' => 'Table :table already exists',
'bread_crud_actions' => 'BREAD/CRUD Actions',
'bread_info' => 'BREAD info',
'browse_bread' => 'Browse BREAD',
'column' => 'Column',
'composite_warning' => 'Warning: this column is part of a composite index',
'controller_name' => 'Controller Name',
'controller_name_hint' => 'ex. PageController, if left empty will use the BREAD Controller',
'create_bread_for_table' => 'Create BREAD for :table table',
'create_migration' => 'Create migration for this table?',
'create_model_table' => 'Create model for this table?',
'create_new_table' => 'Create New Table',
'create_your_new_table' => 'Create Your New Table',
'default' => 'Default',
'delete_bread' => 'Delete BREAD',
'delete_bread_before_table' => 'Please make sure to remove the BREAD on this table before deleting the table.',
'delete_table_bread_conf' => 'Yes, remove the BREAD',
'delete_table_bread_quest' => 'Are you sure you want to delete the BREAD for the :table table?',
'delete_table_confirm' => 'Yes, delete this table',
'delete_table_question' => 'Are you sure you want to delete the :table table?',
'description' => 'Description',
'display_name' => 'Display Name',
'display_name_plural' => 'Display Name (Plural)',
'display_name_singular' => 'Display Name (Singular)',
'edit_bread' => 'Edit BREAD',
'edit_bread_for_table' => 'Edit BREAD for :table table',
'edit_rows' => 'Edit the rows for the :table table below',
'edit_table' => 'Edit the :table table below',
'edit_table_not_exist' => 'The table you want to edit doesn\'t exist',
'error_creating_bread' => 'Sorry it appears there may have been a problem creating this BREAD',
'error_removing_bread' => 'Sorry it appears there was a problem removing this BREAD',
'error_updating_bread' => 'Sorry it appears there may have been a problem updating this BREAD',
'extra' => 'Extra',
'field' => 'Field',
'field_safe_failed' => 'Failed to save field :field, we\'re rolling back!',
'generate_permissions' => 'Generate Permissions',
'icon_class' => 'Icon to use for this Table',
'icon_hint' => 'Icon (optional) Use a',
'icon_hint2' => 'Voyager Font Class',
'index' => 'INDEX',
'input_type' => 'Input Type',
'key' => 'Key',
'model_class' => 'Model Class Name',
'model_name' => 'Model Name',
'model_name_ph' => 'ex. \App\Models\User, if left empty will try and use the table name',
'name_warning' => 'Please name the column before adding an index',
'no_composites_warning' => 'This table has composite indexes. Please note that they are not supported at the moment. Be careful when trying to add/remove indexes.',
'null' => 'Null',
'optional_details' => 'Optional Details',
'policy_class' => 'Policy Class Name',
'policy_name' => 'Policy Name',
'policy_name_ph' => 'ex. \App\Policies\UserPolicy, if left empty will try and use the default',
'primary' => 'PRIMARY',
'server_pagination' => 'Server-side Pagination',
'success_create_table' => 'Successfully created :table table',
'success_created_bread' => 'Successfully created new BREAD',
'success_delete_table' => 'Successfully deleted :table table',
'success_remove_bread' => 'Successfully removed BREAD from :datatype',
'success_update_bread' => 'Successfully updated the :datatype BREAD',
'success_update_table' => 'Successfully updated :table table',
'table_actions' => 'Table Actions',
'table_columns' => 'Table Columns',
'table_has_index' => 'The table already has a primary index.',
'table_name' => 'Table Name',
'table_no_columns' => 'The table has no columns...',
'type' => 'Type',
'type_not_supported' => 'This type is not supported',
'unique' => 'UNIQUE',
'unknown_type' => 'Unknown Type',
'update_table' => 'Update Table',
'url_slug' => 'URL Slug (must be unique)',
'url_slug_ph' => 'URL slug (ex. posts)',
'visibility' => 'Visibility',
'relationship' => [
'relationship' => 'Relationship',
'relationships' => 'Relationships',
'has_one' => 'Has One',
'has_many' => 'Has Many',
'belongs_to' => 'Belongs To',
'belongs_to_many' => 'Belongs To Many',
'which_column_from' => 'Which column from the',
'is_used_to_reference' => 'is used to reference the',
'pivot_table' => 'Pivot Table',
'selection_details' => 'Selection Details',
'display_the' => 'Display the',
'store_the' => 'Store the',
'easy_there' => 'Easy there Captain',
'before_create' => 'Before you can create a new relationship you will need to create the BREAD first.<br> Then, return back to edit the BREAD and you will be able to add relationships.<br> Thanks.',
'cancel' => 'Cancel',
'add_new' => 'Add New relationship',
'open' => 'Open',
'close' => 'Close',
'relationship_details' => 'Relationship Details',
'browse' => 'Browse',
'read' => 'Read',
'edit' => 'Edit',
'add' => 'Add',
'delete' => 'Delete',
'create' => 'Create a Relationship',
'namespace' => 'Model Namespace (ex. App\Category)',
],
],
'dimmer' => [
'page' => 'Page|Pages',
'page_link_text' => 'View all pages',
'page_text' => 'You have :count :string in your database. Click on button below to view all pages.',
'post' => 'Post|Posts',
'post_link_text' => 'View all posts',
'post_text' => 'You have :count :string in your database. Click on button below to view all posts.',
'user' => 'User|Users',
'user_link_text' => 'View all users',
'user_text' => 'You have :count :string in your database. Click on button below to view all users.',
],
'form' => [
'field_password_keep' => 'Leave empty to keep the same',
'field_select_dd_relationship' => 'Make sure to setup the appropriate relationship in the :method method of '.
'the :class class.',
'type_checkbox' => 'Check Box',
'type_codeeditor' => 'Code Editor',
'type_file' => 'File',
'type_image' => 'Image',
'type_radiobutton' => 'Radio Button',
'type_richtextbox' => 'Rich Textbox',
'type_selectdropdown' => 'Select Dropdown',
'type_textarea' => 'Text Area',
'type_textbox' => 'Text Box',
],
// DataTable translations from: https://github.com/DataTables/Plugins/tree/master/i18n
'datatable' => [
'sEmptyTable' => 'No data available in table',
'sInfo' => 'Showing _START_ to _END_ of _TOTAL_ entries',
'sInfoEmpty' => 'Showing 0 to 0 of 0 entries',
'sInfoFiltered' => '(filtered from _MAX_ total entries)',
'sInfoPostFix' => '',
'sInfoThousands' => ',',
'sLengthMenu' => 'Show _MENU_ entries',
'sLoadingRecords' => 'Loading...',
'sProcessing' => 'Processing...',
'sSearch' => 'Search:',
'sZeroRecords' => 'No matching records found',
'oPaginate' => [
'sFirst' => 'First',
'sLast' => 'Last',
'sNext' => 'Next',
'sPrevious' => 'Previous',
],
'oAria' => [
'sSortAscending' => ': activate to sort column ascending',
'sSortDescending' => ': activate to sort column descending',
],
],
'theme' => [
'footer_copyright' => 'Made with <i class="voyager-heart"></i> by',
'footer_copyright2' => 'Made with rum and even more rum',
],
'json' => [
'invalid' => 'Invalid Json',
'invalid_message' => 'Seems like you introduced some invalid JSON.',
'valid' => 'Valid Json',
'validation_errors' => 'Validation errors',
],
'analytics' => [
'by_pageview' => 'By pageview',
'by_sessions' => 'By sessions',
'by_users' => 'By users',
'no_client_id' => 'To view analytics you\'ll need to get a google analytics client id and '.
'add it to your settings for the key <code>google_analytics_client_id'.
'</code>. Get your key in your Google developer console:',
'set_view' => 'Select a View',
'this_vs_last_week' => 'This Week vs Last Week',
'this_vs_last_year' => 'This Year vs Last Year',
'top_browsers' => 'Top Browsers',
'top_countries' => 'Top Countries',
'various_visualizations' => 'Various visualizations',
],
'error' => [
'symlink_created_text' => 'We just created the missing symlink for you.',
'symlink_created_title' => 'Missing storage symlink created',
'symlink_failed_text' => 'We failed to generate the missing symlink for your application. '.
'It seems like your hosting provider does not support it.',
'symlink_failed_title' => 'Could not create missing storage symlink',
'symlink_missing_button' => 'Fix it',
'symlink_missing_text' => 'We could not find a storage symlink. This could cause problems with '.
'loading media files from the browser.',
'symlink_missing_title' => 'Missing storage symlink',
],
];

393
lang/es/voyager.php Normal file
View File

@@ -0,0 +1,393 @@
<?php
return [
'date' => [
'last_week' => 'La semana pasada',
'last_year' => 'El año pasado',
'this_week' => 'Esta semana',
'this_year' => 'Este año',
],
'generic' => [
'action' => 'Acción',
'actions' => 'Acciones',
'add' => 'Añadir',
'add_folder' => 'Añadir carpeta',
'add_new' => 'Añadir nuevo',
'all_done' => 'Todo listo',
'are_you_sure' => 'Estás seguro',
'are_you_sure_delete' => 'Estás seguro que quieres borrarlo',
'auto_increment' => 'Autoincremento',
'browse' => 'Navegar',
'builder' => 'Constructor',
'bulk_delete' => 'Borrado masivo',
'bulk_delete_confirm' => 'Sí, ¡Bórralo!',
'bulk_delete_nothing' => 'Debe seleccionar al menos un registro antes de usar el borrado masivo.',
'cancel' => 'Cancelar',
'choose_type' => 'Elegir tipo',
'click_here' => 'Haga clic aquí',
'close' => 'Cerrar',
'compass' => 'Compás',
'created_at' => 'Creado en',
'custom' => 'Personalizado',
'dashboard' => 'Tablero',
'database' => 'Base de datos',
'default' => 'Defecto',
'delete' => 'Borrar',
'delete_confirm' => 'Sí, ¡Bórralo!',
'delete_question' => 'Estás seguro que quieres eliminar esto',
'delete_this_confirm' => 'Sí, eliminar esto',
'deselect_all' => 'Deseleccionar todo',
'download' => 'Descargar',
'edit' => 'Editar',
'email' => 'Email',
'error_deleting' => 'Lo siento, parece que se ha producido un problema al eliminar',
'exception' => 'Excepción',
'featured' => 'Destacados',
'field_does_not_exist' => 'El campo no existe',
'how_to_use' => 'Cómo utilizar',
'index' => 'Índice',
'internal_error' => 'Error interno',
'items' => 'Ítem(s)',
'keep_sidebar_open' => '¡Yarr! ¡Suelta las anclas! (Y mantén la barra lateral abierta) ',
'key' => 'Clave',
'last_modified' => 'Última modificación',
'length' => 'Longitud',
'login' => 'Iniciar sesión',
'media' => 'Medios',
'menu_builder' => 'Constructor de menús',
'move' => 'Mover',
'name' => 'Nombre',
'new' => 'Nuevo',
'no' => 'No',
'no_thanks' => 'No, gracias',
'not_null' => 'No nulo',
'options' => 'Opciones',
'password' => 'Contraseña',
'permissions' => 'Permisos',
'profile' => 'Perfil',
'public_url' => 'URL pública',
'read' => 'Leer',
'rename' => 'Renombrar',
'required' => 'Necesario',
'return_to_list' => 'Volver a la lista',
'route' => 'Ruta',
'save' => 'Guardar',
'search' => 'Buscar',
'select_all' => 'Seleccionar todo',
'select_group' => 'Seleccione un grupo existente o añada uno',
'settings' => 'Ajustes',
'showing_entries' => 'Mostrando de :from a :to de :all entradas | Mostrando de :from a :to de todas las entradas',
'submit' => 'Enviar',
'successfully_added_new' => 'Añadido exitosamente',
'successfully_deleted' => 'Eliminado exitosamente',
'successfully_updated' => 'Actualizado exitosamente',
'timestamp' => 'Timestamp',
'title' => 'Título',
'type' => 'Tipo',
'unsigned' => 'No signado',
'unstick_sidebar' => 'Despegar la barra lateral',
'update' => 'Actualizar',
'update_failed' => 'Actualización fallida',
'upload' => 'Subir',
'url' => 'URL',
'view' => 'Ver',
'viewing' => 'Viendo',
'yes' => 'Sí',
'yes_please' => 'Sí, por favor',
],
'login' => [
'logginign' => 'Iniciando sesión',
'signin_below' => 'Ingresar abajo:',
'welcome' => 'Bienvenido a Voyager. El administrador desaparecido de Laravel ',
],
'profile' => [
'avatar' => 'Avatar',
'edit' => 'Editar mi perfil',
'edit_user' => 'Editar usuario',
'password' => 'Contraseña',
'password_hint' => 'Dejar vacío para mantener el mismo',
'role' => 'Rol',
'user_role' => 'Rol del usuario',
],
'settings' => [
'usage_help' => 'Puede obtener el valor de cada parámetro en cualquier lugar de su sitio llamando',
'save' => 'Guardar parámetro',
'new' => 'Nuevo parámetro',
'help_name' => 'Nombre del parámetro Ej: Titulo de Pagina',
'help_key' => 'Clave del parámetro Ej: pag_titulo',
'help_option' => '(Opcional, sólo se aplica a ciertos tipos como cuadro desplegable o botón de opción)',
'add_new' => 'Añadir nuevo parámetro',
'delete_question' => '¿Está seguro de que desea eliminar el parámetro :setting?',
'delete_confirm' => 'Sí, eliminar este parámetro',
'successfully_created' => 'Parámetro creado exitosamente',
'successfully_saved' => 'Parámetro guardado exitosamente',
'successfully_deleted' => 'Parámetro eliminado exitosamente',
'already_at_top' => 'Esto ya está en la parte superior de la lista',
'already_at_bottom' => 'Esto ya está en la parte inferior de la lista',
'key_already_exists' => 'Esta opción ya ha sido creada',
'moved_order_up' => 'Orden del parámetro :name aumentado',
'moved_order_down' => 'Orden del parámetro :name disminuido',
'successfully_removed' => 'Eliminado correctamente parámetro :name ',
'group_general' => 'General',
'group_admin' => 'Admin',
'group_site' => 'Site',
'group' => 'Grupo',
'help_group' => 'Esta opción está asignada a',
],
'media' => [
'add_new_folder' => 'Añadir nueva carpeta',
'audio_support' => 'Su navegador no admite el elemento de audio.',
'create_new_folder' => 'Crear nueva carpeta',
'delete_folder_question' => 'Eliminar una carpeta eliminará todos los archivos y carpetas contenidos dentro',
'destination_folder' => 'Carpeta de destino',
'drag_drop_info' => 'Arrastre y suelte archivos o haga clic abajo para cargar',
'error_already_exists' => 'Lo siento, ya hay un archivo/carpeta existente con ese nombre en esa carpeta.',
'error_creating_dir' => 'Lo siento, algo parece haber ido mal con la creación del directorio,'.
'por favor revise sus permisos',
'error_deleting_file' => 'Lo siento, algo parece haber ido mal con en el borrado del archivo,'.
'por favor revise sus permisos',
'error_deleting_folder' => 'Lo siento, algo parece haber fallado al eliminar esta carpeta,'.
'por favor revise sus permisos',
'error_may_exist' => 'Puede que ya exista un archivo o carpeta con ese nombre. Por favor, elige otro nombre o '.
'borre el otro archivo.',
'error_moving' => 'Lo siento, parece que hay un problema al mover ese archivo/carpeta, por favor '.
'asegúrese de tener los permisos correctos.',
'error_uploading' => 'Carga Fallida: Ocurrió un error desconocido!',
'folder_exists_already' => 'Lo siento, la carpeta ya existe, por favor, elimine esa carpeta si desea '.
'crearla nuevamente',
'image_does_not_exist' => 'La imagen no existe',
'image_removed' => 'Imagen eliminada',
'library' => 'Mediateca',
'loading' => 'CARGANDO SUS ARCHIVOS DE MEDIOS',
'move_file_folder' => 'Mover Archivo/Carpeta',
'new_file_folder' => 'Nuevo nombre de archivo/carpeta',
'new_folder_name' => 'Nombre de nueva carpeta',
'no_files_here' => 'No hay archivos aquí.',
'no_files_in_folder' => 'No hay archivos en esta carpeta.',
'nothing_selected' => 'No se ha seleccionado ningún archivo o carpeta',
'rename_file_folder' => 'Renombrar archivo/carpeta',
'success_uploaded_file' => 'Nuevo archivo subido exitosamente!',
'success_uploading' => 'Imagen cargada exitosamente!',
'uploading_wrong_type' => 'Falla de carga: formato de archivo no soportado o es demasiado grande para cargar!',
'video_support' => 'Su navegador no soporta la etiqueta de vídeo.',
'crop' => 'Cortar',
'crop_and_create' => 'Cortar & Crear',
'crop_override_confirm' => 'Se anulará la imagen original, ¿está seguro?',
'crop_image' => 'Recortar imagen',
'success_crop_image' => 'Imagen recortada con éxito',
'height' => 'Alto: ',
'width' => 'Ancho: ',
],
'menu_builder' => [
'color' => 'Color en RGB o hex (opcional)',
'color_ph' => 'Color (por ejemplo, #ffffff o rgb (255, 255, 255)',
'create_new_item' => 'Crear una nueva opción de menú',
'delete_item_confirm' => 'Sí, eliminar esta opción de menú',
'delete_item_question' => '¿Está seguro de que desea eliminar esta opción del menú?',
'drag_drop_info' => 'Arraste y suelte las opciones de menú para reogranizarlas',
'dynamic_route' => 'Ruta Dinámica',
'edit_item' => 'Editar opción del menú',
'icon_class' => 'Icono para la opción de menú (Use una',
'icon_class2' => 'Voyager Font Class</a>)',
'icon_class_ph' => 'Icono (opcional)',
'item_route' => 'Ruta para la opción de menú',
'item_title' => 'Título de la opción de menú',
'link_type' => 'Tipo de enlace',
'new_menu_item' => 'Nueva opción de menú',
'open_in' => 'Ábrelo',
'open_new' => 'Nueva pestaña / ventana',
'open_same' => 'Misma pestaña / ventana',
'route_parameter' => 'Parámetros de ruta (si existen)',
'static_url' => 'URL estática',
'successfully_created' => 'Se creó una nueva opción de menú.',
'successfully_deleted' => 'Opción de menú eliminada exitosamente.',
'successfully_updated' => 'Opción de menú actualizada exitosamente.',
'updated_order' => 'Orden actualizado exitosamente.',
'url' => 'URL para la opción de menú',
'usage_hint' => 'Puede emitir un menú en cualquier lugar de su sitio llamando a ',
],
'post' => [
'category' => 'Categoría del Post',
'content' => 'Contenido del Post',
'details' => 'Detalles del Post',
'excerpt' => 'Extracto<small> Pequeña descripción de este post </small>',
'image' => 'Publicar imagen',
'meta_description' => 'Meta Descripción',
'meta_keywords' => 'Meta palabras clave',
'new' => 'Crear nuevo post',
'seo_content' => 'Contenido SEO',
'seo_title' => 'Título Seo',
'slug' => 'URL slug',
'status' => 'Estado del Post',
'status_draft' => 'borrador',
'status_pending' => 'pendiente',
'status_published' => 'publicado',
'title' => 'Título del Post',
'title_sub' => 'El título de Post',
'update' => 'Actualizar Post',
],
'database' => [
'add_bread' => 'Añadir BREAD a esta tabla',
'add_new_column' => 'Añadir nueva columna',
'add_softdeletes' => 'Añadir Soft Deletes',
'add_timestamps' => 'Añadir Timestamps',
'already_exists' => 'ya existe',
'already_exists_table' => 'Tabla :table ya existe',
'bread_crud_actions' => 'Acciones BREAD / CRUD',
'bread_info' => 'Información de BREAD',
'column' => 'Columna',
'composite_warning' => 'Advertencia: esta columna forma parte de un índice compuesto',
'controller_name' => 'Nombre del Controlador',
'controller_name_hint' => 'Ejemplo. PageController, si se deja vacío, utilizará el controlador BREAD ',
'create_bread_for_table' => 'Crear BREAD para la tabla :table',
'create_migration' => '¿Crear migración para esta tabla?',
'create_model_table' => '¿Crear un modelo para esta tabla?',
'create_new_table' => 'Crear nueva tabla',
'create_your_new_table' => 'Cree su nueva tabla',
'default' => 'Defecto',
'delete_bread' => 'Eliminar BREAD',
'delete_bread_before_table' => 'Asegúrese de quitar el BREAD de esta tabla antes de borrar la tabla.',
'delete_table_bread_conf' => 'Sí, retire el BREAD',
'delete_table_bread_quest' => '¿Está seguro de que desea eliminar el BREAD para la tabla :table?',
'delete_table_confirm' => 'Sí, borrar esta tabla',
'delete_table_question' => '¿Está seguro de que desea eliminar la tabla :table?',
'description' => 'Descripción',
'display_name' => 'Nombre para mostrar',
'display_name_plural' => 'Nombre de visualización (Plural)',
'display_name_singular' => 'Nombre de visualización (Singular)',
'edit_bread' => 'Editar BREAD',
'edit_bread_for_table' => 'Editar BREAD para la tabla :table',
'edit_rows' => 'Editar las filas de la tabla siguiente:',
'edit_table' => 'Editar la tabla siguiente:',
'edit_table_not_exist' => 'La tabla que desea editar no existe',
'error_creating_bread' => 'Lo siento, parece que puede haber habido un problema al crear el BREAD',
'error_removing_bread' => 'Lo siento, parece que hubo un problema al eliminar el BREAD',
'error_updating_bread' => 'Lo siento, parece que puede haber habido un problema al actualizar el BREAD',
'extra' => 'Extra',
'field' => 'Campo',
'field_safe_failed' => 'No se pudo guardar el campo :field, ¡Estamos retrocediendo! ',
'generate_permissions' => 'Generar permisos',
'icon_class' => 'Icono a utilizar para esta tabla',
'icon_hint' => 'Icono (opcional) Utilice una ',
'icon_hint2' => 'Voyager Font Class',
'index' => 'ÍNDICE',
'input_type' => 'Tipo de entrada',
'key' => 'Clave',
'model_class' => 'Nombre de clase del modelo',
'model_name' => 'Nombre del modelo',
'model_name_ph' => 'ej. \App\Models\User, si se deja vacío intentará usar el nombre de la tabla ',
'name_warning' => 'Por favor, nombre la columna antes de añadir un índice',
'no_composites_warning' => 'Esta tabla tiene índices compuestos. Tenga en cuenta que en este momento'.
'no se admiten. Tenga cuidado al intentar agregar/quitar índices.',
'null' => 'Nulo',
'optional_details' => 'Detalles opcionales',
'policy_class' => 'Clase de restricciones',
'policy_name' => 'Nombre de restricciones',
'policy_name_ph' => 'ej. \App\Policies\UserPolicy, si se deja vacío, intentará usar el valor predeterminado',
'primary' => 'PRIMARIO',
'server_pagination' => 'Paginación del servidor',
'success_create_table' => 'Tabla :table creada exitosamente',
'success_created_bread' => 'BREAD creado exitosamente',
'success_delete_table' => 'Tabla :table eliminada exitosamente',
'success_remove_bread' => 'BREAD de tipo :datatype borrado exitosamente',
'success_update_bread' => 'Se actualizó correctamente el BREAD :datatype',
'success_update_table' => 'Tabla :table actualizada exitosamente',
'table_actions' => 'Acciones de la tabla',
'table_columns' => 'Columnas de la tabla',
'table_has_index' => 'La tabla ya tiene un índice primario.',
'table_name' => 'Nombre de la tabla',
'table_no_columns' => 'La tabla no tiene columnas ...',
'type' => 'Tipo',
'type_not_supported' => 'Este tipo no es compatible',
'unique' => 'ÚNICO',
'unknown_type' => 'Tipo desconocido',
'update_table' => 'Actualizar tabla',
'url_slug' => 'URL Slug (debe ser único)',
'url_slug_ph' => 'URL slug (ej posts)',
'visibility' => 'Visibilidad',
],
'dimmer' => [
'page' => 'Página|Páginas',
'page_link_text' => 'Ver todas las páginas',
'page_text' => 'Tiene :count :string en su base de datos. Haga clic en el botón de abajo para ver todas las páginas. ',
'post' => 'Post|Posts',
'post_link_text' => 'Ver todos los posts',
'post_text' => 'Tiene :count :string en su base de datos. Haga clic en el botón de abajo para ver todos los posts. ',
'user' => 'Usuario|Usuarios',
'user_link_text' => 'Ver todos los usuarios',
'user_text' => 'Tiene :count :string en su base de datos. Haga clic en el botón de abajo para ver todos los usuarios. ',
],
'form' => [
'field_password_keep' => 'Dejar vacío para mantener el mismo',
'field_select_dd_relationship' => 'Asegúrese de configurar la relación apropiada en el método :method de'.
'la clase :class.',
'type_checkbox' => 'Casilla de verificación',
'type_codeeditor' => 'Editor de código',
'type_file' => 'Archivo',
'type_image' => 'Imagen',
'type_radiobutton' => 'Botón de radio',
'type_richtextbox' => 'Caja de texto enriquecido',
'type_selectdropdown' => 'Seleccionar Desplegable',
'type_textarea' => 'Área de texto',
'type_textbox' => 'Caja de texto',
],
// DataTable translations from: https://github.com/DataTables/Plugins/tree/master/i18n
'datatable' => [
'sEmptyTable' => 'No hay datos disponibles en la tabla',
'sInfo' => 'Mostrando _START_ a _END_ de _TOTAL_ entradas',
'sInfoEmpty' => 'Mostrando 0 a 0 de 0 entradas',
'sInfoFiltered' => '(Filtrada de _MAX_ entradas totales)',
'sInfoPostFix' => '',
'sInfoThousands' => ',',
'sLengthMenu' => 'Mostrar _MENU_ entradas',
'sLoadingRecords' => 'Cargando...',
'sProcessing' => 'Procesando...',
'sSearch' => 'Buscar:',
'sZeroRecords' => 'No se encontraron registros coincidentes',
'oPaginate' => [
'sFirst' => 'Primero',
'sLast' => 'Último',
'sNext' => 'Siguiente',
'sPrevious' => 'Anterior',
],
'oAria' => [
'sSortAscending' => ': Activar para ordenar la columna ascendente',
'sSortDescending' => ': Activar para ordenar la columna descendente',
],
],
'theme' => [
'footer_copyright' => 'Hecho con <i class = "voyager-heart"> </i> por',
'footer_copyright2' => 'Hecho con ron e incluso más ron',
],
'json' => [
'invalid' => 'Json inválido',
'invalid_message' => 'Parece que has introducido algún JSON inválido.',
'valid' => 'Json Válido',
'validation_errors' => 'Errores de validación',
],
'analytics' => [
'by_pageview' => 'Por página',
'by_sessions' => 'Por sesiones',
'by_users' => 'Por usuarios',
'no_client_id' => 'Para ver los análisis, necesitará obtener una ID de cliente de Google Analytics y'.
'añadirla a su configuración para la clave <code>google_analytics_client_id'.
'</code>. Obtenga su clave en la consola de desarrolladores de Google: ',
'set_view' => 'Seleccionar una vista',
'this_vs_last_week' => 'Esta semana vs la semana pasada',
'this_vs_last_year' => 'Este Año vs el Año pasado',
'top_browsers' => 'Principales Navegadores',
'top_countries' => 'Principales países',
'various_visualizations' => 'Varias visualizaciones',
],
'error' => [
'symlink_created_text' => 'Acabamos de crear el enlace simbólico que faltaba para usted.',
'symlink_created_title' => 'Enlace simbólico de almacenamiento faltante creado',
'symlink_failed_text' => 'No hemos podido generar el enlace simbólico perdido para su aplicación. '.
'Parece que su proveedor de alojamiento no lo admite.',
'symlink_failed_title' => 'No se pudo crear un enlace simbólico de almacenamiento faltante',
'symlink_missing_button' => 'Arréglalo',
'symlink_missing_text' => 'No pudimos encontrar un enlace simbólico de almacenamiento. Esto podría causar problemas con '.
'la carga de archivos multimedia desde el navegador.',
'symlink_missing_title' => 'Falta el enlace simbólico de almacenamiento',
],
];

399
lang/fr/voyager.php Normal file
View File

@@ -0,0 +1,399 @@
<?php
return [
'date' => [
'last_week' => 'La semaine dernière',
'last_year' => 'L\'année dernière',
'this_week' => 'Cette semaine',
'this_year' => 'Cette année',
],
'generic' => [
'action' => 'Action',
'actions' => 'Actions',
'add' => 'Ajouter',
'add_folder' => 'Ajouter un dossier',
'add_new' => 'Ajouter nouveau',
'all_done' => 'Terminé',
'are_you_sure' => 'Etes-vous sûr',
'are_you_sure_delete' => 'Etes-vous sûr que vous voulez supprimer',
'auto_increment' => 'Incrémentation automatique',
'browse' => 'Naviguer',
'builder' => 'Constructeur',
'bulk_delete' => 'Supprimer la sélection',
'bulk_delete_confirm' => 'Oui, supprimer ces',
'bulk_delete_nothing' => 'Vous n\'avez sélectionné aucun élément à supprimer',
'cancel' => 'Annuler',
'choose_type' => 'Choisir le type',
'click_here' => 'Cliquez ici',
'close' => 'Fermer',
'created_at' => 'Créé le',
'custom' => 'Personnaliser',
'dashboard' => 'Tableau de bord',
'database' => 'Base de données',
'default' => 'Par défaut',
'delete' => 'Supprimer',
'delete_confirm' => 'Oui, supprimer !',
'delete_question' => 'Êtes-vous sûr de vouloir supprimer',
'delete_this_confirm' => 'Oui, le supprimer',
'deselect_all' => 'Tout désélectionner',
'download' => 'Télécharger',
'edit' => 'Editer',
'email' => 'Adresse email',
'error_deleting' => 'Désolé, il semble qu\'il y ait eu un problème de suppression',
'exception' => 'Exception',
'featured' => 'Mis en avant',
'field_does_not_exist' => 'Le champ n\'existe pas',
'how_to_use' => 'Comment utiliser',
'index' => 'Index',
'internal_error' => 'Erreur interne',
'items' => 'élément(s)',
'keep_sidebar_open' => 'Lâchez l\'ancre ! (gardez la barre latérale ouverte)',
'key' => 'Clé',
'last_modified' => 'Dernière modification',
'length' => 'longueur',
'login' => 'S\'identifier',
'media' => 'Média',
'menu_builder' => 'Constructeur de menu',
'move' => 'Déplacer',
'name' => 'Nom',
'new' => 'Nouveau',
'no' => 'Non',
'no_thanks' => 'Non merci',
'not_null' => 'Pas nul',
'options' => 'Options',
'password' => 'Mot de passe',
'permissions' => 'Permissions',
'profile' => 'Profil',
'public_url' => 'URL publique',
'read' => 'Lire',
'rename' => 'renommer',
'required' => 'Obligatoire',
'return_to_list' => 'Retourner à la liste',
'route' => 'Route',
'save' => 'Enregistrer',
'search' => 'Chercher',
'select_all' => 'Tout sélectionner',
'settings' => 'Paramètres',
'showing_entries' => 'Affichage :from à :to de :all entrées|Affichage :from à :to de :all entrées',
'submit' => 'Soumettre',
'successfully_added_new' => 'Ajouté avec succès',
'successfully_deleted' => 'Supprimer avec succès',
'successfully_updated' => 'Mis à jour avec succès',
'timestamp' => 'Timestamp',
'title' => 'Titre',
'type' => 'Type',
'unsigned' => 'Non signé (unsigned)',
'unstick_sidebar' => 'Dé-ancrer la barre latérale',
'update' => 'Mise à jour',
'update_failed' => 'Echèc de la mise à jour',
'upload' => 'Télécharger',
'url' => 'URL',
'view' => 'Vue',
'viewing' => 'Affichage',
'yes' => 'Oui',
'yes_please' => 'Oui, s\'il vous plaît',
],
'login' => [
'loggingin' => 'Se connecter',
'signin_below' => 'Connectez-vous ci-dessous :',
'welcome' => 'Bienvenue dans Voyager, l\' administration qui manquait à Laravel',
],
'profile' => [
'avatar' => 'Avatar',
'edit' => 'Editer mon profil',
'edit_user' => 'Editer l\'utilisateur',
'password' => 'Mot de passe',
'password_hint' => 'Laissez vide pour garder le même',
'role' => 'Rôle',
'user_role' => 'Rôle utilisateur',
],
'settings' => [
'usage_help' => 'Vous pouvez obtenir la valeur de chaque paramètre n\'importe où sur votre site en '.
'appelant',
'save' => 'Enregistrer les paramètres',
'new' => 'Nouveau paramètre',
'help_name' => 'Nom du paramètre, exemple : Titre de l\'espace d\'administration',
'help_key' => 'Clé de paramètre, exemple : titre_admin',
'help_option' => '(en option. S\'applique uniquement à certains types, comme un menu déroulant ou un '.
'bouton radio)',
'add_new' => 'Ajouter un nouveau paramètre',
'delete_question' => 'Êtes-vous sûr de vouloir supprimer le paramètre : :setting ?',
'delete_confirm' => 'Oui, supprimer ce paramètre',
'successfully_created' => 'Paramètres créés avec succès',
'successfully_saved' => 'Paramètres enregistrés avec succès',
'successfully_deleted' => 'Paramètres supprimés avec succès',
'already_at_top' => 'Déjà en haut de la liste',
'already_at_bottom' => 'Déjà en bas de la liste',
'moved_order_up' => 'Trier le paramètre :name en ordre croissant',
'moved_order_down' => 'Trier le paramètre :name en ordre décroissant',
'successfully_removed' => 'Valeur :name supprimée avec succès',
],
'media' => [
'add_new_folder' => 'Ajouter un dossier',
'audio_support' => 'Votre navigateur ne supporte pas l\'élément audio.',
'create_new_folder' => 'Créer un nouveau dossier',
'delete_folder_question' => 'La suppression d\'un dossier supprime tout son contenu !',
'destination_folder' => 'Dossier de destination',
'drag_drop_info' => 'Glissez/déposez des fichiers ou cliquez ci-dessous pour télécharger',
'error_already_exists' => 'Désolé, il existe déjà un fichier/dossier avec ce nom dans ce dossier.',
'error_creating_dir' => 'Désolé, quelque chose n\'a pas fonctionné lors de la création du dossier, '.
'vérifiez les autorisations SVP',
'error_deleting_file' => 'Désolé, quelque chose n\'a pas fonctionné lors de la suppression du fichier, '.
'vérifiez les autorisations SVP',
'error_deleting_folder' => 'Désolé, quelque chose n\'a pas fonctionné lors de la suppression du dossier, '.
'vérifiez les autorisations SVP',
'error_may_exist' => 'Un fichier ou un dossier avec ce nom existe déjà. Choisissez un autre nom '.
'ou supprimez le fichier/dossier existant.',
'error_moving' => 'Désolé, il y a un problème pour déplacer ce fichier/dossier, '.
'vérifiez les autorisations SVP',
'error_uploading' => 'Échec du téléchargement : une erreur inconnue s\'est produite !',
'folder_exists_already' => 'Désolé, ce dossier existe déjà. Supprimez-le pour le récréer ou '.
'choisissez un autre nom',
'image_does_not_exist' => 'L\'image n\'existe pas',
'image_removed' => 'Image supprimée',
'library' => 'Médiathèque',
'loading' => 'CHARGEMENT DES FICHIERS MULTIMEDIA',
'move_file_folder' => 'Déplacer fichier/dossier',
'new_file_folder' => 'Nouveau nom de fichier/dossier',
'new_folder_name' => 'Nouveau nom de dossier',
'no_files_here' => 'Nouveau fichier ici.',
'no_files_in_folder' => 'Il n\'y a pas de fichier dans ce dossier.',
'nothing_selected' => 'Aucun fichier ou dossier sélectionné',
'rename_file_folder' => 'renommer le fichier/dossier',
'success_uploaded_file' => 'Téléchargement du fichier réussi !',
'success_uploading' => 'Image téléchargée avec succès !',
'uploading_wrong_type' => 'Échec du téléchargement : format de fichier non pris en charge ou volume trop '.
'important !',
'video_support' => 'Votre navigateur ne prend pas en charge la balise vidéo.',
],
'menu_builder' => [
'color' => 'Couleur en RVB ou hexadécimal (optionnel)',
'color_ph' => 'Couleur (ex. #ffffff ou rgb(255, 255, 255)',
'create_new_item' => 'Créer un nouvel élément de menu',
'delete_item_confirm' => 'Oui, supprimez cet élément de menu',
'delete_item_question' => 'Êtes-vous sûr de vouloir supprimer cet élément de menu ?',
'drag_drop_info' => 'Glissez/déposez les éléments du menu ci-dessous pour les réorganiser.',
'dynamic_route' => 'Route dynamique',
'edit_item' => 'Editer l\'élément du menu',
'icon_class' => 'Icône pour l\'élément de menu (utilisez la ',
'icon_class2' => 'police d\'icône Voyager</a>)',
'icon_class_ph' => 'Classe d\'icône (optionnel)',
'item_route' => 'Route pour l\'élément de menu',
'item_title' => 'Titre pour l\'élément de menu',
'link_type' => 'Type de lien',
'new_menu_item' => 'Nouvel élément de menu',
'open_in' => 'Ouvrir dans',
'open_new' => 'Nouvel onglet/fenêtre',
'open_same' => 'Même onglet/fenêtre',
'route_parameter' => 'Paramètres de Route (le cas échéant)',
'static_url' => 'URL statique',
'successfully_created' => 'Nouvel élément de menu créé avec succès.',
'successfully_deleted' => 'Elément de menu supprimé avec succès.',
'successfully_updated' => 'Elément de menu édité avec succès.',
'updated_order' => 'Elément de menu réordonné avec succès.',
'url' => 'URL pour l\'élément de menu',
'usage_hint' => 'Vous pouvez afficher un menu n\'importe où sur le site en appelant|Vous '.
'pouvez afficher ce menu n\'importe où sur le site en appelant',
],
'post' => [
'category' => 'Catégorie de l\'article',
'content' => 'Contenu de l\'article',
'details' => 'Détails de l\'article',
'excerpt' => 'Extrait <small>courte description de l\'article</small>',
'image' => 'Image de l\'article',
'meta_description' => 'Meta déscription',
'meta_keywords' => 'Meta mots clés',
'new' => 'Créé un nouvel article',
'seo_content' => 'Contenu SEO',
'seo_title' => 'Titre SEO',
'slug' => 'Slug URL',
'status' => 'Statut de l\'article',
'status_draft' => 'brouillon',
'status_pending' => 'en attente',
'status_published' => 'publié',
'title' => 'Titre de l\'article',
'title_sub' => 'Le titre de votre article',
'update' => 'Mettre à jour l\'article',
],
'database' => [
'add_bread' => 'Ajouter le BREAD à cette table',
'add_new_column' => 'Ajouter une nouvelle colonne',
'add_softdeletes' => 'Ajouter la suppression en cascade (soft deletes)',
'add_timestamps' => 'Ajouter les Timestamps',
'already_exists' => 'existe déjà',
'already_exists_table' => 'La table :table existe déjà',
'bread_crud_actions' => 'Actions du BREAD/CRUD',
'bread_info' => 'Information du BREAD',
'column' => 'Colonne',
'composite_warning' => 'Avertissement : cette colonne fait partie d\'un indice composite '.
'(composite index)',
'controller_name' => 'Nom du controleur',
'controller_name_hint' => 'exemple : PageController. Si laissé vide, utilisera le contrôleur BREAD',
'create_bread_for_table' => 'Créer un BREAD pour la table :table',
'create_migration' => 'Créer une migration pour cette table ?',
'create_model_table' => 'Créer un modèle pour cette table ?',
'create_new_table' => 'Créer une nouvelle table',
'create_your_new_table' => 'Créez votre nouvelle table',
'default' => 'Par défaut',
'delete_bread' => 'Supprimer le BREAD',
'delete_bread_before_table' => 'Assurez-vous de supprimer le BREAD avant de supprimer sa table.',
'delete_table_bread_conf' => 'Oui, supprimer le BREAD',
'delete_table_bread_quest' => 'Êtes-vous sûr de vouloir supprimer le BREAD de la table : :table ?',
'delete_table_confirm' => 'Oui, supprimer cette table',
'delete_table_question' => 'Êtes-vous sûr de vouloir supprimer la table : :table ?',
'description' => 'Description',
'display_name' => 'Nom affiché',
'display_name_plural' => 'Nom affiché (au pluriel)',
'display_name_singular' => 'Nom affiché (au singulier)',
'edit_bread' => 'Editer le BREAD',
'edit_bread_for_table' => 'Editer le BREAD de la table : :table',
'edit_rows' => 'Modifier les rangs pour la table :table ci-dessous',
'edit_table' => 'Editer la table :table ci-dessous',
'edit_table_not_exist' => 'La table que vous souhaitez modifier n\'existe pas',
'error_creating_bread' => 'Désolé, il semble qu\'il y ait eu un problème pour créer ce BREAD',
'error_removing_bread' => 'Désolé, il semble qu\'il y ait eu un problème pour supprimer ce BREAD',
'error_updating_bread' => 'Désolé, il semble qu\'il y ait eu un problème pour mettre à jour ce BREAD',
'extra' => 'Extra',
'field' => 'Champ',
'field_safe_failed' => 'Échec de l\'enregistrement du champ : :field. Nous sommes revenu en arrière !',
'generate_permissions' => 'Générer les permissions',
'icon_class' => 'Icône à utiliser pour cette table',
'icon_hint' => 'Icône (optionel), utiliser une',
'icon_hint2' => 'police d\'icône Voyager',
'index' => 'INDEX',
'input_type' => 'Type d\'entrée (input)',
'key' => 'Clé',
'model_class' => 'Nom de la classe du modèle (model)',
'model_name' => 'Nom du modèle (model)',
'model_name_ph' => 'exemple : \App\Models\User. Si laissé vide, essayera d\'utiliser le nom de la table',
'name_warning' => 'Nommez la colonne avant d\'ajouter un index SVP',
'no_composites_warning' => 'Cette table comporte des index composites. Notez qu\'ils ne sont pas pris en '.
'charge pour le moment. Faites attention lorsque vous essayez '.
'd\'ajouter/supprimer des index.',
'null' => 'Null',
'optional_details' => 'Détails facultatifs',
'primary' => 'PRIMARY',
'server_pagination' => 'Pagination côté serveur',
'success_create_table' => 'Table : :table créée avec succès',
'success_created_bread' => 'Nouveau BREAD créé avec succès',
'success_delete_table' => 'Table : :table supprimée avec succès',
'success_remove_bread' => ':datatype BREAD supprimé avec succès',
'success_update_bread' => ':datatype BREAD mis à jour avec succès',
'success_update_table' => 'Table :table mise à jour avec succès',
'table_actions' => 'Actions sur le tableau',
'table_columns' => 'Colonnes de table',
'table_has_index' => 'La table comporte déjà un indice primaire (primary index).',
'table_name' => 'Nom de la table',
'table_no_columns' => 'La table n\a pas de colonnes...',
'type' => 'Type',
'type_not_supported' => 'Ce type n\'est pas supporté',
'unique' => 'UNIQUE',
'unknown_type' => 'Type inconnu',
'update_table' => 'Mettre la table à jour',
'url_slug' => 'URL Slug (doit être unique)',
'url_slug_ph' => 'URL slug (exemple : articles)',
'visibility' => 'Visibilité',
],
'dimmer' => [
'page' => 'Page|Pages',
'page_link_text' => 'Voir toutes les pages',
'page_text' => 'Vous avez :count :string enregistrées. Cliquez sur le bouton ci-dessous pour afficher '.
'toutes les pages.',
'post' => 'Article|Articles',
'post_link_text' => 'Voir tous les articles',
'post_text' => 'Vous avez :count :string enregistrés. Cliquez sur le bouton ci-dessous pour afficher '.
'tous les articles.',
'user' => 'Utilisateur|Utilisateur',
'user_link_text' => 'Voir tous les utilisateurs',
'user_text' => 'Vous avez :count :string enregistrés. Cliquez sur le bouton ci-dessous pour afficher '.
'tous les utilisateurs.',
],
'form' => [
'field_password_keep' => 'Laissez vide pour garder le même',
'field_select_dd_relationship' => 'Assurez-vous de configurer la relation appropriée dans la méthode :method '.
'de la classe :class.',
'type_checkbox' => 'Case à cocher',
'type_codeeditor' => 'Editeur de code',
'type_file' => 'Fichier',
'type_image' => 'Image',
'type_radiobutton' => 'Bouton radio',
'type_richtextbox' => 'Champ texte enrichie',
'type_selectdropdown' => 'Menu déroulant',
'type_textarea' => 'Aire de texte',
'type_textbox' => 'Champ texte',
],
// DataTable translations from: https://github.com/DataTables/Plugins/tree/master/i18n
'datatable' => [
'sEmptyTable' => 'Aucune donnée disponible',
'sInfo' => 'Affichage _START_ à _END_ de _TOTAL_ entréees',
'sInfoEmpty' => 'Affichage 0 à 0 de 0 entréees',
'sInfoFiltered' => '(filtré de _MAX_ entréees totales)',
'sInfoPostFix' => '',
'sInfoThousands' => ' ',
'sLengthMenu' => 'Afficher les entréees : _MENU_',
'sLoadingRecords' => 'Chargement...',
'sProcessing' => 'En traitement...',
'sSearch' => 'Recherche :',
'sZeroRecords' => 'Aucun enregistrements correspondants trouvés',
'oPaginate' => [
'sFirst' => 'Premier',
'sLast' => 'Dernier',
'sNext' => 'Suivant',
'sPrevious' => 'Précedent',
],
'oAria' => [
'sSortAscending' => ': Trier la colonne en ordre croissant',
'sSortDescending' => ': Trier la colonne en ordre décroissant',
],
],
'theme' => [
'footer_copyright' => 'Fait avec <i class="voyager-heart"></i> par',
'footer_copyright2' => 'Fait avec du rhum et encore plus de rhum :p',
],
'json' => [
'invalid' => 'Json non valide',
'invalid_message' => 'Il semble que votre JSON soit non valide.',
'valid' => 'Json valide',
'validation_errors' => 'Erreurs de validation',
],
'analytics' => [
'by_pageview' => 'Par pages vues',
'by_sessions' => 'Par sessions',
'by_users' => 'Par utilisateurs',
'no_client_id' => 'Pour afficher Google Analytics, vous devrez obtenir un identifiant et '.
'l\'ajouter à vos paramètres clé : <code>google_analytics_client_id</code>. '.
'Obtenez une clé dans l\'espace développeur Google :',
'set_view' => 'Sélectionner une vue',
'this_vs_last_week' => 'Cette semaine contre la semaine dernière',
'this_vs_last_year' => 'Cette année contre l\'année dernière',
'top_browsers' => 'Top navigateurs',
'top_countries' => 'Top pays',
'various_visualizations' => 'Visualisations diverses',
],
'error' => [
'symlink_created_text' => 'Nous avons créé le lien symbolique manquant pour vous.',
'symlink_created_title' => 'Le lien symbolique de stockage manquant a été créé',
'symlink_failed_text' => 'Nous n\'avons pu généré le lien symbolique manquant pour votre application. '.
'Il semble que votre hébergeur ne supporte pas cette fonction.',
'symlink_failed_title' => 'Impossible de créer un lien symbolique de stockage manquant',
'symlink_missing_button' => 'Le réparer !',
'symlink_missing_text' => 'Nous n\'avons pu trouver le lien symbolique de stockage. '.
'Cela pourrait causer des problèmes de chargement des fichiers multimédias.',
'symlink_missing_title' => 'Le lien symbolique de stockage est manquant',
],
];

19
lang/it/auth.php Normal file
View 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' => 'Queste credenziali non corrispondono a quelle in archivio.',
'throttle' => 'Troppi tentativi di accesso. Riprova tra :seconds secondi.',
];

19
lang/it/pagination.php Normal file
View 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' => '&laquo; Precedente',
'next' => 'Successivo &raquo;',
];

22
lang/it/passwords.php Normal file
View 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' => 'Le password devono contenere almeno sei caratteri e la conferma deve corrispondere.',
'reset' => 'La tua password è stata reimpostata!',
'sent' => 'Abbiamo inviato per e-mail il link per reimpostare la password!',
'token' => 'Questo token di reimpostazione della password non è valido.',
'user' => "Non riusciamo a trovare un utente con questo indirizzo e-mail.",
];

155
lang/it/validation.php Normal file
View File

@@ -0,0 +1,155 @@
<?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' => 'Il :attribute deve essere accettato.',
'active_url' => 'Il :attribute non è un URL valido.',
'after' => 'Il :attribute deve essere una data successiva a :date.',
'after_or_equal' => 'Il :attribute deve essere una data uguale o successiva a :date.',
'alpha' => 'Il :attribute può contenere solo lettere.',
'alpha_dash' => 'Il :attribute può contenere solo lettere, numeri e trattini.',
'alpha_num' => 'Il :attribute può contenere solo lettere e numeri.',
'array' => 'Il :attribute deve essere un array.',
'before' => 'Il :attribute deve essere una data precedente a :date.',
'before_or_equal' => 'Il :attribute deve essere una data precedente o uguale a :date.',
'between' => [
'numeric' => 'Il :attribute deve essere compreso tra :min e :max.',
'file' => 'Il :attribute deve essere compreso tra :min e :max kilobyte.',
'string' => 'Il :attribute deve essere compreso tra :min e :max caratteri.',
'array' => 'Il :attribute deve essere compreso tra :min e :max elementi.',
],
'boolean' => 'Il campo :attribute deve essere vero o falso.',
'confirmed' => 'La conferma di :attribute non corrisponde.',
'date' => 'Il :attribute non è una data valida.',
'date_equals' => 'Il :attribute deve essere una data uguale a :date.',
'date_format' => 'Il :attribute non corrisponde al formato :format.',
'different' => 'Il :attribute e :other devono essere differenti.',
'digits' => 'Il :attribute deve essere :digits cifre.',
'digits_between' => 'Il :attribute deve essere compreso tra :min e :max cifre.',
'dimensions' => 'Il :attribute ha dimensioni immagine non valide.',
'distinct' => 'Il campo :attribute ha un valore duplicato.',
'email' => 'Il :attribute deve essere un indirizzo e-mail valido.',
'ends_with' => 'Il :attribute deve finire con uno dei seguenti: :values.',
'exists' => 'Il :attribute selezionato non è valido.',
'file' => 'Il :attribute deve essere un file.',
'filled' => 'Il campo :attribute è richiesto.',
'gt' => [
'numeric' => 'Il :attribute deve essere maggiore di :value.',
'file' => 'Il :attribute deve essere maggiore di :value kilobyte.',
'string' => 'Il :attribute deve essere maggiore di :value caratteri.',
'array' => 'Il :attribute deve avere più di :value elementi.',
],
'gte' => [
'numeric' => 'Il :attribute deve essere maggiore o uguale a :value.',
'file' => 'Il :attribute deve essere maggiore o uguale a :value kilobyte.',
'string' => 'Il :attribute deve essere maggiore o uguale a :value caratteri.',
'array' => 'Il :attribute deve avere :value items or more.',
],
'image' => 'Il :attribute deve essere una immagine.',
'in' => 'Il :attribute selezionato non è valido.',
'in_array' => 'Il campo :attribute non esiste in in :other.',
'integer' => 'Il :attribute deve essere un intero.',
'ip' => 'Il :attribute deve essere un indirizzo IP valido.',
'ipv4' => 'Il :attribute deve essere un indirizzo IPv4 valido.',
'ipv6' => 'Il :attribute deve essere un indirizzo IPv6 valido.',
'json' => 'Il :attribute deve essere una stringa JSON valida.',
'lt' => [
'numeric' => 'Il :attribute deve essere meno di :value.',
'file' => 'Il :attribute deve essere meno di :value kilobyte.',
'string' => 'Il :attribute deve essere meno di :value caratteri.',
'array' => 'Il :attribute deve avere meno di :value elementi.',
],
'lte' => [
'numeric' => 'Il :attribute deve essere uguale o minore di :value.',
'file' => 'Il :attribute deve essere uguale o minore di :value kilobyte.',
'string' => 'Il :attribute deve essere uguale o minore di :value caratteri.',
'array' => 'Il :attribute non può avere più di :value elementi.',
],
'max' => [
'numeric' => 'Il :attribute non può essere maggiore di :max.',
'file' => 'Il :attribute non può essere maggiore di :max kilobyte.',
'string' => 'Il :attribute non può essere maggiore di :max caratteri.',
'array' => 'Il :attribute non può avere più di :max elemento.',
],
'mimes' => 'Il :attribute deve essere un file di tipo: :values.',
'mimetypes' => 'Il :attribute must be a file di uno dei seguenti tipi: :values.',
'min' => [
'numeric' => 'Il :attribute deve essere almeno :min.',
'file' => 'Il :attribute deve essere almeno :min kilobyte.',
'string' => 'Il :attribute deve essere almeno :min caratteri.',
'array' => 'Il :attribute deve avere almeno :min elementi.',
],
'multiple_of' => 'Il :attribute deve essere un multiplo di :value.',
'not_in' => 'Il :attribute selezionato non è valido.',
'not_regex' => 'Il formato di :attribute non è valido.',
'numeric' => 'Il :attribute deve essere un numero.',
'password' => 'La password non è corretta.',
'present' => 'Il campo :attribute deve essere presente.',
'regex' => 'Il formato di :attribute non è valido.',
'required' => 'Il campo :attribute è richiesto.',
'required_if' => 'Il campo :attribute è richiesto quando :other è :value.',
'required_unless' => 'Il campo :attribute è richiesto a meno che :other è in :values.',
'required_with' => 'Il campo :attribute è richiesto quando :values è presente.',
'required_with_all' => 'Il campo :attribute è richiesto quando :values sono presenti.',
'required_without' => 'Il campo :attribute è richiesto quando :values non sono presenti.',
'required_without_all' => 'Il campo :attribute è richiesto quando nessun :values è presente.',
'prohibited' => 'Il campo :attribute è proibito.',
'prohibited_if' => 'Il campo :attribute è proibito quando :other è :value.',
'prohibited_unless' => 'Il campo :attribute è proibito a meno che :other è in :values.',
'same' => 'Il :attribute e :other devono corrispondere.',
'size' => [
'numeric' => 'Il :attribute deve essere :size.',
'file' => 'Il :attribute deve essere :size kilobyte.',
'string' => 'Il :attribute deve essere :size caratteri.',
'array' => 'Il :attribute deve contenere :size elementi.',
],
'starts_with' => 'Il :attribute deve cominciare con uno dei seguenti: :values.',
'string' => 'Il :attribute deve essere una stringa.',
'timezone' => 'Il :attribute deve essere una zona valida.',
'unique' => 'Il :attribute è già stato preso.',
'uploaded' => 'Non è stato possibile caricare :attribute.',
'url' => 'Il formato :attribute non è valido.',
'uuid' => 'Il :attribute deve essere un UUID valido.',
/*
|--------------------------------------------------------------------------
| 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 our attribute placeholder
| with something more reader friendly such as "E-Mail Address" instead
| of "email". This simply helps us make our message more expressive.
|
*/
'attributes' => [],
];

402
lang/it/voyager.php Normal file
View File

@@ -0,0 +1,402 @@
<?php
return [
'date' => [
'last_week' => 'Ultima Settimana',
'last_year' => 'Ultimo Anno',
'this_week' => 'Questa Settimana',
'this_year' => 'Questo Anno',
],
'generic' => [
'action' => 'Azione',
'actions' => 'Azioni',
'add' => 'Aggiungi',
'add_folder' => 'Aggiungi Cartella',
'add_new' => 'Aggiungi Nuovo',
'all_done' => 'Tutto Fatto',
'are_you_sure' => 'Sei sicuro',
'are_you_sure_delete' => 'Sei sicuro di voler eliminare',
'auto_increment' => 'Incremento Automatico',
'browse' => 'Sfoglia',
'builder' => 'Costruttore',
'bulk_delete' => 'Elimina in blocco',
'bulk_delete_confirm' => 'Sì, elimina questi',
'bulk_delete_nothing' => 'Non hai selezionato nulla da eliminare',
'cancel' => 'Annulla',
'choose_type' => 'Scegli il tipo',
'click_here' => 'Clicca qui',
'close' => 'Chiudi',
'compass' => 'Bussola',
'created_at' => 'Creato il',
'custom' => 'Custom',
'dashboard' => 'Bacheca',
'database' => 'Database',
'default' => 'Default',
'delete' => 'Elimina',
'delete_confirm' => 'Sì, elimina!',
'delete_question' => 'Sei sicuro di volerlo eliminare',
'delete_this_confirm' => 'Sì, eliminalo',
'deselect_all' => 'Deseleziona TUTTO',
'download' => 'Scarica',
'edit' => 'Modifica',
'email' => 'E-mail',
'error_deleting' => 'Spiacenti sembra ci sia stato un problema durante l\'eliminazione',
'exception' => 'Eccezione',
'featured' => 'In primo piano',
'field_does_not_exist' => 'Campo non esiste',
'how_to_use' => 'Come Usare',
'index' => 'Indice',
'internal_error' => 'Errore interno',
'items' => 'item(s)',
'keep_sidebar_open' => 'Yarr! Calate le ancore! (e lascia la barra laterale aperta)',
'key' => 'Chiave',
'last_modified' => 'Ultima modifica',
'length' => 'Lunghezza',
'login' => 'Login',
'media' => 'Media',
'menu_builder' => 'Costruttore del menù',
'move' => 'Sposta',
'name' => 'Nome',
'new' => 'Nuovo',
'no' => 'No',
'no_thanks' => 'No Grazie',
'not_null' => 'Non Null',
'options' => 'Opzioni',
'password' => 'Password',
'permissions' => 'Permessi',
'profile' => 'Profilo',
'public_url' => 'URL Pubblico',
'read' => 'Leggi',
'rename' => 'Rinomina',
'required' => 'Richiesto',
'return_to_list' => 'Torna alla Lista',
'route' => 'Percorso',
'save' => 'Salva',
'search' => 'Cerca',
'select_all' => 'Seleziona Tutto',
'select_group' => 'Seleziona un Gruppo Esistente o Aggiungi un Nuovo Gruppo',
'settings' => 'Impostazioni',
'showing_entries' => 'Visualizzazione dei risultati da :from a :to di :all|Visualizzazione dei risultati da :from a :to di :all',
'submit' => 'Invia',
'successfully_added_new' => 'Aggiunto con successo',
'successfully_deleted' => 'Eliminato con successo',
'successfully_updated' => 'Aggiornato con successo',
'timestamp' => 'Timestamp',
'title' => 'Titolo',
'type' => 'Tipo',
'unsigned' => 'Valore Assoluto',
'unstick_sidebar' => 'Sbloccare la barra laterale',
'update' => 'Aggiorna',
'update_failed' => 'Aggiornamento fallito',
'upload' => 'Carica',
'url' => 'URL',
'view' => 'Visualizza',
'viewing' => 'Visualizzando',
'yes' => 'Sì',
'yes_please' => 'Sì, Per favore',
],
'login' => [
'loggingin' => 'Collegati',
'signin_below' => 'Accedi Qui Sotto:',
'welcome' => 'Benvenuti in Voyager. L\'Admin panel che mancava per Laravel',
],
'profile' => [
'avatar' => 'Avatar',
'edit' => 'Modifica il mio profilo',
'edit_user' => 'Modifica Utente',
'password' => 'Password',
'password_hint' => 'Lasciare vuoto per mantenere lo stesso',
'role' => 'Ruolo',
'user_role' => 'Ruolo Utente',
],
'settings' => [
'usage_help' => 'Puoi ottenere il valore di ogni impostazione in qualsiasi punto del tuo sito chiamando',
'save' => 'Salva Impostazioni',
'new' => 'Nuova Impostazione',
'help_name' => 'Es Nome Setting: Titolo Admin',
'help_key' => 'Es Chiave Setting: titolo_admin',
'help_option' => '(facoltativo, si applica solo a determinati tipi come il riquadro a discesa o il pulsante di scelta rapida)',
'add_new' => 'Aggiungi Nuova Impostazione',
'delete_question' => 'Sei sicuro di voler eliminare l\'impostazione :setting ?',
'delete_confirm' => 'Sì, Elimina questa Impostazione',
'successfully_created' => 'Impostazione Creata con Successo',
'successfully_saved' => 'Impostazione Salvata con Successo',
'successfully_deleted' => 'Impostazione Eliminata con Successo',
'already_at_top' => 'Questo è già in cima all\'elenco',
'already_at_bottom' => 'Questo è già in fondo all\'elenco',
'key_already_exists' => 'La Chiave :key è già esistente',
'moved_order_up' => 'Impostazione :name spostato in sù',
'moved_order_down' => 'Impostazione :name spostato in giù',
'successfully_removed' => 'Il valore dell\'Impostazione :name è stato eliminato',
'group_general' => 'Generale',
'group_admin' => 'Amministratore',
'group_site' => 'Sito',
'group' => 'Gruppo',
'help_group' => 'Questa impostazione è assegnata a',
],
'media' => [
'add_new_folder' => 'Aggiungi Nuova Cartella',
'audio_support' => 'Il tuo browser non supporta l\'elemento audio.',
'create_new_folder' => 'Crea Nuova Cartella',
'delete_folder_question' => 'Eliminando una cartella verranno eliminati anche i file e le cartelle al suo interno',
'destination_folder' => 'Cartella di Destinazione',
'drag_drop_info' => 'Trascina e rilascia i file o premi sotto per caricare',
'error_already_exists' => 'Spiacenti esiste già un file o una cartella con questo nome in questa cartella.',
'error_creating_dir' => 'Spiacenti qualcosa è andato storto nella creazione della cartella, '.
'per favore controllate i vostri permessi',
'error_deleting_file' => 'Spiacenti qualcosa è andato storto nell\'eliminazione di questo file, per favore controllate i vostri '.
'permessi',
'error_deleting_folder' => 'Spiacenti qualcosa è andato storto nell\'eliminazione di questa cartella, '.
'per favore controllate i vostri permessi',
'error_may_exist' => 'Un File o una cartella potrebbero già esistere con quel nome. Scegli un altro nome oppure '.
'elimina l\'altro file.',
'error_moving' => 'Spiacenti, sembra che ci sia un problema nello spostare quel file / cartella, per favore '.
'controllate di avere i permessi corretti.',
'error_uploading' => 'Caricamento Fallito: Errore sconosciuto!',
'folder_exists_already' => 'Spiacenti questa cartella è già esistente, si prega di eliminarla se si desira '.
'ricrearla',
'image_does_not_exist' => 'L\'immagine non esiste',
'image_removed' => 'Immagine rimossa',
'library' => 'Libreria Media',
'loading' => 'CARICAMENTO DEI VOSTRI MEDIA FILES',
'move_file_folder' => 'Sposta File/Cartella',
'new_file_folder' => 'Nuovo nome di File/Cartella',
'new_folder_name' => 'Nuovo Nome di Cartella',
'no_files_here' => 'Nessun file presente.',
'no_files_in_folder' => 'Nessun file in questa cartella.',
'nothing_selected' => 'Nessun file o cartella selezionata',
'rename_file_folder' => 'Rinomina File/Cartella',
'success_uploaded_file' => 'Il nuovo file è stato caricato con successo!',
'success_uploading' => 'Immagine caricata con successo!',
'uploading_wrong_type' => 'Caricamento Fallito: File non supportato o troppo grande per essere caricato!',
'video_support' => 'Il tuo browser non supporta il tag video.',
],
'menu_builder' => [
'color' => 'Colore in RGB o hex (opzionale)',
'color_ph' => 'Colore (es. #ffffff o rgb(255, 255, 255)',
'create_new_item' => 'Crea un nuovo elemento del Menù',
'delete_item_confirm' => 'Sì, Elimina questo elemento del Menù',
'delete_item_question' => 'Sei sicuro di voler eliminare questo elemento del menù?',
'drag_drop_info' => 'Trascina gli elementi del menù qui sotto per riordinarli.',
'dynamic_route' => 'Percorso Dinamico',
'edit_item' => 'Modifica Elemento di Menù',
'icon_class' => 'Classe Font Icon per l\'elemento del menù (usare una',
'icon_class2' => 'Voyager Font Class</a>)',
'icon_class_ph' => 'Icon Class (opzionale)',
'item_route' => 'Percorso per l\'elemento del menù',
'item_title' => 'Titolo dell\'elemento del menù',
'link_type' => 'Tipo Link',
'new_menu_item' => 'Nuovo Elemento di Menù',
'open_in' => 'Apri in',
'open_new' => 'Nuova Tab/Finestra',
'open_same' => 'Stessa Tab/Finestra',
'route_parameter' => 'Parametri percorso (se necessari)',
'static_url' => 'URL Statico',
'successfully_created' => 'Elemento del Menù Creato con Successo.',
'successfully_deleted' => 'Elemento del Menù Eliminato con Successo.',
'successfully_updated' => 'Elemento del Menù Aggiornato con Successo.',
'updated_order' => 'Ordine menù aggiornato con successo.',
'url' => 'URL per l\'Elemento del Menù',
'usage_hint' => 'È possibile stampare un menu ovunque nel tuo sito chiamando|Puoi stampare '.
'questo menu ovunque nel tuo sito chiamando',
],
'post' => [
'category' => 'Categoria Articolo',
'content' => 'Contenuto Articolo',
'details' => 'Dettagli Articolo',
'excerpt' => 'Estratto <small>Piccola descrizione di questo articolo</small>',
'image' => 'Immagine Articolo',
'meta_description' => 'Meta Description',
'meta_keywords' => 'Meta Keywords',
'new' => 'Crea Nuovo Articolo',
'seo_content' => 'Contenuto SEO',
'seo_title' => 'Titolo SEO',
'slug' => 'URL slug',
'status' => 'Stato Articolo',
'status_draft' => 'bozza',
'status_pending' => 'in attesa',
'status_published' => 'pubblicato',
'title' => 'Titolo Articolo',
'title_sub' => 'Il titolo per il tuo articolo',
'update' => 'Aggiorna Articolo',
],
'database' => [
'add_bread' => 'Aggiungi BREAD a questa tabella',
'add_new_column' => 'Aggiungi Nuova Colonna',
'add_softdeletes' => 'Aggiungi Eliminazioni soft',
'add_timestamps' => 'Aggiungi Timestamps',
'already_exists' => 'già esistente',
'already_exists_table' => 'La tabella :table esiste già',
'bread_crud_actions' => 'Azioni BREAD/CRUD',
'bread_info' => 'Informazioni BREAD',
'column' => 'Colonna',
'composite_warning' => 'Avviso: questa colonna fa parte di un indice composito',
'controller_name' => 'Nome Controller',
'controller_name_hint' => 'es. PageController, se lasciato vuoto verrà usato il BREAD Controller',
'create_bread_for_table' => 'Crea BREAD per la tabella :table',
'create_migration' => 'Creare una migrazione per questa tabella?',
'create_model_table' => 'Creare un model per questa tabella?',
'create_new_table' => 'Crea Nuova Tabella',
'create_your_new_table' => 'Crea la tua Nuova Tabella',
'default' => 'Default',
'delete_bread' => 'Elimina BREAD',
'delete_bread_before_table' => 'Assicurati di eliminare il BREAD in questa tabella prima di eliminare la tabella.',
'delete_table_bread_conf' => 'Sì, elimina il BREAD',
'delete_table_bread_quest' => 'Sei sicuro di voler eliminare il BREAD per la tabella :table?',
'delete_table_confirm' => 'Sì, elimina questa tabella',
'delete_table_question' => 'Sei sicuro di voler eliminare la tabella :table?',
'description' => 'Descrizione',
'display_name' => 'Nome Visualizzato',
'display_name_plural' => 'Nome Visualizzato (Plurale)',
'display_name_singular' => 'Nome Visualizzato (Singolare)',
'edit_bread' => 'Modifica BREAD',
'edit_bread_for_table' => 'Modifica BREAD per la tabella :table',
'edit_rows' => 'Modifica le righe per la tabella :table qui sotto',
'edit_table' => 'Modifica la tabella :table qui sotto',
'edit_table_not_exist' => 'La tabella che vuoi modificare non esiste',
'error_creating_bread' => 'Spiacenti sembra ci sia stato un problema nel creare questo BREAD',
'error_removing_bread' => 'Spiacenti sembra ci sia stato un problema nell\'eliminare questo BREAD',
'error_updating_bread' => 'Spiacenti sembra ci sia stato un problema nell\'aggiornare questo BREAD',
'extra' => 'Aggiuntivo',
'field' => 'Campo',
'field_safe_failed' => 'Salvataggio fallito per il campo :field, stiamo tornando indietro!',
'generate_permissions' => 'Genera Permessi',
'icon_class' => 'Icona da utilizzare per questa Tabella',
'icon_hint' => 'Icona (opzionale) Usare una',
'icon_hint2' => 'Voyager Font Class',
'index' => 'INDICE',
'input_type' => 'Tipo input',
'key' => 'Chiave',
'model_class' => 'Nome della Classe del Model',
'model_name' => 'Nome Model',
'model_name_ph' => 'es. \App\Models\User, se lasciato vuoto proverà ad utilizzare il nome della tabella',
'name_warning' => 'Per favore dare un nome alla colonna prima di inserire un indice',
'no_composites_warning' => 'Questa tabella ha indici compositi. Si prega di notare che non sono supportati '.
'al momento. Fare attenzione quando si tenta di aggiungere/eliminare gli indici.',
'null' => 'Null',
'optional_details' => 'Dettagli Opzionali',
'policy_class' => 'Nome della Classe Policy',
'policy_name' => 'Nome Policy',
'policy_name_ph' => 'es. \App\Policies\UserPolicy, se lasciato vuoto proverà ad usare quella di default',
'primary' => 'PRIMARIA',
'server_pagination' => 'Paginazione lato Server',
'success_create_table' => 'Tabella :table creata con successo',
'success_created_bread' => 'Nuovo BREAD creato con successo',
'success_delete_table' => 'Tabella :table eliminata con successo',
'success_remove_bread' => 'BREAD rimosso con successo da :datatype',
'success_update_bread' => 'Aggiornato con successo :datatype BREAD',
'success_update_table' => 'Tabella :table aggiornata con successo',
'table_actions' => 'Azioni Tabella',
'table_columns' => 'Colonne Tabella',
'table_has_index' => 'La tabella ha già un indice primario.',
'table_name' => 'Nome Tabella',
'table_no_columns' => 'La tabella non ha colonne...',
'type' => 'Tipo',
'type_not_supported' => 'Questo tipo non è supportato',
'unique' => 'UNICA',
'unknown_type' => 'Tipo sconosciuto',
'update_table' => 'Aggiorna Tabella',
'url_slug' => 'URL Slug (deve essere unico)',
'url_slug_ph' => 'URL slug (ex. articoli)',
'visibility' => 'Visibilità',
],
'dimmer' => [
'page' => 'Pagina|Pagine',
'page_link_text' => 'Visualizza tutte le pagine',
'page_text' => 'Ci sono :count :string nel tuo database. Premi il bottone qui sotto per vedere tutte le pagine.',
'post' => 'Articolo|Articoli',
'post_link_text' => 'Visualizza tutti gli articoli',
'post_text' => 'Ci sono :count :string nel tuo database. Premi il bottone qui sotto per vedere tutti gli articoli.',
'user' => 'Utente|Utenti',
'user_link_text' => 'Visualizza tutti gli utenti',
'user_text' => 'Ci sono :count :string nel tuo database. Premi il bottone qui sotto per vedere tutti gli utenti.',
],
'form' => [
'field_password_keep' => 'Lasciare vuoto per mantenere lo stesso',
'field_select_dd_relationship' => 'Assicurarsi di impostare la relazione appropriata nel metodo :method della'.
'classe :class .',
'type_checkbox' => 'Check Box',
'type_codeeditor' => 'Editore del Codice',
'type_file' => 'File',
'type_image' => 'Immagine',
'type_radiobutton' => 'Radio Button',
'type_richtextbox' => 'Rich Textbox',
'type_selectdropdown' => 'Select Dropdown',
'type_textarea' => 'Text Area',
'type_textbox' => 'Text Box',
],
// DataTable translations from: https://github.com/DataTables/Plugins/tree/master/i18n
'datatable' => [
'sEmptyTable' => 'Nessun dato disponibile nella tabella',
'sInfo' => 'Visualizzazione _START_ a _END_ di _TOTAL_ elementi',
'sInfoEmpty' => 'Visualizzazione 0 a 0 di 0 elementi',
'sInfoFiltered' => '(filtrati da _MAX_ elementi totali)',
'sInfoPostFix' => '',
'sInfoThousands' => ',',
'sLengthMenu' => 'Mostra _MENU_ elementi',
'sLoadingRecords' => 'Caricando...',
'sProcessing' => 'Processando...',
'sSearch' => 'Cerca:',
'sZeroRecords' => 'Nessun risultato trovato',
'oPaginate' => [
'sFirst' => 'Primo',
'sLast' => 'Ultimo',
'sNext' => 'Successivo',
'sPrevious' => 'Precedente',
],
'oAria' => [
'sSortAscending' => ': attivare per ordinare la colonna in ordine crescente',
'sSortDescending' => ': attivare per ordinare la colonna in ordine decrescente',
],
],
'theme' => [
'footer_copyright' => 'Realizzato con <i class="voyager-heart"></i> da',
'footer_copyright2' => 'Realizzato con rum, e poi ancora rum',
],
'json' => [
'invalid' => 'Json non valido',
'invalid_message' => 'Sembra che tu abbia introdotto qualche JSON non valido.',
'valid' => 'Json valido',
'validation_errors' => 'Errori di validazione',
],
'analytics' => [
'by_pageview' => 'Per pageview',
'by_sessions' => 'Per sessioni',
'by_users' => 'Per utenti',
'no_client_id' => 'Per visualizzare le analisi, dovrai ottenere un client ID per Google Analytics e'.
'aggiungerlo alle tue impostazioni per la chiave <code>google_analytics_client_id'.
'</code>. ottieni una chiave su Google developer console:',
'set_view' => 'Seleziona una Vista',
'this_vs_last_week' => 'Questa settimana vs la scorsa settimana',
'this_vs_last_year' => 'Quest\'anno vs lo scorso anno',
'top_browsers' => 'Browser Top',
'top_countries' => 'Paesi Top',
'various_visualizations' => 'Varie visualizzazioni',
],
'error' => [
'symlink_created_text' => 'Abbiamo appena creato il symlink mancante per te.',
'symlink_created_title' => 'Il symlink per lo storage mancante è stato creato',
'symlink_failed_text' => 'Non siamo riusciti a generare il symlink mancante per l\'applicazione. '.
'Sembra che il tuo provider di hosting non lo supporti.',
'symlink_failed_title' => 'Non è possibile creare il symlink mancante per lo storage',
'symlink_missing_button' => 'Riparalo',
'symlink_missing_text' => 'Non abbiamo trovato un symlink per lo storage. Questo potrebbe causare problemi '.
'nel caricare file multimediali dal browser.',
'symlink_missing_title' => 'Symlink per lo storage mancante',
],
];

375
lang/pt/voyager.php Normal file
View File

@@ -0,0 +1,375 @@
<?php
return [
'date' => [
'last_week' => 'Semana Passada',
'last_year' => 'Ano Passado',
'this_week' => 'Esta Semana',
'this_year' => 'Este Ano',
],
'generic' => [
'action' => 'Ação',
'actions' => 'Ações',
'add' => 'Adicionar',
'add_folder' => 'Adicionar Pasta',
'add_new' => 'Adicionar',
'all_done' => 'Concluído',
'are_you_sure' => 'Tem certeza',
'are_you_sure_delete' => 'Tem certeza de que deseja remover',
'auto_increment' => 'Incremento automático',
'browse' => 'Navegar',
'builder' => 'Construtor',
'cancel' => 'Cancelar',
'choose_type' => 'Escolha o tipo',
'click_here' => 'Clique aqui',
'close' => 'Fechar',
'compass' => 'Bússola',
'created_at' => 'Criado em',
'custom' => 'Personalizado',
'dashboard' => 'Painel de Controle',
'database' => 'Base de dados',
'default' => 'Padrão',
'delete' => 'Remover',
'delete_confirm' => 'Sim, Remover!',
'delete_question' => 'Tem certeza de que deseja remover isto',
'delete_this_confirm' => 'Sim, exclua isto',
'deselect_all' => 'Desmarcar todos',
'download' => 'Descarregar',
'edit' => 'Editar',
'email' => 'E-mail',
'error_deleting' => 'Oops, ocorreu um problema ao remover',
'exception' => 'Exceção',
'featured' => 'Destacado',
'field_does_not_exist' => 'O campo não existe',
'how_to_use' => 'Como usar',
'index' => 'Índice',
'internal_error' => 'Erro interno',
'items' => 'item(s)',
'keep_sidebar_open' => 'Arrrgh! Soltem as âncoras! (e mantenha a barra lateral aberta)',
'key' => 'Chave',
'last_modified' => 'Última modificação',
'length' => 'comprimento',
'login' => 'Login',
'media' => 'Media',
'menu_builder' => 'Construtor de Menu',
'move' => 'Mover',
'name' => 'Nome',
'new' => 'Novo',
'no' => 'Não',
'no_thanks' => 'Não Obrigado',
'not_null' => 'Não Nulo',
'options' => 'Opções',
'password' => 'Password',
'permissions' => 'Permissões',
'profile' => 'Perfil',
'public_url' => 'URL público',
'read' => 'Ler',
'rename' => 'Renomear',
'required' => 'Requerido',
'return_to_list' => 'Voltar à lista',
'route' => 'Rota',
'save' => 'Guardar',
'search' => 'Procurar',
'select_all' => 'Selecione Todos',
'settings' => 'Configurações',
'showing_entries' => 'Mostrando :from a :to de :all entrada|Mostrando :from a :to de :all entradas',
'submit' => 'Submeter',
'successfully_added_new' => 'Adicionado com sucesso',
'successfully_deleted' => 'Removido com sucesso',
'successfully_updated' => 'Atualizado com sucesso',
'timestamp' => 'Timestamp', //todo find suitable translation
'title' => 'Título',
'type' => 'Tipo',
'unsigned' => 'Não assinado',
'unstick_sidebar' => 'Descolar a barra lateral',
'update' => 'Atualizar',
'update_failed' => 'atualização falhou',
'upload' => 'Upload',
'url' => 'URL',
'view' => 'Ver',
'viewing' => 'Visualizando',
'yes' => 'Sim',
'yes_please' => 'Sim, por favor',
],
'login' => [
'loggingin' => 'A iniciar sessão',
'signin_below' => 'Iniciar sessão abaixo:',
'welcome' => 'Bem-vindo ao Voyager. O painel de administração que faltava ao Laravel',
],
'profile' => [
'avatar' => 'Avatar',
'edit' => 'Editar o meu perfil',
'edit_user' => 'Editar Utilizador',
'password' => 'Password',
'password_hint' => 'Deixar vazio para manter o valor atual',
'role' => 'Função',
'user_role' => 'Função do Utilizador',
],
'settings' => [
'usage_help' => 'Pode obter o valor de cada configuração em qualquer lugar em seu site, executando',
'save' => 'Guardar configurações',
'new' => 'Nova configuração',
'help_name' => 'Nome da configuração ex: Título do Administrador',
'help_key' => 'Chave da configuração ex: title_administrador',
'help_option' => '(Opcional, aplica-se apenas a certos tipos, como dropdown ou botão de rádio)',
'add_new' => 'Adicionar configuração',
'delete_question' => 'Tem certeza de que deseja remover a Configuração :setting?',
'delete_confirm' => 'Sim, remover esta configuração',
'successfully_created' => 'Configurações criadas com sucesso',
'successfully_saved' => 'Configurações guardadas com sucesso',
'successfully_deleted' => 'Configuração removida com sucesso',
'already_at_top' => 'Já chegou ao topo da lista',
'already_at_bottom' => 'Já chegou ao fundo da lista',
'moved_order_up' => 'Configuração :name movida para cima',
'moved_order_down' => 'Configuração :name movida para baixo',
'successfully_removed' => 'Valor :name removido com sucesso',
],
'media' => [
'add_new_folder' => 'Adicionar Pasta',
'audio_support' => 'O seu navegador não suporta o elemento de áudio.',
'create_new_folder' => 'Criar Pasta',
'delete_folder_question' => 'Ao remover uma pasta irá também remover todos os ficheiros e pastas contidos nela',
'destination_folder' => 'Destino da Pasta',
'drag_drop_info' => 'Arraste e solte ficheiros ou clique abaixo para carregar',
'error_already_exists' => 'Oops, já existe um ficheiro / pasta com esse nome nessa pasta.',
'error_creating_dir' => 'Oops, ocorreu algo inesperado a criar a pasta, por favor verifique as suas permissões',
'error_deleting_file' => 'Oops, ocorreu algo inesperado removendo este ficheiro, por favor verifique as suas permissões',
'error_deleting_folder' => 'Oops, ocorreu algo inesperado removendo esta pasta, por favor verifique as suas permissões',
'error_may_exist' => 'Talvez um Ficheiro ou Pasta exista com esse nome. Por favor tente com outro nome, ou apague o ficheiro correspondente.',
'error_moving' => 'Oops, ocorreu um problema ao mover esse ficheiro / pasta, verifique as suas permissões.',
'error_uploading' => 'Falha ao Copiar: Ocorreu um erro desconhecido!',
'folder_exists_already' => 'Oops, essa pasta já existe, por favor remova essa pasta se desejar criar uma nova',
'image_does_not_exist' => 'A imagem não existe',
'image_removed' => 'Imagem removida',
'library' => 'Biblioteca de Media',
'loading' => 'A CARREGAR OS SEUS FICHEIROS DE MÍDIA',
'move_file_folder' => 'Mover Ficheiro/pasta',
'new_file_folder' => 'Novo Nome do Ficheiro/Pasta',
'new_folder_name' => 'Novo Nome da Pasta',
'no_files_here' => 'Não há ficheiros aqui.',
'no_files_in_folder' => 'Nenhum ficheiro nesta pasta.',
'nothing_selected' => 'Nenhum ficheiro ou pasta selecionada',
'rename_file_folder' => 'Renomear Ficheiro/Pasta',
'success_uploaded_file' => 'Ficheiro carregado com sucesso!',
'success_uploading' => 'Imagem carregada com sucesso!',
'uploading_wrong_type' => 'Falha de envio: Formato do ficheiro não suportado ou é muito grande para ser carregado!',
'video_support' => 'O seu navegador não suporta a tag de vídeo.',
],
'menu_builder' => [
'color' => 'Cor em RGB ou hex (opcional)',
'color_ph' => 'Cor (ex. #ffffff ou rgb(255, 255, 255)',
'create_new_item' => 'Criar um novo item de menu',
'delete_item_confirm' => 'Sim, Remover este item de menu',
'delete_item_question' => 'Tem certeza de que deseja remover este item de menu?',
'drag_drop_info' => 'Arraste e solte os itens do menu para os reorganizar.',
'dynamic_route' => 'Rota Dinâmica',
'edit_item' => 'Editar item de menu',
'icon_class' => 'Classe do Ícone da Fonte para o item de menu (Use ',
'icon_class2' => 'Classe da Fonte Voyager</a>)',
'icon_class_ph' => 'Classe do Ícone (opcional)',
'item_route' => 'Rota do item de menu',
'item_title' => 'Título do item de menu',
'link_type' => 'Tipo de link',
'new_menu_item' => 'Novo Item de Menu',
'open_in' => 'Abrir em',
'open_new' => 'Nova Guia/Janela',
'open_same' => 'Mesma Guia/Janela',
'route_parameter' => 'Parâmetros de Rotas (se aplicado)',
'static_url' => 'URL Estático',
'successfully_created' => 'Novo item de menu criado com sucesso.',
'successfully_deleted' => 'Item de menu removido com sucesso',
'successfully_updated' => 'Item de menu atualizado com sucesso.',
'updated_order' => 'Ordem de menu atualizada com sucesso.',
'url' => 'URL do item de menu',
'usage_hint' => 'Pode apresentar um menu em qualquer lugar no seu site, executando| Pode apresentar este menu em qualquer lugar no seu site, executando',
],
'post' => [
'category' => 'Categoria da Publicação',
'content' => 'Conteúdo da Publicação',
'details' => 'Detalhes da Publicação',
'excerpt' => 'Excerto <small>Pequena descrição desta publicação</small>',
'image' => 'Publicar imagem',
'meta_description' => 'Descrição de Meta',
'meta_keywords' => 'palavras-chave de Meta',
'new' => 'Criar nova publicação',
'seo_content' => 'Conteúdo do SEO',
'seo_title' => 'Título SEO',
'slug' => 'URL slug',
'status' => 'Status da Publicação',
'status_draft' => 'rascunho',
'status_pending' => 'pendente',
'status_published' => 'Publicados',
'title' => 'Título do cargo',
'title_sub' => 'O título da sua Publicação',
'update' => 'Alterar Publicação',
],
'database' => [
'add_bread' => 'Adicionar BREAD a esta tabela',
'add_new_column' => 'Adicionar Novo Campo',
'add_softdeletes' => 'Adicionar Soft Deletes',
'add_timestamps' => 'Adicionar Timestamps',
'already_exists' => 'já existe',
'already_exists_table' => 'A Tabela :table já existe',
'bread_crud_actions' => 'Ações BREAD/CRUD',
'bread_info' => 'Informação do BREAD',
'column' => 'Campo',
'composite_warning' => 'Atenção: este campo faz parte dos índices compostos',
'controller_name' => 'Nome do Controller',
'controller_name_hint' => 'ex. PageController, se não preencher irá usar o BREAD Controller',
'create_bread_for_table' => 'Criar BREAD para a tabela :table',
'create_migration' => 'Criar Migration para esta tabela?',
'create_model_table' => 'Criar Model para esta tabela?',
'create_new_table' => 'Criar Tabela',
'create_your_new_table' => 'Criar a Nova Tabela',
'default' => 'Pré-definido',
'delete_bread' => 'Remover BREAD',
'delete_bread_before_table' => 'Por favor, remova o BREAD desta tabela antes de remover a tabela.',
'delete_table_bread_conf' => 'Sim, remover este BREAD',
'delete_table_bread_quest' => 'Tem a certeza que deseja remover o BREAD para a tabela :table?',
'delete_table_confirm' => 'Sim, remover esta tabela',
'delete_table_question' => 'Tem a certeza que deseja remover a tabela :table?',
'description' => 'Descrição',
'display_name' => 'Nome a Apresentar',
'display_name_plural' => 'Nome a Apresentar (Plural)',
'display_name_singular' => 'Nome a Apresentar (Singular)',
'edit_bread' => 'Alterar BREAD',
'edit_bread_for_table' => 'Alterar BREAD da tabela :table',
'edit_rows' => 'Alterar as linhas para a tabela :table abaixo',
'edit_table' => 'Alterar a tabela :table abaixo',
'edit_table_not_exist' => 'A tabela que pretende remover não existe',
'error_creating_bread' => 'Oops, ocorreu algo inesperado ao criar este BREAD',
'error_removing_bread' => 'Oops, ocorreu algo inesperado ao Remover este BREAD',
'error_updating_bread' => 'Oops, ocorreu algo inesperado ao alterar este BREAD',
'extra' => 'Extra',
'field' => 'Campo',
'field_safe_failed' => 'Erro ao gravar o campo :field, voltando atrás!',
'generate_permissions' => 'Gerar Permissões',
'icon_class' => 'Icon para usar nesta Tabela',
'icon_hint' => 'Icon (opcional) Usar a',
'icon_hint2' => 'Voyager Font Class',
'index' => 'INDEX',
'input_type' => 'Tipo de Input',
'key' => 'Key',
'model_class' => 'Nome da Classe do Model',
'model_name' => 'Nome do Model',
'model_name_ph' => 'ex. \App\Models\User, se vazio irá tentar usar o nome da tabela',
'name_warning' => 'Por favor adicione o nome da coluna para criar o index',
'no_composites_warning' => 'Esta tabela tem composite indexes. Nota, eles não são suportados de momento. Tenha atenção ao tentar adicionar/remover indexes.',
'null' => 'Null',
'optional_details' => 'Opções Adicionais',
'primary' => 'PRIMARY',
'server_pagination' => 'Paginação no Servidor',
'success_create_table' => 'Tabela :table criada com sucesso',
'success_created_bread' => 'BREAD criado com sucesso',
'success_delete_table' => 'Tabela :table removida com sucesso',
'success_remove_bread' => 'BREAD :datatype removido com sucesso',
'success_update_bread' => 'BREAD :datatype alterado com sucesso',
'success_update_table' => 'Tabela :table alterada com sucesso',
'table_actions' => 'Ações da Tabela',
'table_columns' => 'Campos da Tabela',
'table_has_index' => 'A tabela já tem um primary index.',
'table_name' => 'Nome da Tabela',
'table_no_columns' => 'A tabela não tem campos...',
'type' => 'Tipo',
'type_not_supported' => 'Este tipo de campo não é suportado',
'unique' => 'UNIQUE',
'unknown_type' => 'Tipo Desconhecido',
'update_table' => 'Alterar Tabela',
'url_slug' => 'URL Slug (único)',
'url_slug_ph' => 'URL slug (ex. posts)',
'visibility' => 'Visibilidade',
],
'dimmer' => [
'page' => 'Página|Páginas',
'page_link_text' => 'Ver todas as páginas',
'page_text' => 'Tem :count :string na sua base de dados. Clique no botão abaixo para ver todas as páginas.',
'post' => 'Publicação|Publicações',
'post_link_text' => 'Ver todas as publicações',
'post_text' => 'Tem :count :string na sua base de dados. Clique no botão abaixo para ver todas as publicações.',
'user' => 'Utilizador|Utilizadores',
'user_link_text' => 'Ver todos os utilizadores',
'user_text' => 'Tem :count :string na sua base de dados. Clique no botão abaixo para ver todos os utilizadores.',
],
'form' => [
'field_password_keep' => 'Deixar vazio para manter o atual',
'field_select_dd_relationship' => 'Make sure to setup the appropriate relationship in the :method method of the :class class.',
'type_checkbox' => 'Check Box',
'type_codeeditor' => 'Editor de Código',
'type_file' => 'Ficheiro',
'type_image' => 'Imagem',
'type_radiobutton' => 'Radio Button',
'type_richtextbox' => 'Rich Textbox',
'type_selectdropdown' => 'Select Dropdown',
'type_textarea' => 'Text Area',
'type_textbox' => 'Text Box',
],
'datatable' => [
'sEmptyTable' => 'Não há registos para apresentar',
'sInfo' => 'Mostrando de _START_ até _END_ de _TOTAL_ registos',
'sInfoEmpty' => 'Mostrando de 0 até 0 de 0 registos',
'sInfoFiltered' => '(filtrado de _MAX_ registos no total)',
'sInfoPostFix' => '',
'sInfoThousands' => ',',
'sLengthMenu' => 'Mostrar _MENU_ registos',
'sLoadingRecords' => 'A Carregar...',
'sProcessing' => 'A processar...',
'sSearch' => 'Procurar:',
'sZeroRecords' => 'Não foram encontrados resultados',
'oPaginate' => [
'sFirst' => 'Primeiro',
'sPrevious' => 'Anterior',
'sNext' => 'Seguinte',
'sLast' => 'Último',
],
'oAria' => [
'sSortAscending' => ': ativar para ordenar de forma crescente',
'sSortDescending' => ': ativar para ordenar de forma decrescente',
],
],
'theme' => [
'footer_copyright' => 'Produzido com <i class="voyager-heart"></i> por',
'footer_copyright2' => 'Produzido com rum e mais rum',
],
'json' => [
'invalid' => 'JSON Inválido',
'invalid_message' => 'Submeteu um JSON inválido.',
'valid' => 'JSON Válido',
'validation_errors' => 'Erros de validação',
],
'analytics' => [
'by_pageview' => 'Por pageview',
'by_sessions' => 'Por sessions',
'by_users' => 'Por users',
'no_client_id' => 'Para aceder ao analytics precisa adicionar nas Configurações do Voyager o key <code>google_analytics_client_id </code> com o código google analytics client id. Obtenha o seu key através do Google developer console:',
'set_view' => 'Selecionar Vista',
'this_vs_last_week' => 'Esta Semana vs Semana Passada',
'this_vs_last_year' => 'Este Ano vs Ano Passado',
'top_browsers' => 'Top Browsers',
'top_countries' => 'Top Países',
'various_visualizations' => 'Visualizações várias',
],
'error' => [
'symlink_created_text' => 'We just created the missing symlink for you.',
'symlink_created_title' => 'Missing storage symlink created',
'symlink_failed_text' => 'We failed to generate the missing symlink for your application. It seems like your hosting provider does not support it.',
'symlink_failed_title' => 'Could not create missing storage symlink',
'symlink_missing_button' => 'Fix it',
'symlink_missing_text' => 'We could not find a storage symlink. This could cause problems with loading media files from the browser.',
'symlink_missing_title' => 'Missing storage symlink',
],
];

397
lang/pt_br/voyager.php Normal file
View File

@@ -0,0 +1,397 @@
<?php
return [
'date' => [
'last_week' => 'Semana Passada',
'last_year' => 'Ano Passado',
'this_week' => 'Esta Semana',
'this_year' => 'Este Ano',
],
'generic' => [
'action' => 'Ação',
'actions' => 'Ações',
'add' => 'Adicionar',
'add_folder' => 'Adicionar Pasta',
'add_new' => 'Adicionar',
'all_done' => 'Concluído',
'are_you_sure' => 'Tem certeza',
'are_you_sure_delete' => 'Tem certeza de que deseja remover',
'auto_increment' => 'Incremento automático',
'browse' => 'Navegar',
'builder' => 'Construtor',
'bulk_delete' => 'Exclusão em massa',
'bulk_delete_confirm' => 'Sim, exclua estes',
'bulk_delete_nothing' => 'Você não selecionou nada para excluir',
'cancel' => 'Cancelar',
'choose_type' => 'Escolha o tipo',
'click_here' => 'Clique aqui',
'close' => 'Fechar',
'compass' => 'Bússola',
'created_at' => 'Criado em',
'custom' => 'Personalizado',
'dashboard' => 'Painel de Controle',
'database' => 'Banco de dados',
'default' => 'Padrão',
'delete' => 'Remover',
'delete_confirm' => 'Sim, Remover!',
'delete_question' => 'Tem certeza de que deseja remover isto',
'delete_this_confirm' => 'Sim, exclua isto',
'deselect_all' => 'Desmarcar todos',
'download' => 'Baixar',
'edit' => 'Editar',
'email' => 'E-mail',
'error_deleting' => 'Oops, ocorreu um problema ao remover',
'exception' => 'Exceção',
'featured' => 'Destacado',
'field_does_not_exist' => 'O campo não existe',
'how_to_use' => 'Como usar',
'index' => 'Índice',
'internal_error' => 'Erro interno',
'items' => 'item(s)',
'keep_sidebar_open' => 'Arrrgh! Soltem as âncoras! (e mantenha a barra lateral aberta)',
'key' => 'Chave',
'last_modified' => 'Última modificação',
'length' => 'Comprimento',
'login' => 'Login',
'media' => 'Mídia',
'menu_builder' => 'Construtor de Menu',
'move' => 'Mover',
'name' => 'Nome',
'new' => 'Novo',
'no' => 'Não',
'no_thanks' => 'Não Obrigado',
'not_null' => 'Não Nulo',
'options' => 'Opções',
'password' => 'Senha',
'permissions' => 'Permissões',
'profile' => 'Perfil',
'public_url' => 'URL público',
'read' => 'Ler',
'rename' => 'Renomear',
'required' => 'Requerido',
'return_to_list' => 'Voltar à lista',
'route' => 'Rota',
'save' => 'Guardar',
'search' => 'Procurar',
'select_all' => 'Selecione Todos',
'select_group' => 'Selecione um grupo existente ou adicione um novo',
'settings' => 'Configurações',
'showing_entries' => 'Mostrando :from a :to de :all entrada|Mostrando :from a :to de :all entradas',
'submit' => 'Submeter',
'successfully_added_new' => 'Adicionado com sucesso',
'successfully_deleted' => 'Removido com sucesso',
'successfully_updated' => 'Atualizado com sucesso',
'timestamp' => 'Timestamp',
'title' => 'Título',
'type' => 'Tipo',
'unsigned' => 'Não assinado',
'unstick_sidebar' => 'Descolar a barra lateral',
'update' => 'Atualizar',
'update_failed' => 'Atualização falhou',
'upload' => 'Upload',
'url' => 'URL',
'view' => 'Ver',
'viewing' => 'Visualizando',
'yes' => 'Sim',
'yes_please' => 'Sim, por favor',
],
'login' => [
'loggingin' => 'Iniciando sessão',
'signin_below' => 'Iniciar sessão abaixo:',
'welcome' => 'Bem-vindo ao Voyager. O painel de administração que faltava ao Laravel',
],
'profile' => [
'avatar' => 'Avatar',
'edit' => 'Editar o meu perfil',
'edit_user' => 'Editar Utilizador',
'password' => 'Senha',
'password_hint' => 'Deixar vazio para manter o valor atual',
'role' => 'Função',
'user_role' => 'Função do Utilizador',
],
'settings' => [
'usage_help' => 'Pode obter o valor de cada configuração em qualquer lugar em seu site, executando',
'save' => 'Guardar configurações',
'new' => 'Nova configuração',
'help_name' => 'Nome da configuração ex: Título do Administrador',
'help_key' => 'Chave da configuração ex: title_administrador',
'help_option' => '(opcional, aplica-se apenas a certos tipos, como dropdown ou botão de rádio)',
'add_new' => 'Adicionar configuração',
'delete_question' => 'Tem certeza de que deseja remover a Configuração :setting?',
'delete_confirm' => 'Sim, remover esta configuração',
'successfully_created' => 'Configurações criadas com sucesso',
'successfully_saved' => 'Configurações guardadas com sucesso',
'successfully_deleted' => 'Configuração removida com sucesso',
'already_at_top' => 'Já chegou ao topo da lista',
'already_at_bottom' => 'Já chegou ao fundo da lista',
'key_already_exists' => 'A chave :key já existe',
'moved_order_up' => 'Configuração :name movida para cima',
'moved_order_down' => 'Configuração :name movida para baixo',
'successfully_removed' => 'Valor :name removido com sucesso',
'group_general' => 'Geral',
'group_admin' => 'Admin',
'group_site' => 'Site',
'group' => 'Grupo',
'help_group' => 'O grupo desta configuração é atribuído a',
],
'media' => [
'add_new_folder' => 'Adicionar Pasta',
'audio_support' => 'O seu navegador não suporta o elemento de áudio.',
'create_new_folder' => 'Criar Pasta',
'delete_folder_question' => 'Ao remover uma pasta irá também remover todos os arquivos e pastas contidos nela',
'destination_folder' => 'Destino da Pasta',
'drag_drop_info' => 'Arraste e solte arquivo ou clique abaixo para carregar',
'error_already_exists' => 'Oops, já existe um arquivo / pasta com esse nome nessa pasta.',
'error_creating_dir' => 'Oops, ocorreu algo inesperado a criar a pasta, por favor verifique as suas permissões',
'error_deleting_file' => 'Oops, ocorreu algo inesperado removendo este arquivo, por favor verifique as suas permissões',
'error_deleting_folder' => 'Oops, ocorreu algo inesperado removendo esta pasta, por favor verifique as suas permissões',
'error_may_exist' => 'Talvez um arquivo ou Pasta exista com esse nome. Por favor tente com outro nome, ou apague o arquivo correspondente.',
'error_moving' => 'Oops, ocorreu um problema ao mover esse arquivo / pasta, verifique as suas permissões.',
'error_uploading' => 'Falha ao Copiar: Ocorreu um erro desconhecido!',
'folder_exists_already' => 'Oops, essa pasta já existe, por favor remova essa pasta se desejar criar uma nova',
'image_does_not_exist' => 'A imagem não existe',
'image_removed' => 'Imagem removida',
'library' => 'Biblioteca de Mídia',
'loading' => 'A CARREGAR OS SEUS ARQUIVOS DE MÍDIA',
'move_file_folder' => 'Mover Arquivo/pasta',
'new_file_folder' => 'Novo Nome do Arquivo/Pasta',
'new_folder_name' => 'Novo Nome da Pasta',
'no_files_here' => 'Não há arquivos aqui.',
'no_files_in_folder' => 'Nenhum arquivo nesta pasta.',
'nothing_selected' => 'Nenhum arquivo ou pasta selecionada',
'rename_file_folder' => 'Renomear Arquivo/Pasta',
'success_uploaded_file' => 'Arquivo carregado com sucesso!',
'success_uploading' => 'Imagem carregada com sucesso!',
'uploading_wrong_type' => 'Falha de envio: Formato do arquivo não suportado ou é muito grande para ser carregado!',
'video_support' => 'O seu navegador não suporta a tag de vídeo.',
'crop' => 'Cortar',
'crop_and_create' => 'Cortar & Criar',
'crop_override_confirm' => 'Irá substituir a imagem original, você tem certeza?',
'crop_image' => 'Cortar Imagem',
'success_crop_image' => 'Imagem cortada com sucesso',
'height' => 'Altura: ',
'width' => 'Largura: ',
],
'menu_builder' => [
'color' => 'Cor em RGB ou hex (opcional)',
'color_ph' => 'Cor (ex. #ffffff ou rgb(255, 255, 255)',
'create_new_item' => 'Criar um novo item de menu',
'delete_item_confirm' => 'Sim, Remover este item de menu',
'delete_item_question' => 'Tem certeza de que deseja remover este item de menu?',
'drag_drop_info' => 'Arraste e solte os itens do menu para os reorganizar.',
'dynamic_route' => 'Rota Dinâmica',
'edit_item' => 'Editar item de menu',
'icon_class' => 'Classe do Ícone da Fonte para o item de menu (Use ',
'icon_class2' => 'Classe da Fonte Voyager</a>)',
'icon_class_ph' => 'Classe do Ícone (opcional)',
'item_route' => 'Rota do item de menu',
'item_title' => 'Título do item de menu',
'link_type' => 'Tipo de link',
'new_menu_item' => 'Novo Item de Menu',
'open_in' => 'Abrir em',
'open_new' => 'Nova Guia/Janela',
'open_same' => 'Mesma Guia/Janela',
'route_parameter' => 'Parâmetros de Rotas (se aplicado)',
'static_url' => 'URL Estático',
'successfully_created' => 'Novo item de menu criado com sucesso.',
'successfully_deleted' => 'Item de menu removido com sucesso',
'successfully_updated' => 'Item de menu atualizado com sucesso.',
'updated_order' => 'Ordem de menu atualizada com sucesso.',
'url' => 'URL do item de menu',
'usage_hint' => 'Pode apresentar um menu em qualquer lugar no seu site, executando| Pode apresentar este menu em qualquer lugar no seu site, executando',
],
'post' => [
'category' => 'Categoria da Publicação',
'content' => 'Conteúdo da Publicação',
'details' => 'Detalhes da Publicação',
'excerpt' => 'Excerto <small>Pequena descrição desta publicação</small>',
'image' => 'Publicar imagem',
'meta_description' => 'Meta de Descrição',
'meta_keywords' => 'Meta de palavras-chave',
'new' => 'Criar nova publicação',
'seo_content' => 'Conteúdo do SEO',
'seo_title' => 'Título SEO',
'slug' => 'URL slug',
'status' => 'Status da Publicação',
'status_draft' => 'rascunho',
'status_pending' => 'pendente',
'status_published' => 'publicados',
'title' => 'Título da publicação',
'title_sub' => 'O título da sua publicação',
'update' => 'Alterar Publicação',
],
'database' => [
'add_bread' => 'Adicionar BREAD à esta tabela',
'add_new_column' => 'Adicionar Nova Coluna',
'add_softdeletes' => 'Adicionar Soft Deletes',
'add_timestamps' => 'Adicionar Timestamps',
'already_exists' => 'já existe',
'already_exists_table' => 'A Tabela :table já existe',
'bread_crud_actions' => 'Ações BREAD/CRUD',
'bread_info' => 'Informação do BREAD',
'column' => 'Coluna',
'composite_warning' => 'Atenção: esta coluna faz parte de um índice composto',
'controller_name' => 'Nome do Controller',
'controller_name_hint' => 'ex. PageController, se não preencher irá usar o BREAD Controller',
'create_bread_for_table' => 'Criar BREAD para a tabela :table',
'create_migration' => 'Criar migration para esta tabela?',
'create_model_table' => 'Criar model para esta tabela?',
'create_new_table' => 'Criar tabela',
'create_your_new_table' => 'Crie sua nova tabela',
'default' => 'Pré-definido',
'delete_bread' => 'Remover BREAD',
'delete_bread_before_table' => 'Por favor, remova o BREAD desta tabela antes de remover a tabela.',
'delete_table_bread_conf' => 'Sim, remover este BREAD',
'delete_table_bread_quest' => 'Tem certeza que deseja remover o BREAD para a tabela :table?',
'delete_table_confirm' => 'Sim, remover esta tabela',
'delete_table_question' => 'Tem certeza que deseja remover a tabela :table?',
'description' => 'Descrição',
'display_name' => 'Nome a ser Apresentado',
'display_name_plural' => 'Nome a ser Apresentado (Plural)',
'display_name_singular' => 'Nome a ser Apresentado (Singular)',
'edit_bread' => 'Alterar BREAD',
'edit_bread_for_table' => 'Alterar BREAD da tabela :table',
'edit_rows' => 'Alterar as linhas para a tabela :table abaixo',
'edit_table' => 'Alterar a tabela :table abaixo',
'edit_table_not_exist' => 'A tabela que pretende remover não existe',
'error_creating_bread' => 'Oops, ocorreu algo inesperado ao criar este BREAD',
'error_removing_bread' => 'Oops, ocorreu algo inesperado ao remover este BREAD',
'error_updating_bread' => 'Oops, ocorreu algo inesperado ao alterar este BREAD',
'extra' => 'Extra',
'field' => 'Campo',
'field_safe_failed' => 'Erro ao gravar o campo :field, voltando atrás!',
'generate_permissions' => 'Gerar Permissões',
'icon_class' => 'Icon para usar nesta Tabela',
'icon_hint' => 'Icon (opcional) Usar a',
'icon_hint2' => 'Voyager Font Class',
'index' => 'INDEX',
'input_type' => 'Tipo de Input',
'key' => 'Key',
'model_class' => 'Nome da Classe do Model',
'model_name' => 'Nome do Model',
'model_name_ph' => 'ex. \App\Models\User, se vazio irá tentar usar o nome da tabela',
'name_warning' => 'Por favor adicione o nome da coluna para criar o index',
'no_composites_warning' => 'Esta tabela tem composite indexes. Nota, eles não são suportados de momento. Tenha atenção ao tentar adicionar/remover indexes.',
'null' => 'Null',
'optional_details' => 'Opções Adicionais',
'policy_class' => 'Nome da classe Policy',
'policy_name' => 'Policy Name', //todo find suitable translation
'policy_name_ph' => 'ex. \App\Policies\UserPolicy, se deixado vazio, tentará usar o padrão',
'primary' => 'PRIMARY',
'server_pagination' => 'Paginação no Servidor',
'success_create_table' => 'Tabela :table criada com sucesso',
'success_created_bread' => 'BREAD criado com sucesso',
'success_delete_table' => 'Tabela :table removida com sucesso',
'success_remove_bread' => 'BREAD :datatype removido com sucesso',
'success_update_bread' => 'BREAD :datatype alterado com sucesso',
'success_update_table' => 'Tabela :table alterada com sucesso',
'table_actions' => 'Ações da Tabela',
'table_columns' => 'Campos da Tabela',
'table_has_index' => 'A tabela já tem um Índice primário.',
'table_name' => 'Nome da Tabela',
'table_no_columns' => 'A tabela não tem campos...',
'type' => 'Tipo',
'type_not_supported' => 'Este tipo de campo não é suportado',
'unique' => 'ÚNICO',
'unknown_type' => 'Tipo Desconhecido',
'update_table' => 'Alterar Tabela',
'url_slug' => 'URL Slug (único)',
'url_slug_ph' => 'URL slug (ex. posts)',
'visibility' => 'Visibilidade',
],
'dimmer' => [
'page' => 'Página|Páginas',
'page_link_text' => 'Ver todas as páginas',
'page_text' => 'Tem :count :string na seu banco de dados. Clique no botão abaixo para ver todas as páginas.',
'post' => 'Publicação|Publicações',
'post_link_text' => 'Ver todas as publicações',
'post_text' => 'Tem :count :string na seu banco de dados. Clique no botão abaixo para ver todas as publicações.',
'user' => 'Utilizador|Utilizadores',
'user_link_text' => 'Ver todos os utilizadores',
'user_text' => 'Tem :count :string na seu banco de dados. Clique no botão abaixo para ver todos os utilizadores.',
],
'form' => [
'field_password_keep' => 'Deixar vazio para manter o atual',
'field_select_dd_relationship' => 'Certifique-se de configurar o relacionamento apropriado no método :method da classe :class.',
'type_checkbox' => 'Check Box', //todo find suitable translation
'type_codeeditor' => 'Editor de Código',
'type_file' => 'Arquivo',
'type_image' => 'Imagem',
'type_radiobutton' => 'Radio Button', //todo find suitable translation
'type_richtextbox' => 'Rich Textbox', //todo find suitable translation
'type_selectdropdown' => 'Selecione Dropdown', //todo find suitable translation
'type_textarea' => 'Text Area', //todo find suitable translation
'type_textbox' => 'Text Box', //todo find suitable translation
],
// DataTable translations from: https://github.com/DataTables/Plugins/tree/master/i18n
'datatable' => [
'sEmptyTable' => 'Não há registos para apresentar',
'sInfo' => 'Mostrando de _START_ até _END_ de _TOTAL_ registos',
'sInfoEmpty' => 'Mostrando de 0 até 0 de 0 registos',
'sInfoFiltered' => '(filtrado de _MAX_ registos no total)',
'sInfoPostFix' => '',
'sInfoThousands' => ',',
'sLengthMenu' => 'Mostrar _MENU_ registos',
'sLoadingRecords' => 'A Carregar...',
'sProcessing' => 'A processar...',
'sSearch' => 'Procurar:',
'sZeroRecords' => 'Não foram encontrados resultados',
'oPaginate' => [
'sFirst' => 'Primeiro',
'sLast' => 'Último',
'sNext' => 'Seguinte',
'sPrevious' => 'Anterior',
],
'oAria' => [
'sSortAscending' => ': ativar para ordenar de forma crescente',
'sSortDescending' => ': ativar para ordenar de forma decrescente',
],
],
'theme' => [
'footer_copyright' => 'Produzido com <i class="voyager-heart"></i> por',
'footer_copyright2' => 'Produzido com rum e mais rum',
],
'json' => [
'invalid' => 'JSON Inválido',
'invalid_message' => 'Submeteu um JSON inválido.',
'valid' => 'JSON Válido',
'validation_errors' => 'Erros de validação',
],
'analytics' => [
'by_pageview' => 'Por pageview',
'by_sessions' => 'Por sessões',
'by_users' => 'Por usuário',
'no_client_id' => 'Para aceder ao analytics precisa adicionar nas Configurações do Voyager a chave <code>google_analytics_client_id </code> com o código google de identidade do analytics client. Obtenha o sua chave através do Google developer console:',
'set_view' => 'Selecionar Vista',
'this_vs_last_week' => 'Esta Semana vs Semana Passada',
'this_vs_last_year' => 'Este Ano vs Ano Passado',
'top_browsers' => 'Top Browsers',
'top_countries' => 'Top Países',
'various_visualizations' => 'Visualizações várias',
],
'error' => [
'symlink_created_text' => 'Acabamos de criar o link simbólico (symlink) faltante para você.',
'symlink_created_title' => 'O link simbólico (symlink) de armazenamento faltante foi criado',
'symlink_failed_text' => 'Não conseguimos gerar o link simbólico (symlink) faltante para sua aplicação. Parece que seu provedor de hospedagem não o suporta.',
'symlink_failed_title' => 'Não foi possível criar o link simbólico (symlink) de armazenamento faltante',
'symlink_missing_button' => 'Consertá-lo',
'symlink_missing_text' => 'Não foi possível encontrar o link simbólico (symlink) de armazenamento. Isso pode causar problemas ao carregar os arquivos de mídia no navegador.',
'symlink_missing_title' => 'Link simbólico (symlink) de armazenamento faltante.',
],
];

415
lang/ro/voyager.php Normal file
View File

@@ -0,0 +1,415 @@
<?php
return [
'date' => [
'last_week' => 'Săptămâna trecută',
'last_year' => 'Anul trecut',
'this_week' => 'Săptămâna asta',
'this_year' => 'În acest an',
],
'generic' => [
'action' => 'Acțiune',
'actions' => 'Acțiuni',
'add' => 'Adaugă',
'add_folder' => 'Crează folder',
'add_new' => 'Adaugă nou',
'all_done' => 'Gata',
'are_you_sure' => 'Sunteți sigur',
'are_you_sure_delete' => 'Sunteți sigur că doriți să ștergeți',
'auto_increment' => 'Auto incrementare',
'browse' => 'Răsfoiește',
'builder' => 'Constructor',
'bulk_delete' => 'Șterge tot',
'bulk_delete_confirm' => 'Da, șterge asta',
'bulk_delete_nothing' => 'Nu ați ales nimic pentru ștergere',
'cancel' => 'Anulare',
'choose_type' => 'Alegeți tipul',
'click_here' => 'Click aici',
'close' => 'Închide',
'compass' => 'Busolă',
'created_at' => 'Data creării',
'custom' => 'Personalizat',
'dashboard' => 'Panou de control',
'database' => 'Baza de date',
'default' => 'Prestabilit',
'delete' => 'Șterge',
'delete_confirm' => 'Da, Șterge',
'delete_question' => 'Sunteți sigur că vreți să ștergeți asta',
'delete_this_confirm' => 'Da, șterge asta',
'deselect_all' => 'Anulează selecția',
'download' => 'Descarcă',
'edit' => 'Editare',
'email' => 'E-mail',
'error_deleting' => 'A apărut o eroare în timpul ștergerii',
'exception' => 'Excepție',
'featured' => 'Recomandat',
'field_does_not_exist' => 'Câmpul nu există',
'how_to_use' => 'Cum să folosiți',
'index' => 'Index',
'internal_error' => 'Eroare internă',
'items' => 'Element(e)',
'keep_sidebar_open' => 'Yarr! Aruncați ancorele! (și ține-ți bara laterală deschisă)',
'key' => 'Cheie',
'last_modified' => 'Ultima modificare',
'length' => 'Lungime',
'login' => 'Login',
'media' => 'Media',
'menu_builder' => 'Constructor de meniuri',
'move' => 'Mutare',
'name' => 'Nume',
'new' => 'Nou',
'no' => 'Nu',
'no_thanks' => 'Nu, mulțumesc',
'not_null' => 'Nu-i Null',
'options' => 'Opțiuni',
'password' => 'Parolă',
'permissions' => 'Permisiuni',
'profile' => 'Profil',
'public_url' => 'URL public',
'read' => 'Citire',
'rename' => 'Redenumire',
'required' => 'Obligatoriu',
'return_to_list' => 'Întoarcere la listă',
'route' => 'Traseu',
'save' => 'Salvare',
'search' => 'Caută',
'select_all' => 'Selectează tot',
'settings' => 'Setări',
'showing_entries' => 'Publicare afișată de la :from până la :to din :all|Publicări afișate de la :from până la :to din :all',
'submit' => 'Trimite',
'successfully_added_new' => 'Adăugat cu succes',
'successfully_deleted' => 'Șters cu succes',
'successfully_updated' => 'Actualizat cu succes',
'timestamp' => 'Timestamp-ul',
'title' => 'Titlu',
'type' => 'Tip',
'unsigned' => 'Nesemnat',
'unstick_sidebar' => 'Desfaceți bara laterală',
'update' => 'Actualizează',
'update_failed' => 'Actualizare eșuată',
'upload' => 'Încărcare',
'url' => 'URL',
'view' => 'Vedere',
'viewing' => 'Vizualizare',
'yes' => 'Da',
'yes_please' => 'Da, vă rog',
],
'login' => [
'loggingin' => 'Logare în sistem',
'signin_below' => 'Conectați-vă mai jos:',
'welcome' => 'Bine ați venit la Voyager. Panoul de control ce lipsește în Laravel',
],
'profile' => [
'avatar' => 'Poza',
'edit' => 'Editează profilul',
'edit_user' => 'Editează utilizatorul',
'password' => 'Parola',
'password_hint' => 'Lăsați gol pentru a păstra aceeași',
'role' => 'Rol',
'user_role' => 'Rolul utilizatorului',
],
'settings' => [
'usage_help' => 'Puteți folosi valoarea fiecărei setări, oriunde pe site apelând',
'save' => 'Salvează setările',
'new' => 'Setare nouă',
'help_name' => 'Numele setării (ex: Titlu Admin)',
'help_key' => 'Cheia setării (ex: admin_title)',
'help_option' => '(opțional, se aplică doar la unele tipuri, cum ar fi dropdown sau buton radio)',
'add_new' => 'Adăugați setare nouă',
'delete_question' => 'Sunteți sigur că doriți să ștergeți setarea :setting?',
'delete_confirm' => 'Da, șterge această setare',
'successfully_created' => 'Setare creată cu succes',
'successfully_saved' => 'Setare salvată cu succes',
'successfully_deleted' => 'Setare ștearsă cu succes',
'already_at_top' => 'Deja este prima în listă',
'already_at_bottom' => 'Deja este ultima în listă',
'moved_order_up' => 'Setarea :name a fost mutată mai sus',
'moved_order_down' => 'Setarea :name a fost mutată mai jos',
'successfully_removed' => 'Valoarea :name a fost ștearsă cu succes',
'group_general' => 'General',
'group_admin' => 'Admin',
'group_site' => 'Site',
'group' => 'Grup',
'help_group' => 'Atașați această setare la grupul',
],
'media' => [
'add_new_folder' => 'Adaugă un folder nou',
'audio_support' => 'Browser-ul dvs. nu suportă elementul audio.',
'create_new_folder' => 'Crează un folder nou',
'delete_folder_question' => 'Ștergerea folderului va duce la ștergerea fișierelor și folderelor ce se află el.',
'destination_folder' => 'Folderul de destinație',
'drag_drop_info' => 'Trageți și aruncați fișiere.',
'error_already_exists' => 'Există deja fișier/folder cu așa nume în acest folder',
'error_creating_dir' => 'Eroare la crearea folderului: verificați permisiunile',
'error_deleting_file' => 'Eroare la ștergerea fișierului: verificați permisiunile',
'error_deleting_folder' => 'Eroare la ștergerea folderului: verificați permisiunile',
'error_may_exist' => 'Există deja un fișier sau un folder cu așa nume: alegeți alt nume sau ștergeți fișierul curent',
'error_moving' => 'Eroare la mutarea fișierului/folderului: verificați permisiunile.',
'error_uploading' => 'Încărcare eșuată: S-a produs o eroare necunoscută',
'folder_exists_already' => 'Folder cu așa nume există deja. Vă rugăm să o ștergeți dacă doriți să creați una cu același nume.',
'image_does_not_exist' => 'Imaginea nu există',
'image_removed' => 'Imagine ștearsă',
'library' => 'Bibliotecă media',
'loading' => 'SE ÎNCARCĂ FIȘIERELE DVS. MEDIA',
'move_file_folder' => 'Mutare fișier/folder',
'new_file_folder' => 'Nume nou fișier/folder',
'new_folder_name' => 'Nume nou folder',
'no_files_here' => 'Aici nu există fișiere',
'no_files_in_folder' => 'În acest folder nu există fișiere',
'nothing_selected' => 'Nimic selectat',
'rename_file_folder' => 'Redenumire fișier/folder',
'success_uploaded_file' => 'Încărcarea fișierului a avut loc cu succes',
'success_uploading' => 'Încărcarea imaginii a avut loc cu succes',
'uploading_wrong_type' => 'Încărcare eșuată: formatul fișierului nu este suportat sau fișierul este prea mare pentru a fi încărcat!',
'video_support' => 'Browser-ul dvs. nu suportă elementul video.',
],
'menu_builder' => [
'color' => 'Culoarea în RGB sau hex (opțional)',
'color_ph' => 'Culoarea (ex: #ffffff sau rgb(255, 255, 255)',
'create_new_item' => 'Crează un punct de meniu nou',
'delete_item_confirm' => 'Da, șterge acest punct de meniu',
'delete_item_question' => 'Sunteți sigur, că doriți să ștergeți acest punct de meniu?',
'drag_drop_info' => 'Trageți punctul din meniu mai jos, pentru a schimba ordinea lor.',
'dynamic_route' => 'Cale(route) dinamică',
'edit_item' => 'Editează punct de meniu',
'icon_class' => 'Iconiță pentru punctul de meniu (Folosiți ',
'icon_class2' => 'Voyager Font Class</a>)',
'icon_class_ph' => 'Iconiță (opțional)',
'item_route' => 'Calea pentru punctul de meniu',
'item_title' => 'Denumirea punctului de meniu',
'link_type' => 'Tipul link-ului',
'new_menu_item' => 'Punct de meniu nou',
'open_in' => 'Deschide în',
'open_new' => 'Fereastră/Tab nou',
'open_same' => 'aceeași fereastră/tab',
'route_parameter' => 'Parametrii rutei (dacă există)',
'static_url' => 'URL Static',
'successfully_created' => 'Punctul de meniu a fost creat cu succes.',
'successfully_deleted' => 'Punctul de meniu a fost șters cu succes.',
'successfully_updated' => 'Punctul de meniu a fost actualizat cu succes.',
'updated_order' => 'Structura meniului a fost actualizată cu succes.',
'url' => 'URL pentru punctul de meniu',
'usage_hint' => 'Puteți afișa un meniu oriunde pe site apelând|Puteți afișa acest meniu oriunde pe site apelând',
],
'post' => [
'category' => 'Categoria postării',
'content' => 'Conținutul postării',
'details' => 'Detaliile postării',
'excerpt' => 'Extras <small>Descrierea scurtă a postării</small>',
'image' => 'Imagine',
'meta_description' => 'Descriere meta',
'meta_keywords' => 'Cuvinte cheie',
'new' => 'Creați o postare nouă',
'seo_content' => 'Conținut SEO',
'seo_title' => 'Titlu SEO',
'slug' => 'slug(link)',
'status' => 'Starea postării',
'status_draft' => 'Ciornă',
'status_pending' => 'În așteptare',
'status_published' => 'Publicat',
'title' => 'Titlu',
'title_sub' => 'Titlul postării',
'update' => 'Actualizarea postării',
],
'database' => [
'add_bread' => 'Adăugați BREAD la acest tabel',
'add_new_column' => 'Adăugați o coloană nouă',
'add_softdeletes' => 'Adăugați Soft Deletes',
'add_timestamps' => 'Adăugați timestamp-uri',
'already_exists' => 'deja există',
'already_exists_table' => 'Tabelul :table deja există',
'bread_crud_actions' => 'Acțiuni BREAD/CRUD',
'bread_info' => 'Informații despre BREAD',
'column' => 'Coloană',
'composite_warning' => 'Avertizare: această coloană face parte din indexul compozit',
'controller_name' => 'Numele controller-ului',
'controller_name_hint' => 'ex: PageController, dacă lăsați liber se va folosi BREAD Controller',
'create_bread_for_table' => 'Creare BREAD pentru tabelul :table',
'create_migration' => 'Creare migrare pentru acest tabel?',
'create_model_table' => 'Creare model pentru acest tabel?',
'create_new_table' => 'Creare tabel nou',
'create_your_new_table' => 'Creare tabel nou',
'default' => 'Prdefinit',
'delete_bread' => 'Șterge BREAD',
'delete_bread_before_table' => 'Înainte de a șterge tabelul este necesar să ștergeți BREAD-ul tabelului.',
'delete_table_bread_conf' => 'Da, șterge BREAD',
'delete_table_bread_quest' => 'Sunteți sigur, că doriți să ștergeți BREAD-ul tabelului :table?',
'delete_table_confirm' => 'Da, șterge tabelul',
'delete_table_question' => 'Sunteți sigur că doriți să ștergeți tabelul :table?',
'description' => 'Descriere',
'display_name' => 'Numele afișat',
'display_name_plural' => 'Numele afișat (la plural)',
'display_name_singular' => 'Numele afișat (la singular)',
'edit_bread' => 'Editare BREAD',
'edit_bread_for_table' => 'Editare BREAD pentru tabelul :table',
'edit_rows' => 'Editați rândurile tabelului :table mai jos',
'edit_table' => 'Editați tabelul :table mai jos',
'edit_table_not_exist' => 'Tabelul pe care doriți să-l editați nu există',
'error_creating_bread' => 'Se pare că a apărut o problemă cu crearea acestui BREAD',
'error_removing_bread' => 'Se pare că a apărut o problemă cu ștergerea acestui BREAD',
'error_updating_bread' => 'Se pare că a apărut o problemă cu actualizarea acestui BREAD',
'extra' => 'Suplimentar',
'field' => 'Câmp',
'field_safe_failed' => 'Nu s-a reușit savlarea câmpului :field, ne întoarcem la valoarea precedentă.',
'generate_permissions' => 'Generare permisiuni',
'icon_class' => 'Iconiță pentru acest tabel',
'icon_hint' => 'Iconiță pentru (opțional)',
'icon_hint2' => 'Voyager Font Class',
'index' => 'INDEX',
'input_type' => 'Tipul input-ului',
'key' => 'Cheie',
'model_class' => 'Numele clasei modelului',
'model_name' => 'Numele modelului',
'model_name_ph' => 'ex: \App\Models\User, dacă lăsați gol, vom încerca și vom folosi numele tabelului',
'name_warning' => 'Vă rugăm să indicați numele coloanei înainte de adăugarea indexului',
'no_composites_warning' => 'În acest tabel există index compozit. Atrageți atenția că la momentul de față ele nu sunt suportate. Fiți atenți când încercați să adăugați/ștergeți indexuri.',
'null' => 'Null',
'optional_details' => 'Detalii suplimentare',
'policy_class' => 'Policy Class Name',
'policy_name' => 'Policy Name',
'policy_name_ph' => 'ex. \App\Policies\UserPolicy, dacă lăsați gol, vom încerca și vom folosi predefinit',
'primary' => 'CHEIE PRIMARĂ',
'server_pagination' => 'Paginare pe server',
'success_create_table' => 'Tabelul :table a fost creat cu succes',
'success_created_bread' => 'BREAD nou a fost creat cu succes',
'success_delete_table' => 'Tabelul :table a fost șters cu succes',
'success_remove_bread' => 'BREAD a fost șters cu succes din :datatype',
'success_update_bread' => 'BREAD a fost actualizat cu succes în :datatype',
'success_update_table' => 'Tabelul :table a fost actualizat cu succes',
'table_actions' => 'Acțiuni cu tabelul',
'table_columns' => 'Coloanele tabelului',
'table_has_index' => 'În acest tabel există deja cheia primară.',
'table_name' => 'Numele tabelului',
'table_no_columns' => 'Acest tabel nu are coloane...',
'type' => 'Tip',
'type_not_supported' => 'Acest tip nu este suportat',
'unique' => 'UNIQUE',
'unknown_type' => 'Tip necunoscut',
'update_table' => 'Actualizare tabel',
'url_slug' => 'URL Slug (trebuie să fie unic)',
'url_slug_ph' => 'URL slug (ex:, posts)',
'visibility' => 'Vizibilitate',
'relationship' => [
'relationship' => 'Relație',
'relationships' => 'Relații',
'has_one' => 'Unu la unu',
'has_many' => 'Unu la mulți',
'belongs_to' => 'Mulți la unu',
'belongs_to_many' => 'Mulți la mulți',
'which_column_from' => 'Ce coloană din',
'is_used_to_reference' => 'este folosită pentru a face referire la',
'pivot_table' => 'Tabel de legătură',
'selection_details' => 'Detaliile selecției',
'display_the' => 'Afișează',
'store_the' => 'Salvează',
'easy_there' => 'Ușor, Căpitane',
'before_create' => 'Înainte de a crea o relație ai nevoie mai întâi să creezi BREAD-ul.<br> Apoi, te întorci înapoi pentru a edita BREAD-ul și atunci vei putea adăuga o relație nouă.<br> Mulțam.',
'cancel' => 'Anulare',
'add_new' => 'Adăugare relație nouă',
'open' => 'Deschide',
'close' => 'Închide',
'relationship_details' => 'Detaliile relației',
'browse' => 'Răsfoiește',
'read' => 'Citește',
'edit' => 'Editează',
'add' => 'Adaugă',
'delete' => 'Șterge',
'create' => 'Crează o Relație',
'namespace' => 'Model Năimspăis (ex: App\Models\User)',
],
],
'dimmer' => [
'page' => 'pagină|pagini',
'page_link_text' => 'Toate paginile',
'page_text' => 'În baza de date există :count :string',
'post' => 'postare|postări',
'post_link_text' => 'Toate postările',
'post_text' => 'În baza de date există :count :string',
'user' => 'utilizator|utilizatori',
'user_link_text' => 'Toți utilizatorii',
'user_text' => 'În baza de date există :count :string',
],
'form' => [
'field_password_keep' => 'Lăsați gol, dacă nu doriți să schimbați parola',
'field_select_dd_relationship' => 'Este necesar să setați realțiile (relationship) în metoda :method din clasa :class.',
'type_checkbox' => 'Checkbox',
'type_codeeditor' => 'Editor de cod',
'type_file' => 'Fișier',
'type_image' => 'Imagine',
'type_radiobutton' => 'Radio buton',
'type_richtextbox' => 'Edito vizual',
'type_selectdropdown' => 'Listă dropdown',
'type_textarea' => 'Câmp text (textarea)',
'type_textbox' => 'Câmp text (simplu)',
],
// DataTable translations from: https://github.com/DataTables/Plugins/tree/master/i18n
'datatable' => [
'sEmptyTable' => 'În tabel nu există date',
'sInfo' => 'Afișat de la _START_ până la _END_ din _TOTAL_ înregistrări',
'sInfoEmpty' => 'Afișat 0 din 0 înregistrări',
'sInfoFiltered' => '(sortat din _MAX_ înregitrări)',
'sInfoPostFix' => '',
'sInfoThousands' => ',',
'sLengthMenu' => 'Afișați _MENU_ înregistrări',
'sLoadingRecords' => 'Încărcare înregistrări...',
'sProcessing' => 'Așteptați...',
'sSearch' => 'Căutare:',
'sZeroRecords' => 'Lipsesc înregistrări',
'oPaginate' => [
'sFirst' => 'Prima',
'sLast' => 'Ultima',
'sNext' => 'Următoarea',
'sPrevious' => 'Precedenta',
],
'oAria' => [
'sSortAscending' => ': activați pentru a sorta coloana crescător',
'sSortDescending' => ': activați pentru a sorta coloana descrescător',
],
],
'theme' => [
'footer_copyright' => 'Creat cu <i class="voyager-heart"></i> ',
'footer_copyright2' => 'Creat cu rom și chiar mai mult rom :) ',
],
'json' => [
'invalid' => 'format JSON invalid',
'invalid_message' => 'Ați introdus un format JSON invalid',
'valid' => 'Format JSON corect',
'validation_errors' => 'Eroare la verificarea datelor',
],
'analytics' => [
'by_pageview' => 'După pagini',
'by_sessions' => 'După sesiuni',
'by_users' => 'După utilizatori',
'no_client_id' => 'Pentru a vedea statisticile din analytics aveți nevoie de google analytics cliend id pe care să-l adăugați în setări pentru cheia <code>google_analytics_client_id</code>. Puteți obține cheia(analytics cliend id) în contul dvs. Google developers console:',
'set_view' => 'Alegeți modul de vizualizare',
'this_vs_last_week' => 'Săptămâna aceasta în comparație cu săptămâna trecută.',
'this_vs_last_year' => 'Anul acesta în comparație cu anul trecut',
'top_browsers' => 'Top browser-e',
'top_countries' => 'Top țări',
'various_visualizations' => 'Vizualizări diverse',
],
'error' => [
'symlink_created_text' => 'Noi tocmai am creat legătura simbolică(symlink) pentru dvs.',
'symlink_created_title' => 'Legătura simbolică a folderului storage ce lipsea, a fost creată.',
'symlink_failed_text' => 'Nu am putut genera link-ul simbolic ce lipsește pentru aplicația dvs. Se pare că hosting provider-ul dvs. nu suportă symlinks))).',
'symlink_failed_title' => 'Nu am putut crea link-ul simbolic pentru folderul storage.',
'symlink_missing_button' => 'Corectați',
'symlink_missing_text' => 'Nu am putut găsi un link simbolic pentru folderul storage. Aceasta poate cauza probleme cu încărcarea fișierelor media de către browser.',
'symlink_missing_title' => 'Lipsește link-ul simbolic pentru folderul storage.',
],
];

394
lang/ru/voyager.php Normal file
View File

@@ -0,0 +1,394 @@
<?php
return [
'date' => [
'last_week' => 'На прошлой неделе',
'last_year' => 'В прошлом году',
'this_week' => 'На этой неделе',
'this_year' => 'В этом году',
],
'generic' => [
'action' => 'Действие',
'actions' => 'Доступные действия',
'add' => 'Добавить',
'add_folder' => 'Создать папку',
'add_new' => 'Добавить',
'all_done' => 'Готово',
'are_you_sure' => 'Вы уверены',
'are_you_sure_delete' => 'Вы точно хотите удалить',
'auto_increment' => 'Auto Increment',
'browse' => 'Просмотр',
'builder' => 'Конструктор',
'bulk_delete' => 'Удалить всё',
'bulk_delete_confirm' => 'Да, удалить это',
'bulk_delete_nothing' => 'Вы ничего не выбрали для удаления!',
'cancel' => 'Отмена',
'choose_type' => 'Выберите тип поля',
'click_here' => 'Кликните тут',
'close' => 'Закрыть',
'compass' => 'Компасс',
'created_at' => 'Дата создания',
'custom' => 'Пользовательская категория',
'dashboard' => 'Панель управления',
'database' => 'База данных',
'default' => 'По умолчанию',
'delete' => 'Удалить',
'delete_confirm' => 'Да, удалить!',
'delete_question' => 'Вы действительно хотите удалить это?',
'delete_this_confirm' => 'Да, удалить это',
'deselect_all' => 'Отменить выделение',
'download' => 'Загрузка',
'edit' => 'Редактирование',
'email' => 'E-mail',
'error_deleting' => 'Во время удаления возникла ошибка',
'exception' => 'Исключение',
'featured' => 'Рекомендуемый',
'field_does_not_exist' => 'Поля не существует',
'how_to_use' => 'Как использовать',
'index' => 'Индекс',
'internal_error' => 'Внутреняя ошибка',
'items' => 'элемент(ы)',
'keep_sidebar_open' => 'Раскрывать панель',
'key' => 'Ключ',
'last_modified' => 'Последнее изменение',
'length' => 'Длина',
'login' => 'Логин',
'media' => 'Медиа',
'menu_builder' => 'Конструктор меню',
'move' => 'Переместить',
'name' => 'Имя',
'new' => 'Новинка',
'no' => 'Нет',
'no_thanks' => 'Нет, спасибо',
'not_null' => 'Не Null',
'options' => 'Параметры',
'password' => 'Пароль',
'permissions' => 'Права доступа',
'profile' => 'Профиль',
'public_url' => 'Общедоступный URL-адрес',
'read' => 'Считывание',
'rename' => 'Переименовать',
'required' => 'Обязательный',
'return_to_list' => 'Вернуться к списку',
'route' => 'Маршрут',
'save' => 'Сохранить',
'search' => 'Искать',
'select_all' => 'Выбрать все',
'settings' => 'Настройки',
'showing_entries' => 'Показана от :from до :to из :all запись|Показано от :from до :to из :all записей',
'submit' => 'Отправить',
'successfully_added_new' => 'Успешное добавление',
'successfully_deleted' => 'Успешное удаление',
'successfully_updated' => 'Успешное обновление',
'timestamp' => 'Временная метка',
'title' => 'Название',
'type' => 'Тип',
'unsigned' => 'Unsigned',
'unstick_sidebar' => 'Открепить боковую панель',
'update' => 'Обновить',
'update_failed' => 'Обновление не удалось',
'upload' => 'Загрузка',
'url' => 'URL',
'view' => 'Вид',
'viewing' => 'Просмотр',
'yes' => 'Да',
'yes_please' => 'Да, пожалуйста',
],
'login' => [
'loggingin' => 'Вход в систему',
'signin_below' => 'Вход в панель управления',
'welcome' => 'Панель управления, которой не хватало в Laravel',
],
'profile' => [
'avatar' => 'Фото',
'edit' => 'Настройки профиля',
'edit_user' => 'Изменить профиль',
'password' => 'Пароль',
'password_hint' => 'Для сохранения того же значения оставьте поле пустым',
'role' => 'Группа',
'user_role' => 'Группа пользователя',
],
'settings' => [
'usage_help' => 'Чтобы получить значения параметров, используйте в шаблоне код ',
'save' => 'Сохранить настройки',
'new' => 'Создать настройку',
'help_name' => 'Название параметра (например, Мой параметр)',
'help_key' => 'Ключ параметра (например, my_parametr)',
'help_option' => '(необязательно, применяется только к выпадающему списку или радио-кнопкам)',
'add_new' => 'Добавить новый параметр',
'delete_question' => 'Вы уверены, что нужно удалить параметр :setting?',
'delete_confirm' => 'Да, удалите этот параметр',
'successfully_created' => 'Параметры успешно созданы',
'successfully_saved' => 'Параметры успешно сохранены',
'successfully_deleted' => 'Параметры успешно удалены',
'already_at_top' => 'Уже размещено вверху списка',
'already_at_bottom' => 'Уже размещено внизу списка',
'moved_order_up' => 'Параметр :name перемещен вверх',
'moved_order_down' => 'Параметр :name перемещен вниз',
'successfully_removed' => 'Успешно удалено значение параметра :name',
'group_general' => 'Основное',
'group_admin' => 'Админ',
'group_site' => 'Сайт',
'group' => 'Группа',
'help_group' => 'Привязать эту настройку к группе',
],
'media' => [
'add_new_folder' => 'Добавить новую папку',
'audio_support' => 'Ваш браузер не поддерживает элемент audio.',
'create_new_folder' => 'Создать новую папку',
'delete_folder_question' => 'Удаление папки приведет к удалению всего ее содержимого.',
'destination_folder' => 'Папка назначения',
'drag_drop_info' => 'Перетащите файлы мышью или нажмите на кнопку внизу для загрузки.',
'error_already_exists' => 'Файл/папка с таким именем уже существуют в данном каталоге',
'error_creating_dir' => 'Не удалось создать папку: проверьте права доступа',
'error_deleting_file' => 'Не удалось удалить файл: проверьте права доступа',
'error_deleting_folder' => 'Не удалось удалить папку: проверьте права доступа',
'error_may_exist' => 'Файл или папка с таким именем уже существуют: выберите другое имя или удалите существующий файл!',
'error_moving' => 'Не удалось переместить файл или папку: проверьте права доступа.',
'error_uploading' => 'Ошибка загрузки: Произошла неизвестная ошибка!',
'folder_exists_already' => 'Папка с таким именем уже существует: удалите ее, если хотите создать новую с таким же именем.',
'image_does_not_exist' => 'Изображения не существует',
'image_removed' => 'Изображение удалено',
'library' => 'Библиотека медиа',
'loading' => 'ИДЕТ ЗАГРУЗКА ВАШИХ ФАЙЛОВ',
'move_file_folder' => 'Переместить файл/папку',
'new_file_folder' => 'Новое имя файла/папки',
'new_folder_name' => 'Новое имя папки',
'no_files_here' => 'Тут нет файлов',
'no_files_in_folder' => 'Отсутствуют файлы в данной папке',
'nothing_selected' => 'Ничего не выбрано',
'rename_file_folder' => 'Переименовать файл/папку',
'success_uploaded_file' => 'Успешная загрузка файла!',
'success_uploading' => 'Успешная загрузка изображения!',
'uploading_wrong_type' => 'Ошибка загрузки: неподдерживаемый формат файла или слишком большой размер файла для загрузки!',
'video_support' => 'Ваш браузер не поддерживает элемент video.',
'crop' => 'Обрезать',
'crop_and_create' => 'Создать и Обрезать',
'crop_override_confirm' => 'Исходное изображение будет изменено, вы уверены?',
'crop_image' => 'Обрезать изображение',
'success_crop_image' => 'Изображение успешно обрезано',
'height' => 'Высота: ',
'width' => 'Ширина: ',
],
'menu_builder' => [
'color' => 'Цвет в RGB или hex (необязательно)',
'color_ph' => 'Цвет (например, #ffffff или rgb(255, 255, 255)',
'create_new_item' => 'Создать новый пункт меню',
'delete_item_confirm' => 'Да, удалить этот пункт меню',
'delete_item_question' => 'Вы уверены, что хотите удалить этот пункт меню?',
'drag_drop_info' => 'Перетащите пункты меню ниже, чтобы изменить их порядок.',
'dynamic_route' => 'Динамический путь',
'edit_item' => 'Редактировать пункт меню',
'icon_class' => 'Иконка для пункта меню (Используйте ',
'icon_class2' => 'Voyager Font Class</a>)',
'icon_class_ph' => 'Иконка (необязательно)',
'item_route' => 'Путь для пункта меню',
'item_title' => 'Название пункта меню',
'link_type' => 'Тип ссылки',
'new_menu_item' => 'Новый пункт меню',
'open_in' => 'Открыть в',
'open_new' => 'Новая вкладка/окно',
'open_same' => 'Та же вкладка/окно',
'route_parameter' => 'Параметры пути (если есть)',
'static_url' => 'Статический URL',
'successfully_created' => 'Пункт меню успешно создан.',
'successfully_deleted' => 'Пункт меню успешно удален.',
'successfully_updated' => 'Пункт меню успешно обновлен.',
'updated_order' => 'Структура меню успешно обновлена.',
'url' => 'URL для пункта меню',
'usage_hint' => 'Вы можете вывести меню в любом месте вашего сайта, вызвав |Вы можете вывести это меню в любом месте вашего сайта, вызвав ',
],
'post' => [
'category' => 'Категория сообщения',
'content' => 'Текст сообщения',
'details' => 'Свойства',
'excerpt' => 'Анонс <small>Краткое описание статьи</small>',
'image' => 'Изображение',
'meta_description' => 'Описание (meta)',
'meta_keywords' => 'Ключевые слова (meta)',
'new' => 'Опубликовать',
'seo_content' => 'SEO текст',
'seo_title' => 'SEO название',
'slug' => 'Ссылка',
'status' => 'Статус публикации',
'status_draft' => 'Черновик',
'status_pending' => 'На модерации',
'status_published' => 'Опубликовано',
'title' => 'Заголовок',
'title_sub' => 'Название статьи',
'update' => 'Обновить',
],
'database' => [
'add_bread' => 'Добавить BREAD к данной таблице',
'add_new_column' => 'Добавить новый столбец',
'add_softdeletes' => 'Добавить Soft Deletes',
'add_timestamps' => 'Добавить метки времени',
'already_exists' => 'уже существует',
'already_exists_table' => 'Таблица :table уже существует',
'bread_crud_actions' => 'BREAD/CRUD действия',
'bread_info' => 'BREAD информация',
'column' => 'Столбец',
'composite_warning' => 'Предупреждение: этот столбец является частью составного индекса',
'controller_name' => 'Имя контроллера',
'controller_name_hint' => 'например, пустой PageController, будет использовать BREAD Controller',
'create_bread_for_table' => 'Создать BREAD для таблицы :table',
'create_migration' => 'Создать миграцию для данной таблицы?',
'create_model_table' => 'Создать модель для данной таблицы?',
'create_new_table' => 'Создать новую таблицу',
'create_your_new_table' => 'Создать новую таблицу',
'default' => 'По умолчанию',
'delete_bread' => 'Удалить BREAD',
'delete_bread_before_table' => 'Перед удалением таблицы обязательно удалите BREAD таблицы.',
'delete_table_bread_conf' => 'Да, удалить BREAD',
'delete_table_bread_quest' => 'Вы уверены, что хотите удалить BREAD для таблицы :table?',
'delete_table_confirm' => 'Да, удалить таблицу',
'delete_table_question' => 'Вы точно хотите удалить таблицу :table?',
'description' => 'Описание',
'display_name' => 'Отображаемое имя',
'display_name_plural' => 'Отображаемое имя (во множественном числе)',
'display_name_singular' => 'Отображаемое имя (в единственном числе)',
'edit_bread' => 'Редактировать BREAD',
'edit_bread_for_table' => 'Редактировать BREAD для таблицы :table',
'edit_rows' => 'Редактировать строки таблицы :table ниже',
'edit_table' => 'Редактировать таблицу :table ниже',
'edit_table_not_exist' => 'Таблицы, которую вы хотите редактировать, не существует',
'error_creating_bread' => 'Похоже, возникла проблема с созданием данного BREAD',
'error_removing_bread' => 'Похоже, возникла проблема с удалением данного BREAD',
'error_updating_bread' => 'Похоже, возникла проблема с обновлением данного BREAD',
'extra' => 'Дополнительно',
'field' => 'Поле',
'field_safe_failed' => 'Не удалось сохранить поле :field, будет произведен откат к предыдущему значению.',
'generate_permissions' => 'Создание прав доступа',
'icon_class' => 'Значок для данной таблицы',
'icon_hint' => 'Значок для (необязательно)',
'icon_hint2' => 'Voyager Font Class',
'index' => 'INDEX',
'input_type' => 'Тип ввода',
'key' => 'Ключ',
'model_class' => 'Название класса модели',
'model_name' => 'Название модели',
'model_name_ph' => 'например \App\Models\User, если оставить пустым - попытается использовать название таблицы',
'name_warning' => 'Укажите столбец перед добавлением индекса',
'no_composites_warning' => 'В данной таблице присутствует составной индекс. Обратите внимание, что в настоящий момент они не поддерживаются. Будьте осторожны при попытке добавить/удалить индексы.',
'null' => 'Null',
'optional_details' => 'Дополнительные сведения',
'policy_class' => 'Имя класса политики',
'policy_name' => 'Политика',
'policy_name_ph' => 'например \App\Policies\UserPolicy, если оставить пустым - попытается использовать политику по умолчанию',
'primary' => 'ПЕРВИЧНЫЙ КЛЮЧ',
'server_pagination' => 'Пагинация на стороне сервера',
'success_create_table' => 'Таблица :table успешно создана',
'success_created_bread' => 'Новый BREAD успешно создан',
'success_delete_table' => 'Таблица :table успешно удалена',
'success_remove_bread' => 'BREAD успешно удален из :datatype',
'success_update_bread' => 'BREAD успешно обновлен в :datatype',
'success_update_table' => 'Таблица :table успешно обновлена',
'table_actions' => 'Действия с таблицей',
'table_columns' => 'Столбцы таблицы',
'table_has_index' => 'В данной таблице уже имеется первичный ключ.',
'table_name' => 'Название таблицы',
'table_no_columns' => 'В таблице отсутствуют столбцы...',
'type' => 'Тип',
'type_not_supported' => 'Данный тип не поддерживается',
'unique' => 'UNIQUE',
'unknown_type' => 'Неизвестный тип',
'update_table' => 'Обновить таблицу',
'url_slug' => 'URL Slug (должен быть уникальным)',
'url_slug_ph' => 'URL slug (например, posts)',
'visibility' => 'Видимость',
],
'dimmer' => [
'page' => 'страница|страницы',
'page_link_text' => 'Все страницы',
'page_text' => 'В базе данных :count :string',
'post' => 'запись|записи',
'post_link_text' => 'Все записи',
'post_text' => 'В базе данных :count :string',
'user' => 'пользователь|пользователей',
'user_link_text' => 'Все пользователи',
'user_text' => 'В базе данных :count :string',
],
'form' => [
'field_password_keep' => 'Оставьте пустым, если не хотите менять пароль',
'field_select_dd_relationship' => 'Обязательно настройте соответствующие отношения (relationship) в методе :method класса :class.',
'type_checkbox' => 'Чекбокс',
'type_codeeditor' => 'Редактор кода',
'type_file' => 'Файл',
'type_image' => 'Изображение',
'type_radiobutton' => 'Радио-кнопка',
'type_richtextbox' => 'Визуальный редактор',
'type_selectdropdown' => 'Выпадающий список',
'type_textarea' => 'Текстовое поле',
'type_textbox' => 'Поле ввода',
],
// DataTable translations from: https://github.com/DataTables/Plugins/tree/master/i18n
'datatable' => [
'sEmptyTable' => 'В таблице нет данных',
'sInfo' => 'Показано от _START_ до _END_ из _TOTAL_ записей',
'sInfoEmpty' => 'Показано 0 из 0 записей',
'sInfoFiltered' => '(выбрано из _MAX_ записей)',
'sInfoPostFix' => '',
'sInfoThousands' => ',',
'sLengthMenu' => 'Показать _MENU_ записей',
'sLoadingRecords' => 'Загрузка записей...',
'sProcessing' => 'Подождите...',
'sSearch' => 'Поиск:',
'sZeroRecords' => 'Записи отсутствуют',
'oPaginate' => [
'sFirst' => 'Первая',
'sLast' => 'Последняя',
'sNext' => 'Следующая',
'sPrevious' => 'Предыдущая',
],
'oAria' => [
'sSortAscending' => ': активировать для сортировки столбца по возрастанию',
'sSortDescending' => ': активировать для сортировки столбца по убыванию',
],
],
'theme' => [
'footer_copyright' => 'Сделано с <i class="voyager-heart"></i> ',
'footer_copyright2' => 'Сделано под ромом :) ',
],
'json' => [
'invalid' => 'неверный формат JSON',
'invalid_message' => 'Введен неверный формат JSON',
'valid' => 'Верный формат JSON',
'validation_errors' => 'Ошибки при проверке данных',
],
'analytics' => [
'by_pageview' => 'По страницам',
'by_sessions' => 'По сессиям',
'by_users' => 'По пользователям',
'no_client_id' => 'Для активации аналитики необходимо получить идентификатор клиента Google Analytics и добавить его в поле <code>google_analytics_client_id</code> меню настроек. Получить код Google Analytics: ',
'set_view' => 'Выберите вид',
'this_vs_last_week' => 'Текущая неделя в сравнении с прошлой.',
'this_vs_last_year' => 'Нынешний год в сравнении с прошлым',
'top_browsers' => 'Лучшие браузеры',
'top_countries' => 'Лучшие страны',
'various_visualizations' => 'Различные визуализации',
],
'error' => [
'symlink_created_text' => 'Мы создали ссылку для вас.',
'symlink_created_title' => 'Создана недостающая ссылка на хранилище данных.',
'symlink_failed_text' => 'Не удалось создать недостающую ссылку: похоже, дело в хостинге.',
'symlink_failed_title' => 'Не удалось создать ссылку для хранилища данных.',
'symlink_missing_button' => 'Исправьте',
'symlink_missing_text' => 'Не найдена ссылка на хранилище данных: это может вызвать проблемы с загрузкой медиафайлов.',
'symlink_missing_title' => 'Отсутствует ссылка на хранилище данных.',
],
];

386
lang/tr/voyager.php Normal file
View File

@@ -0,0 +1,386 @@
<?php
return [
'date' => [
'last_week' => 'Geçen Hafta',
'last_year' => 'Geçen Yıl',
'this_week' => 'Bu Hafta',
'this_year' => 'Bu Yıl',
],
'generic' => [
'action' => 'İşlem',
'actions' => 'İşlemler',
'add' => 'Ekle',
'add_folder' => 'Klasör ekle',
'add_new' => 'Yeni Ekle',
'all_done' => 'Hepsi tamam',
'are_you_sure' => 'Emin misin',
'are_you_sure_delete' => 'Silmek istediğinden emin misin',
'auto_increment' => 'Otomatik artan',
'browse' => 'Gözden geçirmek',
'builder' => 'Kurucu',
'cancel' => 'İptal',
'choose_type' => 'Tip seçin',
'click_here' => 'Buraya tıkla',
'close' => 'Kapat',
'compass' => 'Sınır',
'created_at' => 'Oluşturma zamanı',
'custom' => 'Özel',
'dashboard' => 'Yönetim',
'database' => 'Veritabanı',
'default' => 'Varsayılan',
'delete' => 'Sil',
'delete_confirm' => 'Evet , sil !',
'delete_question' => 'Silmek istediğinden emin misin',
'delete_this_confirm' => 'Evet , bunu sil !',
'deselect_all' => 'Tüm seçimi kaldır',
'download' => 'İndir',
'edit' => 'Düzenle',
'email' => 'E-mail',
'error_deleting' => 'Maalesef bunu silmek için bir sorun oluştu',
'exception' => 'İstisna',
'featured' => 'Öne Çıkan',
'field_does_not_exist' => 'Alan bulunamadı',
'how_to_use' => 'Nasıl kullanılır',
'index' => 'İndeks',
'internal_error' => 'İç hata',
'items' => 'Eşya(lar)',
'keep_sidebar_open' => 'Yarr! Bağları bırak! (ve yan menüyü açık tut)',
'key' => 'Anahtar',
'last_modified' => 'Son güncellenem',
'length' => 'Uzunluk',
'login' => 'Giriş',
'media' => 'Medya',
'menu_builder' => 'Menu kurucusu',
'move' => 'Hareket',
'name' => 'İsim',
'new' => 'New',
'no' => 'Hayır',
'no_thanks' => 'Hayır teşekkürler',
'not_null' => 'Boş değil',
'options' => 'Seçenekler',
'password' => 'Şifre',
'permissions' => 'İzinler',
'profile' => 'Profil',
'public_url' => 'Açık link',
'read' => 'Okuma',
'rename' => 'Yeniden adlandır',
'required' => 'Gerekli',
'return_to_list' => 'Listeye dön',
'route' => 'Rota',
'save' => 'Kaydet',
'search' => 'Bul',
'select_all' => 'Tümünü seç',
'settings' => 'Ayarlar',
'showing_entries' => ':from ile :to arasındaki :all kayıttan göstriliyor | :from ile :to arasındaki :all kayıtlar göstriliyor',
'submit' => 'Gönder',
'successfully_added_new' => 'Başarılı eklendi',
'successfully_deleted' => 'Başarılı dilindi',
'successfully_updated' => 'Başarılı güncellendi',
'timestamp' => 'Zaman alanı',
'title' => 'Başlık',
'type' => 'Tip',
'unsigned' => 'İmzasız',
'unstick_sidebar' => 'Sidebarıık tut',
'update' => 'güncelle',
'update_failed' => 'Alan güncellendi',
'upload' => 'Yükle',
'url' => 'Link',
'view' => 'Görünüm',
'viewing' => 'Görme',
'yes' => 'Evet',
'yes_please' => 'Evet, lütfen',
],
'login' => [
'loggingin' => 'Giriş yap',
'signin_below' => ' Below: oturum aç',
'welcome' => "Voyager a hoş geldiniz , Laravel'in aranan yönetim paneli",
],
'profile' => [
'avatar' => 'Avatar',
'edit' => 'Profilimi düzenle',
'edit_user' => 'Kullanıcıyı düzenle',
'password' => 'Şifre',
'password_hint' => 'Aynı şifre ise boş bırakın',
'role' => 'Rol',
'user_role' => 'Kullanıcı Rolü',
],
'settings' => [
'usage_help' => 'Her ayarın değerini sitenizdeki herhangi bir yerinden çağırabilirisiniz',
'save' => 'Ayarları Kaydet',
'new' => 'Yeni Ayarlar',
'help_name' => 'Ayar Adı ex: Yönetici paneli',
'help_key' => 'Ayar anahtarı ex: yonetici_paneli',
'help_option' => '(optional, only applies to certain types like dropdown box or radio button)',
'add_new' => 'Yeni Ayar ekle',
'delete_question' => ' :setting Bu ayarı silmek istediğinden emin misin?',
'delete_confirm' => 'Evet , Bu Ayarı Sil',
'successfully_created' => 'Başarılı Ayar Oluşturuldu',
'successfully_saved' => 'Başarılı Ayar kaydedildi ',
'successfully_deleted' => 'Başarılı Ayar silindi ',
'already_at_top' => 'Zaten Listenin en üstünde',
'already_at_bottom' => 'Zaten listenin en altında',
'moved_order_up' => ' :name ayarı yukarı taşındı',
'moved_order_down' => ' :name ayarı aşağı taşındı ',
'successfully_removed' => ':name başarılı bir şekilde değeri silindi',
'group_general' => 'Genel',
'group_admin' => 'Admin',
'group_site' => 'Site',
'group' => 'Grop',
'help_group' => 'Ayarların atandığı grup',
],
'media' => [
'add_new_folder' => 'Yeni dosya ekle',
'audio_support' => 'tarıyıcın ses dosyası desteklemiyor.',
'create_new_folder' => 'Yeni dosya oluştur',
'delete_folder_question' => 'Bu dosyayı silmek içindekileride silmene neden olcak',
'destination_folder' => 'Dosya konumu',
'drag_drop_info' => 'Sürükle bırakla hızlıca resim yükle',
'error_already_exists' => 'Malesef dosya/dizin ile aynı isimde bulunan bir kayıt var',
'error_creating_dir' => 'Malesef dizin oluşturuken bir şeyler yolunda girmedi, '.'Lütfen izinlerinizi kontrol ediniz',
'error_deleting_file' => 'Bu dosyayı silerken bir sorun oluştu, lütfen izinlerinizi kontrol ediniz ',
'error_deleting_folder' => 'Malesef bu dizini silerken bir sorun oluştur, lütfen izinlerinizi kontrol ediniz',
'error_may_exist' => 'Malesef dosya/dizin ile aynı isimde bulunan bir kayıt olabilir lütfen ismini değiştirn',
'error_moving' => 'Bu dosya/dizini taşırken bir sorun oluştu , lütfen doğru izinlerin olduğuna emin olun',
'error_uploading' => 'Yükleme hatası: Unknown bilinmeyen bir hata oluştur',
'folder_exists_already' => 'Malesef bu dizinden var ama isterseniz silip tekrar oluşturabilirsiniz ',
'image_does_not_exist' => 'Resim bulanamadı',
'image_removed' => 'Resim silindi',
'library' => 'Medya silindi',
'loading' => 'Medya dosyanızı bekleyin',
'move_file_folder' => 'Dosya/Dizin taşı',
'new_file_folder' => 'Yeni Dosya/Dizin ismi',
'new_folder_name' => 'Yeni dizin ismi',
'no_files_here' => 'Hiç dosya bulunamadı',
'no_files_in_folder' => 'Bu klasörde hiç dosya bulunamadı',
'nothing_selected' => 'Hiçbir Dosya/Dizin seçilmedi',
'rename_file_folder' => 'yeniden adlanadır Dosya/Dizin',
'success_uploaded_file' => 'Başarı bir şekilde yeni dosya yüklendi',
'success_uploading' => 'Resim başarılı bir şekilde yüklendi',
'uploading_wrong_type' => 'Yükleme hatasu: Desteklenmeyen dosya formatı veya çok büyük dosya!',
'video_support' => 'Tarayıcı video etiketini desteklemiyor ',
],
'menu_builder' => [
'color' => 'Renkler RGB veya hex (tercihen)',
'color_ph' => 'Renk (örn. #ffffff veya rgb(255, 255, 255)',
'create_new_item' => 'Yeni bir kayıt oluşturun',
'delete_item_confirm' => 'Evet , Bu menüyü sil',
'delete_item_question' => 'Bu menü kaydını silmek istediğinden emin misin ?',
'drag_drop_info' => 'Sürükle ve bırak ile menüyü ayarlayın',
'dynamic_route' => 'Dinamik rota',
'edit_item' => 'Menüyü düzenle',
'icon_class' => 'Font Icon sınıfları menü için (Use a',
'icon_class2' => 'Voyager Font sınıfları</a>)',
'icon_class_ph' => 'Icon sınıfları (tercihen)',
'item_route' => 'Menü için rota',
'item_title' => 'Menü başlığı',
'link_type' => 'Link tipi',
'new_menu_item' => 'Yeni menü kaydı',
'open_in' => 'Açılış hedefi',
'open_new' => 'Yeni Tab/Ekran',
'open_same' => 'Aynı Tab/Ekran',
'route_parameter' => 'Rota parametresi',
'static_url' => 'Statik URL',
'successfully_created' => 'Menü kaydı başarılı bir şekilde kaydoldu',
'successfully_deleted' => 'Menü kaydı başarılı bir şekilde silindi',
'successfully_updated' => 'Menü kaydı başarılı bir şekilde güncellendi',
'updated_order' => 'Menü kaydı başarılı bir şekilde sıralandı',
'url' => 'Menü kaydının linki',
'usage_hint' => 'Bu menüyü istediğiniz yerde çağra bilirsiniz|Şu şekilde '.
'Bu menüyü sitenin istediğiniz yerinde çağırmak için',
],
'post' => [
'category' => 'Yazı kategorisi',
'content' => 'Yazı içeriği',
'details' => 'Yazı detayı',
'excerpt' => 'Alıntı <small>Yazının kısa açıklaması</small>',
'image' => 'Yazı resmi',
'meta_description' => 'Meta Açıklaması',
'meta_keywords' => 'Meta Anahtar kelimesi',
'new' => 'Yeni Yazı Oluştur',
'seo_content' => 'SEO içeriği',
'seo_title' => 'Seo başlığı',
'slug' => 'URL link',
'status' => 'Yazı durumu',
'status_draft' => 'taslak',
'status_pending' => 'bekliyor',
'status_published' => 'yayınlandı',
'title' => 'Yazı başlığı',
'title_sub' => 'Yazınız için başlık',
'update' => 'Yazıyı güncelle',
],
'database' => [
'add_bread' => 'Bu tabloya BREAD ekle',
'add_new_column' => 'Yeni kolon ekle',
'add_softdeletes' => 'Yazılımsal silme kolonu ekle(soft delete)',
'add_timestamps' => 'Zaman kolonları ekle(created_at , updated_at)',
'already_exists' => 'Bu kolon var',
'already_exists_table' => 'Tablo :table zaten var',
'bread_crud_actions' => 'BREAD/CRUD işlemleri',
'bread_info' => 'BREAD bilgisi',
'column' => 'Kolon',
'composite_warning' => 'Warning: bu sütun, bileşik bir dizinin parçasıdır',
'controller_name' => 'Kontrol Adı',
'controller_name_hint' => 'örn. PageController, eğer boş bırakırsanı BREAD kontrolü kullanır',
'create_bread_for_table' => ':table tablosu için BREAD oluştur',
'create_migration' => 'Bu tablo için migrasyon oluşturulsun mu ?',
'create_model_table' => 'bu tablo için model oluşturulsun mu ?',
'create_new_table' => 'Yeni tablo oluştur',
'create_your_new_table' => 'Kendine yeni tablo oluştur',
'default' => 'Varsayılan',
'delete_bread' => 'BREAD sil',
'delete_bread_before_table' => "Lütfen tabloyu silmeden önce bu tablodaki BREAD'i kaldırdığınızdan emin olun.",
'delete_table_bread_conf' => "Evet,BREAD'i sil",
'delete_table_bread_quest' => ":table tablosunda BREAD'i silmek istediğinizden emin misiniz ? ",
'delete_table_confirm' => 'Evet bu tabloyu sil',
'delete_table_question' => ':table tablosunu silmek istediğinizden emin misiniz ? ',
'description' => 'Açıklama',
'display_name' => 'Görünüm adı',
'display_name_plural' => 'Görünüm adı (Çoğul)',
'display_name_singular' => 'Görünüm adı (Tekil)',
'edit_bread' => 'BREAD düzenle',
'edit_bread_for_table' => ':table tablosu için BREAD düzenle',
'edit_rows' => 'Aşağıdaki :table tablolarının satırlarını düzenleyin:',
'edit_table' => 'Aşağıdaki :table tablolarını düzenleyin',
'edit_table_not_exist' => 'Düzenlemek istediğin tablo mevcut değil',
'error_creating_bread' => "Maalesef, bu BREAD'i oluşturmakta bir sorun olabilir gibi görünüyor",
'error_removing_bread' => "Maalesef, bu BREAD'i düzenlemekte bir sorun olabilir gibi görünüyor",
'error_updating_bread' => "Maalesef, bu BREAD'i güncellemekde bir sorun olabilir gibi görünüyor",
'extra' => 'Extra',
'field' => 'Alan',
'field_safe_failed' => ':field alan kaydedilirken hata oluştur, veri tabanını geri sarıyorum',
'generate_permissions' => 'İzinleri oluştur',
'icon_class' => 'Bu tablo için İcon',
'icon_hint' => 'İcon (isteğe bağlı) kullanın',
'icon_hint2' => 'voyager ön yüz sınıfı',
'index' => 'İNDEKS',
'input_type' => 'Giriş tipi',
'key' => 'Anahtar',
'model_class' => 'Model Sınıf Adı',
'model_name' => 'Model Adı',
'model_name_ph' => 'ex. \App\Models\User, Eğer boş ise tablo adını deneyin',
'name_warning' => 'Lütfen indeks eklemden önce kolon adı belirleyin',
'no_composites_warning' => 'This table has composite indexes. Please note that they are not supported '.
'at the moment. Be careful when trying to add/remove indexes.',
'null' => 'Boş',
'optional_details' => 'İsteğe Bağlı Ayrıntılar',
'primary' => 'BİRİNCİL',
'server_pagination' => 'Sunucu-taraflı sayfalama',
'success_create_table' => 'Başarılı tablo oluşturuldu :table ',
'success_created_bread' => 'Başarılı yeni BREAD oluşturuldu',
'success_delete_table' => 'Başarılı tablo silindi :table table',
'success_remove_bread' => 'Başarılı silindi BREAD şurdan :datatype',
'success_update_bread' => 'Başarılı güncellendi :datatype BREAD',
'success_update_table' => 'Başarılı tablo güncellendi :table table',
'table_actions' => 'Tablo işlemleri',
'table_columns' => 'Tablo kolanları',
'table_has_index' => 'Tablo zaten birincil anahtarı var.',
'table_name' => 'Tablo Adı',
'table_no_columns' => 'Tabloda hiç kolan bulunamadı...',
'type' => 'Tip',
'type_not_supported' => 'Bu tip desteklenöiyor',
'unique' => 'BENZERSİZ',
'unknown_type' => 'Bilinmeyen Tip',
'update_table' => 'Tabloyu güncelle',
'url_slug' => 'Link yazısı (benzersiz olmalı)',
'url_slug_ph' => 'Link yazısı (ex. gonderi)',
'visibility' => 'Görünür',
],
'dimmer' => [
'page' => 'Sayfa|Sayfalar',
'page_link_text' => 'Tüm sayfaları Görüntüle',
'page_text' => ' :count kadar :string veritabanınızda. Tıklayarak tüm sayfaları görün',
'post' => 'Gönderi|Gönderiler',
'post_link_text' => 'Tüm Gönderileri Görüntüle',
'post_text' => ':count kadar :string veritabanınızda. Tıklayarak tüm Gönderileri görün',
'user' => 'Kullanıcı|Kullanıcılar',
'user_link_text' => 'Tüm Kullanıcları Görüntüle',
'user_text' => ':count kadar :string veritabanınızda. Tıklayarak tüm kullanıcıları görün',
],
'form' => [
'field_password_keep' => 'Aynı kalamsı için boş bırakın',
'field_select_dd_relationship' => 'Şurada uygun ilişkiyi kurduğunuzdan emin olun. :method methodu ile '.
':class sınıfı içinde.',
'type_checkbox' => 'Çoklu seçim kutuları',
'type_codeeditor' => 'Kod Editörü',
'type_file' => 'Dosya',
'type_image' => 'Resim',
'type_radiobutton' => 'Radio kutular',
'type_richtextbox' => 'Metin Editörü',
'type_selectdropdown' => 'Seçim Kutusu',
'type_textarea' => 'Metin Alanı',
'type_textbox' => 'metin Kutusu',
],
// DataTable translations from: https://github.com/DataTables/Plugins/tree/master/i18n
'datatable' => [
'sEmptyTable' => 'Tablo yok',
'sInfo' => '_START_ ile _END_ arasında _TOTAL_ kadar kayıt görüntülendi',
'sInfoEmpty' => '0 ile 0 arasında 0 kadar kayıt görüntülendi',
'sInfoFiltered' => '( _MAX_ toplam bu kadar kayıt filtrelendi)',
'sInfoPostFix' => '',
'sInfoThousands' => ',',
'sLengthMenu' => ' _MENU_ kayıtlarını göster',
'sLoadingRecords' => 'Yükleniyor...',
'sProcessing' => 'İşleniyor...',
'sSearch' => 'Search:',
'sZeroRecords' => 'Eşleşen bir kayıt bulunmamakta',
'oPaginate' => [
'sFirst' => 'İlk',
'sLast' => 'Son',
'sNext' => 'İleri',
'sPrevious' => 'Geri',
],
'oAria' => [
'sSortAscending' => ': activate artana göre sırala',
'sSortDescending' => ': activate azalana göre sırala',
],
],
'theme' => [
'footer_copyright' => '<i class="voyager-heart"></i> ile yapıldı',
'footer_copyright2' => 'Rom ve daha da fazla romla yapılmış',
],
'json' => [
'invalid' => 'Geçersiz Json',
'invalid_message' => 'Doğru olmıyan bir JSON gibi görünüyor',
'valid' => 'Doğru Json',
'validation_errors' => 'Doğrulama hatası',
],
'analytics' => [
'by_pageview' => 'Sayfa görüntülenmeye göre',
'by_sessions' => 'Oturuma göre',
'by_users' => 'Kullanıcıya göre',
'no_client_id' => 'To view analytics you\'ll need to get a google analytics client id and '.
'add it to your settings for the key <code>google_analytics_client_id'.
'</code>. Get your key in your Google developer console:',
'set_view' => 'Görünüm seçin',
'this_vs_last_week' => 'Bu Hafta vs Geçen Hafta',
'this_vs_last_year' => 'Bu Yıl vs Geçen Yıl',
'top_browsers' => 'En çok girilen tarayıcı türü',
'top_countries' => 'En çok girilen ülke',
'various_visualizations' => 'Çeşitli görünümler',
],
'error' => [
'symlink_created_text' => 'Kayıp depolama alanı sembolik bağlantısı sizin için onardık',
'symlink_created_title' => 'Kayıp depolama alanı sembolik bağlantısı oluşturuldu',
'symlink_failed_text' => 'Kayıp depolama alanı sembolik bağlantısını sizin için oluştururken sorun alıyoruz'.
'Sunucunuz bunu desteklemiyor görünüyor.',
'symlink_failed_title' => 'Depolama alanı sembolik bağlantısı oluşturulamadı',
'symlink_missing_button' => 'Düzelt',
'symlink_missing_text' => 'Depolama alanı sembolik bağlantısı bulamadık. Şunun yüzünden olabilir '.
'Medya dosyalarını tarayıcıdan yüklerken',
'symlink_missing_title' => 'Depolama alanı sembolik bağlantısı eksik',
],
];

394
lang/uk/voyager.php Normal file
View File

@@ -0,0 +1,394 @@
<?php
return [
'date' => [
'last_week' => 'Минулого тижня',
'last_year' => 'Минулого року',
'this_week' => 'Цього тижня',
'this_year' => 'Цього року',
],
'generic' => [
'action' => 'Дія',
'actions' => 'Дії',
'add' => 'Додати',
'add_folder' => 'Додати папку',
'add_new' => 'Додати',
'all_done' => 'Готово',
'are_you_sure' => 'Ви впевнені',
'are_you_sure_delete' => 'Ви дійсно хочете видалити',
'auto_increment' => 'Авто інкремент',
'browse' => 'Переглянути список',
'builder' => 'Конструктор',
'bulk_delete' => 'Видалити відмічені',
'bulk_delete_confirm' => 'Так, видалити це',
'bulk_delete_nothing' => 'Ви нічого не обрали для видалення!',
'cancel' => 'Відміна',
'choose_type' => 'Виберіть тип поля',
'click_here' => 'Натисніть тут',
'close' => 'Закрити',
'compass' => 'Компас',
'created_at' => 'Дата створення',
'custom' => 'Користувацька категорія',
'dashboard' => 'Панель управління',
'database' => 'База даних',
'default' => 'За замовчуванням',
'delete' => 'Видалити',
'delete_confirm' => 'Так, видалити!',
'delete_question' => 'Ви дійсно хотите видалити це?',
'delete_this_confirm' => 'Так, видалити це',
'deselect_all' => 'Скасувати видалення',
'download' => 'Завантаження',
'edit' => 'Редагувати',
'email' => 'Електронна пошта',
'error_deleting' => 'Під час видалення виникла помилка',
'exception' => 'Виняток',
'featured' => 'Рекомендуємий',
'field_does_not_exist' => 'Поле не існує',
'how_to_use' => 'Як використовувати',
'index' => 'Індекс',
'internal_error' => 'Внутрішня помилка',
'items' => 'Елемент(и)',
'keep_sidebar_open' => 'Розкривати панель',
'key' => 'Ключ',
'last_modified' => 'Остання зміна',
'length' => 'Довжина',
'login' => 'Вхід',
'media' => 'Медіа',
'menu_builder' => 'Конструктор меню',
'move' => 'Перемістити',
'name' => 'Назва',
'new' => 'Новинка',
'no' => 'Ні',
'no_thanks' => 'Ні, дякую',
'not_null' => 'Не Null',
'options' => 'Параметри',
'password' => 'Пароль',
'permissions' => 'Права доступу',
'profile' => 'Профіль',
'public_url' => 'Загальнодоступна URL-адреса',
'read' => 'Переглянути запис',
'rename' => 'Перейменувати',
'required' => 'Обов\'язковий',
'return_to_list' => 'Повернутись до списку',
'route' => 'Маршрут',
'save' => 'Зберегти',
'search' => 'Шукати',
'select_all' => 'Вибрати все',
'settings' => 'Налаштування',
'showing_entries' => 'Показаний від :from до :to з :all запис|Показано від :from до :to з :all записів',
'submit' => 'Зберегти',
'successfully_added_new' => 'Успішне додання',
'successfully_deleted' => 'Успішне видалення',
'successfully_updated' => 'Успішне оновлення',
'timestamp' => 'Відмітка часу',
'title' => 'Назва',
'type' => 'Тип',
'unsigned' => 'Unsigned',
'unstick_sidebar' => 'Відкріпити бокову панель',
'update' => 'Оновити',
'update_failed' => 'Оновлення не вдалось',
'upload' => 'Завантажити на сервер',
'url' => 'URL',
'view' => 'Переглянути',
'viewing' => 'Перегляд',
'yes' => 'Так',
'yes_please' => 'Так, будь ласка',
],
'login' => [
'loggingin' => 'Вхід в систему',
'signin_below' => 'Вхід тут:',
'welcome' => 'Ласкаво просимо до Voyager. Панель управління, якої не вистачало в Laravel',
],
'profile' => [
'avatar' => 'Фото',
'edit' => 'Налаштування профілю',
'edit_user' => 'Змінити профіль',
'password' => 'Пароль',
'password_hint' => 'Залиште порожнім, щоб не змінювати',
'role' => 'Роль',
'user_role' => 'Роль користувача',
],
'settings' => [
'usage_help' => 'Для того, щоб отримати значення параметрів, використовуйте в шаблоні код ',
'save' => 'Зберегти налаштування',
'new' => 'Створити налаштування',
'help_name' => 'Назва параметру (наприклад, Мій параметр)',
'help_key' => 'Ключ параметру (наприклад, my_parametr)',
'help_option' => '(необов\'язково, застосовується тільки до випадаючого списку чи радіо-кнопок)',
'add_new' => 'Додати новий параметр',
'delete_question' => 'Ви впевнені, що потрібно видалити параметр :setting?',
'delete_confirm' => 'Так, видалити цей параметр',
'successfully_created' => 'Параметри успішно створені',
'successfully_saved' => 'Параметри успішно збережені',
'successfully_deleted' => 'Параметри успішно видалені',
'already_at_top' => 'Вже розміщено вверху списку',
'already_at_bottom' => 'Вже розміщено внизу списку',
'moved_order_up' => 'Параметр :name переміщено догори',
'moved_order_down' => 'Параметр :name переміщено донизу',
'successfully_removed' => 'Успішно видалено значення параметру :name',
'group_general' => 'Основне',
'group_admin' => 'Адмін',
'group_site' => 'Сайт',
'group' => 'Група',
'help_group' => 'Прив\'язати це налаштування до групи',
],
'media' => [
'add_new_folder' => 'Додати нову папку',
'audio_support' => 'Ваш браузер не підтримує елемент audio.',
'create_new_folder' => 'Створити нову папку',
'delete_folder_question' => 'Видалення папки призведе до видалення всього її вмісту.',
'destination_folder' => 'Папка призначення',
'drag_drop_info' => 'Перетягніть файли мишкою або натисніть на кнопку знизу для завантаження.',
'error_already_exists' => 'Файл/папка з такою назвою вже існує в даному каталозі',
'error_creating_dir' => 'Не вдалось створити папку: перевірте права доступу',
'error_deleting_file' => 'Не вдалось видалити файл: перевірте права доступу',
'error_deleting_folder' => 'Не вдалось видалити папку: перевірте права доступу',
'error_may_exist' => 'Файл чи папка з такою назвою вже існує: виберіть іншу назву або видаліть існуючий файл!',
'error_moving' => 'Не вдалось перемістити файл чи папку: перевірте права доступу.',
'error_uploading' => 'Помилка завантаження: сталась невідома помилка!',
'folder_exists_already' => 'Папка з такою назвою вже існує: видаліть її, якщо хочете створити нову з такою ж назвою.',
'image_does_not_exist' => 'Зображення не існує',
'image_removed' => 'Зображення видалено',
'library' => 'Медіатека',
'loading' => 'ЙДЕ ЗАВАНТАЖЕННЯ ВАШИХ ФАЙЛІВ',
'move_file_folder' => 'Перемістити файл/папку',
'new_file_folder' => 'Нова назва файлу/папки',
'new_folder_name' => 'Нова назва папки',
'no_files_here' => 'Тут немає файлів',
'no_files_in_folder' => 'Відсутні файли в даній папці',
'nothing_selected' => 'Нічого не обрано',
'rename_file_folder' => 'Перейменувати файл/папку',
'success_uploaded_file' => 'Успішне завантаження файлу!',
'success_uploading' => 'Успішне завантаження зображення!',
'uploading_wrong_type' => 'Помилка завантаження: непідтримуваний формат файлу або завеликий розмір файлу для завантаження!',
'video_support' => 'Ваш браузер не підтримує елемент video.',
'crop' => 'Обрізати',
'crop_and_create' => 'Обрізати та створити',
'crop_override_confirm' => 'Існуюче зображення буде змінене, ви впевнені?',
'crop_image' => 'Обрізати зображення',
'success_crop_image' => 'Зображення успішно обрізано',
'height' => 'Висота: ',
'width' => 'Ширина: ',
],
'menu_builder' => [
'color' => 'Колір в RGB чи hex (необов\'язково)',
'color_ph' => 'Колір (наприклад, #ffffff чи rgb(255, 255, 255)',
'create_new_item' => 'Створити новий пункт меню',
'delete_item_confirm' => 'Так, видалити цей пункт меню',
'delete_item_question' => 'Ви впевнені, що хочете видалити цей пункт меню?',
'drag_drop_info' => 'Перетягніть пункти меню нижче, щоб змінити їх порядок.',
'dynamic_route' => 'Динамічний шлях',
'edit_item' => 'Редагувати пункт меню',
'icon_class' => 'Іконка для пункту меню (Використовуйте ',
'icon_class2' => 'Voyager Font Class</a>)',
'icon_class_ph' => 'Іконка (необов\'язково)',
'item_route' => 'Шлях для пункту меню',
'item_title' => 'Назва пункту меню',
'link_type' => 'Тип посилання',
'new_menu_item' => 'Новий пункт меню',
'open_in' => 'Відкрити в',
'open_new' => 'Нова вкладка/вікно',
'open_same' => 'Та ж вкладка/вікно',
'route_parameter' => 'Параметри шляху (якщо є)',
'static_url' => 'Статичний URL',
'successfully_created' => 'Пункт меню успішно створено.',
'successfully_deleted' => 'Пункт меню успішно видалено.',
'successfully_updated' => 'Пункт меню успішно оновлено.',
'updated_order' => 'Структуру меню успішно оновлено.',
'url' => 'URL для пункту меню',
'usage_hint' => 'Ви можете вивести меню в будь-якому місці вашого сайту, викликавши |Ви можете вивести це меню в будь-якому місці вашого сайту, викликавши ',
],
'post' => [
'category' => 'Категорія повідомлення',
'content' => 'Текст повідомлення',
'details' => 'Властивості',
'excerpt' => 'Анонс <small>Короткий опис статті</small>',
'image' => 'Зображення',
'meta_description' => 'Опис (meta)',
'meta_keywords' => 'Ключові слова (meta)',
'new' => 'Опублікувати',
'seo_content' => 'SEO текст',
'seo_title' => 'SEO назва',
'slug' => 'Посилання',
'status' => 'Статус публікації',
'status_draft' => 'Чернетка',
'status_pending' => 'На модерації',
'status_published' => 'Опубліковано',
'title' => 'Заголовок',
'title_sub' => 'Назва статті',
'update' => 'Оновити',
],
'database' => [
'add_bread' => 'Додати BREAD до даної таблиці',
'add_new_column' => 'Додати новий стовпчик',
'add_softdeletes' => 'Додати Soft Deletes',
'add_timestamps' => 'Додати мітки часу',
'already_exists' => 'Вже існує',
'already_exists_table' => 'Таблиця :table вже існує',
'bread_crud_actions' => 'BREAD/CRUD дії',
'bread_info' => 'BREAD інформація',
'column' => 'Стовпчик',
'composite_warning' => 'Попередження: цей стовпчик є частиною складового індексу',
'controller_name' => 'Назва контролера',
'controller_name_hint' => 'наприклад, порожній PageController, буде використовувати BREAD Controller',
'create_bread_for_table' => 'Створити BREAD для таблиці :table',
'create_migration' => 'Створити міграцію для даної таблиці?',
'create_model_table' => 'Створити модель для даної таблиці?',
'create_new_table' => 'Створити нову таблицю',
'create_your_new_table' => 'Створити вашу нову таблицю',
'default' => 'За замовчуванням',
'delete_bread' => 'Видалити BREAD',
'delete_bread_before_table' => 'Перед видаленням таблиці обов\'язково видаліть BREAD таблиці.',
'delete_table_bread_conf' => 'Так, видалити BREAD',
'delete_table_bread_quest' => 'Ви впевнені, що хочете видалити BREAD для таблиці :table?',
'delete_table_confirm' => 'Так, видалити таблицю',
'delete_table_question' => 'Ви дійсно хочете видалити таблицю :table?',
'description' => 'Опис',
'display_name' => 'Відображена назва',
'display_name_plural' => 'Відображена назва (в множині)',
'display_name_singular' => 'Відображена назва (в однині)',
'edit_bread' => 'Редагувати BREAD',
'edit_bread_for_table' => 'Редагувати BREAD для таблиці :table',
'edit_rows' => 'Редагувати рядки таблиці :table нижче',
'edit_table' => 'Редагувати таблицю :table нижче',
'edit_table_not_exist' => 'Таблиці, яку ви хочете редагувати, не існує',
'error_creating_bread' => 'Схоже, виникла проблема з створенням даного BREAD',
'error_removing_bread' => 'Схоже, виникла проблема з видаленням даного BREAD',
'error_updating_bread' => 'Схоже, виникла проблема з оновленням даного BREAD',
'extra' => 'Додатково',
'field' => 'Поле',
'field_safe_failed' => 'Не вдалось зберегти поле :field, буде проведено відкат до попереднього значення.',
'generate_permissions' => 'Створення прав доступу',
'icon_class' => 'Значок для даної таблиці',
'icon_hint' => 'Значок для (необов\'язково)',
'icon_hint2' => 'Voyager Font Class',
'index' => 'INDEX',
'input_type' => 'Тип вводу',
'key' => 'Ключ',
'model_class' => 'Назва класу моделі',
'model_name' => 'Назва моделі',
'model_name_ph' => 'наприклад \App\Models\User, якщо залишити порожнім - спробує використати назву таблиці',
'name_warning' => 'Вкажіть стовпчик перед додаванням індексу',
'no_composites_warning' => 'В даній таблиці присутній складовий індекс. Зверніть увагу, що на даний момент вони не підтримуються. Будьте обережні при додаванні/видаленні індексів.',
'null' => 'Null',
'optional_details' => 'Необов\'язкові відомості',
'policy_class' => 'Назва класу політики',
'policy_name' => 'Назва політики',
'policy_name_ph' => 'наприклад \App\Policies\UserPolicy, якщо залишити порожнім - спробує використати політику за замовчуванням',
'primary' => 'ПЕРВИННИЙ КЛЮЧ',
'server_pagination' => 'Пагінація на стороні сервера',
'success_create_table' => 'Таблиця :table успішно створена',
'success_created_bread' => 'Новий BREAD успішно створений',
'success_delete_table' => 'Таблиця :table успішно видалена',
'success_remove_bread' => 'BREAD успішно видалений з :datatype',
'success_update_bread' => 'BREAD успішно оновлений в :datatype',
'success_update_table' => 'Таблиця :table успішно оновлена',
'table_actions' => 'Дії з таблицею',
'table_columns' => 'Стовпчики таблиці',
'table_has_index' => 'В даній таблиці вже є первинний ключ.',
'table_name' => 'Назва таблиці',
'table_no_columns' => 'В таблиці відсутні стовпчики...',
'type' => 'Тип',
'type_not_supported' => 'Даний тип не підтримується',
'unique' => 'UNIQUE',
'unknown_type' => 'Невідомий тип',
'update_table' => 'Оновити таблицю',
'url_slug' => 'URL Slug (пвинен бути унікальним)',
'url_slug_ph' => 'URL slug (наприклад, posts)',
'visibility' => 'Видимість',
],
'dimmer' => [
'page' => 'сторінка|сторінки',
'page_link_text' => 'Всі сторінки',
'page_text' => 'В базі даних :count :string',
'post' => 'запис|записи',
'post_link_text' => 'Всі записи',
'post_text' => 'В базі даних :count :string',
'user' => 'користувач|користувачів',
'user_link_text' => 'Всі користувачі',
'user_text' => 'В базі даних :count :string',
],
'form' => [
'field_password_keep' => 'Залиште порожнім, якщо не хочете змінювати пароль',
'field_select_dd_relationship' => 'Обов\'язково налаштуйте відповідні стосунки (relationship) в методі :method класу :class.',
'type_checkbox' => 'Чекбокс',
'type_codeeditor' => 'Редактор коду',
'type_file' => 'Файл',
'type_image' => 'Зображення',
'type_radiobutton' => 'Радіо-кнопка',
'type_richtextbox' => 'Візуальний редактор',
'type_selectdropdown' => 'Випадаючий список',
'type_textarea' => 'Текстове поле',
'type_textbox' => 'Поле вводу',
],
// DataTable translations from: https://github.com/DataTables/Plugins/tree/master/i18n
'datatable' => [
'sEmptyTable' => 'В таблиці немає даних',
'sInfo' => 'Показано від _START_ до _END_ з _TOTAL_ записів',
'sInfoEmpty' => 'Показано 0 з 0 записів',
'sInfoFiltered' => '(вибрано з _MAX_ записів)',
'sInfoPostFix' => '',
'sInfoThousands' => ',',
'sLengthMenu' => 'Показати _MENU_ записів',
'sLoadingRecords' => 'Загрузка записів...',
'sProcessing' => 'Зачекайте...',
'sSearch' => 'Пошук:',
'sZeroRecords' => 'Записи відсутні',
'oPaginate' => [
'sFirst' => 'Перша',
'sLast' => 'Остання',
'sNext' => 'Наступна',
'sPrevious' => 'Попередня',
],
'oAria' => [
'sSortAscending' => ': активувати для сортування стовпчика за зростанням',
'sSortDescending' => ': активувати для сортування стовпчика за спаданням',
],
],
'theme' => [
'footer_copyright' => 'Зроблено з <i class="voyager-heart"></i> ',
'footer_copyright2' => 'Зроблено під ромом :) ',
],
'json' => [
'invalid' => 'неправильний формат JSON',
'invalid_message' => 'Введено неправильний формат JSON',
'valid' => 'Правильний формат JSON',
'validation_errors' => 'Помилки при перевірці даних',
],
'analytics' => [
'by_pageview' => 'По сторінках',
'by_sessions' => 'По сесіях',
'by_users' => 'По користувачах',
'no_client_id' => 'Для активації аналітики необхідно отримати ідентифікатор клієнта Google Analytics та додати його в поле <code>google_analytics_client_id</code> меню налаштувань. Отримати код Google Analytics: ',
'set_view' => 'Виберіть вид',
'this_vs_last_week' => 'Поточний тиждень в порівнянні з попереднім.',
'this_vs_last_year' => 'Поточний рік в порівнянні з попереднім',
'top_browsers' => 'Найкращі браузери',
'top_countries' => 'Найкращі країни',
'various_visualizations' => 'Різноманітні візуалізації',
],
'error' => [
'symlink_created_text' => 'Ми щойно створили посилання для вас.',
'symlink_created_title' => 'Створено відсутнє посилання на сховище даних.',
'symlink_failed_text' => 'Не вдалось створити відсутнє посилання: схоже, справа в хостингу.',
'symlink_failed_title' => 'Не вдалось створити посилання для сховища даних.',
'symlink_missing_button' => 'Виправте',
'symlink_missing_text' => 'Не знайдено посилання на сховище даних: це може спричинити проблеми з завантаженням медіафайлів.',
'symlink_missing_title' => 'Відсутнє посилання на сховище даних.',
],
];

374
lang/zh_CN/voyager.php Normal file
View File

@@ -0,0 +1,374 @@
<?php
return [
'date' => [
'last_week' => '上周',
'last_year' => '去年',
'this_week' => '本周',
'this_year' => '今年',
],
'generic' => [
'action' => '操作',
'actions' => '操作',
'add' => '添加',
'add_folder' => '添加文件夹',
'add_new' => '添加',
'all_done' => '已全部完成',
'are_you_sure' => '您确定吗?',
'are_you_sure_delete' => '你确定要删除吗',
'auto_increment' => '自增',
'browse' => '浏览',
'builder' => '构建器',
'bulk_delete' => '删除选中',
'bulk_delete_confirm' => '是的, 删除这些',
'bulk_delete_nothing' => '没有选择要删除的内容',
'cancel' => '取消',
'choose_type' => '选择类型',
'click_here' => '点击这里',
'close' => '关闭',
'compass' => '指南针',
'created_at' => 'created_at',
'custom' => '自定义',
'dashboard' => '控制面板',
'database' => '数据库',
'default' => '默认',
'delete' => '删除',
'delete_confirm' => '是的,删除它!',
'delete_question' => '您确定要删除它吗?',
'delete_this_confirm' => '是的,我要删除!',
'deselect_all' => '反选全部',
'download' => '下载',
'edit' => '编辑',
'email' => '电子邮件',
'error_deleting' => '抱歉,在删除过程中出现了问题',
'exception' => '异常',
'featured' => '特色',
'field_does_not_exist' => '字段不存在',
'how_to_use' => '如何使用',
'index' => 'INDEX',
'internal_error' => '内部错误',
'items' => '项目',
'keep_sidebar_open' => '保持边栏处在打开状态',
'key' => '键',
'last_modified' => 'last_modified',
'length' => '长度',
'login' => '登录',
'media' => '媒体',
'menu_builder' => '菜单生成器',
'move' => '移动',
'name' => '命名',
'new' => '新',
'no' => '没有',
'no_thanks' => '不,谢谢',
'not_null' => '非空',
'options' => '选项',
'password' => '密码',
'permissions' => '权限',
'profile' => '个人资料',
'public_url' => '公开 URL',
'read' => '读',
'rename' => '重命名',
'required' => '必须',
'return_to_list' => '返回列表',
'route' => '路由',
'save' => '保存',
'search' => '搜索',
'select_all' => '选择全部',
'settings' => '设置',
'showing_entries' => '展示从 :from 到 :to 项结果,共 :all 项|展示从 :from 到 :to 项结果,共 :all 项',
'submit' => '发布',
'successfully_added_new' => '添加成功',
'successfully_deleted' => '删除成功',
'successfully_updated' => '更新成功',
'timestamp' => '时间戳',
'title' => '标题',
'type' => '类型',
'unsigned' => 'Unsigned',
'unstick_sidebar' => '取消固定侧边栏',
'update' => '更新',
'update_failed' => '更新失败',
'upload' => '上传',
'url' => '网址',
'view' => '视图',
'viewing' => '查看',
'yes' => '好的',
'yes_please' => '好的,就这样做',
],
'login' => [
'loggingin' => '正在登录',
'signin_below' => '在下方登录:',
'welcome' => '欢迎使用 Voyager - 不可错过的 Laravel 后台管理框架',
],
'profile' => [
'avatar' => '头像',
'edit' => '更改个人资料',
'edit_user' => '编辑用户',
'password' => '密码',
'password_hint' => '留空为不修改密码',
'role' => '权限',
'user_role' => '用户权限',
],
'settings' => [
'usage_help' => '通过调用,您可以在站点的任何地方获得每个设置的值',
'save' => '保存设置',
'new' => '新设置',
'help_name' => '设置名称 例如:管理标题',
'help_key' => '设置键key 例如admin_title',
'help_option' => '(可选。仅适用于下拉框或单选按钮之类的某些类型)',
'add_new' => '添加新设置',
'delete_question' => '您确定要删除 :setting 设置吗?',
'delete_confirm' => '是的,删除此设置',
'successfully_created' => '成功创建了设置',
'successfully_saved' => '成功保存设置',
'successfully_deleted' => '成功删除设置',
'already_at_top' => '已经在顶部了',
'already_at_bottom' => '已经在底部了',
'key_already_exists' => '键 :key 已存在',
'moved_order_up' => '已将 :name 设置抬升',
'moved_order_down' => '已将 :name 设置下沉',
'successfully_removed' => '成功移除 :name 的值',
'group_general' => '概览',
'group_admin' => '管理',
'group_site' => '站点',
'group' => '组',
'help_group' => '这个设置被分配给',
],
'media' => [
'add_new_folder' => '添加新文件夹',
'audio_support' => '您的浏览器不支持音频元素。',
'create_new_folder' => '创建新文件夹',
'delete_folder_question' => '此操作将连同其内的所有文件和文件夹一并删除',
'destination_folder' => '目标文件夹',
'drag_drop_info' => '拖放文件或点击下面的上传',
'error_already_exists' => '对不起,相同名称的文件 / 文件夹已存在。',
'error_creating_dir' => '对不起,创建目录似乎出了问题,请检查您的权限',
'error_deleting_file' => '抱歉,在删除此文件时出现了错误,请检查您的权限',
'error_deleting_folder' => '对不起,在删除此文件夹时出现了错误,请检查您的权限',
'error_may_exist' => '可能已存在同名的文件或文件夹。请选择另一个名称或删除现有文件。',
'error_moving' => '对不起,在移动文件 / 文件夹时出现了问题,请确保您有正确的权限。',
'error_uploading' => '上传失败:发生未知错误!',
'folder_exists_already' => '对不起,文件夹已经存在,如果您想重新创建,请删除该文件夹',
'image_does_not_exist' => '图片不存在',
'image_removed' => '图片已删除',
'library' => '媒体库',
'loading' => '加载你的媒体文件',
'move_file_folder' => '移动文件或文件夹',
'new_file_folder' => '新文件 / 文件夹的名字',
'new_folder_name' => '新文件夹名称',
'no_files_here' => '没有文件。',
'no_files_in_folder' => '这个文件夹中没有文件。',
'nothing_selected' => '没有选择文件或文件夹',
'rename_file_folder' => '重命名文件或文件夹',
'success_uploaded_file' => '成功上传新文件!',
'success_uploading' => '图片上传成功!',
'uploading_wrong_type' => '上传失败:不受支持的文件格式,或是它文件过大而无法上传!',
'video_support' => '您的浏览器不支持视频标签。',
],
'menu_builder' => [
'color' => 'RGB或hex中的颜色(可选)',
'color_ph' => '颜色 (例如:#ffffff 或 rgb(255, 255, 255)',
'create_new_item' => '创建一个新的菜单项',
'delete_item_confirm' => '是的,删除这个菜单项',
'delete_item_question' => '您确定要删除这个菜单项吗?',
'drag_drop_info' => '拖放下面的菜单项重新排列。',
'dynamic_route' => '动态路由',
'edit_item' => '编辑菜单项',
'icon_class' => '菜单项的字体图标类(使用',
'icon_class2' => 'Voyager 图标库</a>',
'icon_class_ph' => 'Icon Class可选',
'item_route' => '菜单项的路由',
'item_title' => '菜单项的标题',
'link_type' => '链接类型',
'new_menu_item' => '新菜单项',
'open_in' => '打开',
'open_new' => '新标签页 / 窗口打开',
'open_same' => '在相同标签 / 窗口打开',
'route_parameter' => '路由参数(如果存在)',
'static_url' => '静态 URL',
'successfully_created' => '成功创建新菜单项。',
'successfully_deleted' => '成功删除菜单项。',
'successfully_updated' => '成功更新菜单项。',
'updated_order' => '成功更新菜单顺序。',
'url' => '菜单项的 URL',
'usage_hint' => 'You can output a menu anywhere on your site by calling|You can output '.
'this menu anywhere on your site by calling',
],
'post' => [
'category' => '分类目录',
'content' => '文章内容',
'details' => '文章详细信息',
'excerpt' => '文章摘要 <small>对该篇文章的简短描述</small>',
'image' => '文章图片',
'meta_description' => 'Meta Description',
'meta_keywords' => 'Meta Keywords',
'new' => '创建新文章',
'seo_content' => 'SEO Content',
'seo_title' => 'Seo Title',
'slug' => 'URL Slug',
'status' => '发布状态',
'status_draft' => '草稿',
'status_pending' => '待审核',
'status_published' => '已发布',
'title' => '文章标题',
'title_sub' => '该篇文章的标题',
'update' => '更新文章',
],
'database' => [
'add_bread' => '添加 BREAD 至该表',
'add_new_column' => '添加新列',
'add_softdeletes' => '添加 Soft Deletes',
'add_timestamps' => '添加时间戳',
'already_exists' => '已存在',
'already_exists_table' => '表 :table 已经存在',
'bread_crud_actions' => 'BREAD / CRUD 操作',
'bread_info' => 'BREAD 信息',
'column' => '列',
'composite_warning' => '警告:此列是复合索引的一部分',
'controller_name' => 'Controller 名称',
'controller_name_hint' => '例如PageController如果留空将使用自带的 BREAD Controller',
'create_bread_for_table' => '为表 :table 创建 BREAD',
'create_migration' => '为该表创建迁移?',
'create_model_table' => '为该表创建模型Model',
'create_new_table' => '创建新表',
'create_your_new_table' => '创建新表',
'default' => '默认',
'delete_bread' => '删除 BREAD',
'delete_bread_before_table' => '请务必在删除表前先删除该表的 BREAD。',
'delete_table_bread_conf' => '是的,删除该 BREAD',
'delete_table_bread_quest' => '你确定要删除 :table 表的 BREAD吗',
'delete_table_confirm' => '是的,删除该表',
'delete_table_question' => '您确定要删除 :table 表吗?',
'description' => '描述',
'display_name' => '显示名称',
'display_name_plural' => '显示名称(复数)',
'display_name_singular' => '显示名称(单数)',
'edit_bread' => '编辑 BREAD',
'edit_bread_for_table' => '编辑 BREAD :table',
'edit_rows' => '在下方编辑 :table 行',
'edit_table' => '在下方编辑 :table 表',
'edit_table_not_exist' => '您想要编辑的表不存在',
'error_creating_bread' => '很抱歉,在创建 BREAD 时出现了问题',
'error_removing_bread' => '很抱歉,在删除 BREAD 时出现了问题',
'error_updating_bread' => '很抱歉,在更新 BREAD 时出现了问题',
'extra' => '额外',
'field' => '字段',
'field_safe_failed' => '未能保存字段 :field正在回滚操作',
'generate_permissions' => '权限生成',
'icon_class' => '用于该表的图标',
'icon_hint' => '使用图标(可选)',
'icon_hint2' => 'Voyager 字体类',
'index' => 'INDEX',
'input_type' => '输入类型',
'key' => '键',
'model_class' => '模型类名称',
'model_name' => '模型名称',
'model_name_ph' => '如果左侧留空,将尝试使用表名',
'name_warning' => '请在添加索引之前给列命名',
'no_composites_warning' => '此表有复合索引。请注意,他们目前不受支持。在尝试添加 / 删除索引时要小心。',
'null' => '空',
'optional_details' => '可选细项',
'primary' => '主',
'server_pagination' => '服务器端分页',
'success_create_table' => '成功创建了:table 表',
'success_created_bread' => '成功创建 BREAD',
'success_delete_table' => '成功删除表 :table',
'success_remove_bread' => '成功地从 :datatype 中移除 BREAD',
'success_update_bread' => '成功更新 :datatype BREAD',
'success_update_table' => '成功更新 :table 表',
'table_actions' => '表操作',
'table_columns' => '表列',
'table_has_index' => '该表已经有一个主索引。',
'table_name' => '表名',
'table_no_columns' => '该表没有列…',
'type' => '类型',
'type_not_supported' => '不支持这种类型',
'unique' => '唯一',
'unknown_type' => '未知类型',
'update_table' => '更新表',
'url_slug' => 'URL Slug必须是唯一的',
'url_slug_ph' => 'URL Slug例如文章',
'visibility' => '可见性',
],
'dimmer' => [
'page' => '页面|页面',
'page_link_text' => '查看所有页面',
'page_text' => '您有 :count :string 在数据库中。点击下面的按钮查看所有页面。',
'post' => '文章|文章',
'post_link_text' => '查看所有的帖子',
'post_text' => '您有 :count :string 在数据库中。点击下面的按钮查看所有文章。',
'user' => '用户|用户',
'user_link_text' => '查看所有用户',
'user_text' => '您有 :count :string 在数据库中。点击下面的按钮查看所有用户。',
],
'form' => [
'field_password_keep' => '留空以保持不变',
'field_select_dd_relationship' => '确保在 :class 类的 :method 方法中设置适当的关系。',
'type_checkbox' => '复选框',
'type_codeeditor' => '代码编辑器',
'type_file' => '文件',
'type_image' => '图像',
'type_radiobutton' => '单选按钮',
'type_richtextbox' => '富文本框',
'type_selectdropdown' => '选择下拉',
'type_textarea' => '文本区域',
'type_textbox' => '文本框',
],
// DataTable translations from: https://github.com/DataTables/Plugins/tree/master/i18n
'datatable' => [
'sEmptyTable' => '处理中...',
'sInfo' => '显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项',
'sInfoEmpty' => '显示第 0 至 0 项结果,共 0 项',
'sInfoFiltered' => '(由 _MAX_ 项结果过滤)',
'sInfoPostFix' => '',
'sInfoThousands' => ',',
'sLengthMenu' => '显示 _MENU_ 项结果',
'sLoadingRecords' => '载入中...',
'sProcessing' => '处理中...',
'sSearch' => '搜索:',
'sZeroRecords' => '没有匹配结果',
'oPaginate' => [
'sFirst' => '首页',
'sLast' => '末页',
'sNext' => '下页',
'sPrevious' => '上页',
],
'oAria' => [
'sSortAscending' => ': 以升序排列此列',
'sSortDescending' => ': 以降序排列此列',
],
],
'theme' => [
'footer_copyright' => 'Made with <i class="voyager-heart"></i> by',
'footer_copyright2' => 'Made with rum and even more rum',
],
'json' => [
'invalid' => '无效的 Json',
'invalid_message' => '看起来您引入了一些无效的 JSON',
'valid' => '有效的 Json',
'validation_errors' => '验证错误',
],
'analytics' => [
'by_pageview' => 'By pageview',
'by_sessions' => 'By sessions',
'by_users' => 'By users',
'no_client_id' => 'To view analytics you\'ll need to get a google analytics client id and '.
'add it to your settings for the key <code>google_analytics_client_id'.
'</code>. Get your key in your Google developer console:',
'set_view' => 'Select a View',
'this_vs_last_week' => 'This Week vs Last Week',
'this_vs_last_year' => 'This Year vs Last Year',
'top_browsers' => 'Top Browsers',
'top_countries' => 'Top Countries',
'various_visualizations' => 'Various visualizations',
],
'error' => [
'symlink_created_text' => '我们刚刚为您创建了缺失的软连接。',
'symlink_created_title' => '丢失的存储软连接已被重新创建',
'symlink_failed_text' => '我们未能为您的应用程序生成缺失的软连接,似乎您的主机提供商不支持它。',
'symlink_failed_title' => '无法创建丢失的存储软连接',
'symlink_missing_button' => '修复',
'symlink_missing_text' => '我们找不到一个存储软连接,这可能会导致'.
'从浏览器加载媒体文件的问题。',
'symlink_missing_title' => '缺失的存储软连接',
],
];

286
lang/zh_HK.json Normal file
View File

@@ -0,0 +1,286 @@
{
"Hi, :Name! Welcome back!": "Hi, :Name! Welcome back!",
"Here's what you can do to get started.": "Here's what you can do to get started.",
"Start a new company": "Start a new company",
"Bookkeeping Service": "Bookkeeping Service",
"Have a question?": "Have a question?",
"Company Secretary Service": "Company Secretary Service",
"Digital Transformation": "Digital Transformation",
"Add account": "Add account",
"Log out this account": "Log out this account",
"Notification": "Notification",
"Service Chat": "Service Chat",
"You got a new reply!": "You got a new reply!",
"Check": "Check",
"Bookkeeping Queue": "Bookkeeping Queue",
"Entry Completed": "Entry Completed",
"Com Sec Service Queue": "Com Sec Service Queue",
"Failed": "Failed",
"User": "User",
"Add new user": "Add new user",
"User List": "User List",
"Access Log": "Access Log",
"First name": "First name",
"Last name": "Last name",
"Phone number": "Phone number",
"Access level": "Access level",
"Status": "Status",
"Action": "Action",
"Date": "Date",
"Time": "Time",
"Event": "Event",
"Description": "Description",
"User Detail": "User Detail",
"Password": "Password",
"Confirm Password": "Confirm Password",
"Phone": "Phone",
"Email": "Email",
"Select an option": "Select an option",
"Active": "Active",
"Inactive": "Inactive",
"Save": "Save",
"Cancel": "Cancel",
"All changes have been saved!": "All changes have been saved!",
"Back": "Back",
"User details has successfully retrieved!": "User details has successfully retrieved!",
"Suspend user": "Suspend user",
"Remove user": "Remove user",
"View user log": "View user log",
"Edit user": "Edit user",
"Are you sure?": "Are you sure?",
"You would not be able to revert this!": "You would not be able to revert this!",
"Yes": "Yes",
"User has successfully activated!": "User has successfully activated!",
"User has successfully suspended!": "User has successfully suspended!",
"User has successfully removed": "User has successfully removed",
"Current Password": "Current Password",
"The current password is incorrect.": "The current password is incorrect.",
"User Log": "User Log",
"No data available in table": "No data available in table",
"CRM": "CRM",
"Company": "Company",
"Search": "Search",
"Company Name": "Company Name",
"Bookkeeping Subscription": "Bookkeeping Subscription",
"Expired": "Expired",
"ComSec Subscription": "ComSec Subscription",
"Bookkeeping Request(s)": "Bookkeeping Request(s)",
"ComSec Request(s)": "ComSec Request(s)",
"Expiration": "Expiration",
"View": "View",
"Edit": "Edit",
"Company Detail": "Company Detail",
"Document Library": "Document Library",
"Bookkeeping Queue & Log": "Bookkeeping Queue & Log",
"ComSec Queue & Log": "ComSec Queue & Log",
"Subscription & Billing": "Subscription & Billing",
"User Management": "User Management",
"Xero API": "Xero API",
"Xero API Key": "Xero API Key",
"Enter your Xero API Key": "Enter your Xero API Key",
"Invitation": "Invitation",
"Enter invited user email": "Enter invited user email",
"Active Subscription": "Active Subscription",
"Expired Subscription": "Expired Subscription",
"Bookkeeping pending request": "Bookkeeping pending request",
"ComSec pending request": "ComSec pending request",
"Company registration information": "Company registration information",
"Company name(English)": "Company name(English)",
"Company name(Chinese)": "Company name(Chinese)",
"Registered office address(English)": "Registered office address(English)",
"Registered office address(Chinese)": "Registered office address(Chinese)",
"BR number": "BR number",
"Total User": "Total User",
"Add User": "Add User",
"Owner": "Owner",
"Company Account": "Company Account",
"Create Company Account": "Create Company Account",
"Manage/Revoke/Transfer Administrator Access": "Manage/Revoke/Transfer Administrator Access",
"Manage Company Detail": "Manage Company Detail",
"Manage Subscription": "Manage Subscription",
"Manage Group Access": "Manage Group Access",
"Manage User & Assign Group (All)": "Manage User & Assign Group (All)",
"Manage User & Assign Group (Except Administrator)": "Manage User & Assign Group (Except Administrator)",
"View Access Log": "View Access Log",
"Bookkeeping": "Bookkeeping",
"View / List Bookkeeping Record": "View / List Bookkeeping Record",
"Upload Bookkeeping Record": "Upload Bookkeeping Record",
"Administrator": "Administrator",
"Company Secretary": "Company Secretary",
"View / List Comp Sec Document": "View / List Comp Sec Document",
"Upload Comp Sec Document": "Upload Comp Sec Document",
"Bookkeeper": "Bookkeeper",
"Invitation sent": "Invitation sent",
"Terms and conditions has successfully updated!": "Terms and conditions has successfully updated!",
"Fill up all required fields": "Fill up all required fields",
"Something went wrong": "Something went wrong",
"Notice": "Notice",
"Warning": "Warning",
"Success": "Success",
"Privacy policy has successfully updated!": "Privacy policy has successfully updated!",
"Privacy Policy(English)": "Privacy Policy(English)",
"Privacy Policy(Chinese)": "Privacy Policy(Chinese)",
"Reset": "Reset",
"Terms and Conditions(English)": "Terms and Conditions(English)",
"Terms and Conditions(Chinese)": "Terms and Conditions(Chinese)",
"Settings": "Settings",
"Push Notification": "Push Notification",
"Queue status": "Queue status",
"App update": "App update",
"New enquiry": "New enquiry",
"New Password": "New Password",
"Google drive API Key": "Google drive API Key",
"Enter your Google drive API Key": "Enter your Google drive API Key",
"Category": "Category",
"No.": "No.",
"Title": "Title",
"Add New": "Add New",
"Contact number": "Contact number",
"Whatsapp": "Whatsapp",
"Office hour(English)": "Office hour(English)",
"Office hour(Chinese)": "Office hour(Chinese)",
"Address(English)": "Address(English)",
"Address(Chinese)": "Address(Chinese)",
"Password has successfully saved!": "Password has successfully saved!",
"Online Documents": "Online Documents",
"FAQ": "FAQ",
"Title(English)": "Title(English)",
"Title(Chinese)": "Title(Chinese)",
"Details(English)": "Details(English)",
"Details(Chinese)": "Details(Chinese)",
"Online Help has successfully saved!": "Online Help has successfully saved!",
"Sort": "Sort",
"Online Help has successfully removed!": "Online Help has successfully removed!",
"Preferred Settings": "Preferred Settings",
"API Key": "API Key",
"Online Help": "Online Help",
"Contact Us": "Contact Us",
"It's empty here...": "It's empty here...",
"Reply have been saved!": "Reply have been saved!",
"Enquiry box": "Enquiry box",
"Company Secretary Enquiry": "Company Secretary Enquiry",
"General Enquiry": "General Enquiry",
"Recent": "Recent",
"Client": "Client",
"Submitted date": "Submitted date",
"Reply": "Reply",
"Sort value already exists!": "Sort value already exists!",
"How we can help?": "How we can help?",
"Send us a message and we will reply within 10 minutes.": "Send us a message and we will reply within 10 minutes.",
"Type message...": "Type message...",
"Service Topic": "Service Topic",
"Company Info": "Company Info",
"User Email": "User Email",
"Location": "Location",
"Chat Room": "Chat Room",
"Form List": "Form List",
"Incorporation of Hong Kong Limited": "Incorporation of Hong Kong Limited",
"Change Company Name": "Change Company Name",
"Change Company Address": "Change Company Address",
"Change of Company and Director (Appointment / Cessation)": "Change of Company and Director (Appointment / Cessation)",
"Change of Company Secretary (Appointment / Cessation)": "Change of Company Secretary (Appointment / Cessation)",
"Change in Particulars of Company Secretary or Director": "Change in Particulars of Company Secretary or Director",
"Resignation of Reserve Director": "Resignation of Reserve Director",
"Security Group": "Security Group",
"Group List": "Group List",
"Group Access Right": "Group Access Right",
"Role": "Role",
"Suspend": "Suspend",
"Activate": "Activate",
"Role has successfully suspended!": "Role has successfully suspended!",
"Role has successfully activated!": "Role has successfully activated!",
"Role permissions has successfully updated": "Role permissions has successfully updated",
"Access right": "Access right",
"Name": "Name",
"Price": "Price",
"Subscription has successfully suspended!": "Subscription has successfully suspended!",
"Subscription has successfully activated!": "Subscription has successfully activated!",
"Subscription Management": "Subscription Management",
"Subscription Details": "Subscription Details",
"Name(English)": "Name(English)",
"Name(Chinese)": "Name(Chinese)",
"Period(English)": "Period(English)",
"Period(Chinese)": "Period(Chinese)",
"Name description(English)": "Name description(English)",
"Name description(Chinese)": "Name description(Chinese)",
"Basic services": "Basic services",
"Service": "Service",
"list": "list",
"English": "English",
"Chinese": "Chinese",
"Remove service": "Remove service",
"Add new service": "Add new service",
"Year": "Year",
"Month": "Month",
"Day": "Day",
"Period": "Period",
"Custom": "Custom",
"Archive": "Archive",
"Restore": "Restore",
"Category has successfully removed": "Category has successfully removed",
"Bookkeeping category details has successfully retrieved!": "Bookkeeping category details has successfully retrieved!",
"New Category": "New Category",
"Category Name": "Category Name",
"Category detail": "Category detail",
"Document has successfully uploaded!": "Document has successfully uploaded!",
"Properties": "Properties",
"Download": "Download",
"Upload Document": "Upload Document",
"Document/Record search": "Document/Record search",
"Document Name": "Document Name",
"Document Category": "Document Category",
"Upload User": "Upload User",
"Document Size": "Document Size",
"Date Uploaded": "Date Uploaded",
"Uploaded": "Uploaded",
"In Progress": "In Progress",
"OCR Completed": "OCR Completed",
"Completed": "Completed",
"Keyword": "Keyword",
"Any time": "Any time",
"Today": "Today",
"Yesterday": "Yesterday",
"Last 7 days": "Last 7 days",
"Last 30 days": "Last 30 days",
"Last 90 days": "Last 90 days",
"Select a company": "Select a company",
"Drag and drop files here or choose file.": "Drag and drop files here or choose file.",
"Accepted file types: Doc / PDF / JPG / PNG": "Accepted file types: Doc / PDF / JPG / PNG",
"Choose File": "Choose File",
"of": "of",
"files uploaded": "files uploaded",
"Submit in queue": "Submit in queue",
"Document not exists!": "Document not exists!",
"Document has successfully updated!": "Document has successfully updated!",
"Confirm": "Confirm",
"By": "By",
"Bookkeeping Action Log": "Bookkeeping Action Log",
"Category List": "Category List",
"In Queue List": "In Queue List",
"Completed List": "Completed List",
"Number of file in process": "Number of file in process",
"Total item(s) in Queue": "Total item(s) in Queue",
"Original Name": "Original Name",
"Vendor": "Vendor",
"Batch Name": "Batch Name",
"Remark": "Remark",
"Upload date&time": "Upload date&time",
"Xero Status": "Xero Status",
"Xero Amount": "Xero Amount",
"Update Xero information": "Update Xero information",
"N/A": "N/A",
"Checked": "Checked",
"Reupload": "Reupload",
"Require Datamolino": "Require Datamolino",
"Cancel Request": "Cancel Request",
"Message on file": "Message on file",
"Stop processing": "Stop processing",
"Show more": "Show more",
"Incorporation": "Incorporation",
"Client Subscription Record": "Client Subscription Record",
"Package": "Package",
"All": "All",
"Expiring Subscription": "Expiring Subscription",
"Subscruption Period": "Subscruption Period",
"Invoice": "Invoice"
}

31
phpunit.xml Normal file
View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd"
bootstrap="vendor/autoload.php"
colors="true"
>
<testsuites>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
</testsuites>
<coverage processUncoveredFiles="true">
<include>
<directory suffix=".php">./app</directory>
</include>
</coverage>
<php>
<env name="APP_ENV" value="testing"/>
<env name="BCRYPT_ROUNDS" value="4"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="DB_CONNECTION" value="mysql"/>
<env name="DB_DATABASE" value="wave_testing"/>
<env name="MAIL_MAILER" value="array"/>
<env name="QUEUE_CONNECTION" value="sync"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="TELESCOPE_ENABLED" value="false"/>
</php>
</phpunit>

21
public/.htaccess Normal file
View File

@@ -0,0 +1,21 @@
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

0
public/favicon.ico Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

55
public/index.php Normal file
View File

@@ -0,0 +1,55 @@
<?php
use Illuminate\Contracts\Http\Kernel;
use Illuminate\Http\Request;
define('LARAVEL_START', microtime(true));
/*
|--------------------------------------------------------------------------
| Check If The Application Is Under Maintenance
|--------------------------------------------------------------------------
|
| If the application is in maintenance / demo mode via the "down" command
| we will load this file so that any pre-rendered content can be shown
| instead of starting the framework, which could cause an exception.
|
*/
if (file_exists($maintenance = __DIR__.'/../storage/framework/maintenance.php')) {
require $maintenance;
}
/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader for
| this application. We just need to utilize it! We'll simply require it
| into the script here so we don't need to manually load our classes.
|
*/
require __DIR__.'/../vendor/autoload.php';
/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request using
| the application's HTTP kernel. Then, we will send the response back
| to this client's browser, allowing them to enjoy our application.
|
*/
$app = require_once __DIR__.'/../bootstrap/app.php';
$kernel = $app->make(Kernel::class);
$response = $kernel->handle(
$request = Request::capture()
)->send();
$kernel->terminate($request, $response);

3
public/mix-manifest.json Normal file
View File

@@ -0,0 +1,3 @@
{
"/js/app.js": "/js/app.js"
}

2
public/robots.txt Normal file
View File

@@ -0,0 +1,2 @@
User-agent: *
Disallow:

BIN
public/themes/tailwind/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,260 @@
.sc-overflow {
overflow-y: auto;
}
.scstyle-1::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
border-radius: 10px;
background-color: #F5F5F5;
}
.scstyle-1::-webkit-scrollbar {
width: 12px;
background-color: #F5F5F5;
}
.scstyle-1::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #555;
}
.scstyle-2::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
border-radius: 10px;
background-color: #F5F5F5;
}
.scstyle-2::-webkit-scrollbar {
width: 12px;
background-color: #F5F5F5;
}
.scstyle-2::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #D62929;
}
.scstyle-3::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
}
.scstyle-3::-webkit-scrollbar {
width: 6px;
background-color: #F5F5F5;
}
.scstyle-3::-webkit-scrollbar-thumb {
background-color: #000000;
}
.scstyle-4::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
}
.scstyle-4::-webkit-scrollbar {
width: 10px;
background-color: #F5F5F5;
}
.scstyle-4::-webkit-scrollbar-thumb {
background-color: #000000;
border: 2px solid #555555;
}
.scstyle-5::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
}
.scstyle-5::-webkit-scrollbar {
width: 10px;
background-color: #F5F5F5;
}
.scstyle-5::-webkit-scrollbar-thumb {
background-color: #0ae;
background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(.5, rgba(255, 255, 255, .2)), color-stop(.5, transparent), to(transparent));
}
.scstyle-6::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
}
.scstyle-6::-webkit-scrollbar {
width: 10px;
background-color: #F5F5F5;
}
.scstyle-6::-webkit-scrollbar-thumb {
background-color: #F90;
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%, transparent 75%, transparent);
}
.scstyle-7::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
border-radius: 10px;
}
.scstyle-7::-webkit-scrollbar {
width: 8px;
background-color: #F5F5F5;
margin: 10px;
}
.scstyle-7::-webkit-scrollbar-thumb {
border-radius: 10px;
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.44, rgb(122,153,217)), color-stop(0.72, rgb(73,125,189)), color-stop(0.86, rgb(28,58,148)));
}
.scstyle-8::-webkit-scrollbar-track {
border: 1px solid black;
background-color: #F5F5F5;
}
.scstyle-8::-webkit-scrollbar {
width: 10px;
background-color: #F5F5F5;
}
.scstyle-8::-webkit-scrollbar-thumb {
background-color: #000000;
}
.scstyle-9::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
}
.scstyle-9::-webkit-scrollbar {
width: 10px;
background-color: #F5F5F5;
}
.scstyle-9::-webkit-scrollbar-thumb {
background-color: #F90;
background-image: -webkit-linear-gradient(90deg, rgba(255, 255, 255, .2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%, transparent 75%, transparent);
}
.scstyle-10::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
border-radius: 10px;
}
.scstyle-10::-webkit-scrollbar {
width: 10px;
background-color: #F5F5F5;
}
.scstyle-10::-webkit-scrollbar-thumb {
background-color: #AAA;
border-radius: 10px;
background-image: -webkit-linear-gradient(90deg, rgba(0, 0, 0, .2) 25%, transparent 25%, transparent 50%, rgba(0, 0, 0, .2) 50%, rgba(0, 0, 0, .2) 75%, transparent 75%, transparent);
}
.scstyle-11::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background-color: #F5F5F5;
border-radius: 10px;
}
.scstyle-11::-webkit-scrollbar {
width: 10px;
background-color: #F5F5F5;
}
.scstyle-11::-webkit-scrollbar-thumb {
background-color: #3366FF;
border-radius: 10px;
background-image: -webkit-linear-gradient(0deg, rgba(255, 255, 255, 0.5) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0.5) 75%, transparent 75%, transparent);
}
.scstyle-12::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.9);
border-radius: 10px;
background-color: #444444;
}
.scstyle-12::-webkit-scrollbar {
width: 12px;
background-color: #F5F5F5;
}
.scstyle-12::-webkit-scrollbar-thumb {
border-radius: 10px;
background-color: #D62929;
background-image: -webkit-linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.4) 50%, transparent, transparent);
}
.scstyle-13::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.9);
border-radius: 10px;
background-color: #CCCCCC;
}
.scstyle-13::-webkit-scrollbar {
width: 12px;
background-color: #F5F5F5;
}
.scstyle-13::-webkit-scrollbar-thumb {
border-radius: 10px;
background-color: #D62929;
background-image: -webkit-linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.4) 50%, transparent, transparent);
}
.scstyle-14::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.6);
background-color: #CCCCCC;
}
.scstyle-14::-webkit-scrollbar {
width: 10px;
background-color: #F5F5F5;
}
.scstyle-14::-webkit-scrollbar-thumb {
background-color: #FFF;
background-image: -webkit-linear-gradient(90deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 1) 25%, transparent 100%, rgba(0, 0, 0, 1) 75%, transparent);
}
.scstyle-15::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.1);
background-color: #F5F5F5;
border-radius: 10px;
}
.scstyle-15::-webkit-scrollbar {
width: 10px;
background-color: #F5F5F5;
}
.scstyle-15::-webkit-scrollbar-thumb {
border-radius: 10px;
background-color: #FFF;
background-image: -webkit-gradient(linear, 40% 0%, 75% 84%, from(#c6e6d7), to(#e7e63b));
}
.scstyle-16::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.1);
background-color: #F5F5F5;
border-radius: 10px;
}
.scstyle-16::-webkit-scrollbar {
width: 10px;
background-color: #F5F5F5;
}
.scstyle-16::-webkit-scrollbar-thumb {
border-radius: 10px;
background-color: #FFF;
background-image: -webkit-linear-gradient(top, #e4f5fc 0%, #bfe8f9 50%, #9fd8ef 51%, #2ab0ed 100%);
}

View File

@@ -0,0 +1,95 @@
*, *:before, *:after {
-moz-box-sizing: border-box;
box-sizing: border-box;
}
input:focus, select:focus, textarea:focus, button:focus {
outline: none;
}
.drop {
width: 90%;
height: 220px;
border: 3px dashed #DADFE3;
border-radius: 15px;
overflow: hidden;
text-align: center;
background: transparent;
-moz-transition: all 0.5s ease-out;
transition: all 0.5s ease-out;
margin-top: 0px;
margin-right: auto;
margin-left: auto;
margin-bottom: 10px;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
.drop .cont {
width: 500px;
height: 170px;
color: #8E99A5;
-moz-transition: all 0.5s ease-out;
transition: all 0.5s ease-out;
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
.drop .cont i {
font-size: 40px;
color: #787e85;
position: relative;
}
.drop .cont .tit {
font-size: 12px;
color: #009B9A;
font-weight: 500;
}
.drop .cont .desc {
color: #787e85;
font-size: 18px;
}
.drop .cont .browse {
margin: 10px 25%;
color: white;
padding: 8px 16px;
border-radius: 4px;
background: #00c993;
}
.drop input {
width: 100%;
height: 100%;
cursor: pointer;
background: red;
opacity: 0;
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
#list {
width: 100%;
text-align: left;
position: absolute;
left: 0;
top: 0;
}
.dashed_upload {
height: 200px;
}

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More