From 75aa01791a2fe64da98f29a942923ab028a92586 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 30 Apr 2024 11:54:33 -0700 Subject: [PATCH 001/224] adds location select to the create new user vice asset checkout --- config/debugbar.php | 2 +- resources/views/modals/user.blade.php | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/config/debugbar.php b/config/debugbar.php index ca7848678..1f4be458d 100644 --- a/config/debugbar.php +++ b/config/debugbar.php @@ -12,7 +12,7 @@ return [ | */ - 'enabled' => null, + 'enabled' => true, /* |-------------------------------------------------------------------------- diff --git a/resources/views/modals/user.blade.php b/resources/views/modals/user.blade.php index 4e428f35f..e65fcca5b 100644 --- a/resources/views/modals/user.blade.php +++ b/resources/views/modals/user.blade.php @@ -39,6 +39,9 @@
@include ('partials.forms.edit.company-select', ['translated_name' => trans('general.company'), 'fieldname' => 'company_id'])
+
+ @include ('partials.forms.edit.location-profile-select', ['translated_name' => trans('general.location'), 'fieldname' => 'location_id']) +
From 5fa0c87ab0554e7c6455d7cd4922ae82cd6657f1 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 30 Apr 2024 12:02:11 -0700 Subject: [PATCH 002/224] null debugbar --- config/debugbar.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/debugbar.php b/config/debugbar.php index 1f4be458d..ca7848678 100644 --- a/config/debugbar.php +++ b/config/debugbar.php @@ -12,7 +12,7 @@ return [ | */ - 'enabled' => true, + 'enabled' => null, /* |-------------------------------------------------------------------------- From 57e1df86c8041b0efe6dbbfbcc5c92195dd15fb5 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Wed, 10 Jul 2024 10:21:24 -0700 Subject: [PATCH 003/224] finds model and collects assets with such model --- app/Console/Commands/RemoveExplicitEols.php | 41 +++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 app/Console/Commands/RemoveExplicitEols.php diff --git a/app/Console/Commands/RemoveExplicitEols.php b/app/Console/Commands/RemoveExplicitEols.php new file mode 100644 index 000000000..a0793cc50 --- /dev/null +++ b/app/Console/Commands/RemoveExplicitEols.php @@ -0,0 +1,41 @@ +option('model_name'))->first(); + + if($assetModel){ + $assets = Asset::where('model_id', '=', $assetModel->id)->get(); + } + else { + $this->error('Asset model not found'); + } + + dd($assets); + } +} From 09b2feac5401694cdb8a4f306a7418895bd4ec37 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Wed, 10 Jul 2024 10:56:44 -0700 Subject: [PATCH 004/224] updates assets with selected model to inherit asset model eol --- app/Console/Commands/LdapSync.php | 2 +- app/Console/Commands/RemoveExplicitEols.php | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/Console/Commands/LdapSync.php b/app/Console/Commands/LdapSync.php index 1856bf10f..a36de2ae0 100755 --- a/app/Console/Commands/LdapSync.php +++ b/app/Console/Commands/LdapSync.php @@ -257,7 +257,7 @@ class LdapSync extends Command //If a sync option is not filled in on the LDAP settings don't populate the user field if($ldap_result_username != null){ - $user->username = $item['username']; + $user->username = $item[name']; } if($ldap_result_last_name != null){ $user->last_name = $item['lastname']; diff --git a/app/Console/Commands/RemoveExplicitEols.php b/app/Console/Commands/RemoveExplicitEols.php index a0793cc50..58c1ed26b 100644 --- a/app/Console/Commands/RemoveExplicitEols.php +++ b/app/Console/Commands/RemoveExplicitEols.php @@ -13,7 +13,7 @@ class RemoveExplicitEols extends Command * * @var string */ - protected $signature = 'snipeit:remove-explicit-eols {--model_name=*}'; + protected $signature = 'snipeit:remove-explicit-eols {--model_name=}'; /** * The console command description. @@ -31,11 +31,17 @@ class RemoveExplicitEols extends Command if($assetModel){ $assets = Asset::where('model_id', '=', $assetModel->id)->get(); + + foreach ($assets as $asset) { + $asset->eol_explicit = 0; + $asset->asset_eol_date = null; + $asset->save(); + } + + $this->info($assets->count().' Assets updated successfully'); } else { $this->error('Asset model not found'); } - - dd($assets); } } From 22ddb695f2cfe9306b75d7d53eb201cb4a64595b Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Wed, 10 Jul 2024 10:57:47 -0700 Subject: [PATCH 005/224] better description --- app/Console/Commands/RemoveExplicitEols.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Console/Commands/RemoveExplicitEols.php b/app/Console/Commands/RemoveExplicitEols.php index 58c1ed26b..f6db0c39f 100644 --- a/app/Console/Commands/RemoveExplicitEols.php +++ b/app/Console/Commands/RemoveExplicitEols.php @@ -20,7 +20,7 @@ class RemoveExplicitEols extends Command * * @var string */ - protected $description = 'remove explicit eols on assets with selected model'; + protected $description = 'remove explicit eols on assets with selected model so they may inherit the asset model eol'; /** * Execute the console command. From 726308bfd58a1ba4a99174fcd47c052b6404821f Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Wed, 10 Jul 2024 10:58:45 -0700 Subject: [PATCH 006/224] removed typo --- app/Console/Commands/LdapSync.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Console/Commands/LdapSync.php b/app/Console/Commands/LdapSync.php index a36de2ae0..1856bf10f 100755 --- a/app/Console/Commands/LdapSync.php +++ b/app/Console/Commands/LdapSync.php @@ -257,7 +257,7 @@ class LdapSync extends Command //If a sync option is not filled in on the LDAP settings don't populate the user field if($ldap_result_username != null){ - $user->username = $item[name']; + $user->username = $item['username']; } if($ldap_result_last_name != null){ $user->last_name = $item['lastname']; From 1fa6a763bcfd2c543f58073fdfe40eca927ad636 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Wed, 10 Jul 2024 11:09:57 -0700 Subject: [PATCH 007/224] updated description --- app/Console/Commands/RemoveExplicitEols.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Console/Commands/RemoveExplicitEols.php b/app/Console/Commands/RemoveExplicitEols.php index f6db0c39f..5956e9b10 100644 --- a/app/Console/Commands/RemoveExplicitEols.php +++ b/app/Console/Commands/RemoveExplicitEols.php @@ -20,7 +20,7 @@ class RemoveExplicitEols extends Command * * @var string */ - protected $description = 'remove explicit eols on assets with selected model so they may inherit the asset model eol'; + protected $description = 'Removes explicit EOLs on assets with selected model so they may inherit the asset model EOL'; /** * Execute the console command. From 43c7504f899d560e70d033fc8a2ac9823e1fabde Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Thu, 11 Jul 2024 10:03:51 -0700 Subject: [PATCH 008/224] adds an all option, adds help context for all, seperates logic --- app/Console/Commands/RemoveExplicitEols.php | 36 +++++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/app/Console/Commands/RemoveExplicitEols.php b/app/Console/Commands/RemoveExplicitEols.php index 5956e9b10..03163a475 100644 --- a/app/Console/Commands/RemoveExplicitEols.php +++ b/app/Console/Commands/RemoveExplicitEols.php @@ -13,7 +13,7 @@ class RemoveExplicitEols extends Command * * @var string */ - protected $signature = 'snipeit:remove-explicit-eols {--model_name=}'; + protected $signature = 'snipeit:remove-explicit-eols {--model_name= : The name of the asset model to update (use "all" to update all models)}'; /** * The console command description. @@ -27,21 +27,29 @@ class RemoveExplicitEols extends Command */ public function handle() { - $assetModel= AssetModel::where('name', '=', $this->option('model_name'))->first(); + if ($this->option('model_name') == 'all') { + $assets = Asset::all(); + $this->updateAssets($assets); + } else { + $assetModel = AssetModel::where('name', '=', $this->option('model_name'))->first(); - if($assetModel){ - $assets = Asset::where('model_id', '=', $assetModel->id)->get(); - - foreach ($assets as $asset) { - $asset->eol_explicit = 0; - $asset->asset_eol_date = null; - $asset->save(); + if ($assetModel) { + $assets = Asset::where('model_id', '=', $assetModel->id)->get(); + $this->updateAssets($assets); + } else { + $this->error('Asset model not found'); } - - $this->info($assets->count().' Assets updated successfully'); - } - else { - $this->error('Asset model not found'); } } + + private function updateAssets($assets) + { + foreach ($assets as $asset) { + $asset->eol_explicit = 0; + $asset->asset_eol_date = null; + $asset->save(); + } + + $this->info($assets->count() . ' Assets updated successfully'); + } } From d4d19569eeecb16e9064e47f47ca503afba469a5 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Thu, 11 Jul 2024 10:52:47 -0700 Subject: [PATCH 009/224] adds execution timer --- app/Console/Commands/RemoveExplicitEols.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/Console/Commands/RemoveExplicitEols.php b/app/Console/Commands/RemoveExplicitEols.php index 03163a475..f5164c2ee 100644 --- a/app/Console/Commands/RemoveExplicitEols.php +++ b/app/Console/Commands/RemoveExplicitEols.php @@ -27,6 +27,8 @@ class RemoveExplicitEols extends Command */ public function handle() { + $startTime = microtime(true); + if ($this->option('model_name') == 'all') { $assets = Asset::all(); $this->updateAssets($assets); @@ -40,6 +42,9 @@ class RemoveExplicitEols extends Command $this->error('Asset model not found'); } } + $endTime = microtime(true); + $executionTime = ($endTime - $startTime); + $this->info('Command executed in ' . round($executionTime, 2) . ' seconds.'); } private function updateAssets($assets) From 9e06f2d17fdcdb709a9feada88f2ab7088459f08 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Thu, 11 Jul 2024 13:22:10 -0700 Subject: [PATCH 010/224] Remove commented code --- app/Livewire/Importer.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index e164af36d..1ffdd941f 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -161,10 +161,6 @@ class Importer extends Component } } - public function boot() { // FIXME - delete or undelete. - ///////$this->activeFile = null; // I do *not* understand why I have to do this, but, well, whatever. - } - public function mount() { From 9793016603cb35524e3e421edf0fe4044e6a42e3 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Thu, 11 Jul 2024 13:32:16 -0700 Subject: [PATCH 011/224] Remove unneeded AuthorizesRequests --- app/Livewire/Importer.php | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index 1ffdd941f..71637f61e 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -3,18 +3,12 @@ namespace App\Livewire; use App\Models\CustomField; -use Livewire\Component; - use App\Models\Import; use Illuminate\Support\Facades\Storage; - -use Illuminate\Foundation\Auth\Access\AuthorizesRequests; - +use Livewire\Component; class Importer extends Component { - use AuthorizesRequests; - public $files; public $progress; //upload progress - '-1' means don't show @@ -75,8 +69,6 @@ class Importer extends Component } - - private function getColumns($type) { switch ($type) { @@ -161,7 +153,6 @@ class Importer extends Component } } - public function mount() { $this->authorize('import'); From 256e989ba113650fbe5624bc00735e9329a2795d Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Mon, 15 Jul 2024 15:49:18 -0700 Subject: [PATCH 012/224] Add test for importer --- database/factories/UserFactory.php | 5 +++++ tests/Feature/Livewire/ImporterTest.php | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 tests/Feature/Livewire/ImporterTest.php diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 5c885666d..10bb22e4e 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -296,6 +296,11 @@ class UserFactory extends Factory return $this->appendPermission(['reports.view' => '1']); } + public function canImport() + { + return $this->appendPermission(['import' => '1']); + } + private function appendPermission(array $permission) { return $this->state(function ($currentState) use ($permission) { diff --git a/tests/Feature/Livewire/ImporterTest.php b/tests/Feature/Livewire/ImporterTest.php new file mode 100644 index 000000000..b8af8f9bc --- /dev/null +++ b/tests/Feature/Livewire/ImporterTest.php @@ -0,0 +1,25 @@ +canImport()->create()) + ->test(Importer::class) + ->assertStatus(200); + } + + public function testRequiresPermission() + { + Livewire::actingAs(User::factory()->create()) + ->test(Importer::class) + ->assertStatus(403); + } +} From c8dad528a8d5244cf01111523dfcadd58eb5ada1 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Mon, 15 Jul 2024 16:15:58 -0700 Subject: [PATCH 013/224] Migrate a couple items out of mount --- app/Livewire/Importer.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index 71637f61e..4731a3c53 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -11,9 +11,9 @@ class Importer extends Component { public $files; - public $progress; //upload progress - '-1' means don't show + public $progress = -1; //upload progress - '-1' means don't show public $progress_message; - public $progress_bar_class; + public $progress_bar_class = 'progress-bar-warning'; public $message; //status/error message? public $message_type; //success/error? @@ -156,8 +156,6 @@ class Importer extends Component public function mount() { $this->authorize('import'); - $this->progress = -1; // '-1' means 'don't show the progressbar' - $this->progress_bar_class = 'progress-bar-warning'; $this->importTypes = [ 'asset' => trans('general.assets'), 'accessory' => trans('general.accessories'), From 017530ba4ba45f96d77cb27dd85e724b0d3783e7 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Tue, 16 Jul 2024 12:02:50 -0700 Subject: [PATCH 014/224] Make updating hook more specific --- app/Livewire/Importer.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index 4731a3c53..1cbe0825b 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -107,9 +107,9 @@ class Importer extends Component return $results; } - public function updating($name, $new_import_type) + public function updatingActiveFile($value, $propertyKey) { - if ($name == "activeFile.import_type") { + if ($propertyKey == "import_type") { // go through each header, find a matching field to try and map it to. foreach ($this->activeFile->header_row as $i => $header) { @@ -117,7 +117,7 @@ class Importer extends Component if (array_key_exists($i, $this->field_map)) { // yes, we do. Is it valid for this type of import? // (e.g. the import type might have been changed...?) - if (array_key_exists($this->field_map[$i], $this->columnOptions[$new_import_type])) { + if (array_key_exists($this->field_map[$i], $this->columnOptions[$value])) { //yes, this key *is* valid. Continue on to the next field. continue; } else { @@ -127,9 +127,9 @@ class Importer extends Component } // TODO - strictly speaking, this isn't necessary here I don't think. } // first, check for exact matches - foreach ($this->columnOptions[$new_import_type] as $value => $text) { + foreach ($this->columnOptions[$value] as $v => $text) { if (strcasecmp($text, $header) === 0) { // case-INSENSITIVe on purpose! - $this->field_map[$i] = $value; + $this->field_map[$i] = $v; continue 2; //don't bother with the alias check, go to the next header } } @@ -140,7 +140,7 @@ class Importer extends Component // Make *absolutely* sure that this key actually _exists_ in this import type - // you can trigger this by importing accessories with a 'Warranty' column (which don't exist // in "Accessories"!) - if (array_key_exists($key, $this->columnOptions[$new_import_type])) { + if (array_key_exists($key, $this->columnOptions[$value])) { $this->field_map[$i] = $key; continue 3; // bust out of both of these loops; as well as the surrounding one - e.g. move on to the next header } From 69263f0e5b2d5e600e4368a766104691a6e65e3f Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Tue, 16 Jul 2024 13:30:29 -0700 Subject: [PATCH 015/224] Migrate header row to component --- app/Livewire/Importer.php | 10 +++++++--- resources/views/livewire/importer.blade.php | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index 1cbe0825b..1f9a78ad1 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -21,6 +21,7 @@ class Importer extends Component //originally from ImporterFile public $import_errors; // public ?Import $activeFile = null; + public $headerRow = []; public $importTypes; public $columnOptions; public $statusType; @@ -49,6 +50,7 @@ class Importer extends Component 'activeFile.import_type' => 'string', 'activeFile.field_map' => 'array', 'activeFile.header_row' => 'array', + 'headerRow' => 'array', 'field_map' => 'array' ]; @@ -62,7 +64,7 @@ class Importer extends Component { $tmp = array(); if ($this->activeFile) { - $tmp = array_combine($this->activeFile->header_row, $this->field_map); + $tmp = array_combine($this->headerRow, $this->field_map); $tmp = array_filter($tmp); } return json_encode($tmp); @@ -112,7 +114,7 @@ class Importer extends Component if ($propertyKey == "import_type") { // go through each header, find a matching field to try and map it to. - foreach ($this->activeFile->header_row as $i => $header) { + foreach ($this->headerRow as $i => $header) { // do we have something mapped already? if (array_key_exists($i, $this->field_map)) { // yes, we do. Is it valid for this type of import? @@ -510,8 +512,10 @@ class Importer extends Component return; } + $this->headerRow = $this->activeFile->header_row; + $this->field_map = null; - foreach($this->activeFile->header_row as $element) { + foreach ($this->headerRow as $element) { if(isset($this->activeFile->field_map[$element])) { $this->field_map[] = $this->activeFile->field_map[$element]; } else { diff --git a/resources/views/livewire/importer.blade.php b/resources/views/livewire/importer.blade.php index b1164990b..d3ab66bdc 100644 --- a/resources/views/livewire/importer.blade.php +++ b/resources/views/livewire/importer.blade.php @@ -213,9 +213,9 @@
- @if($activeFile->header_row) + @if(! empty($headerRow)) - @foreach($activeFile->header_row as $index => $header) + @foreach($headerRow as $index => $header)
From b7744105a09e87a673f50eff32c1a7516d91c5ec Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Tue, 16 Jul 2024 14:20:41 -0700 Subject: [PATCH 016/224] Migrate import type to component --- app/Livewire/Importer.php | 74 ++++++++++----------- resources/views/livewire/importer.blade.php | 20 +++--- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index 1f9a78ad1..4c89e63dc 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -22,6 +22,7 @@ class Importer extends Component public $import_errors; // public ?Import $activeFile = null; public $headerRow = []; + public $typeOfImport; public $importTypes; public $columnOptions; public $statusType; @@ -51,6 +52,7 @@ class Importer extends Component 'activeFile.field_map' => 'array', 'activeFile.header_row' => 'array', 'headerRow' => 'array', + 'typeOfImport' => 'string', 'field_map' => 'array' ]; @@ -109,49 +111,46 @@ class Importer extends Component return $results; } - public function updatingActiveFile($value, $propertyKey) + public function updatingTypeOfImport($type) { - if ($propertyKey == "import_type") { - - // go through each header, find a matching field to try and map it to. - foreach ($this->headerRow as $i => $header) { - // do we have something mapped already? - if (array_key_exists($i, $this->field_map)) { - // yes, we do. Is it valid for this type of import? - // (e.g. the import type might have been changed...?) - if (array_key_exists($this->field_map[$i], $this->columnOptions[$value])) { - //yes, this key *is* valid. Continue on to the next field. - continue; - } else { - //no, this key is *INVALID* for this import type. Better set it to null - // and we'll hope that the $aliases_fields or something else picks it up. - $this->field_map[$i] = null; // fingers crossed! But it's not likely, tbh. - } // TODO - strictly speaking, this isn't necessary here I don't think. + // go through each header, find a matching field to try and map it to. + foreach ($this->headerRow as $i => $header) { + // do we have something mapped already? + if (array_key_exists($i, $this->field_map)) { + // yes, we do. Is it valid for this type of import? + // (e.g. the import type might have been changed...?) + if (array_key_exists($this->field_map[$i], $this->columnOptions[$type])) { + //yes, this key *is* valid. Continue on to the next field. + continue; + } else { + //no, this key is *INVALID* for this import type. Better set it to null + // and we'll hope that the $aliases_fields or something else picks it up. + $this->field_map[$i] = null; // fingers crossed! But it's not likely, tbh. + } // TODO - strictly speaking, this isn't necessary here I don't think. + } + // first, check for exact matches + foreach ($this->columnOptions[$type] as $v => $text) { + if (strcasecmp($text, $header) === 0) { // case-INSENSITIVe on purpose! + $this->field_map[$i] = $v; + continue 2; //don't bother with the alias check, go to the next header } - // first, check for exact matches - foreach ($this->columnOptions[$value] as $v => $text) { - if (strcasecmp($text, $header) === 0) { // case-INSENSITIVe on purpose! - $this->field_map[$i] = $v; - continue 2; //don't bother with the alias check, go to the next header - } - } - // if you got here, we didn't find a match. Try the $aliases_fields - foreach ($this->aliases_fields as $key => $alias_values) { - foreach ($alias_values as $alias_value) { - if (strcasecmp($alias_value, $header) === 0) { // aLsO CaSe-INSENSitiVE! - // Make *absolutely* sure that this key actually _exists_ in this import type - - // you can trigger this by importing accessories with a 'Warranty' column (which don't exist - // in "Accessories"!) - if (array_key_exists($key, $this->columnOptions[$value])) { - $this->field_map[$i] = $key; - continue 3; // bust out of both of these loops; as well as the surrounding one - e.g. move on to the next header - } + } + // if you got here, we didn't find a match. Try the $aliases_fields + foreach ($this->aliases_fields as $key => $alias_values) { + foreach ($alias_values as $alias_value) { + if (strcasecmp($alias_value, $header) === 0) { // aLsO CaSe-INSENSitiVE! + // Make *absolutely* sure that this key actually _exists_ in this import type - + // you can trigger this by importing accessories with a 'Warranty' column (which don't exist + // in "Accessories"!) + if (array_key_exists($key, $this->columnOptions[$type])) { + $this->field_map[$i] = $key; + continue 3; // bust out of both of these loops; as well as the surrounding one - e.g. move on to the next header } } } - // and if you got here, we got nothing. Let's recommend 'null' - $this->field_map[$i] = null; // Booooo :( } + // and if you got here, we got nothing. Let's recommend 'null' + $this->field_map[$i] = null; // Booooo :( } } @@ -513,6 +512,7 @@ class Importer extends Component } $this->headerRow = $this->activeFile->header_row; + $this->typeOfImport = $this->activeFile->import_type; $this->field_map = null; foreach ($this->headerRow as $element) { diff --git a/resources/views/livewire/importer.blade.php b/resources/views/livewire/importer.blade.php index d3ab66bdc..53bb59ffa 100644 --- a/resources/views/livewire/importer.blade.php +++ b/resources/views/livewire/importer.blade.php @@ -142,12 +142,12 @@
-
- @if (($activeFile->first_row) && (array_key_exists($index, $activeFile->first_row))) + @if (($this->activeFile->first_row) && (array_key_exists($index, $this->activeFile->first_row)))
-

{{ str_limit($activeFile->first_row[$index], 50, '...') }}

+

{{ str_limit($this->activeFile->first_row[$index], 50, '...') }}

@else @php @@ -251,7 +251,7 @@
@@ -267,7 +267,7 @@ @else @endif {{-- end of if ... $typeOfImport --}} @@ -388,7 +388,7 @@ } } - $wire.$set('activeFile', null); //$wire.$set('hideDetails') + $wire.$set('activeFileId', null); //$wire.$set('hideDetails') }); }) return false; From f58e3114a23435331536000d04ee3090ad4fb9f4 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Tue, 16 Jul 2024 17:17:45 -0700 Subject: [PATCH 019/224] Simplify destroy method and update list --- app/Livewire/Importer.php | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index 8d63f4b7d..826d1ef7d 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -523,23 +523,22 @@ class Importer extends Component public function destroy($id) { - // TODO: why don't we just do File::find($id)? This seems dumb. - foreach ($this->files as $file) { - if ($id == $file->id) { - if (Storage::delete('private_uploads/imports/' . $file->file_path)) { - $file->delete(); + $this->authorize('import'); - $this->message = trans('admin/hardware/message.import.file_delete_success'); - $this->message_type = 'success'; - return; - } else { - $this->message = trans('admin/hardware/message.import.file_delete_error'); - $this->message_type = 'danger'; - } - } + $import = Import::findOrFail($id); + + if (Storage::delete('private_uploads/imports/' . $import->file_path)) { + $import->delete(); + $this->message = trans('admin/hardware/message.import.file_delete_success'); + $this->message_type = 'success'; + + unset($this->files); + + return; } - unset($this->files); + $this->message = trans('admin/hardware/message.import.file_delete_error'); + $this->message_type = 'danger'; } public function clearMessage() From dd32341502c94f5dbcac64196a4e3acdc7e95462 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Tue, 16 Jul 2024 17:21:18 -0700 Subject: [PATCH 020/224] Display message if attempting to delete non-existent file --- app/Livewire/Importer.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index 826d1ef7d..84041f442 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -525,7 +525,16 @@ class Importer extends Component { $this->authorize('import'); - $import = Import::findOrFail($id); + $import = Import::find($id); + + // Check that the import wasn't deleted after while page was already loaded... + if (!$import) { + // @todo: improve error message + $this->message = trans('admin/hardware/message.import.file_delete_error'); + $this->message_type = 'danger'; + + return; + } if (Storage::delete('private_uploads/imports/' . $import->file_path)) { $import->delete(); From 04b6cb763f1cad48da45e4b2c2a491e95430728e Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 17 Jul 2024 10:58:48 -0700 Subject: [PATCH 021/224] Add todo --- app/Livewire/Importer.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index 84041f442..1d2bd1fdb 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -536,6 +536,8 @@ class Importer extends Component return; } + // @todo: next up...handle the file being missing for other interactions... + if (Storage::delete('private_uploads/imports/' . $import->file_path)) { $import->delete(); $this->message = trans('admin/hardware/message.import.file_delete_success'); From 3772a21a517c9805929f66e38122cbe7bf6f06f8 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 17 Jul 2024 13:37:24 -0700 Subject: [PATCH 022/224] Move comment up --- app/Livewire/Importer.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index 1d2bd1fdb..460460cd2 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -528,6 +528,7 @@ class Importer extends Component $import = Import::find($id); // Check that the import wasn't deleted after while page was already loaded... + // @todo: next up...handle the file being missing for other interactions...for example switching the import type if (!$import) { // @todo: improve error message $this->message = trans('admin/hardware/message.import.file_delete_error'); @@ -536,8 +537,6 @@ class Importer extends Component return; } - // @todo: next up...handle the file being missing for other interactions... - if (Storage::delete('private_uploads/imports/' . $import->file_path)) { $import->delete(); $this->message = trans('admin/hardware/message.import.file_delete_success'); From b4ed01243bbac083ddd66d912207bd865098c30a Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 17 Jul 2024 13:40:41 -0700 Subject: [PATCH 023/224] Add more details --- app/Livewire/Importer.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index 460460cd2..49884dc6d 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -528,7 +528,9 @@ class Importer extends Component $import = Import::find($id); // Check that the import wasn't deleted after while page was already loaded... - // @todo: next up...handle the file being missing for other interactions...for example switching the import type + // @todo: next up...handle the file being missing for other interactions... + // for example having an import open in two tabs, deleting it, and then changing + // the import type in the other tab. The error message below wouldn't display in that case. if (!$import) { // @todo: improve error message $this->message = trans('admin/hardware/message.import.file_delete_error'); From cfca1514c00e7ce1eab506b110f93f59a1b2eaf8 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 17 Jul 2024 16:22:44 -0700 Subject: [PATCH 024/224] Swap file_id for activeFileId --- app/Livewire/Importer.php | 3 --- resources/views/livewire/importer.blade.php | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index 49884dc6d..f3a461d31 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -30,8 +30,6 @@ class Importer extends Component public $send_welcome; public $run_backup; public $field_map; // we need a separate variable for the field-mapping, because the keys in the normal array are too complicated for Livewire to understand - // @todo: remove the need for this by using $activeFileId - public $file_id; // TODO: I can't figure out *why* we need this, but it really seems like we do. I can't seem to pull the id from the activeFile for some reason? // Make these variables public - we set the properties in the constructor so we can localize them (versus the old static arrays) public $accessories_fields; @@ -515,7 +513,6 @@ class Importer extends Component $this->field_map[] = null; // re-inject the 'nulls' if a file was imported with some 'Do Not Import' settings } } - $this->file_id = $id; $this->import_errors = null; $this->statusText = null; diff --git a/resources/views/livewire/importer.blade.php b/resources/views/livewire/importer.blade.php index ecc2c2583..081f7d388 100644 --- a/resources/views/livewire/importer.blade.php +++ b/resources/views/livewire/importer.blade.php @@ -340,10 +340,10 @@ // console.warn("Here is the mappings:") // console.dir(mappings) // console.warn("Uh, active file id is, I guess: "+$wire.$get('activeFile.id')) - var this_file = $wire.$get('file_id'); // okay, I actually don't know what I'm doing here. + var file_id = $wire.$get('activeFileId'); $.post({ {{-- I want to do something like: route('api.imports.importFile', $activeFile->id) }} --}} - url: "api/v1/imports/process/"+this_file, // maybe? Good a guess as any..FIXME. HARDCODED DUMB FILE + url: "api/v1/imports/process/"+file_id, // maybe? Good a guess as any..FIXME. HARDCODED DUMB FILE contentType: 'application/json', data: JSON.stringify({ 'import-update': !!$wire.$get('update'), From 81bffccf0144dce331cabe57b7c5993fba13a6b2 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 17 Jul 2024 16:28:26 -0700 Subject: [PATCH 025/224] Use better error message --- app/Livewire/Importer.php | 3 +-- resources/lang/en-US/admin/hardware/message.php | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index f3a461d31..fe084d547 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -529,8 +529,7 @@ class Importer extends Component // for example having an import open in two tabs, deleting it, and then changing // the import type in the other tab. The error message below wouldn't display in that case. if (!$import) { - // @todo: improve error message - $this->message = trans('admin/hardware/message.import.file_delete_error'); + $this->message = trans('admin/hardware/message.import.file_already_deleted'); $this->message_type = 'danger'; return; diff --git a/resources/lang/en-US/admin/hardware/message.php b/resources/lang/en-US/admin/hardware/message.php index 32698b1c0..a062e5c48 100644 --- a/resources/lang/en-US/admin/hardware/message.php +++ b/resources/lang/en-US/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Your file has been been successfully deleted', 'file_delete_error' => 'The file was unable to be deleted', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], From 199e68ff2929e4f13d6fdd35ec71751b71cf82e5 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 17 Jul 2024 17:10:12 -0700 Subject: [PATCH 026/224] Simplify computed propery --- app/Livewire/Importer.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php index fe084d547..99fb73b2a 100644 --- a/app/Livewire/Importer.php +++ b/app/Livewire/Importer.php @@ -564,11 +564,7 @@ class Importer extends Component #[Computed] public function activeFile() { - if ($this->activeFileId) { - return Import::find($this->activeFileId); - } - - return null; + return Import::find($this->activeFileId); } public function render() From 7685de45f255979cbf1799dd8c6936a2c874419c Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 17 Jul 2024 17:12:14 -0700 Subject: [PATCH 027/224] Turn off legacy binding --- config/livewire.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/livewire.php b/config/livewire.php index 8cc482183..6c6d3ba8e 100644 --- a/config/livewire.php +++ b/config/livewire.php @@ -101,7 +101,7 @@ return [ | */ - 'legacy_model_binding' => true, + 'legacy_model_binding' => false, /* |--------------------------------------------------------------------------- From 8d1cc22c5818baa8673e24cb402090acfbb73a10 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Thu, 18 Jul 2024 12:00:01 -0700 Subject: [PATCH 028/224] Turn on legacy binding since other components still use it --- config/livewire.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/livewire.php b/config/livewire.php index 6c6d3ba8e..8cc482183 100644 --- a/config/livewire.php +++ b/config/livewire.php @@ -101,7 +101,7 @@ return [ | */ - 'legacy_model_binding' => false, + 'legacy_model_binding' => true, /* |--------------------------------------------------------------------------- From 914e29210ae746ed78c240b3f037611e0e8bd149 Mon Sep 17 00:00:00 2001 From: Brady Wetherington Date: Wed, 26 Jun 2024 18:53:01 +0100 Subject: [PATCH 029/224] Initial rough stab at re-implementing stalebot --- .github/workflows/stale.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/workflows/stale.yml diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 000000000..f03790d90 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,13 @@ +name: 'Close stale issues' +on: + schedule: + - cron: '30 1 * * *' + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 + with: + stale-issue-message: 'Message to comment on stale issues. If none provided, will not mark issues stale' +# stale-pr-message: 'Message to comment on stale PRs. If none provided, will not mark PRs stale' \ No newline at end of file From 97e3af8fc989f0b03db39e984c45ba540f7f8ed7 Mon Sep 17 00:00:00 2001 From: Brady Wetherington Date: Sat, 29 Jun 2024 00:59:47 +0100 Subject: [PATCH 030/224] WIP on new GitHub-backed stalebot settings --- .github/stale.yml | 27 --------------------------- .github/workflows/stale.yml | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 28 deletions(-) diff --git a/.github/stale.yml b/.github/stale.yml index 53acc282e..82c01c9ce 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -1,7 +1,3 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 60 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 7 # Issues with these labels will never be considered stale exemptLabels: - pinned @@ -14,30 +10,7 @@ exemptLabels: - "💰 bounty" - "✋ bug" -exemptMilestones: true - -# Label to use when marking an issue as stale -staleLabel: stale - -only: issues - # Comment to post when removing the stale label. unmarkComment: > Okay, it looks like this issue or feature request might still be important. We'll re-open it for now. Thank you for letting us know! - -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - Is this still relevant? We haven't heard from anyone in a bit. If so, - please comment with any updates or additional detail. - - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Don't - take it personally, we just need to keep a handle on things. Thank you - for your contributions! -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: > - This issue has been automatically closed because it has not had - recent activity. If you believe this is still an issue, please confirm that - this issue is still happening in the most recent version of Snipe-IT and reply - to this thread to re-open it. diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index f03790d90..a32069995 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -3,11 +3,42 @@ on: schedule: - cron: '30 1 * * *' +permissions: + # contents: write # only for delete-branch option + issues: write + # pull-requests: write + jobs: stale: runs-on: ubuntu-latest steps: - uses: actions/stale@v9 with: - stale-issue-message: 'Message to comment on stale issues. If none provided, will not mark issues stale' + days-before-stale: 60 + days-before-close: 7 + exempt-all-milestones: true + stale-issue-message: > + Is this still relevant? We haven't heard from anyone in a bit. If so, + please comment with any updates or additional detail. + + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Don't + take it personally, we just need to keep a handle on things. Thank you + for your contributions! + close-issue-message: > + This issue has been automatically closed because it has not had + recent activity. If you believe this is still an issue, please confirm that + this issue is still happening in the most recent version of Snipe-IT and reply + to this thread to re-open it. + # There doesn't seem to be a 'reopen issue message'? + # Since there is no 'stale-pr-message' - PR's should not be stale'd + stale-issue-label: stale + exempt-issue-labels: + pinned,security,":woman_technologist: + ready for dev",":moneybag: + bounty",:hand: bug,"🔐 security","👩‍💻 ready for dev","💰 bounty","✋ bug" + + + + # stale-pr-message: 'Message to comment on stale PRs. If none provided, will not mark PRs stale' \ No newline at end of file From 8cbcc237c0c587f05dd5e6e96bb900507c249d84 Mon Sep 17 00:00:00 2001 From: Brady Wetherington Date: Wed, 24 Jul 2024 13:27:31 +0100 Subject: [PATCH 031/224] Cleanup of Stale workflow for GH - set to debug-mode to start --- .github/stale.yml | 16 ---------------- .github/workflows/stale.yml | 23 +++++++++-------------- 2 files changed, 9 insertions(+), 30 deletions(-) delete mode 100644 .github/stale.yml diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 82c01c9ce..000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,16 +0,0 @@ -# Issues with these labels will never be considered stale -exemptLabels: - - pinned - - security - - :woman_technologist: ready for dev - - :moneybag: bounty - - :hand: bug - - "🔐 security" - - "👩‍💻 ready for dev" - - "💰 bounty" - - "✋ bug" - -# Comment to post when removing the stale label. -unmarkComment: > - Okay, it looks like this issue or feature request might still be important. We'll re-open - it for now. Thank you for letting us know! diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index a32069995..61160a124 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -3,17 +3,19 @@ on: schedule: - cron: '30 1 * * *' -permissions: - # contents: write # only for delete-branch option - issues: write - # pull-requests: write - jobs: stale: runs-on: ubuntu-latest + permissions: + # contents: write # only for delete-branch option + issues: write + # pull-requests: write steps: - uses: actions/stale@v9 with: + debug-only: true + operations-per-run: 1000 # just while we're debugging + repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-stale: 60 days-before-close: 7 exempt-all-milestones: true @@ -33,12 +35,5 @@ jobs: # There doesn't seem to be a 'reopen issue message'? # Since there is no 'stale-pr-message' - PR's should not be stale'd stale-issue-label: stale - exempt-issue-labels: - pinned,security,":woman_technologist: - ready for dev",":moneybag: - bounty",:hand: bug,"🔐 security","👩‍💻 ready for dev","💰 bounty","✋ bug" - - - - -# stale-pr-message: 'Message to comment on stale PRs. If none provided, will not mark PRs stale' \ No newline at end of file + exempt-issue-labels: > + pinned,security,:woman_technologist: ready for dev,:moneybag: bounty,:hand: bug,🔐 security,👩‍💻 ready for dev,💰 bounty,✋ bug \ No newline at end of file From bb465dbfaafeb6d42a4ee277d1cfe6d7067dfa34 Mon Sep 17 00:00:00 2001 From: Brady Wetherington Date: Wed, 24 Jul 2024 15:09:23 +0100 Subject: [PATCH 032/224] Cut down run number to 100 from 1000 --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 61160a124..14ddea225 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/stale@v9 with: debug-only: true - operations-per-run: 1000 # just while we're debugging + operations-per-run: 100 # just while we're debugging repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-stale: 60 days-before-close: 7 From bc0ff706b000c3b6f6c118ef670606131c6e837c Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Thu, 1 Aug 2024 10:31:39 -0700 Subject: [PATCH 033/224] fixes dashboard box overflow --- resources/assets/less/overrides.less | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/resources/assets/less/overrides.less b/resources/assets/less/overrides.less index 8ef34bb3e..4f8805e09 100644 --- a/resources/assets/less/overrides.less +++ b/resources/assets/less/overrides.less @@ -719,6 +719,14 @@ th.css-location > .th-inner::before { height:170px; } } +@media screen and (max-width: 1494px) and (min-width: 1200px){ + .dashboard{ + overflow: hidden; + text-overflow: ellipsis; + text-align: center; + white-space: nowrap; + } +} .ellipsis { overflow: hidden; From ff145abbe720f36604585005b26cf62873169f56 Mon Sep 17 00:00:00 2001 From: spencerrlongg Date: Mon, 12 Aug 2024 16:13:03 -0500 Subject: [PATCH 034/224] use array for eager loading, makes ide prettier --- app/Http/Controllers/Users/UsersController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 1e203e71d..bad16458d 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -232,7 +232,7 @@ class UsersController extends Controller $permissions = $request->input('permissions', []); app('request')->request->set('permissions', $permissions); - $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($id); + $user = User::with(['assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc'])->withTrashed()->find($id); // User is valid - continue... if ($user) { @@ -263,7 +263,7 @@ class UsersController extends Controller $user->activated = $request->input('activated', 0); $user->jobtitle = $request->input('jobtitle', null); $user->phone = $request->input('phone'); - $user->location_id = $request->input('location_id', null); + $user->location_id = $request->input('location_id', null); //here $user->company_id = Company::getIdForUser($request->input('company_id', null)); $user->manager_id = $request->input('manager_id', null); $user->notes = $request->input('notes'); From cc3b8e0681f74276958c988d986de07cff3e798d Mon Sep 17 00:00:00 2001 From: spencerrlongg Date: Mon, 12 Aug 2024 16:58:21 -0500 Subject: [PATCH 035/224] this should more or less work, but i need to determine if this is the best way --- app/Http/Controllers/Users/UsersController.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index bad16458d..96fbae49a 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -263,7 +263,16 @@ class UsersController extends Controller $user->activated = $request->input('activated', 0); $user->jobtitle = $request->input('jobtitle', null); $user->phone = $request->input('phone'); - $user->location_id = $request->input('location_id', null); //here + $user->location_id = $request->input('location_id', null); + if ($request->has('company_id')) { + if ($user->assets->count() > 0) { + if ($user->assets()->pluck('company_id') != $user->getRawOriginal('company_id')) { + { + return back()->with('error', 'this user has assets, check them in first'); + } + } + } + } $user->company_id = Company::getIdForUser($request->input('company_id', null)); $user->manager_id = $request->input('manager_id', null); $user->notes = $request->input('notes'); From ec863df0074ce785aa3ac80f4871accb8eb2145b Mon Sep 17 00:00:00 2001 From: spencerrlongg Date: Mon, 12 Aug 2024 16:58:53 -0500 Subject: [PATCH 036/224] rm conditional that might be unnecessary --- app/Http/Controllers/Users/UsersController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 96fbae49a..adf2d5f3d 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -266,11 +266,11 @@ class UsersController extends Controller $user->location_id = $request->input('location_id', null); if ($request->has('company_id')) { if ($user->assets->count() > 0) { - if ($user->assets()->pluck('company_id') != $user->getRawOriginal('company_id')) { + //if ($user->assets()->pluck('company_id') != $user->getRawOriginal('company_id')) { { return back()->with('error', 'this user has assets, check them in first'); } - } + //} } } $user->company_id = Company::getIdForUser($request->input('company_id', null)); From 5d1c48c071389acea676653f5b437e88dcb00a14 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 13 Aug 2024 10:11:49 -0700 Subject: [PATCH 037/224] fixes alignment, and box issue with pie chart --- resources/assets/less/overrides.less | 18 ++++-------- resources/views/dashboard.blade.php | 12 ++++---- resources/views/settings/index.blade.php | 36 ++++++++++++------------ 3 files changed, 30 insertions(+), 36 deletions(-) diff --git a/resources/assets/less/overrides.less b/resources/assets/less/overrides.less index 4f8805e09..5b2f5b82e 100644 --- a/resources/assets/less/overrides.less +++ b/resources/assets/less/overrides.less @@ -715,26 +715,20 @@ th.css-location > .th-inner::before { } } @media screen and (max-width: 1318px) and (min-width: 1200px){ - .box{ + .admin.box{ height:170px; } } @media screen and (max-width: 1494px) and (min-width: 1200px){ - .dashboard{ - overflow: hidden; - text-overflow: ellipsis; - text-align: center; + .dashboard.small-box{ white-space: nowrap; + text-overflow: ellipsis; + max-width: 188px; + display: block; + overflow: hidden; } } -.ellipsis { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - - /** Form-stuff overrides for checkboxes and stuff **/ label.form-control { diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php index 40255f88b..233912207 100755 --- a/resources/views/dashboard.blade.php +++ b/resources/views/dashboard.blade.php @@ -31,7 +31,7 @@
-
+

{{ number_format(\App\Models\Asset::AssetsForShow()->count()) }}

{{ strtolower(trans('general.assets')) }}

@@ -49,7 +49,7 @@
-
+

{{ number_format($counts['license']) }}

{{ strtolower(trans('general.licenses')) }}

@@ -68,7 +68,7 @@
-
+

{{ number_format($counts['accessory']) }}

{{ strtolower(trans('general.accessories')) }}

@@ -87,7 +87,7 @@
-
+

{{ number_format($counts['consumable']) }}

{{ strtolower(trans('general.consumables')) }}

@@ -104,7 +104,7 @@
-
+

{{ number_format($counts['component']) }}

{{ strtolower(trans('general.components')) }}

@@ -122,7 +122,7 @@
-
+

{{ number_format($counts['user']) }}

{{ strtolower(trans('general.people')) }}

diff --git a/resources/views/settings/index.blade.php b/resources/views/settings/index.blade.php index 3b805f921..ac7095814 100755 --- a/resources/views/settings/index.blade.php +++ b/resources/views/settings/index.blade.php @@ -57,7 +57,7 @@
-
+
@@ -74,7 +74,7 @@
-
+
@@ -91,7 +91,7 @@
-
+
-
+
@@ -124,7 +124,7 @@
-
+
@@ -142,7 +142,7 @@
-
+
-
+
-
+
-
+
-
+
@@ -219,7 +219,7 @@
-
+
-
+
-
+
-
+
@@ -280,7 +280,7 @@
-
+
-
+
@@ -311,7 +311,7 @@ @if (config('app.debug')=== true)
-
+
@@ -329,7 +329,7 @@
-
+
From 09f2739298933ea8150a6dfda4aa19b3c5baa94f Mon Sep 17 00:00:00 2001 From: spencerrlongg Date: Tue, 13 Aug 2024 13:45:41 -0500 Subject: [PATCH 038/224] works, un-reassignable licenses are an issue --- app/Http/Controllers/Users/UsersController.php | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index adf2d5f3d..9ff015248 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -186,7 +186,7 @@ class UsersController extends Controller { $this->authorize('update', User::class); - $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($id); + $user = User::with(['assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc'])->withTrashed()->find($id); if ($user) { @@ -235,9 +235,15 @@ class UsersController extends Controller $user = User::with(['assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc'])->withTrashed()->find($id); // User is valid - continue... + + if ($user) { $this->authorize('update', $user); + if ($request->has('company_id') && $user->allAssignedCount() > 0 && Setting::getSettings()->full_multiple_companies_support) { + return back()->with('error', 'this user has assets, check them in first'); + } + // Figure out of this user was an admin before this edit $orig_permissions_array = $user->decodePermissions(); $orig_superuser = '0'; @@ -264,15 +270,7 @@ class UsersController extends Controller $user->jobtitle = $request->input('jobtitle', null); $user->phone = $request->input('phone'); $user->location_id = $request->input('location_id', null); - if ($request->has('company_id')) { - if ($user->assets->count() > 0) { - //if ($user->assets()->pluck('company_id') != $user->getRawOriginal('company_id')) { - { - return back()->with('error', 'this user has assets, check them in first'); - } - //} - } - } + $user->company_id = Company::getIdForUser($request->input('company_id', null)); $user->manager_id = $request->input('manager_id', null); $user->notes = $request->input('notes'); From 120cfd13c544fb79e69f5f59aa44f908b4a39947 Mon Sep 17 00:00:00 2001 From: spencerrlongg Date: Tue, 13 Aug 2024 14:07:40 -0500 Subject: [PATCH 039/224] translation --- app/Http/Controllers/Users/UsersController.php | 2 +- resources/lang/en-US/admin/users/message.php | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 9ff015248..631ab3bc3 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -241,7 +241,7 @@ class UsersController extends Controller $this->authorize('update', $user); if ($request->has('company_id') && $user->allAssignedCount() > 0 && Setting::getSettings()->full_multiple_companies_support) { - return back()->with('error', 'this user has assets, check them in first'); + return back()->with('error', trans('admin/users/message.multi_company_items_assigned')); } // Figure out of this user was an admin before this edit diff --git a/resources/lang/en-US/admin/users/message.php b/resources/lang/en-US/admin/users/message.php index 4d014775b..0f41d463e 100644 --- a/resources/lang/en-US/admin/users/message.php +++ b/resources/lang/en-US/admin/users/message.php @@ -53,6 +53,7 @@ return array( 'ldap_could_not_search' => 'Could not search the LDAP server. Please check your LDAP server configuration in the LDAP config file.
Error from LDAP Server:', 'ldap_could_not_get_entries' => 'Could not get entries from the LDAP server. Please check your LDAP server configuration in the LDAP config file.
Error from LDAP Server:', 'password_ldap' => 'The password for this account is managed by LDAP/Active Directory. Please contact your IT department to change your password. ', + 'multi_company_items_assigned' => 'This user has items assigned, please check them in before moving companies.' ), 'deletefile' => array( From 3f8ac59f4cfd812149c68aa65866891ec8b37e40 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Tue, 13 Aug 2024 15:31:16 -0700 Subject: [PATCH 040/224] Reference the entry in the components_assets table --- .../Checkins/Ui/ComponentCheckinTest.php | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/tests/Feature/Checkins/Ui/ComponentCheckinTest.php b/tests/Feature/Checkins/Ui/ComponentCheckinTest.php index 1213d6525..06754d33c 100644 --- a/tests/Feature/Checkins/Ui/ComponentCheckinTest.php +++ b/tests/Feature/Checkins/Ui/ComponentCheckinTest.php @@ -4,27 +4,35 @@ namespace Tests\Feature\Checkins\Ui; use App\Models\Component; use App\Models\User; +use Illuminate\Support\Facades\DB; use Tests\TestCase; class ComponentCheckinTest extends TestCase { public function testCheckingInComponentRequiresCorrectPermission() { + $component = Component::factory()->checkedOutToAsset()->create(); + + $componentAsset = DB::table('components_assets')->where('component_id', $component->id)->first(); + $this->actingAs(User::factory()->create()) ->post(route('components.checkin.store', [ - 'componentID' => Component::factory()->checkedOutToAsset()->create()->id, + 'componentID' => $componentAsset->id, ])) ->assertForbidden(); } - public function testComponentCheckinPagePostIsRedirectedIfRedirectSelectionIsIndex() { $component = Component::factory()->checkedOutToAsset()->create(); + $componentAsset = DB::table('components_assets')->where('component_id', $component->id)->first(); + $this->actingAs(User::factory()->admin()->create()) ->from(route('components.index')) - ->post(route('components.checkin.store', $component), [ + ->post(route('components.checkin.store', [ + 'componentID' => $componentAsset->id, + ]), [ 'redirect_option' => 'index', 'checkin_qty' => 1, ]) @@ -36,9 +44,13 @@ class ComponentCheckinTest extends TestCase { $component = Component::factory()->checkedOutToAsset()->create(); + $componentAsset = DB::table('components_assets')->where('component_id', $component->id)->first(); + $this->actingAs(User::factory()->admin()->create()) ->from(route('components.index')) - ->post(route('components.checkin.store', $component), [ + ->post(route('components.checkin.store', [ + 'componentID' => $componentAsset->id, + ]), [ 'redirect_option' => 'item', 'checkin_qty' => 1, ]) @@ -46,6 +58,4 @@ class ComponentCheckinTest extends TestCase ->assertSessionHasNoErrors() ->assertRedirect(route('components.show', ['component' => $component->id])); } - - } From 371afde52dde371ba7468377475d95b3293bfcc0 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 14 Aug 2024 09:52:25 +0100 Subject: [PATCH 041/224] Bulk edit asset name Signed-off-by: snipe --- .../Assets/BulkAssetsController.php | 16 ++++++++++---- resources/views/hardware/bulk.blade.php | 21 +++++++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Assets/BulkAssetsController.php b/app/Http/Controllers/Assets/BulkAssetsController.php index 287bc0611..d58edbaca 100644 --- a/app/Http/Controllers/Assets/BulkAssetsController.php +++ b/app/Http/Controllers/Assets/BulkAssetsController.php @@ -227,7 +227,8 @@ class BulkAssetsController extends Controller * its checkout status. */ - if (($request->filled('purchase_date')) + if (($request->filled('name')) + || ($request->filled('purchase_date')) || ($request->filled('expected_checkin')) || ($request->filled('purchase_cost')) || ($request->filled('supplier_id')) @@ -239,6 +240,7 @@ class BulkAssetsController extends Controller || ($request->filled('status_id')) || ($request->filled('model_id')) || ($request->filled('next_audit_date')) + || ($request->filled('null_name')) || ($request->filled('null_purchase_date')) || ($request->filled('null_expected_checkin_date')) || ($request->filled('null_next_audit_date')) @@ -251,13 +253,14 @@ class BulkAssetsController extends Controller $this->update_array = []; /** - * Leave out model_id and status here because we do math on that later. We have to do some extra - * validation and checks on those two. + * Leave out model_id and status here because we do math on that later. We have to do some + * extra validation and checks on those two. * * It's tempting to make these match the request check above, but some of these values require * extra work to make sure the data makes sense. */ - $this->conditionallyAddItem('purchase_date') + $this->conditionallyAddItem('name') + ->conditionallyAddItem('purchase_date') ->conditionallyAddItem('expected_checkin') ->conditionallyAddItem('order_number') ->conditionallyAddItem('requestable') @@ -271,6 +274,11 @@ class BulkAssetsController extends Controller /** * Blank out fields that were requested to be blanked out via checkbox */ + if ($request->input('null_name')=='1') { + + $this->update_array['name'] = null; + } + if ($request->input('null_purchase_date')=='1') { $this->update_array['purchase_date'] = null; } diff --git a/resources/views/hardware/bulk.blade.php b/resources/views/hardware/bulk.blade.php index 371f0c254..248b18e40 100755 --- a/resources/views/hardware/bulk.blade.php +++ b/resources/views/hardware/bulk.blade.php @@ -35,6 +35,27 @@ @endif
+ +
+ +
+
+ +
+ {!! $errors->first('name', '') !!} +
+
+ +
+
+ +
From 4b690e8e1f273516ef0fadd98af9f5911997eac9 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 14 Aug 2024 10:01:56 +0100 Subject: [PATCH 042/224] Updated test to check for nulling Signed-off-by: snipe --- .../Feature/Assets/Ui/BulkEditAssetsTest.php | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/tests/Feature/Assets/Ui/BulkEditAssetsTest.php b/tests/Feature/Assets/Ui/BulkEditAssetsTest.php index 76d0a9c34..44e905248 100644 --- a/tests/Feature/Assets/Ui/BulkEditAssetsTest.php +++ b/tests/Feature/Assets/Ui/BulkEditAssetsTest.php @@ -57,6 +57,7 @@ class BulkEditAssetsTest extends TestCase $company1 = Company::factory()->create(); $company2 = Company::factory()->create(); $assets = Asset::factory()->count(10)->create([ + 'name' => 'Old Asset Name', 'purchase_date' => '2023-01-01', 'expected_checkin' => '2023-01-01', 'status_id' => $status1->id, @@ -77,6 +78,7 @@ class BulkEditAssetsTest extends TestCase // submits the ids and new values for each attribute $this->actingAs(User::factory()->editAssets()->create())->post(route('hardware/bulksave'), [ 'ids' => $id_array, + 'name' => 'New Asset Name', 'purchase_date' => '2024-01-01', 'expected_checkin' => '2024-01-01', 'status_id' => $status2->id, @@ -97,6 +99,7 @@ class BulkEditAssetsTest extends TestCase $this->assertEquals('2024-01-01', $asset->purchase_date->format('Y-m-d')); $this->assertEquals('2024-01-01', $asset->expected_checkin->format('Y-m-d')); $this->assertEquals($status2->id, $asset->status_id); + $this->assertEquals('New Asset Name', $asset->name); $this->assertEquals($model2->id, $asset->model_id); $this->assertEquals(5678.92, $asset->purchase_cost); $this->assertEquals($supplier2->id, $asset->supplier_id); @@ -109,6 +112,59 @@ class BulkEditAssetsTest extends TestCase }); } + public function testBulkEditAssetsNullsOutFieldsIfSelected() + { + // sets up all needed models and attributes on the assets + // this test does not deal with custom fields - will be dealt with in separate cases + $status1 = Statuslabel::factory()->create(); + $status2 = Statuslabel::factory()->create(); + $model1 = AssetModel::factory()->create(); + $model2 = AssetModel::factory()->create(); + $supplier1 = Supplier::factory()->create(); + $supplier2 = Supplier::factory()->create(); + $company1 = Company::factory()->create(); + $company2 = Company::factory()->create(); + $assets = Asset::factory()->count(10)->create([ + 'name' => 'Old Asset Name', + 'purchase_date' => '2023-01-01', + 'expected_checkin' => '2023-01-01', + 'status_id' => $status1->id, + 'model_id' => $model1->id, + // skipping locations on this test, it deserves it's own test + 'purchase_cost' => 1234.90, + 'supplier_id' => $supplier1->id, + 'company_id' => $company1->id, + 'order_number' => '123456', + 'warranty_months' => 24, + 'next_audit_date' => '2024-06-01', + 'requestable' => false + ]); + + // gets the ids together to submit to the endpoint + $id_array = $assets->pluck('id')->toArray(); + + // submits the ids and new values for each attribute + $this->actingAs(User::factory()->editAssets()->create())->post(route('hardware/bulksave'), [ + 'ids' => $id_array, + 'null_name' => '1', + 'null_purchase_date' => '1', + 'null_expected_checkin_date' => '1', + 'null_next_audit_date' => '1', + 'status_id' => $status2->id, + 'model_id' => $model2->id, + ]) + ->assertStatus(302) + ->assertSessionHasNoErrors(); + + // asserts that each asset has the updated values + Asset::findMany($id_array)->each(function (Asset $asset) use ($status2, $model2, $supplier2, $company2) { + $this->assertNull($asset->name); + $this->assertNull($asset->purchase_date); + $this->assertNull($asset->expected_checkin); + $this->assertNull($asset->next_audit_date); + }); + } + public function testBulkEditAssetsAcceptsAndUpdatesUnencryptedCustomFields() { $this->markIncompleteIfMySQL('Custom Fields tests do not work on MySQL'); From 0f1e5181a68480ded5daec5c8e2f2b5527cc14b7 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 14 Aug 2024 10:09:14 +0100 Subject: [PATCH 043/224] Nicer input layout for bulk edit name Signed-off-by: snipe --- resources/views/hardware/bulk.blade.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/resources/views/hardware/bulk.blade.php b/resources/views/hardware/bulk.blade.php index 248b18e40..f621d88fa 100755 --- a/resources/views/hardware/bulk.blade.php +++ b/resources/views/hardware/bulk.blade.php @@ -41,9 +41,7 @@ {{ trans('admin/hardware/form.name') }}
-
- -
+ {!! $errors->first('name', '') !!}
From 0b3ac2a9cd21720cc3b1dc041fd4d16fc7eff715 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 14 Aug 2024 12:08:49 +0100 Subject: [PATCH 044/224] Updated phpinsights Signed-off-by: snipe --- composer.json | 2 +- composer.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 5467e94e3..a72d80839 100644 --- a/composer.json +++ b/composer.json @@ -78,7 +78,7 @@ "fakerphp/faker": "^1.16", "larastan/larastan": "^2.9", "mockery/mockery": "^1.4", - "nunomaduro/phpinsights": "^2.7", + "nunomaduro/phpinsights": "^2.11", "php-mock/php-mock-phpunit": "^2.10", "phpunit/phpunit": "^10.0", "squizlabs/php_codesniffer": "^3.5", diff --git a/composer.lock b/composer.lock index f7c46672d..715070df0 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "35c741a2d3300848d758b187554b5b17", + "content-hash": "3819ab4ef72eb77fabe494c0e746b83b", "packages": [ { "name": "alek13/slack", From cc5ad456e6b65c3e0d8d1ad9d7bd7ab4b31d2249 Mon Sep 17 00:00:00 2001 From: Brady Wetherington Date: Wed, 14 Aug 2024 15:59:21 +0100 Subject: [PATCH 045/224] Expose the 'sanitize' system for backup restores to the web GUI --- .env.example | 1 + app/Http/Controllers/SettingsController.php | 28 ++++-- config/backup.php | 2 + resources/assets/js/snipeit.js | 99 ++++++------------- .../lang/en-US/admin/settings/general.php | 2 + resources/views/settings/backups.blade.php | 63 +++++++++--- 6 files changed, 108 insertions(+), 87 deletions(-) diff --git a/.env.example b/.env.example index 426af4ff8..946bcd801 100644 --- a/.env.example +++ b/.env.example @@ -185,6 +185,7 @@ REQUIRE_SAML=false API_THROTTLE_PER_MINUTE=120 CSV_ESCAPE_FORMULAS=true LIVEWIRE_URL_PREFIX=null +SANITIZE_BY_DEFAULT=false # -------------------------------------------- # OPTIONAL: HASHING diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index e58647d72..441db3f1f 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -1203,7 +1203,7 @@ class SettingsController extends Controller * @author [A. Gianotto] [] * @since [v6.0] */ - public function postRestore($filename = null) : RedirectResponse + public function postRestore(Request $request, $filename = null): RedirectResponse { if (! config('app.lock_passwords')) { @@ -1223,13 +1223,29 @@ class SettingsController extends Controller Log::debug('Attempting to restore from: '. storage_path($path).'/'.$filename); - // run the restore command - Artisan::call('snipeit:restore', - [ + $restore_params = [ '--force' => true, '--no-progress' => true, - 'filename' => storage_path($path).'/'.$filename - ]); + 'filename' => storage_path($path) . '/' . $filename + ]; + + if ($request->input('clean')) { + Log::debug("Attempting 'clean' - first, guessing prefix..."); + Artisan::call('snipeit:restore', [ + '--sanitize-guess-prefix' => true, + 'filename' => storage_path($path) . '/' . $filename + ]); + $guess_prefix_output = Artisan::output(); + Log::debug("Sanitize output is: $guess_prefix_output"); + list($prefix, $_output) = explode("\n", $guess_prefix_output); + Log::debug("prefix is: '$prefix'"); + $restore_params['--sanitize-with-prefix'] = $prefix; + } + + // run the restore command + Artisan::call('snipeit:restore', + $restore_params + ); // If it's greater than 300, it probably worked $output = Artisan::output(); diff --git a/config/backup.php b/config/backup.php index 3571329b2..412c9face 100644 --- a/config/backup.php +++ b/config/backup.php @@ -237,4 +237,6 @@ return [ ], ], + 'sanitize_by_default' => env('SANITIZE_BY_DEFAULT', false), + ]; diff --git a/resources/assets/js/snipeit.js b/resources/assets/js/snipeit.js index f8b0a21ef..7c06ac623 100755 --- a/resources/assets/js/snipeit.js +++ b/resources/assets/js/snipeit.js @@ -82,84 +82,45 @@ pieOptions = { var baseUrl = $('meta[name="baseUrl"]').attr('content'); -(function($, settings) { - var Components = {}; - Components.modals = {}; +$(function () { + + var $el = $('table'); // confirm restore modal - Components.modals.confirmRestore = function() { - var $el = $('table'); - var events = { - 'click': function(evnt) { - var $context = $(this); - var $restoreConfirmModal = $('#restoreConfirmModal'); - var href = $context.attr('href'); - var message = $context.attr('data-content'); - var title = $context.attr('data-title'); + $el.on('click', '.restore-asset', function (evnt) { + var $context = $(this); + var $restoreConfirmModal = $('#restoreConfirmModal'); + var href = $context.attr('href'); + var message = $context.attr('data-content'); + var title = $context.attr('data-title'); - $('#restoreConfirmModalLabel').text(title); - $restoreConfirmModal.find('.modal-body').text(message); - $('#restoreForm').attr('action', href); - $restoreConfirmModal.modal({ - show: true - }); - return false; - } - }; - - var render = function() { - $el.on('click', '.restore-asset', events['click']); - }; - - return { - render: render - }; - }; + $('#confirmModalLabel').text(title); + $restoreConfirmModal.find('.modal-body').text(message); + $('#restoreForm').attr('action', href); + $restoreConfirmModal.modal({ + show: true + }); + return false; + }); // confirm delete modal - Components.modals.confirmDelete = function() { - var $el = $('table'); - var events = { - 'click': function(evnt) { - var $context = $(this); - var $dataConfirmModal = $('#dataConfirmModal'); - var href = $context.attr('href'); - var message = $context.attr('data-content'); - var title = $context.attr('data-title'); + $el.on('click', '.delete-asset', function (evnt) { + var $context = $(this); + var $dataConfirmModal = $('#dataConfirmModal'); + var href = $context.attr('href'); + var message = $context.attr('data-content'); + var title = $context.attr('data-title'); - $('#myModalLabel').text(title); - $dataConfirmModal.find('.modal-body').text(message); - $('#deleteForm').attr('action', href); - $dataConfirmModal.modal({ - show: true - }); - return false; - } - }; - - var render = function() { - $el.on('click', '.delete-asset', events['click']); - }; - - return { - render: render - }; - }; - - - /** - * Application start point - * Component definition stays out of load event, execution only happens. - */ - $(function() { - new Components.modals.confirmRestore().render(); - new Components.modals.confirmDelete().render(); + $('#myModalLabel').text(title); + $dataConfirmModal.find('.modal-body').text(message); + $('#deleteForm').attr('action', href); + $dataConfirmModal.modal({ + show: true + }); + return false; }); -}(jQuery, window.snipeit.settings)); - -$(document).ready(function () { /* * Slideout help menu diff --git a/resources/lang/en-US/admin/settings/general.php b/resources/lang/en-US/admin/settings/general.php index 31165cf3f..1c6275477 100644 --- a/resources/lang/en-US/admin/settings/general.php +++ b/resources/lang/en-US/admin/settings/general.php @@ -31,6 +31,8 @@ return [ 'backups' => 'Backups', 'backups_help' => 'Create, download, and restore backups ', 'backups_restoring' => 'Restoring from Backup', + 'backups_clean' => 'Clean the backed-up database before restore', + 'backups_clean_helptext' => "This can be useful if you're changing between database versions", 'backups_upload' => 'Upload Backup', 'backups_path' => 'Backups on the server are stored in :path', 'backups_restore_warning' => 'Use the restore button to restore from a previous backup. (This does not currently work with S3 file storage or Docker.)

Your entire :app_name database and any uploaded files will be completely replaced by what\'s in the backup file. ', diff --git a/resources/views/settings/backups.blade.php b/resources/views/settings/backups.blade.php index d090daf3b..e5d31f150 100644 --- a/resources/views/settings/backups.blade.php +++ b/resources/views/settings/backups.blade.php @@ -7,7 +7,8 @@ @stop @section('header_right') -
+ {{ trans('general.back') }} @@ -21,8 +22,36 @@ {{-- Page content --}} @section('content') + -
+
@@ -85,13 +114,13 @@ @endif - + {{ trans('general.restore') }} @@ -226,11 +255,21 @@ }); } - - - }); }); + + // due to dynamic loading, we have to use the below 'weird' way of adding event handlers instead of just saying + // $('.restore-backup').on( ..... + $('table').on('click', '.restore-backup', function (event) { + event.preventDefault(); + var modal = $('#backupRestoreModal'); + modal.find('.modal-title').text($(this).data('title')); + modal.find('form').attr('action', $(this).attr('href')); + modal.modal({ + show: true + }); + return false; + }) @stop From 008bf036b5159cf086e3b4e7af2f27774de8461c Mon Sep 17 00:00:00 2001 From: Brady Wetherington Date: Wed, 14 Aug 2024 16:09:34 +0100 Subject: [PATCH 046/224] Got rid of weird namespace declaration and commented-out data-toggle line --- resources/views/settings/backups.blade.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/resources/views/settings/backups.blade.php b/resources/views/settings/backups.blade.php index e5d31f150..24f764e39 100644 --- a/resources/views/settings/backups.blade.php +++ b/resources/views/settings/backups.blade.php @@ -7,8 +7,7 @@ @stop @section('header_right') - + {{ trans('general.back') }} @@ -117,7 +116,6 @@ From 0d7cf55a3a510ee3eb06e3bc6164fd0f9466c173 Mon Sep 17 00:00:00 2001 From: r-xyz <100710244+r-xyz@users.noreply.github.com> Date: Tue, 13 Aug 2024 17:56:22 +0200 Subject: [PATCH 047/224] Add support for Docker secrets in Standard and alpine image. --- docker/entrypoint_alpine.sh | 43 ++++++++++++++++++++++++++++++++++++- docker/startup.sh | 43 ++++++++++++++++++++++++++++++++++++- 2 files changed, 84 insertions(+), 2 deletions(-) diff --git a/docker/entrypoint_alpine.sh b/docker/entrypoint_alpine.sh index c1a75b0cb..d9d6c8a9a 100644 --- a/docker/entrypoint_alpine.sh +++ b/docker/entrypoint_alpine.sh @@ -1,7 +1,48 @@ #!/bin/sh +# Cribbed from nextcloud docker official repo +# https://github.com/nextcloud/docker/blob/master/docker-entrypoint.sh +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") + local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") + if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + if [ -n "${varValue}" ]; then + export "$var"="${varValue}" + elif [ -n "${fileVarValue}" ]; then + export "$var"="$(cat "${fileVarValue}")" + elif [ -n "${def}" ]; then + export "$var"="$def" + fi + unset "$fileVar" +} + +# Add docker secrets support for the variables below: +file_env APP_KEY +file_env DB_HOST +file_env DB_PORT +file_env DB_DATABASE +file_env DB_USERNAME +file_env DB_PASSWORD +file_env REDIS_HOST +file_env REDIS_PASSWORD +file_env REDIS_PORT +file_env MAIL_HOST +file_env MAIL_PORT +file_env MAIL_USERNAME +file_env MAIL_PASSWORD + # fix key if needed -if [ -z "$APP_KEY" ] +if [ -z "$APP_KEY" -a -z "$APP_KEY_FILE" ] then echo "Please re-run this container with an environment variable \$APP_KEY" echo "An example APP_KEY you could use is: " diff --git a/docker/startup.sh b/docker/startup.sh index 62002a2ba..2f6be7b0f 100644 --- a/docker/startup.sh +++ b/docker/startup.sh @@ -1,7 +1,48 @@ #!/bin/bash +# Cribbed from nextcloud docker official repo +# https://github.com/nextcloud/docker/blob/master/docker-entrypoint.sh +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + local varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//") + local fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//") + if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + if [ -n "${varValue}" ]; then + export "$var"="${varValue}" + elif [ -n "${fileVarValue}" ]; then + export "$var"="$(cat "${fileVarValue}")" + elif [ -n "${def}" ]; then + export "$var"="$def" + fi + unset "$fileVar" +} + +# Add docker secrets support for the variables below: +file_env APP_KEY +file_env DB_HOST +file_env DB_PORT +file_env DB_DATABASE +file_env DB_USERNAME +file_env DB_PASSWORD +file_env REDIS_HOST +file_env REDIS_PASSWORD +file_env REDIS_PORT +file_env MAIL_HOST +file_env MAIL_PORT +file_env MAIL_USERNAME +file_env MAIL_PASSWORD + # fix key if needed -if [ -z "$APP_KEY" ] +if [ -z "$APP_KEY" -a -z "$APP_KEY_FILE" ] then echo "Please re-run this container with an environment variable \$APP_KEY" echo "An example APP_KEY you could use is: " From 20ec420ba3a51638f7934e5a3820907760fc544c Mon Sep 17 00:00:00 2001 From: spencerrlongg Date: Wed, 14 Aug 2024 13:53:29 -0500 Subject: [PATCH 048/224] not quite done, api side needs some work --- app/Http/Controllers/Api/UsersController.php | 2 +- .../Controllers/Users/UsersController.php | 122 ++++++++---------- app/Http/Requests/SaveUserRequest.php | 10 ++ routes/web/users.php | 5 +- 4 files changed, 70 insertions(+), 69 deletions(-) diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index 9200f80b1..ae6968a47 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -427,7 +427,7 @@ class UsersController extends Controller * @param \Illuminate\Http\Request $request * @param int $id */ - public function update(SaveUserRequest $request, $id) : JsonResponse + public function update(SaveUserRequest $request, User $user): JsonResponse { $this->authorize('update', User::class); diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 631ab3bc3..e609727c0 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -214,90 +214,84 @@ class UsersController extends Controller * @return \Illuminate\Http\RedirectResponse * @throws \Illuminate\Auth\Access\AuthorizationException */ - public function update(SaveUserRequest $request, $id = null) + public function update(SaveUserRequest $request, User $user) { $this->authorize('update', User::class); // This is a janky hack to prevent people from changing admin demo user data on the public demo. // The $ids 1 and 2 are special since they are seeded as superadmins in the demo seeder. // Thanks, jerks. You are why we can't have nice things. - snipe - - if ((($id == 1) || ($id == 2)) && (config('app.lock_passwords'))) { + if ((($user->id == 1) || ($user->id == 2)) && (config('app.lock_passwords'))) { return redirect()->route('users.index')->with('error', trans('general.permission_denied_superuser_demo')); } - // We need to reverse the UI specific logic for our // permissions here before we update the user. $permissions = $request->input('permissions', []); app('request')->request->set('permissions', $permissions); - $user = User::with(['assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc'])->withTrashed()->find($id); + $user->load(['assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc'])->withTrashed(); - // User is valid - continue... + $this->authorize('update', $user); - - if ($user) { - $this->authorize('update', $user); - - if ($request->has('company_id') && $user->allAssignedCount() > 0 && Setting::getSettings()->full_multiple_companies_support) { - return back()->with('error', trans('admin/users/message.multi_company_items_assigned')); - } + //see if i can get this working at request level + //if ($request->has('company_id') && $user->allAssignedCount() > 0 && Setting::getSettings()->full_multiple_companies_support) { + // return back()->with('error', trans('admin/users/message.multi_company_items_assigned')); + //} // Figure out of this user was an admin before this edit - $orig_permissions_array = $user->decodePermissions(); - $orig_superuser = '0'; - if (is_array($orig_permissions_array)) { - if (array_key_exists('superuser', $orig_permissions_array)) { - $orig_superuser = $orig_permissions_array['superuser']; - } + $orig_permissions_array = $user->decodePermissions(); + $orig_superuser = '0'; + if (is_array($orig_permissions_array)) { + if (array_key_exists('superuser', $orig_permissions_array)) { + $orig_superuser = $orig_permissions_array['superuser']; } + } - // Only save groups if the user is a superuser - if (auth()->user()->isSuperUser()) { - $user->groups()->sync($request->input('groups')); - } + // Only save groups if the user is a superuser + if (auth()->user()->isSuperUser()) { + $user->groups()->sync($request->input('groups')); + } - // Update the user fields - $user->username = trim($request->input('username')); - $user->email = trim($request->input('email')); - $user->first_name = $request->input('first_name'); - $user->last_name = $request->input('last_name'); - $user->two_factor_optin = $request->input('two_factor_optin') ?: 0; - $user->locale = $request->input('locale'); - $user->employee_num = $request->input('employee_num'); - $user->activated = $request->input('activated', 0); - $user->jobtitle = $request->input('jobtitle', null); - $user->phone = $request->input('phone'); - $user->location_id = $request->input('location_id', null); + // Update the user fields + $user->username = trim($request->input('username')); + $user->email = trim($request->input('email')); + $user->first_name = $request->input('first_name'); + $user->last_name = $request->input('last_name'); + $user->two_factor_optin = $request->input('two_factor_optin') ?: 0; + $user->locale = $request->input('locale'); + $user->employee_num = $request->input('employee_num'); + $user->activated = $request->input('activated', 0); + $user->jobtitle = $request->input('jobtitle', null); + $user->phone = $request->input('phone'); + $user->location_id = $request->input('location_id', null); + $user->company_id = Company::getIdForUser($request->input('company_id', null)); + $user->manager_id = $request->input('manager_id', null); + $user->notes = $request->input('notes'); + $user->department_id = $request->input('department_id', null); + $user->address = $request->input('address', null); + $user->city = $request->input('city', null); + $user->state = $request->input('state', null); + $user->country = $request->input('country', null); + // if a user is editing themselves we should always keep activated true + $user->activated = $request->input('activated', $request->user()->is($user) ? 1 : 0); + $user->zip = $request->input('zip', null); + $user->remote = $request->input('remote', 0); + $user->vip = $request->input('vip', 0); + $user->website = $request->input('website', null); + $user->start_date = $request->input('start_date', null); + $user->end_date = $request->input('end_date', null); + $user->autoassign_licenses = $request->input('autoassign_licenses', 0); - $user->company_id = Company::getIdForUser($request->input('company_id', null)); - $user->manager_id = $request->input('manager_id', null); - $user->notes = $request->input('notes'); - $user->department_id = $request->input('department_id', null); - $user->address = $request->input('address', null); - $user->city = $request->input('city', null); - $user->state = $request->input('state', null); - $user->country = $request->input('country', null); - // if a user is editing themselves we should always keep activated true - $user->activated = $request->input('activated', $request->user()->is($user) ? 1 : 0); - $user->zip = $request->input('zip', null); - $user->remote = $request->input('remote', 0); - $user->vip = $request->input('vip', 0); - $user->website = $request->input('website', null); - $user->start_date = $request->input('start_date', null); - $user->end_date = $request->input('end_date', null); - $user->autoassign_licenses = $request->input('autoassign_licenses', 0); + // Update the location of any assets checked out to this user + Asset::where('assigned_type', User::class) + ->where('assigned_to', $user->id) + ->update(['location_id' => $request->input('location_id', null)]); - // Update the location of any assets checked out to this user - Asset::where('assigned_type', User::class) - ->where('assigned_to', $user->id) - ->update(['location_id' => $request->input('location_id', null)]); - - // Do we want to update the user password? - if ($request->filled('password')) { - $user->password = bcrypt($request->input('password')); - } + // Do we want to update the user password? + if ($request->filled('password')) { + $user->password = bcrypt($request->input('password')); + } // Update the location of any assets checked out to this user @@ -325,13 +319,7 @@ class UsersController extends Controller return redirect()->to(Helper::getRedirectOption($request, $user->id, 'Users')) ->with('success', trans('admin/users/message.success.update')); } - return redirect()->back()->withInput()->withErrors($user->getErrors()); - - - } - - return redirect()->route('users.index')->with('error', trans('admin/users/message.user_not_found', compact('id'))); } /** diff --git a/app/Http/Requests/SaveUserRequest.php b/app/Http/Requests/SaveUserRequest.php index b38193c15..f77defb0b 100644 --- a/app/Http/Requests/SaveUserRequest.php +++ b/app/Http/Requests/SaveUserRequest.php @@ -31,9 +31,19 @@ class SaveUserRequest extends FormRequest */ public function rules() { + //dd($this->user); $rules = [ 'department_id' => 'nullable|exists:departments,id', 'manager_id' => 'nullable|exists:users,id', + 'company_id' => [ + // determines if the user is being moved between companies and checks to see if they have any items assigned + function ($attribute, $value, $fail) { + dd($this->user); + if (($this->has('company_id')) && ($this->user->allAssignedCount() > 0) && (Setting::getSettings()->full_multiple_companies_support)) { + $fail(trans('admin/users/message.error.multi_company_items_assigned')); + } + } + ] ]; switch ($this->method()) { diff --git a/routes/web/users.php b/routes/web/users.php index 95de20063..3bf1555ca 100644 --- a/routes/web/users.php +++ b/routes/web/users.php @@ -145,10 +145,13 @@ Route::group(['prefix' => 'users', 'middleware' => ['auth']], function () { ] )->name('users/bulkeditsave'); - + // pulling this out of the resource because I need route model binding in the request + Route::patch('/{user}', [Users\UsersController::class, 'update'])->name('users.update'); + Route::put('/{user}', [Users\UsersController::class, 'update'])->name('users.put-update'); }); Route::resource('users', Users\UsersController::class, [ 'middleware' => ['auth'], 'parameters' => ['user' => 'user_id'], + 'except' => ['update'] ]); \ No newline at end of file From f031309f8ffce5747c29e24d467b93cf61ace657 Mon Sep 17 00:00:00 2001 From: spencerrlongg Date: Wed, 14 Aug 2024 16:09:15 -0500 Subject: [PATCH 049/224] set up api controller for route/model binding --- app/Http/Controllers/Api/UsersController.php | 18 +----------------- app/Http/Requests/SaveUserRequest.php | 1 - 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index ae6968a47..856b3b6a6 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -431,9 +431,6 @@ class UsersController extends Controller { $this->authorize('update', User::class); - if ($user = User::find($id)) { - - $this->authorize('update', $user); /** @@ -443,12 +440,10 @@ class UsersController extends Controller * */ - - if ((($id == 1) || ($id == 2)) && (config('app.lock_passwords'))) { + if ((($user->id == 1) || ($user->id == 2)) && (config('app.lock_passwords'))) { return response()->json(Helper::formatStandardApiResponse('error', null, 'Permission denied. You cannot update user information via API on the demo.')); } - $user->fill($request->all()); if ($user->id == $request->input('manager_id')) { @@ -473,16 +468,13 @@ class UsersController extends Controller $user->permissions = $permissions_array; } - // Update the location of any assets checked out to this user Asset::where('assigned_type', User::class) ->where('assigned_to', $user->id)->update(['location_id' => $request->input('location_id', null)]); - app('App\Http\Requests\ImageUploadRequest')->handleImages($user, 600, 'image', 'avatars', 'avatar'); if ($user->save()) { - // Check if the request has groups passed and has a value, AND that the user us a superuser if (($request->has('groups')) && (auth()->user()->isSuperUser())) { @@ -496,18 +488,10 @@ class UsersController extends Controller // Sync the groups since the user is a superuser and the groups pass validation $user->groups()->sync($request->input('groups')); - - } - return response()->json(Helper::formatStandardApiResponse('success', (new UsersTransformer)->transformUser($user), trans('admin/users/message.success.update'))); } - return response()->json(Helper::formatStandardApiResponse('error', null, $user->getErrors())); - } - - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.user_not_found', compact('id')))); - } /** diff --git a/app/Http/Requests/SaveUserRequest.php b/app/Http/Requests/SaveUserRequest.php index f77defb0b..7598e7433 100644 --- a/app/Http/Requests/SaveUserRequest.php +++ b/app/Http/Requests/SaveUserRequest.php @@ -38,7 +38,6 @@ class SaveUserRequest extends FormRequest 'company_id' => [ // determines if the user is being moved between companies and checks to see if they have any items assigned function ($attribute, $value, $fail) { - dd($this->user); if (($this->has('company_id')) && ($this->user->allAssignedCount() > 0) && (Setting::getSettings()->full_multiple_companies_support)) { $fail(trans('admin/users/message.error.multi_company_items_assigned')); } From afaf53cdfc37d49ba1afbbe178cd974fbb83920f Mon Sep 17 00:00:00 2001 From: spencerrlongg Date: Wed, 14 Aug 2024 18:14:21 -0500 Subject: [PATCH 050/224] failing ui test --- resources/views/users/edit.blade.php | 4 ++- routes/web/users.php | 3 +- tests/Feature/Users/Api/UpdateUserTest.php | 30 ++++++++++++++++++++ tests/Feature/Users/Ui/UpdateUserTest.php | 32 ++++++++++++++++++++++ 4 files changed, 66 insertions(+), 3 deletions(-) diff --git a/resources/views/users/edit.blade.php b/resources/views/users/edit.blade.php index e3f691f15..986c18ab6 100755 --- a/resources/views/users/edit.blade.php +++ b/resources/views/users/edit.blade.php @@ -66,7 +66,9 @@
-
+ {{csrf_field()}} @if($user->id) diff --git a/routes/web/users.php b/routes/web/users.php index 3bf1555ca..e55541a93 100644 --- a/routes/web/users.php +++ b/routes/web/users.php @@ -146,8 +146,7 @@ Route::group(['prefix' => 'users', 'middleware' => ['auth']], function () { )->name('users/bulkeditsave'); // pulling this out of the resource because I need route model binding in the request - Route::patch('/{user}', [Users\UsersController::class, 'update'])->name('users.update'); - Route::put('/{user}', [Users\UsersController::class, 'update'])->name('users.put-update'); + Route::match(['put', 'patch'], '/{user}', [Users\UsersController::class, 'update'])->name('users.update'); }); Route::resource('users', Users\UsersController::class, [ diff --git a/tests/Feature/Users/Api/UpdateUserTest.php b/tests/Feature/Users/Api/UpdateUserTest.php index 1c66bbdda..2901beea9 100644 --- a/tests/Feature/Users/Api/UpdateUserTest.php +++ b/tests/Feature/Users/Api/UpdateUserTest.php @@ -2,6 +2,7 @@ namespace Tests\Feature\Users\Api; +use App\Models\Asset; use App\Models\Company; use App\Models\Department; use App\Models\Group; @@ -344,4 +345,33 @@ class UpdateUserTest extends TestCase $this->assertTrue($user->refresh()->groups->contains($groupB)); } + public function testMultiCompanyUserCannotBeMovedIfHasAsset() + { + $this->settings->enableMultipleFullCompanySupport(); + + $companyA = Company::factory()->create(); + $companyB = Company::factory()->create(); + + $user = User::factory()->create([ + 'company_id' => $companyA->id, + ]); + $superUser = User::factory()->superuser()->create(); + + $asset = Asset::factory()->create(); + + // no assets assigned, therefore success + $this->actingAsForApi($superUser)->patchJson(route('api.users.update', $user), [ + 'username' => 'test', + 'company_id' => $companyB->id, + ])->assertStatusMessageIs('success'); + + $asset->checkOut($user, $superUser); + + // asset assigned, therefore error + $this->actingAsForApi($superUser)->patchJson(route('api.users.update', $user), [ + 'username' => 'test', + 'company_id' => $companyB->id, + ])->assertMessagesAre('error'); + } + } diff --git a/tests/Feature/Users/Ui/UpdateUserTest.php b/tests/Feature/Users/Ui/UpdateUserTest.php index bef1d59a0..31530af7c 100644 --- a/tests/Feature/Users/Ui/UpdateUserTest.php +++ b/tests/Feature/Users/Ui/UpdateUserTest.php @@ -2,6 +2,8 @@ namespace Tests\Feature\Users\Ui; +use App\Models\Asset; +use App\Models\Company; use App\Models\User; use Tests\TestCase; @@ -79,4 +81,34 @@ class UpdateUserTest extends TestCase $this->assertEquals(1, $admin->refresh()->activated); } + + public function testMultiCompanyUserCannotBeMovedIfHasAsset() + { + $this->settings->enableMultipleFullCompanySupport(); + + $companyA = Company::factory()->create(); + $companyB = Company::factory()->create(); + + $user = User::factory()->create([ + 'company_id' => $companyA->id, + ]); + $superUser = User::factory()->superuser()->create(); + + $asset = Asset::factory()->create(); + + // no assets assigned, therefore success + $this->actingAs($superUser)->put(route('users.update', $user), [ + 'first_name' => 'test', + 'username' => 'test', + 'company_id' => $companyB->id, + ])->assertRedirect(route('users.index')); + + //$asset->checkOut($user, $superUser); + + // asset assigned, therefore error + //$this->actingAs($superUser)->patchJson(route('users.update', $user), [ + // 'username' => 'test', + // 'company_id' => $companyB->id, + //])->assertMessagesAre('error'); + } } From 9622e05cf5b545bac1f506af085e6c7e27259848 Mon Sep 17 00:00:00 2001 From: spencerrlongg Date: Wed, 14 Aug 2024 18:41:06 -0500 Subject: [PATCH 051/224] correct api test --- tests/Feature/Users/Api/UpdateUserTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Feature/Users/Api/UpdateUserTest.php b/tests/Feature/Users/Api/UpdateUserTest.php index 2901beea9..e7314756d 100644 --- a/tests/Feature/Users/Api/UpdateUserTest.php +++ b/tests/Feature/Users/Api/UpdateUserTest.php @@ -371,7 +371,7 @@ class UpdateUserTest extends TestCase $this->actingAsForApi($superUser)->patchJson(route('api.users.update', $user), [ 'username' => 'test', 'company_id' => $companyB->id, - ])->assertMessagesAre('error'); + ])->assertStatusMessageIs('error'); } } From 01c69c8f8f974df179a1d5fb89d7b0595b8269ba Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 10:08:48 +0100 Subject: [PATCH 052/224] Allow optional status label on quickscan checkin Signed-off-by: snipe --- app/Http/Controllers/Api/AssetsController.php | 4 ++-- .../Controllers/Assets/AssetsController.php | 4 ++-- resources/lang/en-US/general.php | 1 + .../views/hardware/quickscan-checkin.blade.php | 17 ++++++++++++++--- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/Api/AssetsController.php b/app/Http/Controllers/Api/AssetsController.php index 8361971d5..855bc5126 100644 --- a/app/Http/Controllers/Api/AssetsController.php +++ b/app/Http/Controllers/Api/AssetsController.php @@ -928,7 +928,7 @@ class AssetsController extends Controller } } - if ($request->has('status_id')) { + if ($request->filled('status_id')) { $asset->status_id = $request->input('status_id'); } @@ -978,7 +978,7 @@ class AssetsController extends Controller public function checkinByTag(Request $request, $tag = null) : JsonResponse { $this->authorize('checkin', Asset::class); - if(null == $tag && null !== ($request->input('asset_tag'))) { + if (null == $tag && null !== ($request->input('asset_tag'))) { $tag = $request->input('asset_tag'); } $asset = Asset::where('asset_tag', $tag)->first(); diff --git a/app/Http/Controllers/Assets/AssetsController.php b/app/Http/Controllers/Assets/AssetsController.php index 2430cd00f..ee0f7dbec 100755 --- a/app/Http/Controllers/Assets/AssetsController.php +++ b/app/Http/Controllers/Assets/AssetsController.php @@ -837,14 +837,14 @@ class AssetsController extends Controller $this->authorize('audit', Asset::class); $dt = Carbon::now()->addMonths(12)->toDateString(); - return view('hardware/quickscan')->with('next_audit_date', $dt); + return view('hardware/quickscan')->with('statusLabel_list', Helper::statusLabelList())->with('next_audit_date', $dt); } public function quickScanCheckin() { $this->authorize('checkin', Asset::class); - return view('hardware/quickscan-checkin'); + return view('hardware/quickscan-checkin')->with('statusLabel_list', Helper::statusLabelList()); } public function audit($id) diff --git a/resources/lang/en-US/general.php b/resources/lang/en-US/general.php index 255a1564d..444ed5408 100644 --- a/resources/lang/en-US/general.php +++ b/resources/lang/en-US/general.php @@ -279,6 +279,7 @@ return [ 'site_name' => 'Site Name', 'state' => 'State', 'status_labels' => 'Status Labels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Supplier', diff --git a/resources/views/hardware/quickscan-checkin.blade.php b/resources/views/hardware/quickscan-checkin.blade.php index d71f4e9cb..43c6d318f 100644 --- a/resources/views/hardware/quickscan-checkin.blade.php +++ b/resources/views/hardware/quickscan-checkin.blade.php @@ -33,14 +33,25 @@
{{ Form::label('asset_tag', trans('general.asset_tag'), array('class' => 'col-md-3 control-label', 'id' => 'checkin_tag')) }}
-
- +
+
{!! $errors->first('asset_tag', '') !!}
- + + +
+ +
+ {{ Form::select('status_id', $statusLabel_list, '', array('class'=>'select2', 'style'=>'width:100%','', 'aria-label'=>'status_id')) }} + {!! $errors->first('status_id', '') !!} +
+
+ @include ('partials.forms.edit.location-select', ['translated_name' => trans('general.location'), 'fieldname' => 'location_id']) From d268f25f16268492e7b9c07aa8746dbc6e7e9438 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 10:16:57 +0100 Subject: [PATCH 053/224] Make asset tag required Signed-off-by: snipe --- resources/views/hardware/quickscan.blade.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/resources/views/hardware/quickscan.blade.php b/resources/views/hardware/quickscan.blade.php index 32166b64f..e4f6c8a55 100644 --- a/resources/views/hardware/quickscan.blade.php +++ b/resources/views/hardware/quickscan.blade.php @@ -31,7 +31,7 @@
{{ Form::label('asset_tag', trans('general.asset_tag'), array('class' => 'col-md-3 control-label', 'id' => 'audit_tag')) }}
-
+
@@ -49,10 +49,13 @@
From d8038ac483a38770de9108df5c9da8358247a62e Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 10:17:08 +0100 Subject: [PATCH 054/224] Removed status label list Signed-off-by: snipe --- app/Http/Controllers/Assets/AssetsController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Assets/AssetsController.php b/app/Http/Controllers/Assets/AssetsController.php index ee0f7dbec..75646e726 100755 --- a/app/Http/Controllers/Assets/AssetsController.php +++ b/app/Http/Controllers/Assets/AssetsController.php @@ -837,7 +837,7 @@ class AssetsController extends Controller $this->authorize('audit', Asset::class); $dt = Carbon::now()->addMonths(12)->toDateString(); - return view('hardware/quickscan')->with('statusLabel_list', Helper::statusLabelList())->with('next_audit_date', $dt); + return view('hardware/quickscan')->with('next_audit_date', $dt); } public function quickScanCheckin() From 381003eeabf7861a877ea20dd77af53fae762209 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 10:27:31 +0100 Subject: [PATCH 055/224] Cleaned up asset tag field on quickscan checkin Signed-off-by: snipe --- resources/views/hardware/quickscan-checkin.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/hardware/quickscan-checkin.blade.php b/resources/views/hardware/quickscan-checkin.blade.php index 43c6d318f..ec6ef5719 100644 --- a/resources/views/hardware/quickscan-checkin.blade.php +++ b/resources/views/hardware/quickscan-checkin.blade.php @@ -33,7 +33,7 @@
{{ Form::label('asset_tag', trans('general.asset_tag'), array('class' => 'col-md-3 control-label', 'id' => 'checkin_tag')) }}
-
+
From 4d66f7c93f0c772b5963a66c111f89d15f024fde Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 10:35:02 +0100 Subject: [PATCH 056/224] Bumped version Signed-off-by: snipe --- config/version.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/version.php b/config/version.php index 4079451d3..e00f58b0b 100644 --- a/config/version.php +++ b/config/version.php @@ -1,10 +1,10 @@ 'v7.0.10', - 'full_app_version' => 'v7.0.10 - build 14684-gc2bcc2e2d', - 'build_version' => '14684', + 'app_version' => 'v7.0.11', + 'full_app_version' => 'v7.0.11 - build 14904-g6c0cf9447', + 'build_version' => '14904', 'prerelease_version' => '', - 'hash_version' => 'gc2bcc2e2d', - 'full_hash' => 'v7.0.10-311-gc2bcc2e2d', - 'branch' => 'master', + 'hash_version' => 'g6c0cf9447', + 'full_hash' => 'v7.0.11-218-g6c0cf9447', + 'branch' => 'develop', ); \ No newline at end of file From 8f7bce7aad6fc688582d0269f6c5335d4eeaf414 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 10:44:27 +0100 Subject: [PATCH 057/224] Re-added UI for checkout to non-users for accessories Signed-off-by: snipe --- resources/views/accessories/checkout.blade.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/resources/views/accessories/checkout.blade.php b/resources/views/accessories/checkout.blade.php index 9ad87f018..ba36a3a92 100755 --- a/resources/views/accessories/checkout.blade.php +++ b/resources/views/accessories/checkout.blade.php @@ -66,8 +66,14 @@
- @include ('partials.forms.edit.user-select', ['translated_name' => trans('general.select_user'), 'fieldname' => 'assigned_user', 'required'=> 'true']) + @include ('partials.forms.checkout-selector', ['user_select' => 'true','asset_select' => 'true', 'location_select' => 'true']) + @include ('partials.forms.edit.user-select', ['translated_name' => trans('general.select_user'), 'fieldname' => 'assigned_user', 'required'=> 'true']) + + + @include ('partials.forms.edit.asset-select', ['translated_name' => trans('general.asset'), 'fieldname' => 'assigned_asset', 'unselect' => 'true', 'style' => 'display:none;', 'required'=>'true']) + + @include ('partials.forms.edit.location-select', ['translated_name' => trans('general.location'), 'fieldname' => 'assigned_location', 'style' => 'display:none;', 'required'=>'true'])
From 10dc1f1368f61c266e27bc806aa7f63147dc33bf Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 10:51:49 +0100 Subject: [PATCH 058/224] Re-pull the accessory checkout Signed-off-by: snipe --- resources/views/accessories/checkout.blade.php | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/resources/views/accessories/checkout.blade.php b/resources/views/accessories/checkout.blade.php index ba36a3a92..9ad87f018 100755 --- a/resources/views/accessories/checkout.blade.php +++ b/resources/views/accessories/checkout.blade.php @@ -66,14 +66,8 @@
- @include ('partials.forms.checkout-selector', ['user_select' => 'true','asset_select' => 'true', 'location_select' => 'true']) + @include ('partials.forms.edit.user-select', ['translated_name' => trans('general.select_user'), 'fieldname' => 'assigned_user', 'required'=> 'true']) - @include ('partials.forms.edit.user-select', ['translated_name' => trans('general.select_user'), 'fieldname' => 'assigned_user', 'required'=> 'true']) - - - @include ('partials.forms.edit.asset-select', ['translated_name' => trans('general.asset'), 'fieldname' => 'assigned_asset', 'unselect' => 'true', 'style' => 'display:none;', 'required'=>'true']) - - @include ('partials.forms.edit.location-select', ['translated_name' => trans('general.location'), 'fieldname' => 'assigned_location', 'style' => 'display:none;', 'required'=>'true'])
From d8df52cc8fdc421f1ecab428c6a8c34769bebd44 Mon Sep 17 00:00:00 2001 From: Glukose1 Date: Thu, 15 Aug 2024 12:20:51 +0200 Subject: [PATCH 059/224] Implemented setting to specify the amount of days before an assets appers in the due for checkin page. Currently this uses the audit warning days but a sperated setting gives the possibility of defineing different values for each field. --- app/Http/Controllers/SettingsController.php | 1 + app/Models/Asset.php | 2 +- .../lang/en-US/admin/settings/general.php | 2 ++ .../views/hardware/checkin-due.blade.php | 2 +- resources/views/settings/alerts.blade.php | 19 +++++++++++++++++++ 5 files changed, 24 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 9c7392560..72fcfd00a 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -636,6 +636,7 @@ class SettingsController extends Controller $setting->alert_threshold = $request->input('alert_threshold'); $setting->audit_interval = $request->input('audit_interval'); $setting->audit_warning_days = $request->input('audit_warning_days'); + $setting->due_checkin_days = $request->input('due_checkin_days'); $setting->show_alerts_in_menu = $request->input('show_alerts_in_menu', '0'); if ($setting->save()) { diff --git a/app/Models/Asset.php b/app/Models/Asset.php index cddca9802..c15ec3824 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -1315,7 +1315,7 @@ class Asset extends Depreciable public function scopeDueForCheckin($query, $settings) { - $interval = $settings->audit_warning_days ?? 0; + $interval = $settings->due_checkin_days ?? 0; $today = Carbon::now(); $interval_date = $today->copy()->addDays($interval)->format('Y-m-d'); diff --git a/resources/lang/en-US/admin/settings/general.php b/resources/lang/en-US/admin/settings/general.php index 9ba69ef22..52aee1e8c 100644 --- a/resources/lang/en-US/admin/settings/general.php +++ b/resources/lang/en-US/admin/settings/general.php @@ -379,5 +379,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/views/hardware/checkin-due.blade.php b/resources/views/hardware/checkin-due.blade.php index 6ed7cf42c..79ea7553a 100644 --- a/resources/views/hardware/checkin-due.blade.php +++ b/resources/views/hardware/checkin-due.blade.php @@ -2,7 +2,7 @@ {{-- Page title --}} @section('title') - {{ trans_choice('general.checkin_due_days', $settings->audit_warning_days, ['days' => $settings->audit_warning_days]) }} + {{ trans_choice('general.checkin_due_days', $settings->due_checkin_days, ['days' => $settings->due_checkin_days]) }} @stop {{-- Page content --}} diff --git a/resources/views/settings/alerts.blade.php b/resources/views/settings/alerts.blade.php index 0d434040a..fc52ae386 100644 --- a/resources/views/settings/alerts.blade.php +++ b/resources/views/settings/alerts.blade.php @@ -150,6 +150,25 @@
+ +
+
+ {{ Form::label('due_checkin_days', trans('admin/settings/general.due_checkin_days')) }} +
+
+ {{ Form::text('due_checkin_days', old('due_checkin_days', $setting->due_checkin_days), array('class' => 'form-control','placeholder' => '14', 'maxlength'=>'3', 'style'=>'width: 60px;')) }} + {{ trans('general.days') }} + + + + +
+
+ {!! $errors->first('due_checkin_days', '') !!} +

{{ trans('admin/settings/general.due_checkin_days_help') }}

+
+
+
From 4356cb7b9b3fa0c841a94f84a9a482008516eff6 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 11:32:42 +0100 Subject: [PATCH 060/224] Added confetti option Signed-off-by: snipe --- app/Http/Controllers/ProfileController.php | 1 + ...024_08_15_111816_add_confetti_to_users.php | 28 + package-lock.json | 10 + package.json | 1 + public/js/build/app.js | 898 ++++++++++++++++++ public/js/dist/all.js | 898 ++++++++++++++++++ public/mix-manifest.json | 4 +- resources/lang/en-US/account/general.php | 1 + resources/views/account/profile.blade.php | 13 +- resources/views/notifications.blade.php | 2 + .../views/partials/confetti-js.blade.php | 25 + webpack.mix.js | 1 + 12 files changed, 1878 insertions(+), 4 deletions(-) create mode 100644 database/migrations/2024_08_15_111816_add_confetti_to_users.php create mode 100644 resources/views/partials/confetti-js.blade.php diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index bf0b1c3ec..abe09e8af 100755 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -50,6 +50,7 @@ class ProfileController extends Controller $user->skin = $request->input('skin'); $user->phone = $request->input('phone'); $user->enable_sounds = $request->input('enable_sounds', false); + $user->enable_confetti = $request->input('enable_confetti', false); if (! config('app.lock_passwords')) { $user->locale = $request->input('locale', 'en-US'); diff --git a/database/migrations/2024_08_15_111816_add_confetti_to_users.php b/database/migrations/2024_08_15_111816_add_confetti_to_users.php new file mode 100644 index 000000000..a3aa85d4f --- /dev/null +++ b/database/migrations/2024_08_15_111816_add_confetti_to_users.php @@ -0,0 +1,28 @@ +boolean('enable_confetti')->default(false); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('enable_confetti'); + }); + } +}; diff --git a/package-lock.json b/package-lock.json index afe7b5f7c..d71c3f9fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "bootstrap-datepicker": "^1.10.0", "bootstrap-less": "^3.3.8", "bootstrap-table": "1.23.0", + "canvas-confetti": "^1.9.3", "chart.js": "^2.9.4", "clipboard": "^2.0.11", "css-loader": "^5.0.0", @@ -4098,6 +4099,15 @@ ], "license": "CC-BY-4.0" }, + "node_modules/canvas-confetti": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/canvas-confetti/-/canvas-confetti-1.9.3.tgz", + "integrity": "sha512-rFfTURMvmVEX1gyXFgn5QMn81bYk70qa0HLzcIOSVEyl57n6o9ItHeBtUSWdvKAPY0xlvBHno4/v3QPrT83q9g==", + "funding": { + "type": "donate", + "url": "https://www.paypal.me/kirilvatev" + } + }, "node_modules/canvg": { "version": "3.0.10", "license": "MIT", diff --git a/package.json b/package.json index 95ccf94f8..468c6c289 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "bootstrap-datepicker": "^1.10.0", "bootstrap-less": "^3.3.8", "bootstrap-table": "1.23.0", + "canvas-confetti": "^1.9.3", "chart.js": "^2.9.4", "clipboard": "^2.0.11", "css-loader": "^5.0.0", diff --git a/public/js/build/app.js b/public/js/build/app.js index 66bbc638c..c5c6a5cd6 100644 --- a/public/js/build/app.js +++ b/public/js/build/app.js @@ -3157,6 +3157,903 @@ if (typeof jQuery === 'undefined') { }(jQuery); +/***/ }), + +/***/ "./node_modules/canvas-confetti/dist/confetti.browser.js": +/*!***************************************************************!*\ + !*** ./node_modules/canvas-confetti/dist/confetti.browser.js ***! + \***************************************************************/ +/***/ (() => { + +// canvas-confetti v1.9.3 built on 2024-04-30T22:19:17.794Z +!(function (window, module) { +// source content +/* globals Map */ + +(function main(global, module, isWorker, workerSize) { + var canUseWorker = !!( + global.Worker && + global.Blob && + global.Promise && + global.OffscreenCanvas && + global.OffscreenCanvasRenderingContext2D && + global.HTMLCanvasElement && + global.HTMLCanvasElement.prototype.transferControlToOffscreen && + global.URL && + global.URL.createObjectURL); + + var canUsePaths = typeof Path2D === 'function' && typeof DOMMatrix === 'function'; + var canDrawBitmap = (function () { + // this mostly supports ssr + if (!global.OffscreenCanvas) { + return false; + } + + var canvas = new OffscreenCanvas(1, 1); + var ctx = canvas.getContext('2d'); + ctx.fillRect(0, 0, 1, 1); + var bitmap = canvas.transferToImageBitmap(); + + try { + ctx.createPattern(bitmap, 'no-repeat'); + } catch (e) { + return false; + } + + return true; + })(); + + function noop() {} + + // create a promise if it exists, otherwise, just + // call the function directly + function promise(func) { + var ModulePromise = module.exports.Promise; + var Prom = ModulePromise !== void 0 ? ModulePromise : global.Promise; + + if (typeof Prom === 'function') { + return new Prom(func); + } + + func(noop, noop); + + return null; + } + + var bitmapMapper = (function (skipTransform, map) { + // see https://github.com/catdad/canvas-confetti/issues/209 + // creating canvases is actually pretty expensive, so we should create a + // 1:1 map for bitmap:canvas, so that we can animate the confetti in + // a performant manner, but also not store them forever so that we don't + // have a memory leak + return { + transform: function(bitmap) { + if (skipTransform) { + return bitmap; + } + + if (map.has(bitmap)) { + return map.get(bitmap); + } + + var canvas = new OffscreenCanvas(bitmap.width, bitmap.height); + var ctx = canvas.getContext('2d'); + ctx.drawImage(bitmap, 0, 0); + + map.set(bitmap, canvas); + + return canvas; + }, + clear: function () { + map.clear(); + } + }; + })(canDrawBitmap, new Map()); + + var raf = (function () { + var TIME = Math.floor(1000 / 60); + var frame, cancel; + var frames = {}; + var lastFrameTime = 0; + + if (typeof requestAnimationFrame === 'function' && typeof cancelAnimationFrame === 'function') { + frame = function (cb) { + var id = Math.random(); + + frames[id] = requestAnimationFrame(function onFrame(time) { + if (lastFrameTime === time || lastFrameTime + TIME - 1 < time) { + lastFrameTime = time; + delete frames[id]; + + cb(); + } else { + frames[id] = requestAnimationFrame(onFrame); + } + }); + + return id; + }; + cancel = function (id) { + if (frames[id]) { + cancelAnimationFrame(frames[id]); + } + }; + } else { + frame = function (cb) { + return setTimeout(cb, TIME); + }; + cancel = function (timer) { + return clearTimeout(timer); + }; + } + + return { frame: frame, cancel: cancel }; + }()); + + var getWorker = (function () { + var worker; + var prom; + var resolves = {}; + + function decorate(worker) { + function execute(options, callback) { + worker.postMessage({ options: options || {}, callback: callback }); + } + worker.init = function initWorker(canvas) { + var offscreen = canvas.transferControlToOffscreen(); + worker.postMessage({ canvas: offscreen }, [offscreen]); + }; + + worker.fire = function fireWorker(options, size, done) { + if (prom) { + execute(options, null); + return prom; + } + + var id = Math.random().toString(36).slice(2); + + prom = promise(function (resolve) { + function workerDone(msg) { + if (msg.data.callback !== id) { + return; + } + + delete resolves[id]; + worker.removeEventListener('message', workerDone); + + prom = null; + + bitmapMapper.clear(); + + done(); + resolve(); + } + + worker.addEventListener('message', workerDone); + execute(options, id); + + resolves[id] = workerDone.bind(null, { data: { callback: id }}); + }); + + return prom; + }; + + worker.reset = function resetWorker() { + worker.postMessage({ reset: true }); + + for (var id in resolves) { + resolves[id](); + delete resolves[id]; + } + }; + } + + return function () { + if (worker) { + return worker; + } + + if (!isWorker && canUseWorker) { + var code = [ + 'var CONFETTI, SIZE = {}, module = {};', + '(' + main.toString() + ')(this, module, true, SIZE);', + 'onmessage = function(msg) {', + ' if (msg.data.options) {', + ' CONFETTI(msg.data.options).then(function () {', + ' if (msg.data.callback) {', + ' postMessage({ callback: msg.data.callback });', + ' }', + ' });', + ' } else if (msg.data.reset) {', + ' CONFETTI && CONFETTI.reset();', + ' } else if (msg.data.resize) {', + ' SIZE.width = msg.data.resize.width;', + ' SIZE.height = msg.data.resize.height;', + ' } else if (msg.data.canvas) {', + ' SIZE.width = msg.data.canvas.width;', + ' SIZE.height = msg.data.canvas.height;', + ' CONFETTI = module.exports.create(msg.data.canvas);', + ' }', + '}', + ].join('\n'); + try { + worker = new Worker(URL.createObjectURL(new Blob([code]))); + } catch (e) { + // eslint-disable-next-line no-console + typeof console !== undefined && typeof console.warn === 'function' ? console.warn('🎊 Could not load worker', e) : null; + + return null; + } + + decorate(worker); + } + + return worker; + }; + })(); + + var defaults = { + particleCount: 50, + angle: 90, + spread: 45, + startVelocity: 45, + decay: 0.9, + gravity: 1, + drift: 0, + ticks: 200, + x: 0.5, + y: 0.5, + shapes: ['square', 'circle'], + zIndex: 100, + colors: [ + '#26ccff', + '#a25afd', + '#ff5e7e', + '#88ff5a', + '#fcff42', + '#ffa62d', + '#ff36ff' + ], + // probably should be true, but back-compat + disableForReducedMotion: false, + scalar: 1 + }; + + function convert(val, transform) { + return transform ? transform(val) : val; + } + + function isOk(val) { + return !(val === null || val === undefined); + } + + function prop(options, name, transform) { + return convert( + options && isOk(options[name]) ? options[name] : defaults[name], + transform + ); + } + + function onlyPositiveInt(number){ + return number < 0 ? 0 : Math.floor(number); + } + + function randomInt(min, max) { + // [min, max) + return Math.floor(Math.random() * (max - min)) + min; + } + + function toDecimal(str) { + return parseInt(str, 16); + } + + function colorsToRgb(colors) { + return colors.map(hexToRgb); + } + + function hexToRgb(str) { + var val = String(str).replace(/[^0-9a-f]/gi, ''); + + if (val.length < 6) { + val = val[0]+val[0]+val[1]+val[1]+val[2]+val[2]; + } + + return { + r: toDecimal(val.substring(0,2)), + g: toDecimal(val.substring(2,4)), + b: toDecimal(val.substring(4,6)) + }; + } + + function getOrigin(options) { + var origin = prop(options, 'origin', Object); + origin.x = prop(origin, 'x', Number); + origin.y = prop(origin, 'y', Number); + + return origin; + } + + function setCanvasWindowSize(canvas) { + canvas.width = document.documentElement.clientWidth; + canvas.height = document.documentElement.clientHeight; + } + + function setCanvasRectSize(canvas) { + var rect = canvas.getBoundingClientRect(); + canvas.width = rect.width; + canvas.height = rect.height; + } + + function getCanvas(zIndex) { + var canvas = document.createElement('canvas'); + + canvas.style.position = 'fixed'; + canvas.style.top = '0px'; + canvas.style.left = '0px'; + canvas.style.pointerEvents = 'none'; + canvas.style.zIndex = zIndex; + + return canvas; + } + + function ellipse(context, x, y, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise) { + context.save(); + context.translate(x, y); + context.rotate(rotation); + context.scale(radiusX, radiusY); + context.arc(0, 0, 1, startAngle, endAngle, antiClockwise); + context.restore(); + } + + function randomPhysics(opts) { + var radAngle = opts.angle * (Math.PI / 180); + var radSpread = opts.spread * (Math.PI / 180); + + return { + x: opts.x, + y: opts.y, + wobble: Math.random() * 10, + wobbleSpeed: Math.min(0.11, Math.random() * 0.1 + 0.05), + velocity: (opts.startVelocity * 0.5) + (Math.random() * opts.startVelocity), + angle2D: -radAngle + ((0.5 * radSpread) - (Math.random() * radSpread)), + tiltAngle: (Math.random() * (0.75 - 0.25) + 0.25) * Math.PI, + color: opts.color, + shape: opts.shape, + tick: 0, + totalTicks: opts.ticks, + decay: opts.decay, + drift: opts.drift, + random: Math.random() + 2, + tiltSin: 0, + tiltCos: 0, + wobbleX: 0, + wobbleY: 0, + gravity: opts.gravity * 3, + ovalScalar: 0.6, + scalar: opts.scalar, + flat: opts.flat + }; + } + + function updateFetti(context, fetti) { + fetti.x += Math.cos(fetti.angle2D) * fetti.velocity + fetti.drift; + fetti.y += Math.sin(fetti.angle2D) * fetti.velocity + fetti.gravity; + fetti.velocity *= fetti.decay; + + if (fetti.flat) { + fetti.wobble = 0; + fetti.wobbleX = fetti.x + (10 * fetti.scalar); + fetti.wobbleY = fetti.y + (10 * fetti.scalar); + + fetti.tiltSin = 0; + fetti.tiltCos = 0; + fetti.random = 1; + } else { + fetti.wobble += fetti.wobbleSpeed; + fetti.wobbleX = fetti.x + ((10 * fetti.scalar) * Math.cos(fetti.wobble)); + fetti.wobbleY = fetti.y + ((10 * fetti.scalar) * Math.sin(fetti.wobble)); + + fetti.tiltAngle += 0.1; + fetti.tiltSin = Math.sin(fetti.tiltAngle); + fetti.tiltCos = Math.cos(fetti.tiltAngle); + fetti.random = Math.random() + 2; + } + + var progress = (fetti.tick++) / fetti.totalTicks; + + var x1 = fetti.x + (fetti.random * fetti.tiltCos); + var y1 = fetti.y + (fetti.random * fetti.tiltSin); + var x2 = fetti.wobbleX + (fetti.random * fetti.tiltCos); + var y2 = fetti.wobbleY + (fetti.random * fetti.tiltSin); + + context.fillStyle = 'rgba(' + fetti.color.r + ', ' + fetti.color.g + ', ' + fetti.color.b + ', ' + (1 - progress) + ')'; + + context.beginPath(); + + if (canUsePaths && fetti.shape.type === 'path' && typeof fetti.shape.path === 'string' && Array.isArray(fetti.shape.matrix)) { + context.fill(transformPath2D( + fetti.shape.path, + fetti.shape.matrix, + fetti.x, + fetti.y, + Math.abs(x2 - x1) * 0.1, + Math.abs(y2 - y1) * 0.1, + Math.PI / 10 * fetti.wobble + )); + } else if (fetti.shape.type === 'bitmap') { + var rotation = Math.PI / 10 * fetti.wobble; + var scaleX = Math.abs(x2 - x1) * 0.1; + var scaleY = Math.abs(y2 - y1) * 0.1; + var width = fetti.shape.bitmap.width * fetti.scalar; + var height = fetti.shape.bitmap.height * fetti.scalar; + + var matrix = new DOMMatrix([ + Math.cos(rotation) * scaleX, + Math.sin(rotation) * scaleX, + -Math.sin(rotation) * scaleY, + Math.cos(rotation) * scaleY, + fetti.x, + fetti.y + ]); + + // apply the transform matrix from the confetti shape + matrix.multiplySelf(new DOMMatrix(fetti.shape.matrix)); + + var pattern = context.createPattern(bitmapMapper.transform(fetti.shape.bitmap), 'no-repeat'); + pattern.setTransform(matrix); + + context.globalAlpha = (1 - progress); + context.fillStyle = pattern; + context.fillRect( + fetti.x - (width / 2), + fetti.y - (height / 2), + width, + height + ); + context.globalAlpha = 1; + } else if (fetti.shape === 'circle') { + context.ellipse ? + context.ellipse(fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI) : + ellipse(context, fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI); + } else if (fetti.shape === 'star') { + var rot = Math.PI / 2 * 3; + var innerRadius = 4 * fetti.scalar; + var outerRadius = 8 * fetti.scalar; + var x = fetti.x; + var y = fetti.y; + var spikes = 5; + var step = Math.PI / spikes; + + while (spikes--) { + x = fetti.x + Math.cos(rot) * outerRadius; + y = fetti.y + Math.sin(rot) * outerRadius; + context.lineTo(x, y); + rot += step; + + x = fetti.x + Math.cos(rot) * innerRadius; + y = fetti.y + Math.sin(rot) * innerRadius; + context.lineTo(x, y); + rot += step; + } + } else { + context.moveTo(Math.floor(fetti.x), Math.floor(fetti.y)); + context.lineTo(Math.floor(fetti.wobbleX), Math.floor(y1)); + context.lineTo(Math.floor(x2), Math.floor(y2)); + context.lineTo(Math.floor(x1), Math.floor(fetti.wobbleY)); + } + + context.closePath(); + context.fill(); + + return fetti.tick < fetti.totalTicks; + } + + function animate(canvas, fettis, resizer, size, done) { + var animatingFettis = fettis.slice(); + var context = canvas.getContext('2d'); + var animationFrame; + var destroy; + + var prom = promise(function (resolve) { + function onDone() { + animationFrame = destroy = null; + + context.clearRect(0, 0, size.width, size.height); + bitmapMapper.clear(); + + done(); + resolve(); + } + + function update() { + if (isWorker && !(size.width === workerSize.width && size.height === workerSize.height)) { + size.width = canvas.width = workerSize.width; + size.height = canvas.height = workerSize.height; + } + + if (!size.width && !size.height) { + resizer(canvas); + size.width = canvas.width; + size.height = canvas.height; + } + + context.clearRect(0, 0, size.width, size.height); + + animatingFettis = animatingFettis.filter(function (fetti) { + return updateFetti(context, fetti); + }); + + if (animatingFettis.length) { + animationFrame = raf.frame(update); + } else { + onDone(); + } + } + + animationFrame = raf.frame(update); + destroy = onDone; + }); + + return { + addFettis: function (fettis) { + animatingFettis = animatingFettis.concat(fettis); + + return prom; + }, + canvas: canvas, + promise: prom, + reset: function () { + if (animationFrame) { + raf.cancel(animationFrame); + } + + if (destroy) { + destroy(); + } + } + }; + } + + function confettiCannon(canvas, globalOpts) { + var isLibCanvas = !canvas; + var allowResize = !!prop(globalOpts || {}, 'resize'); + var hasResizeEventRegistered = false; + var globalDisableForReducedMotion = prop(globalOpts, 'disableForReducedMotion', Boolean); + var shouldUseWorker = canUseWorker && !!prop(globalOpts || {}, 'useWorker'); + var worker = shouldUseWorker ? getWorker() : null; + var resizer = isLibCanvas ? setCanvasWindowSize : setCanvasRectSize; + var initialized = (canvas && worker) ? !!canvas.__confetti_initialized : false; + var preferLessMotion = typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion)').matches; + var animationObj; + + function fireLocal(options, size, done) { + var particleCount = prop(options, 'particleCount', onlyPositiveInt); + var angle = prop(options, 'angle', Number); + var spread = prop(options, 'spread', Number); + var startVelocity = prop(options, 'startVelocity', Number); + var decay = prop(options, 'decay', Number); + var gravity = prop(options, 'gravity', Number); + var drift = prop(options, 'drift', Number); + var colors = prop(options, 'colors', colorsToRgb); + var ticks = prop(options, 'ticks', Number); + var shapes = prop(options, 'shapes'); + var scalar = prop(options, 'scalar'); + var flat = !!prop(options, 'flat'); + var origin = getOrigin(options); + + var temp = particleCount; + var fettis = []; + + var startX = canvas.width * origin.x; + var startY = canvas.height * origin.y; + + while (temp--) { + fettis.push( + randomPhysics({ + x: startX, + y: startY, + angle: angle, + spread: spread, + startVelocity: startVelocity, + color: colors[temp % colors.length], + shape: shapes[randomInt(0, shapes.length)], + ticks: ticks, + decay: decay, + gravity: gravity, + drift: drift, + scalar: scalar, + flat: flat + }) + ); + } + + // if we have a previous canvas already animating, + // add to it + if (animationObj) { + return animationObj.addFettis(fettis); + } + + animationObj = animate(canvas, fettis, resizer, size , done); + + return animationObj.promise; + } + + function fire(options) { + var disableForReducedMotion = globalDisableForReducedMotion || prop(options, 'disableForReducedMotion', Boolean); + var zIndex = prop(options, 'zIndex', Number); + + if (disableForReducedMotion && preferLessMotion) { + return promise(function (resolve) { + resolve(); + }); + } + + if (isLibCanvas && animationObj) { + // use existing canvas from in-progress animation + canvas = animationObj.canvas; + } else if (isLibCanvas && !canvas) { + // create and initialize a new canvas + canvas = getCanvas(zIndex); + document.body.appendChild(canvas); + } + + if (allowResize && !initialized) { + // initialize the size of a user-supplied canvas + resizer(canvas); + } + + var size = { + width: canvas.width, + height: canvas.height + }; + + if (worker && !initialized) { + worker.init(canvas); + } + + initialized = true; + + if (worker) { + canvas.__confetti_initialized = true; + } + + function onResize() { + if (worker) { + // TODO this really shouldn't be immediate, because it is expensive + var obj = { + getBoundingClientRect: function () { + if (!isLibCanvas) { + return canvas.getBoundingClientRect(); + } + } + }; + + resizer(obj); + + worker.postMessage({ + resize: { + width: obj.width, + height: obj.height + } + }); + return; + } + + // don't actually query the size here, since this + // can execute frequently and rapidly + size.width = size.height = null; + } + + function done() { + animationObj = null; + + if (allowResize) { + hasResizeEventRegistered = false; + global.removeEventListener('resize', onResize); + } + + if (isLibCanvas && canvas) { + if (document.body.contains(canvas)) { + document.body.removeChild(canvas); + } + canvas = null; + initialized = false; + } + } + + if (allowResize && !hasResizeEventRegistered) { + hasResizeEventRegistered = true; + global.addEventListener('resize', onResize, false); + } + + if (worker) { + return worker.fire(options, size, done); + } + + return fireLocal(options, size, done); + } + + fire.reset = function () { + if (worker) { + worker.reset(); + } + + if (animationObj) { + animationObj.reset(); + } + }; + + return fire; + } + + // Make default export lazy to defer worker creation until called. + var defaultFire; + function getDefaultFire() { + if (!defaultFire) { + defaultFire = confettiCannon(null, { useWorker: true, resize: true }); + } + return defaultFire; + } + + function transformPath2D(pathString, pathMatrix, x, y, scaleX, scaleY, rotation) { + var path2d = new Path2D(pathString); + + var t1 = new Path2D(); + t1.addPath(path2d, new DOMMatrix(pathMatrix)); + + var t2 = new Path2D(); + // see https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix/DOMMatrix + t2.addPath(t1, new DOMMatrix([ + Math.cos(rotation) * scaleX, + Math.sin(rotation) * scaleX, + -Math.sin(rotation) * scaleY, + Math.cos(rotation) * scaleY, + x, + y + ])); + + return t2; + } + + function shapeFromPath(pathData) { + if (!canUsePaths) { + throw new Error('path confetti are not supported in this browser'); + } + + var path, matrix; + + if (typeof pathData === 'string') { + path = pathData; + } else { + path = pathData.path; + matrix = pathData.matrix; + } + + var path2d = new Path2D(path); + var tempCanvas = document.createElement('canvas'); + var tempCtx = tempCanvas.getContext('2d'); + + if (!matrix) { + // attempt to figure out the width of the path, up to 1000x1000 + var maxSize = 1000; + var minX = maxSize; + var minY = maxSize; + var maxX = 0; + var maxY = 0; + var width, height; + + // do some line skipping... this is faster than checking + // every pixel and will be mostly still correct + for (var x = 0; x < maxSize; x += 2) { + for (var y = 0; y < maxSize; y += 2) { + if (tempCtx.isPointInPath(path2d, x, y, 'nonzero')) { + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + + width = maxX - minX; + height = maxY - minY; + + var maxDesiredSize = 10; + var scale = Math.min(maxDesiredSize/width, maxDesiredSize/height); + + matrix = [ + scale, 0, 0, scale, + -Math.round((width/2) + minX) * scale, + -Math.round((height/2) + minY) * scale + ]; + } + + return { + type: 'path', + path: path, + matrix: matrix + }; + } + + function shapeFromText(textData) { + var text, + scalar = 1, + color = '#000000', + // see https://nolanlawson.com/2022/04/08/the-struggle-of-using-native-emoji-on-the-web/ + fontFamily = '"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", "EmojiOne Color", "Android Emoji", "Twemoji Mozilla", "system emoji", sans-serif'; + + if (typeof textData === 'string') { + text = textData; + } else { + text = textData.text; + scalar = 'scalar' in textData ? textData.scalar : scalar; + fontFamily = 'fontFamily' in textData ? textData.fontFamily : fontFamily; + color = 'color' in textData ? textData.color : color; + } + + // all other confetti are 10 pixels, + // so this pixel size is the de-facto 100% scale confetti + var fontSize = 10 * scalar; + var font = '' + fontSize + 'px ' + fontFamily; + + var canvas = new OffscreenCanvas(fontSize, fontSize); + var ctx = canvas.getContext('2d'); + + ctx.font = font; + var size = ctx.measureText(text); + var width = Math.ceil(size.actualBoundingBoxRight + size.actualBoundingBoxLeft); + var height = Math.ceil(size.actualBoundingBoxAscent + size.actualBoundingBoxDescent); + + var padding = 2; + var x = size.actualBoundingBoxLeft + padding; + var y = size.actualBoundingBoxAscent + padding; + width += padding + padding; + height += padding + padding; + + canvas = new OffscreenCanvas(width, height); + ctx = canvas.getContext('2d'); + ctx.font = font; + ctx.fillStyle = color; + + ctx.fillText(text, x, y); + + var scale = 1 / scalar; + + return { + type: 'bitmap', + // TODO these probably need to be transfered for workers + bitmap: canvas.transferToImageBitmap(), + matrix: [scale, 0, 0, scale, -width * scale / 2, -height * scale / 2] + }; + } + + module.exports = function() { + return getDefaultFire().apply(this, arguments); + }; + module.exports.reset = function() { + getDefaultFire().reset(); + }; + module.exports.create = confettiCannon; + module.exports.shapeFromPath = shapeFromPath; + module.exports.shapeFromText = shapeFromText; +}((function () { + if (typeof window !== 'undefined') { + return window; + } + + if (typeof self !== 'undefined') { + return self; + } + + return this || {}; +})(), module, false)); + +// end source content + + window.confetti = module.exports; +}(window, {})); + + /***/ }), /***/ "./node_modules/jquery-ui/ui/version.js": @@ -32476,6 +33373,7 @@ __webpack_require__.r(__webpack_exports__); /******/ // This entry module depends on other loaded chunks and execution need to be delayed /******/ __webpack_require__.O(undefined, ["css/dist/skins/skin-black-dark","css/dist/skins/_all-skins","css/build/overrides","css/build/app","css/build/AdminLTE","css/dist/skins/skin-yellow","css/dist/skins/skin-yellow-dark","css/dist/skins/skin-red","css/dist/skins/skin-red-dark","css/dist/skins/skin-purple","css/dist/skins/skin-purple-dark","css/dist/skins/skin-orange","css/dist/skins/skin-orange-dark","css/dist/skins/skin-green","css/dist/skins/skin-green-dark","css/dist/skins/skin-contrast","css/dist/skins/skin-blue","css/dist/skins/skin-blue-dark","css/dist/skins/skin-black"], () => (__webpack_require__("./resources/assets/js/snipeit.js"))) /******/ __webpack_require__.O(undefined, ["css/dist/skins/skin-black-dark","css/dist/skins/_all-skins","css/build/overrides","css/build/app","css/build/AdminLTE","css/dist/skins/skin-yellow","css/dist/skins/skin-yellow-dark","css/dist/skins/skin-red","css/dist/skins/skin-red-dark","css/dist/skins/skin-purple","css/dist/skins/skin-purple-dark","css/dist/skins/skin-orange","css/dist/skins/skin-orange-dark","css/dist/skins/skin-green","css/dist/skins/skin-green-dark","css/dist/skins/skin-contrast","css/dist/skins/skin-blue","css/dist/skins/skin-blue-dark","css/dist/skins/skin-black"], () => (__webpack_require__("./resources/assets/js/snipeit_modals.js"))) +/******/ __webpack_require__.O(undefined, ["css/dist/skins/skin-black-dark","css/dist/skins/_all-skins","css/build/overrides","css/build/app","css/build/AdminLTE","css/dist/skins/skin-yellow","css/dist/skins/skin-yellow-dark","css/dist/skins/skin-red","css/dist/skins/skin-red-dark","css/dist/skins/skin-purple","css/dist/skins/skin-purple-dark","css/dist/skins/skin-orange","css/dist/skins/skin-orange-dark","css/dist/skins/skin-green","css/dist/skins/skin-green-dark","css/dist/skins/skin-contrast","css/dist/skins/skin-blue","css/dist/skins/skin-blue-dark","css/dist/skins/skin-black"], () => (__webpack_require__("./node_modules/canvas-confetti/dist/confetti.browser.js"))) /******/ __webpack_require__.O(undefined, ["css/dist/skins/skin-black-dark","css/dist/skins/_all-skins","css/build/overrides","css/build/app","css/build/AdminLTE","css/dist/skins/skin-yellow","css/dist/skins/skin-yellow-dark","css/dist/skins/skin-red","css/dist/skins/skin-red-dark","css/dist/skins/skin-purple","css/dist/skins/skin-purple-dark","css/dist/skins/skin-orange","css/dist/skins/skin-orange-dark","css/dist/skins/skin-green","css/dist/skins/skin-green-dark","css/dist/skins/skin-contrast","css/dist/skins/skin-blue","css/dist/skins/skin-blue-dark","css/dist/skins/skin-black"], () => (__webpack_require__("./node_modules/admin-lte/build/less/AdminLTE.less"))) /******/ __webpack_require__.O(undefined, ["css/dist/skins/skin-black-dark","css/dist/skins/_all-skins","css/build/overrides","css/build/app","css/build/AdminLTE","css/dist/skins/skin-yellow","css/dist/skins/skin-yellow-dark","css/dist/skins/skin-red","css/dist/skins/skin-red-dark","css/dist/skins/skin-purple","css/dist/skins/skin-purple-dark","css/dist/skins/skin-orange","css/dist/skins/skin-orange-dark","css/dist/skins/skin-green","css/dist/skins/skin-green-dark","css/dist/skins/skin-contrast","css/dist/skins/skin-blue","css/dist/skins/skin-blue-dark","css/dist/skins/skin-black"], () => (__webpack_require__("./resources/assets/less/app.less"))) /******/ __webpack_require__.O(undefined, ["css/dist/skins/skin-black-dark","css/dist/skins/_all-skins","css/build/overrides","css/build/app","css/build/AdminLTE","css/dist/skins/skin-yellow","css/dist/skins/skin-yellow-dark","css/dist/skins/skin-red","css/dist/skins/skin-red-dark","css/dist/skins/skin-purple","css/dist/skins/skin-purple-dark","css/dist/skins/skin-orange","css/dist/skins/skin-orange-dark","css/dist/skins/skin-green","css/dist/skins/skin-green-dark","css/dist/skins/skin-contrast","css/dist/skins/skin-blue","css/dist/skins/skin-blue-dark","css/dist/skins/skin-black"], () => (__webpack_require__("./resources/assets/less/overrides.less"))) diff --git a/public/js/dist/all.js b/public/js/dist/all.js index 4869d7ca3..f82e4d678 100644 --- a/public/js/dist/all.js +++ b/public/js/dist/all.js @@ -62351,6 +62351,903 @@ if (typeof jQuery === 'undefined') { }(jQuery); +/***/ }), + +/***/ "./node_modules/canvas-confetti/dist/confetti.browser.js": +/*!***************************************************************!*\ + !*** ./node_modules/canvas-confetti/dist/confetti.browser.js ***! + \***************************************************************/ +/***/ (() => { + +// canvas-confetti v1.9.3 built on 2024-04-30T22:19:17.794Z +!(function (window, module) { +// source content +/* globals Map */ + +(function main(global, module, isWorker, workerSize) { + var canUseWorker = !!( + global.Worker && + global.Blob && + global.Promise && + global.OffscreenCanvas && + global.OffscreenCanvasRenderingContext2D && + global.HTMLCanvasElement && + global.HTMLCanvasElement.prototype.transferControlToOffscreen && + global.URL && + global.URL.createObjectURL); + + var canUsePaths = typeof Path2D === 'function' && typeof DOMMatrix === 'function'; + var canDrawBitmap = (function () { + // this mostly supports ssr + if (!global.OffscreenCanvas) { + return false; + } + + var canvas = new OffscreenCanvas(1, 1); + var ctx = canvas.getContext('2d'); + ctx.fillRect(0, 0, 1, 1); + var bitmap = canvas.transferToImageBitmap(); + + try { + ctx.createPattern(bitmap, 'no-repeat'); + } catch (e) { + return false; + } + + return true; + })(); + + function noop() {} + + // create a promise if it exists, otherwise, just + // call the function directly + function promise(func) { + var ModulePromise = module.exports.Promise; + var Prom = ModulePromise !== void 0 ? ModulePromise : global.Promise; + + if (typeof Prom === 'function') { + return new Prom(func); + } + + func(noop, noop); + + return null; + } + + var bitmapMapper = (function (skipTransform, map) { + // see https://github.com/catdad/canvas-confetti/issues/209 + // creating canvases is actually pretty expensive, so we should create a + // 1:1 map for bitmap:canvas, so that we can animate the confetti in + // a performant manner, but also not store them forever so that we don't + // have a memory leak + return { + transform: function(bitmap) { + if (skipTransform) { + return bitmap; + } + + if (map.has(bitmap)) { + return map.get(bitmap); + } + + var canvas = new OffscreenCanvas(bitmap.width, bitmap.height); + var ctx = canvas.getContext('2d'); + ctx.drawImage(bitmap, 0, 0); + + map.set(bitmap, canvas); + + return canvas; + }, + clear: function () { + map.clear(); + } + }; + })(canDrawBitmap, new Map()); + + var raf = (function () { + var TIME = Math.floor(1000 / 60); + var frame, cancel; + var frames = {}; + var lastFrameTime = 0; + + if (typeof requestAnimationFrame === 'function' && typeof cancelAnimationFrame === 'function') { + frame = function (cb) { + var id = Math.random(); + + frames[id] = requestAnimationFrame(function onFrame(time) { + if (lastFrameTime === time || lastFrameTime + TIME - 1 < time) { + lastFrameTime = time; + delete frames[id]; + + cb(); + } else { + frames[id] = requestAnimationFrame(onFrame); + } + }); + + return id; + }; + cancel = function (id) { + if (frames[id]) { + cancelAnimationFrame(frames[id]); + } + }; + } else { + frame = function (cb) { + return setTimeout(cb, TIME); + }; + cancel = function (timer) { + return clearTimeout(timer); + }; + } + + return { frame: frame, cancel: cancel }; + }()); + + var getWorker = (function () { + var worker; + var prom; + var resolves = {}; + + function decorate(worker) { + function execute(options, callback) { + worker.postMessage({ options: options || {}, callback: callback }); + } + worker.init = function initWorker(canvas) { + var offscreen = canvas.transferControlToOffscreen(); + worker.postMessage({ canvas: offscreen }, [offscreen]); + }; + + worker.fire = function fireWorker(options, size, done) { + if (prom) { + execute(options, null); + return prom; + } + + var id = Math.random().toString(36).slice(2); + + prom = promise(function (resolve) { + function workerDone(msg) { + if (msg.data.callback !== id) { + return; + } + + delete resolves[id]; + worker.removeEventListener('message', workerDone); + + prom = null; + + bitmapMapper.clear(); + + done(); + resolve(); + } + + worker.addEventListener('message', workerDone); + execute(options, id); + + resolves[id] = workerDone.bind(null, { data: { callback: id }}); + }); + + return prom; + }; + + worker.reset = function resetWorker() { + worker.postMessage({ reset: true }); + + for (var id in resolves) { + resolves[id](); + delete resolves[id]; + } + }; + } + + return function () { + if (worker) { + return worker; + } + + if (!isWorker && canUseWorker) { + var code = [ + 'var CONFETTI, SIZE = {}, module = {};', + '(' + main.toString() + ')(this, module, true, SIZE);', + 'onmessage = function(msg) {', + ' if (msg.data.options) {', + ' CONFETTI(msg.data.options).then(function () {', + ' if (msg.data.callback) {', + ' postMessage({ callback: msg.data.callback });', + ' }', + ' });', + ' } else if (msg.data.reset) {', + ' CONFETTI && CONFETTI.reset();', + ' } else if (msg.data.resize) {', + ' SIZE.width = msg.data.resize.width;', + ' SIZE.height = msg.data.resize.height;', + ' } else if (msg.data.canvas) {', + ' SIZE.width = msg.data.canvas.width;', + ' SIZE.height = msg.data.canvas.height;', + ' CONFETTI = module.exports.create(msg.data.canvas);', + ' }', + '}', + ].join('\n'); + try { + worker = new Worker(URL.createObjectURL(new Blob([code]))); + } catch (e) { + // eslint-disable-next-line no-console + typeof console !== undefined && typeof console.warn === 'function' ? console.warn('🎊 Could not load worker', e) : null; + + return null; + } + + decorate(worker); + } + + return worker; + }; + })(); + + var defaults = { + particleCount: 50, + angle: 90, + spread: 45, + startVelocity: 45, + decay: 0.9, + gravity: 1, + drift: 0, + ticks: 200, + x: 0.5, + y: 0.5, + shapes: ['square', 'circle'], + zIndex: 100, + colors: [ + '#26ccff', + '#a25afd', + '#ff5e7e', + '#88ff5a', + '#fcff42', + '#ffa62d', + '#ff36ff' + ], + // probably should be true, but back-compat + disableForReducedMotion: false, + scalar: 1 + }; + + function convert(val, transform) { + return transform ? transform(val) : val; + } + + function isOk(val) { + return !(val === null || val === undefined); + } + + function prop(options, name, transform) { + return convert( + options && isOk(options[name]) ? options[name] : defaults[name], + transform + ); + } + + function onlyPositiveInt(number){ + return number < 0 ? 0 : Math.floor(number); + } + + function randomInt(min, max) { + // [min, max) + return Math.floor(Math.random() * (max - min)) + min; + } + + function toDecimal(str) { + return parseInt(str, 16); + } + + function colorsToRgb(colors) { + return colors.map(hexToRgb); + } + + function hexToRgb(str) { + var val = String(str).replace(/[^0-9a-f]/gi, ''); + + if (val.length < 6) { + val = val[0]+val[0]+val[1]+val[1]+val[2]+val[2]; + } + + return { + r: toDecimal(val.substring(0,2)), + g: toDecimal(val.substring(2,4)), + b: toDecimal(val.substring(4,6)) + }; + } + + function getOrigin(options) { + var origin = prop(options, 'origin', Object); + origin.x = prop(origin, 'x', Number); + origin.y = prop(origin, 'y', Number); + + return origin; + } + + function setCanvasWindowSize(canvas) { + canvas.width = document.documentElement.clientWidth; + canvas.height = document.documentElement.clientHeight; + } + + function setCanvasRectSize(canvas) { + var rect = canvas.getBoundingClientRect(); + canvas.width = rect.width; + canvas.height = rect.height; + } + + function getCanvas(zIndex) { + var canvas = document.createElement('canvas'); + + canvas.style.position = 'fixed'; + canvas.style.top = '0px'; + canvas.style.left = '0px'; + canvas.style.pointerEvents = 'none'; + canvas.style.zIndex = zIndex; + + return canvas; + } + + function ellipse(context, x, y, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise) { + context.save(); + context.translate(x, y); + context.rotate(rotation); + context.scale(radiusX, radiusY); + context.arc(0, 0, 1, startAngle, endAngle, antiClockwise); + context.restore(); + } + + function randomPhysics(opts) { + var radAngle = opts.angle * (Math.PI / 180); + var radSpread = opts.spread * (Math.PI / 180); + + return { + x: opts.x, + y: opts.y, + wobble: Math.random() * 10, + wobbleSpeed: Math.min(0.11, Math.random() * 0.1 + 0.05), + velocity: (opts.startVelocity * 0.5) + (Math.random() * opts.startVelocity), + angle2D: -radAngle + ((0.5 * radSpread) - (Math.random() * radSpread)), + tiltAngle: (Math.random() * (0.75 - 0.25) + 0.25) * Math.PI, + color: opts.color, + shape: opts.shape, + tick: 0, + totalTicks: opts.ticks, + decay: opts.decay, + drift: opts.drift, + random: Math.random() + 2, + tiltSin: 0, + tiltCos: 0, + wobbleX: 0, + wobbleY: 0, + gravity: opts.gravity * 3, + ovalScalar: 0.6, + scalar: opts.scalar, + flat: opts.flat + }; + } + + function updateFetti(context, fetti) { + fetti.x += Math.cos(fetti.angle2D) * fetti.velocity + fetti.drift; + fetti.y += Math.sin(fetti.angle2D) * fetti.velocity + fetti.gravity; + fetti.velocity *= fetti.decay; + + if (fetti.flat) { + fetti.wobble = 0; + fetti.wobbleX = fetti.x + (10 * fetti.scalar); + fetti.wobbleY = fetti.y + (10 * fetti.scalar); + + fetti.tiltSin = 0; + fetti.tiltCos = 0; + fetti.random = 1; + } else { + fetti.wobble += fetti.wobbleSpeed; + fetti.wobbleX = fetti.x + ((10 * fetti.scalar) * Math.cos(fetti.wobble)); + fetti.wobbleY = fetti.y + ((10 * fetti.scalar) * Math.sin(fetti.wobble)); + + fetti.tiltAngle += 0.1; + fetti.tiltSin = Math.sin(fetti.tiltAngle); + fetti.tiltCos = Math.cos(fetti.tiltAngle); + fetti.random = Math.random() + 2; + } + + var progress = (fetti.tick++) / fetti.totalTicks; + + var x1 = fetti.x + (fetti.random * fetti.tiltCos); + var y1 = fetti.y + (fetti.random * fetti.tiltSin); + var x2 = fetti.wobbleX + (fetti.random * fetti.tiltCos); + var y2 = fetti.wobbleY + (fetti.random * fetti.tiltSin); + + context.fillStyle = 'rgba(' + fetti.color.r + ', ' + fetti.color.g + ', ' + fetti.color.b + ', ' + (1 - progress) + ')'; + + context.beginPath(); + + if (canUsePaths && fetti.shape.type === 'path' && typeof fetti.shape.path === 'string' && Array.isArray(fetti.shape.matrix)) { + context.fill(transformPath2D( + fetti.shape.path, + fetti.shape.matrix, + fetti.x, + fetti.y, + Math.abs(x2 - x1) * 0.1, + Math.abs(y2 - y1) * 0.1, + Math.PI / 10 * fetti.wobble + )); + } else if (fetti.shape.type === 'bitmap') { + var rotation = Math.PI / 10 * fetti.wobble; + var scaleX = Math.abs(x2 - x1) * 0.1; + var scaleY = Math.abs(y2 - y1) * 0.1; + var width = fetti.shape.bitmap.width * fetti.scalar; + var height = fetti.shape.bitmap.height * fetti.scalar; + + var matrix = new DOMMatrix([ + Math.cos(rotation) * scaleX, + Math.sin(rotation) * scaleX, + -Math.sin(rotation) * scaleY, + Math.cos(rotation) * scaleY, + fetti.x, + fetti.y + ]); + + // apply the transform matrix from the confetti shape + matrix.multiplySelf(new DOMMatrix(fetti.shape.matrix)); + + var pattern = context.createPattern(bitmapMapper.transform(fetti.shape.bitmap), 'no-repeat'); + pattern.setTransform(matrix); + + context.globalAlpha = (1 - progress); + context.fillStyle = pattern; + context.fillRect( + fetti.x - (width / 2), + fetti.y - (height / 2), + width, + height + ); + context.globalAlpha = 1; + } else if (fetti.shape === 'circle') { + context.ellipse ? + context.ellipse(fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI) : + ellipse(context, fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI); + } else if (fetti.shape === 'star') { + var rot = Math.PI / 2 * 3; + var innerRadius = 4 * fetti.scalar; + var outerRadius = 8 * fetti.scalar; + var x = fetti.x; + var y = fetti.y; + var spikes = 5; + var step = Math.PI / spikes; + + while (spikes--) { + x = fetti.x + Math.cos(rot) * outerRadius; + y = fetti.y + Math.sin(rot) * outerRadius; + context.lineTo(x, y); + rot += step; + + x = fetti.x + Math.cos(rot) * innerRadius; + y = fetti.y + Math.sin(rot) * innerRadius; + context.lineTo(x, y); + rot += step; + } + } else { + context.moveTo(Math.floor(fetti.x), Math.floor(fetti.y)); + context.lineTo(Math.floor(fetti.wobbleX), Math.floor(y1)); + context.lineTo(Math.floor(x2), Math.floor(y2)); + context.lineTo(Math.floor(x1), Math.floor(fetti.wobbleY)); + } + + context.closePath(); + context.fill(); + + return fetti.tick < fetti.totalTicks; + } + + function animate(canvas, fettis, resizer, size, done) { + var animatingFettis = fettis.slice(); + var context = canvas.getContext('2d'); + var animationFrame; + var destroy; + + var prom = promise(function (resolve) { + function onDone() { + animationFrame = destroy = null; + + context.clearRect(0, 0, size.width, size.height); + bitmapMapper.clear(); + + done(); + resolve(); + } + + function update() { + if (isWorker && !(size.width === workerSize.width && size.height === workerSize.height)) { + size.width = canvas.width = workerSize.width; + size.height = canvas.height = workerSize.height; + } + + if (!size.width && !size.height) { + resizer(canvas); + size.width = canvas.width; + size.height = canvas.height; + } + + context.clearRect(0, 0, size.width, size.height); + + animatingFettis = animatingFettis.filter(function (fetti) { + return updateFetti(context, fetti); + }); + + if (animatingFettis.length) { + animationFrame = raf.frame(update); + } else { + onDone(); + } + } + + animationFrame = raf.frame(update); + destroy = onDone; + }); + + return { + addFettis: function (fettis) { + animatingFettis = animatingFettis.concat(fettis); + + return prom; + }, + canvas: canvas, + promise: prom, + reset: function () { + if (animationFrame) { + raf.cancel(animationFrame); + } + + if (destroy) { + destroy(); + } + } + }; + } + + function confettiCannon(canvas, globalOpts) { + var isLibCanvas = !canvas; + var allowResize = !!prop(globalOpts || {}, 'resize'); + var hasResizeEventRegistered = false; + var globalDisableForReducedMotion = prop(globalOpts, 'disableForReducedMotion', Boolean); + var shouldUseWorker = canUseWorker && !!prop(globalOpts || {}, 'useWorker'); + var worker = shouldUseWorker ? getWorker() : null; + var resizer = isLibCanvas ? setCanvasWindowSize : setCanvasRectSize; + var initialized = (canvas && worker) ? !!canvas.__confetti_initialized : false; + var preferLessMotion = typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion)').matches; + var animationObj; + + function fireLocal(options, size, done) { + var particleCount = prop(options, 'particleCount', onlyPositiveInt); + var angle = prop(options, 'angle', Number); + var spread = prop(options, 'spread', Number); + var startVelocity = prop(options, 'startVelocity', Number); + var decay = prop(options, 'decay', Number); + var gravity = prop(options, 'gravity', Number); + var drift = prop(options, 'drift', Number); + var colors = prop(options, 'colors', colorsToRgb); + var ticks = prop(options, 'ticks', Number); + var shapes = prop(options, 'shapes'); + var scalar = prop(options, 'scalar'); + var flat = !!prop(options, 'flat'); + var origin = getOrigin(options); + + var temp = particleCount; + var fettis = []; + + var startX = canvas.width * origin.x; + var startY = canvas.height * origin.y; + + while (temp--) { + fettis.push( + randomPhysics({ + x: startX, + y: startY, + angle: angle, + spread: spread, + startVelocity: startVelocity, + color: colors[temp % colors.length], + shape: shapes[randomInt(0, shapes.length)], + ticks: ticks, + decay: decay, + gravity: gravity, + drift: drift, + scalar: scalar, + flat: flat + }) + ); + } + + // if we have a previous canvas already animating, + // add to it + if (animationObj) { + return animationObj.addFettis(fettis); + } + + animationObj = animate(canvas, fettis, resizer, size , done); + + return animationObj.promise; + } + + function fire(options) { + var disableForReducedMotion = globalDisableForReducedMotion || prop(options, 'disableForReducedMotion', Boolean); + var zIndex = prop(options, 'zIndex', Number); + + if (disableForReducedMotion && preferLessMotion) { + return promise(function (resolve) { + resolve(); + }); + } + + if (isLibCanvas && animationObj) { + // use existing canvas from in-progress animation + canvas = animationObj.canvas; + } else if (isLibCanvas && !canvas) { + // create and initialize a new canvas + canvas = getCanvas(zIndex); + document.body.appendChild(canvas); + } + + if (allowResize && !initialized) { + // initialize the size of a user-supplied canvas + resizer(canvas); + } + + var size = { + width: canvas.width, + height: canvas.height + }; + + if (worker && !initialized) { + worker.init(canvas); + } + + initialized = true; + + if (worker) { + canvas.__confetti_initialized = true; + } + + function onResize() { + if (worker) { + // TODO this really shouldn't be immediate, because it is expensive + var obj = { + getBoundingClientRect: function () { + if (!isLibCanvas) { + return canvas.getBoundingClientRect(); + } + } + }; + + resizer(obj); + + worker.postMessage({ + resize: { + width: obj.width, + height: obj.height + } + }); + return; + } + + // don't actually query the size here, since this + // can execute frequently and rapidly + size.width = size.height = null; + } + + function done() { + animationObj = null; + + if (allowResize) { + hasResizeEventRegistered = false; + global.removeEventListener('resize', onResize); + } + + if (isLibCanvas && canvas) { + if (document.body.contains(canvas)) { + document.body.removeChild(canvas); + } + canvas = null; + initialized = false; + } + } + + if (allowResize && !hasResizeEventRegistered) { + hasResizeEventRegistered = true; + global.addEventListener('resize', onResize, false); + } + + if (worker) { + return worker.fire(options, size, done); + } + + return fireLocal(options, size, done); + } + + fire.reset = function () { + if (worker) { + worker.reset(); + } + + if (animationObj) { + animationObj.reset(); + } + }; + + return fire; + } + + // Make default export lazy to defer worker creation until called. + var defaultFire; + function getDefaultFire() { + if (!defaultFire) { + defaultFire = confettiCannon(null, { useWorker: true, resize: true }); + } + return defaultFire; + } + + function transformPath2D(pathString, pathMatrix, x, y, scaleX, scaleY, rotation) { + var path2d = new Path2D(pathString); + + var t1 = new Path2D(); + t1.addPath(path2d, new DOMMatrix(pathMatrix)); + + var t2 = new Path2D(); + // see https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix/DOMMatrix + t2.addPath(t1, new DOMMatrix([ + Math.cos(rotation) * scaleX, + Math.sin(rotation) * scaleX, + -Math.sin(rotation) * scaleY, + Math.cos(rotation) * scaleY, + x, + y + ])); + + return t2; + } + + function shapeFromPath(pathData) { + if (!canUsePaths) { + throw new Error('path confetti are not supported in this browser'); + } + + var path, matrix; + + if (typeof pathData === 'string') { + path = pathData; + } else { + path = pathData.path; + matrix = pathData.matrix; + } + + var path2d = new Path2D(path); + var tempCanvas = document.createElement('canvas'); + var tempCtx = tempCanvas.getContext('2d'); + + if (!matrix) { + // attempt to figure out the width of the path, up to 1000x1000 + var maxSize = 1000; + var minX = maxSize; + var minY = maxSize; + var maxX = 0; + var maxY = 0; + var width, height; + + // do some line skipping... this is faster than checking + // every pixel and will be mostly still correct + for (var x = 0; x < maxSize; x += 2) { + for (var y = 0; y < maxSize; y += 2) { + if (tempCtx.isPointInPath(path2d, x, y, 'nonzero')) { + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + } + + width = maxX - minX; + height = maxY - minY; + + var maxDesiredSize = 10; + var scale = Math.min(maxDesiredSize/width, maxDesiredSize/height); + + matrix = [ + scale, 0, 0, scale, + -Math.round((width/2) + minX) * scale, + -Math.round((height/2) + minY) * scale + ]; + } + + return { + type: 'path', + path: path, + matrix: matrix + }; + } + + function shapeFromText(textData) { + var text, + scalar = 1, + color = '#000000', + // see https://nolanlawson.com/2022/04/08/the-struggle-of-using-native-emoji-on-the-web/ + fontFamily = '"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", "EmojiOne Color", "Android Emoji", "Twemoji Mozilla", "system emoji", sans-serif'; + + if (typeof textData === 'string') { + text = textData; + } else { + text = textData.text; + scalar = 'scalar' in textData ? textData.scalar : scalar; + fontFamily = 'fontFamily' in textData ? textData.fontFamily : fontFamily; + color = 'color' in textData ? textData.color : color; + } + + // all other confetti are 10 pixels, + // so this pixel size is the de-facto 100% scale confetti + var fontSize = 10 * scalar; + var font = '' + fontSize + 'px ' + fontFamily; + + var canvas = new OffscreenCanvas(fontSize, fontSize); + var ctx = canvas.getContext('2d'); + + ctx.font = font; + var size = ctx.measureText(text); + var width = Math.ceil(size.actualBoundingBoxRight + size.actualBoundingBoxLeft); + var height = Math.ceil(size.actualBoundingBoxAscent + size.actualBoundingBoxDescent); + + var padding = 2; + var x = size.actualBoundingBoxLeft + padding; + var y = size.actualBoundingBoxAscent + padding; + width += padding + padding; + height += padding + padding; + + canvas = new OffscreenCanvas(width, height); + ctx = canvas.getContext('2d'); + ctx.font = font; + ctx.fillStyle = color; + + ctx.fillText(text, x, y); + + var scale = 1 / scalar; + + return { + type: 'bitmap', + // TODO these probably need to be transfered for workers + bitmap: canvas.transferToImageBitmap(), + matrix: [scale, 0, 0, scale, -width * scale / 2, -height * scale / 2] + }; + } + + module.exports = function() { + return getDefaultFire().apply(this, arguments); + }; + module.exports.reset = function() { + getDefaultFire().reset(); + }; + module.exports.create = confettiCannon; + module.exports.shapeFromPath = shapeFromPath; + module.exports.shapeFromText = shapeFromText; +}((function () { + if (typeof window !== 'undefined') { + return window; + } + + if (typeof self !== 'undefined') { + return self; + } + + return this || {}; +})(), module, false)); + +// end source content + + window.confetti = module.exports; +}(window, {})); + + /***/ }), /***/ "./node_modules/jquery-ui/ui/version.js": @@ -91670,6 +92567,7 @@ __webpack_require__.r(__webpack_exports__); /******/ // This entry module depends on other loaded chunks and execution need to be delayed /******/ __webpack_require__.O(undefined, ["css/dist/skins/skin-black-dark","css/dist/skins/_all-skins","css/build/overrides","css/build/app","css/build/AdminLTE","css/dist/skins/skin-yellow","css/dist/skins/skin-yellow-dark","css/dist/skins/skin-red","css/dist/skins/skin-red-dark","css/dist/skins/skin-purple","css/dist/skins/skin-purple-dark","css/dist/skins/skin-orange","css/dist/skins/skin-orange-dark","css/dist/skins/skin-green","css/dist/skins/skin-green-dark","css/dist/skins/skin-contrast","css/dist/skins/skin-blue","css/dist/skins/skin-blue-dark","css/dist/skins/skin-black"], () => (__webpack_require__("./resources/assets/js/snipeit.js"))) /******/ __webpack_require__.O(undefined, ["css/dist/skins/skin-black-dark","css/dist/skins/_all-skins","css/build/overrides","css/build/app","css/build/AdminLTE","css/dist/skins/skin-yellow","css/dist/skins/skin-yellow-dark","css/dist/skins/skin-red","css/dist/skins/skin-red-dark","css/dist/skins/skin-purple","css/dist/skins/skin-purple-dark","css/dist/skins/skin-orange","css/dist/skins/skin-orange-dark","css/dist/skins/skin-green","css/dist/skins/skin-green-dark","css/dist/skins/skin-contrast","css/dist/skins/skin-blue","css/dist/skins/skin-blue-dark","css/dist/skins/skin-black"], () => (__webpack_require__("./resources/assets/js/snipeit_modals.js"))) +/******/ __webpack_require__.O(undefined, ["css/dist/skins/skin-black-dark","css/dist/skins/_all-skins","css/build/overrides","css/build/app","css/build/AdminLTE","css/dist/skins/skin-yellow","css/dist/skins/skin-yellow-dark","css/dist/skins/skin-red","css/dist/skins/skin-red-dark","css/dist/skins/skin-purple","css/dist/skins/skin-purple-dark","css/dist/skins/skin-orange","css/dist/skins/skin-orange-dark","css/dist/skins/skin-green","css/dist/skins/skin-green-dark","css/dist/skins/skin-contrast","css/dist/skins/skin-blue","css/dist/skins/skin-blue-dark","css/dist/skins/skin-black"], () => (__webpack_require__("./node_modules/canvas-confetti/dist/confetti.browser.js"))) /******/ __webpack_require__.O(undefined, ["css/dist/skins/skin-black-dark","css/dist/skins/_all-skins","css/build/overrides","css/build/app","css/build/AdminLTE","css/dist/skins/skin-yellow","css/dist/skins/skin-yellow-dark","css/dist/skins/skin-red","css/dist/skins/skin-red-dark","css/dist/skins/skin-purple","css/dist/skins/skin-purple-dark","css/dist/skins/skin-orange","css/dist/skins/skin-orange-dark","css/dist/skins/skin-green","css/dist/skins/skin-green-dark","css/dist/skins/skin-contrast","css/dist/skins/skin-blue","css/dist/skins/skin-blue-dark","css/dist/skins/skin-black"], () => (__webpack_require__("./node_modules/admin-lte/build/less/AdminLTE.less"))) /******/ __webpack_require__.O(undefined, ["css/dist/skins/skin-black-dark","css/dist/skins/_all-skins","css/build/overrides","css/build/app","css/build/AdminLTE","css/dist/skins/skin-yellow","css/dist/skins/skin-yellow-dark","css/dist/skins/skin-red","css/dist/skins/skin-red-dark","css/dist/skins/skin-purple","css/dist/skins/skin-purple-dark","css/dist/skins/skin-orange","css/dist/skins/skin-orange-dark","css/dist/skins/skin-green","css/dist/skins/skin-green-dark","css/dist/skins/skin-contrast","css/dist/skins/skin-blue","css/dist/skins/skin-blue-dark","css/dist/skins/skin-black"], () => (__webpack_require__("./resources/assets/less/app.less"))) /******/ __webpack_require__.O(undefined, ["css/dist/skins/skin-black-dark","css/dist/skins/_all-skins","css/build/overrides","css/build/app","css/build/AdminLTE","css/dist/skins/skin-yellow","css/dist/skins/skin-yellow-dark","css/dist/skins/skin-red","css/dist/skins/skin-red-dark","css/dist/skins/skin-purple","css/dist/skins/skin-purple-dark","css/dist/skins/skin-orange","css/dist/skins/skin-orange-dark","css/dist/skins/skin-green","css/dist/skins/skin-green-dark","css/dist/skins/skin-contrast","css/dist/skins/skin-blue","css/dist/skins/skin-blue-dark","css/dist/skins/skin-black"], () => (__webpack_require__("./resources/assets/less/overrides.less"))) diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 934c1d82b..568d8a0bb 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,5 +1,5 @@ { - "/js/build/app.js": "/js/build/app.js?id=da3f7fee4a180ba924f6a3920c94eb71", + "/js/build/app.js": "/js/build/app.js?id=5030f4cb69d0d0b87b7fe6ba1b9eece9", "/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=f0b08873a06bb54daeee176a9459f4a9", "/css/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=f4397c717b99fce41a633ca6edd5d1f4", "/css/build/overrides.css": "/css/build/overrides.css?id=a759aa24710e294392877c5139fda40e", @@ -111,5 +111,5 @@ "/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=8abbb6aea625ec64cd7ebdad77ebf6e5", "/js/build/vendor.js": "/js/build/vendor.js?id=c1c24b883f48dc3d16b817aed0b457cc", "/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=859e11e4e6b05c84e4b7302de29bac5e", - "/js/dist/all.js": "/js/dist/all.js?id=ea6fb4f01f01c2194310403dafc1658f" + "/js/dist/all.js": "/js/dist/all.js?id=05654cea82a7a1b78cb20e449d004268" } diff --git a/resources/lang/en-US/account/general.php b/resources/lang/en-US/account/general.php index 967a9de57..7f9e2f848 100644 --- a/resources/lang/en-US/account/general.php +++ b/resources/lang/en-US/account/general.php @@ -13,4 +13,5 @@ return array( 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/views/account/profile.blade.php b/resources/views/account/profile.blade.php index 4f2c7aa55..a1d9e2b08 100755 --- a/resources/views/account/profile.blade.php +++ b/resources/views/account/profile.blade.php @@ -89,15 +89,24 @@
-
+
-
+
+
+ +
+
+
+@include ('partials.confetti-js') @endif @@ -44,6 +45,7 @@ {!! $message !!}
+ @include ('partials.confetti-js') @endif diff --git a/resources/views/partials/confetti-js.blade.php b/resources/views/partials/confetti-js.blade.php new file mode 100644 index 000000000..733d96d1b --- /dev/null +++ b/resources/views/partials/confetti-js.blade.php @@ -0,0 +1,25 @@ +@if (auth()->user() && auth()->user()->enable_confetti=='1') + +@endif \ No newline at end of file diff --git a/webpack.mix.js b/webpack.mix.js index fee66acfb..f4e0e69d5 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -65,6 +65,7 @@ mix [ "./resources/assets/js/snipeit.js", //this is the actual Snipe-IT JS - require()s bootstrap.js "./resources/assets/js/snipeit_modals.js", + "./node_modules/canvas-confetti/dist/confetti.browser.js", ], "./public/js/build/app.js" //because of compiling - this does not work very well :( ) From 6216b4fc0dcfa2d870197faca6b3b468e5d4aeee Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 11:35:56 +0100 Subject: [PATCH 061/224] Use native browser control for required in addition to the css effect Signed-off-by: snipe --- resources/views/account/profile.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/account/profile.blade.php b/resources/views/account/profile.blade.php index a1d9e2b08..aecd8a4c1 100755 --- a/resources/views/account/profile.blade.php +++ b/resources/views/account/profile.blade.php @@ -20,7 +20,7 @@
- + {!! $errors->first('first_name', '') !!}
From b917489f007dfaca03a9fba6b0a78fa581b78420 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 12:10:41 +0100 Subject: [PATCH 062/224] Corrected string Signed-off-by: snipe --- resources/lang/en-US/admin/locations/message.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/lang/en-US/admin/locations/message.php b/resources/lang/en-US/admin/locations/message.php index 8121b8068..6226c71ab 100644 --- a/resources/lang/en-US/admin/locations/message.php +++ b/resources/lang/en-US/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Location does not exist.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'This location is currently associated with at least one asset and cannot be deleted. Please update your assets to no longer reference this location and try again. ', 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', From dd458dfa7f13f41e5378d3412344d69ff5a82edf Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 12:21:06 +0100 Subject: [PATCH 063/224] Updated strings Signed-off-by: snipe --- resources/lang/aa-ER/account/general.php | 2 + .../lang/aa-ER/admin/locations/message.php | 2 +- .../lang/aa-ER/admin/settings/general.php | 2 + .../lang/aa-ER/admin/settings/message.php | 3 + resources/lang/aa-ER/button.php | 2 +- resources/lang/aa-ER/general.php | 29 +++--- resources/lang/aa-ER/localizations.php | 4 +- resources/lang/aa-ER/validation.php | 4 + resources/lang/af-ZA/account/general.php | 2 + .../lang/af-ZA/admin/locations/message.php | 2 +- .../lang/af-ZA/admin/settings/general.php | 2 + .../lang/af-ZA/admin/settings/message.php | 3 + resources/lang/af-ZA/button.php | 2 +- resources/lang/af-ZA/general.php | 29 +++--- resources/lang/af-ZA/localizations.php | 4 +- resources/lang/af-ZA/validation.php | 4 + resources/lang/am-ET/account/general.php | 2 + .../lang/am-ET/admin/locations/message.php | 2 +- .../lang/am-ET/admin/settings/general.php | 2 + .../lang/am-ET/admin/settings/message.php | 3 + resources/lang/am-ET/button.php | 2 +- resources/lang/am-ET/general.php | 29 +++--- resources/lang/am-ET/localizations.php | 4 +- resources/lang/am-ET/validation.php | 4 + resources/lang/ar-SA/account/general.php | 2 + .../lang/ar-SA/admin/locations/message.php | 2 +- .../lang/ar-SA/admin/settings/general.php | 2 + .../lang/ar-SA/admin/settings/message.php | 3 + resources/lang/ar-SA/button.php | 2 +- resources/lang/ar-SA/general.php | 29 +++--- resources/lang/ar-SA/localizations.php | 4 +- resources/lang/ar-SA/validation.php | 4 + resources/lang/bg-BG/account/general.php | 2 + .../lang/bg-BG/admin/accessories/message.php | 2 +- .../lang/bg-BG/admin/consumables/general.php | 2 +- .../lang/bg-BG/admin/locations/message.php | 2 +- .../lang/bg-BG/admin/settings/general.php | 2 + .../lang/bg-BG/admin/settings/message.php | 3 + resources/lang/bg-BG/button.php | 2 +- resources/lang/bg-BG/general.php | 17 ++-- resources/lang/bg-BG/localizations.php | 4 +- resources/lang/bg-BG/validation.php | 4 + resources/lang/ca-ES/account/general.php | 2 + .../lang/ca-ES/admin/locations/message.php | 2 +- .../lang/ca-ES/admin/settings/general.php | 2 + .../lang/ca-ES/admin/settings/message.php | 3 + resources/lang/ca-ES/button.php | 2 +- resources/lang/ca-ES/general.php | 29 +++--- resources/lang/ca-ES/localizations.php | 4 +- resources/lang/ca-ES/validation.php | 4 + resources/lang/chr-US/account/general.php | 2 + .../lang/chr-US/admin/locations/message.php | 2 +- .../lang/chr-US/admin/settings/general.php | 2 + .../lang/chr-US/admin/settings/message.php | 3 + resources/lang/chr-US/button.php | 2 +- resources/lang/chr-US/general.php | 29 +++--- resources/lang/chr-US/localizations.php | 4 +- resources/lang/chr-US/validation.php | 4 + resources/lang/cs-CZ/account/general.php | 2 + .../lang/cs-CZ/admin/locations/message.php | 2 +- .../lang/cs-CZ/admin/settings/general.php | 2 + .../lang/cs-CZ/admin/settings/message.php | 3 + resources/lang/cs-CZ/button.php | 2 +- resources/lang/cs-CZ/general.php | 29 +++--- resources/lang/cs-CZ/localizations.php | 4 +- resources/lang/cs-CZ/validation.php | 4 + resources/lang/cy-GB/account/general.php | 2 + .../lang/cy-GB/admin/locations/message.php | 2 +- .../lang/cy-GB/admin/settings/general.php | 2 + .../lang/cy-GB/admin/settings/message.php | 3 + resources/lang/cy-GB/button.php | 2 +- resources/lang/cy-GB/general.php | 29 +++--- resources/lang/cy-GB/localizations.php | 4 +- resources/lang/cy-GB/validation.php | 4 + resources/lang/da-DK/account/general.php | 2 + .../lang/da-DK/admin/locations/message.php | 2 +- .../lang/da-DK/admin/settings/general.php | 2 + .../lang/da-DK/admin/settings/message.php | 3 + resources/lang/da-DK/button.php | 2 +- resources/lang/da-DK/general.php | 29 +++--- resources/lang/da-DK/localizations.php | 4 +- resources/lang/da-DK/validation.php | 4 + resources/lang/de-DE/account/general.php | 2 + .../lang/de-DE/admin/accessories/message.php | 2 +- .../lang/de-DE/admin/locations/message.php | 2 +- .../lang/de-DE/admin/settings/general.php | 4 +- .../lang/de-DE/admin/settings/message.php | 3 + resources/lang/de-DE/button.php | 2 +- resources/lang/de-DE/general.php | 35 +++---- resources/lang/de-DE/localizations.php | 4 +- resources/lang/de-DE/mail.php | 2 +- resources/lang/de-DE/validation.php | 4 + resources/lang/de-if/account/general.php | 2 + .../lang/de-if/admin/locations/message.php | 2 +- .../lang/de-if/admin/settings/general.php | 4 +- .../lang/de-if/admin/settings/message.php | 3 + resources/lang/de-if/button.php | 2 +- resources/lang/de-if/general.php | 37 ++++---- resources/lang/de-if/localizations.php | 4 +- resources/lang/de-if/mail.php | 2 +- resources/lang/de-if/validation.php | 4 + resources/lang/el-GR/account/general.php | 2 + .../lang/el-GR/admin/locations/message.php | 2 +- .../lang/el-GR/admin/settings/general.php | 2 + .../lang/el-GR/admin/settings/message.php | 3 + resources/lang/el-GR/button.php | 2 +- resources/lang/el-GR/general.php | 29 +++--- resources/lang/el-GR/localizations.php | 4 +- resources/lang/el-GR/validation.php | 4 + resources/lang/en-GB/account/general.php | 2 + .../lang/en-GB/admin/locations/message.php | 2 +- .../lang/en-GB/admin/settings/general.php | 2 + .../lang/en-GB/admin/settings/message.php | 3 + resources/lang/en-GB/button.php | 2 +- resources/lang/en-GB/general.php | 29 +++--- resources/lang/en-GB/localizations.php | 4 +- resources/lang/en-GB/validation.php | 4 + resources/lang/en-ID/account/general.php | 2 + .../lang/en-ID/admin/locations/message.php | 2 +- resources/lang/en-ID/admin/models/message.php | 2 +- .../lang/en-ID/admin/settings/general.php | 2 + .../lang/en-ID/admin/settings/message.php | 3 + resources/lang/en-ID/button.php | 2 +- resources/lang/en-ID/general.php | 9 +- resources/lang/en-ID/localizations.php | 4 +- resources/lang/en-ID/validation.php | 4 + resources/lang/en-US/admin/models/message.php | 2 +- .../lang/en-US/admin/settings/message.php | 2 +- resources/lang/en-US/general.php | 8 +- resources/lang/es-CO/account/general.php | 4 +- .../lang/es-CO/admin/accessories/message.php | 2 +- .../lang/es-CO/admin/companies/message.php | 2 +- .../es-CO/admin/custom_fields/general.php | 2 +- .../lang/es-CO/admin/departments/table.php | 2 +- .../lang/es-CO/admin/hardware/general.php | 8 +- .../lang/es-CO/admin/hardware/message.php | 8 +- resources/lang/es-CO/admin/kits/general.php | 10 +- resources/lang/es-CO/admin/labels/message.php | 6 +- .../lang/es-CO/admin/licenses/message.php | 2 +- .../lang/es-CO/admin/locations/message.php | 4 +- .../lang/es-CO/admin/locations/table.php | 8 +- .../lang/es-CO/admin/settings/general.php | 16 ++-- .../lang/es-CO/admin/settings/message.php | 3 + .../lang/es-CO/admin/suppliers/table.php | 2 +- resources/lang/es-CO/admin/users/general.php | 2 +- resources/lang/es-CO/admin/users/message.php | 4 +- resources/lang/es-CO/admin/users/table.php | 8 +- resources/lang/es-CO/auth/message.php | 8 +- resources/lang/es-CO/button.php | 2 +- resources/lang/es-CO/general.php | 69 +++++++------- resources/lang/es-CO/help.php | 2 +- resources/lang/es-CO/localizations.php | 4 +- resources/lang/es-CO/mail.php | 8 +- resources/lang/es-CO/reminders.php | 2 +- resources/lang/es-CO/validation.php | 4 + resources/lang/es-ES/account/general.php | 4 +- .../lang/es-ES/admin/accessories/message.php | 2 +- .../es-ES/admin/custom_fields/general.php | 2 +- .../lang/es-ES/admin/departments/table.php | 2 +- .../lang/es-ES/admin/hardware/general.php | 8 +- .../lang/es-ES/admin/hardware/message.php | 4 +- resources/lang/es-ES/admin/kits/general.php | 10 +- resources/lang/es-ES/admin/labels/message.php | 6 +- .../lang/es-ES/admin/licenses/message.php | 2 +- resources/lang/es-ES/admin/licenses/table.php | 2 +- .../lang/es-ES/admin/locations/message.php | 4 +- .../lang/es-ES/admin/locations/table.php | 8 +- .../lang/es-ES/admin/settings/general.php | 18 ++-- .../lang/es-ES/admin/settings/message.php | 3 + .../lang/es-ES/admin/suppliers/table.php | 2 +- resources/lang/es-ES/admin/users/message.php | 6 +- resources/lang/es-ES/admin/users/table.php | 10 +- resources/lang/es-ES/auth/message.php | 10 +- resources/lang/es-ES/button.php | 2 +- resources/lang/es-ES/general.php | 75 +++++++-------- resources/lang/es-ES/help.php | 2 +- resources/lang/es-ES/localizations.php | 4 +- resources/lang/es-ES/mail.php | 8 +- resources/lang/es-ES/reminders.php | 2 +- resources/lang/es-ES/validation.php | 6 +- resources/lang/es-MX/account/general.php | 4 +- .../lang/es-MX/admin/accessories/message.php | 2 +- .../es-MX/admin/custom_fields/general.php | 4 +- .../lang/es-MX/admin/departments/table.php | 2 +- .../lang/es-MX/admin/hardware/general.php | 8 +- .../lang/es-MX/admin/hardware/message.php | 4 +- resources/lang/es-MX/admin/kits/general.php | 10 +- resources/lang/es-MX/admin/labels/message.php | 6 +- .../lang/es-MX/admin/licenses/message.php | 2 +- resources/lang/es-MX/admin/licenses/table.php | 2 +- .../lang/es-MX/admin/locations/message.php | 4 +- .../lang/es-MX/admin/locations/table.php | 4 +- .../lang/es-MX/admin/settings/general.php | 18 ++-- .../lang/es-MX/admin/settings/message.php | 3 + .../lang/es-MX/admin/suppliers/table.php | 2 +- resources/lang/es-MX/admin/users/message.php | 6 +- resources/lang/es-MX/admin/users/table.php | 10 +- resources/lang/es-MX/auth/message.php | 10 +- resources/lang/es-MX/button.php | 2 +- resources/lang/es-MX/general.php | 73 +++++++-------- resources/lang/es-MX/help.php | 2 +- resources/lang/es-MX/localizations.php | 4 +- resources/lang/es-MX/mail.php | 8 +- resources/lang/es-MX/reminders.php | 2 +- resources/lang/es-MX/validation.php | 4 + resources/lang/es-VE/account/general.php | 4 +- .../lang/es-VE/admin/accessories/message.php | 2 +- .../es-VE/admin/custom_fields/general.php | 2 +- .../lang/es-VE/admin/departments/table.php | 2 +- .../lang/es-VE/admin/hardware/general.php | 6 +- .../lang/es-VE/admin/hardware/message.php | 4 +- resources/lang/es-VE/admin/kits/general.php | 10 +- resources/lang/es-VE/admin/labels/message.php | 6 +- .../lang/es-VE/admin/licenses/message.php | 2 +- .../lang/es-VE/admin/locations/message.php | 4 +- .../lang/es-VE/admin/locations/table.php | 8 +- .../lang/es-VE/admin/settings/general.php | 22 +++-- .../lang/es-VE/admin/settings/message.php | 3 + .../lang/es-VE/admin/suppliers/table.php | 2 +- resources/lang/es-VE/admin/users/message.php | 10 +- resources/lang/es-VE/admin/users/table.php | 16 ++-- resources/lang/es-VE/auth/general.php | 2 +- resources/lang/es-VE/auth/message.php | 8 +- resources/lang/es-VE/button.php | 2 +- resources/lang/es-VE/general.php | 69 +++++++------- resources/lang/es-VE/help.php | 2 +- resources/lang/es-VE/localizations.php | 4 +- resources/lang/es-VE/mail.php | 8 +- resources/lang/es-VE/reminders.php | 2 +- resources/lang/es-VE/validation.php | 4 + resources/lang/et-EE/account/general.php | 2 + .../lang/et-EE/admin/locations/message.php | 2 +- .../lang/et-EE/admin/settings/general.php | 2 + .../lang/et-EE/admin/settings/message.php | 3 + resources/lang/et-EE/button.php | 2 +- resources/lang/et-EE/general.php | 29 +++--- resources/lang/et-EE/localizations.php | 4 +- resources/lang/et-EE/validation.php | 8 +- resources/lang/fa-IR/account/general.php | 2 + .../lang/fa-IR/admin/locations/message.php | 2 +- .../lang/fa-IR/admin/settings/general.php | 2 + .../lang/fa-IR/admin/settings/message.php | 3 + resources/lang/fa-IR/button.php | 2 +- resources/lang/fa-IR/general.php | 33 +++---- resources/lang/fa-IR/localizations.php | 4 +- resources/lang/fa-IR/validation.php | 4 + resources/lang/fi-FI/account/general.php | 2 + .../lang/fi-FI/admin/locations/message.php | 2 +- .../lang/fi-FI/admin/settings/general.php | 2 + .../lang/fi-FI/admin/settings/message.php | 3 + resources/lang/fi-FI/button.php | 2 +- resources/lang/fi-FI/general.php | 29 +++--- resources/lang/fi-FI/localizations.php | 4 +- resources/lang/fi-FI/validation.php | 4 + resources/lang/fil-PH/account/general.php | 2 + .../lang/fil-PH/admin/locations/message.php | 2 +- .../lang/fil-PH/admin/settings/general.php | 2 + .../lang/fil-PH/admin/settings/message.php | 3 + resources/lang/fil-PH/button.php | 2 +- resources/lang/fil-PH/general.php | 29 +++--- resources/lang/fil-PH/localizations.php | 4 +- resources/lang/fil-PH/validation.php | 4 + resources/lang/fr-FR/account/general.php | 10 +- .../lang/fr-FR/admin/accessories/message.php | 2 +- .../lang/fr-FR/admin/consumables/general.php | 2 +- .../lang/fr-FR/admin/consumables/message.php | 2 +- .../fr-FR/admin/custom_fields/message.php | 2 +- resources/lang/fr-FR/admin/hardware/form.php | 2 +- .../lang/fr-FR/admin/hardware/message.php | 4 +- .../lang/fr-FR/admin/licenses/general.php | 6 +- .../lang/fr-FR/admin/licenses/message.php | 4 +- .../lang/fr-FR/admin/locations/message.php | 2 +- resources/lang/fr-FR/admin/models/message.php | 2 +- .../lang/fr-FR/admin/settings/general.php | 30 +++--- .../lang/fr-FR/admin/settings/message.php | 3 + resources/lang/fr-FR/button.php | 16 ++-- resources/lang/fr-FR/general.php | 27 +++--- resources/lang/fr-FR/localizations.php | 4 +- resources/lang/fr-FR/mail.php | 6 +- resources/lang/fr-FR/validation.php | 60 ++++++------ resources/lang/ga-IE/account/general.php | 2 + .../lang/ga-IE/admin/locations/message.php | 2 +- .../lang/ga-IE/admin/settings/general.php | 2 + .../lang/ga-IE/admin/settings/message.php | 3 + resources/lang/ga-IE/button.php | 2 +- resources/lang/ga-IE/general.php | 29 +++--- resources/lang/ga-IE/localizations.php | 4 +- resources/lang/ga-IE/validation.php | 4 + resources/lang/he-IL/account/general.php | 2 + .../lang/he-IL/admin/locations/message.php | 2 +- .../lang/he-IL/admin/settings/general.php | 2 + .../lang/he-IL/admin/settings/message.php | 3 + resources/lang/he-IL/button.php | 2 +- resources/lang/he-IL/general.php | 29 +++--- resources/lang/he-IL/localizations.php | 4 +- resources/lang/he-IL/validation.php | 4 + resources/lang/hr-HR/account/general.php | 2 + .../lang/hr-HR/admin/locations/message.php | 2 +- .../lang/hr-HR/admin/settings/general.php | 2 + .../lang/hr-HR/admin/settings/message.php | 3 + resources/lang/hr-HR/button.php | 2 +- resources/lang/hr-HR/general.php | 29 +++--- resources/lang/hr-HR/localizations.php | 4 +- resources/lang/hr-HR/validation.php | 4 + resources/lang/hu-HU/account/general.php | 2 + .../lang/hu-HU/admin/locations/message.php | 2 +- .../lang/hu-HU/admin/settings/general.php | 2 + .../lang/hu-HU/admin/settings/message.php | 3 + resources/lang/hu-HU/button.php | 2 +- resources/lang/hu-HU/general.php | 29 +++--- resources/lang/hu-HU/localizations.php | 4 +- resources/lang/hu-HU/validation.php | 4 + resources/lang/id-ID/account/general.php | 2 + .../lang/id-ID/admin/locations/message.php | 2 +- .../lang/id-ID/admin/settings/general.php | 2 + .../lang/id-ID/admin/settings/message.php | 3 + resources/lang/id-ID/button.php | 2 +- resources/lang/id-ID/general.php | 29 +++--- resources/lang/id-ID/localizations.php | 4 +- resources/lang/id-ID/validation.php | 4 + resources/lang/is-IS/account/general.php | 2 + .../lang/is-IS/admin/locations/message.php | 2 +- .../lang/is-IS/admin/settings/general.php | 2 + .../lang/is-IS/admin/settings/message.php | 3 + resources/lang/is-IS/button.php | 2 +- resources/lang/is-IS/general.php | 29 +++--- resources/lang/is-IS/localizations.php | 4 +- resources/lang/is-IS/validation.php | 4 + resources/lang/it-IT/account/general.php | 2 + .../lang/it-IT/admin/locations/message.php | 2 +- .../lang/it-IT/admin/settings/general.php | 2 + .../lang/it-IT/admin/settings/message.php | 3 + resources/lang/it-IT/button.php | 2 +- resources/lang/it-IT/general.php | 29 +++--- resources/lang/it-IT/localizations.php | 4 +- resources/lang/it-IT/validation.php | 4 + resources/lang/iu-NU/account/general.php | 2 + .../lang/iu-NU/admin/locations/message.php | 2 +- .../lang/iu-NU/admin/settings/general.php | 2 + .../lang/iu-NU/admin/settings/message.php | 3 + resources/lang/iu-NU/button.php | 2 +- resources/lang/iu-NU/general.php | 29 +++--- resources/lang/iu-NU/localizations.php | 4 +- resources/lang/iu-NU/validation.php | 4 + resources/lang/ja-JP/account/general.php | 2 + .../lang/ja-JP/admin/locations/message.php | 2 +- .../lang/ja-JP/admin/settings/general.php | 2 + .../lang/ja-JP/admin/settings/message.php | 3 + resources/lang/ja-JP/button.php | 2 +- resources/lang/ja-JP/general.php | 29 +++--- resources/lang/ja-JP/localizations.php | 4 +- resources/lang/ja-JP/validation.php | 4 + resources/lang/km-KH/account/general.php | 2 + .../lang/km-KH/admin/locations/message.php | 2 +- .../lang/km-KH/admin/settings/general.php | 2 + .../lang/km-KH/admin/settings/message.php | 3 + resources/lang/km-KH/button.php | 2 +- resources/lang/km-KH/general.php | 29 +++--- resources/lang/km-KH/localizations.php | 4 +- resources/lang/km-KH/validation.php | 4 + resources/lang/ko-KR/account/general.php | 2 + .../lang/ko-KR/admin/locations/message.php | 2 +- .../lang/ko-KR/admin/settings/general.php | 2 + .../lang/ko-KR/admin/settings/message.php | 3 + resources/lang/ko-KR/button.php | 2 +- resources/lang/ko-KR/general.php | 29 +++--- resources/lang/ko-KR/localizations.php | 4 +- resources/lang/ko-KR/validation.php | 4 + resources/lang/lt-LT/account/general.php | 2 + .../lt-LT/admin/depreciations/message.php | 2 +- resources/lang/lt-LT/admin/groups/message.php | 2 +- resources/lang/lt-LT/admin/groups/table.php | 2 +- resources/lang/lt-LT/admin/hardware/form.php | 2 +- .../lang/lt-LT/admin/hardware/general.php | 14 +-- .../lang/lt-LT/admin/locations/message.php | 2 +- .../lang/lt-LT/admin/locations/table.php | 2 +- .../lang/lt-LT/admin/settings/general.php | 6 +- .../lang/lt-LT/admin/settings/message.php | 3 + resources/lang/lt-LT/admin/users/general.php | 4 +- resources/lang/lt-LT/admin/users/table.php | 2 +- resources/lang/lt-LT/button.php | 6 +- resources/lang/lt-LT/general.php | 91 ++++++++++--------- resources/lang/lt-LT/localizations.php | 4 +- resources/lang/lt-LT/mail.php | 16 ++-- resources/lang/lt-LT/reminders.php | 2 +- resources/lang/lt-LT/table.php | 2 +- resources/lang/lt-LT/validation.php | 4 + resources/lang/lv-LV/account/general.php | 2 + .../lang/lv-LV/admin/locations/message.php | 2 +- .../lang/lv-LV/admin/settings/general.php | 2 + .../lang/lv-LV/admin/settings/message.php | 3 + resources/lang/lv-LV/button.php | 2 +- resources/lang/lv-LV/general.php | 29 +++--- resources/lang/lv-LV/localizations.php | 4 +- resources/lang/lv-LV/validation.php | 4 + resources/lang/mi-NZ/account/general.php | 2 + .../lang/mi-NZ/admin/locations/message.php | 2 +- .../lang/mi-NZ/admin/settings/general.php | 2 + .../lang/mi-NZ/admin/settings/message.php | 3 + resources/lang/mi-NZ/button.php | 2 +- resources/lang/mi-NZ/general.php | 29 +++--- resources/lang/mi-NZ/localizations.php | 4 +- resources/lang/mi-NZ/validation.php | 4 + resources/lang/mk-MK/account/general.php | 2 + .../lang/mk-MK/admin/locations/message.php | 2 +- .../lang/mk-MK/admin/settings/general.php | 2 + .../lang/mk-MK/admin/settings/message.php | 3 + resources/lang/mk-MK/button.php | 2 +- resources/lang/mk-MK/general.php | 29 +++--- resources/lang/mk-MK/localizations.php | 4 +- resources/lang/mk-MK/validation.php | 4 + resources/lang/ml-IN/account/general.php | 2 + .../lang/ml-IN/admin/locations/message.php | 2 +- .../lang/ml-IN/admin/settings/general.php | 2 + .../lang/ml-IN/admin/settings/message.php | 3 + resources/lang/ml-IN/button.php | 2 +- resources/lang/ml-IN/general.php | 29 +++--- resources/lang/ml-IN/localizations.php | 4 +- resources/lang/ml-IN/validation.php | 4 + resources/lang/mn-MN/account/general.php | 2 + .../lang/mn-MN/admin/locations/message.php | 2 +- .../lang/mn-MN/admin/settings/general.php | 2 + .../lang/mn-MN/admin/settings/message.php | 3 + resources/lang/mn-MN/button.php | 2 +- resources/lang/mn-MN/general.php | 29 +++--- resources/lang/mn-MN/localizations.php | 4 +- resources/lang/mn-MN/validation.php | 4 + resources/lang/ms-MY/account/general.php | 2 + .../lang/ms-MY/admin/locations/message.php | 2 +- .../lang/ms-MY/admin/settings/general.php | 2 + .../lang/ms-MY/admin/settings/message.php | 3 + resources/lang/ms-MY/button.php | 2 +- resources/lang/ms-MY/general.php | 29 +++--- resources/lang/ms-MY/localizations.php | 4 +- resources/lang/ms-MY/validation.php | 4 + resources/lang/nb-NO/account/general.php | 2 + .../lang/nb-NO/admin/locations/message.php | 2 +- .../lang/nb-NO/admin/settings/general.php | 2 + .../lang/nb-NO/admin/settings/message.php | 3 + resources/lang/nb-NO/button.php | 2 +- resources/lang/nb-NO/general.php | 29 +++--- resources/lang/nb-NO/localizations.php | 4 +- resources/lang/nb-NO/validation.php | 4 + resources/lang/nl-NL/account/general.php | 2 + .../lang/nl-NL/admin/locations/message.php | 2 +- .../lang/nl-NL/admin/settings/general.php | 2 + .../lang/nl-NL/admin/settings/message.php | 3 + resources/lang/nl-NL/button.php | 2 +- resources/lang/nl-NL/general.php | 29 +++--- resources/lang/nl-NL/localizations.php | 4 +- resources/lang/nl-NL/validation.php | 4 + resources/lang/nn-NO/account/general.php | 2 + .../lang/nn-NO/admin/locations/message.php | 2 +- .../lang/nn-NO/admin/settings/general.php | 2 + .../lang/nn-NO/admin/settings/message.php | 3 + resources/lang/nn-NO/button.php | 2 +- resources/lang/nn-NO/general.php | 29 +++--- resources/lang/nn-NO/localizations.php | 4 +- resources/lang/nn-NO/validation.php | 4 + resources/lang/no-NO/account/general.php | 2 + .../lang/no-NO/admin/locations/message.php | 2 +- .../lang/no-NO/admin/settings/general.php | 2 + .../lang/no-NO/admin/settings/message.php | 3 + resources/lang/no-NO/button.php | 2 +- resources/lang/no-NO/general.php | 29 +++--- resources/lang/no-NO/localizations.php | 4 +- resources/lang/no-NO/validation.php | 4 + resources/lang/pl-PL/account/general.php | 8 +- .../lang/pl-PL/admin/hardware/message.php | 8 +- .../lang/pl-PL/admin/locations/message.php | 2 +- resources/lang/pl-PL/admin/models/message.php | 2 +- .../lang/pl-PL/admin/settings/general.php | 2 + .../lang/pl-PL/admin/settings/message.php | 3 + resources/lang/pl-PL/button.php | 2 +- resources/lang/pl-PL/general.php | 27 +++--- resources/lang/pl-PL/localizations.php | 4 +- resources/lang/pl-PL/validation.php | 4 + resources/lang/pt-BR/account/general.php | 2 + .../lang/pt-BR/admin/locations/message.php | 2 +- .../lang/pt-BR/admin/settings/general.php | 2 + .../lang/pt-BR/admin/settings/message.php | 3 + resources/lang/pt-BR/button.php | 8 +- resources/lang/pt-BR/general.php | 23 ++--- resources/lang/pt-BR/localizations.php | 4 +- resources/lang/pt-BR/validation.php | 18 ++-- resources/lang/pt-PT/account/general.php | 2 + .../lang/pt-PT/admin/locations/message.php | 2 +- .../lang/pt-PT/admin/settings/general.php | 2 + .../lang/pt-PT/admin/settings/message.php | 3 + resources/lang/pt-PT/button.php | 2 +- resources/lang/pt-PT/general.php | 29 +++--- resources/lang/pt-PT/localizations.php | 4 +- resources/lang/pt-PT/validation.php | 4 + resources/lang/ro-RO/account/general.php | 2 + .../lang/ro-RO/admin/locations/message.php | 2 +- .../lang/ro-RO/admin/settings/general.php | 2 + .../lang/ro-RO/admin/settings/message.php | 3 + resources/lang/ro-RO/button.php | 2 +- resources/lang/ro-RO/general.php | 29 +++--- resources/lang/ro-RO/localizations.php | 4 +- resources/lang/ro-RO/validation.php | 4 + resources/lang/ru-RU/account/general.php | 2 + .../lang/ru-RU/admin/locations/message.php | 2 +- .../lang/ru-RU/admin/settings/general.php | 2 + .../lang/ru-RU/admin/settings/message.php | 3 + resources/lang/ru-RU/button.php | 2 +- resources/lang/ru-RU/general.php | 29 +++--- resources/lang/ru-RU/localizations.php | 4 +- resources/lang/ru-RU/validation.php | 4 + resources/lang/si-LK/account/general.php | 2 + .../lang/si-LK/admin/locations/message.php | 2 +- .../lang/si-LK/admin/settings/general.php | 2 + .../lang/si-LK/admin/settings/message.php | 3 + resources/lang/si-LK/button.php | 2 +- resources/lang/si-LK/general.php | 31 ++++--- resources/lang/si-LK/localizations.php | 4 +- resources/lang/si-LK/validation.php | 4 + resources/lang/sk-SK/account/general.php | 2 + .../lang/sk-SK/admin/locations/message.php | 2 +- .../lang/sk-SK/admin/settings/general.php | 2 + .../lang/sk-SK/admin/settings/message.php | 3 + resources/lang/sk-SK/button.php | 2 +- resources/lang/sk-SK/general.php | 29 +++--- resources/lang/sk-SK/localizations.php | 4 +- resources/lang/sk-SK/validation.php | 4 + resources/lang/sl-SI/account/general.php | 2 + .../lang/sl-SI/admin/locations/message.php | 2 +- .../lang/sl-SI/admin/settings/general.php | 2 + .../lang/sl-SI/admin/settings/message.php | 3 + resources/lang/sl-SI/button.php | 2 +- resources/lang/sl-SI/general.php | 29 +++--- resources/lang/sl-SI/localizations.php | 4 +- resources/lang/sl-SI/validation.php | 4 + resources/lang/so-SO/account/general.php | 2 + .../lang/so-SO/admin/locations/message.php | 2 +- .../lang/so-SO/admin/settings/general.php | 2 + .../lang/so-SO/admin/settings/message.php | 3 + resources/lang/so-SO/button.php | 2 +- resources/lang/so-SO/general.php | 29 +++--- resources/lang/so-SO/localizations.php | 4 +- resources/lang/so-SO/validation.php | 4 + resources/lang/sq-AL/account/general.php | 2 + .../lang/sq-AL/admin/locations/message.php | 2 +- .../lang/sq-AL/admin/settings/general.php | 2 + .../lang/sq-AL/admin/settings/message.php | 3 + resources/lang/sq-AL/button.php | 2 +- resources/lang/sq-AL/general.php | 29 +++--- resources/lang/sq-AL/localizations.php | 4 +- resources/lang/sq-AL/validation.php | 4 + resources/lang/sr-CS/account/general.php | 2 + .../lang/sr-CS/admin/locations/message.php | 2 +- .../lang/sr-CS/admin/settings/general.php | 2 + .../lang/sr-CS/admin/settings/message.php | 3 + resources/lang/sr-CS/button.php | 2 +- resources/lang/sr-CS/general.php | 17 ++-- resources/lang/sr-CS/localizations.php | 4 +- resources/lang/sr-CS/validation.php | 4 + resources/lang/sv-SE/account/general.php | 2 + .../lang/sv-SE/admin/locations/message.php | 2 +- .../lang/sv-SE/admin/settings/general.php | 2 + .../lang/sv-SE/admin/settings/message.php | 3 + resources/lang/sv-SE/button.php | 2 +- resources/lang/sv-SE/general.php | 29 +++--- resources/lang/sv-SE/localizations.php | 4 +- resources/lang/sv-SE/validation.php | 4 + resources/lang/ta-IN/account/general.php | 2 + .../lang/ta-IN/admin/locations/message.php | 2 +- .../lang/ta-IN/admin/settings/general.php | 2 + .../lang/ta-IN/admin/settings/message.php | 3 + resources/lang/ta-IN/button.php | 2 +- resources/lang/ta-IN/general.php | 29 +++--- resources/lang/ta-IN/localizations.php | 4 +- resources/lang/ta-IN/validation.php | 4 + resources/lang/th-TH/account/general.php | 2 + .../lang/th-TH/admin/accessories/message.php | 6 +- .../lang/th-TH/admin/categories/general.php | 4 +- .../lang/th-TH/admin/categories/message.php | 2 +- .../lang/th-TH/admin/companies/table.php | 4 +- .../lang/th-TH/admin/components/general.php | 2 +- .../lang/th-TH/admin/locations/message.php | 2 +- .../lang/th-TH/admin/settings/general.php | 2 + .../lang/th-TH/admin/settings/message.php | 3 + resources/lang/th-TH/button.php | 2 +- resources/lang/th-TH/general.php | 29 +++--- resources/lang/th-TH/localizations.php | 4 +- resources/lang/th-TH/validation.php | 4 + resources/lang/tl-PH/account/general.php | 2 + .../lang/tl-PH/admin/locations/message.php | 2 +- .../lang/tl-PH/admin/settings/general.php | 2 + .../lang/tl-PH/admin/settings/message.php | 3 + resources/lang/tl-PH/button.php | 2 +- resources/lang/tl-PH/general.php | 29 +++--- resources/lang/tl-PH/localizations.php | 4 +- resources/lang/tl-PH/validation.php | 4 + resources/lang/tr-TR/account/general.php | 2 + .../lang/tr-TR/admin/licenses/message.php | 2 +- .../lang/tr-TR/admin/locations/message.php | 2 +- .../lang/tr-TR/admin/settings/general.php | 4 +- .../lang/tr-TR/admin/settings/message.php | 3 + resources/lang/tr-TR/button.php | 2 +- resources/lang/tr-TR/general.php | 29 +++--- resources/lang/tr-TR/localizations.php | 4 +- resources/lang/tr-TR/mail.php | 2 +- resources/lang/tr-TR/validation.php | 4 + resources/lang/uk-UA/account/general.php | 13 ++- .../lang/uk-UA/admin/locations/message.php | 2 +- .../lang/uk-UA/admin/settings/general.php | 2 + .../lang/uk-UA/admin/settings/message.php | 3 + resources/lang/uk-UA/button.php | 2 +- resources/lang/uk-UA/general.php | 29 +++--- resources/lang/uk-UA/localizations.php | 4 +- resources/lang/uk-UA/validation.php | 4 + resources/lang/ur-PK/account/general.php | 2 + .../lang/ur-PK/admin/locations/message.php | 2 +- .../lang/ur-PK/admin/settings/general.php | 2 + .../lang/ur-PK/admin/settings/message.php | 3 + resources/lang/ur-PK/button.php | 2 +- resources/lang/ur-PK/general.php | 29 +++--- resources/lang/ur-PK/localizations.php | 4 +- resources/lang/ur-PK/validation.php | 4 + resources/lang/vi-VN/account/general.php | 2 + .../lang/vi-VN/admin/locations/message.php | 2 +- .../lang/vi-VN/admin/settings/general.php | 2 + .../lang/vi-VN/admin/settings/message.php | 3 + resources/lang/vi-VN/button.php | 2 +- resources/lang/vi-VN/general.php | 29 +++--- resources/lang/vi-VN/localizations.php | 4 +- resources/lang/vi-VN/validation.php | 4 + resources/lang/zh-CN/account/general.php | 2 + .../lang/zh-CN/admin/locations/message.php | 2 +- .../lang/zh-CN/admin/settings/general.php | 2 + .../lang/zh-CN/admin/settings/message.php | 3 + resources/lang/zh-CN/button.php | 2 +- resources/lang/zh-CN/general.php | 15 +-- resources/lang/zh-CN/localizations.php | 4 +- resources/lang/zh-CN/validation.php | 4 + resources/lang/zh-HK/account/general.php | 2 + .../lang/zh-HK/admin/locations/message.php | 2 +- .../lang/zh-HK/admin/settings/general.php | 2 + .../lang/zh-HK/admin/settings/message.php | 3 + resources/lang/zh-HK/button.php | 2 +- resources/lang/zh-HK/general.php | 29 +++--- resources/lang/zh-HK/localizations.php | 4 +- resources/lang/zh-HK/validation.php | 4 + resources/lang/zh-TW/account/general.php | 2 + .../lang/zh-TW/admin/locations/message.php | 2 +- .../lang/zh-TW/admin/settings/general.php | 2 + .../lang/zh-TW/admin/settings/message.php | 3 + resources/lang/zh-TW/button.php | 2 +- resources/lang/zh-TW/general.php | 37 ++++---- resources/lang/zh-TW/localizations.php | 4 +- resources/lang/zh-TW/validation.php | 4 + resources/lang/zu-ZA/account/general.php | 2 + .../lang/zu-ZA/admin/locations/message.php | 2 +- .../lang/zu-ZA/admin/settings/general.php | 2 + .../lang/zu-ZA/admin/settings/message.php | 3 + resources/lang/zu-ZA/button.php | 2 +- resources/lang/zu-ZA/general.php | 29 +++--- resources/lang/zu-ZA/localizations.php | 4 +- resources/lang/zu-ZA/validation.php | 4 + 660 files changed, 2599 insertions(+), 1636 deletions(-) diff --git a/resources/lang/aa-ER/account/general.php b/resources/lang/aa-ER/account/general.php index 7d04f1acb..5db6716fb 100644 --- a/resources/lang/aa-ER/account/general.php +++ b/resources/lang/aa-ER/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'crwdns12270:0crwdne12270:0', 'profile_updated' => 'crwdns12202:0crwdne12202:0', 'no_tokens' => 'crwdns12318:0crwdne12318:0', + 'enable_sounds' => 'crwdns12658:0crwdne12658:0', + 'enable_confetti' => 'crwdns12664:0crwdne12664:0', ); diff --git a/resources/lang/aa-ER/admin/locations/message.php b/resources/lang/aa-ER/admin/locations/message.php index 588a0d4d8..88117472b 100644 --- a/resources/lang/aa-ER/admin/locations/message.php +++ b/resources/lang/aa-ER/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'crwdns650:0crwdne650:0', - 'assoc_users' => 'crwdns12272:0crwdne12272:0', + 'assoc_users' => 'crwdns12666:0crwdne12666:0', 'assoc_assets' => 'crwdns1404:0crwdne1404:0', 'assoc_child_loc' => 'crwdns1405:0crwdne1405:0', 'assigned_assets' => 'crwdns11179:0crwdne11179:0', diff --git a/resources/lang/aa-ER/admin/settings/general.php b/resources/lang/aa-ER/admin/settings/general.php index 11cc3850b..6dba9d27b 100644 --- a/resources/lang/aa-ER/admin/settings/general.php +++ b/resources/lang/aa-ER/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => 'crwdns11403:0crwdne11403:0', 'webhook_integration_help_button' => 'crwdns11405:0crwdne11405:0', 'webhook_test_help' => 'crwdns11407:0crwdne11407:0', + 'shortcuts_enabled' => 'crwdns12654:0crwdne12654:0', + 'shortcuts_help_text' => 'crwdns12656:0crwdne12656:0', 'snipe_version' => 'crwdns1266:0crwdne1266:0', 'support_footer' => 'crwdns1991:0crwdne1991:0', 'support_footer_help' => 'crwdns1992:0crwdne1992:0', diff --git a/resources/lang/aa-ER/admin/settings/message.php b/resources/lang/aa-ER/admin/settings/message.php index 5e88ef090..389161344 100644 --- a/resources/lang/aa-ER/admin/settings/message.php +++ b/resources/lang/aa-ER/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'crwdns6709:0crwdne6709:0', 'restore_confirm' => 'crwdns6711:0crwdne6711:0' ], + 'restore' => [ + 'success' => 'crwdns12648:0crwdne12648:0' + ], 'purge' => [ 'error' => 'crwdns1615:0crwdne1615:0', 'validation_failed' => 'crwdns1616:0crwdne1616:0', diff --git a/resources/lang/aa-ER/button.php b/resources/lang/aa-ER/button.php index d15ed2765..9284fc6a7 100644 --- a/resources/lang/aa-ER/button.php +++ b/resources/lang/aa-ER/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'crwdns12598:0crwdne12598:0', 'edit' => 'crwdns12600:0crwdne12600:0', 'delete' => 'crwdns12602:0crwdne12602:0', - 'restore' => 'crwdns12604:0crwdne12604:0', + 'restore' => 'crwdns12646:0crwdne12646:0', 'create' => 'crwdns12606:0crwdne12606:0', 'checkout' => 'crwdns12608:0crwdne12608:0', 'checkin' => 'crwdns12610:0crwdne12610:0', diff --git a/resources/lang/aa-ER/general.php b/resources/lang/aa-ER/general.php index dc33fad2a..f61d83793 100644 --- a/resources/lang/aa-ER/general.php +++ b/resources/lang/aa-ER/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'crwdns1327:0crwdne1327:0', 'country' => 'crwdns1039:0crwdne1039:0', 'could_not_restore' => 'crwdns11894:0:item_type:crwdne11894:0', - 'not_deleted' => 'crwdns11896:0crwdne11896:0', + 'not_deleted' => 'crwdns12616:0crwdne12616:0', 'create' => 'crwdns1040:0crwdne1040:0', 'created' => 'crwdns1773:0crwdne1773:0', 'created_asset' => 'crwdns1041:0crwdne1041:0', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'crwdns1828:0crwdne1828:0', 'delete' => 'crwdns1046:0crwdne1046:0', 'delete_confirm' => 'crwdns2020:0crwdne2020:0', - 'delete_confirm_no_undo' => 'crwdns11599:0crwdne11599:0', + 'delete_confirm_no_undo' => 'crwdns12618:0crwdne12618:0', 'deleted' => 'crwdns1047:0crwdne1047:0', 'delete_seats' => 'crwdns1430:0crwdne1430:0', 'deletion_failed' => 'crwdns6117:0crwdne6117:0', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'crwdns5952:0crwdne5952:0', 'firstinitial.lastname' => 'crwdns5954:0crwdne5954:0', 'firstnamelastinitial' => 'crwdns5956:0crwdne5956:0', - 'lastnamefirstname' => 'crwdns12266:0crwdne12266:0', + 'lastnamefirstname' => 'crwdns12620:0crwdne12620:0', 'first_name' => 'crwdns1053:0crwdne1053:0', 'first_name_format' => 'crwdns1647:0crwdne1647:0', 'files' => 'crwdns1996:0crwdne1996:0', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'crwdns1057:0crwdne1057:0', 'include_deleted' => 'crwdns10518:0crwdne10518:0', 'image_upload' => 'crwdns1058:0crwdne1058:0', - 'filetypes_accepted_help' => 'crwdns6129:0crwdne6129:0', - 'filetypes_size_help' => 'crwdns6131:0crwdne6131:0', - 'image_filetypes_help' => 'crwdns12284:0crwdne12284:0', + 'filetypes_accepted_help' => 'crwdns12622:0crwdne12622:0', + 'filetypes_size_help' => 'crwdns12624:0crwdne12624:0', + 'image_filetypes_help' => 'crwdns12626:0crwdne12626:0', 'unaccepted_image_type' => 'crwdns11365:0crwdne11365:0', 'import' => 'crwdns1411:0crwdne1411:0', 'import_this_file' => 'crwdns11922:0crwdne11922:0', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'crwdns12172:0crwdne12172:0', 'licenses' => 'crwdns1062:0crwdne1062:0', 'list_all' => 'crwdns1063:0crwdne1063:0', - 'loading' => 'crwdns6135:0crwdne6135:0', + 'loading' => 'crwdns12628:0crwdne12628:0', 'lock_passwords' => 'crwdns5974:0crwdne5974:0', 'feature_disabled' => 'crwdns1774:0crwdne1774:0', 'location' => 'crwdns1064:0crwdne1064:0', @@ -193,7 +193,7 @@ return [ 'logout' => 'crwdns1066:0crwdne1066:0', 'lookup_by_tag' => 'crwdns1648:0crwdne1648:0', 'maintenances' => 'crwdns1998:0crwdne1998:0', - 'manage_api_keys' => 'crwdns6137:0crwdne6137:0', + 'manage_api_keys' => 'crwdns12630:0crwdne12630:0', 'manufacturer' => 'crwdns1067:0crwdne1067:0', 'manufacturers' => 'crwdns1068:0crwdne1068:0', 'markdown' => 'crwdns1574:0crwdne1574:0', @@ -254,7 +254,7 @@ return [ 'select_all' => 'crwdns6155:0crwdne6155:0', 'search' => 'crwdns1290:0crwdne1290:0', 'select_category' => 'crwdns1663:0crwdne1663:0', - 'select_datasource' => 'crwdns12166:0crwdne12166:0', + 'select_datasource' => 'crwdns12632:0crwdne12632:0', 'select_department' => 'crwdns1880:0crwdne1880:0', 'select_depreciation' => 'crwdns1282:0crwdne1282:0', 'select_location' => 'crwdns1283:0crwdne1283:0', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'crwdns6784:0crwdne6784:0', 'skin' => 'crwdns2002:0crwdne2002:0', 'webhook_msg_note' => 'crwdns11483:0crwdne11483:0', - 'webhook_test_msg' => 'crwdns11371:0crwdne11371:0', + 'webhook_test_msg' => 'crwdns12634:0crwdne12634:0', 'some_features_disabled' => 'crwdns1669:0crwdne1669:0', 'site_name' => 'crwdns1086:0crwdne1086:0', 'state' => 'crwdns1087:0crwdne1087:0', 'status_labels' => 'crwdns1088:0crwdne1088:0', + 'status_label' => 'crwdns12662:0crwdne12662:0', 'status' => 'crwdns1089:0crwdne1089:0', 'accept_eula' => 'crwdns6786:0crwdne6786:0', 'supplier' => 'crwdns1833:0crwdne1833:0', @@ -339,16 +340,16 @@ return [ 'view_all' => 'crwdns6165:0crwdne6165:0', 'hide_deleted' => 'crwdns6167:0crwdne6167:0', 'email' => 'crwdns6169:0crwdne6169:0', - 'do_not_change' => 'crwdns6171:0crwdne6171:0', - 'bug_report' => 'crwdns6173:0crwdne6173:0', + 'do_not_change' => 'crwdns12636:0crwdne12636:0', + 'bug_report' => 'crwdns12638:0crwdne12638:0', 'user_manual' => 'crwdns6175:0crwdne6175:0', 'setup_step_1' => 'crwdns6177:0crwdne6177:0', 'setup_step_2' => 'crwdns6179:0crwdne6179:0', 'setup_step_3' => 'crwdns6181:0crwdne6181:0', 'setup_step_4' => 'crwdns6183:0crwdne6183:0', 'setup_config_check' => 'crwdns6185:0crwdne6185:0', - 'setup_create_database' => 'crwdns6187:0crwdne6187:0', - 'setup_create_admin' => 'crwdns6189:0crwdne6189:0', + 'setup_create_database' => 'crwdns12640:0crwdne12640:0', + 'setup_create_admin' => 'crwdns12642:0crwdne12642:0', 'setup_done' => 'crwdns6191:0crwdne6191:0', 'bulk_edit_about_to' => 'crwdns6193:0crwdne6193:0', 'checked_out' => 'crwdns6195:0crwdne6195:0', diff --git a/resources/lang/aa-ER/localizations.php b/resources/lang/aa-ER/localizations.php index 0e695f7a7..c407b5385 100644 --- a/resources/lang/aa-ER/localizations.php +++ b/resources/lang/aa-ER/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'crwdns11986:0crwdne11986:0', 'mi-NZ'=> 'crwdns11988:0crwdne11988:0', 'mn-MN'=> 'crwdns11990:0crwdne11990:0', - 'no-NO'=> 'crwdns11992:0crwdne11992:0', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'crwdns12644:0crwdne12644:0', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'crwdns11994:0crwdne11994:0', 'pl-PL'=> 'crwdns11996:0crwdne11996:0', 'pt-PT'=> 'crwdns10634:0crwdne10634:0', diff --git a/resources/lang/aa-ER/validation.php b/resources/lang/aa-ER/validation.php index 0859bc66c..06657a831 100644 --- a/resources/lang/aa-ER/validation.php +++ b/resources/lang/aa-ER/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'crwdns12504:0crwdne12504:0', 'uncompromised' => 'crwdns12506:0crwdne12506:0', ], + 'percent' => 'crwdns12660:0crwdne12660:0', + 'present' => 'crwdns1936:0crwdne1936:0', 'present_if' => 'crwdns12508:0crwdne12508:0', 'present_unless' => 'crwdns12510:0crwdne12510:0', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'crwdns1946:0crwdne1946:0', 'dumbpwd' => 'crwdns1947:0crwdne1947:0', 'statuslabel_type' => 'crwdns1948:0crwdne1948:0', + 'custom_field_not_found' => 'crwdns12650:0crwdne12650:0', + 'custom_field_not_found_on_model' => 'crwdns12652:0crwdne12652:0', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/af-ZA/account/general.php b/resources/lang/af-ZA/account/general.php index 1cef87b07..557454678 100644 --- a/resources/lang/af-ZA/account/general.php +++ b/resources/lang/af-ZA/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/af-ZA/admin/locations/message.php b/resources/lang/af-ZA/admin/locations/message.php index dd41bba32..a10563a7c 100644 --- a/resources/lang/af-ZA/admin/locations/message.php +++ b/resources/lang/af-ZA/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Ligging bestaan ​​nie.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Hierdie ligging is tans geassosieer met ten minste een bate en kan nie uitgevee word nie. Dateer asseblief jou bates op om nie meer hierdie ligging te verwys nie en probeer weer.', 'assoc_child_loc' => 'Hierdie ligging is tans die ouer van ten minste een kind se plek en kan nie uitgevee word nie. Werk asseblief jou liggings by om nie meer hierdie ligging te verwys nie en probeer weer.', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/af-ZA/admin/settings/general.php b/resources/lang/af-ZA/admin/settings/general.php index da9893920..bec29534e 100644 --- a/resources/lang/af-ZA/admin/settings/general.php +++ b/resources/lang/af-ZA/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT-weergawe', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/af-ZA/admin/settings/message.php b/resources/lang/af-ZA/admin/settings/message.php index 8f41acf3f..198e05497 100644 --- a/resources/lang/af-ZA/admin/settings/message.php +++ b/resources/lang/af-ZA/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => '\'N Fout het voorgekom tydens suiwering.', 'validation_failed' => 'Jou skoonmaakbevestiging is verkeerd. Tik asseblief die woord "DELETE" in die bevestigingsboks.', diff --git a/resources/lang/af-ZA/button.php b/resources/lang/af-ZA/button.php index f7e1690d1..a6b51214f 100644 --- a/resources/lang/af-ZA/button.php +++ b/resources/lang/af-ZA/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/af-ZA/general.php b/resources/lang/af-ZA/general.php index 2496fe7f1..f8d7d12cf 100644 --- a/resources/lang/af-ZA/general.php +++ b/resources/lang/af-ZA/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'land', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Skep nuwe', 'created' => 'Item geskep', 'created_asset' => 'geskep bate', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Hierdie program word uitgevoer in die produksiemodus met debugging aangeskakel. Dit kan sensitiewe data blootstel indien u aansoek vir die buitewêreld toeganklik is. Deaktiveer debug-modus deur die APP_DEBUG-waarde in jou .env-lêer te stel na false.', 'delete' => 'verwyder', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'geskrap', 'delete_seats' => 'Plekke verwyder', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Eerste naam', 'first_name_format' => 'Voornaam (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Vee prent uit', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Laai prent op', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'invoer', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'lisensies', 'list_all' => 'Lys almal', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'Hierdie funksie is afgeskakel vir die demo-installasie.', 'location' => 'plek', @@ -193,7 +193,7 @@ return [ 'logout' => 'Teken uit', 'lookup_by_tag' => 'Opsoek deur Asset Tag', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'vervaardiger', 'manufacturers' => 'vervaardigers', 'markdown' => 'Hierdie veld laat Gitub-gegeurde markdown toe.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Soek', 'select_category' => 'Kies \'n kategorie', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Kies \'n Departement', 'select_depreciation' => 'Kies \'n waardeverminderingstipe', 'select_location' => 'Kies \'n plek', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Sommige funksies is afgeskakel vir hierdie installasie.', 'site_name' => 'Site Naam', 'state' => 'staat', 'status_labels' => 'Status etikette', + 'status_label' => 'Status Label', 'status' => 'status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'verskaffer', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'e-pos', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Gekontroleer', diff --git a/resources/lang/af-ZA/localizations.php b/resources/lang/af-ZA/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/af-ZA/localizations.php +++ b/resources/lang/af-ZA/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/af-ZA/validation.php b/resources/lang/af-ZA/validation.php index e7a0eb8a2..02faf9c00 100644 --- a/resources/lang/af-ZA/validation.php +++ b/resources/lang/af-ZA/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Die: attribuut veld moet teenwoordig wees.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Jou huidige wagwoord is verkeerd', 'dumbpwd' => 'Daardie wagwoord is te algemeen.', 'statuslabel_type' => 'U moet \'n geldige statusetiket tipe kies', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/am-ET/account/general.php b/resources/lang/am-ET/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/am-ET/account/general.php +++ b/resources/lang/am-ET/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the
API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/am-ET/admin/locations/message.php b/resources/lang/am-ET/admin/locations/message.php index 8121b8068..6226c71ab 100644 --- a/resources/lang/am-ET/admin/locations/message.php +++ b/resources/lang/am-ET/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Location does not exist.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'This location is currently associated with at least one asset and cannot be deleted. Please update your assets to no longer reference this location and try again. ', 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/am-ET/admin/settings/general.php b/resources/lang/am-ET/admin/settings/general.php index 9ba69ef22..31165cf3f 100644 --- a/resources/lang/am-ET/admin/settings/general.php +++ b/resources/lang/am-ET/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/am-ET/admin/settings/message.php b/resources/lang/am-ET/admin/settings/message.php index c9b0f3421..24e2d292c 100644 --- a/resources/lang/am-ET/admin/settings/message.php +++ b/resources/lang/am-ET/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'An error has occurred while purging. ', 'validation_failed' => 'Your purge confirmation is incorrect. Please type the word "DELETE" in the confirmation box.', diff --git a/resources/lang/am-ET/button.php b/resources/lang/am-ET/button.php index f28b62b75..e154e592a 100644 --- a/resources/lang/am-ET/button.php +++ b/resources/lang/am-ET/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/am-ET/general.php b/resources/lang/am-ET/general.php index 86d01da01..c9b8c49b0 100644 --- a/resources/lang/am-ET/general.php +++ b/resources/lang/am-ET/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'First Name', 'first_name_format' => 'First Name (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Delete Image', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Upload Image', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Licenses', 'list_all' => 'List All', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'This feature has been disabled for the demo installation.', 'location' => 'Location', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logout', 'lookup_by_tag' => 'Lookup by Asset Tag', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Manufacturer', 'manufacturers' => 'Manufacturers', 'markdown' => 'This field allows Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Search', 'select_category' => 'Select a Category', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Select a Department', 'select_depreciation' => 'Select a Depreciation Type', 'select_location' => 'Select a Location', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Site Name', 'state' => 'State', 'status_labels' => 'Status Labels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Supplier', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Email', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', diff --git a/resources/lang/am-ET/localizations.php b/resources/lang/am-ET/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/am-ET/localizations.php +++ b/resources/lang/am-ET/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/am-ET/validation.php b/resources/lang/am-ET/validation.php index b33548e2f..634170791 100644 --- a/resources/lang/am-ET/validation.php +++ b/resources/lang/am-ET/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'The :attribute field must be present.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Your current password is incorrect', 'dumbpwd' => 'That password is too common.', 'statuslabel_type' => 'You must select a valid status label type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/ar-SA/account/general.php b/resources/lang/ar-SA/account/general.php index 2fbe34ba3..396afcdbc 100644 --- a/resources/lang/ar-SA/account/general.php +++ b/resources/lang/ar-SA/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/ar-SA/admin/locations/message.php b/resources/lang/ar-SA/admin/locations/message.php index fa5001662..289718067 100644 --- a/resources/lang/ar-SA/admin/locations/message.php +++ b/resources/lang/ar-SA/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'الموقع غير موجود.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'هذا الموقع مرتبط حاليا بمادة عرض واحدة على الأقل ولا يمكن حذفها. يرجى تحديث مواد العرض لم تعد تشير إلى هذا الموقع ثم أعد المحاولة. ', 'assoc_child_loc' => 'هذا الموقع هو حاليا أحد الوالدين لموقع طفل واحد على الأقل ولا يمكن حذفه. يرجى تحديث مواقعك لم تعد تشير إلى هذا الموقع ثم أعد المحاولة.', 'assigned_assets' => 'الأصول المعينة', diff --git a/resources/lang/ar-SA/admin/settings/general.php b/resources/lang/ar-SA/admin/settings/general.php index d3f7d3571..c9385aaf9 100644 --- a/resources/lang/ar-SA/admin/settings/general.php +++ b/resources/lang/ar-SA/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => 'تكامل :app اختياري، ولكن نقطة النهاية والقناة مطلوبة إذا كنت ترغب في استخدامها. لتكوين تكامل :app، يجب عليك أولاً إنشاء webhook على حساب :app الخاص بك. انقر على زر اختبار تكامل :app لتأكيد أن إعداداتك صحيحة قبل الحفظ. ', 'webhook_integration_help_button' => 'بمجرد حفظ معلومات :app الخاصة بك، سيظهر زر الاختبار.', 'webhook_test_help' => 'اختبر ما إذا كان تكامل :app الخاص بك قد تم تكوينه بشكل صحيح. لقد قمت بتحديث :app إعدادات التحديثات.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'قنص-إيت الإصدار', 'support_footer' => 'دعم روابط تذييل الصفحة ', 'support_footer_help' => 'تحديد من يرى الروابط إلى دليل معلومات الدعم للمستخدمين عن طريق القناصة', diff --git a/resources/lang/ar-SA/admin/settings/message.php b/resources/lang/ar-SA/admin/settings/message.php index 01bc5ec70..835ace4af 100644 --- a/resources/lang/ar-SA/admin/settings/message.php +++ b/resources/lang/ar-SA/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'نعم، استعادة. أقر بأن هذا سوف يستبدل أي بيانات موجودة حاليا في قاعدة البيانات. سيؤدي هذا أيضا إلى تسجيل جميع المستخدمين الحاليين (بما في ذلك أنت).', 'restore_confirm' => 'هل أنت متأكد من رغبتك في استعادة قاعدة البيانات الخاصة بك من :filename؟' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'حدث خطأ أثناء التطهير.', 'validation_failed' => 'تأكيد التطهير غير صحيح. الرجاء كتابة الكلمة "ديليت" في مربع التأكيد.', diff --git a/resources/lang/ar-SA/button.php b/resources/lang/ar-SA/button.php index 65dcbf67d..08972aafe 100644 --- a/resources/lang/ar-SA/button.php +++ b/resources/lang/ar-SA/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/ar-SA/general.php b/resources/lang/ar-SA/general.php index d3fadc453..5e4919cbd 100644 --- a/resources/lang/ar-SA/general.php +++ b/resources/lang/ar-SA/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'المواد الاستهلاكية', 'country' => 'الدولة', 'could_not_restore' => 'خطأ في استعادة :item_type: :error', - 'not_deleted' => 'لم يتم حذف :item_type لذلك لا يمكن استعادته', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'إضافة', 'created' => 'تم إنشاء العنصر', 'created_asset' => 'الأصول المضافة', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'هذا التطبيق يعمل في وضع الإنتاج مع تمكين التصحيح. هذا يمكن أن يعرض البيانات الحساسة إذا كان التطبيق الخاص بك هو في متناول العالم الخارجي. تعطيل وضع التصحيح عن طريق تعيين قيمة APP_DEBUG في ملف .env إلى false.', 'delete' => 'حذف', 'delete_confirm' => 'هل أنت متأكد من حذف :المنتج؟', - 'delete_confirm_no_undo' => 'هل أنت متأكد من رغبتك في حذف :item؟ لا يمكن التراجع عن ذلك.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'تم حذفها', 'delete_seats' => 'المقاعد المحذوفة', 'deletion_failed' => 'فشل الحذف', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'اللقب والحرف الاول من الاسم (smithj@example.com)', 'firstinitial.lastname' => 'الاسم الأخير الأول (jsmith@example.com)', 'firstnamelastinitial' => 'اللقب والحرف الاول من الاسم (smithj@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'الإسم الأول', 'first_name_format' => 'الاسم الأول (jane@example.com)', 'files' => 'الملفات', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'حذف الصورة', 'include_deleted' => 'تضمين الأصول المحذوفة', 'image_upload' => 'رفع صورة', - 'filetypes_accepted_help' => 'نوع الملف المقبول هو :types. الحد الأقصى لحجم التحميل المسموح به هو :size.|أنواع الملف المقبول هي :types. الحد الأقصى لحجم التحميل المسموح به هو :size.', - 'filetypes_size_help' => 'الحد الأقصى لحجم الرفع المسموح به هو :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'ملف الصورة هذا غير قابل للقراءة. أنواع الملفات المقبولة هي jpg، webpp، png، gif، svg. نوع هذا الملف هو: :mimetype.', 'import' => 'استيراد', 'import_this_file' => 'حقول الخريطة ومعالجة هذا الملف', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'التراخيص المتاحة', 'licenses' => 'التراخيص', 'list_all' => 'عرض الكل', - 'loading' => 'جار التحميل. أرجو الإنتظار....', + 'loading' => 'جار التحميل. أرجو الإنتظار...', 'lock_passwords' => 'لن يتم حفظ قيمة الحقل هذه في تثبيت تجريبي.', 'feature_disabled' => 'تم تعطيل هذه الميزة للتثبيت التجريبي.', 'location' => 'الموقع', @@ -193,7 +193,7 @@ return [ 'logout' => 'تسجيل خروج', 'lookup_by_tag' => 'البحث عن طريق ترميز الأصل', 'maintenances' => 'الصيانة', - 'manage_api_keys' => 'إدارة مفاتيح API', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'الشركة المصنعة', 'manufacturers' => 'الشركات المصنعة', 'markdown' => 'يتيح هذا الحقل بتطبيق نمط الكتابة من Github.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'اختر الكل', 'search' => 'بحث', 'select_category' => 'اختر تصنيف', - 'select_datasource' => 'حدد سجل البيانات', + 'select_datasource' => 'Select a data source', 'select_department' => 'حدد قسم', 'select_depreciation' => 'حدد نوع الاستهلاك', 'select_location' => 'حدد موقعا', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'تم توقيعه من قبل', 'skin' => 'المظهر', 'webhook_msg_note' => 'سيتم إرسال إشعار عبر الربط البرمجي (webhook)', - 'webhook_test_msg' => 'مرحباً! يبدو أن تكامل :app مع Snipe-IT يعمل!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'التثبيت التجريبي (DEMO): يتم تعطيل بعض الميزات لهذا التثبيت.', 'site_name' => 'إسم الموقع', 'state' => 'المنطقة / الولاية', 'status_labels' => 'تسميات الحالة', + 'status_label' => 'Status Label', 'status' => 'الحالة', 'accept_eula' => 'اتفاقية القبول', 'supplier' => 'المورد', @@ -339,16 +340,16 @@ return [ 'view_all' => 'عرض الكل', 'hide_deleted' => 'إخفاء المحذوفة', 'email' => 'البريد الالكتروني', - 'do_not_change' => 'لا تقم بالتغيير', - 'bug_report' => 'الإبلاغ عن خلل', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'دليل المستخدم', 'setup_step_1' => 'الخطوة 1', 'setup_step_2' => 'الخطوة 2', 'setup_step_3' => 'الخطوة 3', 'setup_step_4' => 'الخطوة 4', 'setup_config_check' => 'التحقق من الاعدادات', - 'setup_create_database' => 'إنشاء جداول قاعدة البيانات', - 'setup_create_admin' => 'إنشاء مستخدم مسؤول', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'إنتهى!', 'bulk_edit_about_to' => 'أنت على وشك تحرير ما يلي: ', 'checked_out' => 'استعارة', diff --git a/resources/lang/ar-SA/localizations.php b/resources/lang/ar-SA/localizations.php index 288f0bdd0..95de5c8c4 100644 --- a/resources/lang/ar-SA/localizations.php +++ b/resources/lang/ar-SA/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'الملايو', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'المنغولية', - 'no-NO'=> 'النرويجية', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'الفارسية', 'pl-PL'=> 'البولندية', 'pt-PT'=> 'البرتغالية', diff --git a/resources/lang/ar-SA/validation.php b/resources/lang/ar-SA/validation.php index ea6b0090d..dc5ef0530 100644 --- a/resources/lang/ar-SA/validation.php +++ b/resources/lang/ar-SA/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'يجب أن يكون :attribute موجود.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'كلمة المرور الحالية غير صحيحة', 'dumbpwd' => 'كلمة المرور هذه شائعة جدا.', 'statuslabel_type' => 'يجب تحديد نوع تسمية حالة صالح', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/bg-BG/account/general.php b/resources/lang/bg-BG/account/general.php index 3a9cf0aa6..65ee0309a 100644 --- a/resources/lang/bg-BG/account/general.php +++ b/resources/lang/bg-BG/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Моля, проверете справката за API, за да намерите конкретни API крайни точки и допълнителна API документация.', 'profile_updated' => 'Акаунтът е актуализиран успешно', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/bg-BG/admin/accessories/message.php b/resources/lang/bg-BG/admin/accessories/message.php index f1aef9054..98af327a8 100644 --- a/resources/lang/bg-BG/admin/accessories/message.php +++ b/resources/lang/bg-BG/admin/accessories/message.php @@ -28,7 +28,7 @@ return array( 'unavailable' => 'Аксесоарт не е наличен за изписване. Проверете наличното количество', 'user_does_not_exist' => 'Невалиден потребител. Моля опитайте отново.', 'checkout_qty' => array( - 'lte' => 'There is currently only one available accessory of this type, and you are trying to check out :checkout_qty. Please adjust the checkout quantity or the total stock of this accessory and try again.|There are :number_currently_remaining total available accessories, and you are trying to check out :checkout_qty. Please adjust the checkout quantity or the total stock of this accessory and try again.', + 'lte' => 'В момента има само един наличен аксесоар от този вид и вие се опитвате да изпишете :checkout_qty. Моля коригирайте количеството или общата наличност и опитайте отново.|Има :number_currently_remaining броя налични аксесоари и вие се опитвате да изпишете :checkout_qty. Моля коригирайте количеството или общата наличност и опитайте отново.', ), ), diff --git a/resources/lang/bg-BG/admin/consumables/general.php b/resources/lang/bg-BG/admin/consumables/general.php index 56a252892..fee7bbe73 100644 --- a/resources/lang/bg-BG/admin/consumables/general.php +++ b/resources/lang/bg-BG/admin/consumables/general.php @@ -8,5 +8,5 @@ return array( 'remaining' => 'Остава', 'total' => 'Oбщо', 'update' => 'Обновяване на консуматив', - 'inventory_warning' => 'The inventory of this consumable is below the minimum amount of :min_count', + 'inventory_warning' => 'Наличноста на този консуматив е под зададения минимум от :min_count', ); diff --git a/resources/lang/bg-BG/admin/locations/message.php b/resources/lang/bg-BG/admin/locations/message.php index e20d914e9..92395a853 100644 --- a/resources/lang/bg-BG/admin/locations/message.php +++ b/resources/lang/bg-BG/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Местоположението не съществува.', - 'assoc_users' => 'Понастоящем това местоположение не може да се изтрие, защото е местоположението на запис за поне един актив или потребител, има присвоени към него активи или е родителското местоположение на друго местоположение. Моля, актуализирайте моделите си, за да не споменавате повече тази компания, и опитайте отново. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Местоположението е свързано с поне един актив и не може да бъде изтрито. Моля, актуализирайте активите, така че да не са свързани с това местоположение и опитайте отново. ', 'assoc_child_loc' => 'В избраното местоположение е присъединено едно или повече местоположения. Моля преместете ги в друго и опитайте отново.', 'assigned_assets' => 'Изписани Активи', diff --git a/resources/lang/bg-BG/admin/settings/general.php b/resources/lang/bg-BG/admin/settings/general.php index b2350b11b..baa7f84b3 100644 --- a/resources/lang/bg-BG/admin/settings/general.php +++ b/resources/lang/bg-BG/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app интеграцията е по избор, въпреки че крайната цел и канала са задължителни, ако искате да я ползате. За да се конфигурира :app интеграцията трябва първо да създадете входяща webhook във вашият :app акаунт. Кликнете на Тест :app интеграция бутона за да потвърдите, че всичко работи преди да запишете настройките. ', 'webhook_integration_help_button' => 'След като запишите вашата информация за :app, ще се пояави тест бутон.', 'webhook_test_help' => 'Тест за коректна конфигурация на :app интеграцията. НЕОБХОДИМО Е ПЪРВО ДА ЗАПИШЕТЕ :app НАСТРОЙКИТЕ.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT версия', 'support_footer' => 'Връзки към Snipe-it поддръжката във футъра', 'support_footer_help' => 'Указва визуализацията на връзки към поддръжката на Snipe-IT и потребителската документация', diff --git a/resources/lang/bg-BG/admin/settings/message.php b/resources/lang/bg-BG/admin/settings/message.php index e23a9dacb..bf8532f46 100644 --- a/resources/lang/bg-BG/admin/settings/message.php +++ b/resources/lang/bg-BG/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Да, потвърди възстановяването. Това ще презапише цялата информация в датабазата и ще отпише всички вписани потребители включително вас.', 'restore_confirm' => 'Сигурни ли сте че искате да възстановите датабазата от :filename?' ], + 'restore' => [ + 'success' => 'Вашият системен архив беше възстановен. Моля влезте отново.' + ], 'purge' => [ 'error' => 'Възникна грешка при пречистване. ', 'validation_failed' => 'Потвърждението ви за пречистване не неправилно. Моля напишете думата "DELETE" в клетката за потвърждаване.', diff --git a/resources/lang/bg-BG/button.php b/resources/lang/bg-BG/button.php index 290c238dc..6595f54c4 100644 --- a/resources/lang/bg-BG/button.php +++ b/resources/lang/bg-BG/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/bg-BG/general.php b/resources/lang/bg-BG/general.php index 40fa4c46b..b1962fe72 100644 --- a/resources/lang/bg-BG/general.php +++ b/resources/lang/bg-BG/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Консумативи', 'country' => 'Държава', 'could_not_restore' => 'Грешка при възстановяване :item_type: :error', - 'not_deleted' => ':item_type е изтрит и не може да се възстанови', + 'not_deleted' => ':item_type не е изтрит и не може да бъде възстановен', 'create' => 'Създаване на нов', 'created' => 'Създадени артикули', 'created_asset' => 'създадени активи', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Фамилия и Първа буква от име (ivanov_i@example.com)', 'firstinitial.lastname' => 'Първа буква от името и Фамилия (i.ivanov@example.com)', 'firstnamelastinitial' => 'Име и първа буква от фамилия (ivani@example.com)', - 'lastnamefirstname' => 'Фамилно име Собствено име (smith.jane@example.com)', + 'lastnamefirstname' => 'Фамилно име.Собствено име (smith.jane@example.com)', 'first_name' => 'Собствено име', 'first_name_format' => 'Име (jane@example.com)', 'files' => 'Файлове', @@ -156,7 +156,7 @@ return [ 'image_delete' => 'Изтриване на изображението', 'include_deleted' => 'Включително изтрити активи', 'image_upload' => 'Качване на изображение', - 'filetypes_accepted_help' => 'Позволенo разширенe на файлa :types. Максимално позволен размер :size.|Позволени разширения на файлове са :types. Максимално позволен размер :size.', + 'filetypes_accepted_help' => 'Позволенoто разширенe на файлa е :types. Максимално позволения размер е :size.|Позволените разширения на файловете са :types. Максимално позволен размер :size.', 'filetypes_size_help' => 'Максимално позволен размер на файла е :size.', 'image_filetypes_help' => 'Допустимите файлови типове са jpg, webp, png, gif, svg и avif. Максималният разрешен размер за качване е :size.', 'unaccepted_image_type' => 'Снимката не може да се прочете. Типовете файлови разширения са jpg, webp, png, gif и svg. Разширението на този файл е :mimetype.', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Налични лицензи', 'licenses' => 'Лицензи', 'list_all' => 'Преглед на всички', - 'loading' => 'Зареждане... моля изчакайте....', + 'loading' => 'Зареждане... моля изчакайте...', 'lock_passwords' => 'В демо версията това поле няма да се запише.', 'feature_disabled' => 'Тази функция е забранена за демо инсталацията.', 'location' => 'Местоположение', @@ -279,6 +279,7 @@ return [ 'site_name' => 'Име на системата', 'state' => 'Област', 'status_labels' => 'Статус етикети', + 'status_label' => 'Status Label', 'status' => 'Статус', 'accept_eula' => 'Споразумение за приемане', 'supplier' => 'Доставчик', @@ -552,11 +553,11 @@ return [ ], 'more_info' => 'Повече информация', 'quickscan_bulk_help' => 'Поставянето на отметка в това квадратче ще редактира записа на актива, за да отрази това ново местоположение. Оставянето му без отметка просто ще отбележи местоположението в журнала за проверка. Обърнете внимание, че ако този актив бъде извлечен, той няма да промени местоположението на лицето, актива или местоположението, към които е извлечен.', - 'whoops' => 'Whoops!', - 'something_went_wrong' => 'Something went wrong with your request.', - 'close' => 'Close', + 'whoops' => 'Упс!', + 'something_went_wrong' => 'При обработката нещо се обърка.', + 'close' => 'Затвори', 'expires' => 'Изтича', 'map_fields'=> 'Map :item_type Field', - 'remaining_var' => ':count Remaining', + 'remaining_var' => 'остават :count', ]; diff --git a/resources/lang/bg-BG/localizations.php b/resources/lang/bg-BG/localizations.php index 994b2bd5d..aec385aba 100644 --- a/resources/lang/bg-BG/localizations.php +++ b/resources/lang/bg-BG/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Малайски', 'mi-NZ'=> 'Маори', 'mn-MN'=> 'Монголски', - 'no-NO'=> 'Норвежки', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Персийски', 'pl-PL'=> 'Полски', 'pt-PT'=> 'Португалски', diff --git a/resources/lang/bg-BG/validation.php b/resources/lang/bg-BG/validation.php index fc2eb2864..98574fa02 100644 --- a/resources/lang/bg-BG/validation.php +++ b/resources/lang/bg-BG/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Полето на атрибута трябва да е налице.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Текущата ви парола е неправилна', 'dumbpwd' => 'Тази парола е твърде често срещана.', 'statuslabel_type' => 'Трябва да изберете валиден тип етикет на състоянието', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/ca-ES/account/general.php b/resources/lang/ca-ES/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/ca-ES/account/general.php +++ b/resources/lang/ca-ES/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/ca-ES/admin/locations/message.php b/resources/lang/ca-ES/admin/locations/message.php index 8121b8068..6226c71ab 100644 --- a/resources/lang/ca-ES/admin/locations/message.php +++ b/resources/lang/ca-ES/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Location does not exist.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'This location is currently associated with at least one asset and cannot be deleted. Please update your assets to no longer reference this location and try again. ', 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/ca-ES/admin/settings/general.php b/resources/lang/ca-ES/admin/settings/general.php index 9ba69ef22..31165cf3f 100644 --- a/resources/lang/ca-ES/admin/settings/general.php +++ b/resources/lang/ca-ES/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/ca-ES/admin/settings/message.php b/resources/lang/ca-ES/admin/settings/message.php index c9b0f3421..24e2d292c 100644 --- a/resources/lang/ca-ES/admin/settings/message.php +++ b/resources/lang/ca-ES/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'An error has occurred while purging. ', 'validation_failed' => 'Your purge confirmation is incorrect. Please type the word "DELETE" in the confirmation box.', diff --git a/resources/lang/ca-ES/button.php b/resources/lang/ca-ES/button.php index aaf67104f..71292fe98 100644 --- a/resources/lang/ca-ES/button.php +++ b/resources/lang/ca-ES/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/ca-ES/general.php b/resources/lang/ca-ES/general.php index 8218008c5..5690a088d 100644 --- a/resources/lang/ca-ES/general.php +++ b/resources/lang/ca-ES/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumibles', 'country' => 'País', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Crea nou', 'created' => 'Item Created', 'created_asset' => 'recurs creat', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Suprimeix', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'S\'ha suprimit', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'First Name', 'first_name_format' => 'First Name (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Delete Image', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Upload Image', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Licenses', 'list_all' => 'List All', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'This feature has been disabled for the demo installation.', 'location' => 'Location', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logout', 'lookup_by_tag' => 'Cercar per Etiqueta de Recurs', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Manufacturer', 'manufacturers' => 'Manufacturers', 'markdown' => 'This field allows Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Search', 'select_category' => 'Select a Category', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Select a Department', 'select_depreciation' => 'Select a Depreciation Type', 'select_location' => 'Select a Location', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Site Name', 'state' => 'State', 'status_labels' => 'Status Labels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Supplier', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Email', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', diff --git a/resources/lang/ca-ES/localizations.php b/resources/lang/ca-ES/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/ca-ES/localizations.php +++ b/resources/lang/ca-ES/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/ca-ES/validation.php b/resources/lang/ca-ES/validation.php index b33548e2f..634170791 100644 --- a/resources/lang/ca-ES/validation.php +++ b/resources/lang/ca-ES/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'The :attribute field must be present.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Your current password is incorrect', 'dumbpwd' => 'That password is too common.', 'statuslabel_type' => 'You must select a valid status label type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/chr-US/account/general.php b/resources/lang/chr-US/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/chr-US/account/general.php +++ b/resources/lang/chr-US/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/chr-US/admin/locations/message.php b/resources/lang/chr-US/admin/locations/message.php index 8121b8068..6226c71ab 100644 --- a/resources/lang/chr-US/admin/locations/message.php +++ b/resources/lang/chr-US/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Location does not exist.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'This location is currently associated with at least one asset and cannot be deleted. Please update your assets to no longer reference this location and try again. ', 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/chr-US/admin/settings/general.php b/resources/lang/chr-US/admin/settings/general.php index 9ba69ef22..31165cf3f 100644 --- a/resources/lang/chr-US/admin/settings/general.php +++ b/resources/lang/chr-US/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/chr-US/admin/settings/message.php b/resources/lang/chr-US/admin/settings/message.php index c9b0f3421..24e2d292c 100644 --- a/resources/lang/chr-US/admin/settings/message.php +++ b/resources/lang/chr-US/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'An error has occurred while purging. ', 'validation_failed' => 'Your purge confirmation is incorrect. Please type the word "DELETE" in the confirmation box.', diff --git a/resources/lang/chr-US/button.php b/resources/lang/chr-US/button.php index 51c54bb9b..8a838e8fa 100644 --- a/resources/lang/chr-US/button.php +++ b/resources/lang/chr-US/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/chr-US/general.php b/resources/lang/chr-US/general.php index b3a6b3432..444ed5408 100644 --- a/resources/lang/chr-US/general.php +++ b/resources/lang/chr-US/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'First Name', 'first_name_format' => 'First Name (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Delete Image', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Upload Image', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Licenses', 'list_all' => 'List All', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'This feature has been disabled for the demo installation.', 'location' => 'Location', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logout', 'lookup_by_tag' => 'Lookup by Asset Tag', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Manufacturer', 'manufacturers' => 'Manufacturers', 'markdown' => 'This field allows Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Search', 'select_category' => 'Select a Category', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Select a Department', 'select_depreciation' => 'Select a Depreciation Type', 'select_location' => 'Select a Location', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Site Name', 'state' => 'State', 'status_labels' => 'Status Labels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Supplier', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Email', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', diff --git a/resources/lang/chr-US/localizations.php b/resources/lang/chr-US/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/chr-US/localizations.php +++ b/resources/lang/chr-US/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/chr-US/validation.php b/resources/lang/chr-US/validation.php index b33548e2f..634170791 100644 --- a/resources/lang/chr-US/validation.php +++ b/resources/lang/chr-US/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'The :attribute field must be present.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Your current password is incorrect', 'dumbpwd' => 'That password is too common.', 'statuslabel_type' => 'You must select a valid status label type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/cs-CZ/account/general.php b/resources/lang/cs-CZ/account/general.php index 9923f9ad1..9785d993d 100644 --- a/resources/lang/cs-CZ/account/general.php +++ b/resources/lang/cs-CZ/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/cs-CZ/admin/locations/message.php b/resources/lang/cs-CZ/admin/locations/message.php index bbcfcec38..ad5e97fa0 100644 --- a/resources/lang/cs-CZ/admin/locations/message.php +++ b/resources/lang/cs-CZ/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Místo neexistuje.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Toto umístění je spojeno s alespoň jedním majetkem a nemůže být smazáno. Aktualizujte majetky tak aby nenáleželi k tomuto umístění a zkuste to znovu. ', 'assoc_child_loc' => 'Toto umístění je nadřazené alespoň jednomu umístění a nelze jej smazat. Aktualizujte své umístění tak, aby na toto umístění již neodkazovalo a zkuste to znovu. ', 'assigned_assets' => 'Přiřazený majetek', diff --git a/resources/lang/cs-CZ/admin/settings/general.php b/resources/lang/cs-CZ/admin/settings/general.php index b3495870b..17928b7fc 100644 --- a/resources/lang/cs-CZ/admin/settings/general.php +++ b/resources/lang/cs-CZ/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integrace je volitelná, ale koncový bod a kanál jsou vyžadovány, pokud jej chcete používat. Chcete-li konfigurovat integraci :app, musíte nejprve vytvořit příchozí webový háček na vašem účtu :app. Klikněte na tlačítko Test :app Integration pro potvrzení správného nastavení před uložením. ', 'webhook_integration_help_button' => 'Jakmile uložíte informace :app, objeví se testovací tlačítko.', 'webhook_test_help' => 'Vyzkoušejte, zda je vaše integrace :app správně nakonfigurována. MŮŽE MŮŽE MŮŽE VÁŠ AKTUALIZOVAT :app NASTAVENÍ FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Verze Snipe-IT', 'support_footer' => 'Odkazy v zápatí na podporu ', 'support_footer_help' => 'Určete, kdo uvidí odkazy na Snipe-IT podporu a uživatelskou příručku', diff --git a/resources/lang/cs-CZ/admin/settings/message.php b/resources/lang/cs-CZ/admin/settings/message.php index a7405ff34..f4a4721e0 100644 --- a/resources/lang/cs-CZ/admin/settings/message.php +++ b/resources/lang/cs-CZ/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Ano, obnovit. Potvrzuji, že toto přepíše existující data v databázi. Tato akce taky odhlásí všechny uživatele (včetně vás).', 'restore_confirm' => 'Jste si jisti, že chcete obnovit databázi z :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Během čištění došlo k chybě. ', 'validation_failed' => 'Vaše potvrzení o čištění je nesprávné. Zadejte prosím slovo "DELETE" do potvrzovacího rámečku.', diff --git a/resources/lang/cs-CZ/button.php b/resources/lang/cs-CZ/button.php index e9d10985c..036b97e84 100644 --- a/resources/lang/cs-CZ/button.php +++ b/resources/lang/cs-CZ/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/cs-CZ/general.php b/resources/lang/cs-CZ/general.php index a8b3d719c..1fe87862d 100644 --- a/resources/lang/cs-CZ/general.php +++ b/resources/lang/cs-CZ/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Spotřební materiál', 'country' => 'Země', 'could_not_restore' => 'Chyba při obnově :item_type: :chyba', - 'not_deleted' => ':item_type není odstraněn, takže nemůže být obnoven', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Vytvořit nové', 'created' => 'Položka vytvořena', 'created_asset' => 'vytvořit majetek', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Tato aplikace běží ve výrobním režimu s povoleným laděním. To znamená že citlivá data mohou být přístupná vnějšímu světu. Deaktivujte režim ladění nastavením hodnoty APP_DEBUG v souboru .env na false.', 'delete' => 'Odstranit', 'delete_confirm' => 'Opravdu chcete smazat :item?', - 'delete_confirm_no_undo' => 'Opravdu chcete odstranit :item? Tuto operaci nelze zvrátit.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Odstraněno', 'delete_seats' => 'Vymazaná licenční místa', 'deletion_failed' => 'Odstranění se nezdařilo', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Příjmení Iniciál (novak_j@example.com)', 'firstinitial.lastname' => 'Iniciál Príjmení (j.novak@example.com)', 'firstnamelastinitial' => 'Jméno Iniciál(josefn@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Jméno', 'first_name_format' => 'Jméno (jane@example.com)', 'files' => 'Soubory', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Smazat obrázek', 'include_deleted' => 'Zahrnout odstraněné položky', 'image_upload' => 'Nahrát obrázek', - 'filetypes_accepted_help' => 'Přijatý typ souboru je :types. Maximální povolená velikost nahrávání je :size.|Přijaté typy souborů jsou :types. Maximální povolená velikost nahrávání je :size.', - 'filetypes_size_help' => 'Maximální povolená velikost nahrávání je :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Soubor s obrázkem nebyl čitelný. Přijatelné druhy souborů jsou jpg, webp, png, gif, a svg. Tento soubor je druhu: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Mapa polí a zpracovávat tento soubor', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Dostupné licence', 'licenses' => 'Licence', 'list_all' => 'Vypsat vše', - 'loading' => 'Načítání, čekejte prosím...', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'Tato hodnota pole nebude uložena v ukázkové instalaci.', 'feature_disabled' => 'Tato funkce byla deaktivována pro demo instalaci.', 'location' => 'Lokalita', @@ -193,7 +193,7 @@ return [ 'logout' => 'Odhlásit', 'lookup_by_tag' => 'Vyhledávání podle značky majetku', 'maintenances' => 'Údržby', - 'manage_api_keys' => 'Spravovat API klíče', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Výrobce', 'manufacturers' => 'Výrobci', 'markdown' => 'Toto pole umožňuje Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Vybrat vše', 'search' => 'Hledat', 'select_category' => 'Vyberte kategorii', - 'select_datasource' => 'Vyberte datový soubor', + 'select_datasource' => 'Select a data source', 'select_department' => 'Vyberte Oddělení', 'select_depreciation' => 'Zvolit typ amortizace', 'select_location' => 'Zvolit místo', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Odepsal:', 'skin' => 'Vzhled', 'webhook_msg_note' => 'Oznámení zavolá webhook', - 'webhook_test_msg' => 'Ah haj! Vypadá to, že vaše :app integrace se Snipe-IT funguje!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'REŽIM DEMO: Některé funkce jsou pro tuto instalaci zakázány.', 'site_name' => 'Název lokality', 'state' => 'Stát', 'status_labels' => 'Označení stavu', + 'status_label' => 'Status Label', 'status' => 'Stav', 'accept_eula' => 'Licenční podmínky', 'supplier' => 'Dodavatel', @@ -339,16 +340,16 @@ return [ 'view_all' => 'zobrazit vše', 'hide_deleted' => 'Skrýt smazané', 'email' => 'Email', - 'do_not_change' => 'Neměnit', - 'bug_report' => 'Nahlásit chybu', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Uživatelská příručka', 'setup_step_1' => 'Krok 1', 'setup_step_2' => 'Krok 2', 'setup_step_3' => 'Krok 3', 'setup_step_4' => 'Krok 4', 'setup_config_check' => 'Kontrola konfigurace', - 'setup_create_database' => 'Vytvořit databázové tabulky', - 'setup_create_admin' => 'Vytvořit administrátora', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Hotovo!', 'bulk_edit_about_to' => 'Tímto upravíte následující možnosti: ', 'checked_out' => 'K výdeji', diff --git a/resources/lang/cs-CZ/localizations.php b/resources/lang/cs-CZ/localizations.php index 87e975098..ea101d88b 100644 --- a/resources/lang/cs-CZ/localizations.php +++ b/resources/lang/cs-CZ/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malajština', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolština', - 'no-NO'=> 'Norština', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Perština', 'pl-PL'=> 'Polština', 'pt-PT'=> 'Portugalština', diff --git a/resources/lang/cs-CZ/validation.php b/resources/lang/cs-CZ/validation.php index efae48ba9..5aeca5e9f 100644 --- a/resources/lang/cs-CZ/validation.php +++ b/resources/lang/cs-CZ/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Pole atributu musí být přítomno.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Vaše současné heslo je nesprávné', 'dumbpwd' => 'Toto heslo je příliš běžné.', 'statuslabel_type' => 'Musíte vybrat platný typ štítku stavu', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/cy-GB/account/general.php b/resources/lang/cy-GB/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/cy-GB/account/general.php +++ b/resources/lang/cy-GB/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/cy-GB/admin/locations/message.php b/resources/lang/cy-GB/admin/locations/message.php index 204368aa6..3c8390328 100644 --- a/resources/lang/cy-GB/admin/locations/message.php +++ b/resources/lang/cy-GB/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Nid yw\'r lleoliad yn bodoli.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Mae\'r lleoliad yma wedi perthnasu i oleiaf un ased a nid yw\'n bosib dileu. Diweddarwch eich asedau i beidio cyfeirio at y lleoliad yma ac yna ceisiwch eto. ', 'assoc_child_loc' => 'Mae\'r lleoliad yma yn rhiant i oleiaf un lleoliad a nid yw\'n bosib dileu. Diweddarwch eich lleoliadau i beidio cyfeirio at y lleoliad yma ac yna ceisiwch eto. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/cy-GB/admin/settings/general.php b/resources/lang/cy-GB/admin/settings/general.php index 5e15b8dc2..8f4a9d1af 100644 --- a/resources/lang/cy-GB/admin/settings/general.php +++ b/resources/lang/cy-GB/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Fersiwn Snipe-IT', 'support_footer' => 'Cefnogi lincs ar waelod tudalenau ', 'support_footer_help' => 'Nodi pwy sydd yn gallu gweld y wybodaeth cefnogi ar canllaw defnyddwyr', diff --git a/resources/lang/cy-GB/admin/settings/message.php b/resources/lang/cy-GB/admin/settings/message.php index cd2d0ae32..a4baa02ae 100644 --- a/resources/lang/cy-GB/admin/settings/message.php +++ b/resources/lang/cy-GB/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Gwall wedi digwydd wrth glirio. ', 'validation_failed' => 'Mae eich cadarnhad i clirio yn anghywir. Teipiwch y gair "DELETE" yn y bocs cadarnhad.', diff --git a/resources/lang/cy-GB/button.php b/resources/lang/cy-GB/button.php index 139926f12..f868c5b4e 100644 --- a/resources/lang/cy-GB/button.php +++ b/resources/lang/cy-GB/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/cy-GB/general.php b/resources/lang/cy-GB/general.php index f4b55f36c..6825af082 100644 --- a/resources/lang/cy-GB/general.php +++ b/resources/lang/cy-GB/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Nwyddau traul', 'country' => 'Gwlad', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Creu newydd', 'created' => 'Eitem wedi\'i Greu', 'created_asset' => 'ased wedi creu', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Mae\'r cymhwysiad hwn yn rhedeg yn y modd cynhyrchu gyda debugging wedi\'i alluogi. Gall hyn ddatgelu data sensitif os yw\'ch cais yn hygyrch i\'r byd y tu allan. Analluoga modd dadfygio trwy osod y APP_DEBUG gwerth yn .env ffeil ifalse.', 'delete' => 'Dileu', 'delete_confirm' => 'Ydych chi\'n sicr eich bod eisiau dileu\'r :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Wedi Dileu', 'delete_seats' => 'Seddi wedi dileu', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'Llythyren Cyntaf Enw Cyntaf Cyfenw (jsmith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Enw cyntaf', 'first_name_format' => 'Enw Cyntaf (jane@example.com)', 'files' => 'Ffeiliau', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Dileu Delwedd', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Uwchlwytho delwedd', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Mewnforio', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Trwyddedau', 'list_all' => 'Rhestru holl', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'Mae\'r nodwedd hon wedi\'i anablu ar gyfer y gosodiad demo.', 'location' => 'Lleoliad', @@ -193,7 +193,7 @@ return [ 'logout' => 'Allgofnodi', 'lookup_by_tag' => 'Chwilio gan tag ased', 'maintenances' => 'Cynnal a Chadw', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Gwneuthyrwr', 'manufacturers' => 'Gwneuthyrwr', 'markdown' => 'Mae\'r maes yma yn derbynmarkdown GitHub.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Dewis Popeth', 'search' => 'Chwilio', 'select_category' => 'Dewis Categorï', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Dewsi Adran', 'select_depreciation' => 'Dewis math o dibrisiant', 'select_location' => 'Dewis lleoliad', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'MODE DEMO: Mae rhai nodweddion wedi analluogi ar gyfer y gosodiad hwn.', 'site_name' => 'Enw Safle', 'state' => 'Talaith', 'status_labels' => 'Labeli Statws', + 'status_label' => 'Status Label', 'status' => 'Statws', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Cyflenwr', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Ebost', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Allan', diff --git a/resources/lang/cy-GB/localizations.php b/resources/lang/cy-GB/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/cy-GB/localizations.php +++ b/resources/lang/cy-GB/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/cy-GB/validation.php b/resources/lang/cy-GB/validation.php index 2e764543d..0900b49f1 100644 --- a/resources/lang/cy-GB/validation.php +++ b/resources/lang/cy-GB/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Rhaid i\'r maes :attribute bod yn presennol.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Mae eich cyfrinair cyfredol yn anghywir', 'dumbpwd' => 'Mae\'r cyfrinair hwnnw\'n rhy gyffredin.', 'statuslabel_type' => 'Rhaid i chi ddewis math label statws dilys', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/da-DK/account/general.php b/resources/lang/da-DK/account/general.php index 13fe5b572..d4935dc8c 100644 --- a/resources/lang/da-DK/account/general.php +++ b/resources/lang/da-DK/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/da-DK/admin/locations/message.php b/resources/lang/da-DK/admin/locations/message.php index 7c583ee89..f447267a0 100644 --- a/resources/lang/da-DK/admin/locations/message.php +++ b/resources/lang/da-DK/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Beliggenhed findes ikke.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Denne placering er i øjeblikket forbundet med mindst ét ​​aktiv og kan ikke slettes. Opdater dine aktiver for ikke længere at henvise til denne placering, og prøv igen.', 'assoc_child_loc' => 'Denne placering er for øjeblikket forælder på mindst et barns placering og kan ikke slettes. Opdater dine placeringer for ikke længere at henvise til denne placering, og prøv igen.', 'assigned_assets' => 'Tildelte aktiver', diff --git a/resources/lang/da-DK/admin/settings/general.php b/resources/lang/da-DK/admin/settings/general.php index 6f6c2faf9..f4261f10a 100644 --- a/resources/lang/da-DK/admin/settings/general.php +++ b/resources/lang/da-DK/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration er valgfri, men endepunktet og kanalen er påkrævet, hvis du ønsker at bruge det. For at konfigurere :app integration, skal du først oprette en indgående webhook på din :app konto. Klik på knappen Test :app Integration for at bekræfte, at dine indstillinger er korrekte, før du gemmer. ', 'webhook_integration_help_button' => 'Når du har gemt dine :app oplysninger, vil en test knap vises.', 'webhook_test_help' => 'Test om din :app integration er konfigureret korrekt. DU SKAL GEM DIN OPDATERET: app INDSTILLINGER FØRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Understøt footer links ', 'support_footer_help' => 'Angiv hvem der kan se links i Snipe-IT Support info og brugermanual', diff --git a/resources/lang/da-DK/admin/settings/message.php b/resources/lang/da-DK/admin/settings/message.php index ec3eb4472..cad65ffc5 100644 --- a/resources/lang/da-DK/admin/settings/message.php +++ b/resources/lang/da-DK/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Ja, gendanne den. Jeg anerkender, at dette vil overskrive alle eksisterende data i databasen. Dette vil også logge ud alle dine eksisterende brugere (inklusive dig).', 'restore_confirm' => 'Er du sikker på, at du vil gendanne din database fra :filnavn?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Der opstod en fejl under udrensning.', 'validation_failed' => 'Din udrensningsbekræftelse er forkert. Indtast ordet "DELETE" i bekræftelsesboksen.', diff --git a/resources/lang/da-DK/button.php b/resources/lang/da-DK/button.php index 4af3d6f32..8a36105ce 100644 --- a/resources/lang/da-DK/button.php +++ b/resources/lang/da-DK/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/da-DK/general.php b/resources/lang/da-DK/general.php index e3abae5fc..8ee2d2efa 100644 --- a/resources/lang/da-DK/general.php +++ b/resources/lang/da-DK/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Forbrugsstoffer', 'country' => 'Land', 'could_not_restore' => 'Fejl under gendannelse af :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Opret ny', 'created' => 'Elementet er oprettet', 'created_asset' => 'skabte aktiver', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Denne applikation kører i produktionstilstand med debugging aktiveret. Dette kan udsætte følsomme data, hvis din ansøgning er tilgængelig for omverdenen. Deaktiver fejlsøgningsmodus ved at indstille værdien APP_DEBUG i din .env fil til false.', 'delete' => 'Slet', 'delete_confirm' => 'Er du sikker på at du vil slette :item?', - 'delete_confirm_no_undo' => 'Er du sikker på du vil slette :item? Dette kan ikke fortrydes.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Slettet', 'delete_seats' => 'Slettede pladser', 'deletion_failed' => 'Sletning mislykkedes', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Efternavn første bogstav i fornavn (smith_j@example.com)', 'firstinitial.lastname' => 'Første bogstav i fornavn.efternavn (j.smith@example.com)', 'firstnamelastinitial' => 'Fornavn førstebogstav i efternavn (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Fornavn', 'first_name_format' => 'Fornavn (jane@example.com)', 'files' => 'Filer', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Slet billede', 'include_deleted' => 'Inkludér slettede aktiver', 'image_upload' => 'Upload billede', - 'filetypes_accepted_help' => 'Accepteret filtype er :types. Filstørrelsen må højst være :size.|Accepterede filtyper er :types. Filstørrelsen må højst være :size.', - 'filetypes_size_help' => 'Filstørrelsen må højst være :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Denne billedfil var ikke læsbar. Accepterede filtyper er jpg, webp, png, gif og svg. Mimetypen for denne fil er: :mimetype.', 'import' => 'Importér', 'import_this_file' => 'Kortfelter og behandl denne fil', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Tilgængelige licenser', 'licenses' => 'Licenser', 'list_all' => 'Vis alle', - 'loading' => 'Indlæser... Vent venligst...', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'Feltværdien vil ikke blive gemt i en demoinstallation.', 'feature_disabled' => 'Denne funktion er blevet deaktiveret til demoinstallationen.', 'location' => 'Lokation', @@ -193,7 +193,7 @@ return [ 'logout' => 'Log ud', 'lookup_by_tag' => 'Søg på aktivkode', 'maintenances' => 'Vedligeholdelse', - 'manage_api_keys' => 'Administrer API-nøgler', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Producent', 'manufacturers' => 'Producenter', 'markdown' => 'Dette felt tillader Github koder.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Vælg alle', 'search' => 'Søg', 'select_category' => 'Vælg en kategori', - 'select_datasource' => 'Vælg en datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Vælg en afdeling', 'select_depreciation' => 'Vælg en afskrivningstype', 'select_location' => 'Vælg en placering', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Godkendt af', 'skin' => 'Skin', 'webhook_msg_note' => 'En notifikation vil blive sendt via webhook', - 'webhook_test_msg' => 'Åh hai! Det ser ud til, at din :app-integration med Snipe-IT fungerer!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Nogle funktioner er deaktiveret for denne installation.', 'site_name' => 'Site Navn', 'state' => 'Stat', 'status_labels' => 'Status labels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Licensaftale', 'supplier' => 'Leverandør', @@ -339,16 +340,16 @@ return [ 'view_all' => 'vis alle', 'hide_deleted' => 'Skjul slettede', 'email' => 'Email', - 'do_not_change' => 'Må ikke ændres', - 'bug_report' => 'Rapporter en fejl', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Brugermanual', 'setup_step_1' => 'Trin 1', 'setup_step_2' => 'Trin 2', 'setup_step_3' => 'Trin 3', 'setup_step_4' => 'Trin 4', 'setup_config_check' => 'Kontrollerer opsætning', - 'setup_create_database' => 'Opret databasetabeller', - 'setup_create_admin' => 'Opret admin-bruger', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Udført!', 'bulk_edit_about_to' => 'Du skal til at redigere følgende: ', 'checked_out' => 'Tjekket ud', diff --git a/resources/lang/da-DK/localizations.php b/resources/lang/da-DK/localizations.php index 755faba88..9399cd259 100644 --- a/resources/lang/da-DK/localizations.php +++ b/resources/lang/da-DK/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malaysisk', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolsk', - 'no-NO'=> 'Norsk', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persisk', 'pl-PL'=> 'Polsk', 'pt-PT'=> 'Portugisisk', diff --git a/resources/lang/da-DK/validation.php b/resources/lang/da-DK/validation.php index da707899a..47cc4ef91 100644 --- a/resources/lang/da-DK/validation.php +++ b/resources/lang/da-DK/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Attributfeltet skal være til stede.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Din nuværende adgangskode er forkert', 'dumbpwd' => 'Denne adgangskode er for almindelig.', 'statuslabel_type' => 'Du skal vælge en gyldig statusetiketype', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/de-DE/account/general.php b/resources/lang/de-DE/account/general.php index e0e64536f..296fae7ee 100644 --- a/resources/lang/de-DE/account/general.php +++ b/resources/lang/de-DE/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Bitte lesen Sie die API Dokumentation um Informationen über die verfügbaren API-Endpunkte zu erhalten.', 'profile_updated' => 'Konto erfolgreich aktualisiert', 'no_tokens' => 'Sie haben noch keinen persönlichen Zugangs-Token erstellt.', + 'enable_sounds' => 'Soundeffekte aktivieren', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/de-DE/admin/accessories/message.php b/resources/lang/de-DE/admin/accessories/message.php index 53d4c3e94..72c00074e 100644 --- a/resources/lang/de-DE/admin/accessories/message.php +++ b/resources/lang/de-DE/admin/accessories/message.php @@ -28,7 +28,7 @@ return array( 'unavailable' => 'Zubehör ist nicht verfügbar, um herausgegeben zu werden. Prüfen Sie die verfügbare Menge', 'user_does_not_exist' => 'Dieser Benutzer existiert nicht. Bitte versuchen Sie es erneut.', 'checkout_qty' => array( - 'lte' => 'Derzeit ist nur ein Zubehör dieses Typs verfügbar, und Sie versuchsen :checkout_qty auszuprobieren. Bitte passen Sie die Herausgabe-Menge oder den Gesamtbestand des Zubehörs an und versuchen Sie es erneut. Es gibt :number_currently_remaining insgesamt verfügbare Zubehör, und Sie versuchen, :checkout_qty herauszugeben. Bitte passen Sie die Herausgabe-Menge oder den Gesamtbestand des Zubehörs an und versuchen Sie es erneut.', + 'lte' => 'Derzeit ist nur ein Zubehör dieses Typs verfügbar, und Sie versuchen :checkout_qty herauszugeben. Bitte passen Sie die Herausgabe-Menge oder den Gesamtbestand des Zubehörs an, und versuchen Sie es erneut. Es gibt :number_currently_remaining insgesamt verfügbare Zubehör, und Sie versuchen, :checkout_qty herauszugeben. Bitte passen Sie die Herausgabe-Menge oder den Gesamtbestand des Zubehörs an und versuchen Sie es erneut.', ), ), diff --git a/resources/lang/de-DE/admin/locations/message.php b/resources/lang/de-DE/admin/locations/message.php index 25de236c5..fd12fdc6d 100644 --- a/resources/lang/de-DE/admin/locations/message.php +++ b/resources/lang/de-DE/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Standort nicht verfügbar.', - 'assoc_users' => 'Dieser Standort kann derzeit nicht gelöscht werden, da er der Standort für mindestens ein Asset oder einen Benutzer ist, ihm Assets zugewiesen sind oder er der übergeordnete Standort eines anderen Standorts ist. Aktualisieren Sie Ihre Modelle, damit diese nicht mehr auf dieses Unternehmen verweisen, und versuchen Sie es erneut. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Dieser Standort ist aktuell mindestens einem Gegenstand zugewiesen und kann nicht gelöscht werden. Bitte entfernen Sie die Standortzuweisung bei den jeweiligen Gegenständen und versuchen Sie es erneut diesen Standort zu entfernen. ', 'assoc_child_loc' => 'Dieser Ort ist aktuell mindestens einem anderen Ort übergeordnet und kann nicht gelöscht werden. Bitte Orte aktualisieren, so dass dieser Standort nicht mehr verknüpft ist und erneut versuchen. ', 'assigned_assets' => 'Zugeordnete Assets', diff --git a/resources/lang/de-DE/admin/settings/general.php b/resources/lang/de-DE/admin/settings/general.php index 0263ea5d8..00afed651 100644 --- a/resources/lang/de-DE/admin/settings/general.php +++ b/resources/lang/de-DE/admin/settings/general.php @@ -6,7 +6,7 @@ return [ 'ad_domain_help' => 'Meistens dieselbe wie die E-Mail Domäne.', 'ad_append_domain_label' => 'Domänenname anhängen', 'ad_append_domain' => 'Domänenname an das Feld Benutzername anhängen', - 'ad_append_domain_help' => 'Benutzer muss nicht "username@domain.local" eingeben, "username" ist ausreichend.', + 'ad_append_domain_help' => 'Der Benutzer muss nicht "username@domain.local" eingeben, "username" ist ausreichend.', 'admin_cc_email' => 'CC Email', 'admin_cc_email_help' => 'Wenn Sie eine Kopie der Rücknahme- / Herausgabe-E-Mails, die an Benutzer gehen auch an zusätzliche E-Mail-Empfänger versenden möchten, geben Sie sie hier ein. Ansonsten lassen Sie dieses Feld leer.', 'admin_settings' => 'Admin-Einstellungen', @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app Integration ist optional, allerdings sind Endpunkt und Kanal erforderlich, wenn Sie sie verwenden möchten. Um die :app Integration zu konfigurieren, musst du zuerst in deinem :app Account einen eingehenden Webhook erstellen. Klicken Sie auf den :app Integration testen -Knopf, um zu bestätigen, dass die Einstellungen vor dem Speichern korrekt sind. ', 'webhook_integration_help_button' => 'Sobald Sie Ihre :app Informationen gespeichert haben, erscheint ein Test-Knopf.', 'webhook_test_help' => 'Testen Sie, ob Ihre :app Integration korrekt konfiguriert ist. SIE MÜSSEN SIE IHRE AKTUELLEN :app EINSTELLUNGEN ZUERST SPEICHERN.', + 'shortcuts_enabled' => 'Shortcuts aktivieren', + 'shortcuts_help_text' => 'Windows: Alt + Access-Taste, Mac: Control + Option + Access-Taste', 'snipe_version' => 'Snipe-IT Version', 'support_footer' => 'Fußzeile Support-Link ', 'support_footer_help' => 'Geben Sie an, wer die Links zum Snipe-IT Support-Info und Benutzerhandbuch sieht', diff --git a/resources/lang/de-DE/admin/settings/message.php b/resources/lang/de-DE/admin/settings/message.php index c5130f0b4..baa42f7dd 100644 --- a/resources/lang/de-DE/admin/settings/message.php +++ b/resources/lang/de-DE/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Ja, wiederherstellen. Ich bestätige, dass dies alle vorhandenen Daten überschreibt, die derzeit in der Datenbank vorhanden sind. Diese Aktion wird auch alle bestehenden Benutzer abmelden (einschließlich Ihnen).', 'restore_confirm' => 'Sind Sie sicher, dass Sie Ihre Datenbank aus :filename wiederherstellen möchten?' ], + 'restore' => [ + 'success' => 'Ihr Systembackup wurde wiederhergestellt. Bitte melden Sie sich erneut an.' + ], 'purge' => [ 'error' => 'Beim Bereinigen ist ein Fehler augetreten. ', 'validation_failed' => 'Falsche Bereinigungsbestätigung. Bitte geben Sie das Wort "DELETE" im Bestätigungsfeld ein.', diff --git a/resources/lang/de-DE/button.php b/resources/lang/de-DE/button.php index eab45acc9..5c0f89782 100644 --- a/resources/lang/de-DE/button.php +++ b/resources/lang/de-DE/button.php @@ -26,7 +26,7 @@ return [ 'clone' => ':item_type duplizieren', 'edit' => ':item_type bearbeiten', 'delete' => ':item_type löschen', - 'restore' => ':item_type löschen', + 'restore' => ':item_type wiederherstellen', 'create' => 'Neue/s :item_type erstellen', 'checkout' => ':item_type auschecken', 'checkin' => ':item_type einchecken', diff --git a/resources/lang/de-DE/general.php b/resources/lang/de-DE/general.php index 579b8529a..26df5b4d7 100644 --- a/resources/lang/de-DE/general.php +++ b/resources/lang/de-DE/general.php @@ -121,22 +121,22 @@ return [ 'exclude_archived' => 'Archivierte Assets ausschließen', 'exclude_deleted' => 'Gelöschte Assets ausschließen', 'example' => 'Beispiel: ', - 'filastname_format' => 'Initial des Vornamen + Nachname (jsmith@example.com)', - 'firstname_lastname_format' => 'Vorname.Nachname (jane.smith@example.com)', - 'firstname_lastname_underscore_format' => 'Vorname_Nachname (max_mustermann@beispiel.com)', - 'lastnamefirstinitial_format' => 'Nachname & Initiale des Vornamens (musterm@beispiel.com)', - 'firstintial_dot_lastname_format' => 'Initiale des Vornamen.Nachname (j.smith@example.com)', - 'firstname_lastname_display' => 'Vorname Nachname (Jane Smith)', - 'lastname_firstname_display' => 'Nachname Vorname (Smith Jane)', + 'filastname_format' => 'Initial des Vornamen & Nachname (emustermann@example.com)', + 'firstname_lastname_format' => 'Vorname.Nachname (erika.mustermann@example.com)', + 'firstname_lastname_underscore_format' => 'Vorname_Nachname (erika_mustermann@example.com)', + 'lastnamefirstinitial_format' => 'Nachname & Initiale des Vornamens (mustere@example.com)', + 'firstintial_dot_lastname_format' => 'Initiale des Vornamen.Nachname (e.mustermann@example.com)', + 'firstname_lastname_display' => 'Vorname Nachname (Max Mustermann)', + 'lastname_firstname_display' => 'Nachname Vorname (Mustermann Max)', 'name_display_format' => 'Name Anzeigeformat', 'first' => 'Erste', - 'firstnamelastname' => 'VornameNachname (ErikaMustermann@beispiel.de)', - 'lastname_firstinitial' => 'Nachname_Initiale des Vornamens (mustermann_e@beispiel.de)', - 'firstinitial.lastname' => 'Initiale des Vornamens.Nachname (e.mustermann@beispiel.de)', - 'firstnamelastinitial' => 'Vorname und Initiale des Nachnamen (erika_m@beispiel.de)', - 'lastnamefirstname' => 'Nachname Vorname (mustermann.erika@example.com)', + 'firstnamelastname' => 'Vorname & Nachname (erikamustermann@example.com)', + 'lastname_firstinitial' => 'Nachname_Initiale des Vornamens (mustermann_e@example.com)', + 'firstinitial.lastname' => 'Initial des Vornamens.Nachname (e.mustermann@example.com)', + 'firstnamelastinitial' => 'Vorname und Initiale des Nachnamen (erikam@example.com)', + 'lastnamefirstname' => 'Nachname.Vorname (mustermann.erika@example.com)', 'first_name' => 'Vorname', - 'first_name_format' => 'Vorname (jane@example.com)', + 'first_name_format' => 'Vorname (erika@example.com)', 'files' => 'Dateien', 'file_name' => 'Datei', 'file_type' => 'Dateityp', @@ -156,11 +156,11 @@ return [ 'image_delete' => 'Bild löschen', 'include_deleted' => 'Gelöschte Gegenstände einbeziehen', 'image_upload' => 'Bild hochladen', - 'filetypes_accepted_help' => 'Akzeptierter Dateityp ist :types. Maximal zulässige Hochlade-Größe ist :size.|Akzeptierte Dateitypen sind :types. Maximal erlaubte Hochlade-Größe ist :size.', + 'filetypes_accepted_help' => 'Akzeptierter Dateityp ist :types. Maximal zulässige Größe ist :size.|Akzeptierte Dateitypen sind :types. Maximal erlaubte Hochlade-Größe ist :size.', 'filetypes_size_help' => 'Maximal erlaubte Hochlade-Größe ist :size.', 'image_filetypes_help' => 'Akzeptierte Dateitypen sind jpg, webp, png, gif, svg, und avif. Die maximal zulässige Upload-Größe beträgt :size.', 'unaccepted_image_type' => 'Diese Bilddatei ist nicht lesbar. Akzeptierte Dateitypen sind jpg, webp, png, gif und svg. Der MIME-Type dieser Datei ist: :mimetype.', - 'import' => 'Importieren', + 'import' => 'Import', 'import_this_file' => 'Felder zuordnen und diese Datei bearbeiten', 'importing' => 'Wird importiert', 'importing_help' => 'Sie können Assets, Zubehör, Lizenzen, Komponenten, Verbrauchsmaterialien und Benutzer mittels CSV-Datei importieren.

Die CSV-Datei sollte kommagetrennt sein und eine Kopfzeile enthalten, die mit den Beispiel-CSVs aus der Dokumentation übereinstimmen.', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Verfügbare Lizenzen', 'licenses' => 'Lizenzen', 'list_all' => 'Alle auflisten', - 'loading' => 'Wird geladen... Bitte warten....', + 'loading' => 'Wird geladen... Bitte warten...', 'lock_passwords' => 'Dieser Feldwert wird in einer Demo-Installation nicht gespeichert.', 'feature_disabled' => 'Dieses Feature wurde für die Demo-Installation deaktiviert.', 'location' => 'Standort', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Freigegeben von', 'skin' => 'Skin', 'webhook_msg_note' => 'Eine Benachrichtigung wird über den Webhook gesendet', - 'webhook_test_msg' => 'Oh hey! Sieht so aus, als ob Ihre :app Integration mit Snipe-IT funktioniert!', + 'webhook_test_msg' => 'Oh hi! Sieht so aus, als ob Ihre :app Integration mit Snipe-IT funktioniert!', 'some_features_disabled' => 'DEMO-MODE: Einige Funktionen sind für diese Installation deaktiviert.', 'site_name' => 'Seitenname', 'state' => 'Bundesland', 'status_labels' => 'Statusbezeichnungen', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Annahmeerklärung', 'supplier' => 'Lieferant', diff --git a/resources/lang/de-DE/localizations.php b/resources/lang/de-DE/localizations.php index e261e982f..e674b2c5e 100644 --- a/resources/lang/de-DE/localizations.php +++ b/resources/lang/de-DE/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malaiisch', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolisch', - 'no-NO'=> 'Norwegisch', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegisch Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persisch', 'pl-PL'=> 'Polnisch', 'pt-PT'=> 'Portugiesisch', diff --git a/resources/lang/de-DE/mail.php b/resources/lang/de-DE/mail.php index ab6a55a32..24989de9c 100644 --- a/resources/lang/de-DE/mail.php +++ b/resources/lang/de-DE/mail.php @@ -88,7 +88,7 @@ return [ 'user' => 'Benutzer', 'username' => 'Benutzername', 'unaccepted_asset_reminder' => 'Sie haben nicht akzeptierte Assets.', - 'welcome' => 'Wilkommen, :name', + 'welcome' => 'Willkommen, :name', 'welcome_to' => 'Willkommen bei :web!', 'your_assets' => 'Ihre Assets anzeigen', 'your_credentials' => 'Ihre Snipe-IT Anmeldedaten', diff --git a/resources/lang/de-DE/validation.php b/resources/lang/de-DE/validation.php index b88ac5281..b308da9d7 100644 --- a/resources/lang/de-DE/validation.php +++ b/resources/lang/de-DE/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'Das Feld :attribute muss mindestens ein Symbol enthalten.', 'uncompromised' => 'Das angegebene :attribute ist in einem Datenleck aufgetaucht. Bitte wählen Sie ein anderes :attribute.', ], + 'percent' => 'Bei einer prozentualen Abschreibung muss der Mindestabschreibungswert zwischen 0 und 100 liegen.', + 'present' => ':attribute muss vorhanden sein.', 'present_if' => 'Das Feld :attribute muss vorhanden sein, wenn :other :value ist.', 'present_unless' => 'Das Feld :attribute muss vorhanden sein, es sei denn, :other ist :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Ihr derzeitiges Passwort ist nicht korrekt', 'dumbpwd' => 'Das Passwort ist zu gebräuchlich.', 'statuslabel_type' => 'Sie müssen einen gültigen Statuslabel-Typ auswählen', + 'custom_field_not_found' => 'Dieses Feld scheint nicht zu existieren. Bitte überprüfen Sie Ihre benutzerdefinierten Feldnamen noch einmal.', + 'custom_field_not_found_on_model' => 'Dieses Feld scheint vorhanden zu sein, ist aber im Feldsatz dieses Asset-Modells nicht verfügbar.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/de-if/account/general.php b/resources/lang/de-if/account/general.php index 41e6a9908..6fea51b4f 100644 --- a/resources/lang/de-if/account/general.php +++ b/resources/lang/de-if/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Bitte lese die API Dokumentation um Informationen über die verfügbaren API-Endpunkte zu bekommen.', 'profile_updated' => 'Konto erfolgreich aktualisiert', 'no_tokens' => 'Sie haben keine persönlichen Zugangsschlüssel erstellt.', + 'enable_sounds' => 'Soundeffekte aktivieren', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/de-if/admin/locations/message.php b/resources/lang/de-if/admin/locations/message.php index 138808be6..edff9d7d5 100644 --- a/resources/lang/de-if/admin/locations/message.php +++ b/resources/lang/de-if/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Standort existiert nicht.', - 'assoc_users' => 'Der Standort kann gerade nicht gelöscht werden, weil mindestens ein Asset oder ein Benutzer damit verbunden ist, da ihm Assets zugeordnet sind, oder er der Hauptstandort für einen anderen Standort ist. Aktualisiere deine Modelle, sodass sie nicht mehr auf diesen Standort verweisen, und probier’s dann nochmal. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Dieser Standort ist mindestens einem Gegenstand zugewiesen und kann nicht gelöscht werden. Bitte entferne die Standortzuweisung bei den jeweiligen Gegenständen und versuche erneut, diesen Standort zu entfernen. ', 'assoc_child_loc' => 'Dieser Standort ist mindestens einem anderen Ort übergeordnet und kann nicht gelöscht werden. Bitte aktualisiere Deine Standorte, so dass dieser Standort nicht mehr verknüpft ist, und versuche es erneut. ', 'assigned_assets' => 'Zugeordnete Assets', diff --git a/resources/lang/de-if/admin/settings/general.php b/resources/lang/de-if/admin/settings/general.php index f162ba2c1..dd7c6ed08 100644 --- a/resources/lang/de-if/admin/settings/general.php +++ b/resources/lang/de-if/admin/settings/general.php @@ -6,7 +6,7 @@ return [ 'ad_domain_help' => 'Dies ist manchmal dasselbe wie Deine E-Mail-Domain, aber nicht immer.', 'ad_append_domain_label' => 'Domänenname anhängen', 'ad_append_domain' => 'Domänenname an das Feld Benutzername anhängen', - 'ad_append_domain_help' => 'Benutzer muss nicht "username@domain.local" eingeben, "username" ist ausreichend.', + 'ad_append_domain_help' => 'Der Benutzer muss nicht "username@domain.local" eingeben, "username" ist ausreichend.', 'admin_cc_email' => 'CC Email', 'admin_cc_email_help' => 'Wenn Du eine Kopie der Rücknahme-/Herausgabe-E-Mails, die an Benutzer gehen, auch an zusätzliche E-Mail-Empfänger versenden möchtest, gebe sie hier ein. Ansonsten lass dieses Feld blank.', 'admin_settings' => 'Admin-Einstellungen', @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app Integration ist optional, allerdings sind Endpunkt und Kanal erforderlich, wenn du sie verwenden möchtet. Um die :app Integration zu konfigurieren, musst du zuerst in deinem :app Account einen eingehenden Webhook erstellen. Klicke auf den :app Integration testen-Knopf, um zu bestätigen, dass die Einstellungen vor dem Speichern korrekt sind. ', 'webhook_integration_help_button' => 'Sobald die :app Einstellungen gespeichert wurden, erscheint eine Schaltfläche zum testen.', 'webhook_test_help' => 'Teste, ob deine :app Integration korrekt konfiguriert ist. DIE AKTUELLEN :app EINSTELLUNGEN MÜSSEN ZUERST GESPEICHERT WERDEN.', + 'shortcuts_enabled' => 'Shortcuts aktivieren', + 'shortcuts_help_text' => 'Windows: Alt + Access-Taste, Mac: Control + Option + Access-Taste', 'snipe_version' => 'Snipe-IT Version', 'support_footer' => 'Support-Link in der Fußzeile ', 'support_footer_help' => 'Lege fest, wer die Links zu Snipe-IT Support-Information und Benutzerhandbuch sieht', diff --git a/resources/lang/de-if/admin/settings/message.php b/resources/lang/de-if/admin/settings/message.php index 1748701be..7c16900f4 100644 --- a/resources/lang/de-if/admin/settings/message.php +++ b/resources/lang/de-if/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Ja, wiederherstellen. Ich bestätige, dass dies alle vorhandenen Daten überschreibt, die derzeit in der Datenbank vorhanden sind. Diese Aktion wird auch alle bestehenden Benutzer abmelden (einschließlich Dir).', 'restore_confirm' => 'Bist Du sicher, dass Du Deine Datenbank aus :filename wiederherstellen möchten?' ], + 'restore' => [ + 'success' => 'Dein Systembackup wurde wiederhergestellt. Bitte melde dich erneut an.' + ], 'purge' => [ 'error' => 'Beim Bereinigen ist ein Fehler augetreten. ', 'validation_failed' => 'Falsche Bereinigungsbestätigung. Bitte gib das Wort "DELETE" im Bestätigungsfeld ein.', diff --git a/resources/lang/de-if/button.php b/resources/lang/de-if/button.php index 9f0bf89dd..b0ef0e593 100644 --- a/resources/lang/de-if/button.php +++ b/resources/lang/de-if/button.php @@ -26,7 +26,7 @@ return [ 'clone' => ':item_type duplizieren', 'edit' => ':item_type bearbeiten', 'delete' => ':item_type löschen', - 'restore' => ':item_type löschen', + 'restore' => ':item_type wiederherstellen', 'create' => 'Neue/s :item_type erstellen', 'checkout' => ':item_type herausgeben', 'checkin' => ':item_type zurücknehmen', diff --git a/resources/lang/de-if/general.php b/resources/lang/de-if/general.php index 9745dd3a0..d2e1b9f3b 100644 --- a/resources/lang/de-if/general.php +++ b/resources/lang/de-if/general.php @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Diese Anwendung läuft im Produktionsmodus mit debugging aktiviert. Dies kann sensible Daten verfügbar machen, wenn Ihre Anwendung öffentlich zugänglich ist. Deaktiviere den Debug-Modus, indem du den APP_DEBUG-Wert in der .env Datei auf false setzt.', 'delete' => 'Löschen', 'delete_confirm' => 'Bist du sicher, dass du :item löschen möchtest?', - 'delete_confirm_no_undo' => 'Möchtest du :item wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.', + 'delete_confirm_no_undo' => 'Bist Du sicher, dass Du :item löschen möchtest? Dies kann nicht rückgängig gemacht werden.', 'deleted' => 'Gelöscht', 'delete_seats' => 'Gelöschte Lizenzen', 'deletion_failed' => 'Löschen fehlgeschlagen', @@ -121,22 +121,22 @@ return [ 'exclude_archived' => 'Archivierte Assets ausschließen', 'exclude_deleted' => 'Gelöschte Assets ausschließen', 'example' => 'Beispiel: ', - 'filastname_format' => 'Initial des VornamenNachname (emustermann@beispiel.de)', - 'firstname_lastname_format' => 'Vorname.Nachname (Erika.Mustermann@beispiel.de)', - 'firstname_lastname_underscore_format' => 'Vorname Nachname (Erika_Mustermann@beispiel.de)', - 'lastnamefirstinitial_format' => 'NachnameInitial des Vornamens (mustermanne@beispiel.de)', - 'firstintial_dot_lastname_format' => 'Initial des Vorname.Nachname (e.mustermann@beispiel.de)', - 'firstname_lastname_display' => 'Vorname Nachname (Jane Smith)', - 'lastname_firstname_display' => 'Nachname Vorname (Smith Jane)', + 'filastname_format' => 'Initial des Vornamen & Nachname (emustermann@example.com)', + 'firstname_lastname_format' => 'Vorname.Nachname (erika.mustermann@example.com)', + 'firstname_lastname_underscore_format' => 'Vorname_Nachname (erika_mustermann@example.com)', + 'lastnamefirstinitial_format' => 'Nachname & Initiale des Vornamens (mustere@example.com)', + 'firstintial_dot_lastname_format' => 'Initiale des Vornamen.Nachname (e.mustermann@example.com)', + 'firstname_lastname_display' => 'Vorname Nachname (Max Mustermann)', + 'lastname_firstname_display' => 'Nachname Vorname (Mustermann Max)', 'name_display_format' => 'Name Anzeigeformat', 'first' => 'Erste', - 'firstnamelastname' => 'VornameNachname (ErikaMustermann@beispiel.de)', - 'lastname_firstinitial' => 'Nachname_Initial des Vornamens (mustermann_e@beispiel.de)', - 'firstinitial.lastname' => 'Initial des Vornamens.Nachname (e.mustermann@beispiel.de)', - 'firstnamelastinitial' => 'Vorname_Initial des Nachnamen (erika_m@beispiel.de)', - 'lastnamefirstname' => 'Nach- und Vorname (mustermann.jana@example.com)', + 'firstnamelastname' => 'Vorname & Nachname (erikamustermann@example.com)', + 'lastname_firstinitial' => 'Nachname_Initial des Vornamens (mustermann_e@example.com)', + 'firstinitial.lastname' => 'Initial des Vornamens.Nachname (e.mustermann@example.com)', + 'firstnamelastinitial' => 'Vorname & Initiale des Nachnamen (erikam@example.com)', + 'lastnamefirstname' => 'Nachname.Vorname (smith.jane@example.com)', 'first_name' => 'Vorname', - 'first_name_format' => 'Vorname (erika@beispiel.de)', + 'first_name_format' => 'Vorname (erika@example.com)', 'files' => 'Dateien', 'file_name' => 'Datei', 'file_type' => 'Dateityp', @@ -156,8 +156,8 @@ return [ 'image_delete' => 'Bild löschen', 'include_deleted' => 'Gelöschte Assets einbeziehen', 'image_upload' => 'Bild hochladen', - 'filetypes_accepted_help' => 'Akzeptierter Dateityp ist :types. Maximal zulässige Upload-Größe ist :size.|Akzeptierte Dateitypen sind :types. Maximal erlaubte Upload-Größe ist :size.', - 'filetypes_size_help' => 'Maximal erlaubte Upload-Größe ist :size.', + 'filetypes_accepted_help' => 'Akzeptierter Dateityp ist :types. Maximal zulässige Größe ist :size.|Akzeptierte Dateitypen sind :types. Maximal erlaubte Hochlade-Größe ist :size.', + 'filetypes_size_help' => 'Die maximal erlaubte Upload-Größe ist :size.', 'image_filetypes_help' => 'Akzeptierte Dateitypen sind jpg, webp, png, gif, svg, und avif. Die maximal zulässige Upload-Größe beträgt :size.', 'unaccepted_image_type' => 'Diese Bilddatei ist nicht lesbar. Akzeptierte Dateitypen sind jpg, webp, png, gif und svg. Der MIME-Type dieser Datei ist: :mimetype.', 'import' => 'Import', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Verfügbare Lizenzen', 'licenses' => 'Lizenzen', 'list_all' => 'Alle auflisten', - 'loading' => 'Wird geladen, bitte warten...', + 'loading' => 'Wird geladen... Bitte warten...', 'lock_passwords' => 'Dieser Feldwert wird in einer Demo-Installation nicht gespeichert.', 'feature_disabled' => 'Diese Funktion wurde für die Demo-Installation deaktiviert.', 'location' => 'Standort', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Unterschrieben von', 'skin' => 'Skin', 'webhook_msg_note' => 'Eine Benachrichtigung wird über den Webhook gesendet', - 'webhook_test_msg' => 'Oh hey! Sieht so aus, als ob Deine :app Integration mit Snipe-IT funktioniert!', + 'webhook_test_msg' => 'Oh hi! Sieht so aus, als ob Deine :app Integration mit Snipe-IT funktioniert!', 'some_features_disabled' => 'Einige Funktionen sind für den DEMO-Modus deaktiviert.', 'site_name' => 'Seitenname', 'state' => 'Bundesland', 'status_labels' => 'Statusbezeichnungen', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Annahmeerklärung', 'supplier' => 'Lieferant', diff --git a/resources/lang/de-if/localizations.php b/resources/lang/de-if/localizations.php index b351a2e49..061b7f779 100644 --- a/resources/lang/de-if/localizations.php +++ b/resources/lang/de-if/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malaiisch', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolisch', - 'no-NO'=> 'Norwegisch', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegisch Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persisch', 'pl-PL'=> 'Polnisch', 'pt-PT'=> 'Portugiesisch', diff --git a/resources/lang/de-if/mail.php b/resources/lang/de-if/mail.php index 430ab69fd..94122e1f0 100644 --- a/resources/lang/de-if/mail.php +++ b/resources/lang/de-if/mail.php @@ -88,7 +88,7 @@ return [ 'user' => 'Benutzer', 'username' => 'Benutzername', 'unaccepted_asset_reminder' => 'Sie haben nicht akzeptierte Assets.', - 'welcome' => 'Wilkommen, :name', + 'welcome' => 'Willkommen, :name', 'welcome_to' => 'Willkommen bei :web!', 'your_assets' => 'Deine Assets anzeigen', 'your_credentials' => 'Ihre Snipe-IT Anmeldedaten', diff --git a/resources/lang/de-if/validation.php b/resources/lang/de-if/validation.php index 32b14dbae..217b25687 100644 --- a/resources/lang/de-if/validation.php +++ b/resources/lang/de-if/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'Das Feld :attribute muss mindestens ein Symbol enthalten.', 'uncompromised' => 'Das angegebene :attribute ist in einem Datenleck aufgetaucht. Bitte wählen Sie ein anderes :attribute.', ], + 'percent' => 'Bei einer prozentualen Abschreibung muss der Mindestabschreibungswert zwischen 0 und 100 liegen.', + 'present' => ':attribute muss vorhanden sein.', 'present_if' => 'Das Feld :attribute muss vorhanden sein, wenn :other :value ist.', 'present_unless' => 'Das Feld :attribute muss vorhanden sein, es sei denn, :other ist :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Ihr derzeitiges Passwort ist nicht korrekt', 'dumbpwd' => 'Das Passwort ist zu gebräuchlich.', 'statuslabel_type' => 'Du musst einen gültigen Statuslabel-Typ auswählen', + 'custom_field_not_found' => 'Dieses Feld scheint nicht zu existieren. Bitte überprüfe deine benutzerdefinierten Feldnamen noch einmal.', + 'custom_field_not_found_on_model' => 'Dieses Feld scheint vorhanden zu sein, ist aber im Feldsatz dieses Asset-Modells nicht verfügbar.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/el-GR/account/general.php b/resources/lang/el-GR/account/general.php index 11d113298..1d9739ea1 100644 --- a/resources/lang/el-GR/account/general.php +++ b/resources/lang/el-GR/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/el-GR/admin/locations/message.php b/resources/lang/el-GR/admin/locations/message.php index e1f784000..54138905f 100644 --- a/resources/lang/el-GR/admin/locations/message.php +++ b/resources/lang/el-GR/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Η τοποθεσία δεν υπάρχει.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Αυτή η τοποθεσία συσχετίζεται προς το παρόν με τουλάχιστον ένα στοιχείο και δεν μπορεί να διαγραφεί. Ενημερώστε τα στοιχεία σας ώστε να μην αναφέρονται πλέον στην τοποθεσία αυτή και να προσπαθήσετε ξανά.', 'assoc_child_loc' => 'Αυτή η τοποθεσία είναι αυτήν τη στιγμή γονέας τουλάχιστον μιας τοποθεσίας παιδιού και δεν μπορεί να διαγραφεί. Ενημερώστε τις τοποθεσίες σας ώστε να μην αναφέρονται πλέον σε αυτήν την τοποθεσία και δοκιμάστε ξανά.', 'assigned_assets' => 'Αντιστοιχισμένα Στοιχεία Ενεργητικού', diff --git a/resources/lang/el-GR/admin/settings/general.php b/resources/lang/el-GR/admin/settings/general.php index 17e0b7cb9..40ba52dba 100644 --- a/resources/lang/el-GR/admin/settings/general.php +++ b/resources/lang/el-GR/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Μόλις αποθηκεύσετε τις πληροφορίες :app, θα εμφανιστεί ένα κουμπί δοκιμής.', 'webhook_test_help' => 'Ελέγξτε αν η :app ενσωμάτωση σας έχει ρυθμιστεί σωστά. ΠΡΕΠΕΙ ΝΑ ΑΠΟΘΗΚΕΥΣΕΤΕ ΝΑ ΑΝΑΦΕΡΕΤΑΙ :app ΡΥΘΜΙΣΕΙΣ ΠΡΩΤΩΝ.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-It έκδοση', 'support_footer' => 'Σύνδεσμοι Υποσέλιδου Υποστήριξης ', 'support_footer_help' => 'Καθορίστε ποιος βλέπει τους συνδέσμους με τις πληροφορίες υποστήριξης Snipe-IT και το εγχειρίδιο χρήσης', diff --git a/resources/lang/el-GR/admin/settings/message.php b/resources/lang/el-GR/admin/settings/message.php index 02f611d35..68595522e 100644 --- a/resources/lang/el-GR/admin/settings/message.php +++ b/resources/lang/el-GR/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Ναι, να το αποκαταστήσω, αναγνωρίζω ότι αυτό θα αντικαταστήσει όλα τα υπάρχοντα δεδομένα που υπάρχουν αυτή τη στιγμή στη βάση δεδομένων. Αυτό θα αποσυνδεθεί επίσης από όλους τους υπάρχοντες χρήστες (συμπεριλαμβανομένων και εσείς).', 'restore_confirm' => 'Είστε βέβαιοι ότι θέλετε να επαναφέρετε τη βάση δεδομένων σας από :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Παρουσιάστηκε ένα σφάλμα κατά την εκκαθάριση. ', 'validation_failed' => 'Η επιβεβαίωση καθαρισμού είναι εσφαλμένη. Παρακαλούμε πληκτρολογήστε τη λέξη «Διαγραφή» στο πλαίσιο επιβεβαίωσης.', diff --git a/resources/lang/el-GR/button.php b/resources/lang/el-GR/button.php index 807565475..4aafe4b4c 100644 --- a/resources/lang/el-GR/button.php +++ b/resources/lang/el-GR/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/el-GR/general.php b/resources/lang/el-GR/general.php index 6cc291397..19dcb6145 100644 --- a/resources/lang/el-GR/general.php +++ b/resources/lang/el-GR/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Αναλώσιμα', 'country' => 'Χώρα', 'could_not_restore' => 'Σφάλμα επαναφοράς :item_type: :error', - 'not_deleted' => 'Το :item_type δεν διαγράφεται έτσι ώστε να μην μπορεί να αποκατασταθεί', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Δημιουργία νέου', 'created' => 'Το αντικείμενο δημιουργήθηκε', 'created_asset' => 'δημιουργία παγίου', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Αυτή η εφαρμογή εκτελείται σε λειτουργία παραγωγής με ενεργοποιημένο τον εντοπισμό σφαλμάτων. Αυτό μπορεί να εκθέσει τα ευαίσθητα δεδομένα, εάν η εφαρμογή σας είναι προσβάσιμη στον έξω κόσμο. Απενεργοποιήσετε την κατάσταση λειτουργίας εντοπισμού σφαλμάτων, ορίζοντας την τιμή APP_DEBUG στο αρχείο .env για να false.', 'delete' => 'Διαγραφή', 'delete_confirm' => 'Επιθυμείτε την διαφραφή :item;', - 'delete_confirm_no_undo' => 'Είστε βέβαιοι ότι θέλετε να διαγράψετε :αντικείμενο? Αυτό δεν μπορεί να αναιρεθεί.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Διαγράφηκε', 'delete_seats' => 'Διαγραμμένα καθίσματα', 'deletion_failed' => 'Αποτυχία διαγραφής', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Πρώτο Όνομα Αρχικό (smith_j@example.com)', 'firstinitial.lastname' => 'Πρώτο Αρχικό Όνομα (j.smith@example.com)', 'firstnamelastinitial' => 'Επίθετο Όνομα (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Όνομα', 'first_name_format' => 'Όνομα (jane@example.com)', 'files' => 'Αρχεία', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Διαγραφή εικόνας', 'include_deleted' => 'Συμπερίληψη Διαγραμμένων Αντικειμένων', 'image_upload' => 'Μεταφόρτωση εικόνας', - 'filetypes_accepted_help' => 'Ο τύπος αρχείου είναι :types. Το μέγιστο επιτρεπόμενο μέγεθος μεταφορτώσεων είναι :size."Οι αποδεκτοί τύποι αρχείων είναι :types. Το μέγιστο επιτρεπόμενο μέγεθος αποστολής είναι :size.', - 'filetypes_size_help' => 'Το μέγιστο επιτρεπόμενο μέγεθος ανεβάσματος είναι :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Αυτό το αρχείο εικόνας δεν ήταν αναγνώσιμο. Οι αποδεκτοί τύποι αρχείων είναι jpg, webp, png, gif, και svg. Ο τύπος mime αυτού του αρχείου είναι: :mimetype.', 'import' => 'Εισαγωγή', 'import_this_file' => 'Χάρτης πεδίων και επεξεργασία αυτού του αρχείου', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Διαθέσιμες άδειες', 'licenses' => 'Άδειες', 'list_all' => 'Λίστα όλων', - 'loading' => 'Φόρτωση... παρακαλώ περιμένετε...', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'Αυτή η τιμή πεδίου δεν θα αποθηκευτεί σε μια εγκατάσταση επίδειξης.', 'feature_disabled' => 'Αυτή η λειτουργία έχει απενεργοποιηθεί για την εγκατάσταση επίδειξης.', 'location' => 'Τοποθεσία', @@ -193,7 +193,7 @@ return [ 'logout' => 'Αποσύνδεση', 'lookup_by_tag' => 'Αναζήτηση με ετικέτα περιουσιακών στοιχείων', 'maintenances' => 'Συντήρηση', - 'manage_api_keys' => 'Διαχείριση Κλειδιών Api', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Κατασκευαστής', 'manufacturers' => 'Κατασκευαστές', 'markdown' => 'Αυτό το πεδίο επιτρέπει Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Επιλογή Όλων', 'search' => 'Αναζήτηση', 'select_category' => 'Επιλέξτε μια κατηγορία', - 'select_datasource' => 'Επιλέξτε ένα Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Επιλέξτε ένα Τμήμα', 'select_depreciation' => 'Επιλέξτε τύπο απόσβεσης', 'select_location' => 'Επιλέξτε τοποθεσία', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Υπογραφή Από', 'skin' => 'Θέμα', 'webhook_msg_note' => 'Μια ειδοποίηση θα σταλεί μέσω webhook', - 'webhook_test_msg' => 'Ωχ χάλι! Φαίνεται σαν την ενσωμάτωσή σας :app με Snipe-IT λειτουργεί!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'ΛΕΙΤΟΥΡΓΙΑ DEMO: Ορισμένες λειτουργίες είναι απενεργοποιημένες για αυτήν την εγκατάσταση.', 'site_name' => 'Όνομα ιστότοπου', 'state' => 'Κατάσταση', 'status_labels' => 'Ετικέτα Κατάστασης', + 'status_label' => 'Status Label', 'status' => 'Κατάσταση', 'accept_eula' => 'Συμφωνία Αποδοχής', 'supplier' => 'Προμηθευτής', @@ -339,16 +340,16 @@ return [ 'view_all' => 'προβολή όλων', 'hide_deleted' => 'Απόκρυψη Διαγραμμένων', 'email' => 'Ηλεκτρονικό ταχυδρομείο', - 'do_not_change' => 'Να Μη Γίνει Αλλαγή', - 'bug_report' => 'Αναφορά σφάλματος', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Εγχειρίδιο Χρήστη', 'setup_step_1' => 'Βήμα 1', 'setup_step_2' => 'Βήμα 2', 'setup_step_3' => 'Βήμα 3', 'setup_step_4' => '4Ο Βήμα.', 'setup_config_check' => 'Έλεγχος Ρύθμισης', - 'setup_create_database' => 'Δημιουργία Πινάκων Βάσης Δεδομένων', - 'setup_create_admin' => 'Δημιουργία Χρήστη Διαχειριστή', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Ολοκληρώθηκε!', 'bulk_edit_about_to' => 'Πρόκειται να επεξεργαστείτε τα ακόλουθα: ', 'checked_out' => 'Checked Out', diff --git a/resources/lang/el-GR/localizations.php b/resources/lang/el-GR/localizations.php index 739d55b19..d0b955c8a 100644 --- a/resources/lang/el-GR/localizations.php +++ b/resources/lang/el-GR/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Μαλαισιανά', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Μογγολικά', - 'no-NO'=> 'Νορβηγικά', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Περσικά', 'pl-PL'=> 'Πολωνικά', 'pt-PT'=> 'Πορτογαλικά', diff --git a/resources/lang/el-GR/validation.php b/resources/lang/el-GR/validation.php index fd93f6d97..9f4921e2d 100644 --- a/resources/lang/el-GR/validation.php +++ b/resources/lang/el-GR/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Πρέπει να υπάρχει το πεδίο ιδιοτήτων: attribute.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Ο τρέχων κωδικός πρόσβασης είναι εσφαλμένος', 'dumbpwd' => 'Αυτός ο κωδικός πρόσβασης είναι πολύ συνηθισμένος.', 'statuslabel_type' => 'Πρέπει να επιλέξετε έναν έγκυρο τύπο ετικέτας κατάστασης', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/en-GB/account/general.php b/resources/lang/en-GB/account/general.php index e33054652..d55d06c7b 100644 --- a/resources/lang/en-GB/account/general.php +++ b/resources/lang/en-GB/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/en-GB/admin/locations/message.php b/resources/lang/en-GB/admin/locations/message.php index 8121b8068..6226c71ab 100644 --- a/resources/lang/en-GB/admin/locations/message.php +++ b/resources/lang/en-GB/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Location does not exist.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'This location is currently associated with at least one asset and cannot be deleted. Please update your assets to no longer reference this location and try again. ', 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/en-GB/admin/settings/general.php b/resources/lang/en-GB/admin/settings/general.php index 32eb51f29..2762238ec 100644 --- a/resources/lang/en-GB/admin/settings/general.php +++ b/resources/lang/en-GB/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/en-GB/admin/settings/message.php b/resources/lang/en-GB/admin/settings/message.php index c9b0f3421..c91575144 100644 --- a/resources/lang/en-GB/admin/settings/message.php +++ b/resources/lang/en-GB/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please log in again.' + ], 'purge' => [ 'error' => 'An error has occurred while purging. ', 'validation_failed' => 'Your purge confirmation is incorrect. Please type the word "DELETE" in the confirmation box.', diff --git a/resources/lang/en-GB/button.php b/resources/lang/en-GB/button.php index 51c54bb9b..8a838e8fa 100644 --- a/resources/lang/en-GB/button.php +++ b/resources/lang/en-GB/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/en-GB/general.php b/resources/lang/en-GB/general.php index 9b9197d3e..353085d09 100644 --- a/resources/lang/en-GB/general.php +++ b/resources/lang/en-GB/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'First Name', 'first_name_format' => 'First Name (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Delete Image', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Upload Image', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licences available', 'licenses' => 'Licenses', 'list_all' => 'List All', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'This feature has been disabled for the demo installation.', 'location' => 'Location', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logout', 'lookup_by_tag' => 'Lookup by Asset Tag', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Manufacturer', 'manufacturers' => 'Manufacturers', 'markdown' => 'This field allows Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Search', 'select_category' => 'Select a Category', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Select a Department', 'select_depreciation' => 'Select a Depreciation Type', 'select_location' => 'Select a Location', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hello! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Site Name', 'state' => 'State', 'status_labels' => 'Status Labels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Supplier', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Email', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', diff --git a/resources/lang/en-GB/localizations.php b/resources/lang/en-GB/localizations.php index 2dfb05a2a..ae75588e7 100644 --- a/resources/lang/en-GB/localizations.php +++ b/resources/lang/en-GB/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/en-GB/validation.php b/resources/lang/en-GB/validation.php index b33548e2f..634170791 100644 --- a/resources/lang/en-GB/validation.php +++ b/resources/lang/en-GB/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'The :attribute field must be present.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Your current password is incorrect', 'dumbpwd' => 'That password is too common.', 'statuslabel_type' => 'You must select a valid status label type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/en-ID/account/general.php b/resources/lang/en-ID/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/en-ID/account/general.php +++ b/resources/lang/en-ID/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/en-ID/admin/locations/message.php b/resources/lang/en-ID/admin/locations/message.php index e74310ae8..cabfa697b 100644 --- a/resources/lang/en-ID/admin/locations/message.php +++ b/resources/lang/en-ID/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Lokasi tidak ada.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Saat ini kategori ini terkait dengan setidaknya satu pengguna dan tidak dapat dihapus. Silahkan perbaharui pengguna anda untuk tidak lagi tereferensi dengan kategori ini dan coba lagi. ', 'assoc_child_loc' => 'Lokasi ini saat ini merupakan induk dari setidaknya satu lokasi anak dan tidak dapat dihapus. Perbarui lokasi Anda agar tidak lagi merujuk lokasi ini dan coba lagi. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/en-ID/admin/models/message.php b/resources/lang/en-ID/admin/models/message.php index 571d203f8..4b69b6df0 100644 --- a/resources/lang/en-ID/admin/models/message.php +++ b/resources/lang/en-ID/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'Model ini saat ini dikaitkan dengan satu atau lebih aset dan tidak dapat dihapus. Harap hapus asetnya, lalu coba hapus lagi. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model tidak dibuat, silahkan dicoba lagi.', diff --git a/resources/lang/en-ID/admin/settings/general.php b/resources/lang/en-ID/admin/settings/general.php index 21461862f..bcc02ebef 100644 --- a/resources/lang/en-ID/admin/settings/general.php +++ b/resources/lang/en-ID/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Versi Snipe-IT', 'support_footer' => 'Link footer pendukung ', 'support_footer_help' => 'Tentukan siapa yang melihat tautan ke informasi pendukung dan panduan pengguna Snipe-IT', diff --git a/resources/lang/en-ID/admin/settings/message.php b/resources/lang/en-ID/admin/settings/message.php index 7ce0ee8d8..259409df8 100644 --- a/resources/lang/en-ID/admin/settings/message.php +++ b/resources/lang/en-ID/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please log in again.' + ], 'purge' => [ 'error' => 'Terjadi kesalahan saat membersihkan. ', 'validation_failed' => 'Konfirmasi pembersihan Anda salah Ketikkan kata "HAPUS" di kotak konfirmasi.', diff --git a/resources/lang/en-ID/button.php b/resources/lang/en-ID/button.php index fcaab0cbf..dc03568d1 100644 --- a/resources/lang/en-ID/button.php +++ b/resources/lang/en-ID/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/en-ID/general.php b/resources/lang/en-ID/general.php index 7a7ba7600..daf32dd29 100644 --- a/resources/lang/en-ID/general.php +++ b/resources/lang/en-ID/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Dapat dikonsumsi', 'country' => 'Negara', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Buat baru', 'created' => 'Item telah dibuat', 'created_asset' => 'buat aset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Aplikasi ini berjalan dalam mode produksi dengan debugging diaktifkan. Hal ini dapat mengekspos data sensitif jika aplikasi Anda dapat diakses oleh dunia luar. Nonaktifkan mode debug dengan menetapkan nilai APP_DEBUG value in your .env file to false.', 'delete' => 'Hapus', 'delete_confirm' => 'Apa Anda yakin untuk menghapus :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Dihapus', 'delete_seats' => 'Tempat dihapus', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Unggah Gambar', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Impor', 'import_this_file' => 'Map fields and process this file', @@ -279,6 +279,7 @@ return [ 'site_name' => 'Nama Situs', 'state' => 'Negara', 'status_labels' => 'Status Labels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Pemasok', @@ -348,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Memeriksa', diff --git a/resources/lang/en-ID/localizations.php b/resources/lang/en-ID/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/en-ID/localizations.php +++ b/resources/lang/en-ID/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/en-ID/validation.php b/resources/lang/en-ID/validation.php index 425b7445f..b29466672 100644 --- a/resources/lang/en-ID/validation.php +++ b/resources/lang/en-ID/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Bidang atribut harus ada.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Kata sandi anda saat ini salah', 'dumbpwd' => 'Kata sandi itu terlalu umum.', 'statuslabel_type' => 'Anda harus pilih jenis label status yang valid', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/en-US/admin/models/message.php b/resources/lang/en-US/admin/models/message.php index f61a2c535..ae3bc34ee 100644 --- a/resources/lang/en-US/admin/models/message.php +++ b/resources/lang/en-US/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'This model is currently associated with one or more assets and cannot be deleted. Please delete the assets, and then try deleting again. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model was not created, please try again.', diff --git a/resources/lang/en-US/admin/settings/message.php b/resources/lang/en-US/admin/settings/message.php index 24e2d292c..c91575144 100644 --- a/resources/lang/en-US/admin/settings/message.php +++ b/resources/lang/en-US/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'An error has occurred while purging. ', diff --git a/resources/lang/en-US/general.php b/resources/lang/en-US/general.php index 444ed5408..42ca4cb96 100644 --- a/resources/lang/en-US/general.php +++ b/resources/lang/en-US/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Upload Image', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', diff --git a/resources/lang/es-CO/account/general.php b/resources/lang/es-CO/account/general.php index 2520857ca..4280c37db 100644 --- a/resources/lang/es-CO/account/general.php +++ b/resources/lang/es-CO/account/general.php @@ -10,6 +10,8 @@ return array( 'api_base_url_endpoint' => '/<endpoint>', 'api_token_expiration_time' => 'Las credenciales de la API están establecidas para expirar en:', 'api_reference' => 'Consulte API reference para encontrar los puntos finales (endpoints) del API y documentación adicional.', - 'profile_updated' => 'Cuenta actualizada exitosamente', + 'profile_updated' => 'La cuenta fue actualizada exitosamente', 'no_tokens' => 'No ha creado ninguna credencial de acceso personal.', + 'enable_sounds' => 'Habilitar efectos de sonido', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/es-CO/admin/accessories/message.php b/resources/lang/es-CO/admin/accessories/message.php index 1de15d016..9f2ab0ae9 100644 --- a/resources/lang/es-CO/admin/accessories/message.php +++ b/resources/lang/es-CO/admin/accessories/message.php @@ -13,7 +13,7 @@ return array( 'update' => array( 'error' => 'El accesorio no fue actualizado, por favor, inténtelo de nuevo', - 'success' => 'Accesorio creado satisfactoriamente.' + 'success' => 'El accesorio fue actualizado con éxito.' ), 'delete' => array( diff --git a/resources/lang/es-CO/admin/companies/message.php b/resources/lang/es-CO/admin/companies/message.php index fd4d7c488..2eccf6361 100644 --- a/resources/lang/es-CO/admin/companies/message.php +++ b/resources/lang/es-CO/admin/companies/message.php @@ -10,7 +10,7 @@ return [ ], 'update' => [ 'error' => 'La compañía no fue actualizada, por favor, inténtalo de nuevo', - 'success' => 'Compañía actualizada con éxito.', + 'success' => 'Compañía actualizada correctamente.', ], 'delete' => [ 'confirm' => '¿Está seguro de que quiere eliminar esta compañía?', diff --git a/resources/lang/es-CO/admin/custom_fields/general.php b/resources/lang/es-CO/admin/custom_fields/general.php index 2f5effd8e..71d2aa2e0 100644 --- a/resources/lang/es-CO/admin/custom_fields/general.php +++ b/resources/lang/es-CO/admin/custom_fields/general.php @@ -41,7 +41,7 @@ return [ 'about_custom_fields_title' => 'Acerca de campos personalizados', 'about_custom_fields_text' => 'Los campos personalizados le permiten añadir atributos arbitrarios a los activos.', 'add_field_to_fieldset' => 'Añadir campo al grupo de campos', - 'make_optional' => 'Requerido - haga clic para hacer opcional', + 'make_optional' => 'Requerido - haga clic para hacerlo opcional', 'make_required' => 'Opcional - haga clic para hacer necesario', 'reorder' => 'Reordenar', 'db_field' => 'Campo en base de datos', diff --git a/resources/lang/es-CO/admin/departments/table.php b/resources/lang/es-CO/admin/departments/table.php index d857c08c6..8a6b41c31 100644 --- a/resources/lang/es-CO/admin/departments/table.php +++ b/resources/lang/es-CO/admin/departments/table.php @@ -7,5 +7,5 @@ return array( 'manager' => 'Supervisor', 'location' => 'Ubicación', 'create' => 'Crear Departamento', - 'update' => 'Actualizar Departamento', + 'update' => 'Actualizar departamento', ); diff --git a/resources/lang/es-CO/admin/hardware/general.php b/resources/lang/es-CO/admin/hardware/general.php index cd77f1626..c99c15692 100644 --- a/resources/lang/es-CO/admin/hardware/general.php +++ b/resources/lang/es-CO/admin/hardware/general.php @@ -4,7 +4,7 @@ return [ 'about_assets_title' => 'Acerca de los activos', 'about_assets_text' => 'Los activos son artículos rastreados por número de serie o placa de activo. Suelen ser artículos de alto valor en los que es importante identificar un elemento específico.', 'archived' => 'Archivado', - 'asset' => 'Equipo', + 'asset' => 'Activo', 'bulk_checkout' => 'Asignar activos', 'bulk_checkin' => 'Ingresar activos', 'checkin' => 'Ingresar activo', @@ -21,18 +21,18 @@ return [ 'requested' => 'Solicitado', 'not_requestable' => 'No puede solicitarse', 'requestable_status_warning' => 'No cambiar el estado solicitable', - 'restore' => 'Restaurar equipo', + 'restore' => 'Restaurar activo', 'pending' => 'Pendiente', 'undeployable' => 'No utilizable', 'undeployable_tooltip' => 'Este activo tiene una etiqueta de estado que no es desplegable y no puede ser revisado en este momento.', 'view' => 'Ver activo', 'csv_error' => 'Tiene un error en su archivo CSV:', - 'import_text' => '

Cargue un archivo CSV que contenga el historial de los activos. Los activos y los usuarios DEBEN existir ya en el sistema, o serán omitidos. La comparación de activos para importar el historial se realiza con la placa del activo. Intentaremos encontrar un usuario usando el nombre del usuario que proporcione y los criterios que seleccione a continuación. Si no selecciona ningún criterio, el sistema simplemente intentará usar el formato de nombre de usuario configurado en Administrador > Configuración General.

Los campos incluidos en el CSV deben coincidir con los encabezados: Asset Tag, Name, Checkout Date, Checkin Date. Cualquier campo adicional será ignorado.

Checkin Date(Fecha de recepción): dejar en blanco o usar fechas futuras asignará los ítems al usuario asociado. Excluir la columna Checkin Date creará una fecha de recepción con la fecha de hoy.

', + 'import_text' => '

Cargue un archivo CSV que contenga el historial de los activos. Los activos y los usuarios DEBEN existir ya en el sistema, o serán omitidos. La comparación de activos para importar el historial se realiza con la placa del activo. Intentaremos encontrar un usuario usando el nombre del usuario que proporcione y los criterios que seleccione a continuación. Si no selecciona ningún criterio, el sistema simplemente intentará usar el formato de nombre de usuario configurado en Administrador > Configuración General.

Los campos incluidos en el CSV deben coincidir con los encabezados: Asset Tag, Name, Checkout Date, Checkin Date. Cualquier campo adicional será ignorado.

Checkin Date(Fecha de recepción): dejar en blanco o usar fechas futuras asignará los elementos al usuario asociado. Excluir la columna Checkin Date creará una fecha de recepción con la fecha de hoy.

', 'csv_import_match_f-l' => 'Intente emparejar usuarios usando el formato nombre.apellido (jane.smith)', 'csv_import_match_initial_last' => 'Intente emparejar los usuarios usando el formato inicial del nombre y apellido (jsmith)', 'csv_import_match_first' => 'Intentar emparejar a los usuarios usando el formato primer nombre (jane)', 'csv_import_match_email' => 'Intente emparejar los usuarios usando correo electrónico como nombre de usuario', - 'csv_import_match_username' => 'Intente emparejar los usuarios usando usuario', + 'csv_import_match_username' => 'Intente emparejar los usuarios usando nombre de usuario', 'error_messages' => 'Mensajes de error:', 'success_messages' => 'Mensajes de éxito:', 'alert_details' => 'Por favor vea abajo para más detalles.', diff --git a/resources/lang/es-CO/admin/hardware/message.php b/resources/lang/es-CO/admin/hardware/message.php index a34ac3418..29f0bd572 100644 --- a/resources/lang/es-CO/admin/hardware/message.php +++ b/resources/lang/es-CO/admin/hardware/message.php @@ -34,7 +34,7 @@ return [ 'audit' => [ 'error' => 'Auditoría de activos fallida: :error ', - 'success' => 'Auditoría de activos registrada con éxito.', + 'success' => 'Auditoría de activos registrada correctamente.', ], @@ -51,12 +51,12 @@ return [ ], 'import' => [ - 'import_button' => 'Proceso para importar', + 'import_button' => 'Importar', 'error' => 'Algunos artículos no importaron correctamente.', - 'errorDetail' => 'Los siguientes artículos no fueron importados debido a errores.', + 'errorDetail' => 'Los siguientes elementos no fueron importados debido a errores.', 'success' => 'Su archivo ha sido importado', 'file_delete_success' => 'Su archivo se ha eliminado correctamente', - 'file_delete_error' => 'El archivo no pudo ser eliminado', + 'file_delete_error' => 'El archivo no se pudo eliminar', 'file_missing' => 'Falta el archivo seleccionado', 'header_row_has_malformed_characters' => 'Uno o más atributos en la fila del encabezado contienen caracteres UTF-8 mal formados', 'content_row_has_malformed_characters' => 'Uno o más atributos en la primera fila de contenido contienen caracteres UTF-8 mal formados', diff --git a/resources/lang/es-CO/admin/kits/general.php b/resources/lang/es-CO/admin/kits/general.php index 8a910dbee..4632a913e 100644 --- a/resources/lang/es-CO/admin/kits/general.php +++ b/resources/lang/es-CO/admin/kits/general.php @@ -23,17 +23,17 @@ return [ 'update_appended_model' => 'Actualizar modelo añadido', 'license_error' => 'Licencia ya adjunta al kit', 'license_added_success' => 'Licencia añadida correctamente', - 'license_updated' => 'La licencia se ha actualizado correctamente', + 'license_updated' => 'La licencia fue actualizada correctamente', 'license_none' => 'La licencia no existe', 'license_detached' => 'Licencia fue separada con éxito', 'consumable_added_success' => 'Consumible añadido correctamente', - 'consumable_updated' => 'Consumible se ha actualizado correctamente', + 'consumable_updated' => 'El consumible fue actualizado correctamente', 'consumable_error' => 'Consumible ya conectado al kit', 'consumable_deleted' => 'El borrado fue exitoso', 'consumable_none' => 'El consumible no existe', 'consumable_detached' => 'Consumible fue separado con éxito', 'accessory_added_success' => 'Accesorio añadido correctamente', - 'accessory_updated' => 'El accesorio se ha actualizado correctamente', + 'accessory_updated' => 'El accesorio fue actualizado correctamente', 'accessory_detached' => 'Accesorio fue separado con éxito', 'accessory_error' => 'El accesorio ya está conectado al kit', 'accessory_deleted' => 'El borrado fue exitoso', @@ -42,9 +42,9 @@ return [ 'checkout_error' => 'Error al asignar', 'kit_none' => 'El kit no existe', 'kit_created' => 'Kit creado correctamente', - 'kit_updated' => 'Kit actualizado correctamente', + 'kit_updated' => 'El kit fue actualizado correctamente', 'kit_not_found' => 'Kit no encontrado', 'kit_deleted' => 'Kit eliminado correctamente', - 'kit_model_updated' => 'El modelo se ha actualizado correctamente', + 'kit_model_updated' => 'El modelo fue actualizado correctamente', 'kit_model_detached' => 'Modelo fue separado con éxito', ]; diff --git a/resources/lang/es-CO/admin/labels/message.php b/resources/lang/es-CO/admin/labels/message.php index 6f03c9469..01006397c 100644 --- a/resources/lang/es-CO/admin/labels/message.php +++ b/resources/lang/es-CO/admin/labels/message.php @@ -2,9 +2,9 @@ return [ - 'invalid_return_count' => 'El recuento no es válido desde :name. Esperado :expected, tiene :actual.', - 'invalid_return_type' => 'Tipo no válido devuelto desde :name. Esperado :expected, obtuvo :actual.', - 'invalid_return_value' => 'Valor no válido devuelto de :name. Esperado :expected, obtuvo :actual.', + 'invalid_return_count' => 'El recuento no es válido desde :name. Esperado :expected, obtenido :actual.', + 'invalid_return_type' => 'Tipo no válido devuelto desde :name. Esperado :expected, obtenido :actual.', + 'invalid_return_value' => 'Valor no válido devuelto de :name. Esperado :expected, obtenido :actual.', 'does_not_exist' => 'La etiqueta no existe', diff --git a/resources/lang/es-CO/admin/licenses/message.php b/resources/lang/es-CO/admin/licenses/message.php index 4cab6208d..17417a13a 100644 --- a/resources/lang/es-CO/admin/licenses/message.php +++ b/resources/lang/es-CO/admin/licenses/message.php @@ -4,7 +4,7 @@ return array( 'does_not_exist' => 'La licencia no existe o no tiene permiso para verla.', 'user_does_not_exist' => 'El usuario no existe o no tiene permiso para verlos.', - 'asset_does_not_exist' => 'El activo que está intentando asociar con esta licencia no existe.', + 'asset_does_not_exist' => 'El activo que intenta asociar con esta licencia no existe.', 'owner_doesnt_match_asset' => 'El activo que está intentando asignar con esta licencia está asignado a un usuario diferente al de la persona seleccionada de la lista.', 'assoc_users' => 'Esta licencia está actualmente asignada a un usuario y no puede ser eliminada. Por favor, reciba primero la licencia y vuelva a intentarlo. ', 'select_asset_or_person' => 'Debe seleccionar un activo o un usuario, pero no ambos.', diff --git a/resources/lang/es-CO/admin/locations/message.php b/resources/lang/es-CO/admin/locations/message.php index 74716ab7c..05fd77702 100644 --- a/resources/lang/es-CO/admin/locations/message.php +++ b/resources/lang/es-CO/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'La ubicación no existe.', - 'assoc_users' => 'Esta ubicación no se puede eliminar actualmente porque es la ubicación de al menos un activo o de un usuario, tiene activos asignados a ella, o es la ubicación padre de otra ubicación. Por favor actualice las referencias que correspondan. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Esta ubicación está actualmente asociada con al menos un activo y no puede ser eliminada. Por favor actualice sus activos para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assoc_child_loc' => 'Esta ubicación es actualmente el padre de al menos una ubicación hija y no puede ser eliminada. Por favor actualice sus ubicaciones para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assigned_assets' => 'Activos asignados', @@ -11,7 +11,7 @@ return array( 'create' => array( - 'error' => 'La ubicación no pudo ser creada, por favor inténtalo de nuevo.', + 'error' => 'La ubicación no pudo ser creada, por favor, inténtelo de nuevo.', 'success' => 'La ubicación fue creada exitosamente.' ), diff --git a/resources/lang/es-CO/admin/locations/table.php b/resources/lang/es-CO/admin/locations/table.php index 19a6fd38f..c1dfce8c0 100644 --- a/resources/lang/es-CO/admin/locations/table.php +++ b/resources/lang/es-CO/admin/locations/table.php @@ -2,7 +2,7 @@ return [ 'about_locations_title' => 'Acerca de las ubicaciones', - 'about_locations' => 'Las ubicaciones son utilizadas para hacer seguimiento de la información sobre ubicación de usuarios, activos, y otros ítems', + 'about_locations' => 'Las ubicaciones se utilizan para hacer un seguimiento de la ubicación de usuarios, activos y otros elementos', 'assets_rtd' => 'Activos', // This has NEVER meant Assets Retired. I don't know how it keeps getting reverted. 'assets_checkedout' => 'Activos asignados', 'id' => 'ID', @@ -35,8 +35,8 @@ return [ 'asset_expected_checkin' => 'Fecha esperada de devolución', 'date' => 'Fecha:', 'phone' => 'Teléfono ubicación', - 'signed_by_asset_auditor' => 'Firmado por (Juego de Acciones):', - 'signed_by_finance_auditor' => 'Firmado por (Monitor de Finanzas):', - 'signed_by_location_manager' => 'Firmado por (Administrador de ubicación):', + 'signed_by_asset_auditor' => 'Firmado por (Auditor de Activos):', + 'signed_by_finance_auditor' => 'Firmado por (Auditor de Finanzas):', + 'signed_by_location_manager' => 'Firmado por (Supervisor de la ubicación):', 'signed_by' => 'Firmado por:', ]; diff --git a/resources/lang/es-CO/admin/settings/general.php b/resources/lang/es-CO/admin/settings/general.php index b0cb984c1..b377fe74d 100644 --- a/resources/lang/es-CO/admin/settings/general.php +++ b/resources/lang/es-CO/admin/settings/general.php @@ -6,7 +6,7 @@ return [ 'ad_domain_help' => 'Algunas veces coincide con el dominio de su correo electrónico, pero no siempre.', 'ad_append_domain_label' => 'Añadir nombre de dominio', 'ad_append_domain' => 'Añadir nombre de dominio al campo de nombre de usuario', - 'ad_append_domain_help' => 'El usuario no necesita escribir "username@domain.local", puede escribir únicamente "username".', + 'ad_append_domain_help' => 'El usuario no necesita escribir "usuario@dominio.local", puede escribir únicamente "usuario".', 'admin_cc_email' => 'Copiar en correo electrónico', 'admin_cc_email_help' => 'Si desea enviar una copia de los correos electrónicos de recepción/devolución que se envían a los usuarios a una cuenta de correo electrónico adicional, escríbala aquí. De lo contrario, deje este campo en blanco.', 'admin_settings' => 'Configuración de administración', @@ -110,13 +110,13 @@ return [ 'ldap_filter' => 'Filtro LDAP', 'ldap_pw_sync' => 'Sincronización de contraseña LDAP', 'ldap_pw_sync_help' => 'Desmarque esta casilla si no desea mantener las contraseñas LDAP sincronizadas con las contraseñas locales. Si desactiva esta opción, los usuarios no podrán iniciar sesión si, por algún motivo, no se puede acceder al servidor LDAP.', - 'ldap_username_field' => 'Campo Usuario', + 'ldap_username_field' => 'Campo nombre de usuario', 'ldap_lname_field' => 'Apellidos', 'ldap_fname_field' => 'Nombre LDAP', 'ldap_auth_filter_query' => 'Consulta de autenticación LDAP', 'ldap_version' => 'Versión LDAP', 'ldap_active_flag' => 'Bandera activa LDAP', - 'ldap_activated_flag_help' => 'Este valor se utiliza para determinar si un usuario sincronizado puede iniciar sesión en Snipe-IT. No afecta a la capacidad de asignarles o retirarles items, y debería ser el nombre de atributo dentro de su AD/LDAP, no el valor.

Si este campo está configurado a un nombre de campo que no existe en su AD/LDAP, o el valor en el campo AD/LDAP se establece en 0 o falso, el inicio de sesión de usuario será deshabilitado. Si el valor en el campo AD/LDAP está establecido en 1 o true o cualquier otro texto significa que el usuario puede iniciar sesión. Cuando el campo está en blanco en su AD, respetamos el atributo userAccountControl, que generalmente permite a los usuarios no suspendidos iniciar sesión.', + 'ldap_activated_flag_help' => 'Este valor se utiliza para determinar si un usuario sincronizado puede iniciar sesión en Snipe-IT. No afecta a la capacidad de asignarles o retirarles elementos, y debería ser el nombre de atributo dentro de su AD/LDAP, no el valor.

Si este campo está configurado a un nombre de campo que no existe en su AD/LDAP, o el valor en el campo AD/LDAP se establece en 0 o falso, el inicio de sesión de usuario será deshabilitado. Si el valor en el campo AD/LDAP está establecido en 1 o true o cualquier otro texto significa que el usuario puede iniciar sesión. Cuando el campo está en blanco en su AD, respetamos el atributo userAccountControl, que generalmente permite a los usuarios no suspendidos iniciar sesión.', 'ldap_emp_num' => 'Número de empleado LDAP', 'ldap_email' => 'LDAP Email', 'ldap_test' => 'Probar LDAP', @@ -127,7 +127,7 @@ return [ 'login' => 'Intentos de inicio de sesión', 'login_attempt' => 'Intento de inicio de sesión', 'login_ip' => 'Dirección IP', - 'login_success' => '¿Éxito?', + 'login_success' => '¿Exitoso?', 'login_user_agent' => 'Agente de usuario', 'login_help' => 'Lista de intentos de inicio de sesión', 'login_note' => 'Nota de acceso', @@ -215,9 +215,11 @@ return [ 'webhook_endpoint' => 'Endpoint de :app', 'webhook_integration' => ':app Ajustes', 'webhook_test' =>'Probar integración con :app', - 'webhook_integration_help' => 'La integración con :app es opcional, sin embargo el punto final (endpoint) y el canal son necesarios si desea usarla. Para configurar la integración con :app, primero debe crear un webhook entrante en tu cuenta :app. Haga clic en el botón Probar integración con :app para confirmar que su configuración es correcta antes de guardar. ', + 'webhook_integration_help' => 'La integración con :app es opcional, sin embargo, el punto final (endpoint) y el canal son necesarios si desea usarla. Para configurar la integración con :app, primero debe crear un webhook entrante en su cuenta :app. Haga clic en el botón Probar integración con :app para confirmar que su configuración es correcta antes de guardar. ', 'webhook_integration_help_button' => 'Una vez que haya guardado la información de :app, aparecerá un botón de prueba.', 'webhook_test_help' => 'Compruebe si su integración con :app está configurada correctamente. PRIMERO DEBE GUARDAR LA CONFIGURACION ACTUALIZADA DE :app.', + 'shortcuts_enabled' => 'Habilitar accesos directos', + 'shortcuts_help_text' => 'Windows: Alt + tecla de acceso, Mac: Control + Opción + Clave de acceso', 'snipe_version' => 'Versión de Snipe-IT', 'support_footer' => 'Enlace al soporte en el pie de página ', 'support_footer_help' => 'Especifique quién ve los enlaces a la información de Soporte de Snipe-IT y Manual de Usuarios', @@ -231,7 +233,7 @@ return [ 'brand_help' => 'Logo, nombre del sitio', 'web_brand' => 'Tipo de marca web', 'about_settings_title' => 'Sobre ajustes', - 'about_settings_text' => 'Estos ajustes le permiten personalizar ciertos aspectos de su instalación.', + 'about_settings_text' => 'Estas configuraciones le permiten personalizar ciertos aspectos de su instalación.', 'labels_per_page' => 'Etiquetas por página', 'label_dimensions' => 'Dimensiones de la etiqueta (pulgadas)', 'next_auto_tag_base' => 'Siguiente incremento automático', @@ -334,7 +336,7 @@ return [ 'employee_number' => 'Número de empleado', 'create_admin_user' => 'Crear un usuario ::', 'create_admin_success' => '¡Éxito! ¡Su usuario admin ha sido añadido!', - 'create_admin_redirect' => '¡Haz clic aquí para acceder a tu aplicación!', + 'create_admin_redirect' => '¡Haga clic aquí para acceder a su aplicación!', 'setup_migrations' => 'Migraciones de base de datos ::', 'setup_no_migrations' => 'No hay nada que migrar. ¡Las tablas de la base de datos ya estaban configuradas!', 'setup_successful_migrations' => 'Se han creado las tablas de la base de datos', diff --git a/resources/lang/es-CO/admin/settings/message.php b/resources/lang/es-CO/admin/settings/message.php index 2b25da1f5..709b68b25 100644 --- a/resources/lang/es-CO/admin/settings/message.php +++ b/resources/lang/es-CO/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Sí, restaurarlo. Reconozco que esto sobrescribirá cualquier dato existente actualmente en la base de datos. Esto también cerrará la sesión de todos sus usuarios existentes (incluido usted).', 'restore_confirm' => '¿Está seguro que desea restaurar su base de datos desde :filename?' ], + 'restore' => [ + 'success' => 'Su copia de respaldo del sistema ha sido restaurada. Por favor, inicie sesión nuevamente.' + ], 'purge' => [ 'error' => 'Se ha producido un error al purgar. ', 'validation_failed' => 'Su confirmación de purga es incorrecta. Por favor, escriba la palabra "DELETE" en el cuadro de confirmación.', diff --git a/resources/lang/es-CO/admin/suppliers/table.php b/resources/lang/es-CO/admin/suppliers/table.php index d5f809097..c8e508250 100644 --- a/resources/lang/es-CO/admin/suppliers/table.php +++ b/resources/lang/es-CO/admin/suppliers/table.php @@ -2,7 +2,7 @@ return array( 'about_suppliers_title' => 'Acerca de Proveedores', - 'about_suppliers_text' => 'Los proveedores se utilizan para rastrear la fuente de los artículos', + 'about_suppliers_text' => 'Los proveedores se utilizan para hacer seguimiento al origen de los elementos', 'address' => 'Dirección del proveedor', 'assets' => 'Activos', 'city' => 'Ciudad', diff --git a/resources/lang/es-CO/admin/users/general.php b/resources/lang/es-CO/admin/users/general.php index b584326de..09e9a9b02 100644 --- a/resources/lang/es-CO/admin/users/general.php +++ b/resources/lang/es-CO/admin/users/general.php @@ -12,7 +12,7 @@ return [ 'edit' => 'Editar usuario', 'filetype_info' => 'Los tipos de archivo permitidos son png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, y rar.', 'history_user' => 'Historial de :name', - 'info' => 'Info', + 'info' => 'Información', 'restore_user' => 'Haga clic aquí para restaurarlos.', 'last_login' => 'Último acceso', 'ldap_config_text' => 'Los ajustes de configuración LDAP se pueden encontrar Admin > Configuración. La ubicación (opcional) seleccionada se establecerá para todos los usuarios importados.', diff --git a/resources/lang/es-CO/admin/users/message.php b/resources/lang/es-CO/admin/users/message.php index d9fe92f07..73e8c8bff 100644 --- a/resources/lang/es-CO/admin/users/message.php +++ b/resources/lang/es-CO/admin/users/message.php @@ -49,10 +49,10 @@ return array( 'cannot_delete_yourself' => 'Nos sentiríamos muy mal si usted se eliminara, por favor reconsidérelo.', 'incorrect_user_accepted' => 'El elemento que ha intentado aceptar no fue asignado a usted.', 'ldap_could_not_connect' => 'No se pudo conectar al servidor LDAP. Por favor, compruebe la configuración del servidor LDAP en el archivo de configuración LDAP.
Error del servidor LDAP:', - 'ldap_could_not_bind' => 'No se pudo enlazar al servidor LDAP. Por favor, compruebe la configuración del servidor LDAP en el archivo de configuración LDAP.
Error del servidor LDAP: ', + 'ldap_could_not_bind' => 'No se ha podido vincular al servidor LDAP. Por favor verifique la configuración de su servidor LDAP en su archivo de configuración.
Error del servidor LDAP: ', 'ldap_could_not_search' => 'No se pudo buscar en el servidor LDAP. Por favor, compruebe la configuración del servidor LDAP en el archivo de configuración LDAP.
Error del servidor LDAP:', 'ldap_could_not_get_entries' => 'No se han podido obtener entradas del servidor LDAP. Por favor, compruebe la configuración del servidor LDAP en el archivo de configuración LDAP.
Error del servidor LDAP:', - 'password_ldap' => 'La contraseña de esta cuenta es administrada por LDAP/Active Directory. Póngase en contacto con su departamento de TI para cambiar su contraseña. ', + 'password_ldap' => 'La contraseña para esta cuenta es administrada por LDAP / Active Directory. Póngase en contacto con su departamento de TI para cambiar su contraseña. ', ), 'deletefile' => array( diff --git a/resources/lang/es-CO/admin/users/table.php b/resources/lang/es-CO/admin/users/table.php index a3fd73969..9b782664d 100644 --- a/resources/lang/es-CO/admin/users/table.php +++ b/resources/lang/es-CO/admin/users/table.php @@ -5,16 +5,16 @@ return array( 'allow' => 'Permitir', 'checkedout' => 'Equipos', 'created_at' => 'Creado', - 'createuser' => 'Crear Usuario', + 'createuser' => 'Crear usuario', 'deny' => 'Denegar', 'email' => 'Correo electrónico', 'employee_num' => 'Nro. Empleado', 'first_name' => 'Nombre', 'groupnotes' => 'Seleccione un grupo para asignar al usuario, recuerde que un usuario asume los permisos del grupo al que se le asigna. Use ctrl+click (o cmd+click en MacOS) para anular la selección de grupos.', 'id' => 'Id', - 'inherit' => 'Heredar', + 'inherit' => 'Hereda de', 'job' => 'Cargo', - 'last_login' => 'Último acceso', + 'last_login' => 'Último inicio de sesión', 'last_name' => 'Apellidos', 'location' => 'Ubicación', 'lock_passwords' => 'Los detalles de inicio de sesión no pueden ser cambiados en esta instalación.', @@ -33,7 +33,7 @@ return array( 'to_restore_them' => 'para restaurarlos.', 'total_assets_cost' => "Coste total de activos", 'updateuser' => 'Actualizar usuario', - 'username' => 'Usuario', + 'username' => 'Nombre de usuario', 'user_deleted_text' => 'Este usuario ha sido marcado como eliminado.', 'username_note' => '(Esto se utiliza sólo para enlazar Active Directory, no para iniciar sesión.)', 'cloneuser' => 'Clonar usuario', diff --git a/resources/lang/es-CO/auth/message.php b/resources/lang/es-CO/auth/message.php index b954ab0eb..2f2ffe9ec 100644 --- a/resources/lang/es-CO/auth/message.php +++ b/resources/lang/es-CO/auth/message.php @@ -19,7 +19,7 @@ return array( ), 'signin' => array( - 'error' => 'Hubo un problema al intentar iniciar sesión, por favor inténtelo de nuevo.', + 'error' => 'Ha habido un problema al iniciar sesión. Por favor, inténtelo de nuevo.', 'success' => 'Ha iniciado sesión exitosamente.', ), @@ -29,17 +29,17 @@ return array( ), 'signup' => array( - 'error' => 'Hubo un problema al intentar crear tu cuenta. Por favor, inténtalo de nuevo.', + 'error' => 'Hubo un problema al crear la cuenta. Por favor, inténtelo de nuevo.', 'success' => 'Cuenta creada correctamente.', ), 'forgot-password' => array( - 'error' => 'Hubo un problema al intentar restablecer el código de contraseña, por favor inténtalo de nuevo.', + 'error' => 'Ha habido un problema al obtener un código de restablecimiento de la contraseña. Por favor, inténtelo de nuevo.', 'success' => 'Si esa dirección de correo electrónico existe en nuestro sistema, se ha enviado un correo electrónico de recuperación de contraseña.', ), 'forgot-password-confirm' => array( - 'error' => 'Hubo un problema al intentar restablecer su contraseña, por favor inténtelo de nuevo.', + 'error' => 'Hubo un problema al intentar restablecer su contraseña, por favor, inténtelo de nuevo.', 'success' => 'Su contraseña se ha restablecido correctamente.', ), diff --git a/resources/lang/es-CO/button.php b/resources/lang/es-CO/button.php index 34ab29bde..68cb24a8b 100644 --- a/resources/lang/es-CO/button.php +++ b/resources/lang/es-CO/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clonar :item_type', 'edit' => 'Editar :item_type', 'delete' => 'Eliminar :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restaurar :item_type', 'create' => 'Crear nuevo :item_type', 'checkout' => 'Asignar :item_type', 'checkin' => 'Ingresar :item_type', diff --git a/resources/lang/es-CO/general.php b/resources/lang/es-CO/general.php index b2be8d9e0..73870947f 100644 --- a/resources/lang/es-CO/general.php +++ b/resources/lang/es-CO/general.php @@ -1,7 +1,7 @@ 'Reestablecer 2FA', + '2FA_reset' => 'Restablecer 2FA', 'accessories' => 'Accesorios', 'activated' => 'Activado', 'accepted_date' => 'Fecha de aceptación', @@ -29,14 +29,14 @@ return [ 'assets_available' => 'Activos disponibles', 'accept_assets' => 'Aceptar activos :name', 'accept_assets_menu' => 'Aceptar activos', - 'audit' => 'Auditoría', + 'audit' => 'Auditar', 'audit_report' => 'Registro de auditoría', 'assets' => 'Activos', 'assets_audited' => 'activos auditados', 'assets_checked_in_count' => 'activos ingresados', 'assets_checked_out_count' => 'activos asignados', 'asset_deleted_warning' => 'Este activo ha sido eliminado. Debe restaurarlo antes de poder asignarlo a alguien.', - 'assigned_date' => 'Fecha asignada', + 'assigned_date' => 'Fecha de asignación', 'assigned_to' => 'Asignado a :name', 'assignee' => 'Asignado a', 'avatar_delete' => 'Eliminar Avatar', @@ -44,7 +44,7 @@ return [ 'back' => 'Atrás', 'bad_data' => 'No se ha encontrado nada. ¿Tal vez datos erróneos?', 'bulkaudit' => 'Auditoría masiva', - 'bulkaudit_status' => 'Estado de auditoría', + 'bulkaudit_status' => 'Estado de la auditoría', 'bulk_checkout' => 'Asignación masiva', 'bulk_edit' => 'Edición masiva', 'bulk_delete' => 'Eliminar en masa', @@ -66,7 +66,7 @@ return [ 'checkins_count' => 'Ingresos', 'user_requests_count' => 'Solicitudes', 'city' => 'Ciudad', - 'click_here' => 'Haz clic aquí', + 'click_here' => 'Haga clic aquí', 'clear_selection' => 'Borrar selección', 'companies' => 'Compañías', 'company' => 'Compañía', @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumibles', 'country' => 'País', 'could_not_restore' => 'Error al restaurar :item_type: :error', - 'not_deleted' => 'El :item_type no está borrado por lo que no puede ser restaurado', + 'not_deleted' => ':item_type no está eliminado; por lo tanto, no se puede restaurar', 'create' => 'Crear nuevo', 'created' => 'Artículo creado', 'created_asset' => 'activo creado', @@ -95,10 +95,10 @@ return [ 'days_to_next_audit' => 'Días a la siguiente auditoría', 'date' => 'Fecha', 'debug_warning' => '¡Alerta!', - 'debug_warning_text' => 'Esta aplicación se está ejecutando en modo producción con depuración habilitada. Esto puede exponer datos sensibles si su aplicación es accesible al mundo exterior. Deshabilita el modo de depuración configurando el valor APP_DEBUG en tu . nv archivo a false.', + 'debug_warning_text' => 'Esta aplicación se está ejecutando en modo producción con depuración habilitada. Esto puede exponer datos sensibles si su aplicación es accedida desde el mundo exterior. Deshabilite el modo de depuración configurando el valor APP_DEBUG en su archivo .env a false.', 'delete' => 'Eliminar', 'delete_confirm' => '¿Está seguro de que desea eliminar :item?', - 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no se puede deshacer.', + 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no puede deshacerse.', 'deleted' => 'Eliminado', 'delete_seats' => 'Licencias eliminadas', 'deletion_failed' => 'Error al eliminar', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Apellido e inicial del nombre (smith_j@ejemplo.com)', 'firstinitial.lastname' => 'Inicial del nombre y apellido (j.smith@ejemplo.com)', 'firstnamelastinitial' => 'Nombre e inicial del apellido(janes@example.com)', - 'lastnamefirstname' => 'Apellido y nombre (smith.jane@example.com)', + 'lastnamefirstname' => 'Apellido.Nombre (smith.jane@example.com)', 'first_name' => 'Nombres', 'first_name_format' => 'Nombre (jane@ejemplo.com)', 'files' => 'Archivos', @@ -148,7 +148,7 @@ return [ 'github_markdown' => 'Este campo acepta Github con sabor a markdown.', 'groups' => 'Grupos', 'gravatar_email' => 'Dirección de correo Gravatar', - 'gravatar_url' => 'Cambia tu avatar en Gravatar.com.', + 'gravatar_url' => 'Cambie su avatar en Gravatar.com.', 'history' => 'Historial', 'history_for' => 'Historial para', 'id' => 'ID', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Borrar imagen', 'include_deleted' => 'Incluir activos eliminados', 'image_upload' => 'Cargar imagen', - 'filetypes_accepted_help' => 'El tipo de archivo aceptado es :types. El tamaño máximo permitido para subir es :size.|Los tipos de archivo aceptados son :types. El tamaño máximo permitido es :size.', - 'filetypes_size_help' => 'El tamaño máximo permitido para subir es :size.', - 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg y avif. El tamaño máximo permitido es :size.', + 'filetypes_accepted_help' => 'El tipo de archivo aceptado es :types. El tamaño máximo permitido es :size.|Los tipos de archivo aceptados son :types. El tamaño máximo permitido para cargar es :size.', + 'filetypes_size_help' => 'El tamaño máximo permitido para cargar es :size.', + 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg, y avif. El tamaño máximo permitido para cargar es :size.', 'unaccepted_image_type' => 'Este archivo de imagen no fue legible. Los tipos de archivo aceptados son jpg, webp, png, gif y svg. El tipo mimetype de este archivo es: :mimetype.', 'import' => 'Importar', 'import_this_file' => 'Asociar campos y procesar este archivo', @@ -169,7 +169,7 @@ return [ 'asset_maintenance_report' => 'Informe mantenimiento de activos', 'asset_maintenances' => 'Mantenimiento de activos', 'item' => 'Elemento', - 'item_name' => 'Nombre del artículo', + 'item_name' => 'Nombre del elemento', 'import_file' => 'importar archivo CSV', 'import_type' => 'Tipo de importación CSV', 'insufficient_permissions' => '¡Permisos insuficientes!', @@ -183,17 +183,17 @@ return [ 'licenses_available' => 'Licencias disponibles', 'licenses' => 'Licencias', 'list_all' => 'Mostrar todos', - 'loading' => 'Cargando... espere por favor....', + 'loading' => 'Cargando... espere por favor...', 'lock_passwords' => 'Este valor de campo no se guardará en una instalación de demostración.', 'feature_disabled' => 'Esta característica ha sido deshabilitada para la instalación de demostración.', 'location' => 'Ubicación', 'location_plural' => 'Ubicación|Ubicaciones', 'locations' => 'Ubicaciones', - 'logo_size' => 'Los logotipos cuadrados se ven mejor con Logo + Texto. El tamaño máximo del Logo es 50px de alta x 500px. ', + 'logo_size' => 'Los logotipos cuadrados se ven mejor con Logo + Texto. El tamaño máximo del logo es 50px de alto x 500px de ancho. ', 'logout' => 'Cerrar sesión', 'lookup_by_tag' => 'Buscar placa del activo', 'maintenances' => 'Mantenimiento', - 'manage_api_keys' => 'Administrar claves API', + 'manage_api_keys' => 'Administrar las claves del API', 'manufacturer' => 'Fabricante', 'manufacturers' => 'Fabricantes', 'markdown' => 'Este campo permite Github sabor a markdown.', @@ -242,7 +242,7 @@ return [ 'requestable_models' => 'Modelos disponibles para solicitar', 'requestable_items' => 'Artículos que se pueden solicitar', 'requested' => 'Solicitado', - 'requested_date' => 'Fecha solicitada', + 'requested_date' => 'Fecha de solicitud', 'requested_assets' => 'Elementos solicitados', 'requested_assets_menu' => 'Elementos solicitados', 'request_canceled' => 'Solicitud cancelada', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Seleccionar todo', 'search' => 'Buscar', 'select_category' => 'Seleccionar una categoría', - 'select_datasource' => 'Seleccionar un origen de datos', + 'select_datasource' => 'Seleccione un origen de datos', 'select_department' => 'Seleccionar un departamento', 'select_depreciation' => 'Seleccionar un tipo de amortización', 'select_location' => 'Seleccionar una ubicación', @@ -268,22 +268,23 @@ return [ 'select_asset' => 'Seleccionar activo', 'settings' => 'Ajustes', 'show_deleted' => 'Mostrar eliminados', - 'show_current' => 'Mostrar Actual', + 'show_current' => 'Mostrar actual', 'sign_in' => 'Iniciar sesión', 'signature' => 'Firma', 'signed_off_by' => 'Firmado por', 'skin' => 'Apariencia', 'webhook_msg_note' => 'Una notificación se enviará a través de webhook', - 'webhook_test_msg' => '¡Parece que su integración de :app con Snipe-IT está funcionando!', + 'webhook_test_msg' => '¡Hola! ¡Parece que la integración de :app con Snipe-IT funciona!', 'some_features_disabled' => 'DEMO MODE: Algunas características están desactivadas para esta instalación.', 'site_name' => 'Nombre del sitio', 'state' => 'Departamento', 'status_labels' => 'Etiquetas de estado', + 'status_label' => 'Status Label', 'status' => 'Estado', 'accept_eula' => 'Acuerdo de aceptación', 'supplier' => 'Proveedor', 'suppliers' => 'Proveedores', - 'sure_to_delete' => '¿Está seguro que desea eliminar?', + 'sure_to_delete' => '¿Está seguro de que desea eliminar', 'sure_to_delete_var' => '¿Está seguro de que desea eliminar :item?', 'delete_what' => 'Eliminar :item', 'submit' => 'Enviar', @@ -332,7 +333,7 @@ return [ 'i_accept' => 'Acepto', 'i_decline' => 'Rechazo', 'accept_decline' => 'Aceptar/Rechazar', - 'sign_tos' => 'Regístrate a continuación para indicar que estás de acuerdo con los términos del servicio:', + 'sign_tos' => 'Firme abajo para indicar que está de acuerdo con los términos de servicio:', 'clear_signature' => 'Borrar firma', 'show_help' => 'Mostrar ayuda', 'hide_help' => 'Ocultar ayuda', @@ -340,15 +341,15 @@ return [ 'hide_deleted' => 'Ocultar eliminados', 'email' => 'Correo electrónico', 'do_not_change' => 'No cambiar', - 'bug_report' => 'Reportar un error', + 'bug_report' => 'Reporte un error', 'user_manual' => 'Manual del usuario', 'setup_step_1' => 'Paso 1', 'setup_step_2' => 'Paso 2', 'setup_step_3' => 'Paso 3', 'setup_step_4' => 'Paso 4', 'setup_config_check' => 'Comprobar configuración', - 'setup_create_database' => 'Crear Tablas de Base de Datos', - 'setup_create_admin' => 'Crear usuario Administrador', + 'setup_create_database' => 'Crear tablas de la base de datos', + 'setup_create_admin' => 'Crear usuario administrador', 'setup_done' => '¡Terminado!', 'bulk_edit_about_to' => 'Está a punto de editar lo siguiente: ', 'checked_out' => 'Asignado a', @@ -425,7 +426,7 @@ return [ 'assets_by_status_type' => 'Activos por tipo de estado', 'pie_chart_type' => 'Tipo de gráfico circular en el tablero', 'hello_name' => '¡Hola, :name!', - 'unaccepted_profile_warning' => 'Tiene :count elemento(s) que requiere(n) aceptación. Haga clic aquí para aceptarlos o rechazarlos', + 'unaccepted_profile_warning' => 'Tiene :count elemento(s) que requiere(n) aceptación. Haga clic aquí para aceptarlo(s) o rechazarlo(s)', 'start_date' => 'Fecha de inicio', 'end_date' => 'Fecha de fin', 'alt_uploaded_image_thumbnail' => 'Miniatura cargada', @@ -447,10 +448,10 @@ return [ 'warning_merge_information' => 'Esta acción NO PUEDE deshacerse y sólo debe ser usada cuando necesite fusionar usuarios debido a una mala importación o sincronización. Asegúrese de ejecutar una copia de seguridad primero.', 'no_users_selected' => 'Ningún usuario seleccionado', 'not_enough_users_selected' => 'Al menos :count usuarios deben ser seleccionados', - 'merge_success' => ':count usuarios fusionados con éxito en :into_username!', + 'merge_success' => '!:count usuarios fusionados con éxito en :into_username!', 'merged' => 'fusionado', - 'merged_log_this_user_into' => 'Fusionado este usuario (ID :to_id - :to_username) con ID de usuario :from_id (:from_username) ', - 'merged_log_this_user_from' => 'Fusionado ID de usuario :from_id (:from_username) con este usuario (ID :to_id - :to_username)', + 'merged_log_this_user_into' => 'Se fusionó este usuario (ID :to_id - :to_username) en ID de usuario :from_id (:from_username) ', + 'merged_log_this_user_from' => 'Se fusionó usuario ID :from_id (:from_username) en este usuario (ID :to_id - :to_username)', 'clear_and_save' => 'Limpiar y guardar', 'update_existing_values' => '¿Actualizar valores existentes?', 'auto_incrementing_asset_tags_disabled_so_tags_required' => 'La generación autoincrementable de las placas de activos está desactivada, por lo que todas las filas deben tener la columna "Asset Tag" con información.', @@ -471,7 +472,7 @@ return [ 'setup_successful_migrations' => 'Se han creado las tablas de la base de datos', 'setup_migration_output' => 'Salida de Migración:', 'setup_migration_create_user' => 'Siguiente: Crear usuario', - 'importer_generic_error' => 'La importación de tu archivo está completa, pero recibimos un error. Esto normalmente es causado por la limitación de API de terceros desde un webhook de notificación (como Slack) y no habría interferido con la importación en sí. pero debería confirmarlo.', + 'importer_generic_error' => 'La importación del archivo se ha completado, pero recibimos un error. Esto suele deberse a la limitación de la API de terceros desde un webhook de notificación (como Slack) y no habría interferido con la importación en sí, pero debería confirmarlo.', 'confirm' => 'Confirmar', 'autoassign_licenses' => 'Auto-Asignar licencias', 'autoassign_licenses_help' => 'Permitir a este usuario tener licencias asignadas a través de la asignación masiva en la interfaz de usuario o de las herramientas de la línea de comandos (CLI).', @@ -490,7 +491,7 @@ return [ 'checked_out_to_fullname' => 'Asignado a: Nombre completo', 'checked_out_to_first_name' => 'Asignado a: Nombre', 'checked_out_to_last_name' => 'Asignado a: Apellido', - 'checked_out_to_username' => 'Asignado a: Usuario', + 'checked_out_to_username' => 'Asignado a: Nombre de usuario', 'checked_out_to_email' => 'Asignado a: correo electrónico', 'checked_out_to_tag' => 'Asignado a: Placa de activo', 'manager_first_name' => 'Nombre del supervisor', @@ -551,12 +552,12 @@ return [ 'components' => ':count component|:count componentes', ], 'more_info' => 'Más información', - 'quickscan_bulk_help' => 'Al marcar esta casilla se editará el registro de activos para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría. Tenga en cuenta que si este activo es asignado, no cambiará la ubicación de la persona, activo o ubicación a la que se le asigna.', + 'quickscan_bulk_help' => 'Al marcar esta casilla se actualizará el activo para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría. Tenga en cuenta que si este activo ya está asignado, no cambiará la ubicación de la persona, del activo o de la ubicación a la que esté asignado.', 'whoops' => '¡Uy!', 'something_went_wrong' => 'Algo falló en su solicitud.', 'close' => 'Cerrar', 'expires' => 'Vence', - 'map_fields'=> 'Asociar el campo :item_type', + 'map_fields'=> 'Asociar campos para :item_type', 'remaining_var' => ':count restantes', ]; diff --git a/resources/lang/es-CO/help.php b/resources/lang/es-CO/help.php index e766a4f35..7cbc6acc7 100644 --- a/resources/lang/es-CO/help.php +++ b/resources/lang/es-CO/help.php @@ -15,7 +15,7 @@ return [ 'more_info_title' => 'Más información', - 'audit_help' => 'Al marcar esta casilla se editará el registro de activos para reflejar esta nueva ubicación. Dejarla desmarcada simplemente anotará la ubicación en el registro de auditoría.

Tenga en cuenta que si este activo se asigna, no cambiará la ubicación de la persona, el activo o la ubicación a la que se asigna.', + 'audit_help' => 'Al marcar esta casilla se actualizará el activo para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría.

Tenga en cuenta que si este activo ya está asignado, no cambiará la ubicación de la persona, del activo o de la ubicación a la que esté asignado.', 'assets' => 'Los activos son artículos rastreados por número de serie o placa de activo. Suelen ser artículos de alto valor en los que es importante identificar un elemento específico.', diff --git a/resources/lang/es-CO/localizations.php b/resources/lang/es-CO/localizations.php index 88e7bbe1f..9c46fa7a4 100644 --- a/resources/lang/es-CO/localizations.php +++ b/resources/lang/es-CO/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malayo', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongol', - 'no-NO'=> 'Noruego', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Noruego Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persa', 'pl-PL'=> 'Polaco', 'pt-PT'=> 'Portugués', diff --git a/resources/lang/es-CO/mail.php b/resources/lang/es-CO/mail.php index 870e555ef..fb056480e 100644 --- a/resources/lang/es-CO/mail.php +++ b/resources/lang/es-CO/mail.php @@ -46,7 +46,7 @@ return [ 'checked_into' => 'Devuelto en', 'click_on_the_link_accessory' => 'Haga clic en el enlace en la parte inferior para confirmar que ha recibido el accesorio.', 'click_on_the_link_asset' => 'Haga clic en el enlace en la parte inferior para confirmar que ha recibido el activo.', - 'click_to_confirm' => 'Por favor, haga clic en el siguiente enlace para confirmar su cuenta :web:', + 'click_to_confirm' => 'Por favor, haga clic en el siguiente enlace para confirmar su cuenta de :web:', 'current_QTY' => 'Cantidad actual', 'days' => 'Días', 'expecting_checkin_date' => 'Fecha esperada de devolución:', @@ -58,7 +58,7 @@ return [ 'item' => 'Elemento:', 'item_checked_reminder' => 'Este es un recordatorio de que actualmente tiene :count elemento(s) asignado(s) que no ha aceptado o rechazado. Haga clic en el siguiente enlace para confirmar su decisión.', 'license_expiring_alert' => 'Hay :count licencia que expira en los próximos :threshold días. | Hay :count licencias que expiran en los próximos :threshold días.', - 'link_to_update_password' => 'Haga clic en el siguiente enlace para actualizar su: contraseña de la web:', + 'link_to_update_password' => 'Por favor, haga clic en el siguiente enlace para actualizar contraseña de :web :', 'login' => 'Entrar:', 'login_first_admin' => 'Inicie sesión en su nueva instalación de Snipe-IT usando las credenciales:', 'low_inventory_alert' => 'Hay :count elemento que está por debajo del inventario mínimo o que pronto lo estará.|Hay :count elementos que están por debajo del inventario mínimo o que pronto lo estarán.', @@ -72,7 +72,7 @@ return [ 'read_the_terms_and_click' => 'Por favor lea los términos de uso a continuación y haga clic en el enlace en la parte inferior para confirmar que usted leyó los términos de uso y los acepta, y que ha recibido el activo.', 'requested' => 'Solicitado:', 'reset_link' => 'Su enlace de restablecimiento de contraseña', - 'reset_password' => 'Haga Clic aquí para restablecer su contraseña:', + 'reset_password' => 'Haaga clic aquí para restablecer tu contraseña:', 'rights_reserved' => 'Todos los derechos reservados.', 'serial' => 'Número de serie', 'snipe_webhook_test' => 'Prueba de integración de Snipe-IT', @@ -82,7 +82,7 @@ return [ 'test_email' => 'Email de prueba de Snipe-IT', 'test_mail_text' => 'Esto es una prueba desde el sistema de gestión de activos Snipe-IT. Si recibió este mensaje, el correo está funcionando :)', 'the_following_item' => 'El siguiente artículo ha sido devuelto: ', - 'to_reset' => 'Para restaurar tu contraseña de :web, rellena este formulario:', + 'to_reset' => 'Para restaurar tu contraseña de :web, diligencie este formulario:', 'type' => 'Tipo', 'upcoming-audits' => 'Hay :count para ser auditado antes de :threshold días.|Hay :count activos para ser auditados antes de :threshold días.', 'user' => 'Usuario', diff --git a/resources/lang/es-CO/reminders.php b/resources/lang/es-CO/reminders.php index 2269768b6..98f281956 100644 --- a/resources/lang/es-CO/reminders.php +++ b/resources/lang/es-CO/reminders.php @@ -14,7 +14,7 @@ return array( */ "password" => "Las contraseñas deben ser de seis caracteres y coincidir con la confirmación.", - "user" => "Usuario o E-Mail incorrectos", + "user" => "El nombre de usuario o la dirección de correo electrónico son incorrectos", "token" => 'Esta sesión de restablecimiento de contraseña es inválida o ha caducado, o no coincide con el nombre de usuario proporcionado.', 'sent' => 'Si existe un usuario con una dirección de correo electrónico válida en nuestro sistema, se ha enviado un correo electrónico de recuperación de contraseña.', diff --git a/resources/lang/es-CO/validation.php b/resources/lang/es-CO/validation.php index 4b7afeb42..c998f61da 100644 --- a/resources/lang/es-CO/validation.php +++ b/resources/lang/es-CO/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'El campo :attribute debe contener al menos un símbolo.', 'uncompromised' => 'El valor de :attribute ha aparecido en una fuga de datos. Por favor, seleccione un valor diferente para :attribute.', ], + 'percent' => 'El mínimo de amortización debe estar entre 0 y 100 cuando el tipo de amortización es porcentual.', + 'present' => 'El campo: atributo debe estar presente.', 'present_if' => 'El campo :attribute debe estar presente cuando :other sea :value.', 'present_unless' => 'El campo :attribute debe estar presente a menos que :other sea :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Su contraseña actual es incorrecta', 'dumbpwd' => 'Esa contraseña es muy común.', 'statuslabel_type' => 'Debe seleccionar un tipo de etiqueta de estado válido.', + 'custom_field_not_found' => 'Este campo parece que no existe, por favor, compruebe los nombres de sus campos personalizados.', + 'custom_field_not_found_on_model' => 'Este campo parece existir, pero no está disponible en este conjunto de campos para el modelo de activo.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/es-ES/account/general.php b/resources/lang/es-ES/account/general.php index cb208da05..57338d964 100644 --- a/resources/lang/es-ES/account/general.php +++ b/resources/lang/es-ES/account/general.php @@ -10,6 +10,8 @@ return array( 'api_base_url_endpoint' => '/<endpoint>', 'api_token_expiration_time' => 'Las credenciales de la API están establecidas para expirar en:', 'api_reference' => 'Consulte API reference para encontrar los puntos finales (endpoins) del API y documentación adicional.', - 'profile_updated' => 'Cuenta actualizada exitosamente', + 'profile_updated' => 'La cuenta fue actualizada exitosamente', 'no_tokens' => 'No ha creado ninguna credencial de acceso personal.', + 'enable_sounds' => 'Habilitar efectos de sonido', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/es-ES/admin/accessories/message.php b/resources/lang/es-ES/admin/accessories/message.php index cfdae3f3e..c2d52963e 100644 --- a/resources/lang/es-ES/admin/accessories/message.php +++ b/resources/lang/es-ES/admin/accessories/message.php @@ -13,7 +13,7 @@ return array( 'update' => array( 'error' => 'El accesorio no fue actualizado, por favor, inténtelo de nuevo', - 'success' => 'Accesorio actualizado correctamente.' + 'success' => 'El accesorio fue actualizado con éxito.' ), 'delete' => array( diff --git a/resources/lang/es-ES/admin/custom_fields/general.php b/resources/lang/es-ES/admin/custom_fields/general.php index 512bab7cd..7f5932d93 100644 --- a/resources/lang/es-ES/admin/custom_fields/general.php +++ b/resources/lang/es-ES/admin/custom_fields/general.php @@ -41,7 +41,7 @@ return [ 'about_custom_fields_title' => 'Acerca de los Campos Personalizados', 'about_custom_fields_text' => 'Los campos personalizados le permiten añadir atributos arbitrarios a los activos.', 'add_field_to_fieldset' => 'Añadir campo al grupo de campos', - 'make_optional' => 'Requerido - clic para hacerlo opcional', + 'make_optional' => 'Requerido - haga clic para hacerlo opcional', 'make_required' => 'Opcional - clic para hacerlo requerido', 'reorder' => 'Reordenar', 'db_field' => 'Campo en base de datos', diff --git a/resources/lang/es-ES/admin/departments/table.php b/resources/lang/es-ES/admin/departments/table.php index 89216f172..bca0490ee 100644 --- a/resources/lang/es-ES/admin/departments/table.php +++ b/resources/lang/es-ES/admin/departments/table.php @@ -7,5 +7,5 @@ return array( 'manager' => 'Supervisor', 'location' => 'Ubicación', 'create' => 'Crear departamento', - 'update' => 'Departamento de actualización', + 'update' => 'Actualizar departamento', ); diff --git a/resources/lang/es-ES/admin/hardware/general.php b/resources/lang/es-ES/admin/hardware/general.php index 6fb958d5f..4a48f4692 100644 --- a/resources/lang/es-ES/admin/hardware/general.php +++ b/resources/lang/es-ES/admin/hardware/general.php @@ -4,7 +4,7 @@ return [ 'about_assets_title' => 'Acerca de los activos', 'about_assets_text' => 'Los activos son artículos rastreados por número de serie o placa de activo. Suelen ser artículos de alto valor en los que es importante identificar un elemento específico.', 'archived' => 'Archivado', - 'asset' => 'Equipo', + 'asset' => 'Activo', 'bulk_checkout' => 'Asignar activos', 'bulk_checkin' => 'Ingresar activos', 'checkin' => 'Ingresar activo', @@ -21,18 +21,18 @@ return [ 'requested' => 'Solicitado', 'not_requestable' => 'No puede solicitarse', 'requestable_status_warning' => 'No cambiar el estado solicitable', - 'restore' => 'Restaurar equipo', + 'restore' => 'Restaurar activo', 'pending' => 'Pendiente', 'undeployable' => 'No utilizable', 'undeployable_tooltip' => 'Este activo tiene una etiqueta de estado que es no utilizable y no puede ser asignado en este momento.', 'view' => 'Ver activo', 'csv_error' => 'Tiene un error en su archivo CSV:', - 'import_text' => '

Cargue un archivo CSV que contenga el historial de los activos. Los activos y los usuarios DEBEN existir ya en el sistema, o serán omitidos. La comparación de activos para importar el historial se realiza con la placa del activo. Intentaremos encontrar un usuario usando el nombre del usuario que proporcione y los criterios que seleccione a continuación. Si no selecciona ningún criterio, el sistema simplemente intentará usar el formato de nombre de usuario configurado en Administrador > Configuración General.

Los campos incluidos en el CSV deben coincidir con los encabezados: Asset Tag, Name, Checkout Date, Checkin Date. Cualquier campo adicional será ignorado.

Checkin Date(Fecha de recepción): dejar en blanco o usar fechas futuras asignará los ítems al usuario asociado. Excluir la columna Checkin Date creará una fecha de recepción con la fecha de hoy.

', + 'import_text' => '

Cargue un archivo CSV que contenga el historial de los activos. Los activos y los usuarios DEBEN existir ya en el sistema, o serán omitidos. La comparación de activos para importar el historial se realiza con la placa del activo. Intentaremos encontrar un usuario usando el nombre del usuario que proporcione y los criterios que seleccione a continuación. Si no selecciona ningún criterio, el sistema simplemente intentará usar el formato de nombre de usuario configurado en Administrador > Configuración General.

Los campos incluidos en el CSV deben coincidir con los encabezados: Asset Tag, Name, Checkout Date, Checkin Date. Cualquier campo adicional será ignorado.

Checkin Date(Fecha de recepción): dejar en blanco o usar fechas futuras asignará los elementos al usuario asociado. Excluir la columna Checkin Date creará una fecha de recepción con la fecha de hoy.

', 'csv_import_match_f-l' => 'Intente emparejar usuarios usando el formato nombre.apellido (jane.smith)', 'csv_import_match_initial_last' => 'Intente emparejar los usuarios usando el formato inicial del nombre y apellido (jsmith)', 'csv_import_match_first' => 'Intentar emparejar a los usuarios usando el formato primer nombre (jane)', 'csv_import_match_email' => 'Intente emparejar los usuarios usando correo electrónico como nombre de usuario', - 'csv_import_match_username' => 'Intente emparejar los usuarios usando usuario', + 'csv_import_match_username' => 'Intente emparejar los usuarios usando nombre de usuario', 'error_messages' => 'Mensajes de error:', 'success_messages' => 'Mensajes de éxito:', 'alert_details' => 'Por favor vea abajo para más detalles.', diff --git a/resources/lang/es-ES/admin/hardware/message.php b/resources/lang/es-ES/admin/hardware/message.php index fe3a08764..9d73bd3fe 100644 --- a/resources/lang/es-ES/admin/hardware/message.php +++ b/resources/lang/es-ES/admin/hardware/message.php @@ -51,12 +51,12 @@ return [ ], 'import' => [ - 'import_button' => 'Proceso para importar', + 'import_button' => 'Importar', 'error' => 'Algunos elementos no se pudieron importar correctamente.', 'errorDetail' => 'Estos elementos no pudieron importarse debido a errores.', 'success' => 'Su archivo ha sido importado', 'file_delete_success' => 'Su archivo se ha eliminado correctamente', - 'file_delete_error' => 'No pudimos eliminar tu archivo', + 'file_delete_error' => 'El archivo no se pudo eliminar', 'file_missing' => 'Falta el archivo seleccionado', 'header_row_has_malformed_characters' => 'Uno o más atributos en la fila del encabezado contienen caracteres UTF-8 mal formados', 'content_row_has_malformed_characters' => 'Uno o más atributos en la primera fila de contenido contienen caracteres UTF-8 mal formados', diff --git a/resources/lang/es-ES/admin/kits/general.php b/resources/lang/es-ES/admin/kits/general.php index cb2f817c2..b9d6481df 100644 --- a/resources/lang/es-ES/admin/kits/general.php +++ b/resources/lang/es-ES/admin/kits/general.php @@ -23,17 +23,17 @@ return [ 'update_appended_model' => 'Actualizar modelo vinculado', 'license_error' => 'Licencia ya adjunta al kit', 'license_added_success' => 'Licencia añadida correctamente', - 'license_updated' => 'Licencia actualizada correctamente', + 'license_updated' => 'La licencia fue actualizada correctamente', 'license_none' => 'La licencia no existe', 'license_detached' => 'Licencia desvinculada correctamente', 'consumable_added_success' => 'Consumible añadido correctamente', - 'consumable_updated' => 'Consumible actualizado correctamente', + 'consumable_updated' => 'El consumible fue actualizado correctamente', 'consumable_error' => 'Consumible ya vinculado al kit', 'consumable_deleted' => 'Eliminado correctamente', 'consumable_none' => 'El Consumible no existe', 'consumable_detached' => 'Consumible desvinculado correctamente', 'accessory_added_success' => 'Accesorio añadido correctamente', - 'accessory_updated' => 'Accesorio actualizado correctamente', + 'accessory_updated' => 'El accesorio fue actualizado correctamente', 'accessory_detached' => 'Accesorio desvinculado correctamente', 'accessory_error' => 'El accesorio ya vinculado al kit', 'accessory_deleted' => 'Eliminado correctamente', @@ -42,9 +42,9 @@ return [ 'checkout_error' => 'Error al asignar', 'kit_none' => 'El Kit no existe', 'kit_created' => 'Kit creado correctamente', - 'kit_updated' => 'Kit actualizado correctamente', + 'kit_updated' => 'El kit fue actualizado correctamente', 'kit_not_found' => 'Kit no encontrado', 'kit_deleted' => 'Kit eliminado correctamente', - 'kit_model_updated' => 'Modelo actualizado correctamente', + 'kit_model_updated' => 'El modelo fue actualizado correctamente', 'kit_model_detached' => 'Modelo desvinculado correctamente', ]; diff --git a/resources/lang/es-ES/admin/labels/message.php b/resources/lang/es-ES/admin/labels/message.php index 6f03c9469..01006397c 100644 --- a/resources/lang/es-ES/admin/labels/message.php +++ b/resources/lang/es-ES/admin/labels/message.php @@ -2,9 +2,9 @@ return [ - 'invalid_return_count' => 'El recuento no es válido desde :name. Esperado :expected, tiene :actual.', - 'invalid_return_type' => 'Tipo no válido devuelto desde :name. Esperado :expected, obtuvo :actual.', - 'invalid_return_value' => 'Valor no válido devuelto de :name. Esperado :expected, obtuvo :actual.', + 'invalid_return_count' => 'El recuento no es válido desde :name. Esperado :expected, obtenido :actual.', + 'invalid_return_type' => 'Tipo no válido devuelto desde :name. Esperado :expected, obtenido :actual.', + 'invalid_return_value' => 'Valor no válido devuelto de :name. Esperado :expected, obtenido :actual.', 'does_not_exist' => 'La etiqueta no existe', diff --git a/resources/lang/es-ES/admin/licenses/message.php b/resources/lang/es-ES/admin/licenses/message.php index d9cf95f16..0001c73c3 100644 --- a/resources/lang/es-ES/admin/licenses/message.php +++ b/resources/lang/es-ES/admin/licenses/message.php @@ -4,7 +4,7 @@ return array( 'does_not_exist' => 'La licencia no existe o no tiene permiso para verla.', 'user_does_not_exist' => 'El usuario no existe o no tiene permiso para verlos.', - 'asset_does_not_exist' => 'El equipo que intentas asignar a esta licencia no existe.', + 'asset_does_not_exist' => 'El activo que intenta asociar con esta licencia no existe.', 'owner_doesnt_match_asset' => 'El activo que está intentando asignar con esta licencia está asignado a un usuario diferente al de la persona seleccionada de la lista.', 'assoc_users' => 'Esta licencia está actualmente asignada a un usuario y no puede ser eliminada. Por favor, reciba primero la licencia y vuelva a intentarlo. ', 'select_asset_or_person' => 'Debe seleccionar un activo o un usuario, pero no ambos.', diff --git a/resources/lang/es-ES/admin/licenses/table.php b/resources/lang/es-ES/admin/licenses/table.php index 571199dd0..df2b96484 100644 --- a/resources/lang/es-ES/admin/licenses/table.php +++ b/resources/lang/es-ES/admin/licenses/table.php @@ -11,7 +11,7 @@ return array( 'purchase_date' => 'Fecha de compra', 'purchased' => 'Comprado', 'seats' => 'Total de licencias', - 'hardware' => 'Equipo', + 'hardware' => 'Hardware', 'serial' => 'N. Serie', 'title' => 'Categoría de equipo', diff --git a/resources/lang/es-ES/admin/locations/message.php b/resources/lang/es-ES/admin/locations/message.php index 06956564e..05fd77702 100644 --- a/resources/lang/es-ES/admin/locations/message.php +++ b/resources/lang/es-ES/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'La ubicación no existe.', - 'assoc_users' => 'Esta ubicación no se puede eliminar actualmente porque es la ubicación de al menos un activo o de un usuario, tiene activos asignados a ella, o es la ubicación padre de otra ubicación. Por favor actualice las referencias que correspondan. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Esta ubicación está actualmente asociada con al menos un activo y no puede ser eliminada. Por favor actualice sus activos para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assoc_child_loc' => 'Esta ubicación es actualmente el padre de al menos una ubicación hija y no puede ser eliminada. Por favor actualice sus ubicaciones para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assigned_assets' => 'Activos asignados', @@ -11,7 +11,7 @@ return array( 'create' => array( - 'error' => 'La ubicación no pudo ser creada, por favor inténtelo de nuevo.', + 'error' => 'La ubicación no pudo ser creada, por favor, inténtelo de nuevo.', 'success' => 'La ubicación fue creada exitosamente.' ), diff --git a/resources/lang/es-ES/admin/locations/table.php b/resources/lang/es-ES/admin/locations/table.php index 95f048d9e..782c953b7 100644 --- a/resources/lang/es-ES/admin/locations/table.php +++ b/resources/lang/es-ES/admin/locations/table.php @@ -2,7 +2,7 @@ return [ 'about_locations_title' => 'Acerca de las ubicaciones', - 'about_locations' => 'Las ubicaciones son utilizadas para hacer seguimiento de la información sobre ubicación de usuarios, activos, y otros ítems', + 'about_locations' => 'Las ubicaciones se utilizan para hacer un seguimiento de la ubicación de usuarios, activos y otros elementos', 'assets_rtd' => 'Activos', // This has NEVER meant Assets Retired. I don't know how it keeps getting reverted. 'assets_checkedout' => 'Activos asignados', 'id' => 'ID', @@ -35,8 +35,8 @@ return [ 'asset_expected_checkin' => 'Fecha esperada de devolución', 'date' => 'Fecha:', 'phone' => 'Teléfono ubicación', - 'signed_by_asset_auditor' => 'Firmado por (Juego de Acciones):', - 'signed_by_finance_auditor' => 'Firmado por (Juego de Acciones):', - 'signed_by_location_manager' => 'Firmado por (Administrador de ubicación):', + 'signed_by_asset_auditor' => 'Firmado por (Auditor de Activos):', + 'signed_by_finance_auditor' => 'Firmado por (Auditor de Finanzas):', + 'signed_by_location_manager' => 'Firmado por (Supervisor de la ubicación):', 'signed_by' => 'Firmado por:', ]; diff --git a/resources/lang/es-ES/admin/settings/general.php b/resources/lang/es-ES/admin/settings/general.php index c4f8200b2..b7820fc14 100644 --- a/resources/lang/es-ES/admin/settings/general.php +++ b/resources/lang/es-ES/admin/settings/general.php @@ -6,7 +6,7 @@ return [ 'ad_domain_help' => 'Algunas veces coincide con el dominio de su correo electrónico, pero no siempre.', 'ad_append_domain_label' => 'Añadir nombre de dominio', 'ad_append_domain' => 'Añadir nombre de dominio al campo de nombre de usuario', - 'ad_append_domain_help' => 'El usuario no necesita escribir "username@domain.local", puede escribir únicamente "username".', + 'ad_append_domain_help' => 'El usuario no necesita escribir "usuario@dominio.local", puede escribir únicamente "usuario".', 'admin_cc_email' => 'Copiar en correo electrónico', 'admin_cc_email_help' => 'Si desea enviar una copia de los correos electrónicos de recepción/devolución que se envían a los usuarios a una cuenta de correo electrónico adicional, escríbala aquí. De lo contrario, deje este campo en blanco.', 'admin_settings' => 'Configuración de administrador', @@ -41,7 +41,7 @@ return [ 'confirm_purge_help' => 'Introduzca el texto "DELETE" en la casilla de abajo para purgar sus registros borrados. Esta acción no se puede deshacer y borrará PERMANENTAMENTE todos los elementos y usuarios eliminados. Debería hacer primero una copia de seguridad, para estar seguro.', 'custom_css' => 'CSS Personalizado', 'custom_css_help' => 'Introduzca cualquier CSS personalizado que desee utilizar. No incluya las etiquetas <style></style>.', - 'custom_forgot_pass_url' => 'Reestablecer URL de Contraseña Personalizada', + 'custom_forgot_pass_url' => 'URL de restablecimiento de contraseña personalizada', 'custom_forgot_pass_url_help' => 'Esto remplaza la URL incorporada para las contraseñas olvidadas en la pantalla de inicio, útil para dirigir a las personas a una funcionalidad de restablecimiento de contraseña LDAP interna o alojada. Esto efectivamente desactivará la funcionalidad local de olvido de contraseña.', 'dashboard_message' => 'Mensaje en el tablero', 'dashboard_message_help' => 'Este texto aparecerá en el panel para cualquiera que tenga permiso de ver el Panel.', @@ -110,13 +110,13 @@ return [ 'ldap_filter' => 'Filtro LDAP', 'ldap_pw_sync' => 'Sincronización de Contraseña LDAP', 'ldap_pw_sync_help' => 'Desmarque esta casilla si no desea mantener las contraseñas LDAP sincronizadas con las contraseñas locales. Si desactiva esta opción, los usuarios no podrán iniciar sesión si, por algún motivo, no se puede acceder al servidor LDAP.', - 'ldap_username_field' => 'Campo de usuario', + 'ldap_username_field' => 'Campo nombre de usuario', 'ldap_lname_field' => 'Apellido', 'ldap_fname_field' => 'Nombre LDAP', 'ldap_auth_filter_query' => 'Consulta de autentificación LDAP', 'ldap_version' => 'Versión LDAP', 'ldap_active_flag' => 'Flag activo LDAP', - 'ldap_activated_flag_help' => 'Este valor se utiliza para determinar si un usuario sincronizado puede iniciar sesión en Snipe-IT. No afecta a la capacidad de asignarles o retirarles items, y debería ser el nombre de atributo dentro de su AD/LDAP, no el valor.

Si este campo está configurado a un nombre de campo que no existe en su AD/LDAP, o el valor en el campo AD/LDAP se establece en 0 o falso, el inicio de sesión de usuario será deshabilitado. Si el valor en el campo AD/LDAP está establecido en 1 o true o cualquier otro texto significa que el usuario puede iniciar sesión. Cuando el campo está en blanco en su AD, respetamos el atributo userAccountControl, que generalmente permite a los usuarios no suspendidos iniciar sesión.', + 'ldap_activated_flag_help' => 'Este valor se utiliza para determinar si un usuario sincronizado puede iniciar sesión en Snipe-IT. No afecta a la capacidad de asignarles o retirarles elementos, y debería ser el nombre de atributo dentro de su AD/LDAP, no el valor.

Si este campo está configurado a un nombre de campo que no existe en su AD/LDAP, o el valor en el campo AD/LDAP se establece en 0 o falso, el inicio de sesión de usuario será deshabilitado. Si el valor en el campo AD/LDAP está establecido en 1 o true o cualquier otro texto significa que el usuario puede iniciar sesión. Cuando el campo está en blanco en su AD, respetamos el atributo userAccountControl, que generalmente permite a los usuarios no suspendidos iniciar sesión.', 'ldap_emp_num' => 'Número de empleado LDAP', 'ldap_email' => 'Email LDAP', 'ldap_test' => 'Probar LDAP', @@ -127,7 +127,7 @@ return [ 'login' => 'Intentos de inicio de sesión', 'login_attempt' => 'Intento de inicio de sesión', 'login_ip' => 'Dirección IP', - 'login_success' => '¿Éxito?', + 'login_success' => '¿Exitoso?', 'login_user_agent' => 'Navegador', 'login_help' => 'Lista de intentos de inicio de sesión', 'login_note' => 'Nota de inicio de sesión', @@ -215,9 +215,11 @@ return [ 'webhook_endpoint' => 'Endpoint de :app', 'webhook_integration' => 'Ajustes de :app', 'webhook_test' =>'Probar integración con :app', - 'webhook_integration_help' => 'La integración con :app es opcional, sin embargo el punto final (endpoint) y el canal son necesarios si desea usarla. Para configurar la integración con :app, primero debe crear un webhook entrante en tu cuenta :app. Haga clic en el botón Probar integración con :app para confirmar que su configuración es correcta antes de guardar. ', + 'webhook_integration_help' => 'La integración con :app es opcional, sin embargo, el punto final (endpoint) y el canal son necesarios si desea usarla. Para configurar la integración con :app, primero debe crear un webhook entrante en su cuenta :app. Haga clic en el botón Probar integración con :app para confirmar que su configuración es correcta antes de guardar. ', 'webhook_integration_help_button' => 'Una vez que haya guardado la información de :app, aparecerá un botón de prueba.', 'webhook_test_help' => 'Compruebe si su integración con :app está configurada correctamente. PRIMERO DEBE GUARDAR LA CONFIGURACION ACTUALIZADA DE :app.', + 'shortcuts_enabled' => 'Habilitar accesos directos', + 'shortcuts_help_text' => 'Windows: Alt + Tecla de acceso, Mac: Control + Opción + Tecla de acceso', 'snipe_version' => 'Version de Snipe-IT', 'support_footer' => 'Enlace al soporte en el pie de página ', 'support_footer_help' => 'Especifica quien ve los enlaces de información de Soporte y Manual de Usuarios de Snipe-IT', @@ -231,7 +233,7 @@ return [ 'brand_help' => 'Logo, nombre del sitio', 'web_brand' => 'Tipo de marca web', 'about_settings_title' => 'Acerca de Ajustes', - 'about_settings_text' => 'Estos ajustes te permiten personalizar ciertos aspectos de tu instalación.', + 'about_settings_text' => 'Estas configuraciones le permiten personalizar ciertos aspectos de su instalación.', 'labels_per_page' => 'Etiquetas por página', 'label_dimensions' => 'Dimensiones de las etiquetas (pulgadas)', 'next_auto_tag_base' => 'Siguiente incremento automático', @@ -334,7 +336,7 @@ return [ 'employee_number' => 'Número de empleado', 'create_admin_user' => 'Crear Usuario ::', 'create_admin_success' => '¡Éxito! ¡Su usuario admin ha sido añadido!', - 'create_admin_redirect' => '¡Haz clic aquí para acceder a tu aplicación!', + 'create_admin_redirect' => '¡Haga clic aquí para acceder a su aplicación!', 'setup_migrations' => 'Migraciones de base de datos ::', 'setup_no_migrations' => 'No hay nada que migrar. ¡Las tablas de la base de datos ya estaban configuradas!', 'setup_successful_migrations' => 'Se han creado las tablas de la base de datos', diff --git a/resources/lang/es-ES/admin/settings/message.php b/resources/lang/es-ES/admin/settings/message.php index 8db2dbee6..926883aa8 100644 --- a/resources/lang/es-ES/admin/settings/message.php +++ b/resources/lang/es-ES/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Sí, restaurarlo. Reconozco que esto sobrescribirá cualquier dato existente actualmente en la base de datos. Esto también cerrará la sesión de todos sus usuarios existentes (incluido usted).', 'restore_confirm' => '¿Está seguro que desea restaurar su base de datos desde :filename?' ], + 'restore' => [ + 'success' => 'Su copia de respaldo del sistema ha sido restaurada. Por favor, inicie sesión nuevamente.' + ], 'purge' => [ 'error' => 'Ha ocurrido un error mientras se realizaba el purgado. ', 'validation_failed' => 'Su confirmación de purga es incorrecta. Por favor, escriba la palabra "Borrar" en el cuadro de confirmación.', diff --git a/resources/lang/es-ES/admin/suppliers/table.php b/resources/lang/es-ES/admin/suppliers/table.php index 02804f2fa..f862849cc 100644 --- a/resources/lang/es-ES/admin/suppliers/table.php +++ b/resources/lang/es-ES/admin/suppliers/table.php @@ -2,7 +2,7 @@ return array( 'about_suppliers_title' => 'Acerca de Proveedores', - 'about_suppliers_text' => 'Los Proveedores son utilizados para hacer seguimiento de la fuente de los items', + 'about_suppliers_text' => 'Los proveedores se utilizan para hacer seguimiento al origen de los elementos', 'address' => 'Dirección del Proveedor', 'assets' => 'Equipos', 'city' => 'Ciudad', diff --git a/resources/lang/es-ES/admin/users/message.php b/resources/lang/es-ES/admin/users/message.php index 11fb5d93c..80d6c215d 100644 --- a/resources/lang/es-ES/admin/users/message.php +++ b/resources/lang/es-ES/admin/users/message.php @@ -48,9 +48,9 @@ return array( 'accept_or_decline' => 'Debe aceptar o rechazar este equipo.', 'cannot_delete_yourself' => 'Nos sentiríamos muy mal si usted se eliminara, por favor reconsidérelo.', 'incorrect_user_accepted' => 'El elemento que ha intentado aceptar no fue asignado a usted.', - 'ldap_could_not_connect' => 'No se ha podido conectar con el servidor LDAP. Por favor verifique la configuración de su servidor LDAP en su archivo de configuración.
Error del servidor LDAP:', - 'ldap_could_not_bind' => 'No se ha podido vincular con el servidor LDAP. Por favor verifique la configuración de su servidor LDAP en su archivo de configuración.
Error del servidor LDAP: ', - 'ldap_could_not_search' => 'No se ha podido buscar en el servidor LDAP. Por favor verifique la configuración de su servidor LDAP en su archivo de configuración.
Error del servidor LDAP:', + 'ldap_could_not_connect' => 'No se pudo conectar al servidor LDAP. Por favor, compruebe la configuración del servidor LDAP en el archivo de configuración LDAP.
Error del servidor LDAP:', + 'ldap_could_not_bind' => 'No se ha podido vincular al servidor LDAP. Por favor verifique la configuración de su servidor LDAP en su archivo de configuración.
Error del servidor LDAP: ', + 'ldap_could_not_search' => 'No se pudo buscar en el servidor LDAP. Por favor, compruebe la configuración del servidor LDAP en el archivo de configuración LDAP.
Error del servidor LDAP:', 'ldap_could_not_get_entries' => 'No se han podido obtener entradas del servidor LDAP. Por favor verifique la configuración de su servidor LDAP en su archivo de configuración.
Error del servidor LDAP:', 'password_ldap' => 'La contraseña para esta cuenta es administrada por LDAP / Active Directory. Póngase en contacto con su departamento de TI para cambiar su contraseña.', ), diff --git a/resources/lang/es-ES/admin/users/table.php b/resources/lang/es-ES/admin/users/table.php index 3a6a7c866..b7299bb06 100644 --- a/resources/lang/es-ES/admin/users/table.php +++ b/resources/lang/es-ES/admin/users/table.php @@ -5,7 +5,7 @@ return array( 'allow' => 'Permitir', 'checkedout' => 'Equipos', 'created_at' => 'Creado', - 'createuser' => 'Crear Usuario', + 'createuser' => 'Crear usuario', 'deny' => 'Denegar', 'email' => 'Correo electrónico', 'employee_num' => 'No. Empleado', @@ -14,10 +14,10 @@ return array( 'id' => 'Id', 'inherit' => 'Hereda de', 'job' => 'Cargo', - 'last_login' => 'Ultimo Login', + 'last_login' => 'Último inicio de sesión', 'last_name' => 'Apellidos', 'location' => 'Ubicación', - 'lock_passwords' => 'Los detalles de acceso no pueden ser cambiados en esta instalación.', + 'lock_passwords' => 'Los detalles de inicio de sesión no pueden ser cambiados en esta instalación.', 'manager' => 'Supervisor', 'managed_locations' => 'Ubicaciones gestionadas', 'managed_users' => 'Usuarios gestionados', @@ -32,8 +32,8 @@ return array( 'title' => 'Cargo', 'to_restore_them' => 'para restaurarlos.', 'total_assets_cost' => "Coste total de activos", - 'updateuser' => 'Actualizar Usuario', - 'username' => 'Usuario', + 'updateuser' => 'Actualizar usuario', + 'username' => 'Nombre de usuario', 'user_deleted_text' => 'Este usuario ha sido marcado como eliminado.', 'username_note' => '(Esto se usa solo para la conexión con Active Directory, no para el inicio de sesión.)', 'cloneuser' => 'Clonar Usuario', diff --git a/resources/lang/es-ES/auth/message.php b/resources/lang/es-ES/auth/message.php index bbc9528ef..92e757ec5 100644 --- a/resources/lang/es-ES/auth/message.php +++ b/resources/lang/es-ES/auth/message.php @@ -3,7 +3,7 @@ return array( 'account_already_exists' => 'Ya existe un usuario con este e-mail.', - 'account_not_found' => 'El nombre de usuario o contraseña es incorrecta.', + 'account_not_found' => 'El nombre de usuario o la contraseña son incorrectos.', 'account_not_activated' => 'Este usuario no está activado.', 'account_suspended' => 'Este usuario está desactivado.', 'account_banned' => 'Este usuario ha sido expulsado.', @@ -19,7 +19,7 @@ return array( ), 'signin' => array( - 'error' => 'Ha habido un problema al iniciar sesión. Por favor, vuelve a intentarlo.', + 'error' => 'Ha habido un problema al iniciar sesión. Por favor, inténtelo de nuevo.', 'success' => 'Ha iniciado sesión exitosamente.', ), @@ -29,17 +29,17 @@ return array( ), 'signup' => array( - 'error' => 'Ha habido un problema al crear la cuenta. Por favor, vuelve a intentarlo.', + 'error' => 'Hubo un problema al crear la cuenta. Por favor, inténtelo de nuevo.', 'success' => 'Cuenta creada correctamente.', ), 'forgot-password' => array( - 'error' => 'Ha habido un problema al intentar resetear el password. Por favor, vuelve a intentarlo.', + 'error' => 'Ha habido un problema al obtener un código de restablecimiento de la contraseña. Por favor, inténtelo de nuevo.', 'success' => 'Si esa dirección de correo electrónico existe en nuestro sistema, recibirá un correo electrónico de recuperación de contraseña.', ), 'forgot-password-confirm' => array( - 'error' => 'Hubo un problema al intentar restablecer su contraseña, por favor inténtelo de nuevo.', + 'error' => 'Hubo un problema al intentar restablecer su contraseña, por favor, inténtelo de nuevo.', 'success' => 'Su contraseña se ha restablecido correctamente.', ), diff --git a/resources/lang/es-ES/button.php b/resources/lang/es-ES/button.php index efd8b667c..aa13f5919 100644 --- a/resources/lang/es-ES/button.php +++ b/resources/lang/es-ES/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clonar :item_type', 'edit' => 'Editar :item_type', 'delete' => 'Eliminar :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restaurar :item_type', 'create' => 'Crear nuevo :item_type', 'checkout' => 'Asignar :item_type', 'checkin' => 'Ingresar :item_type', diff --git a/resources/lang/es-ES/general.php b/resources/lang/es-ES/general.php index 7154025f2..9b62f9080 100644 --- a/resources/lang/es-ES/general.php +++ b/resources/lang/es-ES/general.php @@ -1,7 +1,7 @@ 'Reestablecer 2FA', + '2FA_reset' => 'Restablecer 2FA', 'accessories' => 'Accesorios', 'activated' => 'Activado', 'accepted_date' => 'Fecha de aceptación', @@ -17,26 +17,26 @@ return [ 'administrator' => 'Administrador', 'add_seats' => 'Licencias añadidas', 'age' => "Edad", - 'all_assets' => 'Todos los Equipos', + 'all_assets' => 'Todos los activos', 'all' => 'Todos los', 'archived' => 'Archivado', 'asset_models' => 'Modelos', 'asset_model' => 'Modelo', - 'asset' => 'Equipo', + 'asset' => 'Activo', 'asset_report' => 'Informe de activos', 'asset_tag' => 'Placa del activo', 'asset_tags' => 'Placas de activos', 'assets_available' => 'Activos disponibles', 'accept_assets' => 'Aceptar activos :name', 'accept_assets_menu' => 'Aceptar activos', - 'audit' => 'Auditoría', + 'audit' => 'Auditar', 'audit_report' => 'Registro de auditoría', 'assets' => 'Activos', 'assets_audited' => 'activos auditados', 'assets_checked_in_count' => 'activos ingresados', 'assets_checked_out_count' => 'activos asignados', 'asset_deleted_warning' => 'Este activo ha sido eliminado. Debe restaurarlo antes de poder asignarlo a alguien.', - 'assigned_date' => 'Fecha asignada', + 'assigned_date' => 'Fecha de asignación', 'assigned_to' => 'Asignado a :name', 'assignee' => 'Asignado a', 'avatar_delete' => 'Eliminar Avatar', @@ -44,7 +44,7 @@ return [ 'back' => 'Atras', 'bad_data' => 'Ningún resultado. ¿Quizá un dato incorrecto?', 'bulkaudit' => 'Auditoría masiva', - 'bulkaudit_status' => 'Estado de auditoría', + 'bulkaudit_status' => 'Estado de la auditoría', 'bulk_checkout' => 'Asignación masiva', 'bulk_edit' => 'Edición masiva', 'bulk_delete' => 'Borrado masivo', @@ -66,7 +66,7 @@ return [ 'checkins_count' => 'Ingresos', 'user_requests_count' => 'Solicitudes', 'city' => 'Ciudad', - 'click_here' => 'Pulsa aquí', + 'click_here' => 'Haga clic aquí', 'clear_selection' => 'Borrar selección', 'companies' => 'Compañías', 'company' => 'Compañía', @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumibles', 'country' => 'País', 'could_not_restore' => 'Error al restaurar :item_type: :error', - 'not_deleted' => 'El :item_type no está borrado por lo que no puede ser restaurado', + 'not_deleted' => ':item_type no está eliminado; por lo tanto, no se puede restaurar', 'create' => 'Crear nuevo', 'created' => 'Artículo creado', 'created_asset' => 'equipo creado', @@ -87,7 +87,7 @@ return [ 'updated_at' => 'Actualizado en', 'currency' => '€', // this is deprecated 'current' => 'Actual', - 'current_password' => 'Contraseña Actual', + 'current_password' => 'Contraseña actual', 'customize_report' => 'Personalizar informe', 'custom_report' => 'Informe personalizado de activos', 'dashboard' => 'Tablero', @@ -95,10 +95,10 @@ return [ 'days_to_next_audit' => 'Días a la próxima auditoría', 'date' => 'Fecha', 'debug_warning' => '¡Advertencia!', - 'debug_warning_text' => 'Esta aplicación esta corriendo en modo producción con debugging activado. Esto puede exponer datos sensibles si su aplicación es accesible desde el exterior. Desactive el modo debug cambiando el valor APP_DEBUG en su archivo .env a false.', + 'debug_warning_text' => 'Esta aplicación se está ejecutando en modo producción con depuración habilitada. Esto puede exponer datos sensibles si su aplicación es accedida desde el mundo exterior. Deshabilite el modo de depuración configurando el valor APP_DEBUG en su archivo .env a false.', 'delete' => 'Borrar', 'delete_confirm' => '¿Está seguro de que desea eliminar :item?', - 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no se puede deshacer.', + 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no puede deshacerse.', 'deleted' => 'Borrado', 'delete_seats' => 'Licencias eliminadas', 'deletion_failed' => 'Error al eliminar', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Apellido e inicial del nombre (smith_j@ejemplo.com)', 'firstinitial.lastname' => 'Inicial del nombre y apellido (j.smith@ejemplo.com)', 'firstnamelastinitial' => 'Nombre e inicial del apellido(janes@example.com)', - 'lastnamefirstname' => 'Apellido y nombre (smith.jane@example.com)', + 'lastnamefirstname' => 'Apellido.Nombre (smith.jane@example.com)', 'first_name' => 'Nombre', 'first_name_format' => 'Nombre (jane@ejemplo.com)', 'files' => 'Archivos', @@ -148,7 +148,7 @@ return [ 'github_markdown' => 'Este campo acepta el formateo flavored de GitHub.', 'groups' => 'Grupos', 'gravatar_email' => 'Gravatar Email', - 'gravatar_url' => 'Cambia tu avatar en Gravatar.com.', + 'gravatar_url' => 'Cambie su avatar en Gravatar.com.', 'history' => 'Historial', 'history_for' => 'Historial de', 'id' => 'Id', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Borrar imagen', 'include_deleted' => 'Incluir activos eliminados', 'image_upload' => 'Cargar imagen', - 'filetypes_accepted_help' => 'El tipo de archivo aceptado es :types. El tamaño máximo permitido es :size.|Los tipos de archivo aceptados son :types. El tamaño máximo permitido es :size.', - 'filetypes_size_help' => 'El tamaño máximo de carga permitido es :size.', - 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg y avif. El tamaño máximo permitido es :size.', + 'filetypes_accepted_help' => 'El tipo de archivo aceptado es :types. El tamaño máximo permitido es :size.|Los tipos de archivo aceptados son :types. El tamaño máximo permitido para cargar es :size.', + 'filetypes_size_help' => 'El tamaño máximo permitido para cargar es :size.', + 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg, y avif. El tamaño máximo permitido para cargar es :size.', 'unaccepted_image_type' => 'No se pudo leer este archivo de imagen. Los tipos de archivo aceptados son jpg, webp, png, gif y svg. El tipo mimetype de este archivo es: :mimetype.', 'import' => 'Importar', 'import_this_file' => 'Asociar campos y procesar este archivo', @@ -169,7 +169,7 @@ return [ 'asset_maintenance_report' => 'Informe mantenimiento de activos', 'asset_maintenances' => 'Mantenimiento de activos', 'item' => 'Elemento', - 'item_name' => 'Nombre del ítem', + 'item_name' => 'Nombre del elemento', 'import_file' => 'importar archivo CSV', 'import_type' => 'Tipo de importación CSV', 'insufficient_permissions' => '¡Permisos insuficientes!', @@ -183,17 +183,17 @@ return [ 'licenses_available' => 'Licencias disponibles', 'licenses' => 'Licencias', 'list_all' => 'Mostrar todos', - 'loading' => 'Cargando... por favor espere....', + 'loading' => 'Cargando... por favor espere...', 'lock_passwords' => 'El valor de este campo no será guardado en una instalación de demostración.', 'feature_disabled' => 'Esta característica se ha desactivado para la versión de demostración.', 'location' => 'Ubicación', 'location_plural' => 'Ubicación|Ubicaciones', 'locations' => 'Ubicaciones', - 'logo_size' => 'Los logotipos cuadrados se ven mejor con Logo + Texto. El tamaño máximo del logo es 50px de altura x 500px de ancho. ', + 'logo_size' => 'Los logotipos cuadrados se ven mejor con Logo + Texto. El tamaño máximo del logo es 50px de alto x 500px de ancho. ', 'logout' => 'Desconexión', 'lookup_by_tag' => 'Buscar placa del activo', 'maintenances' => 'Mantenimientos', - 'manage_api_keys' => 'Administrar API Keys', + 'manage_api_keys' => 'Administrar las claves del API', 'manufacturer' => 'Fabricante', 'manufacturers' => 'Fabricantes', 'markdown' => 'Este campo permite Github con sabor a markdown.', @@ -245,7 +245,7 @@ return [ 'requested_date' => 'Fecha de solicitud', 'requested_assets' => 'Elementos solicitados', 'requested_assets_menu' => 'Elementos solicitados', - 'request_canceled' => 'Solicitud Cancelada', + 'request_canceled' => 'Solicitud cancelada', 'request_item' => 'Solicitar este elemento', 'external_link_tooltip' => 'Enlace externo a', 'save' => 'Guardar', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Seleccionar todo', 'search' => 'Buscar', 'select_category' => 'Seleccionar una categoría', - 'select_datasource' => 'Seleccionar un origen de datos', + 'select_datasource' => 'Seleccione un origen de datos', 'select_department' => 'Seleccionar un departamento', 'select_depreciation' => 'Seleccionar un tipo de amortización', 'select_location' => 'Seleccionar una ubicación', @@ -274,16 +274,17 @@ return [ 'signed_off_by' => 'Firmado por', 'skin' => 'Apariencia', 'webhook_msg_note' => 'Una notificación se enviará a través de webhook', - 'webhook_test_msg' => '¡Parece que su integración de :app con Snipe-IT está funcionando!', + 'webhook_test_msg' => '¡Hola! ¡Parece que la integración de :app con Snipe-IT funciona!', 'some_features_disabled' => 'MODO DE DEMOSTRACIÓN: Algunas funciones estan desactivadas para esta instalación.', 'site_name' => 'Sitio', 'state' => 'Provincia', 'status_labels' => 'Etiquetas de estado', + 'status_label' => 'Status Label', 'status' => 'Estado', 'accept_eula' => 'Acuerdo de aceptación', 'supplier' => 'Proveedor', 'suppliers' => 'Proveedores', - 'sure_to_delete' => '¿Está seguro que desea eliminar?', + 'sure_to_delete' => '¿Está seguro de que desea eliminar', 'sure_to_delete_var' => '¿Está seguro de que desea eliminar :item?', 'delete_what' => 'Eliminar :item', 'submit' => 'Enviar', @@ -303,7 +304,7 @@ return [ 'uploaded' => 'Cargado', 'user' => 'Usuario', 'accepted' => 'aceptado', - 'declined' => 'declinado', + 'declined' => 'rechazado', 'declined_note' => 'Notas de rechazo', 'unassigned' => 'Sin asignar', 'unaccepted_asset_report' => 'Activos no aceptados', @@ -332,7 +333,7 @@ return [ 'i_accept' => 'Acepto', 'i_decline' => 'Rechazo', 'accept_decline' => 'Aceptar/Rechazar', - 'sign_tos' => 'Firma abajo para indicar que estás de acuerdo con los términos de servicio:', + 'sign_tos' => 'Firme abajo para indicar que está de acuerdo con los términos de servicio:', 'clear_signature' => 'Borrar firma', 'show_help' => 'Mostrar ayuda', 'hide_help' => 'Ocultar ayuda', @@ -340,15 +341,15 @@ return [ 'hide_deleted' => 'Ocultar eliminados', 'email' => 'Correo electrónico', 'do_not_change' => 'No cambiar', - 'bug_report' => 'Reportar un fallo', + 'bug_report' => 'Reporte un error', 'user_manual' => 'Manual del usuario', 'setup_step_1' => 'Paso 1', 'setup_step_2' => 'Paso 2', 'setup_step_3' => 'Paso 3', 'setup_step_4' => 'Paso 4', 'setup_config_check' => 'Comprobar configuración', - 'setup_create_database' => 'Crear Tablas de Base de Datos', - 'setup_create_admin' => 'Crear usuario Administrador', + 'setup_create_database' => 'Crear tablas de la base de datos', + 'setup_create_admin' => 'Crear usuario administrador', 'setup_done' => '¡Terminado!', 'bulk_edit_about_to' => 'Está a punto de editar lo siguiente: ', 'checked_out' => 'Asignado', @@ -425,7 +426,7 @@ return [ 'assets_by_status_type' => 'Activos por tipo de estado', 'pie_chart_type' => 'Tipo de gráfico circular en el tablero', 'hello_name' => '¡Hola, :name!', - 'unaccepted_profile_warning' => 'Tiene :count elemento(s) que requiere(n) aceptación. Haga clic aquí para aceptarlos o rechazarlos', + 'unaccepted_profile_warning' => 'Tiene :count elemento(s) que requiere(n) aceptación. Haga clic aquí para aceptarlo(s) o rechazarlo(s)', 'start_date' => 'Fecha de inicio', 'end_date' => 'Fecha de fin', 'alt_uploaded_image_thumbnail' => 'Miniatura cargada', @@ -447,10 +448,10 @@ return [ 'warning_merge_information' => 'Esta acción NO PUEDE deshacerse y sólo debe ser usada cuando necesite fusionar usuarios debido a una mala importación o sincronización. Asegúrese de ejecutar una copia de seguridad primero.', 'no_users_selected' => 'Ningún usuario seleccionado', 'not_enough_users_selected' => 'Al menos :count usuarios deben ser seleccionados', - 'merge_success' => ':count usuarios fusionados con éxito en :into_username!', + 'merge_success' => '!:count usuarios fusionados con éxito en :into_username!', 'merged' => 'fusionados', - 'merged_log_this_user_into' => 'Fusionado este usuario (ID :to_id - :to_username) con el ID de usuario :from_id (:from_username) ', - 'merged_log_this_user_from' => 'Fusionado ID de usuario :from_id (:from_username) con este usuario (ID :to_id - :to_username)', + 'merged_log_this_user_into' => 'Se fusionó este usuario (ID :to_id - :to_username) en ID de usuario :from_id (:from_username) ', + 'merged_log_this_user_from' => 'Se fusionó usuario ID :from_id (:from_username) en este usuario (ID :to_id - :to_username)', 'clear_and_save' => 'Limpiar y Guardar', 'update_existing_values' => '¿Actualizar valores existentes?', 'auto_incrementing_asset_tags_disabled_so_tags_required' => 'La generación autoincrementable de las placas de activos está desactivada, por lo que todas las filas deben tener la columna "Asset Tag" con información.', @@ -471,7 +472,7 @@ return [ 'setup_successful_migrations' => 'Se han creado las tablas de la base de datos', 'setup_migration_output' => 'Salida de Migración:', 'setup_migration_create_user' => 'Siguiente: Crear usuario', - 'importer_generic_error' => 'La importación de tu archivo está completa, pero recibimos un error. Esto normalmente es causado por la limitación de API de terceros desde un webhook de notificación (como Slack) y no habría interferido con la importación en sí. pero debería confirmarlo.', + 'importer_generic_error' => 'La importación del archivo se ha completado, pero recibimos un error. Esto suele deberse a la limitación de la API de terceros desde un webhook de notificación (como Slack) y no habría interferido con la importación en sí, pero debería confirmarlo.', 'confirm' => 'Confirmar', 'autoassign_licenses' => 'Auto-Asignar licencias', 'autoassign_licenses_help' => 'Permitir a este usuario tener licencias asignadas a través de la asignación masiva en la interfaz de usuario o de las herramientas de la línea de comandos (CLI).', @@ -490,7 +491,7 @@ return [ 'checked_out_to_fullname' => 'Asignado a: Nombre completo', 'checked_out_to_first_name' => 'Asignado a: Nombre', 'checked_out_to_last_name' => 'Asignado a: Apellido', - 'checked_out_to_username' => 'Asignado a: Usuario', + 'checked_out_to_username' => 'Asignado a: Nombre de usuario', 'checked_out_to_email' => 'Asignado a: correo electrónico', 'checked_out_to_tag' => 'Asignado a: Placa de activo', 'manager_first_name' => 'Nombre del supervisor', @@ -551,12 +552,12 @@ return [ 'components' => ':count component|:count componentes', ], 'more_info' => 'Más información', - 'quickscan_bulk_help' => 'Al marcar esta casilla se editará el registro de activos para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría. Tenga en cuenta que si este activo es asignado, no cambiará la ubicación de la persona, activo o ubicación a la que se le asigna.', + 'quickscan_bulk_help' => 'Al marcar esta casilla se actualizará el activo para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría. Tenga en cuenta que si este activo ya está asignado, no cambiará la ubicación de la persona, del activo o de la ubicación a la que esté asignado.', 'whoops' => '¡Uy!', 'something_went_wrong' => 'Algo falló en su solicitud.', 'close' => 'Cerrar', 'expires' => 'Vence', - 'map_fields'=> 'Asociar el campo :item_type', + 'map_fields'=> 'Asociar campos para :item_type', 'remaining_var' => ':count restantes', ]; diff --git a/resources/lang/es-ES/help.php b/resources/lang/es-ES/help.php index e766a4f35..7cbc6acc7 100644 --- a/resources/lang/es-ES/help.php +++ b/resources/lang/es-ES/help.php @@ -15,7 +15,7 @@ return [ 'more_info_title' => 'Más información', - 'audit_help' => 'Al marcar esta casilla se editará el registro de activos para reflejar esta nueva ubicación. Dejarla desmarcada simplemente anotará la ubicación en el registro de auditoría.

Tenga en cuenta que si este activo se asigna, no cambiará la ubicación de la persona, el activo o la ubicación a la que se asigna.', + 'audit_help' => 'Al marcar esta casilla se actualizará el activo para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría.

Tenga en cuenta que si este activo ya está asignado, no cambiará la ubicación de la persona, del activo o de la ubicación a la que esté asignado.', 'assets' => 'Los activos son artículos rastreados por número de serie o placa de activo. Suelen ser artículos de alto valor en los que es importante identificar un elemento específico.', diff --git a/resources/lang/es-ES/localizations.php b/resources/lang/es-ES/localizations.php index 91d7c339f..03c489ced 100644 --- a/resources/lang/es-ES/localizations.php +++ b/resources/lang/es-ES/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malayo', 'mi-NZ'=> 'Maorí', 'mn-MN'=> 'Mongol', - 'no-NO'=> 'Noruego', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Noruego Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persa', 'pl-PL'=> 'Polaco', 'pt-PT'=> 'Portugués', diff --git a/resources/lang/es-ES/mail.php b/resources/lang/es-ES/mail.php index 438b75052..e8e236549 100644 --- a/resources/lang/es-ES/mail.php +++ b/resources/lang/es-ES/mail.php @@ -46,7 +46,7 @@ return [ 'checked_into' => 'Devuelto en', 'click_on_the_link_accessory' => 'Haga clic en el enlace en la parte inferior para confirmar que ha recibido el accesorio.', 'click_on_the_link_asset' => 'Haga clic en el enlace en la parte inferior para confirmar que ha recibido el activo.', - 'click_to_confirm' => 'Por favor, pulsa en el siguiente enlace para verificar tu cuenta de :web:', + 'click_to_confirm' => 'Por favor, haga clic en el siguiente enlace para confirmar su cuenta de :web:', 'current_QTY' => 'Cantidad actual', 'days' => 'Días', 'expecting_checkin_date' => 'Fecha esperada de devolución:', @@ -58,7 +58,7 @@ return [ 'item' => 'Elemento:', 'item_checked_reminder' => 'Este es un recordatorio de que actualmente tiene :count elemento(s) asignado(s) que no ha aceptado o rechazado. Haga clic en el siguiente enlace para confirmar su decisión.', 'license_expiring_alert' => 'Hay :count licencia que expira en los próximos :threshold días. | Hay :count licencias que expiran en los próximos :threshold días.', - 'link_to_update_password' => 'Haga clic en el siguiente enlace para actualizar su: contraseña de la web:', + 'link_to_update_password' => 'Por favor, haga clic en el siguiente enlace para actualizar contraseña de :web :', 'login' => 'Entrar:', 'login_first_admin' => 'Inicie sesión en su nueva instalación de Snipe-IT usando las credenciales:', 'low_inventory_alert' => 'Hay :count elemento que está por debajo del inventario mínimo o que pronto lo estará.|Hay :count elementos que están por debajo del inventario mínimo o que pronto lo estarán.', @@ -72,7 +72,7 @@ return [ 'read_the_terms_and_click' => 'Por favor lea los términos de uso a continuación y haga clic en el enlace en la parte inferior para confirmar que usted leyó los términos de uso y los acepta, y que ha recibido el activo.', 'requested' => 'Solicitado:', 'reset_link' => 'Su enlace de restablecimiento de contraseña', - 'reset_password' => 'Haga Clic aquí para restablecer su contraseña:', + 'reset_password' => 'Haaga clic aquí para restablecer tu contraseña:', 'rights_reserved' => 'Todos los derechos reservados.', 'serial' => 'Número de serie', 'snipe_webhook_test' => 'Prueba de integración de Snipe-IT', @@ -82,7 +82,7 @@ return [ 'test_email' => 'Email de prueba de Snipe-IT', 'test_mail_text' => 'Esto es una prueba desde el sistema de gestión de activos Snipe-IT. Si recibió este mensaje, el correo está funcionando :)', 'the_following_item' => 'El siguiente artículo ha sido devuelto: ', - 'to_reset' => 'Para restaurar tu contraseña de :web, rellena este formulario:', + 'to_reset' => 'Para restaurar tu contraseña de :web, diligencie este formulario:', 'type' => 'Tipo', 'upcoming-audits' => 'Hay :count para ser auditado antes de :threshold días.|Hay :count activos para ser auditados antes de :threshold días.', 'user' => 'Usuario', diff --git a/resources/lang/es-ES/reminders.php b/resources/lang/es-ES/reminders.php index 2269768b6..98f281956 100644 --- a/resources/lang/es-ES/reminders.php +++ b/resources/lang/es-ES/reminders.php @@ -14,7 +14,7 @@ return array( */ "password" => "Las contraseñas deben ser de seis caracteres y coincidir con la confirmación.", - "user" => "Usuario o E-Mail incorrectos", + "user" => "El nombre de usuario o la dirección de correo electrónico son incorrectos", "token" => 'Esta sesión de restablecimiento de contraseña es inválida o ha caducado, o no coincide con el nombre de usuario proporcionado.', 'sent' => 'Si existe un usuario con una dirección de correo electrónico válida en nuestro sistema, se ha enviado un correo electrónico de recuperación de contraseña.', diff --git a/resources/lang/es-ES/validation.php b/resources/lang/es-ES/validation.php index 93ef1d546..eacfdb039 100644 --- a/resources/lang/es-ES/validation.php +++ b/resources/lang/es-ES/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'El campo :attribute debe contener al menos un símbolo.', 'uncompromised' => 'El valor de :attribute ha aparecido en una fuga de datos. Por favor, seleccione un valor diferente para :attribute.', ], + 'percent' => 'El mínimo de amortización debe estar entre 0 y 100 cuando el tipo de amortización es porcentual.', + 'present' => 'El campo: atributo debe estar presente.', 'present_if' => 'El campo :attribute debe estar presente cuando :other sea :value.', 'present_unless' => 'El campo :attribute debe estar presente a menos que :other sea :value.', @@ -158,7 +160,7 @@ return [ 'unique_undeleted' => 'El :atrribute debe ser único.', 'non_circular' => ':attribute no debe crear una referencia circular.', 'not_array' => ':attribute no puede ser una matriz.', - 'disallow_same_pwd_as_user_fields' => 'La contraseña no puede ser la misma que el usuario.', + 'disallow_same_pwd_as_user_fields' => 'La contraseña no puede ser la misma que el nombre de usuario.', 'letters' => 'La contraseña debe contener al menos una letra.', 'numbers' => 'La contraseña debe contener al menos un número.', 'case_diff' => 'La contraseña debe usar mayúsculas y minúsculas.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Su contraseña actual es incorrecta', 'dumbpwd' => 'Esa contraseña es muy común.', 'statuslabel_type' => 'Debe seleccionar un tipo de etiqueta de estado válido.', + 'custom_field_not_found' => 'Este campo parece que no existe, por favor, compruebe los nombres de sus campos personalizados.', + 'custom_field_not_found_on_model' => 'Este campo parece existir, pero no está disponible en este conjunto de campos para el modelo de activo.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/es-MX/account/general.php b/resources/lang/es-MX/account/general.php index 2520857ca..4280c37db 100644 --- a/resources/lang/es-MX/account/general.php +++ b/resources/lang/es-MX/account/general.php @@ -10,6 +10,8 @@ return array( 'api_base_url_endpoint' => '/<endpoint>', 'api_token_expiration_time' => 'Las credenciales de la API están establecidas para expirar en:', 'api_reference' => 'Consulte API reference para encontrar los puntos finales (endpoints) del API y documentación adicional.', - 'profile_updated' => 'Cuenta actualizada exitosamente', + 'profile_updated' => 'La cuenta fue actualizada exitosamente', 'no_tokens' => 'No ha creado ninguna credencial de acceso personal.', + 'enable_sounds' => 'Habilitar efectos de sonido', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/es-MX/admin/accessories/message.php b/resources/lang/es-MX/admin/accessories/message.php index cfdae3f3e..c2d52963e 100644 --- a/resources/lang/es-MX/admin/accessories/message.php +++ b/resources/lang/es-MX/admin/accessories/message.php @@ -13,7 +13,7 @@ return array( 'update' => array( 'error' => 'El accesorio no fue actualizado, por favor, inténtelo de nuevo', - 'success' => 'Accesorio actualizado correctamente.' + 'success' => 'El accesorio fue actualizado con éxito.' ), 'delete' => array( diff --git a/resources/lang/es-MX/admin/custom_fields/general.php b/resources/lang/es-MX/admin/custom_fields/general.php index 93239def8..b8c1f1533 100644 --- a/resources/lang/es-MX/admin/custom_fields/general.php +++ b/resources/lang/es-MX/admin/custom_fields/general.php @@ -41,8 +41,8 @@ return [ 'about_custom_fields_title' => 'Acerca de los Campos Personalizados', 'about_custom_fields_text' => 'Los campos personalizados te permiten agregar atributos arbritarios a los activos.', 'add_field_to_fieldset' => 'Añadir campo al grupo de campos', - 'make_optional' => 'Requerido - haz clic para hacerlo opcional', - 'make_required' => 'Opcional - haz clic para hacerlo requerido', + 'make_optional' => 'Requerido - haga clic para hacerlo opcional', + 'make_required' => 'Requerido - haga clic para hacerlo opcional', 'reorder' => 'Reordenar', 'db_field' => 'Campo en base de datos', 'db_convert_warning' => 'ADVERTENCIA. Este campo está en la tabla de campos personalizados como :db_column pero debe ser :expected.', diff --git a/resources/lang/es-MX/admin/departments/table.php b/resources/lang/es-MX/admin/departments/table.php index 89216f172..bca0490ee 100644 --- a/resources/lang/es-MX/admin/departments/table.php +++ b/resources/lang/es-MX/admin/departments/table.php @@ -7,5 +7,5 @@ return array( 'manager' => 'Supervisor', 'location' => 'Ubicación', 'create' => 'Crear departamento', - 'update' => 'Departamento de actualización', + 'update' => 'Actualizar departamento', ); diff --git a/resources/lang/es-MX/admin/hardware/general.php b/resources/lang/es-MX/admin/hardware/general.php index 14ebf5713..de8689309 100644 --- a/resources/lang/es-MX/admin/hardware/general.php +++ b/resources/lang/es-MX/admin/hardware/general.php @@ -4,7 +4,7 @@ return [ 'about_assets_title' => 'Acerca de los activos', 'about_assets_text' => 'Los activos son artículos rastreados por número de serie o placa de activo. Suelen ser artículos de alto valor en los que es importante identificar un elemento específico.', 'archived' => 'Archivado', - 'asset' => 'Equipo', + 'asset' => 'Activo', 'bulk_checkout' => 'Asignar activos', 'bulk_checkin' => 'Ingresar activos', 'checkin' => 'Ingresar activo', @@ -21,18 +21,18 @@ return [ 'requested' => 'Solicitado', 'not_requestable' => 'No puede solicitarse', 'requestable_status_warning' => 'No cambiar el estado solicitable', - 'restore' => 'Restaurar equipo', + 'restore' => 'Restaurar activo', 'pending' => 'Pendiente', 'undeployable' => 'No utilizable', 'undeployable_tooltip' => 'Este activo tiene una etiqueta de estado que es no utilizable y no puede ser asignado en este momento.', 'view' => 'Ver activo', 'csv_error' => 'Hay un error en su archivo CSV:', - 'import_text' => '

Cargue un archivo CSV que contenga el historial de los activos. Los activos y los usuarios DEBEN existir ya en el sistema, o serán omitidos. La comparación de activos para importar el historial se realiza con la placa del activo. Intentaremos encontrar un usuario usando el nombre del usuario que proporcione y los criterios que seleccione a continuación. Si no selecciona ningún criterio, el sistema simplemente intentará usar el formato de nombre de usuario configurado en Administrador > Configuración General.

Los campos incluidos en el CSV deben coincidir con los encabezados: Asset Tag, Name, Checkout Date, Checkin Date. Cualquier campo adicional será ignorado.

Checkin Date(Fecha de recepción): dejar en blanco o usar fechas futuras asignará los ítems al usuario asociado. Excluir la columna Checkin Date creará una fecha de recepción con la fecha de hoy.

', + 'import_text' => '

Cargue un archivo CSV que contenga el historial de los activos. Los activos y los usuarios DEBEN existir ya en el sistema, o serán omitidos. La comparación de activos para importar el historial se realiza con la placa del activo. Intentaremos encontrar un usuario usando el nombre del usuario que proporcione y los criterios que seleccione a continuación. Si no selecciona ningún criterio, el sistema simplemente intentará usar el formato de nombre de usuario configurado en Administrador > Configuración General.

Los campos incluidos en el CSV deben coincidir con los encabezados: Asset Tag, Name, Checkout Date, Checkin Date. Cualquier campo adicional será ignorado.

Checkin Date(Fecha de recepción): dejar en blanco o usar fechas futuras asignará los elementos al usuario asociado. Excluir la columna Checkin Date creará una fecha de recepción con la fecha de hoy.

', 'csv_import_match_f-l' => 'Intente emparejar usuarios usando el formato nombre.apellido (jane.smith)', 'csv_import_match_initial_last' => 'Intente emparejar los usuarios usando el formato inicial del nombre y apellido (jsmith)', 'csv_import_match_first' => 'Intentar emparejar a los usuarios usando el formato primer nombre (jane)', 'csv_import_match_email' => 'Intente emparejar los usuarios usando correo electrónico como nombre de usuario', - 'csv_import_match_username' => 'Intente emparejar los usuarios usando usuario', + 'csv_import_match_username' => 'Intente emparejar los usuarios usando nombre de usuario', 'error_messages' => 'Mensajes de error:', 'success_messages' => 'Mensajes de éxito:', 'alert_details' => 'Por favor, vea abajo para más detalles.', diff --git a/resources/lang/es-MX/admin/hardware/message.php b/resources/lang/es-MX/admin/hardware/message.php index 6d75025b9..530fe870e 100644 --- a/resources/lang/es-MX/admin/hardware/message.php +++ b/resources/lang/es-MX/admin/hardware/message.php @@ -51,12 +51,12 @@ return [ ], 'import' => [ - 'import_button' => 'Proceso para importar', + 'import_button' => 'Importar', 'error' => 'Algunos elementos no se pudieron importar correctamente.', 'errorDetail' => 'Estos elementos no pudieron importarse debido a errores.', 'success' => 'Su archivo ha sido importado', 'file_delete_success' => 'Su archivo se ha eliminado correctamente', - 'file_delete_error' => 'No pudimos eliminar tu archivo', + 'file_delete_error' => 'El archivo no se pudo eliminar', 'file_missing' => 'Falta el archivo seleccionado', 'header_row_has_malformed_characters' => 'Uno o más atributos de la fila de encabezado contiene caracteres UTF-8 mal formados', 'content_row_has_malformed_characters' => 'Uno o más atributos de la fila de encabezado contiene caracteres UTF-8 mal formados', diff --git a/resources/lang/es-MX/admin/kits/general.php b/resources/lang/es-MX/admin/kits/general.php index 229130f42..bd54b656e 100644 --- a/resources/lang/es-MX/admin/kits/general.php +++ b/resources/lang/es-MX/admin/kits/general.php @@ -23,17 +23,17 @@ return [ 'update_appended_model' => 'Actualizar modelo añadido', 'license_error' => 'Licencia ya está vinculada al kit', 'license_added_success' => 'Licencia añadida correctamente', - 'license_updated' => 'La licencia se ha actualizado correctamente', + 'license_updated' => 'La licencia fue actualizada correctamente', 'license_none' => 'La licencia no existe', 'license_detached' => 'Licencia desvinculada correctamente', 'consumable_added_success' => 'Consumible añadido correctamente', - 'consumable_updated' => 'Consumible actualizado correctamente', + 'consumable_updated' => 'El consumible fue actualizado correctamente', 'consumable_error' => 'Consumible ya vinculado al kit', 'consumable_deleted' => 'El borrado fue exitoso', 'consumable_none' => 'El Consumible no existe', 'consumable_detached' => 'Consumible desvinculado correctamente', 'accessory_added_success' => 'Accesorio añadido correctamente', - 'accessory_updated' => 'Accesorio actualizado correctamente', + 'accessory_updated' => 'El accesorio fue actualizado correctamente', 'accessory_detached' => 'Accesorio desvinculado correctamente', 'accessory_error' => 'El accesorio ya está vinculado al kit', 'accessory_deleted' => 'El borrado fue exitoso', @@ -42,9 +42,9 @@ return [ 'checkout_error' => 'Error al asignar', 'kit_none' => 'El Kit no existe', 'kit_created' => 'Kit creado correctamente', - 'kit_updated' => 'El kit se ha actualizado correctamente', + 'kit_updated' => 'El kit fue actualizado correctamente', 'kit_not_found' => 'Kit no encontrado', 'kit_deleted' => 'El kit ha sido eliminado correctamente', - 'kit_model_updated' => 'Modelo actualizado correctamente', + 'kit_model_updated' => 'El modelo fue actualizado correctamente', 'kit_model_detached' => 'Modelo desvinculado correctamente', ]; diff --git a/resources/lang/es-MX/admin/labels/message.php b/resources/lang/es-MX/admin/labels/message.php index ef530d72c..01006397c 100644 --- a/resources/lang/es-MX/admin/labels/message.php +++ b/resources/lang/es-MX/admin/labels/message.php @@ -2,9 +2,9 @@ return [ - 'invalid_return_count' => 'No se obtuvo un recuento válido desde :name. Esperado :expected, se obtuvo :actual.', - 'invalid_return_type' => 'Tipo no válido devuelto desde :name. Esperado :expected, obtuvo :actual.', - 'invalid_return_value' => 'Valor no válido devuelto de :name. Esperado :expected, obtuvo :actual.', + 'invalid_return_count' => 'El recuento no es válido desde :name. Esperado :expected, obtenido :actual.', + 'invalid_return_type' => 'Tipo no válido devuelto desde :name. Esperado :expected, obtenido :actual.', + 'invalid_return_value' => 'Valor no válido devuelto de :name. Esperado :expected, obtenido :actual.', 'does_not_exist' => 'La etiqueta no existe', diff --git a/resources/lang/es-MX/admin/licenses/message.php b/resources/lang/es-MX/admin/licenses/message.php index 3758c5bba..d7f5c33d5 100644 --- a/resources/lang/es-MX/admin/licenses/message.php +++ b/resources/lang/es-MX/admin/licenses/message.php @@ -4,7 +4,7 @@ return array( 'does_not_exist' => 'La licencia no existe o usted no tiene permiso para verla.', 'user_does_not_exist' => 'El usuario no existe o no tiene permiso para verlos.', - 'asset_does_not_exist' => 'El equipo que intentas asignar a esta licencia no existe.', + 'asset_does_not_exist' => 'El activo que intenta asociar con esta licencia no existe.', 'owner_doesnt_match_asset' => 'El activo que está intentando asignar con esta licencia está asignado a un usuario diferente al de la persona seleccionada de la lista.', 'assoc_users' => 'Esta licencia está actualmente asignada a un usuario y no puede ser eliminada. Por favor, reciba primero la licencia y vuelva a intentarlo. ', 'select_asset_or_person' => 'Debe seleccionar un activo o un usuario, pero no ambos.', diff --git a/resources/lang/es-MX/admin/licenses/table.php b/resources/lang/es-MX/admin/licenses/table.php index 5e1a8cc1c..b2e4a8b49 100644 --- a/resources/lang/es-MX/admin/licenses/table.php +++ b/resources/lang/es-MX/admin/licenses/table.php @@ -11,7 +11,7 @@ return array( 'purchase_date' => 'Fecha de compra', 'purchased' => 'Comprada', 'seats' => 'Total de licencias', - 'hardware' => 'Equipo', + 'hardware' => 'Hardware', 'serial' => 'N. Serie', 'title' => 'Categoría de equipo', diff --git a/resources/lang/es-MX/admin/locations/message.php b/resources/lang/es-MX/admin/locations/message.php index 06956564e..05fd77702 100644 --- a/resources/lang/es-MX/admin/locations/message.php +++ b/resources/lang/es-MX/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'La ubicación no existe.', - 'assoc_users' => 'Esta ubicación no se puede eliminar actualmente porque es la ubicación de al menos un activo o de un usuario, tiene activos asignados a ella, o es la ubicación padre de otra ubicación. Por favor actualice las referencias que correspondan. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Esta ubicación está actualmente asociada con al menos un activo y no puede ser eliminada. Por favor actualice sus activos para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assoc_child_loc' => 'Esta ubicación es actualmente el padre de al menos una ubicación hija y no puede ser eliminada. Por favor actualice sus ubicaciones para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assigned_assets' => 'Activos asignados', @@ -11,7 +11,7 @@ return array( 'create' => array( - 'error' => 'La ubicación no pudo ser creada, por favor inténtelo de nuevo.', + 'error' => 'La ubicación no pudo ser creada, por favor, inténtelo de nuevo.', 'success' => 'La ubicación fue creada exitosamente.' ), diff --git a/resources/lang/es-MX/admin/locations/table.php b/resources/lang/es-MX/admin/locations/table.php index 87bd03373..743dab7aa 100644 --- a/resources/lang/es-MX/admin/locations/table.php +++ b/resources/lang/es-MX/admin/locations/table.php @@ -2,7 +2,7 @@ return [ 'about_locations_title' => 'Acerca de las ubicaciones', - 'about_locations' => 'Las ubicaciones son utilizadas para hacer seguimiento de la información sobre ubicación de usuarios, activos, y otros ítems', + 'about_locations' => 'Las ubicaciones se utilizan para hacer un seguimiento de la ubicación de usuarios, activos y otros elementos', 'assets_rtd' => 'Activos', // This has NEVER meant Assets Retired. I don't know how it keeps getting reverted. 'assets_checkedout' => 'Activos asignados', 'id' => 'ID', @@ -37,6 +37,6 @@ return [ 'phone' => 'Teléfono ubicación', 'signed_by_asset_auditor' => 'Firmado por (Auditor de Activos):', 'signed_by_finance_auditor' => 'Firmado por (Auditor de Finanzas):', - 'signed_by_location_manager' => 'Firmado por (Administrador de área):', + 'signed_by_location_manager' => 'Firmado por (Supervisor de la ubicación):', 'signed_by' => 'Firmado por:', ]; diff --git a/resources/lang/es-MX/admin/settings/general.php b/resources/lang/es-MX/admin/settings/general.php index 734e4002a..367603430 100644 --- a/resources/lang/es-MX/admin/settings/general.php +++ b/resources/lang/es-MX/admin/settings/general.php @@ -6,7 +6,7 @@ return [ 'ad_domain_help' => 'Algunas veces coincide con el dominio de su correo electrónico, pero no siempre.', 'ad_append_domain_label' => 'Añadir nombre de dominio', 'ad_append_domain' => 'Asignar nombre de dominio al campo del nombre de usuario', - 'ad_append_domain_help' => 'El usuario no necesita escribir "username@domain.local", puede escribir únicamente "username".', + 'ad_append_domain_help' => 'El usuario no necesita escribir "usuario@dominio.local", puede escribir únicamente "usuario".', 'admin_cc_email' => 'Copiar en correo electrónico', 'admin_cc_email_help' => 'Si desea enviar una copia de los correos electrónicos de recepción/devolución que se envían a los usuarios a una cuenta de correo electrónico adicional, escríbala aquí. De lo contrario, deje este campo en blanco.', 'admin_settings' => 'Configuración de administración', @@ -41,7 +41,7 @@ return [ 'confirm_purge_help' => 'Introduzca el texto "DELETE" en la casilla de abajo para purgar sus registros borrados. Esta acción no se puede deshacer y borrará PERMANENTAMENTE todos los elementos y usuarios eliminados. Debería hacer primero una copia de seguridad, para estar seguro.', 'custom_css' => 'CSS Personalizado', 'custom_css_help' => 'Introduzca cualquier CSS personalizado que desee utilizar. No incluya las etiquetas <style></style>.', - 'custom_forgot_pass_url' => 'Reestablecer URL de Contraseña Personalizada', + 'custom_forgot_pass_url' => 'URL de restablecimiento de contraseña personalizada', 'custom_forgot_pass_url_help' => 'Esto remplaza la URL incorporada para las contraseñas olvidadas en la pantalla de inicio, útil para dirigir a las personas a una funcionalidad de restablecimiento de contraseña LDAP interna o alojada. Esto efectivamente desactivará la funcionalidad local de olvido de contraseña.', 'dashboard_message' => 'Mensaje en el tablero', 'dashboard_message_help' => 'Este texto aparecerá en el panel para cualquiera que tenga permiso de ver el Panel.', @@ -110,13 +110,13 @@ return [ 'ldap_filter' => 'Filtro LDAP', 'ldap_pw_sync' => 'Sincronización de Contraseña LDAP', 'ldap_pw_sync_help' => 'Desmarque esta casilla si no desea mantener las contraseñas LDAP sincronizadas con las contraseñas locales. Si desactiva esta opción, los usuarios no podrán iniciar sesión si, por algún motivo, no se puede acceder al servidor LDAP.', - 'ldap_username_field' => 'Campo de usuario', + 'ldap_username_field' => 'Campo nombre de usuario', 'ldap_lname_field' => 'Apellido', 'ldap_fname_field' => 'Nombre LDAP', 'ldap_auth_filter_query' => 'Consulta de autentificación LDAP', 'ldap_version' => 'Versión LDAP', 'ldap_active_flag' => 'Flag activo LDAP', - 'ldap_activated_flag_help' => 'Este valor se utiliza para determinar si un usuario sincronizado puede iniciar sesión en Snipe-IT. No afecta a la capacidad de asignarles o retirarles items, y debería ser el nombre de atributo dentro de su AD/LDAP, no el valor.

Si este campo está configurado a un nombre de campo que no existe en su AD/LDAP, o el valor en el campo AD/LDAP se establece en 0 o falso, el inicio de sesión de usuario será deshabilitado. Si el valor en el campo AD/LDAP está establecido en 1 o true o cualquier otro texto significa que el usuario puede iniciar sesión. Cuando el campo está en blanco en su AD, respetamos el atributo userAccountControl, que generalmente permite a los usuarios no suspendidos iniciar sesión.', + 'ldap_activated_flag_help' => 'Este valor se utiliza para determinar si un usuario sincronizado puede iniciar sesión en Snipe-IT. No afecta a la capacidad de asignarles o retirarles elementos, y debería ser el nombre de atributo dentro de su AD/LDAP, no el valor.

Si este campo está configurado a un nombre de campo que no existe en su AD/LDAP, o el valor en el campo AD/LDAP se establece en 0 o falso, el inicio de sesión de usuario será deshabilitado. Si el valor en el campo AD/LDAP está establecido en 1 o true o cualquier otro texto significa que el usuario puede iniciar sesión. Cuando el campo está en blanco en su AD, respetamos el atributo userAccountControl, que generalmente permite a los usuarios no suspendidos iniciar sesión.', 'ldap_emp_num' => 'Número de empleado LDAP', 'ldap_email' => 'Email LDAP', 'ldap_test' => 'Probar LDAP', @@ -127,7 +127,7 @@ return [ 'login' => 'Intentos de inicio de sesión', 'login_attempt' => 'Intento de inicio de sesión', 'login_ip' => 'Dirección IP', - 'login_success' => '¿Éxito?', + 'login_success' => '¿Exitoso?', 'login_user_agent' => 'Agente de usuario', 'login_help' => 'Lista de intentos de inicio de sesión', 'login_note' => 'Nota de inicio de sesión', @@ -215,9 +215,11 @@ return [ 'webhook_endpoint' => 'Endopint de :app', 'webhook_integration' => 'Configuración de :app', 'webhook_test' =>'Probar integración con :app', - 'webhook_integration_help' => 'La integración con :app es opcional, sin embargo el punto final (endpoint) y el canal son necesarios si desea usarla. Para configurar la integración con :app, primero debe crear un webhook entrante en tu cuenta :app. Haga clic en el botón Probar integración con :app para confirmar que su configuración es correcta antes de guardar. ', + 'webhook_integration_help' => 'La integración con :app es opcional, sin embargo, el punto final (endpoint) y el canal son necesarios si desea usarla. Para configurar la integración con :app, primero debe crear un webhook entrante en su cuenta :app. Haga clic en el botón Probar integración con :app para confirmar que su configuración es correcta antes de guardar. ', 'webhook_integration_help_button' => 'Una vez que haya guardado la información de :app, aparecerá un botón de prueba.', 'webhook_test_help' => 'Compruebe si su integración con :app está configurada correctamente. PRIMERO DEBE GUARDAR LA CONFIGURACION ACTUALIZADA DE :app.', + 'shortcuts_enabled' => 'Habilitar accesos directos', + 'shortcuts_help_text' => 'Windows: Alt + Tecla de acceso, Mac: Control + Opción + Tecla de acceso', 'snipe_version' => 'Version de Snipe-IT', 'support_footer' => 'Enlace al soporte en el pie de página ', 'support_footer_help' => 'Especifica quien ve los enlaces de información de Soporte y Manual de Usuarios de Snipe-IT', @@ -231,7 +233,7 @@ return [ 'brand_help' => 'Logo, nombre del sitio', 'web_brand' => 'Tipo de marca web', 'about_settings_title' => 'Acerca de Ajustes', - 'about_settings_text' => 'Estos ajustes te permiten personalizar ciertos aspectos de tu instalación.', + 'about_settings_text' => 'Estas configuraciones le permiten personalizar ciertos aspectos de su instalación.', 'labels_per_page' => 'Etiquetas por página', 'label_dimensions' => 'Dimensiones de las etiquetas (pulgadas)', 'next_auto_tag_base' => 'Siguiente incremento automático', @@ -334,7 +336,7 @@ return [ 'employee_number' => 'Número de empleado', 'create_admin_user' => 'Crear un usuario ::', 'create_admin_success' => '¡Éxito! ¡Su usuario admin ha sido añadido!', - 'create_admin_redirect' => '¡Haz clic aquí para acceder a tu aplicación!', + 'create_admin_redirect' => '¡Haga clic aquí para acceder a su aplicación!', 'setup_migrations' => 'Migraciones de base de datos ::', 'setup_no_migrations' => 'No hay nada que migrar. ¡Las tablas de la base de datos ya estaban configuradas!', 'setup_successful_migrations' => 'Se han creado las tablas de la base de datos', diff --git a/resources/lang/es-MX/admin/settings/message.php b/resources/lang/es-MX/admin/settings/message.php index 3d457c45a..fb1551e49 100644 --- a/resources/lang/es-MX/admin/settings/message.php +++ b/resources/lang/es-MX/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Sí, restaurarlo. Entiendo que esto sobrescribirá cualquier dato existente actualmente en la base de datos. Esto también cerrará la sesión de todos sus usuarios existentes (incluido usted).', 'restore_confirm' => '¿Está seguro que desea restaurar su base de datos desde :filename?' ], + 'restore' => [ + 'success' => 'Su copia de respaldo del sistema ha sido restaurada. Por favor, inicie sesión nuevamente.' + ], 'purge' => [ 'error' => 'Ha ocurrido un error mientras se realizaba el purgado. ', 'validation_failed' => 'Su confirmación de purga es incorrecta. Por favor, escriba la palabra "Borrar" en el cuadro de confirmación.', diff --git a/resources/lang/es-MX/admin/suppliers/table.php b/resources/lang/es-MX/admin/suppliers/table.php index 02804f2fa..f862849cc 100644 --- a/resources/lang/es-MX/admin/suppliers/table.php +++ b/resources/lang/es-MX/admin/suppliers/table.php @@ -2,7 +2,7 @@ return array( 'about_suppliers_title' => 'Acerca de Proveedores', - 'about_suppliers_text' => 'Los Proveedores son utilizados para hacer seguimiento de la fuente de los items', + 'about_suppliers_text' => 'Los proveedores se utilizan para hacer seguimiento al origen de los elementos', 'address' => 'Dirección del Proveedor', 'assets' => 'Equipos', 'city' => 'Ciudad', diff --git a/resources/lang/es-MX/admin/users/message.php b/resources/lang/es-MX/admin/users/message.php index 25d511c5d..851958d7a 100644 --- a/resources/lang/es-MX/admin/users/message.php +++ b/resources/lang/es-MX/admin/users/message.php @@ -48,9 +48,9 @@ return array( 'accept_or_decline' => 'Debe aceptar o rechazar este equipo.', 'cannot_delete_yourself' => 'Nos sentiríamos muy mal si usted se eliminara, por favor reconsidérelo.', 'incorrect_user_accepted' => 'El elemento que ha intentado aceptar no fue asignado a usted.', - 'ldap_could_not_connect' => 'No se ha podido conectar con el servidor LDAP. Por favor verifique la configuración de su servidor LDAP en su archivo de configuración.
Error del servidor LDAP:', - 'ldap_could_not_bind' => 'No se ha podido vincular con el servidor LDAP. Por favor verifique la configuración de su servidor LDAP en su archivo de configuración.
Error del servidor LDAP: ', - 'ldap_could_not_search' => 'No se ha podido buscar en el servidor LDAP. Por favor verifique la configuración de su servidor LDAP en su archivo de configuración.
Error del servidor LDAP:', + 'ldap_could_not_connect' => 'No se pudo conectar al servidor LDAP. Por favor, compruebe la configuración del servidor LDAP en el archivo de configuración LDAP.
Error del servidor LDAP:', + 'ldap_could_not_bind' => 'No se ha podido vincular al servidor LDAP. Por favor verifique la configuración de su servidor LDAP en su archivo de configuración.
Error del servidor LDAP: ', + 'ldap_could_not_search' => 'No se pudo buscar en el servidor LDAP. Por favor, compruebe la configuración del servidor LDAP en el archivo de configuración LDAP.
Error del servidor LDAP:', 'ldap_could_not_get_entries' => 'No se han podido obtener entradas del servidor LDAP. Por favor verifique la configuración de su servidor LDAP en su archivo de configuración.
Error del servidor LDAP:', 'password_ldap' => 'La contraseña para esta cuenta es administrada por LDAP / Active Directory. Póngase en contacto con su departamento de TI para cambiar su contraseña.', ), diff --git a/resources/lang/es-MX/admin/users/table.php b/resources/lang/es-MX/admin/users/table.php index 3a6a7c866..b7299bb06 100644 --- a/resources/lang/es-MX/admin/users/table.php +++ b/resources/lang/es-MX/admin/users/table.php @@ -5,7 +5,7 @@ return array( 'allow' => 'Permitir', 'checkedout' => 'Equipos', 'created_at' => 'Creado', - 'createuser' => 'Crear Usuario', + 'createuser' => 'Crear usuario', 'deny' => 'Denegar', 'email' => 'Correo electrónico', 'employee_num' => 'No. Empleado', @@ -14,10 +14,10 @@ return array( 'id' => 'Id', 'inherit' => 'Hereda de', 'job' => 'Cargo', - 'last_login' => 'Ultimo Login', + 'last_login' => 'Último inicio de sesión', 'last_name' => 'Apellidos', 'location' => 'Ubicación', - 'lock_passwords' => 'Los detalles de acceso no pueden ser cambiados en esta instalación.', + 'lock_passwords' => 'Los detalles de inicio de sesión no pueden ser cambiados en esta instalación.', 'manager' => 'Supervisor', 'managed_locations' => 'Ubicaciones gestionadas', 'managed_users' => 'Usuarios gestionados', @@ -32,8 +32,8 @@ return array( 'title' => 'Cargo', 'to_restore_them' => 'para restaurarlos.', 'total_assets_cost' => "Coste total de activos", - 'updateuser' => 'Actualizar Usuario', - 'username' => 'Usuario', + 'updateuser' => 'Actualizar usuario', + 'username' => 'Nombre de usuario', 'user_deleted_text' => 'Este usuario ha sido marcado como eliminado.', 'username_note' => '(Esto se usa solo para la conexión con Active Directory, no para el inicio de sesión.)', 'cloneuser' => 'Clonar Usuario', diff --git a/resources/lang/es-MX/auth/message.php b/resources/lang/es-MX/auth/message.php index 02c181311..7f11d09eb 100644 --- a/resources/lang/es-MX/auth/message.php +++ b/resources/lang/es-MX/auth/message.php @@ -3,7 +3,7 @@ return array( 'account_already_exists' => 'Ya existe un usuario con este e-mail.', - 'account_not_found' => 'El nombre de usuario o contraseña es incorrecta.', + 'account_not_found' => 'El nombre de usuario o la contraseña son incorrectos.', 'account_not_activated' => 'Este usuario no está activado.', 'account_suspended' => 'Este usuario está desactivado.', 'account_banned' => 'Este usuario ha sido expulsado.', @@ -19,7 +19,7 @@ return array( ), 'signin' => array( - 'error' => 'Ha habido un problema al iniciar sesión. Por favor, vuelve a intentarlo.', + 'error' => 'Ha habido un problema al iniciar sesión. Por favor, inténtelo de nuevo.', 'success' => 'Ha iniciado sesión exitosamente.', ), @@ -29,17 +29,17 @@ return array( ), 'signup' => array( - 'error' => 'Ha habido un problema al crear la cuenta. Por favor, vuelve a intentarlo.', + 'error' => 'Hubo un problema al crear la cuenta. Por favor, inténtelo de nuevo.', 'success' => 'Cuenta creada correctamente.', ), 'forgot-password' => array( - 'error' => 'Ha habido un problema al intentar resetear el password. Por favor, vuelve a intentarlo.', + 'error' => 'Ha habido un problema al obtener un código de restablecimiento de la contraseña. Por favor, inténtelo de nuevo.', 'success' => 'Si esa dirección de correo electrónico existe en nuestro sistema, se ha enviado un correo electrónico de recuperación de contraseña.', ), 'forgot-password-confirm' => array( - 'error' => 'Hubo un problema al intentar restablecer su contraseña, por favor inténtelo de nuevo.', + 'error' => 'Hubo un problema al intentar restablecer su contraseña, por favor, inténtelo de nuevo.', 'success' => 'Su contraseña se ha restablecido correctamente.', ), diff --git a/resources/lang/es-MX/button.php b/resources/lang/es-MX/button.php index 7dea4ebf3..a6ae7fdb2 100644 --- a/resources/lang/es-MX/button.php +++ b/resources/lang/es-MX/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clonar :item_type', 'edit' => 'Editar :item_type', 'delete' => 'Eliminar :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restaurar :item_type', 'create' => 'Crear nuevo :item_type', 'checkout' => 'Asignar :item_type', 'checkin' => 'Ingresar :item_type', diff --git a/resources/lang/es-MX/general.php b/resources/lang/es-MX/general.php index 67ef95f15..3c73dd8b7 100644 --- a/resources/lang/es-MX/general.php +++ b/resources/lang/es-MX/general.php @@ -1,7 +1,7 @@ 'Reestablecer 2FA', + '2FA_reset' => 'Restablecer 2FA', 'accessories' => 'Accesorios', 'activated' => 'Activado', 'accepted_date' => 'Fecha de aceptación', @@ -17,26 +17,26 @@ return [ 'administrator' => 'Administrator', 'add_seats' => 'Licencias añadidas', 'age' => "Edad", - 'all_assets' => 'Todos los Equipos', + 'all_assets' => 'Todos los activos', 'all' => 'Todos los', 'archived' => 'Archivado', 'asset_models' => 'Modelos', 'asset_model' => 'Modelo', - 'asset' => 'Equipo', + 'asset' => 'Activo', 'asset_report' => 'Informe de activos', 'asset_tag' => 'Placa del activo', 'asset_tags' => 'Placas de activos', 'assets_available' => 'Activos disponibles', 'accept_assets' => 'Aceptar activos :name', 'accept_assets_menu' => 'Aceptar activos', - 'audit' => 'Auditoría', + 'audit' => 'Auditar', 'audit_report' => 'Registro de auditoría', 'assets' => 'Equipos', 'assets_audited' => 'activos auditados', 'assets_checked_in_count' => 'activos ingresados', 'assets_checked_out_count' => 'activos asignados', 'asset_deleted_warning' => 'Este activo ha sido eliminado. Debe restaurarlo antes de poder asignarlo a alguien.', - 'assigned_date' => 'Fecha asignada', + 'assigned_date' => 'Fecha de asignación', 'assigned_to' => 'Asignado a :name', 'assignee' => 'Asignado a', 'avatar_delete' => 'Eliminar Avatar', @@ -44,7 +44,7 @@ return [ 'back' => 'Atras', 'bad_data' => 'Ningún resultado. ¿Quizá un dato incorrecto?', 'bulkaudit' => 'Auditoría masiva', - 'bulkaudit_status' => 'Estado de auditoría', + 'bulkaudit_status' => 'Estado de la auditoría', 'bulk_checkout' => 'Asignación masiva', 'bulk_edit' => 'Editar en grupo', 'bulk_delete' => 'Eliminar en grupo', @@ -66,7 +66,7 @@ return [ 'checkins_count' => 'Ingresos', 'user_requests_count' => 'Solicitudes', 'city' => 'Ciudad', - 'click_here' => 'Pulsa aquí', + 'click_here' => 'Haga clic aquí', 'clear_selection' => 'Borrar selección', 'companies' => 'Compañías', 'company' => 'Compañía', @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumibles', 'country' => 'País', 'could_not_restore' => 'Error al restaurar :item_type: :error', - 'not_deleted' => 'El :item_type no está borrado por lo que no puede ser restaurado', + 'not_deleted' => ':item_type no está eliminado; por lo tanto, no se puede restaurar', 'create' => 'Crear nuevo', 'created' => 'Artículo creado', 'created_asset' => 'equipo creado', @@ -95,10 +95,10 @@ return [ 'days_to_next_audit' => 'Días a la próxima auditoría', 'date' => 'Fecha', 'debug_warning' => '¡Advertencia!', - 'debug_warning_text' => 'Esta aplicación esta corriendo en modo producción con debugging activado. Esto puede exponer datos sensibles si su aplicación es accesible desde el exterior. Desactive el modo debug cambiando el valor APP_DEBUG en su archivo .env a false.', + 'debug_warning_text' => 'Esta aplicación se está ejecutando en modo producción con depuración habilitada. Esto puede exponer datos sensibles si su aplicación es accedida desde el mundo exterior. Deshabilite el modo de depuración configurando el valor APP_DEBUG en su archivo .env a false.', 'delete' => 'Borrar', 'delete_confirm' => '¿Está seguro de que desea eliminar :item?', - 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no se puede deshacer.', + 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no puede deshacerse.', 'deleted' => 'Borrado', 'delete_seats' => 'Licencias eliminadas', 'deletion_failed' => 'Error al eliminar', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Apellido e inicial del nombre (smith_j@ejemplo.com)', 'firstinitial.lastname' => 'Inicial del nombre y apellido (j.smith@ejemplo.com)', 'firstnamelastinitial' => 'Nombre e inicial del apellido(janes@example.com)', - 'lastnamefirstname' => 'Apellido y nombre (smith.jane@example.com)', + 'lastnamefirstname' => 'Apellido.Nombre (smith.jane@example.com)', 'first_name' => 'Nombre', 'first_name_format' => 'Nombre (jane@ejemplo.com)', 'files' => 'Archivos', @@ -148,7 +148,7 @@ return [ 'github_markdown' => 'Este campo acepta el formateo flavored de GitHub.', 'groups' => 'Grupos', 'gravatar_email' => 'Gravatar Email', - 'gravatar_url' => 'Cambia tu avatar en Gravatar.com.', + 'gravatar_url' => 'Cambie su avatar en Gravatar.com.', 'history' => 'Historial', 'history_for' => 'Historial de', 'id' => 'Id', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Borrar imagen', 'include_deleted' => 'Incluir activos eliminados', 'image_upload' => 'Cargar imagen', - 'filetypes_accepted_help' => 'El tipo de archivo aceptado es :types. El tamaño máximo permitido es :size.|Los tipos de archivo aceptados son :types. El tamaño máximo permitido es :size.', - 'filetypes_size_help' => 'El tamaño máximo de carga permitido es :size.', - 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg y avif. El tamaño máximo permitido es :size.', + 'filetypes_accepted_help' => 'El tipo de archivo aceptado es :types. El tamaño máximo permitido es :size.|Los tipos de archivo aceptados son :types. El tamaño máximo permitido para cargar es :size.', + 'filetypes_size_help' => 'El tamaño máximo permitido para cargar es :size.', + 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg, y avif. El tamaño máximo permitido para cargar es :size.', 'unaccepted_image_type' => 'No fue posible leer este archivo de imagen. Tipos de archivo aceptados son jpg, webp, png, gif y svg. El mimetype de este archivo es: :mimetype.', 'import' => 'Importar', 'import_this_file' => 'Asociar campos y procesar este archivo', @@ -183,17 +183,17 @@ return [ 'licenses_available' => 'Licencias disponibles', 'licenses' => 'Licencias', 'list_all' => 'Mostrar todos', - 'loading' => 'Cargando... por favor espere....', + 'loading' => 'Cargando... por favor espere...', 'lock_passwords' => 'Este valor de campo no se guardará en una instalación de demostración.', 'feature_disabled' => 'Esta característica se ha desactivado para la versión de demostración.', 'location' => 'Ubicación', 'location_plural' => 'Ubicación|Ubicaciones', 'locations' => 'Ubicaciones', - 'logo_size' => 'Los logotipos cuadrados se ven mejor con Logo + Texto. El tamaño máximo del Logo es 50px de alto x 500px de ancho. ', + 'logo_size' => 'Los logotipos cuadrados se ven mejor con Logo + Texto. El tamaño máximo del logo es 50px de alto x 500px de ancho. ', 'logout' => 'Desconexión', 'lookup_by_tag' => 'Buscar placa del activo', 'maintenances' => 'Mantenimientos', - 'manage_api_keys' => 'Administrar claves API', + 'manage_api_keys' => 'Administrar las claves del API', 'manufacturer' => 'Fabricante', 'manufacturers' => 'Fabricantes', 'markdown' => 'Este campo permite Github con sabor a markdown.', @@ -242,10 +242,10 @@ return [ 'requestable_models' => 'Modelos disponibles para solicitar', 'requestable_items' => 'Artículos que se pueden solicitar', 'requested' => 'Solicitado', - 'requested_date' => 'Fecha solicitada', + 'requested_date' => 'Fecha de solicitud', 'requested_assets' => 'Elementos solicitados', 'requested_assets_menu' => 'Elementos solicitados', - 'request_canceled' => 'Solicitud Cancelada', + 'request_canceled' => 'Solicitud cancelada', 'request_item' => 'Solicitar este elemento', 'external_link_tooltip' => 'Enlace externo a', 'save' => 'Guardar', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Seleccionar todo', 'search' => 'Buscar', 'select_category' => 'Seleccionar una categoría', - 'select_datasource' => 'Seleccionar un origen de datos', + 'select_datasource' => 'Seleccione un origen de datos', 'select_department' => 'Seleccionar un departamento', 'select_depreciation' => 'Seleccionar un tipo de amortización', 'select_location' => 'Seleccionar una ubicación', @@ -274,16 +274,17 @@ return [ 'signed_off_by' => 'Firmado por', 'skin' => 'Apariencia', 'webhook_msg_note' => 'Una notificación se enviará a través de webhook', - 'webhook_test_msg' => '¡Parece que su integración de :app con Snipe-IT está funcionando!', + 'webhook_test_msg' => '¡Hola! ¡Parece que la integración de :app con Snipe-IT funciona!', 'some_features_disabled' => 'MODO DE DEMOSTRACIÓN: Algunas funciones estan desactivadas para esta instalación.', 'site_name' => 'Sitio', 'state' => 'Provincia', 'status_labels' => 'Etiquetas de estado', + 'status_label' => 'Status Label', 'status' => 'Estado', 'accept_eula' => 'Acuerdo de aceptación', 'supplier' => 'Proveedor', 'suppliers' => 'Proveedores', - 'sure_to_delete' => '¿Está seguro que desea eliminar?', + 'sure_to_delete' => '¿Está seguro de que desea eliminar', 'sure_to_delete_var' => '¿Está seguro de que desea eliminar :item?', 'delete_what' => 'Eliminar :item', 'submit' => 'Enviar', @@ -303,7 +304,7 @@ return [ 'uploaded' => 'Cargado', 'user' => 'Usuario', 'accepted' => 'aceptado', - 'declined' => 'declinado', + 'declined' => 'rechazado', 'declined_note' => 'Notas de rechazo', 'unassigned' => 'Sin asignar', 'unaccepted_asset_report' => 'Activos no aceptados', @@ -332,7 +333,7 @@ return [ 'i_accept' => 'Acepto', 'i_decline' => 'Rechazo', 'accept_decline' => 'Aceptar/Rechazar', - 'sign_tos' => 'Firma abajo para indicar que estás de acuerdo con los términos de servicio:', + 'sign_tos' => 'Firme abajo para indicar que está de acuerdo con los términos de servicio:', 'clear_signature' => 'Borrar firma', 'show_help' => 'Mostrar ayuda', 'hide_help' => 'Ocultar ayuda', @@ -340,15 +341,15 @@ return [ 'hide_deleted' => 'Ocultar eliminados', 'email' => 'Correo electrónico', 'do_not_change' => 'No cambiar', - 'bug_report' => 'Reportar un error', + 'bug_report' => 'Reporte un error', 'user_manual' => 'Manual del usuario', 'setup_step_1' => 'Paso 1', 'setup_step_2' => 'Paso 2', 'setup_step_3' => 'Paso 3', 'setup_step_4' => 'Paso 4', 'setup_config_check' => 'Comprobar configuración', - 'setup_create_database' => 'Crear Tablas de Base de Datos', - 'setup_create_admin' => 'Crear usuario Administrador', + 'setup_create_database' => 'Crear tablas de la base de datos', + 'setup_create_admin' => 'Crear usuario administrador', 'setup_done' => '¡Finalizada!', 'bulk_edit_about_to' => 'Está a punto de editar lo siguiente: ', 'checked_out' => 'Asignado', @@ -425,7 +426,7 @@ return [ 'assets_by_status_type' => 'Activos por tipo de estado', 'pie_chart_type' => 'Tipo de gráfico circular en el tablero', 'hello_name' => '¡Hola, :name!', - 'unaccepted_profile_warning' => 'Tiene :count elemento(s) que requiere(n) aceptación. Haga clic aquí para aceptarlos o rechazarlos', + 'unaccepted_profile_warning' => 'Tiene :count elemento(s) que requiere(n) aceptación. Haga clic aquí para aceptarlo(s) o rechazarlo(s)', 'start_date' => 'Fecha de inicio', 'end_date' => 'Fecha de fin', 'alt_uploaded_image_thumbnail' => 'Miniatura cargada', @@ -447,10 +448,10 @@ return [ 'warning_merge_information' => 'Esta acción NO PUEDE deshacerse y sólo debe ser usada cuando necesite fusionar usuarios debido a una mala importación o sincronización. Asegúrese de ejecutar una copia de seguridad primero.', 'no_users_selected' => 'Ningún usuario seleccionado', 'not_enough_users_selected' => 'Al menos :count usuarios deben ser seleccionados', - 'merge_success' => ':count usuarios fusionados con éxito en :into_username!', + 'merge_success' => '!:count usuarios fusionados con éxito en :into_username!', 'merged' => 'fusionado', - 'merged_log_this_user_into' => 'Usuario fusionado (ID :to_id - :to_username) con el ID de usuario :from_id (:from_username) ', - 'merged_log_this_user_from' => 'ID de usuario fusionado :from_id (:from_username) con este usuario (ID :to_id - :to_username)', + 'merged_log_this_user_into' => 'Se fusionó este usuario (ID :to_id - :to_username) en ID de usuario :from_id (:from_username) ', + 'merged_log_this_user_from' => 'Se fusionó usuario ID :from_id (:from_username) en este usuario (ID :to_id - :to_username)', 'clear_and_save' => 'Limpiar y Guardar', 'update_existing_values' => '¿Actualizar valores existentes?', 'auto_incrementing_asset_tags_disabled_so_tags_required' => 'La generación autoincrementable de las placas de activos está desactivada, por lo que todas las filas deben tener la columna "Asset Tag" con información.', @@ -471,7 +472,7 @@ return [ 'setup_successful_migrations' => 'Se han creado las tablas de la base de datos', 'setup_migration_output' => 'Salida de Migración:', 'setup_migration_create_user' => 'Siguiente: Crear usuario', - 'importer_generic_error' => 'La importación de tu archivo está completa, pero recibimos un error. Esto normalmente es causado por la limitación de API de terceros desde un webhook de notificación (como Slack) y no habría interferido con la importación en sí. pero deberá confirmarlo.', + 'importer_generic_error' => 'La importación del archivo se ha completado, pero recibimos un error. Esto suele deberse a la limitación de la API de terceros desde un webhook de notificación (como Slack) y no habría interferido con la importación en sí, pero debería confirmarlo.', 'confirm' => 'Confirmar', 'autoassign_licenses' => 'Auto-Asignar licencias', 'autoassign_licenses_help' => 'Permitir a este usuario tener licencias asignadas a través de la asignación masiva en la interfaz de usuario o de las herramientas de la línea de comandos (CLI).', @@ -490,7 +491,7 @@ return [ 'checked_out_to_fullname' => 'Asignado a: Nombre completo', 'checked_out_to_first_name' => 'Asignado a: Nombre', 'checked_out_to_last_name' => 'Asignado a: Apellido', - 'checked_out_to_username' => 'Asignado a: Usuario', + 'checked_out_to_username' => 'Asignado a: Nombre de usuario', 'checked_out_to_email' => 'Asignado a: correo electrónico', 'checked_out_to_tag' => 'Asignado a: Placa de activo', 'manager_first_name' => 'Nombre del supervisor', @@ -551,12 +552,12 @@ return [ 'components' => ':count component|:count componentes', ], 'more_info' => 'Más información', - 'quickscan_bulk_help' => 'Al marcar esta casilla se editará el registro de activos para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría. Tenga en cuenta que si este activo es asignado, no cambiará la ubicación de la persona, activo o ubicación a la que se le asigna.', + 'quickscan_bulk_help' => 'Al marcar esta casilla se actualizará el activo para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría. Tenga en cuenta que si este activo ya está asignado, no cambiará la ubicación de la persona, del activo o de la ubicación a la que esté asignado.', 'whoops' => '¡Uy!', 'something_went_wrong' => 'Algo falló en su solicitud.', 'close' => 'Cerrar', 'expires' => 'Vence', - 'map_fields'=> 'Asociar el campo :item_type', + 'map_fields'=> 'Asociar campos para :item_type', 'remaining_var' => ':count restantes', ]; diff --git a/resources/lang/es-MX/help.php b/resources/lang/es-MX/help.php index e130e3833..2d07c2fbc 100644 --- a/resources/lang/es-MX/help.php +++ b/resources/lang/es-MX/help.php @@ -15,7 +15,7 @@ return [ 'more_info_title' => 'Más información', - 'audit_help' => 'Al marcar esta casilla se editará el registro de activos para reflejar esta nueva ubicación. Dejarla desmarcada simplemente anotará la ubicación en el registro de auditoría.

Tenga en cuenta que si este activo se asigna, no cambiará la ubicación de la persona, el activo o la ubicación a la que se asigna.', + 'audit_help' => 'Al marcar esta casilla se actualizará el activo para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría.

Tenga en cuenta que si este activo ya está asignado, no cambiará la ubicación de la persona, del activo o de la ubicación a la que esté asignado.', 'assets' => 'Los activos son artículos rastreados por número de serie o placa de activo. Suelen ser artículos de alto valor en los que es importante identificar un elemento específico.', diff --git a/resources/lang/es-MX/localizations.php b/resources/lang/es-MX/localizations.php index c0ff11555..7a5987bf9 100644 --- a/resources/lang/es-MX/localizations.php +++ b/resources/lang/es-MX/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malayo', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongol', - 'no-NO'=> 'Noruego', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Noruego Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persa', 'pl-PL'=> 'Polaco', 'pt-PT'=> 'Portugués', diff --git a/resources/lang/es-MX/mail.php b/resources/lang/es-MX/mail.php index e9db2f79e..74066ef97 100644 --- a/resources/lang/es-MX/mail.php +++ b/resources/lang/es-MX/mail.php @@ -46,7 +46,7 @@ return [ 'checked_into' => 'Devuelto en', 'click_on_the_link_accessory' => 'Haga clic en el enlace en la parte inferior para confirmar que ha recibido el accesorio.', 'click_on_the_link_asset' => 'Haga clic en el enlace en la parte inferior para confirmar que ha recibido el activo.', - 'click_to_confirm' => 'Por favor, pulsa en el siguiente enlace para verificar tu cuenta de :web:', + 'click_to_confirm' => 'Por favor, haga clic en el siguiente enlace para confirmar su cuenta de :web:', 'current_QTY' => 'Cantidad actual', 'days' => 'Días', 'expecting_checkin_date' => 'Fecha esperada de devolución:', @@ -58,7 +58,7 @@ return [ 'item' => 'Elemento:', 'item_checked_reminder' => 'Este es un recordatorio de que actualmente tiene :count elemento(s) asignado(s) que no ha aceptado o rechazado. Haga clic en el siguiente enlace para confirmar su decisión.', 'license_expiring_alert' => 'Hay :count licencia que expira en los próximos :threshold días. | Hay :count licencias que expiran en los próximos :threshold días.', - 'link_to_update_password' => 'Haga clic en el siguiente enlace para actualizar su: contraseña de la web:', + 'link_to_update_password' => 'Por favor, haga clic en el siguiente enlace para actualizar contraseña de :web :', 'login' => 'Entrar:', 'login_first_admin' => 'Inicie sesión en su nueva instalación de Snipe-IT usando las credenciales:', 'low_inventory_alert' => 'Hay :count elemento que está por debajo del inventario mínimo o que pronto lo estará.|Hay :count elementos que están por debajo del inventario mínimo o que pronto lo estarán.', @@ -72,7 +72,7 @@ return [ 'read_the_terms_and_click' => 'Por favor, lea los términos de uso a continuación, y haga clic en el enlace en la parte inferior para confirmar que usted lee y acepta las condiciones de uso, y han recibido el activo.', 'requested' => 'Solicitado:', 'reset_link' => 'Su enlace de restablecimiento de contraseña', - 'reset_password' => 'Haga Clic aquí para restablecer su contraseña:', + 'reset_password' => 'Haaga clic aquí para restablecer tu contraseña:', 'rights_reserved' => 'Todos los derechos reservados.', 'serial' => 'Serial', 'snipe_webhook_test' => 'Prueba de integración de Snipe-IT', @@ -82,7 +82,7 @@ return [ 'test_email' => 'Email de prueba de Snipe-IT', 'test_mail_text' => 'Esto es una prueba desde el sistema de gestión de activos Snipe-IT. Si recibió este mensaje, el correo está funcionando :)', 'the_following_item' => 'El siguiente artículo ha sido devuelto: ', - 'to_reset' => 'Para restaurar tu contraseña de :web, rellena este formulario:', + 'to_reset' => 'Para restaurar tu contraseña de :web, diligencie este formulario:', 'type' => 'Tipo', 'upcoming-audits' => 'Hay :count para ser auditado antes de :threshold días.|Hay :count activos para ser auditados antes de :threshold días.', 'user' => 'Usuario', diff --git a/resources/lang/es-MX/reminders.php b/resources/lang/es-MX/reminders.php index 2269768b6..98f281956 100644 --- a/resources/lang/es-MX/reminders.php +++ b/resources/lang/es-MX/reminders.php @@ -14,7 +14,7 @@ return array( */ "password" => "Las contraseñas deben ser de seis caracteres y coincidir con la confirmación.", - "user" => "Usuario o E-Mail incorrectos", + "user" => "El nombre de usuario o la dirección de correo electrónico son incorrectos", "token" => 'Esta sesión de restablecimiento de contraseña es inválida o ha caducado, o no coincide con el nombre de usuario proporcionado.', 'sent' => 'Si existe un usuario con una dirección de correo electrónico válida en nuestro sistema, se ha enviado un correo electrónico de recuperación de contraseña.', diff --git a/resources/lang/es-MX/validation.php b/resources/lang/es-MX/validation.php index f2198ee0e..a153b545f 100644 --- a/resources/lang/es-MX/validation.php +++ b/resources/lang/es-MX/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'El campo :attribute debe contener al menos un símbolo.', 'uncompromised' => 'El valor de :attribute ha aparecido en una fuga de datos. Por favor, seleccione un valor diferente para :attribute.', ], + 'percent' => 'El mínimo de amortización debe estar entre 0 y 100 cuando el tipo de amortización es porcentual.', + 'present' => 'El campo: atributo debe estar presente.', 'present_if' => 'El campo :attribute debe estar presente cuando :other sea :value.', 'present_unless' => 'El campo :attribute debe estar presente a menos que :other sea :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Su contraseña actual es incorrecta', 'dumbpwd' => 'Esa contraseña es muy común.', 'statuslabel_type' => 'Debe seleccionar un tipo de etiqueta de estado válido.', + 'custom_field_not_found' => 'Este campo parece que no existe, por favor, compruebe los nombres de sus campos personalizados.', + 'custom_field_not_found_on_model' => 'Este campo parece existir, pero no está disponible en este conjunto de campos para el modelo de activo.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/es-VE/account/general.php b/resources/lang/es-VE/account/general.php index 2520857ca..4280c37db 100644 --- a/resources/lang/es-VE/account/general.php +++ b/resources/lang/es-VE/account/general.php @@ -10,6 +10,8 @@ return array( 'api_base_url_endpoint' => '/<endpoint>', 'api_token_expiration_time' => 'Las credenciales de la API están establecidas para expirar en:', 'api_reference' => 'Consulte API reference para encontrar los puntos finales (endpoints) del API y documentación adicional.', - 'profile_updated' => 'Cuenta actualizada exitosamente', + 'profile_updated' => 'La cuenta fue actualizada exitosamente', 'no_tokens' => 'No ha creado ninguna credencial de acceso personal.', + 'enable_sounds' => 'Habilitar efectos de sonido', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/es-VE/admin/accessories/message.php b/resources/lang/es-VE/admin/accessories/message.php index 0d2940bf8..755792fd7 100644 --- a/resources/lang/es-VE/admin/accessories/message.php +++ b/resources/lang/es-VE/admin/accessories/message.php @@ -13,7 +13,7 @@ return array( 'update' => array( 'error' => 'El accesorio no fue actualizado, por favor, inténtelo de nuevo', - 'success' => 'El accesorio se ha actualizado con éxito.' + 'success' => 'El accesorio fue actualizado con éxito.' ), 'delete' => array( diff --git a/resources/lang/es-VE/admin/custom_fields/general.php b/resources/lang/es-VE/admin/custom_fields/general.php index 347067715..9ea814cc5 100644 --- a/resources/lang/es-VE/admin/custom_fields/general.php +++ b/resources/lang/es-VE/admin/custom_fields/general.php @@ -41,7 +41,7 @@ return [ 'about_custom_fields_title' => 'Acerca de campos personalizados', 'about_custom_fields_text' => 'Los campos personalizados le permiten agregar atributos arbitrarios a los activos.', 'add_field_to_fieldset' => 'Añadir campo al grupo de campos', - 'make_optional' => 'Requerido - haga click para hacerlo opcional', + 'make_optional' => 'Requerido - haga clic para hacerlo opcional', 'make_required' => 'Opcional - haga click para hacerlo opcional', 'reorder' => 'Reordenar', 'db_field' => 'Campo en base de datos', diff --git a/resources/lang/es-VE/admin/departments/table.php b/resources/lang/es-VE/admin/departments/table.php index 8d97ccac1..aa3f6b3c5 100644 --- a/resources/lang/es-VE/admin/departments/table.php +++ b/resources/lang/es-VE/admin/departments/table.php @@ -7,5 +7,5 @@ return array( 'manager' => 'Supervisor', 'location' => 'Ubicación', 'create' => 'Crear departamento', - 'update' => 'Actualizar Departamento', + 'update' => 'Actualizar departamento', ); diff --git a/resources/lang/es-VE/admin/hardware/general.php b/resources/lang/es-VE/admin/hardware/general.php index 100fe91c2..4a48f4692 100644 --- a/resources/lang/es-VE/admin/hardware/general.php +++ b/resources/lang/es-VE/admin/hardware/general.php @@ -21,18 +21,18 @@ return [ 'requested' => 'Solicitado', 'not_requestable' => 'No puede solicitarse', 'requestable_status_warning' => 'No cambiar el estado solicitable', - 'restore' => 'Restaurar Activo', + 'restore' => 'Restaurar activo', 'pending' => 'Pendiente', 'undeployable' => 'No utilizable', 'undeployable_tooltip' => 'Este activo tiene una etiqueta de estado que es no utilizable y no puede ser asignado en este momento.', 'view' => 'Ver activo', 'csv_error' => 'Tiene un error en su archivo CSV:', - 'import_text' => '

Cargue un archivo CSV que contenga el historial de los activos. Los activos y los usuarios DEBEN existir ya en el sistema, o serán omitidos. La comparación de activos para importar el historial se realiza con la placa del activo. Intentaremos encontrar un usuario usando el nombre del usuario que proporcione y los criterios que seleccione a continuación. Si no selecciona ningún criterio, el sistema simplemente intentará usar el formato de nombre de usuario configurado en Administrador > Configuración General.

Los campos incluidos en el CSV deben coincidir con los encabezados: Asset Tag, Name, Checkout Date, Checkin Date. Cualquier campo adicional será ignorado.

Checkin Date(Fecha de recepción): dejar en blanco o usar fechas futuras asignará los ítems al usuario asociado. Excluir la columna Checkin Date creará una fecha de recepción con la fecha de hoy.

', + 'import_text' => '

Cargue un archivo CSV que contenga el historial de los activos. Los activos y los usuarios DEBEN existir ya en el sistema, o serán omitidos. La comparación de activos para importar el historial se realiza con la placa del activo. Intentaremos encontrar un usuario usando el nombre del usuario que proporcione y los criterios que seleccione a continuación. Si no selecciona ningún criterio, el sistema simplemente intentará usar el formato de nombre de usuario configurado en Administrador > Configuración General.

Los campos incluidos en el CSV deben coincidir con los encabezados: Asset Tag, Name, Checkout Date, Checkin Date. Cualquier campo adicional será ignorado.

Checkin Date(Fecha de recepción): dejar en blanco o usar fechas futuras asignará los elementos al usuario asociado. Excluir la columna Checkin Date creará una fecha de recepción con la fecha de hoy.

', 'csv_import_match_f-l' => 'Intente emparejar usuarios usando el formato nombre.apellido (jane.smith)', 'csv_import_match_initial_last' => 'Intente emparejar los usuarios usando el formato inicial del nombre y apellido (jsmith)', 'csv_import_match_first' => 'Intentar emparejar a los usuarios usando el formato primer nombre (jane)', 'csv_import_match_email' => 'Intente emparejar los usuarios usando correo electrónico como nombre de usuario', - 'csv_import_match_username' => 'Intente emparejar los usuarios usando usuario', + 'csv_import_match_username' => 'Intente emparejar los usuarios usando nombre de usuario', 'error_messages' => 'Mensajes de error:', 'success_messages' => 'Mensajes de éxito:', 'alert_details' => 'Por favor vea abajo para más detalles.', diff --git a/resources/lang/es-VE/admin/hardware/message.php b/resources/lang/es-VE/admin/hardware/message.php index 68139d3e3..8bef2987e 100644 --- a/resources/lang/es-VE/admin/hardware/message.php +++ b/resources/lang/es-VE/admin/hardware/message.php @@ -34,7 +34,7 @@ return [ 'audit' => [ 'error' => 'Auditoría de activos fallida: :error ', - 'success' => 'Audoría de activo registrada con éxito.', + 'success' => 'Auditoría de activos registrada correctamente.', ], @@ -51,7 +51,7 @@ return [ ], 'import' => [ - 'import_button' => 'Proceso para importar', + 'import_button' => 'Importar', 'error' => 'Algunos de los elementos no se importaron correctamente.', 'errorDetail' => 'Lo siguientes elementos no se importaron debido a errores.', 'success' => 'Su archivo ha sido importado', diff --git a/resources/lang/es-VE/admin/kits/general.php b/resources/lang/es-VE/admin/kits/general.php index 0236af3ec..ae87ae332 100644 --- a/resources/lang/es-VE/admin/kits/general.php +++ b/resources/lang/es-VE/admin/kits/general.php @@ -23,17 +23,17 @@ return [ 'update_appended_model' => 'Actualizar modelo añadido', 'license_error' => 'Licencia ya adjunta al kit', 'license_added_success' => 'Licencia creada con éxito', - 'license_updated' => 'La licencia se ha actualizado correctamente', + 'license_updated' => 'La licencia fue actualizada correctamente', 'license_none' => 'La licencia no existe', 'license_detached' => 'Licencia fue separada con éxito', 'consumable_added_success' => 'Consumible creado con éxito', - 'consumable_updated' => 'Consumible se ha actualizado correctamente', + 'consumable_updated' => 'El consumible fue actualizado correctamente', 'consumable_error' => 'Consumible ya conectado al kit', 'consumable_deleted' => 'El borrado fue exitoso', 'consumable_none' => 'El consumible no existe', 'consumable_detached' => 'Consumible fue separado con éxito', 'accessory_added_success' => 'Accesorio añadido correctamente', - 'accessory_updated' => 'El accesorio se ha actualizado correctamente', + 'accessory_updated' => 'El accesorio fue actualizado correctamente', 'accessory_detached' => 'Accesorio fue separado con éxito', 'accessory_error' => 'El accesorio ya está conectado al kit', 'accessory_deleted' => 'El borrado fue exitoso', @@ -42,9 +42,9 @@ return [ 'checkout_error' => 'Error al asignar', 'kit_none' => 'El kit no existe', 'kit_created' => 'El kit se creó con éxito', - 'kit_updated' => 'El kit se actualizó con éxito', + 'kit_updated' => 'El kit fue actualizado correctamente', 'kit_not_found' => 'Kit no encontrado', 'kit_deleted' => 'Kit eliminado correctamente', - 'kit_model_updated' => 'El modelo se ha actualizado correctamente', + 'kit_model_updated' => 'El modelo fue actualizado correctamente', 'kit_model_detached' => 'Modelo fue separado con éxito', ]; diff --git a/resources/lang/es-VE/admin/labels/message.php b/resources/lang/es-VE/admin/labels/message.php index 6f03c9469..01006397c 100644 --- a/resources/lang/es-VE/admin/labels/message.php +++ b/resources/lang/es-VE/admin/labels/message.php @@ -2,9 +2,9 @@ return [ - 'invalid_return_count' => 'El recuento no es válido desde :name. Esperado :expected, tiene :actual.', - 'invalid_return_type' => 'Tipo no válido devuelto desde :name. Esperado :expected, obtuvo :actual.', - 'invalid_return_value' => 'Valor no válido devuelto de :name. Esperado :expected, obtuvo :actual.', + 'invalid_return_count' => 'El recuento no es válido desde :name. Esperado :expected, obtenido :actual.', + 'invalid_return_type' => 'Tipo no válido devuelto desde :name. Esperado :expected, obtenido :actual.', + 'invalid_return_value' => 'Valor no válido devuelto de :name. Esperado :expected, obtenido :actual.', 'does_not_exist' => 'La etiqueta no existe', diff --git a/resources/lang/es-VE/admin/licenses/message.php b/resources/lang/es-VE/admin/licenses/message.php index ba7e41824..d260f4ad9 100644 --- a/resources/lang/es-VE/admin/licenses/message.php +++ b/resources/lang/es-VE/admin/licenses/message.php @@ -4,7 +4,7 @@ return array( 'does_not_exist' => 'La licencia no existe o no tiene permiso para verla.', 'user_does_not_exist' => 'El usuario no existe o no tiene permiso para verlos.', - 'asset_does_not_exist' => 'El activo que intentas asociar con esta licencia no existe.', + 'asset_does_not_exist' => 'El activo que intenta asociar con esta licencia no existe.', 'owner_doesnt_match_asset' => 'El activo que está intentando asignar con esta licencia está asignado a un usuario diferente al de la persona seleccionada de la lista.', 'assoc_users' => 'Esta licencia está actualmente asignada a un usuario y no puede ser eliminada. Por favor, reciba primero la licencia y vuelva a intentarlo. ', 'select_asset_or_person' => 'Debe seleccionar un activo o un usuario, pero no ambos.', diff --git a/resources/lang/es-VE/admin/locations/message.php b/resources/lang/es-VE/admin/locations/message.php index 686ce413b..eef07cb97 100644 --- a/resources/lang/es-VE/admin/locations/message.php +++ b/resources/lang/es-VE/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'La localización no existe.', - 'assoc_users' => 'Esta ubicación no se puede eliminar actualmente porque es la ubicación de al menos un activo o de un usuario, tiene activos asignados a ella, o es la ubicación padre de otra ubicación. Por favor actualice las referencias que correspondan. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Esta ubicación está actualmente asociada con al menos un activo y no puede ser eliminada. Por favor actualice sus activos para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assoc_child_loc' => 'Esta ubicación es actualmente el padre de al menos una ubicación hija y no puede ser eliminada. Por favor actualice sus ubicaciones para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assigned_assets' => 'Activos asignados', @@ -11,7 +11,7 @@ return array( 'create' => array( - 'error' => 'La ubicación no pudo ser creada, por favor inténtelo de nuevo.', + 'error' => 'La ubicación no pudo ser creada, por favor, inténtelo de nuevo.', 'success' => 'La ubicación fue creada exitosamente.' ), diff --git a/resources/lang/es-VE/admin/locations/table.php b/resources/lang/es-VE/admin/locations/table.php index 5fde05586..ba6240342 100644 --- a/resources/lang/es-VE/admin/locations/table.php +++ b/resources/lang/es-VE/admin/locations/table.php @@ -2,7 +2,7 @@ return [ 'about_locations_title' => 'Acerca de las ubicaciones', - 'about_locations' => 'Las ubicaciones son utilizadas para hacer seguimiento de la información sobre ubicación de usuarios, activos, y otros ítems', + 'about_locations' => 'Las ubicaciones se utilizan para hacer un seguimiento de la ubicación de usuarios, activos y otros elementos', 'assets_rtd' => 'Activos', // This has NEVER meant Assets Retired. I don't know how it keeps getting reverted. 'assets_checkedout' => 'Activos asignados', 'id' => 'ID', @@ -35,8 +35,8 @@ return [ 'asset_expected_checkin' => 'Fecha esperada de devolución', 'date' => 'Fecha:', 'phone' => 'Teléfono ubicación', - 'signed_by_asset_auditor' => 'Firmado por (Juego de Acciones):', - 'signed_by_finance_auditor' => 'Firmado por (Monitor de Finanzas):', - 'signed_by_location_manager' => 'Firmado por (Administrador de ubicación):', + 'signed_by_asset_auditor' => 'Firmado por (Auditor de Activos):', + 'signed_by_finance_auditor' => 'Firmado por (Auditor de Finanzas):', + 'signed_by_location_manager' => 'Firmado por (Supervisor de la ubicación):', 'signed_by' => 'Firmado por:', ]; diff --git a/resources/lang/es-VE/admin/settings/general.php b/resources/lang/es-VE/admin/settings/general.php index 515fcfac0..1f8c8c01f 100644 --- a/resources/lang/es-VE/admin/settings/general.php +++ b/resources/lang/es-VE/admin/settings/general.php @@ -6,7 +6,7 @@ return [ 'ad_domain_help' => 'Algunas veces coincide con el dominio de su correo electrónico, pero no siempre.', 'ad_append_domain_label' => 'Añadir nombre de dominio', 'ad_append_domain' => 'Añadir nombre de dominio al campo de nombre de usuario', - 'ad_append_domain_help' => 'El usuario no necesita escribir "username@domain.local", puede escribir únicamente "username".', + 'ad_append_domain_help' => 'El usuario no necesita escribir "usuario@dominio.local", puede escribir únicamente "usuario".', 'admin_cc_email' => 'Copiar en correo electrónico', 'admin_cc_email_help' => 'Si desea enviar una copia de los correos electrónicos de recepción/devolución que se envían a los usuarios a una cuenta de correo electrónico adicional, escríbala aquí. De lo contrario, deje este campo en blanco.', 'admin_settings' => 'Configuración de administración', @@ -23,7 +23,7 @@ return [ 'asset_ids' => 'Códigos de los activos', 'audit_interval' => 'Intervalo de Auditoría', 'audit_interval_help' => 'Si está obligado a auditar físicamente sus activos con regularidad, introduzca el intervalo en meses que utilice. Si actualiza este valor, se actualizarán todas las "próximas fechas de auditoría" de los activos con una fecha de auditoría próxima.', - 'audit_warning_days' => 'Umbral de Aviso de Auditoría', + 'audit_warning_days' => 'Umbral de advertencia de auditoría', 'audit_warning_days_help' => '¿Con cuántos días de antelación es necesario avisar que se deben auditar los activos?', 'auto_increment_assets' => 'Generar placas de activos autoincrementables', 'auto_increment_prefix' => 'Prefijo (opcional)', @@ -41,7 +41,7 @@ return [ 'confirm_purge_help' => 'Introduzca el texto "DELETE" en la casilla de abajo para purgar sus registros borrados. Esta acción no se puede deshacer y borrará PERMANENTAMENTE todos los elementos y usuarios eliminados. Debería hacer primero una copia de seguridad, para estar seguro.', 'custom_css' => 'CSS Personalizado', 'custom_css_help' => 'Introduzca cualquier CSS personalizado que desee utilizar. No incluya las etiquetas <style></style>.', - 'custom_forgot_pass_url' => 'Personalizar URL de Restablecimiento de Contraseña', + 'custom_forgot_pass_url' => 'URL de restablecimiento de contraseña personalizada', 'custom_forgot_pass_url_help' => 'Esto remplaza la URL incorporada para contraseña olvidada en la pantalla de inicio, útil para dirigir a las personas a una funcionalidad de restablecimiento de interna o alojada en LDPA. Esto deshabilitará la funcionalidad local de contraseña olvidada.', 'dashboard_message' => 'Mensaje en el tablero', 'dashboard_message_help' => 'Este texto aparecerá en el panel para cualquiera que tenga permiso de ver el panel.', @@ -110,13 +110,13 @@ return [ 'ldap_filter' => 'Filtro LDAP', 'ldap_pw_sync' => 'Sincronización de Contraseña LDAP', 'ldap_pw_sync_help' => 'Desmarque esta casilla si no desea mantener las contraseñas LDAP sincronizadas con las contraseñas locales. Si desactiva esta opción, los usuarios no podrán iniciar sesión si, por algún motivo, no se puede acceder al servidor LDAP.', - 'ldap_username_field' => 'Campo de Nombre de Usuario', + 'ldap_username_field' => 'Campo nombre de usuario', 'ldap_lname_field' => 'Apellido', 'ldap_fname_field' => 'Primer Nombre LDAP', - 'ldap_auth_filter_query' => 'Solicitud de Autenticación LDAP', + 'ldap_auth_filter_query' => 'Consulta de autentificación LDAP', 'ldap_version' => 'Versión LDAP', 'ldap_active_flag' => 'Flag activo LDAP', - 'ldap_activated_flag_help' => 'Este valor se utiliza para determinar si un usuario sincronizado puede iniciar sesión en Snipe-IT. No afecta a la capacidad de asignarles o retirarles items, y debería ser el nombre de atributo dentro de su AD/LDAP, no el valor.

Si este campo está configurado a un nombre de campo que no existe en su AD/LDAP, o el valor en el campo AD/LDAP se establece en 0 o falso, el inicio de sesión de usuario será deshabilitado. Si el valor en el campo AD/LDAP está establecido en 1 o true o cualquier otro texto significa que el usuario puede iniciar sesión. Cuando el campo está en blanco en su AD, respetamos el atributo userAccountControl, que generalmente permite a los usuarios no suspendidos iniciar sesión.', + 'ldap_activated_flag_help' => 'Este valor se utiliza para determinar si un usuario sincronizado puede iniciar sesión en Snipe-IT. No afecta a la capacidad de asignarles o retirarles elementos, y debería ser el nombre de atributo dentro de su AD/LDAP, no el valor.

Si este campo está configurado a un nombre de campo que no existe en su AD/LDAP, o el valor en el campo AD/LDAP se establece en 0 o falso, el inicio de sesión de usuario será deshabilitado. Si el valor en el campo AD/LDAP está establecido en 1 o true o cualquier otro texto significa que el usuario puede iniciar sesión. Cuando el campo está en blanco en su AD, respetamos el atributo userAccountControl, que generalmente permite a los usuarios no suspendidos iniciar sesión.', 'ldap_emp_num' => 'Número de Empleado LDAP', 'ldap_email' => 'Correo electrónico LDAP', 'ldap_test' => 'Probar LDAP', @@ -127,7 +127,7 @@ return [ 'login' => 'Intentos de inicio de sesión', 'login_attempt' => 'Intento de inicio de sesión', 'login_ip' => 'Dirección IP', - 'login_success' => '¿Éxito?', + 'login_success' => '¿Exitoso?', 'login_user_agent' => 'Agente de usuario', 'login_help' => 'Lista de intentos de inicio de sesión', 'login_note' => 'Nota de Inicio de Sesión', @@ -215,9 +215,11 @@ return [ 'webhook_endpoint' => 'Endpoint de :app', 'webhook_integration' => ':app Ajustes', 'webhook_test' =>'Probar integración con :app', - 'webhook_integration_help' => 'La integración con :app es opcional, sin embargo el punto final (endpoint) y el canal son necesarios si desea usarla. Para configurar la integración con :app, primero debe crear un webhook entrante en tu cuenta :app. Haga clic en el botón Probar integración con :app para confirmar que su configuración es correcta antes de guardar. ', + 'webhook_integration_help' => 'La integración con :app es opcional, sin embargo, el punto final (endpoint) y el canal son necesarios si desea usarla. Para configurar la integración con :app, primero debe crear un webhook entrante en su cuenta :app. Haga clic en el botón Probar integración con :app para confirmar que su configuración es correcta antes de guardar. ', 'webhook_integration_help_button' => 'Una vez que haya guardado la información de :app, aparecerá un botón de prueba.', 'webhook_test_help' => 'Compruebe si su integración con :app está configurada correctamente. PRIMERO DEBE GUARDAR LA CONFIGURACION ACTUALIZADA DE :app.', + 'shortcuts_enabled' => 'Habilitar accesos directos', + 'shortcuts_help_text' => 'Windows: Alt + Tecla de acceso, Mac: Control + Opción + Tecla de acceso', 'snipe_version' => 'Version de Snipe-IT', 'support_footer' => 'Enlace al soporte en el pie de página ', 'support_footer_help' => 'Especifica quién ve los links a la información de Soporte Snipe-IT y el Manual de Usuario', @@ -231,7 +233,7 @@ return [ 'brand_help' => 'Logo, nombre del sitio', 'web_brand' => 'Tipo de marca web', 'about_settings_title' => 'Acerca de las Configuraciones', - 'about_settings_text' => 'Estas configuraciones te dejan personalizar ciertos aspectos de tu instalación.', + 'about_settings_text' => 'Estas configuraciones le permiten personalizar ciertos aspectos de su instalación.', 'labels_per_page' => 'Etiquetas por página', 'label_dimensions' => 'Dimensiones de las etiquetas (pulgadas)', 'next_auto_tag_base' => 'Siguiente incremento automático', @@ -334,7 +336,7 @@ return [ 'employee_number' => 'Número de empleado', 'create_admin_user' => 'Crear un usuario ::', 'create_admin_success' => '¡Éxito! ¡Su usuario admin ha sido añadido!', - 'create_admin_redirect' => '¡Haz clic aquí para acceder a tu aplicación!', + 'create_admin_redirect' => '¡Haga clic aquí para acceder a su aplicación!', 'setup_migrations' => 'Migraciones de Base de Datos ::', 'setup_no_migrations' => 'No hay nada que migrar. ¡Las tablas de la base de datos ya estaban configuradas!', 'setup_successful_migrations' => 'Se han creado las tablas de la base de datos', diff --git a/resources/lang/es-VE/admin/settings/message.php b/resources/lang/es-VE/admin/settings/message.php index ddae669ca..9bc01281b 100644 --- a/resources/lang/es-VE/admin/settings/message.php +++ b/resources/lang/es-VE/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Sí, restaurarlo. Reconozco que esto sobrescribirá cualquier dato existente actualmente en la base de datos. Esto también cerrará la sesión de todos sus usuarios existentes (incluido usted).', 'restore_confirm' => '¿Está seguro que desea restaurar su base de datos desde :filename?' ], + 'restore' => [ + 'success' => 'Su copia de respaldo del sistema ha sido restaurada. Por favor, inicie sesión nuevamente.' + ], 'purge' => [ 'error' => 'Ha ocurrido un error mientras se realizaba el purgado. ', 'validation_failed' => 'Su confirmación de purga es incorrecta. Por favor, escriba la palabra "DELETE" en el cuadro de confirmación.', diff --git a/resources/lang/es-VE/admin/suppliers/table.php b/resources/lang/es-VE/admin/suppliers/table.php index 541da852b..95560d6ee 100644 --- a/resources/lang/es-VE/admin/suppliers/table.php +++ b/resources/lang/es-VE/admin/suppliers/table.php @@ -2,7 +2,7 @@ return array( 'about_suppliers_title' => 'Acerca de los Proveedores', - 'about_suppliers_text' => 'Los proveedores son utilizados para seguir la fuente de los artículos', + 'about_suppliers_text' => 'Los proveedores se utilizan para hacer seguimiento al origen de los elementos', 'address' => 'Dirección del Proveedor', 'assets' => 'Activos', 'city' => 'Ciudad', diff --git a/resources/lang/es-VE/admin/users/message.php b/resources/lang/es-VE/admin/users/message.php index 1743586c1..6e75b54dd 100644 --- a/resources/lang/es-VE/admin/users/message.php +++ b/resources/lang/es-VE/admin/users/message.php @@ -48,11 +48,11 @@ return array( 'accept_or_decline' => 'Debe aceptar o rechazar este equipo.', 'cannot_delete_yourself' => 'Nos sentiríamos muy mal si usted se eliminara, por favor reconsidérelo.', 'incorrect_user_accepted' => 'El elemento que ha intentado aceptar no fue asignado a usted.', - 'ldap_could_not_connect' => 'No se pudo conectar al servidor LDAP. Por favor verifica la configuración LDAP de tu servidor en el archivo de configuración LDAP.
Error del servidor LDAP:', - 'ldap_could_not_bind' => 'No se pudo enlazar al servidor LDAP. Por favor verifica la configuración LDAP de tu servidor en el archivo de configuración LDAP.
Error del servidor LDAP: ', - 'ldap_could_not_search' => 'No se pudo buscar el servidor LDAP. Por favor verifica la configuración LDAP de tu servidor en el archivo de configuración LDAP.
Error del servidor LDAP:', - 'ldap_could_not_get_entries' => 'No se pudieron obtener las entradas del servidor LDAP. Por favor verifica la configuración LDAP de tu servidor en el archivo de configuración LDAP.
Error del servidor LDAP:', - 'password_ldap' => 'La contraseña para esta cuenta es manejada por LDAP/Active Directory. Por favor contacta a tu departamento de IT para cambiar tu contraseña. ', + 'ldap_could_not_connect' => 'No se pudo conectar al servidor LDAP. Por favor, compruebe la configuración del servidor LDAP en el archivo de configuración LDAP.
Error del servidor LDAP:', + 'ldap_could_not_bind' => 'No se ha podido vincular al servidor LDAP. Por favor verifique la configuración de su servidor LDAP en su archivo de configuración.
Error del servidor LDAP: ', + 'ldap_could_not_search' => 'No se pudo buscar en el servidor LDAP. Por favor, compruebe la configuración del servidor LDAP en el archivo de configuración LDAP.
Error del servidor LDAP:', + 'ldap_could_not_get_entries' => 'No se han podido obtener entradas del servidor LDAP. Por favor verifique la configuración de su servidor LDAP en su archivo de configuración.
Error del servidor LDAP:', + 'password_ldap' => 'La contraseña para esta cuenta es administrada por LDAP / Active Directory. Póngase en contacto con su departamento de TI para cambiar su contraseña. ', ), 'deletefile' => array( diff --git a/resources/lang/es-VE/admin/users/table.php b/resources/lang/es-VE/admin/users/table.php index 3e0ea5743..9c4351729 100644 --- a/resources/lang/es-VE/admin/users/table.php +++ b/resources/lang/es-VE/admin/users/table.php @@ -5,21 +5,21 @@ return array( 'allow' => 'Permitir', 'checkedout' => 'Activos', 'created_at' => 'Creado', - 'createuser' => 'Crear Usuario', + 'createuser' => 'Crear usuario', 'deny' => 'Denegar', 'email' => 'Correo electrónico', - 'employee_num' => 'No. Empleado.', + 'employee_num' => 'No. Empleado', 'first_name' => 'Nombre', 'groupnotes' => 'Seleccione un grupo para asignar al usuario, recuerde que un usuario asume los permisos del grupo al que se le asigna. Use ctrl+click (o cmd+click en MacOS) para anular la selección de grupos.', 'id' => 'Id', 'inherit' => 'Hereda de', 'job' => 'Cargo', - 'last_login' => 'Último Inicio de Sesión', + 'last_login' => 'Último inicio de sesión', 'last_name' => 'Apellido', 'location' => 'Ubicación', - 'lock_passwords' => 'Los detalles de acceso no pueden ser cambiados en esta instalación.', + 'lock_passwords' => 'Los detalles de inicio de sesión no pueden ser cambiados en esta instalación.', 'manager' => 'Supervisor', - 'managed_locations' => 'Ubicaciones adminsitradas', + 'managed_locations' => 'Ubicaciones gestionadas', 'managed_users' => 'Usuarios gestionados', 'name' => 'Nombre', 'nogroup' => 'Aún no se han creado grupos. Para añadir uno, visite: ', @@ -27,12 +27,12 @@ return array( 'password_confirm' => 'Confirmar Contraseña', 'password' => 'Contraseña', 'phone' => 'Teléfono', - 'show_current' => 'Mostrar Usuarios Actuales', - 'show_deleted' => 'Mostrar Usuarios Eliminados', + 'show_current' => 'Mostrar usuarios actuales', + 'show_deleted' => 'Mostrar usuarios eliminados', 'title' => 'Cargo', 'to_restore_them' => 'para restaurarlos.', 'total_assets_cost' => "Coste total de activos", - 'updateuser' => 'Actualizar Usuario', + 'updateuser' => 'Actualizar usuario', 'username' => 'Nombre de usuario', 'user_deleted_text' => 'Este usuario ha sido marcado como borrado.', 'username_note' => '(Esto es usado sólo para el enlace de Active Directory, no para iniciar sesión.)', diff --git a/resources/lang/es-VE/auth/general.php b/resources/lang/es-VE/auth/general.php index 90be7064f..5c0eb55f2 100644 --- a/resources/lang/es-VE/auth/general.php +++ b/resources/lang/es-VE/auth/general.php @@ -11,7 +11,7 @@ return [ 'ldap_reset_password' => 'Haga clic aquí para restablecer su contraseña LDAP', 'remember_me' => 'Recuérdame', 'username_help_top' => 'Ingrese su nombre de usuario para enviar un enlace de restablecimiento de contraseña.', - 'username_help_bottom' => 'Su nombre de usuario y dirección de correo electrónico puede ser el mismo, pero puede que no lo sea, dependiendo de su configuración. Si no puede recordar su nombre de usuario, póngase en contacto con su administrador.

A los usuarios sin una dirección de correo electrónico asociada no se enviará un enlace por correo electrónico de restablecimiento de contraseña. ', + 'username_help_bottom' => 'Su nombre de usuario y correo electrónico pueden ser el mismo, pero puede que no lo sean, dependiendo de su configuración. Si no recuerda su nombre de usuario, contacte al administrador.

A los nombres de usuario que no tengan un correo electrónico asociado, no se les enviará el enlace de cambio de contraseña. ', 'google_login' => 'Iniciar sesión con Google Workspace', 'google_login_failed' => 'Error al iniciar sesión en Google. Vuelve a intentarlo.', ]; diff --git a/resources/lang/es-VE/auth/message.php b/resources/lang/es-VE/auth/message.php index 28356d9bd..d0362ef00 100644 --- a/resources/lang/es-VE/auth/message.php +++ b/resources/lang/es-VE/auth/message.php @@ -19,7 +19,7 @@ return array( ), 'signin' => array( - 'error' => 'Hubo un problema mientras se intentaba iniciar su sesión, por favor inténtelo de nuevo.', + 'error' => 'Ha habido un problema al iniciar sesión. Por favor, inténtelo de nuevo.', 'success' => 'Ha iniciado sesión exitosamente.', ), @@ -29,17 +29,17 @@ return array( ), 'signup' => array( - 'error' => 'Hubo un problema mientras se creaba la cuenta, por favor inténtalo de nuevo.', + 'error' => 'Hubo un problema al crear la cuenta. Por favor, inténtelo de nuevo.', 'success' => 'Cuenta creada con éxito.', ), 'forgot-password' => array( - 'error' => 'Hubo un problema al intentar obtener un código para restablecer la contraseña, inténtalo de nuevo.', + 'error' => 'Ha habido un problema al obtener un código de restablecimiento de la contraseña. Por favor, inténtelo de nuevo.', 'success' => 'Si esa dirección de correo electrónico existe en nuestro sistema, se ha enviado un correo electrónico de recuperación de contraseña.', ), 'forgot-password-confirm' => array( - 'error' => 'Hubo un problema al intentar restablecer su contraseña, por favor inténtelo de nuevo.', + 'error' => 'Hubo un problema al intentar restablecer su contraseña, por favor, inténtelo de nuevo.', 'success' => 'Su contraseña se ha restablecido correctamente.', ), diff --git a/resources/lang/es-VE/button.php b/resources/lang/es-VE/button.php index cb7fb8216..dfdefcd12 100644 --- a/resources/lang/es-VE/button.php +++ b/resources/lang/es-VE/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clonar :item_type', 'edit' => 'Editar :item_type', 'delete' => 'Eliminar :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restaurar :item_type', 'create' => 'Crear nuevo :item_type', 'checkout' => 'Asignar :item_type', 'checkin' => 'Ingresar :item_type', diff --git a/resources/lang/es-VE/general.php b/resources/lang/es-VE/general.php index 535cf0d72..85d37148c 100644 --- a/resources/lang/es-VE/general.php +++ b/resources/lang/es-VE/general.php @@ -1,7 +1,7 @@ 'Reestablecer 2FA', + '2FA_reset' => 'Restablecer 2FA', 'accessories' => 'Accesorios', 'activated' => 'Activado', 'accepted_date' => 'Fecha de aceptación', @@ -17,7 +17,7 @@ return [ 'administrator' => 'Administrador', 'add_seats' => 'Licencias añadidas', 'age' => "Edad", - 'all_assets' => 'Todos los Activos', + 'all_assets' => 'Todos los activos', 'all' => 'Todo', 'archived' => 'Archivado', 'asset_models' => 'Modelos de Activos', @@ -36,7 +36,7 @@ return [ 'assets_checked_in_count' => 'activos ingresados', 'assets_checked_out_count' => 'activos asignados', 'asset_deleted_warning' => 'Este activo ha sido eliminado. Debe restaurarlo antes de poder asignarlo a alguien.', - 'assigned_date' => 'Fecha asignada', + 'assigned_date' => 'Fecha de asignación', 'assigned_to' => 'Asignado a :name', 'assignee' => 'Asignado a', 'avatar_delete' => 'Borrar Avatar', @@ -44,7 +44,7 @@ return [ 'back' => 'Atrás', 'bad_data' => 'No se ha encontrado nada. ¿Quizás datos incorrectos?', 'bulkaudit' => 'Auditoría Masiva', - 'bulkaudit_status' => 'Auditar Estado', + 'bulkaudit_status' => 'Estado de la auditoría', 'bulk_checkout' => 'Asignación masiva', 'bulk_edit' => 'Edición masiva', 'bulk_delete' => 'Eliminar en masa', @@ -66,7 +66,7 @@ return [ 'checkins_count' => 'Ingresos', 'user_requests_count' => 'Solicitudes', 'city' => 'Ciudad', - 'click_here' => 'Click aquí', + 'click_here' => 'Haga clic aquí', 'clear_selection' => 'Borrar selección', 'companies' => 'Compañías', 'company' => 'Compañía', @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumibles', 'country' => 'País', 'could_not_restore' => 'Error al restaurar :item_type: :error', - 'not_deleted' => 'El :item_type no está borrado por lo que no puede ser restaurado', + 'not_deleted' => ':item_type no está eliminado; por lo tanto, no se puede restaurar', 'create' => 'Crear nuevo', 'created' => 'Elemento Creado', 'created_asset' => 'activo creado', @@ -95,10 +95,10 @@ return [ 'days_to_next_audit' => 'Días para la Próxima Auditoría', 'date' => 'Fecha', 'debug_warning' => '¡Advertencia!', - 'debug_warning_text' => 'Esta aplicación se está ejecutando en modo producción con el depurador activado. Esto puede exponer datos sensibles si tu aplicación es accesible al exterior. Desactiva el modo de depuración mediante la configuración del valor APP_DEBUG en tu archivo .env a false.', + 'debug_warning_text' => 'Esta aplicación se está ejecutando en modo producción con depuración habilitada. Esto puede exponer datos sensibles si su aplicación es accedida desde el mundo exterior. Deshabilite el modo de depuración configurando el valor APP_DEBUG en su archivo .env a false.', 'delete' => 'Borrar', 'delete_confirm' => '¿Está seguro de que desea eliminar :item?', - 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no se puede deshacer.', + 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no puede deshacerse.', 'deleted' => 'Borrado', 'delete_seats' => 'Licencias eliminadas', 'deletion_failed' => 'Error al eliminar', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Apellido e inicial del nombre (smith_j@ejemplo.com)', 'firstinitial.lastname' => 'Inicial del nombre y apellido (j.smith@ejemplo.com)', 'firstnamelastinitial' => 'Nombre e inicial del apellido(janes@example.com)', - 'lastnamefirstname' => 'Apellido y nombre (smith.jane@example.com)', + 'lastnamefirstname' => 'Apellido.Nombre (smith.jane@example.com)', 'first_name' => 'Nombre', 'first_name_format' => 'Nombre (jane@ejemplo.com)', 'files' => 'Archivos', @@ -148,7 +148,7 @@ return [ 'github_markdown' => 'Este campo acepta el formateo estilo GitHub.', 'groups' => 'Grupos', 'gravatar_email' => 'Dirección de Correo Gravatar', - 'gravatar_url' => 'Cambia tu avatar en Gravatar.com.', + 'gravatar_url' => 'Cambie su avatar en Gravatar.com.', 'history' => 'Historial', 'history_for' => 'Historial para', 'id' => 'ID', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Borrar Imagen', 'include_deleted' => 'Incluir activos eliminados', 'image_upload' => 'Cargar imagen', - 'filetypes_accepted_help' => 'El tipo de archivo aceptado es :types. El tamaño máximo permitido para subir es :size.|Los tipos de archivo aceptados son :types. El tamaño máximo permitido es :size.', - 'filetypes_size_help' => 'El tamaño máximo permitido para subir es :size.', - 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg y avif. El tamaño máximo permitido es :size.', + 'filetypes_accepted_help' => 'El tipo de archivo aceptado es :types. El tamaño máximo permitido es :size.|Los tipos de archivo aceptados son :types. El tamaño máximo permitido para cargar es :size.', + 'filetypes_size_help' => 'El tamaño máximo permitido para cargar es :size.', + 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg, y avif. El tamaño máximo permitido para cargar es :size.', 'unaccepted_image_type' => 'Este archivo de imagen no fue legible. Los tipos de archivo aceptados son jpg, webp, png, gif y svg. El tipo mimetype de este archivo es: :mimetype.', 'import' => 'Importar', 'import_this_file' => 'Asociar campos y procesar este archivo', @@ -169,7 +169,7 @@ return [ 'asset_maintenance_report' => 'Informe mantenimiento de activos', 'asset_maintenances' => 'Mantenimiento de activos', 'item' => 'Elemento', - 'item_name' => 'Nombre del artículo', + 'item_name' => 'Nombre del elemento', 'import_file' => 'importar archivo CSV', 'import_type' => 'Tipo de importación CSV', 'insufficient_permissions' => '¡Permisos insuficientes!', @@ -183,17 +183,17 @@ return [ 'licenses_available' => 'Licencias disponibles', 'licenses' => 'Licencias', 'list_all' => 'Mostrar todos', - 'loading' => 'Cargando... espere por favor....', + 'loading' => 'Cargando... espere por favor...', 'lock_passwords' => 'Este valor de campo no se guardará en una instalación de demostración.', 'feature_disabled' => 'Esta característica ha sido deshabilitada para la instalación demo.', 'location' => 'Ubicación', 'location_plural' => 'Ubicación|Ubicaciones', 'locations' => 'Ubicaciones', - 'logo_size' => 'Los logotipos cuadrados se ven mejor con Logo + Texto. El tamaño máximo del Logo es 50px de alta x 500px. ', + 'logo_size' => 'Los logotipos cuadrados se ven mejor con Logo + Texto. El tamaño máximo del logo es 50px de alto x 500px de ancho. ', 'logout' => 'Cerrar sesión', 'lookup_by_tag' => 'Buscar placa del activo', 'maintenances' => 'Mantenimientos', - 'manage_api_keys' => 'Administrar claves API', + 'manage_api_keys' => 'Administrar las claves del API', 'manufacturer' => 'Fabricante', 'manufacturers' => 'Fabricantes', 'markdown' => 'Este campo permite formateo estilo Github.', @@ -242,10 +242,10 @@ return [ 'requestable_models' => 'Modelos disponibles para solicitar', 'requestable_items' => 'Artículos que se pueden solicitar', 'requested' => 'Solicitado', - 'requested_date' => 'Fecha solicitada', + 'requested_date' => 'Fecha de solicitud', 'requested_assets' => 'Activos solicitados', 'requested_assets_menu' => 'Elementos solicitados', - 'request_canceled' => 'Solicitud Cancelada', + 'request_canceled' => 'Solicitud cancelada', 'request_item' => 'Solicitar este elemento', 'external_link_tooltip' => 'Enlace externo a', 'save' => 'Guardar', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Seleccionar todo', 'search' => 'Buscar', 'select_category' => 'Seleccionar una categoría', - 'select_datasource' => 'Seleccionar un origen de datos', + 'select_datasource' => 'Seleccione un origen de datos', 'select_department' => 'Seleccionar un departamento', 'select_depreciation' => 'Seleccionar un tipo de depreciación', 'select_location' => 'Seleccionar una ubicación', @@ -268,22 +268,23 @@ return [ 'select_asset' => 'Seleccionar activo', 'settings' => 'Configuraciones', 'show_deleted' => 'Mostrar eliminados', - 'show_current' => 'Mostrar Actual', + 'show_current' => 'Mostrar actual', 'sign_in' => 'Iniciar sesión', 'signature' => 'Firma', 'signed_off_by' => 'Firmado por', 'skin' => 'Apariencia', 'webhook_msg_note' => 'Una notificación se enviará a través de webhook', - 'webhook_test_msg' => '¡Parece que su integración de :app con Snipe-IT está funcionando!', + 'webhook_test_msg' => '¡Hola! ¡Parece que la integración de :app con Snipe-IT funciona!', 'some_features_disabled' => 'MODO DEMO: Algunas funciones están desactivadas para esta instalación.', 'site_name' => 'Nombre del Sitio', 'state' => 'Estado', 'status_labels' => 'Etiquetas de estado', + 'status_label' => 'Status Label', 'status' => 'Estado', 'accept_eula' => 'Acuerdo de aceptación', 'supplier' => 'Proveedor', 'suppliers' => 'Proveedores', - 'sure_to_delete' => '¿Está seguro que desea eliminar?', + 'sure_to_delete' => '¿Está seguro de que desea eliminar', 'sure_to_delete_var' => '¿Está seguro de que desea eliminar :item?', 'delete_what' => 'Eliminar :item', 'submit' => 'Enviar', @@ -332,7 +333,7 @@ return [ 'i_accept' => 'Acepto', 'i_decline' => 'Rechazo', 'accept_decline' => 'Aceptar/Rechazar', - 'sign_tos' => 'Regístrate a continuación para indicar que estás de acuerdo con los términos del servicio:', + 'sign_tos' => 'Firme abajo para indicar que está de acuerdo con los términos de servicio:', 'clear_signature' => 'Borrar firma', 'show_help' => 'Mostrar ayuda', 'hide_help' => 'Ocultar ayuda', @@ -340,15 +341,15 @@ return [ 'hide_deleted' => 'Ocultar eliminados', 'email' => 'Correo electrónico', 'do_not_change' => 'No cambiar', - 'bug_report' => 'Reportar un error', + 'bug_report' => 'Reporte un error', 'user_manual' => 'Manual del usuario', 'setup_step_1' => 'Paso 1', 'setup_step_2' => 'Paso 2', 'setup_step_3' => 'Paso 3', 'setup_step_4' => 'Paso 4', 'setup_config_check' => 'Comprobar configuración', - 'setup_create_database' => 'Crear Tablas de Base de Datos', - 'setup_create_admin' => 'Crear usuario Administrador', + 'setup_create_database' => 'Crear tablas de la base de datos', + 'setup_create_admin' => 'Crear usuario administrador', 'setup_done' => '¡Terminado!', 'bulk_edit_about_to' => 'Está a punto de editar lo siguiente: ', 'checked_out' => 'Asignado', @@ -425,7 +426,7 @@ return [ 'assets_by_status_type' => 'Activos por tipo de estado', 'pie_chart_type' => 'Tipo de gráfico circular en el tablero', 'hello_name' => '¡Hola, :name!', - 'unaccepted_profile_warning' => 'Tiene :count elemento(s) que requiere(n) aceptación. Haga clic aquí para aceptarlos o rechazarlos', + 'unaccepted_profile_warning' => 'Tiene :count elemento(s) que requiere(n) aceptación. Haga clic aquí para aceptarlo(s) o rechazarlo(s)', 'start_date' => 'Fecha de inicio', 'end_date' => 'Fecha de fin', 'alt_uploaded_image_thumbnail' => 'Miniatura cargada', @@ -447,9 +448,9 @@ return [ 'warning_merge_information' => 'Esta acción NO PUEDE deshacerse y sólo debe ser usada cuando necesite fusionar usuarios debido a una mala importación o sincronización. Asegúrese de ejecutar una copia de seguridad primero.', 'no_users_selected' => 'Ningún usuario seleccionado', 'not_enough_users_selected' => 'Al menos :count usuarios deben ser seleccionados', - 'merge_success' => ':count usuarios fusionados con éxito en :into_username!', + 'merge_success' => '!:count usuarios fusionados con éxito en :into_username!', 'merged' => 'fusionado', - 'merged_log_this_user_into' => 'Fusionado este usuario (ID :to_id - :to_username) con ID de usuario :from_id (:from_username) ', + 'merged_log_this_user_into' => 'Se fusionó este usuario (ID :to_id - :to_username) en ID de usuario :from_id (:from_username) ', 'merged_log_this_user_from' => 'Fusionado ID de usuario :from_id (:from_username) con este usuario (ID :to_id - :to_username)', 'clear_and_save' => 'Limpiar y guardar', 'update_existing_values' => '¿Actualizar valores existentes?', @@ -471,7 +472,7 @@ return [ 'setup_successful_migrations' => 'Se han creado las tablas de la base de datos', 'setup_migration_output' => 'Salida de Migración:', 'setup_migration_create_user' => 'Siguiente: Crear usuario', - 'importer_generic_error' => 'La importación de tu archivo está completa, pero recibimos un error. Esto normalmente es causado por la limitación de API de terceros desde un webhook de notificación (como Slack) y no habría interferido con la importación en sí. pero debería confirmarlo.', + 'importer_generic_error' => 'La importación del archivo se ha completado, pero recibimos un error. Esto suele deberse a la limitación de la API de terceros desde un webhook de notificación (como Slack) y no habría interferido con la importación en sí, pero debería confirmarlo.', 'confirm' => 'Confirmar', 'autoassign_licenses' => 'Auto-Asignar licencias', 'autoassign_licenses_help' => 'Permitir a este usuario tener licencias asignadas a través de la asignación masiva en la interfaz de usuario o de las herramientas de la línea de comandos (CLI).', @@ -490,7 +491,7 @@ return [ 'checked_out_to_fullname' => 'Asignado a: Nombre completo', 'checked_out_to_first_name' => 'Asignado a: Nombre', 'checked_out_to_last_name' => 'Asignado a: Apellido', - 'checked_out_to_username' => 'Asignado a: Usuario', + 'checked_out_to_username' => 'Asignado a: Nombre de usuario', 'checked_out_to_email' => 'Asignado a: correo electrónico', 'checked_out_to_tag' => 'Asignado a: Placa de activo', 'manager_first_name' => 'Nombre del supervisor', @@ -551,12 +552,12 @@ return [ 'components' => ':count component|:count componentes', ], 'more_info' => 'Más información', - 'quickscan_bulk_help' => 'Al marcar esta casilla se editará el registro de activos para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría. Tenga en cuenta que si este activo es asignado, no cambiará la ubicación de la persona, activo o ubicación a la que se le asigna.', + 'quickscan_bulk_help' => 'Al marcar esta casilla se actualizará el activo para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría. Tenga en cuenta que si este activo ya está asignado, no cambiará la ubicación de la persona, del activo o de la ubicación a la que esté asignado.', 'whoops' => '¡Uy!', 'something_went_wrong' => 'Algo falló en su solicitud.', 'close' => 'Cerrar', 'expires' => 'Vence', - 'map_fields'=> 'Asociar el campo :item_type', + 'map_fields'=> 'Asociar campos para :item_type', 'remaining_var' => ':count restantes', ]; diff --git a/resources/lang/es-VE/help.php b/resources/lang/es-VE/help.php index e766a4f35..7cbc6acc7 100644 --- a/resources/lang/es-VE/help.php +++ b/resources/lang/es-VE/help.php @@ -15,7 +15,7 @@ return [ 'more_info_title' => 'Más información', - 'audit_help' => 'Al marcar esta casilla se editará el registro de activos para reflejar esta nueva ubicación. Dejarla desmarcada simplemente anotará la ubicación en el registro de auditoría.

Tenga en cuenta que si este activo se asigna, no cambiará la ubicación de la persona, el activo o la ubicación a la que se asigna.', + 'audit_help' => 'Al marcar esta casilla se actualizará el activo para reflejar esta nueva ubicación. Dejarla sin marcar, simplemente almacenará la ubicación en el registro de auditoría.

Tenga en cuenta que si este activo ya está asignado, no cambiará la ubicación de la persona, del activo o de la ubicación a la que esté asignado.', 'assets' => 'Los activos son artículos rastreados por número de serie o placa de activo. Suelen ser artículos de alto valor en los que es importante identificar un elemento específico.', diff --git a/resources/lang/es-VE/localizations.php b/resources/lang/es-VE/localizations.php index 88e7bbe1f..9c46fa7a4 100644 --- a/resources/lang/es-VE/localizations.php +++ b/resources/lang/es-VE/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malayo', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongol', - 'no-NO'=> 'Noruego', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Noruego Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persa', 'pl-PL'=> 'Polaco', 'pt-PT'=> 'Portugués', diff --git a/resources/lang/es-VE/mail.php b/resources/lang/es-VE/mail.php index 04de723d1..d573a1c28 100644 --- a/resources/lang/es-VE/mail.php +++ b/resources/lang/es-VE/mail.php @@ -46,7 +46,7 @@ return [ 'checked_into' => 'Devuelto en', 'click_on_the_link_accessory' => 'Haga clic en el enlace en la parte inferior para confirmar que ha recibido el accesorio.', 'click_on_the_link_asset' => 'Haga clic en el enlace en la parte inferior para confirmar que ha recibido el activo.', - 'click_to_confirm' => 'Por favor, pulsa en el siguiente enlace para verificar tu cuenta de :web:', + 'click_to_confirm' => 'Por favor, haga clic en el siguiente enlace para confirmar su cuenta de :web:', 'current_QTY' => 'Cantidad actual', 'days' => 'Días', 'expecting_checkin_date' => 'Fecha esperada de devolución:', @@ -58,7 +58,7 @@ return [ 'item' => 'Elemento:', 'item_checked_reminder' => 'Este es un recordatorio de que actualmente tiene :count elemento(s) asignado(s) que no ha aceptado o rechazado. Haga clic en el siguiente enlace para confirmar su decisión.', 'license_expiring_alert' => 'Hay :count licencia que expira en los próximos :threshold días. | Hay :count licencias que expiran en los próximos :threshold días.', - 'link_to_update_password' => 'Haz click en el siguiente link para actualizar la contraseña de tu :web:', + 'link_to_update_password' => 'Por favor, haga clic en el siguiente enlace para actualizar contraseña de :web :', 'login' => 'Iniciar Sesión:', 'login_first_admin' => 'Inicie sesión en su nueva instalación de Snipe-IT usando las credenciales:', 'low_inventory_alert' => 'Hay :count elemento que está por debajo del inventario mínimo o que pronto lo estará.|Hay :count elementos que están por debajo del inventario mínimo o que pronto lo estarán.', @@ -72,7 +72,7 @@ return [ 'read_the_terms_and_click' => 'Por favor lea los términos de uso a continuación y haga clic en el enlace en la parte inferior para confirmar que usted leyó los términos de uso y los acepta, y que ha recibido el activo.', 'requested' => 'Solicitado:', 'reset_link' => 'Su enlace de restablecimiento de contraseña', - 'reset_password' => 'Haz click aquí para reestablecer tu contraseña:', + 'reset_password' => 'Haaga clic aquí para restablecer tu contraseña:', 'rights_reserved' => 'Todos los derechos reservados.', 'serial' => 'Número de serie', 'snipe_webhook_test' => 'Prueba de integración de Snipe-IT', @@ -82,7 +82,7 @@ return [ 'test_email' => 'Email de prueba de Snipe-IT', 'test_mail_text' => 'Esto es una prueba desde el sistema de gestión de activos Snipe-IT. Si recibió este mensaje, el correo está funcionando :)', 'the_following_item' => 'El siguiente artículo ha sido devuelto: ', - 'to_reset' => 'Para restaurar tu contraseña de :web, rellena este formulario:', + 'to_reset' => 'Para restaurar tu contraseña de :web, diligencie este formulario:', 'type' => 'Tipo', 'upcoming-audits' => 'Hay :count para ser auditado antes de :threshold días.|Hay :count activos para ser auditados antes de :threshold días.', 'user' => 'Usuario', diff --git a/resources/lang/es-VE/reminders.php b/resources/lang/es-VE/reminders.php index c4fe99de8..98f281956 100644 --- a/resources/lang/es-VE/reminders.php +++ b/resources/lang/es-VE/reminders.php @@ -14,7 +14,7 @@ return array( */ "password" => "Las contraseñas deben ser de seis caracteres y coincidir con la confirmación.", - "user" => "El nombre de usuario o la dirección de correo son incorrectos", + "user" => "El nombre de usuario o la dirección de correo electrónico son incorrectos", "token" => 'Esta sesión de restablecimiento de contraseña es inválida o ha caducado, o no coincide con el nombre de usuario proporcionado.', 'sent' => 'Si existe un usuario con una dirección de correo electrónico válida en nuestro sistema, se ha enviado un correo electrónico de recuperación de contraseña.', diff --git a/resources/lang/es-VE/validation.php b/resources/lang/es-VE/validation.php index a9a2a95da..225b49a3a 100644 --- a/resources/lang/es-VE/validation.php +++ b/resources/lang/es-VE/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'El campo :attribute debe contener al menos un símbolo.', 'uncompromised' => 'El valor de :attribute ha aparecido en una fuga de datos. Por favor, seleccione un valor diferente para :attribute.', ], + 'percent' => 'El mínimo de amortización debe estar entre 0 y 100 cuando el tipo de amortización es porcentual.', + 'present' => 'El campo :attribute debe tener un valor.', 'present_if' => 'El campo :attribute debe estar presente cuando :other sea :value.', 'present_unless' => 'El campo :attribute debe estar presente a menos que :other sea :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Su contraseña actual es incorrecta', 'dumbpwd' => 'Esa contraseña es muy común.', 'statuslabel_type' => 'Debe seleccionar un tipo de etiqueta de estado válido', + 'custom_field_not_found' => 'Este campo parece que no existe, por favor, compruebe los nombres de sus campos personalizados.', + 'custom_field_not_found_on_model' => 'Este campo parece existir, pero no está disponible en este conjunto de campos para el modelo de activo.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/et-EE/account/general.php b/resources/lang/et-EE/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/et-EE/account/general.php +++ b/resources/lang/et-EE/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/et-EE/admin/locations/message.php b/resources/lang/et-EE/admin/locations/message.php index 57349a4eb..f81846037 100644 --- a/resources/lang/et-EE/admin/locations/message.php +++ b/resources/lang/et-EE/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Asukohta ei eksisteeri.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Selle asukohaga on seotud vähemalt üks vahend ja seda ei saa kustutada. Palun uuenda oma vahendeid, et need ei kasutaks seda asukohta ning seejärel proovi uuesti. ', 'assoc_child_loc' => 'Sel asukohal on hetkel all-asukohti ja seda ei saa kustutada. Palun uuenda oma asukohti nii, et need ei kasutaks seda asukohta ning seejärel proovi uuesti. ', 'assigned_assets' => 'Määratud Varad', diff --git a/resources/lang/et-EE/admin/settings/general.php b/resources/lang/et-EE/admin/settings/general.php index e575f6a91..9c10bda45 100644 --- a/resources/lang/et-EE/admin/settings/general.php +++ b/resources/lang/et-EE/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT versioon', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/et-EE/admin/settings/message.php b/resources/lang/et-EE/admin/settings/message.php index 30b3f6b19..8bd86575c 100644 --- a/resources/lang/et-EE/admin/settings/message.php +++ b/resources/lang/et-EE/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Puhastamise ajal on tekkinud viga.', 'validation_failed' => 'Teie puhta kinnitus on vale. Palun sisestage kinnituskastes sõna "DELETE".', diff --git a/resources/lang/et-EE/button.php b/resources/lang/et-EE/button.php index 1e30b074e..71b8334f2 100644 --- a/resources/lang/et-EE/button.php +++ b/resources/lang/et-EE/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/et-EE/general.php b/resources/lang/et-EE/general.php index 57404e3be..8e57e3fdc 100644 --- a/resources/lang/et-EE/general.php +++ b/resources/lang/et-EE/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Kulumaterjalid', 'country' => 'Riik', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Loo uus', 'created' => 'Üksus on loodud', 'created_asset' => 'loodud vara', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'See rakendus töötab tootmisrežiimis, kus silumisvõimalused on lubatud. See võib avaldada tundlikke andmeid, kui teie rakendus on välismaailmale juurdepääsetav. Keela debugrežiim, määrates APP_DEBUG väärtuse oma .env failis false.', 'delete' => 'Kustuta', 'delete_confirm' => 'Kas olete kindel, et soovite kustutada :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Kustutatud', 'delete_seats' => 'Kustutatud istmed', 'deletion_failed' => 'Kustutamine ebaõnnestus', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Perenimi Eesnimi algustäht (smith_j@example.com)', 'firstinitial.lastname' => 'Eesnime algustäht Perekonnanimi (j.smith@example.com)', 'firstnamelastinitial' => 'Eesnimi Perekonnanime algustäht (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Eesnimi', 'first_name_format' => 'Eesnimi (jane@example.com)', 'files' => 'Failid', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Kustuta pilt', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Laadi pilt üles', - 'filetypes_accepted_help' => 'Aktsepteeritud failitüüp on :types. Maksimaalne lubatud üleslaaditav suurus on :size.|Aktsepteeritud failitüübid on :types. Maksimaalne lubatud üleslaadimise suurus on :size.', - 'filetypes_size_help' => 'Maksimaalne lubatud üleslaadimise suurus on :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Impordi', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Vabad litsentsid', 'licenses' => 'Litsentsid', 'list_all' => 'Kuva kõik', - 'loading' => 'Laadimine, palun oota...', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'Selle välja väärtust demoinstallatsioonis ei salvestata.', 'feature_disabled' => 'See funktsioon on demo installimisel keelatud.', 'location' => 'Asukoht', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logi välja', 'lookup_by_tag' => 'Varatüübi järgi otsimine', 'maintenances' => 'Hooldus', - 'manage_api_keys' => 'Halda API võtmeid', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Tootja', 'manufacturers' => 'Tootjad', 'markdown' => 'See väli lubab Githubi maitsestatud markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Vali kõik', 'search' => 'Otsi', 'select_category' => 'Vali kategooria', - 'select_datasource' => 'Vali andmeallikas', + 'select_datasource' => 'Select a data source', 'select_department' => 'Valige osakond', 'select_depreciation' => 'Vali amortisatsioonitüüp', 'select_location' => 'Vali asukoht', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Allkiri', 'skin' => 'Väljanägemine', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMOVERSIOON: Selles installatsioonis mõned funktsioonid ei tööta.', 'site_name' => 'Saidi nimi', 'state' => 'Maakond', 'status_labels' => 'Oleku sildid', + 'status_label' => 'Status Label', 'status' => 'Staatus', 'accept_eula' => 'Lõppkasutaja litsentsilepinguga nõustumine', 'supplier' => 'Tarnija', @@ -339,16 +340,16 @@ return [ 'view_all' => 'kuva kõik', 'hide_deleted' => 'Peida kustutatud', 'email' => 'E-mail', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Kasutusjuhend', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Loo andmebaasi tabelid', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Lõpetatud!', 'bulk_edit_about_to' => 'Oled muutmas järgnevat: ', 'checked_out' => 'Väljastatud', diff --git a/resources/lang/et-EE/localizations.php b/resources/lang/et-EE/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/et-EE/localizations.php +++ b/resources/lang/et-EE/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/et-EE/validation.php b/resources/lang/et-EE/validation.php index fbc2d0f18..2ce7a7c15 100644 --- a/resources/lang/et-EE/validation.php +++ b/resources/lang/et-EE/validation.php @@ -31,7 +31,7 @@ return [ 'numeric' => 'The :attribute field must be between :min and :max.', 'string' => 'The :attribute field must be between :min and :max characters.', ], - 'boolean' => 'Atribuudiväljadele peab olema tõene või vale.', + 'boolean' => 'Atribuudiväljadele :attribute peab olema tõene või vale.', 'can' => 'The :attribute field contains an unauthorized value.', 'confirmed' => 'The :attribute field confirmation does not match.', 'contains' => 'The :attribute field is missing a required value.', @@ -51,7 +51,7 @@ return [ 'doesnt_start_with' => 'The :attribute field must not start with one of the following: :values.', 'email' => 'The :attribute field must be a valid email address.', 'ends_with' => 'The :attribute field must end with one of the following: :values.', - 'enum' => 'Valitud atribuut on kehtetu.', + 'enum' => 'Valitud :attrubute on kehtetu.', 'exists' => 'Valitud atribuut on kehtetu.', 'extensions' => 'The :attribute field must have one of the following extensions: :values.', 'file' => 'The :attribute field must be a file.', @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Atribuudiväli peab olema kohal.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Teie praegune parool on vale', 'dumbpwd' => 'See parool on liiga levinud.', 'statuslabel_type' => 'Peate valima kehtiva olekutüübi tüübi', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/fa-IR/account/general.php b/resources/lang/fa-IR/account/general.php index a57e49160..4a0ae07ce 100644 --- a/resources/lang/fa-IR/account/general.php +++ b/resources/lang/fa-IR/account/general.php @@ -14,4 +14,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/fa-IR/admin/locations/message.php b/resources/lang/fa-IR/admin/locations/message.php index f24c8ade4..2e46a23d8 100644 --- a/resources/lang/fa-IR/admin/locations/message.php +++ b/resources/lang/fa-IR/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'مکان وجود ندارد.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'این مکان در حال حاضر همراه با حداقل یک دارایی است و قادر به حذف نمی شود. لطفا بروز دارایی های خود را به دیگر این مکان مرجع و دوباره امتحان کنید. ', 'assoc_child_loc' => 'این مکان در حال حاضر پدر و مادر کودک حداقل یک مکان است و قادر به حذف نمی شود. لطفا به روز رسانی مکان خود را به دیگر این مکان مرجع و دوباره امتحان کنید. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/fa-IR/admin/settings/general.php b/resources/lang/fa-IR/admin/settings/general.php index e5135e391..505abd072 100644 --- a/resources/lang/fa-IR/admin/settings/general.php +++ b/resources/lang/fa-IR/admin/settings/general.php @@ -310,6 +310,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'نسخه Snipe_IT', 'support_footer' => 'پشتیبانی از پیوندهای پاورقی ', diff --git a/resources/lang/fa-IR/admin/settings/message.php b/resources/lang/fa-IR/admin/settings/message.php index 516ad0d4f..629adde77 100644 --- a/resources/lang/fa-IR/admin/settings/message.php +++ b/resources/lang/fa-IR/admin/settings/message.php @@ -16,6 +16,9 @@ return [ 'restore_confirm' => 'آیا مطمئن هستید که می خواهید پایگاه داده خود را از :filename بازیابی کنید؟ ' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'در حین پاکسازی خطایی رخ داد. ', 'validation_failed' => 'تایید پاکسازی ناصحیح است. لطفا کلمه ی "حذف" را در جعبه ی تاییدیه تایپ کنید.', diff --git a/resources/lang/fa-IR/button.php b/resources/lang/fa-IR/button.php index 9f04e27eb..c88af6522 100644 --- a/resources/lang/fa-IR/button.php +++ b/resources/lang/fa-IR/button.php @@ -27,7 +27,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/fa-IR/general.php b/resources/lang/fa-IR/general.php index 534f957d5..b7aff76b7 100644 --- a/resources/lang/fa-IR/general.php +++ b/resources/lang/fa-IR/general.php @@ -80,7 +80,7 @@ return [ 'consumables' => 'اقلام قابل مصرف', 'country' => 'كشور', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'ایجاد مورد جدید', 'created' => 'مورد ایجاد شده', 'created_asset' => 'دارایی ایجاد شده', @@ -104,7 +104,7 @@ return [ 'debug_warning_text' => 'این برنامه در حالت تولید با استفاده از اشکال زدایی فعال است. این می تواند اطلاعات حساس را در صورت درخواست شما برای جهان خارج در دسترس قرار دهد. با تنظیم مقداری APP_DEBUG در .env فایل خود را به false غیرفعال کنید.', 'delete' => 'حذف', 'delete_confirm' => 'آیا اطمینان دارید که می خواهید این را حذف نمایید؟', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'حذف شد', 'delete_seats' => 'صندلی ها حذف شده ', @@ -145,7 +145,7 @@ return [ 'lastname_firstinitial' => 'فامیل نام میانه (smith_j@example.com)', 'firstinitial.lastname' => 'نام میانه فامیل (j.smith@example.com)', 'firstnamelastinitial' => 'نام فامیل میانه (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'نام', 'first_name_format' => 'نام (jane@example.com)', 'files' => 'فایل ها', @@ -168,11 +168,9 @@ return [ 'include_deleted' => 'دارایی های بایگانی شده را حذف کنید ', 'image_upload' => 'آپلود تصویر', - 'filetypes_accepted_help' => 'نوع فایل پذیرفته شده :types است. حداکثر اندازه مجاز آپلود :size است.|نوع فایل های پذیرفته شده عبارتند از :types. حداکثر اندازه مجاز بارگذاری: اندازه است. -', - 'filetypes_size_help' => 'حداکثر اندازه مجاز بارگذاری: اندازه است. -', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'واردات', 'import_this_file' => 'Map fields and process this file', @@ -199,7 +197,7 @@ return [ 'licenses' => 'گواهی نامه ها', 'list_all' => 'فهرست همه ', - 'loading' => 'در حال بارگذاری لطفا صبر کنید..', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'این مقدار فیلد در یک نصب آزمایشی ذخیره نخواهد شد. ', 'feature_disabled' => 'این ویژگی برای نصب نسخه ی نمایشی غیر فعال شده است.', @@ -211,7 +209,7 @@ return [ 'lookup_by_tag' => 'نگاهی به Asset Tag', 'maintenances' => 'تعمیر و نگهداری ', - 'manage_api_keys' => 'کلیدهای API را مدیریت کنید', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'سازنده', 'manufacturers' => 'تولیدکننده‌ها', 'markdown' => 'این فیلد اجازه می دهد تا گیت هاب به سلیقه خود نشانه گذاری کند . markdown.', @@ -279,7 +277,7 @@ return [ 'select_all' => 'انتخاب همه', 'search' => 'جستوجو', 'select_category' => 'یک دسته را انتخاب کنید', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'یک گروه را انتخاب کنید', 'select_depreciation' => 'انتخاب یک نوع استهلاک', 'select_location' => 'انتخاب یک مکان', @@ -301,11 +299,12 @@ return [ ', 'skin' => 'پوسته', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'MODE DEMO: برخی از ویژگی ها برای این نصب غیر فعال هستند.', 'site_name' => 'نام سایت', 'state' => 'وضعیت', 'status_labels' => 'برچسب های وضعیت', + 'status_label' => 'Status Label', 'status' => 'وضعیت', 'accept_eula' => 'توافق نامه پذیرش ', @@ -376,9 +375,8 @@ return [ 'hide_deleted' => 'پنهان کردن حذف شده ', 'email' => 'ایمیل', - 'do_not_change' => 'تغییر ندهید -', - 'bug_report' => 'گزارش یک اشکال', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'دفترچه راهنمای کاربر ', 'setup_step_1' => 'مرحله 1', @@ -387,9 +385,8 @@ return [ 'setup_step_4' => 'مرحله 4', 'setup_config_check' => 'بررسی پیکربندی ', - 'setup_create_database' => 'ایجاد جدول های پایگاه داده', - 'setup_create_admin' => 'ایجاد کاربر ادمین -', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'تمام شده! ', 'bulk_edit_about_to' => 'شما در حال ویرایش موارد زیر هستید: diff --git a/resources/lang/fa-IR/localizations.php b/resources/lang/fa-IR/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/fa-IR/localizations.php +++ b/resources/lang/fa-IR/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/fa-IR/validation.php b/resources/lang/fa-IR/validation.php index a96aa8a82..c0fcdf51f 100644 --- a/resources/lang/fa-IR/validation.php +++ b/resources/lang/fa-IR/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'فیلد attribute باید باشد.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'رمز عبور فعلی شما اشتباه است', 'dumbpwd' => 'این رمز عبور خیلی رایج است', 'statuslabel_type' => 'شما باید نوع برچسب معتبر را انتخاب کنید', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/fi-FI/account/general.php b/resources/lang/fi-FI/account/general.php index dcc522482..e7f7f4cbc 100644 --- a/resources/lang/fi-FI/account/general.php +++ b/resources/lang/fi-FI/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/fi-FI/admin/locations/message.php b/resources/lang/fi-FI/admin/locations/message.php index 0f1c4fa5e..94b503b61 100644 --- a/resources/lang/fi-FI/admin/locations/message.php +++ b/resources/lang/fi-FI/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Sijaintia ei löydy.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Sijaintiin on tällä hetkellä liitettynä vähintään yksi laite, eikä sitä voi poistaa. Poista viittaus sijantiin ja yritä uudelleen. ', 'assoc_child_loc' => 'Tämä sijainti on ylempi toiselle sijainnille eikä sitä voi poistaa. Päivitä sijainnit, jotta et enää viitata tähän sijaintiin ja yritä uudelleen. ', 'assigned_assets' => 'Luovutetut laitteet', diff --git a/resources/lang/fi-FI/admin/settings/general.php b/resources/lang/fi-FI/admin/settings/general.php index 8e3efa7c4..b73e19c1c 100644 --- a/resources/lang/fi-FI/admin/settings/general.php +++ b/resources/lang/fi-FI/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integraatio on valinnainen, mutta päätepiste ja kanava vaaditaan, jos haluat käyttää sitä. Määrittääksesi :app integraation, sinun täytyy ensin luoda saapuva webhook :app tilillesi. Klikkaa Testaa :app Integration -painiketta varmistaaksesi, että asetuksesi ovat oikein ennen tallentamista. ', 'webhook_integration_help_button' => 'Kun olet tallentanut :app tietosi, ilmestyy testipainike.', 'webhook_test_help' => 'Testaa, onko sovelluksen :app integraatio määritetty oikein. SINUN TULEE TALLENTAA PÄIVÄNÄ :app ASETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT versio', 'support_footer' => 'Tuki-alatunnisteen linkit ', 'support_footer_help' => 'Määrittele, kuka voi nähdä linkit Snipe-IT tukipalvelun tietoihin ja käyttöohjeeseen', diff --git a/resources/lang/fi-FI/admin/settings/message.php b/resources/lang/fi-FI/admin/settings/message.php index fc1b14fbf..14be57fb1 100644 --- a/resources/lang/fi-FI/admin/settings/message.php +++ b/resources/lang/fi-FI/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Kyllä, palauttaa sen. Ymmärrän, että tämä korvaa kaikki olemassa olevat tiedot tietokannassa. Tämä myös kirjautuu ulos kaikista nykyisistä käyttäjistä (mukaan lukien sinä).', 'restore_confirm' => 'Oletko varma, että haluat palauttaa tietokannan :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Virhe on ilmennyt puhdistuksen aikana.', 'validation_failed' => 'Puhdistusvahvistus on virheellinen. Kirjoita vahvistusruutuun sana "DELETE".', diff --git a/resources/lang/fi-FI/button.php b/resources/lang/fi-FI/button.php index 016372c75..84c6037d4 100644 --- a/resources/lang/fi-FI/button.php +++ b/resources/lang/fi-FI/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/fi-FI/general.php b/resources/lang/fi-FI/general.php index a4430fc91..ab4f12cfa 100644 --- a/resources/lang/fi-FI/general.php +++ b/resources/lang/fi-FI/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Kulutustarvikkeet', 'country' => 'Maa', 'could_not_restore' => 'Virhe palautettaessa :item_type: :error', - 'not_deleted' => 'Tyyppiä :item_type ei poisteta, joten sitä ei voi palauttaa', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Luo uusi', 'created' => 'Nimike luotiin', 'created_asset' => 'laite luotu', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Sovellus on käynnissä tuotantotilassa, jossa virheenkorjaus on käytössä. Tämä voi paljastaa arkaluonteisia tietoja, jos sovellus avoinna internettiin. Poista virheenkorjaus käytöstä asettamalla APP_DEBUG -arvoksi false .env -tiedostoosi.', 'delete' => 'Poista', 'delete_confirm' => 'Oletko varma että haluat poistaa :item?', - 'delete_confirm_no_undo' => 'Oletko varma, että haluat poistaa :item? Toimintoa ei voi perua.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Poistettu', 'delete_seats' => 'Poistettu käytöstä', 'deletion_failed' => 'Poisto epäonnistui', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Sukunimi _ etunimen ensimmäinen kirjain (virtanen_p@example.com)', 'firstinitial.lastname' => 'Etunimen ensimmäinen kirjain . sukunimi (p.virtanen@example.com)', 'firstnamelastinitial' => 'Etunimi Sukunimen ensimmäinen kirjain (paiviv@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Etunimi', 'first_name_format' => 'Etunimi (jane@example.com)', 'files' => 'Tiedostot', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Poista kuva', 'include_deleted' => 'Sisällytä poistetut laitteet', 'image_upload' => 'Lähetä kuva', - 'filetypes_accepted_help' => 'Hyväksytty tiedostotyyppi on :types. Suurin sallittu tiedostokoko on :size. Hyväksytyt tiedostotyypit ovat :types. Suurin sallittu tiedostokoko on :size.', - 'filetypes_size_help' => 'Suurin sallittu tiedostokoko on :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Kuvatiedostoa ei voitu lukea. Hyväksytyt tiedostotyypit ovat jpg, webp, png, gif ja svg. Tämän tiedoston mimetype on: :mimetype.', 'import' => 'Tuo tiedot', 'import_this_file' => 'Kartta kentät ja käsitellä tätä tiedostoa', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Lisenssit saatavilla', 'licenses' => 'Lisenssit', 'list_all' => 'Listaa kaikki', - 'loading' => 'Ladataan... ole hyvä ja odota....', + 'loading' => 'Ladataan... ole hyvä ja odota...', 'lock_passwords' => 'Tätä kentän arvoa ei tallenneta demo-asennuksessa.', 'feature_disabled' => 'Tämä ominaisuus on poistettu käytöstä demo-asennusta varten.', 'location' => 'Sijainti', @@ -193,7 +193,7 @@ return [ 'logout' => 'Kirjaudu Ulos', 'lookup_by_tag' => 'Hae laitetunnisteella', 'maintenances' => 'Huollot', - 'manage_api_keys' => 'Hallitse API-avaimia', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Valmistaja', 'manufacturers' => 'Valmistajat', 'markdown' => 'Tässä kentässä voi käyttää Github-merkintöjä.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Valitse kaikki', 'search' => 'Etsi', 'select_category' => 'Valitse kategoria', - 'select_datasource' => 'Valitse tietotausta', + 'select_datasource' => 'Select a data source', 'select_department' => 'Valitse osasto', 'select_depreciation' => 'Valitse poistoluokka', 'select_location' => 'Valitse sijainti', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Luovuttanut', 'skin' => 'Ulkoasu', 'webhook_msg_note' => 'Ilmoitus lähetetään webhookin kautta', - 'webhook_test_msg' => 'Jestas! Näyttää siltä, että :app integraatio Snipe-ITn kanssa toimii!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO-TILA: Jotkin ominaisuudet eivät ole käytössä tässä asennuksessa.', 'site_name' => 'Sivuston nimi', 'state' => 'Maakunta', 'status_labels' => 'Tilamerkinnät', + 'status_label' => 'Status Label', 'status' => 'Tila', 'accept_eula' => 'Käyttöoikeussopimus', 'supplier' => 'Toimittaja', @@ -339,16 +340,16 @@ return [ 'view_all' => 'näytä kaikki', 'hide_deleted' => 'Piilota Poistetut', 'email' => 'Sähköposti', - 'do_not_change' => 'Älä Muuta', - 'bug_report' => 'Ilmoita bugista', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Käyttöohje', 'setup_step_1' => 'Vaihe 1', 'setup_step_2' => 'Vaihe 2', 'setup_step_3' => 'Vaihe 3', 'setup_step_4' => 'Vaihe 4', 'setup_config_check' => 'Konfiguraation Tarkistus', - 'setup_create_database' => 'Luo Tietokantatauluja', - 'setup_create_admin' => 'Luo Ylläpitäjä', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Valmis!', 'bulk_edit_about_to' => 'Olet muokkaamassa seuraavaa: ', 'checked_out' => 'Luovutettu', diff --git a/resources/lang/fi-FI/localizations.php b/resources/lang/fi-FI/localizations.php index 0e79f02ef..16b0fda35 100644 --- a/resources/lang/fi-FI/localizations.php +++ b/resources/lang/fi-FI/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malaiji', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolia', - 'no-NO'=> 'Norja', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persia', 'pl-PL'=> 'Puola', 'pt-PT'=> 'Portugali', diff --git a/resources/lang/fi-FI/validation.php b/resources/lang/fi-FI/validation.php index f349234a6..be67a23f0 100644 --- a/resources/lang/fi-FI/validation.php +++ b/resources/lang/fi-FI/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => ':attribute kentän on oltava määritettynä.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Nykyinen salasanasi on virheellinen', 'dumbpwd' => 'Salasana on liian yleinen.', 'statuslabel_type' => 'Sinun on valittava kelvollinen tilamerkintätyyppi', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/fil-PH/account/general.php b/resources/lang/fil-PH/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/fil-PH/account/general.php +++ b/resources/lang/fil-PH/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/fil-PH/admin/locations/message.php b/resources/lang/fil-PH/admin/locations/message.php index 0613d4089..9d5c7a6d7 100644 --- a/resources/lang/fil-PH/admin/locations/message.php +++ b/resources/lang/fil-PH/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Ang lokasyon ay hindi umiiral.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Ang lokasyong ito ay kasalukuyang naiugnay sa hindi bumaba sa isang asset at hindi maaaring mai-delete. Mangyaring i-update ang iyong mga asset upang hindi na magreperens sa lokasyong ito at paki-subok muli. ', 'assoc_child_loc' => 'Ang lokasyong ito ay kasalukuyang pinagmumulan sa hindi bumaba sa lokasyon isang bata at hindi maaaring mai-delete. Mangyaring i-update ang iyong mga lokasyon upang hindi na magreperens sa lokasyong ito at paki-subok muli. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/fil-PH/admin/settings/general.php b/resources/lang/fil-PH/admin/settings/general.php index 649a9803c..33b04ef0b 100644 --- a/resources/lang/fil-PH/admin/settings/general.php +++ b/resources/lang/fil-PH/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Ang bersyon ng Snipe-IT', 'support_footer' => 'Sumusuporta ng mga Link ng Footer ', 'support_footer_help' => 'I-specify kung sino ang nakakakita ng mga link sa impormasyon ng Snipe-IT Support at ang mga User Manual', diff --git a/resources/lang/fil-PH/admin/settings/message.php b/resources/lang/fil-PH/admin/settings/message.php index 8e7fb2afa..54bfe07a0 100644 --- a/resources/lang/fil-PH/admin/settings/message.php +++ b/resources/lang/fil-PH/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Ang error ay nagyari habang nag-purge. ', 'validation_failed' => 'Ang iyong kompermasyon sa purge ay hindi tama. Mangyaring i-type ang salitang "DELETE" sa confirmation box.', diff --git a/resources/lang/fil-PH/button.php b/resources/lang/fil-PH/button.php index d780f6b15..c8a7c814e 100644 --- a/resources/lang/fil-PH/button.php +++ b/resources/lang/fil-PH/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/fil-PH/general.php b/resources/lang/fil-PH/general.php index bdc2426c1..ddd9a192a 100644 --- a/resources/lang/fil-PH/general.php +++ b/resources/lang/fil-PH/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Mga pwedeng ikonsumo', 'country' => 'Ang Bansa', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Magsagawa ng Bago', 'created' => 'Ang Naisagawang Aytem', 'created_asset' => 'ang naisagawang asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ang applilasyon na ito ay tumatakbo sa produksyon na may pagpapagana sa pag-debug. ito ay ma-expose sa sensitibong datus kapag ang iyong aplikasyon ay madaling ma-akses sa labas ng mundo. Huwag paganahin ang debug mode sa pamamagitan pag-set sa APP_DEBUG balyu ng iyong .env file sa false.', 'delete' => 'I-delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Nai-delete na', 'delete_seats' => 'Ang Nai-delete na mga Seats', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Ang Unang Pangalan', 'first_name_format' => 'Ang Unang Pangalan (jane@example.com)', 'files' => 'Ang mga file', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'I-delete ang Imahe', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'I-upload ang Imahe', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'I-import', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Ang mga lisensya', 'list_all' => 'Ilista ang Lahat', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'Ang katangiang ito ay hindi na pinagana sa demo ng pag-install.', 'location' => 'Ang Lokasyon', @@ -193,7 +193,7 @@ return [ 'logout' => 'Mag-logout', 'lookup_by_tag' => 'Maghanap sa pamamagitan ng Asset Tag', 'maintenances' => 'Ang mga Pagpapanatili', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Ang Tagapagsagawa', 'manufacturers' => 'Ang mga Tagapagsagawa', 'markdown' => 'Ang field na ito ay nagpapahintulot sa iyo na Github flavored na markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Maghanap', 'select_category' => 'Pumili ng Kategorya', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Pumili ng Departamento', 'select_depreciation' => 'Pumili ng Tipo ng Depresasyon', 'select_location' => 'Pumili ng Lokasyon', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Ang iilang mga katangian ay na-disable para sa pag-install na ito.', 'site_name' => 'Ang Pangalan ng Site', 'state' => 'Ang Estado', 'status_labels' => 'Ang mga Label ng Katayuan', + 'status_label' => 'Status Label', 'status' => 'Ang Katayuan', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Ang Tagapagsuplay', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Ang Email', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Nai-check Out', diff --git a/resources/lang/fil-PH/localizations.php b/resources/lang/fil-PH/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/fil-PH/localizations.php +++ b/resources/lang/fil-PH/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/fil-PH/validation.php b/resources/lang/fil-PH/validation.php index c437b67ad..658392760 100644 --- a/resources/lang/fil-PH/validation.php +++ b/resources/lang/fil-PH/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Ang :field ng katangian ay dapat na naroroon.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Ang iyong kasalukuyang password ay hindi wasto', 'dumbpwd' => 'Ang password ay sobrang pangkaraniwan.', 'statuslabel_type' => 'Kinakailangang pumili ng balidong uri ng label ng estado', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/fr-FR/account/general.php b/resources/lang/fr-FR/account/general.php index d69e94b6b..a76650150 100644 --- a/resources/lang/fr-FR/account/general.php +++ b/resources/lang/fr-FR/account/general.php @@ -2,14 +2,16 @@ return array( 'personal_api_keys' => 'Clés personnelles d\'API', - 'personal_access_token' => 'Personal Access Token', - 'personal_api_keys_success' => 'Personal API Key :key created sucessfully', - 'here_is_api_key' => 'Here is your new personal access token. This is the only time it will be shown so do not lose it! You may now use this token to make API requests.', + 'personal_access_token' => 'Jeton d\'accès personnel', + 'personal_api_keys_success' => 'Clé d\'API personnelle :key créée avec succès', + 'here_is_api_key' => 'Voici votre nouveau jeton d\'accès personnel. C\'est la seule fois qu\'il sera affiché, ne le perdez donc pas ! Vous pouvez maintenant utiliser ce jeton pour faire des requêtes d\'API.', 'api_key_warning' => 'Lorsque vous générez un jeton d\'API, veillez à le copier immédiatement, car vous ne pourrez plus le voir à nouveau.', 'api_base_url' => 'L\'URL de base de l\'API est situé à:', 'api_base_url_endpoint' => '/<endpoint>', 'api_token_expiration_time' => 'Les jetons d\'API sont configurés pour expirer après:', 'api_reference' => 'Veuillez consulter la documentation de référence des API pour trouver des endpoints spécifiques et de la documentation d\'API supplémentaires.', 'profile_updated' => 'Compte mis à jour avec succès', - 'no_tokens' => 'You have not created any personal access tokens.', + 'no_tokens' => 'Vous n\'avez pas encore créé de jeton d\'accès personnel.', + 'enable_sounds' => 'Activer les effets sonores', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/fr-FR/admin/accessories/message.php b/resources/lang/fr-FR/admin/accessories/message.php index be5f1a294..b5cc40bc2 100644 --- a/resources/lang/fr-FR/admin/accessories/message.php +++ b/resources/lang/fr-FR/admin/accessories/message.php @@ -28,7 +28,7 @@ return array( 'unavailable' => 'L\'accessoire n\'est pas disponible à l\'affectation. Vérifiez la quantité disponible', 'user_does_not_exist' => 'Cet utilisateur est inexistant. Veuillez réessayer.', 'checkout_qty' => array( - 'lte' => 'There is currently only one available accessory of this type, and you are trying to check out :checkout_qty. Please adjust the checkout quantity or the total stock of this accessory and try again.|There are :number_currently_remaining total available accessories, and you are trying to check out :checkout_qty. Please adjust the checkout quantity or the total stock of this accessory and try again.', + 'lte' => 'Il n\'y a actuellement qu\'un seul accessoire de ce type disponible, et vous essayez d\'en attribuer :checkout_qty. Veuillez ajuster la quantité attribuée ou le stock total de cet accessoire et réessayer.|Il n\'y a actuellement que :number_currently_remaining accessoire(s) disponible(s) de ce type, et vous essayez d\'en attribuer :checkout_qty. Veuillez ajuster la quantité attribuée ou le stock total de cet accessoire et réessayer.', ), ), diff --git a/resources/lang/fr-FR/admin/consumables/general.php b/resources/lang/fr-FR/admin/consumables/general.php index e96d8dbf1..bb909f9d6 100644 --- a/resources/lang/fr-FR/admin/consumables/general.php +++ b/resources/lang/fr-FR/admin/consumables/general.php @@ -8,5 +8,5 @@ return array( 'remaining' => 'Restant', 'total' => 'Total', 'update' => 'Mettre à jour le consommable', - 'inventory_warning' => 'The inventory of this consumable is below the minimum amount of :min_count', + 'inventory_warning' => 'La quantité de ce consommable est inférieure à la quantité minimum de :min_count', ); diff --git a/resources/lang/fr-FR/admin/consumables/message.php b/resources/lang/fr-FR/admin/consumables/message.php index a13504d47..7e39d72e7 100644 --- a/resources/lang/fr-FR/admin/consumables/message.php +++ b/resources/lang/fr-FR/admin/consumables/message.php @@ -2,7 +2,7 @@ return array( - 'invalid_category_type' => 'The category must be a consumable category.', + 'invalid_category_type' => 'La catégorie doit être une catégorie de consommables.', 'does_not_exist' => 'Ce consommable n\'existe pas.', 'create' => array( diff --git a/resources/lang/fr-FR/admin/custom_fields/message.php b/resources/lang/fr-FR/admin/custom_fields/message.php index ea724a487..05752bad4 100644 --- a/resources/lang/fr-FR/admin/custom_fields/message.php +++ b/resources/lang/fr-FR/admin/custom_fields/message.php @@ -5,7 +5,7 @@ return array( 'field' => array( 'invalid' => 'Ce champ n\'existe pas.', 'already_added' => 'Le champ a déjà été ajouté', - 'none_selected' => 'No field selected', + 'none_selected' => 'Aucun champ sélectionné', 'create' => array( 'error' => 'Le champ n\'a pas été créé, veuillez réessayer.', diff --git a/resources/lang/fr-FR/admin/hardware/form.php b/resources/lang/fr-FR/admin/hardware/form.php index 60ace4346..4cfabe55d 100644 --- a/resources/lang/fr-FR/admin/hardware/form.php +++ b/resources/lang/fr-FR/admin/hardware/form.php @@ -41,7 +41,7 @@ return [ 'requestable' => 'Les utilisateurs·trices peuvent demander cet actif', 'redirect_to_all' => 'Retourner à tous les :type', 'redirect_to_type' => 'Aller à :type', - 'redirect_to_checked_out_to' => 'Go to Checked Out to', + 'redirect_to_checked_out_to' => 'Aller aux attributions', 'select_statustype' => 'Choisissez le type de statut', 'serial' => 'Série ', 'status' => 'Statut', diff --git a/resources/lang/fr-FR/admin/hardware/message.php b/resources/lang/fr-FR/admin/hardware/message.php index 5df8d2627..c71f75f6a 100644 --- a/resources/lang/fr-FR/admin/hardware/message.php +++ b/resources/lang/fr-FR/admin/hardware/message.php @@ -2,7 +2,7 @@ return [ - 'undeployable' => 'Warning: This asset has been marked as currently undeployable. If this status has changed, please update the asset status.', + 'undeployable' => 'Attention : Cet actif est marqué comme indéployable. Si ce statut a changé, merci de mettre à jour le statut d\'actif.', 'does_not_exist' => 'Ce bien n\'existe pas.', 'does_not_exist_var'=> 'Actif avec le tag :asset_tag introuvable.', 'no_tag' => 'Aucune étiquette d\'actif fournie.', @@ -51,7 +51,7 @@ return [ ], 'import' => [ - 'import_button' => 'Process Import', + 'import_button' => 'Effectuer l\'importation', 'error' => 'Certains éléments n\'ont pas été correctement importés.', 'errorDetail' => 'Les éléments suivants n\'ont pas été importés à cause d\'erreurs.', 'success' => 'Votre fichier a bien été importé', diff --git a/resources/lang/fr-FR/admin/licenses/general.php b/resources/lang/fr-FR/admin/licenses/general.php index d73c7fc4c..7330f25f4 100644 --- a/resources/lang/fr-FR/admin/licenses/general.php +++ b/resources/lang/fr-FR/admin/licenses/general.php @@ -14,7 +14,7 @@ return array( 'info' => 'Informations de licence', 'license_seats' => 'Licence multipostes', 'seat' => 'Poste', - 'seat_count' => 'Seat :count', + 'seat_count' => 'Poste :count', 'seats' => 'Postes', 'software_licenses' => 'Licences de logiciel', 'user' => 'Utilisateur', @@ -24,12 +24,12 @@ return array( [ 'checkin_all' => [ 'button' => 'Désattribuer tous les sièges', - 'modal' => 'This action will checkin one seat. | This action will checkin all :checkedout_seats_count seats for this license.', + 'modal' => 'Cette action désattribuera un poste. | Cette action désattribuera les :checkedout_seats_count postes pour cette licence.', 'enabled_tooltip' => 'Désassocier TOUS les sièges de cette licence, à la fois des utilisateurs·trices et des actifs', 'disabled_tooltip' => 'Ceci est désactivé car il n\'y a pas de siège actuellement associé', 'disabled_tooltip_reassignable' => 'Ceci est désactivé car la licence n\'est pas réassignable', 'success' => 'Licence désassociée avec succès ! | Toutes les licences ont été désassociées avec succès !', - 'log_msg' => 'Checked in via bulk license checkin in license GUI', + 'log_msg' => 'Associée via l\'interface d\'attribution de licence en volumes', ], 'checkout_all' => [ diff --git a/resources/lang/fr-FR/admin/licenses/message.php b/resources/lang/fr-FR/admin/licenses/message.php index 90679e4b7..1c9677051 100644 --- a/resources/lang/fr-FR/admin/licenses/message.php +++ b/resources/lang/fr-FR/admin/licenses/message.php @@ -44,8 +44,8 @@ return array( 'error' => 'Un problème a eu lieu pendant l\'association de la licence. Veuillez essayer à nouveau.', 'success' => 'La licence a été associée avec succès', 'not_enough_seats' => 'Pas assez de sièges de licence disponibles pour le paiement', - 'mismatch' => 'The license seat provided does not match the license', - 'unavailable' => 'This seat is not available for checkout.', + 'mismatch' => 'Le poste de licence fourni ne correspond pas à la licence', + 'unavailable' => 'Ce poste n\'est pas disponible pour attribution.', ), 'checkin' => array( diff --git a/resources/lang/fr-FR/admin/locations/message.php b/resources/lang/fr-FR/admin/locations/message.php index d4dbfeea5..6e2ed8273 100644 --- a/resources/lang/fr-FR/admin/locations/message.php +++ b/resources/lang/fr-FR/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Le lieu n\'existe pas.', - 'assoc_users' => 'Cet emplacement n\'est pas actuellement supprimable car il s\'agit de l\'emplacement de l\'enregistrement pour au moins un actif ou un utilisateur, a des actifs qui lui sont assignés, ou est l\'emplacement parent d\'un autre emplacement. Veuillez mettre à jour vos modèles pour ne plus référencer cette entreprise et réessayez. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Cet emplacement est actuellement associé à au moins un actif et ne peut pas être supprimé. Veuillez mettre à jour vos actifs pour ne plus faire référence à cet emplacement et réessayez. ', 'assoc_child_loc' => 'Cet emplacement est actuellement le parent d\'au moins un sous emplacement et ne peut pas être supprimé . S\'il vous plaît mettre à jour vos emplacement pour ne plus le référencer et réessayez. ', 'assigned_assets' => 'Actifs assignés', diff --git a/resources/lang/fr-FR/admin/models/message.php b/resources/lang/fr-FR/admin/models/message.php index fded8a8e6..9121af7b5 100644 --- a/resources/lang/fr-FR/admin/models/message.php +++ b/resources/lang/fr-FR/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'ATTENTION ! Le modèle d\'actif pour cet objet est invalide ou manquant !', 'no_association_fix' => 'Cela va casser les choses de manière bizarre et horrible. Modifiez cette ressource maintenant pour lui assigner un modèle.', 'assoc_users' => 'Ce modèle est actuellement associé à au moins un actif et ne peut pas être supprimé. Veuillez supprimer les actifs associés et essayer à nouveau. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'La catégorie doit être une catégorie d\'actifs.', 'create' => array( 'error' => 'Le modèle n\'a pas été créé, veuillez essayer à nouveau.', diff --git a/resources/lang/fr-FR/admin/settings/general.php b/resources/lang/fr-FR/admin/settings/general.php index e35cf9fe4..3b3d6df42 100644 --- a/resources/lang/fr-FR/admin/settings/general.php +++ b/resources/lang/fr-FR/admin/settings/general.php @@ -49,7 +49,7 @@ return [ 'default_eula_text' => 'Licence d\'utilisation par défaut', 'default_language' => 'Langue par défaut', 'default_eula_help_text' => 'Vous pouvez également associer les licences d\'utilisations personnalisés à des catégories spécifiques d\'actifs .', - 'acceptance_note' => 'Add a note for your decision (Optional)', + 'acceptance_note' => 'Ajouter une note pour votre décision (facultatif)', 'display_asset_name' => 'Afficher le nom des actifs', 'display_checkout_date' => 'Afficher la date d\'association', 'display_eol' => 'Afficher la fin de vie dans les tables', @@ -94,7 +94,7 @@ return [ 'ldap_login_sync_help' => 'Ceci vérifie uniquement que LDAP se synchronise correctement. Si votre requête d\'authentification LDAP est incorrecte, les utilisateurs peuvent ne pas pouvoir se connecter. VOUS DEVEZ D\'ABORD ENREGISTRER VOS PARAMÈTRES LDAP MIS À JOUR.', 'ldap_manager' => 'Gestionnaire LDAP', 'ldap_server' => 'Serveur LDAP', - 'ldap_server_help' => 'This should start with ldap:// (for unencrypted) or ldaps:// (for TLS or SSL)', + 'ldap_server_help' => 'Devrait commencer par ldap:// (non-chiffré) ou ldaps:// (pour SSL/TLS)', 'ldap_server_cert' => 'Validation du certificat SSL LDAP', 'ldap_server_cert_ignore' => 'Autorise un certificat SSL invalide', 'ldap_server_cert_help' => 'Sélectionnez cette case à cocher si vous utilisez un certificat SSL auto-signé et voudriez accepter un certificat SSL invalide.', @@ -122,8 +122,8 @@ return [ 'ldap_test' => 'Tester LDAP', 'ldap_test_sync' => 'Tester la synchronisation LDAP', 'license' => 'Licence de logiciel', - 'load_remote' => 'Load Remote Avatars', - 'load_remote_help_text' => 'Uncheck this box if your install cannot load scripts from the outside internet. This will prevent Snipe-IT from trying load avatars from Gravatar or other outside sources.', + 'load_remote' => 'Charger les avatars distants', + 'load_remote_help_text' => 'Décochez cette case si votre installation ne peut pas charger de scripts depuis internet. Cela empêchera Snipe-IT de tenter de charger les avatars depuis Gravatar ou toute autre source externe.', 'login' => 'Tentatives de connexion', 'login_attempt' => 'Tentative de connexion', 'login_ip' => 'Adresse IP', @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':L\'intégration de :app est optionnelle, cependant le point de terminaison et le canal sont requis si vous souhaitez l\'utiliser. Pour configurer l\'intégration de :app, vous devez d\'abord créer un webhook entrant sur votre compte :app. Cliquez sur le bouton Tester l\'intégration :app pour confirmer que vos paramètres sont corrects avant d\'enregistrer. ', 'webhook_integration_help_button' => 'Une fois que vous aurez enregistré vos informations :app, un bouton de test apparaîtra.', 'webhook_test_help' => 'Testez si votre intégration :app est correctement configurée. VOUS DEVEZ D\'ABORD ENREGISTRER LES PARAMÈTRES MIS À JOUR DE :app.', + 'shortcuts_enabled' => 'Activer les raccourcis', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Version de Snipe-IT', 'support_footer' => 'Support des liens de pied de page ', 'support_footer_help' => 'Spécifiez qui voit les liens vers les manuels de support utilisateur Snipe-IT', @@ -287,18 +289,18 @@ return [ 'zerofill_count' => 'Longueur des étiquettes de bien, incluant le remplissage de zéros', 'username_format_help' => 'Ce paramètre ne sera utilisé par le processus d\'importation que si un nom d\'utilisateur n\'est pas fourni et que nous devons générer un nom d\'utilisateur pour vous.', 'oauth_title' => 'Paramètres de l\'API OAuth', - 'oauth_clients' => 'OAuth Clients', + 'oauth_clients' => 'Clients OAuth', 'oauth' => 'OAuth', 'oauth_help' => 'Paramètres du point de terminaison Oauth', - 'oauth_no_clients' => 'You have not created any OAuth clients yet.', + 'oauth_no_clients' => 'Vous n\'avez pas encore créé de client OAuth.', 'oauth_secret' => 'Secret', - 'oauth_authorized_apps' => 'Authorized Applications', - 'oauth_redirect_url' => 'Redirect URL', + 'oauth_authorized_apps' => 'Applications autorisées', + 'oauth_redirect_url' => 'URL de redirection', 'oauth_name_help' => ' Quelque chose que vos utilisateurs reconnaîtront et en quoi ils auront confiance.', 'oauth_scopes' => 'Scopes', - 'oauth_callback_url' => 'Your application authorization callback URL.', - 'create_client' => 'Create Client', - 'no_scopes' => 'No scopes', + 'oauth_callback_url' => 'URL de retour d\'autorisation de votre application.', + 'create_client' => 'Créer un client', + 'no_scopes' => 'Aucun scope', 'asset_tag_title' => 'Mettre à jour les paramètres de numéro d\'inventaire', 'barcode_title' => 'Gérer les paramètres des codes-barres', 'barcodes' => 'Codes-barres', @@ -375,9 +377,9 @@ return [ 'timezone' => 'Fuseau horaire', 'profile_edit' => 'Modifier le profil', 'profile_edit_help' => 'Permettre aux utilisateurs de modifier leur propre profil.', - 'default_avatar' => 'Upload custom default avatar', - 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', - 'restore_default_avatar' => 'Restore original system default avatar', + 'default_avatar' => 'Téléverser un avatar par défaut personnalisé', + 'default_avatar_help' => 'Cette image sera utilisée pour le profil des utilisateurs·trices qui n\'ont pas de photo de profil.', + 'restore_default_avatar' => 'Rétablir l\'avatar par défaut d\'origine', 'restore_default_avatar_help' => '', ]; diff --git a/resources/lang/fr-FR/admin/settings/message.php b/resources/lang/fr-FR/admin/settings/message.php index 84f4d8834..6f0ed0a7d 100644 --- a/resources/lang/fr-FR/admin/settings/message.php +++ b/resources/lang/fr-FR/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Oui, restaurez-le. Je reconnais que cela écrasera toutes les données existantes actuellement dans la base de données. Cela déconnectera également tous vos utilisateurs existants (vous y compris).', 'restore_confirm' => 'Êtes-vous sûr de vouloir restaurer votre base de données à partir de :filename ?' ], + 'restore' => [ + 'success' => 'Votre sauvegarde système a été restaurée. Veuillez vous reconnecter.' + ], 'purge' => [ 'error' => 'Une erreur est survenue durant la purge. ', 'validation_failed' => 'Votre confirmation de purge est incorrecte. Merci d\'écrire le mot "DELETE" dans la fenêtre de confirmation.', diff --git a/resources/lang/fr-FR/button.php b/resources/lang/fr-FR/button.php index 06e9a36e3..5baf04098 100644 --- a/resources/lang/fr-FR/button.php +++ b/resources/lang/fr-FR/button.php @@ -7,7 +7,7 @@ return [ 'checkin_and_delete' => 'Tout dissocier / Supprimer l\'utilisateur', 'delete' => 'Supprimer', 'edit' => 'Éditer', - 'clone' => 'Clone', + 'clone' => 'Dupliquer', 'restore' => 'Restaurer', 'remove' => 'Supprimer', 'request' => 'Demander', @@ -23,12 +23,12 @@ return [ 'append' => 'Ajouter', 'new' => 'Nouveau', 'var' => [ - 'clone' => 'Clone :item_type', - 'edit' => 'Edit :item_type', - 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', - 'create' => 'Create New :item_type', - 'checkout' => 'Checkout :item_type', - 'checkin' => 'Checkin :item_type', + 'clone' => 'Dupliquer :item_type', + 'edit' => 'Éditer :item_type', + 'delete' => 'Supprimer :item_type', + 'restore' => 'Restaurer :item_type', + 'create' => 'Créer nouveau :item_type', + 'checkout' => 'Attribuer :item_type', + 'checkin' => 'Désattribuer :item_type', ] ]; diff --git a/resources/lang/fr-FR/general.php b/resources/lang/fr-FR/general.php index e431878a3..e4e8f1a3c 100644 --- a/resources/lang/fr-FR/general.php +++ b/resources/lang/fr-FR/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consommables', 'country' => 'Pays', 'could_not_restore' => 'Erreur lors de la restauration de :item_type: :error', - 'not_deleted' => 'Le :item_type n\'est pas supprimé et ne peut donc pas être restauré', + 'not_deleted' => 'Cet :item_type n\'est pas supprimé et ne peut donc pas être restauré', 'create' => 'Créer', 'created' => 'Élément créé', 'created_asset' => 'Actif créé', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Nom de famille et première lettre du prénom (smith_j@example.com)', 'firstinitial.lastname' => 'Première lettre du prénom et nom de famille (j.smith@example.com)', 'firstnamelastinitial' => 'Prénom (janes@example.com)', - 'lastnamefirstname' => 'Nom Prénom (smith.jane@example.com)', + 'lastnamefirstname' => 'Nom.Prénom (smith.jane@example.com)', 'first_name' => 'Prénom', 'first_name_format' => 'Prénom (jane@example.com)', 'files' => 'Fichiers', @@ -157,7 +157,7 @@ return [ 'include_deleted' => 'Inclure les matériels supprimés', 'image_upload' => 'Charger une image', 'filetypes_accepted_help' => 'Le type de fichier accepté est :types. La taille maximale autorisée est :size.|Les types de fichiers acceptés sont :types. La taille maximale autorisée est :size.', - 'filetypes_size_help' => 'La taille maximale autorisée des téléversements est :size.', + 'filetypes_size_help' => 'La taille maximale de téléversement autorisée est :size.', 'image_filetypes_help' => 'Les types de fichiers acceptés sont jpg, webp, png, gif, svg et avif. La taille maximale de téléchargement autorisée est :size.', 'unaccepted_image_type' => 'Ce fichier image n\'est pas lisible. Les types de fichiers acceptés sont jpg, webp, png, gif et svg. Le type mimetype de ce fichier est : :mimetype.', 'import' => 'Importer', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licences disponibles', 'licenses' => 'Licences', 'list_all' => 'Lister tout', - 'loading' => 'Chargement en cours... Veuillez patienter...', + 'loading' => 'Chargement en cours... Merci de patienter...', 'lock_passwords' => 'Ce champ ne sera pas sauvegardé dans une installation de démonstration.', 'feature_disabled' => 'Cette fonctionnalité a été désactivée pour l\'installation de démonstration.', 'location' => 'Lieu', @@ -206,7 +206,7 @@ return [ 'new_password' => 'Nouveau mot de passe', 'next' => 'Prochain', 'next_audit_date' => 'Prochaine date de vérification', - 'next_audit_date_help' => 'If you use auditing in your organization, this is usually automatically calculated based on the asset's last audit date and audit frequency (in Admin Settings > Alerts) and you can leave this blank. You can manually set this date here if you need to, but it must be later than the last audit date. ', + 'next_audit_date_help' => 'Si vous utilisez l\'audit dans votre organisation, ceci est généralement calculé automatiquement en fonction de la dernière date d\'audit et de la dernière fréquence d\'audit de l\'actif (dans Paramètres > Alertes) et vous pouvez laisser ce champ vide. Vous pouvez définir manuellement cette date ici si vous en avez besoin, mais elle doit être postérieure à la dernière date d\'audit. ', 'audit_images_help' => 'Vous pouvez trouver des images d\'audit dans l\'onglet historique de l\'actif.', 'no_email' => 'Aucune adresse e-mail associée à cet utilisateur', 'last_audit' => 'Dernier audit', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Tout sélectionner', 'search' => 'Rechercher', 'select_category' => 'Choisir une catégorie', - 'select_datasource' => 'Sélectionnez une source de données', + 'select_datasource' => 'Sélectionner une source de données', 'select_department' => 'Sélectionnez un département', 'select_depreciation' => 'Choisissez un type d\'amortissement', 'select_location' => 'Choisissez un emplacement', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Déconnecté par', 'skin' => 'Habillage', 'webhook_msg_note' => 'Une notification sera envoyée via le webhook', - 'webhook_test_msg' => 'Woohoo ! Il semble que votre intégration :app vers Snipe-IT fonctionne !', + 'webhook_test_msg' => 'Woohoo ! Il semble que votre intégration de :app vers Snipe-IT fonctionne !', 'some_features_disabled' => 'MODE DEMO: Certaines fonctionnalités sont désactivées pour cette installation.', 'site_name' => 'Nom du Site', 'state' => 'État', 'status_labels' => 'Étiquette de statut', + 'status_label' => 'Status Label', 'status' => 'Statut', 'accept_eula' => 'Contrat de licence', 'supplier' => 'Fournisseur', @@ -348,7 +349,7 @@ return [ 'setup_step_4' => 'Étape 4', 'setup_config_check' => 'Vérification de la configuration', 'setup_create_database' => 'Créer les tables de la base de données', - 'setup_create_admin' => 'Créer un utilisateur administrateur', + 'setup_create_admin' => 'Créer un administrateur', 'setup_done' => 'Terminé !', 'bulk_edit_about_to' => 'Vous êtes sur le point de modifier les éléments suivants : ', 'checked_out' => 'Affecté', @@ -528,7 +529,7 @@ return [ 'permission_denied_superuser_demo' => 'Autorisation refusée. Vous ne pouvez pas mettre à jour les informations de l\'utilisateur pour les super-admins sur la démo.', 'pwd_reset_not_sent' => 'L\'utilisateur n\'est pas activé, est synchronisé avec LDAP ou n\'a pas d\'adresse e-mail', 'error_sending_email' => 'Erreur lors de l\'envoi de l\'e-mail', - 'sad_panda' => 'Sad panda. You are not authorized to do the thing. Maybe return to the dashboard, or contact your administrator.', + 'sad_panda' => 'Panda triste. Vous n\'êtes pas autorisé à faire ceci. Vous pouvez retourner au tableau de bord ou contacter votre administrateur.', 'bulk' => [ 'delete' => [ @@ -552,11 +553,11 @@ return [ ], 'more_info' => 'Plus d\'info', 'quickscan_bulk_help' => 'Si vous cochez cette case, l\'enregistrement de l\'actif sera modifié pour refléter ce nouvel emplacement. Si elle n\'est pas cochée, l\'emplacement sera simplement noté dans le journal d\'audit. Notez que si ce bien est sorti, il ne changera pas l\'emplacement de la personne, du bien ou de l\'emplacement auquel il est sorti.', - 'whoops' => 'Whoops!', - 'something_went_wrong' => 'Something went wrong with your request.', - 'close' => 'Close', + 'whoops' => 'Oups !', + 'something_went_wrong' => 'Un problème est survenu lors du traitement de votre requête.', + 'close' => 'Fermer', 'expires' => 'Expire le', 'map_fields'=> 'Map :item_type Field', - 'remaining_var' => ':count Remaining', + 'remaining_var' => ':count restant', ]; diff --git a/resources/lang/fr-FR/localizations.php b/resources/lang/fr-FR/localizations.php index 03f030a6e..1f5f0e27f 100644 --- a/resources/lang/fr-FR/localizations.php +++ b/resources/lang/fr-FR/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malais', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongol', - 'no-NO'=> 'Norvégien', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norvégien (Bokmål)', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Perse', 'pl-PL'=> 'Polonais', 'pt-PT'=> 'Portugais', diff --git a/resources/lang/fr-FR/mail.php b/resources/lang/fr-FR/mail.php index 94d5d23e2..90e839e21 100644 --- a/resources/lang/fr-FR/mail.php +++ b/resources/lang/fr-FR/mail.php @@ -56,7 +56,7 @@ return [ 'i_have_read' => 'J\'ai bien lu et approuvé les conditions d\'utilisation, et reçu cet objet.', 'inventory_report' => 'Rapport d\'inventaire', 'item' => 'Article :', - 'item_checked_reminder' => 'This is a reminder that you currently have :count items checked out to you that you have not accepted or declined. Please click the link below to confirm your decision.', + 'item_checked_reminder' => 'Ceci est un rappel que vous avez actuellement :count articles que vous n\'avez pas acceptés ou refusés. Veuillez cliquer sur le lien ci-dessous pour confirmer votre décision.', 'license_expiring_alert' => 'Il y a :count licence expirant dans les prochains :threshold jours.|Il y a :count licences expirant dans les prochains :threshold jours.', 'link_to_update_password' => 'Veuillez cliquer sur le lien suivant pour confirmer votre :web account:', 'login' => 'Nom d\'utilisateur:', @@ -87,10 +87,10 @@ return [ 'upcoming-audits' => 'Il y a :count matériel à venir pour un audit dans les :threshold jours.|Il y a :count matériels à venir pour un audit dans les :threshold jours.', 'user' => 'Utilisateur', 'username' => 'Nom d\'utilisateur', - 'unaccepted_asset_reminder' => 'You have Unaccepted Assets.', + 'unaccepted_asset_reminder' => 'Vous avez des actifs non acceptés.', 'welcome' => 'Bienvenue, :name', 'welcome_to' => 'Bienvenue sur :web!', 'your_assets' => 'Voir vos matériels', 'your_credentials' => 'Vos identifiants Snipe-IT', - 'mail_sent' => 'Mail sent successfully!', + 'mail_sent' => 'Email envoyé avec succès !', ]; diff --git a/resources/lang/fr-FR/validation.php b/resources/lang/fr-FR/validation.php index 717c2356f..c7bfca0ae 100644 --- a/resources/lang/fr-FR/validation.php +++ b/resources/lang/fr-FR/validation.php @@ -13,32 +13,32 @@ return [ | */ - 'accepted' => 'The :attribute field must be accepted.', - 'accepted_if' => 'The :attribute field must be accepted when :other is :value.', - 'active_url' => 'The :attribute field must be a valid URL.', - 'after' => 'The :attribute field must be a date after :date.', - 'after_or_equal' => 'The :attribute field must be a date after or equal to :date.', - 'alpha' => 'The :attribute field must only contain letters.', - 'alpha_dash' => 'The :attribute field must only contain letters, numbers, dashes, and underscores.', - 'alpha_num' => 'The :attribute field must only contain letters and numbers.', - 'array' => 'The :attribute field must be an array.', - 'ascii' => 'The :attribute field must only contain single-byte alphanumeric characters and symbols.', - 'before' => 'The :attribute field must be a date before :date.', - 'before_or_equal' => 'The :attribute field must be a date before or equal to :date.', + 'accepted' => 'Le champ :attribute doit être accepté.', + 'accepted_if' => 'Le champ :attribute doit être accepté quand :other vaut :value.', + 'active_url' => 'Le champ :attribute doit être une URL valide.', + 'after' => 'Le champ :attribute doit être une date postérieure au :date.', + 'after_or_equal' => 'Le champ :attribute doit être une date postérieure ou égale au :date.', + 'alpha' => 'Le champ :attribute doit contenir uniquement des lettres.', + 'alpha_dash' => 'Le champ :attribute doit contenir uniquement des lettres, chiffres, tirets haut et bas.', + 'alpha_num' => 'Le champ :attribute doit contenir uniquement des lettres et des chiffres.', + 'array' => 'Le champ :attribute doit être un tableau.', + 'ascii' => 'Le champ :attribute doit contenir uniquement des caractères ASCII.', + 'before' => 'Le champ :attribute doit être une date antérieure au :date.', + 'before_or_equal' => 'Le champ :attribute doit être une date antérieure ou égale au :date.', 'between' => [ - 'array' => 'The :attribute field must have between :min and :max items.', - 'file' => 'The :attribute field must be between :min and :max kilobytes.', - 'numeric' => 'The :attribute field must be between :min and :max.', - 'string' => 'The :attribute field must be between :min and :max characters.', + 'array' => 'Le champ :attribute doit contenir entre :min et :max objets.', + 'file' => 'Le champ :attribute doit avoir une taille comprise entre :min et :max kilooctets.', + 'numeric' => 'Le champ :attribute doit être compris entre :min et :max.', + 'string' => 'Le champ :attribute doit contenir entre :min et :max caractères.', ], - 'boolean' => 'The :attribute field must be true or false.', - 'can' => 'The :attribute field contains an unauthorized value.', - 'confirmed' => 'The :attribute field confirmation does not match.', - 'contains' => 'The :attribute field is missing a required value.', - 'current_password' => 'The password is incorrect.', - 'date' => 'The :attribute field must be a valid date.', - 'date_equals' => 'The :attribute field must be a date equal to :date.', - 'date_format' => 'The :attribute field must match the format :format.', + 'boolean' => 'Le champ :attribute doit être vrai ou faux.', + 'can' => 'Le champ :attribute contient une valeur non autorisée.', + 'confirmed' => 'La confirmation du champ :attribute ne correspond pas.', + 'contains' => 'Le champ :attribute manque d\'une valeur obligatoire.', + 'current_password' => 'Le mot de passe est incorrect.', + 'date' => 'Le champ :attribute doit être une date valide.', + 'date_equals' => 'Le champ :attribute doit être une date égale au :date.', + 'date_format' => 'Le champ :attribute doit correspondre au format :format.', 'decimal' => 'The :attribute field must have :decimal decimal places.', 'declined' => 'The :attribute field must be declined.', 'declined_if' => 'The :attribute field must be declined when :other is :value.', @@ -117,14 +117,16 @@ return [ 'multiple_of' => 'The :attribute field must be a multiple of :value.', 'not_in' => 'L\'attribut ":attribute" est invalide.', 'not_regex' => 'The :attribute field format is invalid.', - 'numeric' => 'The :attribute field must be a number.', + 'numeric' => 'Le champ :attribute doit être un nombre.', 'password' => [ - 'letters' => 'The :attribute field must contain at least one letter.', + 'letters' => 'Le champ :attribute doit contenir au moins une lettre.', 'mixed' => 'The :attribute field must contain at least one uppercase and one lowercase letter.', 'numbers' => 'The :attribute field must contain at least one number.', 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Le champ d\'attribut: doit être présent.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Votre mot de passe actuel est incorrect', 'dumbpwd' => 'Ce mot de passe est trop commun.', 'statuslabel_type' => 'Vous devez sélectionner un type d\'étiquette de statut valide', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP @@ -225,8 +229,8 @@ return [ 'generic' => [ 'invalid_value_in_field' => 'Valeur non valide incluse dans ce champ', - 'required' => 'This field is required', - 'email' => 'Please enter a valid email address', + 'required' => 'Ce champ est obligatoire', + 'email' => 'Veuillez entrer une adresse e-mail valide', ], diff --git a/resources/lang/ga-IE/account/general.php b/resources/lang/ga-IE/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/ga-IE/account/general.php +++ b/resources/lang/ga-IE/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/ga-IE/admin/locations/message.php b/resources/lang/ga-IE/admin/locations/message.php index 8aeaec86c..f0bf04eac 100644 --- a/resources/lang/ga-IE/admin/locations/message.php +++ b/resources/lang/ga-IE/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Níl an suíomh ann.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Tá an suíomh seo bainteach le sócmhainn amháin ar a laghad agus ní féidir é a scriosadh. Déan do sócmhainní a thabhairt cothrom le dáta gan tagairt a dhéanamh don áit seo agus déan iarracht arís.', 'assoc_child_loc' => 'Faoi láthair tá an suíomh seo ina tuismitheoir ar a laghad ar shuíomh leanbh amháin ar a laghad agus ní féidir é a scriosadh. Nuashonraigh do láithreacha le do thoil gan tagairt a dhéanamh don suíomh seo agus déan iarracht arís.', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/ga-IE/admin/settings/general.php b/resources/lang/ga-IE/admin/settings/general.php index 649c9b17a..ccad78e0a 100644 --- a/resources/lang/ga-IE/admin/settings/general.php +++ b/resources/lang/ga-IE/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT leagan', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/ga-IE/admin/settings/message.php b/resources/lang/ga-IE/admin/settings/message.php index b610938e2..2fd8a2ad7 100644 --- a/resources/lang/ga-IE/admin/settings/message.php +++ b/resources/lang/ga-IE/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Tharla earráid agus í ag puráil.', 'validation_failed' => 'Tá do dheimhniú purge mícheart. Scríobh an focal "DELETE" sa bhosca daingnithe.', diff --git a/resources/lang/ga-IE/button.php b/resources/lang/ga-IE/button.php index 0f5c327e7..b8c4d81d7 100644 --- a/resources/lang/ga-IE/button.php +++ b/resources/lang/ga-IE/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/ga-IE/general.php b/resources/lang/ga-IE/general.php index b83be5445..ebd8c3a71 100644 --- a/resources/lang/ga-IE/general.php +++ b/resources/lang/ga-IE/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Tomhaltáin', 'country' => 'Tír', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Cruthaigh Nua', 'created' => 'Mír Cruthaithe', 'created_asset' => 'cruthaíodh sócmhainn', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Tá an t-iarratas seo á reáchtáil i mód táirgthe le cumas dífhabhtaithe. Féadfaidh sé seo sonraí íogaire a nochtadh má tá do iarratas inrochtana don domhan lasmuigh. Díchumasaigh an modh dífhabhtaithe trí luachanna APP_DEBUG a leagan amach i do chomhad .env chuig false.', 'delete' => 'Scrios', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Scriosta', 'delete_seats' => 'Suíocháin Scriosta', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Ainm', 'first_name_format' => 'Céadainm (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Scrios Íomhá', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Íomhá Uaslódáil', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Iompórtáil', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Ceadúnais', 'list_all' => 'Liosta Gach', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'Tá an ghné seo faoi mhíchumas chun an suiteáil taispeántais.', 'location' => 'Suíomh', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logáil Amach', 'lookup_by_tag' => 'Féach ar Chlib Sócmhainní', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Déantóir', 'manufacturers' => 'Déantóirí', 'markdown' => 'Ceadaíonn an réimse seo Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Cuardaigh', 'select_category' => 'Roghnaigh Catagóir', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Roghnaigh Roinn', 'select_depreciation' => 'Roghnaigh Cineál Dímheasa', 'select_location' => 'Roghnaigh Suíomh', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'MODH DEMO: Tá gnéithe áirithe faoi mhíchumas don shuiteáil seo agus athshocróidh na sonraí sa chóras seo go laethúil.', 'site_name' => 'Ainm an tSuímh', 'state' => 'Stáit', 'status_labels' => 'Lipéid Stádas', + 'status_label' => 'Status Label', 'status' => 'Stádas', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Soláthraí', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Ríomhphost', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Seiceáil Amach', diff --git a/resources/lang/ga-IE/localizations.php b/resources/lang/ga-IE/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/ga-IE/localizations.php +++ b/resources/lang/ga-IE/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/ga-IE/validation.php b/resources/lang/ga-IE/validation.php index 31d867e81..cd1a893d1 100644 --- a/resources/lang/ga-IE/validation.php +++ b/resources/lang/ga-IE/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Ní mór an réimse tréith a bheith i láthair.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Tá do phasfhocal reatha mícheart', 'dumbpwd' => 'Tá an focal faire sin ró-choitianta.', 'statuslabel_type' => 'Ní mór duit cineál lipéad stádas bailí a roghnú', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/he-IL/account/general.php b/resources/lang/he-IL/account/general.php index 2df779062..a8078fa0f 100644 --- a/resources/lang/he-IL/account/general.php +++ b/resources/lang/he-IL/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/he-IL/admin/locations/message.php b/resources/lang/he-IL/admin/locations/message.php index 8b5f4a8a1..de920bfd7 100644 --- a/resources/lang/he-IL/admin/locations/message.php +++ b/resources/lang/he-IL/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'המיקום אינו קיים.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'המיקום משויך לפחות לפריט אחד ולכן לא ניתן למחוק אותו. אנא עדכן את הפריטים כך שלא יהיה אף פריט משויך למיקום זה ונסה שנית. ', 'assoc_child_loc' => 'למיקום זה מוגדרים תתי-מיקומים ולכן לא ניתן למחוק אותו. אנא עדכן את המיקומים כך שלא שמיקום זה לא יכיל תתי מיקומים ונסה שנית. ', 'assigned_assets' => 'פריטים מוקצים', diff --git a/resources/lang/he-IL/admin/settings/general.php b/resources/lang/he-IL/admin/settings/general.php index 1d4d9302c..af8ee5170 100644 --- a/resources/lang/he-IL/admin/settings/general.php +++ b/resources/lang/he-IL/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT גירסה', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/he-IL/admin/settings/message.php b/resources/lang/he-IL/admin/settings/message.php index acc67164a..5790a094d 100644 --- a/resources/lang/he-IL/admin/settings/message.php +++ b/resources/lang/he-IL/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'האם ברצונך לשחזר את המסד נתונים מ: קובץ?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'אירעה שגיאה בעת הטיהור.', 'validation_failed' => 'אישור הטיהור שלך שגוי. הקלד את המילה "DELETE" בתיבת האישור.', diff --git a/resources/lang/he-IL/button.php b/resources/lang/he-IL/button.php index 09ea6d92d..b00941695 100644 --- a/resources/lang/he-IL/button.php +++ b/resources/lang/he-IL/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/he-IL/general.php b/resources/lang/he-IL/general.php index 01434b66d..c0fb7e389 100644 --- a/resources/lang/he-IL/general.php +++ b/resources/lang/he-IL/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'מתכלים', 'country' => 'מדינה', 'could_not_restore' => 'שגיאה בשחזור :item_type: :error', - 'not_deleted' => 'ה:item_type לא נמחק ולכן לא ניתן לשחזרו', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'צור חדש', 'created' => 'פריט נוצר', 'created_asset' => 'הנכס שנוצר', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'יישום זה פועל במצב ייצור עם איתור באגים. זה יכול לחשוף נתונים רגישים אם היישום שלך נגיש לעולם החיצון. השבת את מצב איתור הבאגים על ידי הגדרת הערך APP_DEBUG בקובץ .env ל false.', 'delete' => 'לִמְחוֹק', 'delete_confirm' => 'האם אתה בטוח שברצונך למחוק?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'נמחק', 'delete_seats' => 'מושבים שנמחקו', 'deletion_failed' => 'המחיקה נכשלה', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'שם משפחה ראשי תיבות שם פרטי (smith_j@example.com)', 'firstinitial.lastname' => 'ראשי תיבות שם פרטי שם משפחה (j.smith@example)', 'firstnamelastinitial' => 'שם פרטי ראשי תיבות שם משפחה (janes@example.com)', - 'lastnamefirstname' => 'שם משפחה שם פרטי (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'שם פרטי', 'first_name_format' => 'שם פרטי (jane@example.com)', 'files' => 'קבצים', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'מחק תמונה', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'העלאת תמונה', - 'filetypes_accepted_help' => 'סוגי קובץ אפשריים הם :types. גודל קובץ אפשרי מקסימלי:size.', - 'filetypes_size_help' => 'גודל קובץ מותר הוא :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'יְבוּא', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'רישיונות', 'list_all' => 'רשימת הכל', - 'loading' => 'טעינה... אנא המתן....', + 'loading' => 'טעינה... אנא המתן...', 'lock_passwords' => 'השדה הזה לא ישמר במצב הדגמה.', 'feature_disabled' => 'תכונה זו הושבתה עבור התקנת ההדגמה.', 'location' => 'מקום', @@ -193,7 +193,7 @@ return [ 'logout' => 'להתנתק', 'lookup_by_tag' => 'בדיקה על ידי תג הנכס', 'maintenances' => 'אירועי תחזוקה', - 'manage_api_keys' => 'נהל מפתחות API', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'יַצרָן', 'manufacturers' => 'היצרנים', 'markdown' => 'שדה זה מאפשר Github בטעם מרקדון .', @@ -254,7 +254,7 @@ return [ 'select_all' => 'בחר הכל', 'search' => 'חפש', 'select_category' => 'בחר קטגוריה', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'בחר מחלקה', 'select_depreciation' => 'בחר סוג פחת', 'select_location' => 'בחר מיקום', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'אושר על ידי', 'skin' => 'ערכת עיצוב', 'webhook_msg_note' => 'תישלח התראה דרך התליית רשת', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: תכונות מסוימות מושבתות עבור התקנה זו.', 'site_name' => 'שם אתר', 'state' => 'מדינה', 'status_labels' => 'תוויות סטטוס', + 'status_label' => 'Status Label', 'status' => 'סטָטוּס', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'ספק', @@ -339,16 +340,16 @@ return [ 'view_all' => 'הצג הכל', 'hide_deleted' => 'הסתר מחוקים', 'email' => 'דוא"ל', - 'do_not_change' => 'לא לשינוי', - 'bug_report' => 'דווח על באג', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'חוברת משתמש', 'setup_step_1' => 'שלב 1', 'setup_step_2' => 'שלב 2', 'setup_step_3' => 'שלב 3', 'setup_step_4' => 'שלב 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'הסתיים!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'הנכס שוייך', diff --git a/resources/lang/he-IL/localizations.php b/resources/lang/he-IL/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/he-IL/localizations.php +++ b/resources/lang/he-IL/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/he-IL/validation.php b/resources/lang/he-IL/validation.php index bd85d08e6..fce37bdf8 100644 --- a/resources/lang/he-IL/validation.php +++ b/resources/lang/he-IL/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'שדה התכונה: חייב להיות נוכח.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'הסיסמה הנוכחית שלך שגויה', 'dumbpwd' => 'סיסמה זו נפוצה מדי.', 'statuslabel_type' => 'עליך לבחור סוג תווית סטטוס חוקי', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/hr-HR/account/general.php b/resources/lang/hr-HR/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/hr-HR/account/general.php +++ b/resources/lang/hr-HR/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/hr-HR/admin/locations/message.php b/resources/lang/hr-HR/admin/locations/message.php index bf856a0fc..343f16067 100644 --- a/resources/lang/hr-HR/admin/locations/message.php +++ b/resources/lang/hr-HR/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Lokacija ne postoji.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Ta je lokacija trenutačno povezana s barem jednim resursom i ne može se izbrisati. Ažurirajte svoju imovinu da više ne referira na tu lokaciju i pokušajte ponovno.', 'assoc_child_loc' => 'Ta je lokacija trenutačno roditelj najmanje jedne lokacije za djecu i ne može se izbrisati. Ažurirajte svoje lokacije da više ne referiraju ovu lokaciju i pokušajte ponovo.', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/hr-HR/admin/settings/general.php b/resources/lang/hr-HR/admin/settings/general.php index d96d3345b..d5cf1a821 100644 --- a/resources/lang/hr-HR/admin/settings/general.php +++ b/resources/lang/hr-HR/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT verzija', 'support_footer' => 'Podrška poveznica u podnožju ', 'support_footer_help' => 'Navedite tko vidi poveznice na informacije o Snipe-IT podršci i korisničkom priručniku', diff --git a/resources/lang/hr-HR/admin/settings/message.php b/resources/lang/hr-HR/admin/settings/message.php index 1ed0dba21..d86142b35 100644 --- a/resources/lang/hr-HR/admin/settings/message.php +++ b/resources/lang/hr-HR/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Došlo je do pogreške prilikom čišćenja.', 'validation_failed' => 'Vaša potvrda o čišćenju nije točna. Upišite riječ "DELETE" u okvir potvrde.', diff --git a/resources/lang/hr-HR/button.php b/resources/lang/hr-HR/button.php index 8be1647d9..521bedbaa 100644 --- a/resources/lang/hr-HR/button.php +++ b/resources/lang/hr-HR/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/hr-HR/general.php b/resources/lang/hr-HR/general.php index 6f94cdc84..965ba9492 100644 --- a/resources/lang/hr-HR/general.php +++ b/resources/lang/hr-HR/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Potrošni', 'country' => 'Zemlja', 'could_not_restore' => 'Greška u obnavljanju :item_type: :error', - 'not_deleted' => ':item_type nije brisan pa ne može biti ni vraćen', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Izradi novu', 'created' => 'Stavka je stvorena', 'created_asset' => 'stvorio imovinu', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ova se aplikacija izvodi u načinu rada s omogućenim uklanjanjem pogrešaka. To može otkriti osjetljive podatke ako je aplikacija dostupna vanjskom svijetu. Onemogućite način otklanjanja pogrešaka postavljanjem vrijednosti APP_DEBUG u .env datoteci na false.', 'delete' => 'Izbrisati', 'delete_confirm' => 'Jeste li sigurni da želite izbrisati :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'izbrisana', 'delete_seats' => 'Izbrisana mjesta', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'Inicijal imena i prezime (i.ivic)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Ime', 'first_name_format' => 'Ime (jane@example.com)', 'files' => 'Datoteke', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Izbriši sliku', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Prenesite sliku', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Uvoz', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'licence', 'list_all' => 'Popis svih', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'Ova je značajka onemogućena za demo instalaciju.', 'location' => 'Mjesto', @@ -193,7 +193,7 @@ return [ 'logout' => 'Odjaviti se', 'lookup_by_tag' => 'Pretraživanje pomoću oznake imovine', 'maintenances' => 'Održavanje', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Proizvođač', 'manufacturers' => 'Proizvođači', 'markdown' => 'Ovo polje dopušta gordi s okusom "Github ".', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'traži', 'select_category' => 'Izaberi kategoriju', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Odaberite Odjel', 'select_depreciation' => 'Odaberite vrstu amortizacije', 'select_location' => 'Odaberite lokaciju', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Neke su značajke onemogućene za ovu instalaciju.', 'site_name' => 'Ime stranice', 'state' => 'država', 'status_labels' => 'Oznake statusa', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Dobavljač', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'E-mail', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Odjavio', diff --git a/resources/lang/hr-HR/localizations.php b/resources/lang/hr-HR/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/hr-HR/localizations.php +++ b/resources/lang/hr-HR/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/hr-HR/validation.php b/resources/lang/hr-HR/validation.php index b1fbd91a3..2a69831ba 100644 --- a/resources/lang/hr-HR/validation.php +++ b/resources/lang/hr-HR/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Polje atributa mora biti prisutno.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Vaša trenutačna zaporka nije točna', 'dumbpwd' => 'Ta je lozinka prečestna.', 'statuslabel_type' => 'Morate odabrati valjanu vrstu oznake statusa', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/hu-HU/account/general.php b/resources/lang/hu-HU/account/general.php index c7bb10c31..0eefc5651 100644 --- a/resources/lang/hu-HU/account/general.php +++ b/resources/lang/hu-HU/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'A fiók frissítése sikeres', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/hu-HU/admin/locations/message.php b/resources/lang/hu-HU/admin/locations/message.php index 7f8c25175..64139cdc8 100644 --- a/resources/lang/hu-HU/admin/locations/message.php +++ b/resources/lang/hu-HU/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Hely nem létezik.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Ez a hely jelenleg legalább egy eszközhöz társítva, és nem törölhető. Frissítse eszközeit, hogy ne hivatkozzon erre a helyre, és próbálja újra.', 'assoc_child_loc' => 'Ez a hely jelenleg legalább egy gyermek helye szülője, és nem törölhető. Frissítse tartózkodási helyeit, hogy ne hivatkozzon erre a helyre, és próbálja újra.', 'assigned_assets' => 'Hozzárendelt eszközök', diff --git a/resources/lang/hu-HU/admin/settings/general.php b/resources/lang/hu-HU/admin/settings/general.php index 8a52b5f2b..060bf42cd 100644 --- a/resources/lang/hu-HU/admin/settings/general.php +++ b/resources/lang/hu-HU/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT változat', 'support_footer' => 'Lábjegyzet linkek támogatása ', 'support_footer_help' => 'Adja meg, hogy ki láthassa a Snipe-IT támogatási információ és a felhasználói kézikönyv linkjeit', diff --git a/resources/lang/hu-HU/admin/settings/message.php b/resources/lang/hu-HU/admin/settings/message.php index c60ffa65b..faceb3d9f 100644 --- a/resources/lang/hu-HU/admin/settings/message.php +++ b/resources/lang/hu-HU/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Igen, állítsa vissza. Tudomásul veszem, hogy ez felülírja az adatbázisban jelenleg meglévő adatokat. Ez egyben az összes meglévő felhasználó (beleértve Önt is) kijelentkezik.', 'restore_confirm' => 'Biztos, hogy vissza szeretné állítani az adatbázisát a :filename -ből?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Hiba történt a tisztítás során.', 'validation_failed' => 'A tisztítás megerősítése helytelen. Kérjük, írja be a "DELETE" szót a megerősítő mezőbe.', diff --git a/resources/lang/hu-HU/button.php b/resources/lang/hu-HU/button.php index 38cf4e902..9aa355e56 100644 --- a/resources/lang/hu-HU/button.php +++ b/resources/lang/hu-HU/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/hu-HU/general.php b/resources/lang/hu-HU/general.php index 498fb4fa4..4210ca431 100644 --- a/resources/lang/hu-HU/general.php +++ b/resources/lang/hu-HU/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Fogyóeszközök', 'country' => 'Ország', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Új létrehozása', 'created' => 'Elem létrehozva', 'created_asset' => 'létrehozott eszköz', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ez az alkalmazás gyártási módban fut, a hibakeresés engedélyezve. Ez érzékeny adatokat tárhat fel, ha az alkalmazás elérhető a külvilág számára. A hibakeresési mód letiltása a APP_DEBUG érték .env fájlban történő false fájlban történő beállításával.', 'delete' => 'Törlés', 'delete_confirm' => 'Biztos benne, hogy törölni akarja: :item?', - 'delete_confirm_no_undo' => 'Biztosan törli ezt : :item? Ez a művelet nem vonható vissza.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Törölve', 'delete_seats' => 'Törölt elemek', 'deletion_failed' => 'A törlés nem sikerült', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Vezetéknév majd keresztnév kezdőbetűje (smith_j@example.com)', 'firstinitial.lastname' => 'Keresztnév kezdőbetűje majd vezetéknév (j.smith@example.com)', 'firstnamelastinitial' => 'Keresztnév majd vezetéknév kezdőbetűje (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Keresztnév', 'first_name_format' => 'Keresztnév (jane@example.com)', 'files' => 'Fájlok', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Kép törlése', 'include_deleted' => 'Törölt eszközök bevonása', 'image_upload' => 'Kép feltöltése', - 'filetypes_accepted_help' => 'Az elfogadott fájltípus :types. A megengedett maximális feltöltési méret :size.|Az elfogadott fájltípusok :types. A megengedett maximális feltöltési méret :size.', - 'filetypes_size_help' => 'A feltölthető méret maximum :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Ez a képfájl nem beolvasható. Az elfogadott fájltípusok: jpg, webp, png, gif és svg. A fájl kódolása: :mimetype.', 'import' => 'Importálás', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Elérhető licenszek', 'licenses' => 'Licencek', 'list_all' => 'Listázd mind', - 'loading' => 'Betöltés, kis türelmet....', + 'loading' => 'Betöltés, kis türelmet...', 'lock_passwords' => 'Ez az érték nem fog elmentődni a demo telepítésekor.', 'feature_disabled' => 'Ez a funkció le van tiltva a demo telepítéshez.', 'location' => 'Helyszín', @@ -193,7 +193,7 @@ return [ 'logout' => 'Kijelentkezés', 'lookup_by_tag' => 'Keresés az Asset Tag segítségével', 'maintenances' => 'Karbantartások', - 'manage_api_keys' => 'API kulcsok kezelése', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Gyártó', 'manufacturers' => 'Gyártók', 'markdown' => 'Ez a mező enged a Github flavored markdown-hoz.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Összes kijelölése', 'search' => 'Keresés', 'select_category' => 'Válasszon egy kategóriát', - 'select_datasource' => 'Válasszon egy adatforrást', + 'select_datasource' => 'Select a data source', 'select_department' => 'Válasszon osztályt', 'select_depreciation' => 'Válasszon ki egy értékcsökkenési típust', 'select_location' => 'Válasszon egy helyet', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Aláírta', 'skin' => 'Kinézet', 'webhook_msg_note' => 'Az értesítések webhookokon keresztül lesznek elküldve', - 'webhook_test_msg' => 'Oh szia! Úgy látszik a te :app integrálásod a Snipe-IT-val sikeres volt!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Néhány funkció le van tiltva a telepítéshez.', 'site_name' => 'Hely neve', 'state' => 'Megye', 'status_labels' => 'Státusz címkék', + 'status_label' => 'Status Label', 'status' => 'Állapot', 'accept_eula' => 'Elfogadási megállapodás', 'supplier' => 'Támogató', @@ -339,16 +340,16 @@ return [ 'view_all' => 'összes megtekintése', 'hide_deleted' => 'Töröltek elrejtése', 'email' => 'E-mail cím', - 'do_not_change' => 'Ne változtasd meg', - 'bug_report' => 'Hiba bejelentése', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Felhasználói kézikönyv', 'setup_step_1' => 'Első lépés', 'setup_step_2' => 'Második lépés', 'setup_step_3' => 'Harmadik lépés', 'setup_step_4' => 'Negyedik lépés', 'setup_config_check' => 'Konfiguráció ellenőrzése', - 'setup_create_database' => 'Adatbázistáblák létrehozása', - 'setup_create_admin' => 'Admin felhasználó elkészítése', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Kész!', 'bulk_edit_about_to' => 'A következőket fogja szerkeszteni: ', 'checked_out' => 'Kiosztva', diff --git a/resources/lang/hu-HU/localizations.php b/resources/lang/hu-HU/localizations.php index e70829c9c..4705cb43d 100644 --- a/resources/lang/hu-HU/localizations.php +++ b/resources/lang/hu-HU/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Maláj', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongol', - 'no-NO'=> 'Norvég', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Perzsa', 'pl-PL'=> 'Lengyel', 'pt-PT'=> 'Portugál', diff --git a/resources/lang/hu-HU/validation.php b/resources/lang/hu-HU/validation.php index a8d2a2c79..043edb955 100644 --- a/resources/lang/hu-HU/validation.php +++ b/resources/lang/hu-HU/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'A: attribútum mezőnek jelen kell lennie.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'A jelenlegi jelszava helytelen', 'dumbpwd' => 'Ez a jelszó túl gyakori.', 'statuslabel_type' => 'Meg kell határoznia egy érvényes állapotcímke típust', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/id-ID/account/general.php b/resources/lang/id-ID/account/general.php index 3dbd1270c..2f04f774b 100644 --- a/resources/lang/id-ID/account/general.php +++ b/resources/lang/id-ID/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/id-ID/admin/locations/message.php b/resources/lang/id-ID/admin/locations/message.php index b9c13093c..6b6d3451b 100644 --- a/resources/lang/id-ID/admin/locations/message.php +++ b/resources/lang/id-ID/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Lokasi tidak ada.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Lokasi saat ini dikaitkan dengan setidaknya oleh satu aset dan tidak dapat dihapus. Perbarui aset Anda yang tidak ada referensi dari lokasi ini dan coba lagi. ', 'assoc_child_loc' => 'Lokasi saat ini digunakan oleh induk salah satu dari turunan lokasi dan tidak dapat di hapus. Mohon perbarui lokasi Anda ke yang tidak ada referensi dengan lokasi ini dan coba kembali. ', 'assigned_assets' => 'Aset yang Ditetapkan', diff --git a/resources/lang/id-ID/admin/settings/general.php b/resources/lang/id-ID/admin/settings/general.php index 3241a264b..65803b437 100644 --- a/resources/lang/id-ID/admin/settings/general.php +++ b/resources/lang/id-ID/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Versi Snipe-IT', 'support_footer' => 'Mendukung Footer Links ', 'support_footer_help' => 'Tentukan siapa yang melihat tautan ke info Dukungan Snipe-IT dan Panduan Pengguna', diff --git a/resources/lang/id-ID/admin/settings/message.php b/resources/lang/id-ID/admin/settings/message.php index 535cde71c..e2f830edd 100644 --- a/resources/lang/id-ID/admin/settings/message.php +++ b/resources/lang/id-ID/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Terdapat kesalahan ketika proses pembersihan. ', 'validation_failed' => 'Konfirmasi pembersihan anda tidak tepat. Silahkan ketikan kata "DELETE" di kotak konfirmasi.', diff --git a/resources/lang/id-ID/button.php b/resources/lang/id-ID/button.php index 45f9ca696..f1c4a0a04 100644 --- a/resources/lang/id-ID/button.php +++ b/resources/lang/id-ID/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/id-ID/general.php b/resources/lang/id-ID/general.php index 4e284887e..b31d2bbbc 100644 --- a/resources/lang/id-ID/general.php +++ b/resources/lang/id-ID/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Barang Habis Pakai', 'country' => 'Negara', 'could_not_restore' => 'Galat memulihkan :item_type: :error', - 'not_deleted' => ':item_type tidak dihapus, jadi tak dapat dipulihkan', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Buat baru', 'created' => 'Item dibuat', 'created_asset' => 'Buat aset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Aplikasi ini berjalan dalam mode produksi dengan debugging diaktifkan. Hal ini dapat mengekspos data sensitif jika aplikasi Anda dapat diakses oleh dunia luar. Nonaktifkan mode debug dengan menetapkan nilai APP_DEBUG di file .env Anda ke false.', 'delete' => 'Hapus', 'delete_confirm' => 'Apakah Anda yakin untuk menghapus kategori ini?', - 'delete_confirm_no_undo' => 'Anda yakin ingin menghapus :item ini? Penghapusan tidak bisa dibatalkan.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Dihapus', 'delete_seats' => 'Lisensi di hapus', 'deletion_failed' => 'Penghapusan gagal', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Nama Belakang Inisial Depan (smith_j@example.com)', 'firstinitial.lastname' => 'Nama Belakang Inisial Pertama (j.smith@example.com)', 'firstnamelastinitial' => 'Nama Depan Inisial Belakang (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Nama Depan', 'first_name_format' => 'Nama Depan (jane@example.com)', 'files' => 'File', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Menghapus gambar', 'include_deleted' => 'Sertakan Aset yang Dihapus', 'image_upload' => 'Unggah gambar', - 'filetypes_accepted_help' => 'Jenis file yang diterima adalah :types. Ukuran unggahan maksimum yang diizinkan adalah :size.', - 'filetypes_size_help' => 'Ukuran unggahan maksimum yang diizinkan adalah :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Pilihan file gambar ini tidak dapat dibaca. Jenis file yang diterima adalah jpg, webp, png, gif, dan svg. Tipe file ini adalah :mimetype.', 'import' => 'Impor', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Lisensi', 'list_all' => 'Tampilkan semua', - 'loading' => 'Memuat, harap tunggu....', + 'loading' => 'Memuat, harap tunggu...', 'lock_passwords' => 'Nilai bidang ini tidak akan disimpan dalam instalasi demo.', 'feature_disabled' => 'Fitur ini telah dinonaktifkan untuk instalasi demo.', 'location' => 'Lokasi', @@ -193,7 +193,7 @@ return [ 'logout' => 'Keluar', 'lookup_by_tag' => 'Mencari berdasarkan tag aset', 'maintenances' => 'Pemeliharaan', - 'manage_api_keys' => 'Mengelola Kunci API', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Produsen', 'manufacturers' => 'Produsen', 'markdown' => 'Field ini mengizinkan Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Pilih Semua', 'search' => 'Cari', 'select_category' => 'Memilih Kategori', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Pilih Departemen', 'select_depreciation' => 'Memilih tipe penyusutan', 'select_location' => 'Memilih lokasi', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Ditandatangani Oleh', 'skin' => 'Tema', 'webhook_msg_note' => 'Pemberitahuan akan dikirim melalui webhook', - 'webhook_test_msg' => 'Oh hai! Sepertinya integrasi :app Anda dengan Snipe-IT berfungsi dengan baik!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO: Beberapa fitur tidak aktif.', 'site_name' => 'Nama Situs', 'state' => 'Provinsi', 'status_labels' => 'Status label', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Perjanjian Penerimaan', 'supplier' => 'Pemasok', @@ -339,16 +340,16 @@ return [ 'view_all' => 'lihat semua', 'hide_deleted' => 'Sembunyikan yang Dihapus', 'email' => 'Email', - 'do_not_change' => 'Jangan Ubah', - 'bug_report' => 'Laporkan Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Panduan Pengguna', 'setup_step_1' => 'Langkah 1', 'setup_step_2' => 'Langkah 2', 'setup_step_3' => 'Langkah 3', 'setup_step_4' => 'Langkah 4', 'setup_config_check' => 'Peninjauan Konfigurasi', - 'setup_create_database' => 'Membuat Tabel Database', - 'setup_create_admin' => 'Buat Pengguna Admin', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Selesai!', 'bulk_edit_about_to' => 'Anda akan mengubah hal berikut ini: ', 'checked_out' => 'Diberikan', diff --git a/resources/lang/id-ID/localizations.php b/resources/lang/id-ID/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/id-ID/localizations.php +++ b/resources/lang/id-ID/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/id-ID/validation.php b/resources/lang/id-ID/validation.php index 7bd5292af..ab3183f3d 100644 --- a/resources/lang/id-ID/validation.php +++ b/resources/lang/id-ID/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Bidang atribut: harus ada.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Kata sandi Anda saat ini salah', 'dumbpwd' => 'Password itu terlalu umum', 'statuslabel_type' => 'Anda harus memilih jenis label status yang valid', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/is-IS/account/general.php b/resources/lang/is-IS/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/is-IS/account/general.php +++ b/resources/lang/is-IS/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/is-IS/admin/locations/message.php b/resources/lang/is-IS/admin/locations/message.php index 20c375904..fce360984 100644 --- a/resources/lang/is-IS/admin/locations/message.php +++ b/resources/lang/is-IS/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Staðsetningin er ekki til.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'This location is currently associated with at least one asset and cannot be deleted. Please update your assets to no longer reference this location and try again. ', 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Skráðar eignir', diff --git a/resources/lang/is-IS/admin/settings/general.php b/resources/lang/is-IS/admin/settings/general.php index d1a6023ff..0a0bd9995 100644 --- a/resources/lang/is-IS/admin/settings/general.php +++ b/resources/lang/is-IS/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/is-IS/admin/settings/message.php b/resources/lang/is-IS/admin/settings/message.php index 931b34371..8f18d4d40 100644 --- a/resources/lang/is-IS/admin/settings/message.php +++ b/resources/lang/is-IS/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'An error has occurred while purging. ', 'validation_failed' => 'Your purge confirmation is incorrect. Please type the word "DELETE" in the confirmation box.', diff --git a/resources/lang/is-IS/button.php b/resources/lang/is-IS/button.php index d8f0b4e03..2593b018e 100644 --- a/resources/lang/is-IS/button.php +++ b/resources/lang/is-IS/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/is-IS/general.php b/resources/lang/is-IS/general.php index f47850a75..908efe9d3 100644 --- a/resources/lang/is-IS/general.php +++ b/resources/lang/is-IS/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Rekstrarvörur', 'country' => 'Land', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Stofna nýtt', 'created' => 'Hlutur stofnaður', 'created_asset' => 'skráði eign', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Eyða', 'delete_confirm' => 'Ertu viss um að þú viljir eyða þessum :item?', - 'delete_confirm_no_undo' => 'Ertu viss um að þú viljir eyða þessum :item? Þessi aðgerð er óafturkræf.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Eytt', 'delete_seats' => 'Eydd leyfi', 'deletion_failed' => 'Eyðing mistókst', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Fornafn', 'first_name_format' => 'Fornafn (jane@example.com)', 'files' => 'Skrár', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Eyða mynd', 'include_deleted' => 'Inniheldur eyddar eignir', 'image_upload' => 'Hlaða upp mynd', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Flytja inn', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Hugbúnaðarleyfi í boði', 'licenses' => 'Leyfi', 'list_all' => 'Sýna allt', - 'loading' => 'Hleð... vinsamlega bíðið....', + 'loading' => 'Hleð... vinsamlega bíðið...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'This feature has been disabled for the demo installation.', 'location' => 'Staðsetning', @@ -193,7 +193,7 @@ return [ 'logout' => 'Útskráning', 'lookup_by_tag' => 'Leita eftir merki eignar', 'maintenances' => 'Viðhald', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Framleiðandi', 'manufacturers' => 'Framleiðendur', 'markdown' => 'This field allows Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Veldu alla', 'search' => 'Leita', 'select_category' => 'Veldu flokk', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Veldu deild', 'select_depreciation' => 'Veldu afskriftir', 'select_location' => 'Veldu Staðsetningu', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Undirritað af', 'skin' => 'Útlit', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Nafn vefsins', 'state' => 'Ríki', 'status_labels' => 'Stöðu merkingar', + 'status_label' => 'Status Label', 'status' => 'Staða', 'accept_eula' => 'Samþykkja skilyrði', 'supplier' => 'Framleiðandi', @@ -339,16 +340,16 @@ return [ 'view_all' => 'Skoða allt', 'hide_deleted' => 'Hide Deleted', 'email' => 'Tölvupóstur', - 'do_not_change' => 'EKKI BREYTA', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Skráð út', diff --git a/resources/lang/is-IS/localizations.php b/resources/lang/is-IS/localizations.php index aa6176add..fd2d8233f 100644 --- a/resources/lang/is-IS/localizations.php +++ b/resources/lang/is-IS/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/is-IS/validation.php b/resources/lang/is-IS/validation.php index 7ef26d728..74df5d1dc 100644 --- a/resources/lang/is-IS/validation.php +++ b/resources/lang/is-IS/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'The :attribute field must be present.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Your current password is incorrect', 'dumbpwd' => 'Þetta lykilorð er of algengt.', 'statuslabel_type' => 'You must select a valid status label type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/it-IT/account/general.php b/resources/lang/it-IT/account/general.php index 0082f2a9e..c49a4b5e5 100644 --- a/resources/lang/it-IT/account/general.php +++ b/resources/lang/it-IT/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Controlla la Guida di Riferimento delle API per trovare specifici endpoint API e documentazione aggiuntiva.', 'profile_updated' => 'Account aggiornato con successo', 'no_tokens' => 'Non hai creato nessun token di accesso personale.', + 'enable_sounds' => 'Attiva gli effetti sonori', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/it-IT/admin/locations/message.php b/resources/lang/it-IT/admin/locations/message.php index 1ddfc0381..b12790879 100644 --- a/resources/lang/it-IT/admin/locations/message.php +++ b/resources/lang/it-IT/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'La posizione non esiste.', - 'assoc_users' => 'Non puoi cancellare questa posizione perché è la posizione di almeno un bene o un utente, ha dei beni assegnati, o è la posizione principale di un\'altra posizione. Aggiornare i modelli per non fare più riferimento a questa azienda e riprovare. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Questa posizione è associata ad almeno un prodotto e non può essere cancellata. Si prega di aggiornare i vostri prodotti di riferimento e riprovare. ', 'assoc_child_loc' => 'Questa posizione è parente di almeno un\'altra posizione e non può essere cancellata. Si prega di aggiornare le vostre posizioni di riferimento e riprovare. ', 'assigned_assets' => 'Beni Assegnati', diff --git a/resources/lang/it-IT/admin/settings/general.php b/resources/lang/it-IT/admin/settings/general.php index de6ee08ee..7293b88dd 100644 --- a/resources/lang/it-IT/admin/settings/general.php +++ b/resources/lang/it-IT/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => 'L\'integrazione con :app è facoltativa, ma se si desidera utilizzarla bisogna specificare l\'endpoint e il canale. Per configurare l\'integrazione devi creare un webhook in arrivo sul tuo account :app . Clicca su Prova integrazione :app per confermare che le impostazioni siano corrette prima di salvare. ', 'webhook_integration_help_button' => 'Una volta salvate le informazioni di :app, apparirà un pulsante di prova.', 'webhook_test_help' => 'Verifica se l\'integrazione :app è configurata correttamente. DEVI PRIMA SALVARE LE IMPOSTAZIONI :app AGGIORNATE.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Supporto per i collegamenti a piè di pagina ', 'support_footer_help' => 'Specificare chi vede i collegamenti alle informazioni sul supporto IT e su Snipe-IT', diff --git a/resources/lang/it-IT/admin/settings/message.php b/resources/lang/it-IT/admin/settings/message.php index 49dffc56f..110bb626b 100644 --- a/resources/lang/it-IT/admin/settings/message.php +++ b/resources/lang/it-IT/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Si, ripristina. Riconosco che il ripristino sovrascriverà tutti i dati al momento presenti nel database. Inoltre, tutti gli utenti verranno disconnessi (incluso te).', 'restore_confirm' => 'Sei sicuro di voler ripristinare il tuo database da :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Si è verificato un errore durante la pulizia. ', 'validation_failed' => 'La conferma dell\'eliminazione non è corretta. Digita "DELETE" nel box di conferma.', diff --git a/resources/lang/it-IT/button.php b/resources/lang/it-IT/button.php index d32b7647d..e2c400b10 100644 --- a/resources/lang/it-IT/button.php +++ b/resources/lang/it-IT/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/it-IT/general.php b/resources/lang/it-IT/general.php index 7e788cf20..466d310ef 100644 --- a/resources/lang/it-IT/general.php +++ b/resources/lang/it-IT/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumabili', 'country' => 'Paese', 'could_not_restore' => 'Errore nel ripristino di :item_type: :error', - 'not_deleted' => 'Il :item_type non può essere ripristinato perché non è stato cancellato', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Crea', 'created' => 'Articolo creato', 'created_asset' => 'bene creato', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Questa applicazione è in esecuzione in modalità di produzione con il debug abilitato. Questo può esporre dati sensibili se l\'applicazione è accessibile al mondo esterno. Disabilitare la modalità di debug impostando il valore APP_DEBUG nel file .env su false.', 'delete' => 'Elimina', 'delete_confirm' => 'Sei sicuro di voler eliminare :item?', - 'delete_confirm_no_undo' => 'Sei sicuro di voler cancellare :item? Questa azione non può essere annullata.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Eliminata', 'delete_seats' => 'Posti Cancellati', 'deletion_failed' => 'Eliminazione fallita', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Cognome_ Iniziale Nome (smith_j@example.com)', 'firstinitial.lastname' => 'Iniziale Nome . Cognome (j.smith@example.com)', 'firstnamelastinitial' => 'Nome + Iniziale Cognome (janes@example.com)', - 'lastnamefirstname' => 'Cognome Nome (smith.jane@esempio.it)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Nome', 'first_name_format' => 'Nome (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Cancella l\'Immagine', 'include_deleted' => 'Includi i Beni Eliminati', 'image_upload' => 'Carica immagine', - 'filetypes_accepted_help' => 'Tipo di file accettato :types. Dimensione massima di caricamento :size.|Tipi di file accettati :types. Dimensione massima di caricamento :size.', - 'filetypes_size_help' => 'Dimensione massima di caricamento :size.', - 'image_filetypes_help' => 'I tipi di file accettati sono jpg, webp, png, gif, svg e avif. La dimensione massima consentita è :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Questo immagine non è leggibile. I tipi di file accettati sono jpg, webp, png, gif e svg. Il tipo di questo file è :mimetype.', 'import' => 'Importa', 'import_this_file' => 'Mappa i campi ed elabora questo file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenze disponibili', 'licenses' => 'Licenze', 'list_all' => 'Visualizza Tutti', - 'loading' => 'Caricamento... attendere prego....', + 'loading' => 'Caricamento... attendere prego...', 'lock_passwords' => 'Questo valore non verrà salvato in un\'installazione demo.', 'feature_disabled' => 'Questa funzionalità è stata disabilitata per l\'installazione demo.', 'location' => 'Luogo', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logout', 'lookup_by_tag' => 'Ricerca per Etichetta Bene', 'maintenances' => 'Manutenzioni', - 'manage_api_keys' => 'Gestisci le Chiavi API', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Produttore', 'manufacturers' => 'Produttori', 'markdown' => 'Questo campo consente un Markdown di tipo Github.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Seleziona tutto', 'search' => 'Cerca', 'select_category' => 'Seleziona una categoria', - 'select_datasource' => 'Seleziona una Origine Dati', + 'select_datasource' => 'Select a data source', 'select_department' => 'Seleziona un Reparto', 'select_depreciation' => 'Seleziona un tipo di Svalutazione', 'select_location' => 'Seleziona un Luogo', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Firmato Da', 'skin' => 'Tema', 'webhook_msg_note' => 'Una notifica verrà inviata tramite webhook', - 'webhook_test_msg' => 'Ciao! Sembra che l\'integrazione di :app su Snipe-IT funzioni!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO: Alcune caratteristiche sono disabilitate in questa modalità.', 'site_name' => 'Nome sito', 'state' => 'Provincia', 'status_labels' => 'Etichette di Stato', + 'status_label' => 'Status Label', 'status' => 'Stato', 'accept_eula' => 'Accettazione Accordo', 'supplier' => 'Fornitore', @@ -339,16 +340,16 @@ return [ 'view_all' => 'visualizza tutti', 'hide_deleted' => 'Nascondi Eliminati', 'email' => 'Email', - 'do_not_change' => 'Non Cambiare', - 'bug_report' => 'Segnala un Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Manuale Utente', 'setup_step_1' => 'Passo 1', 'setup_step_2' => 'Passo 2', 'setup_step_3' => 'Passo 3', 'setup_step_4' => 'Passo 4', 'setup_config_check' => 'Controllo Configurazione', - 'setup_create_database' => 'Crea tabelle database', - 'setup_create_admin' => 'Crea utente Amministratore', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finito!', 'bulk_edit_about_to' => 'Stai per modificare quanto segue: ', 'checked_out' => 'Assegnato', diff --git a/resources/lang/it-IT/localizations.php b/resources/lang/it-IT/localizations.php index cc7ff23b1..c56b06d73 100644 --- a/resources/lang/it-IT/localizations.php +++ b/resources/lang/it-IT/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malese', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolo', - 'no-NO'=> 'Norvegese', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persiano', 'pl-PL'=> 'Polacco', 'pt-PT'=> 'Portoghese', diff --git a/resources/lang/it-IT/validation.php b/resources/lang/it-IT/validation.php index 753136c6a..48b47f87b 100644 --- a/resources/lang/it-IT/validation.php +++ b/resources/lang/it-IT/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Il campo :attribute deve essere presente.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'La tua attuale password non è corretta', 'dumbpwd' => 'Questa password è troppo comune.', 'statuslabel_type' => 'È necessario selezionare un tipo di etichetta di stato valido', + 'custom_field_not_found' => 'Questo campo non sembra esistere, si prega di ricontrollare i nomi dei campi personalizzati.', + 'custom_field_not_found_on_model' => 'Sembra che questo campo esista, ma non è disponibile tra i campi di questo Modello di Bene.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/iu-NU/account/general.php b/resources/lang/iu-NU/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/iu-NU/account/general.php +++ b/resources/lang/iu-NU/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/iu-NU/admin/locations/message.php b/resources/lang/iu-NU/admin/locations/message.php index 8121b8068..6226c71ab 100644 --- a/resources/lang/iu-NU/admin/locations/message.php +++ b/resources/lang/iu-NU/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Location does not exist.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'This location is currently associated with at least one asset and cannot be deleted. Please update your assets to no longer reference this location and try again. ', 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/iu-NU/admin/settings/general.php b/resources/lang/iu-NU/admin/settings/general.php index 9ba69ef22..31165cf3f 100644 --- a/resources/lang/iu-NU/admin/settings/general.php +++ b/resources/lang/iu-NU/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/iu-NU/admin/settings/message.php b/resources/lang/iu-NU/admin/settings/message.php index c9b0f3421..24e2d292c 100644 --- a/resources/lang/iu-NU/admin/settings/message.php +++ b/resources/lang/iu-NU/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'An error has occurred while purging. ', 'validation_failed' => 'Your purge confirmation is incorrect. Please type the word "DELETE" in the confirmation box.', diff --git a/resources/lang/iu-NU/button.php b/resources/lang/iu-NU/button.php index 51c54bb9b..8a838e8fa 100644 --- a/resources/lang/iu-NU/button.php +++ b/resources/lang/iu-NU/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/iu-NU/general.php b/resources/lang/iu-NU/general.php index b3a6b3432..444ed5408 100644 --- a/resources/lang/iu-NU/general.php +++ b/resources/lang/iu-NU/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'First Name', 'first_name_format' => 'First Name (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Delete Image', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Upload Image', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Licenses', 'list_all' => 'List All', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'This feature has been disabled for the demo installation.', 'location' => 'Location', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logout', 'lookup_by_tag' => 'Lookup by Asset Tag', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Manufacturer', 'manufacturers' => 'Manufacturers', 'markdown' => 'This field allows Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Search', 'select_category' => 'Select a Category', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Select a Department', 'select_depreciation' => 'Select a Depreciation Type', 'select_location' => 'Select a Location', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Site Name', 'state' => 'State', 'status_labels' => 'Status Labels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Supplier', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Email', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', diff --git a/resources/lang/iu-NU/localizations.php b/resources/lang/iu-NU/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/iu-NU/localizations.php +++ b/resources/lang/iu-NU/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/iu-NU/validation.php b/resources/lang/iu-NU/validation.php index b33548e2f..634170791 100644 --- a/resources/lang/iu-NU/validation.php +++ b/resources/lang/iu-NU/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'The :attribute field must be present.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Your current password is incorrect', 'dumbpwd' => 'That password is too common.', 'statuslabel_type' => 'You must select a valid status label type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/ja-JP/account/general.php b/resources/lang/ja-JP/account/general.php index 8559381df..961f1bb93 100644 --- a/resources/lang/ja-JP/account/general.php +++ b/resources/lang/ja-JP/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => '効果音を有効にする', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/ja-JP/admin/locations/message.php b/resources/lang/ja-JP/admin/locations/message.php index d9bd56017..3ec4688cb 100644 --- a/resources/lang/ja-JP/admin/locations/message.php +++ b/resources/lang/ja-JP/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'ロケーションが存在しません。', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'この設置場所は1人以上の利用者に関連付けされているため、削除できません。設置場所の関連付けを削除し、もう一度試して下さい。 ', 'assoc_child_loc' => 'この設置場所は、少なくとも一つの配下の設置場所があります。この設置場所を参照しないよう更新して下さい。 ', 'assigned_assets' => '割り当て済みアセット', diff --git a/resources/lang/ja-JP/admin/settings/general.php b/resources/lang/ja-JP/admin/settings/general.php index 87b17bce7..e7365c2d6 100644 --- a/resources/lang/ja-JP/admin/settings/general.php +++ b/resources/lang/ja-JP/admin/settings/general.php @@ -221,6 +221,8 @@ return [ 'webhook_integration_help' => 'Slackとの連携は任意ですが、利用する場合はエンドポイントとチャンネルが必要です。Slackとの連携を設定するには、まず、SlackにIncoming Webhookを作成する必要があります。Slack統合テスト ボタンをクリックし、設定が正しいことを確認してから保存してください。 ', 'webhook_integration_help_button' => ':app の設定を保存すると、テストボタンが表示されます。', 'webhook_test_help' => ':app の連携が正しく設定されているかどうかをテストします。:app の設定を最初に保存しなければなりません。', + 'shortcuts_enabled' => 'ショートカットを有効化', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT バージョン', 'support_footer' => 'フッターのリンクをサポートします。 ', 'support_footer_help' => 'Snipe-ITサポート情報とユーザーマニュアルへのリンクを確認する', diff --git a/resources/lang/ja-JP/admin/settings/message.php b/resources/lang/ja-JP/admin/settings/message.php index 9b97d3576..41ba319b0 100644 --- a/resources/lang/ja-JP/admin/settings/message.php +++ b/resources/lang/ja-JP/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => '復元を行います。現在データベースにある既存のデータを上書きします。 これにより、既存のすべてのユーザー(あなたを含む) もログアウトします。', 'restore_confirm' => ':filename からデータベースを復元してもよろしいですか?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'パージ中にエラーが発生しました。 ', 'validation_failed' => 'パージの確定方法が正しくありません。入力してください、単語「削除」確認ボックス。', diff --git a/resources/lang/ja-JP/button.php b/resources/lang/ja-JP/button.php index 63b37c894..609720810 100644 --- a/resources/lang/ja-JP/button.php +++ b/resources/lang/ja-JP/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/ja-JP/general.php b/resources/lang/ja-JP/general.php index e253003f3..621fa7922 100644 --- a/resources/lang/ja-JP/general.php +++ b/resources/lang/ja-JP/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => '消耗品数', 'country' => '国', 'could_not_restore' => ':item_type: の復元エラー :error', - 'not_deleted' => ':item_type は削除されないため、復元できません', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => '新規作成', 'created' => 'アイテムを作成しました', 'created_asset' => '資産を作成', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'このアプリケーションはデバッグモードがONのままプロダクションモードで実行されています。もしアプリケーションが外部からアクセス可能な場合、機密データが抜き取られる可能性があります。.envAPP_DEBUGfalseにしてください。', 'delete' => '削除', 'delete_confirm' => ':item を削除してもよろしいですか?', - 'delete_confirm_no_undo' => ':itemを削除してもよろしいですか?これは元に戻すことはできません。', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => '削除しました。', 'delete_seats' => 'ライセンスを削除', 'deletion_failed' => '削除に失敗しました', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => '苗字_名前のイニシャル (smith_j@example.com)', 'firstinitial.lastname' => '名前.イニシャルと苗字 (j.smith@example.com)', 'firstnamelastinitial' => '名前と苗字のイニシャル (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => '名前', 'first_name_format' => '名前 (jane@example.com)', 'files' => 'ファイル', @@ -156,9 +156,9 @@ return [ 'image_delete' => '画像を削除', 'include_deleted' => '削除された資産を含める', 'image_upload' => '画像をアップロード', - 'filetypes_accepted_help' => 'アップロード可能なファイル形式は :types です。アップロード可能な最大サイズは :size です。|アップロード可能なファイル形式は :types です。アップロード可能な最大サイズは :size です。', - 'filetypes_size_help' => '許可されている最大アップロードサイズは :size です。', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'この画像ファイルは読み取れませんでした。受け入れられるファイルタイプはjpg、webp、png、gif、svgです。このファイルのmimetypeは:mimetypeです。', 'import' => 'インポート', 'import_this_file' => 'フィールドをマップし、このファイルを処理します', @@ -183,7 +183,7 @@ return [ 'licenses_available' => '利用可能なライセンス', 'licenses' => 'ライセンス数', 'list_all' => '全ての一覧', - 'loading' => '読み込み中… お待ちください…', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'このフィールド値はデモインストールでは保存されません。', 'feature_disabled' => 'この機能は、デモインストールでは無効化されています。', 'location' => '設置場所', @@ -193,7 +193,7 @@ return [ 'logout' => 'ログアウト', 'lookup_by_tag' => '資産タグで参照', 'maintenances' => 'メンテナンス', - 'manage_api_keys' => 'APIキーの管理', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => '製造元', 'manufacturers' => '製造元の数', 'markdown' => 'このフィールドでは Github flavored markdown. が利用可能です', @@ -254,7 +254,7 @@ return [ 'select_all' => 'すべて選択', 'search' => '検索', 'select_category' => 'カテゴリを選択', - 'select_datasource' => 'データソースを選択', + 'select_datasource' => 'Select a data source', 'select_department' => '部署を選択', 'select_depreciation' => '減価償却タイプを選択', 'select_location' => '設置場所を選択', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => '署名された', 'skin' => 'スキン', 'webhook_msg_note' => 'Webhook経由で通知が送信されます', - 'webhook_test_msg' => ':app とSnipe-ITの連携がうまくいっているようです!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'デモモード : いくつかの機能はこのインストールでは無効化されます', 'site_name' => 'サイト名', 'state' => '都道府県', 'status_labels' => 'ステータスラベル', + 'status_label' => 'Status Label', 'status' => 'ステータス', 'accept_eula' => '受け入れ同意', 'supplier' => '仕入先', @@ -339,16 +340,16 @@ return [ 'view_all' => 'すべて表示', 'hide_deleted' => '削除されたものを隠す', 'email' => 'メール', - 'do_not_change' => '変更しない', - 'bug_report' => 'バグを報告', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'ユーザーマニュアル', 'setup_step_1' => 'ステップ 1', 'setup_step_2' => 'ステップ 2', 'setup_step_3' => 'ステップ 3', 'setup_step_4' => 'ステップ 4', 'setup_config_check' => '設定チェック', - 'setup_create_database' => 'データベーステーブルの作成', - 'setup_create_admin' => '管理者ユーザーを作成', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => '完了しました!', 'bulk_edit_about_to' => '次を編集しようとしています: ', 'checked_out' => 'チェックアウト', diff --git a/resources/lang/ja-JP/localizations.php b/resources/lang/ja-JP/localizations.php index 07edf8a50..e09408cd7 100644 --- a/resources/lang/ja-JP/localizations.php +++ b/resources/lang/ja-JP/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/ja-JP/validation.php b/resources/lang/ja-JP/validation.php index 7fd961d13..933c384fa 100644 --- a/resources/lang/ja-JP/validation.php +++ b/resources/lang/ja-JP/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => ':attribute フィールドは必須です。', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => '現在のパスワードが正しくありません。', 'dumbpwd' => 'そのパスワードはあまりにも脆弱です。', 'statuslabel_type' => '有効なステータスラベルの種類を選択する必要があります。', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/km-KH/account/general.php b/resources/lang/km-KH/account/general.php index 3a02971b3..48bc8f630 100644 --- a/resources/lang/km-KH/account/general.php +++ b/resources/lang/km-KH/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'ធ្វើបច្ចុប្បន្នភាពគណនីដោយជោគជ័យ', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/km-KH/admin/locations/message.php b/resources/lang/km-KH/admin/locations/message.php index 326cd9793..2db546b4c 100644 --- a/resources/lang/km-KH/admin/locations/message.php +++ b/resources/lang/km-KH/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'ទីតាំងមិនមានទេ។', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'បច្ចុប្បន្នទីតាំងនេះត្រូវបានភ្ជាប់ជាមួយទ្រព្យសកម្មយ៉ាងហោចណាស់មួយ ហើយមិនអាចលុបបានទេ។ សូមអាប់ដេតទ្រព្យសកម្មរបស់អ្នក ដើម្បីកុំឱ្យយោងទីតាំងនេះតទៅទៀត ហើយព្យាយាមម្តងទៀត។ ', 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'ទ្រព្យសកម្មដែលបានចាត់តាំង', diff --git a/resources/lang/km-KH/admin/settings/general.php b/resources/lang/km-KH/admin/settings/general.php index 17c3bf7f8..9e34f6f98 100644 --- a/resources/lang/km-KH/admin/settings/general.php +++ b/resources/lang/km-KH/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/km-KH/admin/settings/message.php b/resources/lang/km-KH/admin/settings/message.php index 3b837d170..6890e31a3 100644 --- a/resources/lang/km-KH/admin/settings/message.php +++ b/resources/lang/km-KH/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'បាទ ស្ដារវាឡើងវិញ។ ខ្ញុំទទួលស្គាល់ថាវានឹងសរសេរជាន់លើទិន្នន័យដែលមានស្រាប់ណាមួយនាពេលបច្ចុប្បន្ននៅក្នុងមូលដ្ឋានទិន្នន័យ។ វាក៏នឹងចេញពីអ្នកប្រើប្រាស់ដែលមានស្រាប់របស់អ្នកទាំងអស់ (រួមទាំងអ្នក)', 'restore_confirm' => 'តើ​អ្នក​ប្រាកដ​ថា​អ្នក​ចង់​ស្ដារ​មូលដ្ឋាន​ទិន្នន័យ​របស់​អ្នក​ពី :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'កំហុសបានកើតឡើងខណៈពេលកំពុងសម្អាត។ ', 'validation_failed' => 'ការបញ្ជាក់ការសម្អាតរបស់អ្នកមិនត្រឹមត្រូវទេ។ សូមវាយពាក្យ "DELETE" នៅក្នុងប្រអប់បញ្ជាក់។', diff --git a/resources/lang/km-KH/button.php b/resources/lang/km-KH/button.php index 6c5450a04..3c37f2c4f 100644 --- a/resources/lang/km-KH/button.php +++ b/resources/lang/km-KH/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/km-KH/general.php b/resources/lang/km-KH/general.php index 3fb07c6d6..469f2404e 100644 --- a/resources/lang/km-KH/general.php +++ b/resources/lang/km-KH/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'ប្រទេស', 'could_not_restore' => 'កំហុសក្នុងការស្តារ :item_type: :error', - 'not_deleted' => ':item_type មិនត្រូវបានលុបទេ ដូច្នេះវាមិនអាចស្ដារឡើងវិញបានទេ។', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'បង្កើត​ថ្មី', 'created' => 'ធាតុត្រូវបានបង្កើត', 'created_asset' => 'ទ្រព្យសកម្មដែលបានបង្កើត', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'កម្មវិធី​នេះ​កំពុង​ដំណើរការ​ក្នុង​ទម្រង់​ផលិត​ដោយ​បាន​បើក​ការ​បំបាត់​កំហុស។ វាអាចបង្ហាញទិន្នន័យរសើប ប្រសិនបើកម្មវិធីរបស់អ្នកអាចចូលប្រើបានទៅកាន់ពិភពខាងក្រៅ។ បិទមុខងារបំបាត់កំហុសដោយកំណត់តម្លៃ APP_DEBUG នៅក្នុងឯកសារ .env របស់អ្នកទៅជា false។', 'delete' => 'លុប', 'delete_confirm' => 'តើអ្នកប្រាកដថាចង់លុប :item មែនទេ?', - 'delete_confirm_no_undo' => 'តើអ្នកប្រាកដថាចង់លុប :item មែនទេ? នេះមិនអាចត្រឡប់វិញបានទេ។', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'បានលុប', 'delete_seats' => 'កៅអីដែលបានលុប', 'deletion_failed' => 'ការលុបបានបរាជ័យ', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'នាមត្រកូល នាមខ្លួនដំបូង (smith_j@example.com)', 'firstinitial.lastname' => 'នាមត្រកូលដំបូង (j.smith@example.com)', 'firstnamelastinitial' => 'នាមខ្លួន នាមត្រកូលដំបូង (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'នាមខ្លួន', 'first_name_format' => 'នាមខ្លួន (jane@example.com)', 'files' => 'ឯកសារ', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'លុបរូបភាព', 'include_deleted' => 'រួមបញ្ចូលទ្រព្យសម្បត្តិដែលបានលុប', 'image_upload' => 'បង្ហោះរូបភាព', - 'filetypes_accepted_help' => 'ប្រភេទឯកសារដែលទទួលយកគឺ៖ ប្រភេទ. ទំហំផ្ទុកឡើងអតិបរមាដែលអនុញ្ញាតគឺ :size.|ប្រភេទឯកសារដែលទទួលយកគឺ :types. ទំហំផ្ទុកឡើងអតិបរមាដែលអនុញ្ញាតគឺ៖ ទំហំ.', - 'filetypes_size_help' => 'ទំហំផ្ទុកឡើងអតិបរមាដែលអនុញ្ញាតគឺ :ទំហំ.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'ឯកសាររូបភាពនេះមិនអាចអានបានទេ។ ប្រភេទឯកសារដែលទទួលយកគឺ jpg, webp, png, gif និង svg ។ ប្រភេទ mime នៃឯកសារនេះគឺ៖ :mimetype.', 'import' => 'នាំចូល', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'មានអាជ្ញាប័ណ្ណ', 'licenses' => 'អាជ្ញាប័ណ្ណ', 'list_all' => 'រាយបញ្ជីទាំងអស់', - 'loading' => 'កំពុងផ្ទុក... សូមរង់ចាំ....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'តម្លៃវាលនេះនឹងមិនត្រូវបានរក្សាទុកក្នុងការដំឡើងសាកល្បងទេ។', 'feature_disabled' => 'មុខងារនេះត្រូវបានបិទសម្រាប់ការដំឡើងសាកល្បង។', 'location' => 'ទីតាំង', @@ -193,7 +193,7 @@ return [ 'logout' => 'ចាកចេញ', 'lookup_by_tag' => 'រកមើលដោយស្លាកទ្រព្យសម្បត្តិ', 'maintenances' => 'ការថែទាំ', - 'manage_api_keys' => 'គ្រប់គ្រង API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'ក្រុមហ៊ុនផលិត', 'manufacturers' => 'ក្រុមហ៊ុនផលិត', 'markdown' => 'វាលនេះអនុញ្ញាតឱ្យ Github flavored markdown។', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Search', 'select_category' => 'Select a Category', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Select a Department', 'select_depreciation' => 'Select a Depreciation Type', 'select_location' => 'ជ្រើសរើសទីតាំងមួយ', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'ស្បែក', 'webhook_msg_note' => 'ការជូនដំណឹងនឹងត្រូវបានផ្ញើតាមរយៈ webhook', - 'webhook_test_msg' => 'អូ ហៃ! មើលទៅដូចជា៖ ការរួមបញ្ចូលកម្មវិធីរបស់អ្នកជាមួយ Snipe-IT កំពុងដំណើរការ!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'របៀបសាកល្បង៖ មុខងារមួយចំនួនត្រូវបានបិទសម្រាប់ការដំឡើងនេះ។', 'site_name' => 'ឈ្មោះ​វេ​ប​សាយ', 'state' => 'រដ្ឋ', 'status_labels' => 'Status Labels', + 'status_label' => 'Status Label', 'status' => 'ស្ថានភាព', 'accept_eula' => 'ទទួលយកកិច្ចព្រមព្រៀង', 'supplier' => 'អ្នកផ្គត់ផ្គង់', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Email', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', diff --git a/resources/lang/km-KH/localizations.php b/resources/lang/km-KH/localizations.php index 7abb9b3d5..9bc3ba1aa 100644 --- a/resources/lang/km-KH/localizations.php +++ b/resources/lang/km-KH/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'ម៉ាឡេ', 'mi-NZ'=> 'ម៉ៅរី', 'mn-MN'=> 'ម៉ុងហ្គោលី', - 'no-NO'=> 'ន័រវេស', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'ពែរ្ស', 'pl-PL'=> 'ប៉ូឡូញ', 'pt-PT'=> 'ព័រទុយហ្គាល់', diff --git a/resources/lang/km-KH/validation.php b/resources/lang/km-KH/validation.php index b33548e2f..634170791 100644 --- a/resources/lang/km-KH/validation.php +++ b/resources/lang/km-KH/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'The :attribute field must be present.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Your current password is incorrect', 'dumbpwd' => 'That password is too common.', 'statuslabel_type' => 'You must select a valid status label type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/ko-KR/account/general.php b/resources/lang/ko-KR/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/ko-KR/account/general.php +++ b/resources/lang/ko-KR/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/ko-KR/admin/locations/message.php b/resources/lang/ko-KR/admin/locations/message.php index 364b2dbd6..c02b6f0d8 100644 --- a/resources/lang/ko-KR/admin/locations/message.php +++ b/resources/lang/ko-KR/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => '장소가 존재하지 않습니다.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => '이 장소는 현재 적어도 한명의 사용자와 연결되어 있어서 삭제할 수 없습니다. 사용자가 더 이상 이 장소를 참조하지 않게 갱신하고 다시 시도해주세요. ', 'assoc_child_loc' => '이 장소는 현재 하나 이상의 하위 장소를 가지고 있기에 삭제 할 수 없습니다. 이 장소의 참조를 수정하고 다시 시도해 주세요. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/ko-KR/admin/settings/general.php b/resources/lang/ko-KR/admin/settings/general.php index 9e2def2bd..970e2f032 100644 --- a/resources/lang/ko-KR/admin/settings/general.php +++ b/resources/lang/ko-KR/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT 버전', 'support_footer' => '꼬리말 링크 지원', 'support_footer_help' => 'Snipe-IT 지원 정보 및 사용자 매뉴얼 보기 권한 설정', diff --git a/resources/lang/ko-KR/admin/settings/message.php b/resources/lang/ko-KR/admin/settings/message.php index 7fb39894a..00a06079e 100644 --- a/resources/lang/ko-KR/admin/settings/message.php +++ b/resources/lang/ko-KR/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => '삭제중 오류가 발생하였습니다. ', 'validation_failed' => '삭제 확인 절차가 잘못되었습니다. 확인 상자에 "DELETE"를 입력해 주세요.', diff --git a/resources/lang/ko-KR/button.php b/resources/lang/ko-KR/button.php index fc4b5d344..6541d116a 100644 --- a/resources/lang/ko-KR/button.php +++ b/resources/lang/ko-KR/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/ko-KR/general.php b/resources/lang/ko-KR/general.php index b3d2e0137..3fbc48f1f 100644 --- a/resources/lang/ko-KR/general.php +++ b/resources/lang/ko-KR/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => '소모품', 'country' => '국가명', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => '새로 생성', 'created' => '품목 생성됨', 'created_asset' => '생성된 자산', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => '이 프로그램은 디버깅이 가능한 제품 모드에서 구동중입니다. 당신의 프로그램이 외부 환경과 접속이 가능하다면 중요한 자료가 유출될 수 있습니다. .env 파일의 APP_DEBUG 값을 false 로 설정하여 디버깅을 비활성화 하세요.', 'delete' => '삭제', 'delete_confirm' => ':item 을 삭제 하시겠습니까?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => '삭제됨', 'delete_seats' => '삭제한 Seat', 'deletion_failed' => '삭제 실패', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => '이름', 'first_name_format' => '이름 (jane@example.com)', 'files' => '파일', @@ -156,9 +156,9 @@ return [ 'image_delete' => '이미지 삭제', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => '이미지 올리기', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => '불러오기', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => '라이선스', 'list_all' => '전체 목록보기', - 'loading' => '로딩 중입니다. 잠시만 기다려 주십시오.', + 'loading' => 'Loading... please wait...', 'lock_passwords' => '이 항목은 데모에서 저장이 불가능합니다.', 'feature_disabled' => '데모 설치본에서는 이 기능을 사용할 수 없습니다.', 'location' => '장소', @@ -193,7 +193,7 @@ return [ 'logout' => '로그아웃', 'lookup_by_tag' => '자산 태그로 조회', 'maintenances' => '유지 관리', - 'manage_api_keys' => 'API Key 관리', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => '제조업체', 'manufacturers' => '제조업체', 'markdown' => '이 항목은 GFM을 따릅니다.', @@ -254,7 +254,7 @@ return [ 'select_all' => '모두 선택', 'search' => '찾기', 'select_category' => '분류 선택', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => '부서 선택', 'select_depreciation' => '감가 상각 유형 선택', 'select_location' => '장소 선택', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => '스킨', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => '데모 모드: 설치 시 일부 기능은 사용할 수 없습니다.', 'site_name' => '사이트 명', 'state' => '주', 'status_labels' => '상태 딱지', + 'status_label' => 'Status Label', 'status' => '상태', 'accept_eula' => 'Acceptance Agreement', 'supplier' => '공급자', @@ -339,16 +340,16 @@ return [ 'view_all' => '모두 보기', 'hide_deleted' => 'Hide Deleted', 'email' => '이메일', - 'do_not_change' => 'Do Not Change', - 'bug_report' => '오류 보고', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => '사용자 설명서', 'setup_step_1' => '1 단계', 'setup_step_2' => '2 단계', 'setup_step_3' => '3 단계', 'setup_step_4' => '4 단계', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => '관리자 유저 생성', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => '완료됨', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => '반출 확인', diff --git a/resources/lang/ko-KR/localizations.php b/resources/lang/ko-KR/localizations.php index 863b6890a..30d41de63 100644 --- a/resources/lang/ko-KR/localizations.php +++ b/resources/lang/ko-KR/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/ko-KR/validation.php b/resources/lang/ko-KR/validation.php index 3e1d42d4a..5e61b80ff 100644 --- a/resources/lang/ko-KR/validation.php +++ b/resources/lang/ko-KR/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => ':attribute 항목이 있어야 합니다.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => '현재 비밀번호가 잘못되었습니다.', 'dumbpwd' => '그 비밀번호는 너무 일반적입니다.', 'statuslabel_type' => '유효한 상태 라벨 형식을 선택해 주셔야 합니다', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/lt-LT/account/general.php b/resources/lang/lt-LT/account/general.php index 3b13aa1e8..e2c76ecb8 100644 --- a/resources/lang/lt-LT/account/general.php +++ b/resources/lang/lt-LT/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Peržiūrėkite API informaciją, kad rastumėte konkrečius API galinius taškus ir papildomą API dokumentaciją.', 'profile_updated' => 'Paskyra atnaujinta sėkmingai', 'no_tokens' => 'Nesate sukūrę jokių asmeninių prieigos raktų.', + 'enable_sounds' => 'Įjungti garso efektus', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/lt-LT/admin/depreciations/message.php b/resources/lang/lt-LT/admin/depreciations/message.php index 433a1bb48..20c24dd2a 100644 --- a/resources/lang/lt-LT/admin/depreciations/message.php +++ b/resources/lang/lt-LT/admin/depreciations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Nėra tokios nusidėvėjimo klasės.', - 'assoc_users' => 'Šis nusidėvėjimas šiuo metu yra susietas su vienu ar keliais įrangos modeliais ir negali būti panaikintas. Panaikinkite susietus modelius ir bandykite iš naujo. ', + 'assoc_users' => 'Šis nusidėvėjimas šiuo metu yra susietas su vienu ar keliais modeliais ir negali būti panaikintas. Panaikinkite susietus modelius ir bandykite iš naujo. ', 'create' => array( diff --git a/resources/lang/lt-LT/admin/groups/message.php b/resources/lang/lt-LT/admin/groups/message.php index 8ce76df78..c56d35fb6 100644 --- a/resources/lang/lt-LT/admin/groups/message.php +++ b/resources/lang/lt-LT/admin/groups/message.php @@ -3,7 +3,7 @@ return array( 'group_exists' => 'Tokia grupė jau yra!', - 'group_not_found' => 'Tokios grupės [:id] nėra.', + 'group_not_found' => 'Tokios grupės :id nėra.', 'group_name_required' => 'Pavadinimo laukas yra privalomas', 'success' => array( diff --git a/resources/lang/lt-LT/admin/groups/table.php b/resources/lang/lt-LT/admin/groups/table.php index e81468207..03e8a4dd3 100644 --- a/resources/lang/lt-LT/admin/groups/table.php +++ b/resources/lang/lt-LT/admin/groups/table.php @@ -2,7 +2,7 @@ return array( - 'id' => 'Id', + 'id' => 'ID', 'name' => 'Pavadinimas', 'users' => 'Naudotojų skaičius', diff --git a/resources/lang/lt-LT/admin/hardware/form.php b/resources/lang/lt-LT/admin/hardware/form.php index 8a5848ea1..f589d46ff 100644 --- a/resources/lang/lt-LT/admin/hardware/form.php +++ b/resources/lang/lt-LT/admin/hardware/form.php @@ -13,7 +13,7 @@ return [ 'bulk_update_with_custom_field' => 'Atminkite, kad turtas yra :asset_model_count skirtingų modelių tipų.', 'bulk_update_model_prefix' => 'Modeliams', 'bulk_update_custom_field_unique' => 'Tai unikalus laukas, todėl jo negalima redaguoti masinio redagavimo būdu.', - 'checkedout_to' => 'Išduota', + 'checkedout_to' => 'Kam išduota', 'checkout_date' => 'Išdavimo data', 'checkin_date' => 'Paėmimo data', 'checkout_to' => 'Išduoti', diff --git a/resources/lang/lt-LT/admin/hardware/general.php b/resources/lang/lt-LT/admin/hardware/general.php index dbeaf08e4..8dede1a06 100644 --- a/resources/lang/lt-LT/admin/hardware/general.php +++ b/resources/lang/lt-LT/admin/hardware/general.php @@ -3,7 +3,7 @@ return [ 'about_assets_title' => 'Apie turtą', 'about_assets_text' => 'Turtas, tai daiktai, kuriuos galima sekti pagal serijinį ar inventorinį numerį. Įprastai, tai yra didesnės vertės daiktai, kurių individualus identifikavimas yra svarbus.', - 'archived' => 'Archyvuota', + 'archived' => 'Archyvuotas', 'asset' => 'Turtas', 'bulk_checkout' => 'Išduoti turtą', 'bulk_checkin' => 'Paimti turtą', @@ -17,13 +17,13 @@ return [ 'model_deleted' => 'Šis turto modelis buvo panaikintas. Pirmiau turite atkurti modelį, tada galėsite atkurti patį turtą.', 'model_invalid' => 'Šiam turtui šis modelis netinka.', 'model_invalid_fix' => 'Turtas turi būti atnaujintas parenkant tinkamą turto modelį, kad jį būtų galima išduoti/paimti ar audituoti.', - 'requestable' => 'Užsakoma', - 'requested' => 'Užsakyta', - 'not_requestable' => 'Neužsakoma', - 'requestable_status_warning' => 'Nekeisti užsakomos įrangos būsenos', + 'requestable' => 'Užsakomas', + 'requested' => 'Užsakytas', + 'not_requestable' => 'Neužsakomas', + 'requestable_status_warning' => 'Nekeisti užsakomo turto būsenos', 'restore' => 'Atkurti turtą', - 'pending' => 'Ruošiama', - 'undeployable' => 'Negalimas naudoti', + 'pending' => 'Ruošiamas', + 'undeployable' => 'Neišduotinas', 'undeployable_tooltip' => 'Šis turtas yra pažymėtas kaip neišduotinas, todėl šiuo metu jo negalima išduoti.', 'view' => 'Peržiūrėti turtą', 'csv_error' => 'Jūsų CSV faile yra klaida:', diff --git a/resources/lang/lt-LT/admin/locations/message.php b/resources/lang/lt-LT/admin/locations/message.php index ec078970e..e92469c0a 100644 --- a/resources/lang/lt-LT/admin/locations/message.php +++ b/resources/lang/lt-LT/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Tokios vietos nėra.', - 'assoc_users' => 'Šios vietos negalima panaikinti, nes ji yra bent vieno turto vieneto ar naudotojo vieta, jai yra priskirtas turtas arba ji yra nurodyta kaip pagrindinė kitos vietos vieta. Atnaujinkite savo turtą, naudotojus ir vietas, kad jie nebeturėtų sąsajų su šia vieta ir bandykite dar kartą. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Ši vieta šiuo metu yra susieta bent su vienu turto vienetu ir negali būti panaikinta. Atnaujinkite savo turtą, kad nebebūtų sąsajos su šia vieta, ir bandykite dar kartą. ', 'assoc_child_loc' => 'Ši vieta šiuo metu yra kaip pagrindinė bent vienai žemesnio lygio vietai ir negali būti panaikinta. Atnaujinkite savo žemesnio lygio vietas, kad nebebūtų sąsajos su šia vieta, ir bandykite dar kartą. ', 'assigned_assets' => 'Priskirtas turtas', diff --git a/resources/lang/lt-LT/admin/locations/table.php b/resources/lang/lt-LT/admin/locations/table.php index 1180b8f04..7ad4b8da6 100644 --- a/resources/lang/lt-LT/admin/locations/table.php +++ b/resources/lang/lt-LT/admin/locations/table.php @@ -2,7 +2,7 @@ return [ 'about_locations_title' => 'Apie vietas', - 'about_locations' => 'Vietos naudojamos stebėti naudotojų, turto ir kitų objektų buvimo vietą', + 'about_locations' => 'Vietos naudojamos stebėti naudotojų, turto ir kitų daiktų buvimo vietą', 'assets_rtd' => 'Turtas', // This has NEVER meant Assets Retired. I don't know how it keeps getting reverted. 'assets_checkedout' => 'Priskirtas turtas', 'id' => 'ID', diff --git a/resources/lang/lt-LT/admin/settings/general.php b/resources/lang/lt-LT/admin/settings/general.php index e3ec774a6..88f9fa61c 100644 --- a/resources/lang/lt-LT/admin/settings/general.php +++ b/resources/lang/lt-LT/admin/settings/general.php @@ -28,7 +28,7 @@ return [ 'auto_increment_assets' => 'Generuoti automatiškai didėjančius inventorinius numerius', 'auto_increment_prefix' => 'Prefiksas (pasirinktinai)', 'auto_incrementing_help' => 'Norėdami tai nustatyti, pirmiausia įjunkite automatiškai didėjančius inventorinius numerius', - 'backups' => 'Atsarginė kopija', + 'backups' => 'Atsarginės kopijos', 'backups_help' => 'Kurti, atsisiųsti ir atkurti atsargines kopijas ', 'backups_restoring' => 'Atkurti iš atsarginės kopijos', 'backups_upload' => 'Įkelti atsarginę kopiją', @@ -52,7 +52,7 @@ return [ 'acceptance_note' => 'Pridėkite pastabą prie savo sprendimo (nebūtina)', 'display_asset_name' => 'Rodyti turto pavadinimą', 'display_checkout_date' => 'Rodyti išdavimo datą', - 'display_eol' => 'Rodyti įrangos nurašymo datas lentelės rodinyje', + 'display_eol' => 'Rodyti nurašymo datas lentelės rodinyje', 'display_qr' => 'Rodyti kvadratinius kodus', 'display_alt_barcode' => 'Rodyti 1D brūkšninius kodus', 'email_logo' => 'El. pašto logotipas', @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integracija nėra privaloma, tačiau, jei norite ją naudoti, būtina nurodyti Endpoint ir Channel. Norėdami sukonfigūruoti :app integraciją, pirmiausia turite sukurti įeinantį „Webhook“ pranešimą savo :app paskyroje. Spustelėkite mygtuką Tikrinti :app integraciją, kad patvirtintumėte ar nustatymai yra teisingi, prieš juos išsaugodami. ', 'webhook_integration_help_button' => 'Išsaugojus :app informaciją, pasirodys testavimo mygtukas.', 'webhook_test_help' => 'Patikrinkite, ar jūsų :app integracija sukonfigūruota tinkamai. PIRMA PRIVALOTE IŠSAUGOTI ATNAUJINTUS :app NUSTATYMUS.', + 'shortcuts_enabled' => 'Įgalinti sparčiuosius klavišus', + 'shortcuts_help_text' => 'Windows: Alt + prieigos klavišas, Mac: Control + Option + prieigos klavišas', 'snipe_version' => 'Snipe-IT versija', 'support_footer' => 'Palaikymo nuorodos poraštėje ', 'support_footer_help' => 'Nurodykite, kas mato nuorodas į Snipe-IT palaikymo informaciją ir naudotojo vadovą', diff --git a/resources/lang/lt-LT/admin/settings/message.php b/resources/lang/lt-LT/admin/settings/message.php index a92026b40..e969f1db5 100644 --- a/resources/lang/lt-LT/admin/settings/message.php +++ b/resources/lang/lt-LT/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Taip, atkurti. Suprantu, kad tai perrašys visus šiuo metu duomenų bazėje esančius duomenis. Taip pat, kad bus atjungti visi esami naudotojai (įskaitant mane).', 'restore_confirm' => 'Ar tikrai norite atkurti savo duomenų bazę iš :filename?' ], + 'restore' => [ + 'success' => 'Jūsų sistemos atsarginė kopija buvo atkurta. Prisijunkite iš naujo.' + ], 'purge' => [ 'error' => 'Valymo metu įvyko klaida. ', 'validation_failed' => 'Jūsų įvestas išvalymo patvirtinimas yra neteisingas. Patvirtinimo lauke įveskite žodį „DELETE“.', diff --git a/resources/lang/lt-LT/admin/users/general.php b/resources/lang/lt-LT/admin/users/general.php index bfc8e454d..dddea3197 100644 --- a/resources/lang/lt-LT/admin/users/general.php +++ b/resources/lang/lt-LT/admin/users/general.php @@ -17,8 +17,8 @@ return [ 'last_login' => 'Paskutinis prisijungimas', 'ldap_config_text' => 'LDAP konfigūracijos nustatymus rasite „Administratorius > Nustatymai“. Pasirinkta (neprivaloma) vieta bus priskirta visiems importuotiems naudotojams.', 'print_assigned' => 'Spausdinti išduotą', - 'email_assigned' => 'El. paštu nusiųsti išduotos įrangos sąrašą', - 'user_notified' => 'Naudotojui el. paštu išsiųstas jam priskirto inventoriaus sąrašas.', + 'email_assigned' => 'El. paštu nusiųsti išduoto turto sąrašą', + 'user_notified' => 'Naudotojui el. paštu išsiųstas jam priskirtų daiktų sąrašas.', 'auto_assign_label' => 'Įtraukti šį naudotoją, kai automatiškai priskiriamos tinkamos licencijos', 'auto_assign_help' => 'Praleisti šį naudotoją, kai automatiškai priskiriamos licencijos', 'software_user' => 'Programinė įranga išduota: :name', diff --git a/resources/lang/lt-LT/admin/users/table.php b/resources/lang/lt-LT/admin/users/table.php index 8c1417834..05d7c0dfa 100644 --- a/resources/lang/lt-LT/admin/users/table.php +++ b/resources/lang/lt-LT/admin/users/table.php @@ -13,7 +13,7 @@ return array( 'groupnotes' => 'Pasirinkite grupę, kurią norite priskirti naudotojui ir nepamirškite, kad naudotojas gauna jam priskirtos grupės prieigos teises. Norėdami panaikinti grupių pasirinkimą, naudokite Ctrl + spustelėjimas (arba cmd + spustelėjimas, jei naudojate MacOS).', 'id' => 'Id', 'inherit' => 'Paveldėti', - 'job' => 'Pozicija', + 'job' => 'Pareigos', 'last_login' => 'Paskutinis prisijungimas', 'last_name' => 'Pavardė', 'location' => 'Vieta', diff --git a/resources/lang/lt-LT/button.php b/resources/lang/lt-LT/button.php index a07a94963..5000a6867 100644 --- a/resources/lang/lt-LT/button.php +++ b/resources/lang/lt-LT/button.php @@ -13,20 +13,20 @@ return [ 'request' => 'Užsakyti', 'submit' => 'Išsaugoti', 'upload' => 'Įkelti', - 'select_file' => 'Pasirinkite failą ...', + 'select_file' => 'Pasirinkite failą...', 'select_files' => 'Pasirinkite failus...', 'generate_labels' => '{1} Generuoti etiketę|[2,*] Generuoti etiketes', 'send_password_link' => 'Slaptažodžio nustatymo iš naujo nuoroda', 'go' => 'Vykdyti', 'bulk_actions' => 'Masiniai veiksmai', - 'add_maintenance' => 'Pridėti įrangos aptarnavimą', + 'add_maintenance' => 'Pridėti aptarnavimą', 'append' => 'Papildyti', 'new' => 'Naujas', 'var' => [ 'clone' => 'Klonuoti :item_type', 'edit' => 'Redaguoti :item_type', 'delete' => 'Panaikinti :item_type', - 'restore' => 'Panaikinti :item_type', + 'restore' => 'Atkurti :item_type', 'create' => 'Kurti naują :item_type', 'checkout' => 'Išduoti :item_type', 'checkin' => 'Paimti :item_type', diff --git a/resources/lang/lt-LT/general.php b/resources/lang/lt-LT/general.php index 0cea9225f..e6b61f887 100644 --- a/resources/lang/lt-LT/general.php +++ b/resources/lang/lt-LT/general.php @@ -19,7 +19,7 @@ return [ 'age' => "Amžius", 'all_assets' => 'Visas turtas', 'all' => 'Viskas', - 'archived' => 'Archyvuota', + 'archived' => 'Archyvuotas', 'asset_models' => 'Turto modeliai', 'asset_model' => 'Modelis', 'asset' => 'Turtas', @@ -50,7 +50,7 @@ return [ 'bulk_delete' => 'Panaikinti kelis', 'bulk_actions' => 'Masiniai veiksmai', 'bulk_checkin_delete' => 'Masinis paėmimas / Naudotojų panaikinimas', - 'byod' => 'Naudotojų asmeninė įranga (BYOD)', + 'byod' => 'Naudotojų asmeninis turtas (BYOD)', 'byod_help' => 'Įrenginys yra naudotojo nuosavybė', 'bystatus' => 'pagal būseną', 'cancel' => 'Atšaukti', @@ -76,10 +76,10 @@ return [ 'consumable' => 'Eksploatacinė medžiaga', 'consumables' => 'Eksploatacinės medžiagos', 'country' => 'Šalis', - 'could_not_restore' => 'Atstatymo klaida :item_type: :error', + 'could_not_restore' => 'Klaida atkuriant :item_type: :error', 'not_deleted' => ':item_type nėra panaikintas, todėl negali būti atkurtas', 'create' => 'Sukurti naują', - 'created' => 'Elementas sukurtas', + 'created' => 'Daiktas sukurtas', 'created_asset' => 'sukurtas turtas', 'created_at' => 'Sukurta', 'created_by' => 'Sukūrė', @@ -95,7 +95,7 @@ return [ 'days_to_next_audit' => 'Dienos iki kito audito', 'date' => 'Data', 'debug_warning' => 'Įspėjimas!', - 'debug_warning_text' => 'Ši programa veikia derinimo režimu. Tai gali atskleisti neskelbtinus duomenis, jei jūsų programa yra pasiekiama išoriniam pasauliui. Išjunkite derinimo režimą nustatydami APP_DEBUG reikšmę savo .env faile į false.', + 'debug_warning_text' => 'Ši programa veikia gamybiniu režimu, įjungus derinimą. Tai gali atskleisti neskelbtinus duomenis, jei jūsų programa yra pasiekiama išoriniam pasauliui. Išjunkite derinimo režimą nustatydami APP_DEBUG reikšmę savo .env faile į false.', 'delete' => 'Panaikinti', 'delete_confirm' => 'Ar tikrai norite panaikinti :item?', 'delete_confirm_no_undo' => 'Ar tikrai norite panaikinti :item? Šis veiksmas negrįžtamas.', @@ -104,11 +104,11 @@ return [ 'deletion_failed' => 'Panaikinti nepavyko', 'departments' => 'Skyriai', 'department' => 'Skyrius', - 'deployed' => 'Naudojama', + 'deployed' => 'Naudojamas', 'depreciation' => 'Nusidėvėjimas', 'depreciations' => 'Nusidėvėjimas', 'depreciation_report' => 'Nusidėvėjimo ataskaita', - 'details' => 'Detaliau', + 'details' => 'Informacija', 'download' => 'Atsisiųsti', 'download_all' => 'Atsisųsti visus', 'editprofile' => 'Redaguoti savo profilį', @@ -125,16 +125,16 @@ return [ 'firstname_lastname_format' => 'Vardas.Pavardė (vardas.pavarde@example.com)', 'firstname_lastname_underscore_format' => 'Vardas_Pavardė (vardas_pavarde@example.com)', 'lastnamefirstinitial_format' => 'Pavardė, Vardo pirmoji raidė (pavardev@example.com)', - 'firstintial_dot_lastname_format' => 'V. Pavardė (v.pavarde@example.com)', + 'firstintial_dot_lastname_format' => 'Vardo pirmoji raidė.Pavardė (v.pavarde@example.com)', 'firstname_lastname_display' => 'Vardas Pavardė (Vardenis Pavardenis)', 'lastname_firstname_display' => 'Pavardė Vardas (Pavardenis Vardenis)', 'name_display_format' => 'Vardo atvaizdavimo formatas', 'first' => 'Pirmas', - 'firstnamelastname' => 'Vardas Pavardė (vardaspavarde@example.com)', - 'lastname_firstinitial' => 'Pavardė, Vardo pirmoji raidė (pavarde_v@example.com)', - 'firstinitial.lastname' => 'V. Pavardė (v.pavarde@example.com)', + 'firstnamelastname' => 'VardasPavardė (vardaspavarde@example.com)', + 'lastname_firstinitial' => 'Pavardė_Vardo pirmoji raidė (pavarde_v@example.com)', + 'firstinitial.lastname' => 'Vardo pirmoji raidė.Pavardė (v.pavarde@example.com)', 'firstnamelastinitial' => 'Vardas, Pavardės pirmoji raidė (vardasp@example.com)', - 'lastnamefirstname' => 'Pavardė, Vardas (pavardenis.vardenis@example.com)', + 'lastnamefirstname' => 'Pavardė.Vardas (pavardenis.vardenis@example.com)', 'first_name' => 'Vardas', 'first_name_format' => 'Vardas (vardas@example.com)', 'files' => 'Failai', @@ -143,11 +143,11 @@ return [ 'filesize' => 'Failo dydis', 'file_uploads' => 'Įkelti failai', 'file_upload' => 'Failo įkėlimas', - 'generate' => 'Sukurti', + 'generate' => 'Generuoti', 'generate_labels' => 'Generuoti etiketes', 'github_markdown' => 'Šis laukas leidžia naudoti Github tipo žymėjimą (markdown).', 'groups' => 'Grupės', - 'gravatar_email' => 'Gravatar el. paštas', + 'gravatar_email' => 'Gravatar el. pašto adresas', 'gravatar_url' => 'Pasikeiskite savo avatarą Gravatar.com.', 'history' => 'Istorija', 'history_for' => 'Istorija žmogui: ', @@ -168,12 +168,12 @@ return [ 'asset_maintenance' => 'Turto aptarnavimas', 'asset_maintenance_report' => 'Turto aptarnavimo ataskaita', 'asset_maintenances' => 'Turto aptarnavimai', - 'item' => 'Elementas', - 'item_name' => 'Elemento pavadinimas', + 'item' => 'Daiktas', + 'item_name' => 'Daikto pavadinimas', 'import_file' => 'importuoti CSV failą', 'import_type' => 'CSV importo tipas', 'insufficient_permissions' => 'Nepakankamos teisės!', - 'kits' => 'Įrangos rinkiniai', + 'kits' => 'Turto rinkiniai', 'language' => 'Kalba', 'last' => 'Paskutinis', 'last_login' => 'Paskutinis prisijungimas', @@ -191,18 +191,18 @@ return [ 'locations' => 'Vietos', 'logo_size' => '"Logotipas + tekstas" tipui labiausiai tinka kvadratiniai logotipai. Didžiausias logotipo rodymo dydis yra 50 pikselių aukščio ir 500 pikselių pločio. ', 'logout' => 'Atsijungti', - 'lookup_by_tag' => 'Paieška pagal inventorinį numerį', + 'lookup_by_tag' => 'Paieška pagal inventorinį Nr.', 'maintenances' => 'Aptarnavimai', 'manage_api_keys' => 'Tvarkyti API raktus', 'manufacturer' => 'Gamintojas', 'manufacturers' => 'Gamintojai', 'markdown' => 'Šis laukas leidžia naudoti Github tipo žymes (markdown).', 'min_amt' => 'Mažiausias kiekis', - 'min_amt_help' => 'Mažiausias turimų elementų kiekis, kurį pasiekus yra aktyvuojamas įspėjimas. Palikite lauką "Mažiausias kiekis" tuščią, jei nenorite gauti įspėjimų apie mažą atsargų likutį.', + 'min_amt_help' => 'Mažiausias turimų daiktų kiekis, kurį pasiekus yra aktyvuojamas įspėjimas. Palikite lauką "Mažiausias kiekis" tuščią, jei nenorite gauti įspėjimų apie mažą atsargų likutį.', 'model_no' => 'Modelio Nr.', 'months' => 'mėnesiai', - 'moreinfo' => 'Detaliau', - 'name' => 'Vardas', + 'moreinfo' => 'Išsamiau', + 'name' => 'Pavadinimas', 'new_password' => 'Naujas slaptažodis', 'next' => 'Kitas', 'next_audit_date' => 'Kito audito data', @@ -219,7 +219,7 @@ return [ 'only_deleted' => 'Tik panaikintas turtas', 'page_menu' => 'Rodomi _MENU_ elementai', 'pagination_info' => 'Rodomi nuo _START_ iki _END_ iš _TOTAL_ vienetų', - 'pending' => 'Ruošiama', + 'pending' => 'Ruošiamas', 'people' => 'Žmonės', 'per_page' => 'Rezultatų puslapyje', 'previous' => 'Ankstesnis', @@ -229,10 +229,10 @@ return [ 'purchase_date' => 'Pirkimo data', 'qty' => 'Kiekis', 'quantity' => 'Kiekis', - 'quantity_minimum' => 'Jūs turite įrangos (:count), kurios likutis artimas arba mažesnis už minimalų', + 'quantity_minimum' => 'Jūs turite :count daiktus (-ų), kurių likutis artimas arba mažesnis už minimalų', 'quickscan_checkin' => 'Greitas paėmimas skenuojant', 'quickscan_checkin_status' => 'Paėmimo būsena', - 'ready_to_deploy' => 'Paruošta naudojimui', + 'ready_to_deploy' => 'Paruoštas naudojimui', 'recent_activity' => 'Paskutiniai veiksmai', 'remaining' => 'Likutis', 'remove_company' => 'Pašalinti sąsają su įmone', @@ -241,7 +241,7 @@ return [ 'restore' => 'Atkurti', 'requestable_models' => 'Užsakomi modeliai', 'requestable_items' => 'Užsakomi daiktai', - 'requested' => 'Užsakyta', + 'requested' => 'Užsakytas', 'requested_date' => 'Prašymo data', 'requested_assets' => 'Prašomas turtas', 'requested_assets_menu' => 'Prašomas turtas', @@ -271,14 +271,15 @@ return [ 'show_current' => 'Rodyti dabartinį', 'sign_in' => 'Prisijungti', 'signature' => 'Parašas', - 'signed_off_by' => 'Nurašyta', - 'skin' => 'Išvaizda', + 'signed_off_by' => 'Pasirašė', + 'skin' => 'Tema', 'webhook_msg_note' => 'Pranešimas bus išsiųstas naudojant „webhook“', 'webhook_test_msg' => 'Oh hai! Panašu jog jūsų :app integracija su Snipe-IT veikia!', 'some_features_disabled' => 'DEMO REŽIMAS: šiame režime kai kurios funkcijos yra išjungtos.', 'site_name' => 'Puslapio pavadinimas', 'state' => 'Rajonas', 'status_labels' => 'Būsenos žymos', + 'status_label' => 'Status Label', 'status' => 'Būsena', 'accept_eula' => 'Licencinis sutikimas', 'supplier' => 'Tiekėjas', @@ -294,23 +295,23 @@ return [ 'total_accessories' => 'iš viso priedų', 'total_consumables' => 'iš viso eksploatacinių medžiagų', 'type' => 'Tipas', - 'undeployable' => 'Nepanaudojama', + 'undeployable' => 'Neišduotinas', 'unknown_admin' => 'Nežinomas administratorius', 'username_format' => 'Naudotojo vardo formatas', 'username' => 'Naudotojo vardas', 'update' => 'Atnaujinti', 'upload_filetypes_help' => 'Leidžiami failų tipai yra: png, gif, jpg, jpeg, doc, docx, pdf, xls, xlsx, txt, lic, xml, zip, rtf ir rar. Didžiausias leidžiamas įkeliamų failų dydis yra :size.', - 'uploaded' => 'Įkelti', + 'uploaded' => 'Įkelta', 'user' => 'Naudotojas', 'accepted' => 'priimta', 'declined' => 'nepriimta', 'declined_note' => 'Atsisakymo pastabos', - 'unassigned' => 'Nepriskirta', + 'unassigned' => 'Nepriskirtas', 'unaccepted_asset_report' => 'Nepriimtas turtas', 'users' => 'Naudotojai', 'viewall' => 'Rodyti viską', 'viewassets' => 'Peržiūrėti priskirtą turtą', - 'viewassetsfor' => 'Peržiūrėti turtą – :name', + 'viewassetsfor' => 'Peržiūrėti :name turtą', 'website' => 'Internetinis puslapis', 'welcome' => 'Sveiki, :name', 'years' => 'metai', @@ -352,12 +353,12 @@ return [ 'setup_done' => 'Baigta!', 'bulk_edit_about_to' => 'Ketinate redaguoti šiuos dalykus: ', 'checked_out' => 'Išduota', - 'checked_out_to' => 'Išduota naudotojui', + 'checked_out_to' => 'Kam išduota', 'fields' => 'Laukai', 'last_checkout' => 'Paskutinis išdavimas', - 'due_to_checkin' => 'Šie daiktai (:count) netrukus turės būti išduoti:', + 'due_to_checkin' => 'Šie :count daiktai (-ų) netrukus turės būti paimti:', 'expected_checkin' => 'Numatoma paėmimo data', - 'reminder_checked_out_items' => 'Tai yra pranešimas apie jums išduotą įrangą. Jei manote, kad šis sąrašas yra netikslus (kažko trūksta ar yra priskirta tai, ko jūs manote, kad niekada nesate gavę), prašome susisiekti el. paštu su :reply_to_name šiuo adresu :reply_to_address.', + 'reminder_checked_out_items' => 'Tai yra pranešimas apie jums išduotus daiktus. Jei manote, kad šis sąrašas yra netikslus (kažko trūksta ar yra priskirta tai, ko jūs manote, kad niekada nesate gavę), prašome susisiekti el. paštu su :reply_to_name šiuo adresu :reply_to_address.', 'changed' => 'Pakeista', 'to' => 'Iki', 'report_fields_info' => '

Pasirinkite laukus, kuriuos norėtumėte įtraukti į savo ataskaitą, ir spustelėkite Generuoti. Failas (custom-asset-report-YYYY-mm-dd.csv) bus parsiųstas automatiškai ir galėsite jį atidaryti programoje „Excel“.

@@ -373,7 +374,7 @@ return [ 'ldap_user_sync' => 'LDAP naudotojų sinchronizacija', 'synchronize' => 'Sinchronizuoti', 'sync_results' => 'Sinchronizacijos rezultatai', - 'license_serial' => 'Serijos / produkto raktas', + 'license_serial' => 'Serijinis / produkto raktas', 'invalid_category' => 'Neteisinga kategorija arba tokios kategorijos nėra', 'invalid_item_category_single' => 'Neteisinga :type kategorija arba tokios kategorijos nėra. Prieš bandydami išduoti daiktą, atnaujinkite šią :type kategoriją, kad joje būtų tinkama kategorija.', 'dashboard_info' => 'Tai jūsų valdymo skydas. Yra daug panašių, bet šis yra jūsų.', @@ -403,7 +404,7 @@ return [ 'consumable_name' => 'Eksploatacinės medžiagos pavadinimas:', 'accessory_information' => 'Priedo informacija:', 'accessory_name' => 'Priedo pavadinimas:', - 'clone_item' => 'Klonuoti elementą', + 'clone_item' => 'Klonuoti daiktą', 'checkout_tooltip' => 'Išduoti šį daiktą', 'checkin_tooltip' => 'Paimti šį daiktą, kad jį būtų galima pakartotinai išduoti, atlikti jam aptarnavimą ir pan.', 'checkout_user_tooltip' => 'Išduoti šį daiktą naudotojui', @@ -416,8 +417,8 @@ return [ 'additional_files' => 'Papildomi failai', 'shitty_browser' => 'Neaptiktas joks parašas. Jei naudojate senesnę naršyklę, naudokite modernesnę naršyklę, kad užbaigtumėte turto priėmimą.', 'bulk_soft_delete' =>'Taip pat, panaikinti šiuos naudotojus. Jų turto istorija išliks nepakitusi, kol neišvalysite ištrintų įrašų administratoriaus nustatymuose.', - 'bulk_checkin_delete_success' => 'Jūsų pasirinkti naudotojai buvo panaikinti, o jų elementai buvo paimti.', - 'bulk_checkin_success' => 'Nurodytų naudotojų elementai buvo paimti.', + 'bulk_checkin_delete_success' => 'Jūsų pasirinkti naudotojai buvo panaikinti, o jų daiktai buvo paimti.', + 'bulk_checkin_success' => 'Nurodytų naudotojų daiktai buvo paimti.', 'set_to_null' => 'Išvalyti šio turto reikšmes|Išvalyti visų :asset_count turto vienetų reikšmes ', 'set_users_field_to_null' => 'Išvalyti :field reikšmes šiam naudotojui|Išvalyti :field reikšmes visiems :user_count naudotojams ', 'na_no_purchase_date' => 'N/D - Nenurodyta įsigijimo data', @@ -425,7 +426,7 @@ return [ 'assets_by_status_type' => 'Turtas pagal būsenos tipą', 'pie_chart_type' => 'Valdymo skydo skritulinės diagramos tipas', 'hello_name' => 'Sveiki, :name!', - 'unaccepted_profile_warning' => 'Turite :count elementus, kuriuos reikia priimti. Spustelėkite čia, jei norite juos priimti arba atmesti', + 'unaccepted_profile_warning' => 'Turite :count daiktus, kuriuos reikia priimti. Spustelėkite čia, jei norite juos priimti arba atmesti', 'start_date' => 'Pradžios data', 'end_date' => 'Pabaigos data', 'alt_uploaded_image_thumbnail' => 'Įkelta miniatiūra', @@ -478,9 +479,9 @@ return [ 'autoassign_licenses_help_long' => 'Tai leidžia priskirti licencijas naudotojui, naudojant masinio licencijų priskyrimo sąsają arba cli įrankius. (Pavyzdžiui, galite nenorėti, kad jūsų subrangovai automatiškai gautų tik darbuotojams skirtas licencijas. Jūs vis tiek galite priskirti licencijas šiems naudotojams atskirai, bet jie nebus įtraukti į funkciją „Priskirti licenciją visiems naudotojams“.)', 'no_autoassign_licenses_help' => 'Naudotojo neįtraukti į masinį priskyrimą naudojant licencijų priskyrimo sąsają arba cli įrankius.', 'modal_confirm_generic' => 'Esate tikri?', - 'cannot_be_deleted' => 'Šis elemento ištrinti negalima', - 'cannot_be_edited' => 'Šio elemento redaguoti negalima.', - 'undeployable_tooltip' => 'Šis elemento negalima išduoti. Patikrinkite likutį.', + 'cannot_be_deleted' => 'Šio daikto ištrinti negalima', + 'cannot_be_edited' => 'Šio daikto redaguoti negalima.', + 'undeployable_tooltip' => 'Šio daikto išduoti negalima. Patikrinkite likutį.', 'serial_number' => 'Serijos numeris', 'item_notes' => ':item Pastabos', 'item_name_var' => ':item Pavadinimas', @@ -515,7 +516,7 @@ return [ 'upload_error' => 'Klaida įkeliant failą. Patikrinkite, ar nėra tuščių eilučių ir besidubliuojančių stulpelių pavadinimų.', 'copy_to_clipboard' => 'Kopijuoti į iškarpinę', 'copied' => 'Nukopijuota!', - 'status_compatibility' => 'Jei turtas jau yra išduotas, jo būsena negali būti pakeista į neišduodamos būsenos tipą, todėl šios reikšmės pakeitimas nebus atliekamas.', + 'status_compatibility' => 'Jei turtas jau yra išduotas, jo būsena negali būti pakeista į neišduotinos būsenos tipą, todėl šios reikšmės pakeitimas nebus atliekamas.', 'rtd_location_help' => 'Tai yra turto buvimo vieta, kai jis nėra išduotas', 'item_not_found' => ':item_type ID :id neegzistuoja arba buvo panaikintas', 'action_permission_denied' => 'Neturite teisių atlikti :action :item_type ID :id', @@ -545,12 +546,12 @@ return [ 'countable' => [ 'accessories' => ':count Priedas|:count Priedai', 'assets' => ':count turto vienetas|:count turto vienetai (-ų)', - 'licenses' => ':count Licencija|:count Licencijos', + 'licenses' => ':count licencija|:count licencijos', 'license_seats' => ':count Licencijos vieta|:count Licencijos vietos', 'consumables' => ':count Eksploatacinė medžiaga|:count Eksploatacinės medžiagos', 'components' => ':count Komponentas|:count Komponentai', ], - 'more_info' => 'Detaliau', + 'more_info' => 'Išsamiau', 'quickscan_bulk_help' => 'Pažymėjus šį langelį, turto įrašas bus atnaujintas, kad atspindėtų šią naują vietą. Jei paliksite jį nepažymėtą, vieta bus pažymėta tik audito žurnale. Atkreipkite dėmesį, kad jei šis turtas bus išduotas, tai nepakeis to asmens, turto ar vietos, kuriems išduodamas turtas, buvimo vietos.', 'whoops' => 'Oi!', 'something_went_wrong' => 'Kažkas negerai su jūsų užklausa.', diff --git a/resources/lang/lt-LT/localizations.php b/resources/lang/lt-LT/localizations.php index 8b54054bf..76df23431 100644 --- a/resources/lang/lt-LT/localizations.php +++ b/resources/lang/lt-LT/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malajų', 'mi-NZ'=> 'Maorių', 'mn-MN'=> 'Mongolų', - 'no-NO'=> 'Norvegų', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norvegų bukmolas', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persų', 'pl-PL'=> 'Lenkų', 'pt-PT'=> 'Portugalų', diff --git a/resources/lang/lt-LT/mail.php b/resources/lang/lt-LT/mail.php index 16e2e0096..c4bf973db 100644 --- a/resources/lang/lt-LT/mail.php +++ b/resources/lang/lt-LT/mail.php @@ -19,13 +19,13 @@ return [ 'Expected_Checkin_Report' => 'Numatomo paimti turto ataskaita', 'Expiring_Assets_Report' => 'Bebaigiančio galioti turto ataskaita.', 'Expiring_Licenses_Report' => 'Bebaigiančių galioti licencijų ataskaita.', - 'Item_Request_Canceled' => 'Įrangos užsakymas atšauktas', - 'Item_Requested' => 'Įranga užsakyta', + 'Item_Request_Canceled' => 'Daikto užsakymas atšauktas', + 'Item_Requested' => 'Daiktas užsakytas', 'License_Checkin_Notification' => 'Licencija paimta', 'License_Checkout_Notification' => 'Licencija išduota', 'Low_Inventory_Report' => 'Ataskaita apie mažas atsargas', - 'a_user_canceled' => 'Naudotojas svetainėje atšaukė įrangos užsakymą', - 'a_user_requested' => 'Naudotojas svetainėje užsakė įrangą', + 'a_user_canceled' => 'Naudotojas svetainėje atšaukė daikto užsakymą', + 'a_user_requested' => 'Naudotojas svetainėje užsakė daiktą', 'acceptance_asset_accepted' => 'Naudotojas priėmė daiktą', 'acceptance_asset_declined' => 'Naudotojas nepriėmė daikto', 'accessory_name' => 'Priedo pavadinimas:', @@ -61,10 +61,10 @@ return [ 'link_to_update_password' => 'Spustelėkite šią nuorodą, kad atnaujintumėte savo :web slaptažodį:', 'login' => 'Prisijungti:', 'login_first_admin' => 'Prisijunkite prie savo naujojo „Snipe-IT“ diegimo naudodami žemiau pateiktus prisijungimo duomenis:', - 'low_inventory_alert' => 'Yra :count pozicija, kurios atsargos yra mažesnės (arba greitais bus mažesnės) nei numatytos minimalios atsargos.|Yra :count pozicijų, kurių atsargos yra mažesnės (arba greitais bus mažesnės) nei numatytos minimalios atsargos.', + 'low_inventory_alert' => 'Yra :count daiktas, kurio atsargos yra mažesnės (arba greitais bus mažesnės) nei numatytos minimalios atsargos.|Yra :count daiktai (-ų), kurių atsargos yra mažesnės (arba greitais bus mažesnės) nei numatytos minimalios atsargos.', 'min_QTY' => 'Min. kiekis', 'name' => 'Pavadinimas', - 'new_item_checked' => 'Jums buvo priskirtas naujas elementas, išsami informacija pateikta žemiau.', + 'new_item_checked' => 'Jums buvo priskirtas naujas daiktas, išsami informacija pateikta žemiau.', 'notes' => 'Pastabos', 'password' => 'Slaptažodis:', 'password_reset' => 'Slaptažodžio nustatymas iš naujo', @@ -74,7 +74,7 @@ return [ 'reset_link' => 'Jūsų slaptažodžio nustatymo iš naujo nuoroda', 'reset_password' => 'Spustelėkite čia norėdami iš naujo nustatyti slaptažodį:', 'rights_reserved' => 'Visos teisės saugomos.', - 'serial' => 'Serijos numeris', + 'serial' => 'Serijinis numeris', 'snipe_webhook_test' => 'Snipe-IT integracijos testas', 'snipe_webhook_summary' => 'Snipe-IT integracijos testo suvestinė', 'supplier' => 'Tiekėjas', @@ -88,7 +88,7 @@ return [ 'user' => 'Naudotojas', 'username' => 'Naudotojo vardas', 'unaccepted_asset_reminder' => 'Turite nepriimto turto.', - 'welcome' => 'Sveiki :vardas', + 'welcome' => 'Sveiki, :name', 'welcome_to' => 'Sveiki apsilankę :web!', 'your_assets' => 'Peržiūrėti jūsų turtą', 'your_credentials' => 'Jūsų „Snipe-IT“ prisijungimo duomenys', diff --git a/resources/lang/lt-LT/reminders.php b/resources/lang/lt-LT/reminders.php index a8a6c3d6d..07a1f2cdd 100644 --- a/resources/lang/lt-LT/reminders.php +++ b/resources/lang/lt-LT/reminders.php @@ -13,7 +13,7 @@ return array( | */ - "password" => "Slaptažodį turi sudaryti bent šeši simboliai ir jie turi sutapti.", + "password" => "Slaptažodis turi būti sudarytas bent iš šešių simbolių ir turi sutapti su patvirtinimu.", "user" => "Neteisingas naudotojo vardas arba el. paštas", "token" => 'Šis slaptažodžio nustatymo iš naujo raktas yra netinkamas, pasibaigęs jo galiojimas arba jis nesutampa su nurodytu naudotojo vardu.', 'sent' => 'Jei mūsų sistemoje yra toks naudotojas su galiojančiu el. pašto adresu, jam buvo išsiųstas laiškas slaptažodžio nustatymui iš naujo.', diff --git a/resources/lang/lt-LT/table.php b/resources/lang/lt-LT/table.php index 836e2acf4..4203d24d8 100644 --- a/resources/lang/lt-LT/table.php +++ b/resources/lang/lt-LT/table.php @@ -5,7 +5,7 @@ return array( 'actions' => 'Veiksmai', 'action' => 'Veiksmas', 'by' => 'Atlikti', - 'item' => 'Įranga', + 'item' => 'Daiktas', 'no_matching_records' => 'Nerasta jokių atitinkančių įrašų', ); diff --git a/resources/lang/lt-LT/validation.php b/resources/lang/lt-LT/validation.php index 40818e45b..04fe22d9c 100644 --- a/resources/lang/lt-LT/validation.php +++ b/resources/lang/lt-LT/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => ':attribute lauke turi būti bent vienas simbolis.', 'uncompromised' => 'Pateiktas :attribute buvo rastas tarp nutekėjusių duomenų. Pasirinkite kitą :attribute.', ], + 'percent' => 'Nusidėvėjimo minimumas turi būti nuo 0 iki 100, kai nusidėvėjimo tipas yra procentinis.', + 'present' => ':attribute laukas turi būti esamas.', 'present_if' => ':attribute laukas turi egzistuoti, kai :other yra :value.', 'present_unless' => ':attribute laukas turi egzistuoti, nebent :other yra :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Jūsų dabartinis slaptažodis yra neteisingas', 'dumbpwd' => 'Šis slaptažodis yra per dažnas.', 'statuslabel_type' => 'Turite pasirinkti tinkamą būsenos žymos tipą', + 'custom_field_not_found' => 'Panašu, kad tokio lauko nėra. Patikrinkite savo pritaikytų laukų pavadinimus.', + 'custom_field_not_found_on_model' => 'Panašu, kad šis laukas egzistuoja, tačiau jo nėra šio turto modelio laukų rinkinyje.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/lv-LV/account/general.php b/resources/lang/lv-LV/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/lv-LV/account/general.php +++ b/resources/lang/lv-LV/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/lv-LV/admin/locations/message.php b/resources/lang/lv-LV/admin/locations/message.php index 136ef3b34..34e368cfa 100644 --- a/resources/lang/lv-LV/admin/locations/message.php +++ b/resources/lang/lv-LV/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Atrašanās vietas neeksistē.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Pašlaik šī atrašanās vieta ir saistīta ar vismaz vienu īpašumu un to nevar izdzēst. Lūdzu, atjauniniet savus aktīvus, lai vairs nerindotu šo atrašanās vietu, un mēģiniet vēlreiz.', 'assoc_child_loc' => 'Pašlaik šī vieta ir vismaz viena bērna atrašanās vieta un to nevar izdzēst. Lūdzu, atjauniniet savas atrašanās vietas, lai vairs nerindotu šo atrašanās vietu, un mēģiniet vēlreiz.', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/lv-LV/admin/settings/general.php b/resources/lang/lv-LV/admin/settings/general.php index 28e8018df..7d7de85ab 100644 --- a/resources/lang/lv-LV/admin/settings/general.php +++ b/resources/lang/lv-LV/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT versija', 'support_footer' => 'Atbalsta kājenes saites ', 'support_footer_help' => 'Norādiet, kurš redz saites uz Snipe-IT atbalsta informāciju un lietotāju rokasgrāmatu.', diff --git a/resources/lang/lv-LV/admin/settings/message.php b/resources/lang/lv-LV/admin/settings/message.php index 4004dcbe0..c8a668ecb 100644 --- a/resources/lang/lv-LV/admin/settings/message.php +++ b/resources/lang/lv-LV/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Iztīrīšanas laikā radās kļūda.', 'validation_failed' => 'Jūsu tīrīšanas apstiprinājums nav pareizs. Lūdzu, ierakstiet apstiprinājuma lodziņā vārdu "DELETE".', diff --git a/resources/lang/lv-LV/button.php b/resources/lang/lv-LV/button.php index a288ea35e..67acfef82 100644 --- a/resources/lang/lv-LV/button.php +++ b/resources/lang/lv-LV/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/lv-LV/general.php b/resources/lang/lv-LV/general.php index b0bcb6372..1a1be6016 100644 --- a/resources/lang/lv-LV/general.php +++ b/resources/lang/lv-LV/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Izejmateriāli', 'country' => 'Valsts', 'could_not_restore' => 'Kļūda atjaunojot :item_type: :error', - 'not_deleted' => ':item_type nevar atjaunot, jo tas nav izdzēsts', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Izveidot jaunu', 'created' => 'Izveidots vienums', 'created_asset' => 'izveidots aktīvu', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Šī lietojumprogramma darbojas ražošanas režīmā ar iespējotu atkļūdošanu. Tas var pakļaut sensitīvus datus, ja jūsu pieteikums ir pieejams ārpasauli. Atspējošanas atkļūdošanas režīms, iestatot APP_DEBUG vērtību savam .env failam uz false.', 'delete' => 'Dzēst', 'delete_confirm' => 'Vai tiešām vēlaties dzēst :item?', - 'delete_confirm_no_undo' => 'Vai esat pārliecināti, ka vēlaties dzēst šo :item? Tas būs neatgriezeniski.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Svītrots', 'delete_seats' => 'Izdzēstās vietas', 'deletion_failed' => 'Dzēšana neizdevās', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Uzvārds un vārda pirmais burts (berzinsj@epasts.lv)', 'firstinitial.lastname' => 'Vārds un uzvārds (j.smith@example.com)', 'firstnamelastinitial' => 'Vārds Uzvārds (jane_smith@example.com)', - 'lastnamefirstname' => 'Uzvārds Vārds (ozoliņa.liene@epasts.lv)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Vārds', 'first_name_format' => 'Vārds (jane@example.com)', 'files' => 'Datnes', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Dzēst attēlu', 'include_deleted' => 'Iekļaut Dzēstu Inventāru', 'image_upload' => 'Augšupielādēt attēlu', - 'filetypes_accepted_help' => 'Atļautie failu tipi :types. Maksimālais atļautais failu izmērs :size.|Atļautie failu tipi :types. Maksimālais atļautais failu izmārs :size.', - 'filetypes_size_help' => 'Maksimālais atļautais failu izmērs :size.', - 'image_filetypes_help' => 'Atlautie failu tipi ir: jpg, webp, png, gif, svg, and avif. Maks. augšupielādes lielums ir :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Šis attēls nebija izmantojams. Atļautie failu tipi ir: jpg, webp, png, gif, and svg. Šī faila tips ir :mimetype.', 'import' => 'Importēt', 'import_this_file' => 'Kartējiet laukus un apstrādājiet šo failu', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Pieejamās licences', 'licenses' => 'Licences', 'list_all' => 'Saraksts viss', - 'loading' => 'Ielādēju... lūdzu uzgaidiet...', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'Šī lauka vērtība netiks saglabāta parauga instalācijā.', 'feature_disabled' => 'Demonstrācijas instalēšanai šī funkcija ir atspējota.', 'location' => 'Atrašanās vieta', @@ -193,7 +193,7 @@ return [ 'logout' => 'Izlogoties', 'lookup_by_tag' => 'Meklēt pēc Asset Tag', 'maintenances' => 'Apkope', - 'manage_api_keys' => 'Pārvaldīt API atslēgas', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Ražotājs', 'manufacturers' => 'Ražotāji', 'markdown' => 'Šajā laukā ir iespējota Github aromatizēta atzīme.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Atlasīt Visu', 'search' => 'Meklēt', 'select_category' => 'Izvēlies kategoriju', - 'select_datasource' => 'Atlasīt Datu avotu', + 'select_datasource' => 'Select a data source', 'select_department' => 'Izvēlieties nodaļu', 'select_depreciation' => 'Atlasiet nolietojuma veidu', 'select_location' => 'Izvēlieties atrašanās vietu', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Izsniedza', 'skin' => 'Dizains', 'webhook_msg_note' => 'Paziņojums tiks nosūtīts ar webhook', - 'webhook_test_msg' => 'Sveiks! Tava :app integrācija ar Snipe-IT darbojas!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: dažas instalācijas funkcijas ir atspējotas.', 'site_name' => 'Vietnes nosaukums', 'state' => 'Valsts', 'status_labels' => 'Statusa etiķetes', + 'status_label' => 'Status Label', 'status' => 'Statuss', 'accept_eula' => 'Pieņemšanas Līgums', 'supplier' => 'Piegādātājs', @@ -339,16 +340,16 @@ return [ 'view_all' => 'skatīt visu', 'hide_deleted' => 'Slēpt Dzēstos', 'email' => 'E-pasts', - 'do_not_change' => 'Nemainīt', - 'bug_report' => 'Ziņot par kļūdu', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Lietotāja rokasgrāmata', 'setup_step_1' => '1. Solis', 'setup_step_2' => '2. Solis', 'setup_step_3' => '3. Solis', 'setup_step_4' => '4. Solis', 'setup_config_check' => 'Konfigurācijas pārbaude', - 'setup_create_database' => 'Izveidot Datubāzes Tabulas', - 'setup_create_admin' => 'Izveidot Admin lietotāju', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Gatavs!', 'bulk_edit_about_to' => 'Jūs tūlīt rediģēsiet sekojošo: ', 'checked_out' => 'Izrakstīts', diff --git a/resources/lang/lv-LV/localizations.php b/resources/lang/lv-LV/localizations.php index 4feb98792..f5662e499 100644 --- a/resources/lang/lv-LV/localizations.php +++ b/resources/lang/lv-LV/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/lv-LV/validation.php b/resources/lang/lv-LV/validation.php index c13647142..acdd48629 100644 --- a/resources/lang/lv-LV/validation.php +++ b/resources/lang/lv-LV/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Atribūta laukam jābūt klāt.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Jūsu pašreizējā parole nav pareiza', 'dumbpwd' => 'Šī parole ir pārāk izplatīta.', 'statuslabel_type' => 'Jums ir jāizvēlas derīgs statusa etiķetes veids', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/mi-NZ/account/general.php b/resources/lang/mi-NZ/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/mi-NZ/account/general.php +++ b/resources/lang/mi-NZ/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/mi-NZ/admin/locations/message.php b/resources/lang/mi-NZ/admin/locations/message.php index c35cfa531..8f50e9a24 100644 --- a/resources/lang/mi-NZ/admin/locations/message.php +++ b/resources/lang/mi-NZ/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Kāore i te tīariari te wāhi.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Kei te honohia tenei taapiri ki te iti rawa o te rawa me te kore e taea te muku. Whakaorangia nga taonga ki a koe kia kaua e tautuhi i tenei tauranga ka ngana ano.', 'assoc_child_loc' => 'Kei tenei waahi te matua o te iti rawa o te mokopuna me te kore e taea te muku. Whakaorangia nga taangata ki a koe kia kaua e tautuhi i tenei tauranga ka ngana ano.', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/mi-NZ/admin/settings/general.php b/resources/lang/mi-NZ/admin/settings/general.php index af2985c3e..0d07401c2 100644 --- a/resources/lang/mi-NZ/admin/settings/general.php +++ b/resources/lang/mi-NZ/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Whakaaetanga-IT putanga', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/mi-NZ/admin/settings/message.php b/resources/lang/mi-NZ/admin/settings/message.php index cadcb6128..93cb7d867 100644 --- a/resources/lang/mi-NZ/admin/settings/message.php +++ b/resources/lang/mi-NZ/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Kua puta he hapa i te wa e purea ana.', 'validation_failed' => 'He hē te whakauru o te purge. Tena koa tuhia te kupu "MOTORI" i roto i te pouaka whakauru.', diff --git a/resources/lang/mi-NZ/button.php b/resources/lang/mi-NZ/button.php index 38152826b..37df4452c 100644 --- a/resources/lang/mi-NZ/button.php +++ b/resources/lang/mi-NZ/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/mi-NZ/general.php b/resources/lang/mi-NZ/general.php index ce2afa6ad..071935c6e 100644 --- a/resources/lang/mi-NZ/general.php +++ b/resources/lang/mi-NZ/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Ngā whakamahinga', 'country' => 'Whenua', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Waihanga Hou', 'created' => 'Kua waihangatia te Mea', 'created_asset' => 'waihanga i te taonga', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ko tenei tono kei te whakahaere i te mahinga whakaputa me te taraiwa kua whakahohea. Ka taea e tenei te whakaatu i nga raraunga taarata mehemea ka uru atu to tono ki te ao o waho. Monokia te aratau taapatu mā te whakarite i te uara APP_DEBUG123_7____132 i roto i to kōnae .env ki false.', 'delete' => 'Mukua', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Kua mukua', 'delete_seats' => 'Kua mukua nga Maatai', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Ingoa Tuatahi', 'first_name_format' => 'Ingoa Tuatahi (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Mukua te Whakaahua', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Tukuna Whakaahua', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Kawemai', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Raihana', 'list_all' => 'Rārangi Katoa', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'Kua monokia tenei ahuatanga mo te tautuhinga whakaatu.', 'location' => 'Wāhi', @@ -193,7 +193,7 @@ return [ 'logout' => 'Whakaaturanga', 'lookup_by_tag' => 'Te tirotiro i te Tohu Taonga', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Kaihanga', 'manufacturers' => 'Kaihanga', 'markdown' => 'Ka whakaaetia e tenei maraa Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Rapua', 'select_category' => 'Tīpakohia he Kāwai', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Tīpakohia he Tari', 'select_depreciation' => 'Tīpakohia te Momo Utu', 'select_location' => 'Tīpakohia he Tauwāhi', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'TE WHAKAMAHI MĀTAURANGA: Kua monokia ētahi āhuatanga mo tenei tāutanga me te raraunga i tenei pūnaha ka tautuhi i ia ra.', 'site_name' => 'Ingoa Pae', 'state' => 'State', 'status_labels' => 'Ngā Tapanga Tūnga', + 'status_label' => 'Status Label', 'status' => 'Tūnga', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Kaihoko', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Īmēra', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Kua Mataarahia', diff --git a/resources/lang/mi-NZ/localizations.php b/resources/lang/mi-NZ/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/mi-NZ/localizations.php +++ b/resources/lang/mi-NZ/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/mi-NZ/validation.php b/resources/lang/mi-NZ/validation.php index 6417ae8b3..a7d5ed47d 100644 --- a/resources/lang/mi-NZ/validation.php +++ b/resources/lang/mi-NZ/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Ko te: ko te waahi tohu kia noho.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'He hē tō kupuhipa o nāianei', 'dumbpwd' => 'He noa rawa te kupuhipa.', 'statuslabel_type' => 'Me tīpako i te momo tahua tohu whaimana', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/mk-MK/account/general.php b/resources/lang/mk-MK/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/mk-MK/account/general.php +++ b/resources/lang/mk-MK/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/mk-MK/admin/locations/message.php b/resources/lang/mk-MK/admin/locations/message.php index c85ffb244..92e16a81e 100644 --- a/resources/lang/mk-MK/admin/locations/message.php +++ b/resources/lang/mk-MK/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Локацијата не постои.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Оваа локација моментално е поврзана со барем едно основно средство и не може да се избрише. Ве молиме да ги ажурирате вашите основни средства за да не ја користите оваа локација и обидете се повторно. ', 'assoc_child_loc' => 'Оваа локација моментално е родител на најмалку една локација и не може да се избрише. Ве молиме да ги ажурирате вашите локации повеќе да не ја користат оваа локација како родител и обидете се повторно. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/mk-MK/admin/settings/general.php b/resources/lang/mk-MK/admin/settings/general.php index b779ade2a..41a98c6ce 100644 --- a/resources/lang/mk-MK/admin/settings/general.php +++ b/resources/lang/mk-MK/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/mk-MK/admin/settings/message.php b/resources/lang/mk-MK/admin/settings/message.php index 2c5d28220..854096bec 100644 --- a/resources/lang/mk-MK/admin/settings/message.php +++ b/resources/lang/mk-MK/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Се случи грешка при трајното бришење. ', 'validation_failed' => 'Потврдата за трајно бришење е неточна. Внесете го зборот "DELETE" во полето за потврда.', diff --git a/resources/lang/mk-MK/button.php b/resources/lang/mk-MK/button.php index d2a19916b..c6caa2d48 100644 --- a/resources/lang/mk-MK/button.php +++ b/resources/lang/mk-MK/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/mk-MK/general.php b/resources/lang/mk-MK/general.php index 87d35aeb8..c924fe3f8 100644 --- a/resources/lang/mk-MK/general.php +++ b/resources/lang/mk-MK/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Потрошен материјал', 'country' => 'Држава', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Креирај Нов {0}', 'created' => 'Креирана ставка', 'created_asset' => 'креирано основно средство', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Оваа апликација работи во режим на производство со овозможено дебагирање. Ова може да изложи чувствителните податоци доколку вашата апликација е достапна за надворешниот свет. Оневозможете го дебагирачкиот режим со поставување на APP_DEBUG во вашата .env датотека на false.', 'delete' => 'Избриши', 'delete_confirm' => 'Дали сте сигурни дека сакате да избришете: ставка?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Избришани', 'delete_seats' => 'Избришани места', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Име', 'first_name_format' => 'Име (janko@example.com)', 'files' => 'Датотеки', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Избриши ја сликата', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Поставете слика', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Увоз', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Лиценци', 'list_all' => 'Листа на сите', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'Оваа функција е оневозможена за демонстрационата инсталација.', 'location' => 'Локација', @@ -193,7 +193,7 @@ return [ 'logout' => 'Одјави се', 'lookup_by_tag' => 'Пребарување по код на основно средство', 'maintenances' => 'Одржувања', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Производител', 'manufacturers' => 'Производители', 'markdown' => 'Ова поле прифаќа означување според Github.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Пребарај', 'select_category' => 'Одбери категорија', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Изберете оддел', 'select_depreciation' => 'Изберете тип на амортизација', 'select_location' => 'Изберете локација', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Кожа', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Некои функции се оневозможени за оваа инсталација.', 'site_name' => 'Име на сајтот', 'state' => 'Состојба', 'status_labels' => 'Етикети со статус', + 'status_label' => 'Status Label', 'status' => 'Статус', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Добавувач', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Е-пошта', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Задолжен на', diff --git a/resources/lang/mk-MK/localizations.php b/resources/lang/mk-MK/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/mk-MK/localizations.php +++ b/resources/lang/mk-MK/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/mk-MK/validation.php b/resources/lang/mk-MK/validation.php index 258c77c3f..2ba7a9d26 100644 --- a/resources/lang/mk-MK/validation.php +++ b/resources/lang/mk-MK/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Полето :attribute е задолжително.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Вашата тековна лозинка е неточна', 'dumbpwd' => 'Таа лозинка е премногу честа.', 'statuslabel_type' => 'Мора да изберете валидна етикета за статус', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/ml-IN/account/general.php b/resources/lang/ml-IN/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/ml-IN/account/general.php +++ b/resources/lang/ml-IN/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/ml-IN/admin/locations/message.php b/resources/lang/ml-IN/admin/locations/message.php index 8121b8068..6226c71ab 100644 --- a/resources/lang/ml-IN/admin/locations/message.php +++ b/resources/lang/ml-IN/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Location does not exist.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'This location is currently associated with at least one asset and cannot be deleted. Please update your assets to no longer reference this location and try again. ', 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/ml-IN/admin/settings/general.php b/resources/lang/ml-IN/admin/settings/general.php index 9ba69ef22..31165cf3f 100644 --- a/resources/lang/ml-IN/admin/settings/general.php +++ b/resources/lang/ml-IN/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/ml-IN/admin/settings/message.php b/resources/lang/ml-IN/admin/settings/message.php index c9b0f3421..24e2d292c 100644 --- a/resources/lang/ml-IN/admin/settings/message.php +++ b/resources/lang/ml-IN/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'An error has occurred while purging. ', 'validation_failed' => 'Your purge confirmation is incorrect. Please type the word "DELETE" in the confirmation box.', diff --git a/resources/lang/ml-IN/button.php b/resources/lang/ml-IN/button.php index 51c54bb9b..8a838e8fa 100644 --- a/resources/lang/ml-IN/button.php +++ b/resources/lang/ml-IN/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/ml-IN/general.php b/resources/lang/ml-IN/general.php index b4b643076..2a1e63549 100644 --- a/resources/lang/ml-IN/general.php +++ b/resources/lang/ml-IN/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'രാജ്യം', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'First Name', 'first_name_format' => 'First Name (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Delete Image', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Upload Image', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Licenses', 'list_all' => 'List All', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'This feature has been disabled for the demo installation.', 'location' => 'Location', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logout', 'lookup_by_tag' => 'Lookup by Asset Tag', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Manufacturer', 'manufacturers' => 'Manufacturers', 'markdown' => 'This field allows Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Search', 'select_category' => 'Select a Category', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Select a Department', 'select_depreciation' => 'Select a Depreciation Type', 'select_location' => 'Select a Location', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Site Name', 'state' => 'സംസ്ഥാനം', 'status_labels' => 'Status Labels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Supplier', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Email', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', diff --git a/resources/lang/ml-IN/localizations.php b/resources/lang/ml-IN/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/ml-IN/localizations.php +++ b/resources/lang/ml-IN/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/ml-IN/validation.php b/resources/lang/ml-IN/validation.php index b33548e2f..634170791 100644 --- a/resources/lang/ml-IN/validation.php +++ b/resources/lang/ml-IN/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'The :attribute field must be present.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Your current password is incorrect', 'dumbpwd' => 'That password is too common.', 'statuslabel_type' => 'You must select a valid status label type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/mn-MN/account/general.php b/resources/lang/mn-MN/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/mn-MN/account/general.php +++ b/resources/lang/mn-MN/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/mn-MN/admin/locations/message.php b/resources/lang/mn-MN/admin/locations/message.php index e69e94bad..f9d0f2919 100644 --- a/resources/lang/mn-MN/admin/locations/message.php +++ b/resources/lang/mn-MN/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Байршил байхгүй байна.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Энэ байршил нь одоогоор нэгээс доошгүй активтай холбоотой бөгөөд устгах боломжгүй байна. Энэ байршлыг лавлагаа болгохоо болихын тулд өөрийн хөрөнгийг шинэчлээд дахин оролдоно уу.', 'assoc_child_loc' => 'Энэ байршил нь одоогоор хамгийн багадаа нэг хүүхдийн байрлалын эцэг эх бөгөөд устгах боломжгүй байна. Энэ байршлыг лавшруулахгүй болгохын тулд байршлаа шинэчлээд дахин оролдоно уу.', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/mn-MN/admin/settings/general.php b/resources/lang/mn-MN/admin/settings/general.php index d9761f279..b37dcc496 100644 --- a/resources/lang/mn-MN/admin/settings/general.php +++ b/resources/lang/mn-MN/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT хувилбар', 'support_footer' => 'Хөл хэсэг дэх холбоосууд ', 'support_footer_help' => 'Snipe-IT Support мэдээлэл ба хэрэглэгчийн гарын авлагын холбоосыг хэн харж болохыг заах өгөх', diff --git a/resources/lang/mn-MN/admin/settings/message.php b/resources/lang/mn-MN/admin/settings/message.php index 8a18e5d07..5546af13b 100644 --- a/resources/lang/mn-MN/admin/settings/message.php +++ b/resources/lang/mn-MN/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Цэвэрлэх явцад алдаа гарлаа.', 'validation_failed' => 'Таны таслалтын баталгаа буруу байна. Баталгаажуулалтын хайрцагт "DELETE" үгийг оруулна уу.', diff --git a/resources/lang/mn-MN/button.php b/resources/lang/mn-MN/button.php index 50d3b99a1..262861994 100644 --- a/resources/lang/mn-MN/button.php +++ b/resources/lang/mn-MN/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/mn-MN/general.php b/resources/lang/mn-MN/general.php index 09b1e1c47..7ee5cb212 100644 --- a/resources/lang/mn-MN/general.php +++ b/resources/lang/mn-MN/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Хэрэглээ', 'country' => 'Улс', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Шинэ болгох', 'created' => 'Үүссэн зүйл', 'created_asset' => 'актив үүсгэсэн', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Энэ програм нь дибаг хийх боломжтойгоор үйлдвэрлэлийн горимд ажиллаж байна. Хэрэв таны хэрэглээ гаднах ертөнцөд хүртээмжтэй бол эмзэг өгөгдлийг илтгэнэ. APP_DEBUG утгыг өөрийн .env файлыг false руу тохируулах замаар дибаг хийх горимыг идэвхгүй болгох.', 'delete' => 'Устгах', 'delete_confirm' => 'Та :item устгахыг хүсч байгаадаа итгэлтэй байна уу?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Устгагдсан', 'delete_seats' => 'Устгагдсан суудал', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Нэр', 'first_name_format' => 'Эхний нэр (jane@example.com)', 'files' => 'Файлууд', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Зураг устгах', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Зургийн байршуулалт', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Импорт', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Лицензүүд', 'list_all' => 'Бүгдийг жагсаах', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'Демо суулгацын энэ онцлогийг идэвхгүй болгосон байна.', 'location' => 'Байршил', @@ -193,7 +193,7 @@ return [ 'logout' => 'Гарах', 'lookup_by_tag' => 'Хөрөнгийн Tagаар хайх', 'maintenances' => 'Засвар үйлчилгээ', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Үйлдвэрлэгч', 'manufacturers' => 'Үйлдвэрлэгчид', 'markdown' => 'Энэ талбар нь Гитуб амттай markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Хайлт', 'select_category' => 'Ангилал сонго', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Департамент сонгоно уу', 'select_depreciation' => 'Элэгдэлийн төрлийг сонгоно уу', 'select_location' => 'Байршлыг сонгоно уу', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Гадарга', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Энэ суулгацад зарим функцууд хаагдсан байна.', 'site_name' => 'Сайтын нэр', 'state' => 'Улс', 'status_labels' => 'Статусын шошго', + 'status_label' => 'Status Label', 'status' => 'Статус', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Нийлүүлэгч', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'И-мэйл хаяг', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Нь шалгаж', diff --git a/resources/lang/mn-MN/localizations.php b/resources/lang/mn-MN/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/mn-MN/localizations.php +++ b/resources/lang/mn-MN/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/mn-MN/validation.php b/resources/lang/mn-MN/validation.php index 01b9e5e41..67d02554c 100644 --- a/resources/lang/mn-MN/validation.php +++ b/resources/lang/mn-MN/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Үүнд: атрибутын талбар байх ёстой.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Таны одоогийн нууц үг буруу байна', 'dumbpwd' => 'Энэ нууц үг хэтэрхий нийтлэг байна.', 'statuslabel_type' => 'Та зөв статустай шошгын төрлийг сонгох ёстой', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/ms-MY/account/general.php b/resources/lang/ms-MY/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/ms-MY/account/general.php +++ b/resources/lang/ms-MY/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/ms-MY/admin/locations/message.php b/resources/lang/ms-MY/admin/locations/message.php index afd8501df..5726d0634 100644 --- a/resources/lang/ms-MY/admin/locations/message.php +++ b/resources/lang/ms-MY/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Lokasi tidak wujud.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Lokasi ini kini dikaitkan dengan sekurang-kurangnya satu aset dan tidak boleh dihapuskan. Sila kemas kini aset anda untuk tidak merujuk lagi lokasi ini dan cuba lagi.', 'assoc_child_loc' => 'Lokasi ini adalah ibu bapa sekurang-kurangnya satu lokasi kanak-kanak dan tidak boleh dipadamkan. Sila kemas kini lokasi anda untuk tidak merujuk lokasi ini lagi dan cuba lagi.', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/ms-MY/admin/settings/general.php b/resources/lang/ms-MY/admin/settings/general.php index 740a658d7..1c901f8a8 100644 --- a/resources/lang/ms-MY/admin/settings/general.php +++ b/resources/lang/ms-MY/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Versi Snipe-IT', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/ms-MY/admin/settings/message.php b/resources/lang/ms-MY/admin/settings/message.php index 43368b631..07e15cf5d 100644 --- a/resources/lang/ms-MY/admin/settings/message.php +++ b/resources/lang/ms-MY/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Ralat telah berlaku semasa pembersihan.', 'validation_failed' => 'Pengesahan pembersihan anda tidak betul. Sila taip perkataan "DELETE" dalam kotak pengesahan.', diff --git a/resources/lang/ms-MY/button.php b/resources/lang/ms-MY/button.php index fb63e739b..73737614d 100644 --- a/resources/lang/ms-MY/button.php +++ b/resources/lang/ms-MY/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/ms-MY/general.php b/resources/lang/ms-MY/general.php index 4455c98fd..e58b94d1e 100644 --- a/resources/lang/ms-MY/general.php +++ b/resources/lang/ms-MY/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Makanan yang boleh dimakan', 'country' => 'Negara', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Cipta Baru', 'created' => 'Perkara yang Dibuat', 'created_asset' => 'cipta harta', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Aplikasi ini berjalan dalam mod pengeluaran dengan debug membolehkan. Ini boleh mendedahkan data sensitif jika aplikasi anda boleh diakses oleh dunia luar. Lumpuhkan mod debug dengan menetapkan APP_DEBUG nilai dalam fail .env anda ke false.', 'delete' => 'Hapuskan', 'delete_confirm' => 'Adakah anda pasti ingin memadamkan :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Dihapuskan', 'delete_seats' => 'Kerusi dipadamkan', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Nama pertama', 'first_name_format' => 'Nama Pertama (jane@example.com)', 'files' => 'Fail-fail', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Hapuskan imej', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Muat naik imej', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Lesen', 'list_all' => 'Senaraikan Semua', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'Ciri ini telah dilumpuhkan untuk pemasangan demo.', 'location' => 'Lokasi', @@ -193,7 +193,7 @@ return [ 'logout' => 'Log keluar', 'lookup_by_tag' => 'Cari dengan Tag Aset', 'maintenances' => 'Penyelenggaraan', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Pengeluar', 'manufacturers' => 'Pengeluar', 'markdown' => 'Bidang ini membolehkan markah rasa Github.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Carian', 'select_category' => 'Pilih kategori', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Pilih Jabatan', 'select_depreciation' => 'Pilih Jenis Susutnilai', 'select_location' => 'Pilih Lokasi', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Kulit', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'MODEM DEMO: Sesetengah ciri dilumpuhkan untuk pemasangan ini.', 'site_name' => 'Nama Sesawang', 'state' => 'Negeri', 'status_labels' => 'Label Status', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Pembekal', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'E-mel', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Agihan Keluar', diff --git a/resources/lang/ms-MY/localizations.php b/resources/lang/ms-MY/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/ms-MY/localizations.php +++ b/resources/lang/ms-MY/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/ms-MY/validation.php b/resources/lang/ms-MY/validation.php index 28d2a7791..082e8b997 100644 --- a/resources/lang/ms-MY/validation.php +++ b/resources/lang/ms-MY/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Yang: bidang atribut mesti ada.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Kata laluan semasa anda tidak betul', 'dumbpwd' => 'Kata laluan itu terlalu umum.', 'statuslabel_type' => 'Anda mesti memilih jenis label status yang sah', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/nb-NO/account/general.php b/resources/lang/nb-NO/account/general.php index 9a4242971..99da024c8 100644 --- a/resources/lang/nb-NO/account/general.php +++ b/resources/lang/nb-NO/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/nb-NO/admin/locations/message.php b/resources/lang/nb-NO/admin/locations/message.php index 1f5840ba4..cd124690a 100644 --- a/resources/lang/nb-NO/admin/locations/message.php +++ b/resources/lang/nb-NO/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Lokasjon eksisterer ikke.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Lokasjonen er tilknyttet minst en eiendel og kan ikke slettes. Oppdater dine eiendeler slik at de ikke refererer til denne lokasjonen, og prøv igjen. ', 'assoc_child_loc' => 'Lokasjonen er overordnet til minst en underlokasjon og kan ikke slettes. Oppdater din lokasjoner til å ikke referere til denne lokasjonen, og prøv igjen. ', 'assigned_assets' => 'Tildelte ressurser', diff --git a/resources/lang/nb-NO/admin/settings/general.php b/resources/lang/nb-NO/admin/settings/general.php index d635f260f..36604fa93 100644 --- a/resources/lang/nb-NO/admin/settings/general.php +++ b/resources/lang/nb-NO/admin/settings/general.php @@ -219,6 +219,8 @@ Linjeskift, topptekst, bilder, osv. kan føre til uventede resultater.', 'webhook_integration_help' => ':app-integrasjon er valgfritt, men endepunktet og kanalen er påkrevd hvis du ønsker å bruke den. For å konfigurere :app integrering, må du først lage en innkommende webhook på din :app konto. Klikk på knappen Test :app Integrasjon for å bekrefte at innstillingene er korrekte før du lagrer. ', 'webhook_integration_help_button' => 'Du vil se en testknapp etter at du har lagret din :app informasjon.', 'webhook_test_help' => 'Test om din :app integrasjon er riktig konfigurert. DU MÅ LAGRE DINE OPPDATERTE :app INNSTILLINGER FØRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT-versjon', 'support_footer' => 'Støtte Footer Lenker ', 'support_footer_help' => 'Angi hvem som kan se lenker til Snipe-IT supportinformasjon og brukermanual', diff --git a/resources/lang/nb-NO/admin/settings/message.php b/resources/lang/nb-NO/admin/settings/message.php index 42d29371f..04ab7973b 100644 --- a/resources/lang/nb-NO/admin/settings/message.php +++ b/resources/lang/nb-NO/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Ja, kjør gjenoppretting. Jeg forstår at dette vil overskive alle eksisterende data som er i databasen. Dette vil også logge ut alle eksisterende brukere (inkludert meg selv).', 'restore_confirm' => 'Er du sikker på at du vil gjenopprette databasen fra :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Det oppstod en feil under fjerning. ', 'validation_failed' => 'Din fjerningsbekreftelse er feil. Vennligst skriv inn ordet "DELETE" i bekreftelsesboksen.', diff --git a/resources/lang/nb-NO/button.php b/resources/lang/nb-NO/button.php index d68f89a77..6a9e0b866 100644 --- a/resources/lang/nb-NO/button.php +++ b/resources/lang/nb-NO/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/nb-NO/general.php b/resources/lang/nb-NO/general.php index 9c70d97a1..69cfbec23 100644 --- a/resources/lang/nb-NO/general.php +++ b/resources/lang/nb-NO/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Forbruksvarer', 'country' => 'Land', 'could_not_restore' => 'Feil ved gjenoppretting av :item_type: :error', - 'not_deleted' => ':item_type er ikke slettet og kan ikke gjenopprettes', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Opprett ny', 'created' => 'Enhet opprettet', 'created_asset' => 'eiendel opprettet', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Dette programmet kjører i produksjonsmodus med feilsøking aktiverert. Dette kan utsette følsomme data hvis programmet er tilgjengelig for omverdenen. Deaktiver debug modus ved å sette APP_DEBUG-verdien i filen .env til false.', 'delete' => 'Slett', 'delete_confirm' => 'Er du sikker på at du vil slette :item?', - 'delete_confirm_no_undo' => 'Er du sikker på at du vil slette :item? Dette kan ikke angres.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Slettet', 'delete_seats' => 'Slettede setelisenser', 'deletion_failed' => 'Sletting mislyktes', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Etternavn Fornavn Initialer (smith_j@example.com)', 'firstinitial.lastname' => 'Fornavn Initialer Etternavn (j.smith@example.com)', 'firstnamelastinitial' => 'Fornavn Etternavn Initialer (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Fornavn', 'first_name_format' => 'Fornavn (oladunk@example.com)', 'files' => 'Filer', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Slett bilde', 'include_deleted' => 'Inkluder slettede ressurser', 'image_upload' => 'Last opp bilde', - 'filetypes_accepted_help' => 'Godkjent filtype er :types. Maks opplastingsstørrelse er :size.|Aksepterte filtyper er :types. Maks opplastingsstørrelse er :size.', - 'filetypes_size_help' => 'Maks opplastingsstørrelse er :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Denne bildefilen var ikke lesbar. Aksepterte filtyper er jpg, webp, png, gif og svg. Mime-typen til denne filen er :mimetype.', 'import' => 'Importer', 'import_this_file' => 'Kartfelter og behandle denne filen', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Tilgjengelige lisenser', 'licenses' => 'Lisenser', 'list_all' => 'List alle', - 'loading' => 'Laster... vennligst vent....', + 'loading' => 'Laster... vennligst vent...', 'lock_passwords' => 'Denne feltverdien vil ikke bli lagret i en demo-installasjon.', 'feature_disabled' => 'Denne funksjonen er deaktivert i demo-installasjonen.', 'location' => 'Lokasjon', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logg ut', 'lookup_by_tag' => 'Søk på ID-merke', 'maintenances' => 'Vedlikehold', - 'manage_api_keys' => 'Administrer API-nøkler', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Produsent', 'manufacturers' => 'Produsenter', 'markdown' => 'Dette feltet tillater Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Velg alle', 'search' => 'Søk', 'select_category' => 'Velg en kategori', - 'select_datasource' => 'Velg en datakilde', + 'select_datasource' => 'Select a data source', 'select_department' => 'Velg en avdeling', 'select_depreciation' => 'Velg en avskrivningstype', 'select_location' => 'Velg en lokasjon', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Godkjent av', 'skin' => 'Tema', 'webhook_msg_note' => 'En varsling vil bli sendt via webhook', - 'webhook_test_msg' => 'Hei-hå! Ser som din Slack-integrasjon med Snipe-IT fungerer!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODUS: Noe funksjonalitet er skrudd av i denne installasjonen.', 'site_name' => 'Nettstedsnavn', 'state' => 'Stat', 'status_labels' => 'Statusmerker', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Akseptavtale', 'supplier' => 'Leverandør', @@ -339,16 +340,16 @@ return [ 'view_all' => 'se alle', 'hide_deleted' => 'Skjul slettede', 'email' => 'E-post', - 'do_not_change' => 'Ikke endre', - 'bug_report' => 'Rapporter feil', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Brukerhåndbok', 'setup_step_1' => 'Trinn 1', 'setup_step_2' => 'Trinn 2', 'setup_step_3' => 'Trinn 3', 'setup_step_4' => 'Trinn 4', 'setup_config_check' => 'Sjekk konfigurasjon', - 'setup_create_database' => 'Opprett databasetabeller', - 'setup_create_admin' => 'Opprett adminbruker', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Ferdig!', 'bulk_edit_about_to' => 'Du er i ferd med å redigere følgende: ', 'checked_out' => 'Sjekket ut', diff --git a/resources/lang/nb-NO/localizations.php b/resources/lang/nb-NO/localizations.php index cacfe7096..354be751b 100644 --- a/resources/lang/nb-NO/localizations.php +++ b/resources/lang/nb-NO/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malayisk', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolsk', - 'no-NO'=> 'Norsk', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persisk', 'pl-PL'=> 'Polsk', 'pt-PT'=> 'Portugisisk', diff --git a/resources/lang/nb-NO/validation.php b/resources/lang/nb-NO/validation.php index 6f0c98576..ef4034d0b 100644 --- a/resources/lang/nb-NO/validation.php +++ b/resources/lang/nb-NO/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Atributtfeltet :attribute må ha en verdi.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Gjeldende passord er feil', 'dumbpwd' => 'Passordet er for vanlig.', 'statuslabel_type' => 'Du må velge en gyldig statusetikett-type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/nl-NL/account/general.php b/resources/lang/nl-NL/account/general.php index e2e021297..3fb4862ad 100644 --- a/resources/lang/nl-NL/account/general.php +++ b/resources/lang/nl-NL/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/nl-NL/admin/locations/message.php b/resources/lang/nl-NL/admin/locations/message.php index 471c641f0..b9760350d 100644 --- a/resources/lang/nl-NL/admin/locations/message.php +++ b/resources/lang/nl-NL/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Locatie bestaat niet.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Deze locatie is momenteel gekoppeld met tenminste één asset en kan hierdoor niet worden verwijderd. Update je assets die niet meer bij deze locatie en probeer het opnieuw. ', 'assoc_child_loc' => 'Deze locatie is momenteen de ouder van ten minste één kind locatie en kan hierdoor niet worden verwijderd. Update je locaties bij die niet meer naar deze locatie verwijzen en probeer het opnieuw. ', 'assigned_assets' => 'Toegewezen activa', diff --git a/resources/lang/nl-NL/admin/settings/general.php b/resources/lang/nl-NL/admin/settings/general.php index 9f3ce16f6..671b0e931 100644 --- a/resources/lang/nl-NL/admin/settings/general.php +++ b/resources/lang/nl-NL/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integratie is optioneel, maar het eindpunt en kanaal zijn vereist als je het wilt gebruiken. Om :app integratie te configureren, moet je eerst een inkomende webhook maken op je :app account. Klik op de knop Test :app Integration om te bevestigen dat je instellingen correct zijn voordat je ze opslaat. ', 'webhook_integration_help_button' => 'Zodra je :app informatie hebt opgeslagen, verschijnt er een testknop.', 'webhook_test_help' => 'Test of je :app integratie correct is geconfigureerd. JE MOET EERST DE AANGEPASTE :app INSTELLINGEN OPSLAAN.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT Versie', 'support_footer' => 'Ondersteuningsvoettekst links ', 'support_footer_help' => 'Geef aan wie de links naar de Snipe-IT-ondersteuningsinformatie en gebruikershandleiding ziet', diff --git a/resources/lang/nl-NL/admin/settings/message.php b/resources/lang/nl-NL/admin/settings/message.php index a07cd34f8..c1eca86cd 100644 --- a/resources/lang/nl-NL/admin/settings/message.php +++ b/resources/lang/nl-NL/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Ja, herstellen. Ik bevestig dat dit alle bestaande gegevens die momenteel in de database aanwezig zijn, overschreven worden. Dit zal ook alle bestaande gebruikers uitloggen (inclusief jijzelf).', 'restore_confirm' => 'Weet je zeker dat je je database wilt herstellen met :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Er is iets fout gegaan tijdens het opschonen.', 'validation_failed' => 'De opschoon bevestiging is niet correct. Typ het woord "DELETE" in het bevestigingsveld.', diff --git a/resources/lang/nl-NL/button.php b/resources/lang/nl-NL/button.php index 918f9db21..64f0f9fae 100644 --- a/resources/lang/nl-NL/button.php +++ b/resources/lang/nl-NL/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/nl-NL/general.php b/resources/lang/nl-NL/general.php index 08eabcac5..17296afff 100644 --- a/resources/lang/nl-NL/general.php +++ b/resources/lang/nl-NL/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Verbruiksartikelen', 'country' => 'Land', 'could_not_restore' => 'Fout herstellen :item_type: :error', - 'not_deleted' => 'De :item_type is niet verwijderd, het kan niet worden hersteld', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Nieuwe aanmaken', 'created' => 'Item aangemaakt', 'created_asset' => 'aangemaakt asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Deze applicatie draait in productie modus met foutopsporing ingeschakeld. Dit kan betekenen dat mogelijk gevoelige gegevens zichtbaar zijn voor de buitenwereld. Schakel foutopsporing uit door de APP_DEBUG variabele in je .env bestand op false te zetten.', 'delete' => 'Verwijder', 'delete_confirm' => 'Weet u zeker dat u :item wilt verwijderen?', - 'delete_confirm_no_undo' => 'Weet je zeker dat je :item wilt verwijderen? Dit kan niet ongedaan gemaakt worden.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Verwijderd', 'delete_seats' => 'Verwijderde plekken', 'deletion_failed' => 'Verwijderen mislukt', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Achternaam eerste initiaal (smith_j@example.com)', 'firstinitial.lastname' => 'Eerste initiaal achternaam (j.smith@example.com)', 'firstnamelastinitial' => 'Voornaam Initiaal Achternaam (janes@voorbeeld.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Voornaam', 'first_name_format' => 'Voornaam (jane@example.com)', 'files' => 'Bestanden', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Afbeelding verwijderen', 'include_deleted' => 'Verwijderde activa opnemen', 'image_upload' => 'Afbeelding uploaden', - 'filetypes_accepted_help' => 'Geaccepteerde bestandstype is :types. Maximale toegestane uploadgrootte is :size.|Geaccepteerde bestandstypen zijn :types. Maximale uploadgrootte is :size.', - 'filetypes_size_help' => 'Maximale toegestane uploadgrootte is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Dit afbeeldingsbestand is niet leesbaar. Geaccepteerde bestandstypen zijn jpg, webp, png, gif en svg. Het mimetype van dit bestand is: :mimetype.', 'import' => 'Importeer', 'import_this_file' => 'Kaart velden en verwerk dit bestand', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Beschikbare licenties', 'licenses' => 'Licenties', 'list_all' => 'Toon Alles', - 'loading' => 'Laden... even geduld....', + 'loading' => 'Laden... even geduld...', 'lock_passwords' => 'Dit veld zal niet worden opgeslagen in een demo installatie.', 'feature_disabled' => 'Deze functionaliteit is uitgeschakeld voor de demonstratie installatie.', 'location' => 'Locatie', @@ -193,7 +193,7 @@ return [ 'logout' => 'Afmelden', 'lookup_by_tag' => 'Opzoeken via Asset tag', 'maintenances' => 'Onderhoudsbeurten', - 'manage_api_keys' => 'API-sleutels beheren', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Fabrikant', 'manufacturers' => 'Fabrikanten', 'markdown' => 'Dit veld staat Github markdown gebruik toe.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Alles selecteren', 'search' => 'Zoeken', 'select_category' => 'Selecteer een categorie', - 'select_datasource' => 'Selecteer een bron', + 'select_datasource' => 'Select a data source', 'select_department' => 'Selecteer de afdeling', 'select_depreciation' => 'Selecteer een afschrijvingstype', 'select_location' => 'Selecteer een locatie', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Afgetekend door', 'skin' => 'Thema', 'webhook_msg_note' => 'Er wordt een melding verzonden via webhook', - 'webhook_test_msg' => 'Oh hai! Het lijkt erop dat jouw :app integratie met Snipe-IT werkt!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODUS: Sommige functies zijn uitgeschakeld voor deze installatie.', 'site_name' => 'Sitenaam', 'state' => 'Status', 'status_labels' => 'Statuslabels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Aanvaarding overeenkomst', 'supplier' => 'Leverancier', @@ -339,16 +340,16 @@ return [ 'view_all' => 'alles weergeven', 'hide_deleted' => 'Verberg verwijderde', 'email' => 'E-mailadres', - 'do_not_change' => 'Niet wijzigen', - 'bug_report' => 'Een fout melden', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Gebruiker\'s Handleiding', 'setup_step_1' => 'Stap 1', 'setup_step_2' => 'Stap 2', 'setup_step_3' => 'Stap 3', 'setup_step_4' => 'Stap 4', 'setup_config_check' => 'Configuratie Controle', - 'setup_create_database' => 'Database tabellen aanmaken', - 'setup_create_admin' => 'Maak beheerder aan', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Klaar!', 'bulk_edit_about_to' => 'Je staat op het punt om het volgende te bewerken: ', 'checked_out' => 'Uitgecheckt', diff --git a/resources/lang/nl-NL/localizations.php b/resources/lang/nl-NL/localizations.php index 0af43adbc..95ae96166 100644 --- a/resources/lang/nl-NL/localizations.php +++ b/resources/lang/nl-NL/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Maleis', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongools', - 'no-NO'=> 'Noors', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Perzisch', 'pl-PL'=> 'Pools', 'pt-PT'=> 'Portugees', diff --git a/resources/lang/nl-NL/validation.php b/resources/lang/nl-NL/validation.php index dfd703eba..783cf9df1 100644 --- a/resources/lang/nl-NL/validation.php +++ b/resources/lang/nl-NL/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => ':attribute veld moet aanwezig zijn.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Je huidige wachtwoord is incorrect', 'dumbpwd' => 'Dat wachtwoord is te veelvoorkomend.', 'statuslabel_type' => 'Selecteer een valide status label', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/nn-NO/account/general.php b/resources/lang/nn-NO/account/general.php index 9a4242971..99da024c8 100644 --- a/resources/lang/nn-NO/account/general.php +++ b/resources/lang/nn-NO/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/nn-NO/admin/locations/message.php b/resources/lang/nn-NO/admin/locations/message.php index 1f5840ba4..cd124690a 100644 --- a/resources/lang/nn-NO/admin/locations/message.php +++ b/resources/lang/nn-NO/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Lokasjon eksisterer ikke.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Lokasjonen er tilknyttet minst en eiendel og kan ikke slettes. Oppdater dine eiendeler slik at de ikke refererer til denne lokasjonen, og prøv igjen. ', 'assoc_child_loc' => 'Lokasjonen er overordnet til minst en underlokasjon og kan ikke slettes. Oppdater din lokasjoner til å ikke referere til denne lokasjonen, og prøv igjen. ', 'assigned_assets' => 'Tildelte ressurser', diff --git a/resources/lang/nn-NO/admin/settings/general.php b/resources/lang/nn-NO/admin/settings/general.php index d635f260f..36604fa93 100644 --- a/resources/lang/nn-NO/admin/settings/general.php +++ b/resources/lang/nn-NO/admin/settings/general.php @@ -219,6 +219,8 @@ Linjeskift, topptekst, bilder, osv. kan føre til uventede resultater.', 'webhook_integration_help' => ':app-integrasjon er valgfritt, men endepunktet og kanalen er påkrevd hvis du ønsker å bruke den. For å konfigurere :app integrering, må du først lage en innkommende webhook på din :app konto. Klikk på knappen Test :app Integrasjon for å bekrefte at innstillingene er korrekte før du lagrer. ', 'webhook_integration_help_button' => 'Du vil se en testknapp etter at du har lagret din :app informasjon.', 'webhook_test_help' => 'Test om din :app integrasjon er riktig konfigurert. DU MÅ LAGRE DINE OPPDATERTE :app INNSTILLINGER FØRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT-versjon', 'support_footer' => 'Støtte Footer Lenker ', 'support_footer_help' => 'Angi hvem som kan se lenker til Snipe-IT supportinformasjon og brukermanual', diff --git a/resources/lang/nn-NO/admin/settings/message.php b/resources/lang/nn-NO/admin/settings/message.php index 42d29371f..04ab7973b 100644 --- a/resources/lang/nn-NO/admin/settings/message.php +++ b/resources/lang/nn-NO/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Ja, kjør gjenoppretting. Jeg forstår at dette vil overskive alle eksisterende data som er i databasen. Dette vil også logge ut alle eksisterende brukere (inkludert meg selv).', 'restore_confirm' => 'Er du sikker på at du vil gjenopprette databasen fra :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Det oppstod en feil under fjerning. ', 'validation_failed' => 'Din fjerningsbekreftelse er feil. Vennligst skriv inn ordet "DELETE" i bekreftelsesboksen.', diff --git a/resources/lang/nn-NO/button.php b/resources/lang/nn-NO/button.php index d68f89a77..6a9e0b866 100644 --- a/resources/lang/nn-NO/button.php +++ b/resources/lang/nn-NO/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/nn-NO/general.php b/resources/lang/nn-NO/general.php index 9c70d97a1..69cfbec23 100644 --- a/resources/lang/nn-NO/general.php +++ b/resources/lang/nn-NO/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Forbruksvarer', 'country' => 'Land', 'could_not_restore' => 'Feil ved gjenoppretting av :item_type: :error', - 'not_deleted' => ':item_type er ikke slettet og kan ikke gjenopprettes', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Opprett ny', 'created' => 'Enhet opprettet', 'created_asset' => 'eiendel opprettet', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Dette programmet kjører i produksjonsmodus med feilsøking aktiverert. Dette kan utsette følsomme data hvis programmet er tilgjengelig for omverdenen. Deaktiver debug modus ved å sette APP_DEBUG-verdien i filen .env til false.', 'delete' => 'Slett', 'delete_confirm' => 'Er du sikker på at du vil slette :item?', - 'delete_confirm_no_undo' => 'Er du sikker på at du vil slette :item? Dette kan ikke angres.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Slettet', 'delete_seats' => 'Slettede setelisenser', 'deletion_failed' => 'Sletting mislyktes', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Etternavn Fornavn Initialer (smith_j@example.com)', 'firstinitial.lastname' => 'Fornavn Initialer Etternavn (j.smith@example.com)', 'firstnamelastinitial' => 'Fornavn Etternavn Initialer (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Fornavn', 'first_name_format' => 'Fornavn (oladunk@example.com)', 'files' => 'Filer', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Slett bilde', 'include_deleted' => 'Inkluder slettede ressurser', 'image_upload' => 'Last opp bilde', - 'filetypes_accepted_help' => 'Godkjent filtype er :types. Maks opplastingsstørrelse er :size.|Aksepterte filtyper er :types. Maks opplastingsstørrelse er :size.', - 'filetypes_size_help' => 'Maks opplastingsstørrelse er :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Denne bildefilen var ikke lesbar. Aksepterte filtyper er jpg, webp, png, gif og svg. Mime-typen til denne filen er :mimetype.', 'import' => 'Importer', 'import_this_file' => 'Kartfelter og behandle denne filen', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Tilgjengelige lisenser', 'licenses' => 'Lisenser', 'list_all' => 'List alle', - 'loading' => 'Laster... vennligst vent....', + 'loading' => 'Laster... vennligst vent...', 'lock_passwords' => 'Denne feltverdien vil ikke bli lagret i en demo-installasjon.', 'feature_disabled' => 'Denne funksjonen er deaktivert i demo-installasjonen.', 'location' => 'Lokasjon', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logg ut', 'lookup_by_tag' => 'Søk på ID-merke', 'maintenances' => 'Vedlikehold', - 'manage_api_keys' => 'Administrer API-nøkler', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Produsent', 'manufacturers' => 'Produsenter', 'markdown' => 'Dette feltet tillater Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Velg alle', 'search' => 'Søk', 'select_category' => 'Velg en kategori', - 'select_datasource' => 'Velg en datakilde', + 'select_datasource' => 'Select a data source', 'select_department' => 'Velg en avdeling', 'select_depreciation' => 'Velg en avskrivningstype', 'select_location' => 'Velg en lokasjon', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Godkjent av', 'skin' => 'Tema', 'webhook_msg_note' => 'En varsling vil bli sendt via webhook', - 'webhook_test_msg' => 'Hei-hå! Ser som din Slack-integrasjon med Snipe-IT fungerer!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODUS: Noe funksjonalitet er skrudd av i denne installasjonen.', 'site_name' => 'Nettstedsnavn', 'state' => 'Stat', 'status_labels' => 'Statusmerker', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Akseptavtale', 'supplier' => 'Leverandør', @@ -339,16 +340,16 @@ return [ 'view_all' => 'se alle', 'hide_deleted' => 'Skjul slettede', 'email' => 'E-post', - 'do_not_change' => 'Ikke endre', - 'bug_report' => 'Rapporter feil', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Brukerhåndbok', 'setup_step_1' => 'Trinn 1', 'setup_step_2' => 'Trinn 2', 'setup_step_3' => 'Trinn 3', 'setup_step_4' => 'Trinn 4', 'setup_config_check' => 'Sjekk konfigurasjon', - 'setup_create_database' => 'Opprett databasetabeller', - 'setup_create_admin' => 'Opprett adminbruker', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Ferdig!', 'bulk_edit_about_to' => 'Du er i ferd med å redigere følgende: ', 'checked_out' => 'Sjekket ut', diff --git a/resources/lang/nn-NO/localizations.php b/resources/lang/nn-NO/localizations.php index ec2ee04a8..c2a39e938 100644 --- a/resources/lang/nn-NO/localizations.php +++ b/resources/lang/nn-NO/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malayisk', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolsk', - 'no-NO'=> 'Norsk', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persisk', 'pl-PL'=> 'Polsk', 'pt-PT'=> 'Portugisisk', diff --git a/resources/lang/nn-NO/validation.php b/resources/lang/nn-NO/validation.php index 6f0c98576..ef4034d0b 100644 --- a/resources/lang/nn-NO/validation.php +++ b/resources/lang/nn-NO/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Atributtfeltet :attribute må ha en verdi.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Gjeldende passord er feil', 'dumbpwd' => 'Passordet er for vanlig.', 'statuslabel_type' => 'Du må velge en gyldig statusetikett-type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/no-NO/account/general.php b/resources/lang/no-NO/account/general.php index 9a4242971..99da024c8 100644 --- a/resources/lang/no-NO/account/general.php +++ b/resources/lang/no-NO/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/no-NO/admin/locations/message.php b/resources/lang/no-NO/admin/locations/message.php index 1f5840ba4..cd124690a 100644 --- a/resources/lang/no-NO/admin/locations/message.php +++ b/resources/lang/no-NO/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Lokasjon eksisterer ikke.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Lokasjonen er tilknyttet minst en eiendel og kan ikke slettes. Oppdater dine eiendeler slik at de ikke refererer til denne lokasjonen, og prøv igjen. ', 'assoc_child_loc' => 'Lokasjonen er overordnet til minst en underlokasjon og kan ikke slettes. Oppdater din lokasjoner til å ikke referere til denne lokasjonen, og prøv igjen. ', 'assigned_assets' => 'Tildelte ressurser', diff --git a/resources/lang/no-NO/admin/settings/general.php b/resources/lang/no-NO/admin/settings/general.php index d635f260f..36604fa93 100644 --- a/resources/lang/no-NO/admin/settings/general.php +++ b/resources/lang/no-NO/admin/settings/general.php @@ -219,6 +219,8 @@ Linjeskift, topptekst, bilder, osv. kan føre til uventede resultater.', 'webhook_integration_help' => ':app-integrasjon er valgfritt, men endepunktet og kanalen er påkrevd hvis du ønsker å bruke den. For å konfigurere :app integrering, må du først lage en innkommende webhook på din :app konto. Klikk på knappen Test :app Integrasjon for å bekrefte at innstillingene er korrekte før du lagrer. ', 'webhook_integration_help_button' => 'Du vil se en testknapp etter at du har lagret din :app informasjon.', 'webhook_test_help' => 'Test om din :app integrasjon er riktig konfigurert. DU MÅ LAGRE DINE OPPDATERTE :app INNSTILLINGER FØRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT-versjon', 'support_footer' => 'Støtte Footer Lenker ', 'support_footer_help' => 'Angi hvem som kan se lenker til Snipe-IT supportinformasjon og brukermanual', diff --git a/resources/lang/no-NO/admin/settings/message.php b/resources/lang/no-NO/admin/settings/message.php index 42d29371f..04ab7973b 100644 --- a/resources/lang/no-NO/admin/settings/message.php +++ b/resources/lang/no-NO/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Ja, kjør gjenoppretting. Jeg forstår at dette vil overskive alle eksisterende data som er i databasen. Dette vil også logge ut alle eksisterende brukere (inkludert meg selv).', 'restore_confirm' => 'Er du sikker på at du vil gjenopprette databasen fra :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Det oppstod en feil under fjerning. ', 'validation_failed' => 'Din fjerningsbekreftelse er feil. Vennligst skriv inn ordet "DELETE" i bekreftelsesboksen.', diff --git a/resources/lang/no-NO/button.php b/resources/lang/no-NO/button.php index d68f89a77..6a9e0b866 100644 --- a/resources/lang/no-NO/button.php +++ b/resources/lang/no-NO/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/no-NO/general.php b/resources/lang/no-NO/general.php index 9c70d97a1..69cfbec23 100644 --- a/resources/lang/no-NO/general.php +++ b/resources/lang/no-NO/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Forbruksvarer', 'country' => 'Land', 'could_not_restore' => 'Feil ved gjenoppretting av :item_type: :error', - 'not_deleted' => ':item_type er ikke slettet og kan ikke gjenopprettes', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Opprett ny', 'created' => 'Enhet opprettet', 'created_asset' => 'eiendel opprettet', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Dette programmet kjører i produksjonsmodus med feilsøking aktiverert. Dette kan utsette følsomme data hvis programmet er tilgjengelig for omverdenen. Deaktiver debug modus ved å sette APP_DEBUG-verdien i filen .env til false.', 'delete' => 'Slett', 'delete_confirm' => 'Er du sikker på at du vil slette :item?', - 'delete_confirm_no_undo' => 'Er du sikker på at du vil slette :item? Dette kan ikke angres.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Slettet', 'delete_seats' => 'Slettede setelisenser', 'deletion_failed' => 'Sletting mislyktes', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Etternavn Fornavn Initialer (smith_j@example.com)', 'firstinitial.lastname' => 'Fornavn Initialer Etternavn (j.smith@example.com)', 'firstnamelastinitial' => 'Fornavn Etternavn Initialer (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Fornavn', 'first_name_format' => 'Fornavn (oladunk@example.com)', 'files' => 'Filer', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Slett bilde', 'include_deleted' => 'Inkluder slettede ressurser', 'image_upload' => 'Last opp bilde', - 'filetypes_accepted_help' => 'Godkjent filtype er :types. Maks opplastingsstørrelse er :size.|Aksepterte filtyper er :types. Maks opplastingsstørrelse er :size.', - 'filetypes_size_help' => 'Maks opplastingsstørrelse er :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Denne bildefilen var ikke lesbar. Aksepterte filtyper er jpg, webp, png, gif og svg. Mime-typen til denne filen er :mimetype.', 'import' => 'Importer', 'import_this_file' => 'Kartfelter og behandle denne filen', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Tilgjengelige lisenser', 'licenses' => 'Lisenser', 'list_all' => 'List alle', - 'loading' => 'Laster... vennligst vent....', + 'loading' => 'Laster... vennligst vent...', 'lock_passwords' => 'Denne feltverdien vil ikke bli lagret i en demo-installasjon.', 'feature_disabled' => 'Denne funksjonen er deaktivert i demo-installasjonen.', 'location' => 'Lokasjon', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logg ut', 'lookup_by_tag' => 'Søk på ID-merke', 'maintenances' => 'Vedlikehold', - 'manage_api_keys' => 'Administrer API-nøkler', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Produsent', 'manufacturers' => 'Produsenter', 'markdown' => 'Dette feltet tillater Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Velg alle', 'search' => 'Søk', 'select_category' => 'Velg en kategori', - 'select_datasource' => 'Velg en datakilde', + 'select_datasource' => 'Select a data source', 'select_department' => 'Velg en avdeling', 'select_depreciation' => 'Velg en avskrivningstype', 'select_location' => 'Velg en lokasjon', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Godkjent av', 'skin' => 'Tema', 'webhook_msg_note' => 'En varsling vil bli sendt via webhook', - 'webhook_test_msg' => 'Hei-hå! Ser som din Slack-integrasjon med Snipe-IT fungerer!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODUS: Noe funksjonalitet er skrudd av i denne installasjonen.', 'site_name' => 'Nettstedsnavn', 'state' => 'Stat', 'status_labels' => 'Statusmerker', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Akseptavtale', 'supplier' => 'Leverandør', @@ -339,16 +340,16 @@ return [ 'view_all' => 'se alle', 'hide_deleted' => 'Skjul slettede', 'email' => 'E-post', - 'do_not_change' => 'Ikke endre', - 'bug_report' => 'Rapporter feil', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Brukerhåndbok', 'setup_step_1' => 'Trinn 1', 'setup_step_2' => 'Trinn 2', 'setup_step_3' => 'Trinn 3', 'setup_step_4' => 'Trinn 4', 'setup_config_check' => 'Sjekk konfigurasjon', - 'setup_create_database' => 'Opprett databasetabeller', - 'setup_create_admin' => 'Opprett adminbruker', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Ferdig!', 'bulk_edit_about_to' => 'Du er i ferd med å redigere følgende: ', 'checked_out' => 'Sjekket ut', diff --git a/resources/lang/no-NO/localizations.php b/resources/lang/no-NO/localizations.php index ec2ee04a8..c2a39e938 100644 --- a/resources/lang/no-NO/localizations.php +++ b/resources/lang/no-NO/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malayisk', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolsk', - 'no-NO'=> 'Norsk', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persisk', 'pl-PL'=> 'Polsk', 'pt-PT'=> 'Portugisisk', diff --git a/resources/lang/no-NO/validation.php b/resources/lang/no-NO/validation.php index 6f0c98576..ef4034d0b 100644 --- a/resources/lang/no-NO/validation.php +++ b/resources/lang/no-NO/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Atributtfeltet :attribute må ha en verdi.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Gjeldende passord er feil', 'dumbpwd' => 'Passordet er for vanlig.', 'statuslabel_type' => 'Du må velge en gyldig statusetikett-type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/pl-PL/account/general.php b/resources/lang/pl-PL/account/general.php index b021d129b..5c6fd0946 100644 --- a/resources/lang/pl-PL/account/general.php +++ b/resources/lang/pl-PL/account/general.php @@ -3,13 +3,15 @@ return array( 'personal_api_keys' => 'Osobiste klucze API', 'personal_access_token' => 'Personal Access Token', - 'personal_api_keys_success' => 'Personal API Key :key created sucessfully', + 'personal_api_keys_success' => 'Pomyślnie utworzono klucz dostępu API :key', 'here_is_api_key' => 'Here is your new personal access token. This is the only time it will be shown so do not lose it! You may now use this token to make API requests.', 'api_key_warning' => 'When generating an API token, be sure to copy it down immediately as they will not be visible to you again.', 'api_base_url' => 'Twój bazowy adres URL API znajduje się w:', 'api_base_url_endpoint' => '/<endpoint>', 'api_token_expiration_time' => 'Tokeny API tracą ważność za:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', - 'profile_updated' => 'Account successfully updated', - 'no_tokens' => 'You have not created any personal access tokens.', + 'profile_updated' => 'Aktualizacja konta powiodła się', + 'no_tokens' => 'Nie utworzyłeś żadnych osobistych tokenów.', + 'enable_sounds' => 'Włącz efekty dźwiękowe', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/pl-PL/admin/hardware/message.php b/resources/lang/pl-PL/admin/hardware/message.php index dee8d56da..2b3499e3b 100644 --- a/resources/lang/pl-PL/admin/hardware/message.php +++ b/resources/lang/pl-PL/admin/hardware/message.php @@ -5,10 +5,10 @@ return [ 'undeployable' => 'Uwaga: Ten nabytek został oznaczony jako obecnie nie przypisany. Jeśli jego status uległ zmianie proszę zaktualizować status nabytku.', 'does_not_exist' => 'Nabytek/zasób nie istnieje.', 'does_not_exist_var'=> 'Nie znaleziono zasobu o tagu :asset_tag.', - 'no_tag' => 'No asset tag provided.', + 'no_tag' => 'Nie podano tagu zasobu.', 'does_not_exist_or_not_requestable' => 'Aktywo nie istnieje albo nie można go zażądać.', 'assoc_users' => 'Ten nabytek/zasób jest przypisany do użytkownika i nie może być usunięty. Proszę sprawdzić przypisanie nabytków/zasobów a następnie spróbować ponownie.', - 'warning_audit_date_mismatch' => 'This asset\'s next audit date (:next_audit_date) is before the last audit date (:last_audit_date). Please update the next audit date.', + 'warning_audit_date_mismatch' => 'Data następnego audytu (:next_audit_date) jest przed datą poprzedniego audytu (:last_audit_date). Zaktualizuj datę następnego audytu.', 'create' => [ 'error' => 'Nabytek nie został utworzony, proszę spróbować ponownie. :(', @@ -33,7 +33,7 @@ return [ ], 'audit' => [ - 'error' => 'Asset audit unsuccessful: :error ', + 'error' => 'Audyt zasobu zakończony niepowodzeniem :error ', 'success' => 'Audyt aktywów pomyślnie zarejestrowany.', ], @@ -51,7 +51,7 @@ return [ ], 'import' => [ - 'import_button' => 'Process Import', + 'import_button' => 'Przetwórz import', 'error' => 'Niektóre elementy nie zostały poprawnie zaimportowane.', 'errorDetail' => 'Następujące elementy nie zostały zaimportowane z powodu błędów.', 'success' => 'Twój plik został zaimportowany', diff --git a/resources/lang/pl-PL/admin/locations/message.php b/resources/lang/pl-PL/admin/locations/message.php index 148b5a807..22da94ef6 100644 --- a/resources/lang/pl-PL/admin/locations/message.php +++ b/resources/lang/pl-PL/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Lokalizacja nie istnieje.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Lokalizacja obecnie jest skojarzona z minimum jednym aktywem i nie może zostać usunięta. Uaktualnij właściwości aktywów tak aby nie było relacji z tą lokalizacją i spróbuj ponownie. ', 'assoc_child_loc' => 'Lokalizacja obecnie jest rodzicem minimum jeden innej lokalizacji i nie może zostać usunięta. Uaktualnij właściwości lokalizacji tak aby nie było relacji z tą lokalizacją i spróbuj ponownie. ', 'assigned_assets' => 'Przypisane aktywa', diff --git a/resources/lang/pl-PL/admin/models/message.php b/resources/lang/pl-PL/admin/models/message.php index 3fcea3552..4eff4d1f8 100644 --- a/resources/lang/pl-PL/admin/models/message.php +++ b/resources/lang/pl-PL/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'OSTRZEŻENIE! Model aktywów dla tego przedmiotu jest nieprawidłowy lub brakuje!', 'no_association_fix' => 'To zepsuje rzeczy w dziwny i straszny sposób. Edytuj teraz ten zasób, aby przypisać mu model.', 'assoc_users' => 'Ten model jest przypisany do minim jednego aktywa i nie może być usunięty. Proszę usunąć aktywa, a następnie spróbować ponownie. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'Kategoria musi być kategorią zasobu.', 'create' => array( 'error' => 'Model nie został stworzony. Spróbuj ponownie.', diff --git a/resources/lang/pl-PL/admin/settings/general.php b/resources/lang/pl-PL/admin/settings/general.php index b2a41a898..758fc3b2d 100644 --- a/resources/lang/pl-PL/admin/settings/general.php +++ b/resources/lang/pl-PL/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => 'Integracja z :app jest opcjonalna, jednak endpoint i kanał są wymagane, jeśli chcesz z niej korzystać. Aby skonfigurować integrację z aplikacją, musisz najpierw utworzyć przychodzący webhook na swoim koncie :App. Kliknij przycisk Test :app Integration , aby potwierdzić poprawność ustawień przed zapisaniem. ', 'webhook_integration_help_button' => 'Po zapisaniu informacji o :app pojawi się przycisk testowy.', 'webhook_test_help' => 'Sprawdź, czy integracja aplikacji jest poprawnie skonfigurowana. ZAPISZ SWOJE AKTUALIZOWANE :app USTAWIENIA.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Wersja Snipe-IT', 'support_footer' => 'Obsługa linków stopki ', 'support_footer_help' => 'Określ kto widzi linki do Snipe-IT Instrukcji Obsługi oraz Wsparcia', diff --git a/resources/lang/pl-PL/admin/settings/message.php b/resources/lang/pl-PL/admin/settings/message.php index 7aa9389e3..bea3ee8dd 100644 --- a/resources/lang/pl-PL/admin/settings/message.php +++ b/resources/lang/pl-PL/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Tak, przywróć. Mam świadomość, że spowoduje to nadpisanie istniejących danych w bazie danych. Spowoduje to również wylogowanie wszystkich istniejących użytkowników (w tym Ciebie).', 'restore_confirm' => 'Czy na pewno chcesz przywrócić bazę danych z :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Wystąpił błąd podczas czyszczenia. ', 'validation_failed' => 'Potwierdzenie czyszczenia jest niepoprawne. Wpisz słowo "DELETE" w polu potwierdzenia.', diff --git a/resources/lang/pl-PL/button.php b/resources/lang/pl-PL/button.php index b8ed961bc..4e56cdba8 100644 --- a/resources/lang/pl-PL/button.php +++ b/resources/lang/pl-PL/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/pl-PL/general.php b/resources/lang/pl-PL/general.php index 354db6c23..f180daf6b 100644 --- a/resources/lang/pl-PL/general.php +++ b/resources/lang/pl-PL/general.php @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ta aplikacja jest uruchomiona w trybie produkcyjnym z włączonym debugowaniem. Jeśli aplikacja jest dostępna na zewnątrz, może to zagrażać ujawnieniem wrażliwych danych. Wyłącz tryb debugowania przez ustawienie wartości APP_DEBUG w pliku .env na false.', 'delete' => 'Kasuj', 'delete_confirm' => 'Czy na pewno chcesz usunąć :przedmiot?', - 'delete_confirm_no_undo' => 'Czy na pewno chcesz usunąć :item? Nie można tego cofnąć.', + 'delete_confirm_no_undo' => 'Czy na pewno chcesz usunąć :item? Tej operacji nie można cofnąć.', 'deleted' => 'Usunięte', 'delete_seats' => 'Usunięte miejsca', 'deletion_failed' => 'Usunięcie nieudane', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Nazwisko i pierwsza litera imienia (smith_j@example.com)', 'firstinitial.lastname' => 'Pierwsza litera imienia i nazwisko (jsmith@example.com)', 'firstnamelastinitial' => 'Nazwisko i pierwsza litera imienia (smithj@example.com)', - 'lastnamefirstname' => 'Nazwisko i imię (smith.jane@example.com)', + 'lastnamefirstname' => 'Nazwisko.Imię (kowal.jan@przyklad.com)', 'first_name' => 'Imię', 'first_name_format' => 'Imię (jane@example.com)', 'files' => 'Pliki', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Usuń zdjęcie', 'include_deleted' => 'Dołącz usunięte zasoby', 'image_upload' => 'Dodaj zdjęcie', - 'filetypes_accepted_help' => 'Akceptowany typ pliku to :types. Maksymalny dozwolony rozmiar pliku to :size.|Akceptowane typy plików to :types. Maksymalny dozwolony rozmiar plików to :size.', - 'filetypes_size_help' => 'Maksymalny dozwolony rozmiar wysyłania to :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Akceptowany typ pliku to :types. Maksymalny dozwolony rozmiar pliku to :size.|Akceptowane typy plików to :types. Maksymalny dozwolony rozmiar pliku to :size.', + 'filetypes_size_help' => 'Maksymalny rozmiar pliku to :size.', + 'image_filetypes_help' => 'Akceptowane typy plików to jpg, webp, png, gif, svg i avif. Maksymalny rozmiar pliku to :size.', 'unaccepted_image_type' => 'Plik z obrazem jest nieczytelny. Akceptowane typy plików to JPG, WebP, PNG, GIF i SVG. Typ MIME przesłanego pliku to :mimetype.', 'import' => 'Zaimportuj', 'import_this_file' => 'Mapuj pola i przetwarzaj ten plik', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Dostępne licencje', 'licenses' => 'Licencje', 'list_all' => 'Pokaż Wszystkie', - 'loading' => 'Ładuję, proszę czekać....', + 'loading' => 'Ładuję, proszę czekać...', 'lock_passwords' => 'Ta wartość pola nie zostanie zapisana w instalacji demonstracyjnej.', 'feature_disabled' => 'Ta funkcja została wyłączona dla instalacji demo.', 'location' => 'Lokalizacja', @@ -206,8 +206,8 @@ return [ 'new_password' => 'Nowe hasło', 'next' => 'Następny', 'next_audit_date' => 'Data następnej inspekcji', - 'next_audit_date_help' => 'If you use auditing in your organization, this is usually automatically calculated based on the asset's last audit date and audit frequency (in Admin Settings > Alerts) and you can leave this blank. You can manually set this date here if you need to, but it must be later than the last audit date. ', - 'audit_images_help' => 'You can find audit images in the asset\'s history tab.', + 'next_audit_date_help' => 'Jeżeli używasz audytu w swojej organizacji, jest on zazwyczaj automatycznie obliczany na podstawie ostatniej daty audytu i częstotliwości audytu ( Ustawienia Administratora > Powiadomienia) i możesz pozostawić to pole puste. Jeśli potrzebujesz to tutaj możesz ręcznie ustawić datę, ale musi być późniejsza niż data ostatniego audytu. ', + 'audit_images_help' => 'Obrazy audytu można znaleźć w zakładce historii zasobów (Zasób > Historia).', 'no_email' => 'Brak adresu e-mail skojarzonego z tym użytkownikiem', 'last_audit' => 'Ostatnia inspekcja', 'new' => 'nowy!', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Podpisano przez', 'skin' => 'Motyw', 'webhook_msg_note' => 'Powiadomienie zostanie wysłane przez webhook', - 'webhook_test_msg' => 'Super! Wygląda na to, że Twoja integracja :app z Snipe-IT działa!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'Wersja demonstracyjna: Pewne funkcje zostały wyłączone w tej instalacji.', 'site_name' => 'Nazwa Witryny', 'state' => 'Województwo', 'status_labels' => 'Etykiety Statusu', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Umowa akceptacyjna', 'supplier' => 'Dostawca', @@ -339,16 +340,16 @@ return [ 'view_all' => 'pokaż wszystko', 'hide_deleted' => 'Ukryj usunięte', 'email' => 'Adres e-mail', - 'do_not_change' => 'Nie zmieniaj', - 'bug_report' => 'Zgłoś błąd', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Podręcznik użytkownika', 'setup_step_1' => 'Krok 1', 'setup_step_2' => 'Krok 2', 'setup_step_3' => 'Krok 3', 'setup_step_4' => 'Krok 4', 'setup_config_check' => 'Sprawdzanie konfiguracji', - 'setup_create_database' => 'Utwórz tabelę w bazie danych', - 'setup_create_admin' => 'Utwórz konto administratora', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Zakończono!', 'bulk_edit_about_to' => 'Zamierzasz edytować: ', 'checked_out' => 'Wydane', diff --git a/resources/lang/pl-PL/localizations.php b/resources/lang/pl-PL/localizations.php index 148b0dab5..b547f62e8 100644 --- a/resources/lang/pl-PL/localizations.php +++ b/resources/lang/pl-PL/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'malajski', 'mi-NZ'=> 'maoryski', 'mn-MN'=> 'mongolski', - 'no-NO'=> 'norweski', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'perski', 'pl-PL'=> 'polski', 'pt-PT'=> 'portugalski', diff --git a/resources/lang/pl-PL/validation.php b/resources/lang/pl-PL/validation.php index c9fcf0e81..ff42c0623 100644 --- a/resources/lang/pl-PL/validation.php +++ b/resources/lang/pl-PL/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => ':attribute nie może być puste.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Twoje bieżące hasło jest niepoprawne', 'dumbpwd' => 'To hasło jest zbyt powszechne.', 'statuslabel_type' => 'Musisz wybrać odpowiedni typ etykiety statusu', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/pt-BR/account/general.php b/resources/lang/pt-BR/account/general.php index 8ec44d0af..7c32f21eb 100644 --- a/resources/lang/pt-BR/account/general.php +++ b/resources/lang/pt-BR/account/general.php @@ -13,4 +13,6 @@ return array( 'api_reference' => 'Por favor, verifique as referências da API para encontrar endpoints específicos da API e documentação adicional da API.', 'profile_updated' => 'Conta atualizada com sucesso', 'no_tokens' => 'Você não criou nenhum token de acesso pessoal.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/pt-BR/admin/locations/message.php b/resources/lang/pt-BR/admin/locations/message.php index abd89d997..48ac1d972 100644 --- a/resources/lang/pt-BR/admin/locations/message.php +++ b/resources/lang/pt-BR/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'O local não existe.', - 'assoc_users' => 'Este local não é deletado atualmente, porque é a localização do registro para pelo menos um ativo ou usuário, tem ativos atribuídos a ele, ou é a localização principal de outro local. Por favor, atualize os modelos para não referenciarem mais esta empresa e tente novamente. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Este local esta atualmente associado a pelo menos um ativo e não pode ser deletado. Por favor atualize seu ativo para não fazer mais referência a este local e tente novamente. ', 'assoc_child_loc' => 'Este local é atualmente o principal de pelo menos local secundário e não pode ser deletado. Por favor atualize seus locais para não fazer mais referência a este local e tente novamente. ', 'assigned_assets' => 'Ativos atribuídos', diff --git a/resources/lang/pt-BR/admin/settings/general.php b/resources/lang/pt-BR/admin/settings/general.php index 741be2ef1..8b042e6cc 100644 --- a/resources/lang/pt-BR/admin/settings/general.php +++ b/resources/lang/pt-BR/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => 'integração :app é opcional, porém o endpoint e o canal são necessários se você deseja usá-lo. Para configurar a integração :app, primeiro você deve criar um webhook entrante na sua conta :app. Clique no botão Teste a integração do :app para confirmar se suas configurações estão corretas antes de salvar. ', 'webhook_integration_help_button' => 'Depois de salvar suas informações do :app, será exibido um botão de teste.', 'webhook_test_help' => 'Teste se sua integração :app está configurada corretamente. VOCÊ DEVE SALVAR SUAS CONFIGURAÇÃO :app PRIMEIRO.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Versão do Snipe-IT', 'support_footer' => 'Links de rodapé de suporte ', 'support_footer_help' => 'Especifique quem vê os links para as informações de Suporte Snipe-IT e o Manual do Usuário', diff --git a/resources/lang/pt-BR/admin/settings/message.php b/resources/lang/pt-BR/admin/settings/message.php index ee47849e9..e84adf51a 100644 --- a/resources/lang/pt-BR/admin/settings/message.php +++ b/resources/lang/pt-BR/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Sim, restaurar. Eu reconheço que isso irá sobrescrever quaisquer dados existentes atualmente no banco de dados. Isto também desconectará todos os usuários existentes (incluindo você).', 'restore_confirm' => 'Tem certeza que deseja restaurar seu banco de dados a partir de :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Ocorreu um erro ao excluir os registros. ', 'validation_failed' => 'Sua confirmação de exclusão está incorreta. Por favor, digite a palavra "DELETE" na caixa de confirmação.', diff --git a/resources/lang/pt-BR/button.php b/resources/lang/pt-BR/button.php index 053b40ec5..48014e8dc 100644 --- a/resources/lang/pt-BR/button.php +++ b/resources/lang/pt-BR/button.php @@ -7,7 +7,7 @@ return [ 'checkin_and_delete' => 'Fazer check-in de todos / Excluir usuário', 'delete' => 'Excluir', 'edit' => 'Editar', - 'clone' => 'Clone', + 'clone' => 'Clonar', 'restore' => 'Restaurar', 'remove' => 'Remover', 'request' => 'Solicitação', @@ -23,11 +23,11 @@ return [ 'append' => 'Acrescentar', 'new' => 'Novo', 'var' => [ - 'clone' => 'Clone :item_type', + 'clone' => 'Clonar :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', - 'create' => 'Create New :item_type', + 'restore' => 'Restore :item_type', + 'create' => 'Criar novo :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', ] diff --git a/resources/lang/pt-BR/general.php b/resources/lang/pt-BR/general.php index 1caee13cf..b00d2a623 100644 --- a/resources/lang/pt-BR/general.php +++ b/resources/lang/pt-BR/general.php @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Esta aplicação está em execução no modo de produção com a depuração ativada. Isso pode expor dados sensíveis se seu aplicativo é acessível para o mundo exterior. Desative o modo de depuração mudando o valor de APP_DEBUG no seu arquivo.env para false.', 'delete' => 'Excluir', 'delete_confirm' => 'Você tem certeza que deseja excluir :item?', - 'delete_confirm_no_undo' => 'Tem certeza que deseja excluir :item? Isto não pode ser desfeito.', + 'delete_confirm_no_undo' => 'Tem certeza de que deseja excluir :item? Isto não pode ser desfeito.', 'deleted' => 'Excluído', 'delete_seats' => 'Assentos Excluídos', 'deletion_failed' => 'Falha ao excluir', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Sobrenome Primeira Inicial (silva_j@exemplo.com.br)', 'firstinitial.lastname' => 'Inicial do Nome sobrenome (j.silva@exemplo.com.br)', 'firstnamelastinitial' => 'Primeiro Nome com Inicial do Sobrenome (joses@exemplo.com.br)', - 'lastnamefirstname' => 'Sobrenome Primeiro Nome (silva_j@exemplo.com.br)', + 'lastnamefirstname' => 'Último Nome.Primeiro nome (smith.jane@exemplo.com)', 'first_name' => 'Primeiro Nome', 'first_name_format' => 'Primeiro Nome (jose@exemplo.com.br)', 'files' => 'Arquivos', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Excluir Imagem', 'include_deleted' => 'Incluir Ativos Removidos', 'image_upload' => 'Carregar Imagem', - 'filetypes_accepted_help' => 'Os tipos de arquivos aceito são :types. O tamanho máximo de carregamento permitido é de :size.|Os tipos de arquivos aceitos são :types. O tamanho máximo de carregamentos permitido é de :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'O tamanho máximo de carregamento permitido é de :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'image_filetypes_help' => 'Tipos de arquivos aceitos são jpg, webp, png, gif, svg e avif. O tamanho máximo de upload permitido é :size.', 'unaccepted_image_type' => 'Este arquivo de imagem não é legível. Tipos de arquivos aceitos são jpg, webp, png, gif e svg. O mimetype deste arquivo é: :mimetype.', 'import' => 'Importar', 'import_this_file' => 'Mapear os campos e processar este arquivo', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenças disponíveis', 'licenses' => 'Licenças', 'list_all' => 'Listar Todos', - 'loading' => 'Carregando, por favor aguarde...', + 'loading' => 'Carregando... Por favor, aguarde...', 'lock_passwords' => 'Este valor de campo não será salvo em uma instalação de demonstração.', 'feature_disabled' => 'Esta funcionalidade foi desativada na versão de demonstração.', 'location' => 'Local', @@ -193,7 +193,7 @@ return [ 'logout' => 'Sair', 'lookup_by_tag' => 'Pesquisar por Etiqueta do Ativo', 'maintenances' => 'Manutenções', - 'manage_api_keys' => 'Gerenciar Chaves da API', + 'manage_api_keys' => 'Gerenciar chaves de API', 'manufacturer' => 'Fabricante', 'manufacturers' => 'Fabricantes', 'markdown' => 'Este campo permite marcação com sintaxe do Github.', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Assinado por', 'skin' => 'Temas', 'webhook_msg_note' => 'Uma notificação será enviada via webhook', - 'webhook_test_msg' => 'Parabéns! Parece que sua integração :app com o sistema está funcionando!', + 'webhook_test_msg' => 'Parabéns! Parece que sua integração de :app com o sistema está funcionando!', 'some_features_disabled' => 'MODO DE DEMONSTRAÇÃO: Algumas funcionalidades estão desativadas nesta instalação.', 'site_name' => 'Nome do Site', 'state' => 'Estado', 'status_labels' => 'Rótulos de Situação', + 'status_label' => 'Status Label', 'status' => 'SItuação', 'accept_eula' => 'Acordo de Aceitação', 'supplier' => 'Fornecedor', @@ -339,16 +340,16 @@ return [ 'view_all' => 'ver todos', 'hide_deleted' => 'Ocultar excluídos', 'email' => 'E-mail', - 'do_not_change' => 'Não alterar', - 'bug_report' => 'Relatar um Erro/Problema', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Manual do Usuário', 'setup_step_1' => 'Passo 1', 'setup_step_2' => 'Passo 2', 'setup_step_3' => 'Passo 3', 'setup_step_4' => 'Passo 4', 'setup_config_check' => 'Verificar Configuração', - 'setup_create_database' => 'Criar tabelas no banco de dados', - 'setup_create_admin' => 'Criar usuário administrativo', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Concluído!', 'bulk_edit_about_to' => 'Você está prestes a editar o seguinte: ', 'checked_out' => 'Checked Out', diff --git a/resources/lang/pt-BR/localizations.php b/resources/lang/pt-BR/localizations.php index af8493c86..e06df6fa0 100644 --- a/resources/lang/pt-BR/localizations.php +++ b/resources/lang/pt-BR/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malaio', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongol', - 'no-NO'=> 'Norueguês', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persa', 'pl-PL'=> 'Polonês', 'pt-PT'=> 'Português', diff --git a/resources/lang/pt-BR/validation.php b/resources/lang/pt-BR/validation.php index f07c920d6..c39968a34 100644 --- a/resources/lang/pt-BR/validation.php +++ b/resources/lang/pt-BR/validation.php @@ -20,18 +20,18 @@ return [ 'after_or_equal' => 'The :attribute field must be a date after or equal to :date.', 'alpha' => 'The :attribute field must only contain letters.', 'alpha_dash' => 'The :attribute field must only contain letters, numbers, dashes, and underscores.', - 'alpha_num' => 'The :attribute field must only contain letters and numbers.', + 'alpha_num' => 'O campo :attribute deve conter apenas letras e números.', 'array' => 'The :attribute field must be an array.', 'ascii' => 'The :attribute field must only contain single-byte alphanumeric characters and symbols.', - 'before' => 'The :attribute field must be a date before :date.', - 'before_or_equal' => 'The :attribute field must be a date before or equal to :date.', + 'before' => 'O campo :attribute deve ser uma data anterior a :date.', + 'before_or_equal' => 'O campo :attribute deve ser uma data anterior ou igual a :date.', 'between' => [ - 'array' => 'The :attribute field must have between :min and :max items.', - 'file' => 'The :attribute field must be between :min and :max kilobytes.', + 'array' => 'O campo :attribute deve ter entre :min e :max itens.', + 'file' => 'O campo :attribute deve ter entre :min e :max kilobytes.', 'numeric' => 'The :attribute field must be between :min and :max.', 'string' => 'The :attribute field must be between :min and :max characters.', ], - 'boolean' => 'The :attribute field must be true or false.', + 'boolean' => 'O campo :attribute deve ser verdadeiro ou falso.', 'can' => 'The :attribute field contains an unauthorized value.', 'confirmed' => 'The :attribute field confirmation does not match.', 'contains' => 'The :attribute field is missing a required value.', @@ -54,7 +54,7 @@ return [ 'enum' => 'O :attribute selecionado é inválido.', 'exists' => 'O :attribute selecionado é inválido.', 'extensions' => 'The :attribute field must have one of the following extensions: :values.', - 'file' => 'The :attribute field must be a file.', + 'file' => 'O campo :attribute deve ser um arquivo.', 'filled' => 'O :attribute deve ter um valor.', 'gt' => [ 'array' => 'The :attribute field must have more than :value items.', @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'O campo:attribute deve estar presente.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Sua senha atual está incorreta', 'dumbpwd' => 'Essa senha é muito comum.', 'statuslabel_type' => 'Você deve selecionar um tipo de etiqueta de status válido', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/pt-PT/account/general.php b/resources/lang/pt-PT/account/general.php index b11650246..76fd62bad 100644 --- a/resources/lang/pt-PT/account/general.php +++ b/resources/lang/pt-PT/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/pt-PT/admin/locations/message.php b/resources/lang/pt-PT/admin/locations/message.php index eb175ed8b..5d8e45c27 100644 --- a/resources/lang/pt-PT/admin/locations/message.php +++ b/resources/lang/pt-PT/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Localização não existe.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Esta localização está atualmente associada com pelo menos um artigo e não pode ser removida. Atualize este artigos de modo a não referenciarem mais este local e tente novamente. ', 'assoc_child_loc' => 'Esta localização contém pelo menos uma sub-localização e não pode ser removida. Por favor, atualize as localizações para não referenciarem mais esta localização e tente novamente. ', 'assigned_assets' => 'Artigos atribuídos', diff --git a/resources/lang/pt-PT/admin/settings/general.php b/resources/lang/pt-PT/admin/settings/general.php index 5cfdac9c6..4294a32ec 100644 --- a/resources/lang/pt-PT/admin/settings/general.php +++ b/resources/lang/pt-PT/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':A integração com Slack é opcional. Contudo, se quiser usá-la, o endpoint e o canal são obrigatórios. Para configurar a integração com Slack, deve previamente criar um webhook de receção na sua conta Slack. Clique no botão Teste :app Integração para confirmar que as suas configurações estão corretas antes de salvar. ', 'webhook_integration_help_button' => 'Após salvar as suas informações do :app, será exibido um botão de teste.', 'webhook_test_help' => 'Teste se a sua integração :app está configurada corretamente. VOCÊ DEVE SALVAR AS CONFIGURAÇÕES DE :app PRIMEIRO.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Versão Snipe-IT', 'support_footer' => 'Links de rodapé de suporte', 'support_footer_help' => 'Especifica quem vê os links de Suporte e Manual de utilizador do Snipe-IT', diff --git a/resources/lang/pt-PT/admin/settings/message.php b/resources/lang/pt-PT/admin/settings/message.php index 6429f0869..ddcc136dd 100644 --- a/resources/lang/pt-PT/admin/settings/message.php +++ b/resources/lang/pt-PT/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Sim, restaurar. Eu reconheço que isso irá substituir quaisquer dados existentes atualmente na base de dados. Isto também irá desligar todos os utilizadores existentes (incluindo você).', 'restore_confirm' => 'Tem a certeza que deseja restaurar a sua base de dados a partir de :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Ocorreu um erro ao eliminar os dados. ', 'validation_failed' => 'A confirmação para limpar os dados correu mal. Digite a palavra "Apagar" na caixa de confirmação.', diff --git a/resources/lang/pt-PT/button.php b/resources/lang/pt-PT/button.php index fd6ea0325..63fd78ece 100644 --- a/resources/lang/pt-PT/button.php +++ b/resources/lang/pt-PT/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/pt-PT/general.php b/resources/lang/pt-PT/general.php index c18d69537..dc112faad 100644 --- a/resources/lang/pt-PT/general.php +++ b/resources/lang/pt-PT/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumíveis', 'country' => 'País', 'could_not_restore' => 'Erro ao restaurar :item_type: :error', - 'not_deleted' => 'O :item_type não foi apagado, então ele não pode ser restaurado', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Criar Novo', 'created' => 'Item criado', 'created_asset' => 'artigo criado', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Esta aplicação está em execução no modo de produção com a depuração activada. Isso pode expor dados sensíveis se seu aplicativo é acessível para o mundo exterior. Desactive o modo de depuração mudando o valor de APP_DEBUG no teu ficheiro .env para false.', 'delete' => 'Remover', 'delete_confirm' => 'Tem a certeza que deseja eliminar :item?', - 'delete_confirm_no_undo' => 'Tem a certeza que deseja excluir :item? Isto não pode ser desfeito.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Removidos', 'delete_seats' => 'Utilizadores apagados', 'deletion_failed' => 'Falha ao Eliminar', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Sobrenome Inicial Nome Próprio (smith_j@example.com)', 'firstinitial.lastname' => 'Inicial Nome Próprio Sobrenome(j.smith@example.com)', 'firstnamelastinitial' => 'Nome próprio Sobrenome (janes@exemple.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Nome', 'first_name_format' => 'Primeiro Nome (jane@example.com)', 'files' => 'Ficheiros', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Apagar imagem', 'include_deleted' => 'Incluir Ativos Excluídos', 'image_upload' => 'Carregar Imagem', - 'filetypes_accepted_help' => 'O tipo de arquivo aceito é :types. O tamanho máximo de upload permitido é :size.abroad. tipos de arquivos aceitos são :types. O tamanho máximo de upload permitido é :size.', - 'filetypes_size_help' => 'O tamanho máximo de upload permitido é :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Este ficheiro de imagem não era legível. Tipos de ficheiros aceites são jpg, webp, png, gif e svg. O mimetype deste ficheiro é: :mimetype.', 'import' => 'Importar', 'import_this_file' => 'Mapear os campos e processar este arquivo', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenças disponíveis', 'licenses' => 'Licenças', 'list_all' => 'Listar todas', - 'loading' => 'A carregar... por favor aguarde....', + 'loading' => 'A carregar... por favor aguarde...', 'lock_passwords' => 'O valor do campo não será guardado numa instalação de demonstração.', 'feature_disabled' => 'Esta funcionalidade foi desativada na versão de demonstração.', 'location' => 'Localização', @@ -193,7 +193,7 @@ return [ 'logout' => 'Sair', 'lookup_by_tag' => 'Procurar por Código', 'maintenances' => 'Manutenções', - 'manage_api_keys' => 'Gerir API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Fabricante', 'manufacturers' => 'Fabricantes', 'markdown' => 'Este campo permite Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Selecionar Tudo', 'search' => 'Pesquisar', 'select_category' => 'Selecionar Categoria', - 'select_datasource' => 'Selecione uma fonte de dados', + 'select_datasource' => 'Select a data source', 'select_department' => 'Selecione um Departamento', 'select_depreciation' => 'Selecione um Tipo de Depreciação', 'select_location' => 'Selecione uma localização', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Assinado por', 'skin' => 'Skin', 'webhook_msg_note' => 'Uma notificação será enviada via webhook', - 'webhook_test_msg' => 'Ah, hai! Parece que a sua integração com o Snipe-IT está a funcionar!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'MODO DE DEMONSTRAÇÃO: Algumas funcionalidades estão desativadas para esta instalação.', 'site_name' => 'Nome do site', 'state' => 'Distrito', 'status_labels' => 'Estados', + 'status_label' => 'Status Label', 'status' => 'Estado', 'accept_eula' => 'Contrato de licença', 'supplier' => 'Fornecedor', @@ -339,16 +340,16 @@ return [ 'view_all' => 'ver todos', 'hide_deleted' => 'Ocultar apagados', 'email' => 'Email', - 'do_not_change' => 'Não alterar', - 'bug_report' => 'Reportar um Erro', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Manual do Utilizador', 'setup_step_1' => 'Passo 1', 'setup_step_2' => 'Passo 2', 'setup_step_3' => 'Passo 3', 'setup_step_4' => 'Passo 4', 'setup_config_check' => 'Verificação da configuração', - 'setup_create_database' => 'Criar Tabelas de Base de Dados', - 'setup_create_admin' => 'Criar Administrador', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Concluído!', 'bulk_edit_about_to' => 'Está prestes a editar o seguinte: ', 'checked_out' => 'Entregue', diff --git a/resources/lang/pt-PT/localizations.php b/resources/lang/pt-PT/localizations.php index d220a024f..0bf88d6fb 100644 --- a/resources/lang/pt-PT/localizations.php +++ b/resources/lang/pt-PT/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malaio', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongol', - 'no-NO'=> 'Norueguês', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persa', 'pl-PL'=> 'Polaco', 'pt-PT'=> 'Português', diff --git a/resources/lang/pt-PT/validation.php b/resources/lang/pt-PT/validation.php index 73633f571..34b7f1f90 100644 --- a/resources/lang/pt-PT/validation.php +++ b/resources/lang/pt-PT/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'O campo: atributo deve estar presente.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Sua senha atual está incorreta', 'dumbpwd' => 'Essa senha é muito comum.', 'statuslabel_type' => 'Você deve selecionar um tipo de etiqueta de status válido', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/ro-RO/account/general.php b/resources/lang/ro-RO/account/general.php index 2718d43eb..94d1f4e1e 100644 --- a/resources/lang/ro-RO/account/general.php +++ b/resources/lang/ro-RO/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/ro-RO/admin/locations/message.php b/resources/lang/ro-RO/admin/locations/message.php index 4b1a136ce..0d196d0e9 100644 --- a/resources/lang/ro-RO/admin/locations/message.php +++ b/resources/lang/ro-RO/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Locatia nu exista.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Această locație este în prezent asociată cu cel puțin un material și nu poate fi ștearsă. Actualizați-vă activele astfel încât acestea să nu mai fie menționate și să încercați din nou.', 'assoc_child_loc' => 'Această locație este în prezent părinte pentru cel puțin o locație copil și nu poate fi ștearsă. Actualizați locațiile dvs. pentru a nu mai referi această locație și încercați din nou.', 'assigned_assets' => 'Atribuire Active', diff --git a/resources/lang/ro-RO/admin/settings/general.php b/resources/lang/ro-RO/admin/settings/general.php index 63a1b3d2c..5ab072299 100644 --- a/resources/lang/ro-RO/admin/settings/general.php +++ b/resources/lang/ro-RO/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => 'Integrarea :app este opțională, totuși punctul final și canalul sunt necesare dacă doriți să îl folosiți. Pentru a configura integrarea :app, trebuie să creați mai întâi un webhook primit pe contul dvs. :app. Faceți clic pe butonul Test :app Integration pentru a confirma că setările sunt corecte înainte de salvare. ', 'webhook_integration_help_button' => 'Odată ce ați salvat informațiile dvs. de :app, va apărea un buton de testare.', 'webhook_test_help' => 'Testează dacă integrarea ta :app este configurată corect. TREBUIE SĂ VĂ APĂSAȚI ACTUALIZAT :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT versiune', 'support_footer' => 'Legăturile de suport in subsol ', 'support_footer_help' => 'Specificați cine vede legăturile la informațiile despre asistența Snipe-IT și la Manualul utilizatorilor', diff --git a/resources/lang/ro-RO/admin/settings/message.php b/resources/lang/ro-RO/admin/settings/message.php index 31e5990d2..47051e137 100644 --- a/resources/lang/ro-RO/admin/settings/message.php +++ b/resources/lang/ro-RO/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Da, restaurează. Confirm suprascrierea tuturor datelor existente în baza de date. Acest lucru va deconecta și pe toți utilizatorii curenți (inclusiv pe tine).', 'restore_confirm' => 'Sunteți sigur că doriți restaurarea bazei de date din fișierul :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'A apărut o eroare în timpul epurării.', 'validation_failed' => 'Confirmarea dvs. de purjare este incorectă. Introduceți cuvântul "DELETE" în caseta de confirmare.', diff --git a/resources/lang/ro-RO/button.php b/resources/lang/ro-RO/button.php index 169d449a7..e50219a1a 100644 --- a/resources/lang/ro-RO/button.php +++ b/resources/lang/ro-RO/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/ro-RO/general.php b/resources/lang/ro-RO/general.php index 573c6d9d8..424d9c692 100644 --- a/resources/lang/ro-RO/general.php +++ b/resources/lang/ro-RO/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumabile', 'country' => 'Tara', 'could_not_restore' => 'Eroare la restabilirea :item_type: :error', - 'not_deleted' => ':item_type nu este șters astfel încât nu poate fi restaurat', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Creeaza', 'created' => 'Articol creat', 'created_asset' => 'Activ creat', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Această aplicație rulează în modul de producție cu debugging activat. Acest lucru poate expune date sensibile dacă aplicația dvs. este accesibilă lumii exterioare. Dezactivați modul de depanare setând valoarea APP_DEBUG din fișierul .env la false.', 'delete' => 'Sterge', 'delete_confirm' => 'Sigur doriți să ștergeți :item?', - 'delete_confirm_no_undo' => 'Sigur doriți să ștergeți :item? Această acțiune nu poate fi anulată.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Sters', 'delete_seats' => 'Locurile șterse', 'deletion_failed' => 'Ștergerea a eșuat', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Prenume Prima Inițială (smith_j@example.com)', 'firstinitial.lastname' => 'Primul nume inițial (j.smith@example.com)', 'firstnamelastinitial' => 'Prenume Nume Ultima Inițială (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Prenume', 'first_name_format' => 'Prenume (jane@example.com)', 'files' => 'Fișiere', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Sterge poza', 'include_deleted' => 'Include active șterse', 'image_upload' => 'Incarca poza', - 'filetypes_accepted_help' => 'Tipul de fișier acceptat este :types. Dimensiunea maximă permisă a încărcării este :size. Tipurile de fișiere acceptate sunt :types. Dimensiunea maximă permisă este de :size.', - 'filetypes_size_help' => 'Dimensiunea maximă permisă pentru încărcare este de :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Acest fișier de imagine nu a putut fi citit. Tipurile de fișiere acceptate sunt jpg, webp, png, gif și svg. Amprenta acestui fișier este: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Harta câmpuri și procesarea acestui fișier', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licențe disponibile', 'licenses' => 'Licente', 'list_all' => 'Arata tot', - 'loading' => 'Încărcare... vă rugăm așteptați....', + 'loading' => 'Încărcare... vă rugăm așteptați...', 'lock_passwords' => 'Această valoare a câmpului nu va fi salvată într-o instalare demonstrativă.', 'feature_disabled' => 'Această funcție a fost dezactivată pentru instalarea demonstrativă.', 'location' => 'Locatie', @@ -193,7 +193,7 @@ return [ 'logout' => 'Log out', 'lookup_by_tag' => 'Căutarea după eticheta de activ', 'maintenances' => 'Mentenanțe', - 'manage_api_keys' => 'Gestionare chei API', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Producator', 'manufacturers' => 'Producatori', 'markdown' => 'Acest câmp permite marcarea Github markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Selectează tot', 'search' => 'Căutare', 'select_category' => 'Selectați o categorie', - 'select_datasource' => 'Selectează o bază de date', + 'select_datasource' => 'Select a data source', 'select_department' => 'Selectați un departament', 'select_depreciation' => 'Selectați un tip de amortizare', 'select_location' => 'Selectați o locație', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Semnat dezactivat de', 'skin' => 'Piele', 'webhook_msg_note' => 'O notificare va fi trimisă prin webhook', - 'webhook_test_msg' => 'Oh hai! Se pare că integrarea ta :app cu Snipe-IT funcționează!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'Modul DEMO: Unele caracteristici sunt dezactivate pentru această instalare.', 'site_name' => 'Nume site', 'state' => 'Judet', 'status_labels' => 'Etichete status', + 'status_label' => 'Status Label', 'status' => 'Stare', 'accept_eula' => 'Acceptare acord', 'supplier' => 'Furnizor', @@ -339,16 +340,16 @@ return [ 'view_all' => 'vezi toate', 'hide_deleted' => 'Ascunde șterse', 'email' => 'E-mail', - 'do_not_change' => 'Nu schimba', - 'bug_report' => 'Raportează o eroare', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Manualul utilizatorului', 'setup_step_1' => 'Pasul 1', 'setup_step_2' => 'Pasul 2', 'setup_step_3' => 'Pasul 3', 'setup_step_4' => 'Pasul 4', 'setup_config_check' => 'Verificare configurație', - 'setup_create_database' => 'Creaza tabele baza de date', - 'setup_create_admin' => 'Creare utilizator administrator', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Terminat!', 'bulk_edit_about_to' => 'Urmează să editați următoarele: ', 'checked_out' => 'Predat', diff --git a/resources/lang/ro-RO/localizations.php b/resources/lang/ro-RO/localizations.php index 58600c354..fa8ac10c8 100644 --- a/resources/lang/ro-RO/localizations.php +++ b/resources/lang/ro-RO/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malaeză', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolie', - 'no-NO'=> 'Norvegiană', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'persană', 'pl-PL'=> 'Poloneză', 'pt-PT'=> 'Portugheză', diff --git a/resources/lang/ro-RO/validation.php b/resources/lang/ro-RO/validation.php index 34e1ec23e..68e74506f 100644 --- a/resources/lang/ro-RO/validation.php +++ b/resources/lang/ro-RO/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Câmpul atributului trebuie să fie prezent.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Parola curentă este incorectă', 'dumbpwd' => 'Această parolă este prea obișnuită.', 'statuslabel_type' => 'Trebuie să selectați un tip de etichetă de stare validă', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/ru-RU/account/general.php b/resources/lang/ru-RU/account/general.php index 6c54d5c6e..de267467b 100644 --- a/resources/lang/ru-RU/account/general.php +++ b/resources/lang/ru-RU/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/ru-RU/admin/locations/message.php b/resources/lang/ru-RU/admin/locations/message.php index b76abe49b..f56fbbafd 100644 --- a/resources/lang/ru-RU/admin/locations/message.php +++ b/resources/lang/ru-RU/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Статус актива не существует.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Это месторасположение связано как минимум с одним активом и не может быть удалено. Измените ваши активы так, чтобы они не ссылались на это месторасположение и попробуйте ещё раз. ', 'assoc_child_loc' => 'У этого месторасположения является родительским и у него есть как минимум одно месторасположение уровнем ниже. Поэтому оно не может быть удалено. Обновите ваши месторасположения, так чтобы не ссылаться на него и попробуйте снова. ', 'assigned_assets' => 'Присвоенные активы', diff --git a/resources/lang/ru-RU/admin/settings/general.php b/resources/lang/ru-RU/admin/settings/general.php index e6fd3cdfc..605bd9edb 100644 --- a/resources/lang/ru-RU/admin/settings/general.php +++ b/resources/lang/ru-RU/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => 'Интеграция с :app необязательна, однако конечная точка и канал - обязательны, если Вы планируете её использовать. Для конфигурации интеграции с :app, Вы должны в первую очередь создать исходящий веб-хук на свою учетную запись в :app. Нажмите на кнопку Протестировать Интеграцию с :app чтобы убедится перед сохранением, что Ваши параметры - верны. ', 'webhook_integration_help_button' => 'Как только вы сохраните :app информацию, появится тестовая кнопка.', 'webhook_test_help' => 'Проверьте, правильно ли настроена интеграция :app. ВЫ ДОЛЖНЫ СОХРАНИТЬ ВАШЕЕ ОБНОВЛЕННЫЕ :app НАСТРОЙКИ ПРИВЛЕЧЕНИЯ.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Версия Snipe-IT', 'support_footer' => 'Ссылки на поддержу в нижнем колонтитуле ', 'support_footer_help' => 'Отображать или не отображать ссылку на руководство пользователя и поддержку Snipe-IT', diff --git a/resources/lang/ru-RU/admin/settings/message.php b/resources/lang/ru-RU/admin/settings/message.php index dc7b02a98..08c0a6f5c 100644 --- a/resources/lang/ru-RU/admin/settings/message.php +++ b/resources/lang/ru-RU/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Да, восстановить. Я осознаю, что это перезапишет все существующие данные в базе данных. Это также выйдет из учетных записей всех ваших существующих пользователей (включая вас).', 'restore_confirm' => 'Вы уверены, что хотите восстановить базу данных из :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Возникла ошибка при попытке очистки. ', 'validation_failed' => 'Ваш текст подтверждения очистки неверен. Пожалуйста, наберите слово "DELETE" в поле подтверждения.', diff --git a/resources/lang/ru-RU/button.php b/resources/lang/ru-RU/button.php index c580d84e8..299685d73 100644 --- a/resources/lang/ru-RU/button.php +++ b/resources/lang/ru-RU/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/ru-RU/general.php b/resources/lang/ru-RU/general.php index 73cf16ff6..8f90d7840 100644 --- a/resources/lang/ru-RU/general.php +++ b/resources/lang/ru-RU/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Расходные материалы', 'country' => 'Страна', 'could_not_restore' => 'Ошибка восстановления :item_type: :error', - 'not_deleted' => ':item_type не удален, поэтому его нельзя восстановить', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Создать нового', 'created' => 'Элемент создан', 'created_asset' => 'Создать актив', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Это приложение выполняется в режиме с включенной отладкой. Это может нарушить конфиденциальность данных, если приложение доступно для внешнего мира. Отключите режим отладки, поменяв значение APP_DEBUG в файле .env на false.', 'delete' => 'Удалить', 'delete_confirm' => 'Вы действительно хотите удалить?', - 'delete_confirm_no_undo' => 'Вы уверенны, что хотите удалить :item? Это действие нельзя будет отменить.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Удалено', 'delete_seats' => 'Удаленные лицензии', 'deletion_failed' => 'Не удалось удалить', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Фамилия Первая буква имени (ivanov_i@example.com)', 'firstinitial.lastname' => 'Первая буква имени и фамилия (i.ivanov@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Имя', 'first_name_format' => 'Имя (jane@example.com)', 'files' => 'Файлы', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Удалить изображение', 'include_deleted' => 'Включать удаленные активы', 'image_upload' => 'Загрузить изображение', - 'filetypes_accepted_help' => 'Разрешенный тип файлов :types. Максимальный допустимый размер загружаемых файлов :size.|Разрешенные типы файлов :types. Максимальный допустимый размер загружаемых файлов :size.', - 'filetypes_size_help' => 'Максимальный размер файла - :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Нечитаемый файл изображения. Допустимые типы файлов: jpg, webp, png, gif и svg. Медиа тип этого файла: :mimetype.', 'import' => 'Импорт', 'import_this_file' => 'Сопоставить поля и обработать этот файл', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Доступные лицензии', 'licenses' => 'Лицензии', 'list_all' => 'Весь список', - 'loading' => 'Загрузка, пожалуйста подождите...', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'Это значение не будет сохранено в демо-версии.', 'feature_disabled' => 'Функция отключена в этой версии.', 'location' => 'Расположение', @@ -193,7 +193,7 @@ return [ 'logout' => 'Выйти', 'lookup_by_tag' => 'Поиск по тегу актива', 'maintenances' => 'Техобслуживание', - 'manage_api_keys' => 'Управление API ключами', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Производитель', 'manufacturers' => 'Производители', 'markdown' => 'облегченный язык разметки.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Выбрать все', 'search' => 'Поиск', 'select_category' => 'Выберите категорию', - 'select_datasource' => 'Выберите источник данных', + 'select_datasource' => 'Select a data source', 'select_department' => 'Выбрать департамент', 'select_depreciation' => 'Выберите тип амортизации', 'select_location' => 'Выберите местоположение', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Подписано:', 'skin' => 'Оформление', 'webhook_msg_note' => 'Уведомление будет отправлено через webhook', - 'webhook_test_msg' => 'Ого! Похоже, что интеграция :app со Snipe-IT работает!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'ДЕМО РЕЖИМ: Некоторые функции отключены.', 'site_name' => 'Название сайта', 'state' => 'Область/Регион', 'status_labels' => 'Этикетки', + 'status_label' => 'Status Label', 'status' => 'Статус', 'accept_eula' => 'Соглашение о приемке', 'supplier' => 'Поставщик', @@ -339,16 +340,16 @@ return [ 'view_all' => 'просмотреть все', 'hide_deleted' => 'Скрыть удаленное', 'email' => 'Email', - 'do_not_change' => 'Не изменять', - 'bug_report' => 'Сообщить об ошибке', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Руководство пользователя', 'setup_step_1' => 'Шаг 1', 'setup_step_2' => 'Шаг 2', 'setup_step_3' => 'Шаг 3', 'setup_step_4' => 'Шаг 4', 'setup_config_check' => 'Проверка конфигурации', - 'setup_create_database' => 'Создание таблиц базы данных', - 'setup_create_admin' => 'Создать Администратора', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Готово!', 'bulk_edit_about_to' => 'Вы собираетесь изменить следующее: ', 'checked_out' => 'Выдано', diff --git a/resources/lang/ru-RU/localizations.php b/resources/lang/ru-RU/localizations.php index 38dce0ea7..1c5963b36 100644 --- a/resources/lang/ru-RU/localizations.php +++ b/resources/lang/ru-RU/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Малайский', 'mi-NZ'=> 'Маори', 'mn-MN'=> 'Монгольский', - 'no-NO'=> 'Норвежский', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Персидский', 'pl-PL'=> 'Польский', 'pt-PT'=> 'Португальский', diff --git a/resources/lang/ru-RU/validation.php b/resources/lang/ru-RU/validation.php index 133b8e4e2..44e0e2c22 100644 --- a/resources/lang/ru-RU/validation.php +++ b/resources/lang/ru-RU/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Поле атрибута: должно присутствовать.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Ваш текущий пароль неверен', 'dumbpwd' => 'Этот пароль слишком распространен.', 'statuslabel_type' => 'Вы должны выбрать допустимый тип метки статуса', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/si-LK/account/general.php b/resources/lang/si-LK/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/si-LK/account/general.php +++ b/resources/lang/si-LK/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/si-LK/admin/locations/message.php b/resources/lang/si-LK/admin/locations/message.php index 8121b8068..6226c71ab 100644 --- a/resources/lang/si-LK/admin/locations/message.php +++ b/resources/lang/si-LK/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Location does not exist.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'This location is currently associated with at least one asset and cannot be deleted. Please update your assets to no longer reference this location and try again. ', 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/si-LK/admin/settings/general.php b/resources/lang/si-LK/admin/settings/general.php index 9ba69ef22..31165cf3f 100644 --- a/resources/lang/si-LK/admin/settings/general.php +++ b/resources/lang/si-LK/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/si-LK/admin/settings/message.php b/resources/lang/si-LK/admin/settings/message.php index c9b0f3421..24e2d292c 100644 --- a/resources/lang/si-LK/admin/settings/message.php +++ b/resources/lang/si-LK/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'An error has occurred while purging. ', 'validation_failed' => 'Your purge confirmation is incorrect. Please type the word "DELETE" in the confirmation box.', diff --git a/resources/lang/si-LK/button.php b/resources/lang/si-LK/button.php index 51c54bb9b..8a838e8fa 100644 --- a/resources/lang/si-LK/button.php +++ b/resources/lang/si-LK/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/si-LK/general.php b/resources/lang/si-LK/general.php index 0063808f9..9700e8f91 100644 --- a/resources/lang/si-LK/general.php +++ b/resources/lang/si-LK/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'First Name', 'first_name_format' => 'First Name (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Delete Image', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Upload Image', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Licenses', 'list_all' => 'List All', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'This feature has been disabled for the demo installation.', 'location' => 'Location', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logout', 'lookup_by_tag' => 'Lookup by Asset Tag', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Manufacturer', 'manufacturers' => 'Manufacturers', 'markdown' => 'This field allows Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Search', 'select_category' => 'Select a Category', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Select a Department', 'select_depreciation' => 'Select a Depreciation Type', 'select_location' => 'Select a Location', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Site Name', 'state' => 'State', 'status_labels' => 'Status Labels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Supplier', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Email', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', @@ -556,7 +557,7 @@ return [ 'something_went_wrong' => 'Something went wrong with your request.', 'close' => 'Close', 'expires' => 'Expires', - 'map_fields'=> 'Map :item_type Fields', + 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', ]; diff --git a/resources/lang/si-LK/localizations.php b/resources/lang/si-LK/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/si-LK/localizations.php +++ b/resources/lang/si-LK/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/si-LK/validation.php b/resources/lang/si-LK/validation.php index b33548e2f..634170791 100644 --- a/resources/lang/si-LK/validation.php +++ b/resources/lang/si-LK/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'The :attribute field must be present.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Your current password is incorrect', 'dumbpwd' => 'That password is too common.', 'statuslabel_type' => 'You must select a valid status label type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/sk-SK/account/general.php b/resources/lang/sk-SK/account/general.php index 10a9becd8..6482cdd12 100644 --- a/resources/lang/sk-SK/account/general.php +++ b/resources/lang/sk-SK/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/sk-SK/admin/locations/message.php b/resources/lang/sk-SK/admin/locations/message.php index 6814c63be..87b27da61 100644 --- a/resources/lang/sk-SK/admin/locations/message.php +++ b/resources/lang/sk-SK/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Lokalita neexistuje.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Táto lokalita je priradená minimálne jednému majetku, preto nemôže byť odstránená. Prosím odstráňte referenciu na túto lokalitu z príslušného majetku a skúste znovu. ', 'assoc_child_loc' => 'Táto lokalita je nadradenou minimálne jednej podradenej lokalite, preto nemôže byť odstránená. Prosím odstráňte referenciu s príslušnej lokality a skúste znovu. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/sk-SK/admin/settings/general.php b/resources/lang/sk-SK/admin/settings/general.php index 6e8f2ddfb..fab462356 100644 --- a/resources/lang/sk-SK/admin/settings/general.php +++ b/resources/lang/sk-SK/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT verzia', 'support_footer' => 'Odkaz v záhlaví na podporu ', 'support_footer_help' => 'Nastavte, kto môže vidieť prekliky na Snipe-IT stránku podpory a používateľský manuál', diff --git a/resources/lang/sk-SK/admin/settings/message.php b/resources/lang/sk-SK/admin/settings/message.php index 08d0be465..835e5a292 100644 --- a/resources/lang/sk-SK/admin/settings/message.php +++ b/resources/lang/sk-SK/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Počas čistenia sa vyskytla chyba. ', 'validation_failed' => 'Potvrdenie odstránenia nie je správne. Prosím napíšte slovo "DELETE" do políčka na potvrdenie.', diff --git a/resources/lang/sk-SK/button.php b/resources/lang/sk-SK/button.php index e69cdb748..4b61ccdae 100644 --- a/resources/lang/sk-SK/button.php +++ b/resources/lang/sk-SK/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/sk-SK/general.php b/resources/lang/sk-SK/general.php index 07ba6d077..bfababcab 100644 --- a/resources/lang/sk-SK/general.php +++ b/resources/lang/sk-SK/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Krajina', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Odstrániť', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Vymazanie zlyhalo', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Meno', 'first_name_format' => 'First Name (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Delete Image', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Upload Image', - 'filetypes_accepted_help' => 'Akceptovaný typ súboru :types. Maximálna povolená veľkosť :size.|Akceptované typy súborov :types. Maximálna povolená veľkosť :size.', - 'filetypes_size_help' => 'Maximálna povolená veľkosť :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Licenses', 'list_all' => 'List All', - 'loading' => 'Načítavanie... prosím čakajte....', + 'loading' => 'Načítavanie... prosím čakajte...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'This feature has been disabled for the demo installation.', 'location' => 'Lokalita', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logout', 'lookup_by_tag' => 'Lookup by Asset Tag', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Spravovať API kľúče', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Výrobca', 'manufacturers' => 'Manufacturers', 'markdown' => 'This field allows Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Vybrať všetko', 'search' => 'Search', 'select_category' => 'Select a Category', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Select a Department', 'select_depreciation' => 'Select a Depreciation Type', 'select_location' => 'Select a Location', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Podpísal', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Názov stránky', 'state' => 'Štát', 'status_labels' => 'Stavy', + 'status_label' => 'Status Label', 'status' => 'Stav', 'accept_eula' => 'Licenčné podmienky', 'supplier' => 'Supplier', @@ -339,16 +340,16 @@ return [ 'view_all' => 'zobraziť všetko', 'hide_deleted' => 'Skryť zmazané', 'email' => 'E-mail', - 'do_not_change' => 'Nemeniť', - 'bug_report' => 'Nahlásiť chybu', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Užívateľský manuál', 'setup_step_1' => 'Krok 1', 'setup_step_2' => 'Krok 2', 'setup_step_3' => 'Krok 3', 'setup_step_4' => 'Krok 4', 'setup_config_check' => 'Kontrola konfigurácie', - 'setup_create_database' => 'Vytvoriť databázové tabuľky', - 'setup_create_admin' => 'Vytvoriť admin užívateľa', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Hotovo!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Odovzdané', diff --git a/resources/lang/sk-SK/localizations.php b/resources/lang/sk-SK/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/sk-SK/localizations.php +++ b/resources/lang/sk-SK/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/sk-SK/validation.php b/resources/lang/sk-SK/validation.php index 1adfb8e1d..0471be414 100644 --- a/resources/lang/sk-SK/validation.php +++ b/resources/lang/sk-SK/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'The :attribute field must be present.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Your current password is incorrect', 'dumbpwd' => 'That password is too common.', 'statuslabel_type' => 'You must select a valid status label type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/sl-SI/account/general.php b/resources/lang/sl-SI/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/sl-SI/account/general.php +++ b/resources/lang/sl-SI/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/sl-SI/admin/locations/message.php b/resources/lang/sl-SI/admin/locations/message.php index 5f3af41ed..8ba5c8ae6 100644 --- a/resources/lang/sl-SI/admin/locations/message.php +++ b/resources/lang/sl-SI/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Lokacija ne obstaja.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Ta lokacija je trenutno povezana z vsaj enim sredstvom in je ni mogoče izbrisati. Prosimo, posodobite svoja sredstva, da ne bodo več vsebovali te lokacije in poskusite znova. ', 'assoc_child_loc' => 'Ta lokacija je trenutno starš vsaj ene lokacije otroka in je ni mogoče izbrisati. Posodobite svoje lokacije, da ne bodo več vsebovale te lokacije in poskusite znova. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/sl-SI/admin/settings/general.php b/resources/lang/sl-SI/admin/settings/general.php index ec9e4f8ef..ea3e49276 100644 --- a/resources/lang/sl-SI/admin/settings/general.php +++ b/resources/lang/sl-SI/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT različica', 'support_footer' => 'Povezava do podpore v nogi ', 'support_footer_help' => 'Določite, kdo vidi povezave do informacij o podpori Snipe-IT in uporabniškega priročnika', diff --git a/resources/lang/sl-SI/admin/settings/message.php b/resources/lang/sl-SI/admin/settings/message.php index ff3006089..c2347b377 100644 --- a/resources/lang/sl-SI/admin/settings/message.php +++ b/resources/lang/sl-SI/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Pri čiščenju je prišlo do napake. ', 'validation_failed' => 'Vaša potrditev čiščenja je napačna. V polje za potrditev vnesite besedo »DELETE«.', diff --git a/resources/lang/sl-SI/button.php b/resources/lang/sl-SI/button.php index 5f952f67f..4f4a420a7 100644 --- a/resources/lang/sl-SI/button.php +++ b/resources/lang/sl-SI/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/sl-SI/general.php b/resources/lang/sl-SI/general.php index ad10cef23..af23d6301 100644 --- a/resources/lang/sl-SI/general.php +++ b/resources/lang/sl-SI/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Potrošni material', 'country' => 'Država', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Ustvari novo', 'created' => 'Ustvarjeno', 'created_asset' => 'ustvarjeno sredstvo', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ta aplikacija deluje v načinu proizvodnje z omogočenim odpravljanjem napak. To lahko razkrije občutljive podatke, če je vaša aplikacija dostopna zunanjemu svetu. Onemogoči način za odpravljanje napak z nastavitvijo APP_DEBUG vrednost v vaši .env datoteki do false.', 'delete' => 'Izbriši', 'delete_confirm' => 'Ali ste prepričani, da želite izbrisati :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Izbrisano', 'delete_seats' => 'Izbrisana mesta', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Priimek s prvo črko imena (smith_j@example.com)', 'firstinitial.lastname' => 'Prva črka imena s priimkom (j.smith@example.com)', 'firstnamelastinitial' => 'Ime s prvo črko priimka (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Ime', 'first_name_format' => 'Ime (jane@example.com)', 'files' => 'Datoteke', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Izbriši sliko', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Naloži sliko', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Uvozi', 'import_this_file' => 'Map fields and process this file', @@ -184,7 +184,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Licence', 'list_all' => 'Seznam vseh', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'Vrednost tega polja ne bo shranjena v demo namestitvi.', 'feature_disabled' => 'Ta funkcija je bila onemogočena za demo namestitev.', 'location' => 'Lokacija', @@ -194,7 +194,7 @@ return [ 'logout' => 'Odjava', 'lookup_by_tag' => 'Iskanje po oznaki sredstva', 'maintenances' => 'Vzdrževanje', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Proizvajalec', 'manufacturers' => 'Proizvajalci', 'markdown' => 'To polje omogoča Github z okusom markdowna.', @@ -255,7 +255,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Iskanje', 'select_category' => 'Izberite kategorijo', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Izberite oddelek', 'select_depreciation' => 'Izberite vrsto amortizacije', 'select_location' => 'Izberite lokacijo', @@ -275,11 +275,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Preobleka', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: nekatere funkcije so onemogočene za to namestitev.', 'site_name' => 'Ime mesta', 'state' => 'Stanje', 'status_labels' => 'Oznake statusa', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Dobavitelj', @@ -340,16 +341,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'E-pošta', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Izdano', diff --git a/resources/lang/sl-SI/localizations.php b/resources/lang/sl-SI/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/sl-SI/localizations.php +++ b/resources/lang/sl-SI/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/sl-SI/validation.php b/resources/lang/sl-SI/validation.php index e6c24afe9..0c2d690e9 100644 --- a/resources/lang/sl-SI/validation.php +++ b/resources/lang/sl-SI/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Polje atribut mora biti prisotno.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Vaše trenutno geslo je napačno', 'dumbpwd' => 'To geslo je preveč pogosto.', 'statuslabel_type' => 'Izbrati morate veljavn status oznake', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/so-SO/account/general.php b/resources/lang/so-SO/account/general.php index f3a5ef4cc..d9702e5ee 100644 --- a/resources/lang/so-SO/account/general.php +++ b/resources/lang/so-SO/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/so-SO/admin/locations/message.php b/resources/lang/so-SO/admin/locations/message.php index f9676f1f3..dd84f2da7 100644 --- a/resources/lang/so-SO/admin/locations/message.php +++ b/resources/lang/so-SO/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Goobtu ma jirto.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Goobtan hadda waxa lala xidhiidhiyaa ugu yaraan hal hanti lamana tirtiri karo. Fadlan cusboonaysii hantidaada si aanay meeshan u tixraacin oo mar kale isku day. ', 'assoc_child_loc' => 'Goobtan hadda waa waalidka ugu yaraan hal meel oo caruur ah lamana tirtiri karo. Fadlan cusboonaysii goobahaaga si aanay mar dambe tixraac goobtan oo isku day mar kale. ', 'assigned_assets' => 'Hantida loo qoondeeyay', diff --git a/resources/lang/so-SO/admin/settings/general.php b/resources/lang/so-SO/admin/settings/general.php index 9eccfd2e6..1891c5de1 100644 --- a/resources/lang/so-SO/admin/settings/general.php +++ b/resources/lang/so-SO/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Nooca Snipe-IT', 'support_footer' => 'Taageerada Xidhiidhada Footer ', 'support_footer_help' => 'Sheeg cidda arkaysa isku xirka macluumaadka Taageerada Snipe-IT iyo Buugga Isticmaalayaasha', diff --git a/resources/lang/so-SO/admin/settings/message.php b/resources/lang/so-SO/admin/settings/message.php index 9a30194c8..c974c83dc 100644 --- a/resources/lang/so-SO/admin/settings/message.php +++ b/resources/lang/so-SO/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Haa, soo celi Waxaan qirayaa in tani ay dib u qori doonto xog kasta oo hadda ku jirta kaydka xogta. Tani waxay sidoo kale ka saari doontaa dhammaan isticmaalayaashaada jira (oo ay ku jirto adiga).', 'restore_confirm' => 'Ma hubtaa inaad rabto inaad ka soo celiso xogtaada: filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Khalad ayaa dhacay markii la nadiifinayo ', 'validation_failed' => 'Xaqiijinta nadiifintaadu waa khalad. Fadlan ku qor kelmadda "DELETE" sanduuqa xaqiijinta.', diff --git a/resources/lang/so-SO/button.php b/resources/lang/so-SO/button.php index a1f9ba5f0..3f019f09c 100644 --- a/resources/lang/so-SO/button.php +++ b/resources/lang/so-SO/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/so-SO/general.php b/resources/lang/so-SO/general.php index 62851654c..9c6be7feb 100644 --- a/resources/lang/so-SO/general.php +++ b/resources/lang/so-SO/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Alaabta la isticmaalo', 'country' => 'Dalka', 'could_not_restore' => 'Khalad soo celinta :item_type: :error', - 'not_deleted' => ' :item_type lama tirtirin sidaa darteed dib looma soo celin karo', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Abuur Cusub', 'created' => 'Shayga la sameeyay', 'created_asset' => 'hanti abuuray', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Codsigan waxa uu ku shaqaynayaa qaabka wax soo saarka iyada oo la furayo cilladaha Tani waxay soo bandhigi kartaa xogta xasaasiga ah haddii codsigaaga la heli karo adduunka ka baxsan. Dami qaabka qaladka adoo dejinaya APP_DEBUG qiimaha ku jira .env faylka beenta.', 'delete' => 'Tirtir', 'delete_confirm' => 'Ma hubtaa inaad rabto inaad tirtirto :item?', - 'delete_confirm_no_undo' => 'Ma hubtaa inaad rabto inaad tirtirto :item? Tan lama celin karo', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'La tirtiray', 'delete_seats' => 'Kuraasta la tirtiray', 'deletion_failed' => 'Tirtiridda waa fashilantay', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Magaca Dambe ee ugu horreeya (smith_j@example.com)', 'firstinitial.lastname' => 'Magaca Dambe ee Koowaad (j.smith@example.com)', 'firstnamelastinitial' => 'Magaca hore ee ugu dambeeya (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Magaca koowaad', 'first_name_format' => 'Magaca koowaad (jane@example.com)', 'files' => 'Faylasha', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Tirtir sawirka', 'include_deleted' => 'Ku dar Hantida la tirtiray', 'image_upload' => 'Soo rar sawirka', - 'filetypes_accepted_help' => 'Nooca faylka la aqbalay waa :types. Cabbirka ugu badan ee soo dejinta la oggol yahay waa :size.| Noocyada faylalka la aqbalay waa :types. Cabbirka gelinta ugu badan ee la ogolyahay waa :size.', - 'filetypes_size_help' => 'Cabbirka gelinta ugu badan ee la ogolyahay waa :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Sawirkan ma ahayn mid la akhriyi karo Noocyada faylalka la aqbalay waa jpg, webp, png, gif, iyo svg. Nooca faylkani waa: :mimetype.', 'import' => 'Soo dejinta', 'import_this_file' => 'Meelaha khariidad samee oo habee faylkan', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Shatiyada', 'list_all' => 'Liiska oo dhan', - 'loading' => 'Soodejinaya...fadlan sug....', + 'loading' => 'Soodejinaya...fadlan sug...', 'lock_passwords' => 'Qiimaha goobtan laguma kaydin doono rakibaadda demo.', 'feature_disabled' => 'Sifadan waxa loo damiyay rakibaadda demo', 'location' => 'Goobta', @@ -193,7 +193,7 @@ return [ 'logout' => 'Ka bax', 'lookup_by_tag' => 'Ku raadi Tag Hantiyeed', 'maintenances' => 'Dayactirka', - 'manage_api_keys' => 'Maamul furayaasha API', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Soo saaraha', 'manufacturers' => 'Soosaarayaasha', 'markdown' => 'Goobtani waxay ogolaatay Github summadaynta dhadhanka.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Dhammaan dooro', 'search' => 'Raadi', 'select_category' => 'Dooro Qayb', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Dooro Waax', 'select_depreciation' => 'Dooro Nooca Qiima-dhaca', 'select_location' => 'Dooro Goob', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Saxiixay By', 'skin' => 'Maqaarka', 'webhook_msg_note' => 'Ogeysiinta waxaa lagu soo diri doonaa webhook', - 'webhook_test_msg' => 'Oh hai! Waxay u egtahay in :app is dhexgalkaaga Snipe-IT uu shaqaynayo!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Astaamaha qaar ayaa naafada u ah rakibaaddan.', 'site_name' => 'Magaca Goobta', 'state' => 'Gobolka', 'status_labels' => 'Calaamadaha heerka', + 'status_label' => 'Status Label', 'status' => 'Xaalada', 'accept_eula' => 'Heshiiska Ogolaanshaha', 'supplier' => 'Alaab-qeybiye', @@ -339,16 +340,16 @@ return [ 'view_all' => 'Daawo Dhammaan', 'hide_deleted' => 'Qari la tirtiray', 'email' => 'Iimaylka', - 'do_not_change' => 'Ha Bedelin', - 'bug_report' => 'Ka warbixi cilad', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Buugga Isticmaalaha', 'setup_step_1' => 'Tallaabada 1', 'setup_step_2' => 'Tallaabada 2', 'setup_step_3' => 'Tallaabada 3', 'setup_step_4' => 'Tallaabada 4', 'setup_config_check' => 'Hubinta qaabeynta', - 'setup_create_database' => 'Samee Shaxanka Xogta', - 'setup_create_admin' => 'Abuur Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Dhammaatay!', 'bulk_edit_about_to' => 'Waxaad ku dhowdahay inaad wax ka beddesho kuwa soo socda: ', 'checked_out' => 'La Hubiyay', diff --git a/resources/lang/so-SO/localizations.php b/resources/lang/so-SO/localizations.php index 79f6d2a1b..dedafe13c 100644 --- a/resources/lang/so-SO/localizations.php +++ b/resources/lang/so-SO/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malaay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongoliyaan', - 'no-NO'=> 'Noorwiiji', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Faaris', 'pl-PL'=> 'Boolish', 'pt-PT'=> 'Boortaqiis', diff --git a/resources/lang/so-SO/validation.php b/resources/lang/so-SO/validation.php index 6024af211..4a3aad060 100644 --- a/resources/lang/so-SO/validation.php +++ b/resources/lang/so-SO/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Goobta :attribute waa inay jirtaa', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Eraygaaga hadda jira waa khalad', 'dumbpwd' => 'Furahaas aad buu u badan yahay.', 'statuslabel_type' => 'Waa inaad doorataa nooca summada heerka ansax ah', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/sq-AL/account/general.php b/resources/lang/sq-AL/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/sq-AL/account/general.php +++ b/resources/lang/sq-AL/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/sq-AL/admin/locations/message.php b/resources/lang/sq-AL/admin/locations/message.php index 8121b8068..6226c71ab 100644 --- a/resources/lang/sq-AL/admin/locations/message.php +++ b/resources/lang/sq-AL/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Location does not exist.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'This location is currently associated with at least one asset and cannot be deleted. Please update your assets to no longer reference this location and try again. ', 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/sq-AL/admin/settings/general.php b/resources/lang/sq-AL/admin/settings/general.php index 9ba69ef22..31165cf3f 100644 --- a/resources/lang/sq-AL/admin/settings/general.php +++ b/resources/lang/sq-AL/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/sq-AL/admin/settings/message.php b/resources/lang/sq-AL/admin/settings/message.php index c9b0f3421..24e2d292c 100644 --- a/resources/lang/sq-AL/admin/settings/message.php +++ b/resources/lang/sq-AL/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'An error has occurred while purging. ', 'validation_failed' => 'Your purge confirmation is incorrect. Please type the word "DELETE" in the confirmation box.', diff --git a/resources/lang/sq-AL/button.php b/resources/lang/sq-AL/button.php index 51c54bb9b..8a838e8fa 100644 --- a/resources/lang/sq-AL/button.php +++ b/resources/lang/sq-AL/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/sq-AL/general.php b/resources/lang/sq-AL/general.php index b3a6b3432..444ed5408 100644 --- a/resources/lang/sq-AL/general.php +++ b/resources/lang/sq-AL/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'First Name', 'first_name_format' => 'First Name (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Delete Image', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Upload Image', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Licenses', 'list_all' => 'List All', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'This feature has been disabled for the demo installation.', 'location' => 'Location', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logout', 'lookup_by_tag' => 'Lookup by Asset Tag', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Manufacturer', 'manufacturers' => 'Manufacturers', 'markdown' => 'This field allows Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Search', 'select_category' => 'Select a Category', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Select a Department', 'select_depreciation' => 'Select a Depreciation Type', 'select_location' => 'Select a Location', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Site Name', 'state' => 'State', 'status_labels' => 'Status Labels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Supplier', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Email', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', diff --git a/resources/lang/sq-AL/localizations.php b/resources/lang/sq-AL/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/sq-AL/localizations.php +++ b/resources/lang/sq-AL/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/sq-AL/validation.php b/resources/lang/sq-AL/validation.php index b33548e2f..634170791 100644 --- a/resources/lang/sq-AL/validation.php +++ b/resources/lang/sq-AL/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'The :attribute field must be present.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Your current password is incorrect', 'dumbpwd' => 'That password is too common.', 'statuslabel_type' => 'You must select a valid status label type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/sr-CS/account/general.php b/resources/lang/sr-CS/account/general.php index f78fcafc0..c8ca13c3a 100644 --- a/resources/lang/sr-CS/account/general.php +++ b/resources/lang/sr-CS/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Molim vas konsultujte API podsetnik da bi ste pronašli određene API krajnje tačke i dodatnu API dokumentaciju.', 'profile_updated' => 'Nalog je uspešno izmenjen', 'no_tokens' => 'Još uvek niste napravili nijedan lični token za pristup.', + 'enable_sounds' => 'Omogući zvučne efekte', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/sr-CS/admin/locations/message.php b/resources/lang/sr-CS/admin/locations/message.php index 522a7cce4..708227d02 100644 --- a/resources/lang/sr-CS/admin/locations/message.php +++ b/resources/lang/sr-CS/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Lokacija ne postoji.', - 'assoc_users' => 'Ova lokacija trenutno se ne može obrisati jer je navedena kao lokacija barem jedne imovine ili korisnika, ima imovinu dodeljenu njoj, ili je nadlokacija druge lokacije. Molim vas izmenite vaše modele da više nisu povezane sa ovom kompanijom i pokušajte ponovo. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Ta je lokacija trenutno povezana s barem jednim resursom i ne može se izbrisati. Ažurirajte resurs da se više ne referencira na tu lokaciju i pokušajte ponovno. ', 'assoc_child_loc' => 'Ta je lokacija trenutno roditelj najmanje jednoj podredjenoj lokaciji i ne može se izbrisati. Ažurirajte svoje lokacije da se više ne referenciraju na ovu lokaciju i pokušajte ponovo. ', 'assigned_assets' => 'Dodeljena imovina', diff --git a/resources/lang/sr-CS/admin/settings/general.php b/resources/lang/sr-CS/admin/settings/general.php index ce9fe2224..ab9c3b55a 100644 --- a/resources/lang/sr-CS/admin/settings/general.php +++ b/resources/lang/sr-CS/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integracija je opciona, međutim krajnja tačka i kanal su neophodni ako želite da je koristitie. Da bi ste podesili :app integraciju, prvo morate da napravite dolaznu veb zakačku na vašem :app nalogu. Kliknite na Testiraj :app integraciju dugme da bi ste potvrdili da su podešavanja ispravna pre čuvanja. ', 'webhook_integration_help_button' => 'Onda kada sačuvate :app informacije, dugme za testiranje će se pojaviti.', 'webhook_test_help' => 'Testirajte da li je vaša integracija sa :app uspešno podešena. PRVO MORATE DA SAČUVATE IZMENJENA :app PODEŠAVANJA.', + 'shortcuts_enabled' => 'Omogući prečice', + 'shortcuts_help_text' => 'Windows: Alt + Access taster, Mac: Control + Option + Access taster', 'snipe_version' => 'Snipe-IT verzija', 'support_footer' => 'Podška za linkove u podnožju ', 'support_footer_help' => 'Navedite ko vidi veze do informacija o podršci za Snipe-IT i korisničkog priručnika', diff --git a/resources/lang/sr-CS/admin/settings/message.php b/resources/lang/sr-CS/admin/settings/message.php index 7a40d85f9..92b456051 100644 --- a/resources/lang/sr-CS/admin/settings/message.php +++ b/resources/lang/sr-CS/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Da, vrati. Potvrđujem da će ovo zameniti sve postojeće podatke koji se trenutno nalaze u bazi podataka. Ovo će takođe odjaviti sve vaše postojeće korisnike (uključujući i Vas).', 'restore_confirm' => 'Da li ste sigurni da želite da vratite svoju bazu podataka sa :filename?' ], + 'restore' => [ + 'success' => 'Vraćena je rezervna kopija vašeg sistema. Molim vas prijavite se ponovo.' + ], 'purge' => [ 'error' => 'Došlo je do pogreške prilikom brisanja. ', 'validation_failed' => 'Vaša potvrda o brisanju nije ispravna. Upišite reč "DELETE" u okvir potvrde.', diff --git a/resources/lang/sr-CS/button.php b/resources/lang/sr-CS/button.php index 0875dfa7d..80828f1d8 100644 --- a/resources/lang/sr-CS/button.php +++ b/resources/lang/sr-CS/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Dupliraj :item_type', 'edit' => 'Izmeni :item_type', 'delete' => 'Obriši :item_type', - 'restore' => 'Obriši :item_type', + 'restore' => 'Vrati :item_type', 'create' => 'Napravi novu :item_type', 'checkout' => 'Zaduži :item_type', 'checkin' => 'Razduži :item_type', diff --git a/resources/lang/sr-CS/general.php b/resources/lang/sr-CS/general.php index b8d7e0d6c..f3969fb8c 100644 --- a/resources/lang/sr-CS/general.php +++ b/resources/lang/sr-CS/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Potrošni materijal', 'country' => 'Zemlja', 'could_not_restore' => 'Greška pri vraćanju :item_type: :error', - 'not_deleted' => ':item_type nije obrisano tako da ne može biti vraćeno', + 'not_deleted' => ':item_type nije obrisano, samim time ne može biti vraćeno', 'create' => 'Napravi novi unos', 'created' => 'Stavka kreirana', 'created_asset' => 'kreirana imovina', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Izbrisati', 'delete_confirm' => 'Jeste li sigurni da želite izbrisati :item?', - 'delete_confirm_no_undo' => 'Da li ste sigurni da želite da obrišete :item? Ova radnja ne može biti poništena.', + 'delete_confirm_no_undo' => 'Da li zaista želite da obrišete :item? Ovo nije moguće poništiti.', 'deleted' => 'Izbrisano', 'delete_seats' => 'Izbrisana mesta', 'deletion_failed' => 'Neuspelo brisanje', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Prezime inicijal Imena (smith_j@example.com)', 'firstinitial.lastname' => 'Inicijal imena Prezime (j.smith@example.com)', 'firstnamelastinitial' => 'Ime inicijal Prezimena (janes@example.com)', - 'lastnamefirstname' => 'Prezime Ime (smith.jane@example.com)', + 'lastnamefirstname' => 'Prezime.Ime (smith.jane@example.com)', 'first_name' => 'Ime', 'first_name_format' => 'Ime (jane@example.com)', 'files' => 'Datoteke', @@ -156,7 +156,7 @@ return [ 'image_delete' => 'Izbriši sliku', 'include_deleted' => 'Uključi izbrisana sredstva', 'image_upload' => 'Upload Image', - 'filetypes_accepted_help' => 'Uključi izbrisana sredstva.', + 'filetypes_accepted_help' => 'Prihvatljiv tip datoteke je :types. Maksimalno dozvoljena veličina je :size.| Prihvatljivi tipovi datoteka su :types. Maksimalno dozvoljena veličina za postavljanje je :size.', 'filetypes_size_help' => 'Maksimalna dozvoljena veličina za otpremanje je :size.', 'image_filetypes_help' => 'Prihvatljivi tipovi datoteka su jpg, webp, png, gif, svg i avig. Maksimalna veličina datoteke je :size.', 'unaccepted_image_type' => 'Datoteka slike nije čitljiva. Prihvatljivi tipovi datoteka su jpg, webp, png, gif i svg. Mimetip ove datoteke je: :mimetype.', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Dostupno licenci', 'licenses' => 'Licence', 'list_all' => 'Lista svih', - 'loading' => 'Učitavanje... molim sačekajte....', + 'loading' => 'Učitavanje... molim sačekajte...', 'lock_passwords' => 'Ova vrednost polja neće biti sačuvana u demo instalaciji.', 'feature_disabled' => 'This feature has been disabled for the demo installation.', 'location' => 'Lokacija', @@ -279,6 +279,7 @@ return [ 'site_name' => 'Naziv sajta', 'state' => 'Savezna država', 'status_labels' => 'Oznake Statusa', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Ugovor o prihvatanju', 'supplier' => 'Dobavljač', @@ -340,15 +341,15 @@ return [ 'hide_deleted' => 'Sakrij obrisano', 'email' => 'E-pošta', 'do_not_change' => 'Ne menjaj', - 'bug_report' => 'Prijavi grešku', + 'bug_report' => 'Prijavite grešku', 'user_manual' => 'Korisničko uputstvo', 'setup_step_1' => 'Korak 1', 'setup_step_2' => 'Korak 2', 'setup_step_3' => 'Korak 3', 'setup_step_4' => 'Korak 4', 'setup_config_check' => 'Provera podešavanja', - 'setup_create_database' => 'Kreiraj tabele baze podataka', - 'setup_create_admin' => 'Kreiraj admin korisnika', + 'setup_create_database' => 'Napravi tabele baze podataka', + 'setup_create_admin' => 'Napravi administratorskog korisnika', 'setup_done' => 'Završeno!', 'bulk_edit_about_to' => 'Spremate se da uredite sledeće: ', 'checked_out' => 'Zaduženo', diff --git a/resources/lang/sr-CS/localizations.php b/resources/lang/sr-CS/localizations.php index fdca53b7c..e2b472e67 100644 --- a/resources/lang/sr-CS/localizations.php +++ b/resources/lang/sr-CS/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malajski', 'mi-NZ'=> 'Maorski', 'mn-MN'=> 'Mongolski', - 'no-NO'=> 'Norveški', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norveški Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persijski', 'pl-PL'=> 'Poljski', 'pt-PT'=> 'Portugalski', diff --git a/resources/lang/sr-CS/validation.php b/resources/lang/sr-CS/validation.php index 7b50cfbcf..affeb6760 100644 --- a/resources/lang/sr-CS/validation.php +++ b/resources/lang/sr-CS/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'Polje :attribute mora da sadrži najmanje jedan simbol.', 'uncompromised' => 'Uneto :attribute se pojavilo među procurelim podacima. Molim vas unesite drugo :attribute.', ], + 'percent' => 'Minimum amortizacije mora biti između 0 i 100 kada je vrsta amortizacije procentna vrednost.', + 'present' => ':attribute polje mora biti prisutno.', 'present_if' => 'Polje :attribute mora imati vrednost kada :other sadrži :value.', 'present_unless' => 'Polje :attribute mora imati vrednost osim ako :other sadrži :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Vaša lozinka je neispravna', 'dumbpwd' => 'Lozinka nije sigurna.', 'statuslabel_type' => 'Morate odabrati ispravnu vrstu oznake statusa', + 'custom_field_not_found' => 'Izgleda da ovo polje ne postoji. Molim vas proverite imena vaših prilagođenih polja.', + 'custom_field_not_found_on_model' => 'Izgleda da ovo polje postoji, ali nije dostupno za grupu polja ovog modela imovine.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/sv-SE/account/general.php b/resources/lang/sv-SE/account/general.php index 92579db16..221b8205e 100644 --- a/resources/lang/sv-SE/account/general.php +++ b/resources/lang/sv-SE/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/sv-SE/admin/locations/message.php b/resources/lang/sv-SE/admin/locations/message.php index 22e2354e2..faf3ee316 100644 --- a/resources/lang/sv-SE/admin/locations/message.php +++ b/resources/lang/sv-SE/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Platsen finns inte.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Platsen är associerad med minst en tillgång och kan inte tas bort. Vänligen uppdatera dina tillgångar så dom inte refererar till denna plats och försök igen. ', 'assoc_child_loc' => 'Denna plats är för närvarande överliggande för minst en annan plats och kan inte tas bort. Vänligen uppdatera dina platser så dom inte längre refererar till denna och försök igen.', 'assigned_assets' => 'Tilldelade tillgångar', diff --git a/resources/lang/sv-SE/admin/settings/general.php b/resources/lang/sv-SE/admin/settings/general.php index 4e8bb9cc6..bae5fb253 100644 --- a/resources/lang/sv-SE/admin/settings/general.php +++ b/resources/lang/sv-SE/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration är frivilligt, men slutpunkt och kanal krävs om du vill använda den. För att konfigurera :app integration, måste du först skapa en inkommande webhook på ditt :app konto. Klicka på Test :app Integration -knappen för att bekräfta att dina inställningar är korrekta innan du sparar. ', 'webhook_integration_help_button' => 'När du har sparat information om :app visas en testknapp.', 'webhook_test_help' => 'Testa om din :app integration är korrekt konfigurerad. DU MÅSTE SPARA DIN UPPDATERAD :app INSTÄLLNINGAR FÖRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT-versionen', 'support_footer' => 'Stöd länkar i sidfot ', 'support_footer_help' => 'Ange vem som kan se länkarna till Snipe-IT Support info och användarmanual', diff --git a/resources/lang/sv-SE/admin/settings/message.php b/resources/lang/sv-SE/admin/settings/message.php index 7e81ec13f..7eb35531b 100644 --- a/resources/lang/sv-SE/admin/settings/message.php +++ b/resources/lang/sv-SE/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Ja, återställ den. Jag är medveten att detta kommer att skriva över befintliga data som finns i databasen. Detta kommer också att logga ut alla dina befintliga användare (inklusive dig).', 'restore_confirm' => 'Är du säker på att du vill återställa din databas från :filnamn?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Ett fel har uppstått vid spolning.', 'validation_failed' => 'Din rengöringsbekräftelse är felaktig. Vänligen skriv ordet "DELETE" i bekräftelsen rutan.', diff --git a/resources/lang/sv-SE/button.php b/resources/lang/sv-SE/button.php index 090504b79..1b153d8d4 100644 --- a/resources/lang/sv-SE/button.php +++ b/resources/lang/sv-SE/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/sv-SE/general.php b/resources/lang/sv-SE/general.php index 1cd297d4d..ef7e2b2cc 100644 --- a/resources/lang/sv-SE/general.php +++ b/resources/lang/sv-SE/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Förbrukningsmaterial', 'country' => 'Land', 'could_not_restore' => 'Fel vid återställning av :item_type: :error', - 'not_deleted' => ':item_type är inte borttagen så den kan inte återställas', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Skapa Ny', 'created' => 'Artikel skapad', 'created_asset' => 'skapa tillgång', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Programmet körs i produktionsläge med debugging aktiverat. Detta kan avslöja känslig data om din ansökan är tillgänglig för omvärlden. Inaktivera felsökningsläge genom att ange värdet APP_DEBUG i filen .env till false.', 'delete' => 'Ta bort', 'delete_confirm' => 'Är du säker på att du vill radera: föremål?', - 'delete_confirm_no_undo' => 'Är du säker på att du vill ta bort :item? Detta kan inte ångras.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Raderad', 'delete_seats' => 'Borttagna platser', 'deletion_failed' => 'Borttagning misslyckades', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Efternamn Första Initialen (smith_j@example.com)', 'firstinitial.lastname' => 'Första Initialen Efternamn (j.smith@example.com)', 'firstnamelastinitial' => 'Efternamn Första Initialen (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Förnamn', 'first_name_format' => 'Förnamn (jane@example.com)', 'files' => 'Filer', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Ta bort Bild', 'include_deleted' => 'Inkludera borttagna tillgångar', 'image_upload' => 'Ladda upp Bild', - 'filetypes_accepted_help' => 'Accepterad filtyp är :types. Max tillåten uppladdningsstorlek är :size. Accepterade filtyper är :types. Max tillåten uppladdningsstorlek är :size.', - 'filetypes_size_help' => 'Max tillåten uppladdningsstorlek är :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Denna bildfil kunde inte läsas. Godkända filtyper är jpg, webp, png, gif, och svg. Filens mimetyp är: :mimetype.', 'import' => 'Importera', 'import_this_file' => 'Karta fält och bearbeta denna fil', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Tillgängliga licenser', 'licenses' => 'Licenser', 'list_all' => 'Lista Alla', - 'loading' => 'Läser in... var god vänta....', + 'loading' => 'Läser in... var god vänta...', 'lock_passwords' => 'Detta fältvärde kommer inte att sparas i en demoinstallation.', 'feature_disabled' => 'Den här funktionen har inaktiverats för demoinstallationen.', 'location' => 'Plats', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logga ut', 'lookup_by_tag' => 'Lookup med tillgångslabel', 'maintenances' => 'Underhåll', - 'manage_api_keys' => 'Hantera API-nycklar', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Tillverkare', 'manufacturers' => 'Tillverkare', 'markdown' => 'Detta fält tillåter Github smaksatt markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Markera alla', 'search' => 'Sök', 'select_category' => 'Välj en kategori', - 'select_datasource' => 'Välj en datakurs', + 'select_datasource' => 'Select a data source', 'select_department' => 'Välj en avdelning', 'select_depreciation' => 'Välj en avskrivningstyp', 'select_location' => 'Välj en plats', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signerad av', 'skin' => 'Skal', 'webhook_msg_note' => 'Ett meddelande kommer att skickas via webhook', - 'webhook_test_msg' => 'Hej! Ser ut som din :app integration med Snipe-IT fungerar!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Vissa funktioner är inaktiverade för den här installationen.', 'site_name' => 'Sidnamn', 'state' => 'stat', 'status_labels' => 'Statusetiketter', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptansavtal', 'supplier' => 'Leverantör', @@ -339,16 +340,16 @@ return [ 'view_all' => 'visa alla', 'hide_deleted' => 'Visa Borttagna', 'email' => 'E-post', - 'do_not_change' => 'Ändra inte', - 'bug_report' => 'Rapportera ett fel', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Användarmanual', 'setup_step_1' => 'Steg 1', 'setup_step_2' => 'Steg 2', 'setup_step_3' => 'Steg 3', 'setup_step_4' => 'Steg 4', 'setup_config_check' => 'Konfigurationskontroll', - 'setup_create_database' => 'Skapa databastabeller', - 'setup_create_admin' => 'Skapa admin-användare', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Slutförd!', 'bulk_edit_about_to' => 'Du håller på att redigera följande: ', 'checked_out' => 'Låna ut', diff --git a/resources/lang/sv-SE/localizations.php b/resources/lang/sv-SE/localizations.php index 2dc003fe7..e72abe530 100644 --- a/resources/lang/sv-SE/localizations.php +++ b/resources/lang/sv-SE/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malajiska', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongoliska', - 'no-NO'=> 'Norska', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persiska', 'pl-PL'=> 'Polska', 'pt-PT'=> 'Portugisiska', diff --git a/resources/lang/sv-SE/validation.php b/resources/lang/sv-SE/validation.php index 6be759c15..3702af987 100644 --- a/resources/lang/sv-SE/validation.php +++ b/resources/lang/sv-SE/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => ':attribute fältet måste finnas.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Ditt nuvarande lösenord är felaktigt', 'dumbpwd' => 'Det angivna lösenordet är för vanligt.', 'statuslabel_type' => 'Du måste ange en giltig typ av statusetikett', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/ta-IN/account/general.php b/resources/lang/ta-IN/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/ta-IN/account/general.php +++ b/resources/lang/ta-IN/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/ta-IN/admin/locations/message.php b/resources/lang/ta-IN/admin/locations/message.php index 88f392b2e..c84cf8ab3 100644 --- a/resources/lang/ta-IN/admin/locations/message.php +++ b/resources/lang/ta-IN/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'இருப்பிடம் இல்லை.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'இந்த இடம் தற்போது குறைந்தது ஒரு சொத்துடன் தொடர்புடையது மற்றும் நீக்கப்பட முடியாது. இந்த இருப்பிடத்தை இனி குறிப்பிடாமல் உங்கள் சொத்துக்களை புதுப்பித்து மீண்டும் முயற்சிக்கவும்.', 'assoc_child_loc' => 'இந்த இடம் தற்போது குறைந்தது ஒரு குழந்தையின் இருப்பிடத்தின் பெற்றோர் மற்றும் அதை நீக்க முடியாது. இந்த இருப்பிடத்தை இனி குறிப்பிடாமல் இருக்க உங்கள் இருப்பிடங்களை புதுப்பித்து மீண்டும் முயற்சிக்கவும்.', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/ta-IN/admin/settings/general.php b/resources/lang/ta-IN/admin/settings/general.php index 7568f5087..1b500919b 100644 --- a/resources/lang/ta-IN/admin/settings/general.php +++ b/resources/lang/ta-IN/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'ஸ்னாப்-ஐடி பதிப்பு', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/ta-IN/admin/settings/message.php b/resources/lang/ta-IN/admin/settings/message.php index a7511fe5e..a5df00e8c 100644 --- a/resources/lang/ta-IN/admin/settings/message.php +++ b/resources/lang/ta-IN/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'அகற்றும் போது பிழை ஏற்பட்டது.', 'validation_failed' => 'உங்கள் தூய்மைப்படுத்தல் உறுதிப்படுத்தல் தவறானது. உறுதிப்படுத்தல் பெட்டியில் "DELETE" என்ற வார்த்தையை தயவுசெய்து தட்டச்சு செய்யவும்.', diff --git a/resources/lang/ta-IN/button.php b/resources/lang/ta-IN/button.php index 7098eaf7f..d000cac87 100644 --- a/resources/lang/ta-IN/button.php +++ b/resources/lang/ta-IN/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/ta-IN/general.php b/resources/lang/ta-IN/general.php index a6689be76..07ba4a726 100644 --- a/resources/lang/ta-IN/general.php +++ b/resources/lang/ta-IN/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'நுகர்பொருள்கள்', 'country' => 'நாடு', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'புதிதாக உருவாக்கு', 'created' => 'உருப்படி உருவாக்கப்பட்டது', 'created_asset' => 'சொத்து உருவாக்கப்பட்டது', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'இயல்பான பிழைத்திருத்தத்துடன் இந்த பயன்பாட்டை உற்பத்தி முறையில் இயக்கும். வெளிப்புற உலகத்திற்கு உங்கள் பயன்பாடு அணுகக்கூடியதாக இருந்தால் இது முக்கியமான தரவுகளை அம்பலப்படுத்தலாம். உங்கள் .env கோப்பில் false இல் APP_DEBUG மதிப்பை அமைப்பதன் மூலம் பிழைத்திருத்த முடையை முடக்கு.', 'delete' => 'அழி', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'நீக்கப்பட்ட', 'delete_seats' => 'நீக்கப்பட்ட இடங்கள்', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'முதல் பெயர்', 'first_name_format' => 'முதல் பெயர் (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'படத்தை நீக்கு', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'படத்தை பதிவேற்றம் செய்யவும்', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'இறக்குமதி', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'உரிமங்கள்', 'list_all' => 'அனைத்தையும் பட்டியலிடு', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'டெமோ நிறுவலுக்கு இந்த அம்சம் முடக்கப்பட்டுள்ளது.', 'location' => 'இருப்பிடம்', @@ -193,7 +193,7 @@ return [ 'logout' => 'வெளியேறு', 'lookup_by_tag' => 'சொத்து டேக் மூலம் பார்', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'உற்பத்தியாளர்', 'manufacturers' => 'உற்பத்தியாளர்கள்', 'markdown' => 'இந்தத் துறையில் ஜிடிப் ருசியான மார்க் டவுன் ஐ அனுமதிக்கிறது.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'தேடல்', 'select_category' => 'ஓர் வகையறாவை தேர்ந்தெடு', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'ஒரு துறையைத் தேர்ந்தெடுக்கவும்', 'select_depreciation' => 'தேய்மான வகை ஒன்றைத் தேர்ந்தெடுக்கவும்', 'select_location' => 'இருப்பிடம் தேர்ந்தெடுக்கவும்', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'டெமோ முறை: இந்த நிறுவலுக்கு சில அம்சங்கள் முடக்கப்பட்டுள்ளன.', 'site_name' => 'தள பெயர்', 'state' => 'நிலை', 'status_labels' => 'நிலை லேபிள்கள்', + 'status_label' => 'Status Label', 'status' => 'நிலைமை', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'சப்ளையர்', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'மின்னஞ்சல்', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'ஒப்படைக்கப்பட்டது', diff --git a/resources/lang/ta-IN/localizations.php b/resources/lang/ta-IN/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/ta-IN/localizations.php +++ b/resources/lang/ta-IN/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/ta-IN/validation.php b/resources/lang/ta-IN/validation.php index 504768b06..897c4ac11 100644 --- a/resources/lang/ta-IN/validation.php +++ b/resources/lang/ta-IN/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => ': பண்புக்கூறு களஞ்சியம் இருக்க வேண்டும்.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'உங்கள் தற்போதைய கடவுச்சொல் தவறானது', 'dumbpwd' => 'அந்த கடவுச்சொல் மிகவும் பொதுவானது.', 'statuslabel_type' => 'செல்லுபடியாகும் நிலை லேபிள் வகை தேர்ந்தெடுக்க வேண்டும்', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/th-TH/account/general.php b/resources/lang/th-TH/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/th-TH/account/general.php +++ b/resources/lang/th-TH/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/th-TH/admin/accessories/message.php b/resources/lang/th-TH/admin/accessories/message.php index b5f86c818..a11d9bc43 100644 --- a/resources/lang/th-TH/admin/accessories/message.php +++ b/resources/lang/th-TH/admin/accessories/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => '[;id] อุปกรณ์เสริม ไม่มีอยู่', - 'not_found' => 'That accessory was not found.', + 'not_found' => 'ไม่พบอุปกรณ์เสริมนั้น', 'assoc_users' => 'อุปกรณ์เสริมนี้ได้เช็คเอ้าท์ให้ผู้ใช้งานแล้วจำนวน :count รายการในปัจจุบัน กรุณาเช็คอินอุปกรณ์เสริม และลองอีกครั้ง ', 'create' => array( @@ -25,10 +25,10 @@ return array( 'checkout' => array( 'error' => 'อุปกรณ์เสริมยังไม่ถูกเช็คเอ้าท์ กรุณาลองอีกครั้ง', 'success' => 'อุปกรณ์เสริมเช็คเอ้าท์เรียบร้อยแล้ว', - 'unavailable' => 'Accessory is not available for checkout. Check quantity available', + 'unavailable' => 'ไม่มีอุปกรณ์เสริมสำหรับการชำระเงิน ตรวจสอบปริมาณที่มีอยู่', 'user_does_not_exist' => 'ผู้ใช้งานไม่ถูกต้อง กรุณาลองใหม่อีกครั้ง', 'checkout_qty' => array( - 'lte' => 'There is currently only one available accessory of this type, and you are trying to check out :checkout_qty. Please adjust the checkout quantity or the total stock of this accessory and try again.|There are :number_currently_remaining total available accessories, and you are trying to check out :checkout_qty. Please adjust the checkout quantity or the total stock of this accessory and try again.', + 'lte' => ':checkout_qty โปรดปรับจำนวนในการชำระเงินหรือจำนวนในสต็อกของอุปกรณ์เสริมนี้แล้วลองอีกครั้ง|มีอุปกรณ์เสริมที่มีอยู่ :number_currently_remaining ทั้งหมด และคุณกำลังพยายามตรวจสอบ :checkout_qty โปรดปรับปริมาณการชำระเงินหรือสต็อกรวมของอุปกรณ์เสริมนี้แล้วลองอีกครั้ง', ), ), diff --git a/resources/lang/th-TH/admin/categories/general.php b/resources/lang/th-TH/admin/categories/general.php index 09161697f..096b62996 100644 --- a/resources/lang/th-TH/admin/categories/general.php +++ b/resources/lang/th-TH/admin/categories/general.php @@ -8,8 +8,8 @@ return array( 'clone' => 'คัดลอกหมวดหมู่', 'create' => 'สร้างหมวดหมู่', 'edit' => 'แก้ไขหมวดหมู่', - 'email_will_be_sent_due_to_global_eula' => 'An email will be sent to the user because the global EULA is being used.', - 'email_will_be_sent_due_to_category_eula' => 'An email will be sent to the user because a EULA is set for this category.', + 'email_will_be_sent_due_to_global_eula' => 'อีเมลจะถูกส่งไปยังผู้ใช้เนื่องจากมีการใช้งาน EULA ทั่วโลก', + 'email_will_be_sent_due_to_category_eula' => 'อีเมลจะถูกส่งไปยังผู้ใช้เนื่องจากมีการตั้งค่า EULA สำหรับหมวดหมู่นี้', 'eula_text' => 'หมวดหมู่ข้อกำหนดการใช้งาน', 'eula_text_help' => 'ส่วนนี้อนุญาตให้คุณสามารถทำการปรับแต่งข้อตกลงการใช้งานสำหรับกำหนดชนิดของทรัพย์สินได้ หากคุณมีข้อตกลงการใช้งานเพียงหนึ่ง หรือเรื่องเดียวที่ใช้ครอบคลุมทรัพย์สินของคุณทั้งหมด คุณสามารถตั้งค่าให้เป็นการใช้งานหลัก โดยการทำเครื่องหมายในช่องด้านล่างนี้', 'name' => 'ชื่อหมวดหมู่', diff --git a/resources/lang/th-TH/admin/categories/message.php b/resources/lang/th-TH/admin/categories/message.php index d75989743..a779805ca 100644 --- a/resources/lang/th-TH/admin/categories/message.php +++ b/resources/lang/th-TH/admin/categories/message.php @@ -14,7 +14,7 @@ return array( 'update' => array( 'error' => 'ยังไม่ได้ปรับปรุงหมวดหมู่ กรุณาลองอีกครั้ง', 'success' => 'ปรับปรุงหมวดหมู่เรียบร้อยแล้ว.', - 'cannot_change_category_type' => 'You cannot change the category type once it has been created', + 'cannot_change_category_type' => 'คุณไม่สามารถเปลี่ยนประเภทหมวดหมู่ได้เมื่อสร้างแล้ว', ), 'delete' => array( diff --git a/resources/lang/th-TH/admin/companies/table.php b/resources/lang/th-TH/admin/companies/table.php index 7424d2809..341e68107 100644 --- a/resources/lang/th-TH/admin/companies/table.php +++ b/resources/lang/th-TH/admin/companies/table.php @@ -2,9 +2,9 @@ return array( 'companies' => 'บริษัท', 'create' => 'สร้าง บริษัท', - 'email' => 'Company Email', + 'email' => 'อีเมล์บริษัท', 'title' => 'บริษัท', - 'phone' => 'Company Phone', + 'phone' => 'โทรศัพท์บริษัท', 'update' => 'ปรับปรุง บริษัท', 'name' => 'ชื่อ บริษัท', 'id' => 'ID', diff --git a/resources/lang/th-TH/admin/components/general.php b/resources/lang/th-TH/admin/components/general.php index dc19e7119..b4bd2a9bb 100644 --- a/resources/lang/th-TH/admin/components/general.php +++ b/resources/lang/th-TH/admin/components/general.php @@ -12,5 +12,5 @@ return array( 'remaining' => 'ที่เหลืออยู่', 'total' => 'ทั้งหมด', 'update' => 'อัพเดตคอมโพเนนต์', - 'checkin_limit' => 'Amount checked in must be equal to or less than :assigned_qty' + 'checkin_limit' => 'จำนวนเงินที่เช็คอินจะต้องเท่ากับหรือน้อยกว่า :assigned_qty' ); diff --git a/resources/lang/th-TH/admin/locations/message.php b/resources/lang/th-TH/admin/locations/message.php index f481aa2b0..a547a059e 100644 --- a/resources/lang/th-TH/admin/locations/message.php +++ b/resources/lang/th-TH/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'ไม่มีสถานที่นี้.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'สถานที่นี้ถูกใช้งานหรือเกี่ยวข้องอยู่กับผู้ใช้งานคนใดคนหนึ่ง และไม่สามารถลบได้ กรุณาปรับปรุงผู้ใช้งานของท่านไม่ให้มีส่วนเกี่ยวข้องกับสถานที่นี้ และลองอีกครั้ง. ', 'assoc_child_loc' => 'สถานที่นี้ถูกใช้งานหรือเกี่ยวข้องอยู่กับหมวดสถานที่ใดที่หนึ่ง และไม่สามารถลบได้ กรุณาปรับปรุงสถานที่ของท่านไม่ให้มีส่วนเกี่ยวข้องกับหมวดสถานที่นี้ และลองอีกครั้ง. ', 'assigned_assets' => 'สินทรัพย์ถูกมอบหมายแล้ว', diff --git a/resources/lang/th-TH/admin/settings/general.php b/resources/lang/th-TH/admin/settings/general.php index 05dde6ff6..031882f62 100644 --- a/resources/lang/th-TH/admin/settings/general.php +++ b/resources/lang/th-TH/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'ลิงค์ในส่วนท้ายของหน้า ', 'support_footer_help' => 'ระบุผู้ที่เห็นลิงก์ไปยังข้อมูลสนับสนุน Snipe-IT และคู่มือผู้ใช้', diff --git a/resources/lang/th-TH/admin/settings/message.php b/resources/lang/th-TH/admin/settings/message.php index 2c6576c8e..738c80e17 100644 --- a/resources/lang/th-TH/admin/settings/message.php +++ b/resources/lang/th-TH/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'เกิดข้อผิดพลาดขณะล้างข้อมูล', 'validation_failed' => 'การยืนยันการล้างข้อมูลของคุณไม่ถูกต้อง โปรดพิมพ์คำว่า "DELETE" ในช่องยืนยัน', diff --git a/resources/lang/th-TH/button.php b/resources/lang/th-TH/button.php index 5fe43c81a..37567516b 100644 --- a/resources/lang/th-TH/button.php +++ b/resources/lang/th-TH/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/th-TH/general.php b/resources/lang/th-TH/general.php index 382db65e2..cc08313a4 100644 --- a/resources/lang/th-TH/general.php +++ b/resources/lang/th-TH/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'การใช้งาน', 'country' => 'ประเทศ', 'could_not_restore' => 'การกู้คืนผิดพลาด', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'สร้างใหม่', 'created' => 'สร้างรายการแล้ว', 'created_asset' => 'ทรัพย์สินที่ถูกสร้าง', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'แอ็พพลิเคชันนี้กำลังทำงานในโหมดการผลิตโดยเปิดใช้งานดีบัก ข้อมูลนี้สามารถเปิดเผยข้อมูลที่ละเอียดอ่อนหากแอปพลิเคชันของคุณสามารถเข้าถึงโลกภายนอกได้ ปิดใช้งานโหมดดีบั๊กโดยการตั้งค่า APP_DEBUG ในไฟล์ .env ของคุณเป็น false', 'delete' => 'ลบ', 'delete_confirm' => 'คุณแน่ใจหรือไม่ว่าต้องการลบ?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'ลบแล้ว', 'delete_seats' => 'ลบที่นั่งแล้ว', 'deletion_failed' => 'การลบล้มเหลว', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'นามสกุล อักษรต้นชื่อ (smith_j@example.com)', 'firstinitial.lastname' => 'อักษรต้นชื่อ นามสกุล (j.smith@example.com)', 'firstnamelastinitial' => 'ชื่อ อักษรต้นนามสกุล (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'ชื่อจริง', 'first_name_format' => 'ชื่อ (jane@example.com)', 'files' => 'ไฟล์', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'ลบรูปภาพประจำตัว', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'อัพโหลดภาพ', - 'filetypes_accepted_help' => 'ชนิดไฟล๋ที่ยอมรับ :types ขนาดไฟล์ใหญ่สุดที่ให้อัพโหลดได้ :size |ชนิดไฟล๋ที่ยอมรับ :types ขนาดไฟล์ใหญ่สุดที่ให้อัพโหลดได้ :size', - 'filetypes_size_help' => 'ขนาดไฟล์ใหญ่สุดที่ให้อัพโหลดได้ :size', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'นำเข้า', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'ลิขสิทธิ์', 'list_all' => 'รายการทั้งหมด', - 'loading' => 'กำลังโหลด กรุณารอสักครู่...', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'ข้อมูลในรายการนี้จะไม่ถูกบันทึกเพราะเป็นระบบตัวอย่าง (demo installation)', 'feature_disabled' => 'คุณลักษณะนี้ถูกปิดใช้งานสำหรับการติดตั้งแบบสาธิต', 'location' => 'สถานที่', @@ -193,7 +193,7 @@ return [ 'logout' => 'ออกจากระบบ', 'lookup_by_tag' => 'การค้นหาตามแท็กเนื้อหา', 'maintenances' => 'ซ่อมบำรุง', - 'manage_api_keys' => 'จัดการ API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'ผู้ผลิต', 'manufacturers' => 'ผู้ผลิต', 'markdown' => 'ฟิลด์นี้ช่วยให้ Github markdown markdown', @@ -254,7 +254,7 @@ return [ 'select_all' => 'เลือกทั้งหมด', 'search' => 'ค้นหา', 'select_category' => 'เลือกหมวด', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'เลือกแผนก', 'select_depreciation' => 'เลือกประเภทค่าเสื่อมราคา', 'select_location' => 'เลือกที่ตั้ง', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'รูปแบบ/เทมเพลต', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: คุณลักษณะบางอย่างถูกปิดใช้งานสำหรับการติดตั้งนี้', 'site_name' => 'ชื่อไซต์', 'state' => 'รัฐ', 'status_labels' => 'ป้ายสถานะ', + 'status_label' => 'Status Label', 'status' => 'สถานะ', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'ผู้ผลิต', @@ -339,16 +340,16 @@ return [ 'view_all' => 'ดูทั้งหมด', 'hide_deleted' => 'ซ่อนที่ถูกลบ', 'email' => 'อีเมล', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'รายงานจุดบกพร่อง', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'คู่มือ', 'setup_step_1' => 'ขั้นตอนที่ 1', 'setup_step_2' => 'ขั้นตอนที่ 2', 'setup_step_3' => 'ขั้นตอนที่ 3', 'setup_step_4' => 'ขั้นตอนที่ 4', 'setup_config_check' => 'การตรวจสอบการตั้งค่า', - 'setup_create_database' => 'สร้างตารางฐานข้อมูล', - 'setup_create_admin' => 'สร้างผู้ดูแลระบบ', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'เสร็จสิ้น', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'ส่งมอบ', diff --git a/resources/lang/th-TH/localizations.php b/resources/lang/th-TH/localizations.php index 37cc2ebdf..ed1cb1e0a 100644 --- a/resources/lang/th-TH/localizations.php +++ b/resources/lang/th-TH/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/th-TH/validation.php b/resources/lang/th-TH/validation.php index e92dff126..d0d2a55dd 100644 --- a/resources/lang/th-TH/validation.php +++ b/resources/lang/th-TH/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'ฟิลด์แอ็ตทริบิวต์: ต้องมีอยู่', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'รหัสผ่านปัจจุบันของคุณไม่ถูกต้อง', 'dumbpwd' => 'รหัสผ่านที่ใช้กันอยู่ทั่วไป', 'statuslabel_type' => 'คุณต้องเลือกประเภทป้ายสถานะที่ถูกต้อง', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/tl-PH/account/general.php b/resources/lang/tl-PH/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/tl-PH/account/general.php +++ b/resources/lang/tl-PH/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/tl-PH/admin/locations/message.php b/resources/lang/tl-PH/admin/locations/message.php index 8121b8068..6226c71ab 100644 --- a/resources/lang/tl-PH/admin/locations/message.php +++ b/resources/lang/tl-PH/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Location does not exist.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'This location is currently associated with at least one asset and cannot be deleted. Please update your assets to no longer reference this location and try again. ', 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/tl-PH/admin/settings/general.php b/resources/lang/tl-PH/admin/settings/general.php index 9bddb75ef..4a15dd3f4 100644 --- a/resources/lang/tl-PH/admin/settings/general.php +++ b/resources/lang/tl-PH/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/tl-PH/admin/settings/message.php b/resources/lang/tl-PH/admin/settings/message.php index c9b0f3421..24e2d292c 100644 --- a/resources/lang/tl-PH/admin/settings/message.php +++ b/resources/lang/tl-PH/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'An error has occurred while purging. ', 'validation_failed' => 'Your purge confirmation is incorrect. Please type the word "DELETE" in the confirmation box.', diff --git a/resources/lang/tl-PH/button.php b/resources/lang/tl-PH/button.php index 96c4a2b34..367aac878 100644 --- a/resources/lang/tl-PH/button.php +++ b/resources/lang/tl-PH/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/tl-PH/general.php b/resources/lang/tl-PH/general.php index b49449224..c36771dfb 100644 --- a/resources/lang/tl-PH/general.php +++ b/resources/lang/tl-PH/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'First Name', 'first_name_format' => 'First Name (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Delete Image', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Upload Image', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Licenses', 'list_all' => 'List All', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'This feature has been disabled for the demo installation.', 'location' => 'Location', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logout', 'lookup_by_tag' => 'Lookup by Asset Tag', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Manufacturer', 'manufacturers' => 'Manufacturers', 'markdown' => 'This field allows Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Search', 'select_category' => 'Select a Category', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Select a Department', 'select_depreciation' => 'Select a Depreciation Type', 'select_location' => 'Select a Location', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Site Name', 'state' => 'State', 'status_labels' => 'Status Labels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Supplier', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Email', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', diff --git a/resources/lang/tl-PH/localizations.php b/resources/lang/tl-PH/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/tl-PH/localizations.php +++ b/resources/lang/tl-PH/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/tl-PH/validation.php b/resources/lang/tl-PH/validation.php index b33548e2f..634170791 100644 --- a/resources/lang/tl-PH/validation.php +++ b/resources/lang/tl-PH/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'The :attribute field must be present.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Your current password is incorrect', 'dumbpwd' => 'That password is too common.', 'statuslabel_type' => 'You must select a valid status label type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/tr-TR/account/general.php b/resources/lang/tr-TR/account/general.php index 4545d5a4b..c6f5c1166 100644 --- a/resources/lang/tr-TR/account/general.php +++ b/resources/lang/tr-TR/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/tr-TR/admin/licenses/message.php b/resources/lang/tr-TR/admin/licenses/message.php index 9d4a40bc5..3ddca88f2 100644 --- a/resources/lang/tr-TR/admin/licenses/message.php +++ b/resources/lang/tr-TR/admin/licenses/message.php @@ -44,7 +44,7 @@ return array( 'error' => 'Lisans çıkışı yapılırken hata oluştu. Lütfen tekrar deneyin.', 'success' => 'Lisans çıkışı yapıldı.', 'not_enough_seats' => 'Ödeme için yeterli sayıda lisans yeri yok', - 'mismatch' => 'Girdiğiniz bu lisans türü lisans ile eşleşmiyor.', + 'mismatch' => 'Girdiğiniz bu lisans türü lisans ile eşleşmiyor', 'unavailable' => 'Bu varlığı atayamazsınız.', ), diff --git a/resources/lang/tr-TR/admin/locations/message.php b/resources/lang/tr-TR/admin/locations/message.php index c3e6658c8..57b2acf2f 100644 --- a/resources/lang/tr-TR/admin/locations/message.php +++ b/resources/lang/tr-TR/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Konum mevcut değil.', - 'assoc_users' => 'Bu bölüm silinemez, çünkü herhangi bir varlığın yada kullanıcının bilgisi yazılmakta. Bu haneyi kullanan kayıtları ve şirket bilgilerini murakabe ederek tekrar deneyin.', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Bu konum şu anda en az bir varlık ile ilişkili ve silinemez. Lütfen artık bu konumu kullanabilmek için varlık konumlarını güncelleştirin.', 'assoc_child_loc' => 'Bu konum şu anda en az bir alt konum üstüdür ve silinemez. Lütfen artık bu konuma ait alt konumları güncelleyin. ', 'assigned_assets' => 'Atanan Varlıklar', diff --git a/resources/lang/tr-TR/admin/settings/general.php b/resources/lang/tr-TR/admin/settings/general.php index 1cf10640a..a0b9de888 100644 --- a/resources/lang/tr-TR/admin/settings/general.php +++ b/resources/lang/tr-TR/admin/settings/general.php @@ -219,6 +219,8 @@ return [ gelen bir webhook oluştur:app hesabınızda. TıklaTest :app EntegrasyonuKaydetmeden önce ayarlarınızın doğru olduğunu onaylamak için düğmesine basın. ', 'webhook_integration_help_button' => ':app bilgilerinizi kaydettikten sonra bir test düğmesi görünecektir.', 'webhook_test_help' => ':app entegrasyonunuzun doğru yapılandırılıp yapılandırılmadığını test edin. ÖNCE GÜNCELLENMİŞ :app AYARLARINIZI KAYDETMENİZ GEREKİR.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Destek Bağlantıları Altbilgisi ', 'support_footer_help' => 'Snipe-IT destek, bilgi ve Kullanıcı Kılavuzu linklerini kimin göreceğini seçin', @@ -376,7 +378,7 @@ return [ 'timezone' => 'Zaman Dilimi', 'profile_edit' => 'Edit Profile', 'profile_edit_help' => 'Allow users to edit their own profiles.', - 'default_avatar' => 'Varsayılan olarak kullanılacak avatarınızı yükleyin.', + 'default_avatar' => 'Varsayılan olarak kullanılacak avatarınızı yükleyin', 'default_avatar_help' => 'Kullanıcı profil fotoğrafı yüklememişse bu görsel profil fotoğrafı olacak.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', diff --git a/resources/lang/tr-TR/admin/settings/message.php b/resources/lang/tr-TR/admin/settings/message.php index 7c922fbcd..026b5554b 100644 --- a/resources/lang/tr-TR/admin/settings/message.php +++ b/resources/lang/tr-TR/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Evet, geri yükleyin. Bunun, şu anda veritabanında bulunan mevcut verilerin üzerine yazılacağını kabul ediyorum. Bu aynı zamanda (siz dahil) tüm mevcut kullanıcılarınızın oturumunu kapatacaktır.', 'restore_confirm' => 'Veritabanınızı :filename\'den geri yüklemek istediğinizden emin misiniz?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Temizleme sırasında bir hata oluştu. ', 'validation_failed' => 'Temizle onay kodu yanlıştır. Lütfen onay kutusuna "DELETE" yazın.', diff --git a/resources/lang/tr-TR/button.php b/resources/lang/tr-TR/button.php index 58b4475b0..3d424aabb 100644 --- a/resources/lang/tr-TR/button.php +++ b/resources/lang/tr-TR/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/tr-TR/general.php b/resources/lang/tr-TR/general.php index 9b68f57a6..ffe045bad 100644 --- a/resources/lang/tr-TR/general.php +++ b/resources/lang/tr-TR/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Sarf Malzemeleri', 'country' => 'Ülke', 'could_not_restore' => ':item_type: :error geri yüklenirken hata oluştu', - 'not_deleted' => ':item_type silinmediği için geri yüklenemez', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Yeni Oluştur', 'created' => 'Öğe oluşturuldu', 'created_asset' => 'Oluşturulmuş Demirbaş', @@ -101,7 +101,7 @@ Context | Request Context ', 'delete' => 'Sil', 'delete_confirm' => 'Öğeyi silmek istediğinizden emin misiniz?', - 'delete_confirm_no_undo' => ':item\'i silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Silinmiş', 'delete_seats' => 'Silinen Kullanıcı Lisansı Sayısı', 'deletion_failed' => 'Silme başarısız', @@ -137,7 +137,7 @@ Context | Request Context 'lastname_firstinitial' => 'Soyad ve Adın İlk Harfi (smith_j@example.com)', 'firstinitial.lastname' => 'Adın İlk Harfi ve Soyad (j.smith@example.com)', 'firstnamelastinitial' => 'Ad ve Soyadın İlk Harfi (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Ad', 'first_name_format' => 'Ad (jane@example.com)', 'files' => 'Dosyalar', @@ -159,9 +159,9 @@ Context | Request Context 'image_delete' => 'Resmi sil', 'include_deleted' => 'Silinen Varlıkları Dahil Et', 'image_upload' => 'Resim yükle', - 'filetypes_accepted_help' => 'İzin verilen edilen dosya türü :types. İzin verilen asgari yükleme boyutu :size.|İzin verilen edilen dosya türleri:types. İzin verilen asgari yükleme boyutu :size.', - 'filetypes_size_help' => 'İzin verilen asgari yükleme boyutu :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Bu dosya okunamadı. Kabul edilen dosya türleri jpg, webp, png, gif ve svg\'dir. Bu dosyanın mime tipi: :mimetype.', 'import' => 'İçeri aktar', 'import_this_file' => 'Alanları eşleyin ve bu dosyayı işleyin', @@ -186,7 +186,7 @@ Context | Request Context 'licenses_available' => 'Kullanılabilir Lisanslar', 'licenses' => 'Lisanslar', 'list_all' => 'Tümünü listele', - 'loading' => 'Yükleniyor... lütfen bekleyin....', + 'loading' => 'Yükleniyor... lütfen bekleyin...', 'lock_passwords' => 'Bu alan değeri bir demo kurulumunda kaydedilmeyecektir.', 'feature_disabled' => 'Bu özellik demo yükleme için devre dışı bırakıldı.', 'location' => 'Konum', @@ -196,7 +196,7 @@ Context | Request Context 'logout' => 'Çıkış Yap', 'lookup_by_tag' => 'Varlık etiketine göre arama', 'maintenances' => 'Bakımlar', - 'manage_api_keys' => 'API Anahtarlarını Yönetin', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Üretici', 'manufacturers' => 'Üreticiler', 'markdown' => 'Bu alan Github tarafından desteklenir.', @@ -257,7 +257,7 @@ Context | Request Context 'select_all' => 'Tümünü Seç', 'search' => 'Ara', 'select_category' => 'Kategori Seç', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Bölüm Seç', 'select_depreciation' => 'Bir Değer Kaybı Türü Seç', 'select_location' => 'Konum Seç', @@ -277,11 +277,12 @@ Context | Request Context 'signed_off_by' => 'İmzalayan', 'skin' => 'Tema', 'webhook_msg_note' => 'Webhook üzerinden bir ileti gönderilecek', - 'webhook_test_msg' => 'Snipe-IT ile :app entegrasyonunuz çalışıyor!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO modu: Bu yükleme için bazı özellikleri devre dışı bırakılır.', 'site_name' => 'Site Adı', 'state' => 'İlçe', 'status_labels' => 'Durum Etiketleri', + 'status_label' => 'Status Label', 'status' => 'Durum', 'accept_eula' => 'Lisans Sözleşmesi', 'supplier' => 'Tedarikçi', @@ -342,16 +343,16 @@ Context | Request Context 'view_all' => 'tümünü görüntüle', 'hide_deleted' => 'Silinenleri Gizle', 'email' => 'E-Posta', - 'do_not_change' => 'Değiştirmeyin', - 'bug_report' => 'Hata Bildir', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Kullanım Kılavuzu', 'setup_step_1' => 'Adım 1', 'setup_step_2' => 'Adım 2', 'setup_step_3' => 'Adım 3', 'setup_step_4' => 'Adım 4', 'setup_config_check' => 'Yapılandırma Kontrolü', - 'setup_create_database' => 'Veritabanı Tabloları Oluştur', - 'setup_create_admin' => 'Yönetici Kullanıcısını Oluştur', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Tamamlandı!', 'bulk_edit_about_to' => 'Şunları düzenlemek üzeresiniz: ', 'checked_out' => 'Çıkış Yapıldı', diff --git a/resources/lang/tr-TR/localizations.php b/resources/lang/tr-TR/localizations.php index 3361e826b..d073c76d3 100644 --- a/resources/lang/tr-TR/localizations.php +++ b/resources/lang/tr-TR/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malayca', 'mi-NZ'=> 'Maori Dili', 'mn-MN'=> 'Moğolca', - 'no-NO'=> 'Norveç dili', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Farsça', 'pl-PL'=> 'Polonyaca', 'pt-PT'=> 'Portekizce', diff --git a/resources/lang/tr-TR/mail.php b/resources/lang/tr-TR/mail.php index e4f9a1bf1..805e24f6d 100644 --- a/resources/lang/tr-TR/mail.php +++ b/resources/lang/tr-TR/mail.php @@ -92,5 +92,5 @@ return [ 'welcome_to' => 'Hoş geldiniz :web!', 'your_assets' => 'Varlıkları Görüntüleme', 'your_credentials' => 'Snipe-IT Bilgileriniz', - 'mail_sent' => 'E-posta başarılı şekilde gönderildi.', + 'mail_sent' => 'E-posta başarılı şekilde gönderildi!', ]; diff --git a/resources/lang/tr-TR/validation.php b/resources/lang/tr-TR/validation.php index 7923f8b74..5facabb86 100644 --- a/resources/lang/tr-TR/validation.php +++ b/resources/lang/tr-TR/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => ': Attribute alanı bulunmalıdır.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Geçerli şifre yanlış', 'dumbpwd' => 'Bu şifre çok yaygındır.', 'statuslabel_type' => 'Geçerli bir durum etiketi türü seçmelisiniz', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/uk-UA/account/general.php b/resources/lang/uk-UA/account/general.php index 16e27eff7..baad34c58 100644 --- a/resources/lang/uk-UA/account/general.php +++ b/resources/lang/uk-UA/account/general.php @@ -2,14 +2,17 @@ return array( 'personal_api_keys' => 'Особисті ключі API', - 'personal_access_token' => 'Personal Access Token', - 'personal_api_keys_success' => 'Personal API Key :key created sucessfully', - 'here_is_api_key' => 'Here is your new personal access token. This is the only time it will be shown so do not lose it! You may now use this token to make API requests.', - 'api_key_warning' => 'When generating an API token, be sure to copy it down immediately as they will not be visible to you again.', + 'personal_access_token' => 'Персональний токен доступу', + 'personal_api_keys_success' => 'Персональний ключ API :key створено успішно', + 'here_is_api_key' => 'Це ваш новий персональний токен доступу. Це буде показано лише один раз, так що не втратте! Ви можете тепер використовувати цей токен щоб зробити API запитів.', + 'api_key_warning' => 'Під час створення токену API, не забудьте надійно зберегти його, +тому що він не буде вам знову показаний.', 'api_base_url' => 'Ваша базова URL-адреса API:', 'api_base_url_endpoint' => '/<ресурс>', 'api_token_expiration_time' => 'API токени закінчуються:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', - 'no_tokens' => 'You have not created any personal access tokens.', + 'no_tokens' => 'Ви не створили жодних особистих токенів доступу.', + 'enable_sounds' => 'Увімкнути звукові ефекти', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/uk-UA/admin/locations/message.php b/resources/lang/uk-UA/admin/locations/message.php index 24ea7a9b7..f199be5b6 100644 --- a/resources/lang/uk-UA/admin/locations/message.php +++ b/resources/lang/uk-UA/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Розташування не існує.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Це розташування в даний час пов\'язано принаймні з одним активом і не може бути видалений. Будь ласка, оновіть ваші медіафайли, щоб більше не посилатися на це розташування і повторіть спробу. ', 'assoc_child_loc' => 'Це місцезнаходження наразі батько принаймні одного дочірнього місця і не може бути видалений. Будь ласка, оновіть ваше місцеположення, щоб більше не посилатися на це місце і повторіть спробу. ', 'assigned_assets' => 'Призначені активи', diff --git a/resources/lang/uk-UA/admin/settings/general.php b/resources/lang/uk-UA/admin/settings/general.php index 17ad04660..3f4e30951 100644 --- a/resources/lang/uk-UA/admin/settings/general.php +++ b/resources/lang/uk-UA/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => 'Інтеграція :app необов’язкова, однак Endpoint та канал потрібні, якщо ви бажаєте її використовувати. Щоб налаштувати інтеграцію :app, потрібно спочатку створити вхідний вебхук у своєму обліковому записі :app. Натисніть кнопку Тест Інтеграції :app, щоб підтвердити правильність налаштувань перед збереженням. ', 'webhook_integration_help_button' => 'Як тільки ви зберегли свою інформацію :app , з\'явиться тестова кнопка.', 'webhook_test_help' => 'Перевірте, чи налаштована інтеграція :app коректно. ВИ ПОВИННІ ЗБЕРЕЖЕТЕ ВАШЕ ОНОВАНО :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Версія Snipe-IT', 'support_footer' => 'Підтримка посилань в футері ', 'support_footer_help' => 'Вкажіть, хто бачить посилання на інформацію підтримки Snipe-IT та посібник користувача', diff --git a/resources/lang/uk-UA/admin/settings/message.php b/resources/lang/uk-UA/admin/settings/message.php index 2a69598e2..e8b232ab8 100644 --- a/resources/lang/uk-UA/admin/settings/message.php +++ b/resources/lang/uk-UA/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Так, відновити її. Я підтверджую, що це перезапише будь-які наявні дані в базі даних. Це також закриє всіх існуючих користувачів (включаючи вас).', 'restore_confirm' => 'Ви дійсно бажаєте відновити базу даних з :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Під час очищення сталася помилка. ', 'validation_failed' => 'Ваша чистка підтвердження неправильна. Будь ласка, введіть слово "DELETE" у полі підтвердження.', diff --git a/resources/lang/uk-UA/button.php b/resources/lang/uk-UA/button.php index 3d5e15a21..ddd95eedd 100644 --- a/resources/lang/uk-UA/button.php +++ b/resources/lang/uk-UA/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/uk-UA/general.php b/resources/lang/uk-UA/general.php index 7a61d20e4..d499d5dae 100644 --- a/resources/lang/uk-UA/general.php +++ b/resources/lang/uk-UA/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Витратні матеріали', 'country' => 'Країна', 'could_not_restore' => 'Помилка відновлення :item_type: :error', - 'not_deleted' => ':item_type не вилучено, тому його не можна відновити', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Створити новий', 'created' => 'Елемент створено', 'created_asset' => 'створений актив', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ця програма працює в робочому режимі з увімкненим відлагодженням. Це може призвести до розкриття конфіденційних даних, якщо ваша програма доступна зовнішньому світу. Вимкніть режим налагодження, установивши для значення APP_DEBUG у вашому файлі .env значення false.', 'delete' => 'Видалити', 'delete_confirm' => 'Ви впевнені, що бажаєте видалити :item?', - 'delete_confirm_no_undo' => 'Ви впевнені, що бажаєте видалити :item? Це незворотня дія.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Видалено', 'delete_seats' => 'Видалені місця', 'deletion_failed' => 'Помилка видалення', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Прізвище Першою початковою (smith_j@example.com)', 'firstinitial.lastname' => 'Перше початкове ім\'я (j.smith@example.com)', 'firstnamelastinitial' => 'Останнє ім\'я (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Ім\'я', 'first_name_format' => 'Ім\'я (jane@example.com)', 'files' => 'Файли', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Видалити зображення', 'include_deleted' => 'Включати видалені активи', 'image_upload' => 'Завантажити зображення', - 'filetypes_accepted_help' => 'Прийнятий тип файлу - :types. Максимальний розмір завантаження - :size.| Прийняті типи файлів :types. Максимальний розмір завантаження - :size.', - 'filetypes_size_help' => 'Максимальний розмір завантажуваного файлу - :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Цей файл зображення не був прочитаний. Допустимі типи файлів - jpg, webp, png, gif та svg. Mimetype цього файлу: :mimetype.', 'import' => 'Імпорт', 'import_this_file' => 'Поля карти і обробка цього файлу', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Можливі ліцензії', 'licenses' => 'Ліцензії', 'list_all' => 'Список всіх', - 'loading' => 'Завантаження... Будь ласка, зачекайте...', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'Це значення поля не буде збережено в демо версії.', 'feature_disabled' => 'Ця функція може бути відключена в демо версіїї.', 'location' => 'Місцезнаходження', @@ -193,7 +193,7 @@ return [ 'logout' => 'Вийти', 'lookup_by_tag' => 'Пошук за тегом актива', 'maintenances' => 'Обслуговування', - 'manage_api_keys' => 'Керувати API ключами', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Виробник', 'manufacturers' => 'Виробники', 'markdown' => 'Це поле дозволяє використовувати Github markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Виділити все', 'search' => 'Пошук', 'select_category' => 'Оберіть категорію', - 'select_datasource' => 'Вибір джерела даних', + 'select_datasource' => 'Select a data source', 'select_department' => 'Оберіть відділ', 'select_depreciation' => 'Оберіть тип амортизації', 'select_location' => 'Оберіть розташування', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Підписано за', 'skin' => 'Шкіра', 'webhook_msg_note' => 'Повідомлення буде надіслано через webhook', - 'webhook_test_msg' => 'О, хай! Здається ваша інтеграція з :app із Snipe-IT працює!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'РЕЖИМ ДЕМО: Деякі функції відключені.', 'site_name' => 'Назва сайту', 'state' => 'Статус', 'status_labels' => 'Статуси активів', + 'status_label' => 'Status Label', 'status' => 'Статус', 'accept_eula' => 'Угода про погодження', 'supplier' => 'Постачальник', @@ -339,16 +340,16 @@ return [ 'view_all' => 'переглянути все', 'hide_deleted' => 'Приховати видалені', 'email' => 'Email', - 'do_not_change' => 'Не змінювати', - 'bug_report' => 'Повідомити про помилку', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Керівництво користувача', 'setup_step_1' => 'Крок 1', 'setup_step_2' => 'Крок 2', 'setup_step_3' => 'Крок 3', 'setup_step_4' => 'Крок 4', 'setup_config_check' => 'Перевірка конфігурації', - 'setup_create_database' => 'Створити таблиці бази даних', - 'setup_create_admin' => 'Створити Адміністратора', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Завершено!', 'bulk_edit_about_to' => 'Ви збираєтеся редагувати наступне: ', 'checked_out' => 'Видано', diff --git a/resources/lang/uk-UA/localizations.php b/resources/lang/uk-UA/localizations.php index be71c22d9..737cb4a35 100644 --- a/resources/lang/uk-UA/localizations.php +++ b/resources/lang/uk-UA/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Малайська', 'mi-NZ'=> 'Маорійська', 'mn-MN'=> 'Монгольська', - 'no-NO'=> 'Норвезька', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Перська', 'pl-PL'=> 'Польська', 'pt-PT'=> 'Португальська', diff --git a/resources/lang/uk-UA/validation.php b/resources/lang/uk-UA/validation.php index 27c20c9a9..9d02811a4 100644 --- a/resources/lang/uk-UA/validation.php +++ b/resources/lang/uk-UA/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Поле :attribute повинне бути присутнім.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Поточний пароль неправильний', 'dumbpwd' => 'Цей пароль занадто вживаний.', 'statuslabel_type' => 'Ви повинні вибрати правильний тип статуса', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/ur-PK/account/general.php b/resources/lang/ur-PK/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/ur-PK/account/general.php +++ b/resources/lang/ur-PK/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/ur-PK/admin/locations/message.php b/resources/lang/ur-PK/admin/locations/message.php index 8121b8068..6226c71ab 100644 --- a/resources/lang/ur-PK/admin/locations/message.php +++ b/resources/lang/ur-PK/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Location does not exist.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'This location is currently associated with at least one asset and cannot be deleted. Please update your assets to no longer reference this location and try again. ', 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/ur-PK/admin/settings/general.php b/resources/lang/ur-PK/admin/settings/general.php index 9ba69ef22..31165cf3f 100644 --- a/resources/lang/ur-PK/admin/settings/general.php +++ b/resources/lang/ur-PK/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/ur-PK/admin/settings/message.php b/resources/lang/ur-PK/admin/settings/message.php index c9b0f3421..24e2d292c 100644 --- a/resources/lang/ur-PK/admin/settings/message.php +++ b/resources/lang/ur-PK/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'An error has occurred while purging. ', 'validation_failed' => 'Your purge confirmation is incorrect. Please type the word "DELETE" in the confirmation box.', diff --git a/resources/lang/ur-PK/button.php b/resources/lang/ur-PK/button.php index 51c54bb9b..8a838e8fa 100644 --- a/resources/lang/ur-PK/button.php +++ b/resources/lang/ur-PK/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/ur-PK/general.php b/resources/lang/ur-PK/general.php index b3a6b3432..444ed5408 100644 --- a/resources/lang/ur-PK/general.php +++ b/resources/lang/ur-PK/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'First Name', 'first_name_format' => 'First Name (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Delete Image', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Upload Image', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Licenses', 'list_all' => 'List All', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'This feature has been disabled for the demo installation.', 'location' => 'Location', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logout', 'lookup_by_tag' => 'Lookup by Asset Tag', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Manufacturer', 'manufacturers' => 'Manufacturers', 'markdown' => 'This field allows Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Search', 'select_category' => 'Select a Category', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Select a Department', 'select_depreciation' => 'Select a Depreciation Type', 'select_location' => 'Select a Location', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Site Name', 'state' => 'State', 'status_labels' => 'Status Labels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Supplier', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Email', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', diff --git a/resources/lang/ur-PK/localizations.php b/resources/lang/ur-PK/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/ur-PK/localizations.php +++ b/resources/lang/ur-PK/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/ur-PK/validation.php b/resources/lang/ur-PK/validation.php index b33548e2f..634170791 100644 --- a/resources/lang/ur-PK/validation.php +++ b/resources/lang/ur-PK/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'The :attribute field must be present.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Your current password is incorrect', 'dumbpwd' => 'That password is too common.', 'statuslabel_type' => 'You must select a valid status label type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/vi-VN/account/general.php b/resources/lang/vi-VN/account/general.php index ecabb19c7..e4e74bbbc 100644 --- a/resources/lang/vi-VN/account/general.php +++ b/resources/lang/vi-VN/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Đã cập nhật tài khoản thành công', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/vi-VN/admin/locations/message.php b/resources/lang/vi-VN/admin/locations/message.php index 7b83762d9..4e54728f3 100644 --- a/resources/lang/vi-VN/admin/locations/message.php +++ b/resources/lang/vi-VN/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Địa phương không tồn tại.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Địa phương này hiện tại đã được liên kết với ít nhất một tài sản và không thể xóa. Xin vui lòng cập nhật tài sản của bạn để không còn liên kết với địa phương này nữa và thử lại. ', 'assoc_child_loc' => 'Địa phương này hiện tại là cấp parent của ít nhật một địa phương con và không thể xóa. Xin vui lòng cập nhật địa phương của bạn để không liên kết đến địa phương này và thử lại. ', 'assigned_assets' => 'Tài sản được giao', diff --git a/resources/lang/vi-VN/admin/settings/general.php b/resources/lang/vi-VN/admin/settings/general.php index 69e428ee2..0d7c0b1c5 100644 --- a/resources/lang/vi-VN/admin/settings/general.php +++ b/resources/lang/vi-VN/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Phiên bản Snipe-IT', 'support_footer' => 'Hỗ trợ liên kết ở chân trang ', 'support_footer_help' => 'Chỉ định ai nhìn thấy các liên kết đến Thông tin người dùng và Hướng dẫn sử dụng Snipe-IT', diff --git a/resources/lang/vi-VN/admin/settings/message.php b/resources/lang/vi-VN/admin/settings/message.php index 4bfae166f..4b30cbb5f 100644 --- a/resources/lang/vi-VN/admin/settings/message.php +++ b/resources/lang/vi-VN/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Đã xảy ra lỗi trong khi xóa.', 'validation_failed' => 'Xác nhận thanh lọc của bạn không chính xác. Vui lòng nhập từ "DELETE" vào hộp xác nhận.', diff --git a/resources/lang/vi-VN/button.php b/resources/lang/vi-VN/button.php index aa01f1e3b..d1c6f1034 100644 --- a/resources/lang/vi-VN/button.php +++ b/resources/lang/vi-VN/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/vi-VN/general.php b/resources/lang/vi-VN/general.php index b1945cf42..133a76ca3 100644 --- a/resources/lang/vi-VN/general.php +++ b/resources/lang/vi-VN/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Vật tư phụ', 'country' => 'Nước', 'could_not_restore' => 'Khôi phục lỗi :item_type: :Lỗi', - 'not_deleted' => 'Các :item_type không bị xóa nên không thể khôi phục được', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Tạo mới', 'created' => 'Mục đã tạo', 'created_asset' => 'tài sản đã tạo', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ứng dụng này đang chạy trong chế độ sản xuất với bật gỡ lỗi. Điều này có thể phơi bày dữ liệu nhạy cảm nếu ứng dụng của bạn có thể tiếp cận được với thế giới bên ngoài. Tắt chế độ gỡ lỗi bằng cách đặt giá trị APP_DEBUG trong tệp .env của bạn thành false.', 'delete' => 'Xóa', 'delete_confirm' => 'Bạn có chắc chắn muốn xoá trường này không?', - 'delete_confirm_no_undo' => 'Bạn có chắc chắn muốn xoá :item? Xoá xong là không thể phục hồi nhé.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Đã xóa', 'delete_seats' => 'Ghế đã Xóa', 'deletion_failed' => 'Xoá không được', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Họ trước Tên sau (smith_j@example.com)', 'firstinitial.lastname' => 'Tên trước Họ sau (j.smith@example.com)', 'firstnamelastinitial' => 'Tên Họ Viết tắt (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Họ và tên đệm', 'first_name_format' => 'Tên (jane@example.com)', 'files' => 'Các tập tin', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Xóa hình', 'include_deleted' => 'Bao gồm các tài sản đã xóa', 'image_upload' => 'Tải hình', - 'filetypes_accepted_help' => 'Các loại tệp được chấp nhận là :types. Kích thước tải lên tối đa được cho phép là :size.|Các loại tệp được chấp nhận là :types. Kích thước tải lên tối đa được cho phép là :size.', - 'filetypes_size_help' => 'Dung lượng tải lên tối đa cho phép.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Tập tin hình ảnh không thể đọc được. Chỉ chấp nhận các kiểu tập tin là jpg, webp, png, gif, và svg.', 'import' => 'Nhập', 'import_this_file' => 'Các trường bản đồ và quá trình xử lý tệp này', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Giấy phép có sẵn', 'licenses' => 'Bản quyền', 'list_all' => 'Tất cả', - 'loading' => 'Đang tải..., vui lòng chờ....', + 'loading' => 'Đang tải..., vui lòng chờ...', 'lock_passwords' => 'Giá trị trường này sẽ không được lưu trong cài đặt demo.', 'feature_disabled' => 'Tính năng này đã bị vô hiệu hóa để cài đặt bản demo.', 'location' => 'Địa phương', @@ -193,7 +193,7 @@ return [ 'logout' => 'Thoát', 'lookup_by_tag' => 'Tra cứu theo Thẻ nội dung', 'maintenances' => 'Bảo trì', - 'manage_api_keys' => 'Quản lý khóa API', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Nhà sản xuất', 'manufacturers' => 'Nhà sản xuất', 'markdown' => 'Trường này cho phép đánh dấu Github mùi vị.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Chọn tất cả', 'search' => 'Tìm kiếm', 'select_category' => 'Chọn một danh mục', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Chọn một Phòng', 'select_depreciation' => 'Lựa chọn một Loại Khấu hao', 'select_location' => 'Lựa chọn một Địa phương', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Đã ký tắt bởi', 'skin' => 'Giao diện', 'webhook_msg_note' => 'Một thông báo sẽ được gửi qua webhook', - 'webhook_test_msg' => 'Ôi trời! Có vẻ như việc tích hợp :app với Snipe-IT của bạn đang hoạt động!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Một số tính năng đã bị vô hiệu cho cài đặt này.', 'site_name' => 'Tên trang web', 'state' => 'Tỉnh/Thành phố', 'status_labels' => 'Tình trạng nhãn', + 'status_label' => 'Status Label', 'status' => 'Tình trạng', 'accept_eula' => 'Chấp nhận quy định', 'supplier' => 'Nhà cung cấp', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Ẩn đã xóa', 'email' => 'Email', - 'do_not_change' => 'Không được thay đổi', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'Người dùng mặc định', 'setup_step_1' => 'Bước 1', 'setup_step_2' => 'Bước 2', 'setup_step_3' => 'Bước 3', 'setup_step_4' => 'Bước 4', 'setup_config_check' => 'Kiểm tra cấu hình', - 'setup_create_database' => 'Tạo bảng cơ sở dữ liệu', - 'setup_create_admin' => 'Tạo tài khoản quản trị', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Hoàn tất!', 'bulk_edit_about_to' => 'Bạn đang chuẩn bị chỉnh sửa nội dung sau: ', 'checked_out' => 'Bàn giao', diff --git a/resources/lang/vi-VN/localizations.php b/resources/lang/vi-VN/localizations.php index e715ade55..026b67f2e 100644 --- a/resources/lang/vi-VN/localizations.php +++ b/resources/lang/vi-VN/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/vi-VN/validation.php b/resources/lang/vi-VN/validation.php index ebfc380c0..402458302 100644 --- a/resources/lang/vi-VN/validation.php +++ b/resources/lang/vi-VN/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'Trường thuộc tính: phải có mặt.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Mật khẩu hiện tại của bạn không chính xác', 'dumbpwd' => 'Mật khẩu đó quá phổ biến.', 'statuslabel_type' => 'Bạn phải chọn một loại nhãn tình trạng hợp lệ', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/zh-CN/account/general.php b/resources/lang/zh-CN/account/general.php index dadfe6e03..c0573ba59 100644 --- a/resources/lang/zh-CN/account/general.php +++ b/resources/lang/zh-CN/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => '请检查 API 参考 以找到特定的 API 端点和额外的 API 文档。', 'profile_updated' => '帐户已成功更新', 'no_tokens' => '您还没有创建任何个人访问令牌。', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/zh-CN/admin/locations/message.php b/resources/lang/zh-CN/admin/locations/message.php index cec98cdf3..4ac1e6f10 100644 --- a/resources/lang/zh-CN/admin/locations/message.php +++ b/resources/lang/zh-CN/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => '位置不存在', - 'assoc_users' => '此位置目前不可删除,因为它是至少一个资产或用户的记录所在位置, 资产已分配给它,或者是另一个地点的上级位置。 请更新您的型号以不再关联此公司,然后重试。 ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => '删除失败,该位置已与其它资产关联。请先更新资产以取消关联,然后重试。 ', 'assoc_child_loc' => '删除失败,该位置是一个或多个子位置的上层节点。请更新地理位置信息以取消关联,然后重试。 ', 'assigned_assets' => '已分配的资产', diff --git a/resources/lang/zh-CN/admin/settings/general.php b/resources/lang/zh-CN/admin/settings/general.php index 9da1bd96d..0a4b42923 100644 --- a/resources/lang/zh-CN/admin/settings/general.php +++ b/resources/lang/zh-CN/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app 集成是为可选项,但如果您想要使用它,则需要endpoint和channel。 要配置 :app 集成,您必须先在您的 :app 账户上创建传入的 webhook 。 在保存之前请点击 测试 :app 集成 按钮确认您的设置是否正确。 ', 'webhook_integration_help_button' => '一旦您保存了您的 :app 信息,测试按钮将会出现。', 'webhook_test_help' => '测试您的 :app 集成配置是否正确。您必须保存您更新的 :app 设置', + 'shortcuts_enabled' => '启用快捷键', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => '支持页脚链接 ', 'support_footer_help' => '指定谁可以看到指向Snipe-IT支持信息和用户手册的链接', diff --git a/resources/lang/zh-CN/admin/settings/message.php b/resources/lang/zh-CN/admin/settings/message.php index 35d75c68d..d64c14226 100644 --- a/resources/lang/zh-CN/admin/settings/message.php +++ b/resources/lang/zh-CN/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => '是的,还原它。我确认这将覆盖当前数据库中的任何现有数据。 这也将注销您现有的所有用户 (包括您)。', 'restore_confirm' => '您确定要从 :filename还原您的数据库吗?' ], + 'restore' => [ + 'success' => '您的系统备份已恢复。请重新登录。' + ], 'purge' => [ 'error' => '清除过程中出现了错误。 ', 'validation_failed' => '你的清除确认不正确,请在输入框中输入“DELETE”。', diff --git a/resources/lang/zh-CN/button.php b/resources/lang/zh-CN/button.php index a44f2ad04..0a7598d11 100644 --- a/resources/lang/zh-CN/button.php +++ b/resources/lang/zh-CN/button.php @@ -26,7 +26,7 @@ return [ 'clone' => '克隆 :item_type', 'edit' => '编辑 :item_type', 'delete' => '删除 :item_type', - 'restore' => '删除 :item_type', + 'restore' => '恢复 :item_type', 'create' => '创建新的 :item_type', 'checkout' => '借出 :item_type', 'checkin' => '归还 :item_type', diff --git a/resources/lang/zh-CN/general.php b/resources/lang/zh-CN/general.php index 38ea6f2ba..f2e7def35 100644 --- a/resources/lang/zh-CN/general.php +++ b/resources/lang/zh-CN/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => '消耗品', 'country' => '国家', 'could_not_restore' => '恢复时出错 :item_type: :error', - 'not_deleted' => ':item_type 未被删除,因此无法恢复', + 'not_deleted' => ':item_type 未删除,所以无法恢复', 'create' => '新增', 'created' => '项目已创建', 'created_asset' => '新建资产', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => '此应用程序运行在生产模式下的调试状态。如果您的应用程序可以被外部访问,这会使敏感数据暴露。通过将 .env 文件中的APP_DEBUG 值设置为 false来 禁用调试模式。', 'delete' => '刪除', 'delete_confirm' => '是否确定删除此项', - 'delete_confirm_no_undo' => '你确定要删除这条数据吗?这个数据将会无法恢复。', + 'delete_confirm_no_undo' => '您确定要删除 :item?此操作无法撤消。', 'deleted' => '已删除', 'delete_seats' => '已移除空位', 'deletion_failed' => '删除失败', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => '姓 缩写名, 例如 (smith_j@example.com)', 'firstinitial.lastname' => '缩写名 姓,例如(jsmith@example.com)', 'firstnamelastinitial' => '名 姓,例如 (jane.smith@example.com)', - 'lastnamefirstname' => '姓 名,例如(smith.jane@example.com)', + 'lastnamefirstname' => '姓氏.名字 (smith.jane@example.com)', 'first_name' => '名字', 'first_name_format' => '名,例如 (jane@example.com)', 'files' => '文件', @@ -156,9 +156,9 @@ return [ 'image_delete' => '删除图片', 'include_deleted' => '包括已删除的资产', 'image_upload' => '上传图片', - 'filetypes_accepted_help' => '可接受的文件类型是 :types. 最大允许上传大小为 :size.|可接受的文件类型是 :types. 最大允许上传大小为 :size.', - 'filetypes_size_help' => '允许最大上传文件的大小为 :size.', - 'image_filetypes_help' => '可接受的文件类型是 jpg、webp、png、gif、svg和avif。最大允许上传大小为 :size.', + 'filetypes_accepted_help' => '可接受的文件类型是 :type 。允许的最大大小是 :size.|可接受的文件类型是 :type 。允许最大上传大小是 :size。', + 'filetypes_size_help' => '允许最大上传大小为 :size', + 'image_filetypes_help' => '可接受的文件类型是jpg、webp、png、gif、svg和avif。允许最大上传大小为 :size。', 'unaccepted_image_type' => '此图像文件不可读。可接受的文件类型为jpg、webp、png、gif和svg。此文件的 mimetype 类型为::mimetype。', 'import' => '导入', 'import_this_file' => '映射字段并处理此文件', @@ -279,6 +279,7 @@ return [ 'site_name' => '站点名称', 'state' => '省份', 'status_labels' => '状态标签', + 'status_label' => 'Status Label', 'status' => '状态', 'accept_eula' => '接受协议', 'supplier' => '供应商', @@ -339,7 +340,7 @@ return [ 'view_all' => '查看全部', 'hide_deleted' => '隐藏已删除', 'email' => '邮箱', - 'do_not_change' => '不要更改', + 'do_not_change' => '不更改', 'bug_report' => '报告错误', 'user_manual' => '用户手册', 'setup_step_1' => '第 1 步', diff --git a/resources/lang/zh-CN/localizations.php b/resources/lang/zh-CN/localizations.php index 621912397..226e7fcb0 100644 --- a/resources/lang/zh-CN/localizations.php +++ b/resources/lang/zh-CN/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> '马来文', 'mi-NZ'=> 'Maori', 'mn-MN'=> '蒙古语', - 'no-NO'=> '挪威语', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> '挪威语 (博克马尔语)', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> '波斯文', 'pl-PL'=> '波兰语', 'pt-PT'=> '葡萄牙文', diff --git a/resources/lang/zh-CN/validation.php b/resources/lang/zh-CN/validation.php index bf1601eae..75c71fd5e 100644 --- a/resources/lang/zh-CN/validation.php +++ b/resources/lang/zh-CN/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => ':attribute 字段必须至少包含一个符号。', 'uncompromised' => '给定的 :attribute 字段出现在数据泄漏中。请选择一个不同的 :attribute 。', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => ':属性字段必须存在。', 'present_if' => '当 :other 为 :value 时,:attribute 字段必须存在。', 'present_unless' => ':attribute 字段必须存在,除非 :other 是 :value 。', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => '您当前的密码不正确', 'dumbpwd' => '那个密码太常见了。', 'statuslabel_type' => '您必须选择有效的状态标签类型', + 'custom_field_not_found' => '此字段似乎不存在,请重新检查您的自定义字段名称。', + 'custom_field_not_found_on_model' => '此字段似乎存在,但在此资产型号的字段集上不可用。', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/zh-HK/account/general.php b/resources/lang/zh-HK/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/zh-HK/account/general.php +++ b/resources/lang/zh-HK/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/zh-HK/admin/locations/message.php b/resources/lang/zh-HK/admin/locations/message.php index 8121b8068..6226c71ab 100644 --- a/resources/lang/zh-HK/admin/locations/message.php +++ b/resources/lang/zh-HK/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Location does not exist.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'This location is currently associated with at least one asset and cannot be deleted. Please update your assets to no longer reference this location and try again. ', 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/zh-HK/admin/settings/general.php b/resources/lang/zh-HK/admin/settings/general.php index 9ba69ef22..31165cf3f 100644 --- a/resources/lang/zh-HK/admin/settings/general.php +++ b/resources/lang/zh-HK/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT version', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/zh-HK/admin/settings/message.php b/resources/lang/zh-HK/admin/settings/message.php index c9b0f3421..24e2d292c 100644 --- a/resources/lang/zh-HK/admin/settings/message.php +++ b/resources/lang/zh-HK/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'An error has occurred while purging. ', 'validation_failed' => 'Your purge confirmation is incorrect. Please type the word "DELETE" in the confirmation box.', diff --git a/resources/lang/zh-HK/button.php b/resources/lang/zh-HK/button.php index fead420b2..8172eed8d 100644 --- a/resources/lang/zh-HK/button.php +++ b/resources/lang/zh-HK/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/zh-HK/general.php b/resources/lang/zh-HK/general.php index 3a63ca97e..d5403bd95 100644 --- a/resources/lang/zh-HK/general.php +++ b/resources/lang/zh-HK/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'First Name', 'first_name_format' => 'First Name (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Delete Image', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Upload Image', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Licenses', 'list_all' => 'List All', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'This feature has been disabled for the demo installation.', 'location' => 'Location', @@ -193,7 +193,7 @@ return [ 'logout' => 'Logout', 'lookup_by_tag' => 'Lookup by Asset Tag', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Manufacturer', 'manufacturers' => 'Manufacturers', 'markdown' => 'This field allows Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Search', 'select_category' => 'Select a Category', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Select a Department', 'select_depreciation' => 'Select a Depreciation Type', 'select_location' => 'Select a Location', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Site Name', 'state' => 'State', 'status_labels' => 'Status Labels', + 'status_label' => 'Status Label', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Supplier', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'Email', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', diff --git a/resources/lang/zh-HK/localizations.php b/resources/lang/zh-HK/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/zh-HK/localizations.php +++ b/resources/lang/zh-HK/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/zh-HK/validation.php b/resources/lang/zh-HK/validation.php index b33548e2f..634170791 100644 --- a/resources/lang/zh-HK/validation.php +++ b/resources/lang/zh-HK/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'The :attribute field must be present.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Your current password is incorrect', 'dumbpwd' => 'That password is too common.', 'statuslabel_type' => 'You must select a valid status label type', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/zh-TW/account/general.php b/resources/lang/zh-TW/account/general.php index c87a92408..5f6311a0c 100644 --- a/resources/lang/zh-TW/account/general.php +++ b/resources/lang/zh-TW/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/zh-TW/admin/locations/message.php b/resources/lang/zh-TW/admin/locations/message.php index ab637febb..3e5c4da17 100644 --- a/resources/lang/zh-TW/admin/locations/message.php +++ b/resources/lang/zh-TW/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => '地點不存在.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => '至少還有一個資產與此位置關聯,目前不能被删除,請檢查後重試。 ', 'assoc_child_loc' => '至少還有一個子項目與此位置關聯,目前不能被删除,請檢查後重試。 ', 'assigned_assets' => '已分配資產', diff --git a/resources/lang/zh-TW/admin/settings/general.php b/resources/lang/zh-TW/admin/settings/general.php index db6ff97f2..7af807d32 100644 --- a/resources/lang/zh-TW/admin/settings/general.php +++ b/resources/lang/zh-TW/admin/settings/general.php @@ -219,6 +219,8 @@ return [ 'webhook_integration_help' => ':app 整合是選擇性的,但如果您希望使用它,則需要端點和頻道。要設定 :app 整合,您必須先在您的 :app 帳戶上建立傳入的 webhook。在儲存之前,點選 測試 :app 整合 按鈕確認您的設定是否正確。', 'webhook_integration_help_button' => '一旦您儲存了您的 :app 資訊,將會出現一個測試按鈕。', 'webhook_test_help' => '測試您的 :app 整合是否設定正確。您必須先儲存更新的 :app 設定。', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Snipe-IT 版本', 'support_footer' => '支援頁尾連結', 'support_footer_help' => '指定誰可以看到指向Snipe-IT支持信息和用戶手冊的鏈接', diff --git a/resources/lang/zh-TW/admin/settings/message.php b/resources/lang/zh-TW/admin/settings/message.php index 4722b6a4b..6ed32111e 100644 --- a/resources/lang/zh-TW/admin/settings/message.php +++ b/resources/lang/zh-TW/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => '是的,還原它。我了解這將覆蓋資料庫中目前的任何現有數據。這也會登出所有目前使用者(包括您)。', 'restore_confirm' => '請您確認是否要從 :filename 還原資料庫?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => '清除過程中發生錯誤。', 'validation_failed' => '你的清除確認不正確,請在文字輸入欄位輸入"DELETE"。', diff --git a/resources/lang/zh-TW/button.php b/resources/lang/zh-TW/button.php index 20c6b43ab..826554525 100644 --- a/resources/lang/zh-TW/button.php +++ b/resources/lang/zh-TW/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/zh-TW/general.php b/resources/lang/zh-TW/general.php index e8936ec4d..3c89e4c47 100644 --- a/resources/lang/zh-TW/general.php +++ b/resources/lang/zh-TW/general.php @@ -12,7 +12,7 @@ return [ 'address' => '地址', 'admin' => '管理員', 'admin_tooltip' => 'This user has admin privileges', - 'superuser' => 'Superuser', + 'superuser' => '超級使用者', 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => '管理員', 'add_seats' => '新增授權', @@ -77,7 +77,7 @@ return [ 'consumables' => '耗材', 'country' => '國家', 'could_not_restore' => '還原錯誤 :item_type: :error', - 'not_deleted' => '此 :item_type 未被刪除,因此無法還原。', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => '新增', 'created' => '項目已新增', 'created_asset' => '新增資產', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => '此應用程式已開啟除錯模式, 如果開放外部存取可能造成敏感資料外洩。您可透過修改.env檔案中的參數APP_DEBUG,將值改為false關閉除錯模式。', 'delete' => '刪除', 'delete_confirm' => '您確定要刪除 :item 嗎?', - 'delete_confirm_no_undo' => '您確定要刪除 :item 嗎?此操作無法復原。', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => '刪除', 'delete_seats' => '刪除授權', 'deletion_failed' => '刪除失敗', @@ -126,15 +126,15 @@ return [ 'firstname_lastname_underscore_format' => '名字姓氏,例如(jane_smith@example.com)', 'lastnamefirstinitial_format' => '姓氏首字母(smithj@example.com)', 'firstintial_dot_lastname_format' => '姓氏與名首子母 (j.smith@example.com)', - 'firstname_lastname_display' => 'First Name Last Name (Jane Smith)', - 'lastname_firstname_display' => 'Last Name First Name (Smith Jane)', + 'firstname_lastname_display' => '名稱及姓氏(小明 王)', + 'lastname_firstname_display' => '姓氏及名稱(王 小明)', 'name_display_format' => '名稱顯示格式', 'first' => '首頁', 'firstnamelastname' => '全名 (janesmith@example.com)', 'lastname_firstinitial' => '姓氏與名首字母 (smith_j@example.com)', 'firstinitial.lastname' => '姓氏與名首子母 (j.smith@example.com)', 'firstnamelastinitial' => '名字與姓首字母 (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => '名字', 'first_name_format' => '名,例如 (jane@example.com)', 'files' => '檔案', @@ -156,9 +156,9 @@ return [ 'image_delete' => '刪除圖片', 'include_deleted' => '包含已刪除的資產', 'image_upload' => '上傳圖片', - 'filetypes_accepted_help' => '接受的檔案類型為 :types。允許的最大上傳大小為 :size。', - 'filetypes_size_help' => '上傳檔案大小上限為 :size', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => '此影像無法被讀取。可接受的檔案格式為 jpg, webp, png, gif 以及 svg。此影像的 mimetype 為 :mimetype。', 'import' => '匯入', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => '授權', 'list_all' => '列出全部', - 'loading' => '正在載入,請稍候....', + 'loading' => '正在載入,請稍候...', 'lock_passwords' => '此欄位值不會儲存在 Demo 安裝.', 'feature_disabled' => '演示模式下禁用此功能', 'location' => '位置', @@ -193,7 +193,7 @@ return [ 'logout' => '登出', 'lookup_by_tag' => '尋找資產標籤', 'maintenances' => '維護', - 'manage_api_keys' => '管理 API 金鑰', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => '製造商', 'manufacturers' => '製造商', 'markdown' => '此欄位可以使用 Github flavored markdown.', @@ -254,7 +254,7 @@ return [ 'select_all' => '全部選取', 'search' => '搜尋', 'select_category' => '選擇一個類別', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => '選擇部門', 'select_depreciation' => '選擇折舊類型', 'select_location' => '選擇位置', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => '簽署者', 'skin' => '主題', 'webhook_msg_note' => '將透過 webhook 傳送通知', - 'webhook_test_msg' => '嗨!看起來您的 Snipe-IT 與 :app 的整合運作正常!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => '演示模式︰ 此安裝禁用某些功能。', 'site_name' => '網站名稱', 'state' => '省份', 'status_labels' => '狀態標籤', + 'status_label' => 'Status Label', 'status' => '狀態', 'accept_eula' => '接受 EULA', 'supplier' => '供應商', @@ -339,16 +340,16 @@ return [ 'view_all' => '檢視全部', 'hide_deleted' => '隱藏已刪除', 'email' => '電子郵件', - 'do_not_change' => '請勿更動', - 'bug_report' => '回報問題', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => '使用者手冊', 'setup_step_1' => '步驟 1', 'setup_step_2' => '步驟 2', 'setup_step_3' => '步驟 3', 'setup_step_4' => '步驟 4', 'setup_config_check' => '檢查設定', - 'setup_create_database' => '建立資料庫欄位', - 'setup_create_admin' => '建立管理員', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => '完成!', 'bulk_edit_about_to' => '您即將編輯以下項目:', 'checked_out' => '已領用', @@ -522,7 +523,7 @@ return [ 'action_permission_generic' => '您沒有權限做 :action this :item_type', 'edit' => '編輯', 'action_source' => '行動來源', - 'or' => 'or', + 'or' => '或', 'url' => '網址', 'edit_fieldset' => 'Edit fieldset fields and options', 'permission_denied_superuser_demo' => 'Permission denied. You cannot update user information for superadmins on the demo.', diff --git a/resources/lang/zh-TW/localizations.php b/resources/lang/zh-TW/localizations.php index ac89b3074..d5d2a8f7b 100644 --- a/resources/lang/zh-TW/localizations.php +++ b/resources/lang/zh-TW/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> '馬來語', 'mi-NZ'=> '毛利語', 'mn-MN'=> '蒙古語', - 'no-NO'=> '挪威語', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> '波斯語', 'pl-PL'=> '波蘭語', 'pt-PT'=> '葡萄牙語', diff --git a/resources/lang/zh-TW/validation.php b/resources/lang/zh-TW/validation.php index 4711c8e0b..f2aacb2a2 100644 --- a/resources/lang/zh-TW/validation.php +++ b/resources/lang/zh-TW/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => ':屬性字段必須存在。', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => '當前密碼不正確!', 'dumbpwd' => '該密碼太常見。', 'statuslabel_type' => '您必須選擇一個有效的狀態標籤', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP diff --git a/resources/lang/zu-ZA/account/general.php b/resources/lang/zu-ZA/account/general.php index d99e36df8..7f9e2f848 100644 --- a/resources/lang/zu-ZA/account/general.php +++ b/resources/lang/zu-ZA/account/general.php @@ -12,4 +12,6 @@ return array( 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', 'profile_updated' => 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', + 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/lang/zu-ZA/admin/locations/message.php b/resources/lang/zu-ZA/admin/locations/message.php index 7db24f666..290f930f4 100644 --- a/resources/lang/zu-ZA/admin/locations/message.php +++ b/resources/lang/zu-ZA/admin/locations/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Indawo ayikho.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this company and try again. ', + 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', 'assoc_assets' => 'Le ndawo okwamanje ihlotshaniswa okungenani nefa elilodwa futhi ayikwazi ukususwa. Sicela ubuyekeze izimpahla zakho ukuze ungasaphinde ubhekise le ndawo futhi uzame futhi.', 'assoc_child_loc' => 'Le ndawo okwamanje ungumzali okungenani indawo eyodwa yengane futhi ayikwazi ukususwa. Sicela ubuyekeze izindawo zakho ukuze ungasaphinde ubhekisele kule ndawo bese uyazama futhi.', 'assigned_assets' => 'Assigned Assets', diff --git a/resources/lang/zu-ZA/admin/settings/general.php b/resources/lang/zu-ZA/admin/settings/general.php index 6cc497fe9..3d9f7c8f5 100644 --- a/resources/lang/zu-ZA/admin/settings/general.php +++ b/resources/lang/zu-ZA/admin/settings/general.php @@ -218,6 +218,8 @@ return [ 'webhook_integration_help' => ':app integration is optional, however the endpoint and channel are required if you wish to use it. To configure :app integration, you must first create an incoming webhook on your :app account. Click on the Test :app Integration button to confirm your settings are correct before saving. ', 'webhook_integration_help_button' => 'Once you have saved your :app information, a test button will appear.', 'webhook_test_help' => 'Test whether your :app integration is configured correctly. YOU MUST SAVE YOUR UPDATED :app SETTINGS FIRST.', + 'shortcuts_enabled' => 'Enable Shortcuts', + 'shortcuts_help_text' => 'Windows: Alt + Access key, Mac: Control + Option + Access key', 'snipe_version' => 'Inguqulo ye-Snipe-IT', 'support_footer' => 'Support Footer Links ', 'support_footer_help' => 'Specify who sees the links to the Snipe-IT Support info and Users Manual', diff --git a/resources/lang/zu-ZA/admin/settings/message.php b/resources/lang/zu-ZA/admin/settings/message.php index 919ec8237..8b5d197f3 100644 --- a/resources/lang/zu-ZA/admin/settings/message.php +++ b/resources/lang/zu-ZA/admin/settings/message.php @@ -14,6 +14,9 @@ return [ 'restore_warning' => 'Yes, restore it. I acknowledge that this will overwrite any existing data currently in the database. This will also log out all of your existing users (including you).', 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], + 'restore' => [ + 'success' => 'Your system backup has been restored. Please login again.' + ], 'purge' => [ 'error' => 'Kuvele iphutha ngenkathi kuhlanzwa.', 'validation_failed' => 'Isiqinisekiso sakho sokuhlanza asilungile. Sicela uthayiphe igama elithi "SUSELA" ebhokisini lokuqinisekisa.', diff --git a/resources/lang/zu-ZA/button.php b/resources/lang/zu-ZA/button.php index d57de8065..641db85fb 100644 --- a/resources/lang/zu-ZA/button.php +++ b/resources/lang/zu-ZA/button.php @@ -26,7 +26,7 @@ return [ 'clone' => 'Clone :item_type', 'edit' => 'Edit :item_type', 'delete' => 'Delete :item_type', - 'restore' => 'Delete :item_type', + 'restore' => 'Restore :item_type', 'create' => 'Create New :item_type', 'checkout' => 'Checkout :item_type', 'checkin' => 'Checkin :item_type', diff --git a/resources/lang/zu-ZA/general.php b/resources/lang/zu-ZA/general.php index abafc9f1b..1d6f4712d 100644 --- a/resources/lang/zu-ZA/general.php +++ b/resources/lang/zu-ZA/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Amakhomikhali', 'country' => 'Izwe', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', 'create' => 'Dala Okusha', 'created' => 'Into edalwe', 'created_asset' => 'ifa elidalwe', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Lolu hlelo lokusebenza lusemodi yokukhiqiza ngokususa iphutha kunikwe amandla. Lokhu kungabonisa idatha ebucayi uma isicelo sakho sifinyeleleka ezweni langaphandle. Khubaza imodi yokulungisa iphutha ngokubeka inani le-APP_DEBUG kufayela lakho le-.env kuya ku-false.', 'delete' => 'Susa', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This can not be undone.', + 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', 'deleted' => 'Isusiwe', 'delete_seats' => 'Izihlalo ezifakiwe', 'deletion_failed' => 'Deletion failed', @@ -134,7 +134,7 @@ return [ 'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)', 'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)', 'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)', - 'lastnamefirstname' => 'Last Name First Name (smith.jane@example.com)', + 'lastnamefirstname' => 'Last Name.First Name (smith.jane@example.com)', 'first_name' => 'Igama', 'first_name_format' => 'Igama Lokuqala (jane@example.com)', 'files' => 'Files', @@ -156,9 +156,9 @@ return [ 'image_delete' => 'Susa isithombe', 'include_deleted' => 'Include Deleted Assets', 'image_upload' => 'Layisha isithombe', - 'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.', - 'filetypes_size_help' => 'Max upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. Max upload size allowed is :size.', + 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', + 'filetypes_size_help' => 'The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Ngenisa', 'import_this_file' => 'Map fields and process this file', @@ -183,7 +183,7 @@ return [ 'licenses_available' => 'Licenses available', 'licenses' => 'Amalayisensi', 'list_all' => 'Bhala konke', - 'loading' => 'Loading... please wait....', + 'loading' => 'Loading... please wait...', 'lock_passwords' => 'This field value will not be saved in a demo installation.', 'feature_disabled' => 'Lesi sici sikhutshaziwe ukufakwa kwedemo.', 'location' => 'Indawo', @@ -193,7 +193,7 @@ return [ 'logout' => 'Phuma', 'lookup_by_tag' => 'Ukubheka nge-Tag Tag', 'maintenances' => 'Maintenances', - 'manage_api_keys' => 'Manage API Keys', + 'manage_api_keys' => 'Manage API keys', 'manufacturer' => 'Umkhiqizi', 'manufacturers' => 'Abakhiqizi', 'markdown' => 'Le nsimu ivumela i-I-markdown ekhanyisiwe.', @@ -254,7 +254,7 @@ return [ 'select_all' => 'Select All', 'search' => 'Sesha', 'select_category' => 'Khetha Isigaba', - 'select_datasource' => 'Select a Datasource', + 'select_datasource' => 'Select a data source', 'select_department' => 'Khetha uMnyango', 'select_depreciation' => 'Khetha uhlobo lokuncipha', 'select_location' => 'Khetha indawo', @@ -274,11 +274,12 @@ return [ 'signed_off_by' => 'Signed Off By', 'skin' => 'Skin', 'webhook_msg_note' => 'A notification will be sent via webhook', - 'webhook_test_msg' => 'Oh hai! Looks like your :app integration with Snipe-IT is working!', + 'webhook_test_msg' => 'Oh hai! It looks like your :app integration with Snipe-IT is working!', 'some_features_disabled' => 'I-DEMO MODE: Ezinye izici zikhutshaziwe ngalokhu kufakwa futhi idatha kule nqubo izosetha kabusha nsuku zonke.', 'site_name' => 'Igama lesayithi', 'state' => 'Isimo', 'status_labels' => 'Amalebula wesimo', + 'status_label' => 'Status Label', 'status' => 'Isimo', 'accept_eula' => 'Acceptance Agreement', 'supplier' => 'Umphakeli', @@ -339,16 +340,16 @@ return [ 'view_all' => 'view all', 'hide_deleted' => 'Hide Deleted', 'email' => 'I-imeyili', - 'do_not_change' => 'Do Not Change', - 'bug_report' => 'Report a Bug', + 'do_not_change' => 'Do not change', + 'bug_report' => 'Report a bug', 'user_manual' => 'User\'s Manual', 'setup_step_1' => 'Step 1', 'setup_step_2' => 'Step 2', 'setup_step_3' => 'Step 3', 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', - 'setup_create_database' => 'Create Database Tables', - 'setup_create_admin' => 'Create Admin User', + 'setup_create_database' => 'Create database tables', + 'setup_create_admin' => 'Create admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Ikhishiwe', diff --git a/resources/lang/zu-ZA/localizations.php b/resources/lang/zu-ZA/localizations.php index f1232dd13..f335ddc1b 100644 --- a/resources/lang/zu-ZA/localizations.php +++ b/resources/lang/zu-ZA/localizations.php @@ -40,7 +40,9 @@ return [ 'ms-MY'=> 'Malay', 'mi-NZ'=> 'Maori', 'mn-MN'=> 'Mongolian', - 'no-NO'=> 'Norwegian', + //'no-NO'=> 'Norwegian', + 'nb-NO'=> 'Norwegian Bokmål', + //'nn-NO'=> 'Norwegian Nynorsk', 'fa-IR'=> 'Persian', 'pl-PL'=> 'Polish', 'pt-PT'=> 'Portuguese', diff --git a/resources/lang/zu-ZA/validation.php b/resources/lang/zu-ZA/validation.php index 56df18fff..9e3782433 100644 --- a/resources/lang/zu-ZA/validation.php +++ b/resources/lang/zu-ZA/validation.php @@ -125,6 +125,8 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], + 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'present' => 'I: insimu yemfanelo kufanele ibe khona.', 'present_if' => 'The :attribute field must be present when :other is :value.', 'present_unless' => 'The :attribute field must be present unless :other is :value.', @@ -188,6 +190,8 @@ return [ 'hashed_pass' => 'Iphasiwedi yakho yamanje ayilungile', 'dumbpwd' => 'Lelo phasiwedi livame kakhulu.', 'statuslabel_type' => 'Kumele ukhethe uhlobo lwelebula lesimo esivumelekile', + 'custom_field_not_found' => 'This field does not seem to exist, please double check your custom field names.', + 'custom_field_not_found_on_model' => 'This field seems to exist, but is not available on this Asset Model\'s fieldset.', // date_format validation with slightly less stupid messages. It duplicates a lot, but it gets the job done :( // We use this because the default error message for date_format is reflects php Y-m-d, which non-PHP From a3d847151af4e1f4c1d51c84f5c728fcffce2924 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 15:19:27 +0100 Subject: [PATCH 064/224] Model name uniqueness Signed-off-by: snipe --- app/Models/AssetModel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/AssetModel.php b/app/Models/AssetModel.php index 07e7a5e24..60ba29b49 100755 --- a/app/Models/AssetModel.php +++ b/app/Models/AssetModel.php @@ -29,7 +29,7 @@ class AssetModel extends SnipeModel // Declare the rules for the model validation protected $rules = [ - 'name' => 'required|min:1|max:255', + 'name' => 'required|min:1|max:255|unique:models,name', 'model_number' => 'max:255|nullable', 'min_amt' => 'integer|min:0|nullable', 'category_id' => 'required|integer|exists:categories,id', From b39a7c6f0c34d6f18531b572199e2990c193e0cc Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 15:42:11 +0100 Subject: [PATCH 065/224] String constraint Signed-off-by: snipe --- app/Models/AssetModel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Models/AssetModel.php b/app/Models/AssetModel.php index 60ba29b49..7a6662091 100755 --- a/app/Models/AssetModel.php +++ b/app/Models/AssetModel.php @@ -29,8 +29,8 @@ class AssetModel extends SnipeModel // Declare the rules for the model validation protected $rules = [ - 'name' => 'required|min:1|max:255|unique:models,name', - 'model_number' => 'max:255|nullable', + 'name' => 'string|required|min:1|max:255|unique:models,name', + 'model_number' => 'string|max:255|nullable', 'min_amt' => 'integer|min:0|nullable', 'category_id' => 'required|integer|exists:categories,id', 'manufacturer_id' => 'integer|exists:manufacturers,id|nullable', From f9172594b279497d6b90cc7cec774be40460ed63 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 16 Aug 2024 10:14:43 +0100 Subject: [PATCH 066/224] Clearer time example display Signed-off-by: snipe --- resources/macros/macros.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/macros/macros.php b/resources/macros/macros.php index 584c7df84..7fefba2aa 100644 --- a/resources/macros/macros.php +++ b/resources/macros/macros.php @@ -84,8 +84,9 @@ Form::macro('time_display_format', function ($name = 'time_display_format', $sel 'H:i', ]; + $datetime = date("y-m-d").' 14:00:00'; foreach ($formats as $format) { - $time_display_formats[$format] = Carbon::now()->format($format); + $time_display_formats[$format] = Carbon::parse($datetime)->format($format); } $select = '', _this4.constants.classes.input, opts.formatSearch()))); html.push(_this4.constants.html.toolbarDropdownSeparator); @@ -2491,7 +6558,8 @@ if (attributeName === 'class') { continue; } - buttonHtml += " ".concat(attributeName, "=\"").concat(value, "\""); + var attribute = attributeName === 'title' ? this.options.buttonsAttributeTitle : attributeName; + buttonHtml += " ".concat(attribute, "=\"").concat(value, "\""); } } buttonHtml += '>'; @@ -2577,7 +6645,7 @@ }); $checkboxes.off('click').on('click', function (_ref2) { var currentTarget = _ref2.currentTarget; - var $this = $(currentTarget); + var $this = $$q(currentTarget); _this4._toggleColumn($this.val(), $this.prop('checked'), false); _this4.trigger('column-switch', $this.data('field'), $this.prop('checked')); $toggleAll.prop('checked', $checkboxes.filter(':checked').length === _this4.columns.filter(function (column) { @@ -2586,19 +6654,19 @@ }); $toggleAll.off('click').on('click', function (_ref3) { var currentTarget = _ref3.currentTarget; - _this4._toggleAllColumns($(currentTarget).prop('checked')); - _this4.trigger('column-switch-all', $(currentTarget).prop('checked')); + _this4._toggleAllColumns($$q(currentTarget).prop('checked')); + _this4.trigger('column-switch-all', $$q(currentTarget).prop('checked')); }); if (opts.showColumnsSearch) { var $columnsSearch = $keepOpen.find('[name="columnsSearch"]'); var $listItems = $keepOpen.find('.dropdown-item-marker'); $columnsSearch.on('keyup paste change', function (_ref4) { var currentTarget = _ref4.currentTarget; - var $this = $(currentTarget); + var $this = $$q(currentTarget); var searchValue = $this.val().toLowerCase(); $listItems.show(); $checkboxes.each(function (i, el) { - var $checkbox = $(el); + var $checkbox = $$q(el); var $listItem = $checkbox.parents('.dropdown-item-marker'); var text = $listItem.text().toLowerCase(); if (!text.includes(searchValue)) { @@ -2671,16 +6739,16 @@ currentTarget = _ref5.currentTarget, firedByInitSearchText = _ref5.firedByInitSearchText; var overwriteSearchText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - if (currentTarget !== undefined && $(currentTarget).length && overwriteSearchText) { - var text = $(currentTarget).val().trim(); - if (this.options.trimOnSearch && $(currentTarget).val() !== text) { - $(currentTarget).val(text); + if (currentTarget !== undefined && $$q(currentTarget).length && overwriteSearchText) { + var text = $$q(currentTarget).val().trim(); + if (this.options.trimOnSearch && $$q(currentTarget).val() !== text) { + $$q(currentTarget).val(text); } if (this.searchText === text) { return; } var $searchInput = Utils.getSearchInput(this); - var $currentTarget = currentTarget instanceof jQuery ? currentTarget : $(currentTarget); + var $currentTarget = currentTarget instanceof jQuery ? currentTarget : $$q(currentTarget); if ($currentTarget.is($searchInput) || $currentTarget.hasClass('search-input')) { this.searchText = text; this.options.searchText = text; @@ -2759,11 +6827,11 @@ value = item; var props = key.split('.'); for (var _i8 = 0; _i8 < props.length; _i8++) { - if (value[props[_i8]] !== null) { - value = value[props[_i8]]; - } else { + if (value[props[_i8]] === null || value[props[_i8]] === undefined) { value = null; break; + } else { + value = value[props[_i8]]; } } } else { @@ -3031,7 +7099,7 @@ key: "updatePagination", value: function updatePagination(event) { // Fix #171: IE disabled button can be clicked bug. - if (event && $(event.currentTarget).hasClass('disabled')) { + if (event && $$q(event.currentTarget).hasClass('disabled')) { return; } if (!this.options.maintainMetaData) { @@ -3049,7 +7117,7 @@ key: "onPageListChange", value: function onPageListChange(event) { event.preventDefault(); - var $this = $(event.currentTarget); + var $this = $$q(event.currentTarget); $this.parent().addClass(this.constants.classes.dropdownActive).siblings().removeClass(this.constants.classes.dropdownActive); this.options.pageSize = $this.text().toUpperCase() === this.options.formatAllRows().toUpperCase() ? this.options.formatAllRows() : +$this.text(); this.$toolbar.find('.page-size').text(this.options.pageSize); @@ -3059,7 +7127,7 @@ }, { key: "onPagePre", value: function onPagePre(event) { - if ($(event.target).hasClass('disabled')) { + if ($$q(event.target).hasClass('disabled')) { return; } event.preventDefault(); @@ -3074,7 +7142,7 @@ }, { key: "onPageNext", value: function onPageNext(event) { - if ($(event.target).hasClass('disabled')) { + if ($$q(event.target).hasClass('disabled')) { return; } event.preventDefault(); @@ -3090,10 +7158,10 @@ key: "onPageNumber", value: function onPageNumber(event) { event.preventDefault(); - if (this.options.pageNumber === +$(event.currentTarget).text()) { + if (this.options.pageNumber === +$$q(event.currentTarget).text()) { return; } - this.options.pageNumber = +$(event.currentTarget).text(); + this.options.pageNumber = +$$q(event.currentTarget).text(); this.updatePagination(event); return false; } @@ -3231,7 +7299,6 @@ value = typeof value === 'undefined' || value === null ? _this7.options.undefinedText : value; } if (column.searchable && _this7.searchText && _this7.options.searchHighlight && !(column.checkbox || column.radio)) { - var defValue = ''; var searchText = _this7.searchText.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); if (_this7.options.searchAccentNeutralise) { var indexRegex = new RegExp("".concat(Utils.normalizeAccent(searchText)), 'gmi'); @@ -3240,19 +7307,7 @@ searchText = value.substring(match.index, match.index + searchText.length); } } - var regExp = new RegExp("(".concat(searchText, ")"), 'gim'); - var marker = '$1'; - var isHTML = value && /<(?=.*? .*?\/ ?>|br|hr|input|!--|wbr)[a-z]+.*?>|<([a-z]+).*?<\/\1>/i.test(value); - if (isHTML) { - // value can contains a HTML tags - var textContent = new DOMParser().parseFromString(value.toString(), 'text/html').documentElement.textContent; - var textReplaced = textContent.replace(regExp, marker); - textContent = textContent.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); - defValue = value.replace(new RegExp("(>\\s*)(".concat(textContent, ")(\\s*)"), 'gm'), "$1".concat(textReplaced, "$3")); - } else { - // but usually not - defValue = value.toString().replace(regExp, marker); - } + var defValue = Utils.replaceSearchMark(value, searchText); value = Utils.calculateObjectValue(column, column.searchHighlightFormatter, [value, _this7.searchText], defValue); } if (item["_".concat(field, "_data")] && !Utils.isEmptyObject(item["_".concat(field, "_data")])) { @@ -3303,7 +7358,7 @@ this.trigger('pre-body', data); this.$body = this.$el.find('>tbody'); if (!this.$body.length) { - this.$body = $('').appendTo(this.$el); + this.$body = $$q('').appendTo(this.$el); } // Fix #389 Bootstrap-table-flatJSON is not working @@ -3312,7 +7367,7 @@ this.pageTo = data.length; } var rows = []; - var trFragments = $(document.createDocumentFragment()); + var trFragments = $$q(document.createDocumentFragment()); var hasTr = false; var toExpand = []; this.autoMergeCells = Utils.checkAutoMergeCells(data.slice(this.pageFrom - 1, this.pageTo)); @@ -3384,13 +7439,13 @@ var _this9 = this; // click to select by column this.$body.find('> tr[data-index] > td').off('click dblclick').on('click dblclick', function (e) { - var $td = $(e.currentTarget); + var $td = $$q(e.currentTarget); if ($td.find('.detail-icon').length || $td.index() - Utils.getDetailViewIndexOffset(_this9.options) < 0) { return; } var $tr = $td.parent(); - var $cardViewArr = $(e.target).parents('.card-views').children(); - var $cardViewTarget = $(e.target).parents('.card-view'); + var $cardViewArr = $$q(e.target).parents('.card-views').children(); + var $cardViewTarget = $$q(e.target).parents('.card-view'); var rowIndex = $tr.data('index'); var item = _this9.data[rowIndex]; var index = _this9.options.cardView ? $cardViewArr.index($cardViewTarget) : $td[0].cellIndex; @@ -3418,13 +7473,13 @@ }); this.$body.find('> tr[data-index] > td > .detail-icon').off('click').on('click', function (e) { e.preventDefault(); - _this9.toggleDetailView($(e.currentTarget).parent().parent().data('index')); + _this9.toggleDetailView($$q(e.currentTarget).parent().parent().data('index')); return false; }); this.$selectItem = this.$body.find(Utils.sprintf('[name="%s"]', this.options.selectItemName)); this.$selectItem.off('click').on('click', function (e) { e.stopImmediatePropagation(); - var $this = $(e.currentTarget); + var $this = $$q(e.currentTarget); _this9._toggleCheck($this.prop('checked'), $this.data('index')); }); this.header.events.forEach(function (_events, i) { @@ -3451,7 +7506,7 @@ } var event = events[key]; _this9.$body.find('>tr:not(.no-records-found)').each(function (i, tr) { - var $tr = $(tr); + var $tr = $$q(tr); var $td = $tr.find(_this9.options.cardView ? '.card-views>.card-view' : '>td').eq(fieldIndex); var index = key.indexOf(' '); var name = key.substring(0, index); @@ -3583,7 +7638,7 @@ this._xhrAbort = true; this._xhr.abort(); } - this._xhr = $.ajax(request); + this._xhr = $$q.ajax(request); } return data; } @@ -3607,7 +7662,7 @@ value: function getCaret() { var _this11 = this; this.$header.find('th').each(function (i, th) { - $(th).find('.sortable').removeClass('desc asc').addClass($(th).data('field') === _this11.options.sortName ? _this11.options.sortOrder : 'both'); + $$q(th).find('.sortable').removeClass('desc asc').addClass($$q(th).data('field') === _this11.options.sortName ? _this11.options.sortOrder : 'both'); }); } }, { @@ -3616,7 +7671,7 @@ var checkAll = this.$selectItem.filter(':enabled').length && this.$selectItem.filter(':enabled').length === this.$selectItem.filter(':enabled').filter(':checked').length; this.$selectAll.add(this.$selectAll_).prop('checked', checkAll); this.$selectItem.each(function (i, el) { - $(el).closest('tr')[$(el).prop('checked') ? 'addClass' : 'removeClass']('selected'); + $$q(el).closest('tr')[$$q(el).prop('checked') ? 'addClass' : 'removeClass']('selected'); }); } }, { @@ -3624,7 +7679,7 @@ value: function updateRows() { var _this12 = this; this.$selectItem.each(function (i, el) { - _this12.data[$(el).data('index')][_this12.header.stateField] = $(el).prop('checked'); + _this12.data[$$q(el).data('index')][_this12.header.stateField] = $$q(el).prop('checked'); }); } }, { @@ -3657,11 +7712,11 @@ args[_key4 - 1] = arguments[_key4]; } (_this$options = this.options)[BootstrapTable.EVENTS[name]].apply(_this$options, [].concat(args, [this])); - this.$el.trigger($.Event(name, { + this.$el.trigger($$q.Event(name, { sender: this }), args); (_this$options2 = this.options).onAll.apply(_this$options2, [name].concat([].concat(args, [this]))); - this.$el.trigger($.Event('all.bs.table', { + this.$el.trigger($$q.Event('all.bs.table', { sender: this }), [name, args]); } @@ -3706,7 +7761,7 @@ this.$selectAll_ = this.$header_.find('[name="btSelectAll"]'); this.$tableHeader.css('margin-right', scrollWidth).find('table').css('width', this.$el.outerWidth()).html('').attr('class', this.$el.attr('class')).append(this.$header_); this.$tableLoading.css('width', this.$el.outerWidth()); - var focusedTemp = $('.focus-temp:visible:eq(0)'); + var focusedTemp = $$q('.focus-temp:visible:eq(0)'); if (focusedTemp.length > 0) { focusedTemp.focus(); this.$header.find('.focus-temp').removeClass('focus-temp'); @@ -3714,7 +7769,7 @@ // fix bug: $.data() is not working as expected after $.append() this.$header.find('th[data-field]').each(function (i, el) { - _this14.$header_.find(Utils.sprintf('th[data-field="%s"]', $(el).data('field'))).data($(el).data()); + _this14.$header_.find(Utils.sprintf('th[data-field="%s"]', $$q(el).data('field'))).data($$q(el).data()); }); var visibleFields = this.getVisibleFields(); var $ths = this.$header_.find('th'); @@ -3724,7 +7779,7 @@ } var trLength = $tr.find('> *').length; $tr.find('> *').each(function (i, el) { - var $this = $(el); + var $this = $$q(el); if (Utils.hasDetailViewIcon(_this14.options)) { if (i === 0 && _this14.options.detailViewAlign !== 'right' || i === trLength - 1 && _this14.options.detailViewAlign === 'right') { var $thDetail = $ths.filter('.detail'); @@ -3736,7 +7791,7 @@ var index = i - Utils.getDetailViewIndexOffset(_this14.options); var $th = _this14.$header_.find(Utils.sprintf('th[data-field="%s"]', visibleFields[index])); if ($th.length > 1) { - $th = $($ths[$this[0].cellIndex]); + $th = $$q($ths[$this[0].cellIndex]); } var zoomWidth = $th.innerWidth() - $th.find('.fht-cell').width(); $th.find('.fht-cell').width($this.innerWidth() - zoomWidth); @@ -3849,7 +7904,7 @@ } var trLength = $tr.find('> *').length; $tr.find('> *').each(function (i, el) { - var $this = $(el); + var $this = $$q(el); if (Utils.hasDetailViewIcon(_this15.options)) { if (i === 0 && _this15.options.detailViewAlign === 'left' || i === trLength - 1 && _this15.options.detailViewAlign === 'right') { var $thDetail = $ths.filter('.detail'); @@ -4042,6 +8097,7 @@ key: "removeAll", value: function removeAll() { if (this.options.data.length > 0) { + this.data.splice(0, this.data.length); this.options.data.splice(0, this.options.data.length); this.initSearch(); this.initPagination(); @@ -4054,7 +8110,10 @@ if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) { return; } - this.options.data.splice(params.index, 0, params.row); + var row = this.data[params.index]; + var originalIndex = this.options.data.indexOf(row); + this.data.splice(params.index, 0, params.row); + this.options.data.splice(originalIndex, 0, params.row); this.initSearch(); this.initPagination(); this.initSort(); @@ -4072,10 +8131,14 @@ if (!_params.hasOwnProperty('index') || !_params.hasOwnProperty('row')) { continue; } + var row = this.data[_params.index]; + var originalIndex = this.options.data.indexOf(row); if (_params.hasOwnProperty('replace') && _params.replace) { - this.options.data[_params.index] = _params.row; + this.data[_params.index] = _params.row; + this.options.data[originalIndex] = _params.row; } else { - Utils.extend(this.options.data[_params.index], _params.row); + Utils.extend(this.data[_params.index], _params.row); + Utils.extend(this.options.data[originalIndex], _params.row); } } } catch (err) { @@ -4175,13 +8238,13 @@ }, { key: "_updateCellOnly", value: function _updateCellOnly(field, index) { - var rowHtml = this.initRow(this.options.data[index], index); + var rowHtml = this.initRow(this.data[index], index); var fieldIndex = this.getVisibleFields().indexOf(field); if (fieldIndex === -1) { return; } fieldIndex += Utils.getDetailViewIndexOffset(this.options); - this.$body.find(">tr[data-index=".concat(index, "]")).find(">td:eq(".concat(fieldIndex, ")")).replaceWith($(rowHtml).find(">td:eq(".concat(fieldIndex, ")"))); + this.$body.find(">tr[data-index=".concat(index, "]")).find(">td:eq(".concat(fieldIndex, ")")).replaceWith($$q(rowHtml).find(">td:eq(".concat(fieldIndex, ")"))); this.initBodyEvent(); this.initFooter(); this.resetView(); @@ -4193,7 +8256,10 @@ if (!params.hasOwnProperty('index') || !params.hasOwnProperty('field') || !params.hasOwnProperty('value')) { return; } - this.options.data[params.index][params.field] = params.value; + var row = this.data[params.index]; + var originalIndex = this.options.data.indexOf(row); + this.data[params.index][params.field] = params.value; + this.options.data[originalIndex][params.field] = params.value; if (params.reinit === false) { this._updateCellOnly(params.field, params.index); return; @@ -4386,7 +8452,7 @@ } else { $items.get().reverse().forEach(function (item) { if ($items.filter(':checked').length > _this23.options.minimumCountColumns) { - $(item).prop('checked', visible); + $$q(item).prop('checked', visible); } }); } @@ -4448,7 +8514,7 @@ var $items = this.$selectItem.filter(':enabled'); var checked = $items.filter(':checked'); $items.each(function (i, el) { - $(el).prop('checked', !$(el).prop('checked')); + $$q(el).prop('checked', !$$q(el).prop('checked')); }); this.updateRows(); this.updateSelected(); @@ -4562,13 +8628,13 @@ key: "destroy", value: function destroy() { this.$el.insertBefore(this.$container); - $(this.options.toolbar).insertBefore(this.$el); + $$q(this.options.toolbar).insertBefore(this.$el); this.$container.next().remove(); this.$container.remove(); this.$el.html(this.$el_.html()).css('margin-top', '0').attr('class', this.$el_.attr('class') || ''); // reset the class var resizeEvent = Utils.getEventName('resize.bootstrap-table', this.$el.attr('id')); - $(window).off(resizeEvent); + $$q(window).off(resizeEvent); } }, { key: "resetView", @@ -4672,8 +8738,8 @@ this.options.cardView = !this.options.cardView; this.initHeader(); var icon = this.options.showButtonIcons ? this.options.cardView ? this.options.icons.toggleOn : this.options.icons.toggleOff : ''; - var text = this.options.showButtonText ? this.options.cardView ? this.options.formatToggleOff() : this.options.formatToggleOn() : ''; - this.$toolbar.find('button[name="toggle"]').html("".concat(Utils.sprintf(this.constants.html.icon, this.options.iconsPrefix, icon), " ").concat(text)).attr('aria-label', text).attr('title', text); + var text = this.options.cardView ? this.options.formatToggleOff() : this.options.formatToggleOn(); + this.$toolbar.find('button[name="toggle"]').html("".concat(Utils.sprintf(this.constants.html.icon, this.options.iconsPrefix, icon), " ").concat(this.options.showButtonText ? text : '')).attr('aria-label', text).attr(this.options.buttonsAttributeTitle, text); this.initBody(); this.trigger('toggle', this.options.cardView); } @@ -4715,7 +8781,7 @@ if (options.unit === 'rows') { scrollTo = 0; this.$body.find("> tr:lt(".concat(options.value, ")")).each(function (i, el) { - scrollTo += $(el).outerHeight(true); + scrollTo += $$q(el).outerHeight(true); }); } this.$tableBody.scrollTop(scrollTo); @@ -4817,7 +8883,7 @@ value: function expandAllRows() { var trs = this.$body.find('> tr[data-index][data-has-detail-view]'); for (var i = 0; i < trs.length; i++) { - this.expandRow($(trs[i]).data('index')); + this.expandRow($$q(trs[i]).data('index')); } } }, { @@ -4825,7 +8891,7 @@ value: function collapseAllRows() { var trs = this.$body.find('> tr[data-index][data-has-detail-view]'); for (var i = 0; i < trs.length; i++) { - this.collapseRow($(trs[i]).data('index')); + this.collapseRow($$q(trs[i]).data('index')); } } }, { @@ -4837,8 +8903,8 @@ this.columns[this.fieldsColumnsIndex[params.field]].title = this.options.escape && this.options.escapeTitle ? Utils.escapeHTML(params.title) : params.title; if (this.columns[this.fieldsColumnsIndex[params.field]].visible) { this.$header.find('th[data-field]').each(function (i, el) { - if ($(el).data('field') === params.field) { - $($(el).find('.th-inner')[0]).html(params.title); + if ($$q(el).data('field') === params.field) { + $$q($$q(el).find('.th-inner')[0]).html(params.title); return false; } }); @@ -4874,14 +8940,14 @@ // BOOTSTRAP TABLE PLUGIN DEFINITION // ======================= - $.BootstrapTable = BootstrapTable; - $.fn.bootstrapTable = function (option) { + $$q.BootstrapTable = BootstrapTable; + $$q.fn.bootstrapTable = function (option) { for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key5 = 1; _key5 < _len2; _key5++) { args[_key5 - 1] = arguments[_key5]; } var value; this.each(function (i, el) { - var data = $(el).data('bootstrap.table'); + var data = $$q(el).data('bootstrap.table'); if (typeof option === 'string') { var _data2; if (!Constants.METHODS.includes(option)) { @@ -4892,7 +8958,7 @@ } value = (_data2 = data)[option].apply(_data2, args); if (option === 'destroy') { - $(el).removeData('bootstrap.table'); + $$q(el).removeData('bootstrap.table'); } return; } @@ -4900,28 +8966,28 @@ console.warn('You cannot initialize the table more than once!'); return; } - var options = Utils.extend(true, {}, BootstrapTable.DEFAULTS, $(el).data(), _typeof(option) === 'object' && option); - data = new $.BootstrapTable(el, options); - $(el).data('bootstrap.table', data); + var options = Utils.extend(true, {}, BootstrapTable.DEFAULTS, $$q(el).data(), _typeof(option) === 'object' && option); + data = new $$q.BootstrapTable(el, options); + $$q(el).data('bootstrap.table', data); data.init(); }); return typeof value === 'undefined' ? this : value; }; - $.fn.bootstrapTable.Constructor = BootstrapTable; - $.fn.bootstrapTable.theme = Constants.THEME; - $.fn.bootstrapTable.VERSION = Constants.VERSION; - $.fn.bootstrapTable.defaults = BootstrapTable.DEFAULTS; - $.fn.bootstrapTable.columnDefaults = BootstrapTable.COLUMN_DEFAULTS; - $.fn.bootstrapTable.events = BootstrapTable.EVENTS; - $.fn.bootstrapTable.locales = BootstrapTable.LOCALES; - $.fn.bootstrapTable.methods = BootstrapTable.METHODS; - $.fn.bootstrapTable.utils = Utils; + $$q.fn.bootstrapTable.Constructor = BootstrapTable; + $$q.fn.bootstrapTable.theme = Constants.THEME; + $$q.fn.bootstrapTable.VERSION = Constants.VERSION; + $$q.fn.bootstrapTable.defaults = BootstrapTable.DEFAULTS; + $$q.fn.bootstrapTable.columnDefaults = BootstrapTable.COLUMN_DEFAULTS; + $$q.fn.bootstrapTable.events = BootstrapTable.EVENTS; + $$q.fn.bootstrapTable.locales = BootstrapTable.LOCALES; + $$q.fn.bootstrapTable.methods = BootstrapTable.METHODS; + $$q.fn.bootstrapTable.utils = Utils; // BOOTSTRAP TABLE INIT // ======================= - $(function () { - $('[data-toggle="table"]').bootstrapTable(); + $$q(function () { + $$q('[data-toggle="table"]').bootstrapTable(); }); return BootstrapTable; @@ -4929,10 +8995,10 @@ })); (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('core-js/modules/es.array.concat.js'), require('core-js/modules/es.array.includes.js'), require('core-js/modules/es.object.assign.js'), require('core-js/modules/es.object.to-string.js'), require('core-js/modules/es.string.includes.js'), require('core-js/modules/web.dom-collections.for-each.js'), require('jquery')) : - typeof define === 'function' && define.amd ? define(['core-js/modules/es.array.concat.js', 'core-js/modules/es.array.includes.js', 'core-js/modules/es.object.assign.js', 'core-js/modules/es.object.to-string.js', 'core-js/modules/es.string.includes.js', 'core-js/modules/web.dom-collections.for-each.js', 'jquery'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(null, null, null, null, null, null, global.jQuery)); -})(this, (function (es_array_concat_js, es_array_includes_js, es_object_assign_js, es_object_toString_js, es_string_includes_js, web_domCollections_forEach_js, $) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) : + typeof define === 'function' && define.amd ? define(['jquery'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jQuery)); +})(this, (function ($$4) { 'use strict'; function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); @@ -5007,7 +9073,7 @@ if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { - var i = e.call(t, r ); + var i = e.call(t, r); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } @@ -5018,6 +9084,1736 @@ return "symbol" == typeof i ? i : i + ""; } + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + var check = function (it) { + return it && it.Math === Math && it; + }; + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global$b = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + var objectGetOwnPropertyDescriptor = {}; + + var fails$e = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + + var fails$d = fails$e; + + // Detect IE8's incomplete defineProperty implementation + var descriptors = !fails$d(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; + }); + + var fails$c = fails$e; + + var functionBindNative = !fails$c(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); + }); + + var NATIVE_BIND$2 = functionBindNative; + + var call$5 = Function.prototype.call; + + var functionCall = NATIVE_BIND$2 ? call$5.bind(call$5) : function () { + return call$5.apply(call$5, arguments); + }; + + var objectPropertyIsEnumerable = {}; + + var $propertyIsEnumerable = {}.propertyIsEnumerable; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + + // Nashorn ~ JDK8 bug + var NASHORN_BUG = getOwnPropertyDescriptor$1 && !$propertyIsEnumerable.call({ 1: 2 }, 1); + + // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable + objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$1(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable; + + var createPropertyDescriptor$3 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + var NATIVE_BIND$1 = functionBindNative; + + var FunctionPrototype$1 = Function.prototype; + var call$4 = FunctionPrototype$1.call; + var uncurryThisWithBind = NATIVE_BIND$1 && FunctionPrototype$1.bind.bind(call$4, call$4); + + var functionUncurryThis = NATIVE_BIND$1 ? uncurryThisWithBind : function (fn) { + return function () { + return call$4.apply(fn, arguments); + }; + }; + + var uncurryThis$e = functionUncurryThis; + + var toString$4 = uncurryThis$e({}.toString); + var stringSlice$1 = uncurryThis$e(''.slice); + + var classofRaw$2 = function (it) { + return stringSlice$1(toString$4(it), 8, -1); + }; + + var uncurryThis$d = functionUncurryThis; + var fails$b = fails$e; + var classof$6 = classofRaw$2; + + var $Object$3 = Object; + var split = uncurryThis$d(''.split); + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var indexedObject = fails$b(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$3('z').propertyIsEnumerable(0); + }) ? function (it) { + return classof$6(it) === 'String' ? split(it, '') : $Object$3(it); + } : $Object$3; + + // we can't use just `it == null` since of `document.all` special case + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec + var isNullOrUndefined$2 = function (it) { + return it === null || it === undefined; + }; + + var isNullOrUndefined$1 = isNullOrUndefined$2; + + var $TypeError$7 = TypeError; + + // `RequireObjectCoercible` abstract operation + // https://tc39.es/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible$3 = function (it) { + if (isNullOrUndefined$1(it)) throw new $TypeError$7("Can't call method on " + it); + return it; + }; + + // toObject with fallback for non-array-like ES3 strings + var IndexedObject$2 = indexedObject; + var requireObjectCoercible$2 = requireObjectCoercible$3; + + var toIndexedObject$4 = function (it) { + return IndexedObject$2(requireObjectCoercible$2(it)); + }; + + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + var documentAll = typeof document == 'object' && document.all; + + // `IsCallable` abstract operation + // https://tc39.es/ecma262/#sec-iscallable + // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing + var isCallable$c = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; + } : function (argument) { + return typeof argument == 'function'; + }; + + var isCallable$b = isCallable$c; + + var isObject$8 = function (it) { + return typeof it == 'object' ? it !== null : isCallable$b(it); + }; + + var global$a = global$b; + var isCallable$a = isCallable$c; + + var aFunction = function (argument) { + return isCallable$a(argument) ? argument : undefined; + }; + + var getBuiltIn$4 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$a[namespace]) : global$a[namespace] && global$a[namespace][method]; + }; + + var uncurryThis$c = functionUncurryThis; + + var objectIsPrototypeOf = uncurryThis$c({}.isPrototypeOf); + + var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + var global$9 = global$b; + var userAgent = engineUserAgent; + + var process = global$9.process; + var Deno = global$9.Deno; + var versions = process && process.versions || Deno && Deno.version; + var v8 = versions && versions.v8; + var match, version; + + if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + + // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` + // so check `userAgent` even if `.v8` exists, but 0 + if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } + } + + var engineV8Version = version; + + /* eslint-disable es/no-symbol -- required for testing */ + var V8_VERSION$2 = engineV8Version; + var fails$a = fails$e; + var global$8 = global$b; + + var $String$4 = global$8.String; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$a(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$4(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$2 && V8_VERSION$2 < 41; + }); + + /* eslint-disable es/no-symbol -- required for testing */ + var NATIVE_SYMBOL$1 = symbolConstructorDetection; + + var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + var getBuiltIn$3 = getBuiltIn$4; + var isCallable$9 = isCallable$c; + var isPrototypeOf = objectIsPrototypeOf; + var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + + var $Object$2 = Object; + + var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + var $Symbol = getBuiltIn$3('Symbol'); + return isCallable$9($Symbol) && isPrototypeOf($Symbol.prototype, $Object$2(it)); + }; + + var $String$3 = String; + + var tryToString$1 = function (argument) { + try { + return $String$3(argument); + } catch (error) { + return 'Object'; + } + }; + + var isCallable$8 = isCallable$c; + var tryToString = tryToString$1; + + var $TypeError$6 = TypeError; + + // `Assert: IsCallable(argument) is true` + var aCallable$2 = function (argument) { + if (isCallable$8(argument)) return argument; + throw new $TypeError$6(tryToString(argument) + ' is not a function'); + }; + + var aCallable$1 = aCallable$2; + var isNullOrUndefined = isNullOrUndefined$2; + + // `GetMethod` abstract operation + // https://tc39.es/ecma262/#sec-getmethod + var getMethod$1 = function (V, P) { + var func = V[P]; + return isNullOrUndefined(func) ? undefined : aCallable$1(func); + }; + + var call$3 = functionCall; + var isCallable$7 = isCallable$c; + var isObject$7 = isObject$8; + + var $TypeError$5 = TypeError; + + // `OrdinaryToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-ordinarytoprimitive + var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$7(fn = input.toString) && !isObject$7(val = call$3(fn, input))) return val; + if (isCallable$7(fn = input.valueOf) && !isObject$7(val = call$3(fn, input))) return val; + if (pref !== 'string' && isCallable$7(fn = input.toString) && !isObject$7(val = call$3(fn, input))) return val; + throw new $TypeError$5("Can't convert object to primitive value"); + }; + + var sharedStore = {exports: {}}; + + var global$7 = global$b; + + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$3 = Object.defineProperty; + + var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$3(global$7, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$7[key] = value; + } return value; + }; + + var globalThis$1 = global$b; + var defineGlobalProperty$2 = defineGlobalProperty$3; + + var SHARED = '__core-js_shared__'; + var store$3 = sharedStore.exports = globalThis$1[SHARED] || defineGlobalProperty$2(SHARED, {}); + + (store$3.versions || (store$3.versions = [])).push({ + version: '3.37.1', + mode: 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', + source: 'https://github.com/zloirock/core-js' + }); + + var sharedStoreExports = sharedStore.exports; + + var store$2 = sharedStoreExports; + + var shared$3 = function (key, value) { + return store$2[key] || (store$2[key] = value || {}); + }; + + var requireObjectCoercible$1 = requireObjectCoercible$3; + + var $Object$1 = Object; + + // `ToObject` abstract operation + // https://tc39.es/ecma262/#sec-toobject + var toObject$4 = function (argument) { + return $Object$1(requireObjectCoercible$1(argument)); + }; + + var uncurryThis$b = functionUncurryThis; + var toObject$3 = toObject$4; + + var hasOwnProperty = uncurryThis$b({}.hasOwnProperty); + + // `HasOwnProperty` abstract operation + // https://tc39.es/ecma262/#sec-hasownproperty + // eslint-disable-next-line es/no-object-hasown -- safe + var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$3(it), key); + }; + + var uncurryThis$a = functionUncurryThis; + + var id = 0; + var postfix = Math.random(); + var toString$3 = uncurryThis$a(1.0.toString); + + var uid$2 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$3(++id + postfix, 36); + }; + + var global$6 = global$b; + var shared$2 = shared$3; + var hasOwn$6 = hasOwnProperty_1; + var uid$1 = uid$2; + var NATIVE_SYMBOL = symbolConstructorDetection; + var USE_SYMBOL_AS_UID = useSymbolAsUid; + + var Symbol$1 = global$6.Symbol; + var WellKnownSymbolsStore = shared$2('wks'); + var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1['for'] || Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1; + + var wellKnownSymbol$9 = function (name) { + if (!hasOwn$6(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$6(Symbol$1, name) + ? Symbol$1[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; + }; + + var call$2 = functionCall; + var isObject$6 = isObject$8; + var isSymbol$1 = isSymbol$2; + var getMethod = getMethod$1; + var ordinaryToPrimitive = ordinaryToPrimitive$1; + var wellKnownSymbol$8 = wellKnownSymbol$9; + + var $TypeError$4 = TypeError; + var TO_PRIMITIVE = wellKnownSymbol$8('toPrimitive'); + + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + var toPrimitive$1 = function (input, pref) { + if (!isObject$6(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$2(exoticToPrim, input, pref); + if (!isObject$6(result) || isSymbol$1(result)) return result; + throw new $TypeError$4("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); + }; + + var toPrimitive = toPrimitive$1; + var isSymbol = isSymbol$2; + + // `ToPropertyKey` abstract operation + // https://tc39.es/ecma262/#sec-topropertykey + var toPropertyKey$2 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; + }; + + var global$5 = global$b; + var isObject$5 = isObject$8; + + var document$1 = global$5.document; + // typeof document.createElement is 'object' in old IE + var EXISTS$1 = isObject$5(document$1) && isObject$5(document$1.createElement); + + var documentCreateElement$2 = function (it) { + return EXISTS$1 ? document$1.createElement(it) : {}; + }; + + var DESCRIPTORS$9 = descriptors; + var fails$9 = fails$e; + var createElement = documentCreateElement$2; + + // Thanks to IE8 for its funny defineProperty + var ie8DomDefine = !DESCRIPTORS$9 && !fails$9(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a !== 7; + }); + + var DESCRIPTORS$8 = descriptors; + var call$1 = functionCall; + var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; + var createPropertyDescriptor$2 = createPropertyDescriptor$3; + var toIndexedObject$3 = toIndexedObject$4; + var toPropertyKey$1 = toPropertyKey$2; + var hasOwn$5 = hasOwnProperty_1; + var IE8_DOM_DEFINE$1 = ie8DomDefine; + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor + objectGetOwnPropertyDescriptor.f = DESCRIPTORS$8 ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$3(O); + P = toPropertyKey$1(P); + if (IE8_DOM_DEFINE$1) try { + return $getOwnPropertyDescriptor$1(O, P); + } catch (error) { /* empty */ } + if (hasOwn$5(O, P)) return createPropertyDescriptor$2(!call$1(propertyIsEnumerableModule$1.f, O, P), O[P]); + }; + + var objectDefineProperty = {}; + + var DESCRIPTORS$7 = descriptors; + var fails$8 = fails$e; + + // V8 ~ Chrome 36- + // https://bugs.chromium.org/p/v8/issues/detail?id=3334 + var v8PrototypeDefineBug = DESCRIPTORS$7 && fails$8(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; + }); + + var isObject$4 = isObject$8; + + var $String$2 = String; + var $TypeError$3 = TypeError; + + // `Assert: Type(argument) is Object` + var anObject$4 = function (argument) { + if (isObject$4(argument)) return argument; + throw new $TypeError$3($String$2(argument) + ' is not an object'); + }; + + var DESCRIPTORS$6 = descriptors; + var IE8_DOM_DEFINE = ie8DomDefine; + var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; + var anObject$3 = anObject$4; + var toPropertyKey = toPropertyKey$2; + + var $TypeError$2 = TypeError; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var $defineProperty = Object.defineProperty; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var ENUMERABLE = 'enumerable'; + var CONFIGURABLE$1 = 'configurable'; + var WRITABLE = 'writable'; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + objectDefineProperty.f = DESCRIPTORS$6 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$3(O); + P = toPropertyKey(P); + anObject$3(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); + } : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$3(O); + P = toPropertyKey(P); + anObject$3(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError$2('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + + var DESCRIPTORS$5 = descriptors; + var definePropertyModule$4 = objectDefineProperty; + var createPropertyDescriptor$1 = createPropertyDescriptor$3; + + var createNonEnumerableProperty$3 = DESCRIPTORS$5 ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$1(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + var makeBuiltIn$2 = {exports: {}}; + + var DESCRIPTORS$4 = descriptors; + var hasOwn$4 = hasOwnProperty_1; + + var FunctionPrototype = Function.prototype; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getDescriptor = DESCRIPTORS$4 && Object.getOwnPropertyDescriptor; + + var EXISTS = hasOwn$4(FunctionPrototype, 'name'); + // additional protection from minified / mangled / dropped function names + var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; + var CONFIGURABLE = EXISTS && (!DESCRIPTORS$4 || (DESCRIPTORS$4 && getDescriptor(FunctionPrototype, 'name').configurable)); + + var functionName = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE + }; + + var uncurryThis$9 = functionUncurryThis; + var isCallable$6 = isCallable$c; + var store$1 = sharedStoreExports; + + var functionToString = uncurryThis$9(Function.toString); + + // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper + if (!isCallable$6(store$1.inspectSource)) { + store$1.inspectSource = function (it) { + return functionToString(it); + }; + } + + var inspectSource$2 = store$1.inspectSource; + + var global$4 = global$b; + var isCallable$5 = isCallable$c; + + var WeakMap$1 = global$4.WeakMap; + + var weakMapBasicDetection = isCallable$5(WeakMap$1) && /native code/.test(String(WeakMap$1)); + + var shared$1 = shared$3; + var uid = uid$2; + + var keys = shared$1('keys'); + + var sharedKey$2 = function (key) { + return keys[key] || (keys[key] = uid(key)); + }; + + var hiddenKeys$4 = {}; + + var NATIVE_WEAK_MAP = weakMapBasicDetection; + var global$3 = global$b; + var isObject$3 = isObject$8; + var createNonEnumerableProperty$2 = createNonEnumerableProperty$3; + var hasOwn$3 = hasOwnProperty_1; + var shared = sharedStoreExports; + var sharedKey$1 = sharedKey$2; + var hiddenKeys$3 = hiddenKeys$4; + + var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; + var TypeError$1 = global$3.TypeError; + var WeakMap = global$3.WeakMap; + var set, get, has; + + var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); + }; + + var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$3(it) || (state = get(it)).type !== TYPE) { + throw new TypeError$1('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; + }; + + if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set = function (it, metadata) { + if (store.has(it)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; + } else { + var STATE = sharedKey$1('state'); + hiddenKeys$3[STATE] = true; + set = function (it, metadata) { + if (hasOwn$3(it, STATE)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$2(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$3(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$3(it, STATE); + }; + } + + var internalState = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor + }; + + var uncurryThis$8 = functionUncurryThis; + var fails$7 = fails$e; + var isCallable$4 = isCallable$c; + var hasOwn$2 = hasOwnProperty_1; + var DESCRIPTORS$3 = descriptors; + var CONFIGURABLE_FUNCTION_NAME = functionName.CONFIGURABLE; + var inspectSource$1 = inspectSource$2; + var InternalStateModule = internalState; + + var enforceInternalState = InternalStateModule.enforce; + var getInternalState = InternalStateModule.get; + var $String$1 = String; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$2 = Object.defineProperty; + var stringSlice = uncurryThis$8(''.slice); + var replace = uncurryThis$8(''.replace); + var join = uncurryThis$8([].join); + + var CONFIGURABLE_LENGTH = DESCRIPTORS$3 && !fails$7(function () { + return defineProperty$2(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; + }); + + var TEMPLATE = String(String).split('String'); + + var makeBuiltIn$1 = makeBuiltIn$2.exports = function (value, name, options) { + if (stringSlice($String$1(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String$1(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$2(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS$3) defineProperty$2(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$2(options, 'arity') && value.length !== options.arity) { + defineProperty$2(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$2(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$3) defineProperty$2(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$2(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; + }; + + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + // eslint-disable-next-line no-extend-native -- required + Function.prototype.toString = makeBuiltIn$1(function toString() { + return isCallable$4(this) && getInternalState(this).source || inspectSource$1(this); + }, 'toString'); + + var makeBuiltInExports = makeBuiltIn$2.exports; + + var isCallable$3 = isCallable$c; + var definePropertyModule$3 = objectDefineProperty; + var makeBuiltIn = makeBuiltInExports; + var defineGlobalProperty$1 = defineGlobalProperty$3; + + var defineBuiltIn$2 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$3(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; + }; + + var objectGetOwnPropertyNames = {}; + + var ceil = Math.ceil; + var floor = Math.floor; + + // `Math.trunc` method + // https://tc39.es/ecma262/#sec-math.trunc + // eslint-disable-next-line es/no-math-trunc -- safe + var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); + }; + + var trunc = mathTrunc; + + // `ToIntegerOrInfinity` abstract operation + // https://tc39.es/ecma262/#sec-tointegerorinfinity + var toIntegerOrInfinity$2 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); + }; + + var toIntegerOrInfinity$1 = toIntegerOrInfinity$2; + + var max = Math.max; + var min$1 = Math.min; + + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex$1 = function (index, length) { + var integer = toIntegerOrInfinity$1(index); + return integer < 0 ? max(integer + length, 0) : min$1(integer, length); + }; + + var toIntegerOrInfinity = toIntegerOrInfinity$2; + + var min = Math.min; + + // `ToLength` abstract operation + // https://tc39.es/ecma262/#sec-tolength + var toLength$1 = function (argument) { + var len = toIntegerOrInfinity(argument); + return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; + + var toLength = toLength$1; + + // `LengthOfArrayLike` abstract operation + // https://tc39.es/ecma262/#sec-lengthofarraylike + var lengthOfArrayLike$3 = function (obj) { + return toLength(obj.length); + }; + + var toIndexedObject$2 = toIndexedObject$4; + var toAbsoluteIndex = toAbsoluteIndex$1; + var lengthOfArrayLike$2 = lengthOfArrayLike$3; + + // `Array.prototype.{ indexOf, includes }` methods implementation + var createMethod$1 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$2($this); + var length = lengthOfArrayLike$2(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + + var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$1(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$1(false) + }; + + var uncurryThis$7 = functionUncurryThis; + var hasOwn$1 = hasOwnProperty_1; + var toIndexedObject$1 = toIndexedObject$4; + var indexOf = arrayIncludes.indexOf; + var hiddenKeys$2 = hiddenKeys$4; + + var push$1 = uncurryThis$7([].push); + + var objectKeysInternal = function (object, names) { + var O = toIndexedObject$1(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$1(hiddenKeys$2, key) && hasOwn$1(O, key) && push$1(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$1(O, key = names[i++])) { + ~indexOf(result, key) || push$1(result, key); + } + return result; + }; + + // IE8- don't enum bug keys + var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + + var internalObjectKeys$1 = objectKeysInternal; + var enumBugKeys$2 = enumBugKeys$3; + + var hiddenKeys$1 = enumBugKeys$2.concat('length', 'prototype'); + + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + // eslint-disable-next-line es/no-object-getownpropertynames -- safe + objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$1); + }; + + var objectGetOwnPropertySymbols = {}; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe + objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + + var getBuiltIn$2 = getBuiltIn$4; + var uncurryThis$6 = functionUncurryThis; + var getOwnPropertyNamesModule = objectGetOwnPropertyNames; + var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; + var anObject$2 = anObject$4; + + var concat$1 = uncurryThis$6([].concat); + + // all object keys, includes non-enumerable and symbols + var ownKeys$1 = getBuiltIn$2('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject$2(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys; + }; + + var hasOwn = hasOwnProperty_1; + var ownKeys = ownKeys$1; + var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; + var definePropertyModule$2 = objectDefineProperty; + + var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; + + var fails$6 = fails$e; + var isCallable$2 = isCallable$c; + + var replacement = /#|\.prototype\./; + + var isForced$1 = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable$2(detection) ? fails$6(detection) + : !!detection; + }; + + var normalize = isForced$1.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; + + var data = isForced$1.data = {}; + var NATIVE = isForced$1.NATIVE = 'N'; + var POLYFILL = isForced$1.POLYFILL = 'P'; + + var isForced_1 = isForced$1; + + var global$2 = global$b; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + var createNonEnumerableProperty$1 = createNonEnumerableProperty$3; + var defineBuiltIn$1 = defineBuiltIn$2; + var defineGlobalProperty = defineGlobalProperty$3; + var copyConstructorProperties = copyConstructorProperties$1; + var isForced = isForced_1; + + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key + */ + var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$2; + } else if (STATIC) { + target = global$2[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global$2[TARGET] && global$2[TARGET].prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty$1(sourceProperty, 'sham', true); + } + defineBuiltIn$1(target, key, sourceProperty, options); + } + }; + + var classof$5 = classofRaw$2; + + // `IsArray` abstract operation + // https://tc39.es/ecma262/#sec-isarray + // eslint-disable-next-line es/no-array-isarray -- safe + var isArray$2 = Array.isArray || function isArray(argument) { + return classof$5(argument) === 'Array'; + }; + + var $TypeError$1 = TypeError; + var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + + var doesNotExceedSafeInteger$1 = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError$1('Maximum allowed index exceeded'); + return it; + }; + + var DESCRIPTORS$2 = descriptors; + var definePropertyModule$1 = objectDefineProperty; + var createPropertyDescriptor = createPropertyDescriptor$3; + + var createProperty$1 = function (object, key, value) { + if (DESCRIPTORS$2) definePropertyModule$1.f(object, key, createPropertyDescriptor(0, value)); + else object[key] = value; + }; + + var wellKnownSymbol$7 = wellKnownSymbol$9; + + var TO_STRING_TAG$1 = wellKnownSymbol$7('toStringTag'); + var test = {}; + + test[TO_STRING_TAG$1] = 'z'; + + var toStringTagSupport = String(test) === '[object z]'; + + var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; + var isCallable$1 = isCallable$c; + var classofRaw$1 = classofRaw$2; + var wellKnownSymbol$6 = wellKnownSymbol$9; + + var TO_STRING_TAG = wellKnownSymbol$6('toStringTag'); + var $Object = Object; + + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) === 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; + + // getting tag from ES6+ `Object.prototype.toString` + var classof$4 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) === 'Object' && isCallable$1(O.callee) ? 'Arguments' : result; + }; + + var uncurryThis$5 = functionUncurryThis; + var fails$5 = fails$e; + var isCallable = isCallable$c; + var classof$3 = classof$4; + var getBuiltIn$1 = getBuiltIn$4; + var inspectSource = inspectSource$2; + + var noop = function () { /* empty */ }; + var construct = getBuiltIn$1('Reflect', 'construct'); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec = uncurryThis$5(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.test(noop); + + var isConstructorModern = function isConstructor(argument) { + if (!isCallable(argument)) return false; + try { + construct(noop, [], argument); + return true; + } catch (error) { + return false; + } + }; + + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable(argument)) return false; + switch (classof$3(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } + }; + + isConstructorLegacy.sham = true; + + // `IsConstructor` abstract operation + // https://tc39.es/ecma262/#sec-isconstructor + var isConstructor$1 = !construct || fails$5(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; + }) ? isConstructorLegacy : isConstructorModern; + + var isArray$1 = isArray$2; + var isConstructor = isConstructor$1; + var isObject$2 = isObject$8; + var wellKnownSymbol$5 = wellKnownSymbol$9; + + var SPECIES$1 = wellKnownSymbol$5('species'); + var $Array = Array; + + // a part of `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray$1(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === $Array || isArray$1(C.prototype))) C = undefined; + else if (isObject$2(C)) { + C = C[SPECIES$1]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array : C; + }; + + var arraySpeciesConstructor = arraySpeciesConstructor$1; + + // `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesCreate$2 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; + + var fails$4 = fails$e; + var wellKnownSymbol$4 = wellKnownSymbol$9; + var V8_VERSION$1 = engineV8Version; + + var SPECIES = wellKnownSymbol$4('species'); + + var arrayMethodHasSpeciesSupport$1 = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION$1 >= 51 || !fails$4(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); + }; + + var $$3 = _export; + var fails$3 = fails$e; + var isArray = isArray$2; + var isObject$1 = isObject$8; + var toObject$2 = toObject$4; + var lengthOfArrayLike$1 = lengthOfArrayLike$3; + var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1; + var createProperty = createProperty$1; + var arraySpeciesCreate$1 = arraySpeciesCreate$2; + var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$1; + var wellKnownSymbol$3 = wellKnownSymbol$9; + var V8_VERSION = engineV8Version; + + var IS_CONCAT_SPREADABLE = wellKnownSymbol$3('isConcatSpreadable'); + + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/679 + var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails$3(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; + }); + + var isConcatSpreadable = function (O) { + if (!isObject$1(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); + }; + + var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat'); + + // `Array.prototype.concat` method + // https://tc39.es/ecma262/#sec-array.prototype.concat + // with adding support of @@isConcatSpreadable and @@species + $$3({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject$2(this); + var A = arraySpeciesCreate$1(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike$1(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty(A, n++, E); + } + } + A.length = n; + return A; + } + }); + + var objectDefineProperties = {}; + + var internalObjectKeys = objectKeysInternal; + var enumBugKeys$1 = enumBugKeys$3; + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + // eslint-disable-next-line es/no-object-keys -- safe + var objectKeys$2 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); + }; + + var DESCRIPTORS$1 = descriptors; + var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; + var definePropertyModule = objectDefineProperty; + var anObject$1 = anObject$4; + var toIndexedObject = toIndexedObject$4; + var objectKeys$1 = objectKeys$2; + + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + // eslint-disable-next-line es/no-object-defineproperties -- safe + objectDefineProperties.f = DESCRIPTORS$1 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$1(O); + var props = toIndexedObject(Properties); + var keys = objectKeys$1(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; + }; + + var getBuiltIn = getBuiltIn$4; + + var html$1 = getBuiltIn('document', 'documentElement'); + + /* global ActiveXObject -- old IE, WSH */ + var anObject = anObject$4; + var definePropertiesModule = objectDefineProperties; + var enumBugKeys = enumBugKeys$3; + var hiddenKeys = hiddenKeys$4; + var html = html$1; + var documentCreateElement$1 = documentCreateElement$2; + var sharedKey = sharedKey$2; + + var GT = '>'; + var LT = '<'; + var PROTOTYPE = 'prototype'; + var SCRIPT = 'script'; + var IE_PROTO = sharedKey('IE_PROTO'); + + var EmptyConstructor = function () { /* empty */ }; + + var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; + }; + + // Create object with fake `null` prototype: use ActiveX Object with cleared prototype + var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; + }; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement$1('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; + }; + + // Check for document.domain and active x support + // No need to use active x approach when document.domain is not set + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + // avoid IE GC bug + var activeXDocument; + var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); + }; + + hiddenKeys[IE_PROTO] = true; + + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + // eslint-disable-next-line es/no-object-create -- safe + var objectCreate = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); + }; + + var wellKnownSymbol$2 = wellKnownSymbol$9; + var create = objectCreate; + var defineProperty$1 = objectDefineProperty.f; + + var UNSCOPABLES = wellKnownSymbol$2('unscopables'); + var ArrayPrototype = Array.prototype; + + // Array.prototype[@@unscopables] + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + if (ArrayPrototype[UNSCOPABLES] === undefined) { + defineProperty$1(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create(null) + }); + } + + // add a key to Array.prototype[@@unscopables] + var addToUnscopables$1 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; + }; + + var $$2 = _export; + var $includes = arrayIncludes.includes; + var fails$2 = fails$e; + var addToUnscopables = addToUnscopables$1; + + // FF99+ bug + var BROKEN_ON_SPARSE = fails$2(function () { + // eslint-disable-next-line es/no-array-prototype-includes -- detection + return !Array(1).includes(); + }); + + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + $$2({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables('includes'); + + var DESCRIPTORS = descriptors; + var uncurryThis$4 = functionUncurryThis; + var call = functionCall; + var fails$1 = fails$e; + var objectKeys = objectKeys$2; + var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; + var propertyIsEnumerableModule = objectPropertyIsEnumerable; + var toObject$1 = toObject$4; + var IndexedObject$1 = indexedObject; + + // eslint-disable-next-line es/no-object-assign -- safe + var $assign = Object.assign; + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + var defineProperty = Object.defineProperty; + var concat = uncurryThis$4([].concat); + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + var objectAssign = !$assign || fails$1(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { + enumerable: true, + get: function () { + defineProperty(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol('assign detection'); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject$1(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject$1(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; + } : $assign; + + var $$1 = _export; + var assign = objectAssign; + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + // eslint-disable-next-line es/no-object-assign -- required for testing + $$1({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign + }); + + var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; + var classof$2 = classof$4; + + // `Object.prototype.toString` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.tostring + var objectToString = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$2(this) + ']'; + }; + + var TO_STRING_TAG_SUPPORT = toStringTagSupport; + var defineBuiltIn = defineBuiltIn$2; + var toString$2 = objectToString; + + // `Object.prototype.toString` method + // https://tc39.es/ecma262/#sec-object.prototype.tostring + if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn(Object.prototype, 'toString', toString$2, { unsafe: true }); + } + + var isObject = isObject$8; + var classof$1 = classofRaw$2; + var wellKnownSymbol$1 = wellKnownSymbol$9; + + var MATCH$1 = wellKnownSymbol$1('match'); + + // `IsRegExp` abstract operation + // https://tc39.es/ecma262/#sec-isregexp + var isRegexp = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH$1]) !== undefined ? !!isRegExp : classof$1(it) === 'RegExp'); + }; + + var isRegExp = isRegexp; + + var $TypeError = TypeError; + + var notARegexp = function (it) { + if (isRegExp(it)) { + throw new $TypeError("The method doesn't accept regular expressions"); + } return it; + }; + + var classof = classof$4; + + var $String = String; + + var toString$1 = function (argument) { + if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); + }; + + var wellKnownSymbol = wellKnownSymbol$9; + + var MATCH = wellKnownSymbol('match'); + + var correctIsRegexpLogic = function (METHOD_NAME) { + var regexp = /./; + try { + '/./'[METHOD_NAME](regexp); + } catch (error1) { + try { + regexp[MATCH] = false; + return '/./'[METHOD_NAME](regexp); + } catch (error2) { /* empty */ } + } return false; + }; + + var $ = _export; + var uncurryThis$3 = functionUncurryThis; + var notARegExp = notARegexp; + var requireObjectCoercible = requireObjectCoercible$3; + var toString = toString$1; + var correctIsRegExpLogic = correctIsRegexpLogic; + + var stringIndexOf = uncurryThis$3(''.indexOf); + + // `String.prototype.includes` method + // https://tc39.es/ecma262/#sec-string.prototype.includes + $({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, { + includes: function includes(searchString /* , position = 0 */) { + return !!~stringIndexOf( + toString(requireObjectCoercible(this)), + toString(notARegExp(searchString)), + arguments.length > 1 ? arguments[1] : undefined + ); + } + }); + + // iterable DOM collections + // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods + var domIterables = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 + }; + + // in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` + var documentCreateElement = documentCreateElement$2; + + var classList = documentCreateElement('span').classList; + var DOMTokenListPrototype$1 = classList && classList.constructor && classList.constructor.prototype; + + var domTokenListPrototype = DOMTokenListPrototype$1 === Object.prototype ? undefined : DOMTokenListPrototype$1; + + var classofRaw = classofRaw$2; + var uncurryThis$2 = functionUncurryThis; + + var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$2(fn); + }; + + var uncurryThis$1 = functionUncurryThisClause; + var aCallable = aCallable$2; + var NATIVE_BIND = functionBindNative; + + var bind$1 = uncurryThis$1(uncurryThis$1.bind); + + // optional / simple context binding + var functionBindContext = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$1(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; + + var bind = functionBindContext; + var uncurryThis = functionUncurryThis; + var IndexedObject = indexedObject; + var toObject = toObject$4; + var lengthOfArrayLike = lengthOfArrayLike$3; + var arraySpeciesCreate = arraySpeciesCreate$2; + + var push = uncurryThis([].push); + + // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation + var createMethod = function (TYPE) { + var IS_MAP = TYPE === 1; + var IS_FILTER = TYPE === 2; + var IS_SOME = TYPE === 3; + var IS_EVERY = TYPE === 4; + var IS_FIND_INDEX = TYPE === 6; + var IS_FILTER_REJECT = TYPE === 7; + var NO_HOLES = TYPE === 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject($this); + var self = IndexedObject(O); + var length = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; + }; + + var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod(7) + }; + + var fails = fails$e; + + var arrayMethodIsStrict$1 = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); + }; + + var $forEach = arrayIteration.forEach; + var arrayMethodIsStrict = arrayMethodIsStrict$1; + + var STRICT_METHOD = arrayMethodIsStrict('forEach'); + + // `Array.prototype.forEach` method implementation + // https://tc39.es/ecma262/#sec-array.prototype.foreach + var arrayForEach = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + // eslint-disable-next-line es/no-array-prototype-foreach -- safe + } : [].forEach; + + var global$1 = global$b; + var DOMIterables = domIterables; + var DOMTokenListPrototype = domTokenListPrototype; + var forEach = arrayForEach; + var createNonEnumerableProperty = createNonEnumerableProperty$3; + + var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } + }; + + for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global$1[COLLECTION_NAME] && global$1[COLLECTION_NAME].prototype); + } + } + + handlePrototype(DOMTokenListPrototype); + /** * @author: Dennis Hernández * @update zhixin wen @@ -5037,7 +10833,7 @@ timeout = setTimeout(later, wait); }; }; - Object.assign($.fn.bootstrapTable.defaults, { + Object.assign($$4.fn.bootstrapTable.defaults, { mobileResponsive: false, minWidth: 562, minHeight: undefined, @@ -5046,7 +10842,7 @@ checkOnInit: true, columnsHidden: [] }); - $.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) { + $$4.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) { function _class() { _classCallCheck(this, _class); return _callSuper(this, _class, arguments); @@ -5069,14 +10865,14 @@ this.options.minWidth = 100; } var old = { - width: $(window).width(), - height: $(window).height() + width: $$4(window).width(), + height: $$4(window).height() }; - $(window).on('resize orientationchange', debounce(function () { + $$4(window).on('resize orientationchange', debounce(function () { // reset view if height has only changed by at least the threshold. - var width = $(window).width(); - var height = $(window).height(); - var $activeElement = $(document.activeElement); + var width = $$4(window).width(); + var height = $$4(window).height(); + var $activeElement = $$4(document.activeElement); if ($activeElement.length && ['INPUT', 'SELECT', 'TEXTAREA'].includes($activeElement.prop('nodeName'))) { return; } @@ -5089,8 +10885,8 @@ } }, 200)); if (this.options.checkOnInit) { - var width = $(window).width(); - var height = $(window).height(); + var width = $$4(window).width(); + var height = $$4(window).height(); this.changeView(width, height); old = { width: width, @@ -5147,15 +10943,15 @@ this.resetView(); } }]); - }($.BootstrapTable); + }($$4.BootstrapTable); })); (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('core-js/modules/es.array.concat.js'), require('core-js/modules/es.array.find.js'), require('core-js/modules/es.array.join.js'), require('core-js/modules/es.array.map.js'), require('core-js/modules/es.array.slice.js'), require('core-js/modules/es.object.assign.js'), require('core-js/modules/es.object.to-string.js'), require('core-js/modules/es.regexp.exec.js'), require('core-js/modules/es.string.replace.js'), require('core-js/modules/web.dom-collections.for-each.js'), require('jquery')) : - typeof define === 'function' && define.amd ? define(['core-js/modules/es.array.concat.js', 'core-js/modules/es.array.find.js', 'core-js/modules/es.array.join.js', 'core-js/modules/es.array.map.js', 'core-js/modules/es.array.slice.js', 'core-js/modules/es.object.assign.js', 'core-js/modules/es.object.to-string.js', 'core-js/modules/es.regexp.exec.js', 'core-js/modules/es.string.replace.js', 'core-js/modules/web.dom-collections.for-each.js', 'jquery'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(null, null, null, null, null, null, null, null, null, null, global.jQuery)); -})(this, (function (es_array_concat_js, es_array_find_js, es_array_join_js, es_array_map_js, es_array_slice_js, es_object_assign_js, es_object_toString_js, es_regexp_exec_js, es_string_replace_js, web_domCollections_forEach_js, $) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) : + typeof define === 'function' && define.amd ? define(['jquery'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jQuery)); +})(this, (function ($$7) { 'use strict'; function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); @@ -5186,7 +10982,7 @@ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { - if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e ) { + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var n = 0, F = function () {}; @@ -5309,12 +11105,2308 @@ } } + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + var check = function (it) { + return it && it.Math === Math && it; + }; + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global$e = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + var objectGetOwnPropertyDescriptor = {}; + + var fails$i = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + + var fails$h = fails$i; + + // Detect IE8's incomplete defineProperty implementation + var descriptors = !fails$h(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; + }); + + var fails$g = fails$i; + + var functionBindNative = !fails$g(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); + }); + + var NATIVE_BIND$3 = functionBindNative; + + var call$a = Function.prototype.call; + + var functionCall = NATIVE_BIND$3 ? call$a.bind(call$a) : function () { + return call$a.apply(call$a, arguments); + }; + + var objectPropertyIsEnumerable = {}; + + var $propertyIsEnumerable = {}.propertyIsEnumerable; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + + // Nashorn ~ JDK8 bug + var NASHORN_BUG = getOwnPropertyDescriptor$1 && !$propertyIsEnumerable.call({ 1: 2 }, 1); + + // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable + objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$1(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable; + + var createPropertyDescriptor$3 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + var NATIVE_BIND$2 = functionBindNative; + + var FunctionPrototype$2 = Function.prototype; + var call$9 = FunctionPrototype$2.call; + var uncurryThisWithBind = NATIVE_BIND$2 && FunctionPrototype$2.bind.bind(call$9, call$9); + + var functionUncurryThis = NATIVE_BIND$2 ? uncurryThisWithBind : function (fn) { + return function () { + return call$9.apply(fn, arguments); + }; + }; + + var uncurryThis$j = functionUncurryThis; + + var toString$6 = uncurryThis$j({}.toString); + var stringSlice$5 = uncurryThis$j(''.slice); + + var classofRaw$2 = function (it) { + return stringSlice$5(toString$6(it), 8, -1); + }; + + var uncurryThis$i = functionUncurryThis; + var fails$f = fails$i; + var classof$6 = classofRaw$2; + + var $Object$3 = Object; + var split = uncurryThis$i(''.split); + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var indexedObject = fails$f(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$3('z').propertyIsEnumerable(0); + }) ? function (it) { + return classof$6(it) === 'String' ? split(it, '') : $Object$3(it); + } : $Object$3; + + // we can't use just `it == null` since of `document.all` special case + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec + var isNullOrUndefined$3 = function (it) { + return it === null || it === undefined; + }; + + var isNullOrUndefined$2 = isNullOrUndefined$3; + + var $TypeError$7 = TypeError; + + // `RequireObjectCoercible` abstract operation + // https://tc39.es/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible$4 = function (it) { + if (isNullOrUndefined$2(it)) throw new $TypeError$7("Can't call method on " + it); + return it; + }; + + // toObject with fallback for non-array-like ES3 strings + var IndexedObject$3 = indexedObject; + var requireObjectCoercible$3 = requireObjectCoercible$4; + + var toIndexedObject$6 = function (it) { + return IndexedObject$3(requireObjectCoercible$3(it)); + }; + + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + var documentAll = typeof document == 'object' && document.all; + + // `IsCallable` abstract operation + // https://tc39.es/ecma262/#sec-iscallable + // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing + var isCallable$e = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; + } : function (argument) { + return typeof argument == 'function'; + }; + + var isCallable$d = isCallable$e; + + var isObject$8 = function (it) { + return typeof it == 'object' ? it !== null : isCallable$d(it); + }; + + var global$d = global$e; + var isCallable$c = isCallable$e; + + var aFunction = function (argument) { + return isCallable$c(argument) ? argument : undefined; + }; + + var getBuiltIn$4 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$d[namespace]) : global$d[namespace] && global$d[namespace][method]; + }; + + var uncurryThis$h = functionUncurryThis; + + var objectIsPrototypeOf = uncurryThis$h({}.isPrototypeOf); + + var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + var global$c = global$e; + var userAgent = engineUserAgent; + + var process = global$c.process; + var Deno = global$c.Deno; + var versions = process && process.versions || Deno && Deno.version; + var v8 = versions && versions.v8; + var match, version; + + if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + + // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` + // so check `userAgent` even if `.v8` exists, but 0 + if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } + } + + var engineV8Version = version; + + /* eslint-disable es/no-symbol -- required for testing */ + var V8_VERSION$2 = engineV8Version; + var fails$e = fails$i; + var global$b = global$e; + + var $String$4 = global$b.String; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$e(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$4(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$2 && V8_VERSION$2 < 41; + }); + + /* eslint-disable es/no-symbol -- required for testing */ + var NATIVE_SYMBOL$1 = symbolConstructorDetection; + + var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + var getBuiltIn$3 = getBuiltIn$4; + var isCallable$b = isCallable$e; + var isPrototypeOf = objectIsPrototypeOf; + var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + + var $Object$2 = Object; + + var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + var $Symbol = getBuiltIn$3('Symbol'); + return isCallable$b($Symbol) && isPrototypeOf($Symbol.prototype, $Object$2(it)); + }; + + var $String$3 = String; + + var tryToString$1 = function (argument) { + try { + return $String$3(argument); + } catch (error) { + return 'Object'; + } + }; + + var isCallable$a = isCallable$e; + var tryToString = tryToString$1; + + var $TypeError$6 = TypeError; + + // `Assert: IsCallable(argument) is true` + var aCallable$2 = function (argument) { + if (isCallable$a(argument)) return argument; + throw new $TypeError$6(tryToString(argument) + ' is not a function'); + }; + + var aCallable$1 = aCallable$2; + var isNullOrUndefined$1 = isNullOrUndefined$3; + + // `GetMethod` abstract operation + // https://tc39.es/ecma262/#sec-getmethod + var getMethod$2 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$1(func) ? undefined : aCallable$1(func); + }; + + var call$8 = functionCall; + var isCallable$9 = isCallable$e; + var isObject$7 = isObject$8; + + var $TypeError$5 = TypeError; + + // `OrdinaryToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-ordinarytoprimitive + var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$9(fn = input.toString) && !isObject$7(val = call$8(fn, input))) return val; + if (isCallable$9(fn = input.valueOf) && !isObject$7(val = call$8(fn, input))) return val; + if (pref !== 'string' && isCallable$9(fn = input.toString) && !isObject$7(val = call$8(fn, input))) return val; + throw new $TypeError$5("Can't convert object to primitive value"); + }; + + var sharedStore = {exports: {}}; + + var global$a = global$e; + + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$3 = Object.defineProperty; + + var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$3(global$a, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$a[key] = value; + } return value; + }; + + var globalThis$1 = global$e; + var defineGlobalProperty$2 = defineGlobalProperty$3; + + var SHARED = '__core-js_shared__'; + var store$3 = sharedStore.exports = globalThis$1[SHARED] || defineGlobalProperty$2(SHARED, {}); + + (store$3.versions || (store$3.versions = [])).push({ + version: '3.37.1', + mode: 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', + source: 'https://github.com/zloirock/core-js' + }); + + var sharedStoreExports = sharedStore.exports; + + var store$2 = sharedStoreExports; + + var shared$4 = function (key, value) { + return store$2[key] || (store$2[key] = value || {}); + }; + + var requireObjectCoercible$2 = requireObjectCoercible$4; + + var $Object$1 = Object; + + // `ToObject` abstract operation + // https://tc39.es/ecma262/#sec-toobject + var toObject$5 = function (argument) { + return $Object$1(requireObjectCoercible$2(argument)); + }; + + var uncurryThis$g = functionUncurryThis; + var toObject$4 = toObject$5; + + var hasOwnProperty = uncurryThis$g({}.hasOwnProperty); + + // `HasOwnProperty` abstract operation + // https://tc39.es/ecma262/#sec-hasownproperty + // eslint-disable-next-line es/no-object-hasown -- safe + var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$4(it), key); + }; + + var uncurryThis$f = functionUncurryThis; + + var id = 0; + var postfix = Math.random(); + var toString$5 = uncurryThis$f(1.0.toString); + + var uid$2 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$5(++id + postfix, 36); + }; + + var global$9 = global$e; + var shared$3 = shared$4; + var hasOwn$6 = hasOwnProperty_1; + var uid$1 = uid$2; + var NATIVE_SYMBOL = symbolConstructorDetection; + var USE_SYMBOL_AS_UID = useSymbolAsUid; + + var Symbol$1 = global$9.Symbol; + var WellKnownSymbolsStore = shared$3('wks'); + var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1['for'] || Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1; + + var wellKnownSymbol$a = function (name) { + if (!hasOwn$6(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$6(Symbol$1, name) + ? Symbol$1[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; + }; + + var call$7 = functionCall; + var isObject$6 = isObject$8; + var isSymbol$1 = isSymbol$2; + var getMethod$1 = getMethod$2; + var ordinaryToPrimitive = ordinaryToPrimitive$1; + var wellKnownSymbol$9 = wellKnownSymbol$a; + + var $TypeError$4 = TypeError; + var TO_PRIMITIVE = wellKnownSymbol$9('toPrimitive'); + + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + var toPrimitive$1 = function (input, pref) { + if (!isObject$6(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod$1(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$7(exoticToPrim, input, pref); + if (!isObject$6(result) || isSymbol$1(result)) return result; + throw new $TypeError$4("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); + }; + + var toPrimitive = toPrimitive$1; + var isSymbol = isSymbol$2; + + // `ToPropertyKey` abstract operation + // https://tc39.es/ecma262/#sec-topropertykey + var toPropertyKey$2 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; + }; + + var global$8 = global$e; + var isObject$5 = isObject$8; + + var document$1 = global$8.document; + // typeof document.createElement is 'object' in old IE + var EXISTS$1 = isObject$5(document$1) && isObject$5(document$1.createElement); + + var documentCreateElement$2 = function (it) { + return EXISTS$1 ? document$1.createElement(it) : {}; + }; + + var DESCRIPTORS$9 = descriptors; + var fails$d = fails$i; + var createElement = documentCreateElement$2; + + // Thanks to IE8 for its funny defineProperty + var ie8DomDefine = !DESCRIPTORS$9 && !fails$d(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a !== 7; + }); + + var DESCRIPTORS$8 = descriptors; + var call$6 = functionCall; + var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; + var createPropertyDescriptor$2 = createPropertyDescriptor$3; + var toIndexedObject$5 = toIndexedObject$6; + var toPropertyKey$1 = toPropertyKey$2; + var hasOwn$5 = hasOwnProperty_1; + var IE8_DOM_DEFINE$1 = ie8DomDefine; + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor + objectGetOwnPropertyDescriptor.f = DESCRIPTORS$8 ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$5(O); + P = toPropertyKey$1(P); + if (IE8_DOM_DEFINE$1) try { + return $getOwnPropertyDescriptor$1(O, P); + } catch (error) { /* empty */ } + if (hasOwn$5(O, P)) return createPropertyDescriptor$2(!call$6(propertyIsEnumerableModule$1.f, O, P), O[P]); + }; + + var objectDefineProperty = {}; + + var DESCRIPTORS$7 = descriptors; + var fails$c = fails$i; + + // V8 ~ Chrome 36- + // https://bugs.chromium.org/p/v8/issues/detail?id=3334 + var v8PrototypeDefineBug = DESCRIPTORS$7 && fails$c(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; + }); + + var isObject$4 = isObject$8; + + var $String$2 = String; + var $TypeError$3 = TypeError; + + // `Assert: Type(argument) is Object` + var anObject$7 = function (argument) { + if (isObject$4(argument)) return argument; + throw new $TypeError$3($String$2(argument) + ' is not an object'); + }; + + var DESCRIPTORS$6 = descriptors; + var IE8_DOM_DEFINE = ie8DomDefine; + var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; + var anObject$6 = anObject$7; + var toPropertyKey = toPropertyKey$2; + + var $TypeError$2 = TypeError; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var $defineProperty = Object.defineProperty; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var ENUMERABLE = 'enumerable'; + var CONFIGURABLE$1 = 'configurable'; + var WRITABLE = 'writable'; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + objectDefineProperty.f = DESCRIPTORS$6 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$6(O); + P = toPropertyKey(P); + anObject$6(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); + } : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$6(O); + P = toPropertyKey(P); + anObject$6(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError$2('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + + var DESCRIPTORS$5 = descriptors; + var definePropertyModule$4 = objectDefineProperty; + var createPropertyDescriptor$1 = createPropertyDescriptor$3; + + var createNonEnumerableProperty$4 = DESCRIPTORS$5 ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$1(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + var makeBuiltIn$2 = {exports: {}}; + + var DESCRIPTORS$4 = descriptors; + var hasOwn$4 = hasOwnProperty_1; + + var FunctionPrototype$1 = Function.prototype; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getDescriptor = DESCRIPTORS$4 && Object.getOwnPropertyDescriptor; + + var EXISTS = hasOwn$4(FunctionPrototype$1, 'name'); + // additional protection from minified / mangled / dropped function names + var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; + var CONFIGURABLE = EXISTS && (!DESCRIPTORS$4 || (DESCRIPTORS$4 && getDescriptor(FunctionPrototype$1, 'name').configurable)); + + var functionName = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE + }; + + var uncurryThis$e = functionUncurryThis; + var isCallable$8 = isCallable$e; + var store$1 = sharedStoreExports; + + var functionToString = uncurryThis$e(Function.toString); + + // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper + if (!isCallable$8(store$1.inspectSource)) { + store$1.inspectSource = function (it) { + return functionToString(it); + }; + } + + var inspectSource$2 = store$1.inspectSource; + + var global$7 = global$e; + var isCallable$7 = isCallable$e; + + var WeakMap$1 = global$7.WeakMap; + + var weakMapBasicDetection = isCallable$7(WeakMap$1) && /native code/.test(String(WeakMap$1)); + + var shared$2 = shared$4; + var uid = uid$2; + + var keys = shared$2('keys'); + + var sharedKey$2 = function (key) { + return keys[key] || (keys[key] = uid(key)); + }; + + var hiddenKeys$4 = {}; + + var NATIVE_WEAK_MAP = weakMapBasicDetection; + var global$6 = global$e; + var isObject$3 = isObject$8; + var createNonEnumerableProperty$3 = createNonEnumerableProperty$4; + var hasOwn$3 = hasOwnProperty_1; + var shared$1 = sharedStoreExports; + var sharedKey$1 = sharedKey$2; + var hiddenKeys$3 = hiddenKeys$4; + + var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; + var TypeError$1 = global$6.TypeError; + var WeakMap = global$6.WeakMap; + var set, get, has; + + var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); + }; + + var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$3(it) || (state = get(it)).type !== TYPE) { + throw new TypeError$1('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; + }; + + if (NATIVE_WEAK_MAP || shared$1.state) { + var store = shared$1.state || (shared$1.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set = function (it, metadata) { + if (store.has(it)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; + } else { + var STATE = sharedKey$1('state'); + hiddenKeys$3[STATE] = true; + set = function (it, metadata) { + if (hasOwn$3(it, STATE)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$3(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$3(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$3(it, STATE); + }; + } + + var internalState = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor + }; + + var uncurryThis$d = functionUncurryThis; + var fails$b = fails$i; + var isCallable$6 = isCallable$e; + var hasOwn$2 = hasOwnProperty_1; + var DESCRIPTORS$3 = descriptors; + var CONFIGURABLE_FUNCTION_NAME = functionName.CONFIGURABLE; + var inspectSource$1 = inspectSource$2; + var InternalStateModule = internalState; + + var enforceInternalState = InternalStateModule.enforce; + var getInternalState$1 = InternalStateModule.get; + var $String$1 = String; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$2 = Object.defineProperty; + var stringSlice$4 = uncurryThis$d(''.slice); + var replace$2 = uncurryThis$d(''.replace); + var join = uncurryThis$d([].join); + + var CONFIGURABLE_LENGTH = DESCRIPTORS$3 && !fails$b(function () { + return defineProperty$2(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; + }); + + var TEMPLATE = String(String).split('String'); + + var makeBuiltIn$1 = makeBuiltIn$2.exports = function (value, name, options) { + if (stringSlice$4($String$1(name), 0, 7) === 'Symbol(') { + name = '[' + replace$2($String$1(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$2(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS$3) defineProperty$2(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$2(options, 'arity') && value.length !== options.arity) { + defineProperty$2(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$2(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$3) defineProperty$2(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$2(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; + }; + + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + // eslint-disable-next-line no-extend-native -- required + Function.prototype.toString = makeBuiltIn$1(function toString() { + return isCallable$6(this) && getInternalState$1(this).source || inspectSource$1(this); + }, 'toString'); + + var makeBuiltInExports = makeBuiltIn$2.exports; + + var isCallable$5 = isCallable$e; + var definePropertyModule$3 = objectDefineProperty; + var makeBuiltIn = makeBuiltInExports; + var defineGlobalProperty$1 = defineGlobalProperty$3; + + var defineBuiltIn$3 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$5(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; + }; + + var objectGetOwnPropertyNames = {}; + + var ceil = Math.ceil; + var floor$1 = Math.floor; + + // `Math.trunc` method + // https://tc39.es/ecma262/#sec-math.trunc + // eslint-disable-next-line es/no-math-trunc -- safe + var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor$1 : ceil)(n); + }; + + var trunc = mathTrunc; + + // `ToIntegerOrInfinity` abstract operation + // https://tc39.es/ecma262/#sec-tointegerorinfinity + var toIntegerOrInfinity$4 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); + }; + + var toIntegerOrInfinity$3 = toIntegerOrInfinity$4; + + var max$2 = Math.max; + var min$2 = Math.min; + + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex$2 = function (index, length) { + var integer = toIntegerOrInfinity$3(index); + return integer < 0 ? max$2(integer + length, 0) : min$2(integer, length); + }; + + var toIntegerOrInfinity$2 = toIntegerOrInfinity$4; + + var min$1 = Math.min; + + // `ToLength` abstract operation + // https://tc39.es/ecma262/#sec-tolength + var toLength$2 = function (argument) { + var len = toIntegerOrInfinity$2(argument); + return len > 0 ? min$1(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; + + var toLength$1 = toLength$2; + + // `LengthOfArrayLike` abstract operation + // https://tc39.es/ecma262/#sec-lengthofarraylike + var lengthOfArrayLike$4 = function (obj) { + return toLength$1(obj.length); + }; + + var toIndexedObject$4 = toIndexedObject$6; + var toAbsoluteIndex$1 = toAbsoluteIndex$2; + var lengthOfArrayLike$3 = lengthOfArrayLike$4; + + // `Array.prototype.{ indexOf, includes }` methods implementation + var createMethod$2 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$4($this); + var length = lengthOfArrayLike$3(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex$1(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + + var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$2(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$2(false) + }; + + var uncurryThis$c = functionUncurryThis; + var hasOwn$1 = hasOwnProperty_1; + var toIndexedObject$3 = toIndexedObject$6; + var indexOf$1 = arrayIncludes.indexOf; + var hiddenKeys$2 = hiddenKeys$4; + + var push$2 = uncurryThis$c([].push); + + var objectKeysInternal = function (object, names) { + var O = toIndexedObject$3(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$1(hiddenKeys$2, key) && hasOwn$1(O, key) && push$2(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$1(O, key = names[i++])) { + ~indexOf$1(result, key) || push$2(result, key); + } + return result; + }; + + // IE8- don't enum bug keys + var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + + var internalObjectKeys$1 = objectKeysInternal; + var enumBugKeys$2 = enumBugKeys$3; + + var hiddenKeys$1 = enumBugKeys$2.concat('length', 'prototype'); + + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + // eslint-disable-next-line es/no-object-getownpropertynames -- safe + objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$1); + }; + + var objectGetOwnPropertySymbols = {}; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe + objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + + var getBuiltIn$2 = getBuiltIn$4; + var uncurryThis$b = functionUncurryThis; + var getOwnPropertyNamesModule = objectGetOwnPropertyNames; + var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; + var anObject$5 = anObject$7; + + var concat$2 = uncurryThis$b([].concat); + + // all object keys, includes non-enumerable and symbols + var ownKeys$1 = getBuiltIn$2('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject$5(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$2(keys, getOwnPropertySymbols(it)) : keys; + }; + + var hasOwn = hasOwnProperty_1; + var ownKeys = ownKeys$1; + var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; + var definePropertyModule$2 = objectDefineProperty; + + var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; + + var fails$a = fails$i; + var isCallable$4 = isCallable$e; + + var replacement = /#|\.prototype\./; + + var isForced$1 = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable$4(detection) ? fails$a(detection) + : !!detection; + }; + + var normalize = isForced$1.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; + + var data = isForced$1.data = {}; + var NATIVE = isForced$1.NATIVE = 'N'; + var POLYFILL = isForced$1.POLYFILL = 'P'; + + var isForced_1 = isForced$1; + + var global$5 = global$e; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + var createNonEnumerableProperty$2 = createNonEnumerableProperty$4; + var defineBuiltIn$2 = defineBuiltIn$3; + var defineGlobalProperty = defineGlobalProperty$3; + var copyConstructorProperties = copyConstructorProperties$1; + var isForced = isForced_1; + + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key + */ + var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$5; + } else if (STATIC) { + target = global$5[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global$5[TARGET] && global$5[TARGET].prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty$2(sourceProperty, 'sham', true); + } + defineBuiltIn$2(target, key, sourceProperty, options); + } + }; + + var classof$5 = classofRaw$2; + + // `IsArray` abstract operation + // https://tc39.es/ecma262/#sec-isarray + // eslint-disable-next-line es/no-array-isarray -- safe + var isArray$3 = Array.isArray || function isArray(argument) { + return classof$5(argument) === 'Array'; + }; + + var $TypeError$1 = TypeError; + var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + + var doesNotExceedSafeInteger$1 = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError$1('Maximum allowed index exceeded'); + return it; + }; + + var DESCRIPTORS$2 = descriptors; + var definePropertyModule$1 = objectDefineProperty; + var createPropertyDescriptor = createPropertyDescriptor$3; + + var createProperty$2 = function (object, key, value) { + if (DESCRIPTORS$2) definePropertyModule$1.f(object, key, createPropertyDescriptor(0, value)); + else object[key] = value; + }; + + var wellKnownSymbol$8 = wellKnownSymbol$a; + + var TO_STRING_TAG$1 = wellKnownSymbol$8('toStringTag'); + var test = {}; + + test[TO_STRING_TAG$1] = 'z'; + + var toStringTagSupport = String(test) === '[object z]'; + + var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; + var isCallable$3 = isCallable$e; + var classofRaw$1 = classofRaw$2; + var wellKnownSymbol$7 = wellKnownSymbol$a; + + var TO_STRING_TAG = wellKnownSymbol$7('toStringTag'); + var $Object = Object; + + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) === 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; + + // getting tag from ES6+ `Object.prototype.toString` + var classof$4 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) === 'Object' && isCallable$3(O.callee) ? 'Arguments' : result; + }; + + var uncurryThis$a = functionUncurryThis; + var fails$9 = fails$i; + var isCallable$2 = isCallable$e; + var classof$3 = classof$4; + var getBuiltIn$1 = getBuiltIn$4; + var inspectSource = inspectSource$2; + + var noop = function () { /* empty */ }; + var construct = getBuiltIn$1('Reflect', 'construct'); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec$1 = uncurryThis$a(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.test(noop); + + var isConstructorModern = function isConstructor(argument) { + if (!isCallable$2(argument)) return false; + try { + construct(noop, [], argument); + return true; + } catch (error) { + return false; + } + }; + + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$2(argument)) return false; + switch (classof$3(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec$1(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } + }; + + isConstructorLegacy.sham = true; + + // `IsConstructor` abstract operation + // https://tc39.es/ecma262/#sec-isconstructor + var isConstructor$2 = !construct || fails$9(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; + }) ? isConstructorLegacy : isConstructorModern; + + var isArray$2 = isArray$3; + var isConstructor$1 = isConstructor$2; + var isObject$2 = isObject$8; + var wellKnownSymbol$6 = wellKnownSymbol$a; + + var SPECIES$3 = wellKnownSymbol$6('species'); + var $Array$1 = Array; + + // a part of `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray$2(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor$1(C) && (C === $Array$1 || isArray$2(C.prototype))) C = undefined; + else if (isObject$2(C)) { + C = C[SPECIES$3]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array$1 : C; + }; + + var arraySpeciesConstructor = arraySpeciesConstructor$1; + + // `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesCreate$2 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; + + var fails$8 = fails$i; + var wellKnownSymbol$5 = wellKnownSymbol$a; + var V8_VERSION$1 = engineV8Version; + + var SPECIES$2 = wellKnownSymbol$5('species'); + + var arrayMethodHasSpeciesSupport$3 = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION$1 >= 51 || !fails$8(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES$2] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); + }; + + var $$6 = _export; + var fails$7 = fails$i; + var isArray$1 = isArray$3; + var isObject$1 = isObject$8; + var toObject$3 = toObject$5; + var lengthOfArrayLike$2 = lengthOfArrayLike$4; + var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1; + var createProperty$1 = createProperty$2; + var arraySpeciesCreate$1 = arraySpeciesCreate$2; + var arrayMethodHasSpeciesSupport$2 = arrayMethodHasSpeciesSupport$3; + var wellKnownSymbol$4 = wellKnownSymbol$a; + var V8_VERSION = engineV8Version; + + var IS_CONCAT_SPREADABLE = wellKnownSymbol$4('isConcatSpreadable'); + + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/679 + var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails$7(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; + }); + + var isConcatSpreadable = function (O) { + if (!isObject$1(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray$1(O); + }; + + var FORCED$1 = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport$2('concat'); + + // `Array.prototype.concat` method + // https://tc39.es/ecma262/#sec-array.prototype.concat + // with adding support of @@isConcatSpreadable and @@species + $$6({ target: 'Array', proto: true, arity: 1, forced: FORCED$1 }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject$3(this); + var A = arraySpeciesCreate$1(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike$2(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty$1(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty$1(A, n++, E); + } + } + A.length = n; + return A; + } + }); + + var classofRaw = classofRaw$2; + var uncurryThis$9 = functionUncurryThis; + + var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$9(fn); + }; + + var uncurryThis$8 = functionUncurryThisClause; + var aCallable = aCallable$2; + var NATIVE_BIND$1 = functionBindNative; + + var bind$1 = uncurryThis$8(uncurryThis$8.bind); + + // optional / simple context binding + var functionBindContext = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND$1 ? bind$1(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; + + var bind = functionBindContext; + var uncurryThis$7 = functionUncurryThis; + var IndexedObject$2 = indexedObject; + var toObject$2 = toObject$5; + var lengthOfArrayLike$1 = lengthOfArrayLike$4; + var arraySpeciesCreate = arraySpeciesCreate$2; + + var push$1 = uncurryThis$7([].push); + + // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation + var createMethod$1 = function (TYPE) { + var IS_MAP = TYPE === 1; + var IS_FILTER = TYPE === 2; + var IS_SOME = TYPE === 3; + var IS_EVERY = TYPE === 4; + var IS_FIND_INDEX = TYPE === 6; + var IS_FILTER_REJECT = TYPE === 7; + var NO_HOLES = TYPE === 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject$2($this); + var self = IndexedObject$2(O); + var length = lengthOfArrayLike$1(self); + var boundFunction = bind(callbackfn, that); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push$1(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push$1(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; + }; + + var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod$1(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod$1(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod$1(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod$1(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod$1(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod$1(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod$1(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod$1(7) + }; + + var objectDefineProperties = {}; + + var internalObjectKeys = objectKeysInternal; + var enumBugKeys$1 = enumBugKeys$3; + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + // eslint-disable-next-line es/no-object-keys -- safe + var objectKeys$2 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); + }; + + var DESCRIPTORS$1 = descriptors; + var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; + var definePropertyModule = objectDefineProperty; + var anObject$4 = anObject$7; + var toIndexedObject$2 = toIndexedObject$6; + var objectKeys$1 = objectKeys$2; + + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + // eslint-disable-next-line es/no-object-defineproperties -- safe + objectDefineProperties.f = DESCRIPTORS$1 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$4(O); + var props = toIndexedObject$2(Properties); + var keys = objectKeys$1(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; + }; + + var getBuiltIn = getBuiltIn$4; + + var html$1 = getBuiltIn('document', 'documentElement'); + + /* global ActiveXObject -- old IE, WSH */ + var anObject$3 = anObject$7; + var definePropertiesModule = objectDefineProperties; + var enumBugKeys = enumBugKeys$3; + var hiddenKeys = hiddenKeys$4; + var html = html$1; + var documentCreateElement$1 = documentCreateElement$2; + var sharedKey = sharedKey$2; + + var GT = '>'; + var LT = '<'; + var PROTOTYPE = 'prototype'; + var SCRIPT = 'script'; + var IE_PROTO = sharedKey('IE_PROTO'); + + var EmptyConstructor = function () { /* empty */ }; + + var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; + }; + + // Create object with fake `null` prototype: use ActiveX Object with cleared prototype + var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; + }; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement$1('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; + }; + + // Check for document.domain and active x support + // No need to use active x approach when document.domain is not set + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + // avoid IE GC bug + var activeXDocument; + var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); + }; + + hiddenKeys[IE_PROTO] = true; + + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + // eslint-disable-next-line es/no-object-create -- safe + var objectCreate = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject$3(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); + }; + + var wellKnownSymbol$3 = wellKnownSymbol$a; + var create$1 = objectCreate; + var defineProperty$1 = objectDefineProperty.f; + + var UNSCOPABLES = wellKnownSymbol$3('unscopables'); + var ArrayPrototype = Array.prototype; + + // Array.prototype[@@unscopables] + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + if (ArrayPrototype[UNSCOPABLES] === undefined) { + defineProperty$1(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create$1(null) + }); + } + + // add a key to Array.prototype[@@unscopables] + var addToUnscopables$1 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; + }; + + var $$5 = _export; + var $find = arrayIteration.find; + var addToUnscopables = addToUnscopables$1; + + var FIND = 'find'; + var SKIPS_HOLES = true; + + // Shouldn't skip holes + // eslint-disable-next-line es/no-array-prototype-find -- testing + if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); + + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + $$5({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables(FIND); + + var fails$6 = fails$i; + + var arrayMethodIsStrict$2 = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails$6(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); + }; + + var $$4 = _export; + var uncurryThis$6 = functionUncurryThis; + var IndexedObject$1 = indexedObject; + var toIndexedObject$1 = toIndexedObject$6; + var arrayMethodIsStrict$1 = arrayMethodIsStrict$2; + + var nativeJoin = uncurryThis$6([].join); + + var ES3_STRINGS = IndexedObject$1 !== Object; + var FORCED = ES3_STRINGS || !arrayMethodIsStrict$1('join', ','); + + // `Array.prototype.join` method + // https://tc39.es/ecma262/#sec-array.prototype.join + $$4({ target: 'Array', proto: true, forced: FORCED }, { + join: function join(separator) { + return nativeJoin(toIndexedObject$1(this), separator === undefined ? ',' : separator); + } + }); + + var $$3 = _export; + var $map = arrayIteration.map; + var arrayMethodHasSpeciesSupport$1 = arrayMethodHasSpeciesSupport$3; + + var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport$1('map'); + + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + // with adding support of @@species + $$3({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, { + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var uncurryThis$5 = functionUncurryThis; + + var arraySlice = uncurryThis$5([].slice); + + var $$2 = _export; + var isArray = isArray$3; + var isConstructor = isConstructor$2; + var isObject = isObject$8; + var toAbsoluteIndex = toAbsoluteIndex$2; + var lengthOfArrayLike = lengthOfArrayLike$4; + var toIndexedObject = toIndexedObject$6; + var createProperty = createProperty$2; + var wellKnownSymbol$2 = wellKnownSymbol$a; + var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$3; + var nativeSlice = arraySlice; + + var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); + + var SPECIES$1 = wellKnownSymbol$2('species'); + var $Array = Array; + var max$1 = Math.max; + + // `Array.prototype.slice` method + // https://tc39.es/ecma262/#sec-array.prototype.slice + // fallback for not array-like ES3 strings and DOM objects + $$2({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + slice: function slice(start, end) { + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible + var Constructor, result, n; + if (isArray(O)) { + Constructor = O.constructor; + // cross-realm fallback + if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) { + Constructor = undefined; + } else if (isObject(Constructor)) { + Constructor = Constructor[SPECIES$1]; + if (Constructor === null) Constructor = undefined; + } + if (Constructor === $Array || Constructor === undefined) { + return nativeSlice(O, k, fin); + } + } + result = new (Constructor === undefined ? $Array : Constructor)(max$1(fin - k, 0)); + for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]); + result.length = n; + return result; + } + }); + + var DESCRIPTORS = descriptors; + var uncurryThis$4 = functionUncurryThis; + var call$5 = functionCall; + var fails$5 = fails$i; + var objectKeys = objectKeys$2; + var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; + var propertyIsEnumerableModule = objectPropertyIsEnumerable; + var toObject$1 = toObject$5; + var IndexedObject = indexedObject; + + // eslint-disable-next-line es/no-object-assign -- safe + var $assign = Object.assign; + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + var defineProperty = Object.defineProperty; + var concat$1 = uncurryThis$4([].concat); + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + var objectAssign = !$assign || fails$5(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { + enumerable: true, + get: function () { + defineProperty(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol('assign detection'); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject$1(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat$1(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || call$5(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; + } : $assign; + + var $$1 = _export; + var assign = objectAssign; + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + // eslint-disable-next-line es/no-object-assign -- required for testing + $$1({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign + }); + + var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; + var classof$2 = classof$4; + + // `Object.prototype.toString` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.tostring + var objectToString = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$2(this) + ']'; + }; + + var TO_STRING_TAG_SUPPORT = toStringTagSupport; + var defineBuiltIn$1 = defineBuiltIn$3; + var toString$4 = objectToString; + + // `Object.prototype.toString` method + // https://tc39.es/ecma262/#sec-object.prototype.tostring + if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn$1(Object.prototype, 'toString', toString$4, { unsafe: true }); + } + + var classof$1 = classof$4; + + var $String = String; + + var toString$3 = function (argument) { + if (classof$1(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); + }; + + var anObject$2 = anObject$7; + + // `RegExp.prototype.flags` getter implementation + // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags + var regexpFlags$1 = function () { + var that = anObject$2(this); + var result = ''; + if (that.hasIndices) result += 'd'; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.unicodeSets) result += 'v'; + if (that.sticky) result += 'y'; + return result; + }; + + var fails$4 = fails$i; + var global$4 = global$e; + + // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError + var $RegExp$2 = global$4.RegExp; + + var UNSUPPORTED_Y$1 = fails$4(function () { + var re = $RegExp$2('a', 'y'); + re.lastIndex = 2; + return re.exec('abcd') !== null; + }); + + // UC Browser bug + // https://github.com/zloirock/core-js/issues/1008 + var MISSED_STICKY = UNSUPPORTED_Y$1 || fails$4(function () { + return !$RegExp$2('a', 'y').sticky; + }); + + var BROKEN_CARET = UNSUPPORTED_Y$1 || fails$4(function () { + // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 + var re = $RegExp$2('^r', 'gy'); + re.lastIndex = 2; + return re.exec('str') !== null; + }); + + var regexpStickyHelpers = { + BROKEN_CARET: BROKEN_CARET, + MISSED_STICKY: MISSED_STICKY, + UNSUPPORTED_Y: UNSUPPORTED_Y$1 + }; + + var fails$3 = fails$i; + var global$3 = global$e; + + // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError + var $RegExp$1 = global$3.RegExp; + + var regexpUnsupportedDotAll = fails$3(function () { + var re = $RegExp$1('.', 's'); + return !(re.dotAll && re.test('\n') && re.flags === 's'); + }); + + var fails$2 = fails$i; + var global$2 = global$e; + + // babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError + var $RegExp = global$2.RegExp; + + var regexpUnsupportedNcg = fails$2(function () { + var re = $RegExp('(?b)', 'g'); + return re.exec('b').groups.a !== 'b' || + 'b'.replace(re, '$c') !== 'bc'; + }); + + /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ + /* eslint-disable regexp/no-useless-quantifier -- testing */ + var call$4 = functionCall; + var uncurryThis$3 = functionUncurryThis; + var toString$2 = toString$3; + var regexpFlags = regexpFlags$1; + var stickyHelpers = regexpStickyHelpers; + var shared = shared$4; + var create = objectCreate; + var getInternalState = internalState.get; + var UNSUPPORTED_DOT_ALL = regexpUnsupportedDotAll; + var UNSUPPORTED_NCG = regexpUnsupportedNcg; + + var nativeReplace = shared('native-string-replace', String.prototype.replace); + var nativeExec = RegExp.prototype.exec; + var patchedExec = nativeExec; + var charAt$3 = uncurryThis$3(''.charAt); + var indexOf = uncurryThis$3(''.indexOf); + var replace$1 = uncurryThis$3(''.replace); + var stringSlice$3 = uncurryThis$3(''.slice); + + var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/; + var re2 = /b*/g; + call$4(nativeExec, re1, 'a'); + call$4(nativeExec, re2, 'a'); + return re1.lastIndex !== 0 || re2.lastIndex !== 0; + })(); + + var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; + + // nonparticipating capturing group, copied from es5-shim's String#split patch. + var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + + var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; + + if (PATCH) { + patchedExec = function exec(string) { + var re = this; + var state = getInternalState(re); + var str = toString$2(string); + var raw = state.raw; + var result, reCopy, lastIndex, match, i, object, group; + + if (raw) { + raw.lastIndex = re.lastIndex; + result = call$4(patchedExec, raw, str); + re.lastIndex = raw.lastIndex; + return result; + } + + var groups = state.groups; + var sticky = UNSUPPORTED_Y && re.sticky; + var flags = call$4(regexpFlags, re); + var source = re.source; + var charsAdded = 0; + var strCopy = str; + + if (sticky) { + flags = replace$1(flags, 'y', ''); + if (indexOf(flags, 'g') === -1) { + flags += 'g'; + } + + strCopy = stringSlice$3(str, re.lastIndex); + // Support anchored sticky behavior. + if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt$3(str, re.lastIndex - 1) !== '\n')) { + source = '(?: ' + source + ')'; + strCopy = ' ' + strCopy; + charsAdded++; + } + // ^(? + rx + ) is needed, in combination with some str slicing, to + // simulate the 'y' flag. + reCopy = new RegExp('^(?:' + source + ')', flags); + } + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + source + '$(?!\\s)', flags); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; + + match = call$4(nativeExec, sticky ? reCopy : re, strCopy); + + if (sticky) { + if (match) { + match.input = stringSlice$3(match.input, charsAdded); + match[0] = stringSlice$3(match[0], charsAdded); + match.index = re.lastIndex; + re.lastIndex += match[0].length; + } else re.lastIndex = 0; + } else if (UPDATES_LAST_INDEX_WRONG && match) { + re.lastIndex = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/ + call$4(nativeReplace, match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + if (match && groups) { + match.groups = object = create(null); + for (i = 0; i < groups.length; i++) { + group = groups[i]; + object[group[0]] = match[group[1]]; + } + } + + return match; + }; + } + + var regexpExec$2 = patchedExec; + + var $ = _export; + var exec = regexpExec$2; + + // `RegExp.prototype.exec` method + // https://tc39.es/ecma262/#sec-regexp.prototype.exec + $({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { + exec: exec + }); + + var NATIVE_BIND = functionBindNative; + + var FunctionPrototype = Function.prototype; + var apply$1 = FunctionPrototype.apply; + var call$3 = FunctionPrototype.call; + + // eslint-disable-next-line es/no-reflect -- safe + var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call$3.bind(apply$1) : function () { + return call$3.apply(apply$1, arguments); + }); + + // TODO: Remove from `core-js@4` since it's moved to entry points + + var call$2 = functionCall; + var defineBuiltIn = defineBuiltIn$3; + var regexpExec$1 = regexpExec$2; + var fails$1 = fails$i; + var wellKnownSymbol$1 = wellKnownSymbol$a; + var createNonEnumerableProperty$1 = createNonEnumerableProperty$4; + + var SPECIES = wellKnownSymbol$1('species'); + var RegExpPrototype = RegExp.prototype; + + var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) { + var SYMBOL = wellKnownSymbol$1(KEY); + + var DELEGATES_TO_SYMBOL = !fails$1(function () { + // String methods call symbol-named RegExp methods + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) !== 7; + }); + + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$1(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + + if (KEY === 'split') { + // We can't use real regex here since it causes deoptimization + // and serious performance degradation in V8 + // https://github.com/zloirock/core-js/issues/306 + re = {}; + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + re.constructor[SPECIES] = function () { return re; }; + re.flags = ''; + re[SYMBOL] = /./[SYMBOL]; + } + + re.exec = function () { + execCalled = true; + return null; + }; + + re[SYMBOL](''); + return !execCalled; + }); + + if ( + !DELEGATES_TO_SYMBOL || + !DELEGATES_TO_EXEC || + FORCED + ) { + var nativeRegExpMethod = /./[SYMBOL]; + var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { + var $exec = regexp.exec; + if ($exec === regexpExec$1 || $exec === RegExpPrototype.exec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { done: true, value: call$2(nativeRegExpMethod, regexp, str, arg2) }; + } + return { done: true, value: call$2(nativeMethod, str, regexp, arg2) }; + } + return { done: false }; + }); + + defineBuiltIn(String.prototype, KEY, methods[0]); + defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]); + } + + if (SHAM) createNonEnumerableProperty$1(RegExpPrototype[SYMBOL], 'sham', true); + }; + + var uncurryThis$2 = functionUncurryThis; + var toIntegerOrInfinity$1 = toIntegerOrInfinity$4; + var toString$1 = toString$3; + var requireObjectCoercible$1 = requireObjectCoercible$4; + + var charAt$2 = uncurryThis$2(''.charAt); + var charCodeAt = uncurryThis$2(''.charCodeAt); + var stringSlice$2 = uncurryThis$2(''.slice); + + var createMethod = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString$1(requireObjectCoercible$1($this)); + var position = toIntegerOrInfinity$1(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt$2(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice$2(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; + }; + + var stringMultibyte = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod(true) + }; + + var charAt$1 = stringMultibyte.charAt; + + // `AdvanceStringIndex` abstract operation + // https://tc39.es/ecma262/#sec-advancestringindex + var advanceStringIndex$1 = function (S, index, unicode) { + return index + (unicode ? charAt$1(S, index).length : 1); + }; + + var uncurryThis$1 = functionUncurryThis; + var toObject = toObject$5; + + var floor = Math.floor; + var charAt = uncurryThis$1(''.charAt); + var replace = uncurryThis$1(''.replace); + var stringSlice$1 = uncurryThis$1(''.slice); + // eslint-disable-next-line redos/no-vulnerable -- safe + var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; + var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; + + // `GetSubstitution` abstract operation + // https://tc39.es/ecma262/#sec-getsubstitution + var getSubstitution$1 = function (matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + return replace(replacement, symbols, function (match, ch) { + var capture; + switch (charAt(ch, 0)) { + case '$': return '$'; + case '&': return matched; + case '`': return stringSlice$1(str, 0, position); + case "'": return stringSlice$1(str, tailPos); + case '<': + capture = namedCaptures[stringSlice$1(ch, 1, -1)]; + break; + default: // \d\d? + var n = +ch; + if (n === 0) return match; + if (n > m) { + var f = floor(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1); + return match; + } + capture = captures[n - 1]; + } + return capture === undefined ? '' : capture; + }); + }; + + var call$1 = functionCall; + var anObject$1 = anObject$7; + var isCallable$1 = isCallable$e; + var classof = classofRaw$2; + var regexpExec = regexpExec$2; + + var $TypeError = TypeError; + + // `RegExpExec` abstract operation + // https://tc39.es/ecma262/#sec-regexpexec + var regexpExecAbstract = function (R, S) { + var exec = R.exec; + if (isCallable$1(exec)) { + var result = call$1(exec, R, S); + if (result !== null) anObject$1(result); + return result; + } + if (classof(R) === 'RegExp') return call$1(regexpExec, R, S); + throw new $TypeError('RegExp#exec called on incompatible receiver'); + }; + + var apply = functionApply; + var call = functionCall; + var uncurryThis = functionUncurryThis; + var fixRegExpWellKnownSymbolLogic = fixRegexpWellKnownSymbolLogic; + var fails = fails$i; + var anObject = anObject$7; + var isCallable = isCallable$e; + var isNullOrUndefined = isNullOrUndefined$3; + var toIntegerOrInfinity = toIntegerOrInfinity$4; + var toLength = toLength$2; + var toString = toString$3; + var requireObjectCoercible = requireObjectCoercible$4; + var advanceStringIndex = advanceStringIndex$1; + var getMethod = getMethod$2; + var getSubstitution = getSubstitution$1; + var regExpExec = regexpExecAbstract; + var wellKnownSymbol = wellKnownSymbol$a; + + var REPLACE = wellKnownSymbol('replace'); + var max = Math.max; + var min = Math.min; + var concat = uncurryThis([].concat); + var push = uncurryThis([].push); + var stringIndexOf = uncurryThis(''.indexOf); + var stringSlice = uncurryThis(''.slice); + + var maybeToString = function (it) { + return it === undefined ? it : String(it); + }; + + // IE <= 11 replaces $0 with the whole match, as if it was $& + // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 + var REPLACE_KEEPS_$0 = (function () { + // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing + return 'a'.replace(/./, '$0') === '$0'; + })(); + + // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string + var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { + if (/./[REPLACE]) { + return /./[REPLACE]('a', '$0') === ''; + } + return false; + })(); + + var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + var re = /./; + re.exec = function () { + var result = []; + result.groups = { a: '7' }; + return result; + }; + // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive + return ''.replace(re, '$') !== '7'; + }); + + // @@replace logic + fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) { + var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; + + return [ + // `String.prototype.replace` method + // https://tc39.es/ecma262/#sec-string.prototype.replace + function replace(searchValue, replaceValue) { + var O = requireObjectCoercible(this); + var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE); + return replacer + ? call(replacer, searchValue, O, replaceValue) + : call(nativeReplace, toString(O), searchValue, replaceValue); + }, + // `RegExp.prototype[@@replace]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace + function (string, replaceValue) { + var rx = anObject(this); + var S = toString(string); + + if ( + typeof replaceValue == 'string' && + stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 && + stringIndexOf(replaceValue, '$<') === -1 + ) { + var res = maybeCallNative(nativeReplace, rx, S, replaceValue); + if (res.done) return res.value; + } + + var functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString(replaceValue); + + var global = rx.global; + var fullUnicode; + if (global) { + fullUnicode = rx.unicode; + rx.lastIndex = 0; + } + + var results = []; + var result; + while (true) { + result = regExpExec(rx, S); + if (result === null) break; + + push(results, result); + if (!global) break; + + var matchStr = toString(result[0]); + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + } + + var accumulatedResult = ''; + var nextSourcePosition = 0; + for (var i = 0; i < results.length; i++) { + result = results[i]; + + var matched = toString(result[0]); + var position = max(min(toIntegerOrInfinity(result.index), S.length), 0); + var captures = []; + var replacement; + // NOTE: This is equivalent to + // captures = result.slice(1).map(maybeToString) + // but for some reason `nativeSlice.call(result, 1, result.length)` (called in + // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and + // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. + for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j])); + var namedCaptures = result.groups; + if (functionalReplace) { + var replacerArgs = concat([matched], captures, position, S); + if (namedCaptures !== undefined) push(replacerArgs, namedCaptures); + replacement = toString(apply(replaceValue, undefined, replacerArgs)); + } else { + replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); + } + if (position >= nextSourcePosition) { + accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement; + nextSourcePosition = position + matched.length; + } + } + + return accumulatedResult + stringSlice(S, nextSourcePosition); + } + ]; + }, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); + + // iterable DOM collections + // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods + var domIterables = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 + }; + + // in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` + var documentCreateElement = documentCreateElement$2; + + var classList = documentCreateElement('span').classList; + var DOMTokenListPrototype$1 = classList && classList.constructor && classList.constructor.prototype; + + var domTokenListPrototype = DOMTokenListPrototype$1 === Object.prototype ? undefined : DOMTokenListPrototype$1; + + var $forEach = arrayIteration.forEach; + var arrayMethodIsStrict = arrayMethodIsStrict$2; + + var STRICT_METHOD = arrayMethodIsStrict('forEach'); + + // `Array.prototype.forEach` method implementation + // https://tc39.es/ecma262/#sec-array.prototype.foreach + var arrayForEach = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + // eslint-disable-next-line es/no-array-prototype-foreach -- safe + } : [].forEach; + + var global$1 = global$e; + var DOMIterables = domIterables; + var DOMTokenListPrototype = domTokenListPrototype; + var forEach = arrayForEach; + var createNonEnumerableProperty = createNonEnumerableProperty$4; + + var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } + }; + + for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global$1[COLLECTION_NAME] && global$1[COLLECTION_NAME].prototype); + } + } + + handlePrototype(DOMTokenListPrototype); + /** * @author zhixin wen * extensions: https://github.com/hhurz/tableExport.jquery.plugin */ - var Utils = $.fn.bootstrapTable.utils; + var Utils = $$7.fn.bootstrapTable.utils; var TYPE_NAME = { json: 'JSON', xml: 'XML', @@ -5328,7 +13420,7 @@ powerpoint: 'MS-Powerpoint', pdf: 'PDF' }; - Object.assign($.fn.bootstrapTable.defaults, { + Object.assign($$7.fn.bootstrapTable.defaults, { showExport: false, exportDataType: 'basic', // basic, all, selected @@ -5336,26 +13428,26 @@ exportOptions: {}, exportFooter: false }); - Object.assign($.fn.bootstrapTable.columnDefaults, { + Object.assign($$7.fn.bootstrapTable.columnDefaults, { forceExport: false, forceHide: false }); - Object.assign($.fn.bootstrapTable.defaults.icons, { + Object.assign($$7.fn.bootstrapTable.defaults.icons, { export: { bootstrap3: 'glyphicon-export icon-share', bootstrap5: 'bi-download', materialize: 'file_download', 'bootstrap-table': 'icon-download' - }[$.fn.bootstrapTable.theme] || 'fa-download' + }[$$7.fn.bootstrapTable.theme] || 'fa-download' }); - Object.assign($.fn.bootstrapTable.locales, { + Object.assign($$7.fn.bootstrapTable.locales, { formatExport: function formatExport() { return 'Export data'; } }); - Object.assign($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales); - $.fn.bootstrapTable.methods.push('exportTable'); - Object.assign($.fn.bootstrapTable.defaults, { + Object.assign($$7.fn.bootstrapTable.defaults, $$7.fn.bootstrapTable.locales); + $$7.fn.bootstrapTable.methods.push('exportTable'); + Object.assign($$7.fn.bootstrapTable.defaults, { // eslint-disable-next-line no-unused-vars onExportSaved: function onExportSaved(exportedRows) { return false; @@ -5364,11 +13456,11 @@ return false; } }); - Object.assign($.fn.bootstrapTable.events, { + Object.assign($$7.fn.bootstrapTable.events, { 'export-saved.bs.table': 'onExportSaved', 'export-started.bs.table': 'onExportStarted' }); - $.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) { + $$7.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) { function _class() { _classCallCheck(this, _class); return _callSuper(this, _class, arguments); @@ -5411,7 +13503,7 @@ for (_iterator.s(); !(_step = _iterator.n()).done;) { var type = _step.value; if (TYPE_NAME.hasOwnProperty(type)) { - var $item = $(Utils.sprintf(_this.constants.html.pageDropdownItem, '', TYPE_NAME[type])); + var $item = $$7(Utils.sprintf(_this.constants.html.pageDropdownItem, '', TYPE_NAME[type])); $item.attr('data-type', type); html.push($item.prop('outerHTML')); } @@ -5444,7 +13536,7 @@ e.preventDefault(); _this.trigger('export-started'); _this.exportTable({ - type: $(e.currentTarget).data('type') + type: $$7(e.currentTarget).data('type') }); }); this.handleToolbar(); @@ -5487,8 +13579,8 @@ var $footerRow = _this2.$tableFooter.find('tr').first(); var footerData = {}; var footerHtml = []; - $.each($footerRow.children(), function (index, footerCell) { - var footerCellHtml = $(footerCell).children('.th-inner').first().html(); + $footerRow.children().forEach(function (footerCell, index) { + var footerCellHtml = $$7(footerCell).children('.th-inner').first().html(); footerData[_this2.columns[index].field] = footerCellHtml === ' ' ? null : footerCellHtml; // grab footer cell text into cell index-based array @@ -5496,8 +13588,8 @@ }); _this2.$body.append(_this2.$body.children().last()[0].outerHTML); var $lastTableRow = _this2.$body.children().last(); - $.each($lastTableRow.children(), function (index, lastTableRowCell) { - $(lastTableRowCell).html(footerHtml[index]); + $lastTableRow.children().forEach(function (lastTableRowCell, index) { + $$7(lastTableRowCell).html(footerHtml[index]); }); } var hiddenColumns = _this2.getHiddenColumns(); @@ -5594,15 +13686,15 @@ } } }]); - }($.BootstrapTable); + }($$7.BootstrapTable); })); (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('core-js/modules/es.array.concat.js'), require('core-js/modules/es.array.filter.js'), require('core-js/modules/es.array.find.js'), require('core-js/modules/es.array.includes.js'), require('core-js/modules/es.array.join.js'), require('core-js/modules/es.array.map.js'), require('core-js/modules/es.date.to-json.js'), require('core-js/modules/es.object.assign.js'), require('core-js/modules/es.object.entries.js'), require('core-js/modules/es.object.keys.js'), require('core-js/modules/es.object.to-string.js'), require('core-js/modules/es.regexp.exec.js'), require('core-js/modules/es.regexp.to-string.js'), require('core-js/modules/es.string.includes.js'), require('core-js/modules/es.string.replace.js'), require('core-js/modules/es.string.search.js'), require('core-js/modules/web.dom-collections.for-each.js'), require('jquery')) : - typeof define === 'function' && define.amd ? define(['core-js/modules/es.array.concat.js', 'core-js/modules/es.array.filter.js', 'core-js/modules/es.array.find.js', 'core-js/modules/es.array.includes.js', 'core-js/modules/es.array.join.js', 'core-js/modules/es.array.map.js', 'core-js/modules/es.date.to-json.js', 'core-js/modules/es.object.assign.js', 'core-js/modules/es.object.entries.js', 'core-js/modules/es.object.keys.js', 'core-js/modules/es.object.to-string.js', 'core-js/modules/es.regexp.exec.js', 'core-js/modules/es.regexp.to-string.js', 'core-js/modules/es.string.includes.js', 'core-js/modules/es.string.replace.js', 'core-js/modules/es.string.search.js', 'core-js/modules/web.dom-collections.for-each.js', 'jquery'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, global.jQuery)); -})(this, (function (es_array_concat_js, es_array_filter_js, es_array_find_js, es_array_includes_js, es_array_join_js, es_array_map_js, es_date_toJson_js, es_object_assign_js, es_object_entries_js, es_object_keys_js, es_object_toString_js, es_regexp_exec_js, es_regexp_toString_js, es_string_includes_js, es_string_replace_js, es_string_search_js, web_domCollections_forEach_js, $) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) : + typeof define === 'function' && define.amd ? define(['jquery'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jQuery)); +})(this, (function ($$c) { 'use strict'; function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); @@ -5636,7 +13728,7 @@ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { - if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e ) { + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var n = 0, F = function () {}; @@ -5763,7 +13855,7 @@ if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { - var i = e.call(t, r ); + var i = e.call(t, r); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } @@ -5781,11 +13873,2563 @@ } } + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + var check = function (it) { + return it && it.Math === Math && it; + }; + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global$e = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + var objectGetOwnPropertyDescriptor = {}; + + var fails$o = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + + var fails$n = fails$o; + + // Detect IE8's incomplete defineProperty implementation + var descriptors = !fails$n(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; + }); + + var fails$m = fails$o; + + var functionBindNative = !fails$m(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); + }); + + var NATIVE_BIND$3 = functionBindNative; + + var call$c = Function.prototype.call; + + var functionCall = NATIVE_BIND$3 ? call$c.bind(call$c) : function () { + return call$c.apply(call$c, arguments); + }; + + var objectPropertyIsEnumerable = {}; + + var $propertyIsEnumerable$1 = {}.propertyIsEnumerable; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + + // Nashorn ~ JDK8 bug + var NASHORN_BUG = getOwnPropertyDescriptor$1 && !$propertyIsEnumerable$1.call({ 1: 2 }, 1); + + // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable + objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$1(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable$1; + + var createPropertyDescriptor$3 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + var NATIVE_BIND$2 = functionBindNative; + + var FunctionPrototype$2 = Function.prototype; + var call$b = FunctionPrototype$2.call; + var uncurryThisWithBind = NATIVE_BIND$2 && FunctionPrototype$2.bind.bind(call$b, call$b); + + var functionUncurryThis = NATIVE_BIND$2 ? uncurryThisWithBind : function (fn) { + return function () { + return call$b.apply(fn, arguments); + }; + }; + + var uncurryThis$k = functionUncurryThis; + + var toString$8 = uncurryThis$k({}.toString); + var stringSlice$5 = uncurryThis$k(''.slice); + + var classofRaw$2 = function (it) { + return stringSlice$5(toString$8(it), 8, -1); + }; + + var uncurryThis$j = functionUncurryThis; + var fails$l = fails$o; + var classof$7 = classofRaw$2; + + var $Object$4 = Object; + var split = uncurryThis$j(''.split); + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var indexedObject = fails$l(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$4('z').propertyIsEnumerable(0); + }) ? function (it) { + return classof$7(it) === 'String' ? split(it, '') : $Object$4(it); + } : $Object$4; + + // we can't use just `it == null` since of `document.all` special case + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec + var isNullOrUndefined$4 = function (it) { + return it === null || it === undefined; + }; + + var isNullOrUndefined$3 = isNullOrUndefined$4; + + var $TypeError$8 = TypeError; + + // `RequireObjectCoercible` abstract operation + // https://tc39.es/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible$6 = function (it) { + if (isNullOrUndefined$3(it)) throw new $TypeError$8("Can't call method on " + it); + return it; + }; + + // toObject with fallback for non-array-like ES3 strings + var IndexedObject$3 = indexedObject; + var requireObjectCoercible$5 = requireObjectCoercible$6; + + var toIndexedObject$6 = function (it) { + return IndexedObject$3(requireObjectCoercible$5(it)); + }; + + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + var documentAll = typeof document == 'object' && document.all; + + // `IsCallable` abstract operation + // https://tc39.es/ecma262/#sec-iscallable + // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing + var isCallable$f = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; + } : function (argument) { + return typeof argument == 'function'; + }; + + var isCallable$e = isCallable$f; + + var isObject$8 = function (it) { + return typeof it == 'object' ? it !== null : isCallable$e(it); + }; + + var global$d = global$e; + var isCallable$d = isCallable$f; + + var aFunction = function (argument) { + return isCallable$d(argument) ? argument : undefined; + }; + + var getBuiltIn$4 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$d[namespace]) : global$d[namespace] && global$d[namespace][method]; + }; + + var uncurryThis$i = functionUncurryThis; + + var objectIsPrototypeOf = uncurryThis$i({}.isPrototypeOf); + + var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + var global$c = global$e; + var userAgent = engineUserAgent; + + var process = global$c.process; + var Deno = global$c.Deno; + var versions = process && process.versions || Deno && Deno.version; + var v8 = versions && versions.v8; + var match, version; + + if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + + // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` + // so check `userAgent` even if `.v8` exists, but 0 + if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } + } + + var engineV8Version = version; + + /* eslint-disable es/no-symbol -- required for testing */ + var V8_VERSION$2 = engineV8Version; + var fails$k = fails$o; + var global$b = global$e; + + var $String$4 = global$b.String; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$k(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$4(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$2 && V8_VERSION$2 < 41; + }); + + /* eslint-disable es/no-symbol -- required for testing */ + var NATIVE_SYMBOL$1 = symbolConstructorDetection; + + var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + var getBuiltIn$3 = getBuiltIn$4; + var isCallable$c = isCallable$f; + var isPrototypeOf$1 = objectIsPrototypeOf; + var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + + var $Object$3 = Object; + + var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + var $Symbol = getBuiltIn$3('Symbol'); + return isCallable$c($Symbol) && isPrototypeOf$1($Symbol.prototype, $Object$3(it)); + }; + + var $String$3 = String; + + var tryToString$1 = function (argument) { + try { + return $String$3(argument); + } catch (error) { + return 'Object'; + } + }; + + var isCallable$b = isCallable$f; + var tryToString = tryToString$1; + + var $TypeError$7 = TypeError; + + // `Assert: IsCallable(argument) is true` + var aCallable$2 = function (argument) { + if (isCallable$b(argument)) return argument; + throw new $TypeError$7(tryToString(argument) + ' is not a function'); + }; + + var aCallable$1 = aCallable$2; + var isNullOrUndefined$2 = isNullOrUndefined$4; + + // `GetMethod` abstract operation + // https://tc39.es/ecma262/#sec-getmethod + var getMethod$3 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$2(func) ? undefined : aCallable$1(func); + }; + + var call$a = functionCall; + var isCallable$a = isCallable$f; + var isObject$7 = isObject$8; + + var $TypeError$6 = TypeError; + + // `OrdinaryToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-ordinarytoprimitive + var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$a(fn = input.toString) && !isObject$7(val = call$a(fn, input))) return val; + if (isCallable$a(fn = input.valueOf) && !isObject$7(val = call$a(fn, input))) return val; + if (pref !== 'string' && isCallable$a(fn = input.toString) && !isObject$7(val = call$a(fn, input))) return val; + throw new $TypeError$6("Can't convert object to primitive value"); + }; + + var sharedStore = {exports: {}}; + + var global$a = global$e; + + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$3 = Object.defineProperty; + + var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$3(global$a, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$a[key] = value; + } return value; + }; + + var globalThis$1 = global$e; + var defineGlobalProperty$2 = defineGlobalProperty$3; + + var SHARED = '__core-js_shared__'; + var store$3 = sharedStore.exports = globalThis$1[SHARED] || defineGlobalProperty$2(SHARED, {}); + + (store$3.versions || (store$3.versions = [])).push({ + version: '3.37.1', + mode: 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', + source: 'https://github.com/zloirock/core-js' + }); + + var sharedStoreExports = sharedStore.exports; + + var store$2 = sharedStoreExports; + + var shared$4 = function (key, value) { + return store$2[key] || (store$2[key] = value || {}); + }; + + var requireObjectCoercible$4 = requireObjectCoercible$6; + + var $Object$2 = Object; + + // `ToObject` abstract operation + // https://tc39.es/ecma262/#sec-toobject + var toObject$8 = function (argument) { + return $Object$2(requireObjectCoercible$4(argument)); + }; + + var uncurryThis$h = functionUncurryThis; + var toObject$7 = toObject$8; + + var hasOwnProperty = uncurryThis$h({}.hasOwnProperty); + + // `HasOwnProperty` abstract operation + // https://tc39.es/ecma262/#sec-hasownproperty + // eslint-disable-next-line es/no-object-hasown -- safe + var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$7(it), key); + }; + + var uncurryThis$g = functionUncurryThis; + + var id = 0; + var postfix = Math.random(); + var toString$7 = uncurryThis$g(1.0.toString); + + var uid$2 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$7(++id + postfix, 36); + }; + + var global$9 = global$e; + var shared$3 = shared$4; + var hasOwn$8 = hasOwnProperty_1; + var uid$1 = uid$2; + var NATIVE_SYMBOL = symbolConstructorDetection; + var USE_SYMBOL_AS_UID = useSymbolAsUid; + + var Symbol$1 = global$9.Symbol; + var WellKnownSymbolsStore = shared$3('wks'); + var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1['for'] || Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1; + + var wellKnownSymbol$b = function (name) { + if (!hasOwn$8(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$8(Symbol$1, name) + ? Symbol$1[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; + }; + + var call$9 = functionCall; + var isObject$6 = isObject$8; + var isSymbol$1 = isSymbol$2; + var getMethod$2 = getMethod$3; + var ordinaryToPrimitive = ordinaryToPrimitive$1; + var wellKnownSymbol$a = wellKnownSymbol$b; + + var $TypeError$5 = TypeError; + var TO_PRIMITIVE = wellKnownSymbol$a('toPrimitive'); + + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + var toPrimitive$2 = function (input, pref) { + if (!isObject$6(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod$2(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$9(exoticToPrim, input, pref); + if (!isObject$6(result) || isSymbol$1(result)) return result; + throw new $TypeError$5("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); + }; + + var toPrimitive$1 = toPrimitive$2; + var isSymbol = isSymbol$2; + + // `ToPropertyKey` abstract operation + // https://tc39.es/ecma262/#sec-topropertykey + var toPropertyKey$2 = function (argument) { + var key = toPrimitive$1(argument, 'string'); + return isSymbol(key) ? key : key + ''; + }; + + var global$8 = global$e; + var isObject$5 = isObject$8; + + var document$1 = global$8.document; + // typeof document.createElement is 'object' in old IE + var EXISTS$1 = isObject$5(document$1) && isObject$5(document$1.createElement); + + var documentCreateElement$2 = function (it) { + return EXISTS$1 ? document$1.createElement(it) : {}; + }; + + var DESCRIPTORS$a = descriptors; + var fails$j = fails$o; + var createElement = documentCreateElement$2; + + // Thanks to IE8 for its funny defineProperty + var ie8DomDefine = !DESCRIPTORS$a && !fails$j(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a !== 7; + }); + + var DESCRIPTORS$9 = descriptors; + var call$8 = functionCall; + var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; + var createPropertyDescriptor$2 = createPropertyDescriptor$3; + var toIndexedObject$5 = toIndexedObject$6; + var toPropertyKey$1 = toPropertyKey$2; + var hasOwn$7 = hasOwnProperty_1; + var IE8_DOM_DEFINE$1 = ie8DomDefine; + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor + objectGetOwnPropertyDescriptor.f = DESCRIPTORS$9 ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$5(O); + P = toPropertyKey$1(P); + if (IE8_DOM_DEFINE$1) try { + return $getOwnPropertyDescriptor$1(O, P); + } catch (error) { /* empty */ } + if (hasOwn$7(O, P)) return createPropertyDescriptor$2(!call$8(propertyIsEnumerableModule$1.f, O, P), O[P]); + }; + + var objectDefineProperty = {}; + + var DESCRIPTORS$8 = descriptors; + var fails$i = fails$o; + + // V8 ~ Chrome 36- + // https://bugs.chromium.org/p/v8/issues/detail?id=3334 + var v8PrototypeDefineBug = DESCRIPTORS$8 && fails$i(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; + }); + + var isObject$4 = isObject$8; + + var $String$2 = String; + var $TypeError$4 = TypeError; + + // `Assert: Type(argument) is Object` + var anObject$9 = function (argument) { + if (isObject$4(argument)) return argument; + throw new $TypeError$4($String$2(argument) + ' is not an object'); + }; + + var DESCRIPTORS$7 = descriptors; + var IE8_DOM_DEFINE = ie8DomDefine; + var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; + var anObject$8 = anObject$9; + var toPropertyKey = toPropertyKey$2; + + var $TypeError$3 = TypeError; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var $defineProperty = Object.defineProperty; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var ENUMERABLE = 'enumerable'; + var CONFIGURABLE$1 = 'configurable'; + var WRITABLE = 'writable'; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + objectDefineProperty.f = DESCRIPTORS$7 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$8(O); + P = toPropertyKey(P); + anObject$8(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); + } : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$8(O); + P = toPropertyKey(P); + anObject$8(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError$3('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + + var DESCRIPTORS$6 = descriptors; + var definePropertyModule$4 = objectDefineProperty; + var createPropertyDescriptor$1 = createPropertyDescriptor$3; + + var createNonEnumerableProperty$4 = DESCRIPTORS$6 ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$1(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + var makeBuiltIn$2 = {exports: {}}; + + var DESCRIPTORS$5 = descriptors; + var hasOwn$6 = hasOwnProperty_1; + + var FunctionPrototype$1 = Function.prototype; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getDescriptor = DESCRIPTORS$5 && Object.getOwnPropertyDescriptor; + + var EXISTS = hasOwn$6(FunctionPrototype$1, 'name'); + // additional protection from minified / mangled / dropped function names + var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; + var CONFIGURABLE = EXISTS && (!DESCRIPTORS$5 || (DESCRIPTORS$5 && getDescriptor(FunctionPrototype$1, 'name').configurable)); + + var functionName = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE + }; + + var uncurryThis$f = functionUncurryThis; + var isCallable$9 = isCallable$f; + var store$1 = sharedStoreExports; + + var functionToString = uncurryThis$f(Function.toString); + + // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper + if (!isCallable$9(store$1.inspectSource)) { + store$1.inspectSource = function (it) { + return functionToString(it); + }; + } + + var inspectSource$2 = store$1.inspectSource; + + var global$7 = global$e; + var isCallable$8 = isCallable$f; + + var WeakMap$1 = global$7.WeakMap; + + var weakMapBasicDetection = isCallable$8(WeakMap$1) && /native code/.test(String(WeakMap$1)); + + var shared$2 = shared$4; + var uid = uid$2; + + var keys = shared$2('keys'); + + var sharedKey$3 = function (key) { + return keys[key] || (keys[key] = uid(key)); + }; + + var hiddenKeys$4 = {}; + + var NATIVE_WEAK_MAP = weakMapBasicDetection; + var global$6 = global$e; + var isObject$3 = isObject$8; + var createNonEnumerableProperty$3 = createNonEnumerableProperty$4; + var hasOwn$5 = hasOwnProperty_1; + var shared$1 = sharedStoreExports; + var sharedKey$2 = sharedKey$3; + var hiddenKeys$3 = hiddenKeys$4; + + var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; + var TypeError$1 = global$6.TypeError; + var WeakMap = global$6.WeakMap; + var set, get, has; + + var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); + }; + + var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$3(it) || (state = get(it)).type !== TYPE) { + throw new TypeError$1('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; + }; + + if (NATIVE_WEAK_MAP || shared$1.state) { + var store = shared$1.state || (shared$1.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set = function (it, metadata) { + if (store.has(it)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; + } else { + var STATE = sharedKey$2('state'); + hiddenKeys$3[STATE] = true; + set = function (it, metadata) { + if (hasOwn$5(it, STATE)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$3(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$5(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$5(it, STATE); + }; + } + + var internalState = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor + }; + + var uncurryThis$e = functionUncurryThis; + var fails$h = fails$o; + var isCallable$7 = isCallable$f; + var hasOwn$4 = hasOwnProperty_1; + var DESCRIPTORS$4 = descriptors; + var CONFIGURABLE_FUNCTION_NAME = functionName.CONFIGURABLE; + var inspectSource$1 = inspectSource$2; + var InternalStateModule = internalState; + + var enforceInternalState = InternalStateModule.enforce; + var getInternalState$1 = InternalStateModule.get; + var $String$1 = String; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$2 = Object.defineProperty; + var stringSlice$4 = uncurryThis$e(''.slice); + var replace$2 = uncurryThis$e(''.replace); + var join = uncurryThis$e([].join); + + var CONFIGURABLE_LENGTH = DESCRIPTORS$4 && !fails$h(function () { + return defineProperty$2(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; + }); + + var TEMPLATE = String(String).split('String'); + + var makeBuiltIn$1 = makeBuiltIn$2.exports = function (value, name, options) { + if (stringSlice$4($String$1(name), 0, 7) === 'Symbol(') { + name = '[' + replace$2($String$1(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$4(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS$4) defineProperty$2(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$4(options, 'arity') && value.length !== options.arity) { + defineProperty$2(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$4(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$4) defineProperty$2(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$4(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; + }; + + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + // eslint-disable-next-line no-extend-native -- required + Function.prototype.toString = makeBuiltIn$1(function toString() { + return isCallable$7(this) && getInternalState$1(this).source || inspectSource$1(this); + }, 'toString'); + + var makeBuiltInExports = makeBuiltIn$2.exports; + + var isCallable$6 = isCallable$f; + var definePropertyModule$3 = objectDefineProperty; + var makeBuiltIn = makeBuiltInExports; + var defineGlobalProperty$1 = defineGlobalProperty$3; + + var defineBuiltIn$4 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$6(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; + }; + + var objectGetOwnPropertyNames = {}; + + var ceil = Math.ceil; + var floor$1 = Math.floor; + + // `Math.trunc` method + // https://tc39.es/ecma262/#sec-math.trunc + // eslint-disable-next-line es/no-math-trunc -- safe + var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor$1 : ceil)(n); + }; + + var trunc = mathTrunc; + + // `ToIntegerOrInfinity` abstract operation + // https://tc39.es/ecma262/#sec-tointegerorinfinity + var toIntegerOrInfinity$4 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); + }; + + var toIntegerOrInfinity$3 = toIntegerOrInfinity$4; + + var max$1 = Math.max; + var min$2 = Math.min; + + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex$1 = function (index, length) { + var integer = toIntegerOrInfinity$3(index); + return integer < 0 ? max$1(integer + length, 0) : min$2(integer, length); + }; + + var toIntegerOrInfinity$2 = toIntegerOrInfinity$4; + + var min$1 = Math.min; + + // `ToLength` abstract operation + // https://tc39.es/ecma262/#sec-tolength + var toLength$2 = function (argument) { + var len = toIntegerOrInfinity$2(argument); + return len > 0 ? min$1(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; + + var toLength$1 = toLength$2; + + // `LengthOfArrayLike` abstract operation + // https://tc39.es/ecma262/#sec-lengthofarraylike + var lengthOfArrayLike$3 = function (obj) { + return toLength$1(obj.length); + }; + + var toIndexedObject$4 = toIndexedObject$6; + var toAbsoluteIndex = toAbsoluteIndex$1; + var lengthOfArrayLike$2 = lengthOfArrayLike$3; + + // `Array.prototype.{ indexOf, includes }` methods implementation + var createMethod$3 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$4($this); + var length = lengthOfArrayLike$2(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + + var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$3(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$3(false) + }; + + var uncurryThis$d = functionUncurryThis; + var hasOwn$3 = hasOwnProperty_1; + var toIndexedObject$3 = toIndexedObject$6; + var indexOf$1 = arrayIncludes.indexOf; + var hiddenKeys$2 = hiddenKeys$4; + + var push$3 = uncurryThis$d([].push); + + var objectKeysInternal = function (object, names) { + var O = toIndexedObject$3(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$3(hiddenKeys$2, key) && hasOwn$3(O, key) && push$3(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$3(O, key = names[i++])) { + ~indexOf$1(result, key) || push$3(result, key); + } + return result; + }; + + // IE8- don't enum bug keys + var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + + var internalObjectKeys$1 = objectKeysInternal; + var enumBugKeys$2 = enumBugKeys$3; + + var hiddenKeys$1 = enumBugKeys$2.concat('length', 'prototype'); + + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + // eslint-disable-next-line es/no-object-getownpropertynames -- safe + objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$1); + }; + + var objectGetOwnPropertySymbols = {}; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe + objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + + var getBuiltIn$2 = getBuiltIn$4; + var uncurryThis$c = functionUncurryThis; + var getOwnPropertyNamesModule = objectGetOwnPropertyNames; + var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; + var anObject$7 = anObject$9; + + var concat$2 = uncurryThis$c([].concat); + + // all object keys, includes non-enumerable and symbols + var ownKeys$1 = getBuiltIn$2('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject$7(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$2(keys, getOwnPropertySymbols(it)) : keys; + }; + + var hasOwn$2 = hasOwnProperty_1; + var ownKeys = ownKeys$1; + var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; + var definePropertyModule$2 = objectDefineProperty; + + var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn$2(target, key) && !(exceptions && hasOwn$2(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; + + var fails$g = fails$o; + var isCallable$5 = isCallable$f; + + var replacement = /#|\.prototype\./; + + var isForced$1 = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable$5(detection) ? fails$g(detection) + : !!detection; + }; + + var normalize = isForced$1.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; + + var data = isForced$1.data = {}; + var NATIVE = isForced$1.NATIVE = 'N'; + var POLYFILL = isForced$1.POLYFILL = 'P'; + + var isForced_1 = isForced$1; + + var global$5 = global$e; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + var createNonEnumerableProperty$2 = createNonEnumerableProperty$4; + var defineBuiltIn$3 = defineBuiltIn$4; + var defineGlobalProperty = defineGlobalProperty$3; + var copyConstructorProperties = copyConstructorProperties$1; + var isForced = isForced_1; + + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key + */ + var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$5; + } else if (STATIC) { + target = global$5[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global$5[TARGET] && global$5[TARGET].prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty$2(sourceProperty, 'sham', true); + } + defineBuiltIn$3(target, key, sourceProperty, options); + } + }; + + var classof$6 = classofRaw$2; + + // `IsArray` abstract operation + // https://tc39.es/ecma262/#sec-isarray + // eslint-disable-next-line es/no-array-isarray -- safe + var isArray$2 = Array.isArray || function isArray(argument) { + return classof$6(argument) === 'Array'; + }; + + var $TypeError$2 = TypeError; + var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + + var doesNotExceedSafeInteger$1 = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError$2('Maximum allowed index exceeded'); + return it; + }; + + var DESCRIPTORS$3 = descriptors; + var definePropertyModule$1 = objectDefineProperty; + var createPropertyDescriptor = createPropertyDescriptor$3; + + var createProperty$1 = function (object, key, value) { + if (DESCRIPTORS$3) definePropertyModule$1.f(object, key, createPropertyDescriptor(0, value)); + else object[key] = value; + }; + + var wellKnownSymbol$9 = wellKnownSymbol$b; + + var TO_STRING_TAG$1 = wellKnownSymbol$9('toStringTag'); + var test = {}; + + test[TO_STRING_TAG$1] = 'z'; + + var toStringTagSupport = String(test) === '[object z]'; + + var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; + var isCallable$4 = isCallable$f; + var classofRaw$1 = classofRaw$2; + var wellKnownSymbol$8 = wellKnownSymbol$b; + + var TO_STRING_TAG = wellKnownSymbol$8('toStringTag'); + var $Object$1 = Object; + + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) === 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; + + // getting tag from ES6+ `Object.prototype.toString` + var classof$5 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object$1(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) === 'Object' && isCallable$4(O.callee) ? 'Arguments' : result; + }; + + var uncurryThis$b = functionUncurryThis; + var fails$f = fails$o; + var isCallable$3 = isCallable$f; + var classof$4 = classof$5; + var getBuiltIn$1 = getBuiltIn$4; + var inspectSource = inspectSource$2; + + var noop = function () { /* empty */ }; + var construct = getBuiltIn$1('Reflect', 'construct'); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec$1 = uncurryThis$b(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.test(noop); + + var isConstructorModern = function isConstructor(argument) { + if (!isCallable$3(argument)) return false; + try { + construct(noop, [], argument); + return true; + } catch (error) { + return false; + } + }; + + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$3(argument)) return false; + switch (classof$4(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec$1(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } + }; + + isConstructorLegacy.sham = true; + + // `IsConstructor` abstract operation + // https://tc39.es/ecma262/#sec-isconstructor + var isConstructor$1 = !construct || fails$f(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; + }) ? isConstructorLegacy : isConstructorModern; + + var isArray$1 = isArray$2; + var isConstructor = isConstructor$1; + var isObject$2 = isObject$8; + var wellKnownSymbol$7 = wellKnownSymbol$b; + + var SPECIES$2 = wellKnownSymbol$7('species'); + var $Array = Array; + + // a part of `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray$1(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === $Array || isArray$1(C.prototype))) C = undefined; + else if (isObject$2(C)) { + C = C[SPECIES$2]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array : C; + }; + + var arraySpeciesConstructor = arraySpeciesConstructor$1; + + // `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesCreate$2 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; + + var fails$e = fails$o; + var wellKnownSymbol$6 = wellKnownSymbol$b; + var V8_VERSION$1 = engineV8Version; + + var SPECIES$1 = wellKnownSymbol$6('species'); + + var arrayMethodHasSpeciesSupport$3 = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION$1 >= 51 || !fails$e(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES$1] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); + }; + + var $$b = _export; + var fails$d = fails$o; + var isArray = isArray$2; + var isObject$1 = isObject$8; + var toObject$6 = toObject$8; + var lengthOfArrayLike$1 = lengthOfArrayLike$3; + var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1; + var createProperty = createProperty$1; + var arraySpeciesCreate$1 = arraySpeciesCreate$2; + var arrayMethodHasSpeciesSupport$2 = arrayMethodHasSpeciesSupport$3; + var wellKnownSymbol$5 = wellKnownSymbol$b; + var V8_VERSION = engineV8Version; + + var IS_CONCAT_SPREADABLE = wellKnownSymbol$5('isConcatSpreadable'); + + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/679 + var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails$d(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; + }); + + var isConcatSpreadable = function (O) { + if (!isObject$1(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); + }; + + var FORCED$2 = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport$2('concat'); + + // `Array.prototype.concat` method + // https://tc39.es/ecma262/#sec-array.prototype.concat + // with adding support of @@isConcatSpreadable and @@species + $$b({ target: 'Array', proto: true, arity: 1, forced: FORCED$2 }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject$6(this); + var A = arraySpeciesCreate$1(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike$1(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty(A, n++, E); + } + } + A.length = n; + return A; + } + }); + + var classofRaw = classofRaw$2; + var uncurryThis$a = functionUncurryThis; + + var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$a(fn); + }; + + var uncurryThis$9 = functionUncurryThisClause; + var aCallable = aCallable$2; + var NATIVE_BIND$1 = functionBindNative; + + var bind$1 = uncurryThis$9(uncurryThis$9.bind); + + // optional / simple context binding + var functionBindContext = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND$1 ? bind$1(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; + + var bind = functionBindContext; + var uncurryThis$8 = functionUncurryThis; + var IndexedObject$2 = indexedObject; + var toObject$5 = toObject$8; + var lengthOfArrayLike = lengthOfArrayLike$3; + var arraySpeciesCreate = arraySpeciesCreate$2; + + var push$2 = uncurryThis$8([].push); + + // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation + var createMethod$2 = function (TYPE) { + var IS_MAP = TYPE === 1; + var IS_FILTER = TYPE === 2; + var IS_SOME = TYPE === 3; + var IS_EVERY = TYPE === 4; + var IS_FIND_INDEX = TYPE === 6; + var IS_FILTER_REJECT = TYPE === 7; + var NO_HOLES = TYPE === 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject$5($this); + var self = IndexedObject$2(O); + var length = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push$2(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push$2(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; + }; + + var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod$2(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod$2(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod$2(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod$2(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod$2(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod$2(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod$2(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod$2(7) + }; + + var $$a = _export; + var $filter = arrayIteration.filter; + var arrayMethodHasSpeciesSupport$1 = arrayMethodHasSpeciesSupport$3; + + var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport$1('filter'); + + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + // with adding support of @@species + $$a({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var objectDefineProperties = {}; + + var internalObjectKeys = objectKeysInternal; + var enumBugKeys$1 = enumBugKeys$3; + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + // eslint-disable-next-line es/no-object-keys -- safe + var objectKeys$3 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); + }; + + var DESCRIPTORS$2 = descriptors; + var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; + var definePropertyModule = objectDefineProperty; + var anObject$6 = anObject$9; + var toIndexedObject$2 = toIndexedObject$6; + var objectKeys$2 = objectKeys$3; + + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + // eslint-disable-next-line es/no-object-defineproperties -- safe + objectDefineProperties.f = DESCRIPTORS$2 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$6(O); + var props = toIndexedObject$2(Properties); + var keys = objectKeys$2(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; + }; + + var getBuiltIn = getBuiltIn$4; + + var html$1 = getBuiltIn('document', 'documentElement'); + + /* global ActiveXObject -- old IE, WSH */ + var anObject$5 = anObject$9; + var definePropertiesModule = objectDefineProperties; + var enumBugKeys = enumBugKeys$3; + var hiddenKeys = hiddenKeys$4; + var html = html$1; + var documentCreateElement$1 = documentCreateElement$2; + var sharedKey$1 = sharedKey$3; + + var GT = '>'; + var LT = '<'; + var PROTOTYPE = 'prototype'; + var SCRIPT = 'script'; + var IE_PROTO$1 = sharedKey$1('IE_PROTO'); + + var EmptyConstructor = function () { /* empty */ }; + + var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; + }; + + // Create object with fake `null` prototype: use ActiveX Object with cleared prototype + var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; + }; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement$1('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; + }; + + // Check for document.domain and active x support + // No need to use active x approach when document.domain is not set + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + // avoid IE GC bug + var activeXDocument; + var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); + }; + + hiddenKeys[IE_PROTO$1] = true; + + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + // eslint-disable-next-line es/no-object-create -- safe + var objectCreate = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject$5(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO$1] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); + }; + + var wellKnownSymbol$4 = wellKnownSymbol$b; + var create$1 = objectCreate; + var defineProperty$1 = objectDefineProperty.f; + + var UNSCOPABLES = wellKnownSymbol$4('unscopables'); + var ArrayPrototype = Array.prototype; + + // Array.prototype[@@unscopables] + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + if (ArrayPrototype[UNSCOPABLES] === undefined) { + defineProperty$1(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create$1(null) + }); + } + + // add a key to Array.prototype[@@unscopables] + var addToUnscopables$2 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; + }; + + var $$9 = _export; + var $find = arrayIteration.find; + var addToUnscopables$1 = addToUnscopables$2; + + var FIND = 'find'; + var SKIPS_HOLES = true; + + // Shouldn't skip holes + // eslint-disable-next-line es/no-array-prototype-find -- testing + if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); + + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + $$9({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables$1(FIND); + + var $$8 = _export; + var $includes = arrayIncludes.includes; + var fails$c = fails$o; + var addToUnscopables = addToUnscopables$2; + + // FF99+ bug + var BROKEN_ON_SPARSE = fails$c(function () { + // eslint-disable-next-line es/no-array-prototype-includes -- detection + return !Array(1).includes(); + }); + + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + $$8({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables('includes'); + + var fails$b = fails$o; + + var arrayMethodIsStrict$2 = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails$b(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); + }; + + var $$7 = _export; + var uncurryThis$7 = functionUncurryThis; + var IndexedObject$1 = indexedObject; + var toIndexedObject$1 = toIndexedObject$6; + var arrayMethodIsStrict$1 = arrayMethodIsStrict$2; + + var nativeJoin = uncurryThis$7([].join); + + var ES3_STRINGS = IndexedObject$1 !== Object; + var FORCED$1 = ES3_STRINGS || !arrayMethodIsStrict$1('join', ','); + + // `Array.prototype.join` method + // https://tc39.es/ecma262/#sec-array.prototype.join + $$7({ target: 'Array', proto: true, forced: FORCED$1 }, { + join: function join(separator) { + return nativeJoin(toIndexedObject$1(this), separator === undefined ? ',' : separator); + } + }); + + var $$6 = _export; + var $map = arrayIteration.map; + var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$3; + + var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); + + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + // with adding support of @@species + $$6({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var $$5 = _export; + var fails$a = fails$o; + var toObject$4 = toObject$8; + var toPrimitive = toPrimitive$2; + + var FORCED = fails$a(function () { + return new Date(NaN).toJSON() !== null + || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; + }); + + // `Date.prototype.toJSON` method + // https://tc39.es/ecma262/#sec-date.prototype.tojson + $$5({ target: 'Date', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + toJSON: function toJSON(key) { + var O = toObject$4(this); + var pv = toPrimitive(O, 'number'); + return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); + } + }); + + var DESCRIPTORS$1 = descriptors; + var uncurryThis$6 = functionUncurryThis; + var call$7 = functionCall; + var fails$9 = fails$o; + var objectKeys$1 = objectKeys$3; + var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; + var propertyIsEnumerableModule = objectPropertyIsEnumerable; + var toObject$3 = toObject$8; + var IndexedObject = indexedObject; + + // eslint-disable-next-line es/no-object-assign -- safe + var $assign = Object.assign; + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + var defineProperty = Object.defineProperty; + var concat$1 = uncurryThis$6([].concat); + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + var objectAssign = !$assign || fails$9(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS$1 && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { + enumerable: true, + get: function () { + defineProperty(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol('assign detection'); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] !== 7 || objectKeys$1($assign({}, B)).join('') !== alphabet; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject$3(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat$1(objectKeys$1(S), getOwnPropertySymbols(S)) : objectKeys$1(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS$1 || call$7(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; + } : $assign; + + var $$4 = _export; + var assign = objectAssign; + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + // eslint-disable-next-line es/no-object-assign -- required for testing + $$4({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign + }); + + var fails$8 = fails$o; + + var correctPrototypeGetter = !fails$8(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; + }); + + var hasOwn$1 = hasOwnProperty_1; + var isCallable$2 = isCallable$f; + var toObject$2 = toObject$8; + var sharedKey = sharedKey$3; + var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter; + + var IE_PROTO = sharedKey('IE_PROTO'); + var $Object = Object; + var ObjectPrototype = $Object.prototype; + + // `Object.getPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.getprototypeof + // eslint-disable-next-line es/no-object-getprototypeof -- safe + var objectGetPrototypeOf$1 = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject$2(O); + if (hasOwn$1(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable$2(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; + }; + + var DESCRIPTORS = descriptors; + var fails$7 = fails$o; + var uncurryThis$5 = functionUncurryThis; + var objectGetPrototypeOf = objectGetPrototypeOf$1; + var objectKeys = objectKeys$3; + var toIndexedObject = toIndexedObject$6; + var $propertyIsEnumerable = objectPropertyIsEnumerable.f; + + var propertyIsEnumerable = uncurryThis$5($propertyIsEnumerable); + var push$1 = uncurryThis$5([].push); + + // in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys + // of `null` prototype objects + var IE_BUG = DESCRIPTORS && fails$7(function () { + // eslint-disable-next-line es/no-object-create -- safe + var O = Object.create(null); + O[2] = 2; + return !propertyIsEnumerable(O, 2); + }); + + // `Object.{ entries, values }` methods implementation + var createMethod$1 = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null; + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) { + push$1(result, TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; + }; + + var objectToArray = { + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + entries: createMethod$1(true), + // `Object.values` method + // https://tc39.es/ecma262/#sec-object.values + values: createMethod$1(false) + }; + + var $$3 = _export; + var $entries = objectToArray.entries; + + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + $$3({ target: 'Object', stat: true }, { + entries: function entries(O) { + return $entries(O); + } + }); + + var $$2 = _export; + var toObject$1 = toObject$8; + var nativeKeys = objectKeys$3; + var fails$6 = fails$o; + + var FAILS_ON_PRIMITIVES = fails$6(function () { nativeKeys(1); }); + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + $$2({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + keys: function keys(it) { + return nativeKeys(toObject$1(it)); + } + }); + + var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; + var classof$3 = classof$5; + + // `Object.prototype.toString` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.tostring + var objectToString = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$3(this) + ']'; + }; + + var TO_STRING_TAG_SUPPORT = toStringTagSupport; + var defineBuiltIn$2 = defineBuiltIn$4; + var toString$6 = objectToString; + + // `Object.prototype.toString` method + // https://tc39.es/ecma262/#sec-object.prototype.tostring + if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn$2(Object.prototype, 'toString', toString$6, { unsafe: true }); + } + + var classof$2 = classof$5; + + var $String = String; + + var toString$5 = function (argument) { + if (classof$2(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); + }; + + var anObject$4 = anObject$9; + + // `RegExp.prototype.flags` getter implementation + // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags + var regexpFlags$1 = function () { + var that = anObject$4(this); + var result = ''; + if (that.hasIndices) result += 'd'; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.unicodeSets) result += 'v'; + if (that.sticky) result += 'y'; + return result; + }; + + var fails$5 = fails$o; + var global$4 = global$e; + + // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError + var $RegExp$2 = global$4.RegExp; + + var UNSUPPORTED_Y$1 = fails$5(function () { + var re = $RegExp$2('a', 'y'); + re.lastIndex = 2; + return re.exec('abcd') !== null; + }); + + // UC Browser bug + // https://github.com/zloirock/core-js/issues/1008 + var MISSED_STICKY = UNSUPPORTED_Y$1 || fails$5(function () { + return !$RegExp$2('a', 'y').sticky; + }); + + var BROKEN_CARET = UNSUPPORTED_Y$1 || fails$5(function () { + // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 + var re = $RegExp$2('^r', 'gy'); + re.lastIndex = 2; + return re.exec('str') !== null; + }); + + var regexpStickyHelpers = { + BROKEN_CARET: BROKEN_CARET, + MISSED_STICKY: MISSED_STICKY, + UNSUPPORTED_Y: UNSUPPORTED_Y$1 + }; + + var fails$4 = fails$o; + var global$3 = global$e; + + // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError + var $RegExp$1 = global$3.RegExp; + + var regexpUnsupportedDotAll = fails$4(function () { + var re = $RegExp$1('.', 's'); + return !(re.dotAll && re.test('\n') && re.flags === 's'); + }); + + var fails$3 = fails$o; + var global$2 = global$e; + + // babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError + var $RegExp = global$2.RegExp; + + var regexpUnsupportedNcg = fails$3(function () { + var re = $RegExp('(?b)', 'g'); + return re.exec('b').groups.a !== 'b' || + 'b'.replace(re, '$c') !== 'bc'; + }); + + /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ + /* eslint-disable regexp/no-useless-quantifier -- testing */ + var call$6 = functionCall; + var uncurryThis$4 = functionUncurryThis; + var toString$4 = toString$5; + var regexpFlags = regexpFlags$1; + var stickyHelpers = regexpStickyHelpers; + var shared = shared$4; + var create = objectCreate; + var getInternalState = internalState.get; + var UNSUPPORTED_DOT_ALL = regexpUnsupportedDotAll; + var UNSUPPORTED_NCG = regexpUnsupportedNcg; + + var nativeReplace = shared('native-string-replace', String.prototype.replace); + var nativeExec = RegExp.prototype.exec; + var patchedExec = nativeExec; + var charAt$3 = uncurryThis$4(''.charAt); + var indexOf = uncurryThis$4(''.indexOf); + var replace$1 = uncurryThis$4(''.replace); + var stringSlice$3 = uncurryThis$4(''.slice); + + var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/; + var re2 = /b*/g; + call$6(nativeExec, re1, 'a'); + call$6(nativeExec, re2, 'a'); + return re1.lastIndex !== 0 || re2.lastIndex !== 0; + })(); + + var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; + + // nonparticipating capturing group, copied from es5-shim's String#split patch. + var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + + var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; + + if (PATCH) { + patchedExec = function exec(string) { + var re = this; + var state = getInternalState(re); + var str = toString$4(string); + var raw = state.raw; + var result, reCopy, lastIndex, match, i, object, group; + + if (raw) { + raw.lastIndex = re.lastIndex; + result = call$6(patchedExec, raw, str); + re.lastIndex = raw.lastIndex; + return result; + } + + var groups = state.groups; + var sticky = UNSUPPORTED_Y && re.sticky; + var flags = call$6(regexpFlags, re); + var source = re.source; + var charsAdded = 0; + var strCopy = str; + + if (sticky) { + flags = replace$1(flags, 'y', ''); + if (indexOf(flags, 'g') === -1) { + flags += 'g'; + } + + strCopy = stringSlice$3(str, re.lastIndex); + // Support anchored sticky behavior. + if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt$3(str, re.lastIndex - 1) !== '\n')) { + source = '(?: ' + source + ')'; + strCopy = ' ' + strCopy; + charsAdded++; + } + // ^(? + rx + ) is needed, in combination with some str slicing, to + // simulate the 'y' flag. + reCopy = new RegExp('^(?:' + source + ')', flags); + } + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + source + '$(?!\\s)', flags); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; + + match = call$6(nativeExec, sticky ? reCopy : re, strCopy); + + if (sticky) { + if (match) { + match.input = stringSlice$3(match.input, charsAdded); + match[0] = stringSlice$3(match[0], charsAdded); + match.index = re.lastIndex; + re.lastIndex += match[0].length; + } else re.lastIndex = 0; + } else if (UPDATES_LAST_INDEX_WRONG && match) { + re.lastIndex = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/ + call$6(nativeReplace, match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + if (match && groups) { + match.groups = object = create(null); + for (i = 0; i < groups.length; i++) { + group = groups[i]; + object[group[0]] = match[group[1]]; + } + } + + return match; + }; + } + + var regexpExec$2 = patchedExec; + + var $$1 = _export; + var exec = regexpExec$2; + + // `RegExp.prototype.exec` method + // https://tc39.es/ecma262/#sec-regexp.prototype.exec + $$1({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { + exec: exec + }); + + var call$5 = functionCall; + var hasOwn = hasOwnProperty_1; + var isPrototypeOf = objectIsPrototypeOf; + var regExpFlags = regexpFlags$1; + + var RegExpPrototype$2 = RegExp.prototype; + + var regexpGetFlags = function (R) { + var flags = R.flags; + return flags === undefined && !('flags' in RegExpPrototype$2) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype$2, R) + ? call$5(regExpFlags, R) : flags; + }; + + var PROPER_FUNCTION_NAME = functionName.PROPER; + var defineBuiltIn$1 = defineBuiltIn$4; + var anObject$3 = anObject$9; + var $toString = toString$5; + var fails$2 = fails$o; + var getRegExpFlags = regexpGetFlags; + + var TO_STRING = 'toString'; + var RegExpPrototype$1 = RegExp.prototype; + var nativeToString = RegExpPrototype$1[TO_STRING]; + + var NOT_GENERIC = fails$2(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; }); + // FF44- RegExp#toString has a wrong name + var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING; + + // `RegExp.prototype.toString` method + // https://tc39.es/ecma262/#sec-regexp.prototype.tostring + if (NOT_GENERIC || INCORRECT_NAME) { + defineBuiltIn$1(RegExpPrototype$1, TO_STRING, function toString() { + var R = anObject$3(this); + var pattern = $toString(R.source); + var flags = $toString(getRegExpFlags(R)); + return '/' + pattern + '/' + flags; + }, { unsafe: true }); + } + + var isObject = isObject$8; + var classof$1 = classofRaw$2; + var wellKnownSymbol$3 = wellKnownSymbol$b; + + var MATCH$1 = wellKnownSymbol$3('match'); + + // `IsRegExp` abstract operation + // https://tc39.es/ecma262/#sec-isregexp + var isRegexp = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH$1]) !== undefined ? !!isRegExp : classof$1(it) === 'RegExp'); + }; + + var isRegExp = isRegexp; + + var $TypeError$1 = TypeError; + + var notARegexp = function (it) { + if (isRegExp(it)) { + throw new $TypeError$1("The method doesn't accept regular expressions"); + } return it; + }; + + var wellKnownSymbol$2 = wellKnownSymbol$b; + + var MATCH = wellKnownSymbol$2('match'); + + var correctIsRegexpLogic = function (METHOD_NAME) { + var regexp = /./; + try { + '/./'[METHOD_NAME](regexp); + } catch (error1) { + try { + regexp[MATCH] = false; + return '/./'[METHOD_NAME](regexp); + } catch (error2) { /* empty */ } + } return false; + }; + + var $ = _export; + var uncurryThis$3 = functionUncurryThis; + var notARegExp = notARegexp; + var requireObjectCoercible$3 = requireObjectCoercible$6; + var toString$3 = toString$5; + var correctIsRegExpLogic = correctIsRegexpLogic; + + var stringIndexOf$1 = uncurryThis$3(''.indexOf); + + // `String.prototype.includes` method + // https://tc39.es/ecma262/#sec-string.prototype.includes + $({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, { + includes: function includes(searchString /* , position = 0 */) { + return !!~stringIndexOf$1( + toString$3(requireObjectCoercible$3(this)), + toString$3(notARegExp(searchString)), + arguments.length > 1 ? arguments[1] : undefined + ); + } + }); + + var NATIVE_BIND = functionBindNative; + + var FunctionPrototype = Function.prototype; + var apply$1 = FunctionPrototype.apply; + var call$4 = FunctionPrototype.call; + + // eslint-disable-next-line es/no-reflect -- safe + var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call$4.bind(apply$1) : function () { + return call$4.apply(apply$1, arguments); + }); + + // TODO: Remove from `core-js@4` since it's moved to entry points + + var call$3 = functionCall; + var defineBuiltIn = defineBuiltIn$4; + var regexpExec$1 = regexpExec$2; + var fails$1 = fails$o; + var wellKnownSymbol$1 = wellKnownSymbol$b; + var createNonEnumerableProperty$1 = createNonEnumerableProperty$4; + + var SPECIES = wellKnownSymbol$1('species'); + var RegExpPrototype = RegExp.prototype; + + var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) { + var SYMBOL = wellKnownSymbol$1(KEY); + + var DELEGATES_TO_SYMBOL = !fails$1(function () { + // String methods call symbol-named RegExp methods + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) !== 7; + }); + + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$1(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + + if (KEY === 'split') { + // We can't use real regex here since it causes deoptimization + // and serious performance degradation in V8 + // https://github.com/zloirock/core-js/issues/306 + re = {}; + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + re.constructor[SPECIES] = function () { return re; }; + re.flags = ''; + re[SYMBOL] = /./[SYMBOL]; + } + + re.exec = function () { + execCalled = true; + return null; + }; + + re[SYMBOL](''); + return !execCalled; + }); + + if ( + !DELEGATES_TO_SYMBOL || + !DELEGATES_TO_EXEC || + FORCED + ) { + var nativeRegExpMethod = /./[SYMBOL]; + var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { + var $exec = regexp.exec; + if ($exec === regexpExec$1 || $exec === RegExpPrototype.exec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { done: true, value: call$3(nativeRegExpMethod, regexp, str, arg2) }; + } + return { done: true, value: call$3(nativeMethod, str, regexp, arg2) }; + } + return { done: false }; + }); + + defineBuiltIn(String.prototype, KEY, methods[0]); + defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]); + } + + if (SHAM) createNonEnumerableProperty$1(RegExpPrototype[SYMBOL], 'sham', true); + }; + + var uncurryThis$2 = functionUncurryThis; + var toIntegerOrInfinity$1 = toIntegerOrInfinity$4; + var toString$2 = toString$5; + var requireObjectCoercible$2 = requireObjectCoercible$6; + + var charAt$2 = uncurryThis$2(''.charAt); + var charCodeAt = uncurryThis$2(''.charCodeAt); + var stringSlice$2 = uncurryThis$2(''.slice); + + var createMethod = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString$2(requireObjectCoercible$2($this)); + var position = toIntegerOrInfinity$1(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt$2(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice$2(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; + }; + + var stringMultibyte = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod(true) + }; + + var charAt$1 = stringMultibyte.charAt; + + // `AdvanceStringIndex` abstract operation + // https://tc39.es/ecma262/#sec-advancestringindex + var advanceStringIndex$1 = function (S, index, unicode) { + return index + (unicode ? charAt$1(S, index).length : 1); + }; + + var uncurryThis$1 = functionUncurryThis; + var toObject = toObject$8; + + var floor = Math.floor; + var charAt = uncurryThis$1(''.charAt); + var replace = uncurryThis$1(''.replace); + var stringSlice$1 = uncurryThis$1(''.slice); + // eslint-disable-next-line redos/no-vulnerable -- safe + var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; + var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; + + // `GetSubstitution` abstract operation + // https://tc39.es/ecma262/#sec-getsubstitution + var getSubstitution$1 = function (matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + return replace(replacement, symbols, function (match, ch) { + var capture; + switch (charAt(ch, 0)) { + case '$': return '$'; + case '&': return matched; + case '`': return stringSlice$1(str, 0, position); + case "'": return stringSlice$1(str, tailPos); + case '<': + capture = namedCaptures[stringSlice$1(ch, 1, -1)]; + break; + default: // \d\d? + var n = +ch; + if (n === 0) return match; + if (n > m) { + var f = floor(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1); + return match; + } + capture = captures[n - 1]; + } + return capture === undefined ? '' : capture; + }); + }; + + var call$2 = functionCall; + var anObject$2 = anObject$9; + var isCallable$1 = isCallable$f; + var classof = classofRaw$2; + var regexpExec = regexpExec$2; + + var $TypeError = TypeError; + + // `RegExpExec` abstract operation + // https://tc39.es/ecma262/#sec-regexpexec + var regexpExecAbstract = function (R, S) { + var exec = R.exec; + if (isCallable$1(exec)) { + var result = call$2(exec, R, S); + if (result !== null) anObject$2(result); + return result; + } + if (classof(R) === 'RegExp') return call$2(regexpExec, R, S); + throw new $TypeError('RegExp#exec called on incompatible receiver'); + }; + + var apply = functionApply; + var call$1 = functionCall; + var uncurryThis = functionUncurryThis; + var fixRegExpWellKnownSymbolLogic$1 = fixRegexpWellKnownSymbolLogic; + var fails = fails$o; + var anObject$1 = anObject$9; + var isCallable = isCallable$f; + var isNullOrUndefined$1 = isNullOrUndefined$4; + var toIntegerOrInfinity = toIntegerOrInfinity$4; + var toLength = toLength$2; + var toString$1 = toString$5; + var requireObjectCoercible$1 = requireObjectCoercible$6; + var advanceStringIndex = advanceStringIndex$1; + var getMethod$1 = getMethod$3; + var getSubstitution = getSubstitution$1; + var regExpExec$1 = regexpExecAbstract; + var wellKnownSymbol = wellKnownSymbol$b; + + var REPLACE = wellKnownSymbol('replace'); + var max = Math.max; + var min = Math.min; + var concat = uncurryThis([].concat); + var push = uncurryThis([].push); + var stringIndexOf = uncurryThis(''.indexOf); + var stringSlice = uncurryThis(''.slice); + + var maybeToString = function (it) { + return it === undefined ? it : String(it); + }; + + // IE <= 11 replaces $0 with the whole match, as if it was $& + // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 + var REPLACE_KEEPS_$0 = (function () { + // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing + return 'a'.replace(/./, '$0') === '$0'; + })(); + + // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string + var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { + if (/./[REPLACE]) { + return /./[REPLACE]('a', '$0') === ''; + } + return false; + })(); + + var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + var re = /./; + re.exec = function () { + var result = []; + result.groups = { a: '7' }; + return result; + }; + // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive + return ''.replace(re, '$') !== '7'; + }); + + // @@replace logic + fixRegExpWellKnownSymbolLogic$1('replace', function (_, nativeReplace, maybeCallNative) { + var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; + + return [ + // `String.prototype.replace` method + // https://tc39.es/ecma262/#sec-string.prototype.replace + function replace(searchValue, replaceValue) { + var O = requireObjectCoercible$1(this); + var replacer = isNullOrUndefined$1(searchValue) ? undefined : getMethod$1(searchValue, REPLACE); + return replacer + ? call$1(replacer, searchValue, O, replaceValue) + : call$1(nativeReplace, toString$1(O), searchValue, replaceValue); + }, + // `RegExp.prototype[@@replace]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace + function (string, replaceValue) { + var rx = anObject$1(this); + var S = toString$1(string); + + if ( + typeof replaceValue == 'string' && + stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 && + stringIndexOf(replaceValue, '$<') === -1 + ) { + var res = maybeCallNative(nativeReplace, rx, S, replaceValue); + if (res.done) return res.value; + } + + var functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString$1(replaceValue); + + var global = rx.global; + var fullUnicode; + if (global) { + fullUnicode = rx.unicode; + rx.lastIndex = 0; + } + + var results = []; + var result; + while (true) { + result = regExpExec$1(rx, S); + if (result === null) break; + + push(results, result); + if (!global) break; + + var matchStr = toString$1(result[0]); + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + } + + var accumulatedResult = ''; + var nextSourcePosition = 0; + for (var i = 0; i < results.length; i++) { + result = results[i]; + + var matched = toString$1(result[0]); + var position = max(min(toIntegerOrInfinity(result.index), S.length), 0); + var captures = []; + var replacement; + // NOTE: This is equivalent to + // captures = result.slice(1).map(maybeToString) + // but for some reason `nativeSlice.call(result, 1, result.length)` (called in + // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and + // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. + for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j])); + var namedCaptures = result.groups; + if (functionalReplace) { + var replacerArgs = concat([matched], captures, position, S); + if (namedCaptures !== undefined) push(replacerArgs, namedCaptures); + replacement = toString$1(apply(replaceValue, undefined, replacerArgs)); + } else { + replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); + } + if (position >= nextSourcePosition) { + accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement; + nextSourcePosition = position + matched.length; + } + } + + return accumulatedResult + stringSlice(S, nextSourcePosition); + } + ]; + }, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); + + // `SameValue` abstract operation + // https://tc39.es/ecma262/#sec-samevalue + // eslint-disable-next-line es/no-object-is -- safe + var sameValue$1 = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare -- NaN check + return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y; + }; + + var call = functionCall; + var fixRegExpWellKnownSymbolLogic = fixRegexpWellKnownSymbolLogic; + var anObject = anObject$9; + var isNullOrUndefined = isNullOrUndefined$4; + var requireObjectCoercible = requireObjectCoercible$6; + var sameValue = sameValue$1; + var toString = toString$5; + var getMethod = getMethod$3; + var regExpExec = regexpExecAbstract; + + // @@search logic + fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) { + return [ + // `String.prototype.search` method + // https://tc39.es/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = requireObjectCoercible(this); + var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH); + return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O)); + }, + // `RegExp.prototype[@@search]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@search + function (string) { + var rx = anObject(this); + var S = toString(string); + var res = maybeCallNative(nativeSearch, rx, S); + + if (res.done) return res.value; + + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regExpExec(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + } + ]; + }); + + // iterable DOM collections + // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods + var domIterables = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 + }; + + // in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` + var documentCreateElement = documentCreateElement$2; + + var classList = documentCreateElement('span').classList; + var DOMTokenListPrototype$1 = classList && classList.constructor && classList.constructor.prototype; + + var domTokenListPrototype = DOMTokenListPrototype$1 === Object.prototype ? undefined : DOMTokenListPrototype$1; + + var $forEach = arrayIteration.forEach; + var arrayMethodIsStrict = arrayMethodIsStrict$2; + + var STRICT_METHOD = arrayMethodIsStrict('forEach'); + + // `Array.prototype.forEach` method implementation + // https://tc39.es/ecma262/#sec-array.prototype.foreach + var arrayForEach = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + // eslint-disable-next-line es/no-array-prototype-foreach -- safe + } : [].forEach; + + var global$1 = global$e; + var DOMIterables = domIterables; + var DOMTokenListPrototype = domTokenListPrototype; + var forEach = arrayForEach; + var createNonEnumerableProperty = createNonEnumerableProperty$4; + + var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } + }; + + for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global$1[COLLECTION_NAME] && global$1[COLLECTION_NAME].prototype); + } + } + + handlePrototype(DOMTokenListPrototype); + /** * @author: Dennis Hernández * @update zhixin wen */ - var Utils = $.fn.bootstrapTable.utils; + var Utils = $$c.fn.bootstrapTable.utils; var UtilsCookie = { cookieIds: { sortOrder: 'bs.table.sortOrder', @@ -5913,10 +16557,10 @@ }; var filterContainer = header; if (that.options.filterControlContainer) { - filterContainer = $("".concat(that.options.filterControlContainer)); + filterContainer = $$c("".concat(that.options.filterControlContainer)); } filterContainer.find(searchControls).each(function () { - var field = $(this).closest('[data-field]').data('field'); + var field = $$c(this).closest('[data-field]').data('field'); var filteredCookies = parsedCookieFilters.filter(function (cookie) { return cookie.field === field; }); @@ -5929,7 +16573,7 @@ }, 250); } }; - Object.assign($.fn.bootstrapTable.defaults, { + Object.assign($$c.fn.bootstrapTable.defaults, { cookie: false, cookieExpire: '2h', cookiePath: null, @@ -5952,13 +16596,13 @@ removeItem: undefined } }); - $.fn.bootstrapTable.methods.push('getCookies'); - $.fn.bootstrapTable.methods.push('deleteCookie'); - Object.assign($.fn.bootstrapTable.utils, { + $$c.fn.bootstrapTable.methods.push('getCookies'); + $$c.fn.bootstrapTable.methods.push('deleteCookie'); + Object.assign($$c.fn.bootstrapTable.utils, { setCookie: UtilsCookie.setCookie, getCookie: UtilsCookie.getCookie }); - $.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) { + $$c.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) { function _class() { _classCallCheck(this, _class); return _callSuper(this, _class, arguments); @@ -6389,15 +17033,15 @@ } } }]); - }($.BootstrapTable); + }($$c.BootstrapTable); })); (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('core-js/modules/es.array.concat.js'), require('core-js/modules/es.array.find.js'), require('core-js/modules/es.object.assign.js'), require('core-js/modules/es.object.to-string.js'), require('jquery')) : - typeof define === 'function' && define.amd ? define(['core-js/modules/es.array.concat.js', 'core-js/modules/es.array.find.js', 'core-js/modules/es.object.assign.js', 'core-js/modules/es.object.to-string.js', 'jquery'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(null, null, null, null, global.jQuery)); -})(this, (function (es_array_concat_js, es_array_find_js, es_object_assign_js, es_object_toString_js, $) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) : + typeof define === 'function' && define.amd ? define(['jquery'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jQuery)); +})(this, (function ($$3) { 'use strict'; function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); @@ -6472,7 +17116,7 @@ if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { - var i = e.call(t, r ); + var i = e.call(t, r); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } @@ -6483,20 +17127,1592 @@ return "symbol" == typeof i ? i : i + ""; } + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + var check = function (it) { + return it && it.Math === Math && it; + }; + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global$a = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + var objectGetOwnPropertyDescriptor = {}; + + var fails$c = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + + var fails$b = fails$c; + + // Detect IE8's incomplete defineProperty implementation + var descriptors = !fails$b(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; + }); + + var fails$a = fails$c; + + var functionBindNative = !fails$a(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); + }); + + var NATIVE_BIND$2 = functionBindNative; + + var call$5 = Function.prototype.call; + + var functionCall = NATIVE_BIND$2 ? call$5.bind(call$5) : function () { + return call$5.apply(call$5, arguments); + }; + + var objectPropertyIsEnumerable = {}; + + var $propertyIsEnumerable = {}.propertyIsEnumerable; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + + // Nashorn ~ JDK8 bug + var NASHORN_BUG = getOwnPropertyDescriptor$1 && !$propertyIsEnumerable.call({ 1: 2 }, 1); + + // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable + objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$1(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable; + + var createPropertyDescriptor$3 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + var NATIVE_BIND$1 = functionBindNative; + + var FunctionPrototype$1 = Function.prototype; + var call$4 = FunctionPrototype$1.call; + var uncurryThisWithBind = NATIVE_BIND$1 && FunctionPrototype$1.bind.bind(call$4, call$4); + + var functionUncurryThis = NATIVE_BIND$1 ? uncurryThisWithBind : function (fn) { + return function () { + return call$4.apply(fn, arguments); + }; + }; + + var uncurryThis$d = functionUncurryThis; + + var toString$2 = uncurryThis$d({}.toString); + var stringSlice$1 = uncurryThis$d(''.slice); + + var classofRaw$2 = function (it) { + return stringSlice$1(toString$2(it), 8, -1); + }; + + var uncurryThis$c = functionUncurryThis; + var fails$9 = fails$c; + var classof$4 = classofRaw$2; + + var $Object$3 = Object; + var split = uncurryThis$c(''.split); + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var indexedObject = fails$9(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$3('z').propertyIsEnumerable(0); + }) ? function (it) { + return classof$4(it) === 'String' ? split(it, '') : $Object$3(it); + } : $Object$3; + + // we can't use just `it == null` since of `document.all` special case + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec + var isNullOrUndefined$2 = function (it) { + return it === null || it === undefined; + }; + + var isNullOrUndefined$1 = isNullOrUndefined$2; + + var $TypeError$6 = TypeError; + + // `RequireObjectCoercible` abstract operation + // https://tc39.es/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible$2 = function (it) { + if (isNullOrUndefined$1(it)) throw new $TypeError$6("Can't call method on " + it); + return it; + }; + + // toObject with fallback for non-array-like ES3 strings + var IndexedObject$2 = indexedObject; + var requireObjectCoercible$1 = requireObjectCoercible$2; + + var toIndexedObject$4 = function (it) { + return IndexedObject$2(requireObjectCoercible$1(it)); + }; + + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + var documentAll = typeof document == 'object' && document.all; + + // `IsCallable` abstract operation + // https://tc39.es/ecma262/#sec-iscallable + // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing + var isCallable$c = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; + } : function (argument) { + return typeof argument == 'function'; + }; + + var isCallable$b = isCallable$c; + + var isObject$7 = function (it) { + return typeof it == 'object' ? it !== null : isCallable$b(it); + }; + + var global$9 = global$a; + var isCallable$a = isCallable$c; + + var aFunction = function (argument) { + return isCallable$a(argument) ? argument : undefined; + }; + + var getBuiltIn$4 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$9[namespace]) : global$9[namespace] && global$9[namespace][method]; + }; + + var uncurryThis$b = functionUncurryThis; + + var objectIsPrototypeOf = uncurryThis$b({}.isPrototypeOf); + + var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + var global$8 = global$a; + var userAgent = engineUserAgent; + + var process = global$8.process; + var Deno = global$8.Deno; + var versions = process && process.versions || Deno && Deno.version; + var v8 = versions && versions.v8; + var match, version; + + if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + + // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` + // so check `userAgent` even if `.v8` exists, but 0 + if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } + } + + var engineV8Version = version; + + /* eslint-disable es/no-symbol -- required for testing */ + var V8_VERSION$2 = engineV8Version; + var fails$8 = fails$c; + var global$7 = global$a; + + var $String$3 = global$7.String; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$8(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$3(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$2 && V8_VERSION$2 < 41; + }); + + /* eslint-disable es/no-symbol -- required for testing */ + var NATIVE_SYMBOL$1 = symbolConstructorDetection; + + var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + var getBuiltIn$3 = getBuiltIn$4; + var isCallable$9 = isCallable$c; + var isPrototypeOf = objectIsPrototypeOf; + var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + + var $Object$2 = Object; + + var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + var $Symbol = getBuiltIn$3('Symbol'); + return isCallable$9($Symbol) && isPrototypeOf($Symbol.prototype, $Object$2(it)); + }; + + var $String$2 = String; + + var tryToString$1 = function (argument) { + try { + return $String$2(argument); + } catch (error) { + return 'Object'; + } + }; + + var isCallable$8 = isCallable$c; + var tryToString = tryToString$1; + + var $TypeError$5 = TypeError; + + // `Assert: IsCallable(argument) is true` + var aCallable$2 = function (argument) { + if (isCallable$8(argument)) return argument; + throw new $TypeError$5(tryToString(argument) + ' is not a function'); + }; + + var aCallable$1 = aCallable$2; + var isNullOrUndefined = isNullOrUndefined$2; + + // `GetMethod` abstract operation + // https://tc39.es/ecma262/#sec-getmethod + var getMethod$1 = function (V, P) { + var func = V[P]; + return isNullOrUndefined(func) ? undefined : aCallable$1(func); + }; + + var call$3 = functionCall; + var isCallable$7 = isCallable$c; + var isObject$6 = isObject$7; + + var $TypeError$4 = TypeError; + + // `OrdinaryToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-ordinarytoprimitive + var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$7(fn = input.toString) && !isObject$6(val = call$3(fn, input))) return val; + if (isCallable$7(fn = input.valueOf) && !isObject$6(val = call$3(fn, input))) return val; + if (pref !== 'string' && isCallable$7(fn = input.toString) && !isObject$6(val = call$3(fn, input))) return val; + throw new $TypeError$4("Can't convert object to primitive value"); + }; + + var sharedStore = {exports: {}}; + + var global$6 = global$a; + + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$3 = Object.defineProperty; + + var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$3(global$6, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$6[key] = value; + } return value; + }; + + var globalThis$1 = global$a; + var defineGlobalProperty$2 = defineGlobalProperty$3; + + var SHARED = '__core-js_shared__'; + var store$3 = sharedStore.exports = globalThis$1[SHARED] || defineGlobalProperty$2(SHARED, {}); + + (store$3.versions || (store$3.versions = [])).push({ + version: '3.37.1', + mode: 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', + source: 'https://github.com/zloirock/core-js' + }); + + var sharedStoreExports = sharedStore.exports; + + var store$2 = sharedStoreExports; + + var shared$3 = function (key, value) { + return store$2[key] || (store$2[key] = value || {}); + }; + + var requireObjectCoercible = requireObjectCoercible$2; + + var $Object$1 = Object; + + // `ToObject` abstract operation + // https://tc39.es/ecma262/#sec-toobject + var toObject$4 = function (argument) { + return $Object$1(requireObjectCoercible(argument)); + }; + + var uncurryThis$a = functionUncurryThis; + var toObject$3 = toObject$4; + + var hasOwnProperty = uncurryThis$a({}.hasOwnProperty); + + // `HasOwnProperty` abstract operation + // https://tc39.es/ecma262/#sec-hasownproperty + // eslint-disable-next-line es/no-object-hasown -- safe + var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$3(it), key); + }; + + var uncurryThis$9 = functionUncurryThis; + + var id = 0; + var postfix = Math.random(); + var toString$1 = uncurryThis$9(1.0.toString); + + var uid$2 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$1(++id + postfix, 36); + }; + + var global$5 = global$a; + var shared$2 = shared$3; + var hasOwn$6 = hasOwnProperty_1; + var uid$1 = uid$2; + var NATIVE_SYMBOL = symbolConstructorDetection; + var USE_SYMBOL_AS_UID = useSymbolAsUid; + + var Symbol$1 = global$5.Symbol; + var WellKnownSymbolsStore = shared$2('wks'); + var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1['for'] || Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1; + + var wellKnownSymbol$7 = function (name) { + if (!hasOwn$6(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$6(Symbol$1, name) + ? Symbol$1[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; + }; + + var call$2 = functionCall; + var isObject$5 = isObject$7; + var isSymbol$1 = isSymbol$2; + var getMethod = getMethod$1; + var ordinaryToPrimitive = ordinaryToPrimitive$1; + var wellKnownSymbol$6 = wellKnownSymbol$7; + + var $TypeError$3 = TypeError; + var TO_PRIMITIVE = wellKnownSymbol$6('toPrimitive'); + + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + var toPrimitive$1 = function (input, pref) { + if (!isObject$5(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$2(exoticToPrim, input, pref); + if (!isObject$5(result) || isSymbol$1(result)) return result; + throw new $TypeError$3("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); + }; + + var toPrimitive = toPrimitive$1; + var isSymbol = isSymbol$2; + + // `ToPropertyKey` abstract operation + // https://tc39.es/ecma262/#sec-topropertykey + var toPropertyKey$2 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; + }; + + var global$4 = global$a; + var isObject$4 = isObject$7; + + var document$1 = global$4.document; + // typeof document.createElement is 'object' in old IE + var EXISTS$1 = isObject$4(document$1) && isObject$4(document$1.createElement); + + var documentCreateElement$1 = function (it) { + return EXISTS$1 ? document$1.createElement(it) : {}; + }; + + var DESCRIPTORS$9 = descriptors; + var fails$7 = fails$c; + var createElement = documentCreateElement$1; + + // Thanks to IE8 for its funny defineProperty + var ie8DomDefine = !DESCRIPTORS$9 && !fails$7(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a !== 7; + }); + + var DESCRIPTORS$8 = descriptors; + var call$1 = functionCall; + var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; + var createPropertyDescriptor$2 = createPropertyDescriptor$3; + var toIndexedObject$3 = toIndexedObject$4; + var toPropertyKey$1 = toPropertyKey$2; + var hasOwn$5 = hasOwnProperty_1; + var IE8_DOM_DEFINE$1 = ie8DomDefine; + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor + objectGetOwnPropertyDescriptor.f = DESCRIPTORS$8 ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$3(O); + P = toPropertyKey$1(P); + if (IE8_DOM_DEFINE$1) try { + return $getOwnPropertyDescriptor$1(O, P); + } catch (error) { /* empty */ } + if (hasOwn$5(O, P)) return createPropertyDescriptor$2(!call$1(propertyIsEnumerableModule$1.f, O, P), O[P]); + }; + + var objectDefineProperty = {}; + + var DESCRIPTORS$7 = descriptors; + var fails$6 = fails$c; + + // V8 ~ Chrome 36- + // https://bugs.chromium.org/p/v8/issues/detail?id=3334 + var v8PrototypeDefineBug = DESCRIPTORS$7 && fails$6(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; + }); + + var isObject$3 = isObject$7; + + var $String$1 = String; + var $TypeError$2 = TypeError; + + // `Assert: Type(argument) is Object` + var anObject$4 = function (argument) { + if (isObject$3(argument)) return argument; + throw new $TypeError$2($String$1(argument) + ' is not an object'); + }; + + var DESCRIPTORS$6 = descriptors; + var IE8_DOM_DEFINE = ie8DomDefine; + var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; + var anObject$3 = anObject$4; + var toPropertyKey = toPropertyKey$2; + + var $TypeError$1 = TypeError; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var $defineProperty = Object.defineProperty; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var ENUMERABLE = 'enumerable'; + var CONFIGURABLE$1 = 'configurable'; + var WRITABLE = 'writable'; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + objectDefineProperty.f = DESCRIPTORS$6 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$3(O); + P = toPropertyKey(P); + anObject$3(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); + } : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$3(O); + P = toPropertyKey(P); + anObject$3(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError$1('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + + var DESCRIPTORS$5 = descriptors; + var definePropertyModule$4 = objectDefineProperty; + var createPropertyDescriptor$1 = createPropertyDescriptor$3; + + var createNonEnumerableProperty$2 = DESCRIPTORS$5 ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$1(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + var makeBuiltIn$2 = {exports: {}}; + + var DESCRIPTORS$4 = descriptors; + var hasOwn$4 = hasOwnProperty_1; + + var FunctionPrototype = Function.prototype; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getDescriptor = DESCRIPTORS$4 && Object.getOwnPropertyDescriptor; + + var EXISTS = hasOwn$4(FunctionPrototype, 'name'); + // additional protection from minified / mangled / dropped function names + var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; + var CONFIGURABLE = EXISTS && (!DESCRIPTORS$4 || (DESCRIPTORS$4 && getDescriptor(FunctionPrototype, 'name').configurable)); + + var functionName = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE + }; + + var uncurryThis$8 = functionUncurryThis; + var isCallable$6 = isCallable$c; + var store$1 = sharedStoreExports; + + var functionToString = uncurryThis$8(Function.toString); + + // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper + if (!isCallable$6(store$1.inspectSource)) { + store$1.inspectSource = function (it) { + return functionToString(it); + }; + } + + var inspectSource$2 = store$1.inspectSource; + + var global$3 = global$a; + var isCallable$5 = isCallable$c; + + var WeakMap$1 = global$3.WeakMap; + + var weakMapBasicDetection = isCallable$5(WeakMap$1) && /native code/.test(String(WeakMap$1)); + + var shared$1 = shared$3; + var uid = uid$2; + + var keys = shared$1('keys'); + + var sharedKey$2 = function (key) { + return keys[key] || (keys[key] = uid(key)); + }; + + var hiddenKeys$4 = {}; + + var NATIVE_WEAK_MAP = weakMapBasicDetection; + var global$2 = global$a; + var isObject$2 = isObject$7; + var createNonEnumerableProperty$1 = createNonEnumerableProperty$2; + var hasOwn$3 = hasOwnProperty_1; + var shared = sharedStoreExports; + var sharedKey$1 = sharedKey$2; + var hiddenKeys$3 = hiddenKeys$4; + + var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; + var TypeError$1 = global$2.TypeError; + var WeakMap = global$2.WeakMap; + var set, get, has; + + var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); + }; + + var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$2(it) || (state = get(it)).type !== TYPE) { + throw new TypeError$1('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; + }; + + if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set = function (it, metadata) { + if (store.has(it)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; + } else { + var STATE = sharedKey$1('state'); + hiddenKeys$3[STATE] = true; + set = function (it, metadata) { + if (hasOwn$3(it, STATE)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$1(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$3(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$3(it, STATE); + }; + } + + var internalState = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor + }; + + var uncurryThis$7 = functionUncurryThis; + var fails$5 = fails$c; + var isCallable$4 = isCallable$c; + var hasOwn$2 = hasOwnProperty_1; + var DESCRIPTORS$3 = descriptors; + var CONFIGURABLE_FUNCTION_NAME = functionName.CONFIGURABLE; + var inspectSource$1 = inspectSource$2; + var InternalStateModule = internalState; + + var enforceInternalState = InternalStateModule.enforce; + var getInternalState = InternalStateModule.get; + var $String = String; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$2 = Object.defineProperty; + var stringSlice = uncurryThis$7(''.slice); + var replace = uncurryThis$7(''.replace); + var join = uncurryThis$7([].join); + + var CONFIGURABLE_LENGTH = DESCRIPTORS$3 && !fails$5(function () { + return defineProperty$2(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; + }); + + var TEMPLATE = String(String).split('String'); + + var makeBuiltIn$1 = makeBuiltIn$2.exports = function (value, name, options) { + if (stringSlice($String(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$2(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS$3) defineProperty$2(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$2(options, 'arity') && value.length !== options.arity) { + defineProperty$2(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$2(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$3) defineProperty$2(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$2(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; + }; + + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + // eslint-disable-next-line no-extend-native -- required + Function.prototype.toString = makeBuiltIn$1(function toString() { + return isCallable$4(this) && getInternalState(this).source || inspectSource$1(this); + }, 'toString'); + + var makeBuiltInExports = makeBuiltIn$2.exports; + + var isCallable$3 = isCallable$c; + var definePropertyModule$3 = objectDefineProperty; + var makeBuiltIn = makeBuiltInExports; + var defineGlobalProperty$1 = defineGlobalProperty$3; + + var defineBuiltIn$2 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$3(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; + }; + + var objectGetOwnPropertyNames = {}; + + var ceil = Math.ceil; + var floor = Math.floor; + + // `Math.trunc` method + // https://tc39.es/ecma262/#sec-math.trunc + // eslint-disable-next-line es/no-math-trunc -- safe + var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); + }; + + var trunc = mathTrunc; + + // `ToIntegerOrInfinity` abstract operation + // https://tc39.es/ecma262/#sec-tointegerorinfinity + var toIntegerOrInfinity$2 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); + }; + + var toIntegerOrInfinity$1 = toIntegerOrInfinity$2; + + var max = Math.max; + var min$1 = Math.min; + + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex$1 = function (index, length) { + var integer = toIntegerOrInfinity$1(index); + return integer < 0 ? max(integer + length, 0) : min$1(integer, length); + }; + + var toIntegerOrInfinity = toIntegerOrInfinity$2; + + var min = Math.min; + + // `ToLength` abstract operation + // https://tc39.es/ecma262/#sec-tolength + var toLength$1 = function (argument) { + var len = toIntegerOrInfinity(argument); + return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; + + var toLength = toLength$1; + + // `LengthOfArrayLike` abstract operation + // https://tc39.es/ecma262/#sec-lengthofarraylike + var lengthOfArrayLike$3 = function (obj) { + return toLength(obj.length); + }; + + var toIndexedObject$2 = toIndexedObject$4; + var toAbsoluteIndex = toAbsoluteIndex$1; + var lengthOfArrayLike$2 = lengthOfArrayLike$3; + + // `Array.prototype.{ indexOf, includes }` methods implementation + var createMethod$1 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$2($this); + var length = lengthOfArrayLike$2(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + + var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$1(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$1(false) + }; + + var uncurryThis$6 = functionUncurryThis; + var hasOwn$1 = hasOwnProperty_1; + var toIndexedObject$1 = toIndexedObject$4; + var indexOf = arrayIncludes.indexOf; + var hiddenKeys$2 = hiddenKeys$4; + + var push$1 = uncurryThis$6([].push); + + var objectKeysInternal = function (object, names) { + var O = toIndexedObject$1(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$1(hiddenKeys$2, key) && hasOwn$1(O, key) && push$1(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$1(O, key = names[i++])) { + ~indexOf(result, key) || push$1(result, key); + } + return result; + }; + + // IE8- don't enum bug keys + var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + + var internalObjectKeys$1 = objectKeysInternal; + var enumBugKeys$2 = enumBugKeys$3; + + var hiddenKeys$1 = enumBugKeys$2.concat('length', 'prototype'); + + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + // eslint-disable-next-line es/no-object-getownpropertynames -- safe + objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$1); + }; + + var objectGetOwnPropertySymbols = {}; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe + objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + + var getBuiltIn$2 = getBuiltIn$4; + var uncurryThis$5 = functionUncurryThis; + var getOwnPropertyNamesModule = objectGetOwnPropertyNames; + var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; + var anObject$2 = anObject$4; + + var concat$1 = uncurryThis$5([].concat); + + // all object keys, includes non-enumerable and symbols + var ownKeys$1 = getBuiltIn$2('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject$2(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys; + }; + + var hasOwn = hasOwnProperty_1; + var ownKeys = ownKeys$1; + var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; + var definePropertyModule$2 = objectDefineProperty; + + var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; + + var fails$4 = fails$c; + var isCallable$2 = isCallable$c; + + var replacement = /#|\.prototype\./; + + var isForced$1 = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable$2(detection) ? fails$4(detection) + : !!detection; + }; + + var normalize = isForced$1.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; + + var data = isForced$1.data = {}; + var NATIVE = isForced$1.NATIVE = 'N'; + var POLYFILL = isForced$1.POLYFILL = 'P'; + + var isForced_1 = isForced$1; + + var global$1 = global$a; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + var createNonEnumerableProperty = createNonEnumerableProperty$2; + var defineBuiltIn$1 = defineBuiltIn$2; + var defineGlobalProperty = defineGlobalProperty$3; + var copyConstructorProperties = copyConstructorProperties$1; + var isForced = isForced_1; + + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key + */ + var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$1; + } else if (STATIC) { + target = global$1[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global$1[TARGET] && global$1[TARGET].prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + defineBuiltIn$1(target, key, sourceProperty, options); + } + }; + + var classof$3 = classofRaw$2; + + // `IsArray` abstract operation + // https://tc39.es/ecma262/#sec-isarray + // eslint-disable-next-line es/no-array-isarray -- safe + var isArray$2 = Array.isArray || function isArray(argument) { + return classof$3(argument) === 'Array'; + }; + + var $TypeError = TypeError; + var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + + var doesNotExceedSafeInteger$1 = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded'); + return it; + }; + + var DESCRIPTORS$2 = descriptors; + var definePropertyModule$1 = objectDefineProperty; + var createPropertyDescriptor = createPropertyDescriptor$3; + + var createProperty$1 = function (object, key, value) { + if (DESCRIPTORS$2) definePropertyModule$1.f(object, key, createPropertyDescriptor(0, value)); + else object[key] = value; + }; + + var wellKnownSymbol$5 = wellKnownSymbol$7; + + var TO_STRING_TAG$1 = wellKnownSymbol$5('toStringTag'); + var test = {}; + + test[TO_STRING_TAG$1] = 'z'; + + var toStringTagSupport = String(test) === '[object z]'; + + var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; + var isCallable$1 = isCallable$c; + var classofRaw$1 = classofRaw$2; + var wellKnownSymbol$4 = wellKnownSymbol$7; + + var TO_STRING_TAG = wellKnownSymbol$4('toStringTag'); + var $Object = Object; + + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) === 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; + + // getting tag from ES6+ `Object.prototype.toString` + var classof$2 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) === 'Object' && isCallable$1(O.callee) ? 'Arguments' : result; + }; + + var uncurryThis$4 = functionUncurryThis; + var fails$3 = fails$c; + var isCallable = isCallable$c; + var classof$1 = classof$2; + var getBuiltIn$1 = getBuiltIn$4; + var inspectSource = inspectSource$2; + + var noop = function () { /* empty */ }; + var construct = getBuiltIn$1('Reflect', 'construct'); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec = uncurryThis$4(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.test(noop); + + var isConstructorModern = function isConstructor(argument) { + if (!isCallable(argument)) return false; + try { + construct(noop, [], argument); + return true; + } catch (error) { + return false; + } + }; + + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable(argument)) return false; + switch (classof$1(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } + }; + + isConstructorLegacy.sham = true; + + // `IsConstructor` abstract operation + // https://tc39.es/ecma262/#sec-isconstructor + var isConstructor$1 = !construct || fails$3(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; + }) ? isConstructorLegacy : isConstructorModern; + + var isArray$1 = isArray$2; + var isConstructor = isConstructor$1; + var isObject$1 = isObject$7; + var wellKnownSymbol$3 = wellKnownSymbol$7; + + var SPECIES$1 = wellKnownSymbol$3('species'); + var $Array = Array; + + // a part of `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray$1(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === $Array || isArray$1(C.prototype))) C = undefined; + else if (isObject$1(C)) { + C = C[SPECIES$1]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array : C; + }; + + var arraySpeciesConstructor = arraySpeciesConstructor$1; + + // `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesCreate$2 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; + + var fails$2 = fails$c; + var wellKnownSymbol$2 = wellKnownSymbol$7; + var V8_VERSION$1 = engineV8Version; + + var SPECIES = wellKnownSymbol$2('species'); + + var arrayMethodHasSpeciesSupport$1 = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION$1 >= 51 || !fails$2(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); + }; + + var $$2 = _export; + var fails$1 = fails$c; + var isArray = isArray$2; + var isObject = isObject$7; + var toObject$2 = toObject$4; + var lengthOfArrayLike$1 = lengthOfArrayLike$3; + var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1; + var createProperty = createProperty$1; + var arraySpeciesCreate$1 = arraySpeciesCreate$2; + var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$1; + var wellKnownSymbol$1 = wellKnownSymbol$7; + var V8_VERSION = engineV8Version; + + var IS_CONCAT_SPREADABLE = wellKnownSymbol$1('isConcatSpreadable'); + + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/679 + var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails$1(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; + }); + + var isConcatSpreadable = function (O) { + if (!isObject(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); + }; + + var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat'); + + // `Array.prototype.concat` method + // https://tc39.es/ecma262/#sec-array.prototype.concat + // with adding support of @@isConcatSpreadable and @@species + $$2({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject$2(this); + var A = arraySpeciesCreate$1(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike$1(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty(A, n++, E); + } + } + A.length = n; + return A; + } + }); + + var classofRaw = classofRaw$2; + var uncurryThis$3 = functionUncurryThis; + + var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$3(fn); + }; + + var uncurryThis$2 = functionUncurryThisClause; + var aCallable = aCallable$2; + var NATIVE_BIND = functionBindNative; + + var bind$1 = uncurryThis$2(uncurryThis$2.bind); + + // optional / simple context binding + var functionBindContext = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$1(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; + + var bind = functionBindContext; + var uncurryThis$1 = functionUncurryThis; + var IndexedObject$1 = indexedObject; + var toObject$1 = toObject$4; + var lengthOfArrayLike = lengthOfArrayLike$3; + var arraySpeciesCreate = arraySpeciesCreate$2; + + var push = uncurryThis$1([].push); + + // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation + var createMethod = function (TYPE) { + var IS_MAP = TYPE === 1; + var IS_FILTER = TYPE === 2; + var IS_SOME = TYPE === 3; + var IS_EVERY = TYPE === 4; + var IS_FIND_INDEX = TYPE === 6; + var IS_FILTER_REJECT = TYPE === 7; + var NO_HOLES = TYPE === 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject$1($this); + var self = IndexedObject$1(O); + var length = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; + }; + + var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod(7) + }; + + var objectDefineProperties = {}; + + var internalObjectKeys = objectKeysInternal; + var enumBugKeys$1 = enumBugKeys$3; + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + // eslint-disable-next-line es/no-object-keys -- safe + var objectKeys$2 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); + }; + + var DESCRIPTORS$1 = descriptors; + var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; + var definePropertyModule = objectDefineProperty; + var anObject$1 = anObject$4; + var toIndexedObject = toIndexedObject$4; + var objectKeys$1 = objectKeys$2; + + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + // eslint-disable-next-line es/no-object-defineproperties -- safe + objectDefineProperties.f = DESCRIPTORS$1 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$1(O); + var props = toIndexedObject(Properties); + var keys = objectKeys$1(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; + }; + + var getBuiltIn = getBuiltIn$4; + + var html$1 = getBuiltIn('document', 'documentElement'); + + /* global ActiveXObject -- old IE, WSH */ + var anObject = anObject$4; + var definePropertiesModule = objectDefineProperties; + var enumBugKeys = enumBugKeys$3; + var hiddenKeys = hiddenKeys$4; + var html = html$1; + var documentCreateElement = documentCreateElement$1; + var sharedKey = sharedKey$2; + + var GT = '>'; + var LT = '<'; + var PROTOTYPE = 'prototype'; + var SCRIPT = 'script'; + var IE_PROTO = sharedKey('IE_PROTO'); + + var EmptyConstructor = function () { /* empty */ }; + + var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; + }; + + // Create object with fake `null` prototype: use ActiveX Object with cleared prototype + var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; + }; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; + }; + + // Check for document.domain and active x support + // No need to use active x approach when document.domain is not set + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + // avoid IE GC bug + var activeXDocument; + var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); + }; + + hiddenKeys[IE_PROTO] = true; + + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + // eslint-disable-next-line es/no-object-create -- safe + var objectCreate = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); + }; + + var wellKnownSymbol = wellKnownSymbol$7; + var create = objectCreate; + var defineProperty$1 = objectDefineProperty.f; + + var UNSCOPABLES = wellKnownSymbol('unscopables'); + var ArrayPrototype = Array.prototype; + + // Array.prototype[@@unscopables] + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + if (ArrayPrototype[UNSCOPABLES] === undefined) { + defineProperty$1(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create(null) + }); + } + + // add a key to Array.prototype[@@unscopables] + var addToUnscopables$1 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; + }; + + var $$1 = _export; + var $find = arrayIteration.find; + var addToUnscopables = addToUnscopables$1; + + var FIND = 'find'; + var SKIPS_HOLES = true; + + // Shouldn't skip holes + // eslint-disable-next-line es/no-array-prototype-find -- testing + if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); + + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + $$1({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables(FIND); + + var DESCRIPTORS = descriptors; + var uncurryThis = functionUncurryThis; + var call = functionCall; + var fails = fails$c; + var objectKeys = objectKeys$2; + var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; + var propertyIsEnumerableModule = objectPropertyIsEnumerable; + var toObject = toObject$4; + var IndexedObject = indexedObject; + + // eslint-disable-next-line es/no-object-assign -- safe + var $assign = Object.assign; + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + var defineProperty = Object.defineProperty; + var concat = uncurryThis([].concat); + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + var objectAssign = !$assign || fails(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { + enumerable: true, + get: function () { + defineProperty(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol('assign detection'); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; + } : $assign; + + var $ = _export; + var assign = objectAssign; + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + // eslint-disable-next-line es/no-object-assign -- required for testing + $({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign + }); + + var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; + var classof = classof$2; + + // `Object.prototype.toString` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.tostring + var objectToString = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof(this) + ']'; + }; + + var TO_STRING_TAG_SUPPORT = toStringTagSupport; + var defineBuiltIn = defineBuiltIn$2; + var toString = objectToString; + + // `Object.prototype.toString` method + // https://tc39.es/ecma262/#sec-object.prototype.tostring + if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true }); + } + /** * @author vincent loh * @update J Manuel Corona * @update zhixin wen */ - var Utils = $.fn.bootstrapTable.utils; - Object.assign($.fn.bootstrapTable.defaults, { + var Utils = $$3.fn.bootstrapTable.utils; + Object.assign($$3.fn.bootstrapTable.defaults, { stickyHeader: false, stickyHeaderOffsetY: 0, stickyHeaderOffsetLeft: 0, stickyHeaderOffsetRight: 0 }); - $.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) { + $$3.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) { function _class() { _classCallCheck(this, _class); return _callSuper(this, _class, arguments); @@ -6530,10 +18746,10 @@ // render sticky on window scroll or resize var resizeEvent = Utils.getEventName('resize.sticky-header-table', this.$el.attr('id')); var scrollEvent = Utils.getEventName('scroll.sticky-header-table', this.$el.attr('id')); - $(window).off(resizeEvent).on(resizeEvent, function () { + $$3(window).off(resizeEvent).on(resizeEvent, function () { return _this.renderStickyHeader(); }); - $(window).off(scrollEvent).on(scrollEvent, function () { + $$3(window).off(scrollEvent).on(scrollEvent, function () { return _this.renderStickyHeader(); }); this.$tableBody.off('scroll').on('scroll', function () { @@ -6549,6 +18765,9 @@ currentTarget: currentTarget, keyCode: keyCode }); + if (!this.options.stickyHeader) { + return; + } this.renderStickyHeader(); } }, { @@ -6560,7 +18779,10 @@ args[_key2] = arguments[_key2]; } (_get3 = _get(_getPrototypeOf(_class.prototype), "resetView", this)).call.apply(_get3, [this].concat(args)); - $('.bootstrap-table.fullscreen').off('scroll').on('scroll', function () { + if (!this.options.stickyHeader) { + return; + } + $$3('.bootstrap-table.fullscreen').off('scroll').on('scroll', function () { return _this2.renderStickyHeader(); }); } @@ -6572,10 +18794,13 @@ args[_key3] = arguments[_key3]; } (_get4 = _get(_getPrototypeOf(_class.prototype), "getCaret", this)).call.apply(_get4, [this].concat(args)); + if (!this.options.stickyHeader) { + return; + } if (this.$stickyHeader) { var $ths = this.$stickyHeader.find('th'); this.$header.find('th').each(function (i, th) { - $ths.eq(i).find('.sortable').attr('class', $(th).find('.sortable').attr('class')); + $ths.eq(i).find('.sortable').attr('class', $$3(th).find('.sortable').attr('class')); }); } } @@ -6584,6 +18809,9 @@ value: function horizontalScroll() { var _this3 = this; _get(_getPrototypeOf(_class.prototype), "horizontalScroll", this).call(this); + if (!this.options.stickyHeader) { + return; + } this.$tableBody.on('scroll', function () { return _this3.matchPositionX(); }); @@ -6595,8 +18823,8 @@ var that = this; this.$stickyHeader = this.$header.clone(true, true); if (this.options.filterControl) { - $(this.$stickyHeader).off('keyup change mouseup').on('keyup change mouse', function (e) { - var $target = $(e.target); + $$3(this.$stickyHeader).off('keyup change mouseup').on('keyup change mouse', function (e) { + var $target = $$3(e.target); var value = $target.val(); var field = $target.parents('th').data('field'); var $coreTh = that.$header.find("th[data-field=\"".concat(field, "\"]")); @@ -6610,7 +18838,7 @@ that.triggerSearch(); }); } - var top = $(window).scrollTop(); + var top = $$3(window).scrollTop(); // top anchor scroll position, minus header height var start = this.$stickyBegin.offset().top - this.options.stickyHeaderOffsetY; // bottom anchor scroll position, minus header height, minus sticky height @@ -6620,8 +18848,8 @@ if (top > start && top <= end) { // ensure clone and source column widths are the same this.$stickyHeader.find('tr').each(function (indexRows, rows) { - $(rows).find('th').each(function (index, el) { - $(el).css('min-width', _this4.$header.find("tr:eq(".concat(indexRows, ")")).find("th:eq(".concat(index, ")")).css('width')); + $$3(rows).find('th').each(function (index, el) { + $$3(el).css('min-width', _this4.$header.find("tr:eq(".concat(indexRows, ")")).find("th:eq(".concat(index, ")")).css('width')); }); }); // match bootstrap table style @@ -6647,7 +18875,7 @@ this.$stickyContainer.css('right', "".concat(stickyHeaderOffsetRight, "px")); this.$stickyContainer.css('width', "".concat(width)); // create scrollable container for header - this.$stickyTable = $(''); + this.$stickyTable = $$3('
'); this.$stickyTable.addClass(this.options.classes); // append cloned header to dom this.$stickyContainer.html(this.$stickyTable.append(this.$stickyHeader)); @@ -6663,15 +18891,15 @@ this.$stickyContainer.scrollLeft(this.$tableBody.scrollLeft()); } }]); - }($.BootstrapTable); + }($$3.BootstrapTable); })); (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('core-js/modules/es.array.concat.js'), require('core-js/modules/es.array.iterator.js'), require('core-js/modules/es.object.assign.js'), require('core-js/modules/es.object.entries.js'), require('core-js/modules/es.object.to-string.js'), require('core-js/modules/es.regexp.exec.js'), require('core-js/modules/es.regexp.to-string.js'), require('core-js/modules/es.string.iterator.js'), require('core-js/modules/es.string.search.js'), require('core-js/modules/web.dom-collections.iterator.js'), require('core-js/modules/web.url-search-params.js'), require('jquery')) : - typeof define === 'function' && define.amd ? define(['core-js/modules/es.array.concat.js', 'core-js/modules/es.array.iterator.js', 'core-js/modules/es.object.assign.js', 'core-js/modules/es.object.entries.js', 'core-js/modules/es.object.to-string.js', 'core-js/modules/es.regexp.exec.js', 'core-js/modules/es.regexp.to-string.js', 'core-js/modules/es.string.iterator.js', 'core-js/modules/es.string.search.js', 'core-js/modules/web.dom-collections.iterator.js', 'core-js/modules/web.url-search-params.js', 'jquery'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(null, null, null, null, null, null, null, null, null, null, null, global.jQuery)); -})(this, (function (es_array_concat_js, es_array_iterator_js, es_object_assign_js, es_object_entries_js, es_object_toString_js, es_regexp_exec_js, es_regexp_toString_js, es_string_iterator_js, es_string_search_js, web_domCollections_iterator_js, web_urlSearchParams_js, $) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) : + typeof define === 'function' && define.amd ? define(['jquery'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jQuery)); +})(this, (function ($$6) { 'use strict'; function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); @@ -6784,7 +19012,7 @@ if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { - var i = e.call(t, r ); + var i = e.call(t, r); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } @@ -6802,6 +19030,2984 @@ } } + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + var check = function (it) { + return it && it.Math === Math && it; + }; + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global$g = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + var objectGetOwnPropertyDescriptor = {}; + + var fails$l = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + + var fails$k = fails$l; + + // Detect IE8's incomplete defineProperty implementation + var descriptors = !fails$k(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; + }); + + var fails$j = fails$l; + + var functionBindNative = !fails$j(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); + }); + + var NATIVE_BIND$2 = functionBindNative; + + var call$d = Function.prototype.call; + + var functionCall = NATIVE_BIND$2 ? call$d.bind(call$d) : function () { + return call$d.apply(call$d, arguments); + }; + + var objectPropertyIsEnumerable = {}; + + var $propertyIsEnumerable$1 = {}.propertyIsEnumerable; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor; + + // Nashorn ~ JDK8 bug + var NASHORN_BUG = getOwnPropertyDescriptor$2 && !$propertyIsEnumerable$1.call({ 1: 2 }, 1); + + // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable + objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$2(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable$1; + + var createPropertyDescriptor$5 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + var NATIVE_BIND$1 = functionBindNative; + + var FunctionPrototype$1 = Function.prototype; + var call$c = FunctionPrototype$1.call; + var uncurryThisWithBind = NATIVE_BIND$1 && FunctionPrototype$1.bind.bind(call$c, call$c); + + var functionUncurryThis = NATIVE_BIND$1 ? uncurryThisWithBind : function (fn) { + return function () { + return call$c.apply(fn, arguments); + }; + }; + + var uncurryThis$i = functionUncurryThis; + + var toString$7 = uncurryThis$i({}.toString); + var stringSlice$4 = uncurryThis$i(''.slice); + + var classofRaw$2 = function (it) { + return stringSlice$4(toString$7(it), 8, -1); + }; + + var uncurryThis$h = functionUncurryThis; + var fails$i = fails$l; + var classof$8 = classofRaw$2; + + var $Object$4 = Object; + var split$1 = uncurryThis$h(''.split); + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var indexedObject = fails$i(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$4('z').propertyIsEnumerable(0); + }) ? function (it) { + return classof$8(it) === 'String' ? split$1(it, '') : $Object$4(it); + } : $Object$4; + + // we can't use just `it == null` since of `document.all` special case + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec + var isNullOrUndefined$4 = function (it) { + return it === null || it === undefined; + }; + + var isNullOrUndefined$3 = isNullOrUndefined$4; + + var $TypeError$b = TypeError; + + // `RequireObjectCoercible` abstract operation + // https://tc39.es/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible$5 = function (it) { + if (isNullOrUndefined$3(it)) throw new $TypeError$b("Can't call method on " + it); + return it; + }; + + // toObject with fallback for non-array-like ES3 strings + var IndexedObject$1 = indexedObject; + var requireObjectCoercible$4 = requireObjectCoercible$5; + + var toIndexedObject$6 = function (it) { + return IndexedObject$1(requireObjectCoercible$4(it)); + }; + + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + var documentAll = typeof document == 'object' && document.all; + + // `IsCallable` abstract operation + // https://tc39.es/ecma262/#sec-iscallable + // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing + var isCallable$h = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; + } : function (argument) { + return typeof argument == 'function'; + }; + + var isCallable$g = isCallable$h; + + var isObject$b = function (it) { + return typeof it == 'object' ? it !== null : isCallable$g(it); + }; + + var global$f = global$g; + var isCallable$f = isCallable$h; + + var aFunction = function (argument) { + return isCallable$f(argument) ? argument : undefined; + }; + + var getBuiltIn$4 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$f[namespace]) : global$f[namespace] && global$f[namespace][method]; + }; + + var uncurryThis$g = functionUncurryThis; + + var objectIsPrototypeOf = uncurryThis$g({}.isPrototypeOf); + + var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + var global$e = global$g; + var userAgent = engineUserAgent; + + var process = global$e.process; + var Deno = global$e.Deno; + var versions = process && process.versions || Deno && Deno.version; + var v8 = versions && versions.v8; + var match, version; + + if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + + // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` + // so check `userAgent` even if `.v8` exists, but 0 + if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } + } + + var engineV8Version = version; + + /* eslint-disable es/no-symbol -- required for testing */ + var V8_VERSION$2 = engineV8Version; + var fails$h = fails$l; + var global$d = global$g; + + var $String$5 = global$d.String; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$h(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$5(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$2 && V8_VERSION$2 < 41; + }); + + /* eslint-disable es/no-symbol -- required for testing */ + var NATIVE_SYMBOL$1 = symbolConstructorDetection; + + var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + var getBuiltIn$3 = getBuiltIn$4; + var isCallable$e = isCallable$h; + var isPrototypeOf$2 = objectIsPrototypeOf; + var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + + var $Object$3 = Object; + + var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + var $Symbol = getBuiltIn$3('Symbol'); + return isCallable$e($Symbol) && isPrototypeOf$2($Symbol.prototype, $Object$3(it)); + }; + + var $String$4 = String; + + var tryToString$2 = function (argument) { + try { + return $String$4(argument); + } catch (error) { + return 'Object'; + } + }; + + var isCallable$d = isCallable$h; + var tryToString$1 = tryToString$2; + + var $TypeError$a = TypeError; + + // `Assert: IsCallable(argument) is true` + var aCallable$4 = function (argument) { + if (isCallable$d(argument)) return argument; + throw new $TypeError$a(tryToString$1(argument) + ' is not a function'); + }; + + var aCallable$3 = aCallable$4; + var isNullOrUndefined$2 = isNullOrUndefined$4; + + // `GetMethod` abstract operation + // https://tc39.es/ecma262/#sec-getmethod + var getMethod$3 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$2(func) ? undefined : aCallable$3(func); + }; + + var call$b = functionCall; + var isCallable$c = isCallable$h; + var isObject$a = isObject$b; + + var $TypeError$9 = TypeError; + + // `OrdinaryToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-ordinarytoprimitive + var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$c(fn = input.toString) && !isObject$a(val = call$b(fn, input))) return val; + if (isCallable$c(fn = input.valueOf) && !isObject$a(val = call$b(fn, input))) return val; + if (pref !== 'string' && isCallable$c(fn = input.toString) && !isObject$a(val = call$b(fn, input))) return val; + throw new $TypeError$9("Can't convert object to primitive value"); + }; + + var sharedStore = {exports: {}}; + + var isPure = false; + + var global$c = global$g; + + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$6 = Object.defineProperty; + + var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$6(global$c, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$c[key] = value; + } return value; + }; + + var globalThis$1 = global$g; + var defineGlobalProperty$2 = defineGlobalProperty$3; + + var SHARED = '__core-js_shared__'; + var store$3 = sharedStore.exports = globalThis$1[SHARED] || defineGlobalProperty$2(SHARED, {}); + + (store$3.versions || (store$3.versions = [])).push({ + version: '3.37.1', + mode: 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', + source: 'https://github.com/zloirock/core-js' + }); + + var sharedStoreExports = sharedStore.exports; + + var store$2 = sharedStoreExports; + + var shared$4 = function (key, value) { + return store$2[key] || (store$2[key] = value || {}); + }; + + var requireObjectCoercible$3 = requireObjectCoercible$5; + + var $Object$2 = Object; + + // `ToObject` abstract operation + // https://tc39.es/ecma262/#sec-toobject + var toObject$4 = function (argument) { + return $Object$2(requireObjectCoercible$3(argument)); + }; + + var uncurryThis$f = functionUncurryThis; + var toObject$3 = toObject$4; + + var hasOwnProperty = uncurryThis$f({}.hasOwnProperty); + + // `HasOwnProperty` abstract operation + // https://tc39.es/ecma262/#sec-hasownproperty + // eslint-disable-next-line es/no-object-hasown -- safe + var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$3(it), key); + }; + + var uncurryThis$e = functionUncurryThis; + + var id = 0; + var postfix = Math.random(); + var toString$6 = uncurryThis$e(1.0.toString); + + var uid$2 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$6(++id + postfix, 36); + }; + + var global$b = global$g; + var shared$3 = shared$4; + var hasOwn$a = hasOwnProperty_1; + var uid$1 = uid$2; + var NATIVE_SYMBOL = symbolConstructorDetection; + var USE_SYMBOL_AS_UID = useSymbolAsUid; + + var Symbol$1 = global$b.Symbol; + var WellKnownSymbolsStore = shared$3('wks'); + var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1['for'] || Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1; + + var wellKnownSymbol$f = function (name) { + if (!hasOwn$a(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$a(Symbol$1, name) + ? Symbol$1[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; + }; + + var call$a = functionCall; + var isObject$9 = isObject$b; + var isSymbol$1 = isSymbol$2; + var getMethod$2 = getMethod$3; + var ordinaryToPrimitive = ordinaryToPrimitive$1; + var wellKnownSymbol$e = wellKnownSymbol$f; + + var $TypeError$8 = TypeError; + var TO_PRIMITIVE = wellKnownSymbol$e('toPrimitive'); + + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + var toPrimitive$1 = function (input, pref) { + if (!isObject$9(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod$2(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$a(exoticToPrim, input, pref); + if (!isObject$9(result) || isSymbol$1(result)) return result; + throw new $TypeError$8("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); + }; + + var toPrimitive = toPrimitive$1; + var isSymbol = isSymbol$2; + + // `ToPropertyKey` abstract operation + // https://tc39.es/ecma262/#sec-topropertykey + var toPropertyKey$2 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; + }; + + var global$a = global$g; + var isObject$8 = isObject$b; + + var document$1 = global$a.document; + // typeof document.createElement is 'object' in old IE + var EXISTS$1 = isObject$8(document$1) && isObject$8(document$1.createElement); + + var documentCreateElement$2 = function (it) { + return EXISTS$1 ? document$1.createElement(it) : {}; + }; + + var DESCRIPTORS$e = descriptors; + var fails$g = fails$l; + var createElement = documentCreateElement$2; + + // Thanks to IE8 for its funny defineProperty + var ie8DomDefine = !DESCRIPTORS$e && !fails$g(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a !== 7; + }); + + var DESCRIPTORS$d = descriptors; + var call$9 = functionCall; + var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; + var createPropertyDescriptor$4 = createPropertyDescriptor$5; + var toIndexedObject$5 = toIndexedObject$6; + var toPropertyKey$1 = toPropertyKey$2; + var hasOwn$9 = hasOwnProperty_1; + var IE8_DOM_DEFINE$1 = ie8DomDefine; + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor + objectGetOwnPropertyDescriptor.f = DESCRIPTORS$d ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$5(O); + P = toPropertyKey$1(P); + if (IE8_DOM_DEFINE$1) try { + return $getOwnPropertyDescriptor$1(O, P); + } catch (error) { /* empty */ } + if (hasOwn$9(O, P)) return createPropertyDescriptor$4(!call$9(propertyIsEnumerableModule$1.f, O, P), O[P]); + }; + + var objectDefineProperty = {}; + + var DESCRIPTORS$c = descriptors; + var fails$f = fails$l; + + // V8 ~ Chrome 36- + // https://bugs.chromium.org/p/v8/issues/detail?id=3334 + var v8PrototypeDefineBug = DESCRIPTORS$c && fails$f(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; + }); + + var isObject$7 = isObject$b; + + var $String$3 = String; + var $TypeError$7 = TypeError; + + // `Assert: Type(argument) is Object` + var anObject$a = function (argument) { + if (isObject$7(argument)) return argument; + throw new $TypeError$7($String$3(argument) + ' is not an object'); + }; + + var DESCRIPTORS$b = descriptors; + var IE8_DOM_DEFINE = ie8DomDefine; + var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; + var anObject$9 = anObject$a; + var toPropertyKey = toPropertyKey$2; + + var $TypeError$6 = TypeError; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var $defineProperty = Object.defineProperty; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var ENUMERABLE = 'enumerable'; + var CONFIGURABLE$1 = 'configurable'; + var WRITABLE = 'writable'; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + objectDefineProperty.f = DESCRIPTORS$b ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$9(O); + P = toPropertyKey(P); + anObject$9(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); + } : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$9(O); + P = toPropertyKey(P); + anObject$9(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError$6('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + + var DESCRIPTORS$a = descriptors; + var definePropertyModule$4 = objectDefineProperty; + var createPropertyDescriptor$3 = createPropertyDescriptor$5; + + var createNonEnumerableProperty$5 = DESCRIPTORS$a ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$3(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + var makeBuiltIn$3 = {exports: {}}; + + var DESCRIPTORS$9 = descriptors; + var hasOwn$8 = hasOwnProperty_1; + + var FunctionPrototype = Function.prototype; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getDescriptor = DESCRIPTORS$9 && Object.getOwnPropertyDescriptor; + + var EXISTS = hasOwn$8(FunctionPrototype, 'name'); + // additional protection from minified / mangled / dropped function names + var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; + var CONFIGURABLE = EXISTS && (!DESCRIPTORS$9 || (DESCRIPTORS$9 && getDescriptor(FunctionPrototype, 'name').configurable)); + + var functionName = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE + }; + + var uncurryThis$d = functionUncurryThis; + var isCallable$b = isCallable$h; + var store$1 = sharedStoreExports; + + var functionToString = uncurryThis$d(Function.toString); + + // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper + if (!isCallable$b(store$1.inspectSource)) { + store$1.inspectSource = function (it) { + return functionToString(it); + }; + } + + var inspectSource$2 = store$1.inspectSource; + + var global$9 = global$g; + var isCallable$a = isCallable$h; + + var WeakMap$1 = global$9.WeakMap; + + var weakMapBasicDetection = isCallable$a(WeakMap$1) && /native code/.test(String(WeakMap$1)); + + var shared$2 = shared$4; + var uid = uid$2; + + var keys = shared$2('keys'); + + var sharedKey$3 = function (key) { + return keys[key] || (keys[key] = uid(key)); + }; + + var hiddenKeys$4 = {}; + + var NATIVE_WEAK_MAP = weakMapBasicDetection; + var global$8 = global$g; + var isObject$6 = isObject$b; + var createNonEnumerableProperty$4 = createNonEnumerableProperty$5; + var hasOwn$7 = hasOwnProperty_1; + var shared$1 = sharedStoreExports; + var sharedKey$2 = sharedKey$3; + var hiddenKeys$3 = hiddenKeys$4; + + var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; + var TypeError$2 = global$8.TypeError; + var WeakMap = global$8.WeakMap; + var set, get, has; + + var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); + }; + + var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$6(it) || (state = get(it)).type !== TYPE) { + throw new TypeError$2('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; + }; + + if (NATIVE_WEAK_MAP || shared$1.state) { + var store = shared$1.state || (shared$1.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set = function (it, metadata) { + if (store.has(it)) throw new TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; + } else { + var STATE = sharedKey$2('state'); + hiddenKeys$3[STATE] = true; + set = function (it, metadata) { + if (hasOwn$7(it, STATE)) throw new TypeError$2(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$4(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$7(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$7(it, STATE); + }; + } + + var internalState = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor + }; + + var uncurryThis$c = functionUncurryThis; + var fails$e = fails$l; + var isCallable$9 = isCallable$h; + var hasOwn$6 = hasOwnProperty_1; + var DESCRIPTORS$8 = descriptors; + var CONFIGURABLE_FUNCTION_NAME$1 = functionName.CONFIGURABLE; + var inspectSource$1 = inspectSource$2; + var InternalStateModule$3 = internalState; + + var enforceInternalState = InternalStateModule$3.enforce; + var getInternalState$3 = InternalStateModule$3.get; + var $String$2 = String; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$5 = Object.defineProperty; + var stringSlice$3 = uncurryThis$c(''.slice); + var replace$2 = uncurryThis$c(''.replace); + var join$1 = uncurryThis$c([].join); + + var CONFIGURABLE_LENGTH = DESCRIPTORS$8 && !fails$e(function () { + return defineProperty$5(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; + }); + + var TEMPLATE = String(String).split('String'); + + var makeBuiltIn$2 = makeBuiltIn$3.exports = function (value, name, options) { + if (stringSlice$3($String$2(name), 0, 7) === 'Symbol(') { + name = '[' + replace$2($String$2(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$6(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) { + if (DESCRIPTORS$8) defineProperty$5(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$6(options, 'arity') && value.length !== options.arity) { + defineProperty$5(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$6(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$8) defineProperty$5(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$6(state, 'source')) { + state.source = join$1(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; + }; + + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + // eslint-disable-next-line no-extend-native -- required + Function.prototype.toString = makeBuiltIn$2(function toString() { + return isCallable$9(this) && getInternalState$3(this).source || inspectSource$1(this); + }, 'toString'); + + var makeBuiltInExports = makeBuiltIn$3.exports; + + var isCallable$8 = isCallable$h; + var definePropertyModule$3 = objectDefineProperty; + var makeBuiltIn$1 = makeBuiltInExports; + var defineGlobalProperty$1 = defineGlobalProperty$3; + + var defineBuiltIn$8 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$8(value)) makeBuiltIn$1(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; + }; + + var objectGetOwnPropertyNames = {}; + + var ceil = Math.ceil; + var floor$1 = Math.floor; + + // `Math.trunc` method + // https://tc39.es/ecma262/#sec-math.trunc + // eslint-disable-next-line es/no-math-trunc -- safe + var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor$1 : ceil)(n); + }; + + var trunc = mathTrunc; + + // `ToIntegerOrInfinity` abstract operation + // https://tc39.es/ecma262/#sec-tointegerorinfinity + var toIntegerOrInfinity$3 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); + }; + + var toIntegerOrInfinity$2 = toIntegerOrInfinity$3; + + var max = Math.max; + var min$1 = Math.min; + + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex$1 = function (index, length) { + var integer = toIntegerOrInfinity$2(index); + return integer < 0 ? max(integer + length, 0) : min$1(integer, length); + }; + + var toIntegerOrInfinity$1 = toIntegerOrInfinity$3; + + var min = Math.min; + + // `ToLength` abstract operation + // https://tc39.es/ecma262/#sec-tolength + var toLength$1 = function (argument) { + var len = toIntegerOrInfinity$1(argument); + return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; + + var toLength = toLength$1; + + // `LengthOfArrayLike` abstract operation + // https://tc39.es/ecma262/#sec-lengthofarraylike + var lengthOfArrayLike$2 = function (obj) { + return toLength(obj.length); + }; + + var toIndexedObject$4 = toIndexedObject$6; + var toAbsoluteIndex = toAbsoluteIndex$1; + var lengthOfArrayLike$1 = lengthOfArrayLike$2; + + // `Array.prototype.{ indexOf, includes }` methods implementation + var createMethod$2 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$4($this); + var length = lengthOfArrayLike$1(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + + var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$2(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$2(false) + }; + + var uncurryThis$b = functionUncurryThis; + var hasOwn$5 = hasOwnProperty_1; + var toIndexedObject$3 = toIndexedObject$6; + var indexOf$1 = arrayIncludes.indexOf; + var hiddenKeys$2 = hiddenKeys$4; + + var push$2 = uncurryThis$b([].push); + + var objectKeysInternal = function (object, names) { + var O = toIndexedObject$3(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$5(hiddenKeys$2, key) && hasOwn$5(O, key) && push$2(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$5(O, key = names[i++])) { + ~indexOf$1(result, key) || push$2(result, key); + } + return result; + }; + + // IE8- don't enum bug keys + var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + + var internalObjectKeys$1 = objectKeysInternal; + var enumBugKeys$2 = enumBugKeys$3; + + var hiddenKeys$1 = enumBugKeys$2.concat('length', 'prototype'); + + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + // eslint-disable-next-line es/no-object-getownpropertynames -- safe + objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$1); + }; + + var objectGetOwnPropertySymbols = {}; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe + objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + + var getBuiltIn$2 = getBuiltIn$4; + var uncurryThis$a = functionUncurryThis; + var getOwnPropertyNamesModule = objectGetOwnPropertyNames; + var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; + var anObject$8 = anObject$a; + + var concat$1 = uncurryThis$a([].concat); + + // all object keys, includes non-enumerable and symbols + var ownKeys$1 = getBuiltIn$2('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject$8(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys; + }; + + var hasOwn$4 = hasOwnProperty_1; + var ownKeys = ownKeys$1; + var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; + var definePropertyModule$2 = objectDefineProperty; + + var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn$4(target, key) && !(exceptions && hasOwn$4(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; + + var fails$d = fails$l; + var isCallable$7 = isCallable$h; + + var replacement = /#|\.prototype\./; + + var isForced$1 = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable$7(detection) ? fails$d(detection) + : !!detection; + }; + + var normalize = isForced$1.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; + + var data = isForced$1.data = {}; + var NATIVE = isForced$1.NATIVE = 'N'; + var POLYFILL = isForced$1.POLYFILL = 'P'; + + var isForced_1 = isForced$1; + + var global$7 = global$g; + var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; + var createNonEnumerableProperty$3 = createNonEnumerableProperty$5; + var defineBuiltIn$7 = defineBuiltIn$8; + var defineGlobalProperty = defineGlobalProperty$3; + var copyConstructorProperties = copyConstructorProperties$1; + var isForced = isForced_1; + + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key + */ + var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$7; + } else if (STATIC) { + target = global$7[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global$7[TARGET] && global$7[TARGET].prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor$1(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty$3(sourceProperty, 'sham', true); + } + defineBuiltIn$7(target, key, sourceProperty, options); + } + }; + + var classof$7 = classofRaw$2; + + // `IsArray` abstract operation + // https://tc39.es/ecma262/#sec-isarray + // eslint-disable-next-line es/no-array-isarray -- safe + var isArray$2 = Array.isArray || function isArray(argument) { + return classof$7(argument) === 'Array'; + }; + + var $TypeError$5 = TypeError; + var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + + var doesNotExceedSafeInteger$1 = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError$5('Maximum allowed index exceeded'); + return it; + }; + + var DESCRIPTORS$7 = descriptors; + var definePropertyModule$1 = objectDefineProperty; + var createPropertyDescriptor$2 = createPropertyDescriptor$5; + + var createProperty$1 = function (object, key, value) { + if (DESCRIPTORS$7) definePropertyModule$1.f(object, key, createPropertyDescriptor$2(0, value)); + else object[key] = value; + }; + + var wellKnownSymbol$d = wellKnownSymbol$f; + + var TO_STRING_TAG$2 = wellKnownSymbol$d('toStringTag'); + var test = {}; + + test[TO_STRING_TAG$2] = 'z'; + + var toStringTagSupport = String(test) === '[object z]'; + + var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; + var isCallable$6 = isCallable$h; + var classofRaw$1 = classofRaw$2; + var wellKnownSymbol$c = wellKnownSymbol$f; + + var TO_STRING_TAG$1 = wellKnownSymbol$c('toStringTag'); + var $Object$1 = Object; + + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) === 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; + + // getting tag from ES6+ `Object.prototype.toString` + var classof$6 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object$1(it), TO_STRING_TAG$1)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) === 'Object' && isCallable$6(O.callee) ? 'Arguments' : result; + }; + + var uncurryThis$9 = functionUncurryThis; + var fails$c = fails$l; + var isCallable$5 = isCallable$h; + var classof$5 = classof$6; + var getBuiltIn$1 = getBuiltIn$4; + var inspectSource = inspectSource$2; + + var noop = function () { /* empty */ }; + var construct = getBuiltIn$1('Reflect', 'construct'); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec$1 = uncurryThis$9(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.test(noop); + + var isConstructorModern = function isConstructor(argument) { + if (!isCallable$5(argument)) return false; + try { + construct(noop, [], argument); + return true; + } catch (error) { + return false; + } + }; + + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$5(argument)) return false; + switch (classof$5(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec$1(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } + }; + + isConstructorLegacy.sham = true; + + // `IsConstructor` abstract operation + // https://tc39.es/ecma262/#sec-isconstructor + var isConstructor$1 = !construct || fails$c(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; + }) ? isConstructorLegacy : isConstructorModern; + + var isArray$1 = isArray$2; + var isConstructor = isConstructor$1; + var isObject$5 = isObject$b; + var wellKnownSymbol$b = wellKnownSymbol$f; + + var SPECIES$2 = wellKnownSymbol$b('species'); + var $Array = Array; + + // a part of `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray$1(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === $Array || isArray$1(C.prototype))) C = undefined; + else if (isObject$5(C)) { + C = C[SPECIES$2]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array : C; + }; + + var arraySpeciesConstructor = arraySpeciesConstructor$1; + + // `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesCreate$1 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; + + var fails$b = fails$l; + var wellKnownSymbol$a = wellKnownSymbol$f; + var V8_VERSION$1 = engineV8Version; + + var SPECIES$1 = wellKnownSymbol$a('species'); + + var arrayMethodHasSpeciesSupport$1 = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION$1 >= 51 || !fails$b(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES$1] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); + }; + + var $$5 = _export; + var fails$a = fails$l; + var isArray = isArray$2; + var isObject$4 = isObject$b; + var toObject$2 = toObject$4; + var lengthOfArrayLike = lengthOfArrayLike$2; + var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1; + var createProperty = createProperty$1; + var arraySpeciesCreate = arraySpeciesCreate$1; + var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$1; + var wellKnownSymbol$9 = wellKnownSymbol$f; + var V8_VERSION = engineV8Version; + + var IS_CONCAT_SPREADABLE = wellKnownSymbol$9('isConcatSpreadable'); + + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/679 + var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails$a(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; + }); + + var isConcatSpreadable = function (O) { + if (!isObject$4(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); + }; + + var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat'); + + // `Array.prototype.concat` method + // https://tc39.es/ecma262/#sec-array.prototype.concat + // with adding support of @@isConcatSpreadable and @@species + $$5({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject$2(this); + var A = arraySpeciesCreate(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty(A, n++, E); + } + } + A.length = n; + return A; + } + }); + + var objectDefineProperties = {}; + + var internalObjectKeys = objectKeysInternal; + var enumBugKeys$1 = enumBugKeys$3; + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + // eslint-disable-next-line es/no-object-keys -- safe + var objectKeys$3 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); + }; + + var DESCRIPTORS$6 = descriptors; + var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; + var definePropertyModule = objectDefineProperty; + var anObject$7 = anObject$a; + var toIndexedObject$2 = toIndexedObject$6; + var objectKeys$2 = objectKeys$3; + + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + // eslint-disable-next-line es/no-object-defineproperties -- safe + objectDefineProperties.f = DESCRIPTORS$6 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$7(O); + var props = toIndexedObject$2(Properties); + var keys = objectKeys$2(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; + }; + + var getBuiltIn = getBuiltIn$4; + + var html$1 = getBuiltIn('document', 'documentElement'); + + /* global ActiveXObject -- old IE, WSH */ + var anObject$6 = anObject$a; + var definePropertiesModule = objectDefineProperties; + var enumBugKeys = enumBugKeys$3; + var hiddenKeys = hiddenKeys$4; + var html = html$1; + var documentCreateElement$1 = documentCreateElement$2; + var sharedKey$1 = sharedKey$3; + + var GT = '>'; + var LT = '<'; + var PROTOTYPE = 'prototype'; + var SCRIPT = 'script'; + var IE_PROTO$1 = sharedKey$1('IE_PROTO'); + + var EmptyConstructor = function () { /* empty */ }; + + var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; + }; + + // Create object with fake `null` prototype: use ActiveX Object with cleared prototype + var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; + }; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement$1('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; + }; + + // Check for document.domain and active x support + // No need to use active x approach when document.domain is not set + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + // avoid IE GC bug + var activeXDocument; + var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); + }; + + hiddenKeys[IE_PROTO$1] = true; + + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + // eslint-disable-next-line es/no-object-create -- safe + var objectCreate = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject$6(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO$1] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); + }; + + var wellKnownSymbol$8 = wellKnownSymbol$f; + var create$3 = objectCreate; + var defineProperty$4 = objectDefineProperty.f; + + var UNSCOPABLES = wellKnownSymbol$8('unscopables'); + var ArrayPrototype = Array.prototype; + + // Array.prototype[@@unscopables] + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + if (ArrayPrototype[UNSCOPABLES] === undefined) { + defineProperty$4(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create$3(null) + }); + } + + // add a key to Array.prototype[@@unscopables] + var addToUnscopables$1 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; + }; + + var iterators = {}; + + var fails$9 = fails$l; + + var correctPrototypeGetter = !fails$9(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; + }); + + var hasOwn$3 = hasOwnProperty_1; + var isCallable$4 = isCallable$h; + var toObject$1 = toObject$4; + var sharedKey = sharedKey$3; + var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter; + + var IE_PROTO = sharedKey('IE_PROTO'); + var $Object = Object; + var ObjectPrototype = $Object.prototype; + + // `Object.getPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.getprototypeof + // eslint-disable-next-line es/no-object-getprototypeof -- safe + var objectGetPrototypeOf$1 = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject$1(O); + if (hasOwn$3(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable$4(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; + }; + + var fails$8 = fails$l; + var isCallable$3 = isCallable$h; + var isObject$3 = isObject$b; + var getPrototypeOf$1 = objectGetPrototypeOf$1; + var defineBuiltIn$6 = defineBuiltIn$8; + var wellKnownSymbol$7 = wellKnownSymbol$f; + + var ITERATOR$5 = wellKnownSymbol$7('iterator'); + var BUGGY_SAFARI_ITERATORS$1 = false; + + // `%IteratorPrototype%` object + // https://tc39.es/ecma262/#sec-%iteratorprototype%-object + var IteratorPrototype$2, PrototypeOfArrayIteratorPrototype, arrayIterator; + + /* eslint-disable es/no-array-prototype-keys -- safe */ + if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS$1 = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf$1(getPrototypeOf$1(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype$2 = PrototypeOfArrayIteratorPrototype; + } + } + + var NEW_ITERATOR_PROTOTYPE = !isObject$3(IteratorPrototype$2) || fails$8(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype$2[ITERATOR$5].call(test) !== test; + }); + + if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$2 = {}; + + // `%IteratorPrototype%[@@iterator]()` method + // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator + if (!isCallable$3(IteratorPrototype$2[ITERATOR$5])) { + defineBuiltIn$6(IteratorPrototype$2, ITERATOR$5, function () { + return this; + }); + } + + var iteratorsCore = { + IteratorPrototype: IteratorPrototype$2, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1 + }; + + var defineProperty$3 = objectDefineProperty.f; + var hasOwn$2 = hasOwnProperty_1; + var wellKnownSymbol$6 = wellKnownSymbol$f; + + var TO_STRING_TAG = wellKnownSymbol$6('toStringTag'); + + var setToStringTag$4 = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn$2(target, TO_STRING_TAG)) { + defineProperty$3(target, TO_STRING_TAG, { configurable: true, value: TAG }); + } + }; + + var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; + var create$2 = objectCreate; + var createPropertyDescriptor$1 = createPropertyDescriptor$5; + var setToStringTag$3 = setToStringTag$4; + var Iterators$3 = iterators; + + var returnThis$1 = function () { return this; }; + + var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create$2(IteratorPrototype$1, { next: createPropertyDescriptor$1(+!ENUMERABLE_NEXT, next) }); + setToStringTag$3(IteratorConstructor, TO_STRING_TAG, false); + Iterators$3[TO_STRING_TAG] = returnThis$1; + return IteratorConstructor; + }; + + var uncurryThis$8 = functionUncurryThis; + var aCallable$2 = aCallable$4; + + var functionUncurryThisAccessor = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis$8(aCallable$2(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } + }; + + var isObject$2 = isObject$b; + + var isPossiblePrototype$1 = function (argument) { + return isObject$2(argument) || argument === null; + }; + + var isPossiblePrototype = isPossiblePrototype$1; + + var $String$1 = String; + var $TypeError$4 = TypeError; + + var aPossiblePrototype$1 = function (argument) { + if (isPossiblePrototype(argument)) return argument; + throw new $TypeError$4("Can't set " + $String$1(argument) + ' as a prototype'); + }; + + /* eslint-disable no-proto -- safe */ + var uncurryThisAccessor = functionUncurryThisAccessor; + var isObject$1 = isObject$b; + var requireObjectCoercible$2 = requireObjectCoercible$5; + var aPossiblePrototype = aPossiblePrototype$1; + + // `Object.setPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.setprototypeof + // Works with __proto__ only. Old v8 can't work with null proto objects. + // eslint-disable-next-line es/no-object-setprototypeof -- safe + var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + requireObjectCoercible$2(O); + aPossiblePrototype(proto); + if (!isObject$1(O)) return O; + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; + }() : undefined); + + var $$4 = _export; + var call$8 = functionCall; + var FunctionName = functionName; + var isCallable$2 = isCallable$h; + var createIteratorConstructor$1 = iteratorCreateConstructor; + var getPrototypeOf = objectGetPrototypeOf$1; + var setPrototypeOf = objectSetPrototypeOf; + var setToStringTag$2 = setToStringTag$4; + var createNonEnumerableProperty$2 = createNonEnumerableProperty$5; + var defineBuiltIn$5 = defineBuiltIn$8; + var wellKnownSymbol$5 = wellKnownSymbol$f; + var Iterators$2 = iterators; + var IteratorsCore = iteratorsCore; + + var PROPER_FUNCTION_NAME$1 = FunctionName.PROPER; + var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; + var IteratorPrototype = IteratorsCore.IteratorPrototype; + var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; + var ITERATOR$4 = wellKnownSymbol$5('iterator'); + var KEYS = 'keys'; + var VALUES = 'values'; + var ENTRIES = 'entries'; + + var returnThis = function () { return this; }; + + var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor$1(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND]; + + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } + + return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR$4] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable$2(CurrentIteratorPrototype[ITERATOR$4])) { + defineBuiltIn$5(CurrentIteratorPrototype, ITERATOR$4, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag$2(CurrentIteratorPrototype, TO_STRING_TAG, true); + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME$1 && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty$2(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call$8(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn$5(IterablePrototype, KEY, methods[KEY]); + } + } else $$4({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if (IterablePrototype[ITERATOR$4] !== defaultIterator) { + defineBuiltIn$5(IterablePrototype, ITERATOR$4, defaultIterator, { name: DEFAULT }); + } + Iterators$2[NAME] = defaultIterator; + + return methods; + }; + + // `CreateIterResultObject` abstract operation + // https://tc39.es/ecma262/#sec-createiterresultobject + var createIterResultObject$3 = function (value, done) { + return { value: value, done: done }; + }; + + var toIndexedObject$1 = toIndexedObject$6; + var addToUnscopables = addToUnscopables$1; + var Iterators$1 = iterators; + var InternalStateModule$2 = internalState; + var defineProperty$2 = objectDefineProperty.f; + var defineIterator$1 = iteratorDefine; + var createIterResultObject$2 = createIterResultObject$3; + var DESCRIPTORS$5 = descriptors; + + var ARRAY_ITERATOR = 'Array Iterator'; + var setInternalState$2 = InternalStateModule$2.set; + var getInternalState$2 = InternalStateModule$2.getterFor(ARRAY_ITERATOR); + + // `Array.prototype.entries` method + // https://tc39.es/ecma262/#sec-array.prototype.entries + // `Array.prototype.keys` method + // https://tc39.es/ecma262/#sec-array.prototype.keys + // `Array.prototype.values` method + // https://tc39.es/ecma262/#sec-array.prototype.values + // `Array.prototype[@@iterator]` method + // https://tc39.es/ecma262/#sec-array.prototype-@@iterator + // `CreateArrayIterator` internal method + // https://tc39.es/ecma262/#sec-createarrayiterator + var es_array_iterator = defineIterator$1(Array, 'Array', function (iterated, kind) { + setInternalState$2(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject$1(iterated), // target + index: 0, // next index + kind: kind // kind + }); + // `%ArrayIteratorPrototype%.next` method + // https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next + }, function () { + var state = getInternalState$2(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject$2(undefined, true); + } + switch (state.kind) { + case 'keys': return createIterResultObject$2(index, false); + case 'values': return createIterResultObject$2(target[index], false); + } return createIterResultObject$2([index, target[index]], false); + }, 'values'); + + // argumentsList[@@iterator] is %ArrayProto_values% + // https://tc39.es/ecma262/#sec-createunmappedargumentsobject + // https://tc39.es/ecma262/#sec-createmappedargumentsobject + var values = Iterators$1.Arguments = Iterators$1.Array; + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables('keys'); + addToUnscopables('values'); + addToUnscopables('entries'); + + // V8 ~ Chrome 45- bug + if (DESCRIPTORS$5 && values.name !== 'values') try { + defineProperty$2(values, 'name', { value: 'values' }); + } catch (error) { /* empty */ } + + var DESCRIPTORS$4 = descriptors; + var uncurryThis$7 = functionUncurryThis; + var call$7 = functionCall; + var fails$7 = fails$l; + var objectKeys$1 = objectKeys$3; + var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; + var propertyIsEnumerableModule = objectPropertyIsEnumerable; + var toObject = toObject$4; + var IndexedObject = indexedObject; + + // eslint-disable-next-line es/no-object-assign -- safe + var $assign = Object.assign; + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + var defineProperty$1 = Object.defineProperty; + var concat = uncurryThis$7([].concat); + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + var objectAssign = !$assign || fails$7(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS$4 && $assign({ b: 1 }, $assign(defineProperty$1({}, 'a', { + enumerable: true, + get: function () { + defineProperty$1(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol('assign detection'); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] !== 7 || objectKeys$1($assign({}, B)).join('') !== alphabet; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys$1(S), getOwnPropertySymbols(S)) : objectKeys$1(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS$4 || call$7(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; + } : $assign; + + var $$3 = _export; + var assign = objectAssign; + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + // eslint-disable-next-line es/no-object-assign -- required for testing + $$3({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign + }); + + var DESCRIPTORS$3 = descriptors; + var fails$6 = fails$l; + var uncurryThis$6 = functionUncurryThis; + var objectGetPrototypeOf = objectGetPrototypeOf$1; + var objectKeys = objectKeys$3; + var toIndexedObject = toIndexedObject$6; + var $propertyIsEnumerable = objectPropertyIsEnumerable.f; + + var propertyIsEnumerable = uncurryThis$6($propertyIsEnumerable); + var push$1 = uncurryThis$6([].push); + + // in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys + // of `null` prototype objects + var IE_BUG = DESCRIPTORS$3 && fails$6(function () { + // eslint-disable-next-line es/no-object-create -- safe + var O = Object.create(null); + O[2] = 2; + return !propertyIsEnumerable(O, 2); + }); + + // `Object.{ entries, values }` methods implementation + var createMethod$1 = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null; + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS$3 || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) { + push$1(result, TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; + }; + + var objectToArray = { + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + entries: createMethod$1(true), + // `Object.values` method + // https://tc39.es/ecma262/#sec-object.values + values: createMethod$1(false) + }; + + var $$2 = _export; + var $entries = objectToArray.entries; + + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + $$2({ target: 'Object', stat: true }, { + entries: function entries(O) { + return $entries(O); + } + }); + + var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; + var classof$4 = classof$6; + + // `Object.prototype.toString` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.tostring + var objectToString = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$4(this) + ']'; + }; + + var TO_STRING_TAG_SUPPORT = toStringTagSupport; + var defineBuiltIn$4 = defineBuiltIn$8; + var toString$5 = objectToString; + + // `Object.prototype.toString` method + // https://tc39.es/ecma262/#sec-object.prototype.tostring + if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn$4(Object.prototype, 'toString', toString$5, { unsafe: true }); + } + + var classof$3 = classof$6; + + var $String = String; + + var toString$4 = function (argument) { + if (classof$3(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); + }; + + var anObject$5 = anObject$a; + + // `RegExp.prototype.flags` getter implementation + // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags + var regexpFlags$1 = function () { + var that = anObject$5(this); + var result = ''; + if (that.hasIndices) result += 'd'; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.unicodeSets) result += 'v'; + if (that.sticky) result += 'y'; + return result; + }; + + var fails$5 = fails$l; + var global$6 = global$g; + + // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError + var $RegExp$2 = global$6.RegExp; + + var UNSUPPORTED_Y$1 = fails$5(function () { + var re = $RegExp$2('a', 'y'); + re.lastIndex = 2; + return re.exec('abcd') !== null; + }); + + // UC Browser bug + // https://github.com/zloirock/core-js/issues/1008 + var MISSED_STICKY = UNSUPPORTED_Y$1 || fails$5(function () { + return !$RegExp$2('a', 'y').sticky; + }); + + var BROKEN_CARET = UNSUPPORTED_Y$1 || fails$5(function () { + // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 + var re = $RegExp$2('^r', 'gy'); + re.lastIndex = 2; + return re.exec('str') !== null; + }); + + var regexpStickyHelpers = { + BROKEN_CARET: BROKEN_CARET, + MISSED_STICKY: MISSED_STICKY, + UNSUPPORTED_Y: UNSUPPORTED_Y$1 + }; + + var fails$4 = fails$l; + var global$5 = global$g; + + // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError + var $RegExp$1 = global$5.RegExp; + + var regexpUnsupportedDotAll = fails$4(function () { + var re = $RegExp$1('.', 's'); + return !(re.dotAll && re.test('\n') && re.flags === 's'); + }); + + var fails$3 = fails$l; + var global$4 = global$g; + + // babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError + var $RegExp = global$4.RegExp; + + var regexpUnsupportedNcg = fails$3(function () { + var re = $RegExp('(?b)', 'g'); + return re.exec('b').groups.a !== 'b' || + 'b'.replace(re, '$c') !== 'bc'; + }); + + /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ + /* eslint-disable regexp/no-useless-quantifier -- testing */ + var call$6 = functionCall; + var uncurryThis$5 = functionUncurryThis; + var toString$3 = toString$4; + var regexpFlags = regexpFlags$1; + var stickyHelpers = regexpStickyHelpers; + var shared = shared$4; + var create$1 = objectCreate; + var getInternalState$1 = internalState.get; + var UNSUPPORTED_DOT_ALL = regexpUnsupportedDotAll; + var UNSUPPORTED_NCG = regexpUnsupportedNcg; + + var nativeReplace = shared('native-string-replace', String.prototype.replace); + var nativeExec = RegExp.prototype.exec; + var patchedExec = nativeExec; + var charAt$3 = uncurryThis$5(''.charAt); + var indexOf = uncurryThis$5(''.indexOf); + var replace$1 = uncurryThis$5(''.replace); + var stringSlice$2 = uncurryThis$5(''.slice); + + var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/; + var re2 = /b*/g; + call$6(nativeExec, re1, 'a'); + call$6(nativeExec, re2, 'a'); + return re1.lastIndex !== 0 || re2.lastIndex !== 0; + })(); + + var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; + + // nonparticipating capturing group, copied from es5-shim's String#split patch. + var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + + var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; + + if (PATCH) { + patchedExec = function exec(string) { + var re = this; + var state = getInternalState$1(re); + var str = toString$3(string); + var raw = state.raw; + var result, reCopy, lastIndex, match, i, object, group; + + if (raw) { + raw.lastIndex = re.lastIndex; + result = call$6(patchedExec, raw, str); + re.lastIndex = raw.lastIndex; + return result; + } + + var groups = state.groups; + var sticky = UNSUPPORTED_Y && re.sticky; + var flags = call$6(regexpFlags, re); + var source = re.source; + var charsAdded = 0; + var strCopy = str; + + if (sticky) { + flags = replace$1(flags, 'y', ''); + if (indexOf(flags, 'g') === -1) { + flags += 'g'; + } + + strCopy = stringSlice$2(str, re.lastIndex); + // Support anchored sticky behavior. + if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt$3(str, re.lastIndex - 1) !== '\n')) { + source = '(?: ' + source + ')'; + strCopy = ' ' + strCopy; + charsAdded++; + } + // ^(? + rx + ) is needed, in combination with some str slicing, to + // simulate the 'y' flag. + reCopy = new RegExp('^(?:' + source + ')', flags); + } + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + source + '$(?!\\s)', flags); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; + + match = call$6(nativeExec, sticky ? reCopy : re, strCopy); + + if (sticky) { + if (match) { + match.input = stringSlice$2(match.input, charsAdded); + match[0] = stringSlice$2(match[0], charsAdded); + match.index = re.lastIndex; + re.lastIndex += match[0].length; + } else re.lastIndex = 0; + } else if (UPDATES_LAST_INDEX_WRONG && match) { + re.lastIndex = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/ + call$6(nativeReplace, match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + if (match && groups) { + match.groups = object = create$1(null); + for (i = 0; i < groups.length; i++) { + group = groups[i]; + object[group[0]] = match[group[1]]; + } + } + + return match; + }; + } + + var regexpExec$2 = patchedExec; + + var $$1 = _export; + var exec = regexpExec$2; + + // `RegExp.prototype.exec` method + // https://tc39.es/ecma262/#sec-regexp.prototype.exec + $$1({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { + exec: exec + }); + + var call$5 = functionCall; + var hasOwn$1 = hasOwnProperty_1; + var isPrototypeOf$1 = objectIsPrototypeOf; + var regExpFlags = regexpFlags$1; + + var RegExpPrototype$2 = RegExp.prototype; + + var regexpGetFlags = function (R) { + var flags = R.flags; + return flags === undefined && !('flags' in RegExpPrototype$2) && !hasOwn$1(R, 'flags') && isPrototypeOf$1(RegExpPrototype$2, R) + ? call$5(regExpFlags, R) : flags; + }; + + var PROPER_FUNCTION_NAME = functionName.PROPER; + var defineBuiltIn$3 = defineBuiltIn$8; + var anObject$4 = anObject$a; + var $toString$1 = toString$4; + var fails$2 = fails$l; + var getRegExpFlags = regexpGetFlags; + + var TO_STRING = 'toString'; + var RegExpPrototype$1 = RegExp.prototype; + var nativeToString = RegExpPrototype$1[TO_STRING]; + + var NOT_GENERIC = fails$2(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; }); + // FF44- RegExp#toString has a wrong name + var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING; + + // `RegExp.prototype.toString` method + // https://tc39.es/ecma262/#sec-regexp.prototype.tostring + if (NOT_GENERIC || INCORRECT_NAME) { + defineBuiltIn$3(RegExpPrototype$1, TO_STRING, function toString() { + var R = anObject$4(this); + var pattern = $toString$1(R.source); + var flags = $toString$1(getRegExpFlags(R)); + return '/' + pattern + '/' + flags; + }, { unsafe: true }); + } + + var uncurryThis$4 = functionUncurryThis; + var toIntegerOrInfinity = toIntegerOrInfinity$3; + var toString$2 = toString$4; + var requireObjectCoercible$1 = requireObjectCoercible$5; + + var charAt$2 = uncurryThis$4(''.charAt); + var charCodeAt = uncurryThis$4(''.charCodeAt); + var stringSlice$1 = uncurryThis$4(''.slice); + + var createMethod = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString$2(requireObjectCoercible$1($this)); + var position = toIntegerOrInfinity(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt$2(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice$1(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; + }; + + var stringMultibyte = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod(true) + }; + + var charAt$1 = stringMultibyte.charAt; + var toString$1 = toString$4; + var InternalStateModule$1 = internalState; + var defineIterator = iteratorDefine; + var createIterResultObject$1 = createIterResultObject$3; + + var STRING_ITERATOR = 'String Iterator'; + var setInternalState$1 = InternalStateModule$1.set; + var getInternalState = InternalStateModule$1.getterFor(STRING_ITERATOR); + + // `String.prototype[@@iterator]` method + // https://tc39.es/ecma262/#sec-string.prototype-@@iterator + defineIterator(String, 'String', function (iterated) { + setInternalState$1(this, { + type: STRING_ITERATOR, + string: toString$1(iterated), + index: 0 + }); + // `%StringIteratorPrototype%.next` method + // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next + }, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject$1(undefined, true); + point = charAt$1(string, index); + state.index += point.length; + return createIterResultObject$1(point, false); + }); + + // TODO: Remove from `core-js@4` since it's moved to entry points + + var call$4 = functionCall; + var defineBuiltIn$2 = defineBuiltIn$8; + var regexpExec$1 = regexpExec$2; + var fails$1 = fails$l; + var wellKnownSymbol$4 = wellKnownSymbol$f; + var createNonEnumerableProperty$1 = createNonEnumerableProperty$5; + + var SPECIES = wellKnownSymbol$4('species'); + var RegExpPrototype = RegExp.prototype; + + var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) { + var SYMBOL = wellKnownSymbol$4(KEY); + + var DELEGATES_TO_SYMBOL = !fails$1(function () { + // String methods call symbol-named RegExp methods + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) !== 7; + }); + + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$1(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + + if (KEY === 'split') { + // We can't use real regex here since it causes deoptimization + // and serious performance degradation in V8 + // https://github.com/zloirock/core-js/issues/306 + re = {}; + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + re.constructor[SPECIES] = function () { return re; }; + re.flags = ''; + re[SYMBOL] = /./[SYMBOL]; + } + + re.exec = function () { + execCalled = true; + return null; + }; + + re[SYMBOL](''); + return !execCalled; + }); + + if ( + !DELEGATES_TO_SYMBOL || + !DELEGATES_TO_EXEC || + FORCED + ) { + var nativeRegExpMethod = /./[SYMBOL]; + var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { + var $exec = regexp.exec; + if ($exec === regexpExec$1 || $exec === RegExpPrototype.exec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { done: true, value: call$4(nativeRegExpMethod, regexp, str, arg2) }; + } + return { done: true, value: call$4(nativeMethod, str, regexp, arg2) }; + } + return { done: false }; + }); + + defineBuiltIn$2(String.prototype, KEY, methods[0]); + defineBuiltIn$2(RegExpPrototype, SYMBOL, methods[1]); + } + + if (SHAM) createNonEnumerableProperty$1(RegExpPrototype[SYMBOL], 'sham', true); + }; + + // `SameValue` abstract operation + // https://tc39.es/ecma262/#sec-samevalue + // eslint-disable-next-line es/no-object-is -- safe + var sameValue$1 = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare -- NaN check + return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y; + }; + + var call$3 = functionCall; + var anObject$3 = anObject$a; + var isCallable$1 = isCallable$h; + var classof$2 = classofRaw$2; + var regexpExec = regexpExec$2; + + var $TypeError$3 = TypeError; + + // `RegExpExec` abstract operation + // https://tc39.es/ecma262/#sec-regexpexec + var regexpExecAbstract = function (R, S) { + var exec = R.exec; + if (isCallable$1(exec)) { + var result = call$3(exec, R, S); + if (result !== null) anObject$3(result); + return result; + } + if (classof$2(R) === 'RegExp') return call$3(regexpExec, R, S); + throw new $TypeError$3('RegExp#exec called on incompatible receiver'); + }; + + var call$2 = functionCall; + var fixRegExpWellKnownSymbolLogic = fixRegexpWellKnownSymbolLogic; + var anObject$2 = anObject$a; + var isNullOrUndefined$1 = isNullOrUndefined$4; + var requireObjectCoercible = requireObjectCoercible$5; + var sameValue = sameValue$1; + var toString = toString$4; + var getMethod$1 = getMethod$3; + var regExpExec = regexpExecAbstract; + + // @@search logic + fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) { + return [ + // `String.prototype.search` method + // https://tc39.es/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = requireObjectCoercible(this); + var searcher = isNullOrUndefined$1(regexp) ? undefined : getMethod$1(regexp, SEARCH); + return searcher ? call$2(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O)); + }, + // `RegExp.prototype[@@search]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@search + function (string) { + var rx = anObject$2(this); + var S = toString(string); + var res = maybeCallNative(nativeSearch, rx, S); + + if (res.done) return res.value; + + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regExpExec(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + } + ]; + }); + + // iterable DOM collections + // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods + var domIterables = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 + }; + + // in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` + var documentCreateElement = documentCreateElement$2; + + var classList = documentCreateElement('span').classList; + var DOMTokenListPrototype$1 = classList && classList.constructor && classList.constructor.prototype; + + var domTokenListPrototype = DOMTokenListPrototype$1 === Object.prototype ? undefined : DOMTokenListPrototype$1; + + var global$3 = global$g; + var DOMIterables = domIterables; + var DOMTokenListPrototype = domTokenListPrototype; + var ArrayIteratorMethods = es_array_iterator; + var createNonEnumerableProperty = createNonEnumerableProperty$5; + var setToStringTag$1 = setToStringTag$4; + var wellKnownSymbol$3 = wellKnownSymbol$f; + + var ITERATOR$3 = wellKnownSymbol$3('iterator'); + var ArrayValues = ArrayIteratorMethods.values; + + var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR$3] !== ArrayValues) try { + createNonEnumerableProperty(CollectionPrototype, ITERATOR$3, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR$3] = ArrayValues; + } + setToStringTag$1(CollectionPrototype, COLLECTION_NAME, true); + if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } + }; + + for (var COLLECTION_NAME in DOMIterables) { + handlePrototype(global$3[COLLECTION_NAME] && global$3[COLLECTION_NAME].prototype, COLLECTION_NAME); + } + + handlePrototype(DOMTokenListPrototype, 'DOMTokenList'); + + var global$2 = global$g; + var DESCRIPTORS$2 = descriptors; + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + + // Avoid NodeJS experimental warning + var safeGetBuiltIn$1 = function (name) { + if (!DESCRIPTORS$2) return global$2[name]; + var descriptor = getOwnPropertyDescriptor(global$2, name); + return descriptor && descriptor.value; + }; + + var fails = fails$l; + var wellKnownSymbol$2 = wellKnownSymbol$f; + var DESCRIPTORS$1 = descriptors; + var IS_PURE = isPure; + + var ITERATOR$2 = wellKnownSymbol$2('iterator'); + + var urlConstructorDetection = !fails(function () { + // eslint-disable-next-line unicorn/relative-url-style -- required for testing + var url = new URL('b?a=1&b=2&c=3', 'http://a'); + var params = url.searchParams; + var params2 = new URLSearchParams('a=1&a=2&b=3'); + var result = ''; + url.pathname = 'c%20d'; + params.forEach(function (value, key) { + params['delete']('b'); + result += key + value; + }); + params2['delete']('a', 2); + // `undefined` case is a Chromium 117 bug + // https://bugs.chromium.org/p/v8/issues/detail?id=14222 + params2['delete']('b', undefined); + return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b'))) + || (!params.size && (IS_PURE || !DESCRIPTORS$1)) + || !params.sort + || url.href !== 'http://a/c%20d?a=1&c=3' + || params.get('c') !== '3' + || String(new URLSearchParams('?a=1')) !== 'a=1' + || !params[ITERATOR$2] + // throws in Edge + || new URL('https://a@b').username !== 'a' + || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' + // not punycoded in Edge + || new URL('http://тест').host !== 'xn--e1aybc' + // not escaped in Chrome 62- + || new URL('http://a#б').hash !== '#%D0%B1' + // fails in Chrome 66- + || result !== 'a1c3' + // throws in Safari + || new URL('http://x', undefined).host !== 'x'; + }); + + var makeBuiltIn = makeBuiltInExports; + var defineProperty = objectDefineProperty; + + var defineBuiltInAccessor$1 = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true }); + return defineProperty.f(target, name, descriptor); + }; + + var defineBuiltIn$1 = defineBuiltIn$8; + + var defineBuiltIns$1 = function (target, src, options) { + for (var key in src) defineBuiltIn$1(target, key, src[key], options); + return target; + }; + + var isPrototypeOf = objectIsPrototypeOf; + + var $TypeError$2 = TypeError; + + var anInstance$1 = function (it, Prototype) { + if (isPrototypeOf(Prototype, it)) return it; + throw new $TypeError$2('Incorrect invocation'); + }; + + var classofRaw = classofRaw$2; + var uncurryThis$3 = functionUncurryThis; + + var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$3(fn); + }; + + var uncurryThis$2 = functionUncurryThisClause; + var aCallable$1 = aCallable$4; + var NATIVE_BIND = functionBindNative; + + var bind$1 = uncurryThis$2(uncurryThis$2.bind); + + // optional / simple context binding + var functionBindContext = function (fn, that) { + aCallable$1(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$1(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; + + var classof$1 = classof$6; + var getMethod = getMethod$3; + var isNullOrUndefined = isNullOrUndefined$4; + var Iterators = iterators; + var wellKnownSymbol$1 = wellKnownSymbol$f; + + var ITERATOR$1 = wellKnownSymbol$1('iterator'); + + var getIteratorMethod$2 = function (it) { + if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR$1) + || getMethod(it, '@@iterator') + || Iterators[classof$1(it)]; + }; + + var call$1 = functionCall; + var aCallable = aCallable$4; + var anObject$1 = anObject$a; + var tryToString = tryToString$2; + var getIteratorMethod$1 = getIteratorMethod$2; + + var $TypeError$1 = TypeError; + + var getIterator$1 = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod$1(argument) : usingIterator; + if (aCallable(iteratorMethod)) return anObject$1(call$1(iteratorMethod, argument)); + throw new $TypeError$1(tryToString(argument) + ' is not iterable'); + }; + + var $TypeError = TypeError; + + var validateArgumentsLength$1 = function (passed, required) { + if (passed < required) throw new $TypeError('Not enough arguments'); + return passed; + }; + + var uncurryThis$1 = functionUncurryThis; + + var arraySlice$1 = uncurryThis$1([].slice); + + var arraySlice = arraySlice$1; + + var floor = Math.floor; + + var sort = function (array, comparefn) { + var length = array.length; + + if (length < 8) { + // insertion sort + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; + } + if (j !== i++) array[j] = element; + } + } else { + // merge sort + var middle = floor(length / 2); + var left = sort(arraySlice(array, 0, middle), comparefn); + var right = sort(arraySlice(array, middle), comparefn); + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + + while (lindex < llength || rindex < rlength) { + array[lindex + rindex] = (lindex < llength && rindex < rlength) + ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] + : lindex < llength ? left[lindex++] : right[rindex++]; + } + } + + return array; + }; + + var arraySort$1 = sort; + + // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` + + var $ = _export; + var global$1 = global$g; + var safeGetBuiltIn = safeGetBuiltIn$1; + var call = functionCall; + var uncurryThis = functionUncurryThis; + var DESCRIPTORS = descriptors; + var USE_NATIVE_URL = urlConstructorDetection; + var defineBuiltIn = defineBuiltIn$8; + var defineBuiltInAccessor = defineBuiltInAccessor$1; + var defineBuiltIns = defineBuiltIns$1; + var setToStringTag = setToStringTag$4; + var createIteratorConstructor = iteratorCreateConstructor; + var InternalStateModule = internalState; + var anInstance = anInstance$1; + var isCallable = isCallable$h; + var hasOwn = hasOwnProperty_1; + var bind = functionBindContext; + var classof = classof$6; + var anObject = anObject$a; + var isObject = isObject$b; + var $toString = toString$4; + var create = objectCreate; + var createPropertyDescriptor = createPropertyDescriptor$5; + var getIterator = getIterator$1; + var getIteratorMethod = getIteratorMethod$2; + var createIterResultObject = createIterResultObject$3; + var validateArgumentsLength = validateArgumentsLength$1; + var wellKnownSymbol = wellKnownSymbol$f; + var arraySort = arraySort$1; + + var ITERATOR = wellKnownSymbol('iterator'); + var URL_SEARCH_PARAMS = 'URLSearchParams'; + var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; + var setInternalState = InternalStateModule.set; + var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS); + var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR); + + var nativeFetch = safeGetBuiltIn('fetch'); + var NativeRequest = safeGetBuiltIn('Request'); + var Headers = safeGetBuiltIn('Headers'); + var RequestPrototype = NativeRequest && NativeRequest.prototype; + var HeadersPrototype = Headers && Headers.prototype; + var RegExp$1 = global$1.RegExp; + var TypeError$1 = global$1.TypeError; + var decodeURIComponent = global$1.decodeURIComponent; + var encodeURIComponent = global$1.encodeURIComponent; + var charAt = uncurryThis(''.charAt); + var join = uncurryThis([].join); + var push = uncurryThis([].push); + var replace = uncurryThis(''.replace); + var shift = uncurryThis([].shift); + var splice = uncurryThis([].splice); + var split = uncurryThis(''.split); + var stringSlice = uncurryThis(''.slice); + + var plus = /\+/g; + var sequences = Array(4); + + var percentSequence = function (bytes) { + return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp$1('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); + }; + + var percentDecode = function (sequence) { + try { + return decodeURIComponent(sequence); + } catch (error) { + return sequence; + } + }; + + var deserialize = function (it) { + var result = replace(it, plus, ' '); + var bytes = 4; + try { + return decodeURIComponent(result); + } catch (error) { + while (bytes) { + result = replace(result, percentSequence(bytes--), percentDecode); + } + return result; + } + }; + + var find = /[!'()~]|%20/g; + + var replacements = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+' + }; + + var replacer = function (match) { + return replacements[match]; + }; + + var serialize = function (it) { + return replace(encodeURIComponent(it), find, replacer); + }; + + var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { + setInternalState(this, { + type: URL_SEARCH_PARAMS_ITERATOR, + target: getInternalParamsState(params).entries, + index: 0, + kind: kind + }); + }, URL_SEARCH_PARAMS, function next() { + var state = getInternalIteratorState(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + var entry = target[index]; + switch (state.kind) { + case 'keys': return createIterResultObject(entry.key, false); + case 'values': return createIterResultObject(entry.value, false); + } return createIterResultObject([entry.key, entry.value], false); + }, true); + + var URLSearchParamsState = function (init) { + this.entries = []; + this.url = null; + + if (init !== undefined) { + if (isObject(init)) this.parseObject(init); + else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init)); + } + }; + + URLSearchParamsState.prototype = { + type: URL_SEARCH_PARAMS, + bindURL: function (url) { + this.url = url; + this.update(); + }, + parseObject: function (object) { + var entries = this.entries; + var iteratorMethod = getIteratorMethod(object); + var iterator, next, step, entryIterator, entryNext, first, second; + + if (iteratorMethod) { + iterator = getIterator(object, iteratorMethod); + next = iterator.next; + while (!(step = call(next, iterator)).done) { + entryIterator = getIterator(anObject(step.value)); + entryNext = entryIterator.next; + if ( + (first = call(entryNext, entryIterator)).done || + (second = call(entryNext, entryIterator)).done || + !call(entryNext, entryIterator).done + ) throw new TypeError$1('Expected sequence with length 2'); + push(entries, { key: $toString(first.value), value: $toString(second.value) }); + } + } else for (var key in object) if (hasOwn(object, key)) { + push(entries, { key: key, value: $toString(object[key]) }); + } + }, + parseQuery: function (query) { + if (query) { + var entries = this.entries; + var attributes = split(query, '&'); + var index = 0; + var attribute, entry; + while (index < attributes.length) { + attribute = attributes[index++]; + if (attribute.length) { + entry = split(attribute, '='); + push(entries, { + key: deserialize(shift(entry)), + value: deserialize(join(entry, '=')) + }); + } + } + } + }, + serialize: function () { + var entries = this.entries; + var result = []; + var index = 0; + var entry; + while (index < entries.length) { + entry = entries[index++]; + push(result, serialize(entry.key) + '=' + serialize(entry.value)); + } return join(result, '&'); + }, + update: function () { + this.entries.length = 0; + this.parseQuery(this.url.query); + }, + updateURL: function () { + if (this.url) this.url.update(); + } + }; + + // `URLSearchParams` constructor + // https://url.spec.whatwg.org/#interface-urlsearchparams + var URLSearchParamsConstructor = function URLSearchParams(/* init */) { + anInstance(this, URLSearchParamsPrototype); + var init = arguments.length > 0 ? arguments[0] : undefined; + var state = setInternalState(this, new URLSearchParamsState(init)); + if (!DESCRIPTORS) this.size = state.entries.length; + }; + + var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; + + defineBuiltIns(URLSearchParamsPrototype, { + // `URLSearchParams.prototype.append` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-append + append: function append(name, value) { + var state = getInternalParamsState(this); + validateArgumentsLength(arguments.length, 2); + push(state.entries, { key: $toString(name), value: $toString(value) }); + if (!DESCRIPTORS) this.length++; + state.updateURL(); + }, + // `URLSearchParams.prototype.delete` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-delete + 'delete': function (name /* , value */) { + var state = getInternalParamsState(this); + var length = validateArgumentsLength(arguments.length, 1); + var entries = state.entries; + var key = $toString(name); + var $value = length < 2 ? undefined : arguments[1]; + var value = $value === undefined ? $value : $toString($value); + var index = 0; + while (index < entries.length) { + var entry = entries[index]; + if (entry.key === key && (value === undefined || entry.value === value)) { + splice(entries, index, 1); + if (value !== undefined) break; + } else index++; + } + if (!DESCRIPTORS) this.size = entries.length; + state.updateURL(); + }, + // `URLSearchParams.prototype.get` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-get + get: function get(name) { + var entries = getInternalParamsState(this).entries; + validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var index = 0; + for (; index < entries.length; index++) { + if (entries[index].key === key) return entries[index].value; + } + return null; + }, + // `URLSearchParams.prototype.getAll` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-getall + getAll: function getAll(name) { + var entries = getInternalParamsState(this).entries; + validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var result = []; + var index = 0; + for (; index < entries.length; index++) { + if (entries[index].key === key) push(result, entries[index].value); + } + return result; + }, + // `URLSearchParams.prototype.has` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-has + has: function has(name /* , value */) { + var entries = getInternalParamsState(this).entries; + var length = validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var $value = length < 2 ? undefined : arguments[1]; + var value = $value === undefined ? $value : $toString($value); + var index = 0; + while (index < entries.length) { + var entry = entries[index++]; + if (entry.key === key && (value === undefined || entry.value === value)) return true; + } + return false; + }, + // `URLSearchParams.prototype.set` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-set + set: function set(name, value) { + var state = getInternalParamsState(this); + validateArgumentsLength(arguments.length, 1); + var entries = state.entries; + var found = false; + var key = $toString(name); + var val = $toString(value); + var index = 0; + var entry; + for (; index < entries.length; index++) { + entry = entries[index]; + if (entry.key === key) { + if (found) splice(entries, index--, 1); + else { + found = true; + entry.value = val; + } + } + } + if (!found) push(entries, { key: key, value: val }); + if (!DESCRIPTORS) this.size = entries.length; + state.updateURL(); + }, + // `URLSearchParams.prototype.sort` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-sort + sort: function sort() { + var state = getInternalParamsState(this); + arraySort(state.entries, function (a, b) { + return a.key > b.key ? 1 : -1; + }); + state.updateURL(); + }, + // `URLSearchParams.prototype.forEach` method + forEach: function forEach(callback /* , thisArg */) { + var entries = getInternalParamsState(this).entries; + var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined); + var index = 0; + var entry; + while (index < entries.length) { + entry = entries[index++]; + boundFunction(entry.value, entry.key, this); + } + }, + // `URLSearchParams.prototype.keys` method + keys: function keys() { + return new URLSearchParamsIterator(this, 'keys'); + }, + // `URLSearchParams.prototype.values` method + values: function values() { + return new URLSearchParamsIterator(this, 'values'); + }, + // `URLSearchParams.prototype.entries` method + entries: function entries() { + return new URLSearchParamsIterator(this, 'entries'); + } + }, { enumerable: true }); + + // `URLSearchParams.prototype[@@iterator]` method + defineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' }); + + // `URLSearchParams.prototype.toString` method + // https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior + defineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() { + return getInternalParamsState(this).serialize(); + }, { enumerable: true }); + + // `URLSearchParams.prototype.size` getter + // https://github.com/whatwg/url/pull/734 + if (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { + get: function size() { + return getInternalParamsState(this).entries.length; + }, + configurable: true, + enumerable: true + }); + + setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); + + $({ global: true, constructor: true, forced: !USE_NATIVE_URL }, { + URLSearchParams: URLSearchParamsConstructor + }); + + // Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams` + if (!USE_NATIVE_URL && isCallable(Headers)) { + var headersHas = uncurryThis(HeadersPrototype.has); + var headersSet = uncurryThis(HeadersPrototype.set); + + var wrapRequestOptions = function (init) { + if (isObject(init)) { + var body = init.body; + var headers; + if (classof(body) === URL_SEARCH_PARAMS) { + headers = init.headers ? new Headers(init.headers) : new Headers(); + if (!headersHas(headers, 'content-type')) { + headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); + } + return create(init, { + body: createPropertyDescriptor(0, $toString(body)), + headers: createPropertyDescriptor(0, headers) + }); + } + } return init; + }; + + if (isCallable(nativeFetch)) { + $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, { + fetch: function fetch(input /* , init */) { + return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + } + }); + } + + if (isCallable(NativeRequest)) { + var RequestConstructor = function Request(input /* , init */) { + anInstance(this, RequestPrototype); + return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + }; + + RequestPrototype.constructor = RequestConstructor; + RequestConstructor.prototype = RequestPrototype; + + $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, { + Request: RequestConstructor + }); + } + } + /** * @author: general * @website: note.generals.space @@ -6810,13 +22016,13 @@ * @update: zhixin wen */ - var Utils = $.fn.bootstrapTable.utils; - Object.assign($.fn.bootstrapTable.defaults, { + var Utils = $$6.fn.bootstrapTable.utils; + Object.assign($$6.fn.bootstrapTable.defaults, { addrbar: false, addrPrefix: '', addrCustomParams: {} }); - $.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) { + $$6.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) { function _class() { _classCallCheck(this, _class); return _callSuper(this, _class, arguments); @@ -6844,10 +22050,10 @@ }, { key: "getDefaultOptionValue", value: function getDefaultOptionValue(optionName, prefixName) { - if (this.options[optionName] !== $.BootstrapTable.DEFAULTS[optionName]) { + if (this.options[optionName] !== $$6.BootstrapTable.DEFAULTS[optionName]) { return this.options[optionName]; } - return this.searchParams.get("".concat(this.options.addrPrefix || '').concat(prefixName)) || $.BootstrapTable.DEFAULTS[optionName]; + return this.searchParams.get("".concat(this.options.addrPrefix || '').concat(prefixName)) || $$6.BootstrapTable.DEFAULTS[optionName]; } }, { key: "initAddrbar", @@ -6920,7 +22126,7 @@ this.options.searchText = text || ''; } }]); - }($.BootstrapTable); + }($$6.BootstrapTable); })); @@ -7661,10 +22867,10 @@ T=Gr(p[0],false);k=p.index+p[0].length}break;case"s":break;case"database-range": if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Error("Unsupported ZIP file")}var a=Nr(e);var n=Kn(Or(e,"[Content_Types].xml"));var i=false;var s,f;if(n.workbooks.length===0){f="xl/workbook.xml";if(Rr(e,f,true))n.workbooks.push(f)}if(n.workbooks.length===0){f="xl/workbook.bin";if(!Rr(e,f,true))throw new Error("Could not find workbook");n.workbooks.push(f);i=true}if(n.workbooks[0].slice(-3)=="bin")i=true;var o={};var c={};if(!r.bookSheets&&!r.bookProps){Cd=[];if(n.sst)try{Cd=Tm(Rr(e,jg(n.sst)),n.sst,r)}catch(l){if(r.WTF)throw l}if(r.cellStyles&&n.themes.length)o=km(Or(e,n.themes[0].replace(/^\//,""),true)||"",n.themes[0],r);if(n.style)c=wm(Rr(e,jg(n.style)),n.style,o,r)}n.links.map(function(t){try{var a=Qn(Or(e,Zn(jg(t))),t);return Sm(Rr(e,jg(t)),a,t,r)}catch(n){}});var u=vm(Rr(e,jg(n.workbooks[0])),n.workbooks[0],r);var h={},d="";if(n.coreprops.length){d=Rr(e,jg(n.coreprops[0]),true);if(d)h=ui(d);if(n.extprops.length!==0){d=Rr(e,jg(n.extprops[0]),true);if(d)bi(d,h,r)}}var v={};if(!r.bookSheets||r.bookProps){if(n.custprops.length!==0){d=Or(e,jg(n.custprops[0]),true);if(d)v=ki(d,r)}}var p={};if(r.bookSheets||r.bookProps){if(u.Sheets)s=u.Sheets.map(function I(e){return e.name});else if(h.Worksheets&&h.SheetNames.length>0)s=h.SheetNames;if(r.bookProps){p.Props=h;p.Custprops=v}if(r.bookSheets&&typeof s!=="undefined")p.SheetNames=s;if(r.bookSheets?p.SheetNames:r.bookProps)return p}s={};var m={};if(r.bookDeps&&n.calcchain)m=ym(Rr(e,jg(n.calcchain)),n.calcchain,r);var b=0;var g={};var w,k;{var T=u.Sheets;h.Worksheets=T.length;h.SheetNames=[];for(var E=0;E!=T.length;++E){h.SheetNames[E]=T[E].name}}var y=i?"bin":"xml";var S=n.workbooks[0].lastIndexOf("/");var _=(n.workbooks[0].slice(0,S+1)+"_rels/"+n.workbooks[0].slice(S+1)+".rels").replace(/^\//,"");if(!xr(e,_))_="xl/_rels/workbook."+y+".rels";var A=Qn(Or(e,_,true),_.replace(/_rels.*/,"s5s"));if((n.metadata||[]).length>=1){r.xlmeta=_m(Rr(e,jg(n.metadata[0])),n.metadata[0],r)}if((n.people||[]).length>=1){r.people=lu(Rr(e,jg(n.people[0])),r)}if(A)A=Vg(A,u.Sheets);var x=Rr(e,"xl/worksheets/sheet.xml",true)?1:0;e:for(b=0;b!=h.Worksheets;++b){var C="sheet";if(A&&A[b]){w="xl/"+A[b][1].replace(/[\/]?xl\//,"");if(!xr(e,w))w=A[b][1];if(!xr(e,w))w=_.replace(/_rels\/.*$/,"")+A[b][1];C=A[b][2]}else{w="xl/worksheets/sheet"+(b+1-x)+"."+y;w=w.replace(/sheet0\./,"sheet.")}k=w.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels");if(r&&r.sheets!=null)switch(typeof r.sheets){case"number":if(b!=r.sheets)continue e;break;case"string":if(h.SheetNames[b].toLowerCase()!=r.sheets.toLowerCase())continue e;break;default:if(Array.isArray&&Array.isArray(r.sheets)){var R=false;for(var O=0;O!=r.sheets.length;++O){if(typeof r.sheets[O]=="number"&&r.sheets[O]==b)R=1;if(typeof r.sheets[O]=="string"&&r.sheets[O].toLowerCase()==h.SheetNames[b].toLowerCase())R=1}if(!R)continue e};}Gg(e,w,k,h.SheetNames[b],b,g,s,C,r,u,o,c)}p={Directory:n,Workbook:u,Props:h,Custprops:v,Deps:m,Sheets:s,SheetNames:h.SheetNames,Strings:Cd,Styles:c,Themes:o,SSF:gr(X)};if(r&&r.bookFiles){if(e.files){p.keys=a;p.files=e.files}else{p.keys=[];p.files={};e.FullPaths.forEach(function(r,t){r=r.replace(/^Root Entry[\/]/,"");p.keys.push(r);p.files[r]=e.FileIndex[t]})}}if(r&&r.bookVBA){if(n.vba.length>0)p.vbaraw=Rr(e,jg(n.vba[0]),true);else if(n.defaults&&n.defaults.bin===gu)p.vbaraw=Rr(e,"xl/vbaProject.bin",true)}return p}function $g(e,r){var t=r||{};var a="Workbook",n=Ke.find(e,a);try{a="/!DataSpaces/Version";n=Ke.find(e,a);if(!n||!n.content)throw new Error("ECMA-376 Encrypted file missing "+a);Ko(n.content);a="/!DataSpaces/DataSpaceMap";n=Ke.find(e,a);if(!n||!n.content)throw new Error("ECMA-376 Encrypted file missing "+a);var i=qo(n.content);if(i.length!==1||i[0].comps.length!==1||i[0].comps[0].t!==0||i[0].name!=="StrongEncryptionDataSpace"||i[0].comps[0].v!=="EncryptedPackage")throw new Error("ECMA-376 Encrypted file bad "+a);a="/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace";n=Ke.find(e,a);if(!n||!n.content)throw new Error("ECMA-376 Encrypted file missing "+a);var s=Zo(n.content);if(s.length!=1||s[0]!="StrongEncryptionTransform")throw new Error("ECMA-376 Encrypted file bad "+a);a="/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary";n=Ke.find(e,a);if(!n||!n.content)throw new Error("ECMA-376 Encrypted file missing "+a);ec(n.content)}catch(f){}a="/EncryptionInfo";n=Ke.find(e,a);if(!n||!n.content)throw new Error("ECMA-376 Encrypted file missing "+a);var o=ac(n.content);a="/EncryptedPackage";n=Ke.find(e,a);if(!n||!n.content)throw new Error("ECMA-376 Encrypted file missing "+a);if(o[0]==4&&typeof decrypt_agile!=="undefined")return decrypt_agile(o[1],n.content,t.password||"",t);if(o[0]==2&&typeof decrypt_std76!=="undefined")return decrypt_std76(o[1],n.content,t.password||"",t);throw new Error("File is password-protected")}function Yg(e,r){if(r.bookType=="ods")return tg(e,r);if(r.bookType=="numbers")return Ug(e,r);if(r.bookType=="xlsb")return Kg(e,r);return Jg(e,r)}function Kg(e,r){au=1024;if(e&&!e.SSF){e.SSF=gr(X)}if(e&&e.SSF){ze();He(e.SSF);r.revssf=nr(e.SSF);r.revssf[e.SSF[65535]]=0;r.ssf=e.SSF}r.rels={};r.wbrels={};r.Strings=[];r.Strings.Count=0;r.Strings.Unique=0;if(Od)r.revStrings=new Map;else{r.revStrings={};r.revStrings.foo=[];delete r.revStrings.foo}var t=r.bookType=="xlsb"?"bin":"xml";var a=Tu.indexOf(r.bookType)>-1;var n=Yn();Hg(r=r||{});var i=Dr();var s="",f=0;r.cellXfs=[];Dd(r.cellXfs,{},{revssf:{General:0}});if(!e.Props)e.Props={};s="docProps/core.xml";Fr(i,s,di(e.Props,r));n.coreprops.push(s);ri(r.rels,2,s,qn.CORE_PROPS);s="docProps/app.xml";if(e.Props&&e.Props.SheetNames){}else if(!e.Workbook||!e.Workbook.Sheets)e.Props.SheetNames=e.SheetNames;else{var o=[];for(var c=0;c0){s="docProps/custom.xml";Fr(i,s,Ti(e.Custprops,r));n.custprops.push(s);ri(r.rels,4,s,qn.CUST_PROPS)}for(f=1;f<=e.SheetNames.length;++f){var l={"!id":{}};var u=e.Sheets[e.SheetNames[f-1]];var h=(u||{})["!type"]||"sheet";switch(h){case"chart":;default:s="xl/worksheets/sheet"+f+"."+t;Fr(i,s,xm(f-1,s,r,e,l));n.sheets.push(s);ri(r.wbrels,-1,"worksheets/sheet"+f+"."+t,qn.WS[0]);}if(u){var d=u["!comments"];var v=false;var p="";if(d&&d.length>0){p="xl/comments"+f+"."+t;Fr(i,p,Im(d,p,r));n.comments.push(p);ri(l,-1,"../comments"+f+"."+t,qn.CMNT);v=true}if(u["!legacy"]){if(v)Fr(i,"xl/drawings/vmlDrawing"+f+".vml",nu(f,u["!comments"]))}delete u["!comments"];delete u["!legacy"]}if(l["!id"].rId1)Fr(i,Zn(s),ei(l))}if(r.Strings!=null&&r.Strings.length>0){s="xl/sharedStrings."+t;Fr(i,s,Om(r.Strings,s,r));n.strs.push(s);ri(r.wbrels,-1,"sharedStrings."+t,qn.SST)}s="xl/workbook."+t;Fr(i,s,Am(e,s,r));n.workbooks.push(s);ri(r.rels,1,s,qn.WB);s="xl/theme/theme1.xml";Fr(i,s,Il(e.Themes,r));n.themes.push(s);ri(r.wbrels,-1,"theme/theme1.xml",qn.THEME);s="xl/styles."+t;Fr(i,s,Rm(e,s,r));n.styles.push(s);ri(r.wbrels,-1,"styles."+t,qn.STY);if(e.vbaraw&&a){s="xl/vbaProject.bin";Fr(i,s,e.vbaraw);n.vba.push(s);ri(r.wbrels,-1,"vbaProject.bin",qn.VBA)}s="xl/metadata."+t;Fr(i,s,Nm(s));n.metadata.push(s);ri(r.wbrels,-1,"metadata."+t,qn.XLMETA);Fr(i,"[Content_Types].xml",Jn(n,r));Fr(i,"_rels/.rels",ei(r.rels));Fr(i,"xl/_rels/workbook."+t+".rels",ei(r.wbrels));delete r.revssf;delete r.ssf;return i}function Jg(e,r){au=1024;if(e&&!e.SSF){e.SSF=gr(X)}if(e&&e.SSF){ze();He(e.SSF);r.revssf=nr(e.SSF);r.revssf[e.SSF[65535]]=0;r.ssf=e.SSF}r.rels={};r.wbrels={};r.Strings=[];r.Strings.Count=0;r.Strings.Unique=0;if(Od)r.revStrings=new Map;else{r.revStrings={};r.revStrings.foo=[];delete r.revStrings.foo}var t="xml";var a=Tu.indexOf(r.bookType)>-1;var n=Yn();Hg(r=r||{});var i=Dr();var s="",f=0;r.cellXfs=[];Dd(r.cellXfs,{},{revssf:{General:0}});if(!e.Props)e.Props={};s="docProps/core.xml";Fr(i,s,di(e.Props,r));n.coreprops.push(s);ri(r.rels,2,s,qn.CORE_PROPS);s="docProps/app.xml";if(e.Props&&e.Props.SheetNames){}else if(!e.Workbook||!e.Workbook.Sheets)e.Props.SheetNames=e.SheetNames;else{var o=[];for(var c=0;c0){s="docProps/custom.xml";Fr(i,s,Ti(e.Custprops,r));n.custprops.push(s);ri(r.rels,4,s,qn.CUST_PROPS)}var l=["SheetJ5"];r.tcid=0;for(f=1;f<=e.SheetNames.length;++f){var u={"!id":{}};var h=e.Sheets[e.SheetNames[f-1]];var d=(h||{})["!type"]||"sheet";switch(d){case"chart":;default:s="xl/worksheets/sheet"+f+"."+t;Fr(i,s,pv(f-1,r,e,u));n.sheets.push(s);ri(r.wbrels,-1,"worksheets/sheet"+f+"."+t,qn.WS[0]);}if(h){var v=h["!comments"];var p=false;var m="";if(v&&v.length>0){var b=false;v.forEach(function(e){e[1].forEach(function(e){if(e.T==true)b=true})});if(b){m="xl/threadedComments/threadedComment"+f+"."+t;Fr(i,m,cu(v,l,r));n.threadedcomments.push(m);ri(u,-1,"../threadedComments/threadedComment"+f+"."+t,qn.TCMNT)}m="xl/comments"+f+"."+t;Fr(i,m,fu(v,r));n.comments.push(m);ri(u,-1,"../comments"+f+"."+t,qn.CMNT);p=true}if(h["!legacy"]){if(p)Fr(i,"xl/drawings/vmlDrawing"+f+".vml",nu(f,h["!comments"]))}delete h["!comments"];delete h["!legacy"]}if(u["!id"].rId1)Fr(i,Zn(s),ei(u))}if(r.Strings!=null&&r.Strings.length>0){s="xl/sharedStrings."+t;Fr(i,s,Ho(r.Strings,r));n.strs.push(s);ri(r.wbrels,-1,"sharedStrings."+t,qn.SST)}s="xl/workbook."+t;Fr(i,s,rm(e,r));n.workbooks.push(s);ri(r.rels,1,s,qn.WB);s="xl/theme/theme1.xml";Fr(i,s,Il(e.Themes,r));n.themes.push(s);ri(r.wbrels,-1,"theme/theme1.xml",qn.THEME);s="xl/styles."+t;Fr(i,s,$c(e,r));n.styles.push(s);ri(r.wbrels,-1,"styles."+t,qn.STY);if(e.vbaraw&&a){s="xl/vbaProject.bin";Fr(i,s,e.vbaraw);n.vba.push(s);ri(r.wbrels,-1,"vbaProject.bin",qn.VBA)}s="xl/metadata."+t;Fr(i,s,Jl());n.metadata.push(s);ri(r.wbrels,-1,"metadata."+t,qn.XLMETA);if(l.length>1){s="xl/persons/person.xml";Fr(i,s,uu(l,r));n.people.push(s);ri(r.wbrels,-1,"persons/person.xml",qn.PEOPLE)}Fr(i,"[Content_Types].xml",Jn(n,r));Fr(i,"_rels/.rels",ei(r.rels));Fr(i,"xl/_rels/workbook."+t+".rels",ei(r.wbrels));delete r.revssf;delete r.ssf;return i}function qg(e,r){var t="";switch((r||{}).type||"base64"){case"buffer":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];case"base64":t=k(e.slice(0,12));break;case"binary":t=e;break;case"array":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];default:throw new Error("Unrecognized type "+(r&&r.type||"undefined"));}return[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3),t.charCodeAt(4),t.charCodeAt(5),t.charCodeAt(6),t.charCodeAt(7)]}function Zg(e,r){if(Ke.find(e,"EncryptedPackage"))return $g(e,r);return vb(e,r)}function Qg(e,r){var t,a=e;var n=r||{};if(!n.type)n.type=T&&Buffer.isBuffer(e)?"buffer":"base64";t=Pr(a,n);return Xg(t,n)}function ew(e,r){var t=0;e:while(t=2&&n[3]===0)return Co.to_workbook(a,t);if(n[2]===0&&(n[3]===8||n[3]===9))return Co.to_workbook(a,t)}break;case 3:;case 131:;case 139:;case 140:return Eo.to_workbook(a,t);case 123:if(n[1]===92&&n[2]===114&&n[3]===116)return mc.to_workbook(a,t);break;case 10:;case 13:;case 32:return rw(a,t);case 137:if(n[1]===80&&n[2]===78&&n[3]===71)throw new Error("PNG Image File is not a spreadsheet");break;}if(To.indexOf(n[0])>-1&&n[2]<=12&&n[3]<=31)return Eo.to_workbook(a,t);return nw(e,a,t,i)}function sw(e,r){var t=r||{};t.type="file";return iw(e,t)}function fw(e,r){switch(r.type){case"base64":;case"binary":break;case"buffer":;case"array":r.type="";break;case"file":return Qe(r.file,Ke.write(e,{type:T?"buffer":""}));case"string":throw new Error("'string' output type invalid for '"+r.bookType+"' files");default:throw new Error("Unrecognized type "+r.type);}return Ke.write(e,r)}function ow(e,r){var t=gr(r||{});var a=Yg(e,t);return lw(a,t)}function cw(e,r){var t=gr(r||{});var a=Jg(e,t);return lw(a,t)}function lw(e,r){var t={};var a=T?"nodebuffer":typeof Uint8Array!=="undefined"?"array":"string";if(r.compression)t.compression="DEFLATE";if(r.password)t.type=a;else switch(r.type){case"base64":t.type="base64";break;case"binary":t.type="string";break;case"string":throw new Error("'string' output type invalid for '"+r.bookType+"' files");case"buffer":;case"file":t.type=a;break;default:throw new Error("Unrecognized type "+r.type);}var n=e.FullPaths?Ke.write(e,{fileType:"zip",type:{nodebuffer:"buffer",string:"binary"}[t.type]||t.type,compression:!!r.compression}):e.generate(t);if(typeof Deno!=="undefined"){if(typeof n=="string"){if(r.type=="binary"||r.type=="base64")return n;n=new Uint8Array(A(n))}}if(r.password&&typeof encrypt_agile!=="undefined")return fw(encrypt_agile(n,r.password),r);if(r.type==="file")return Qe(r.file,n);return r.type=="string"?ct(n):n}function uw(e,r){var t=r||{};var a=pb(e,t);return fw(a,t)}function hw(e,r,t){if(!t)t="";var a=t+e;switch(r.type){case"base64":return w(lt(a));case"binary":return lt(a);case"string":return e;case"file":return Qe(r.file,a,"utf8");case"buffer":{if(T)return E(a,"utf8");else if(typeof TextEncoder!=="undefined")return(new TextEncoder).encode(a);else return hw(a,{type:"binary"}).split("").map(function(e){return e.charCodeAt(0)})};}throw new Error("Unrecognized type "+r.type)}function dw(e,r){switch(r.type){case"base64":return w(e);case"binary":return e;case"string":return e;case"file":return Qe(r.file,e,"binary");case"buffer":{if(T)return E(e,"binary");else return e.split("").map(function(e){return e.charCodeAt(0)})};}throw new Error("Unrecognized type "+r.type)}function vw(e,r){switch(r.type){case"string":;case"base64":;case"binary":var t="";for(var a=0;a0)n=0;var u=Ta(o.s.r);var h=[];var d=[];var v=0,p=0;var m=Array.isArray(e);var b=o.s.r,g=0;var w={};if(m&&!e[b])e[b]=[];var k=c.skipHidden&&e["!cols"]||[];var T=c.skipHidden&&e["!rows"]||[];for(g=o.s.c;g<=o.e.c;++g){if((k[g]||{}).hidden)continue;h[g]=_a(g);t=m?e[b][g]:e[h[g]+u];switch(a){case 1:i[g]=g-o.s.c;break;case 2:i[g]=h[g];break;case 3:i[g]=c.header[g-o.s.c];break;default:if(t==null)t={w:"__EMPTY",t:"s"};f=s=Pa(t,null,c);p=w[s]||0;if(!p)w[s]=1;else{do{f=s+"_"+p++}while(w[f]);w[s]=p;w[f]=1}i[g]=f;}}for(b=o.s.r+n;b<=o.e.r;++b){if((T[b]||{}).hidden)continue;var E=Tw(e,o,b,h,a,i,m,c);if(E.isempty===false||(a===1?c.blankrows!==false:!!c.blankrows))d[v++]=E.row}d.length=v;return d}var yw=/"/g;function Sw(e,r,t,a,n,i,s,f){var o=true;var c=[],l="",u=Ta(t);for(var h=r.s.c;h<=r.e.c;++h){if(!a[h])continue;var d=f.dense?(e[t]||[])[h]:e[a[h]+u];if(d==null)l="";else if(d.v!=null){o=false;l=""+(f.rawNumbers&&d.t=="n"?d.v:Pa(d,null,f));for(var v=0,p=0;v!==l.length;++v)if((p=l.charCodeAt(v))===n||p===i||p===34||f.forceQuotes){l='"'+l.replace(yw,'""')+'"';break}if(l=="ID")l='"ID"'}else if(d.f!=null&&!d.F){o=false;l="="+d.f;if(l.indexOf(",")>=0)l='"'+l.replace(yw,'""')+'"'}else l="";c.push(l)}if(f.blankrows===false&&o)return null;return c.join(s)}function _w(e,r){var t=[];var a=r==null?{}:r;if(e==null||e["!ref"]==null)return"";var n=Fa(e["!ref"]);var i=a.FS!==undefined?a.FS:",",s=i.charCodeAt(0);var f=a.RS!==undefined?a.RS:"\n",o=f.charCodeAt(0);var c=new RegExp((i=="|"?"\\|":i)+"+$");var l="",u=[];a.dense=Array.isArray(e);var h=a.skipHidden&&e["!cols"]||[];var d=a.skipHidden&&e["!rows"]||[];for(var v=n.s.c;v<=n.e.c;++v)if(!(h[v]||{}).hidden)u[v]=_a(v);var p=0;for(var m=n.s.r;m<=n.e.r;++m){if((d[m]||{}).hidden)continue;l=Sw(e,n,m,u,s,o,i,a);if(l==null){continue}if(a.strip)l=l.replace(c,"");if(l||a.blankrows!==false)t.push((p++?f:"")+l)}delete a.dense;return t.join("")}function Aw(e,r){if(!r)r={};r.FS="\t";r.RS="\n";var t=_w(e,r);if(typeof a=="undefined"||r.type=="string")return t;var n=a.utils.encode(1200,t,"str");return String.fromCharCode(255)+String.fromCharCode(254)+n}function xw(e){var r="",t,a="";if(e==null||e["!ref"]==null)return[];var n=Fa(e["!ref"]),i="",s=[],f;var o=[];var c=Array.isArray(e);for(f=n.s.c;f<=n.e.c;++f)s[f]=_a(f);for(var l=n.s.r;l<=n.e.r;++l){i=Ta(l);for(f=n.s.c;f<=n.e.c;++f){r=s[f]+i;t=c?(e[l]||[])[f]:e[r];a="";if(t===undefined)continue;else if(t.F!=null){r=t.F;if(!t.f)continue;a=t.f;if(r.indexOf(":")==-1)r=r+":"+r}if(t.f!=null)a=t.f;else if(t.t=="z")continue;else if(t.t=="n"&&t.v!=null)a=""+t.v;else if(t.t=="b")a=t.v?"TRUE":"FALSE";else if(t.w!==undefined)a="'"+t.w;else if(t.v===undefined)continue;else if(t.t=="s")a="'"+t.v;else a=""+t.v;o[o.length]=r+"="+a}}return o}function Cw(e,r,t){var a=t||{};var n=+!a.skipHeader;var i=e||{};var s=0,f=0;if(i&&a.origin!=null){if(typeof a.origin=="number")s=a.origin;else{var o=typeof a.origin=="string"?Ra(a.origin):a.origin;s=o.r;f=o.c}}var c;var l={s:{c:0,r:0},e:{c:f,r:s+r.length-1+n}};if(i["!ref"]){var u=Fa(i["!ref"]);l.e.c=Math.max(l.e.c,u.e.c);l.e.r=Math.max(l.e.r,u.e.r);if(s==-1){s=u.e.r+1;l.e.r=s+r.length-1+n}}else{if(s==-1){s=0;l.e.r=r.length-1+n}}var h=a.header||[],d=0;r.forEach(function(e,r){rr(e).forEach(function(t){if((d=h.indexOf(t))==-1)h[d=h.length]=t;var o=e[t];var l="z";var u="";var v=Oa({c:f+d,r:s+r+n});c=Ow(i,v);if(o&&typeof o==="object"&&!(o instanceof Date)){i[v]=o}else{if(typeof o=="number")l="n";else if(typeof o=="boolean")l="b";else if(typeof o=="string")l="s";else if(o instanceof Date){l="d";if(!a.cellDates){l="n";o=fr(o)}u=a.dateNF||X[14]}else if(o===null&&a.nullError){l="e";o=0}if(!c)i[v]=c={t:l,v:o};else{c.t=l;c.v=o;delete c.w;delete c.R;if(u)c.z=u}if(u)c.z=u}})});l.e.c=Math.max(l.e.c,f+h.length-1);var v=Ta(s);if(n)for(d=0;d=0&&e.SheetNames.length>r)return r;throw new Error("Cannot find sheet # "+r)}else if(typeof r=="string"){var t=e.SheetNames.indexOf(r);if(t>-1)return t;throw new Error("Cannot find sheet name |"+r+"|")}else throw new Error("Cannot find sheet |"+r+"|")}function Nw(){return{SheetNames:[],Sheets:{}}}function Fw(e,r,t,a){var n=1;if(!t)for(;n<=65535;++n,t=undefined)if(e.SheetNames.indexOf(t="Sheet"+n)==-1)break;if(!t||e.SheetNames.length>=65535)throw new Error("Too many worksheets");if(a&&e.SheetNames.indexOf(t)>=0){var i=t.match(/(^.*?)(\d+)$/);n=i&&+i[2]||0;var s=i&&i[1]||t;for(++n;n<=65535;++n)if(e.SheetNames.indexOf(t=s+n)==-1)break}Jp(t);if(e.SheetNames.indexOf(t)>=0)throw new Error("Worksheet with name |"+t+"| already exists!");e.SheetNames.push(t);e.Sheets[t]=r;return t}function Dw(e,r,t){if(!e.Workbook)e.Workbook={};if(!e.Workbook.Sheets)e.Workbook.Sheets=[];var a=Iw(e,r);if(!e.Workbook.Sheets[a])e.Workbook.Sheets[a]={};switch(t){case 0:;case 1:;case 2:break;default:throw new Error("Bad sheet visibility setting "+t);}e.Workbook.Sheets[a].Hidden=t}function Pw(e,r){e.z=r;return e}function Lw(e,r,t){if(!r){delete e.l}else{e.l={Target:r};if(t)e.l.Tooltip=t}return e}function Mw(e,r,t){return Lw(e,"#"+r,t)}function Uw(e,r,t){if(!e.c)e.c=[];e.c.push({t:r,a:t||"SheetJS"})}function Bw(e,r,t,a){var n=typeof r!="string"?r:Fa(r);var i=typeof r=="string"?r:Na(r);for(var s=n.s.r;s<=n.e.r;++s)for(var f=n.s.c;f<=n.e.c;++f){var o=Ow(e,s,f);o.t="n";o.F=i;delete o.v;if(s==n.s.r&&f==n.s.c){o.f=t;if(a)o.D=true}}return e}var Ww={encode_col:_a,encode_row:Ta,encode_cell:Oa,encode_range:Na,decode_col:Sa,decode_row:ka,split_cell:Ca,decode_cell:Ra,decode_range:Ia,format_cell:Pa,sheet_add_aoa:Ma,sheet_add_json:Cw,sheet_add_dom:Gb,aoa_to_sheet:Ua,json_to_sheet:Rw,table_to_sheet:jb,table_to_book:Xb,sheet_to_csv:_w,sheet_to_txt:Aw,sheet_to_json:Ew,sheet_to_html:Vb,sheet_to_formulae:xw,sheet_to_row_object_array:Ew,sheet_get_cell:Ow,book_new:Nw,book_append_sheet:Fw,book_set_sheet_visibility:Dw,cell_set_number_format:Pw,cell_set_hyperlink:Lw,cell_set_internal_link:Mw,cell_add_comment:Uw,sheet_set_array_formula:Bw,consts:{SHEET_VISIBLE:0,SHEET_HIDDEN:1,SHEET_VERY_HIDDEN:2}};var Hw;function zw(e){Hw=e}function Vw(e,r){var t=Hw();var a=r==null?{}:r;if(e==null||e["!ref"]==null){t.push(null);return t}var n=Fa(e["!ref"]);var i=a.FS!==undefined?a.FS:",",s=i.charCodeAt(0);var f=a.RS!==undefined?a.RS:"\n",o=f.charCodeAt(0);var c=new RegExp((i=="|"?"\\|":i)+"+$");var l="",u=[];a.dense=Array.isArray(e);var h=a.skipHidden&&e["!cols"]||[];var d=a.skipHidden&&e["!rows"]||[];for(var v=n.s.c;v<=n.e.c;++v)if(!(h[v]||{}).hidden)u[v]=_a(v);var p=n.s.r;var m=false,b=0;t._read=function(){if(!m){m=true;return t.push("\ufeff")}while(p<=n.e.r){++p;if((d[p-1]||{}).hidden)continue;l=Sw(e,n,p-1,u,s,o,i,a);if(l!=null){if(a.strip)l=l.replace(c,"");if(l||a.blankrows!==false)return t.push((b++?f:"")+l)}}return t.push(null)};return t}function Gw(e,r){var t=Hw();var a=r||{};var n=a.header!=null?a.header:Bb;var i=a.footer!=null?a.footer:Wb;t.push(n);var s=Ia(e["!ref"]);a.dense=Array.isArray(e);t.push(zb(e,s,a));var f=s.s.r;var o=false;t._read=function(){if(f>s.e.r){if(!o){o=true;t.push("
"+i)}return t.push(null)}while(f<=s.e.r){t.push(Ub(e,s,f,a));++f;break}};return t}function jw(e,r){var t=Hw({objectMode:true});if(e==null||e["!ref"]==null){t.push(null);return t}var a={t:"n",v:0},n=0,i=1,s=[],f=0,o="";var c={s:{r:0,c:0},e:{r:0,c:0}};var l=r||{};var u=l.range!=null?l.range:e["!ref"];if(l.header===1)n=1;else if(l.header==="A")n=2;else if(Array.isArray(l.header))n=3;switch(typeof u){case"string":c=Fa(u);break;case"number":c=Fa(e["!ref"]);c.s.r=u;break;default:c=u;}if(n>0)i=0;var h=Ta(c.s.r);var d=[];var v=0;var p=Array.isArray(e);var m=c.s.r,b=0;var g={};if(p&&!e[m])e[m]=[];var w=l.skipHidden&&e["!cols"]||[];var k=l.skipHidden&&e["!rows"]||[];for(b=c.s.c;b<=c.e.c;++b){if((w[b]||{}).hidden)continue;d[b]=_a(b);a=p?e[m][b]:e[d[b]+h];switch(n){case 1:s[b]=b-c.s.c;break;case 2:s[b]=d[b];break;case 3:s[b]=l.header[b-c.s.c];break;default:if(a==null)a={w:"__EMPTY",t:"s"};o=f=Pa(a,null,l);v=g[f]||0;if(!v)g[f]=1;else{do{o=f+"_"+v++}while(g[o]);g[f]=v;g[o]=1}s[b]=o;}}m=c.s.r+i;t._read=function(){while(m<=c.e.r){if((k[m-1]||{}).hidden)continue;var r=Tw(e,c,m,d,n,s,p,l);++m;if(r.isempty===false||(n===1?l.blankrows!==false:!!l.blankrows)){t.push(r.row);return}}return t.push(null)};return t}var Xw={to_json:jw,to_html:Gw,to_csv:Vw,set_readable:zw};if(typeof vb!=="undefined")e.parse_xlscfb=vb;e.parse_zip=Xg;e.read=iw;e.readFile=sw;e.readFileSync=sw;e.write=mw;e.writeFile=gw;e.writeFileSync=gw;e.writeFileAsync=kw;e.utils=Ww;e.writeXLSX=pw;e.writeFileXLSX=ww;e.SSF=Ve;if(typeof Xw!=="undefined")e.stream=Xw;if(typeof Ke!=="undefined")e.CFB=Ke;if(typeof require!=="undefined"){var $w=undefined;if(($w||{}).Readable)zw($w.Readable)}}if(typeof exports!=="undefined")make_xlsx_lib(exports);else if(typeof module!=="undefined"&&module.exports)make_xlsx_lib(module.exports);else if(typeof define==="function"&&define.amd)define("xlsx",function(){if(!XLSX.version)make_xlsx_lib(XLSX);return XLSX});else make_xlsx_lib(XLSX);if(typeof window!=="undefined"&&!window.XLSX)try{window.XLSX=XLSX}catch(e){} (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('core-js/modules/es.array.concat.js'), require('core-js/modules/es.array.find.js'), require('core-js/modules/es.object.assign.js'), require('core-js/modules/es.object.to-string.js'), require('jquery')) : - typeof define === 'function' && define.amd ? define(['core-js/modules/es.array.concat.js', 'core-js/modules/es.array.find.js', 'core-js/modules/es.object.assign.js', 'core-js/modules/es.object.to-string.js', 'jquery'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(null, null, null, null, global.jQuery)); -})(this, (function (es_array_concat_js, es_array_find_js, es_object_assign_js, es_object_toString_js, $) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) : + typeof define === 'function' && define.amd ? define(['jquery'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jQuery)); +})(this, (function ($$3) { 'use strict'; function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); @@ -7739,7 +22945,7 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { - var i = e.call(t, r ); + var i = e.call(t, r); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } @@ -7750,20 +22956,1592 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er return "symbol" == typeof i ? i : i + ""; } + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + var check = function (it) { + return it && it.Math === Math && it; + }; + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global$a = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + var objectGetOwnPropertyDescriptor = {}; + + var fails$c = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + + var fails$b = fails$c; + + // Detect IE8's incomplete defineProperty implementation + var descriptors = !fails$b(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; + }); + + var fails$a = fails$c; + + var functionBindNative = !fails$a(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); + }); + + var NATIVE_BIND$2 = functionBindNative; + + var call$5 = Function.prototype.call; + + var functionCall = NATIVE_BIND$2 ? call$5.bind(call$5) : function () { + return call$5.apply(call$5, arguments); + }; + + var objectPropertyIsEnumerable = {}; + + var $propertyIsEnumerable = {}.propertyIsEnumerable; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + + // Nashorn ~ JDK8 bug + var NASHORN_BUG = getOwnPropertyDescriptor$1 && !$propertyIsEnumerable.call({ 1: 2 }, 1); + + // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable + objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$1(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable; + + var createPropertyDescriptor$3 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + var NATIVE_BIND$1 = functionBindNative; + + var FunctionPrototype$1 = Function.prototype; + var call$4 = FunctionPrototype$1.call; + var uncurryThisWithBind = NATIVE_BIND$1 && FunctionPrototype$1.bind.bind(call$4, call$4); + + var functionUncurryThis = NATIVE_BIND$1 ? uncurryThisWithBind : function (fn) { + return function () { + return call$4.apply(fn, arguments); + }; + }; + + var uncurryThis$d = functionUncurryThis; + + var toString$2 = uncurryThis$d({}.toString); + var stringSlice$1 = uncurryThis$d(''.slice); + + var classofRaw$2 = function (it) { + return stringSlice$1(toString$2(it), 8, -1); + }; + + var uncurryThis$c = functionUncurryThis; + var fails$9 = fails$c; + var classof$4 = classofRaw$2; + + var $Object$3 = Object; + var split = uncurryThis$c(''.split); + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var indexedObject = fails$9(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$3('z').propertyIsEnumerable(0); + }) ? function (it) { + return classof$4(it) === 'String' ? split(it, '') : $Object$3(it); + } : $Object$3; + + // we can't use just `it == null` since of `document.all` special case + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec + var isNullOrUndefined$2 = function (it) { + return it === null || it === undefined; + }; + + var isNullOrUndefined$1 = isNullOrUndefined$2; + + var $TypeError$6 = TypeError; + + // `RequireObjectCoercible` abstract operation + // https://tc39.es/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible$2 = function (it) { + if (isNullOrUndefined$1(it)) throw new $TypeError$6("Can't call method on " + it); + return it; + }; + + // toObject with fallback for non-array-like ES3 strings + var IndexedObject$2 = indexedObject; + var requireObjectCoercible$1 = requireObjectCoercible$2; + + var toIndexedObject$4 = function (it) { + return IndexedObject$2(requireObjectCoercible$1(it)); + }; + + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + var documentAll = typeof document == 'object' && document.all; + + // `IsCallable` abstract operation + // https://tc39.es/ecma262/#sec-iscallable + // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing + var isCallable$c = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; + } : function (argument) { + return typeof argument == 'function'; + }; + + var isCallable$b = isCallable$c; + + var isObject$7 = function (it) { + return typeof it == 'object' ? it !== null : isCallable$b(it); + }; + + var global$9 = global$a; + var isCallable$a = isCallable$c; + + var aFunction = function (argument) { + return isCallable$a(argument) ? argument : undefined; + }; + + var getBuiltIn$4 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$9[namespace]) : global$9[namespace] && global$9[namespace][method]; + }; + + var uncurryThis$b = functionUncurryThis; + + var objectIsPrototypeOf = uncurryThis$b({}.isPrototypeOf); + + var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + var global$8 = global$a; + var userAgent = engineUserAgent; + + var process = global$8.process; + var Deno = global$8.Deno; + var versions = process && process.versions || Deno && Deno.version; + var v8 = versions && versions.v8; + var match, version; + + if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + + // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` + // so check `userAgent` even if `.v8` exists, but 0 + if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } + } + + var engineV8Version = version; + + /* eslint-disable es/no-symbol -- required for testing */ + var V8_VERSION$2 = engineV8Version; + var fails$8 = fails$c; + var global$7 = global$a; + + var $String$3 = global$7.String; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$8(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$3(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$2 && V8_VERSION$2 < 41; + }); + + /* eslint-disable es/no-symbol -- required for testing */ + var NATIVE_SYMBOL$1 = symbolConstructorDetection; + + var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + var getBuiltIn$3 = getBuiltIn$4; + var isCallable$9 = isCallable$c; + var isPrototypeOf = objectIsPrototypeOf; + var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + + var $Object$2 = Object; + + var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + var $Symbol = getBuiltIn$3('Symbol'); + return isCallable$9($Symbol) && isPrototypeOf($Symbol.prototype, $Object$2(it)); + }; + + var $String$2 = String; + + var tryToString$1 = function (argument) { + try { + return $String$2(argument); + } catch (error) { + return 'Object'; + } + }; + + var isCallable$8 = isCallable$c; + var tryToString = tryToString$1; + + var $TypeError$5 = TypeError; + + // `Assert: IsCallable(argument) is true` + var aCallable$2 = function (argument) { + if (isCallable$8(argument)) return argument; + throw new $TypeError$5(tryToString(argument) + ' is not a function'); + }; + + var aCallable$1 = aCallable$2; + var isNullOrUndefined = isNullOrUndefined$2; + + // `GetMethod` abstract operation + // https://tc39.es/ecma262/#sec-getmethod + var getMethod$1 = function (V, P) { + var func = V[P]; + return isNullOrUndefined(func) ? undefined : aCallable$1(func); + }; + + var call$3 = functionCall; + var isCallable$7 = isCallable$c; + var isObject$6 = isObject$7; + + var $TypeError$4 = TypeError; + + // `OrdinaryToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-ordinarytoprimitive + var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$7(fn = input.toString) && !isObject$6(val = call$3(fn, input))) return val; + if (isCallable$7(fn = input.valueOf) && !isObject$6(val = call$3(fn, input))) return val; + if (pref !== 'string' && isCallable$7(fn = input.toString) && !isObject$6(val = call$3(fn, input))) return val; + throw new $TypeError$4("Can't convert object to primitive value"); + }; + + var sharedStore = {exports: {}}; + + var global$6 = global$a; + + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$3 = Object.defineProperty; + + var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$3(global$6, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$6[key] = value; + } return value; + }; + + var globalThis$1 = global$a; + var defineGlobalProperty$2 = defineGlobalProperty$3; + + var SHARED = '__core-js_shared__'; + var store$3 = sharedStore.exports = globalThis$1[SHARED] || defineGlobalProperty$2(SHARED, {}); + + (store$3.versions || (store$3.versions = [])).push({ + version: '3.37.1', + mode: 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', + source: 'https://github.com/zloirock/core-js' + }); + + var sharedStoreExports = sharedStore.exports; + + var store$2 = sharedStoreExports; + + var shared$3 = function (key, value) { + return store$2[key] || (store$2[key] = value || {}); + }; + + var requireObjectCoercible = requireObjectCoercible$2; + + var $Object$1 = Object; + + // `ToObject` abstract operation + // https://tc39.es/ecma262/#sec-toobject + var toObject$4 = function (argument) { + return $Object$1(requireObjectCoercible(argument)); + }; + + var uncurryThis$a = functionUncurryThis; + var toObject$3 = toObject$4; + + var hasOwnProperty = uncurryThis$a({}.hasOwnProperty); + + // `HasOwnProperty` abstract operation + // https://tc39.es/ecma262/#sec-hasownproperty + // eslint-disable-next-line es/no-object-hasown -- safe + var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$3(it), key); + }; + + var uncurryThis$9 = functionUncurryThis; + + var id = 0; + var postfix = Math.random(); + var toString$1 = uncurryThis$9(1.0.toString); + + var uid$2 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$1(++id + postfix, 36); + }; + + var global$5 = global$a; + var shared$2 = shared$3; + var hasOwn$6 = hasOwnProperty_1; + var uid$1 = uid$2; + var NATIVE_SYMBOL = symbolConstructorDetection; + var USE_SYMBOL_AS_UID = useSymbolAsUid; + + var Symbol$1 = global$5.Symbol; + var WellKnownSymbolsStore = shared$2('wks'); + var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1['for'] || Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1; + + var wellKnownSymbol$7 = function (name) { + if (!hasOwn$6(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$6(Symbol$1, name) + ? Symbol$1[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; + }; + + var call$2 = functionCall; + var isObject$5 = isObject$7; + var isSymbol$1 = isSymbol$2; + var getMethod = getMethod$1; + var ordinaryToPrimitive = ordinaryToPrimitive$1; + var wellKnownSymbol$6 = wellKnownSymbol$7; + + var $TypeError$3 = TypeError; + var TO_PRIMITIVE = wellKnownSymbol$6('toPrimitive'); + + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + var toPrimitive$1 = function (input, pref) { + if (!isObject$5(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$2(exoticToPrim, input, pref); + if (!isObject$5(result) || isSymbol$1(result)) return result; + throw new $TypeError$3("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); + }; + + var toPrimitive = toPrimitive$1; + var isSymbol = isSymbol$2; + + // `ToPropertyKey` abstract operation + // https://tc39.es/ecma262/#sec-topropertykey + var toPropertyKey$2 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; + }; + + var global$4 = global$a; + var isObject$4 = isObject$7; + + var document$1 = global$4.document; + // typeof document.createElement is 'object' in old IE + var EXISTS$1 = isObject$4(document$1) && isObject$4(document$1.createElement); + + var documentCreateElement$1 = function (it) { + return EXISTS$1 ? document$1.createElement(it) : {}; + }; + + var DESCRIPTORS$9 = descriptors; + var fails$7 = fails$c; + var createElement = documentCreateElement$1; + + // Thanks to IE8 for its funny defineProperty + var ie8DomDefine = !DESCRIPTORS$9 && !fails$7(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a !== 7; + }); + + var DESCRIPTORS$8 = descriptors; + var call$1 = functionCall; + var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; + var createPropertyDescriptor$2 = createPropertyDescriptor$3; + var toIndexedObject$3 = toIndexedObject$4; + var toPropertyKey$1 = toPropertyKey$2; + var hasOwn$5 = hasOwnProperty_1; + var IE8_DOM_DEFINE$1 = ie8DomDefine; + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor + objectGetOwnPropertyDescriptor.f = DESCRIPTORS$8 ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$3(O); + P = toPropertyKey$1(P); + if (IE8_DOM_DEFINE$1) try { + return $getOwnPropertyDescriptor$1(O, P); + } catch (error) { /* empty */ } + if (hasOwn$5(O, P)) return createPropertyDescriptor$2(!call$1(propertyIsEnumerableModule$1.f, O, P), O[P]); + }; + + var objectDefineProperty = {}; + + var DESCRIPTORS$7 = descriptors; + var fails$6 = fails$c; + + // V8 ~ Chrome 36- + // https://bugs.chromium.org/p/v8/issues/detail?id=3334 + var v8PrototypeDefineBug = DESCRIPTORS$7 && fails$6(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; + }); + + var isObject$3 = isObject$7; + + var $String$1 = String; + var $TypeError$2 = TypeError; + + // `Assert: Type(argument) is Object` + var anObject$4 = function (argument) { + if (isObject$3(argument)) return argument; + throw new $TypeError$2($String$1(argument) + ' is not an object'); + }; + + var DESCRIPTORS$6 = descriptors; + var IE8_DOM_DEFINE = ie8DomDefine; + var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; + var anObject$3 = anObject$4; + var toPropertyKey = toPropertyKey$2; + + var $TypeError$1 = TypeError; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var $defineProperty = Object.defineProperty; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var ENUMERABLE = 'enumerable'; + var CONFIGURABLE$1 = 'configurable'; + var WRITABLE = 'writable'; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + objectDefineProperty.f = DESCRIPTORS$6 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$3(O); + P = toPropertyKey(P); + anObject$3(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); + } : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$3(O); + P = toPropertyKey(P); + anObject$3(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError$1('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + + var DESCRIPTORS$5 = descriptors; + var definePropertyModule$4 = objectDefineProperty; + var createPropertyDescriptor$1 = createPropertyDescriptor$3; + + var createNonEnumerableProperty$2 = DESCRIPTORS$5 ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$1(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + var makeBuiltIn$2 = {exports: {}}; + + var DESCRIPTORS$4 = descriptors; + var hasOwn$4 = hasOwnProperty_1; + + var FunctionPrototype = Function.prototype; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getDescriptor = DESCRIPTORS$4 && Object.getOwnPropertyDescriptor; + + var EXISTS = hasOwn$4(FunctionPrototype, 'name'); + // additional protection from minified / mangled / dropped function names + var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; + var CONFIGURABLE = EXISTS && (!DESCRIPTORS$4 || (DESCRIPTORS$4 && getDescriptor(FunctionPrototype, 'name').configurable)); + + var functionName = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE + }; + + var uncurryThis$8 = functionUncurryThis; + var isCallable$6 = isCallable$c; + var store$1 = sharedStoreExports; + + var functionToString = uncurryThis$8(Function.toString); + + // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper + if (!isCallable$6(store$1.inspectSource)) { + store$1.inspectSource = function (it) { + return functionToString(it); + }; + } + + var inspectSource$2 = store$1.inspectSource; + + var global$3 = global$a; + var isCallable$5 = isCallable$c; + + var WeakMap$1 = global$3.WeakMap; + + var weakMapBasicDetection = isCallable$5(WeakMap$1) && /native code/.test(String(WeakMap$1)); + + var shared$1 = shared$3; + var uid = uid$2; + + var keys = shared$1('keys'); + + var sharedKey$2 = function (key) { + return keys[key] || (keys[key] = uid(key)); + }; + + var hiddenKeys$4 = {}; + + var NATIVE_WEAK_MAP = weakMapBasicDetection; + var global$2 = global$a; + var isObject$2 = isObject$7; + var createNonEnumerableProperty$1 = createNonEnumerableProperty$2; + var hasOwn$3 = hasOwnProperty_1; + var shared = sharedStoreExports; + var sharedKey$1 = sharedKey$2; + var hiddenKeys$3 = hiddenKeys$4; + + var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; + var TypeError$1 = global$2.TypeError; + var WeakMap = global$2.WeakMap; + var set, get, has; + + var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); + }; + + var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$2(it) || (state = get(it)).type !== TYPE) { + throw new TypeError$1('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; + }; + + if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set = function (it, metadata) { + if (store.has(it)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; + } else { + var STATE = sharedKey$1('state'); + hiddenKeys$3[STATE] = true; + set = function (it, metadata) { + if (hasOwn$3(it, STATE)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$1(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$3(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$3(it, STATE); + }; + } + + var internalState = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor + }; + + var uncurryThis$7 = functionUncurryThis; + var fails$5 = fails$c; + var isCallable$4 = isCallable$c; + var hasOwn$2 = hasOwnProperty_1; + var DESCRIPTORS$3 = descriptors; + var CONFIGURABLE_FUNCTION_NAME = functionName.CONFIGURABLE; + var inspectSource$1 = inspectSource$2; + var InternalStateModule = internalState; + + var enforceInternalState = InternalStateModule.enforce; + var getInternalState = InternalStateModule.get; + var $String = String; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$2 = Object.defineProperty; + var stringSlice = uncurryThis$7(''.slice); + var replace = uncurryThis$7(''.replace); + var join = uncurryThis$7([].join); + + var CONFIGURABLE_LENGTH = DESCRIPTORS$3 && !fails$5(function () { + return defineProperty$2(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; + }); + + var TEMPLATE = String(String).split('String'); + + var makeBuiltIn$1 = makeBuiltIn$2.exports = function (value, name, options) { + if (stringSlice($String(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$2(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS$3) defineProperty$2(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$2(options, 'arity') && value.length !== options.arity) { + defineProperty$2(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$2(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$3) defineProperty$2(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$2(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; + }; + + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + // eslint-disable-next-line no-extend-native -- required + Function.prototype.toString = makeBuiltIn$1(function toString() { + return isCallable$4(this) && getInternalState(this).source || inspectSource$1(this); + }, 'toString'); + + var makeBuiltInExports = makeBuiltIn$2.exports; + + var isCallable$3 = isCallable$c; + var definePropertyModule$3 = objectDefineProperty; + var makeBuiltIn = makeBuiltInExports; + var defineGlobalProperty$1 = defineGlobalProperty$3; + + var defineBuiltIn$2 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$3(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; + }; + + var objectGetOwnPropertyNames = {}; + + var ceil = Math.ceil; + var floor = Math.floor; + + // `Math.trunc` method + // https://tc39.es/ecma262/#sec-math.trunc + // eslint-disable-next-line es/no-math-trunc -- safe + var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); + }; + + var trunc = mathTrunc; + + // `ToIntegerOrInfinity` abstract operation + // https://tc39.es/ecma262/#sec-tointegerorinfinity + var toIntegerOrInfinity$2 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); + }; + + var toIntegerOrInfinity$1 = toIntegerOrInfinity$2; + + var max = Math.max; + var min$1 = Math.min; + + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex$1 = function (index, length) { + var integer = toIntegerOrInfinity$1(index); + return integer < 0 ? max(integer + length, 0) : min$1(integer, length); + }; + + var toIntegerOrInfinity = toIntegerOrInfinity$2; + + var min = Math.min; + + // `ToLength` abstract operation + // https://tc39.es/ecma262/#sec-tolength + var toLength$1 = function (argument) { + var len = toIntegerOrInfinity(argument); + return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; + + var toLength = toLength$1; + + // `LengthOfArrayLike` abstract operation + // https://tc39.es/ecma262/#sec-lengthofarraylike + var lengthOfArrayLike$3 = function (obj) { + return toLength(obj.length); + }; + + var toIndexedObject$2 = toIndexedObject$4; + var toAbsoluteIndex = toAbsoluteIndex$1; + var lengthOfArrayLike$2 = lengthOfArrayLike$3; + + // `Array.prototype.{ indexOf, includes }` methods implementation + var createMethod$1 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$2($this); + var length = lengthOfArrayLike$2(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + + var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$1(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$1(false) + }; + + var uncurryThis$6 = functionUncurryThis; + var hasOwn$1 = hasOwnProperty_1; + var toIndexedObject$1 = toIndexedObject$4; + var indexOf = arrayIncludes.indexOf; + var hiddenKeys$2 = hiddenKeys$4; + + var push$1 = uncurryThis$6([].push); + + var objectKeysInternal = function (object, names) { + var O = toIndexedObject$1(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$1(hiddenKeys$2, key) && hasOwn$1(O, key) && push$1(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$1(O, key = names[i++])) { + ~indexOf(result, key) || push$1(result, key); + } + return result; + }; + + // IE8- don't enum bug keys + var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + + var internalObjectKeys$1 = objectKeysInternal; + var enumBugKeys$2 = enumBugKeys$3; + + var hiddenKeys$1 = enumBugKeys$2.concat('length', 'prototype'); + + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + // eslint-disable-next-line es/no-object-getownpropertynames -- safe + objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$1); + }; + + var objectGetOwnPropertySymbols = {}; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe + objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + + var getBuiltIn$2 = getBuiltIn$4; + var uncurryThis$5 = functionUncurryThis; + var getOwnPropertyNamesModule = objectGetOwnPropertyNames; + var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; + var anObject$2 = anObject$4; + + var concat$1 = uncurryThis$5([].concat); + + // all object keys, includes non-enumerable and symbols + var ownKeys$1 = getBuiltIn$2('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject$2(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys; + }; + + var hasOwn = hasOwnProperty_1; + var ownKeys = ownKeys$1; + var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; + var definePropertyModule$2 = objectDefineProperty; + + var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; + + var fails$4 = fails$c; + var isCallable$2 = isCallable$c; + + var replacement = /#|\.prototype\./; + + var isForced$1 = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable$2(detection) ? fails$4(detection) + : !!detection; + }; + + var normalize = isForced$1.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; + + var data = isForced$1.data = {}; + var NATIVE = isForced$1.NATIVE = 'N'; + var POLYFILL = isForced$1.POLYFILL = 'P'; + + var isForced_1 = isForced$1; + + var global$1 = global$a; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + var createNonEnumerableProperty = createNonEnumerableProperty$2; + var defineBuiltIn$1 = defineBuiltIn$2; + var defineGlobalProperty = defineGlobalProperty$3; + var copyConstructorProperties = copyConstructorProperties$1; + var isForced = isForced_1; + + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key + */ + var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$1; + } else if (STATIC) { + target = global$1[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global$1[TARGET] && global$1[TARGET].prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + defineBuiltIn$1(target, key, sourceProperty, options); + } + }; + + var classof$3 = classofRaw$2; + + // `IsArray` abstract operation + // https://tc39.es/ecma262/#sec-isarray + // eslint-disable-next-line es/no-array-isarray -- safe + var isArray$2 = Array.isArray || function isArray(argument) { + return classof$3(argument) === 'Array'; + }; + + var $TypeError = TypeError; + var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + + var doesNotExceedSafeInteger$1 = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded'); + return it; + }; + + var DESCRIPTORS$2 = descriptors; + var definePropertyModule$1 = objectDefineProperty; + var createPropertyDescriptor = createPropertyDescriptor$3; + + var createProperty$1 = function (object, key, value) { + if (DESCRIPTORS$2) definePropertyModule$1.f(object, key, createPropertyDescriptor(0, value)); + else object[key] = value; + }; + + var wellKnownSymbol$5 = wellKnownSymbol$7; + + var TO_STRING_TAG$1 = wellKnownSymbol$5('toStringTag'); + var test = {}; + + test[TO_STRING_TAG$1] = 'z'; + + var toStringTagSupport = String(test) === '[object z]'; + + var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; + var isCallable$1 = isCallable$c; + var classofRaw$1 = classofRaw$2; + var wellKnownSymbol$4 = wellKnownSymbol$7; + + var TO_STRING_TAG = wellKnownSymbol$4('toStringTag'); + var $Object = Object; + + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) === 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; + + // getting tag from ES6+ `Object.prototype.toString` + var classof$2 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) === 'Object' && isCallable$1(O.callee) ? 'Arguments' : result; + }; + + var uncurryThis$4 = functionUncurryThis; + var fails$3 = fails$c; + var isCallable = isCallable$c; + var classof$1 = classof$2; + var getBuiltIn$1 = getBuiltIn$4; + var inspectSource = inspectSource$2; + + var noop = function () { /* empty */ }; + var construct = getBuiltIn$1('Reflect', 'construct'); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec = uncurryThis$4(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.test(noop); + + var isConstructorModern = function isConstructor(argument) { + if (!isCallable(argument)) return false; + try { + construct(noop, [], argument); + return true; + } catch (error) { + return false; + } + }; + + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable(argument)) return false; + switch (classof$1(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } + }; + + isConstructorLegacy.sham = true; + + // `IsConstructor` abstract operation + // https://tc39.es/ecma262/#sec-isconstructor + var isConstructor$1 = !construct || fails$3(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; + }) ? isConstructorLegacy : isConstructorModern; + + var isArray$1 = isArray$2; + var isConstructor = isConstructor$1; + var isObject$1 = isObject$7; + var wellKnownSymbol$3 = wellKnownSymbol$7; + + var SPECIES$1 = wellKnownSymbol$3('species'); + var $Array = Array; + + // a part of `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray$1(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === $Array || isArray$1(C.prototype))) C = undefined; + else if (isObject$1(C)) { + C = C[SPECIES$1]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array : C; + }; + + var arraySpeciesConstructor = arraySpeciesConstructor$1; + + // `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesCreate$2 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; + + var fails$2 = fails$c; + var wellKnownSymbol$2 = wellKnownSymbol$7; + var V8_VERSION$1 = engineV8Version; + + var SPECIES = wellKnownSymbol$2('species'); + + var arrayMethodHasSpeciesSupport$1 = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION$1 >= 51 || !fails$2(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); + }; + + var $$2 = _export; + var fails$1 = fails$c; + var isArray = isArray$2; + var isObject = isObject$7; + var toObject$2 = toObject$4; + var lengthOfArrayLike$1 = lengthOfArrayLike$3; + var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1; + var createProperty = createProperty$1; + var arraySpeciesCreate$1 = arraySpeciesCreate$2; + var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$1; + var wellKnownSymbol$1 = wellKnownSymbol$7; + var V8_VERSION = engineV8Version; + + var IS_CONCAT_SPREADABLE = wellKnownSymbol$1('isConcatSpreadable'); + + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/679 + var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails$1(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; + }); + + var isConcatSpreadable = function (O) { + if (!isObject(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); + }; + + var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat'); + + // `Array.prototype.concat` method + // https://tc39.es/ecma262/#sec-array.prototype.concat + // with adding support of @@isConcatSpreadable and @@species + $$2({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject$2(this); + var A = arraySpeciesCreate$1(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike$1(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty(A, n++, E); + } + } + A.length = n; + return A; + } + }); + + var classofRaw = classofRaw$2; + var uncurryThis$3 = functionUncurryThis; + + var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$3(fn); + }; + + var uncurryThis$2 = functionUncurryThisClause; + var aCallable = aCallable$2; + var NATIVE_BIND = functionBindNative; + + var bind$1 = uncurryThis$2(uncurryThis$2.bind); + + // optional / simple context binding + var functionBindContext = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$1(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; + + var bind = functionBindContext; + var uncurryThis$1 = functionUncurryThis; + var IndexedObject$1 = indexedObject; + var toObject$1 = toObject$4; + var lengthOfArrayLike = lengthOfArrayLike$3; + var arraySpeciesCreate = arraySpeciesCreate$2; + + var push = uncurryThis$1([].push); + + // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation + var createMethod = function (TYPE) { + var IS_MAP = TYPE === 1; + var IS_FILTER = TYPE === 2; + var IS_SOME = TYPE === 3; + var IS_EVERY = TYPE === 4; + var IS_FIND_INDEX = TYPE === 6; + var IS_FILTER_REJECT = TYPE === 7; + var NO_HOLES = TYPE === 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject$1($this); + var self = IndexedObject$1(O); + var length = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; + }; + + var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod(7) + }; + + var objectDefineProperties = {}; + + var internalObjectKeys = objectKeysInternal; + var enumBugKeys$1 = enumBugKeys$3; + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + // eslint-disable-next-line es/no-object-keys -- safe + var objectKeys$2 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); + }; + + var DESCRIPTORS$1 = descriptors; + var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; + var definePropertyModule = objectDefineProperty; + var anObject$1 = anObject$4; + var toIndexedObject = toIndexedObject$4; + var objectKeys$1 = objectKeys$2; + + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + // eslint-disable-next-line es/no-object-defineproperties -- safe + objectDefineProperties.f = DESCRIPTORS$1 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$1(O); + var props = toIndexedObject(Properties); + var keys = objectKeys$1(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; + }; + + var getBuiltIn = getBuiltIn$4; + + var html$1 = getBuiltIn('document', 'documentElement'); + + /* global ActiveXObject -- old IE, WSH */ + var anObject = anObject$4; + var definePropertiesModule = objectDefineProperties; + var enumBugKeys = enumBugKeys$3; + var hiddenKeys = hiddenKeys$4; + var html = html$1; + var documentCreateElement = documentCreateElement$1; + var sharedKey = sharedKey$2; + + var GT = '>'; + var LT = '<'; + var PROTOTYPE = 'prototype'; + var SCRIPT = 'script'; + var IE_PROTO = sharedKey('IE_PROTO'); + + var EmptyConstructor = function () { /* empty */ }; + + var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; + }; + + // Create object with fake `null` prototype: use ActiveX Object with cleared prototype + var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; + }; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; + }; + + // Check for document.domain and active x support + // No need to use active x approach when document.domain is not set + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + // avoid IE GC bug + var activeXDocument; + var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); + }; + + hiddenKeys[IE_PROTO] = true; + + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + // eslint-disable-next-line es/no-object-create -- safe + var objectCreate = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); + }; + + var wellKnownSymbol = wellKnownSymbol$7; + var create = objectCreate; + var defineProperty$1 = objectDefineProperty.f; + + var UNSCOPABLES = wellKnownSymbol('unscopables'); + var ArrayPrototype = Array.prototype; + + // Array.prototype[@@unscopables] + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + if (ArrayPrototype[UNSCOPABLES] === undefined) { + defineProperty$1(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create(null) + }); + } + + // add a key to Array.prototype[@@unscopables] + var addToUnscopables$1 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; + }; + + var $$1 = _export; + var $find = arrayIteration.find; + var addToUnscopables = addToUnscopables$1; + + var FIND = 'find'; + var SKIPS_HOLES = true; + + // Shouldn't skip holes + // eslint-disable-next-line es/no-array-prototype-find -- testing + if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); + + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + $$1({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables(FIND); + + var DESCRIPTORS = descriptors; + var uncurryThis = functionUncurryThis; + var call = functionCall; + var fails = fails$c; + var objectKeys = objectKeys$2; + var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; + var propertyIsEnumerableModule = objectPropertyIsEnumerable; + var toObject = toObject$4; + var IndexedObject = indexedObject; + + // eslint-disable-next-line es/no-object-assign -- safe + var $assign = Object.assign; + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + var defineProperty = Object.defineProperty; + var concat = uncurryThis([].concat); + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + var objectAssign = !$assign || fails(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { + enumerable: true, + get: function () { + defineProperty(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol('assign detection'); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; + } : $assign; + + var $ = _export; + var assign = objectAssign; + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + // eslint-disable-next-line es/no-object-assign -- required for testing + $({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign + }); + + var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; + var classof = classof$2; + + // `Object.prototype.toString` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.tostring + var objectToString = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof(this) + ']'; + }; + + var TO_STRING_TAG_SUPPORT = toStringTagSupport; + var defineBuiltIn = defineBuiltIn$2; + var toString = objectToString; + + // `Object.prototype.toString` method + // https://tc39.es/ecma262/#sec-object.prototype.tostring + if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true }); + } + /** * @author vincent loh * @update J Manuel Corona * @update zhixin wen */ - var Utils = $.fn.bootstrapTable.utils; - Object.assign($.fn.bootstrapTable.defaults, { + var Utils = $$3.fn.bootstrapTable.utils; + Object.assign($$3.fn.bootstrapTable.defaults, { stickyHeader: false, stickyHeaderOffsetY: 0, stickyHeaderOffsetLeft: 0, stickyHeaderOffsetRight: 0 }); - $.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) { + $$3.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) { function _class() { _classCallCheck(this, _class); return _callSuper(this, _class, arguments); @@ -7797,10 +24575,10 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er // render sticky on window scroll or resize var resizeEvent = Utils.getEventName('resize.sticky-header-table', this.$el.attr('id')); var scrollEvent = Utils.getEventName('scroll.sticky-header-table', this.$el.attr('id')); - $(window).off(resizeEvent).on(resizeEvent, function () { + $$3(window).off(resizeEvent).on(resizeEvent, function () { return _this.renderStickyHeader(); }); - $(window).off(scrollEvent).on(scrollEvent, function () { + $$3(window).off(scrollEvent).on(scrollEvent, function () { return _this.renderStickyHeader(); }); this.$tableBody.off('scroll').on('scroll', function () { @@ -7816,6 +24594,9 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er currentTarget: currentTarget, keyCode: keyCode }); + if (!this.options.stickyHeader) { + return; + } this.renderStickyHeader(); } }, { @@ -7827,7 +24608,10 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er args[_key2] = arguments[_key2]; } (_get3 = _get(_getPrototypeOf(_class.prototype), "resetView", this)).call.apply(_get3, [this].concat(args)); - $('.bootstrap-table.fullscreen').off('scroll').on('scroll', function () { + if (!this.options.stickyHeader) { + return; + } + $$3('.bootstrap-table.fullscreen').off('scroll').on('scroll', function () { return _this2.renderStickyHeader(); }); } @@ -7839,10 +24623,13 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er args[_key3] = arguments[_key3]; } (_get4 = _get(_getPrototypeOf(_class.prototype), "getCaret", this)).call.apply(_get4, [this].concat(args)); + if (!this.options.stickyHeader) { + return; + } if (this.$stickyHeader) { var $ths = this.$stickyHeader.find('th'); this.$header.find('th').each(function (i, th) { - $ths.eq(i).find('.sortable').attr('class', $(th).find('.sortable').attr('class')); + $ths.eq(i).find('.sortable').attr('class', $$3(th).find('.sortable').attr('class')); }); } } @@ -7851,6 +24638,9 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er value: function horizontalScroll() { var _this3 = this; _get(_getPrototypeOf(_class.prototype), "horizontalScroll", this).call(this); + if (!this.options.stickyHeader) { + return; + } this.$tableBody.on('scroll', function () { return _this3.matchPositionX(); }); @@ -7862,8 +24652,8 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er var that = this; this.$stickyHeader = this.$header.clone(true, true); if (this.options.filterControl) { - $(this.$stickyHeader).off('keyup change mouseup').on('keyup change mouse', function (e) { - var $target = $(e.target); + $$3(this.$stickyHeader).off('keyup change mouseup').on('keyup change mouse', function (e) { + var $target = $$3(e.target); var value = $target.val(); var field = $target.parents('th').data('field'); var $coreTh = that.$header.find("th[data-field=\"".concat(field, "\"]")); @@ -7877,7 +24667,7 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er that.triggerSearch(); }); } - var top = $(window).scrollTop(); + var top = $$3(window).scrollTop(); // top anchor scroll position, minus header height var start = this.$stickyBegin.offset().top - this.options.stickyHeaderOffsetY; // bottom anchor scroll position, minus header height, minus sticky height @@ -7887,8 +24677,8 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er if (top > start && top <= end) { // ensure clone and source column widths are the same this.$stickyHeader.find('tr').each(function (indexRows, rows) { - $(rows).find('th').each(function (index, el) { - $(el).css('min-width', _this4.$header.find("tr:eq(".concat(indexRows, ")")).find("th:eq(".concat(index, ")")).css('width')); + $$3(rows).find('th').each(function (index, el) { + $$3(el).css('min-width', _this4.$header.find("tr:eq(".concat(indexRows, ")")).find("th:eq(".concat(index, ")")).css('width')); }); }); // match bootstrap table style @@ -7914,7 +24704,7 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er this.$stickyContainer.css('right', "".concat(stickyHeaderOffsetRight, "px")); this.$stickyContainer.css('width', "".concat(width)); // create scrollable container for header - this.$stickyTable = $(''); + this.$stickyTable = $$3('
'); this.$stickyTable.addClass(this.options.classes); // append cloned header to dom this.$stickyContainer.html(this.$stickyTable.append(this.$stickyHeader)); @@ -7930,15 +24720,15 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er this.$stickyContainer.scrollLeft(this.$tableBody.scrollLeft()); } }]); - }($.BootstrapTable); + }($$3.BootstrapTable); })); (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('core-js/modules/es.array.concat.js'), require('core-js/modules/es.array.filter.js'), require('core-js/modules/es.array.find.js'), require('core-js/modules/es.array.includes.js'), require('core-js/modules/es.array.index-of.js'), require('core-js/modules/es.array.join.js'), require('core-js/modules/es.object.assign.js'), require('core-js/modules/es.object.entries.js'), require('core-js/modules/es.object.to-string.js'), require('core-js/modules/es.regexp.exec.js'), require('core-js/modules/es.string.includes.js'), require('core-js/modules/es.string.search.js'), require('core-js/modules/es.string.trim.js'), require('jquery')) : - typeof define === 'function' && define.amd ? define(['core-js/modules/es.array.concat.js', 'core-js/modules/es.array.filter.js', 'core-js/modules/es.array.find.js', 'core-js/modules/es.array.includes.js', 'core-js/modules/es.array.index-of.js', 'core-js/modules/es.array.join.js', 'core-js/modules/es.object.assign.js', 'core-js/modules/es.object.entries.js', 'core-js/modules/es.object.to-string.js', 'core-js/modules/es.regexp.exec.js', 'core-js/modules/es.string.includes.js', 'core-js/modules/es.string.search.js', 'core-js/modules/es.string.trim.js', 'jquery'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(null, null, null, null, null, null, null, null, null, null, null, null, null, global.jQuery)); -})(this, (function (es_array_concat_js, es_array_filter_js, es_array_find_js, es_array_includes_js, es_array_indexOf_js, es_array_join_js, es_object_assign_js, es_object_entries_js, es_object_toString_js, es_regexp_exec_js, es_string_includes_js, es_string_search_js, es_string_trim_js, $) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) : + typeof define === 'function' && define.amd ? define(['jquery'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jQuery)); +})(this, (function ($$b) { 'use strict'; function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); @@ -7975,7 +24765,7 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { - if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e ) { + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var n = 0, F = function () {}; @@ -8111,7 +24901,7 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { - var i = e.call(t, r ); + var i = e.call(t, r); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } @@ -8129,6 +24919,2231 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er } } + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + var check = function (it) { + return it && it.Math === Math && it; + }; + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global$d = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + var objectGetOwnPropertyDescriptor = {}; + + var fails$l = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + + var fails$k = fails$l; + + // Detect IE8's incomplete defineProperty implementation + var descriptors = !fails$k(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; + }); + + var fails$j = fails$l; + + var functionBindNative = !fails$j(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); + }); + + var NATIVE_BIND$2 = functionBindNative; + + var call$9 = Function.prototype.call; + + var functionCall = NATIVE_BIND$2 ? call$9.bind(call$9) : function () { + return call$9.apply(call$9, arguments); + }; + + var objectPropertyIsEnumerable = {}; + + var $propertyIsEnumerable$1 = {}.propertyIsEnumerable; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + + // Nashorn ~ JDK8 bug + var NASHORN_BUG = getOwnPropertyDescriptor$1 && !$propertyIsEnumerable$1.call({ 1: 2 }, 1); + + // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable + objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$1(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable$1; + + var createPropertyDescriptor$3 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + var NATIVE_BIND$1 = functionBindNative; + + var FunctionPrototype$1 = Function.prototype; + var call$8 = FunctionPrototype$1.call; + var uncurryThisWithBind = NATIVE_BIND$1 && FunctionPrototype$1.bind.bind(call$8, call$8); + + var functionUncurryThis = NATIVE_BIND$1 ? uncurryThisWithBind : function (fn) { + return function () { + return call$8.apply(fn, arguments); + }; + }; + + var uncurryThis$j = functionUncurryThis; + + var toString$7 = uncurryThis$j({}.toString); + var stringSlice$2 = uncurryThis$j(''.slice); + + var classofRaw$2 = function (it) { + return stringSlice$2(toString$7(it), 8, -1); + }; + + var uncurryThis$i = functionUncurryThis; + var fails$i = fails$l; + var classof$7 = classofRaw$2; + + var $Object$4 = Object; + var split = uncurryThis$i(''.split); + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var indexedObject = fails$i(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$4('z').propertyIsEnumerable(0); + }) ? function (it) { + return classof$7(it) === 'String' ? split(it, '') : $Object$4(it); + } : $Object$4; + + // we can't use just `it == null` since of `document.all` special case + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec + var isNullOrUndefined$3 = function (it) { + return it === null || it === undefined; + }; + + var isNullOrUndefined$2 = isNullOrUndefined$3; + + var $TypeError$8 = TypeError; + + // `RequireObjectCoercible` abstract operation + // https://tc39.es/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible$5 = function (it) { + if (isNullOrUndefined$2(it)) throw new $TypeError$8("Can't call method on " + it); + return it; + }; + + // toObject with fallback for non-array-like ES3 strings + var IndexedObject$3 = indexedObject; + var requireObjectCoercible$4 = requireObjectCoercible$5; + + var toIndexedObject$6 = function (it) { + return IndexedObject$3(requireObjectCoercible$4(it)); + }; + + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + var documentAll = typeof document == 'object' && document.all; + + // `IsCallable` abstract operation + // https://tc39.es/ecma262/#sec-iscallable + // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing + var isCallable$e = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; + } : function (argument) { + return typeof argument == 'function'; + }; + + var isCallable$d = isCallable$e; + + var isObject$8 = function (it) { + return typeof it == 'object' ? it !== null : isCallable$d(it); + }; + + var global$c = global$d; + var isCallable$c = isCallable$e; + + var aFunction = function (argument) { + return isCallable$c(argument) ? argument : undefined; + }; + + var getBuiltIn$4 = function (namespace, method) { + return arguments.length < 2 ? aFunction(global$c[namespace]) : global$c[namespace] && global$c[namespace][method]; + }; + + var uncurryThis$h = functionUncurryThis; + + var objectIsPrototypeOf = uncurryThis$h({}.isPrototypeOf); + + var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + var global$b = global$d; + var userAgent = engineUserAgent; + + var process = global$b.process; + var Deno = global$b.Deno; + var versions = process && process.versions || Deno && Deno.version; + var v8 = versions && versions.v8; + var match, version; + + if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + + // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` + // so check `userAgent` even if `.v8` exists, but 0 + if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } + } + + var engineV8Version = version; + + /* eslint-disable es/no-symbol -- required for testing */ + var V8_VERSION$2 = engineV8Version; + var fails$h = fails$l; + var global$a = global$d; + + var $String$4 = global$a.String; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$h(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$4(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$2 && V8_VERSION$2 < 41; + }); + + /* eslint-disable es/no-symbol -- required for testing */ + var NATIVE_SYMBOL$1 = symbolConstructorDetection; + + var useSymbolAsUid = NATIVE_SYMBOL$1 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + var getBuiltIn$3 = getBuiltIn$4; + var isCallable$b = isCallable$e; + var isPrototypeOf = objectIsPrototypeOf; + var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; + + var $Object$3 = Object; + + var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + var $Symbol = getBuiltIn$3('Symbol'); + return isCallable$b($Symbol) && isPrototypeOf($Symbol.prototype, $Object$3(it)); + }; + + var $String$3 = String; + + var tryToString$1 = function (argument) { + try { + return $String$3(argument); + } catch (error) { + return 'Object'; + } + }; + + var isCallable$a = isCallable$e; + var tryToString = tryToString$1; + + var $TypeError$7 = TypeError; + + // `Assert: IsCallable(argument) is true` + var aCallable$2 = function (argument) { + if (isCallable$a(argument)) return argument; + throw new $TypeError$7(tryToString(argument) + ' is not a function'); + }; + + var aCallable$1 = aCallable$2; + var isNullOrUndefined$1 = isNullOrUndefined$3; + + // `GetMethod` abstract operation + // https://tc39.es/ecma262/#sec-getmethod + var getMethod$2 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$1(func) ? undefined : aCallable$1(func); + }; + + var call$7 = functionCall; + var isCallable$9 = isCallable$e; + var isObject$7 = isObject$8; + + var $TypeError$6 = TypeError; + + // `OrdinaryToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-ordinarytoprimitive + var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$9(fn = input.toString) && !isObject$7(val = call$7(fn, input))) return val; + if (isCallable$9(fn = input.valueOf) && !isObject$7(val = call$7(fn, input))) return val; + if (pref !== 'string' && isCallable$9(fn = input.toString) && !isObject$7(val = call$7(fn, input))) return val; + throw new $TypeError$6("Can't convert object to primitive value"); + }; + + var sharedStore = {exports: {}}; + + var global$9 = global$d; + + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$3 = Object.defineProperty; + + var defineGlobalProperty$3 = function (key, value) { + try { + defineProperty$3(global$9, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$9[key] = value; + } return value; + }; + + var globalThis$1 = global$d; + var defineGlobalProperty$2 = defineGlobalProperty$3; + + var SHARED = '__core-js_shared__'; + var store$3 = sharedStore.exports = globalThis$1[SHARED] || defineGlobalProperty$2(SHARED, {}); + + (store$3.versions || (store$3.versions = [])).push({ + version: '3.37.1', + mode: 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', + source: 'https://github.com/zloirock/core-js' + }); + + var sharedStoreExports = sharedStore.exports; + + var store$2 = sharedStoreExports; + + var shared$4 = function (key, value) { + return store$2[key] || (store$2[key] = value || {}); + }; + + var requireObjectCoercible$3 = requireObjectCoercible$5; + + var $Object$2 = Object; + + // `ToObject` abstract operation + // https://tc39.es/ecma262/#sec-toobject + var toObject$5 = function (argument) { + return $Object$2(requireObjectCoercible$3(argument)); + }; + + var uncurryThis$g = functionUncurryThis; + var toObject$4 = toObject$5; + + var hasOwnProperty = uncurryThis$g({}.hasOwnProperty); + + // `HasOwnProperty` abstract operation + // https://tc39.es/ecma262/#sec-hasownproperty + // eslint-disable-next-line es/no-object-hasown -- safe + var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject$4(it), key); + }; + + var uncurryThis$f = functionUncurryThis; + + var id = 0; + var postfix = Math.random(); + var toString$6 = uncurryThis$f(1.0.toString); + + var uid$2 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$6(++id + postfix, 36); + }; + + var global$8 = global$d; + var shared$3 = shared$4; + var hasOwn$7 = hasOwnProperty_1; + var uid$1 = uid$2; + var NATIVE_SYMBOL = symbolConstructorDetection; + var USE_SYMBOL_AS_UID = useSymbolAsUid; + + var Symbol$1 = global$8.Symbol; + var WellKnownSymbolsStore = shared$3('wks'); + var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1['for'] || Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1; + + var wellKnownSymbol$a = function (name) { + if (!hasOwn$7(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn$7(Symbol$1, name) + ? Symbol$1[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; + }; + + var call$6 = functionCall; + var isObject$6 = isObject$8; + var isSymbol$1 = isSymbol$2; + var getMethod$1 = getMethod$2; + var ordinaryToPrimitive = ordinaryToPrimitive$1; + var wellKnownSymbol$9 = wellKnownSymbol$a; + + var $TypeError$5 = TypeError; + var TO_PRIMITIVE = wellKnownSymbol$9('toPrimitive'); + + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + var toPrimitive$1 = function (input, pref) { + if (!isObject$6(input) || isSymbol$1(input)) return input; + var exoticToPrim = getMethod$1(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$6(exoticToPrim, input, pref); + if (!isObject$6(result) || isSymbol$1(result)) return result; + throw new $TypeError$5("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); + }; + + var toPrimitive = toPrimitive$1; + var isSymbol = isSymbol$2; + + // `ToPropertyKey` abstract operation + // https://tc39.es/ecma262/#sec-topropertykey + var toPropertyKey$2 = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; + }; + + var global$7 = global$d; + var isObject$5 = isObject$8; + + var document$1 = global$7.document; + // typeof document.createElement is 'object' in old IE + var EXISTS$1 = isObject$5(document$1) && isObject$5(document$1.createElement); + + var documentCreateElement$1 = function (it) { + return EXISTS$1 ? document$1.createElement(it) : {}; + }; + + var DESCRIPTORS$a = descriptors; + var fails$g = fails$l; + var createElement = documentCreateElement$1; + + // Thanks to IE8 for its funny defineProperty + var ie8DomDefine = !DESCRIPTORS$a && !fails$g(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a !== 7; + }); + + var DESCRIPTORS$9 = descriptors; + var call$5 = functionCall; + var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; + var createPropertyDescriptor$2 = createPropertyDescriptor$3; + var toIndexedObject$5 = toIndexedObject$6; + var toPropertyKey$1 = toPropertyKey$2; + var hasOwn$6 = hasOwnProperty_1; + var IE8_DOM_DEFINE$1 = ie8DomDefine; + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor + objectGetOwnPropertyDescriptor.f = DESCRIPTORS$9 ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$5(O); + P = toPropertyKey$1(P); + if (IE8_DOM_DEFINE$1) try { + return $getOwnPropertyDescriptor$1(O, P); + } catch (error) { /* empty */ } + if (hasOwn$6(O, P)) return createPropertyDescriptor$2(!call$5(propertyIsEnumerableModule$1.f, O, P), O[P]); + }; + + var objectDefineProperty = {}; + + var DESCRIPTORS$8 = descriptors; + var fails$f = fails$l; + + // V8 ~ Chrome 36- + // https://bugs.chromium.org/p/v8/issues/detail?id=3334 + var v8PrototypeDefineBug = DESCRIPTORS$8 && fails$f(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; + }); + + var isObject$4 = isObject$8; + + var $String$2 = String; + var $TypeError$4 = TypeError; + + // `Assert: Type(argument) is Object` + var anObject$7 = function (argument) { + if (isObject$4(argument)) return argument; + throw new $TypeError$4($String$2(argument) + ' is not an object'); + }; + + var DESCRIPTORS$7 = descriptors; + var IE8_DOM_DEFINE = ie8DomDefine; + var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; + var anObject$6 = anObject$7; + var toPropertyKey = toPropertyKey$2; + + var $TypeError$3 = TypeError; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var $defineProperty = Object.defineProperty; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var ENUMERABLE = 'enumerable'; + var CONFIGURABLE$1 = 'configurable'; + var WRITABLE = 'writable'; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + objectDefineProperty.f = DESCRIPTORS$7 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$6(O); + P = toPropertyKey(P); + anObject$6(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); + } : $defineProperty : function defineProperty(O, P, Attributes) { + anObject$6(O); + P = toPropertyKey(P); + anObject$6(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError$3('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + + var DESCRIPTORS$6 = descriptors; + var definePropertyModule$4 = objectDefineProperty; + var createPropertyDescriptor$1 = createPropertyDescriptor$3; + + var createNonEnumerableProperty$3 = DESCRIPTORS$6 ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$1(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + var makeBuiltIn$2 = {exports: {}}; + + var DESCRIPTORS$5 = descriptors; + var hasOwn$5 = hasOwnProperty_1; + + var FunctionPrototype = Function.prototype; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getDescriptor = DESCRIPTORS$5 && Object.getOwnPropertyDescriptor; + + var EXISTS = hasOwn$5(FunctionPrototype, 'name'); + // additional protection from minified / mangled / dropped function names + var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; + var CONFIGURABLE = EXISTS && (!DESCRIPTORS$5 || (DESCRIPTORS$5 && getDescriptor(FunctionPrototype, 'name').configurable)); + + var functionName = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE + }; + + var uncurryThis$e = functionUncurryThis; + var isCallable$8 = isCallable$e; + var store$1 = sharedStoreExports; + + var functionToString = uncurryThis$e(Function.toString); + + // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper + if (!isCallable$8(store$1.inspectSource)) { + store$1.inspectSource = function (it) { + return functionToString(it); + }; + } + + var inspectSource$2 = store$1.inspectSource; + + var global$6 = global$d; + var isCallable$7 = isCallable$e; + + var WeakMap$1 = global$6.WeakMap; + + var weakMapBasicDetection = isCallable$7(WeakMap$1) && /native code/.test(String(WeakMap$1)); + + var shared$2 = shared$4; + var uid = uid$2; + + var keys = shared$2('keys'); + + var sharedKey$3 = function (key) { + return keys[key] || (keys[key] = uid(key)); + }; + + var hiddenKeys$4 = {}; + + var NATIVE_WEAK_MAP = weakMapBasicDetection; + var global$5 = global$d; + var isObject$3 = isObject$8; + var createNonEnumerableProperty$2 = createNonEnumerableProperty$3; + var hasOwn$4 = hasOwnProperty_1; + var shared$1 = sharedStoreExports; + var sharedKey$2 = sharedKey$3; + var hiddenKeys$3 = hiddenKeys$4; + + var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; + var TypeError$1 = global$5.TypeError; + var WeakMap = global$5.WeakMap; + var set, get, has; + + var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); + }; + + var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$3(it) || (state = get(it)).type !== TYPE) { + throw new TypeError$1('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; + }; + + if (NATIVE_WEAK_MAP || shared$1.state) { + var store = shared$1.state || (shared$1.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set = function (it, metadata) { + if (store.has(it)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; + } else { + var STATE = sharedKey$2('state'); + hiddenKeys$3[STATE] = true; + set = function (it, metadata) { + if (hasOwn$4(it, STATE)) throw new TypeError$1(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$2(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn$4(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$4(it, STATE); + }; + } + + var internalState = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor + }; + + var uncurryThis$d = functionUncurryThis; + var fails$e = fails$l; + var isCallable$6 = isCallable$e; + var hasOwn$3 = hasOwnProperty_1; + var DESCRIPTORS$4 = descriptors; + var CONFIGURABLE_FUNCTION_NAME = functionName.CONFIGURABLE; + var inspectSource$1 = inspectSource$2; + var InternalStateModule = internalState; + + var enforceInternalState = InternalStateModule.enforce; + var getInternalState$1 = InternalStateModule.get; + var $String$1 = String; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$2 = Object.defineProperty; + var stringSlice$1 = uncurryThis$d(''.slice); + var replace$2 = uncurryThis$d(''.replace); + var join = uncurryThis$d([].join); + + var CONFIGURABLE_LENGTH = DESCRIPTORS$4 && !fails$e(function () { + return defineProperty$2(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; + }); + + var TEMPLATE = String(String).split('String'); + + var makeBuiltIn$1 = makeBuiltIn$2.exports = function (value, name, options) { + if (stringSlice$1($String$1(name), 0, 7) === 'Symbol(') { + name = '[' + replace$2($String$1(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn$3(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS$4) defineProperty$2(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn$3(options, 'arity') && value.length !== options.arity) { + defineProperty$2(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn$3(options, 'constructor') && options.constructor) { + if (DESCRIPTORS$4) defineProperty$2(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn$3(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; + }; + + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + // eslint-disable-next-line no-extend-native -- required + Function.prototype.toString = makeBuiltIn$1(function toString() { + return isCallable$6(this) && getInternalState$1(this).source || inspectSource$1(this); + }, 'toString'); + + var makeBuiltInExports = makeBuiltIn$2.exports; + + var isCallable$5 = isCallable$e; + var definePropertyModule$3 = objectDefineProperty; + var makeBuiltIn = makeBuiltInExports; + var defineGlobalProperty$1 = defineGlobalProperty$3; + + var defineBuiltIn$3 = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable$5(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty$1(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule$3.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; + }; + + var objectGetOwnPropertyNames = {}; + + var ceil = Math.ceil; + var floor = Math.floor; + + // `Math.trunc` method + // https://tc39.es/ecma262/#sec-math.trunc + // eslint-disable-next-line es/no-math-trunc -- safe + var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); + }; + + var trunc = mathTrunc; + + // `ToIntegerOrInfinity` abstract operation + // https://tc39.es/ecma262/#sec-tointegerorinfinity + var toIntegerOrInfinity$2 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); + }; + + var toIntegerOrInfinity$1 = toIntegerOrInfinity$2; + + var max = Math.max; + var min$1 = Math.min; + + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex$1 = function (index, length) { + var integer = toIntegerOrInfinity$1(index); + return integer < 0 ? max(integer + length, 0) : min$1(integer, length); + }; + + var toIntegerOrInfinity = toIntegerOrInfinity$2; + + var min = Math.min; + + // `ToLength` abstract operation + // https://tc39.es/ecma262/#sec-tolength + var toLength$1 = function (argument) { + var len = toIntegerOrInfinity(argument); + return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; + + var toLength = toLength$1; + + // `LengthOfArrayLike` abstract operation + // https://tc39.es/ecma262/#sec-lengthofarraylike + var lengthOfArrayLike$3 = function (obj) { + return toLength(obj.length); + }; + + var toIndexedObject$4 = toIndexedObject$6; + var toAbsoluteIndex = toAbsoluteIndex$1; + var lengthOfArrayLike$2 = lengthOfArrayLike$3; + + // `Array.prototype.{ indexOf, includes }` methods implementation + var createMethod$3 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$4($this); + var length = lengthOfArrayLike$2(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + + var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$3(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$3(false) + }; + + var uncurryThis$c = functionUncurryThis; + var hasOwn$2 = hasOwnProperty_1; + var toIndexedObject$3 = toIndexedObject$6; + var indexOf$1 = arrayIncludes.indexOf; + var hiddenKeys$2 = hiddenKeys$4; + + var push$2 = uncurryThis$c([].push); + + var objectKeysInternal = function (object, names) { + var O = toIndexedObject$3(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$2(hiddenKeys$2, key) && hasOwn$2(O, key) && push$2(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$2(O, key = names[i++])) { + ~indexOf$1(result, key) || push$2(result, key); + } + return result; + }; + + // IE8- don't enum bug keys + var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + + var internalObjectKeys$1 = objectKeysInternal; + var enumBugKeys$2 = enumBugKeys$3; + + var hiddenKeys$1 = enumBugKeys$2.concat('length', 'prototype'); + + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + // eslint-disable-next-line es/no-object-getownpropertynames -- safe + objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$1); + }; + + var objectGetOwnPropertySymbols = {}; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe + objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; + + var getBuiltIn$2 = getBuiltIn$4; + var uncurryThis$b = functionUncurryThis; + var getOwnPropertyNamesModule = objectGetOwnPropertyNames; + var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; + var anObject$5 = anObject$7; + + var concat$1 = uncurryThis$b([].concat); + + // all object keys, includes non-enumerable and symbols + var ownKeys$1 = getBuiltIn$2('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject$5(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys; + }; + + var hasOwn$1 = hasOwnProperty_1; + var ownKeys = ownKeys$1; + var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; + var definePropertyModule$2 = objectDefineProperty; + + var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule$2.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn$1(target, key) && !(exceptions && hasOwn$1(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; + + var fails$d = fails$l; + var isCallable$4 = isCallable$e; + + var replacement = /#|\.prototype\./; + + var isForced$1 = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable$4(detection) ? fails$d(detection) + : !!detection; + }; + + var normalize = isForced$1.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; + + var data = isForced$1.data = {}; + var NATIVE = isForced$1.NATIVE = 'N'; + var POLYFILL = isForced$1.POLYFILL = 'P'; + + var isForced_1 = isForced$1; + + var global$4 = global$d; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + var createNonEnumerableProperty$1 = createNonEnumerableProperty$3; + var defineBuiltIn$2 = defineBuiltIn$3; + var defineGlobalProperty = defineGlobalProperty$3; + var copyConstructorProperties = copyConstructorProperties$1; + var isForced = isForced_1; + + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key + */ + var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$4; + } else if (STATIC) { + target = global$4[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global$4[TARGET] && global$4[TARGET].prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty$1(sourceProperty, 'sham', true); + } + defineBuiltIn$2(target, key, sourceProperty, options); + } + }; + + var classof$6 = classofRaw$2; + + // `IsArray` abstract operation + // https://tc39.es/ecma262/#sec-isarray + // eslint-disable-next-line es/no-array-isarray -- safe + var isArray$2 = Array.isArray || function isArray(argument) { + return classof$6(argument) === 'Array'; + }; + + var $TypeError$2 = TypeError; + var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + + var doesNotExceedSafeInteger$1 = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError$2('Maximum allowed index exceeded'); + return it; + }; + + var DESCRIPTORS$3 = descriptors; + var definePropertyModule$1 = objectDefineProperty; + var createPropertyDescriptor = createPropertyDescriptor$3; + + var createProperty$1 = function (object, key, value) { + if (DESCRIPTORS$3) definePropertyModule$1.f(object, key, createPropertyDescriptor(0, value)); + else object[key] = value; + }; + + var wellKnownSymbol$8 = wellKnownSymbol$a; + + var TO_STRING_TAG$1 = wellKnownSymbol$8('toStringTag'); + var test = {}; + + test[TO_STRING_TAG$1] = 'z'; + + var toStringTagSupport = String(test) === '[object z]'; + + var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; + var isCallable$3 = isCallable$e; + var classofRaw$1 = classofRaw$2; + var wellKnownSymbol$7 = wellKnownSymbol$a; + + var TO_STRING_TAG = wellKnownSymbol$7('toStringTag'); + var $Object$1 = Object; + + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw$1(function () { return arguments; }()) === 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; + + // getting tag from ES6+ `Object.prototype.toString` + var classof$5 = TO_STRING_TAG_SUPPORT$2 ? classofRaw$1 : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object$1(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw$1(O) + // ES3 arguments fallback + : (result = classofRaw$1(O)) === 'Object' && isCallable$3(O.callee) ? 'Arguments' : result; + }; + + var uncurryThis$a = functionUncurryThis; + var fails$c = fails$l; + var isCallable$2 = isCallable$e; + var classof$4 = classof$5; + var getBuiltIn$1 = getBuiltIn$4; + var inspectSource = inspectSource$2; + + var noop = function () { /* empty */ }; + var construct = getBuiltIn$1('Reflect', 'construct'); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec$1 = uncurryThis$a(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.test(noop); + + var isConstructorModern = function isConstructor(argument) { + if (!isCallable$2(argument)) return false; + try { + construct(noop, [], argument); + return true; + } catch (error) { + return false; + } + }; + + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$2(argument)) return false; + switch (classof$4(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec$1(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } + }; + + isConstructorLegacy.sham = true; + + // `IsConstructor` abstract operation + // https://tc39.es/ecma262/#sec-isconstructor + var isConstructor$1 = !construct || fails$c(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; + }) ? isConstructorLegacy : isConstructorModern; + + var isArray$1 = isArray$2; + var isConstructor = isConstructor$1; + var isObject$2 = isObject$8; + var wellKnownSymbol$6 = wellKnownSymbol$a; + + var SPECIES$2 = wellKnownSymbol$6('species'); + var $Array = Array; + + // a part of `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray$1(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === $Array || isArray$1(C.prototype))) C = undefined; + else if (isObject$2(C)) { + C = C[SPECIES$2]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array : C; + }; + + var arraySpeciesConstructor = arraySpeciesConstructor$1; + + // `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesCreate$2 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; + + var fails$b = fails$l; + var wellKnownSymbol$5 = wellKnownSymbol$a; + var V8_VERSION$1 = engineV8Version; + + var SPECIES$1 = wellKnownSymbol$5('species'); + + var arrayMethodHasSpeciesSupport$2 = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION$1 >= 51 || !fails$b(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES$1] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); + }; + + var $$a = _export; + var fails$a = fails$l; + var isArray = isArray$2; + var isObject$1 = isObject$8; + var toObject$3 = toObject$5; + var lengthOfArrayLike$1 = lengthOfArrayLike$3; + var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1; + var createProperty = createProperty$1; + var arraySpeciesCreate$1 = arraySpeciesCreate$2; + var arrayMethodHasSpeciesSupport$1 = arrayMethodHasSpeciesSupport$2; + var wellKnownSymbol$4 = wellKnownSymbol$a; + var V8_VERSION = engineV8Version; + + var IS_CONCAT_SPREADABLE = wellKnownSymbol$4('isConcatSpreadable'); + + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/679 + var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails$a(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; + }); + + var isConcatSpreadable = function (O) { + if (!isObject$1(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); + }; + + var FORCED$2 = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport$1('concat'); + + // `Array.prototype.concat` method + // https://tc39.es/ecma262/#sec-array.prototype.concat + // with adding support of @@isConcatSpreadable and @@species + $$a({ target: 'Array', proto: true, arity: 1, forced: FORCED$2 }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject$3(this); + var A = arraySpeciesCreate$1(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike$1(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty(A, n++, E); + } + } + A.length = n; + return A; + } + }); + + var classofRaw = classofRaw$2; + var uncurryThis$9 = functionUncurryThis; + + var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis$9(fn); + }; + + var uncurryThis$8 = functionUncurryThisClause; + var aCallable = aCallable$2; + var NATIVE_BIND = functionBindNative; + + var bind$1 = uncurryThis$8(uncurryThis$8.bind); + + // optional / simple context binding + var functionBindContext = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$1(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; + + var bind = functionBindContext; + var uncurryThis$7 = functionUncurryThis; + var IndexedObject$2 = indexedObject; + var toObject$2 = toObject$5; + var lengthOfArrayLike = lengthOfArrayLike$3; + var arraySpeciesCreate = arraySpeciesCreate$2; + + var push$1 = uncurryThis$7([].push); + + // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation + var createMethod$2 = function (TYPE) { + var IS_MAP = TYPE === 1; + var IS_FILTER = TYPE === 2; + var IS_SOME = TYPE === 3; + var IS_EVERY = TYPE === 4; + var IS_FIND_INDEX = TYPE === 6; + var IS_FILTER_REJECT = TYPE === 7; + var NO_HOLES = TYPE === 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject$2($this); + var self = IndexedObject$2(O); + var length = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push$1(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push$1(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; + }; + + var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod$2(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod$2(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod$2(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod$2(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod$2(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod$2(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod$2(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod$2(7) + }; + + var $$9 = _export; + var $filter = arrayIteration.filter; + var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$2; + + var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); + + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + // with adding support of @@species + $$9({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var objectDefineProperties = {}; + + var internalObjectKeys = objectKeysInternal; + var enumBugKeys$1 = enumBugKeys$3; + + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + // eslint-disable-next-line es/no-object-keys -- safe + var objectKeys$3 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); + }; + + var DESCRIPTORS$2 = descriptors; + var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; + var definePropertyModule = objectDefineProperty; + var anObject$4 = anObject$7; + var toIndexedObject$2 = toIndexedObject$6; + var objectKeys$2 = objectKeys$3; + + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + // eslint-disable-next-line es/no-object-defineproperties -- safe + objectDefineProperties.f = DESCRIPTORS$2 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$4(O); + var props = toIndexedObject$2(Properties); + var keys = objectKeys$2(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; + }; + + var getBuiltIn = getBuiltIn$4; + + var html$1 = getBuiltIn('document', 'documentElement'); + + /* global ActiveXObject -- old IE, WSH */ + var anObject$3 = anObject$7; + var definePropertiesModule = objectDefineProperties; + var enumBugKeys = enumBugKeys$3; + var hiddenKeys = hiddenKeys$4; + var html = html$1; + var documentCreateElement = documentCreateElement$1; + var sharedKey$1 = sharedKey$3; + + var GT = '>'; + var LT = '<'; + var PROTOTYPE = 'prototype'; + var SCRIPT = 'script'; + var IE_PROTO$1 = sharedKey$1('IE_PROTO'); + + var EmptyConstructor = function () { /* empty */ }; + + var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; + }; + + // Create object with fake `null` prototype: use ActiveX Object with cleared prototype + var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; + }; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; + }; + + // Check for document.domain and active x support + // No need to use active x approach when document.domain is not set + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + // avoid IE GC bug + var activeXDocument; + var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); + }; + + hiddenKeys[IE_PROTO$1] = true; + + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + // eslint-disable-next-line es/no-object-create -- safe + var objectCreate = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject$3(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO$1] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); + }; + + var wellKnownSymbol$3 = wellKnownSymbol$a; + var create$1 = objectCreate; + var defineProperty$1 = objectDefineProperty.f; + + var UNSCOPABLES = wellKnownSymbol$3('unscopables'); + var ArrayPrototype = Array.prototype; + + // Array.prototype[@@unscopables] + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + if (ArrayPrototype[UNSCOPABLES] === undefined) { + defineProperty$1(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create$1(null) + }); + } + + // add a key to Array.prototype[@@unscopables] + var addToUnscopables$2 = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; + }; + + var $$8 = _export; + var $find = arrayIteration.find; + var addToUnscopables$1 = addToUnscopables$2; + + var FIND = 'find'; + var SKIPS_HOLES = true; + + // Shouldn't skip holes + // eslint-disable-next-line es/no-array-prototype-find -- testing + if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); + + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + $$8({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables$1(FIND); + + var $$7 = _export; + var $includes = arrayIncludes.includes; + var fails$9 = fails$l; + var addToUnscopables = addToUnscopables$2; + + // FF99+ bug + var BROKEN_ON_SPARSE = fails$9(function () { + // eslint-disable-next-line es/no-array-prototype-includes -- detection + return !Array(1).includes(); + }); + + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + $$7({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + addToUnscopables('includes'); + + var fails$8 = fails$l; + + var arrayMethodIsStrict$2 = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails$8(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); + }; + + /* eslint-disable es/no-array-prototype-indexof -- required for testing */ + var $$6 = _export; + var uncurryThis$6 = functionUncurryThisClause; + var $indexOf = arrayIncludes.indexOf; + var arrayMethodIsStrict$1 = arrayMethodIsStrict$2; + + var nativeIndexOf = uncurryThis$6([].indexOf); + + var NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0; + var FORCED$1 = NEGATIVE_ZERO || !arrayMethodIsStrict$1('indexOf'); + + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + $$6({ target: 'Array', proto: true, forced: FORCED$1 }, { + indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { + var fromIndex = arguments.length > 1 ? arguments[1] : undefined; + return NEGATIVE_ZERO + // convert -0 to +0 + ? nativeIndexOf(this, searchElement, fromIndex) || 0 + : $indexOf(this, searchElement, fromIndex); + } + }); + + var $$5 = _export; + var uncurryThis$5 = functionUncurryThis; + var IndexedObject$1 = indexedObject; + var toIndexedObject$1 = toIndexedObject$6; + var arrayMethodIsStrict = arrayMethodIsStrict$2; + + var nativeJoin = uncurryThis$5([].join); + + var ES3_STRINGS = IndexedObject$1 !== Object; + var FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ','); + + // `Array.prototype.join` method + // https://tc39.es/ecma262/#sec-array.prototype.join + $$5({ target: 'Array', proto: true, forced: FORCED }, { + join: function join(separator) { + return nativeJoin(toIndexedObject$1(this), separator === undefined ? ',' : separator); + } + }); + + var DESCRIPTORS$1 = descriptors; + var uncurryThis$4 = functionUncurryThis; + var call$4 = functionCall; + var fails$7 = fails$l; + var objectKeys$1 = objectKeys$3; + var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; + var propertyIsEnumerableModule = objectPropertyIsEnumerable; + var toObject$1 = toObject$5; + var IndexedObject = indexedObject; + + // eslint-disable-next-line es/no-object-assign -- safe + var $assign = Object.assign; + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + var defineProperty = Object.defineProperty; + var concat = uncurryThis$4([].concat); + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + var objectAssign = !$assign || fails$7(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS$1 && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { + enumerable: true, + get: function () { + defineProperty(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol('assign detection'); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] !== 7 || objectKeys$1($assign({}, B)).join('') !== alphabet; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject$1(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys$1(S), getOwnPropertySymbols(S)) : objectKeys$1(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS$1 || call$4(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; + } : $assign; + + var $$4 = _export; + var assign = objectAssign; + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + // eslint-disable-next-line es/no-object-assign -- required for testing + $$4({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign + }); + + var fails$6 = fails$l; + + var correctPrototypeGetter = !fails$6(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; + }); + + var hasOwn = hasOwnProperty_1; + var isCallable$1 = isCallable$e; + var toObject = toObject$5; + var sharedKey = sharedKey$3; + var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter; + + var IE_PROTO = sharedKey('IE_PROTO'); + var $Object = Object; + var ObjectPrototype = $Object.prototype; + + // `Object.getPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.getprototypeof + // eslint-disable-next-line es/no-object-getprototypeof -- safe + var objectGetPrototypeOf$1 = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject(O); + if (hasOwn(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable$1(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; + }; + + var DESCRIPTORS = descriptors; + var fails$5 = fails$l; + var uncurryThis$3 = functionUncurryThis; + var objectGetPrototypeOf = objectGetPrototypeOf$1; + var objectKeys = objectKeys$3; + var toIndexedObject = toIndexedObject$6; + var $propertyIsEnumerable = objectPropertyIsEnumerable.f; + + var propertyIsEnumerable = uncurryThis$3($propertyIsEnumerable); + var push = uncurryThis$3([].push); + + // in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys + // of `null` prototype objects + var IE_BUG = DESCRIPTORS && fails$5(function () { + // eslint-disable-next-line es/no-object-create -- safe + var O = Object.create(null); + O[2] = 2; + return !propertyIsEnumerable(O, 2); + }); + + // `Object.{ entries, values }` methods implementation + var createMethod$1 = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null; + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) { + push(result, TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; + }; + + var objectToArray = { + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + entries: createMethod$1(true), + // `Object.values` method + // https://tc39.es/ecma262/#sec-object.values + values: createMethod$1(false) + }; + + var $$3 = _export; + var $entries = objectToArray.entries; + + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + $$3({ target: 'Object', stat: true }, { + entries: function entries(O) { + return $entries(O); + } + }); + + var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; + var classof$3 = classof$5; + + // `Object.prototype.toString` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.tostring + var objectToString = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$3(this) + ']'; + }; + + var TO_STRING_TAG_SUPPORT = toStringTagSupport; + var defineBuiltIn$1 = defineBuiltIn$3; + var toString$5 = objectToString; + + // `Object.prototype.toString` method + // https://tc39.es/ecma262/#sec-object.prototype.tostring + if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn$1(Object.prototype, 'toString', toString$5, { unsafe: true }); + } + + var classof$2 = classof$5; + + var $String = String; + + var toString$4 = function (argument) { + if (classof$2(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); + }; + + var anObject$2 = anObject$7; + + // `RegExp.prototype.flags` getter implementation + // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags + var regexpFlags$1 = function () { + var that = anObject$2(this); + var result = ''; + if (that.hasIndices) result += 'd'; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.unicodeSets) result += 'v'; + if (that.sticky) result += 'y'; + return result; + }; + + var fails$4 = fails$l; + var global$3 = global$d; + + // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError + var $RegExp$2 = global$3.RegExp; + + var UNSUPPORTED_Y$1 = fails$4(function () { + var re = $RegExp$2('a', 'y'); + re.lastIndex = 2; + return re.exec('abcd') !== null; + }); + + // UC Browser bug + // https://github.com/zloirock/core-js/issues/1008 + var MISSED_STICKY = UNSUPPORTED_Y$1 || fails$4(function () { + return !$RegExp$2('a', 'y').sticky; + }); + + var BROKEN_CARET = UNSUPPORTED_Y$1 || fails$4(function () { + // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 + var re = $RegExp$2('^r', 'gy'); + re.lastIndex = 2; + return re.exec('str') !== null; + }); + + var regexpStickyHelpers = { + BROKEN_CARET: BROKEN_CARET, + MISSED_STICKY: MISSED_STICKY, + UNSUPPORTED_Y: UNSUPPORTED_Y$1 + }; + + var fails$3 = fails$l; + var global$2 = global$d; + + // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError + var $RegExp$1 = global$2.RegExp; + + var regexpUnsupportedDotAll = fails$3(function () { + var re = $RegExp$1('.', 's'); + return !(re.dotAll && re.test('\n') && re.flags === 's'); + }); + + var fails$2 = fails$l; + var global$1 = global$d; + + // babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError + var $RegExp = global$1.RegExp; + + var regexpUnsupportedNcg = fails$2(function () { + var re = $RegExp('(?b)', 'g'); + return re.exec('b').groups.a !== 'b' || + 'b'.replace(re, '$c') !== 'bc'; + }); + + /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ + /* eslint-disable regexp/no-useless-quantifier -- testing */ + var call$3 = functionCall; + var uncurryThis$2 = functionUncurryThis; + var toString$3 = toString$4; + var regexpFlags = regexpFlags$1; + var stickyHelpers = regexpStickyHelpers; + var shared = shared$4; + var create = objectCreate; + var getInternalState = internalState.get; + var UNSUPPORTED_DOT_ALL = regexpUnsupportedDotAll; + var UNSUPPORTED_NCG = regexpUnsupportedNcg; + + var nativeReplace = shared('native-string-replace', String.prototype.replace); + var nativeExec = RegExp.prototype.exec; + var patchedExec = nativeExec; + var charAt = uncurryThis$2(''.charAt); + var indexOf = uncurryThis$2(''.indexOf); + var replace$1 = uncurryThis$2(''.replace); + var stringSlice = uncurryThis$2(''.slice); + + var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/; + var re2 = /b*/g; + call$3(nativeExec, re1, 'a'); + call$3(nativeExec, re2, 'a'); + return re1.lastIndex !== 0 || re2.lastIndex !== 0; + })(); + + var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; + + // nonparticipating capturing group, copied from es5-shim's String#split patch. + var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + + var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; + + if (PATCH) { + patchedExec = function exec(string) { + var re = this; + var state = getInternalState(re); + var str = toString$3(string); + var raw = state.raw; + var result, reCopy, lastIndex, match, i, object, group; + + if (raw) { + raw.lastIndex = re.lastIndex; + result = call$3(patchedExec, raw, str); + re.lastIndex = raw.lastIndex; + return result; + } + + var groups = state.groups; + var sticky = UNSUPPORTED_Y && re.sticky; + var flags = call$3(regexpFlags, re); + var source = re.source; + var charsAdded = 0; + var strCopy = str; + + if (sticky) { + flags = replace$1(flags, 'y', ''); + if (indexOf(flags, 'g') === -1) { + flags += 'g'; + } + + strCopy = stringSlice(str, re.lastIndex); + // Support anchored sticky behavior. + if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\n')) { + source = '(?: ' + source + ')'; + strCopy = ' ' + strCopy; + charsAdded++; + } + // ^(? + rx + ) is needed, in combination with some str slicing, to + // simulate the 'y' flag. + reCopy = new RegExp('^(?:' + source + ')', flags); + } + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + source + '$(?!\\s)', flags); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; + + match = call$3(nativeExec, sticky ? reCopy : re, strCopy); + + if (sticky) { + if (match) { + match.input = stringSlice(match.input, charsAdded); + match[0] = stringSlice(match[0], charsAdded); + match.index = re.lastIndex; + re.lastIndex += match[0].length; + } else re.lastIndex = 0; + } else if (UPDATES_LAST_INDEX_WRONG && match) { + re.lastIndex = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/ + call$3(nativeReplace, match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + if (match && groups) { + match.groups = object = create(null); + for (i = 0; i < groups.length; i++) { + group = groups[i]; + object[group[0]] = match[group[1]]; + } + } + + return match; + }; + } + + var regexpExec$2 = patchedExec; + + var $$2 = _export; + var exec = regexpExec$2; + + // `RegExp.prototype.exec` method + // https://tc39.es/ecma262/#sec-regexp.prototype.exec + $$2({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { + exec: exec + }); + + var isObject = isObject$8; + var classof$1 = classofRaw$2; + var wellKnownSymbol$2 = wellKnownSymbol$a; + + var MATCH$1 = wellKnownSymbol$2('match'); + + // `IsRegExp` abstract operation + // https://tc39.es/ecma262/#sec-isregexp + var isRegexp = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH$1]) !== undefined ? !!isRegExp : classof$1(it) === 'RegExp'); + }; + + var isRegExp = isRegexp; + + var $TypeError$1 = TypeError; + + var notARegexp = function (it) { + if (isRegExp(it)) { + throw new $TypeError$1("The method doesn't accept regular expressions"); + } return it; + }; + + var wellKnownSymbol$1 = wellKnownSymbol$a; + + var MATCH = wellKnownSymbol$1('match'); + + var correctIsRegexpLogic = function (METHOD_NAME) { + var regexp = /./; + try { + '/./'[METHOD_NAME](regexp); + } catch (error1) { + try { + regexp[MATCH] = false; + return '/./'[METHOD_NAME](regexp); + } catch (error2) { /* empty */ } + } return false; + }; + + var $$1 = _export; + var uncurryThis$1 = functionUncurryThis; + var notARegExp = notARegexp; + var requireObjectCoercible$2 = requireObjectCoercible$5; + var toString$2 = toString$4; + var correctIsRegExpLogic = correctIsRegexpLogic; + + var stringIndexOf = uncurryThis$1(''.indexOf); + + // `String.prototype.includes` method + // https://tc39.es/ecma262/#sec-string.prototype.includes + $$1({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, { + includes: function includes(searchString /* , position = 0 */) { + return !!~stringIndexOf( + toString$2(requireObjectCoercible$2(this)), + toString$2(notARegExp(searchString)), + arguments.length > 1 ? arguments[1] : undefined + ); + } + }); + + // TODO: Remove from `core-js@4` since it's moved to entry points + + var call$2 = functionCall; + var defineBuiltIn = defineBuiltIn$3; + var regexpExec$1 = regexpExec$2; + var fails$1 = fails$l; + var wellKnownSymbol = wellKnownSymbol$a; + var createNonEnumerableProperty = createNonEnumerableProperty$3; + + var SPECIES = wellKnownSymbol('species'); + var RegExpPrototype = RegExp.prototype; + + var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) { + var SYMBOL = wellKnownSymbol(KEY); + + var DELEGATES_TO_SYMBOL = !fails$1(function () { + // String methods call symbol-named RegExp methods + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) !== 7; + }); + + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$1(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + + if (KEY === 'split') { + // We can't use real regex here since it causes deoptimization + // and serious performance degradation in V8 + // https://github.com/zloirock/core-js/issues/306 + re = {}; + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + re.constructor[SPECIES] = function () { return re; }; + re.flags = ''; + re[SYMBOL] = /./[SYMBOL]; + } + + re.exec = function () { + execCalled = true; + return null; + }; + + re[SYMBOL](''); + return !execCalled; + }); + + if ( + !DELEGATES_TO_SYMBOL || + !DELEGATES_TO_EXEC || + FORCED + ) { + var nativeRegExpMethod = /./[SYMBOL]; + var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { + var $exec = regexp.exec; + if ($exec === regexpExec$1 || $exec === RegExpPrototype.exec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { done: true, value: call$2(nativeRegExpMethod, regexp, str, arg2) }; + } + return { done: true, value: call$2(nativeMethod, str, regexp, arg2) }; + } + return { done: false }; + }); + + defineBuiltIn(String.prototype, KEY, methods[0]); + defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]); + } + + if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true); + }; + + // `SameValue` abstract operation + // https://tc39.es/ecma262/#sec-samevalue + // eslint-disable-next-line es/no-object-is -- safe + var sameValue$1 = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare -- NaN check + return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y; + }; + + var call$1 = functionCall; + var anObject$1 = anObject$7; + var isCallable = isCallable$e; + var classof = classofRaw$2; + var regexpExec = regexpExec$2; + + var $TypeError = TypeError; + + // `RegExpExec` abstract operation + // https://tc39.es/ecma262/#sec-regexpexec + var regexpExecAbstract = function (R, S) { + var exec = R.exec; + if (isCallable(exec)) { + var result = call$1(exec, R, S); + if (result !== null) anObject$1(result); + return result; + } + if (classof(R) === 'RegExp') return call$1(regexpExec, R, S); + throw new $TypeError('RegExp#exec called on incompatible receiver'); + }; + + var call = functionCall; + var fixRegExpWellKnownSymbolLogic = fixRegexpWellKnownSymbolLogic; + var anObject = anObject$7; + var isNullOrUndefined = isNullOrUndefined$3; + var requireObjectCoercible$1 = requireObjectCoercible$5; + var sameValue = sameValue$1; + var toString$1 = toString$4; + var getMethod = getMethod$2; + var regExpExec = regexpExecAbstract; + + // @@search logic + fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) { + return [ + // `String.prototype.search` method + // https://tc39.es/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = requireObjectCoercible$1(this); + var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH); + return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString$1(O)); + }, + // `RegExp.prototype[@@search]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@search + function (string) { + var rx = anObject(this); + var S = toString$1(string); + var res = maybeCallNative(nativeSearch, rx, S); + + if (res.done) return res.value; + + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regExpExec(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + } + ]; + }); + + // a string of all valid unicode whitespaces + var whitespaces$2 = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + var uncurryThis = functionUncurryThis; + var requireObjectCoercible = requireObjectCoercible$5; + var toString = toString$4; + var whitespaces$1 = whitespaces$2; + + var replace = uncurryThis(''.replace); + var ltrim = RegExp('^[' + whitespaces$1 + ']+'); + var rtrim = RegExp('(^|[^' + whitespaces$1 + '])[' + whitespaces$1 + ']+$'); + + // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation + var createMethod = function (TYPE) { + return function ($this) { + var string = toString(requireObjectCoercible($this)); + if (TYPE & 1) string = replace(string, ltrim, ''); + if (TYPE & 2) string = replace(string, rtrim, '$1'); + return string; + }; + }; + + var stringTrim = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod(3) + }; + + var PROPER_FUNCTION_NAME = functionName.PROPER; + var fails = fails$l; + var whitespaces = whitespaces$2; + + var non = '\u200B\u0085\u180E'; + + // check that a method works with the correct list + // of whitespaces and has a correct name + var stringTrimForced = function (METHOD_NAME) { + return fails(function () { + return !!whitespaces[METHOD_NAME]() + || non[METHOD_NAME]() !== non + || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME); + }); + }; + + var $ = _export; + var $trim = stringTrim.trim; + var forcedStringTrimMethod = stringTrimForced; + + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + $({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { + trim: function trim() { + return $trim(this); + } + }); + /** * @author: aperez * @version: v2.0.0 @@ -8137,7 +27152,7 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er * @update zhixin wen */ - var Utils = $.fn.bootstrapTable.utils; + var Utils = $$b.fn.bootstrapTable.utils; var theme = { bootstrap3: { icons: { @@ -8204,8 +27219,8 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er modal: "\n
\n \n
\n
\n
\n
\n
\n
\n " } } - }[$.fn.bootstrapTable.theme]; - Object.assign($.fn.bootstrapTable.defaults, { + }[$$b.fn.bootstrapTable.theme]; + Object.assign($$b.fn.bootstrapTable.defaults, { advancedSearch: false, idForm: 'advancedSearch', actionForm: '', @@ -8215,13 +27230,13 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er return false; } }); - Object.assign($.fn.bootstrapTable.defaults.icons, { + Object.assign($$b.fn.bootstrapTable.defaults.icons, { advancedSearchIcon: theme.icons.advancedSearchIcon }); - Object.assign($.fn.bootstrapTable.events, { + Object.assign($$b.fn.bootstrapTable.events, { 'column-advanced-search.bs.table': 'onColumnAdvancedSearch' }); - Object.assign($.fn.bootstrapTable.locales, { + Object.assign($$b.fn.bootstrapTable.locales, { formatAdvancedSearch: function formatAdvancedSearch() { return 'Advanced search'; }, @@ -8229,8 +27244,8 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er return 'Close'; } }); - Object.assign($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales); - $.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) { + Object.assign($$b.fn.bootstrapTable.defaults, $$b.fn.bootstrapTable.locales); + $$b.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) { function _class() { _classCallCheck(this, _class); return _callSuper(this, _class, arguments); @@ -8262,10 +27277,10 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er key: "showAdvancedSearch", value: function showAdvancedSearch() { var _this = this; - this.$toolbarModal = $("#avdSearchModal_".concat(this.options.idTable)); + this.$toolbarModal = $$b("#avdSearchModal_".concat(this.options.idTable)); if (this.$toolbarModal.length <= 0) { - $('body').append(Utils.sprintf(theme.html.modal, this.options.idTable, this.options.buttonsClass)); - this.$toolbarModal = $("#avdSearchModal_".concat(this.options.idTable)); + $$b('body').append(Utils.sprintf(theme.html.modal, this.options.idTable, this.options.buttonsClass)); + this.$toolbarModal = $$b("#avdSearchModal_".concat(this.options.idTable)); this.$toolbarModal.find('.toolbar-modal-close').off('click').on('click', function () { return _this.hideToolbarModal(); }); @@ -8286,7 +27301,7 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er }, { key: "showToolbarModal", value: function showToolbarModal() { - var theme = $.fn.bootstrapTable.theme; + var theme = $$b.fn.bootstrapTable.theme; if (['bootstrap3', 'bootstrap4'].includes(theme)) { this.$toolbarModal.modal(); } else if (theme === 'bootstrap5') { @@ -8310,13 +27325,13 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er }, { key: "hideToolbarModal", value: function hideToolbarModal() { - var theme = $.fn.bootstrapTable.theme; + var theme = $$b.fn.bootstrapTable.theme; if (['bootstrap3', 'bootstrap4'].includes(theme)) { this.$toolbarModal.modal('hide'); } else if (theme === 'bootstrap5') { this.toolbarModal.hide(); } else if (theme === 'bulma') { - $('html').toggleClass('is-clipped'); + $$b('html').toggleClass('is-clipped'); this.$toolbarModal.toggleClass('is-active'); } else if (theme === 'foundation') { this.toolbarModal.close(); @@ -8341,7 +27356,7 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er for (_iterator.s(); !(_step = _iterator.n()).done;) { var column = _step.value; if (!column.checkbox && column.visible && column.searchable) { - var title = $('
').html(column.title).text().trim(); + var title = $$b('
').html(column.title).text().trim(); var value = this.filterColumnsPartial[column.field] || ''; html.push("\n
\n \n
\n \n
\n
\n ")); } @@ -8383,8 +27398,8 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er }, { key: "onColumnAdvancedSearch", value: function onColumnAdvancedSearch(e) { - var text = $(e.currentTarget).val().trim(); - var field = $(e.currentTarget).attr('name'); + var text = $$b(e.currentTarget).val().trim(); + var field = $$b(e.currentTarget).attr('name'); if (text) { this.filterColumnsPartial[field] = text; } else { @@ -8398,6 +27413,6 @@ if(xr(e,"index.xml"))throw new Error("Unsupported NUMBERS 09 file");throw new Er } } }]); - }($.BootstrapTable); + }($$b.BootstrapTable); })); diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 3ccb348cb..0ed3ec857 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -19,7 +19,7 @@ "/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=f677207c6cf9678eb539abecb408c374", "/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=0640e45bad692dcf62873c6e85904899", "/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=76482123f6c70e866d6b971ba91de7bb", - "/css/dist/all.css": "/css/dist/all.css?id=2e2e514b7e7fd63a0c6a882749ef2b13", + "/css/dist/all.css": "/css/dist/all.css?id=efcffe03989e373e15ac02f526594126", "/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7", "/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced1cf5f13147f7", "/js/select2/i18n/af.js": "/js/select2/i18n/af.js?id=4f6fcd73488ce79fae1b7a90aceaecde", @@ -90,8 +90,8 @@ "/css/webfonts/fa-solid-900.woff2": "/css/webfonts/fa-solid-900.woff2?id=541cafc702f56f57de95f3d1f792f428", "/css/webfonts/fa-v4compatibility.ttf": "/css/webfonts/fa-v4compatibility.ttf?id=51ade19e1b10d7a0031b18568a2b01d5", "/css/webfonts/fa-v4compatibility.woff2": "/css/webfonts/fa-v4compatibility.woff2?id=1cc408d68a27c3757b4460bbc542433e", - "/js/dist/bootstrap-table-locale-all.min.js": "/js/dist/bootstrap-table-locale-all.min.js?id=27eb00f47f9bae70cd630d184b7969f1", - "/js/dist/bootstrap-table-en-US.min.js": "/js/dist/bootstrap-table-en-US.min.js?id=57bdb4770b2924f5efeda100caf3c9b7", + "/js/dist/bootstrap-table-locale-all.min.js": "/js/dist/bootstrap-table-locale-all.min.js?id=467938d6a524df8e62c4fb8ae5e7f3f1", + "/js/dist/bootstrap-table-en-US.min.js": "/js/dist/bootstrap-table-en-US.min.js?id=d4ef3db8dc9f809258218c187de5ee2a", "/css/dist/skins/_all-skins.min.css": "/css/dist/skins/_all-skins.min.css?id=f4397c717b99fce41a633ca6edd5d1f4", "/css/dist/skins/skin-black-dark.min.css": "/css/dist/skins/skin-black-dark.min.css?id=f0b08873a06bb54daeee176a9459f4a9", "/css/dist/skins/skin-black.min.css": "/css/dist/skins/skin-black.min.css?id=76482123f6c70e866d6b971ba91de7bb", @@ -108,8 +108,8 @@ "/css/dist/skins/skin-red.min.css": "/css/dist/skins/skin-red.min.css?id=44bf834f2110504a793dadec132a5898", "/css/dist/skins/skin-yellow-dark.min.css": "/css/dist/skins/skin-yellow-dark.min.css?id=393aaa7b368b0670fc42434c8cca7dc7", "/css/dist/skins/skin-yellow.min.css": "/css/dist/skins/skin-yellow.min.css?id=7b315b9612b8fde8f9c5b0ddb6bba690", - "/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=8abbb6aea625ec64cd7ebdad77ebf6e5", + "/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=393d720a0f9aba560094fbc8d3b0c0f0", "/js/build/vendor.js": "/js/build/vendor.js?id=c1c24b883f48dc3d16b817aed0b457cc", - "/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=859e11e4e6b05c84e4b7302de29bac5e", + "/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=6660df122e24940d42d03c06775fec7b", "/js/dist/all.js": "/js/dist/all.js?id=05654cea82a7a1b78cb20e449d004268" } From 74136761dfdbeb9486f07d8ef7658a47402f5b18 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 20 Aug 2024 11:45:13 +0100 Subject: [PATCH 134/224] Added TrimStrings middleware Signed-off-by: snipe --- app/Http/Kernel.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 79027547b..d89f829d4 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -21,6 +21,7 @@ class Kernel extends HttpKernel \App\Http\Middleware\CheckForSetup::class, \App\Http\Middleware\CheckForDebug::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, + \App\Http\Middleware\TrimStrings::class, \App\Http\Middleware\SecurityHeaders::class, \App\Http\Middleware\PreventBackHistory::class, \Illuminate\Http\Middleware\HandleCors::class, From a8cd1027f3cc1716b76461f9db7dbc17b8a130b4 Mon Sep 17 00:00:00 2001 From: spencerrlongg Date: Tue, 20 Aug 2024 11:40:15 -0500 Subject: [PATCH 135/224] rm commented code --- app/Http/Controllers/Users/UsersController.php | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index e609727c0..3da0c5a3a 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -234,12 +234,7 @@ class UsersController extends Controller $this->authorize('update', $user); - //see if i can get this working at request level - //if ($request->has('company_id') && $user->allAssignedCount() > 0 && Setting::getSettings()->full_multiple_companies_support) { - // return back()->with('error', trans('admin/users/message.multi_company_items_assigned')); - //} - - // Figure out of this user was an admin before this edit + // Figure out of this user was an admin before this edit $orig_permissions_array = $user->decodePermissions(); $orig_superuser = '0'; if (is_array($orig_permissions_array)) { From 6c450d1338225ae459abaf23d5662d40d03ca512 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 20 Aug 2024 18:18:17 +0100 Subject: [PATCH 136/224] Updated languages Signed-off-by: snipe --- resources/lang/aa-ER/admin/hardware/message.php | 1 + resources/lang/aa-ER/admin/kits/general.php | 1 + .../lang/aa-ER/admin/locations/message.php | 6 ++++++ resources/lang/aa-ER/admin/models/message.php | 2 +- resources/lang/aa-ER/admin/settings/general.php | 2 ++ resources/lang/aa-ER/admin/settings/message.php | 2 +- resources/lang/aa-ER/general.php | 13 ++++++++----- resources/lang/af-ZA/admin/hardware/message.php | 1 + resources/lang/af-ZA/admin/kits/general.php | 1 + .../lang/af-ZA/admin/locations/message.php | 6 ++++++ resources/lang/af-ZA/admin/models/message.php | 2 +- resources/lang/af-ZA/admin/settings/general.php | 2 ++ resources/lang/af-ZA/admin/settings/message.php | 2 +- resources/lang/af-ZA/general.php | 13 ++++++++----- resources/lang/am-ET/admin/hardware/message.php | 1 + resources/lang/am-ET/admin/kits/general.php | 1 + .../lang/am-ET/admin/locations/message.php | 6 ++++++ resources/lang/am-ET/admin/models/message.php | 2 +- resources/lang/am-ET/admin/settings/general.php | 2 ++ resources/lang/am-ET/admin/settings/message.php | 2 +- resources/lang/am-ET/general.php | 13 ++++++++----- resources/lang/ar-SA/admin/hardware/message.php | 1 + resources/lang/ar-SA/admin/kits/general.php | 1 + .../lang/ar-SA/admin/locations/message.php | 6 ++++++ resources/lang/ar-SA/admin/models/message.php | 2 +- resources/lang/ar-SA/admin/settings/general.php | 2 ++ resources/lang/ar-SA/admin/settings/message.php | 2 +- resources/lang/ar-SA/general.php | 13 ++++++++----- resources/lang/bg-BG/admin/hardware/message.php | 1 + resources/lang/bg-BG/admin/kits/general.php | 1 + .../lang/bg-BG/admin/locations/message.php | 6 ++++++ resources/lang/bg-BG/admin/models/message.php | 2 +- resources/lang/bg-BG/admin/settings/general.php | 2 ++ resources/lang/bg-BG/admin/settings/message.php | 2 +- resources/lang/bg-BG/general.php | 13 ++++++++----- resources/lang/ca-ES/admin/hardware/message.php | 1 + resources/lang/ca-ES/admin/kits/general.php | 1 + .../lang/ca-ES/admin/locations/message.php | 6 ++++++ resources/lang/ca-ES/admin/models/message.php | 2 +- resources/lang/ca-ES/admin/settings/general.php | 2 ++ resources/lang/ca-ES/admin/settings/message.php | 2 +- resources/lang/ca-ES/general.php | 13 ++++++++----- .../lang/chr-US/admin/hardware/message.php | 1 + resources/lang/chr-US/admin/kits/general.php | 1 + .../lang/chr-US/admin/locations/message.php | 6 ++++++ resources/lang/chr-US/admin/models/message.php | 2 +- .../lang/chr-US/admin/settings/general.php | 2 ++ .../lang/chr-US/admin/settings/message.php | 2 +- resources/lang/chr-US/general.php | 13 ++++++++----- resources/lang/cs-CZ/admin/hardware/message.php | 1 + resources/lang/cs-CZ/admin/kits/general.php | 1 + .../lang/cs-CZ/admin/locations/message.php | 6 ++++++ resources/lang/cs-CZ/admin/models/message.php | 2 +- resources/lang/cs-CZ/admin/settings/general.php | 2 ++ resources/lang/cs-CZ/admin/settings/message.php | 2 +- resources/lang/cs-CZ/general.php | 13 ++++++++----- resources/lang/cy-GB/admin/hardware/message.php | 1 + resources/lang/cy-GB/admin/kits/general.php | 1 + .../lang/cy-GB/admin/locations/message.php | 6 ++++++ resources/lang/cy-GB/admin/models/message.php | 2 +- resources/lang/cy-GB/admin/settings/general.php | 2 ++ resources/lang/cy-GB/admin/settings/message.php | 2 +- resources/lang/cy-GB/general.php | 13 ++++++++----- resources/lang/da-DK/admin/hardware/message.php | 1 + resources/lang/da-DK/admin/kits/general.php | 1 + .../lang/da-DK/admin/locations/message.php | 6 ++++++ resources/lang/da-DK/admin/models/message.php | 2 +- resources/lang/da-DK/admin/settings/general.php | 2 ++ resources/lang/da-DK/admin/settings/message.php | 2 +- resources/lang/da-DK/general.php | 13 ++++++++----- resources/lang/de-DE/account/general.php | 2 +- resources/lang/de-DE/admin/hardware/message.php | 1 + resources/lang/de-DE/admin/kits/general.php | 1 + .../lang/de-DE/admin/locations/message.php | 8 +++++++- resources/lang/de-DE/admin/settings/general.php | 2 ++ resources/lang/de-DE/general.php | 11 +++++++---- resources/lang/de-if/account/general.php | 2 +- resources/lang/de-if/admin/hardware/message.php | 1 + resources/lang/de-if/admin/kits/general.php | 1 + .../lang/de-if/admin/locations/message.php | 8 +++++++- resources/lang/de-if/admin/models/message.php | 2 +- resources/lang/de-if/admin/settings/general.php | 2 ++ resources/lang/de-if/admin/settings/message.php | 2 +- resources/lang/de-if/general.php | 11 +++++++---- resources/lang/el-GR/admin/hardware/message.php | 1 + resources/lang/el-GR/admin/kits/general.php | 1 + .../lang/el-GR/admin/locations/message.php | 6 ++++++ resources/lang/el-GR/admin/models/message.php | 2 +- resources/lang/el-GR/admin/settings/general.php | 2 ++ resources/lang/el-GR/admin/settings/message.php | 2 +- resources/lang/el-GR/general.php | 13 ++++++++----- resources/lang/en-GB/admin/hardware/message.php | 1 + resources/lang/en-GB/admin/kits/general.php | 1 + .../lang/en-GB/admin/locations/message.php | 6 ++++++ resources/lang/en-GB/admin/models/message.php | 2 +- resources/lang/en-GB/admin/settings/general.php | 2 ++ resources/lang/en-GB/general.php | 5 ++++- resources/lang/en-ID/admin/hardware/message.php | 1 + resources/lang/en-ID/admin/kits/general.php | 1 + .../lang/en-ID/admin/locations/message.php | 6 ++++++ resources/lang/en-ID/admin/settings/general.php | 2 ++ resources/lang/en-ID/general.php | 5 ++++- resources/lang/es-CO/account/general.php | 2 +- resources/lang/es-CO/admin/hardware/message.php | 1 + resources/lang/es-CO/admin/kits/general.php | 1 + .../lang/es-CO/admin/locations/message.php | 8 +++++++- resources/lang/es-CO/admin/models/message.php | 2 +- resources/lang/es-CO/admin/settings/general.php | 2 ++ resources/lang/es-CO/admin/settings/message.php | 2 +- resources/lang/es-CO/general.php | 15 +++++++++------ resources/lang/es-ES/account/general.php | 2 +- resources/lang/es-ES/admin/hardware/message.php | 1 + resources/lang/es-ES/admin/kits/general.php | 1 + .../lang/es-ES/admin/locations/message.php | 8 +++++++- resources/lang/es-ES/admin/models/message.php | 2 +- resources/lang/es-ES/admin/settings/general.php | 2 ++ resources/lang/es-ES/admin/settings/message.php | 2 +- resources/lang/es-ES/general.php | 17 ++++++++++------- resources/lang/es-MX/account/general.php | 2 +- resources/lang/es-MX/admin/hardware/message.php | 1 + resources/lang/es-MX/admin/kits/general.php | 1 + .../lang/es-MX/admin/locations/message.php | 8 +++++++- resources/lang/es-MX/admin/models/message.php | 2 +- resources/lang/es-MX/admin/settings/general.php | 2 ++ resources/lang/es-MX/admin/settings/message.php | 2 +- resources/lang/es-MX/general.php | 17 ++++++++++------- resources/lang/es-VE/account/general.php | 2 +- resources/lang/es-VE/admin/hardware/message.php | 1 + resources/lang/es-VE/admin/kits/general.php | 1 + .../lang/es-VE/admin/locations/message.php | 8 +++++++- resources/lang/es-VE/admin/models/message.php | 2 +- resources/lang/es-VE/admin/settings/general.php | 2 ++ resources/lang/es-VE/admin/settings/message.php | 2 +- resources/lang/es-VE/general.php | 15 +++++++++------ resources/lang/et-EE/admin/hardware/message.php | 1 + resources/lang/et-EE/admin/kits/general.php | 1 + .../lang/et-EE/admin/locations/message.php | 6 ++++++ resources/lang/et-EE/admin/models/message.php | 2 +- resources/lang/et-EE/admin/settings/general.php | 2 ++ resources/lang/et-EE/admin/settings/message.php | 2 +- resources/lang/et-EE/general.php | 13 ++++++++----- resources/lang/fa-IR/admin/hardware/message.php | 1 + resources/lang/fa-IR/admin/kits/general.php | 1 + .../lang/fa-IR/admin/locations/message.php | 6 ++++++ resources/lang/fa-IR/admin/models/message.php | 2 +- resources/lang/fa-IR/admin/settings/general.php | 2 ++ resources/lang/fa-IR/admin/settings/message.php | 2 +- resources/lang/fa-IR/general.php | 13 ++++++++----- resources/lang/fi-FI/admin/hardware/message.php | 1 + resources/lang/fi-FI/admin/kits/general.php | 1 + .../lang/fi-FI/admin/locations/message.php | 6 ++++++ resources/lang/fi-FI/admin/models/message.php | 2 +- resources/lang/fi-FI/admin/settings/general.php | 2 ++ resources/lang/fi-FI/admin/settings/message.php | 2 +- resources/lang/fi-FI/general.php | 13 ++++++++----- .../lang/fil-PH/admin/hardware/message.php | 1 + resources/lang/fil-PH/admin/kits/general.php | 1 + .../lang/fil-PH/admin/locations/message.php | 6 ++++++ resources/lang/fil-PH/admin/models/message.php | 2 +- .../lang/fil-PH/admin/settings/general.php | 2 ++ .../lang/fil-PH/admin/settings/message.php | 2 +- resources/lang/fil-PH/general.php | 13 ++++++++----- resources/lang/fr-FR/admin/hardware/message.php | 1 + resources/lang/fr-FR/admin/kits/general.php | 1 + .../lang/fr-FR/admin/locations/message.php | 6 ++++++ resources/lang/fr-FR/admin/models/message.php | 2 +- resources/lang/fr-FR/admin/settings/general.php | 2 ++ resources/lang/fr-FR/admin/settings/message.php | 2 +- resources/lang/fr-FR/general.php | 13 ++++++++----- resources/lang/fr-FR/validation.php | 2 +- resources/lang/ga-IE/admin/hardware/message.php | 1 + resources/lang/ga-IE/admin/kits/general.php | 1 + .../lang/ga-IE/admin/locations/message.php | 6 ++++++ resources/lang/ga-IE/admin/models/message.php | 2 +- resources/lang/ga-IE/admin/settings/general.php | 2 ++ resources/lang/ga-IE/admin/settings/message.php | 2 +- resources/lang/ga-IE/general.php | 13 ++++++++----- resources/lang/he-IL/admin/hardware/message.php | 1 + resources/lang/he-IL/admin/kits/general.php | 1 + .../lang/he-IL/admin/locations/message.php | 6 ++++++ resources/lang/he-IL/admin/models/message.php | 2 +- resources/lang/he-IL/admin/settings/general.php | 2 ++ resources/lang/he-IL/admin/settings/message.php | 2 +- resources/lang/he-IL/general.php | 13 ++++++++----- resources/lang/hr-HR/admin/hardware/message.php | 1 + resources/lang/hr-HR/admin/kits/general.php | 1 + .../lang/hr-HR/admin/locations/message.php | 6 ++++++ resources/lang/hr-HR/admin/models/message.php | 2 +- resources/lang/hr-HR/admin/settings/general.php | 2 ++ resources/lang/hr-HR/admin/settings/message.php | 2 +- resources/lang/hr-HR/general.php | 13 ++++++++----- resources/lang/hu-HU/admin/hardware/message.php | 1 + resources/lang/hu-HU/admin/kits/general.php | 1 + .../lang/hu-HU/admin/locations/message.php | 6 ++++++ resources/lang/hu-HU/admin/models/message.php | 2 +- resources/lang/hu-HU/admin/settings/general.php | 2 ++ resources/lang/hu-HU/admin/settings/message.php | 2 +- resources/lang/hu-HU/general.php | 13 ++++++++----- resources/lang/id-ID/admin/hardware/message.php | 1 + resources/lang/id-ID/admin/kits/general.php | 1 + .../lang/id-ID/admin/locations/message.php | 6 ++++++ resources/lang/id-ID/admin/models/message.php | 2 +- resources/lang/id-ID/admin/settings/general.php | 2 ++ resources/lang/id-ID/admin/settings/message.php | 2 +- resources/lang/id-ID/general.php | 13 ++++++++----- resources/lang/is-IS/admin/hardware/message.php | 1 + resources/lang/is-IS/admin/kits/general.php | 1 + .../lang/is-IS/admin/locations/message.php | 6 ++++++ resources/lang/is-IS/admin/models/message.php | 2 +- resources/lang/is-IS/admin/settings/general.php | 2 ++ resources/lang/is-IS/admin/settings/message.php | 2 +- resources/lang/is-IS/general.php | 13 ++++++++----- resources/lang/it-IT/admin/hardware/message.php | 1 + resources/lang/it-IT/admin/kits/general.php | 1 + .../lang/it-IT/admin/locations/message.php | 6 ++++++ resources/lang/it-IT/admin/settings/general.php | 2 ++ resources/lang/it-IT/admin/settings/message.php | 2 +- resources/lang/it-IT/general.php | 13 ++++++++----- resources/lang/it-IT/validation.php | 2 +- resources/lang/iu-NU/admin/hardware/message.php | 1 + resources/lang/iu-NU/admin/kits/general.php | 1 + .../lang/iu-NU/admin/locations/message.php | 6 ++++++ resources/lang/iu-NU/admin/models/message.php | 2 +- resources/lang/iu-NU/admin/settings/general.php | 2 ++ resources/lang/iu-NU/admin/settings/message.php | 2 +- resources/lang/iu-NU/general.php | 13 ++++++++----- resources/lang/ja-JP/admin/hardware/message.php | 1 + resources/lang/ja-JP/admin/kits/general.php | 1 + .../lang/ja-JP/admin/locations/message.php | 8 +++++++- resources/lang/ja-JP/admin/models/message.php | 2 +- resources/lang/ja-JP/admin/settings/general.php | 2 ++ resources/lang/ja-JP/admin/settings/message.php | 2 +- resources/lang/ja-JP/general.php | 15 +++++++++------ resources/lang/km-KH/admin/hardware/message.php | 1 + resources/lang/km-KH/admin/kits/general.php | 1 + .../lang/km-KH/admin/locations/message.php | 6 ++++++ resources/lang/km-KH/admin/models/message.php | 2 +- resources/lang/km-KH/admin/settings/general.php | 2 ++ resources/lang/km-KH/admin/settings/message.php | 2 +- resources/lang/km-KH/general.php | 13 ++++++++----- resources/lang/ko-KR/admin/hardware/message.php | 1 + resources/lang/ko-KR/admin/kits/general.php | 1 + .../lang/ko-KR/admin/locations/message.php | 6 ++++++ resources/lang/ko-KR/admin/models/message.php | 2 +- resources/lang/ko-KR/admin/settings/general.php | 2 ++ resources/lang/ko-KR/admin/settings/message.php | 2 +- resources/lang/ko-KR/button.php | 2 +- resources/lang/ko-KR/general.php | 13 ++++++++----- resources/lang/lt-LT/account/general.php | 2 +- resources/lang/lt-LT/admin/hardware/message.php | 1 + resources/lang/lt-LT/admin/kits/general.php | 1 + .../lang/lt-LT/admin/locations/message.php | 6 ++++++ resources/lang/lt-LT/admin/settings/general.php | 2 ++ resources/lang/lt-LT/general.php | 11 +++++++---- .../lv-LV/admin/asset_maintenances/form.php | 2 +- resources/lang/lv-LV/admin/hardware/message.php | 1 + resources/lang/lv-LV/admin/hardware/table.php | 4 ++-- resources/lang/lv-LV/admin/kits/general.php | 1 + resources/lang/lv-LV/admin/labels/table.php | 2 +- .../lang/lv-LV/admin/locations/message.php | 6 ++++++ resources/lang/lv-LV/admin/locations/table.php | 2 +- resources/lang/lv-LV/admin/models/message.php | 2 +- resources/lang/lv-LV/admin/settings/general.php | 2 ++ resources/lang/lv-LV/admin/settings/message.php | 2 +- resources/lang/lv-LV/general.php | 13 ++++++++----- resources/lang/mi-NZ/admin/hardware/message.php | 1 + resources/lang/mi-NZ/admin/kits/general.php | 1 + .../lang/mi-NZ/admin/locations/message.php | 6 ++++++ resources/lang/mi-NZ/admin/models/message.php | 2 +- resources/lang/mi-NZ/admin/settings/general.php | 2 ++ resources/lang/mi-NZ/admin/settings/message.php | 2 +- resources/lang/mi-NZ/general.php | 13 ++++++++----- resources/lang/mk-MK/admin/hardware/message.php | 1 + resources/lang/mk-MK/admin/kits/general.php | 1 + .../lang/mk-MK/admin/locations/message.php | 6 ++++++ resources/lang/mk-MK/admin/models/message.php | 2 +- resources/lang/mk-MK/admin/settings/general.php | 2 ++ resources/lang/mk-MK/admin/settings/message.php | 2 +- resources/lang/mk-MK/general.php | 13 ++++++++----- resources/lang/ml-IN/admin/hardware/message.php | 1 + resources/lang/ml-IN/admin/kits/general.php | 1 + .../lang/ml-IN/admin/locations/message.php | 6 ++++++ resources/lang/ml-IN/admin/models/message.php | 2 +- resources/lang/ml-IN/admin/settings/general.php | 2 ++ resources/lang/ml-IN/admin/settings/message.php | 2 +- resources/lang/ml-IN/general.php | 13 ++++++++----- resources/lang/mn-MN/admin/hardware/message.php | 1 + resources/lang/mn-MN/admin/kits/general.php | 1 + .../lang/mn-MN/admin/locations/message.php | 6 ++++++ resources/lang/mn-MN/admin/models/message.php | 2 +- resources/lang/mn-MN/admin/settings/general.php | 2 ++ resources/lang/mn-MN/admin/settings/message.php | 2 +- resources/lang/mn-MN/general.php | 13 ++++++++----- resources/lang/ms-MY/admin/hardware/message.php | 1 + resources/lang/ms-MY/admin/kits/general.php | 1 + .../lang/ms-MY/admin/locations/message.php | 6 ++++++ resources/lang/ms-MY/admin/models/message.php | 2 +- resources/lang/ms-MY/admin/settings/general.php | 2 ++ resources/lang/ms-MY/admin/settings/message.php | 2 +- resources/lang/ms-MY/general.php | 13 ++++++++----- resources/lang/nb-NO/admin/hardware/message.php | 1 + resources/lang/nb-NO/admin/hardware/table.php | 2 +- resources/lang/nb-NO/admin/kits/general.php | 1 + .../lang/nb-NO/admin/locations/message.php | 6 ++++++ resources/lang/nb-NO/admin/models/message.php | 2 +- resources/lang/nb-NO/admin/settings/general.php | 2 ++ resources/lang/nb-NO/admin/settings/message.php | 2 +- resources/lang/nb-NO/general.php | 13 ++++++++----- resources/lang/nl-NL/admin/hardware/message.php | 1 + resources/lang/nl-NL/admin/kits/general.php | 1 + .../lang/nl-NL/admin/locations/message.php | 6 ++++++ resources/lang/nl-NL/admin/models/message.php | 2 +- resources/lang/nl-NL/admin/settings/general.php | 2 ++ resources/lang/nl-NL/admin/settings/message.php | 2 +- resources/lang/nl-NL/general.php | 13 ++++++++----- resources/lang/nn-NO/admin/hardware/message.php | 1 + resources/lang/nn-NO/admin/kits/general.php | 1 + .../lang/nn-NO/admin/locations/message.php | 6 ++++++ resources/lang/nn-NO/admin/models/message.php | 2 +- resources/lang/nn-NO/admin/settings/general.php | 2 ++ resources/lang/nn-NO/admin/settings/message.php | 2 +- resources/lang/nn-NO/general.php | 13 ++++++++----- resources/lang/no-NO/admin/hardware/message.php | 1 + resources/lang/no-NO/admin/kits/general.php | 1 + .../lang/no-NO/admin/locations/message.php | 6 ++++++ resources/lang/no-NO/admin/models/message.php | 2 +- resources/lang/no-NO/admin/settings/general.php | 2 ++ resources/lang/no-NO/admin/settings/message.php | 2 +- resources/lang/no-NO/general.php | 13 ++++++++----- resources/lang/pl-PL/admin/hardware/message.php | 1 + resources/lang/pl-PL/admin/kits/general.php | 1 + .../lang/pl-PL/admin/locations/message.php | 6 ++++++ resources/lang/pl-PL/admin/settings/general.php | 2 ++ resources/lang/pl-PL/admin/settings/message.php | 2 +- resources/lang/pl-PL/general.php | 13 ++++++++----- resources/lang/pt-BR/admin/hardware/message.php | 1 + resources/lang/pt-BR/admin/kits/general.php | 1 + .../lang/pt-BR/admin/locations/message.php | 6 ++++++ resources/lang/pt-BR/admin/models/message.php | 2 +- resources/lang/pt-BR/admin/settings/general.php | 2 ++ resources/lang/pt-BR/admin/settings/message.php | 2 +- resources/lang/pt-BR/general.php | 13 ++++++++----- resources/lang/pt-PT/admin/hardware/message.php | 1 + resources/lang/pt-PT/admin/kits/general.php | 1 + .../lang/pt-PT/admin/locations/message.php | 6 ++++++ resources/lang/pt-PT/admin/models/message.php | 2 +- resources/lang/pt-PT/admin/settings/general.php | 2 ++ resources/lang/pt-PT/admin/settings/message.php | 2 +- resources/lang/pt-PT/general.php | 13 ++++++++----- resources/lang/ro-RO/admin/hardware/message.php | 1 + resources/lang/ro-RO/admin/kits/general.php | 1 + .../lang/ro-RO/admin/locations/message.php | 6 ++++++ resources/lang/ro-RO/admin/models/message.php | 2 +- resources/lang/ro-RO/admin/settings/general.php | 2 ++ resources/lang/ro-RO/admin/settings/message.php | 2 +- resources/lang/ro-RO/general.php | 13 ++++++++----- resources/lang/ru-RU/admin/hardware/message.php | 1 + resources/lang/ru-RU/admin/kits/general.php | 1 + .../lang/ru-RU/admin/locations/message.php | 6 ++++++ resources/lang/ru-RU/admin/models/message.php | 2 +- resources/lang/ru-RU/admin/settings/general.php | 2 ++ resources/lang/ru-RU/admin/settings/message.php | 2 +- resources/lang/ru-RU/general.php | 13 ++++++++----- resources/lang/si-LK/admin/hardware/message.php | 1 + resources/lang/si-LK/admin/kits/general.php | 1 + .../lang/si-LK/admin/locations/message.php | 6 ++++++ resources/lang/si-LK/admin/models/message.php | 2 +- resources/lang/si-LK/admin/settings/general.php | 2 ++ resources/lang/si-LK/admin/settings/message.php | 2 +- resources/lang/si-LK/general.php | 13 ++++++++----- resources/lang/sk-SK/admin/hardware/message.php | 1 + resources/lang/sk-SK/admin/kits/general.php | 1 + .../lang/sk-SK/admin/locations/message.php | 6 ++++++ resources/lang/sk-SK/admin/models/message.php | 2 +- resources/lang/sk-SK/admin/settings/general.php | 2 ++ resources/lang/sk-SK/admin/settings/message.php | 2 +- resources/lang/sk-SK/general.php | 13 ++++++++----- resources/lang/sl-SI/admin/hardware/message.php | 1 + resources/lang/sl-SI/admin/kits/general.php | 1 + .../lang/sl-SI/admin/locations/message.php | 6 ++++++ resources/lang/sl-SI/admin/models/message.php | 2 +- resources/lang/sl-SI/admin/settings/general.php | 2 ++ resources/lang/sl-SI/admin/settings/message.php | 2 +- resources/lang/sl-SI/general.php | 13 ++++++++----- resources/lang/so-SO/admin/hardware/message.php | 1 + resources/lang/so-SO/admin/kits/general.php | 1 + .../lang/so-SO/admin/locations/message.php | 6 ++++++ resources/lang/so-SO/admin/models/message.php | 2 +- resources/lang/so-SO/admin/settings/general.php | 2 ++ resources/lang/so-SO/admin/settings/message.php | 2 +- resources/lang/so-SO/general.php | 13 ++++++++----- resources/lang/sq-AL/admin/hardware/message.php | 1 + resources/lang/sq-AL/admin/kits/general.php | 1 + .../lang/sq-AL/admin/locations/message.php | 6 ++++++ resources/lang/sq-AL/admin/models/message.php | 2 +- resources/lang/sq-AL/admin/settings/general.php | 2 ++ resources/lang/sq-AL/admin/settings/message.php | 2 +- resources/lang/sq-AL/general.php | 13 ++++++++----- resources/lang/sr-CS/account/general.php | 2 +- resources/lang/sr-CS/admin/hardware/message.php | 1 + resources/lang/sr-CS/admin/kits/general.php | 1 + .../lang/sr-CS/admin/locations/message.php | 8 +++++++- resources/lang/sr-CS/admin/models/message.php | 2 +- resources/lang/sr-CS/admin/settings/general.php | 2 ++ resources/lang/sr-CS/admin/settings/message.php | 2 +- resources/lang/sr-CS/general.php | 13 ++++++++----- resources/lang/sv-SE/admin/hardware/message.php | 1 + resources/lang/sv-SE/admin/kits/general.php | 1 + .../lang/sv-SE/admin/locations/message.php | 6 ++++++ resources/lang/sv-SE/admin/models/message.php | 2 +- resources/lang/sv-SE/admin/settings/general.php | 2 ++ resources/lang/sv-SE/admin/settings/message.php | 2 +- resources/lang/sv-SE/general.php | 13 ++++++++----- resources/lang/ta-IN/admin/hardware/message.php | 1 + resources/lang/ta-IN/admin/kits/general.php | 1 + .../lang/ta-IN/admin/locations/message.php | 6 ++++++ resources/lang/ta-IN/admin/models/message.php | 2 +- resources/lang/ta-IN/admin/settings/general.php | 2 ++ resources/lang/ta-IN/admin/settings/message.php | 2 +- resources/lang/ta-IN/general.php | 13 ++++++++----- resources/lang/th-TH/admin/hardware/message.php | 1 + resources/lang/th-TH/admin/kits/general.php | 1 + .../lang/th-TH/admin/locations/message.php | 6 ++++++ resources/lang/th-TH/admin/models/message.php | 2 +- resources/lang/th-TH/admin/settings/general.php | 2 ++ resources/lang/th-TH/admin/settings/message.php | 2 +- resources/lang/th-TH/general.php | 13 ++++++++----- resources/lang/tl-PH/admin/hardware/message.php | 1 + resources/lang/tl-PH/admin/kits/general.php | 1 + .../lang/tl-PH/admin/locations/message.php | 6 ++++++ resources/lang/tl-PH/admin/models/message.php | 2 +- resources/lang/tl-PH/admin/settings/general.php | 2 ++ resources/lang/tl-PH/admin/settings/message.php | 2 +- resources/lang/tl-PH/general.php | 13 ++++++++----- resources/lang/tr-TR/admin/hardware/message.php | 1 + resources/lang/tr-TR/admin/kits/general.php | 1 + .../lang/tr-TR/admin/locations/message.php | 6 ++++++ resources/lang/tr-TR/admin/models/message.php | 2 +- resources/lang/tr-TR/admin/settings/general.php | 2 ++ resources/lang/tr-TR/admin/settings/message.php | 2 +- resources/lang/tr-TR/general.php | 13 ++++++++----- resources/lang/uk-UA/admin/hardware/message.php | 1 + resources/lang/uk-UA/admin/kits/general.php | 1 + .../lang/uk-UA/admin/locations/message.php | 6 ++++++ resources/lang/uk-UA/admin/models/message.php | 2 +- resources/lang/uk-UA/admin/settings/general.php | 2 ++ resources/lang/uk-UA/admin/settings/message.php | 2 +- resources/lang/uk-UA/general.php | 13 ++++++++----- resources/lang/ur-PK/admin/hardware/message.php | 1 + resources/lang/ur-PK/admin/kits/general.php | 1 + .../lang/ur-PK/admin/locations/message.php | 6 ++++++ resources/lang/ur-PK/admin/models/message.php | 2 +- resources/lang/ur-PK/admin/settings/general.php | 2 ++ resources/lang/ur-PK/admin/settings/message.php | 2 +- resources/lang/ur-PK/general.php | 13 ++++++++----- resources/lang/vi-VN/admin/hardware/message.php | 1 + resources/lang/vi-VN/admin/kits/general.php | 1 + .../lang/vi-VN/admin/locations/message.php | 6 ++++++ resources/lang/vi-VN/admin/models/message.php | 2 +- resources/lang/vi-VN/admin/settings/general.php | 2 ++ resources/lang/vi-VN/admin/settings/message.php | 2 +- resources/lang/vi-VN/general.php | 13 ++++++++----- resources/lang/zh-CN/admin/hardware/message.php | 1 + resources/lang/zh-CN/admin/kits/general.php | 1 + .../lang/zh-CN/admin/locations/message.php | 6 ++++++ resources/lang/zh-CN/admin/models/message.php | 2 +- resources/lang/zh-CN/admin/settings/general.php | 2 ++ resources/lang/zh-CN/admin/settings/message.php | 2 +- resources/lang/zh-CN/general.php | 13 ++++++++----- resources/lang/zh-HK/admin/hardware/message.php | 1 + resources/lang/zh-HK/admin/kits/general.php | 1 + .../lang/zh-HK/admin/locations/message.php | 6 ++++++ resources/lang/zh-HK/admin/models/message.php | 2 +- resources/lang/zh-HK/admin/settings/general.php | 2 ++ resources/lang/zh-HK/admin/settings/message.php | 2 +- resources/lang/zh-HK/general.php | 13 ++++++++----- resources/lang/zh-TW/admin/hardware/message.php | 1 + resources/lang/zh-TW/admin/kits/general.php | 1 + .../lang/zh-TW/admin/locations/message.php | 6 ++++++ resources/lang/zh-TW/admin/models/message.php | 2 +- resources/lang/zh-TW/admin/settings/general.php | 2 ++ resources/lang/zh-TW/admin/settings/message.php | 2 +- resources/lang/zh-TW/general.php | 13 ++++++++----- resources/lang/zu-ZA/admin/hardware/message.php | 1 + resources/lang/zu-ZA/admin/kits/general.php | 1 + .../lang/zu-ZA/admin/locations/message.php | 6 ++++++ resources/lang/zu-ZA/admin/models/message.php | 2 +- resources/lang/zu-ZA/admin/settings/general.php | 2 ++ resources/lang/zu-ZA/admin/settings/message.php | 2 +- resources/lang/zu-ZA/general.php | 13 ++++++++----- 490 files changed, 1392 insertions(+), 495 deletions(-) diff --git a/resources/lang/aa-ER/admin/hardware/message.php b/resources/lang/aa-ER/admin/hardware/message.php index 0776a849b..2a6f8a7fc 100644 --- a/resources/lang/aa-ER/admin/hardware/message.php +++ b/resources/lang/aa-ER/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'crwdns1698:0crwdne1698:0', 'file_delete_error' => 'crwdns1699:0crwdne1699:0', 'file_missing' => 'crwdns11835:0crwdne11835:0', + 'file_already_deleted' => 'crwdns12694:0crwdne12694:0', 'header_row_has_malformed_characters' => 'crwdns11229:0crwdne11229:0', 'content_row_has_malformed_characters' => 'crwdns11231:0crwdne11231:0', ], diff --git a/resources/lang/aa-ER/admin/kits/general.php b/resources/lang/aa-ER/admin/kits/general.php index 11317c954..27fd6ec3f 100644 --- a/resources/lang/aa-ER/admin/kits/general.php +++ b/resources/lang/aa-ER/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'crwdns6659:0crwdne6659:0', 'kit_model_updated' => 'crwdns6661:0crwdne6661:0', 'kit_model_detached' => 'crwdns6663:0crwdne6663:0', + 'model_already_attached' => 'crwdns12684:0crwdne12684:0', ]; diff --git a/resources/lang/aa-ER/admin/locations/message.php b/resources/lang/aa-ER/admin/locations/message.php index 88117472b..a595124f8 100644 --- a/resources/lang/aa-ER/admin/locations/message.php +++ b/resources/lang/aa-ER/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'crwdns1405:0crwdne1405:0', 'assigned_assets' => 'crwdns11179:0crwdne11179:0', 'current_location' => 'crwdns11181:0crwdne11181:0', + 'open_map' => 'crwdns12696:0crwdne12696:0', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'crwdns655:0crwdne655:0' ), + 'restore' => array( + 'error' => 'crwdns12698:0crwdne12698:0', + 'success' => 'crwdns12700:0crwdne12700:0' + ), + 'delete' => array( 'confirm' => 'crwdns656:0crwdne656:0', 'error' => 'crwdns657:0crwdne657:0', diff --git a/resources/lang/aa-ER/admin/models/message.php b/resources/lang/aa-ER/admin/models/message.php index 3c9b2013b..e134cf9e4 100644 --- a/resources/lang/aa-ER/admin/models/message.php +++ b/resources/lang/aa-ER/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'crwdns11693:0crwdne11693:0', 'no_association_fix' => 'crwdns11235:0crwdne11235:0', 'assoc_users' => 'crwdns672:0crwdne672:0', - 'invalid_category_type' => 'crwdns12302:0crwdne12302:0', + 'invalid_category_type' => 'crwdns12678:0crwdne12678:0', 'create' => array( 'error' => 'crwdns673:0crwdne673:0', diff --git a/resources/lang/aa-ER/admin/settings/general.php b/resources/lang/aa-ER/admin/settings/general.php index 6dba9d27b..ec5ab5bc1 100644 --- a/resources/lang/aa-ER/admin/settings/general.php +++ b/resources/lang/aa-ER/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'crwdns12590:0crwdne12590:0', 'restore_default_avatar' => 'crwdns12592:0crwdne12592:0', 'restore_default_avatar_help' => 'crwdns12594:0crwdne12594:0', + 'due_checkin_days' => 'crwdns12680:0crwdne12680:0', + 'due_checkin_days_help' => 'crwdns12682:0crwdne12682:0', ]; diff --git a/resources/lang/aa-ER/admin/settings/message.php b/resources/lang/aa-ER/admin/settings/message.php index 389161344..c70ad109e 100644 --- a/resources/lang/aa-ER/admin/settings/message.php +++ b/resources/lang/aa-ER/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'crwdns6711:0crwdne6711:0' ], 'restore' => [ - 'success' => 'crwdns12648:0crwdne12648:0' + 'success' => 'crwdns12668:0crwdne12668:0' ], 'purge' => [ 'error' => 'crwdns1615:0crwdne1615:0', diff --git a/resources/lang/aa-ER/general.php b/resources/lang/aa-ER/general.php index f61d83793..dcf002364 100644 --- a/resources/lang/aa-ER/general.php +++ b/resources/lang/aa-ER/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'crwdns1327:0crwdne1327:0', 'country' => 'crwdns1039:0crwdne1039:0', 'could_not_restore' => 'crwdns11894:0:item_type:crwdne11894:0', - 'not_deleted' => 'crwdns12616:0crwdne12616:0', + 'not_deleted' => 'crwdns12670:0crwdne12670:0', 'create' => 'crwdns1040:0crwdne1040:0', 'created' => 'crwdns1773:0crwdne1773:0', 'created_asset' => 'crwdns1041:0crwdne1041:0', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'crwdns1828:0crwdne1828:0', 'delete' => 'crwdns1046:0crwdne1046:0', 'delete_confirm' => 'crwdns2020:0crwdne2020:0', - 'delete_confirm_no_undo' => 'crwdns12618:0crwdne12618:0', + 'delete_confirm_no_undo' => 'crwdns12672:0crwdne12672:0', 'deleted' => 'crwdns1047:0crwdne1047:0', 'delete_seats' => 'crwdns1430:0crwdne1430:0', 'deletion_failed' => 'crwdns6117:0crwdne6117:0', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'crwdns1058:0crwdne1058:0', 'filetypes_accepted_help' => 'crwdns12622:0crwdne12622:0', 'filetypes_size_help' => 'crwdns12624:0crwdne12624:0', - 'image_filetypes_help' => 'crwdns12626:0crwdne12626:0', + 'image_filetypes_help' => 'crwdns12674:0crwdne12674:0', 'unaccepted_image_type' => 'crwdns11365:0crwdne11365:0', 'import' => 'crwdns1411:0crwdne1411:0', 'import_this_file' => 'crwdns11922:0crwdne11922:0', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'crwdns6183:0crwdne6183:0', 'setup_config_check' => 'crwdns6185:0crwdne6185:0', 'setup_create_database' => 'crwdns12640:0crwdne12640:0', - 'setup_create_admin' => 'crwdns12642:0crwdne12642:0', + 'setup_create_admin' => 'crwdns12676:0crwdne12676:0', 'setup_done' => 'crwdns6191:0crwdne6191:0', 'bulk_edit_about_to' => 'crwdns6193:0crwdne6193:0', 'checked_out' => 'crwdns6195:0crwdne6195:0', @@ -425,7 +425,7 @@ return [ 'assets_by_status_type' => 'crwdns10544:0crwdne10544:0', 'pie_chart_type' => 'crwdns10546:0crwdne10546:0', 'hello_name' => 'crwdns10548:0crwdne10548:0', - 'unaccepted_profile_warning' => 'crwdns10550:0crwdne10550:0', + 'unaccepted_profile_warning' => 'crwdns12686:0crwdne12686:0', 'start_date' => 'crwdns11168:0crwdne11168:0', 'end_date' => 'crwdns11170:0crwdne11170:0', 'alt_uploaded_image_thumbnail' => 'crwdns11172:0crwdne11172:0', @@ -558,5 +558,8 @@ return [ 'expires' => 'crwdns12310:0crwdne12310:0', 'map_fields'=> 'crwdns12572:0crwdne12572:0', 'remaining_var' => 'crwdns12612:0crwdne12612:0', + 'assets_in_var' => 'crwdns12688:0crwdne12688:0', + 'label' => 'crwdns12690:0crwdne12690:0', + 'import_asset_tag_exists' => 'crwdns12692:0crwdne12692:0', ]; diff --git a/resources/lang/af-ZA/admin/hardware/message.php b/resources/lang/af-ZA/admin/hardware/message.php index 74bd3b78d..1a2bda6ae 100644 --- a/resources/lang/af-ZA/admin/hardware/message.php +++ b/resources/lang/af-ZA/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Jou lêer is suksesvol verwyder', 'file_delete_error' => 'Die lêer kon nie uitgevee word nie', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/af-ZA/admin/kits/general.php b/resources/lang/af-ZA/admin/kits/general.php index 8c32816b1..44b4e2f82 100644 --- a/resources/lang/af-ZA/admin/kits/general.php +++ b/resources/lang/af-ZA/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/af-ZA/admin/locations/message.php b/resources/lang/af-ZA/admin/locations/message.php index a10563a7c..d4f51f5bf 100644 --- a/resources/lang/af-ZA/admin/locations/message.php +++ b/resources/lang/af-ZA/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Hierdie ligging is tans die ouer van ten minste een kind se plek en kan nie uitgevee word nie. Werk asseblief jou liggings by om nie meer hierdie ligging te verwys nie en probeer weer.', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Ligging suksesvol opgedateer.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Is jy seker jy wil hierdie ligging uitvee?', 'error' => 'Daar was \'n probleem met die verwydering van die ligging. Probeer asseblief weer.', diff --git a/resources/lang/af-ZA/admin/models/message.php b/resources/lang/af-ZA/admin/models/message.php index 75c36e8cb..05f640e97 100644 --- a/resources/lang/af-ZA/admin/models/message.php +++ b/resources/lang/af-ZA/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'Hierdie model word tans geassosieer met een of meer bates en kan nie verwyder word nie. Verwyder asseblief die bates en probeer dan weer uitvee.', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model is nie geskep nie, probeer asseblief weer.', diff --git a/resources/lang/af-ZA/admin/settings/general.php b/resources/lang/af-ZA/admin/settings/general.php index bec29534e..c69595ec0 100644 --- a/resources/lang/af-ZA/admin/settings/general.php +++ b/resources/lang/af-ZA/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore
original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/af-ZA/admin/settings/message.php b/resources/lang/af-ZA/admin/settings/message.php index 198e05497..abbc31561 100644 --- a/resources/lang/af-ZA/admin/settings/message.php +++ b/resources/lang/af-ZA/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => '\'N Fout het voorgekom tydens suiwering.', diff --git a/resources/lang/af-ZA/general.php b/resources/lang/af-ZA/general.php index f8d7d12cf..1aea31881 100644 --- a/resources/lang/af-ZA/general.php +++ b/resources/lang/af-ZA/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'land', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Skep nuwe', 'created' => 'Item geskep', 'created_asset' => 'geskep bate', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Hierdie program word uitgevoer in die produksiemodus met debugging aangeskakel. Dit kan sensitiewe data blootstel indien u aansoek vir die buitewêreld toeganklik is. Deaktiveer debug-modus deur die APP_DEBUG-waarde in jou .env-lêer te stel na false.', 'delete' => 'verwyder', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'geskrap', 'delete_seats' => 'Plekke verwyder', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Laai prent op', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'invoer', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Gekontroleer', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'verstryk', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/am-ET/admin/hardware/message.php b/resources/lang/am-ET/admin/hardware/message.php index d06bf4a0e..041d32f56 100644 --- a/resources/lang/am-ET/admin/hardware/message.php +++ b/resources/lang/am-ET/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Your file has been been successfully deleted', 'file_delete_error' => 'The file was unable to be deleted', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/am-ET/admin/kits/general.php b/resources/lang/am-ET/admin/kits/general.php index f57fb645c..2b5c2d9cd 100644 --- a/resources/lang/am-ET/admin/kits/general.php +++ b/resources/lang/am-ET/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/am-ET/admin/locations/message.php b/resources/lang/am-ET/admin/locations/message.php index 6226c71ab..488ec9c67 100644 --- a/resources/lang/am-ET/admin/locations/message.php +++ b/resources/lang/am-ET/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Location updated successfully.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Are you sure you wish to delete this location?', 'error' => 'There was an issue deleting the location. Please try again.', diff --git a/resources/lang/am-ET/admin/models/message.php b/resources/lang/am-ET/admin/models/message.php index f61a2c535..ae3bc34ee 100644 --- a/resources/lang/am-ET/admin/models/message.php +++ b/resources/lang/am-ET/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'This model is currently associated with one or more assets and cannot be deleted. Please delete the assets, and then try deleting again. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model was not created, please try again.', diff --git a/resources/lang/am-ET/admin/settings/general.php b/resources/lang/am-ET/admin/settings/general.php index 31165cf3f..7ce360eda 100644 --- a/resources/lang/am-ET/admin/settings/general.php +++ b/resources/lang/am-ET/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/am-ET/admin/settings/message.php b/resources/lang/am-ET/admin/settings/message.php index 24e2d292c..c91575144 100644 --- a/resources/lang/am-ET/admin/settings/message.php +++ b/resources/lang/am-ET/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'An error has occurred while purging. ', diff --git a/resources/lang/am-ET/general.php b/resources/lang/am-ET/general.php index c9b8c49b0..5cbe7472d 100644 --- a/resources/lang/am-ET/general.php +++ b/resources/lang/am-ET/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Upload Image', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Expires', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/ar-SA/admin/hardware/message.php b/resources/lang/ar-SA/admin/hardware/message.php index eb149b502..9a2bd8cb9 100644 --- a/resources/lang/ar-SA/admin/hardware/message.php +++ b/resources/lang/ar-SA/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'تم حذف ملفك بنجاح', 'file_delete_error' => 'تعذر حذف الملف', 'file_missing' => 'الملف المحدد مفقود', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'واحدة أو أكثر من السمات في الصف الترويجي تحتوي على أحرف UTF-8 سيئة', 'content_row_has_malformed_characters' => 'واحدة أو أكثر من السمات في الصف الأول من المحتوى تحتوي على أحرف UTF-8 سيئة', ], diff --git a/resources/lang/ar-SA/admin/kits/general.php b/resources/lang/ar-SA/admin/kits/general.php index b8f9bb4bc..6171ef3b8 100644 --- a/resources/lang/ar-SA/admin/kits/general.php +++ b/resources/lang/ar-SA/admin/kits/general.php @@ -49,4 +49,5 @@ return [ 'kit_deleted' => 'تم حذف عدة بنجاح', 'kit_model_updated' => 'تم تحديث النموذج بنجاح', 'kit_model_detached' => 'تم فصل النموذج بنجاح', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/ar-SA/admin/locations/message.php b/resources/lang/ar-SA/admin/locations/message.php index 289718067..e446f75ed 100644 --- a/resources/lang/ar-SA/admin/locations/message.php +++ b/resources/lang/ar-SA/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'هذا الموقع هو حاليا أحد الوالدين لموقع طفل واحد على الأقل ولا يمكن حذفه. يرجى تحديث مواقعك لم تعد تشير إلى هذا الموقع ثم أعد المحاولة.', 'assigned_assets' => 'الأصول المعينة', 'current_location' => 'الموقع الحالي', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'تم تحديث الموقع بنجاح.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'هل تريد بالتأكيد حذف هذا الموقع؟', 'error' => 'حدثت مشكلة أثناء حذف الموقع. حاول مرة اخرى.', diff --git a/resources/lang/ar-SA/admin/models/message.php b/resources/lang/ar-SA/admin/models/message.php index a4541bb9e..043c3a700 100644 --- a/resources/lang/ar-SA/admin/models/message.php +++ b/resources/lang/ar-SA/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'تحذير! نموذج الأصول لهذا العنصر غير صالح أو مفقود!', 'no_association_fix' => 'سيؤدي هذا إلى كسر الأمور بطرق غريبة وفظيعة. قم بتعديل هذا الأصل الآن لربطه بنموذج.', 'assoc_users' => 'هذا الموديل مرتبط حاليا بواحد أو أكثر من الأصول ولا يمكن حذفه. يرجى حذف الأصول، ثم محاولة الحذف مرة أخرى. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'لم يتم انشاء الموديل، يرجى إعادة المحاولة.', diff --git a/resources/lang/ar-SA/admin/settings/general.php b/resources/lang/ar-SA/admin/settings/general.php index c9385aaf9..7c1b20f1b 100644 --- a/resources/lang/ar-SA/admin/settings/general.php +++ b/resources/lang/ar-SA/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/ar-SA/admin/settings/message.php b/resources/lang/ar-SA/admin/settings/message.php index 835ace4af..465ae7c65 100644 --- a/resources/lang/ar-SA/admin/settings/message.php +++ b/resources/lang/ar-SA/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'هل أنت متأكد من رغبتك في استعادة قاعدة البيانات الخاصة بك من :filename؟' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'حدث خطأ أثناء التطهير.', diff --git a/resources/lang/ar-SA/general.php b/resources/lang/ar-SA/general.php index 5e4919cbd..cdaadbc5f 100644 --- a/resources/lang/ar-SA/general.php +++ b/resources/lang/ar-SA/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'المواد الاستهلاكية', 'country' => 'الدولة', 'could_not_restore' => 'خطأ في استعادة :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'إضافة', 'created' => 'تم إنشاء العنصر', 'created_asset' => 'الأصول المضافة', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'هذا التطبيق يعمل في وضع الإنتاج مع تمكين التصحيح. هذا يمكن أن يعرض البيانات الحساسة إذا كان التطبيق الخاص بك هو في متناول العالم الخارجي. تعطيل وضع التصحيح عن طريق تعيين قيمة APP_DEBUG في ملف .env إلى false.', 'delete' => 'حذف', 'delete_confirm' => 'هل أنت متأكد من حذف :المنتج؟', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'تم حذفها', 'delete_seats' => 'المقاعد المحذوفة', 'deletion_failed' => 'فشل الحذف', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'رفع صورة', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'ملف الصورة هذا غير قابل للقراءة. أنواع الملفات المقبولة هي jpg، webpp، png، gif، svg. نوع هذا الملف هو: :mimetype.', 'import' => 'استيراد', 'import_this_file' => 'حقول الخريطة ومعالجة هذا الملف', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'الخطوة 4', 'setup_config_check' => 'التحقق من الاعدادات', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'إنتهى!', 'bulk_edit_about_to' => 'أنت على وشك تحرير ما يلي: ', 'checked_out' => 'استعارة', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'الأصول حسب نوع الحالة', 'pie_chart_type' => 'نوع مخطط دائري لوحة التحكم', 'hello_name' => 'مرحبا، :name!', - 'unaccepted_profile_warning' => 'لديك :count عناصر تتطلب القبول. انقر هنا لقبولها أو رفضها', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'تاريخ البداية', 'end_date' => 'تاريخ الانتهاء', 'alt_uploaded_image_thumbnail' => 'الصورة المصغرة المحملة', @@ -559,5 +559,8 @@ return [ 'expires' => 'انتهاء الصلاحية', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/bg-BG/admin/hardware/message.php b/resources/lang/bg-BG/admin/hardware/message.php index f49d9fa86..6b27118c7 100644 --- a/resources/lang/bg-BG/admin/hardware/message.php +++ b/resources/lang/bg-BG/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Вашият файл беше изтрит успешно.', 'file_delete_error' => 'Файлът не е в състояние да бъде изтрит', 'file_missing' => 'Избраният файл липсва', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Един или повече атрибути на заглавния ред съдържат неправилни UTF-8 символи', 'content_row_has_malformed_characters' => 'Един или повече атрибути на заглавния ред съдържат неправилни UTF-8 символи', ], diff --git a/resources/lang/bg-BG/admin/kits/general.php b/resources/lang/bg-BG/admin/kits/general.php index 90b7aa1b0..2bf3ff62a 100644 --- a/resources/lang/bg-BG/admin/kits/general.php +++ b/resources/lang/bg-BG/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Комплектът беше изтрит', 'kit_model_updated' => 'Модела беше успешно обновен', 'kit_model_detached' => 'Модела беше премахнат успешно', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/bg-BG/admin/locations/message.php b/resources/lang/bg-BG/admin/locations/message.php index 92395a853..b729a6446 100644 --- a/resources/lang/bg-BG/admin/locations/message.php +++ b/resources/lang/bg-BG/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'В избраното местоположение е присъединено едно или повече местоположения. Моля преместете ги в друго и опитайте отново.', 'assigned_assets' => 'Изписани Активи', 'current_location' => 'Текущо местоположение', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Местоположението е обновено.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Сигурни ли сте, че искате да изтриете това местоположение?', 'error' => 'Възникна проблем при изтриване на местоположението. Моля, опитайте отново.', diff --git a/resources/lang/bg-BG/admin/models/message.php b/resources/lang/bg-BG/admin/models/message.php index 1b7192b20..b862e8eff 100644 --- a/resources/lang/bg-BG/admin/models/message.php +++ b/resources/lang/bg-BG/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'ВНИМАНИЕ! Модела за този актив е неправилен или липсва!', 'no_association_fix' => 'Това ще счупи нещата по много лош начин. Редактирайте артикула сега и го зачислете към модел.', 'assoc_users' => 'Този модел е асоцииран с един или повече активи и не може да бъде изтрит. Моля изтрийте активите и опитайте отново.', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Моделът не беше създаден. Моля опитайте отново.', diff --git a/resources/lang/bg-BG/admin/settings/general.php b/resources/lang/bg-BG/admin/settings/general.php index baa7f84b3..99b48e105 100644 --- a/resources/lang/bg-BG/admin/settings/general.php +++ b/resources/lang/bg-BG/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/bg-BG/admin/settings/message.php b/resources/lang/bg-BG/admin/settings/message.php index bf8532f46..add033b7f 100644 --- a/resources/lang/bg-BG/admin/settings/message.php +++ b/resources/lang/bg-BG/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Сигурни ли сте че искате да възстановите датабазата от :filename?' ], 'restore' => [ - 'success' => 'Вашият системен архив беше възстановен. Моля влезте отново.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Възникна грешка при пречистване. ', diff --git a/resources/lang/bg-BG/general.php b/resources/lang/bg-BG/general.php index b1962fe72..65cb67753 100644 --- a/resources/lang/bg-BG/general.php +++ b/resources/lang/bg-BG/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Консумативи', 'country' => 'Държава', 'could_not_restore' => 'Грешка при възстановяване :item_type: :error', - 'not_deleted' => ':item_type не е изтрит и не може да бъде възстановен', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Създаване на нов', 'created' => 'Създадени артикули', 'created_asset' => 'създадени активи', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Това приложение се изпълнява в режим на производство с разрешено отстраняване на грешки. Това може да изложи чувствителни данни, ако приложението ви е достъпно за външния свят. Забранете режим отстраняване на грешки чрез задаване на стойността APP_DEBUF .env във файла false.', 'delete' => 'Изтриване', 'delete_confirm' => 'Сигурни ли сте, че желаете изтриването на :item?', - 'delete_confirm_no_undo' => 'Сигурни ли сте че искате да изтриете :item? Това не може да бъде върнато на обратно.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Изтрито', 'delete_seats' => 'Изтрити работни места за лиценз', 'deletion_failed' => 'Неуспешно изтриване', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Качване на изображение', 'filetypes_accepted_help' => 'Позволенoто разширенe на файлa е :types. Максимално позволения размер е :size.|Позволените разширения на файловете са :types. Максимално позволен размер :size.', 'filetypes_size_help' => 'Максимално позволен размер на файла е :size.', - 'image_filetypes_help' => 'Допустимите файлови типове са jpg, webp, png, gif, svg и avif. Максималният разрешен размер за качване е :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Снимката не може да се прочете. Типовете файлови разширения са jpg, webp, png, gif и svg. Разширението на този файл е :mimetype.', 'import' => 'Зареждане', 'import_this_file' => 'Асоциирайте полетата и обработете този файл', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Стъпка 4', 'setup_config_check' => 'Проверка на конфигурацията', 'setup_create_database' => 'Създай таблиците в датабазата', - 'setup_create_admin' => 'Създай Админ потребител', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Готово!', 'bulk_edit_about_to' => 'Вие ще редактирате следното: ', 'checked_out' => 'Изписан', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Статус тип по Активи', 'pie_chart_type' => 'Кръгова диаграма на таблото', 'hello_name' => 'Здравейте, :name!', - 'unaccepted_profile_warning' => 'Вие имате :count актив чакащ за приемане. Щрактене тук за да приемете или откажете актива', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Начална дата', 'end_date' => 'Крайна дата', 'alt_uploaded_image_thumbnail' => 'Качено умалено изображение', @@ -559,5 +559,8 @@ return [ 'expires' => 'Изтича', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => 'остават :count', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/ca-ES/admin/hardware/message.php b/resources/lang/ca-ES/admin/hardware/message.php index d06bf4a0e..041d32f56 100644 --- a/resources/lang/ca-ES/admin/hardware/message.php +++ b/resources/lang/ca-ES/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Your file has been been successfully deleted', 'file_delete_error' => 'The file was unable to be deleted', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/ca-ES/admin/kits/general.php b/resources/lang/ca-ES/admin/kits/general.php index f57fb645c..2b5c2d9cd 100644 --- a/resources/lang/ca-ES/admin/kits/general.php +++ b/resources/lang/ca-ES/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/ca-ES/admin/locations/message.php b/resources/lang/ca-ES/admin/locations/message.php index 6226c71ab..488ec9c67 100644 --- a/resources/lang/ca-ES/admin/locations/message.php +++ b/resources/lang/ca-ES/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Location updated successfully.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Are you sure you wish to delete this location?', 'error' => 'There was an issue deleting the location. Please try again.', diff --git a/resources/lang/ca-ES/admin/models/message.php b/resources/lang/ca-ES/admin/models/message.php index f61a2c535..ae3bc34ee 100644 --- a/resources/lang/ca-ES/admin/models/message.php +++ b/resources/lang/ca-ES/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'This model is currently associated with one or more assets and cannot be deleted. Please delete the assets, and then try deleting again. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model was not created, please try again.', diff --git a/resources/lang/ca-ES/admin/settings/general.php b/resources/lang/ca-ES/admin/settings/general.php index 31165cf3f..7ce360eda 100644 --- a/resources/lang/ca-ES/admin/settings/general.php +++ b/resources/lang/ca-ES/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/ca-ES/admin/settings/message.php b/resources/lang/ca-ES/admin/settings/message.php index 24e2d292c..c91575144 100644 --- a/resources/lang/ca-ES/admin/settings/message.php +++ b/resources/lang/ca-ES/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'An error has occurred while purging. ', diff --git a/resources/lang/ca-ES/general.php b/resources/lang/ca-ES/general.php index 5690a088d..fc33fe60f 100644 --- a/resources/lang/ca-ES/general.php +++ b/resources/lang/ca-ES/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumibles', 'country' => 'País', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Crea nou', 'created' => 'Item Created', 'created_asset' => 'recurs creat', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Suprimeix', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'S\'ha suprimit', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Upload Image', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Expires', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/chr-US/admin/hardware/message.php b/resources/lang/chr-US/admin/hardware/message.php index d06bf4a0e..041d32f56 100644 --- a/resources/lang/chr-US/admin/hardware/message.php +++ b/resources/lang/chr-US/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Your file has been been successfully deleted', 'file_delete_error' => 'The file was unable to be deleted', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/chr-US/admin/kits/general.php b/resources/lang/chr-US/admin/kits/general.php index f57fb645c..2b5c2d9cd 100644 --- a/resources/lang/chr-US/admin/kits/general.php +++ b/resources/lang/chr-US/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/chr-US/admin/locations/message.php b/resources/lang/chr-US/admin/locations/message.php index 6226c71ab..488ec9c67 100644 --- a/resources/lang/chr-US/admin/locations/message.php +++ b/resources/lang/chr-US/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Location updated successfully.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Are you sure you wish to delete this location?', 'error' => 'There was an issue deleting the location. Please try again.', diff --git a/resources/lang/chr-US/admin/models/message.php b/resources/lang/chr-US/admin/models/message.php index f61a2c535..ae3bc34ee 100644 --- a/resources/lang/chr-US/admin/models/message.php +++ b/resources/lang/chr-US/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'This model is currently associated with one or more assets and cannot be deleted. Please delete the assets, and then try deleting again. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model was not created, please try again.', diff --git a/resources/lang/chr-US/admin/settings/general.php b/resources/lang/chr-US/admin/settings/general.php index 31165cf3f..7ce360eda 100644 --- a/resources/lang/chr-US/admin/settings/general.php +++ b/resources/lang/chr-US/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/chr-US/admin/settings/message.php b/resources/lang/chr-US/admin/settings/message.php index 24e2d292c..c91575144 100644 --- a/resources/lang/chr-US/admin/settings/message.php +++ b/resources/lang/chr-US/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'An error has occurred while purging. ', diff --git a/resources/lang/chr-US/general.php b/resources/lang/chr-US/general.php index 444ed5408..763438790 100644 --- a/resources/lang/chr-US/general.php +++ b/resources/lang/chr-US/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Upload Image', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Expires', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/cs-CZ/admin/hardware/message.php b/resources/lang/cs-CZ/admin/hardware/message.php index 4b80c1507..443c5da15 100644 --- a/resources/lang/cs-CZ/admin/hardware/message.php +++ b/resources/lang/cs-CZ/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Váš soubor byl úspěšně odstraněn', 'file_delete_error' => 'Soubor nelze odstranit', 'file_missing' => 'Vybraný soubor chybí', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Jeden nebo více sloupců obsahuje v záhlaví poškozené UTF-8 znaky', 'content_row_has_malformed_characters' => 'Jedna nebo více hodnot v prvním řádku obsahu obsahuje poškozené UTF-8 znaky', ], diff --git a/resources/lang/cs-CZ/admin/kits/general.php b/resources/lang/cs-CZ/admin/kits/general.php index 1f1bfd0df..e06cb105d 100644 --- a/resources/lang/cs-CZ/admin/kits/general.php +++ b/resources/lang/cs-CZ/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Sada byla úspěšně smazána', 'kit_model_updated' => 'Model byl úspěšně aktualizován', 'kit_model_detached' => 'Model byl úspěšně odpojen', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/cs-CZ/admin/locations/message.php b/resources/lang/cs-CZ/admin/locations/message.php index ad5e97fa0..455e75626 100644 --- a/resources/lang/cs-CZ/admin/locations/message.php +++ b/resources/lang/cs-CZ/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Toto umístění je nadřazené alespoň jednomu umístění a nelze jej smazat. Aktualizujte své umístění tak, aby na toto umístění již neodkazovalo a zkuste to znovu. ', 'assigned_assets' => 'Přiřazený majetek', 'current_location' => 'Současné umístění', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Místo úspěšně aktualizováno.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Opravdu si želáte vymazat tohle místo na trvalo?', 'error' => 'Vyskytl se problém při mazání místa. Zkuste to znovu prosím.', diff --git a/resources/lang/cs-CZ/admin/models/message.php b/resources/lang/cs-CZ/admin/models/message.php index 46be6918c..5a5dd8b41 100644 --- a/resources/lang/cs-CZ/admin/models/message.php +++ b/resources/lang/cs-CZ/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'VAROVÁNÍ! Model majetku pro tuto položku je neplatný, nebo chybí!', 'no_association_fix' => 'Tento stav může způsobit nedozírné problémy. Přiřaďte dotyčnému majetku správný model.', 'assoc_users' => 'Tento model je spojen s alespoň jedním majetkem a nemůže být smazán. Prosím smažte tyto majetky a pak to zkuste znovu. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model nebyl vytvořen, zkuste to znovu.', diff --git a/resources/lang/cs-CZ/admin/settings/general.php b/resources/lang/cs-CZ/admin/settings/general.php index 17928b7fc..a5c11c122 100644 --- a/resources/lang/cs-CZ/admin/settings/general.php +++ b/resources/lang/cs-CZ/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/cs-CZ/admin/settings/message.php b/resources/lang/cs-CZ/admin/settings/message.php index f4a4721e0..cf864a01c 100644 --- a/resources/lang/cs-CZ/admin/settings/message.php +++ b/resources/lang/cs-CZ/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Jste si jisti, že chcete obnovit databázi z :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Během čištění došlo k chybě. ', diff --git a/resources/lang/cs-CZ/general.php b/resources/lang/cs-CZ/general.php index 1fe87862d..6a30ea60f 100644 --- a/resources/lang/cs-CZ/general.php +++ b/resources/lang/cs-CZ/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Spotřební materiál', 'country' => 'Země', 'could_not_restore' => 'Chyba při obnově :item_type: :chyba', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Vytvořit nové', 'created' => 'Položka vytvořena', 'created_asset' => 'vytvořit majetek', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Tato aplikace běží ve výrobním režimu s povoleným laděním. To znamená že citlivá data mohou být přístupná vnějšímu světu. Deaktivujte režim ladění nastavením hodnoty APP_DEBUG v souboru .env na false.', 'delete' => 'Odstranit', 'delete_confirm' => 'Opravdu chcete smazat :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Odstraněno', 'delete_seats' => 'Vymazaná licenční místa', 'deletion_failed' => 'Odstranění se nezdařilo', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Nahrát obrázek', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Soubor s obrázkem nebyl čitelný. Přijatelné druhy souborů jsou jpg, webp, png, gif, a svg. Tento soubor je druhu: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Mapa polí a zpracovávat tento soubor', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Krok 4', 'setup_config_check' => 'Kontrola konfigurace', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Hotovo!', 'bulk_edit_about_to' => 'Tímto upravíte následující možnosti: ', 'checked_out' => 'K výdeji', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Majetek podle stavu', 'pie_chart_type' => 'Typ koláčového grafu na hlavní stránce', 'hello_name' => 'Ahoj, :name!', - 'unaccepted_profile_warning' => 'Máte :count položek vyžadujících potvrzení. Klikněte zde pro jejich přijetí nebo zamítnutí', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Od', 'end_date' => 'Do', 'alt_uploaded_image_thumbnail' => 'Nahraný náhledový obrázek', @@ -559,5 +559,8 @@ return [ 'expires' => 'Vyprší', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/cy-GB/admin/hardware/message.php b/resources/lang/cy-GB/admin/hardware/message.php index b839855f5..f01c051bb 100644 --- a/resources/lang/cy-GB/admin/hardware/message.php +++ b/resources/lang/cy-GB/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Mae eich ffeil wedi\'i dileu yn llwyddiannus', 'file_delete_error' => 'Nid oedd yn bosib dileu\'r ffeil', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/cy-GB/admin/kits/general.php b/resources/lang/cy-GB/admin/kits/general.php index 50ac358df..749c332d9 100644 --- a/resources/lang/cy-GB/admin/kits/general.php +++ b/resources/lang/cy-GB/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/cy-GB/admin/locations/message.php b/resources/lang/cy-GB/admin/locations/message.php index 3c8390328..bff9af8cc 100644 --- a/resources/lang/cy-GB/admin/locations/message.php +++ b/resources/lang/cy-GB/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Mae\'r lleoliad yma yn rhiant i oleiaf un lleoliad a nid yw\'n bosib dileu. Diweddarwch eich lleoliadau i beidio cyfeirio at y lleoliad yma ac yna ceisiwch eto. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Lleoliad wedi diweddaru\'n llwyddiannus.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Ydych chi\'n siwr eich bod eisiau dileu\'r lleoliad yma?', 'error' => 'Nid oedd yn bosib dileu\'r lleoliad. Ceisiwch eto o.g.y.dd.', diff --git a/resources/lang/cy-GB/admin/models/message.php b/resources/lang/cy-GB/admin/models/message.php index b8c1fef9d..76ba22c70 100644 --- a/resources/lang/cy-GB/admin/models/message.php +++ b/resources/lang/cy-GB/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'Mae\'r model yma wedi perthnasu hefo un neu mwy o asedau. Fydd rhaid dileu\'r asedau ac yna trio eto. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Ni crewyd y model, ceisiwch eto o.g.y.dd.', diff --git a/resources/lang/cy-GB/admin/settings/general.php b/resources/lang/cy-GB/admin/settings/general.php index 8f4a9d1af..1ffee5dde 100644 --- a/resources/lang/cy-GB/admin/settings/general.php +++ b/resources/lang/cy-GB/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/cy-GB/admin/settings/message.php b/resources/lang/cy-GB/admin/settings/message.php index a4baa02ae..e61b274b1 100644 --- a/resources/lang/cy-GB/admin/settings/message.php +++ b/resources/lang/cy-GB/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Gwall wedi digwydd wrth glirio. ', diff --git a/resources/lang/cy-GB/general.php b/resources/lang/cy-GB/general.php index 6825af082..f59d6fa54 100644 --- a/resources/lang/cy-GB/general.php +++ b/resources/lang/cy-GB/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Nwyddau traul', 'country' => 'Gwlad', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Creu newydd', 'created' => 'Eitem wedi\'i Greu', 'created_asset' => 'ased wedi creu', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Mae\'r cymhwysiad hwn yn rhedeg yn y modd cynhyrchu gyda debugging wedi\'i alluogi. Gall hyn ddatgelu data sensitif os yw\'ch cais yn hygyrch i\'r byd y tu allan. Analluoga modd dadfygio trwy osod y APP_DEBUG gwerth yn .env ffeil ifalse.', 'delete' => 'Dileu', 'delete_confirm' => 'Ydych chi\'n sicr eich bod eisiau dileu\'r :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Wedi Dileu', 'delete_seats' => 'Seddi wedi dileu', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Uwchlwytho delwedd', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Mewnforio', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Allan', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Dod i ben', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/da-DK/admin/hardware/message.php b/resources/lang/da-DK/admin/hardware/message.php index 1dee491dc..88ab3eea9 100644 --- a/resources/lang/da-DK/admin/hardware/message.php +++ b/resources/lang/da-DK/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Din fil er blevet slettet korrekt', 'file_delete_error' => 'Filen kunne ikke slettes', 'file_missing' => 'Den valgte fil mangler', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'En eller flere attributter i overskriftsrækken indeholder misdannede UTF-8 tegn', 'content_row_has_malformed_characters' => 'En eller flere attributter i den første række indhold indeholder misdannede UTF-8 tegn', ], diff --git a/resources/lang/da-DK/admin/kits/general.php b/resources/lang/da-DK/admin/kits/general.php index 03b625bd7..f48974c3e 100644 --- a/resources/lang/da-DK/admin/kits/general.php +++ b/resources/lang/da-DK/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit blev slettet', 'kit_model_updated' => 'Model blev opdateret', 'kit_model_detached' => 'Model blev fjernet', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/da-DK/admin/locations/message.php b/resources/lang/da-DK/admin/locations/message.php index f447267a0..de442f87d 100644 --- a/resources/lang/da-DK/admin/locations/message.php +++ b/resources/lang/da-DK/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Denne placering er for øjeblikket forælder på mindst et barns placering og kan ikke slettes. Opdater dine placeringer for ikke længere at henvise til denne placering, og prøv igen.', 'assigned_assets' => 'Tildelte aktiver', 'current_location' => 'Aktuel lokation', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Placering opdateret med succes.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Er du sikker på, at du vil slette denne placering?', 'error' => 'Der opstod et problem ved at slette placeringen. Prøv igen.', diff --git a/resources/lang/da-DK/admin/models/message.php b/resources/lang/da-DK/admin/models/message.php index 657436d58..402159ffe 100644 --- a/resources/lang/da-DK/admin/models/message.php +++ b/resources/lang/da-DK/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'ADVARSEL! Aktivmodellen for dette element er ugyldig eller mangler!', 'no_association_fix' => 'Dette vil ødelægge ting på underlige og forfærdelige måder. Rediger dette aktiv nu for at tildele det en model.', 'assoc_users' => 'Denne model er knyttet til en eller flere aktiver og ikke kan slettes. Slet venligst aktiver, og prøv derefter at slette igen. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Modellen blev ikke oprettet, prøve igen.', diff --git a/resources/lang/da-DK/admin/settings/general.php b/resources/lang/da-DK/admin/settings/general.php index f4261f10a..75a71fbb7 100644 --- a/resources/lang/da-DK/admin/settings/general.php +++ b/resources/lang/da-DK/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/da-DK/admin/settings/message.php b/resources/lang/da-DK/admin/settings/message.php index cad65ffc5..8e7ded252 100644 --- a/resources/lang/da-DK/admin/settings/message.php +++ b/resources/lang/da-DK/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Er du sikker på, at du vil gendanne din database fra :filnavn?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Der opstod en fejl under udrensning.', diff --git a/resources/lang/da-DK/general.php b/resources/lang/da-DK/general.php index 8ee2d2efa..10332c74d 100644 --- a/resources/lang/da-DK/general.php +++ b/resources/lang/da-DK/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Forbrugsstoffer', 'country' => 'Land', 'could_not_restore' => 'Fejl under gendannelse af :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Opret ny', 'created' => 'Elementet er oprettet', 'created_asset' => 'skabte aktiver', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Denne applikation kører i produktionstilstand med debugging aktiveret. Dette kan udsætte følsomme data, hvis din ansøgning er tilgængelig for omverdenen. Deaktiver fejlsøgningsmodus ved at indstille værdien APP_DEBUG i din .env fil til false.', 'delete' => 'Slet', 'delete_confirm' => 'Er du sikker på at du vil slette :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Slettet', 'delete_seats' => 'Slettede pladser', 'deletion_failed' => 'Sletning mislykkedes', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Upload billede', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Denne billedfil var ikke læsbar. Accepterede filtyper er jpg, webp, png, gif og svg. Mimetypen for denne fil er: :mimetype.', 'import' => 'Importér', 'import_this_file' => 'Kortfelter og behandl denne fil', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Trin 4', 'setup_config_check' => 'Kontrollerer opsætning', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Udført!', 'bulk_edit_about_to' => 'Du skal til at redigere følgende: ', 'checked_out' => 'Tjekket ud', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Aktiver efter statustype', 'pie_chart_type' => 'Lagkagediagramtype for oversigten', 'hello_name' => 'Hej, :name!', - 'unaccepted_profile_warning' => 'Du har :count emner, der kræver accept. Klik her for at acceptere eller afvise dem', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Startdato', 'end_date' => 'Slutdato', 'alt_uploaded_image_thumbnail' => 'Uploadet miniature', @@ -559,5 +559,8 @@ return [ 'expires' => 'Udløber', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/de-DE/account/general.php b/resources/lang/de-DE/account/general.php index 296fae7ee..a57690d62 100644 --- a/resources/lang/de-DE/account/general.php +++ b/resources/lang/de-DE/account/general.php @@ -13,5 +13,5 @@ return array( 'profile_updated' => 'Konto erfolgreich aktualisiert', 'no_tokens' => 'Sie haben noch keinen persönlichen Zugangs-Token erstellt.', 'enable_sounds' => 'Soundeffekte aktivieren', - 'enable_confetti' => 'Enable confetti effects', + 'enable_confetti' => 'Konfetti-Effekte aktivieren', ); diff --git a/resources/lang/de-DE/admin/hardware/message.php b/resources/lang/de-DE/admin/hardware/message.php index 9b0658ad9..1078588e8 100644 --- a/resources/lang/de-DE/admin/hardware/message.php +++ b/resources/lang/de-DE/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Die Datei wurde erfolgreich gelöscht', 'file_delete_error' => 'Die Datei konnte nicht gelöscht werden', 'file_missing' => 'Die ausgewählte Datei fehlt', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Ein oder mehrere Attribute in der Kopfzeile enthalten fehlerhafte UTF-8 Zeichen', 'content_row_has_malformed_characters' => 'Ein oder mehrere Attribute in der ersten Zeile des Inhalts enthalten fehlerhafte UTF-8-Zeichen', ], diff --git a/resources/lang/de-DE/admin/kits/general.php b/resources/lang/de-DE/admin/kits/general.php index 530d2042d..65900212f 100644 --- a/resources/lang/de-DE/admin/kits/general.php +++ b/resources/lang/de-DE/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit wurde erfolgreich gelöscht', 'kit_model_updated' => 'Modell wurde erfolgreich aktualisiert', 'kit_model_detached' => 'Modell wurde erfolgreich gelöst', + 'model_already_attached' => 'Dieses Modell ist bereits einem Kit zugewiesen', ]; diff --git a/resources/lang/de-DE/admin/locations/message.php b/resources/lang/de-DE/admin/locations/message.php index fd12fdc6d..1de692a2f 100644 --- a/resources/lang/de-DE/admin/locations/message.php +++ b/resources/lang/de-DE/admin/locations/message.php @@ -3,11 +3,12 @@ return array( 'does_not_exist' => 'Standort nicht verfügbar.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', + 'assoc_users' => 'Dieser Standort kann derzeit nicht gelöscht werden, da er der Standort der Aufzeichnung für mindestens ein Asset oder einen Benutzer ist, ihm Assets zugewiesen sind oder er der übergeordnete Standort eines anderen Standorts ist. Aktualisieren Sie Ihre Modelle, damit dieser Standort nicht mehr referenziert wird, und versuchen Sie es erneut. ', 'assoc_assets' => 'Dieser Standort ist aktuell mindestens einem Gegenstand zugewiesen und kann nicht gelöscht werden. Bitte entfernen Sie die Standortzuweisung bei den jeweiligen Gegenständen und versuchen Sie es erneut diesen Standort zu entfernen. ', 'assoc_child_loc' => 'Dieser Ort ist aktuell mindestens einem anderen Ort übergeordnet und kann nicht gelöscht werden. Bitte Orte aktualisieren, so dass dieser Standort nicht mehr verknüpft ist und erneut versuchen. ', 'assigned_assets' => 'Zugeordnete Assets', 'current_location' => 'Aktueller Standort', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Standort erfolgreich aktualisiert.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Möchten Sie diesen Standort wirklich entfernen?', 'error' => 'Es gab einen Fehler beim Löschen des Standorts. Bitte erneut versuchen.', diff --git a/resources/lang/de-DE/admin/settings/general.php b/resources/lang/de-DE/admin/settings/general.php index 00afed651..7a1e799f9 100644 --- a/resources/lang/de-DE/admin/settings/general.php +++ b/resources/lang/de-DE/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'Dieses Bild wird als Profilbild angezeigt, wenn ein Benutzer kein Profilbild festgelegt hat.', 'restore_default_avatar' => 'Ursprünglichen Standard-Avatar des Systems wiederherstellen', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Zum Einchecken fällig Warnung', + 'due_checkin_days_help' => 'Wie viele Tage vor dem voraussichtlichen Check-in eines Vermögenswerts soll dieser auf der Seite „Zur Eincheckzeit fällig“ aufgeführt werden?', ]; diff --git a/resources/lang/de-DE/general.php b/resources/lang/de-DE/general.php index 26df5b4d7..3bf30700f 100644 --- a/resources/lang/de-DE/general.php +++ b/resources/lang/de-DE/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Verbrauchsmaterialien', 'country' => 'Land', 'could_not_restore' => 'Fehler beim Wiederherstellen von :item_type: :error', - 'not_deleted' => ':item_type wurde nicht gelöscht, kann daher nicht wiederhergestellt werden', + 'not_deleted' => 'Diese/s :item_type wurde nicht gelöscht und kann daher nicht wiederhergestellt werden', 'create' => 'Erstellen', 'created' => 'Eintrag erstellt', 'created_asset' => 'Asset angelegt', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Diese Anwendung läuft im Produktionsmodus mit Debugging aktiviert. Dies kann sensible Daten verfügbar machen, wenn Ihre Anwendung öffentlich zugänglich ist. Deaktivieren Sie den Debug-Modus, indem Sie den APP_DEBUG-Wert in der .env Datei auf false setzen.', 'delete' => 'Löschen', 'delete_confirm' => 'Sind Sie sicher, dass Sie :item löschen möchten?', - 'delete_confirm_no_undo' => 'Sind Sie sicher, dass Sie :item löschen möchten? Dies kann nicht rückgängig gemacht werden.', + 'delete_confirm_no_undo' => 'Möchten Sie :item wirklich löschen? Dies kann nicht rückgängig gemacht werden.', 'deleted' => 'Gelöscht', 'delete_seats' => 'Gelöschte Plätze', 'deletion_failed' => 'Löschen fehlgeschlagen', @@ -279,7 +279,7 @@ return [ 'site_name' => 'Seitenname', 'state' => 'Bundesland', 'status_labels' => 'Statusbezeichnungen', - 'status_label' => 'Status Label', + 'status_label' => 'Statusbezeichnung', 'status' => 'Status', 'accept_eula' => 'Annahmeerklärung', 'supplier' => 'Lieferant', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets sortiert nach Statustyp', 'pie_chart_type' => 'Dashboard Kreisdiagramm Typ', 'hello_name' => 'Hallo, :name!', - 'unaccepted_profile_warning' => 'Sie haben :count Gegenstände, die akzeptiert werden müssen. Klicken Sie hier, um diese anzunehmen oder abzulehnen', + 'unaccepted_profile_warning' => 'Sie haben einen Artikel, der akzeptiert werden muss. Klicken Sie hier, um ihn zu akzeptieren oder abzulehnen. | Sie haben :count Artikel, die akzeptiert werden müssen. Klicken Sie hier, um sie zu akzeptieren oder abzulehnen', 'start_date' => 'Startdatum', 'end_date' => 'Enddatum', 'alt_uploaded_image_thumbnail' => 'Hochgeladene Miniaturansicht', @@ -559,5 +559,8 @@ return [ 'expires' => 'Ablaufdatum', 'map_fields'=> ':item_type Feld zuordnen', 'remaining_var' => ':count verbleibend', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/de-if/account/general.php b/resources/lang/de-if/account/general.php index 6fea51b4f..9bb8fe872 100644 --- a/resources/lang/de-if/account/general.php +++ b/resources/lang/de-if/account/general.php @@ -13,5 +13,5 @@ return array( 'profile_updated' => 'Konto erfolgreich aktualisiert', 'no_tokens' => 'Sie haben keine persönlichen Zugangsschlüssel erstellt.', 'enable_sounds' => 'Soundeffekte aktivieren', - 'enable_confetti' => 'Enable confetti effects', + 'enable_confetti' => 'Konfetti-Effekte aktivieren', ); diff --git a/resources/lang/de-if/admin/hardware/message.php b/resources/lang/de-if/admin/hardware/message.php index 43c7e3e8d..9445aed5f 100644 --- a/resources/lang/de-if/admin/hardware/message.php +++ b/resources/lang/de-if/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Deine Datei wurde erfolgreich gelöscht', 'file_delete_error' => 'Die Datei konnte nicht gelöscht werden', 'file_missing' => 'Die ausgewählte Datei fehlt', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Ein oder mehrere Attribute in der Kopfzeile enthalten fehlerhafte UTF-8 Zeichen', 'content_row_has_malformed_characters' => 'Ein oder mehrere Attribute in der ersten Zeile des Inhalts enthalten fehlerhafte UTF-8-Zeichen', ], diff --git a/resources/lang/de-if/admin/kits/general.php b/resources/lang/de-if/admin/kits/general.php index 32471ce00..7861933cb 100644 --- a/resources/lang/de-if/admin/kits/general.php +++ b/resources/lang/de-if/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit wurde erfolgreich gelöscht', 'kit_model_updated' => 'Modell wurde erfolgreich aktualisiert', 'kit_model_detached' => 'Modell wurde erfolgreich gelöst', + 'model_already_attached' => 'Dieses Modell ist bereits einem Kit zugewiesen', ]; diff --git a/resources/lang/de-if/admin/locations/message.php b/resources/lang/de-if/admin/locations/message.php index edff9d7d5..7c4f2485f 100644 --- a/resources/lang/de-if/admin/locations/message.php +++ b/resources/lang/de-if/admin/locations/message.php @@ -3,11 +3,12 @@ return array( 'does_not_exist' => 'Standort existiert nicht.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', + 'assoc_users' => 'Dieser Standort kann derzeit nicht gelöscht werden, da er der Standort der Aufzeichnung für mindestens ein Asset oder einen Benutzer ist, ihm Assets zugewiesen sind oder er der übergeordnete Standort eines anderen Standorts ist. Aktualisiere deine Modelle, damit dieser Standort nicht mehr referenziert wird, und versuche es erneut. ', 'assoc_assets' => 'Dieser Standort ist mindestens einem Gegenstand zugewiesen und kann nicht gelöscht werden. Bitte entferne die Standortzuweisung bei den jeweiligen Gegenständen und versuche erneut, diesen Standort zu entfernen. ', 'assoc_child_loc' => 'Dieser Standort ist mindestens einem anderen Ort übergeordnet und kann nicht gelöscht werden. Bitte aktualisiere Deine Standorte, so dass dieser Standort nicht mehr verknüpft ist, und versuche es erneut. ', 'assigned_assets' => 'Zugeordnete Assets', 'current_location' => 'Aktueller Standort', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Standort erfolgreich aktualisiert.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Bist Du sicher, dass Du diesen Standort löschen willst?', 'error' => 'Es gab einen Fehler beim Löschen des Standorts. Bitte erneut versuchen.', diff --git a/resources/lang/de-if/admin/models/message.php b/resources/lang/de-if/admin/models/message.php index ab6c2b25e..5b0093319 100644 --- a/resources/lang/de-if/admin/models/message.php +++ b/resources/lang/de-if/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNUNG! Das Asset Modell für dieses Element ist ungültig oder fehlt!', 'no_association_fix' => 'Dies wird Dinge auf seltsame und schreckliche Weise zerstören. Bearbeite dieses Asset jetzt, um ihm ein Modell zuzuordnen.', 'assoc_users' => 'Dieses Modell ist zur Zeit mit einem oder mehreren Assets verknüpft und kann nicht gelöscht werden. Bitte lösche die Assets und versuche dann erneut, das Modell zu löschen. ', - 'invalid_category_type' => 'Die Kategorie muss eine Asset-Kategorie sein.', + 'invalid_category_type' => 'Diese Kategorie muss eine Asset-Kategorie sein.', 'create' => array( 'error' => 'Modell wurde nicht erstellt. Bitte versuche es noch einmal.', diff --git a/resources/lang/de-if/admin/settings/general.php b/resources/lang/de-if/admin/settings/general.php index dd7c6ed08..ca3b2c022 100644 --- a/resources/lang/de-if/admin/settings/general.php +++ b/resources/lang/de-if/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'Dieses Bild wird als Profilbild angezeigt, wenn ein Benutzer kein Profilbild festgelegt hat.', 'restore_default_avatar' => 'Ursprünglichen Standard-Avatar des Systems wiederherstellen', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Zum Einchecken fällig Warnung', + 'due_checkin_days_help' => 'Wie viele Tage vor dem voraussichtlichen Check-in eines Vermögenswerts soll dieser auf der Seite „Zur Eincheckzeit fällig“ aufgeführt werden?', ]; diff --git a/resources/lang/de-if/admin/settings/message.php b/resources/lang/de-if/admin/settings/message.php index 7c16900f4..c0a93dafc 100644 --- a/resources/lang/de-if/admin/settings/message.php +++ b/resources/lang/de-if/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Bist Du sicher, dass Du Deine Datenbank aus :filename wiederherstellen möchten?' ], 'restore' => [ - 'success' => 'Dein Systembackup wurde wiederhergestellt. Bitte melde dich erneut an.' + 'success' => 'Ihr Systembackup wurde wiederhergestellt. Bitte melde dich erneut an.' ], 'purge' => [ 'error' => 'Beim Bereinigen ist ein Fehler augetreten. ', diff --git a/resources/lang/de-if/general.php b/resources/lang/de-if/general.php index d2e1b9f3b..71794e03b 100644 --- a/resources/lang/de-if/general.php +++ b/resources/lang/de-if/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Verbrauchsmaterialien', 'country' => 'Land', 'could_not_restore' => 'Fehler beim Wiederherstellen von :item_type: :error', - 'not_deleted' => ':item_type wurde nicht gelöscht, kann daher nicht wiederhergestellt werden', + 'not_deleted' => 'Diese/s :item_type wurde nicht gelöscht und kann daher nicht wiederhergestellt werden', 'create' => 'Hinzufügen', 'created' => 'Eintrag erstellt', 'created_asset' => 'Asset angelegt', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Diese Anwendung läuft im Produktionsmodus mit debugging aktiviert. Dies kann sensible Daten verfügbar machen, wenn Ihre Anwendung öffentlich zugänglich ist. Deaktiviere den Debug-Modus, indem du den APP_DEBUG-Wert in der .env Datei auf false setzt.', 'delete' => 'Löschen', 'delete_confirm' => 'Bist du sicher, dass du :item löschen möchtest?', - 'delete_confirm_no_undo' => 'Bist Du sicher, dass Du :item löschen möchtest? Dies kann nicht rückgängig gemacht werden.', + 'delete_confirm_no_undo' => 'Möchtest du :item wirklich löschen? Dies kann nicht rückgängig gemacht werden.', 'deleted' => 'Gelöscht', 'delete_seats' => 'Gelöschte Lizenzen', 'deletion_failed' => 'Löschen fehlgeschlagen', @@ -279,7 +279,7 @@ return [ 'site_name' => 'Seitenname', 'state' => 'Bundesland', 'status_labels' => 'Statusbezeichnungen', - 'status_label' => 'Status Label', + 'status_label' => 'Statusbezeichnung', 'status' => 'Status', 'accept_eula' => 'Annahmeerklärung', 'supplier' => 'Lieferant', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets sortiert nach Statustyp', 'pie_chart_type' => 'Dashboard Kreisdiagramm Typ', 'hello_name' => 'Hallo, :name!', - 'unaccepted_profile_warning' => 'Du hast :count Gegenstände, die akzeptiert werden müssen. Klicke hier, um sie anzunehmen oder abzulehnen', + 'unaccepted_profile_warning' => 'Du hast einen Artikel, der akzeptiert werden muss. Klicken hier, um ihn zu akzeptieren oder abzulehnen. | Du hast :count Artikel, die akzeptiert werden müssen. Klicke hier, um sie zu akzeptieren oder abzulehnen', 'start_date' => 'Startdatum', 'end_date' => 'Enddatum', 'alt_uploaded_image_thumbnail' => 'Hochgeladene Miniaturansicht', @@ -559,5 +559,8 @@ return [ 'expires' => 'Ablaufdatum', 'map_fields'=> 'Feld :item_type zuordnen', 'remaining_var' => ':count verbleibend', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/el-GR/admin/hardware/message.php b/resources/lang/el-GR/admin/hardware/message.php index a248d108d..3e3897be0 100644 --- a/resources/lang/el-GR/admin/hardware/message.php +++ b/resources/lang/el-GR/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Το αρχείο σας έχει διαγραφεί με επιτυχία', 'file_delete_error' => 'Το αρχείο δεν μπόρεσε να διαγραφεί', 'file_missing' => 'Λείπει το επιλεγμένο αρχείο', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Ένα ή περισσότερα χαρακτηριστικά στη σειρά κεφαλίδας περιέχουν κακοσχηματισμένους UTF-8 χαρακτήρες', 'content_row_has_malformed_characters' => 'Ένα ή περισσότερα χαρακτηριστικά στην πρώτη σειρά περιεχομένου περιέχουν κακοσχηματισμένους UTF-8 χαρακτήρες', ], diff --git a/resources/lang/el-GR/admin/kits/general.php b/resources/lang/el-GR/admin/kits/general.php index 49d64a2ce..b004cc205 100644 --- a/resources/lang/el-GR/admin/kits/general.php +++ b/resources/lang/el-GR/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Το κιτ διαγράφηκε με επιτυχία', 'kit_model_updated' => 'Το μοντέλο ενημερώθηκε με επιτυχία', 'kit_model_detached' => 'Το μοντέλο αποσυνδέθηκε με επιτυχία', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/el-GR/admin/locations/message.php b/resources/lang/el-GR/admin/locations/message.php index 54138905f..e6a7abf90 100644 --- a/resources/lang/el-GR/admin/locations/message.php +++ b/resources/lang/el-GR/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Αυτή η τοποθεσία είναι αυτήν τη στιγμή γονέας τουλάχιστον μιας τοποθεσίας παιδιού και δεν μπορεί να διαγραφεί. Ενημερώστε τις τοποθεσίες σας ώστε να μην αναφέρονται πλέον σε αυτήν την τοποθεσία και δοκιμάστε ξανά.', 'assigned_assets' => 'Αντιστοιχισμένα Στοιχεία Ενεργητικού', 'current_location' => 'Τρέχουσα Τοποθεσία', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Η τοποθεσία αναβαθμίστηκε επιτυχώς.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την τοποθεσία;', 'error' => 'Παρουσιάστηκε πρόβλημα κατά τη διαγραφή της τοποθεσίας. ΠΑΡΑΚΑΛΩ προσπαθησε ξανα.', diff --git a/resources/lang/el-GR/admin/models/message.php b/resources/lang/el-GR/admin/models/message.php index af43cc216..f9ab48b1d 100644 --- a/resources/lang/el-GR/admin/models/message.php +++ b/resources/lang/el-GR/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'ΠΡΟΣΟΧΗ! Το μοντέλο στοιχείων ενεργητικού για αυτό το στοιχείο δεν είναι έγκυρο ή λείπει!', 'no_association_fix' => 'Αυτό θα σπάσει τα πράγματα με περίεργους και φρικτούς τρόπους. Επεξεργαστείτε αυτό το στοιχείο τώρα για να το αντιστοιχίσετε ένα μοντέλο.', 'assoc_users' => 'Αυτό το μοντέλο συσχετίζεται επί του παρόντος με ένα ή περισσότερα στοιχεία και δεν μπορεί να διαγραφεί. Διαγράψτε τα στοιχεία και, στη συνέχεια, δοκιμάστε ξανά τη διαγραφή.', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Το μοντέλο δεν δημιουργήθηκε, παρακαλώ προσπαθήστε ξανά.', diff --git a/resources/lang/el-GR/admin/settings/general.php b/resources/lang/el-GR/admin/settings/general.php index 40ba52dba..d6fe5191a 100644 --- a/resources/lang/el-GR/admin/settings/general.php +++ b/resources/lang/el-GR/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/el-GR/admin/settings/message.php b/resources/lang/el-GR/admin/settings/message.php index 68595522e..a54ade33a 100644 --- a/resources/lang/el-GR/admin/settings/message.php +++ b/resources/lang/el-GR/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Είστε βέβαιοι ότι θέλετε να επαναφέρετε τη βάση δεδομένων σας από :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Παρουσιάστηκε ένα σφάλμα κατά την εκκαθάριση. ', diff --git a/resources/lang/el-GR/general.php b/resources/lang/el-GR/general.php index 19dcb6145..053f6de8b 100644 --- a/resources/lang/el-GR/general.php +++ b/resources/lang/el-GR/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Αναλώσιμα', 'country' => 'Χώρα', 'could_not_restore' => 'Σφάλμα επαναφοράς :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Δημιουργία νέου', 'created' => 'Το αντικείμενο δημιουργήθηκε', 'created_asset' => 'δημιουργία παγίου', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Αυτή η εφαρμογή εκτελείται σε λειτουργία παραγωγής με ενεργοποιημένο τον εντοπισμό σφαλμάτων. Αυτό μπορεί να εκθέσει τα ευαίσθητα δεδομένα, εάν η εφαρμογή σας είναι προσβάσιμη στον έξω κόσμο. Απενεργοποιήσετε την κατάσταση λειτουργίας εντοπισμού σφαλμάτων, ορίζοντας την τιμή APP_DEBUG στο αρχείο .env για να false.', 'delete' => 'Διαγραφή', 'delete_confirm' => 'Επιθυμείτε την διαφραφή :item;', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Διαγράφηκε', 'delete_seats' => 'Διαγραμμένα καθίσματα', 'deletion_failed' => 'Αποτυχία διαγραφής', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Μεταφόρτωση εικόνας', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Αυτό το αρχείο εικόνας δεν ήταν αναγνώσιμο. Οι αποδεκτοί τύποι αρχείων είναι jpg, webp, png, gif, και svg. Ο τύπος mime αυτού του αρχείου είναι: :mimetype.', 'import' => 'Εισαγωγή', 'import_this_file' => 'Χάρτης πεδίων και επεξεργασία αυτού του αρχείου', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => '4Ο Βήμα.', 'setup_config_check' => 'Έλεγχος Ρύθμισης', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Ολοκληρώθηκε!', 'bulk_edit_about_to' => 'Πρόκειται να επεξεργαστείτε τα ακόλουθα: ', 'checked_out' => 'Checked Out', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Ενεργητικό ανά τύπο κατάστασης', 'pie_chart_type' => 'Τύπος Γραφήματος Πίτας Ταινιών', 'hello_name' => 'Γεια Σε, :name!', - 'unaccepted_profile_warning' => 'Έχετε :count στοιχεία που απαιτούν αποδοχή. Κάντε κλικ εδώ για να τα αποδεχτείτε ή να τα απορρίψετε', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Ημερομηνία Έναρξης', 'end_date' => 'Ημερομηνία Λήξης', 'alt_uploaded_image_thumbnail' => 'Ανεβασμένη μικρογραφία', @@ -559,5 +559,8 @@ return [ 'expires' => 'Λήξη', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/en-GB/admin/hardware/message.php b/resources/lang/en-GB/admin/hardware/message.php index 9e7410d47..90e3ef287 100644 --- a/resources/lang/en-GB/admin/hardware/message.php +++ b/resources/lang/en-GB/admin/hardware/message.php @@ -59,6 +59,7 @@ return [ 'file_delete_success' => 'Your file has been been successfully deleted', 'file_delete_error' => 'The file was unable to be deleted', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/en-GB/admin/kits/general.php b/resources/lang/en-GB/admin/kits/general.php index 3afeb9c9b..9e3db9323 100644 --- a/resources/lang/en-GB/admin/kits/general.php +++ b/resources/lang/en-GB/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/en-GB/admin/locations/message.php b/resources/lang/en-GB/admin/locations/message.php index 6226c71ab..488ec9c67 100644 --- a/resources/lang/en-GB/admin/locations/message.php +++ b/resources/lang/en-GB/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Location updated successfully.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Are you sure you wish to delete this location?', 'error' => 'There was an issue deleting the location. Please try again.', diff --git a/resources/lang/en-GB/admin/models/message.php b/resources/lang/en-GB/admin/models/message.php index f61a2c535..ae3bc34ee 100644 --- a/resources/lang/en-GB/admin/models/message.php +++ b/resources/lang/en-GB/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'This model is currently associated with one or more assets and cannot be deleted. Please delete the assets, and then try deleting again. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model was not created, please try again.', diff --git a/resources/lang/en-GB/admin/settings/general.php b/resources/lang/en-GB/admin/settings/general.php index 2762238ec..3f6d3ebd3 100644 --- a/resources/lang/en-GB/admin/settings/general.php +++ b/resources/lang/en-GB/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/en-GB/general.php b/resources/lang/en-GB/general.php index 353085d09..4a37c0de3 100644 --- a/resources/lang/en-GB/general.php +++ b/resources/lang/en-GB/general.php @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name.', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Expires', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/en-ID/admin/hardware/message.php b/resources/lang/en-ID/admin/hardware/message.php index 4a2b41e57..63a93cda5 100644 --- a/resources/lang/en-ID/admin/hardware/message.php +++ b/resources/lang/en-ID/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'File anda telah berhasil dihapus', 'file_delete_error' => 'File tidak dapat dihapus', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/en-ID/admin/kits/general.php b/resources/lang/en-ID/admin/kits/general.php index 217888ce1..381317b82 100644 --- a/resources/lang/en-ID/admin/kits/general.php +++ b/resources/lang/en-ID/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/en-ID/admin/locations/message.php b/resources/lang/en-ID/admin/locations/message.php index cabfa697b..07cc078b3 100644 --- a/resources/lang/en-ID/admin/locations/message.php +++ b/resources/lang/en-ID/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Lokasi ini saat ini merupakan induk dari setidaknya satu lokasi anak dan tidak dapat dihapus. Perbarui lokasi Anda agar tidak lagi merujuk lokasi ini dan coba lagi. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Lokasi berhasil diperbarui.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Apakah anda yakin ingin menghapus lokasi ini?', 'error' => 'Terjadi masalah saat menghapus lokasi. Silahkan coba lagi.', diff --git a/resources/lang/en-ID/admin/settings/general.php b/resources/lang/en-ID/admin/settings/general.php index bcc02ebef..9d5e2af9f 100644 --- a/resources/lang/en-ID/admin/settings/general.php +++ b/resources/lang/en-ID/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/en-ID/general.php b/resources/lang/en-ID/general.php index daf32dd29..e68b355df 100644 --- a/resources/lang/en-ID/general.php +++ b/resources/lang/en-ID/general.php @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Tanggal Mulai', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Berakhir', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/es-CO/account/general.php b/resources/lang/es-CO/account/general.php index 4280c37db..df7820e87 100644 --- a/resources/lang/es-CO/account/general.php +++ b/resources/lang/es-CO/account/general.php @@ -13,5 +13,5 @@ return array( 'profile_updated' => 'La cuenta fue actualizada exitosamente', 'no_tokens' => 'No ha creado ninguna credencial de acceso personal.', 'enable_sounds' => 'Habilitar efectos de sonido', - 'enable_confetti' => 'Enable confetti effects', + 'enable_confetti' => 'Activar los efectos confeti', ); diff --git a/resources/lang/es-CO/admin/hardware/message.php b/resources/lang/es-CO/admin/hardware/message.php index 29f0bd572..0f2225cce 100644 --- a/resources/lang/es-CO/admin/hardware/message.php +++ b/resources/lang/es-CO/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Su archivo se ha eliminado correctamente', 'file_delete_error' => 'El archivo no se pudo eliminar', 'file_missing' => 'Falta el archivo seleccionado', + 'file_already_deleted' => 'El archivo seleccionado ya fue eliminado', 'header_row_has_malformed_characters' => 'Uno o más atributos en la fila del encabezado contienen caracteres UTF-8 mal formados', 'content_row_has_malformed_characters' => 'Uno o más atributos en la primera fila de contenido contienen caracteres UTF-8 mal formados', ], diff --git a/resources/lang/es-CO/admin/kits/general.php b/resources/lang/es-CO/admin/kits/general.php index 4632a913e..62db6b923 100644 --- a/resources/lang/es-CO/admin/kits/general.php +++ b/resources/lang/es-CO/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit eliminado correctamente', 'kit_model_updated' => 'El modelo fue actualizado correctamente', 'kit_model_detached' => 'Modelo fue separado con éxito', + 'model_already_attached' => 'Modelo ya vinculado al kit', ]; diff --git a/resources/lang/es-CO/admin/locations/message.php b/resources/lang/es-CO/admin/locations/message.php index 05fd77702..67a85e4d2 100644 --- a/resources/lang/es-CO/admin/locations/message.php +++ b/resources/lang/es-CO/admin/locations/message.php @@ -3,11 +3,12 @@ return array( 'does_not_exist' => 'La ubicación no existe.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', + 'assoc_users' => 'Esta ubicación no se puede eliminar actualmente porque es la ubicación de al menos un activo o un usuario, tiene activos asignados o es la ubicación padre de otra ubicación. Por favor actualice sus modelos para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assoc_assets' => 'Esta ubicación está actualmente asociada con al menos un activo y no puede ser eliminada. Por favor actualice sus activos para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assoc_child_loc' => 'Esta ubicación es actualmente el padre de al menos una ubicación hija y no puede ser eliminada. Por favor actualice sus ubicaciones para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assigned_assets' => 'Activos asignados', 'current_location' => 'Ubicación actual', + 'open_map' => 'Abrir en mapas :map_provider_icon', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'La ubicación fue actualizada exitosamente.' ), + 'restore' => array( + 'error' => 'No se ha restaurado la ubicación, inténtelo de nuevo', + 'success' => 'La ubicación fue restaurada exitosamente.' + ), + 'delete' => array( 'confirm' => '¿Está seguro de que desea eliminar esta ubicación?', 'error' => 'Hubo un problema eliminando la ubicación. Por favor, inténtelo de nuevo.', diff --git a/resources/lang/es-CO/admin/models/message.php b/resources/lang/es-CO/admin/models/message.php index 2ee6384ce..56e29af02 100644 --- a/resources/lang/es-CO/admin/models/message.php +++ b/resources/lang/es-CO/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => '¡ADVERTENCIA! ¡El modelo de activo para este artículo no es válido o no existe!', 'no_association_fix' => 'Esto romperá cosas de formas extrañas y horribles. Edite este activo ahora para asignarle un modelo.', 'assoc_users' => 'Este modelo está asociado a uno o más activos y no puede ser eliminado. Por favor, elimine los activos y vuelva a intentarlo. ', - 'invalid_category_type' => 'Esta categoría debe ser una categoría de activos.', + 'invalid_category_type' => 'El tipo de esta categoría debe ser categoría de activos.', 'create' => array( 'error' => 'El modelo no fue creado, por favor inténtelo de nuevo.', diff --git a/resources/lang/es-CO/admin/settings/general.php b/resources/lang/es-CO/admin/settings/general.php index b377fe74d..b5fb99dec 100644 --- a/resources/lang/es-CO/admin/settings/general.php +++ b/resources/lang/es-CO/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'Esta imagen se mostrará como la imagen de perfil si el usuario no tiene foto de perfil.', 'restore_default_avatar' => 'Restaurar avatar original por defecto del sistema', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Advertencia para próximos ingresos', + 'due_checkin_days_help' => '¿Cuántos días antes de la fecha prevista de ingreso de un activo debe figurar en la página «Próximos a ingresar»?', ]; diff --git a/resources/lang/es-CO/admin/settings/message.php b/resources/lang/es-CO/admin/settings/message.php index 709b68b25..249cdc401 100644 --- a/resources/lang/es-CO/admin/settings/message.php +++ b/resources/lang/es-CO/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => '¿Está seguro que desea restaurar su base de datos desde :filename?' ], 'restore' => [ - 'success' => 'Su copia de respaldo del sistema ha sido restaurada. Por favor, inicie sesión nuevamente.' + 'success' => 'Se ha restaurado la copia de seguridad de su sistema. Por favor, vuelva a iniciar sesión.' ], 'purge' => [ 'error' => 'Se ha producido un error al purgar. ', diff --git a/resources/lang/es-CO/general.php b/resources/lang/es-CO/general.php index 73870947f..3b24e50c3 100644 --- a/resources/lang/es-CO/general.php +++ b/resources/lang/es-CO/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumibles', 'country' => 'País', 'could_not_restore' => 'Error al restaurar :item_type: :error', - 'not_deleted' => ':item_type no está eliminado; por lo tanto, no se puede restaurar', + 'not_deleted' => 'El tipo :item_type no se ha borrado y, por lo tanto, no se puede restaurar', 'create' => 'Crear nuevo', 'created' => 'Artículo creado', 'created_asset' => 'activo creado', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Esta aplicación se está ejecutando en modo producción con depuración habilitada. Esto puede exponer datos sensibles si su aplicación es accedida desde el mundo exterior. Deshabilite el modo de depuración configurando el valor APP_DEBUG en su archivo .env a false.', 'delete' => 'Eliminar', 'delete_confirm' => '¿Está seguro de que desea eliminar :item?', - 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no puede deshacerse.', + 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no se puede deshacer.', 'deleted' => 'Eliminado', 'delete_seats' => 'Licencias eliminadas', 'deletion_failed' => 'Error al eliminar', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Cargar imagen', 'filetypes_accepted_help' => 'El tipo de archivo aceptado es :types. El tamaño máximo permitido es :size.|Los tipos de archivo aceptados son :types. El tamaño máximo permitido para cargar es :size.', 'filetypes_size_help' => 'El tamaño máximo permitido para cargar es :size.', - 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg, y avif. El tamaño máximo permitido para cargar es :size.', + 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg y avif. El tamaño máximo permitido es :size.', 'unaccepted_image_type' => 'Este archivo de imagen no fue legible. Los tipos de archivo aceptados son jpg, webp, png, gif y svg. El tipo mimetype de este archivo es: :mimetype.', 'import' => 'Importar', 'import_this_file' => 'Asociar campos y procesar este archivo', @@ -279,7 +279,7 @@ return [ 'site_name' => 'Nombre del sitio', 'state' => 'Departamento', 'status_labels' => 'Etiquetas de estado', - 'status_label' => 'Status Label', + 'status_label' => 'Etiqueta de estado', 'status' => 'Estado', 'accept_eula' => 'Acuerdo de aceptación', 'supplier' => 'Proveedor', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Paso 4', 'setup_config_check' => 'Comprobar configuración', 'setup_create_database' => 'Crear tablas de la base de datos', - 'setup_create_admin' => 'Crear usuario administrador', + 'setup_create_admin' => 'Crear un usuario administrador', 'setup_done' => '¡Terminado!', 'bulk_edit_about_to' => 'Está a punto de editar lo siguiente: ', 'checked_out' => 'Asignado a', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Activos por tipo de estado', 'pie_chart_type' => 'Tipo de gráfico circular en el tablero', 'hello_name' => '¡Hola, :name!', - 'unaccepted_profile_warning' => 'Tiene :count elemento(s) que requiere(n) aceptación. Haga clic aquí para aceptarlo(s) o rechazarlo(s)', + 'unaccepted_profile_warning' => 'Tiene un elemento que requiere aceptación. Haga clic aquí para aceptarlo o rechazarlo | Tiene :count elementos que requieren aceptación. Haga clic aquí para aceptarlos o rechazarlos', 'start_date' => 'Fecha de inicio', 'end_date' => 'Fecha de fin', 'alt_uploaded_image_thumbnail' => 'Miniatura cargada', @@ -559,5 +559,8 @@ return [ 'expires' => 'Vence', 'map_fields'=> 'Asociar campos para :item_type', 'remaining_var' => ':count restantes', + 'assets_in_var' => 'Activos en :name :type', + 'label' => 'Etiqueta', + 'import_asset_tag_exists' => 'Ya existe un activo con la placa :asset_tag y no se ha solicitado una actualización. No se ha realizado ningún cambio.', ]; diff --git a/resources/lang/es-ES/account/general.php b/resources/lang/es-ES/account/general.php index 57338d964..b0337d714 100644 --- a/resources/lang/es-ES/account/general.php +++ b/resources/lang/es-ES/account/general.php @@ -13,5 +13,5 @@ return array( 'profile_updated' => 'La cuenta fue actualizada exitosamente', 'no_tokens' => 'No ha creado ninguna credencial de acceso personal.', 'enable_sounds' => 'Habilitar efectos de sonido', - 'enable_confetti' => 'Enable confetti effects', + 'enable_confetti' => 'Activar los efectos confeti', ); diff --git a/resources/lang/es-ES/admin/hardware/message.php b/resources/lang/es-ES/admin/hardware/message.php index 9d73bd3fe..6393d33da 100644 --- a/resources/lang/es-ES/admin/hardware/message.php +++ b/resources/lang/es-ES/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Su archivo se ha eliminado correctamente', 'file_delete_error' => 'El archivo no se pudo eliminar', 'file_missing' => 'Falta el archivo seleccionado', + 'file_already_deleted' => 'El archivo seleccionado ya fue eliminado', 'header_row_has_malformed_characters' => 'Uno o más atributos en la fila del encabezado contienen caracteres UTF-8 mal formados', 'content_row_has_malformed_characters' => 'Uno o más atributos en la primera fila de contenido contienen caracteres UTF-8 mal formados', ], diff --git a/resources/lang/es-ES/admin/kits/general.php b/resources/lang/es-ES/admin/kits/general.php index b9d6481df..cd05d25ba 100644 --- a/resources/lang/es-ES/admin/kits/general.php +++ b/resources/lang/es-ES/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit eliminado correctamente', 'kit_model_updated' => 'El modelo fue actualizado correctamente', 'kit_model_detached' => 'Modelo desvinculado correctamente', + 'model_already_attached' => 'Modelo ya vinculado al kit', ]; diff --git a/resources/lang/es-ES/admin/locations/message.php b/resources/lang/es-ES/admin/locations/message.php index 05fd77702..67a85e4d2 100644 --- a/resources/lang/es-ES/admin/locations/message.php +++ b/resources/lang/es-ES/admin/locations/message.php @@ -3,11 +3,12 @@ return array( 'does_not_exist' => 'La ubicación no existe.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', + 'assoc_users' => 'Esta ubicación no se puede eliminar actualmente porque es la ubicación de al menos un activo o un usuario, tiene activos asignados o es la ubicación padre de otra ubicación. Por favor actualice sus modelos para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assoc_assets' => 'Esta ubicación está actualmente asociada con al menos un activo y no puede ser eliminada. Por favor actualice sus activos para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assoc_child_loc' => 'Esta ubicación es actualmente el padre de al menos una ubicación hija y no puede ser eliminada. Por favor actualice sus ubicaciones para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assigned_assets' => 'Activos asignados', 'current_location' => 'Ubicación actual', + 'open_map' => 'Abrir en mapas :map_provider_icon', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'La ubicación fue actualizada exitosamente.' ), + 'restore' => array( + 'error' => 'No se ha restaurado la ubicación, inténtelo de nuevo', + 'success' => 'La ubicación fue restaurada exitosamente.' + ), + 'delete' => array( 'confirm' => '¿Está seguro de que desea eliminar esta ubicación?', 'error' => 'Hubo un problema eliminando la ubicación. Por favor, inténtelo de nuevo.', diff --git a/resources/lang/es-ES/admin/models/message.php b/resources/lang/es-ES/admin/models/message.php index eb48d3f81..fde8ae870 100644 --- a/resources/lang/es-ES/admin/models/message.php +++ b/resources/lang/es-ES/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => '¡ADVERTENCIA! ¡El modelo de activo para este artículo no es válido o no existe!', 'no_association_fix' => 'Esto romperá cosas de formas extrañas y horribles. Edite este activo ahora para asignarle un modelo.', 'assoc_users' => 'Este modelo está asociado a uno o más activos y no puede ser eliminado. Por favor, elimine los activos y vuelva a intentarlo. ', - 'invalid_category_type' => 'Esta categoría debe ser una categoría de activos.', + 'invalid_category_type' => 'El tipo de esta categoría debe ser categoría de activos.', 'create' => array( 'error' => 'El modelo no fue creado, por favor inténtelo de nuevo.', diff --git a/resources/lang/es-ES/admin/settings/general.php b/resources/lang/es-ES/admin/settings/general.php index b7820fc14..bedddec53 100644 --- a/resources/lang/es-ES/admin/settings/general.php +++ b/resources/lang/es-ES/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'Esta imagen se mostrará como la imagen de perfil si el usuario no tiene foto de perfil.', 'restore_default_avatar' => 'Restaurar avatar original por defecto del sistema', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Advertencia para próximos ingresos', + 'due_checkin_days_help' => '¿Cuántos días antes de la fecha prevista de ingreso de un activo debe figurar en la página «Próximos a ingresar»?', ]; diff --git a/resources/lang/es-ES/admin/settings/message.php b/resources/lang/es-ES/admin/settings/message.php index 926883aa8..f3856be1c 100644 --- a/resources/lang/es-ES/admin/settings/message.php +++ b/resources/lang/es-ES/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => '¿Está seguro que desea restaurar su base de datos desde :filename?' ], 'restore' => [ - 'success' => 'Su copia de respaldo del sistema ha sido restaurada. Por favor, inicie sesión nuevamente.' + 'success' => 'Se ha restaurado la copia de seguridad de su sistema. Por favor, vuelva a iniciar sesión.' ], 'purge' => [ 'error' => 'Ha ocurrido un error mientras se realizaba el purgado. ', diff --git a/resources/lang/es-ES/general.php b/resources/lang/es-ES/general.php index 9b62f9080..4bfdcd9ee 100644 --- a/resources/lang/es-ES/general.php +++ b/resources/lang/es-ES/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumibles', 'country' => 'País', 'could_not_restore' => 'Error al restaurar :item_type: :error', - 'not_deleted' => ':item_type no está eliminado; por lo tanto, no se puede restaurar', + 'not_deleted' => 'El tipo :item_type no se ha borrado y, por lo tanto, no se puede restaurar', 'create' => 'Crear nuevo', 'created' => 'Artículo creado', 'created_asset' => 'equipo creado', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Esta aplicación se está ejecutando en modo producción con depuración habilitada. Esto puede exponer datos sensibles si su aplicación es accedida desde el mundo exterior. Deshabilite el modo de depuración configurando el valor APP_DEBUG en su archivo .env a false.', 'delete' => 'Borrar', 'delete_confirm' => '¿Está seguro de que desea eliminar :item?', - 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no puede deshacerse.', + 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no se puede deshacer.', 'deleted' => 'Borrado', 'delete_seats' => 'Licencias eliminadas', 'deletion_failed' => 'Error al eliminar', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Cargar imagen', 'filetypes_accepted_help' => 'El tipo de archivo aceptado es :types. El tamaño máximo permitido es :size.|Los tipos de archivo aceptados son :types. El tamaño máximo permitido para cargar es :size.', 'filetypes_size_help' => 'El tamaño máximo permitido para cargar es :size.', - 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg, y avif. El tamaño máximo permitido para cargar es :size.', + 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg y avif. El tamaño máximo permitido es :size.', 'unaccepted_image_type' => 'No se pudo leer este archivo de imagen. Los tipos de archivo aceptados son jpg, webp, png, gif y svg. El tipo mimetype de este archivo es: :mimetype.', 'import' => 'Importar', 'import_this_file' => 'Asociar campos y procesar este archivo', @@ -279,7 +279,7 @@ return [ 'site_name' => 'Sitio', 'state' => 'Provincia', 'status_labels' => 'Etiquetas de estado', - 'status_label' => 'Status Label', + 'status_label' => 'Etiqueta de estado', 'status' => 'Estado', 'accept_eula' => 'Acuerdo de aceptación', 'supplier' => 'Proveedor', @@ -337,7 +337,7 @@ return [ 'clear_signature' => 'Borrar firma', 'show_help' => 'Mostrar ayuda', 'hide_help' => 'Ocultar ayuda', - 'view_all' => 'ver todo', + 'view_all' => 'ver todos', 'hide_deleted' => 'Ocultar eliminados', 'email' => 'Correo electrónico', 'do_not_change' => 'No cambiar', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Paso 4', 'setup_config_check' => 'Comprobar configuración', 'setup_create_database' => 'Crear tablas de la base de datos', - 'setup_create_admin' => 'Crear usuario administrador', + 'setup_create_admin' => 'Crear un usuario administrador', 'setup_done' => '¡Terminado!', 'bulk_edit_about_to' => 'Está a punto de editar lo siguiente: ', 'checked_out' => 'Asignado', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Activos por tipo de estado', 'pie_chart_type' => 'Tipo de gráfico circular en el tablero', 'hello_name' => '¡Hola, :name!', - 'unaccepted_profile_warning' => 'Tiene :count elemento(s) que requiere(n) aceptación. Haga clic aquí para aceptarlo(s) o rechazarlo(s)', + 'unaccepted_profile_warning' => 'Tiene un elemento que requiere aceptación. Haga clic aquí para aceptarlo o rechazarlo | Tiene :count elementos que requieren aceptación. Haga clic aquí para aceptarlos o rechazarlos', 'start_date' => 'Fecha de inicio', 'end_date' => 'Fecha de fin', 'alt_uploaded_image_thumbnail' => 'Miniatura cargada', @@ -559,5 +559,8 @@ return [ 'expires' => 'Vence', 'map_fields'=> 'Asociar campos para :item_type', 'remaining_var' => ':count restantes', + 'assets_in_var' => 'Activos en :name :type', + 'label' => '', + 'import_asset_tag_exists' => 'Ya existe un activo con la placa :asset_tag y no se ha solicitado una actualización. No se ha realizado ningún cambio.', ]; diff --git a/resources/lang/es-MX/account/general.php b/resources/lang/es-MX/account/general.php index 4280c37db..df7820e87 100644 --- a/resources/lang/es-MX/account/general.php +++ b/resources/lang/es-MX/account/general.php @@ -13,5 +13,5 @@ return array( 'profile_updated' => 'La cuenta fue actualizada exitosamente', 'no_tokens' => 'No ha creado ninguna credencial de acceso personal.', 'enable_sounds' => 'Habilitar efectos de sonido', - 'enable_confetti' => 'Enable confetti effects', + 'enable_confetti' => 'Activar los efectos confeti', ); diff --git a/resources/lang/es-MX/admin/hardware/message.php b/resources/lang/es-MX/admin/hardware/message.php index 530fe870e..42e2e9f3a 100644 --- a/resources/lang/es-MX/admin/hardware/message.php +++ b/resources/lang/es-MX/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Su archivo se ha eliminado correctamente', 'file_delete_error' => 'El archivo no se pudo eliminar', 'file_missing' => 'Falta el archivo seleccionado', + 'file_already_deleted' => 'El archivo seleccionado ya fue eliminado', 'header_row_has_malformed_characters' => 'Uno o más atributos de la fila de encabezado contiene caracteres UTF-8 mal formados', 'content_row_has_malformed_characters' => 'Uno o más atributos de la fila de encabezado contiene caracteres UTF-8 mal formados', ], diff --git a/resources/lang/es-MX/admin/kits/general.php b/resources/lang/es-MX/admin/kits/general.php index bd54b656e..11617694c 100644 --- a/resources/lang/es-MX/admin/kits/general.php +++ b/resources/lang/es-MX/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'El kit ha sido eliminado correctamente', 'kit_model_updated' => 'El modelo fue actualizado correctamente', 'kit_model_detached' => 'Modelo desvinculado correctamente', + 'model_already_attached' => 'Modelo ya vinculado al kit', ]; diff --git a/resources/lang/es-MX/admin/locations/message.php b/resources/lang/es-MX/admin/locations/message.php index 05fd77702..67a85e4d2 100644 --- a/resources/lang/es-MX/admin/locations/message.php +++ b/resources/lang/es-MX/admin/locations/message.php @@ -3,11 +3,12 @@ return array( 'does_not_exist' => 'La ubicación no existe.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', + 'assoc_users' => 'Esta ubicación no se puede eliminar actualmente porque es la ubicación de al menos un activo o un usuario, tiene activos asignados o es la ubicación padre de otra ubicación. Por favor actualice sus modelos para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assoc_assets' => 'Esta ubicación está actualmente asociada con al menos un activo y no puede ser eliminada. Por favor actualice sus activos para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assoc_child_loc' => 'Esta ubicación es actualmente el padre de al menos una ubicación hija y no puede ser eliminada. Por favor actualice sus ubicaciones para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assigned_assets' => 'Activos asignados', 'current_location' => 'Ubicación actual', + 'open_map' => 'Abrir en mapas :map_provider_icon', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'La ubicación fue actualizada exitosamente.' ), + 'restore' => array( + 'error' => 'No se ha restaurado la ubicación, inténtelo de nuevo', + 'success' => 'La ubicación fue restaurada exitosamente.' + ), + 'delete' => array( 'confirm' => '¿Está seguro de que desea eliminar esta ubicación?', 'error' => 'Hubo un problema eliminando la ubicación. Por favor, inténtelo de nuevo.', diff --git a/resources/lang/es-MX/admin/models/message.php b/resources/lang/es-MX/admin/models/message.php index 3476d1c3f..4bbc09023 100644 --- a/resources/lang/es-MX/admin/models/message.php +++ b/resources/lang/es-MX/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => '¡ADVERTENCIA! ¡El modelo de activo para este artículo no es válido o no existe!', 'no_association_fix' => 'Esto causará problemas raros y horribles. Edita este activo para asignarlo a un modelo.', 'assoc_users' => 'Este modelo está asociado a uno o más activos y no puede ser eliminado. Por favor, elimine los activos y vuelva a intentarlo. ', - 'invalid_category_type' => 'Esta categoría debe ser una categoría de activos.', + 'invalid_category_type' => 'El tipo de esta categoría debe ser categoría de activos.', 'create' => array( 'error' => 'El modelo no fue creado, por favor inténtelo de nuevo.', diff --git a/resources/lang/es-MX/admin/settings/general.php b/resources/lang/es-MX/admin/settings/general.php index 367603430..9e5e8d30d 100644 --- a/resources/lang/es-MX/admin/settings/general.php +++ b/resources/lang/es-MX/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'Esta imagen se mostrará como la imagen de perfil si el usuario no tiene foto de perfil.', 'restore_default_avatar' => 'Restaurar avatar original por defecto del sistema', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Advertencia para próximos ingresos', + 'due_checkin_days_help' => '¿Cuántos días antes de la fecha prevista de ingreso de un activo debe figurar en la página «Próximos a ingresar»?', ]; diff --git a/resources/lang/es-MX/admin/settings/message.php b/resources/lang/es-MX/admin/settings/message.php index fb1551e49..4bb4f0e79 100644 --- a/resources/lang/es-MX/admin/settings/message.php +++ b/resources/lang/es-MX/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => '¿Está seguro que desea restaurar su base de datos desde :filename?' ], 'restore' => [ - 'success' => 'Su copia de respaldo del sistema ha sido restaurada. Por favor, inicie sesión nuevamente.' + 'success' => 'Se ha restaurado la copia de seguridad de su sistema. Por favor, vuelva a iniciar sesión.' ], 'purge' => [ 'error' => 'Ha ocurrido un error mientras se realizaba el purgado. ', diff --git a/resources/lang/es-MX/general.php b/resources/lang/es-MX/general.php index 3c73dd8b7..b80745261 100644 --- a/resources/lang/es-MX/general.php +++ b/resources/lang/es-MX/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumibles', 'country' => 'País', 'could_not_restore' => 'Error al restaurar :item_type: :error', - 'not_deleted' => ':item_type no está eliminado; por lo tanto, no se puede restaurar', + 'not_deleted' => 'El tipo :item_type no se ha borrado y, por lo tanto, no se puede restaurar', 'create' => 'Crear nuevo', 'created' => 'Artículo creado', 'created_asset' => 'equipo creado', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Esta aplicación se está ejecutando en modo producción con depuración habilitada. Esto puede exponer datos sensibles si su aplicación es accedida desde el mundo exterior. Deshabilite el modo de depuración configurando el valor APP_DEBUG en su archivo .env a false.', 'delete' => 'Borrar', 'delete_confirm' => '¿Está seguro de que desea eliminar :item?', - 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no puede deshacerse.', + 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no se puede deshacer.', 'deleted' => 'Borrado', 'delete_seats' => 'Licencias eliminadas', 'deletion_failed' => 'Error al eliminar', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Cargar imagen', 'filetypes_accepted_help' => 'El tipo de archivo aceptado es :types. El tamaño máximo permitido es :size.|Los tipos de archivo aceptados son :types. El tamaño máximo permitido para cargar es :size.', 'filetypes_size_help' => 'El tamaño máximo permitido para cargar es :size.', - 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg, y avif. El tamaño máximo permitido para cargar es :size.', + 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg y avif. El tamaño máximo permitido es :size.', 'unaccepted_image_type' => 'No fue posible leer este archivo de imagen. Tipos de archivo aceptados son jpg, webp, png, gif y svg. El mimetype de este archivo es: :mimetype.', 'import' => 'Importar', 'import_this_file' => 'Asociar campos y procesar este archivo', @@ -279,7 +279,7 @@ return [ 'site_name' => 'Sitio', 'state' => 'Provincia', 'status_labels' => 'Etiquetas de estado', - 'status_label' => 'Status Label', + 'status_label' => 'Etiqueta de estado', 'status' => 'Estado', 'accept_eula' => 'Acuerdo de aceptación', 'supplier' => 'Proveedor', @@ -337,7 +337,7 @@ return [ 'clear_signature' => 'Borrar firma', 'show_help' => 'Mostrar ayuda', 'hide_help' => 'Ocultar ayuda', - 'view_all' => 'ver todo', + 'view_all' => 'ver todos', 'hide_deleted' => 'Ocultar eliminados', 'email' => 'Correo electrónico', 'do_not_change' => 'No cambiar', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Paso 4', 'setup_config_check' => 'Comprobar configuración', 'setup_create_database' => 'Crear tablas de la base de datos', - 'setup_create_admin' => 'Crear usuario administrador', + 'setup_create_admin' => 'Crear un usuario administrador', 'setup_done' => '¡Finalizada!', 'bulk_edit_about_to' => 'Está a punto de editar lo siguiente: ', 'checked_out' => 'Asignado', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Activos por tipo de estado', 'pie_chart_type' => 'Tipo de gráfico circular en el tablero', 'hello_name' => '¡Hola, :name!', - 'unaccepted_profile_warning' => 'Tiene :count elemento(s) que requiere(n) aceptación. Haga clic aquí para aceptarlo(s) o rechazarlo(s)', + 'unaccepted_profile_warning' => 'Tiene un elemento que requiere aceptación. Haga clic aquí para aceptarlo o rechazarlo | Tiene :count elementos que requieren aceptación. Haga clic aquí para aceptarlos o rechazarlos', 'start_date' => 'Fecha de inicio', 'end_date' => 'Fecha de fin', 'alt_uploaded_image_thumbnail' => 'Miniatura cargada', @@ -559,5 +559,8 @@ return [ 'expires' => 'Vence', 'map_fields'=> 'Asociar campos para :item_type', 'remaining_var' => ':count restantes', + 'assets_in_var' => 'Activos en :name :type', + 'label' => 'Etiqueta', + 'import_asset_tag_exists' => 'Ya existe un activo con la placa :asset_tag y no se ha solicitado una actualización. No se ha realizado ningún cambio.', ]; diff --git a/resources/lang/es-VE/account/general.php b/resources/lang/es-VE/account/general.php index 4280c37db..df7820e87 100644 --- a/resources/lang/es-VE/account/general.php +++ b/resources/lang/es-VE/account/general.php @@ -13,5 +13,5 @@ return array( 'profile_updated' => 'La cuenta fue actualizada exitosamente', 'no_tokens' => 'No ha creado ninguna credencial de acceso personal.', 'enable_sounds' => 'Habilitar efectos de sonido', - 'enable_confetti' => 'Enable confetti effects', + 'enable_confetti' => 'Activar los efectos confeti', ); diff --git a/resources/lang/es-VE/admin/hardware/message.php b/resources/lang/es-VE/admin/hardware/message.php index 8bef2987e..170de20f0 100644 --- a/resources/lang/es-VE/admin/hardware/message.php +++ b/resources/lang/es-VE/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Su archivo se ha eliminado correctamente', 'file_delete_error' => 'El archivo no se pudo eliminar', 'file_missing' => 'Falta el archivo seleccionado', + 'file_already_deleted' => 'El archivo seleccionado ya fue eliminado', 'header_row_has_malformed_characters' => 'Uno o más atributos en la fila del encabezado contienen caracteres UTF-8 mal formados', 'content_row_has_malformed_characters' => 'Uno o más atributos en la primera fila de contenido contienen caracteres UTF-8 mal formados', ], diff --git a/resources/lang/es-VE/admin/kits/general.php b/resources/lang/es-VE/admin/kits/general.php index ae87ae332..a3a15ec02 100644 --- a/resources/lang/es-VE/admin/kits/general.php +++ b/resources/lang/es-VE/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit eliminado correctamente', 'kit_model_updated' => 'El modelo fue actualizado correctamente', 'kit_model_detached' => 'Modelo fue separado con éxito', + 'model_already_attached' => 'Modelo ya vinculado al kit', ]; diff --git a/resources/lang/es-VE/admin/locations/message.php b/resources/lang/es-VE/admin/locations/message.php index eef07cb97..cbdef563d 100644 --- a/resources/lang/es-VE/admin/locations/message.php +++ b/resources/lang/es-VE/admin/locations/message.php @@ -3,11 +3,12 @@ return array( 'does_not_exist' => 'La localización no existe.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', + 'assoc_users' => 'Esta ubicación no se puede eliminar actualmente porque es la ubicación de al menos un activo o un usuario, tiene activos asignados o es la ubicación padre de otra ubicación. Por favor actualice sus modelos para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assoc_assets' => 'Esta ubicación está actualmente asociada con al menos un activo y no puede ser eliminada. Por favor actualice sus activos para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assoc_child_loc' => 'Esta ubicación es actualmente el padre de al menos una ubicación hija y no puede ser eliminada. Por favor actualice sus ubicaciones para que ya no hagan referencia a esta ubicación e inténtelo de nuevo. ', 'assigned_assets' => 'Activos asignados', 'current_location' => 'Ubicación actual', + 'open_map' => 'Abrir en mapas :map_provider_icon', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'La ubicación fue actualizada exitosamente.' ), + 'restore' => array( + 'error' => 'No se ha restaurado la ubicación, inténtelo de nuevo', + 'success' => 'La ubicación fue restaurada exitosamente.' + ), + 'delete' => array( 'confirm' => '¿Está seguro de que desea eliminar esta ubicación?', 'error' => 'Hubo un problema borrando la ubicación. Por favor, Inténtelo de nuevo.', diff --git a/resources/lang/es-VE/admin/models/message.php b/resources/lang/es-VE/admin/models/message.php index df8132b8a..a9cfe39e8 100644 --- a/resources/lang/es-VE/admin/models/message.php +++ b/resources/lang/es-VE/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => '¡ADVERTENCIA! ¡El modelo de activo para este artículo no es válido o no existe!', 'no_association_fix' => 'Esto romperá cosas de formas extrañas y horribles. Edite este activo ahora para asignarle un modelo.', 'assoc_users' => 'Este modelo está asociado a uno o más activos y no puede ser eliminado. Por favor, elimine los activos y vuelva a intentarlo. ', - 'invalid_category_type' => 'Esta categoría debe ser una categoría de activos.', + 'invalid_category_type' => 'El tipo de esta categoría debe ser categoría de activos.', 'create' => array( 'error' => 'El modelo no fue creado, por favor inténtelo de nuevo.', diff --git a/resources/lang/es-VE/admin/settings/general.php b/resources/lang/es-VE/admin/settings/general.php index 1f8c8c01f..a9118e8ca 100644 --- a/resources/lang/es-VE/admin/settings/general.php +++ b/resources/lang/es-VE/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'Esta imagen se mostrará como la imagen de perfil si el usuario no tiene foto de perfil.', 'restore_default_avatar' => 'Restaurar avatar original por defecto del sistema', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Advertencia para próximos ingresos', + 'due_checkin_days_help' => '¿Cuántos días antes de la fecha prevista de ingreso de un activo debe figurar en la página «Próximos a ingresar»?', ]; diff --git a/resources/lang/es-VE/admin/settings/message.php b/resources/lang/es-VE/admin/settings/message.php index 9bc01281b..564784c25 100644 --- a/resources/lang/es-VE/admin/settings/message.php +++ b/resources/lang/es-VE/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => '¿Está seguro que desea restaurar su base de datos desde :filename?' ], 'restore' => [ - 'success' => 'Su copia de respaldo del sistema ha sido restaurada. Por favor, inicie sesión nuevamente.' + 'success' => 'Se ha restaurado la copia de seguridad de su sistema. Por favor, vuelva a iniciar sesión.' ], 'purge' => [ 'error' => 'Ha ocurrido un error mientras se realizaba el purgado. ', diff --git a/resources/lang/es-VE/general.php b/resources/lang/es-VE/general.php index 85d37148c..24e6f6554 100644 --- a/resources/lang/es-VE/general.php +++ b/resources/lang/es-VE/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumibles', 'country' => 'País', 'could_not_restore' => 'Error al restaurar :item_type: :error', - 'not_deleted' => ':item_type no está eliminado; por lo tanto, no se puede restaurar', + 'not_deleted' => 'El tipo :item_type no se ha borrado y, por lo tanto, no se puede restaurar', 'create' => 'Crear nuevo', 'created' => 'Elemento Creado', 'created_asset' => 'activo creado', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Esta aplicación se está ejecutando en modo producción con depuración habilitada. Esto puede exponer datos sensibles si su aplicación es accedida desde el mundo exterior. Deshabilite el modo de depuración configurando el valor APP_DEBUG en su archivo .env a false.', 'delete' => 'Borrar', 'delete_confirm' => '¿Está seguro de que desea eliminar :item?', - 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no puede deshacerse.', + 'delete_confirm_no_undo' => '¿Está seguro de que desea eliminar :item? Esto no se puede deshacer.', 'deleted' => 'Borrado', 'delete_seats' => 'Licencias eliminadas', 'deletion_failed' => 'Error al eliminar', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Cargar imagen', 'filetypes_accepted_help' => 'El tipo de archivo aceptado es :types. El tamaño máximo permitido es :size.|Los tipos de archivo aceptados son :types. El tamaño máximo permitido para cargar es :size.', 'filetypes_size_help' => 'El tamaño máximo permitido para cargar es :size.', - 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg, y avif. El tamaño máximo permitido para cargar es :size.', + 'image_filetypes_help' => 'Los tipos de archivo aceptados son jpg, webp, png, gif, svg y avif. El tamaño máximo permitido es :size.', 'unaccepted_image_type' => 'Este archivo de imagen no fue legible. Los tipos de archivo aceptados son jpg, webp, png, gif y svg. El tipo mimetype de este archivo es: :mimetype.', 'import' => 'Importar', 'import_this_file' => 'Asociar campos y procesar este archivo', @@ -279,7 +279,7 @@ return [ 'site_name' => 'Nombre del Sitio', 'state' => 'Estado', 'status_labels' => 'Etiquetas de estado', - 'status_label' => 'Status Label', + 'status_label' => 'Etiqueta de estado', 'status' => 'Estado', 'accept_eula' => 'Acuerdo de aceptación', 'supplier' => 'Proveedor', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Paso 4', 'setup_config_check' => 'Comprobar configuración', 'setup_create_database' => 'Crear tablas de la base de datos', - 'setup_create_admin' => 'Crear usuario administrador', + 'setup_create_admin' => 'Crear un usuario administrador', 'setup_done' => '¡Terminado!', 'bulk_edit_about_to' => 'Está a punto de editar lo siguiente: ', 'checked_out' => 'Asignado', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Activos por tipo de estado', 'pie_chart_type' => 'Tipo de gráfico circular en el tablero', 'hello_name' => '¡Hola, :name!', - 'unaccepted_profile_warning' => 'Tiene :count elemento(s) que requiere(n) aceptación. Haga clic aquí para aceptarlo(s) o rechazarlo(s)', + 'unaccepted_profile_warning' => 'Tiene un elemento que requiere aceptación. Haga clic aquí para aceptarlo o rechazarlo | Tiene :count elementos que requieren aceptación. Haga clic aquí para aceptarlos o rechazarlos', 'start_date' => 'Fecha de inicio', 'end_date' => 'Fecha de fin', 'alt_uploaded_image_thumbnail' => 'Miniatura cargada', @@ -559,5 +559,8 @@ return [ 'expires' => 'Vence', 'map_fields'=> 'Asociar campos para :item_type', 'remaining_var' => ':count restantes', + 'assets_in_var' => 'Activos en :name :type', + 'label' => 'Etiqueta', + 'import_asset_tag_exists' => 'Ya existe un activo con la placa :asset_tag y no se ha solicitado una actualización. No se ha realizado ningún cambio.', ]; diff --git a/resources/lang/et-EE/admin/hardware/message.php b/resources/lang/et-EE/admin/hardware/message.php index 632849b69..cf426d454 100644 --- a/resources/lang/et-EE/admin/hardware/message.php +++ b/resources/lang/et-EE/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Teie fail on edukalt kustutatud', 'file_delete_error' => 'Faili ei saanud kustutada', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/et-EE/admin/kits/general.php b/resources/lang/et-EE/admin/kits/general.php index 51a0c92db..c1ad6ac92 100644 --- a/resources/lang/et-EE/admin/kits/general.php +++ b/resources/lang/et-EE/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Komplekt edukalt kustutatud', 'kit_model_updated' => 'Mudel on edukalt uuendatud', 'kit_model_detached' => 'Mudel on edukalt eemaldatud', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/et-EE/admin/locations/message.php b/resources/lang/et-EE/admin/locations/message.php index f81846037..db8f8018e 100644 --- a/resources/lang/et-EE/admin/locations/message.php +++ b/resources/lang/et-EE/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Sel asukohal on hetkel all-asukohti ja seda ei saa kustutada. Palun uuenda oma asukohti nii, et need ei kasutaks seda asukohta ning seejärel proovi uuesti. ', 'assigned_assets' => 'Määratud Varad', 'current_location' => 'Praegune asukoht', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Asukoha uuendamine õnnestus.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Oled sa kindel, et soovid selle asukoha kustutada?', 'error' => 'Asukoha kustutamisel tekkis probleem. Palun proovi uuesti.', diff --git a/resources/lang/et-EE/admin/models/message.php b/resources/lang/et-EE/admin/models/message.php index ed92b3639..e47c002a1 100644 --- a/resources/lang/et-EE/admin/models/message.php +++ b/resources/lang/et-EE/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'See mudel on seostus ühe või mitme vahendiga ja seda ei saa kustutada. Palun kustuta vahendid ja seejärel proovi uuesti kustutada. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Mudelit ei loodud, proovi uuesti.', diff --git a/resources/lang/et-EE/admin/settings/general.php b/resources/lang/et-EE/admin/settings/general.php index 9c10bda45..fc5c6379e 100644 --- a/resources/lang/et-EE/admin/settings/general.php +++ b/resources/lang/et-EE/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/et-EE/admin/settings/message.php b/resources/lang/et-EE/admin/settings/message.php index 8bd86575c..0d1a67508 100644 --- a/resources/lang/et-EE/admin/settings/message.php +++ b/resources/lang/et-EE/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Puhastamise ajal on tekkinud viga.', diff --git a/resources/lang/et-EE/general.php b/resources/lang/et-EE/general.php index 8e57e3fdc..293cc2994 100644 --- a/resources/lang/et-EE/general.php +++ b/resources/lang/et-EE/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Kulumaterjalid', 'country' => 'Riik', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Loo uus', 'created' => 'Üksus on loodud', 'created_asset' => 'loodud vara', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'See rakendus töötab tootmisrežiimis, kus silumisvõimalused on lubatud. See võib avaldada tundlikke andmeid, kui teie rakendus on välismaailmale juurdepääsetav. Keela debugrežiim, määrates APP_DEBUG väärtuse oma .env failis false.', 'delete' => 'Kustuta', 'delete_confirm' => 'Kas olete kindel, et soovite kustutada :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Kustutatud', 'delete_seats' => 'Kustutatud istmed', 'deletion_failed' => 'Kustutamine ebaõnnestus', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Laadi pilt üles', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Impordi', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Lõpetatud!', 'bulk_edit_about_to' => 'Oled muutmas järgnevat: ', 'checked_out' => 'Väljastatud', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Alguskuupäev', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Aegub', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/fa-IR/admin/hardware/message.php b/resources/lang/fa-IR/admin/hardware/message.php index e117466f5..aea6ba70d 100644 --- a/resources/lang/fa-IR/admin/hardware/message.php +++ b/resources/lang/fa-IR/admin/hardware/message.php @@ -60,6 +60,7 @@ return [ 'file_delete_success' => 'فایل شما با موفقیت حذف شده است', 'file_delete_error' => 'فایل قابل حذف نشد', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/fa-IR/admin/kits/general.php b/resources/lang/fa-IR/admin/kits/general.php index 9732815ae..83e5c662b 100644 --- a/resources/lang/fa-IR/admin/kits/general.php +++ b/resources/lang/fa-IR/admin/kits/general.php @@ -85,4 +85,5 @@ return [ ', 'kit_model_updated' => 'کاربر با موفقیت به روز شد', 'kit_model_detached' => 'کاربر با موفقیت حذف شد', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/fa-IR/admin/locations/message.php b/resources/lang/fa-IR/admin/locations/message.php index 2e46a23d8..8e7d51027 100644 --- a/resources/lang/fa-IR/admin/locations/message.php +++ b/resources/lang/fa-IR/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'این مکان در حال حاضر پدر و مادر کودک حداقل یک مکان است و قادر به حذف نمی شود. لطفا به روز رسانی مکان خود را به دیگر این مکان مرجع و دوباره امتحان کنید. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'مکان با موفقیت به روز رسانی شد.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'آیا مطمئن هستید که می خواهید این مکان را حذف کنید؟', 'error' => 'یک مشکل در حذف مکان وجود دارد،دوباره سعی کنید.', diff --git a/resources/lang/fa-IR/admin/models/message.php b/resources/lang/fa-IR/admin/models/message.php index 6243c1a5e..3fd7f148a 100644 --- a/resources/lang/fa-IR/admin/models/message.php +++ b/resources/lang/fa-IR/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'این مدل در حال حاضر همراه یک یا بیشتر از یک دارایی است و نمی تواند حذف شود. لطفا دارایی ها را حذف کنید و سپس برای حذف کردن مجددا تلاش کنید. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'مدل ساخته نشده است، لطفا دوباره تلاش کنید.', diff --git a/resources/lang/fa-IR/admin/settings/general.php b/resources/lang/fa-IR/admin/settings/general.php index 505abd072..99923b076 100644 --- a/resources/lang/fa-IR/admin/settings/general.php +++ b/resources/lang/fa-IR/admin/settings/general.php @@ -526,5 +526,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/fa-IR/admin/settings/message.php b/resources/lang/fa-IR/admin/settings/message.php index 629adde77..066e4f039 100644 --- a/resources/lang/fa-IR/admin/settings/message.php +++ b/resources/lang/fa-IR/admin/settings/message.php @@ -17,7 +17,7 @@ return [ ' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'در حین پاکسازی خطایی رخ داد. ', diff --git a/resources/lang/fa-IR/general.php b/resources/lang/fa-IR/general.php index b7aff76b7..6509fa3ea 100644 --- a/resources/lang/fa-IR/general.php +++ b/resources/lang/fa-IR/general.php @@ -80,7 +80,7 @@ return [ 'consumables' => 'اقلام قابل مصرف', 'country' => 'كشور', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'ایجاد مورد جدید', 'created' => 'مورد ایجاد شده', 'created_asset' => 'دارایی ایجاد شده', @@ -104,7 +104,7 @@ return [ 'debug_warning_text' => 'این برنامه در حالت تولید با استفاده از اشکال زدایی فعال است. این می تواند اطلاعات حساس را در صورت درخواست شما برای جهان خارج در دسترس قرار دهد. با تنظیم مقداری APP_DEBUG در .env فایل خود را به false غیرفعال کنید.', 'delete' => 'حذف', 'delete_confirm' => 'آیا اطمینان دارید که می خواهید این را حذف نمایید؟', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'حذف شد', 'delete_seats' => 'صندلی ها حذف شده ', @@ -170,7 +170,7 @@ return [ 'image_upload' => 'آپلود تصویر', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'واردات', 'import_this_file' => 'Map fields and process this file', @@ -386,7 +386,7 @@ return [ 'setup_config_check' => 'بررسی پیکربندی ', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'تمام شده! ', 'bulk_edit_about_to' => 'شما در حال ویرایش موارد زیر هستید: @@ -509,7 +509,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'سلام , :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -645,5 +645,8 @@ return [ 'expires' => 'منقضی می شود', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/fi-FI/admin/hardware/message.php b/resources/lang/fi-FI/admin/hardware/message.php index 66e8b3324..3f7a848bc 100644 --- a/resources/lang/fi-FI/admin/hardware/message.php +++ b/resources/lang/fi-FI/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Tiedosto on poistettu onnistuneesti', 'file_delete_error' => 'Tiedostoa ei voitu poistaa', 'file_missing' => 'Valittu tiedosto puuttuu', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Yksi tai useampi otsikkorivin attribuutti sisältää epämuodostuneita UTF-8 merkkejä', 'content_row_has_malformed_characters' => 'Yksi tai useampi ensimmäisen sisältörivin attribuutti sisältää epämuodostuneita UTF-8 merkkejä', ], diff --git a/resources/lang/fi-FI/admin/kits/general.php b/resources/lang/fi-FI/admin/kits/general.php index de2bf37b0..3f3363d90 100644 --- a/resources/lang/fi-FI/admin/kits/general.php +++ b/resources/lang/fi-FI/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Sarja poistettu', 'kit_model_updated' => 'Malli päivitettiin onnistuneesti', 'kit_model_detached' => 'Malli poistettu', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/fi-FI/admin/locations/message.php b/resources/lang/fi-FI/admin/locations/message.php index 94b503b61..25eb4232f 100644 --- a/resources/lang/fi-FI/admin/locations/message.php +++ b/resources/lang/fi-FI/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Tämä sijainti on ylempi toiselle sijainnille eikä sitä voi poistaa. Päivitä sijainnit, jotta et enää viitata tähän sijaintiin ja yritä uudelleen. ', 'assigned_assets' => 'Luovutetut laitteet', 'current_location' => 'Nykyinen sijainti', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Sijainti päivitettiin onnistuneesti.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Oletko varma että haluat poistaa tämän sijainnin?', 'error' => 'Sijainnin poistossa tapahtui virhe. Yritä uudelleen.', diff --git a/resources/lang/fi-FI/admin/models/message.php b/resources/lang/fi-FI/admin/models/message.php index f4d2f62ac..403759d9e 100644 --- a/resources/lang/fi-FI/admin/models/message.php +++ b/resources/lang/fi-FI/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'VAROITUS! Omaisuusmalli tälle tuotteelle on virheellinen tai puuttuu!', 'no_association_fix' => 'Tämä tulee rikkomaam asioita oudoilla ja kauhistuttavilla tavoilla. Muokkaa tätä laitetta nyt määrittääksesi sille mallin.', 'assoc_users' => 'Tämä malli on käytössä yhdellä tai useammalla laitteella joten sitä ei voida poistaa. Poista malli käytöstä kaikilta laitteilta ja yritä uudelleen. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Mallia ei luotu, yritä uudelleen.', diff --git a/resources/lang/fi-FI/admin/settings/general.php b/resources/lang/fi-FI/admin/settings/general.php index b73e19c1c..dfc4951d5 100644 --- a/resources/lang/fi-FI/admin/settings/general.php +++ b/resources/lang/fi-FI/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/fi-FI/admin/settings/message.php b/resources/lang/fi-FI/admin/settings/message.php index 14be57fb1..dfb6e9fee 100644 --- a/resources/lang/fi-FI/admin/settings/message.php +++ b/resources/lang/fi-FI/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Oletko varma, että haluat palauttaa tietokannan :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Virhe on ilmennyt puhdistuksen aikana.', diff --git a/resources/lang/fi-FI/general.php b/resources/lang/fi-FI/general.php index ab4f12cfa..e644fa766 100644 --- a/resources/lang/fi-FI/general.php +++ b/resources/lang/fi-FI/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Kulutustarvikkeet', 'country' => 'Maa', 'could_not_restore' => 'Virhe palautettaessa :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Luo uusi', 'created' => 'Nimike luotiin', 'created_asset' => 'laite luotu', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Sovellus on käynnissä tuotantotilassa, jossa virheenkorjaus on käytössä. Tämä voi paljastaa arkaluonteisia tietoja, jos sovellus avoinna internettiin. Poista virheenkorjaus käytöstä asettamalla APP_DEBUG -arvoksi false .env -tiedostoosi.', 'delete' => 'Poista', 'delete_confirm' => 'Oletko varma että haluat poistaa :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Poistettu', 'delete_seats' => 'Poistettu käytöstä', 'deletion_failed' => 'Poisto epäonnistui', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Lähetä kuva', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Kuvatiedostoa ei voitu lukea. Hyväksytyt tiedostotyypit ovat jpg, webp, png, gif ja svg. Tämän tiedoston mimetype on: :mimetype.', 'import' => 'Tuo tiedot', 'import_this_file' => 'Kartta kentät ja käsitellä tätä tiedostoa', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Vaihe 4', 'setup_config_check' => 'Konfiguraation Tarkistus', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Valmis!', 'bulk_edit_about_to' => 'Olet muokkaamassa seuraavaa: ', 'checked_out' => 'Luovutettu', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Laitteet tilan tyypin mukaan', 'pie_chart_type' => 'Hallintapaneelin Ympyrädiagrammin tyyppi', 'hello_name' => 'Hei, :name!', - 'unaccepted_profile_warning' => 'Sinulla on :count kohteita, jotka vaativat hyväksyntää. Klikkaa tästä hyväksyäksesi tai hylätäksesi ne', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Aloituspäivä', 'end_date' => 'Päättymispäivä', 'alt_uploaded_image_thumbnail' => 'Ladattu pikkukuva', @@ -559,5 +559,8 @@ return [ 'expires' => 'vanhenee', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/fil-PH/admin/hardware/message.php b/resources/lang/fil-PH/admin/hardware/message.php index 59bd552bb..b7d097815 100644 --- a/resources/lang/fil-PH/admin/hardware/message.php +++ b/resources/lang/fil-PH/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Ang iyong file ay matagumpay nang nai-upload', 'file_delete_error' => 'Ang file ay hindi mai-delete', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/fil-PH/admin/kits/general.php b/resources/lang/fil-PH/admin/kits/general.php index 9316eb95f..3a6eb687c 100644 --- a/resources/lang/fil-PH/admin/kits/general.php +++ b/resources/lang/fil-PH/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/fil-PH/admin/locations/message.php b/resources/lang/fil-PH/admin/locations/message.php index 9d5c7a6d7..5e1fd2cf9 100644 --- a/resources/lang/fil-PH/admin/locations/message.php +++ b/resources/lang/fil-PH/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Ang lokasyong ito ay kasalukuyang pinagmumulan sa hindi bumaba sa lokasyon isang bata at hindi maaaring mai-delete. Mangyaring i-update ang iyong mga lokasyon upang hindi na magreperens sa lokasyong ito at paki-subok muli. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Ang lokasyon ay matagumpay na nai-update.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Sigurado kaba na gusto mong i-delete ang lokasyong ito?', 'error' => 'Mayroong isyu sa pag-delete ng lokasyon. Mangyaring subukang muli.', diff --git a/resources/lang/fil-PH/admin/models/message.php b/resources/lang/fil-PH/admin/models/message.php index 46923c476..33c60303f 100644 --- a/resources/lang/fil-PH/admin/models/message.php +++ b/resources/lang/fil-PH/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'Ang modelong ito ay kasalukuyang nai-ugnay sa isa o higit pang mga asset at hindi maaaring mai-delete. Paki-delete ng mga model na ito, at pagkatapos subukang i-delete muli. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Ang modelo ay hindi naisagawa, mangyaring subukang muli.', diff --git a/resources/lang/fil-PH/admin/settings/general.php b/resources/lang/fil-PH/admin/settings/general.php index 33b04ef0b..edb97be37 100644 --- a/resources/lang/fil-PH/admin/settings/general.php +++ b/resources/lang/fil-PH/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/fil-PH/admin/settings/message.php b/resources/lang/fil-PH/admin/settings/message.php index 54bfe07a0..a53806b2a 100644 --- a/resources/lang/fil-PH/admin/settings/message.php +++ b/resources/lang/fil-PH/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Ang error ay nagyari habang nag-purge. ', diff --git a/resources/lang/fil-PH/general.php b/resources/lang/fil-PH/general.php index ddd9a192a..4f04f0382 100644 --- a/resources/lang/fil-PH/general.php +++ b/resources/lang/fil-PH/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Mga pwedeng ikonsumo', 'country' => 'Ang Bansa', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Magsagawa ng Bago', 'created' => 'Ang Naisagawang Aytem', 'created_asset' => 'ang naisagawang asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ang applilasyon na ito ay tumatakbo sa produksyon na may pagpapagana sa pag-debug. ito ay ma-expose sa sensitibong datus kapag ang iyong aplikasyon ay madaling ma-akses sa labas ng mundo. Huwag paganahin ang debug mode sa pamamagitan pag-set sa APP_DEBUG balyu ng iyong .env file sa false.', 'delete' => 'I-delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Nai-delete na', 'delete_seats' => 'Ang Nai-delete na mga Seats', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'I-upload ang Imahe', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'I-import', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Nai-check Out', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Mawalan ng Bisa', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/fr-FR/admin/hardware/message.php b/resources/lang/fr-FR/admin/hardware/message.php index c71f75f6a..fc3e9c62c 100644 --- a/resources/lang/fr-FR/admin/hardware/message.php +++ b/resources/lang/fr-FR/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Votre fichier a été correctement supprimé', 'file_delete_error' => 'Le fichier n’a pas pu être supprimé', 'file_missing' => 'Le fichier sélectionné est manquant', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Un ou plusieurs attributs dans la ligne d\'en-tête contiennent des caractères UTF-8 invalides', 'content_row_has_malformed_characters' => 'Un ou plusieurs attributs dans la première ligne de contenu contiennent des caractères UTF-8 invalides', ], diff --git a/resources/lang/fr-FR/admin/kits/general.php b/resources/lang/fr-FR/admin/kits/general.php index b9ce51776..694ec3f16 100644 --- a/resources/lang/fr-FR/admin/kits/general.php +++ b/resources/lang/fr-FR/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Le kit a bien été supprimé', 'kit_model_updated' => 'Le modèle a bien été mis à jour', 'kit_model_detached' => 'Le modèle a bien été désaffecté', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/fr-FR/admin/locations/message.php b/resources/lang/fr-FR/admin/locations/message.php index 6e2ed8273..2c505d5a0 100644 --- a/resources/lang/fr-FR/admin/locations/message.php +++ b/resources/lang/fr-FR/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Cet emplacement est actuellement le parent d\'au moins un sous emplacement et ne peut pas être supprimé . S\'il vous plaît mettre à jour vos emplacement pour ne plus le référencer et réessayez. ', 'assigned_assets' => 'Actifs assignés', 'current_location' => 'Emplacement actuel', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Le lieu a été mis à jour avec succès.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Êtes-vous sûr de vouloir supprimer ce lieu ?', 'error' => 'Un problème a eu lieu pendant la suppression du lieu. Veuillez essayer à nouveau.', diff --git a/resources/lang/fr-FR/admin/models/message.php b/resources/lang/fr-FR/admin/models/message.php index 9121af7b5..af4e6a0b8 100644 --- a/resources/lang/fr-FR/admin/models/message.php +++ b/resources/lang/fr-FR/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'ATTENTION ! Le modèle d\'actif pour cet objet est invalide ou manquant !', 'no_association_fix' => 'Cela va casser les choses de manière bizarre et horrible. Modifiez cette ressource maintenant pour lui assigner un modèle.', 'assoc_users' => 'Ce modèle est actuellement associé à au moins un actif et ne peut pas être supprimé. Veuillez supprimer les actifs associés et essayer à nouveau. ', - 'invalid_category_type' => 'La catégorie doit être une catégorie d\'actifs.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Le modèle n\'a pas été créé, veuillez essayer à nouveau.', diff --git a/resources/lang/fr-FR/admin/settings/general.php b/resources/lang/fr-FR/admin/settings/general.php index 3b3d6df42..57219b9b2 100644 --- a/resources/lang/fr-FR/admin/settings/general.php +++ b/resources/lang/fr-FR/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'Cette image sera utilisée pour le profil des utilisateurs·trices qui n\'ont pas de photo de profil.', 'restore_default_avatar' => 'Rétablir l\'avatar par défaut d\'origine', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/fr-FR/admin/settings/message.php b/resources/lang/fr-FR/admin/settings/message.php index 6f0ed0a7d..3e333d686 100644 --- a/resources/lang/fr-FR/admin/settings/message.php +++ b/resources/lang/fr-FR/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Êtes-vous sûr de vouloir restaurer votre base de données à partir de :filename ?' ], 'restore' => [ - 'success' => 'Votre sauvegarde système a été restaurée. Veuillez vous reconnecter.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Une erreur est survenue durant la purge. ', diff --git a/resources/lang/fr-FR/general.php b/resources/lang/fr-FR/general.php index e4e8f1a3c..9125942a9 100644 --- a/resources/lang/fr-FR/general.php +++ b/resources/lang/fr-FR/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consommables', 'country' => 'Pays', 'could_not_restore' => 'Erreur lors de la restauration de :item_type: :error', - 'not_deleted' => 'Cet :item_type n\'est pas supprimé et ne peut donc pas être restauré', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Créer', 'created' => 'Élément créé', 'created_asset' => 'Actif créé', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Cette application fonctionne en mode de production avec le débogage activé. Cela peut exposer des données sensibles si votre application est accessible au monde extérieur. Désactivez le mode de débogage en définissant la valeur APP_DEBUG dans votre fichier .env sur false .', 'delete' => 'Supprimer', 'delete_confirm' => 'Êtes-vous certain de vouloir supprimer :item?', - 'delete_confirm_no_undo' => 'Êtes-vous sûr·e de vouloir supprimer :item ? Cette action est irréversible.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Supprimé', 'delete_seats' => 'Places supprimées', 'deletion_failed' => 'Échec de la suppression', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Charger une image', 'filetypes_accepted_help' => 'Le type de fichier accepté est :types. La taille maximale autorisée est :size.|Les types de fichiers acceptés sont :types. La taille maximale autorisée est :size.', 'filetypes_size_help' => 'La taille maximale de téléversement autorisée est :size.', - 'image_filetypes_help' => 'Les types de fichiers acceptés sont jpg, webp, png, gif, svg et avif. La taille maximale de téléchargement autorisée est :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Ce fichier image n\'est pas lisible. Les types de fichiers acceptés sont jpg, webp, png, gif et svg. Le type mimetype de ce fichier est : :mimetype.', 'import' => 'Importer', 'import_this_file' => 'Champs de la carte et traiter ce fichier', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Étape 4', 'setup_config_check' => 'Vérification de la configuration', 'setup_create_database' => 'Créer les tables de la base de données', - 'setup_create_admin' => 'Créer un administrateur', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Terminé !', 'bulk_edit_about_to' => 'Vous êtes sur le point de modifier les éléments suivants : ', 'checked_out' => 'Affecté', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Matériels par type de status', 'pie_chart_type' => 'Type de diagramme circulaire', 'hello_name' => 'Bonjour, :name!', - 'unaccepted_profile_warning' => 'Vous avez :count article(s) en cours d\'acceptation. Merci de cliquer ici pour valider ou refuser leur emprunt', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Date de début', 'end_date' => 'Date de fin', 'alt_uploaded_image_thumbnail' => 'Miniature téléchargée', @@ -559,5 +559,8 @@ return [ 'expires' => 'Expire le', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count restant', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/fr-FR/validation.php b/resources/lang/fr-FR/validation.php index c7bfca0ae..1b2bc56d7 100644 --- a/resources/lang/fr-FR/validation.php +++ b/resources/lang/fr-FR/validation.php @@ -169,7 +169,7 @@ return [ 'unique' => 'Cet-te :attribute a déjà été pris-e.', 'uploaded' => 'L\'attribut: n\'a pas pu télécharger.', 'uppercase' => 'The :attribute field must be uppercase.', - 'url' => 'The :attribute field must be a valid URL.', + 'url' => 'Le champ :attribute doit être une URL valide.', 'ulid' => 'The :attribute field must be a valid ULID.', 'uuid' => 'The :attribute field must be a valid UUID.', diff --git a/resources/lang/ga-IE/admin/hardware/message.php b/resources/lang/ga-IE/admin/hardware/message.php index 73f6296d3..73c6c7d35 100644 --- a/resources/lang/ga-IE/admin/hardware/message.php +++ b/resources/lang/ga-IE/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Tá do chomhad scriosta go rathúil', 'file_delete_error' => 'Níorbh fhéidir an comhad a scriosadh', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/ga-IE/admin/kits/general.php b/resources/lang/ga-IE/admin/kits/general.php index 095ddfecf..469e7bc6d 100644 --- a/resources/lang/ga-IE/admin/kits/general.php +++ b/resources/lang/ga-IE/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/ga-IE/admin/locations/message.php b/resources/lang/ga-IE/admin/locations/message.php index f0bf04eac..656e5b4d1 100644 --- a/resources/lang/ga-IE/admin/locations/message.php +++ b/resources/lang/ga-IE/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Faoi láthair tá an suíomh seo ina tuismitheoir ar a laghad ar shuíomh leanbh amháin ar a laghad agus ní féidir é a scriosadh. Nuashonraigh do láithreacha le do thoil gan tagairt a dhéanamh don suíomh seo agus déan iarracht arís.', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Suíomh curtha chun dáta go rathúil.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'An bhfuil tú cinnte gur mian leat an suíomh seo a scriosadh?', 'error' => 'Bhí ceist ann a scriosadh an suíomh. Arís, le d\'thoil.', diff --git a/resources/lang/ga-IE/admin/models/message.php b/resources/lang/ga-IE/admin/models/message.php index bc72f7364..10d5e6751 100644 --- a/resources/lang/ga-IE/admin/models/message.php +++ b/resources/lang/ga-IE/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'Tá an tsamhail seo bainteach le sócmhainní amháin nó níos mó faoi láthair agus ní féidir é a scriosadh. Scrios na sócmhainní, agus ansin déan iarracht a scriosadh arís.', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Níor cruthaíodh an tsamhail, déan iarracht arís.', diff --git a/resources/lang/ga-IE/admin/settings/general.php b/resources/lang/ga-IE/admin/settings/general.php index ccad78e0a..c33e9308a 100644 --- a/resources/lang/ga-IE/admin/settings/general.php +++ b/resources/lang/ga-IE/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/ga-IE/admin/settings/message.php b/resources/lang/ga-IE/admin/settings/message.php index 2fd8a2ad7..e2d733c85 100644 --- a/resources/lang/ga-IE/admin/settings/message.php +++ b/resources/lang/ga-IE/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Tharla earráid agus í ag puráil.', diff --git a/resources/lang/ga-IE/general.php b/resources/lang/ga-IE/general.php index ebd8c3a71..a72474553 100644 --- a/resources/lang/ga-IE/general.php +++ b/resources/lang/ga-IE/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Tomhaltáin', 'country' => 'Tír', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Cruthaigh Nua', 'created' => 'Mír Cruthaithe', 'created_asset' => 'cruthaíodh sócmhainn', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Tá an t-iarratas seo á reáchtáil i mód táirgthe le cumas dífhabhtaithe. Féadfaidh sé seo sonraí íogaire a nochtadh má tá do iarratas inrochtana don domhan lasmuigh. Díchumasaigh an modh dífhabhtaithe trí luachanna APP_DEBUG a leagan amach i do chomhad .env chuig false.', 'delete' => 'Scrios', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Scriosta', 'delete_seats' => 'Suíocháin Scriosta', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Íomhá Uaslódáil', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Iompórtáil', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Seiceáil Amach', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Deireadh', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/he-IL/admin/hardware/message.php b/resources/lang/he-IL/admin/hardware/message.php index 56d71d528..aebe7aa54 100644 --- a/resources/lang/he-IL/admin/hardware/message.php +++ b/resources/lang/he-IL/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'הקובץ שלך נמחק בהצלחה', 'file_delete_error' => 'לא ניתן היה למחוק את הקובץ', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/he-IL/admin/kits/general.php b/resources/lang/he-IL/admin/kits/general.php index 354bb2360..87801258f 100644 --- a/resources/lang/he-IL/admin/kits/general.php +++ b/resources/lang/he-IL/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/he-IL/admin/locations/message.php b/resources/lang/he-IL/admin/locations/message.php index de920bfd7..01f7600f6 100644 --- a/resources/lang/he-IL/admin/locations/message.php +++ b/resources/lang/he-IL/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'למיקום זה מוגדרים תתי-מיקומים ולכן לא ניתן למחוק אותו. אנא עדכן את המיקומים כך שלא שמיקום זה לא יכיל תתי מיקומים ונסה שנית. ', 'assigned_assets' => 'פריטים מוקצים', 'current_location' => 'מיקום נוכחי', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'המיקום עודכן בהצלחה.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'האם אתה בטוח שברצונך למחוק את המיקום?', 'error' => 'אירעה תקלה במחיקת המיקום. אנא נסה שנית.', diff --git a/resources/lang/he-IL/admin/models/message.php b/resources/lang/he-IL/admin/models/message.php index d086cf9f7..92ba13bce 100644 --- a/resources/lang/he-IL/admin/models/message.php +++ b/resources/lang/he-IL/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'אזהרה! דגם הפריט אינו תקין או חסר!', 'no_association_fix' => 'זה ישבור דברים בדרכים שונות ומשונות. ערוך פריט זה עכשיו וקבע לו דגם.', 'assoc_users' => 'מודל זה משויך כרגע לנכס אחד או יותר ולא ניתן למחוק אותו. מחק את הנכסים ולאחר מכן נסה למחוק שוב.', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'המודל לא נוצר, נסה שוב.', diff --git a/resources/lang/he-IL/admin/settings/general.php b/resources/lang/he-IL/admin/settings/general.php index af8ee5170..c98096e1e 100644 --- a/resources/lang/he-IL/admin/settings/general.php +++ b/resources/lang/he-IL/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/he-IL/admin/settings/message.php b/resources/lang/he-IL/admin/settings/message.php index 5790a094d..da22cec3c 100644 --- a/resources/lang/he-IL/admin/settings/message.php +++ b/resources/lang/he-IL/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'האם ברצונך לשחזר את המסד נתונים מ: קובץ?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'אירעה שגיאה בעת הטיהור.', diff --git a/resources/lang/he-IL/general.php b/resources/lang/he-IL/general.php index c0fb7e389..9082dc70a 100644 --- a/resources/lang/he-IL/general.php +++ b/resources/lang/he-IL/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'מתכלים', 'country' => 'מדינה', 'could_not_restore' => 'שגיאה בשחזור :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'צור חדש', 'created' => 'פריט נוצר', 'created_asset' => 'הנכס שנוצר', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'יישום זה פועל במצב ייצור עם איתור באגים. זה יכול לחשוף נתונים רגישים אם היישום שלך נגיש לעולם החיצון. השבת את מצב איתור הבאגים על ידי הגדרת הערך APP_DEBUG בקובץ .env ל false.', 'delete' => 'לִמְחוֹק', 'delete_confirm' => 'האם אתה בטוח שברצונך למחוק?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'נמחק', 'delete_seats' => 'מושבים שנמחקו', 'deletion_failed' => 'המחיקה נכשלה', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'העלאת תמונה', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'יְבוּא', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'שלב 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'הסתיים!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'הנכס שוייך', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'יפוג', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/hr-HR/admin/hardware/message.php b/resources/lang/hr-HR/admin/hardware/message.php index 73d87697b..6785edf2a 100644 --- a/resources/lang/hr-HR/admin/hardware/message.php +++ b/resources/lang/hr-HR/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Vaša je datoteka uspješno izbrisana', 'file_delete_error' => 'Datoteka nije mogla biti izbrisana', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/hr-HR/admin/kits/general.php b/resources/lang/hr-HR/admin/kits/general.php index 0fdbc29f9..1d71a8bbe 100644 --- a/resources/lang/hr-HR/admin/kits/general.php +++ b/resources/lang/hr-HR/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/hr-HR/admin/locations/message.php b/resources/lang/hr-HR/admin/locations/message.php index 343f16067..b3af1df94 100644 --- a/resources/lang/hr-HR/admin/locations/message.php +++ b/resources/lang/hr-HR/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Ta je lokacija trenutačno roditelj najmanje jedne lokacije za djecu i ne može se izbrisati. Ažurirajte svoje lokacije da više ne referiraju ovu lokaciju i pokušajte ponovo.', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Lokacija je uspješno ažurirana.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Jeste li sigurni da želite izbrisati tu lokaciju?', 'error' => 'Došlo je do problema s brisanjem lokacije. Molim te pokušaj ponovno.', diff --git a/resources/lang/hr-HR/admin/models/message.php b/resources/lang/hr-HR/admin/models/message.php index 347906d75..998cb886e 100644 --- a/resources/lang/hr-HR/admin/models/message.php +++ b/resources/lang/hr-HR/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'Ovaj je model trenutno povezan s jednom ili više imovine i ne može se izbrisati. Izbrišite imovinu pa pokušajte ponovo ukloniti.', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model nije izrađen, pokušajte ponovo.', diff --git a/resources/lang/hr-HR/admin/settings/general.php b/resources/lang/hr-HR/admin/settings/general.php index d5cf1a821..63f7b6bb1 100644 --- a/resources/lang/hr-HR/admin/settings/general.php +++ b/resources/lang/hr-HR/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/hr-HR/admin/settings/message.php b/resources/lang/hr-HR/admin/settings/message.php index d86142b35..dc5b6dbb9 100644 --- a/resources/lang/hr-HR/admin/settings/message.php +++ b/resources/lang/hr-HR/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Došlo je do pogreške prilikom čišćenja.', diff --git a/resources/lang/hr-HR/general.php b/resources/lang/hr-HR/general.php index 965ba9492..a76d8db5c 100644 --- a/resources/lang/hr-HR/general.php +++ b/resources/lang/hr-HR/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Potrošni', 'country' => 'Zemlja', 'could_not_restore' => 'Greška u obnavljanju :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Izradi novu', 'created' => 'Stavka je stvorena', 'created_asset' => 'stvorio imovinu', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ova se aplikacija izvodi u načinu rada s omogućenim uklanjanjem pogrešaka. To može otkriti osjetljive podatke ako je aplikacija dostupna vanjskom svijetu. Onemogućite način otklanjanja pogrešaka postavljanjem vrijednosti APP_DEBUG u .env datoteci na false.', 'delete' => 'Izbrisati', 'delete_confirm' => 'Jeste li sigurni da želite izbrisati :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'izbrisana', 'delete_seats' => 'Izbrisana mjesta', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Prenesite sliku', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Uvoz', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Odjavio', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'istječe', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/hu-HU/admin/hardware/message.php b/resources/lang/hu-HU/admin/hardware/message.php index c89f9223b..1afc580c8 100644 --- a/resources/lang/hu-HU/admin/hardware/message.php +++ b/resources/lang/hu-HU/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'A fájlt sikeresen törölték', 'file_delete_error' => 'A fájlt nem sikerült törölni', 'file_missing' => 'A kijelölt fájl nem található', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'A fejlécsorban egy vagy több attribútum hibás formájú UTF-8 karaktereket tartalmaz', 'content_row_has_malformed_characters' => 'A tartalom első sorában egy vagy több attribútum hibás formájú UTF-8 karaktereket tartalmaz', ], diff --git a/resources/lang/hu-HU/admin/kits/general.php b/resources/lang/hu-HU/admin/kits/general.php index 49180405a..40bb80391 100644 --- a/resources/lang/hu-HU/admin/kits/general.php +++ b/resources/lang/hu-HU/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'A készlet sikeresen törlődött', 'kit_model_updated' => 'A modell sikeresen frissült', 'kit_model_detached' => 'A modell sikeresen levált', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/hu-HU/admin/locations/message.php b/resources/lang/hu-HU/admin/locations/message.php index 64139cdc8..a79cbdd77 100644 --- a/resources/lang/hu-HU/admin/locations/message.php +++ b/resources/lang/hu-HU/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Ez a hely jelenleg legalább egy gyermek helye szülője, és nem törölhető. Frissítse tartózkodási helyeit, hogy ne hivatkozzon erre a helyre, és próbálja újra.', 'assigned_assets' => 'Hozzárendelt eszközök', 'current_location' => 'Jelenlegi hely', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'A helyszín sikeresen frissült.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Biztosan törölni szeretné ezt a helyet?', 'error' => 'Hiba történt a helyszín törlése közben. Kérlek próbáld újra.', diff --git a/resources/lang/hu-HU/admin/models/message.php b/resources/lang/hu-HU/admin/models/message.php index 6f4bc87cc..e474fd6d9 100644 --- a/resources/lang/hu-HU/admin/models/message.php +++ b/resources/lang/hu-HU/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'FIGYELEM! Az eszköz modell hiányzik, vagy nem érvényes!', 'no_association_fix' => 'Ez furcsa és szörnyű módokon fogja szétzúzni a dolgokat. Szerkeszd ezt az eszközt most, és rendeld hozzá egy modellhez.', 'assoc_users' => 'Ez a modell jelenleg társított egy vagy több eszközhöz, és nem törölhető. Legyen szíves törölje az eszközt, és próbálja meg ismét a modell törlését. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'A model nem lett létrehozva. Próbálkozz újra.', diff --git a/resources/lang/hu-HU/admin/settings/general.php b/resources/lang/hu-HU/admin/settings/general.php index 060bf42cd..b195078ba 100644 --- a/resources/lang/hu-HU/admin/settings/general.php +++ b/resources/lang/hu-HU/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/hu-HU/admin/settings/message.php b/resources/lang/hu-HU/admin/settings/message.php index faceb3d9f..2839242cd 100644 --- a/resources/lang/hu-HU/admin/settings/message.php +++ b/resources/lang/hu-HU/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Biztos, hogy vissza szeretné állítani az adatbázisát a :filename -ből?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Hiba történt a tisztítás során.', diff --git a/resources/lang/hu-HU/general.php b/resources/lang/hu-HU/general.php index 4210ca431..4f6613fa5 100644 --- a/resources/lang/hu-HU/general.php +++ b/resources/lang/hu-HU/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Fogyóeszközök', 'country' => 'Ország', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Új létrehozása', 'created' => 'Elem létrehozva', 'created_asset' => 'létrehozott eszköz', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ez az alkalmazás gyártási módban fut, a hibakeresés engedélyezve. Ez érzékeny adatokat tárhat fel, ha az alkalmazás elérhető a külvilág számára. A hibakeresési mód letiltása a APP_DEBUG érték .env fájlban történő false fájlban történő beállításával.', 'delete' => 'Törlés', 'delete_confirm' => 'Biztos benne, hogy törölni akarja: :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Törölve', 'delete_seats' => 'Törölt elemek', 'deletion_failed' => 'A törlés nem sikerült', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Kép feltöltése', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Ez a képfájl nem beolvasható. Az elfogadott fájltípusok: jpg, webp, png, gif és svg. A fájl kódolása: :mimetype.', 'import' => 'Importálás', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Negyedik lépés', 'setup_config_check' => 'Konfiguráció ellenőrzése', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Kész!', 'bulk_edit_about_to' => 'A következőket fogja szerkeszteni: ', 'checked_out' => 'Kiosztva', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Eszközök státustípus szerint', 'pie_chart_type' => 'Műszerfal tortadiagram típusa', 'hello_name' => 'Üdvözöllek, :name!', - 'unaccepted_profile_warning' => ':count darab tételed van, amelyek elfogadást igényelnek. Kattints ide az elfogadáshoz vagy az elutasításhoz', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Kezdés dátuma', 'end_date' => 'Befejezés dátuma', 'alt_uploaded_image_thumbnail' => 'Feltöltött indexkép', @@ -559,5 +559,8 @@ return [ 'expires' => 'Lejárat', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/id-ID/admin/hardware/message.php b/resources/lang/id-ID/admin/hardware/message.php index edacdd804..b0ce60b2b 100644 --- a/resources/lang/id-ID/admin/hardware/message.php +++ b/resources/lang/id-ID/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'File anda telah berhasil dihapus', 'file_delete_error' => 'File tidak bisa dihapus', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/id-ID/admin/kits/general.php b/resources/lang/id-ID/admin/kits/general.php index a3ad75d1a..4a241320a 100644 --- a/resources/lang/id-ID/admin/kits/general.php +++ b/resources/lang/id-ID/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit berhasil dihapus', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/id-ID/admin/locations/message.php b/resources/lang/id-ID/admin/locations/message.php index 6b6d3451b..f2a551ea9 100644 --- a/resources/lang/id-ID/admin/locations/message.php +++ b/resources/lang/id-ID/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Lokasi saat ini digunakan oleh induk salah satu dari turunan lokasi dan tidak dapat di hapus. Mohon perbarui lokasi Anda ke yang tidak ada referensi dengan lokasi ini dan coba kembali. ', 'assigned_assets' => 'Aset yang Ditetapkan', 'current_location' => 'Lokasi Saat Ini', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Lokasi sukses di perbarui.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Apakah Anda yakin untuk menghapus lokasi ini?', 'error' => 'Terdapat kesalahan pada saat penghapusan lokasi ini. Silahkan coba kembali.', diff --git a/resources/lang/id-ID/admin/models/message.php b/resources/lang/id-ID/admin/models/message.php index 6a200d9e1..a4de0d88a 100644 --- a/resources/lang/id-ID/admin/models/message.php +++ b/resources/lang/id-ID/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'Ini akan merusak banyak hal dengan cara yang aneh dan mengerikan. Edit aset ini sekarang untuk menetapkannya sebagai model.', 'assoc_users' => 'Saat ini model tersebut terhubung dengan 1 atau lebih dengan aset dan tidak dapat di hapus. Silahkan hapus aset terlebih dahulu, kemudian coba hapus kembali. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model gagal di buat, silahkan coba kembali.', diff --git a/resources/lang/id-ID/admin/settings/general.php b/resources/lang/id-ID/admin/settings/general.php index 65803b437..7d1847cb1 100644 --- a/resources/lang/id-ID/admin/settings/general.php +++ b/resources/lang/id-ID/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/id-ID/admin/settings/message.php b/resources/lang/id-ID/admin/settings/message.php index e2f830edd..61d10183e 100644 --- a/resources/lang/id-ID/admin/settings/message.php +++ b/resources/lang/id-ID/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Terdapat kesalahan ketika proses pembersihan. ', diff --git a/resources/lang/id-ID/general.php b/resources/lang/id-ID/general.php index b31d2bbbc..7b818d41b 100644 --- a/resources/lang/id-ID/general.php +++ b/resources/lang/id-ID/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Barang Habis Pakai', 'country' => 'Negara', 'could_not_restore' => 'Galat memulihkan :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Buat baru', 'created' => 'Item dibuat', 'created_asset' => 'Buat aset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Aplikasi ini berjalan dalam mode produksi dengan debugging diaktifkan. Hal ini dapat mengekspos data sensitif jika aplikasi Anda dapat diakses oleh dunia luar. Nonaktifkan mode debug dengan menetapkan nilai APP_DEBUG di file .env Anda ke false.', 'delete' => 'Hapus', 'delete_confirm' => 'Apakah Anda yakin untuk menghapus kategori ini?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Dihapus', 'delete_seats' => 'Lisensi di hapus', 'deletion_failed' => 'Penghapusan gagal', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Unggah gambar', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Pilihan file gambar ini tidak dapat dibaca. Jenis file yang diterima adalah jpg, webp, png, gif, dan svg. Tipe file ini adalah :mimetype.', 'import' => 'Impor', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Langkah 4', 'setup_config_check' => 'Peninjauan Konfigurasi', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Selesai!', 'bulk_edit_about_to' => 'Anda akan mengubah hal berikut ini: ', 'checked_out' => 'Diberikan', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Aset berdasarkan tipe status', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Selamat datang, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Tanggal Mulai', 'end_date' => 'Tanggal berakhir', 'alt_uploaded_image_thumbnail' => 'Unggah gambar-kecil', @@ -559,5 +559,8 @@ return [ 'expires' => 'Kadaluarsa', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/is-IS/admin/hardware/message.php b/resources/lang/is-IS/admin/hardware/message.php index cc54d93f7..c79b54603 100644 --- a/resources/lang/is-IS/admin/hardware/message.php +++ b/resources/lang/is-IS/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Your file has been been successfully deleted', 'file_delete_error' => 'The file was unable to be deleted', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/is-IS/admin/kits/general.php b/resources/lang/is-IS/admin/kits/general.php index f35dae636..4f7b53886 100644 --- a/resources/lang/is-IS/admin/kits/general.php +++ b/resources/lang/is-IS/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Útbúnaðarlistanum var eytt', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/is-IS/admin/locations/message.php b/resources/lang/is-IS/admin/locations/message.php index fce360984..d31391145 100644 --- a/resources/lang/is-IS/admin/locations/message.php +++ b/resources/lang/is-IS/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Skráðar eignir', 'current_location' => 'Núverandi staðsetning', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Stofnun staðsetningar gekk.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Ertu viss um að þú vilkjir eyða þessari staðsetningu?', 'error' => 'Það er vandamál við að eyða þessari staðsetningu. Vinsamlega reyndu aftur.', diff --git a/resources/lang/is-IS/admin/models/message.php b/resources/lang/is-IS/admin/models/message.php index 6e2d25dd0..6c14979b6 100644 --- a/resources/lang/is-IS/admin/models/message.php +++ b/resources/lang/is-IS/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'VIÐVÖRUN! Eignategund fyrir þennan hlut er ógilt eða vantar!', 'no_association_fix' => 'Þetta mun brjóta hlutina á undarlegan og hræðilegan hátt. Breyttu þessari eign núna til að úthluta henni fyrirmynd.', 'assoc_users' => 'Þessi tegund er sem stendur tengt einni eða fleiri eignum og ekki er hægt að eyða því. Vinsamlegast eyddu eignunum og reyndu síðan að eyða aftur. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Tegundin var ekki búið til, vinsamlegast reyndu aftur.', diff --git a/resources/lang/is-IS/admin/settings/general.php b/resources/lang/is-IS/admin/settings/general.php index 0a0bd9995..71abc7255 100644 --- a/resources/lang/is-IS/admin/settings/general.php +++ b/resources/lang/is-IS/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/is-IS/admin/settings/message.php b/resources/lang/is-IS/admin/settings/message.php index 8f18d4d40..c6a5d4c97 100644 --- a/resources/lang/is-IS/admin/settings/message.php +++ b/resources/lang/is-IS/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'An error has occurred while purging. ', diff --git a/resources/lang/is-IS/general.php b/resources/lang/is-IS/general.php index 908efe9d3..bcd7d3537 100644 --- a/resources/lang/is-IS/general.php +++ b/resources/lang/is-IS/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Rekstrarvörur', 'country' => 'Land', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Stofna nýtt', 'created' => 'Hlutur stofnaður', 'created_asset' => 'skráði eign', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Eyða', 'delete_confirm' => 'Ertu viss um að þú viljir eyða þessum :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Eytt', 'delete_seats' => 'Eydd leyfi', 'deletion_failed' => 'Eyðing mistókst', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Hlaða upp mynd', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Flytja inn', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Skráð út', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Eignir(búnaður) eftir Tegund', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Halló, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Upphafsdagsetning', 'end_date' => 'Lokadagsetning', 'alt_uploaded_image_thumbnail' => 'Hlaða upp smámynd', @@ -559,5 +559,8 @@ return [ 'expires' => 'Expires (útrunnið)', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/it-IT/admin/hardware/message.php b/resources/lang/it-IT/admin/hardware/message.php index 2d0fb8f57..27ba872e1 100644 --- a/resources/lang/it-IT/admin/hardware/message.php +++ b/resources/lang/it-IT/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Il file è stato cancellato con successo', 'file_delete_error' => 'Impossibile eliminare il file', 'file_missing' => 'File selezionato mancante', + 'file_already_deleted' => 'Il file selezionato è già stato eliminato', 'header_row_has_malformed_characters' => 'Uno o più attributi nella riga d\'intestazione contengono caratteri UTF-8 malformati', 'content_row_has_malformed_characters' => 'Uno o più attributi nella prima riga del contenuto contengono caratteri UTF-8 malformati', ], diff --git a/resources/lang/it-IT/admin/kits/general.php b/resources/lang/it-IT/admin/kits/general.php index 63b0eb936..fb64eb3f6 100644 --- a/resources/lang/it-IT/admin/kits/general.php +++ b/resources/lang/it-IT/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Il kit è stato eliminato con successo', 'kit_model_updated' => 'Il modello è stato aggiornato correttamente', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/it-IT/admin/locations/message.php b/resources/lang/it-IT/admin/locations/message.php index b12790879..039bcbad1 100644 --- a/resources/lang/it-IT/admin/locations/message.php +++ b/resources/lang/it-IT/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Questa posizione è parente di almeno un\'altra posizione e non può essere cancellata. Si prega di aggiornare le vostre posizioni di riferimento e riprovare. ', 'assigned_assets' => 'Beni Assegnati', 'current_location' => 'Posizione attuale', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Posizione aggiornata con successo.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Sei sicuro di voler cancellare questa posizione?', 'error' => 'C\'è stato un problema nell\'eliminare la posizione. Riprova.', diff --git a/resources/lang/it-IT/admin/settings/general.php b/resources/lang/it-IT/admin/settings/general.php index 7293b88dd..1cb248b90 100644 --- a/resources/lang/it-IT/admin/settings/general.php +++ b/resources/lang/it-IT/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/it-IT/admin/settings/message.php b/resources/lang/it-IT/admin/settings/message.php index 110bb626b..3ea292745 100644 --- a/resources/lang/it-IT/admin/settings/message.php +++ b/resources/lang/it-IT/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Sei sicuro di voler ripristinare il tuo database da :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Il backup del sistema è stato ripristinato. Effettua nuovamente il login.' ], 'purge' => [ 'error' => 'Si è verificato un errore durante la pulizia. ', diff --git a/resources/lang/it-IT/general.php b/resources/lang/it-IT/general.php index 466d310ef..d39c17183 100644 --- a/resources/lang/it-IT/general.php +++ b/resources/lang/it-IT/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumabili', 'country' => 'Paese', 'could_not_restore' => 'Errore nel ripristino di :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => ':item_type non può essere ripristinato perché non è stato cancellato', 'create' => 'Crea', 'created' => 'Articolo creato', 'created_asset' => 'bene creato', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Questa applicazione è in esecuzione in modalità di produzione con il debug abilitato. Questo può esporre dati sensibili se l\'applicazione è accessibile al mondo esterno. Disabilitare la modalità di debug impostando il valore APP_DEBUG nel file .env su false.', 'delete' => 'Elimina', 'delete_confirm' => 'Sei sicuro di voler eliminare :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Sei sicuro di voler cancellare :item? Questa azione non può essere annullata.', 'deleted' => 'Eliminata', 'delete_seats' => 'Posti Cancellati', 'deletion_failed' => 'Eliminazione fallita', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Carica immagine', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'I tipi di file accettati sono jpg, webp, png, gif, svg e avif. La dimensione massima consentita è :size.', 'unaccepted_image_type' => 'Questo immagine non è leggibile. I tipi di file accettati sono jpg, webp, png, gif e svg. Il tipo di questo file è :mimetype.', 'import' => 'Importa', 'import_this_file' => 'Mappa i campi ed elabora questo file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Passo 4', 'setup_config_check' => 'Controllo Configurazione', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Crea un utente amministratore', 'setup_done' => 'Finito!', 'bulk_edit_about_to' => 'Stai per modificare quanto segue: ', 'checked_out' => 'Assegnato', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Beni per Tipo di Stato', 'pie_chart_type' => 'Tipo di Grafico a Torta nel Cruscotto', 'hello_name' => 'Ciao, :name!', - 'unaccepted_profile_warning' => 'Hai :count articoli da accettare. Clicca qui per accettarli o rifiutarli', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Data Inizio', 'end_date' => 'Data Fine', 'alt_uploaded_image_thumbnail' => 'Miniatura caricata', @@ -559,5 +559,8 @@ return [ 'expires' => 'Scade', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'Esiste già un Bene con tag :asset_tag e non è stato richiesto un aggiornamento. Nessuna modifica effettuata.', ]; diff --git a/resources/lang/it-IT/validation.php b/resources/lang/it-IT/validation.php index 48b47f87b..21739b2ec 100644 --- a/resources/lang/it-IT/validation.php +++ b/resources/lang/it-IT/validation.php @@ -125,7 +125,7 @@ return [ 'symbols' => 'The :attribute field must contain at least one symbol.', 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', ], - 'percent' => 'The depreciation minimum must be between 0 and 100 when depreciation type is percentage.', + 'percent' => 'La svalutazione minima deve essere tra 0 e 100 quando il tipo di svalutazione è Percentuale.', 'present' => 'Il campo :attribute deve essere presente.', 'present_if' => 'The :attribute field must be present when :other is :value.', diff --git a/resources/lang/iu-NU/admin/hardware/message.php b/resources/lang/iu-NU/admin/hardware/message.php index d06bf4a0e..041d32f56 100644 --- a/resources/lang/iu-NU/admin/hardware/message.php +++ b/resources/lang/iu-NU/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Your file has been been successfully deleted', 'file_delete_error' => 'The file was unable to be deleted', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/iu-NU/admin/kits/general.php b/resources/lang/iu-NU/admin/kits/general.php index f57fb645c..2b5c2d9cd 100644 --- a/resources/lang/iu-NU/admin/kits/general.php +++ b/resources/lang/iu-NU/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/iu-NU/admin/locations/message.php b/resources/lang/iu-NU/admin/locations/message.php index 6226c71ab..488ec9c67 100644 --- a/resources/lang/iu-NU/admin/locations/message.php +++ b/resources/lang/iu-NU/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Location updated successfully.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Are you sure you wish to delete this location?', 'error' => 'There was an issue deleting the location. Please try again.', diff --git a/resources/lang/iu-NU/admin/models/message.php b/resources/lang/iu-NU/admin/models/message.php index f61a2c535..ae3bc34ee 100644 --- a/resources/lang/iu-NU/admin/models/message.php +++ b/resources/lang/iu-NU/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'This model is currently associated with one or more assets and cannot be deleted. Please delete the assets, and then try deleting again. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model was not created, please try again.', diff --git a/resources/lang/iu-NU/admin/settings/general.php b/resources/lang/iu-NU/admin/settings/general.php index 31165cf3f..7ce360eda 100644 --- a/resources/lang/iu-NU/admin/settings/general.php +++ b/resources/lang/iu-NU/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/iu-NU/admin/settings/message.php b/resources/lang/iu-NU/admin/settings/message.php index 24e2d292c..c91575144 100644 --- a/resources/lang/iu-NU/admin/settings/message.php +++ b/resources/lang/iu-NU/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'An error has occurred while purging. ', diff --git a/resources/lang/iu-NU/general.php b/resources/lang/iu-NU/general.php index 444ed5408..763438790 100644 --- a/resources/lang/iu-NU/general.php +++ b/resources/lang/iu-NU/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Upload Image', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Expires', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/ja-JP/admin/hardware/message.php b/resources/lang/ja-JP/admin/hardware/message.php index 6f0f83470..1796820eb 100644 --- a/resources/lang/ja-JP/admin/hardware/message.php +++ b/resources/lang/ja-JP/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'ファイルを削除しました。', 'file_delete_error' => 'ファイルが削除出来ませんでした。', 'file_missing' => '選択されたファイルがありません', + 'file_already_deleted' => '選択したファイルは既に削除されています', 'header_row_has_malformed_characters' => 'ヘッダー行の1つ以上の属性に不正な形式のUTF-8文字が含まれています', 'content_row_has_malformed_characters' => 'コンテンツの最初の行の1つまたは複数の属性に不正な形式のUTF-8文字が含まれています', ], diff --git a/resources/lang/ja-JP/admin/kits/general.php b/resources/lang/ja-JP/admin/kits/general.php index 6db2b8679..03e7c2e65 100644 --- a/resources/lang/ja-JP/admin/kits/general.php +++ b/resources/lang/ja-JP/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => '製品セットは正常に削除されました。', 'kit_model_updated' => 'モデルが正常に更新されました。', 'kit_model_detached' => 'モデルは正常に切り離されました。', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/ja-JP/admin/locations/message.php b/resources/lang/ja-JP/admin/locations/message.php index 3ec4688cb..218e7f975 100644 --- a/resources/lang/ja-JP/admin/locations/message.php +++ b/resources/lang/ja-JP/admin/locations/message.php @@ -3,11 +3,12 @@ return array( 'does_not_exist' => 'ロケーションが存在しません。', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', + 'assoc_users' => 'この場所は少なくとも1つのアセットまたはユーザーのレコードの場所であるか、アセットに割り当てられているか、別の場所の親の場所であるため、現在削除できません。 モデルを更新して、この場所を参照しないようにして、もう一度やり直してください。 ', 'assoc_assets' => 'この設置場所は1人以上の利用者に関連付けされているため、削除できません。設置場所の関連付けを削除し、もう一度試して下さい。 ', 'assoc_child_loc' => 'この設置場所は、少なくとも一つの配下の設置場所があります。この設置場所を参照しないよう更新して下さい。 ', 'assigned_assets' => '割り当て済みアセット', 'current_location' => '現在の場所', + 'open_map' => ':map_provider_icon マップで開く', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'ロケーションが更新されました。' ), + 'restore' => array( + 'error' => 'ロケーションが復元できませんでした。もう一度やり直してください。', + 'success' => 'ロケーションが復元されました。' + ), + 'delete' => array( 'confirm' => 'このロケーションを本当に削除してよいですか?', 'error' => 'ロケーションを削除する際に問題が発生しました。もう一度やり直して下さい。', diff --git a/resources/lang/ja-JP/admin/models/message.php b/resources/lang/ja-JP/admin/models/message.php index 86a9a98b3..05f4b2160 100644 --- a/resources/lang/ja-JP/admin/models/message.php +++ b/resources/lang/ja-JP/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => '警告!このアイテムのアセットモデルが無効または不足しています!', 'no_association_fix' => 'モデルを割り当てるために今すぐこの資産を編集してください。', 'assoc_users' => 'この減価償却は複数のモデルに関係付けられているため削除することができません。モデルを削除してから再度実行してください。 ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'このカテゴリは資産カテゴリにする必要があります。', 'create' => array( 'error' => '型番が作成できませんでした。もう一度やり直して下さい。', diff --git a/resources/lang/ja-JP/admin/settings/general.php b/resources/lang/ja-JP/admin/settings/general.php index e7365c2d6..cc24c4ef4 100644 --- a/resources/lang/ja-JP/admin/settings/general.php +++ b/resources/lang/ja-JP/admin/settings/general.php @@ -384,5 +384,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'チェックイン期限の警告', + 'due_checkin_days_help' => 'アセットの期待されるチェックインの何日前に、「チェックイン期限」ページにリストされるべきですか?', ]; diff --git a/resources/lang/ja-JP/admin/settings/message.php b/resources/lang/ja-JP/admin/settings/message.php index 41ba319b0..db8825c73 100644 --- a/resources/lang/ja-JP/admin/settings/message.php +++ b/resources/lang/ja-JP/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => ':filename からデータベースを復元してもよろしいですか?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'システムバックアップが復元されました。もう一度ログインしてください。' ], 'purge' => [ 'error' => 'パージ中にエラーが発生しました。 ', diff --git a/resources/lang/ja-JP/general.php b/resources/lang/ja-JP/general.php index 621fa7922..2ded9f068 100644 --- a/resources/lang/ja-JP/general.php +++ b/resources/lang/ja-JP/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => '消耗品数', 'country' => '国', 'could_not_restore' => ':item_type: の復元エラー :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => ':item_type は削除されたため、復元できません', 'create' => '新規作成', 'created' => 'アイテムを作成しました', 'created_asset' => '資産を作成', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'このアプリケーションはデバッグモードがONのままプロダクションモードで実行されています。もしアプリケーションが外部からアクセス可能な場合、機密データが抜き取られる可能性があります。.envAPP_DEBUGfalseにしてください。', 'delete' => '削除', 'delete_confirm' => ':item を削除してもよろしいですか?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => ':itemを削除してもよろしいですか?これは元に戻すことはできません。', 'deleted' => '削除しました。', 'delete_seats' => 'ライセンスを削除', 'deletion_failed' => '削除に失敗しました', @@ -158,7 +158,7 @@ return [ 'image_upload' => '画像をアップロード', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => '使用できるファイルはjpg、png、gif、svgです。許可される最大ファイルサイズは:size です。', 'unaccepted_image_type' => 'この画像ファイルは読み取れませんでした。受け入れられるファイルタイプはjpg、webp、png、gif、svgです。このファイルのmimetypeは:mimetypeです。', 'import' => 'インポート', 'import_this_file' => 'フィールドをマップし、このファイルを処理します', @@ -279,7 +279,7 @@ return [ 'site_name' => 'サイト名', 'state' => '都道府県', 'status_labels' => 'ステータスラベル', - 'status_label' => 'Status Label', + 'status_label' => 'ステータスラベル', 'status' => 'ステータス', 'accept_eula' => '受け入れ同意', 'supplier' => '仕入先', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'ステップ 4', 'setup_config_check' => '設定チェック', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => '管理者ユーザーを作成', 'setup_done' => '完了しました!', 'bulk_edit_about_to' => '次を編集しようとしています: ', 'checked_out' => 'チェックアウト', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'ステータスタイプ別資産', 'pie_chart_type' => '円グラフタイプのダッシュボード', 'hello_name' => ':name さん、こんにちは!', - 'unaccepted_profile_warning' => '受け入れが必要な:count個のアイテムがあります。受け入れるか拒否するにはここをクリックしてください', + 'unaccepted_profile_warning' => '受け入れが必要なアイテムが一つあります。 ここをクリックして受け入れるか拒否します | あなたは受け入れを必要としている:count個のアイテムがあります。ここをクリックして受け入れるか拒否します', 'start_date' => '開始日', 'end_date' => '終了日', 'alt_uploaded_image_thumbnail' => 'サムネイルのアップロード', @@ -559,5 +559,8 @@ return [ 'expires' => '保証失効日', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'ラベル', + 'import_asset_tag_exists' => 'アセットタグ :asset_tag のアセットは既に存在し、アップデートは要求されませんでした。変更はありません。', ]; diff --git a/resources/lang/km-KH/admin/hardware/message.php b/resources/lang/km-KH/admin/hardware/message.php index fc6b562ea..1ff7102c8 100644 --- a/resources/lang/km-KH/admin/hardware/message.php +++ b/resources/lang/km-KH/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'ឯកសាររបស់អ្នកត្រូវបានលុបដោយជោគជ័យ', 'file_delete_error' => 'ឯកសារមិនអាចលុបបានទេ។', 'file_missing' => 'បាត់ឯកសារដែលបានជ្រើសរើស', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'គុណលក្ខណៈមួយ ឬច្រើននៅក្នុងជួរបឋមកថាមានតួអក្សរ UTF-8 ខុសទម្រង់', 'content_row_has_malformed_characters' => 'គុណលក្ខណៈមួយ ឬច្រើននៅក្នុងជួរទីមួយនៃមាតិកាមានតួអក្សរ UTF-8 ខុសទម្រង់', ], diff --git a/resources/lang/km-KH/admin/kits/general.php b/resources/lang/km-KH/admin/kits/general.php index f57fb645c..2b5c2d9cd 100644 --- a/resources/lang/km-KH/admin/kits/general.php +++ b/resources/lang/km-KH/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/km-KH/admin/locations/message.php b/resources/lang/km-KH/admin/locations/message.php index 2db546b4c..de0f90c9f 100644 --- a/resources/lang/km-KH/admin/locations/message.php +++ b/resources/lang/km-KH/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'ទ្រព្យសកម្មដែលបានចាត់តាំង', 'current_location' => 'ទីតាំង​បច្ចុប្បន្', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'បានធ្វើបច្ចុប្បន្នភាពទីតាំងដោយជោគជ័យ។' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'តើអ្នកប្រាកដថាចង់លុបទីតាំងនេះទេ?', 'error' => 'មានបញ្ហាក្នុងការលុបទីតាំង។ សូម​ព្យាយាម​ម្តង​ទៀត។', diff --git a/resources/lang/km-KH/admin/models/message.php b/resources/lang/km-KH/admin/models/message.php index 3814f924d..465fe63e8 100644 --- a/resources/lang/km-KH/admin/models/message.php +++ b/resources/lang/km-KH/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'ព្រមាន! គំរូទ្រព្យសកម្មសម្រាប់ធាតុនេះមិនត្រឹមត្រូវ ឬបាត់!', 'no_association_fix' => 'វា​នឹង​បំបែក​រឿង​ក្នុង​វិធី​ចម្លែក និង​គួរ​ឲ្យ​រន្ធត់។ កែសម្រួលទ្រព្យសកម្មនេះឥឡូវនេះ ដើម្បីចាត់ឱ្យវាជាគំរូមួយ។', 'assoc_users' => 'បច្ចុប្បន្ន ម៉ូដែលនេះត្រូវបានភ្ជាប់ជាមួយទ្រព្យសកម្មមួយ ឬច្រើន ហើយមិនអាចលុបបានទេ។ សូមលុបទ្រព្យសម្បត្តិ ហើយបន្ទាប់មកព្យាយាមលុបម្តងទៀត។ ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'គំរូមិនត្រូវបានបង្កើតទេ សូមព្យាយាមម្តងទៀត។', diff --git a/resources/lang/km-KH/admin/settings/general.php b/resources/lang/km-KH/admin/settings/general.php index 9e34f6f98..0631a8b37 100644 --- a/resources/lang/km-KH/admin/settings/general.php +++ b/resources/lang/km-KH/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/km-KH/admin/settings/message.php b/resources/lang/km-KH/admin/settings/message.php index 6890e31a3..a5b960218 100644 --- a/resources/lang/km-KH/admin/settings/message.php +++ b/resources/lang/km-KH/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'តើ​អ្នក​ប្រាកដ​ថា​អ្នក​ចង់​ស្ដារ​មូលដ្ឋាន​ទិន្នន័យ​របស់​អ្នក​ពី :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'កំហុសបានកើតឡើងខណៈពេលកំពុងសម្អាត។ ', diff --git a/resources/lang/km-KH/general.php b/resources/lang/km-KH/general.php index 469f2404e..aa9e95a7b 100644 --- a/resources/lang/km-KH/general.php +++ b/resources/lang/km-KH/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'ប្រទេស', 'could_not_restore' => 'កំហុសក្នុងការស្តារ :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'បង្កើត​ថ្មី', 'created' => 'ធាតុត្រូវបានបង្កើត', 'created_asset' => 'ទ្រព្យសកម្មដែលបានបង្កើត', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'កម្មវិធី​នេះ​កំពុង​ដំណើរការ​ក្នុង​ទម្រង់​ផលិត​ដោយ​បាន​បើក​ការ​បំបាត់​កំហុស។ វាអាចបង្ហាញទិន្នន័យរសើប ប្រសិនបើកម្មវិធីរបស់អ្នកអាចចូលប្រើបានទៅកាន់ពិភពខាងក្រៅ។ បិទមុខងារបំបាត់កំហុសដោយកំណត់តម្លៃ APP_DEBUG នៅក្នុងឯកសារ .env របស់អ្នកទៅជា false។', 'delete' => 'លុប', 'delete_confirm' => 'តើអ្នកប្រាកដថាចង់លុប :item មែនទេ?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'បានលុប', 'delete_seats' => 'កៅអីដែលបានលុប', 'deletion_failed' => 'ការលុបបានបរាជ័យ', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'បង្ហោះរូបភាព', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'ឯកសាររូបភាពនេះមិនអាចអានបានទេ។ ប្រភេទឯកសារដែលទទួលយកគឺ jpg, webp, png, gif និង svg ។ ប្រភេទ mime នៃឯកសារនេះគឺ៖ :mimetype.', 'import' => 'នាំចូល', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'ថ្ងៃ​ចាប់ផ្តើម', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'ផុតកំណត់', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/ko-KR/admin/hardware/message.php b/resources/lang/ko-KR/admin/hardware/message.php index 1e8f50709..0b2be615d 100644 --- a/resources/lang/ko-KR/admin/hardware/message.php +++ b/resources/lang/ko-KR/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => '파일 삭제가 완료되었습니다', 'file_delete_error' => '파일을 삭제할 수 없습니다', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/ko-KR/admin/kits/general.php b/resources/lang/ko-KR/admin/kits/general.php index a7efd3d1d..158bc5fad 100644 --- a/resources/lang/ko-KR/admin/kits/general.php +++ b/resources/lang/ko-KR/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => '키트가 삭제되었습니다', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/ko-KR/admin/locations/message.php b/resources/lang/ko-KR/admin/locations/message.php index c02b6f0d8..9e0697191 100644 --- a/resources/lang/ko-KR/admin/locations/message.php +++ b/resources/lang/ko-KR/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => '이 장소는 현재 하나 이상의 하위 장소를 가지고 있기에 삭제 할 수 없습니다. 이 장소의 참조를 수정하고 다시 시도해 주세요. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => '장소가 갱신되었습니다.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => '이 장소를 삭제하시겠습니까?', 'error' => '장소 삭제 중에 문제가 발생했습니다. 다시 시도해 주세요.', diff --git a/resources/lang/ko-KR/admin/models/message.php b/resources/lang/ko-KR/admin/models/message.php index 0e23515b5..34f5c2ad9 100644 --- a/resources/lang/ko-KR/admin/models/message.php +++ b/resources/lang/ko-KR/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => '이 모델은 현재 하나 이상의 자산들과 연결되어 있기에 삭제 할 수 없습니다. 자산들을 삭제하고 다시 삭제하길 시도하세요. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => '모델이 생성되지 않았습니다. 다시 시도하세요.', diff --git a/resources/lang/ko-KR/admin/settings/general.php b/resources/lang/ko-KR/admin/settings/general.php index 970e2f032..d95ddea46 100644 --- a/resources/lang/ko-KR/admin/settings/general.php +++ b/resources/lang/ko-KR/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/ko-KR/admin/settings/message.php b/resources/lang/ko-KR/admin/settings/message.php index 00a06079e..c93054ddd 100644 --- a/resources/lang/ko-KR/admin/settings/message.php +++ b/resources/lang/ko-KR/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => '삭제중 오류가 발생하였습니다. ', diff --git a/resources/lang/ko-KR/button.php b/resources/lang/ko-KR/button.php index 6541d116a..ed8401629 100644 --- a/resources/lang/ko-KR/button.php +++ b/resources/lang/ko-KR/button.php @@ -18,7 +18,7 @@ return [ 'generate_labels' => '{1} 레이블 생성|[2,*] 여러 레이블 생성', 'send_password_link' => '패스워드 재설정 메일 전송', 'go' => 'Go', - 'bulk_actions' => 'Bulk Actions', + 'bulk_actions' => '일괄 작업', 'add_maintenance' => '유지 보수 정보 추가', 'append' => 'Append', 'new' => '신규', diff --git a/resources/lang/ko-KR/general.php b/resources/lang/ko-KR/general.php index 3fbc48f1f..2ddeb87e7 100644 --- a/resources/lang/ko-KR/general.php +++ b/resources/lang/ko-KR/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => '소모품', 'country' => '국가명', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => '새로 생성', 'created' => '품목 생성됨', 'created_asset' => '생성된 자산', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => '이 프로그램은 디버깅이 가능한 제품 모드에서 구동중입니다. 당신의 프로그램이 외부 환경과 접속이 가능하다면 중요한 자료가 유출될 수 있습니다. .env 파일의 APP_DEBUG 값을 false 로 설정하여 디버깅을 비활성화 하세요.', 'delete' => '삭제', 'delete_confirm' => ':item 을 삭제 하시겠습니까?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => '삭제됨', 'delete_seats' => '삭제한 Seat', 'deletion_failed' => '삭제 실패', @@ -158,7 +158,7 @@ return [ 'image_upload' => '이미지 올리기', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => '불러오기', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => '4 단계', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => '완료됨', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => '반출 확인', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => '시작일', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => '만료', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/lt-LT/account/general.php b/resources/lang/lt-LT/account/general.php index e2c76ecb8..3fbab69ee 100644 --- a/resources/lang/lt-LT/account/general.php +++ b/resources/lang/lt-LT/account/general.php @@ -13,5 +13,5 @@ return array( 'profile_updated' => 'Paskyra atnaujinta sėkmingai', 'no_tokens' => 'Nesate sukūrę jokių asmeninių prieigos raktų.', 'enable_sounds' => 'Įjungti garso efektus', - 'enable_confetti' => 'Enable confetti effects', + 'enable_confetti' => 'Įgalinti konfeti efektus', ); diff --git a/resources/lang/lt-LT/admin/hardware/message.php b/resources/lang/lt-LT/admin/hardware/message.php index db8a4d61f..effc81d37 100644 --- a/resources/lang/lt-LT/admin/hardware/message.php +++ b/resources/lang/lt-LT/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Jūsų failas buvo sėkmingai ištrintas', 'file_delete_error' => 'Šio failo ištrinti nepavyko', 'file_missing' => 'Pažymėtas failas nerastas', + 'file_already_deleted' => 'Pasirinktas failas jau buvo panaikintas', 'header_row_has_malformed_characters' => 'Vienas ar keli antraštinės eilutės atributai turi netinkamai suformuotų UTF-8 simbolių', 'content_row_has_malformed_characters' => 'Vienas ar keli pirmosios eilutės atributai turi netinkamai suformuotų UTF-8 simbolių', ], diff --git a/resources/lang/lt-LT/admin/kits/general.php b/resources/lang/lt-LT/admin/kits/general.php index ba4db1e8b..c2ad2beb9 100644 --- a/resources/lang/lt-LT/admin/kits/general.php +++ b/resources/lang/lt-LT/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Rinkinys panaikintas sėkmingai', 'kit_model_updated' => 'Modelis atnaujintas sėkmingai', 'kit_model_detached' => 'Modelis atskirtas sėkmingai', + 'model_already_attached' => 'Modelis jau pridėtas prie rinkinio', ]; diff --git a/resources/lang/lt-LT/admin/locations/message.php b/resources/lang/lt-LT/admin/locations/message.php index e92469c0a..268d5c13f 100644 --- a/resources/lang/lt-LT/admin/locations/message.php +++ b/resources/lang/lt-LT/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Ši vieta šiuo metu yra kaip pagrindinė bent vienai žemesnio lygio vietai ir negali būti panaikinta. Atnaujinkite savo žemesnio lygio vietas, kad nebebūtų sąsajos su šia vieta, ir bandykite dar kartą. ', 'assigned_assets' => 'Priskirtas turtas', 'current_location' => 'Dabartinė vieta', + 'open_map' => 'Atidaryti :map_provider_icon žemėlapiuose', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Vieta atnaujinta sėkmingai.' ), + 'restore' => array( + 'error' => 'Vieta nebuvo atkurta. Bandykite dar kartą', + 'success' => 'Vieta atkurta sėkmingai.' + ), + 'delete' => array( 'confirm' => 'Ar tikrai norite panaikinti šią vietą?', 'error' => 'Bandant panaikinti vietą įvyko klaida. Bandykite dar kartą.', diff --git a/resources/lang/lt-LT/admin/settings/general.php b/resources/lang/lt-LT/admin/settings/general.php index 88f9fa61c..2737c712e 100644 --- a/resources/lang/lt-LT/admin/settings/general.php +++ b/resources/lang/lt-LT/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'Jei naudotojas neturi profilio nuotraukos, šis atvaizdas bus rodomas jo profilyje.', 'restore_default_avatar' => 'Atkurti pradinį sistemos numatytąjį avatarą', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'Likus kiek dienų iki numatomo turto paėmimo, jis turėtų būti rodomas puslapyje „Laukia paėmimo“?', ]; diff --git a/resources/lang/lt-LT/general.php b/resources/lang/lt-LT/general.php index e6b61f887..5fcb97f78 100644 --- a/resources/lang/lt-LT/general.php +++ b/resources/lang/lt-LT/general.php @@ -18,7 +18,7 @@ return [ 'add_seats' => 'Pridėtos licencijos vietos', 'age' => "Amžius", 'all_assets' => 'Visas turtas', - 'all' => 'Viskas', + 'all' => 'Visas', 'archived' => 'Archyvuotas', 'asset_models' => 'Turto modeliai', 'asset_model' => 'Modelis', @@ -99,7 +99,7 @@ return [ 'delete' => 'Panaikinti', 'delete_confirm' => 'Ar tikrai norite panaikinti :item?', 'delete_confirm_no_undo' => 'Ar tikrai norite panaikinti :item? Šis veiksmas negrįžtamas.', - 'deleted' => 'Panaikinta', + 'deleted' => 'Panaikintas', 'delete_seats' => 'Panaikintos licencijos vietos', 'deletion_failed' => 'Panaikinti nepavyko', 'departments' => 'Skyriai', @@ -279,7 +279,7 @@ return [ 'site_name' => 'Puslapio pavadinimas', 'state' => 'Rajonas', 'status_labels' => 'Būsenos žymos', - 'status_label' => 'Status Label', + 'status_label' => 'Būsenos žyma', 'status' => 'Būsena', 'accept_eula' => 'Licencinis sutikimas', 'supplier' => 'Tiekėjas', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Turtas pagal būsenos tipą', 'pie_chart_type' => 'Valdymo skydo skritulinės diagramos tipas', 'hello_name' => 'Sveiki, :name!', - 'unaccepted_profile_warning' => 'Turite :count daiktus, kuriuos reikia priimti. Spustelėkite čia, jei norite juos priimti arba atmesti', + 'unaccepted_profile_warning' => 'Turite vieną daiktą, kurį reikia priimti. Spustelėkite čia, jei norite jį priimti arba atmesti | Turite :count daiktus(-ų), kuriuos reikia priimti. Spustelėkite čia, jei norite juos priimti arba atmesti', 'start_date' => 'Pradžios data', 'end_date' => 'Pabaigos data', 'alt_uploaded_image_thumbnail' => 'Įkelta miniatiūra', @@ -559,5 +559,8 @@ return [ 'expires' => 'Baigiasi', 'map_fields'=> 'Susieti :item_type lauką', 'remaining_var' => ':count liko', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Etiketė', + 'import_asset_tag_exists' => 'Turtas su inventoriniu numeriu :asset_tag jau yra ir atnaujinimo užklausa nebuvo pateikta. Jokie pakeitimai nebuvo atlikti.', ]; diff --git a/resources/lang/lv-LV/admin/asset_maintenances/form.php b/resources/lang/lv-LV/admin/asset_maintenances/form.php index 9941f26ea..e6e221639 100644 --- a/resources/lang/lv-LV/admin/asset_maintenances/form.php +++ b/resources/lang/lv-LV/admin/asset_maintenances/form.php @@ -3,7 +3,7 @@ return [ 'asset_maintenance_type' => 'Asset Maintenance Type', 'title' => 'Nosaukums', - 'start_date' => 'Start Date', + 'start_date' => 'Sākuma datums', 'completion_date' => 'Completion Date', 'cost' => 'Izmaksas', 'is_warranty' => 'Garantijas uzlabošana', diff --git a/resources/lang/lv-LV/admin/hardware/message.php b/resources/lang/lv-LV/admin/hardware/message.php index 6303a0ced..96ec15725 100644 --- a/resources/lang/lv-LV/admin/hardware/message.php +++ b/resources/lang/lv-LV/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Jūsu fails ir veiksmīgi izdzēsts', 'file_delete_error' => 'Failu nevarēja dzēst', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/lv-LV/admin/hardware/table.php b/resources/lang/lv-LV/admin/hardware/table.php index 2960d5fcf..79a4ecfb0 100644 --- a/resources/lang/lv-LV/admin/hardware/table.php +++ b/resources/lang/lv-LV/admin/hardware/table.php @@ -27,7 +27,7 @@ return [ 'monthly_depreciation' => 'Monthly Depreciation', 'assigned_to' => 'Piešķirts', 'requesting_user' => 'Requesting User', - 'requested_date' => 'Requested Date', - 'changed' => 'Changed', + 'requested_date' => 'Pieprasīšanas datums', + 'changed' => 'Izmainīts', 'icon' => 'Icon', ]; diff --git a/resources/lang/lv-LV/admin/kits/general.php b/resources/lang/lv-LV/admin/kits/general.php index a8c7457cb..566920695 100644 --- a/resources/lang/lv-LV/admin/kits/general.php +++ b/resources/lang/lv-LV/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/lv-LV/admin/labels/table.php b/resources/lang/lv-LV/admin/labels/table.php index 972ba8494..0591bf084 100644 --- a/resources/lang/lv-LV/admin/labels/table.php +++ b/resources/lang/lv-LV/admin/labels/table.php @@ -9,7 +9,7 @@ return [ 'example_model' => 'Test Model', 'example_supplier' => 'Test Company Limited', 'labels_per_page' => 'Labels', - 'support_fields' => 'Fields', + 'support_fields' => 'Lauki', 'support_asset_tag' => 'Tag', 'support_1d_barcode' => '1D', 'support_2d_barcode' => '2D', diff --git a/resources/lang/lv-LV/admin/locations/message.php b/resources/lang/lv-LV/admin/locations/message.php index 34e368cfa..82159cea8 100644 --- a/resources/lang/lv-LV/admin/locations/message.php +++ b/resources/lang/lv-LV/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Pašlaik šī vieta ir vismaz viena bērna atrašanās vieta un to nevar izdzēst. Lūdzu, atjauniniet savas atrašanās vietas, lai vairs nerindotu šo atrašanās vietu, un mēģiniet vēlreiz.', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Atrašanās vieta ir veiksmīgi atjaunināta.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Vai tiešām vēlaties dzēst šo atrašanās vietu?', 'error' => 'Radās problēma, dzēšot atrašanās vietu. Lūdzu mēģiniet vēlreiz.', diff --git a/resources/lang/lv-LV/admin/locations/table.php b/resources/lang/lv-LV/admin/locations/table.php index 60e5f4007..8fed6e15f 100644 --- a/resources/lang/lv-LV/admin/locations/table.php +++ b/resources/lang/lv-LV/admin/locations/table.php @@ -32,7 +32,7 @@ return [ 'asset_serial' => 'Sērijas numurs', 'asset_location' => 'Atrašanās vieta', 'asset_checked_out' => 'Izrakstīts', - 'asset_expected_checkin' => 'Expected Checkin', + 'asset_expected_checkin' => 'Paredzamais reģistrēšanas datums', 'date' => 'Datums:', 'phone' => 'Location Phone', 'signed_by_asset_auditor' => 'Signed By (Asset Auditor):', diff --git a/resources/lang/lv-LV/admin/models/message.php b/resources/lang/lv-LV/admin/models/message.php index 6c87d6cb7..7fb66f2f4 100644 --- a/resources/lang/lv-LV/admin/models/message.php +++ b/resources/lang/lv-LV/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'Šobrīd šis modelis ir saistīts ar vienu vai vairākiem aktīviem, un tos nevar izdzēst. Lūdzu, izdzēsiet aktīvus un pēc tam mēģiniet vēlreiz dzēst.', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Modelis netika izveidots, lūdzu, mēģiniet vēlreiz.', diff --git a/resources/lang/lv-LV/admin/settings/general.php b/resources/lang/lv-LV/admin/settings/general.php index 7d7de85ab..39dd966cb 100644 --- a/resources/lang/lv-LV/admin/settings/general.php +++ b/resources/lang/lv-LV/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/lv-LV/admin/settings/message.php b/resources/lang/lv-LV/admin/settings/message.php index c8a668ecb..f2f47138f 100644 --- a/resources/lang/lv-LV/admin/settings/message.php +++ b/resources/lang/lv-LV/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Iztīrīšanas laikā radās kļūda.', diff --git a/resources/lang/lv-LV/general.php b/resources/lang/lv-LV/general.php index 1a1be6016..07fc815c3 100644 --- a/resources/lang/lv-LV/general.php +++ b/resources/lang/lv-LV/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Izejmateriāli', 'country' => 'Valsts', 'could_not_restore' => 'Kļūda atjaunojot :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Izveidot jaunu', 'created' => 'Izveidots vienums', 'created_asset' => 'izveidots aktīvu', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Šī lietojumprogramma darbojas ražošanas režīmā ar iespējotu atkļūdošanu. Tas var pakļaut sensitīvus datus, ja jūsu pieteikums ir pieejams ārpasauli. Atspējošanas atkļūdošanas režīms, iestatot APP_DEBUG vērtību savam .env failam uz false.', 'delete' => 'Dzēst', 'delete_confirm' => 'Vai tiešām vēlaties dzēst :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Svītrots', 'delete_seats' => 'Izdzēstās vietas', 'deletion_failed' => 'Dzēšana neizdevās', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Augšupielādēt attēlu', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Šis attēls nebija izmantojams. Atļautie failu tipi ir: jpg, webp, png, gif, and svg. Šī faila tips ir :mimetype.', 'import' => 'Importēt', 'import_this_file' => 'Kartējiet laukus un apstrādājiet šo failu', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => '4. Solis', 'setup_config_check' => 'Konfigurācijas pārbaude', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Gatavs!', 'bulk_edit_about_to' => 'Jūs tūlīt rediģēsiet sekojošo: ', 'checked_out' => 'Izrakstīts', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Inventārs pēc Statusa veida', 'pie_chart_type' => 'Pīrāga diagrammas panelis', 'hello_name' => 'Sveiki, :name!', - 'unaccepted_profile_warning' => 'Jums :count lietām nepieciešama pieņemšana. Nospiediet šeit lai tās pieņemtu vai noraidītu', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Sākuma datums', 'end_date' => 'Beigu datums', 'alt_uploaded_image_thumbnail' => 'Augšuplādēt sīktēlu', @@ -559,5 +559,8 @@ return [ 'expires' => 'Beidzas', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/mi-NZ/admin/hardware/message.php b/resources/lang/mi-NZ/admin/hardware/message.php index 6d129be01..2ad819ac6 100644 --- a/resources/lang/mi-NZ/admin/hardware/message.php +++ b/resources/lang/mi-NZ/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Kua mukua pai to kōnae', 'file_delete_error' => 'Kāore i taea te mukua te kōnae', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/mi-NZ/admin/kits/general.php b/resources/lang/mi-NZ/admin/kits/general.php index 79929652f..7af77de10 100644 --- a/resources/lang/mi-NZ/admin/kits/general.php +++ b/resources/lang/mi-NZ/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/mi-NZ/admin/locations/message.php b/resources/lang/mi-NZ/admin/locations/message.php index 8f50e9a24..e1d8ff3e6 100644 --- a/resources/lang/mi-NZ/admin/locations/message.php +++ b/resources/lang/mi-NZ/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Kei tenei waahi te matua o te iti rawa o te mokopuna me te kore e taea te muku. Whakaorangia nga taangata ki a koe kia kaua e tautuhi i tenei tauranga ka ngana ano.', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Kua whakahoutia te tau.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Kei te hiahia koe ki te muku i tenei tauwāhi?', 'error' => 'He raru kei te whakakore i te tauwāhi. Tena ngana ano.', diff --git a/resources/lang/mi-NZ/admin/models/message.php b/resources/lang/mi-NZ/admin/models/message.php index 4e10e5d40..42d85446e 100644 --- a/resources/lang/mi-NZ/admin/models/message.php +++ b/resources/lang/mi-NZ/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'Kei te hono tenei tauira ki te kotahi, neke atu ranei nga rawa, kaore e taea te muku. Nganahia nga rawa, ka ngana ki te muku ano.', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Kāore i hangaia te tauira, tēnā whakamātau anō.', diff --git a/resources/lang/mi-NZ/admin/settings/general.php b/resources/lang/mi-NZ/admin/settings/general.php index 0d07401c2..84c5144e5 100644 --- a/resources/lang/mi-NZ/admin/settings/general.php +++ b/resources/lang/mi-NZ/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/mi-NZ/admin/settings/message.php b/resources/lang/mi-NZ/admin/settings/message.php index 93cb7d867..4cd44a6d3 100644 --- a/resources/lang/mi-NZ/admin/settings/message.php +++ b/resources/lang/mi-NZ/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Kua puta he hapa i te wa e purea ana.', diff --git a/resources/lang/mi-NZ/general.php b/resources/lang/mi-NZ/general.php index 071935c6e..acc73b76c 100644 --- a/resources/lang/mi-NZ/general.php +++ b/resources/lang/mi-NZ/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Ngā whakamahinga', 'country' => 'Whenua', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Waihanga Hou', 'created' => 'Kua waihangatia te Mea', 'created_asset' => 'waihanga i te taonga', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ko tenei tono kei te whakahaere i te mahinga whakaputa me te taraiwa kua whakahohea. Ka taea e tenei te whakaatu i nga raraunga taarata mehemea ka uru atu to tono ki te ao o waho. Monokia te aratau taapatu mā te whakarite i te uara APP_DEBUG123_7____132 i roto i to kōnae .env ki false.', 'delete' => 'Mukua', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Kua mukua', 'delete_seats' => 'Kua mukua nga Maatai', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Tukuna Whakaahua', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Kawemai', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Kua Mataarahia', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Ka puta', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/mk-MK/admin/hardware/message.php b/resources/lang/mk-MK/admin/hardware/message.php index 896d8c3cc..296cdbfa7 100644 --- a/resources/lang/mk-MK/admin/hardware/message.php +++ b/resources/lang/mk-MK/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Вашата датотека е избришана', 'file_delete_error' => 'Датотеката не можеше да се избрише', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/mk-MK/admin/kits/general.php b/resources/lang/mk-MK/admin/kits/general.php index ea5c286af..2857486b2 100644 --- a/resources/lang/mk-MK/admin/kits/general.php +++ b/resources/lang/mk-MK/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/mk-MK/admin/locations/message.php b/resources/lang/mk-MK/admin/locations/message.php index 92e16a81e..f6737fca1 100644 --- a/resources/lang/mk-MK/admin/locations/message.php +++ b/resources/lang/mk-MK/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Оваа локација моментално е родител на најмалку една локација и не може да се избрише. Ве молиме да ги ажурирате вашите локации повеќе да не ја користат оваа локација како родител и обидете се повторно. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Локацијата е успешно ажурирана.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Дали сте сигурни дека сакате да ја избришете оваа локација?', 'error' => 'Имаше проблем со бришење на локацијата. Обидете се повторно.', diff --git a/resources/lang/mk-MK/admin/models/message.php b/resources/lang/mk-MK/admin/models/message.php index 4d31fd681..38ea52154 100644 --- a/resources/lang/mk-MK/admin/models/message.php +++ b/resources/lang/mk-MK/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'Моделот во моментов е поврзан со едно или повеќе основни средства и не може да се избрише. Ве молиме избришете ги основните средствата, а потоа пробајте повторно да го избришете. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Моделот не е креиран, обидете се повторно.', diff --git a/resources/lang/mk-MK/admin/settings/general.php b/resources/lang/mk-MK/admin/settings/general.php index 41a98c6ce..c1879362e 100644 --- a/resources/lang/mk-MK/admin/settings/general.php +++ b/resources/lang/mk-MK/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/mk-MK/admin/settings/message.php b/resources/lang/mk-MK/admin/settings/message.php index 854096bec..9a8931059 100644 --- a/resources/lang/mk-MK/admin/settings/message.php +++ b/resources/lang/mk-MK/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Се случи грешка при трајното бришење. ', diff --git a/resources/lang/mk-MK/general.php b/resources/lang/mk-MK/general.php index c924fe3f8..13a6322dd 100644 --- a/resources/lang/mk-MK/general.php +++ b/resources/lang/mk-MK/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Потрошен материјал', 'country' => 'Држава', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Креирај Нов {0}', 'created' => 'Креирана ставка', 'created_asset' => 'креирано основно средство', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Оваа апликација работи во режим на производство со овозможено дебагирање. Ова може да изложи чувствителните податоци доколку вашата апликација е достапна за надворешниот свет. Оневозможете го дебагирачкиот режим со поставување на APP_DEBUG во вашата .env датотека на false.', 'delete' => 'Избриши', 'delete_confirm' => 'Дали сте сигурни дека сакате да избришете: ставка?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Избришани', 'delete_seats' => 'Избришани места', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Поставете слика', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Увоз', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Задолжен на', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Истекува', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/ml-IN/admin/hardware/message.php b/resources/lang/ml-IN/admin/hardware/message.php index d06bf4a0e..041d32f56 100644 --- a/resources/lang/ml-IN/admin/hardware/message.php +++ b/resources/lang/ml-IN/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Your file has been been successfully deleted', 'file_delete_error' => 'The file was unable to be deleted', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/ml-IN/admin/kits/general.php b/resources/lang/ml-IN/admin/kits/general.php index f57fb645c..2b5c2d9cd 100644 --- a/resources/lang/ml-IN/admin/kits/general.php +++ b/resources/lang/ml-IN/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/ml-IN/admin/locations/message.php b/resources/lang/ml-IN/admin/locations/message.php index 6226c71ab..488ec9c67 100644 --- a/resources/lang/ml-IN/admin/locations/message.php +++ b/resources/lang/ml-IN/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Location updated successfully.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Are you sure you wish to delete this location?', 'error' => 'There was an issue deleting the location. Please try again.', diff --git a/resources/lang/ml-IN/admin/models/message.php b/resources/lang/ml-IN/admin/models/message.php index f61a2c535..ae3bc34ee 100644 --- a/resources/lang/ml-IN/admin/models/message.php +++ b/resources/lang/ml-IN/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'This model is currently associated with one or more assets and cannot be deleted. Please delete the assets, and then try deleting again. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model was not created, please try again.', diff --git a/resources/lang/ml-IN/admin/settings/general.php b/resources/lang/ml-IN/admin/settings/general.php index 31165cf3f..7ce360eda 100644 --- a/resources/lang/ml-IN/admin/settings/general.php +++ b/resources/lang/ml-IN/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/ml-IN/admin/settings/message.php b/resources/lang/ml-IN/admin/settings/message.php index 24e2d292c..c91575144 100644 --- a/resources/lang/ml-IN/admin/settings/message.php +++ b/resources/lang/ml-IN/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'An error has occurred while purging. ', diff --git a/resources/lang/ml-IN/general.php b/resources/lang/ml-IN/general.php index 2a1e63549..271d535f5 100644 --- a/resources/lang/ml-IN/general.php +++ b/resources/lang/ml-IN/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'രാജ്യം', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Upload Image', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Expires', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/mn-MN/admin/hardware/message.php b/resources/lang/mn-MN/admin/hardware/message.php index f3fa5cecb..4a7a12182 100644 --- a/resources/lang/mn-MN/admin/hardware/message.php +++ b/resources/lang/mn-MN/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Таны файл амжилттай болсон байна', 'file_delete_error' => 'Файл устгагдах боломжгүй байна', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/mn-MN/admin/kits/general.php b/resources/lang/mn-MN/admin/kits/general.php index 8963f3dec..42ddbe44d 100644 --- a/resources/lang/mn-MN/admin/kits/general.php +++ b/resources/lang/mn-MN/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/mn-MN/admin/locations/message.php b/resources/lang/mn-MN/admin/locations/message.php index f9d0f2919..803ac71e4 100644 --- a/resources/lang/mn-MN/admin/locations/message.php +++ b/resources/lang/mn-MN/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Энэ байршил нь одоогоор хамгийн багадаа нэг хүүхдийн байрлалын эцэг эх бөгөөд устгах боломжгүй байна. Энэ байршлыг лавшруулахгүй болгохын тулд байршлаа шинэчлээд дахин оролдоно уу.', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Байршил амжилттай шинэчлэгдсэн.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Та энэ байршлыг устгахыг хүсч байна уу?', 'error' => 'Байршил устгах асуудал гарлаа. Дахин оролдоно уу.', diff --git a/resources/lang/mn-MN/admin/models/message.php b/resources/lang/mn-MN/admin/models/message.php index 5921c7e3c..4ded7e504 100644 --- a/resources/lang/mn-MN/admin/models/message.php +++ b/resources/lang/mn-MN/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'Энэ загвар одоогоор нэг буюу хэд хэдэн хөрөнгөтэй холбоотой бөгөөд устгаж болохгүй. Хөрөнгө устгаж, дараа нь устгахыг оролдоно уу.', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Загвар үүсгэгдсэнгүй, дахин оролдоно уу.', diff --git a/resources/lang/mn-MN/admin/settings/general.php b/resources/lang/mn-MN/admin/settings/general.php index b37dcc496..900f44f11 100644 --- a/resources/lang/mn-MN/admin/settings/general.php +++ b/resources/lang/mn-MN/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/mn-MN/admin/settings/message.php b/resources/lang/mn-MN/admin/settings/message.php index 5546af13b..606f2ef01 100644 --- a/resources/lang/mn-MN/admin/settings/message.php +++ b/resources/lang/mn-MN/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Цэвэрлэх явцад алдаа гарлаа.', diff --git a/resources/lang/mn-MN/general.php b/resources/lang/mn-MN/general.php index 7ee5cb212..cf870ecaf 100644 --- a/resources/lang/mn-MN/general.php +++ b/resources/lang/mn-MN/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Хэрэглээ', 'country' => 'Улс', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Шинэ болгох', 'created' => 'Үүссэн зүйл', 'created_asset' => 'актив үүсгэсэн', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Энэ програм нь дибаг хийх боломжтойгоор үйлдвэрлэлийн горимд ажиллаж байна. Хэрэв таны хэрэглээ гаднах ертөнцөд хүртээмжтэй бол эмзэг өгөгдлийг илтгэнэ. APP_DEBUG утгыг өөрийн .env файлыг false руу тохируулах замаар дибаг хийх горимыг идэвхгүй болгох.', 'delete' => 'Устгах', 'delete_confirm' => 'Та :item устгахыг хүсч байгаадаа итгэлтэй байна уу?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Устгагдсан', 'delete_seats' => 'Устгагдсан суудал', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Зургийн байршуулалт', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Импорт', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Нь шалгаж', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Хугацаа дуусна', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/ms-MY/admin/hardware/message.php b/resources/lang/ms-MY/admin/hardware/message.php index 5b3f5ee41..1192234f0 100644 --- a/resources/lang/ms-MY/admin/hardware/message.php +++ b/resources/lang/ms-MY/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Fail anda telah berjaya dihapuskan', 'file_delete_error' => 'Fail tidak dapat dipadamkan', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/ms-MY/admin/kits/general.php b/resources/lang/ms-MY/admin/kits/general.php index d92cdb680..197169703 100644 --- a/resources/lang/ms-MY/admin/kits/general.php +++ b/resources/lang/ms-MY/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit berjaya dipadamkan', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/ms-MY/admin/locations/message.php b/resources/lang/ms-MY/admin/locations/message.php index 5726d0634..eeb1b4107 100644 --- a/resources/lang/ms-MY/admin/locations/message.php +++ b/resources/lang/ms-MY/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Lokasi ini adalah ibu bapa sekurang-kurangnya satu lokasi kanak-kanak dan tidak boleh dipadamkan. Sila kemas kini lokasi anda untuk tidak merujuk lokasi ini lagi dan cuba lagi.', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Lokasi berjaya dikemaskini.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Anda pasti and ingin menghapuskan lokasi ini?', 'error' => 'Ada isu semasa menghapuskan lokasi. Sila cuba lagi.', diff --git a/resources/lang/ms-MY/admin/models/message.php b/resources/lang/ms-MY/admin/models/message.php index f8d2776c3..478cf3428 100644 --- a/resources/lang/ms-MY/admin/models/message.php +++ b/resources/lang/ms-MY/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'Model ini sekarang disekutukan dengan sekurang2nya satu atau lebih harta dan tidak boleh dihapuskan. Sila kemaskini harta, dan kemudian cuba lagi. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model gagal dicipta, sila cuba lagi.', diff --git a/resources/lang/ms-MY/admin/settings/general.php b/resources/lang/ms-MY/admin/settings/general.php index 1c901f8a8..109444392 100644 --- a/resources/lang/ms-MY/admin/settings/general.php +++ b/resources/lang/ms-MY/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/ms-MY/admin/settings/message.php b/resources/lang/ms-MY/admin/settings/message.php index 07e15cf5d..5f35d24f2 100644 --- a/resources/lang/ms-MY/admin/settings/message.php +++ b/resources/lang/ms-MY/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Ralat telah berlaku semasa pembersihan.', diff --git a/resources/lang/ms-MY/general.php b/resources/lang/ms-MY/general.php index e58b94d1e..af5feb34a 100644 --- a/resources/lang/ms-MY/general.php +++ b/resources/lang/ms-MY/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Makanan yang boleh dimakan', 'country' => 'Negara', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Cipta Baru', 'created' => 'Perkara yang Dibuat', 'created_asset' => 'cipta harta', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Aplikasi ini berjalan dalam mod pengeluaran dengan debug membolehkan. Ini boleh mendedahkan data sensitif jika aplikasi anda boleh diakses oleh dunia luar. Lumpuhkan mod debug dengan menetapkan APP_DEBUG nilai dalam fail .env anda ke false.', 'delete' => 'Hapuskan', 'delete_confirm' => 'Adakah anda pasti ingin memadamkan :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Dihapuskan', 'delete_seats' => 'Kerusi dipadamkan', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Muat naik imej', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Agihan Keluar', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Tamat tempoh', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/nb-NO/admin/hardware/message.php b/resources/lang/nb-NO/admin/hardware/message.php index 90cc926a3..7da4edb61 100644 --- a/resources/lang/nb-NO/admin/hardware/message.php +++ b/resources/lang/nb-NO/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Filen har blitt slettet', 'file_delete_error' => 'Filen kunne ikke bli slettet', 'file_missing' => 'Valgt fil mangler (fant ikke filen)', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'En eller flere attributter i overskriftsraden inneholder feilformede UTF-8 tegn', 'content_row_has_malformed_characters' => 'En eller flere attributter i første rad i inneholdet inneholder feilformet UTF-8 tegn', ], diff --git a/resources/lang/nb-NO/admin/hardware/table.php b/resources/lang/nb-NO/admin/hardware/table.php index 5f39219f8..69f57e0f2 100644 --- a/resources/lang/nb-NO/admin/hardware/table.php +++ b/resources/lang/nb-NO/admin/hardware/table.php @@ -25,7 +25,7 @@ return [ 'image' => 'Enhet bilde', 'days_without_acceptance' => 'Dager uten aksept', 'monthly_depreciation' => 'Månedlig avskrivning', - 'assigned_to' => 'Tilordnet til', + 'assigned_to' => 'Tildelt til', 'requesting_user' => 'Forespurt av', 'requested_date' => 'Dato forespurt', 'changed' => 'Endret', diff --git a/resources/lang/nb-NO/admin/kits/general.php b/resources/lang/nb-NO/admin/kits/general.php index d877aefa1..9f157e044 100644 --- a/resources/lang/nb-NO/admin/kits/general.php +++ b/resources/lang/nb-NO/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Settet har blitt slettet', 'kit_model_updated' => 'Modellen ble oppdatert', 'kit_model_detached' => 'Modellen har blitt frakoblet', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/nb-NO/admin/locations/message.php b/resources/lang/nb-NO/admin/locations/message.php index cd124690a..d74b25367 100644 --- a/resources/lang/nb-NO/admin/locations/message.php +++ b/resources/lang/nb-NO/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Lokasjonen er overordnet til minst en underlokasjon og kan ikke slettes. Oppdater din lokasjoner til å ikke referere til denne lokasjonen, og prøv igjen. ', 'assigned_assets' => 'Tildelte ressurser', 'current_location' => 'Gjeldende plassering', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Vellykket oppdatering av plassering.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Er du sikker på at du vil slette denne plasseringen?', 'error' => 'Det oppstod et problem under sletting av plassering. Vennligst prøv igjen.', diff --git a/resources/lang/nb-NO/admin/models/message.php b/resources/lang/nb-NO/admin/models/message.php index 642bc1050..002a35bff 100644 --- a/resources/lang/nb-NO/admin/models/message.php +++ b/resources/lang/nb-NO/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'ADVARSEL! Ressursmodellen for dette elementet er ugyldig eller mangler!', 'no_association_fix' => 'Dette vil ødelegge ting på merkelige og forferdelige måte. Rediger denne ressursen nå for å tildele den en modell.', 'assoc_users' => 'Denne modellen er tilknyttet en eller flere eiendeler og kan ikke slettes. Slett eiendelene, og prøv å slette modellen igjen. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Modellen ble ikke opprettet. Prøv igjen.', diff --git a/resources/lang/nb-NO/admin/settings/general.php b/resources/lang/nb-NO/admin/settings/general.php index 36604fa93..a917561c0 100644 --- a/resources/lang/nb-NO/admin/settings/general.php +++ b/resources/lang/nb-NO/admin/settings/general.php @@ -382,5 +382,7 @@ Linjeskift, topptekst, bilder, osv. kan føre til uventede resultater.', 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/nb-NO/admin/settings/message.php b/resources/lang/nb-NO/admin/settings/message.php index 04ab7973b..9964e44a2 100644 --- a/resources/lang/nb-NO/admin/settings/message.php +++ b/resources/lang/nb-NO/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Er du sikker på at du vil gjenopprette databasen fra :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Det oppstod en feil under fjerning. ', diff --git a/resources/lang/nb-NO/general.php b/resources/lang/nb-NO/general.php index 69cfbec23..c4fe3ad5d 100644 --- a/resources/lang/nb-NO/general.php +++ b/resources/lang/nb-NO/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Forbruksvarer', 'country' => 'Land', 'could_not_restore' => 'Feil ved gjenoppretting av :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Opprett ny', 'created' => 'Enhet opprettet', 'created_asset' => 'eiendel opprettet', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Dette programmet kjører i produksjonsmodus med feilsøking aktiverert. Dette kan utsette følsomme data hvis programmet er tilgjengelig for omverdenen. Deaktiver debug modus ved å sette APP_DEBUG-verdien i filen .env til false.', 'delete' => 'Slett', 'delete_confirm' => 'Er du sikker på at du vil slette :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Slettet', 'delete_seats' => 'Slettede setelisenser', 'deletion_failed' => 'Sletting mislyktes', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Last opp bilde', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Denne bildefilen var ikke lesbar. Aksepterte filtyper er jpg, webp, png, gif og svg. Mime-typen til denne filen er :mimetype.', 'import' => 'Importer', 'import_this_file' => 'Kartfelter og behandle denne filen', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Trinn 4', 'setup_config_check' => 'Sjekk konfigurasjon', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Ferdig!', 'bulk_edit_about_to' => 'Du er i ferd med å redigere følgende: ', 'checked_out' => 'Sjekket ut', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Eiendeler etter status', 'pie_chart_type' => 'Dashbord Kakediagram type', 'hello_name' => 'Velkommen, :name!', - 'unaccepted_profile_warning' => 'Du har :count elementer som trenger godkjenning. Klikk her for å akseptere eller avslå dem', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Startdato', 'end_date' => 'Sluttdato', 'alt_uploaded_image_thumbnail' => 'Opplastet miniatyrbilde', @@ -559,5 +559,8 @@ return [ 'expires' => 'Utløper', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/nl-NL/admin/hardware/message.php b/resources/lang/nl-NL/admin/hardware/message.php index 8db52dfbf..5d532de82 100644 --- a/resources/lang/nl-NL/admin/hardware/message.php +++ b/resources/lang/nl-NL/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Je bestand is succesvol verwijderd', 'file_delete_error' => 'Het bestand kon niet worden verwijderd', 'file_missing' => 'Het geselecteerde bestand ontbreekt', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Een of meer attributen in de kopregel bevatten ongeldige UTF-8-tekens', 'content_row_has_malformed_characters' => 'Een of meer attributen in de eerste rij inhoud bevat ongeldige UTF-8 tekens', ], diff --git a/resources/lang/nl-NL/admin/kits/general.php b/resources/lang/nl-NL/admin/kits/general.php index c61097f8e..1c2381547 100644 --- a/resources/lang/nl-NL/admin/kits/general.php +++ b/resources/lang/nl-NL/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit is succesvol verwijderd', 'kit_model_updated' => 'Model is succesvol bijgewerkt', 'kit_model_detached' => 'Model is met succes losgekoppeld', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/nl-NL/admin/locations/message.php b/resources/lang/nl-NL/admin/locations/message.php index b9760350d..4020d4e3e 100644 --- a/resources/lang/nl-NL/admin/locations/message.php +++ b/resources/lang/nl-NL/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Deze locatie is momenteen de ouder van ten minste één kind locatie en kan hierdoor niet worden verwijderd. Update je locaties bij die niet meer naar deze locatie verwijzen en probeer het opnieuw. ', 'assigned_assets' => 'Toegewezen activa', 'current_location' => 'Huidige locatie', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Locatie is met succes gewijzigd.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Weet je het zeker dat je deze locatie wilt verwijderen?', 'error' => 'Er was een probleem met het verwijderen van deze locatie. Probeer het opnieuw.', diff --git a/resources/lang/nl-NL/admin/models/message.php b/resources/lang/nl-NL/admin/models/message.php index 4a791c0d6..edef7962b 100644 --- a/resources/lang/nl-NL/admin/models/message.php +++ b/resources/lang/nl-NL/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WAARSCHUWING! Het asset model voor dit item is ongeldig of ontbreekt!', 'no_association_fix' => 'Dit maakt dingen kapot op rare en gruwelijke manieren. Bewerk dit product nu om het een model toe te wijzen.', 'assoc_users' => 'Dit model is momenteel gekoppeld met één of meer assets en kan niet worden verwijderd. Verwijder de assets en probeer het opnieuw. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model is niet aangemaakt, probeer het opnieuw.', diff --git a/resources/lang/nl-NL/admin/settings/general.php b/resources/lang/nl-NL/admin/settings/general.php index 671b0e931..2fc17ddf9 100644 --- a/resources/lang/nl-NL/admin/settings/general.php +++ b/resources/lang/nl-NL/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/nl-NL/admin/settings/message.php b/resources/lang/nl-NL/admin/settings/message.php index c1eca86cd..9a19c6a7c 100644 --- a/resources/lang/nl-NL/admin/settings/message.php +++ b/resources/lang/nl-NL/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Weet je zeker dat je je database wilt herstellen met :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Er is iets fout gegaan tijdens het opschonen.', diff --git a/resources/lang/nl-NL/general.php b/resources/lang/nl-NL/general.php index 17296afff..dae57e543 100644 --- a/resources/lang/nl-NL/general.php +++ b/resources/lang/nl-NL/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Verbruiksartikelen', 'country' => 'Land', 'could_not_restore' => 'Fout herstellen :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Nieuwe aanmaken', 'created' => 'Item aangemaakt', 'created_asset' => 'aangemaakt asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Deze applicatie draait in productie modus met foutopsporing ingeschakeld. Dit kan betekenen dat mogelijk gevoelige gegevens zichtbaar zijn voor de buitenwereld. Schakel foutopsporing uit door de APP_DEBUG variabele in je .env bestand op false te zetten.', 'delete' => 'Verwijder', 'delete_confirm' => 'Weet u zeker dat u :item wilt verwijderen?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Verwijderd', 'delete_seats' => 'Verwijderde plekken', 'deletion_failed' => 'Verwijderen mislukt', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Afbeelding uploaden', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Dit afbeeldingsbestand is niet leesbaar. Geaccepteerde bestandstypen zijn jpg, webp, png, gif en svg. Het mimetype van dit bestand is: :mimetype.', 'import' => 'Importeer', 'import_this_file' => 'Kaart velden en verwerk dit bestand', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Stap 4', 'setup_config_check' => 'Configuratie Controle', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Klaar!', 'bulk_edit_about_to' => 'Je staat op het punt om het volgende te bewerken: ', 'checked_out' => 'Uitgecheckt', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Active op statustype', 'pie_chart_type' => 'Dashboard cirkeldiagram type', 'hello_name' => 'Welkom :name!', - 'unaccepted_profile_warning' => 'Je hebt :count artikelen die acceptatie vereisen. Klik hier om ze te accepteren of te weigeren', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Begindatum', 'end_date' => 'Einddatum', 'alt_uploaded_image_thumbnail' => 'Upload mini-afbeelding', @@ -559,5 +559,8 @@ return [ 'expires' => 'Verloopt', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/nn-NO/admin/hardware/message.php b/resources/lang/nn-NO/admin/hardware/message.php index 90cc926a3..7da4edb61 100644 --- a/resources/lang/nn-NO/admin/hardware/message.php +++ b/resources/lang/nn-NO/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Filen har blitt slettet', 'file_delete_error' => 'Filen kunne ikke bli slettet', 'file_missing' => 'Valgt fil mangler (fant ikke filen)', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'En eller flere attributter i overskriftsraden inneholder feilformede UTF-8 tegn', 'content_row_has_malformed_characters' => 'En eller flere attributter i første rad i inneholdet inneholder feilformet UTF-8 tegn', ], diff --git a/resources/lang/nn-NO/admin/kits/general.php b/resources/lang/nn-NO/admin/kits/general.php index d877aefa1..9f157e044 100644 --- a/resources/lang/nn-NO/admin/kits/general.php +++ b/resources/lang/nn-NO/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Settet har blitt slettet', 'kit_model_updated' => 'Modellen ble oppdatert', 'kit_model_detached' => 'Modellen har blitt frakoblet', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/nn-NO/admin/locations/message.php b/resources/lang/nn-NO/admin/locations/message.php index cd124690a..d74b25367 100644 --- a/resources/lang/nn-NO/admin/locations/message.php +++ b/resources/lang/nn-NO/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Lokasjonen er overordnet til minst en underlokasjon og kan ikke slettes. Oppdater din lokasjoner til å ikke referere til denne lokasjonen, og prøv igjen. ', 'assigned_assets' => 'Tildelte ressurser', 'current_location' => 'Gjeldende plassering', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Vellykket oppdatering av plassering.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Er du sikker på at du vil slette denne plasseringen?', 'error' => 'Det oppstod et problem under sletting av plassering. Vennligst prøv igjen.', diff --git a/resources/lang/nn-NO/admin/models/message.php b/resources/lang/nn-NO/admin/models/message.php index 642bc1050..002a35bff 100644 --- a/resources/lang/nn-NO/admin/models/message.php +++ b/resources/lang/nn-NO/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'ADVARSEL! Ressursmodellen for dette elementet er ugyldig eller mangler!', 'no_association_fix' => 'Dette vil ødelegge ting på merkelige og forferdelige måte. Rediger denne ressursen nå for å tildele den en modell.', 'assoc_users' => 'Denne modellen er tilknyttet en eller flere eiendeler og kan ikke slettes. Slett eiendelene, og prøv å slette modellen igjen. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Modellen ble ikke opprettet. Prøv igjen.', diff --git a/resources/lang/nn-NO/admin/settings/general.php b/resources/lang/nn-NO/admin/settings/general.php index 36604fa93..a917561c0 100644 --- a/resources/lang/nn-NO/admin/settings/general.php +++ b/resources/lang/nn-NO/admin/settings/general.php @@ -382,5 +382,7 @@ Linjeskift, topptekst, bilder, osv. kan føre til uventede resultater.', 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/nn-NO/admin/settings/message.php b/resources/lang/nn-NO/admin/settings/message.php index 04ab7973b..9964e44a2 100644 --- a/resources/lang/nn-NO/admin/settings/message.php +++ b/resources/lang/nn-NO/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Er du sikker på at du vil gjenopprette databasen fra :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Det oppstod en feil under fjerning. ', diff --git a/resources/lang/nn-NO/general.php b/resources/lang/nn-NO/general.php index 69cfbec23..c4fe3ad5d 100644 --- a/resources/lang/nn-NO/general.php +++ b/resources/lang/nn-NO/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Forbruksvarer', 'country' => 'Land', 'could_not_restore' => 'Feil ved gjenoppretting av :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Opprett ny', 'created' => 'Enhet opprettet', 'created_asset' => 'eiendel opprettet', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Dette programmet kjører i produksjonsmodus med feilsøking aktiverert. Dette kan utsette følsomme data hvis programmet er tilgjengelig for omverdenen. Deaktiver debug modus ved å sette APP_DEBUG-verdien i filen .env til false.', 'delete' => 'Slett', 'delete_confirm' => 'Er du sikker på at du vil slette :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Slettet', 'delete_seats' => 'Slettede setelisenser', 'deletion_failed' => 'Sletting mislyktes', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Last opp bilde', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Denne bildefilen var ikke lesbar. Aksepterte filtyper er jpg, webp, png, gif og svg. Mime-typen til denne filen er :mimetype.', 'import' => 'Importer', 'import_this_file' => 'Kartfelter og behandle denne filen', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Trinn 4', 'setup_config_check' => 'Sjekk konfigurasjon', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Ferdig!', 'bulk_edit_about_to' => 'Du er i ferd med å redigere følgende: ', 'checked_out' => 'Sjekket ut', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Eiendeler etter status', 'pie_chart_type' => 'Dashbord Kakediagram type', 'hello_name' => 'Velkommen, :name!', - 'unaccepted_profile_warning' => 'Du har :count elementer som trenger godkjenning. Klikk her for å akseptere eller avslå dem', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Startdato', 'end_date' => 'Sluttdato', 'alt_uploaded_image_thumbnail' => 'Opplastet miniatyrbilde', @@ -559,5 +559,8 @@ return [ 'expires' => 'Utløper', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/no-NO/admin/hardware/message.php b/resources/lang/no-NO/admin/hardware/message.php index 90cc926a3..7da4edb61 100644 --- a/resources/lang/no-NO/admin/hardware/message.php +++ b/resources/lang/no-NO/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Filen har blitt slettet', 'file_delete_error' => 'Filen kunne ikke bli slettet', 'file_missing' => 'Valgt fil mangler (fant ikke filen)', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'En eller flere attributter i overskriftsraden inneholder feilformede UTF-8 tegn', 'content_row_has_malformed_characters' => 'En eller flere attributter i første rad i inneholdet inneholder feilformet UTF-8 tegn', ], diff --git a/resources/lang/no-NO/admin/kits/general.php b/resources/lang/no-NO/admin/kits/general.php index d877aefa1..9f157e044 100644 --- a/resources/lang/no-NO/admin/kits/general.php +++ b/resources/lang/no-NO/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Settet har blitt slettet', 'kit_model_updated' => 'Modellen ble oppdatert', 'kit_model_detached' => 'Modellen har blitt frakoblet', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/no-NO/admin/locations/message.php b/resources/lang/no-NO/admin/locations/message.php index cd124690a..d74b25367 100644 --- a/resources/lang/no-NO/admin/locations/message.php +++ b/resources/lang/no-NO/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Lokasjonen er overordnet til minst en underlokasjon og kan ikke slettes. Oppdater din lokasjoner til å ikke referere til denne lokasjonen, og prøv igjen. ', 'assigned_assets' => 'Tildelte ressurser', 'current_location' => 'Gjeldende plassering', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Vellykket oppdatering av plassering.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Er du sikker på at du vil slette denne plasseringen?', 'error' => 'Det oppstod et problem under sletting av plassering. Vennligst prøv igjen.', diff --git a/resources/lang/no-NO/admin/models/message.php b/resources/lang/no-NO/admin/models/message.php index 642bc1050..002a35bff 100644 --- a/resources/lang/no-NO/admin/models/message.php +++ b/resources/lang/no-NO/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'ADVARSEL! Ressursmodellen for dette elementet er ugyldig eller mangler!', 'no_association_fix' => 'Dette vil ødelegge ting på merkelige og forferdelige måte. Rediger denne ressursen nå for å tildele den en modell.', 'assoc_users' => 'Denne modellen er tilknyttet en eller flere eiendeler og kan ikke slettes. Slett eiendelene, og prøv å slette modellen igjen. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Modellen ble ikke opprettet. Prøv igjen.', diff --git a/resources/lang/no-NO/admin/settings/general.php b/resources/lang/no-NO/admin/settings/general.php index 36604fa93..a917561c0 100644 --- a/resources/lang/no-NO/admin/settings/general.php +++ b/resources/lang/no-NO/admin/settings/general.php @@ -382,5 +382,7 @@ Linjeskift, topptekst, bilder, osv. kan føre til uventede resultater.', 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/no-NO/admin/settings/message.php b/resources/lang/no-NO/admin/settings/message.php index 04ab7973b..9964e44a2 100644 --- a/resources/lang/no-NO/admin/settings/message.php +++ b/resources/lang/no-NO/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Er du sikker på at du vil gjenopprette databasen fra :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Det oppstod en feil under fjerning. ', diff --git a/resources/lang/no-NO/general.php b/resources/lang/no-NO/general.php index 69cfbec23..c4fe3ad5d 100644 --- a/resources/lang/no-NO/general.php +++ b/resources/lang/no-NO/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Forbruksvarer', 'country' => 'Land', 'could_not_restore' => 'Feil ved gjenoppretting av :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Opprett ny', 'created' => 'Enhet opprettet', 'created_asset' => 'eiendel opprettet', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Dette programmet kjører i produksjonsmodus med feilsøking aktiverert. Dette kan utsette følsomme data hvis programmet er tilgjengelig for omverdenen. Deaktiver debug modus ved å sette APP_DEBUG-verdien i filen .env til false.', 'delete' => 'Slett', 'delete_confirm' => 'Er du sikker på at du vil slette :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Slettet', 'delete_seats' => 'Slettede setelisenser', 'deletion_failed' => 'Sletting mislyktes', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Last opp bilde', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Denne bildefilen var ikke lesbar. Aksepterte filtyper er jpg, webp, png, gif og svg. Mime-typen til denne filen er :mimetype.', 'import' => 'Importer', 'import_this_file' => 'Kartfelter og behandle denne filen', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Trinn 4', 'setup_config_check' => 'Sjekk konfigurasjon', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Ferdig!', 'bulk_edit_about_to' => 'Du er i ferd med å redigere følgende: ', 'checked_out' => 'Sjekket ut', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Eiendeler etter status', 'pie_chart_type' => 'Dashbord Kakediagram type', 'hello_name' => 'Velkommen, :name!', - 'unaccepted_profile_warning' => 'Du har :count elementer som trenger godkjenning. Klikk her for å akseptere eller avslå dem', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Startdato', 'end_date' => 'Sluttdato', 'alt_uploaded_image_thumbnail' => 'Opplastet miniatyrbilde', @@ -559,5 +559,8 @@ return [ 'expires' => 'Utløper', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/pl-PL/admin/hardware/message.php b/resources/lang/pl-PL/admin/hardware/message.php index 2b3499e3b..cee9fd971 100644 --- a/resources/lang/pl-PL/admin/hardware/message.php +++ b/resources/lang/pl-PL/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Twój plik został poprawnie usunięty', 'file_delete_error' => 'Plik nie może zostać usunięty', 'file_missing' => 'Brakuje wybranego pliku', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Jeden lub więcej atrybutów w wierszu nagłówka zawiera nieprawidłowe znaki UTF-8', 'content_row_has_malformed_characters' => 'Jeden lub więcej atrybutów w pierwszym rzędzie zawartości zawiera nieprawidłowe znaki UTF-8', ], diff --git a/resources/lang/pl-PL/admin/kits/general.php b/resources/lang/pl-PL/admin/kits/general.php index 1e3977042..9e9bb7fae 100644 --- a/resources/lang/pl-PL/admin/kits/general.php +++ b/resources/lang/pl-PL/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Zestaw został pomyślnie usunięty', 'kit_model_updated' => 'Model został pomyślnie zaktualizowany', 'kit_model_detached' => 'Model został pomyślnie odłączony', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/pl-PL/admin/locations/message.php b/resources/lang/pl-PL/admin/locations/message.php index 22da94ef6..993b8e9f8 100644 --- a/resources/lang/pl-PL/admin/locations/message.php +++ b/resources/lang/pl-PL/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Lokalizacja obecnie jest rodzicem minimum jeden innej lokalizacji i nie może zostać usunięta. Uaktualnij właściwości lokalizacji tak aby nie było relacji z tą lokalizacją i spróbuj ponownie. ', 'assigned_assets' => 'Przypisane aktywa', 'current_location' => 'Bieżąca lokalizacja', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Lokalizacja zaktualizowana pomyślnie.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Czy na pewno usunąć wybraną lokalizację?', 'error' => 'Podczas usuwania lokalizacji napotkano problem. Spróbuj ponownie.', diff --git a/resources/lang/pl-PL/admin/settings/general.php b/resources/lang/pl-PL/admin/settings/general.php index 758fc3b2d..761da71d7 100644 --- a/resources/lang/pl-PL/admin/settings/general.php +++ b/resources/lang/pl-PL/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/pl-PL/admin/settings/message.php b/resources/lang/pl-PL/admin/settings/message.php index bea3ee8dd..d369bee4d 100644 --- a/resources/lang/pl-PL/admin/settings/message.php +++ b/resources/lang/pl-PL/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Czy na pewno chcesz przywrócić bazę danych z :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Wystąpił błąd podczas czyszczenia. ', diff --git a/resources/lang/pl-PL/general.php b/resources/lang/pl-PL/general.php index f180daf6b..5ea9d83ce 100644 --- a/resources/lang/pl-PL/general.php +++ b/resources/lang/pl-PL/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Materiały eksploatacyjne', 'country' => 'Kraj', 'could_not_restore' => 'Wystąpił błąd podczas przywracania :item_type: :error', - 'not_deleted' => ':item_type nie został usunięty, więc nie może zostać przywrócony', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Utwórz nowe', 'created' => 'Utworzony element', 'created_asset' => 'Utworzone aktywa', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ta aplikacja jest uruchomiona w trybie produkcyjnym z włączonym debugowaniem. Jeśli aplikacja jest dostępna na zewnątrz, może to zagrażać ujawnieniem wrażliwych danych. Wyłącz tryb debugowania przez ustawienie wartości APP_DEBUG w pliku .env na false.', 'delete' => 'Kasuj', 'delete_confirm' => 'Czy na pewno chcesz usunąć :przedmiot?', - 'delete_confirm_no_undo' => 'Czy na pewno chcesz usunąć :item? Tej operacji nie można cofnąć.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Usunięte', 'delete_seats' => 'Usunięte miejsca', 'deletion_failed' => 'Usunięcie nieudane', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Dodaj zdjęcie', 'filetypes_accepted_help' => 'Akceptowany typ pliku to :types. Maksymalny dozwolony rozmiar pliku to :size.|Akceptowane typy plików to :types. Maksymalny dozwolony rozmiar pliku to :size.', 'filetypes_size_help' => 'Maksymalny rozmiar pliku to :size.', - 'image_filetypes_help' => 'Akceptowane typy plików to jpg, webp, png, gif, svg i avif. Maksymalny rozmiar pliku to :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Plik z obrazem jest nieczytelny. Akceptowane typy plików to JPG, WebP, PNG, GIF i SVG. Typ MIME przesłanego pliku to :mimetype.', 'import' => 'Zaimportuj', 'import_this_file' => 'Mapuj pola i przetwarzaj ten plik', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Krok 4', 'setup_config_check' => 'Sprawdzanie konfiguracji', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Zakończono!', 'bulk_edit_about_to' => 'Zamierzasz edytować: ', 'checked_out' => 'Wydane', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Zasoby według typu statusu', 'pie_chart_type' => 'Typ wykresu Pie Dashboard', 'hello_name' => 'Witaj, :name!', - 'unaccepted_profile_warning' => 'Masz :count elementów wymagających akceptacji. Kliknij tutaj, aby je zaakceptować lub odrzucić', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Data rozpoczęcia', 'end_date' => 'Data zakończenia', 'alt_uploaded_image_thumbnail' => 'Przesłano miniaturę', @@ -559,5 +559,8 @@ return [ 'expires' => 'Wygasa', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/pt-BR/admin/hardware/message.php b/resources/lang/pt-BR/admin/hardware/message.php index 05f7da6eb..141bbf507 100644 --- a/resources/lang/pt-BR/admin/hardware/message.php +++ b/resources/lang/pt-BR/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'O arquivo foi excluído com sucesso', 'file_delete_error' => 'Não foi possível excluir o arquivo', 'file_missing' => 'O arquivo selecionado está faltando', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Um ou mais atributos na linha do cabeçalho contém caracteres UTF-8 malformados', 'content_row_has_malformed_characters' => 'Um ou mais atributos na primeira linha de conteúdo contém caracteres UTF-8 malformados', ], diff --git a/resources/lang/pt-BR/admin/kits/general.php b/resources/lang/pt-BR/admin/kits/general.php index 7db86b01d..fdd724202 100644 --- a/resources/lang/pt-BR/admin/kits/general.php +++ b/resources/lang/pt-BR/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit foi excluído com sucesso', 'kit_model_updated' => 'Modelo foi atualizado com sucesso', 'kit_model_detached' => 'Modelo foi desanexado com sucesso', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/pt-BR/admin/locations/message.php b/resources/lang/pt-BR/admin/locations/message.php index 48ac1d972..a1d5ac260 100644 --- a/resources/lang/pt-BR/admin/locations/message.php +++ b/resources/lang/pt-BR/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Este local é atualmente o principal de pelo menos local secundário e não pode ser deletado. Por favor atualize seus locais para não fazer mais referência a este local e tente novamente. ', 'assigned_assets' => 'Ativos atribuídos', 'current_location' => 'Localização Atual', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Local atualizado com sucesso.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Tem certeza de que quer excluir este local?', 'error' => 'Houve um problema ao excluir o local. Tente novamente.', diff --git a/resources/lang/pt-BR/admin/models/message.php b/resources/lang/pt-BR/admin/models/message.php index 29d7d98d0..60695ac87 100644 --- a/resources/lang/pt-BR/admin/models/message.php +++ b/resources/lang/pt-BR/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'ATENÇÃO! O modelo de ativo para este item é inválido ou está faltando!', 'no_association_fix' => 'Isso quebrará as coisas de maneiras estranhas e horríveis. Edite este equipamento agora para atribuir um modelo a ele.', 'assoc_users' => 'Este modelo está no momento associado com um ou mais ativos e não pode ser excluído. Exclua os ativos e então tente excluir novamente. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'O modelo não foi criado, tente novamente.', diff --git a/resources/lang/pt-BR/admin/settings/general.php b/resources/lang/pt-BR/admin/settings/general.php index 8b042e6cc..37d54ca10 100644 --- a/resources/lang/pt-BR/admin/settings/general.php +++ b/resources/lang/pt-BR/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/pt-BR/admin/settings/message.php b/resources/lang/pt-BR/admin/settings/message.php index e84adf51a..cd6e5f104 100644 --- a/resources/lang/pt-BR/admin/settings/message.php +++ b/resources/lang/pt-BR/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Tem certeza que deseja restaurar seu banco de dados a partir de :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Ocorreu um erro ao excluir os registros. ', diff --git a/resources/lang/pt-BR/general.php b/resources/lang/pt-BR/general.php index b00d2a623..f4094944c 100644 --- a/resources/lang/pt-BR/general.php +++ b/resources/lang/pt-BR/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumíveis', 'country' => 'País', 'could_not_restore' => 'Erro ao restaurar :item_type: :error', - 'not_deleted' => 'O :item_type não foi excluído, portanto, não pode ser restaurado', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Criar Novo', 'created' => 'Item criado', 'created_asset' => 'ativo criado', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Esta aplicação está em execução no modo de produção com a depuração ativada. Isso pode expor dados sensíveis se seu aplicativo é acessível para o mundo exterior. Desative o modo de depuração mudando o valor de APP_DEBUG no seu arquivo.env para false.', 'delete' => 'Excluir', 'delete_confirm' => 'Você tem certeza que deseja excluir :item?', - 'delete_confirm_no_undo' => 'Tem certeza de que deseja excluir :item? Isto não pode ser desfeito.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Excluído', 'delete_seats' => 'Assentos Excluídos', 'deletion_failed' => 'Falha ao excluir', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Carregar Imagem', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'O tamanho máximo de carregamento permitido é de :size.', - 'image_filetypes_help' => 'Tipos de arquivos aceitos são jpg, webp, png, gif, svg e avif. O tamanho máximo de upload permitido é :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Este arquivo de imagem não é legível. Tipos de arquivos aceitos são jpg, webp, png, gif e svg. O mimetype deste arquivo é: :mimetype.', 'import' => 'Importar', 'import_this_file' => 'Mapear os campos e processar este arquivo', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Passo 4', 'setup_config_check' => 'Verificar Configuração', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Concluído!', 'bulk_edit_about_to' => 'Você está prestes a editar o seguinte: ', 'checked_out' => 'Checked Out', @@ -427,7 +427,7 @@ Resultados da Sincronização', 'assets_by_status_type' => 'Ativos por Tipo de Situação', 'pie_chart_type' => 'Painel Tipo Gráfico de Pizza', 'hello_name' => 'Olá, :name!', - 'unaccepted_profile_warning' => 'Você tem :count itens que requerem aceitação. Clique aqui para aceitar ou recusá-los', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Data Inicial', 'end_date' => 'Data final', 'alt_uploaded_image_thumbnail' => 'Miniatura carregada', @@ -560,5 +560,8 @@ Resultados da Sincronização', 'expires' => 'Expira', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/pt-PT/admin/hardware/message.php b/resources/lang/pt-PT/admin/hardware/message.php index 4d8a46d10..48b1a8319 100644 --- a/resources/lang/pt-PT/admin/hardware/message.php +++ b/resources/lang/pt-PT/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Ficheiro eliminado com sucesso', 'file_delete_error' => 'Não foi possível eliminar o ficheiro', 'file_missing' => 'Ficheiro selecionado está a faltar', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Um ou mais atributos na linha do cabeçalho contém caracteres UTF-8 mal formados', 'content_row_has_malformed_characters' => 'Um ou mais atributos na primeira linha de conteúdo contém caracteres UTF-8 mal formados', ], diff --git a/resources/lang/pt-PT/admin/kits/general.php b/resources/lang/pt-PT/admin/kits/general.php index 5551bb3c3..e5b5b6fce 100644 --- a/resources/lang/pt-PT/admin/kits/general.php +++ b/resources/lang/pt-PT/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit foi apagado com sucesso', 'kit_model_updated' => 'Modelo foi atualizado com sucesso', 'kit_model_detached' => 'Modelo foi separado com sucesso', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/pt-PT/admin/locations/message.php b/resources/lang/pt-PT/admin/locations/message.php index 5d8e45c27..962ac01c2 100644 --- a/resources/lang/pt-PT/admin/locations/message.php +++ b/resources/lang/pt-PT/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Esta localização contém pelo menos uma sub-localização e não pode ser removida. Por favor, atualize as localizações para não referenciarem mais esta localização e tente novamente. ', 'assigned_assets' => 'Artigos atribuídos', 'current_location' => 'Localização atual', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Localização atualizada com sucesso.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Tem a certeza que pretende remover esta localização?', 'error' => 'Ocorreu um problema ao remover esta localização. Por favor, tente novamente.', diff --git a/resources/lang/pt-PT/admin/models/message.php b/resources/lang/pt-PT/admin/models/message.php index af252da3a..b89f20a68 100644 --- a/resources/lang/pt-PT/admin/models/message.php +++ b/resources/lang/pt-PT/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'AVISO! O modelo de artigo para este item é inválido ou está em falta!', 'no_association_fix' => 'Isto estragará as coisas de maneiras estranhas e horríveis. Edite este artigo agora para lhe atribuir um modelo.', 'assoc_users' => 'Este modelo está atualmente associado com pelo menos um artigo e não pode ser removido. Por favor, remova os artigos e depois tente novamente. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'O Modelo não foi criado. Por favor tente novamente.', diff --git a/resources/lang/pt-PT/admin/settings/general.php b/resources/lang/pt-PT/admin/settings/general.php index 4294a32ec..c6eddbaa5 100644 --- a/resources/lang/pt-PT/admin/settings/general.php +++ b/resources/lang/pt-PT/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/pt-PT/admin/settings/message.php b/resources/lang/pt-PT/admin/settings/message.php index ddcc136dd..12c4fc7f7 100644 --- a/resources/lang/pt-PT/admin/settings/message.php +++ b/resources/lang/pt-PT/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Tem a certeza que deseja restaurar a sua base de dados a partir de :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Ocorreu um erro ao eliminar os dados. ', diff --git a/resources/lang/pt-PT/general.php b/resources/lang/pt-PT/general.php index dc112faad..140ee7070 100644 --- a/resources/lang/pt-PT/general.php +++ b/resources/lang/pt-PT/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumíveis', 'country' => 'País', 'could_not_restore' => 'Erro ao restaurar :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Criar Novo', 'created' => 'Item criado', 'created_asset' => 'artigo criado', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Esta aplicação está em execução no modo de produção com a depuração activada. Isso pode expor dados sensíveis se seu aplicativo é acessível para o mundo exterior. Desactive o modo de depuração mudando o valor de APP_DEBUG no teu ficheiro .env para false.', 'delete' => 'Remover', 'delete_confirm' => 'Tem a certeza que deseja eliminar :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Removidos', 'delete_seats' => 'Utilizadores apagados', 'deletion_failed' => 'Falha ao Eliminar', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Carregar Imagem', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Este ficheiro de imagem não era legível. Tipos de ficheiros aceites são jpg, webp, png, gif e svg. O mimetype deste ficheiro é: :mimetype.', 'import' => 'Importar', 'import_this_file' => 'Mapear os campos e processar este arquivo', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Passo 4', 'setup_config_check' => 'Verificação da configuração', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Concluído!', 'bulk_edit_about_to' => 'Está prestes a editar o seguinte: ', 'checked_out' => 'Entregue', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Artigos por Tipo de Estado', 'pie_chart_type' => 'Painel Tipo Gráfico "Pie"', 'hello_name' => 'Olá, :name!', - 'unaccepted_profile_warning' => 'Tem :count artigos que requerem aceitação. Clique aqui para aceitar ou recusá-los', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Data de início', 'end_date' => 'Data de Fim', 'alt_uploaded_image_thumbnail' => 'Miniatura carregada', @@ -559,5 +559,8 @@ return [ 'expires' => 'Expira a', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/ro-RO/admin/hardware/message.php b/resources/lang/ro-RO/admin/hardware/message.php index 2384ddc86..bdb45c19b 100644 --- a/resources/lang/ro-RO/admin/hardware/message.php +++ b/resources/lang/ro-RO/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Fișierul dvs. a fost șters cu succes', 'file_delete_error' => 'Fișierul nu a putut fi șters', 'file_missing' => 'Fișierul selectat lipsește', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Unul sau mai multe atribute din rândul de antet conțin caractere UTF-8 incorecte', 'content_row_has_malformed_characters' => 'Unul sau mai multe atribute din primul rând de conținut conțin caractere UTF-8 formatate incorect', ], diff --git a/resources/lang/ro-RO/admin/kits/general.php b/resources/lang/ro-RO/admin/kits/general.php index f8d12b74b..734ba23eb 100644 --- a/resources/lang/ro-RO/admin/kits/general.php +++ b/resources/lang/ro-RO/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit a fost șters cu succes', 'kit_model_updated' => 'Modelul a fost actualizat cu succes', 'kit_model_detached' => 'Modelul a fost detașat cu succes', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/ro-RO/admin/locations/message.php b/resources/lang/ro-RO/admin/locations/message.php index 0d196d0e9..4815a3596 100644 --- a/resources/lang/ro-RO/admin/locations/message.php +++ b/resources/lang/ro-RO/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Această locație este în prezent părinte pentru cel puțin o locație copil și nu poate fi ștearsă. Actualizați locațiile dvs. pentru a nu mai referi această locație și încercați din nou.', 'assigned_assets' => 'Atribuire Active', 'current_location' => 'Locația curentă', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Locatia a fost actualizata.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Sunteti sigur ca vreti sa stergeti aceasta locatie?', 'error' => 'A aparut o problema la stergerea locatiei. Va rugam incercati iar.', diff --git a/resources/lang/ro-RO/admin/models/message.php b/resources/lang/ro-RO/admin/models/message.php index 7e164313e..67ab4de78 100644 --- a/resources/lang/ro-RO/admin/models/message.php +++ b/resources/lang/ro-RO/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'AVERTISMENT! Modelul de activ pentru acest articol este invalid sau lipsește!', 'no_association_fix' => 'Acest lucru va strica lucrurile în moduri ciudate și oribile. Editează acest bun acum pentru a-l atribui un model.', 'assoc_users' => 'Acest model este momentan asociat cu cel putin unul sau mai multe active si nu poate fi sters. Va rugam sa stergeti activul si dupa incercati iar. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Modelul nu a fost creat, incercati iar.', diff --git a/resources/lang/ro-RO/admin/settings/general.php b/resources/lang/ro-RO/admin/settings/general.php index 5ab072299..a6db46aff 100644 --- a/resources/lang/ro-RO/admin/settings/general.php +++ b/resources/lang/ro-RO/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/ro-RO/admin/settings/message.php b/resources/lang/ro-RO/admin/settings/message.php index 47051e137..74b6c68f0 100644 --- a/resources/lang/ro-RO/admin/settings/message.php +++ b/resources/lang/ro-RO/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Sunteți sigur că doriți restaurarea bazei de date din fișierul :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'A apărut o eroare în timpul epurării.', diff --git a/resources/lang/ro-RO/general.php b/resources/lang/ro-RO/general.php index 424d9c692..72c1e574d 100644 --- a/resources/lang/ro-RO/general.php +++ b/resources/lang/ro-RO/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumabile', 'country' => 'Tara', 'could_not_restore' => 'Eroare la restabilirea :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Creeaza', 'created' => 'Articol creat', 'created_asset' => 'Activ creat', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Această aplicație rulează în modul de producție cu debugging activat. Acest lucru poate expune date sensibile dacă aplicația dvs. este accesibilă lumii exterioare. Dezactivați modul de depanare setând valoarea APP_DEBUG din fișierul .env la false.', 'delete' => 'Sterge', 'delete_confirm' => 'Sigur doriți să ștergeți :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Sters', 'delete_seats' => 'Locurile șterse', 'deletion_failed' => 'Ștergerea a eșuat', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Incarca poza', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Acest fișier de imagine nu a putut fi citit. Tipurile de fișiere acceptate sunt jpg, webp, png, gif și svg. Amprenta acestui fișier este: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Harta câmpuri și procesarea acestui fișier', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Pasul 4', 'setup_config_check' => 'Verificare configurație', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Terminat!', 'bulk_edit_about_to' => 'Urmează să editați următoarele: ', 'checked_out' => 'Predat', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Bunuri după tipul de stare', 'pie_chart_type' => 'Tip diagramă diagramă Dashboard', 'hello_name' => 'Salut, :name!', - 'unaccepted_profile_warning' => 'Aveți :count elemente care necesită acceptare. Faceți clic aici pentru a le accepta sau refuzați', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Data de început', 'end_date' => 'Data de încheiere', 'alt_uploaded_image_thumbnail' => 'Miniatură încărcată', @@ -559,5 +559,8 @@ return [ 'expires' => 'expiră', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/ru-RU/admin/hardware/message.php b/resources/lang/ru-RU/admin/hardware/message.php index 24026cc72..868858a39 100644 --- a/resources/lang/ru-RU/admin/hardware/message.php +++ b/resources/lang/ru-RU/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Ваш файл был успешно удален', 'file_delete_error' => 'Невозможно удалить файл', 'file_missing' => 'Выбранный файл отсутствует', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Один или несколько атрибутов в строке заголовка содержат неправильно сформированные символы UTF-8', 'content_row_has_malformed_characters' => 'Один или несколько атрибутов в первой строке содержимого содержат неправильно сформированные символы UTF-8', ], diff --git a/resources/lang/ru-RU/admin/kits/general.php b/resources/lang/ru-RU/admin/kits/general.php index 4acd040f4..73ceb3a4a 100644 --- a/resources/lang/ru-RU/admin/kits/general.php +++ b/resources/lang/ru-RU/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Комплект успешно удален', 'kit_model_updated' => 'Модель успешно изменена', 'kit_model_detached' => 'Модель успешно отсоединена', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/ru-RU/admin/locations/message.php b/resources/lang/ru-RU/admin/locations/message.php index f56fbbafd..5b9d9a9c9 100644 --- a/resources/lang/ru-RU/admin/locations/message.php +++ b/resources/lang/ru-RU/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'У этого месторасположения является родительским и у него есть как минимум одно месторасположение уровнем ниже. Поэтому оно не может быть удалено. Обновите ваши месторасположения, так чтобы не ссылаться на него и попробуйте снова. ', 'assigned_assets' => 'Присвоенные активы', 'current_location' => 'Текущее местоположение', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Статус актива успешно обновлен.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Вы уверено, что хотите удалить этот статус?', 'error' => 'При удалении статуса актива произошла ошибка. Попробуйте еще раз.', diff --git a/resources/lang/ru-RU/admin/models/message.php b/resources/lang/ru-RU/admin/models/message.php index be158c8e2..b9febcec8 100644 --- a/resources/lang/ru-RU/admin/models/message.php +++ b/resources/lang/ru-RU/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'ПРЕДУПРЕЖДЕНИЕ! Модель активов для этого элемента неверна или отсутствует!', 'no_association_fix' => 'Это странно и ужасно сломает вещи. Отредактируйте этот актив сейчас, чтобы назначить ему модель.', 'assoc_users' => 'Данная модель связана с одним или несколькими активами, и не может быть удалена. Удалите либо измените связанные активы. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Модель не была создана, повторите еще раз.', diff --git a/resources/lang/ru-RU/admin/settings/general.php b/resources/lang/ru-RU/admin/settings/general.php index 605bd9edb..1326f510c 100644 --- a/resources/lang/ru-RU/admin/settings/general.php +++ b/resources/lang/ru-RU/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/ru-RU/admin/settings/message.php b/resources/lang/ru-RU/admin/settings/message.php index 08c0a6f5c..52f22ec67 100644 --- a/resources/lang/ru-RU/admin/settings/message.php +++ b/resources/lang/ru-RU/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Вы уверены, что хотите восстановить базу данных из :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Возникла ошибка при попытке очистки. ', diff --git a/resources/lang/ru-RU/general.php b/resources/lang/ru-RU/general.php index 8f90d7840..edbf7db85 100644 --- a/resources/lang/ru-RU/general.php +++ b/resources/lang/ru-RU/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Расходные материалы', 'country' => 'Страна', 'could_not_restore' => 'Ошибка восстановления :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Создать нового', 'created' => 'Элемент создан', 'created_asset' => 'Создать актив', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Это приложение выполняется в режиме с включенной отладкой. Это может нарушить конфиденциальность данных, если приложение доступно для внешнего мира. Отключите режим отладки, поменяв значение APP_DEBUG в файле .env на false.', 'delete' => 'Удалить', 'delete_confirm' => 'Вы действительно хотите удалить?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Удалено', 'delete_seats' => 'Удаленные лицензии', 'deletion_failed' => 'Не удалось удалить', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Загрузить изображение', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Нечитаемый файл изображения. Допустимые типы файлов: jpg, webp, png, gif и svg. Медиа тип этого файла: :mimetype.', 'import' => 'Импорт', 'import_this_file' => 'Сопоставить поля и обработать этот файл', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Шаг 4', 'setup_config_check' => 'Проверка конфигурации', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Готово!', 'bulk_edit_about_to' => 'Вы собираетесь изменить следующее: ', 'checked_out' => 'Выдано', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Активы по типу статуса', 'pie_chart_type' => 'Тип диаграммы Pie в Дашборде', 'hello_name' => 'Добро пожаловать, :name!', - 'unaccepted_profile_warning' => 'Вам переданы :count активов. Нажмите здесь, чтобы принять или отклонить.', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Дата начала', 'end_date' => 'Дата окончания', 'alt_uploaded_image_thumbnail' => 'Загруженная миниатюра', @@ -559,5 +559,8 @@ return [ 'expires' => 'Истекает', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/si-LK/admin/hardware/message.php b/resources/lang/si-LK/admin/hardware/message.php index d06bf4a0e..041d32f56 100644 --- a/resources/lang/si-LK/admin/hardware/message.php +++ b/resources/lang/si-LK/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Your file has been been successfully deleted', 'file_delete_error' => 'The file was unable to be deleted', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/si-LK/admin/kits/general.php b/resources/lang/si-LK/admin/kits/general.php index f57fb645c..2b5c2d9cd 100644 --- a/resources/lang/si-LK/admin/kits/general.php +++ b/resources/lang/si-LK/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/si-LK/admin/locations/message.php b/resources/lang/si-LK/admin/locations/message.php index 6226c71ab..488ec9c67 100644 --- a/resources/lang/si-LK/admin/locations/message.php +++ b/resources/lang/si-LK/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Location updated successfully.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Are you sure you wish to delete this location?', 'error' => 'There was an issue deleting the location. Please try again.', diff --git a/resources/lang/si-LK/admin/models/message.php b/resources/lang/si-LK/admin/models/message.php index f61a2c535..ae3bc34ee 100644 --- a/resources/lang/si-LK/admin/models/message.php +++ b/resources/lang/si-LK/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'This model is currently associated with one or more assets and cannot be deleted. Please delete the assets, and then try deleting again. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model was not created, please try again.', diff --git a/resources/lang/si-LK/admin/settings/general.php b/resources/lang/si-LK/admin/settings/general.php index 31165cf3f..7ce360eda 100644 --- a/resources/lang/si-LK/admin/settings/general.php +++ b/resources/lang/si-LK/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/si-LK/admin/settings/message.php b/resources/lang/si-LK/admin/settings/message.php index 24e2d292c..c91575144 100644 --- a/resources/lang/si-LK/admin/settings/message.php +++ b/resources/lang/si-LK/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'An error has occurred while purging. ', diff --git a/resources/lang/si-LK/general.php b/resources/lang/si-LK/general.php index 9700e8f91..70d3ae096 100644 --- a/resources/lang/si-LK/general.php +++ b/resources/lang/si-LK/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Upload Image', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Expires', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/sk-SK/admin/hardware/message.php b/resources/lang/sk-SK/admin/hardware/message.php index 04d07b013..663968006 100644 --- a/resources/lang/sk-SK/admin/hardware/message.php +++ b/resources/lang/sk-SK/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Súbor bol úspešné odstránený', 'file_delete_error' => 'Súbor sa nepodarilo odstrániť', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/sk-SK/admin/kits/general.php b/resources/lang/sk-SK/admin/kits/general.php index f57fb645c..2b5c2d9cd 100644 --- a/resources/lang/sk-SK/admin/kits/general.php +++ b/resources/lang/sk-SK/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/sk-SK/admin/locations/message.php b/resources/lang/sk-SK/admin/locations/message.php index 87b27da61..7e7600725 100644 --- a/resources/lang/sk-SK/admin/locations/message.php +++ b/resources/lang/sk-SK/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Táto lokalita je nadradenou minimálne jednej podradenej lokalite, preto nemôže byť odstránená. Prosím odstráňte referenciu s príslušnej lokality a skúste znovu. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Lokalita bola úspešne upravená.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Ste si istý, že chcete odstrániť túto lokalitu?', 'error' => 'Pri odstraňovaní lokality nastala chyba. Skúste prosím znovu.', diff --git a/resources/lang/sk-SK/admin/models/message.php b/resources/lang/sk-SK/admin/models/message.php index 72dc58471..6c703768c 100644 --- a/resources/lang/sk-SK/admin/models/message.php +++ b/resources/lang/sk-SK/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'Tento model je použítý v jednom alebo viacerých majetkoch, preto nemôže byť odstránený. Prosím odstráňte príslušný majetok a skúste odstrániť znovu. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model nebol vytovrený, prosím skúste znovu.', diff --git a/resources/lang/sk-SK/admin/settings/general.php b/resources/lang/sk-SK/admin/settings/general.php index fab462356..1809cc69b 100644 --- a/resources/lang/sk-SK/admin/settings/general.php +++ b/resources/lang/sk-SK/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/sk-SK/admin/settings/message.php b/resources/lang/sk-SK/admin/settings/message.php index 835e5a292..9a2ff6360 100644 --- a/resources/lang/sk-SK/admin/settings/message.php +++ b/resources/lang/sk-SK/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Počas čistenia sa vyskytla chyba. ', diff --git a/resources/lang/sk-SK/general.php b/resources/lang/sk-SK/general.php index bfababcab..50a3485f9 100644 --- a/resources/lang/sk-SK/general.php +++ b/resources/lang/sk-SK/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Krajina', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Odstrániť', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Vymazanie zlyhalo', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Upload Image', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Krok 4', 'setup_config_check' => 'Kontrola konfigurácie', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Hotovo!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Odovzdané', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Dátum začiatku', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Exspiruje', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/sl-SI/admin/hardware/message.php b/resources/lang/sl-SI/admin/hardware/message.php index e9cb9fdcb..2b43771bb 100644 --- a/resources/lang/sl-SI/admin/hardware/message.php +++ b/resources/lang/sl-SI/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Vaša datoteka je bila uspešno izbrisana', 'file_delete_error' => 'Datoteke ni bilo mogoče izbrisati', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/sl-SI/admin/kits/general.php b/resources/lang/sl-SI/admin/kits/general.php index 7fa019ac6..fca7d1fd9 100644 --- a/resources/lang/sl-SI/admin/kits/general.php +++ b/resources/lang/sl-SI/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Komplet uspešno izbrisan', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/sl-SI/admin/locations/message.php b/resources/lang/sl-SI/admin/locations/message.php index 8ba5c8ae6..670f3ad7a 100644 --- a/resources/lang/sl-SI/admin/locations/message.php +++ b/resources/lang/sl-SI/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Ta lokacija je trenutno starš vsaj ene lokacije otroka in je ni mogoče izbrisati. Posodobite svoje lokacije, da ne bodo več vsebovale te lokacije in poskusite znova. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Lokacija je bila posodobljena.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Ali ste prepričani, da želite izbrisati to lokacijo?', 'error' => 'Prišlo je do težave z brisanjem lokacije. Prosim poskusite ponovno.', diff --git a/resources/lang/sl-SI/admin/models/message.php b/resources/lang/sl-SI/admin/models/message.php index b86b7e337..e076f7e0b 100644 --- a/resources/lang/sl-SI/admin/models/message.php +++ b/resources/lang/sl-SI/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'Ta model je trenutno povezan z enim ali več sredstvi in ​​ga ni mogoče izbrisati. Prosimo, izbrišite sredstva in poskusite zbrisati znova. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model ni bil ustvarjen, poskusite znova.', diff --git a/resources/lang/sl-SI/admin/settings/general.php b/resources/lang/sl-SI/admin/settings/general.php index ea3e49276..9cd424b17 100644 --- a/resources/lang/sl-SI/admin/settings/general.php +++ b/resources/lang/sl-SI/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/sl-SI/admin/settings/message.php b/resources/lang/sl-SI/admin/settings/message.php index c2347b377..6f93dd110 100644 --- a/resources/lang/sl-SI/admin/settings/message.php +++ b/resources/lang/sl-SI/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Pri čiščenju je prišlo do napake. ', diff --git a/resources/lang/sl-SI/general.php b/resources/lang/sl-SI/general.php index af23d6301..cca4e7041 100644 --- a/resources/lang/sl-SI/general.php +++ b/resources/lang/sl-SI/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Potrošni material', 'country' => 'Država', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Ustvari novo', 'created' => 'Ustvarjeno', 'created_asset' => 'ustvarjeno sredstvo', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ta aplikacija deluje v načinu proizvodnje z omogočenim odpravljanjem napak. To lahko razkrije občutljive podatke, če je vaša aplikacija dostopna zunanjemu svetu. Onemogoči način za odpravljanje napak z nastavitvijo APP_DEBUG vrednost v vaši .env datoteki do false.', 'delete' => 'Izbriši', 'delete_confirm' => 'Ali ste prepričani, da želite izbrisati :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Izbrisano', 'delete_seats' => 'Izbrisana mesta', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Naloži sliko', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Uvozi', 'import_this_file' => 'Map fields and process this file', @@ -350,7 +350,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Izdano', @@ -427,7 +427,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -560,5 +560,8 @@ return [ 'expires' => 'Poteče', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/so-SO/admin/hardware/message.php b/resources/lang/so-SO/admin/hardware/message.php index e5a8fa8c4..ac70fa732 100644 --- a/resources/lang/so-SO/admin/hardware/message.php +++ b/resources/lang/so-SO/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Faylkaaga si guul leh ayaa loo tirtiray', 'file_delete_error' => 'Faylka waa la tirtiri waayay', 'file_missing' => 'Faylka la doortay waa maqan yahay', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Hal ama in ka badan oo sifooyin ah oo ku jira safka madaxa waxa ku jira xarfaha UTF-8 oo khaldan', 'content_row_has_malformed_characters' => 'Hal ama in ka badan oo sifooyin ah safka koowaad ee nuxurka waxa ku jira xarfo UTF-8 oo khaldan', ], diff --git a/resources/lang/so-SO/admin/kits/general.php b/resources/lang/so-SO/admin/kits/general.php index f2f5e7c93..3303f28f8 100644 --- a/resources/lang/so-SO/admin/kits/general.php +++ b/resources/lang/so-SO/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Qalabka si guul leh ayaa loo tirtiray', 'kit_model_updated' => 'Qaabka si guul leh ayaa loo cusboonaysiiyay', 'kit_model_detached' => 'Qaabka ayaa si guul leh u go\'ay', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/so-SO/admin/locations/message.php b/resources/lang/so-SO/admin/locations/message.php index dd84f2da7..4741833a0 100644 --- a/resources/lang/so-SO/admin/locations/message.php +++ b/resources/lang/so-SO/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Goobtan hadda waa waalidka ugu yaraan hal meel oo caruur ah lamana tirtiri karo. Fadlan cusboonaysii goobahaaga si aanay mar dambe tixraac goobtan oo isku day mar kale. ', 'assigned_assets' => 'Hantida loo qoondeeyay', 'current_location' => 'Goobta Hadda', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Goobta si guul leh ayaa loo cusboonaysiiyay.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Ma hubtaa inaad rabto inaad tirtirto goobtan?', 'error' => 'Waxaa jirtay arrin meesha laga saarayo. Fadlan isku day mar kale.', diff --git a/resources/lang/so-SO/admin/models/message.php b/resources/lang/so-SO/admin/models/message.php index a573a67e5..b00e05cee 100644 --- a/resources/lang/so-SO/admin/models/message.php +++ b/resources/lang/so-SO/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'DIGNIIN! Qaabka hantida shaygan waa mid aan sax ahayn ama maqan!', 'no_association_fix' => 'Tani waxay wax u jebin doontaa siyaabo yaab leh oo naxdin leh. Wax ka beddel hantidan hadda si aad mooddo.', 'assoc_users' => 'Qaabkani waxa uu hadda la xidhiidha hal ama ka badan oo hanti ah lamana tirtiri karo. Fadlan tirtir hantida, ka dibna isku day in aad mar kale tirtirto. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Qaabka lama abuurin, fadlan isku day mar kale.', diff --git a/resources/lang/so-SO/admin/settings/general.php b/resources/lang/so-SO/admin/settings/general.php index 1891c5de1..48bab4408 100644 --- a/resources/lang/so-SO/admin/settings/general.php +++ b/resources/lang/so-SO/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/so-SO/admin/settings/message.php b/resources/lang/so-SO/admin/settings/message.php index c974c83dc..0769278aa 100644 --- a/resources/lang/so-SO/admin/settings/message.php +++ b/resources/lang/so-SO/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Ma hubtaa inaad rabto inaad ka soo celiso xogtaada: filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Khalad ayaa dhacay markii la nadiifinayo ', diff --git a/resources/lang/so-SO/general.php b/resources/lang/so-SO/general.php index 9c6be7feb..de7407439 100644 --- a/resources/lang/so-SO/general.php +++ b/resources/lang/so-SO/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Alaabta la isticmaalo', 'country' => 'Dalka', 'could_not_restore' => 'Khalad soo celinta :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Abuur Cusub', 'created' => 'Shayga la sameeyay', 'created_asset' => 'hanti abuuray', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Codsigan waxa uu ku shaqaynayaa qaabka wax soo saarka iyada oo la furayo cilladaha Tani waxay soo bandhigi kartaa xogta xasaasiga ah haddii codsigaaga la heli karo adduunka ka baxsan. Dami qaabka qaladka adoo dejinaya APP_DEBUG qiimaha ku jira .env faylka beenta.', 'delete' => 'Tirtir', 'delete_confirm' => 'Ma hubtaa inaad rabto inaad tirtirto :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'La tirtiray', 'delete_seats' => 'Kuraasta la tirtiray', 'deletion_failed' => 'Tirtiridda waa fashilantay', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Soo rar sawirka', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Sawirkan ma ahayn mid la akhriyi karo Noocyada faylalka la aqbalay waa jpg, webp, png, gif, iyo svg. Nooca faylkani waa: :mimetype.', 'import' => 'Soo dejinta', 'import_this_file' => 'Meelaha khariidad samee oo habee faylkan', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Tallaabada 4', 'setup_config_check' => 'Hubinta qaabeynta', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Dhammaatay!', 'bulk_edit_about_to' => 'Waxaad ku dhowdahay inaad wax ka beddesho kuwa soo socda: ', 'checked_out' => 'La Hubiyay', @@ -425,7 +425,7 @@ return [ 'assets_by_status_type' => 'Hantida Xaaladda Nooca', 'pie_chart_type' => 'Nooca Shaxda Dashboard Pie', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'Waxaad haysaa :count walxo u baahan aqbalid Riix halkan si aad u aqbasho ama u diido', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Taariikhda billowga', 'end_date' => 'Taariikhda dhamaadka', 'alt_uploaded_image_thumbnail' => 'La soo galiyay thumbnail', @@ -558,5 +558,8 @@ return [ 'expires' => 'Dhacaya', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/sq-AL/admin/hardware/message.php b/resources/lang/sq-AL/admin/hardware/message.php index d06bf4a0e..041d32f56 100644 --- a/resources/lang/sq-AL/admin/hardware/message.php +++ b/resources/lang/sq-AL/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Your file has been been successfully deleted', 'file_delete_error' => 'The file was unable to be deleted', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/sq-AL/admin/kits/general.php b/resources/lang/sq-AL/admin/kits/general.php index f57fb645c..2b5c2d9cd 100644 --- a/resources/lang/sq-AL/admin/kits/general.php +++ b/resources/lang/sq-AL/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/sq-AL/admin/locations/message.php b/resources/lang/sq-AL/admin/locations/message.php index 6226c71ab..488ec9c67 100644 --- a/resources/lang/sq-AL/admin/locations/message.php +++ b/resources/lang/sq-AL/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Location updated successfully.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Are you sure you wish to delete this location?', 'error' => 'There was an issue deleting the location. Please try again.', diff --git a/resources/lang/sq-AL/admin/models/message.php b/resources/lang/sq-AL/admin/models/message.php index f61a2c535..ae3bc34ee 100644 --- a/resources/lang/sq-AL/admin/models/message.php +++ b/resources/lang/sq-AL/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'This model is currently associated with one or more assets and cannot be deleted. Please delete the assets, and then try deleting again. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model was not created, please try again.', diff --git a/resources/lang/sq-AL/admin/settings/general.php b/resources/lang/sq-AL/admin/settings/general.php index 31165cf3f..7ce360eda 100644 --- a/resources/lang/sq-AL/admin/settings/general.php +++ b/resources/lang/sq-AL/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/sq-AL/admin/settings/message.php b/resources/lang/sq-AL/admin/settings/message.php index 24e2d292c..c91575144 100644 --- a/resources/lang/sq-AL/admin/settings/message.php +++ b/resources/lang/sq-AL/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'An error has occurred while purging. ', diff --git a/resources/lang/sq-AL/general.php b/resources/lang/sq-AL/general.php index 444ed5408..763438790 100644 --- a/resources/lang/sq-AL/general.php +++ b/resources/lang/sq-AL/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Upload Image', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Expires', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/sr-CS/account/general.php b/resources/lang/sr-CS/account/general.php index c8ca13c3a..e0b3f44ee 100644 --- a/resources/lang/sr-CS/account/general.php +++ b/resources/lang/sr-CS/account/general.php @@ -13,5 +13,5 @@ return array( 'profile_updated' => 'Nalog je uspešno izmenjen', 'no_tokens' => 'Još uvek niste napravili nijedan lični token za pristup.', 'enable_sounds' => 'Omogući zvučne efekte', - 'enable_confetti' => 'Enable confetti effects', + 'enable_confetti' => 'Omogući efekat konfeta', ); diff --git a/resources/lang/sr-CS/admin/hardware/message.php b/resources/lang/sr-CS/admin/hardware/message.php index c8fe27725..4a860abb1 100644 --- a/resources/lang/sr-CS/admin/hardware/message.php +++ b/resources/lang/sr-CS/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Vaš je fajl uspešno izbrisan', 'file_delete_error' => 'Fajl nime moguće izbrisati', 'file_missing' => 'Nedostaje izabrana datoteka', + 'file_already_deleted' => 'Izabrana datoteka je već obrisana', 'header_row_has_malformed_characters' => 'Jedan ili više atributa u redu zaglavlja sadrži loše formatirane UTF-8 karaktere', 'content_row_has_malformed_characters' => 'Jedan ili više atributa u prvom redu sadržaja sadrži loše formatirane UTF-8 karaktere', ], diff --git a/resources/lang/sr-CS/admin/kits/general.php b/resources/lang/sr-CS/admin/kits/general.php index bdb141fcb..c87e6ea53 100644 --- a/resources/lang/sr-CS/admin/kits/general.php +++ b/resources/lang/sr-CS/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Komplet je uspešno izbrisan', 'kit_model_updated' => 'Model je uspešno ažuriran', 'kit_model_detached' => 'Model je uspešno odvojen', + 'model_already_attached' => 'Model je već povezan sa kompletom', ]; diff --git a/resources/lang/sr-CS/admin/locations/message.php b/resources/lang/sr-CS/admin/locations/message.php index 708227d02..4284448c2 100644 --- a/resources/lang/sr-CS/admin/locations/message.php +++ b/resources/lang/sr-CS/admin/locations/message.php @@ -3,11 +3,12 @@ return array( 'does_not_exist' => 'Lokacija ne postoji.', - 'assoc_users' => 'This location is not currently deletable because it is the location of record for at least one asset or user, has assets assigned to it, or is the parent location of another location. Please update your models to no longer reference this location and try again. ', + 'assoc_users' => 'Ova lokaciju trenutno nije moguće obrisati zato što je lokacija zapisa barem jedne imovine ili korisnika, ima imovinu dodeljenu njoj, ili je nadlokacija drugoj lokaciji. Molim vas izmenite modele da više ne referenciraju ovu lokaciju i pokušajte ponovo. ', 'assoc_assets' => 'Ta je lokacija trenutno povezana s barem jednim resursom i ne može se izbrisati. Ažurirajte resurs da se više ne referencira na tu lokaciju i pokušajte ponovno. ', 'assoc_child_loc' => 'Ta je lokacija trenutno roditelj najmanje jednoj podredjenoj lokaciji i ne može se izbrisati. Ažurirajte svoje lokacije da se više ne referenciraju na ovu lokaciju i pokušajte ponovo. ', 'assigned_assets' => 'Dodeljena imovina', 'current_location' => 'Trenutna lokacija', + 'open_map' => 'Otvori u :map_provider_icon mapama', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Lokacija je uspešno ažurirana.' ), + 'restore' => array( + 'error' => 'Lokacija nije povraćena, molim vas pokušajte ponovo', + 'success' => 'Lokacija je uspešno povraćena.' + ), + 'delete' => array( 'confirm' => 'Jeste li sigurni da želite izbrisati tu lokaciju?', 'error' => 'Došlo je do problema s brisanjem lokacije. Molim pokušajte ponovo.', diff --git a/resources/lang/sr-CS/admin/models/message.php b/resources/lang/sr-CS/admin/models/message.php index 33d1f4b9b..dc3f12f42 100644 --- a/resources/lang/sr-CS/admin/models/message.php +++ b/resources/lang/sr-CS/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'UPOZORENJE! Model za ovu stavku je ili pogrešan ili nedostaje!', 'no_association_fix' => 'Ovo će polomiti stvari na čudne i užasne načine. Uredite odmah ovu imovinu da bi ste je povezali sa modelom.', 'assoc_users' => 'Ovaj je model trenutno povezan s jednom ili više imovina i ne može se izbrisati. Izbrišite imovinu pa pokušajte ponovo. ', - 'invalid_category_type' => 'Kategorija mora biti kategorija imovine.', + 'invalid_category_type' => 'Ova kategorija mora biti kategorija imovine.', 'create' => array( 'error' => 'Model nije kreiran, pokušajte ponovo.', diff --git a/resources/lang/sr-CS/admin/settings/general.php b/resources/lang/sr-CS/admin/settings/general.php index ab9c3b55a..bd1f02312 100644 --- a/resources/lang/sr-CS/admin/settings/general.php +++ b/resources/lang/sr-CS/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'Ova slika će se prikazivati kao profilna ako korisnik nema svoju sliku profila.', 'restore_default_avatar' => 'Vrati originalnu podrazumevanu sličicu', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Upozorenje da je vreme za razduženje', + 'due_checkin_days_help' => 'Koliko dana ranije pre očekivanog razduženja imovine bi trebalo biti navedena u stranici "Vreme je za razduživanje"?', ]; diff --git a/resources/lang/sr-CS/admin/settings/message.php b/resources/lang/sr-CS/admin/settings/message.php index 92b456051..634bcfd96 100644 --- a/resources/lang/sr-CS/admin/settings/message.php +++ b/resources/lang/sr-CS/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Da li ste sigurni da želite da vratite svoju bazu podataka sa :filename?' ], 'restore' => [ - 'success' => 'Vraćena je rezervna kopija vašeg sistema. Molim vas prijavite se ponovo.' + 'success' => 'Rezervna kopija vašeg sistema je povraćena. Molim vas prijavite se ponovo.' ], 'purge' => [ 'error' => 'Došlo je do pogreške prilikom brisanja. ', diff --git a/resources/lang/sr-CS/general.php b/resources/lang/sr-CS/general.php index f3969fb8c..02183154f 100644 --- a/resources/lang/sr-CS/general.php +++ b/resources/lang/sr-CS/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Potrošni materijal', 'country' => 'Zemlja', 'could_not_restore' => 'Greška pri vraćanju :item_type: :error', - 'not_deleted' => ':item_type nije obrisano, samim time ne može biti vraćeno', + 'not_deleted' => ':item_type nije obrisan i samim time ne može biti povraćen', 'create' => 'Napravi novi unos', 'created' => 'Stavka kreirana', 'created_asset' => 'kreirana imovina', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Izbrisati', 'delete_confirm' => 'Jeste li sigurni da želite izbrisati :item?', - 'delete_confirm_no_undo' => 'Da li zaista želite da obrišete :item? Ovo nije moguće poništiti.', + 'delete_confirm_no_undo' => 'Da li zaista, želite da obrišete :item? Ovo nije moguće poništiti.', 'deleted' => 'Izbrisano', 'delete_seats' => 'Izbrisana mesta', 'deletion_failed' => 'Neuspelo brisanje', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Upload Image', 'filetypes_accepted_help' => 'Prihvatljiv tip datoteke je :types. Maksimalno dozvoljena veličina je :size.| Prihvatljivi tipovi datoteka su :types. Maksimalno dozvoljena veličina za postavljanje je :size.', 'filetypes_size_help' => 'Maksimalna dozvoljena veličina za otpremanje je :size.', - 'image_filetypes_help' => 'Prihvatljivi tipovi datoteka su jpg, webp, png, gif, svg i avig. Maksimalna veličina datoteke je :size.', + 'image_filetypes_help' => 'Prihvatljivi tipovi datoteka su jpg, webp, png, gif, svg i avif. Maksimalna veličina datoteke je :size.', 'unaccepted_image_type' => 'Datoteka slike nije čitljiva. Prihvatljivi tipovi datoteka su jpg, webp, png, gif i svg. Mimetip ove datoteke je: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Mapiraj polja i obradi ovu datoteku', @@ -279,7 +279,7 @@ return [ 'site_name' => 'Naziv sajta', 'state' => 'Savezna država', 'status_labels' => 'Oznake Statusa', - 'status_label' => 'Status Label', + 'status_label' => 'Oznaka statusa', 'status' => 'Status', 'accept_eula' => 'Ugovor o prihvatanju', 'supplier' => 'Dobavljač', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Imovina prema vrsti statusa', 'pie_chart_type' => 'Tip grafikona pite na radnoj tabli', 'hello_name' => 'Pozdrav, :name!', - 'unaccepted_profile_warning' => 'Imate :count stavki koje traže vaše odobrenje. Kliknite ovde da ih prihvatite ili da ih odbijete', + 'unaccepted_profile_warning' => 'Imate jednu stavku koja zahteva prihvatanje. Kliknite ovde da je prihvatite ili odbijete | Imate :count stavki koje zahtevaju prihvatanje. Kliknite ovde da ih prihvatite ili odbijete', 'start_date' => 'Datum početka', 'end_date' => 'Datum kraja', 'alt_uploaded_image_thumbnail' => 'Postavljena slika', @@ -559,5 +559,8 @@ return [ 'expires' => 'Ističe', 'map_fields'=> 'Mapiraj polje :item_type', 'remaining_var' => ':count preostalo', + 'assets_in_var' => 'Imovina u :name :type', + 'label' => 'Oznaka', + 'import_asset_tag_exists' => 'Imovina sa oznakom imovine :asset_tag već postoji i izmena nije zatražena. Nijedna izmena nije izvršena.', ]; diff --git a/resources/lang/sv-SE/admin/hardware/message.php b/resources/lang/sv-SE/admin/hardware/message.php index 9b3e2080e..43ffaa96a 100644 --- a/resources/lang/sv-SE/admin/hardware/message.php +++ b/resources/lang/sv-SE/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Din fil har tagits bort', 'file_delete_error' => 'Filen kunde inte raderas', 'file_missing' => 'Den valda filen saknas', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Ett eller flera attribut i rubrikraden innehåller felaktigt formatterade UTF-8-tecken', 'content_row_has_malformed_characters' => 'Ett eller flera attribut i den första raden av innehållet innehåller felaktigt formatterade UTF-8-tecken', ], diff --git a/resources/lang/sv-SE/admin/kits/general.php b/resources/lang/sv-SE/admin/kits/general.php index 0c9e78b2a..ed296325e 100644 --- a/resources/lang/sv-SE/admin/kits/general.php +++ b/resources/lang/sv-SE/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit har tagits bort', 'kit_model_updated' => 'Modellen har uppdaterats', 'kit_model_detached' => 'Modellen har tagits bort', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/sv-SE/admin/locations/message.php b/resources/lang/sv-SE/admin/locations/message.php index faf3ee316..aa09ea2b6 100644 --- a/resources/lang/sv-SE/admin/locations/message.php +++ b/resources/lang/sv-SE/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Denna plats är för närvarande överliggande för minst en annan plats och kan inte tas bort. Vänligen uppdatera dina platser så dom inte längre refererar till denna och försök igen.', 'assigned_assets' => 'Tilldelade tillgångar', 'current_location' => 'Nuvarande plats', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Platsen uppdaterades.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Är du säker du vill ta bort denna plats?', 'error' => 'Ett fel inträffade när denna plats skulle tas bort. Vänligen försök igen.', diff --git a/resources/lang/sv-SE/admin/models/message.php b/resources/lang/sv-SE/admin/models/message.php index 4450e9502..cbcbe8f72 100644 --- a/resources/lang/sv-SE/admin/models/message.php +++ b/resources/lang/sv-SE/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'VARNING! Modellen för detta objekt är ogiltigt eller saknas!', 'no_association_fix' => 'Detta kommer att bryta saker på konstiga och hemska sätt. Redigera denna tillgång nu för att tilldela det en modell.', 'assoc_users' => 'Denna modell är redan associerad med en eller flera tillgångar och kan inte tas bort. Ta bort tillgången och försök sedan igen. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Modellen skapades inte, försök igen.', diff --git a/resources/lang/sv-SE/admin/settings/general.php b/resources/lang/sv-SE/admin/settings/general.php index bae5fb253..39a648198 100644 --- a/resources/lang/sv-SE/admin/settings/general.php +++ b/resources/lang/sv-SE/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/sv-SE/admin/settings/message.php b/resources/lang/sv-SE/admin/settings/message.php index 7eb35531b..983eecae4 100644 --- a/resources/lang/sv-SE/admin/settings/message.php +++ b/resources/lang/sv-SE/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Är du säker på att du vill återställa din databas från :filnamn?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Ett fel har uppstått vid spolning.', diff --git a/resources/lang/sv-SE/general.php b/resources/lang/sv-SE/general.php index ef7e2b2cc..2b679f06c 100644 --- a/resources/lang/sv-SE/general.php +++ b/resources/lang/sv-SE/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Förbrukningsmaterial', 'country' => 'Land', 'could_not_restore' => 'Fel vid återställning av :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Skapa Ny', 'created' => 'Artikel skapad', 'created_asset' => 'skapa tillgång', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Programmet körs i produktionsläge med debugging aktiverat. Detta kan avslöja känslig data om din ansökan är tillgänglig för omvärlden. Inaktivera felsökningsläge genom att ange värdet APP_DEBUG i filen .env till false.', 'delete' => 'Ta bort', 'delete_confirm' => 'Är du säker på att du vill radera: föremål?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Raderad', 'delete_seats' => 'Borttagna platser', 'deletion_failed' => 'Borttagning misslyckades', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Ladda upp Bild', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Denna bildfil kunde inte läsas. Godkända filtyper är jpg, webp, png, gif, och svg. Filens mimetyp är: :mimetype.', 'import' => 'Importera', 'import_this_file' => 'Karta fält och bearbeta denna fil', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Steg 4', 'setup_config_check' => 'Konfigurationskontroll', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Slutförd!', 'bulk_edit_about_to' => 'Du håller på att redigera följande: ', 'checked_out' => 'Låna ut', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Tillgångar efter statustyp', 'pie_chart_type' => 'Instrumentpanelens cirkeldiagrams typ', 'hello_name' => 'Hej, :name!', - 'unaccepted_profile_warning' => 'Du har :count objekt som kräver godkännande. Klicka här för att acceptera eller avböja dem', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Startdatum', 'end_date' => 'Slutdatum', 'alt_uploaded_image_thumbnail' => 'Uppladdad miniatyrbild', @@ -559,5 +559,8 @@ return [ 'expires' => 'Utgår', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/ta-IN/admin/hardware/message.php b/resources/lang/ta-IN/admin/hardware/message.php index cd016584c..8f494058f 100644 --- a/resources/lang/ta-IN/admin/hardware/message.php +++ b/resources/lang/ta-IN/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'உங்கள் கோப்பு வெற்றிகரமாக நீக்கப்பட்டது', 'file_delete_error' => 'கோப்பை நீக்க முடியவில்லை', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/ta-IN/admin/kits/general.php b/resources/lang/ta-IN/admin/kits/general.php index f57fb645c..2b5c2d9cd 100644 --- a/resources/lang/ta-IN/admin/kits/general.php +++ b/resources/lang/ta-IN/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/ta-IN/admin/locations/message.php b/resources/lang/ta-IN/admin/locations/message.php index c84cf8ab3..e97f5b4e9 100644 --- a/resources/lang/ta-IN/admin/locations/message.php +++ b/resources/lang/ta-IN/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'இந்த இடம் தற்போது குறைந்தது ஒரு குழந்தையின் இருப்பிடத்தின் பெற்றோர் மற்றும் அதை நீக்க முடியாது. இந்த இருப்பிடத்தை இனி குறிப்பிடாமல் இருக்க உங்கள் இருப்பிடங்களை புதுப்பித்து மீண்டும் முயற்சிக்கவும்.', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'இருப்பிடம் வெற்றிகரமாக புதுப்பிக்கப்பட்டது.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'இந்த இருப்பிடத்தை நிச்சயமாக நீக்க விரும்புகிறீர்களா?', 'error' => 'இருப்பிடத்தை நீக்குவதில் ஒரு சிக்கல் இருந்தது. தயவு செய்து மீண்டும் முயற்சிக்கவும்.', diff --git a/resources/lang/ta-IN/admin/models/message.php b/resources/lang/ta-IN/admin/models/message.php index 46702bd59..5dc52dff3 100644 --- a/resources/lang/ta-IN/admin/models/message.php +++ b/resources/lang/ta-IN/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'தற்போது இந்த மாதிரி ஒன்று ஒன்று அல்லது அதற்கு மேற்பட்ட சொத்துக்களுடன் தொடர்புடையது மற்றும் நீக்கப்பட முடியாது. சொத்துக்களை நீக்கிவிட்டு மீண்டும் நீக்குவதற்கு முயற்சிக்கவும்.', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'மாதிரி உருவாக்கப்பட்டது இல்லை, மீண்டும் முயற்சிக்கவும்.', diff --git a/resources/lang/ta-IN/admin/settings/general.php b/resources/lang/ta-IN/admin/settings/general.php index 1b500919b..12ec590a5 100644 --- a/resources/lang/ta-IN/admin/settings/general.php +++ b/resources/lang/ta-IN/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/ta-IN/admin/settings/message.php b/resources/lang/ta-IN/admin/settings/message.php index a5df00e8c..ea947b7e6 100644 --- a/resources/lang/ta-IN/admin/settings/message.php +++ b/resources/lang/ta-IN/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'அகற்றும் போது பிழை ஏற்பட்டது.', diff --git a/resources/lang/ta-IN/general.php b/resources/lang/ta-IN/general.php index 07ba4a726..b29c97ded 100644 --- a/resources/lang/ta-IN/general.php +++ b/resources/lang/ta-IN/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'நுகர்பொருள்கள்', 'country' => 'நாடு', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'புதிதாக உருவாக்கு', 'created' => 'உருப்படி உருவாக்கப்பட்டது', 'created_asset' => 'சொத்து உருவாக்கப்பட்டது', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'இயல்பான பிழைத்திருத்தத்துடன் இந்த பயன்பாட்டை உற்பத்தி முறையில் இயக்கும். வெளிப்புற உலகத்திற்கு உங்கள் பயன்பாடு அணுகக்கூடியதாக இருந்தால் இது முக்கியமான தரவுகளை அம்பலப்படுத்தலாம். உங்கள் .env கோப்பில் false இல் APP_DEBUG மதிப்பை அமைப்பதன் மூலம் பிழைத்திருத்த முடையை முடக்கு.', 'delete' => 'அழி', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'நீக்கப்பட்ட', 'delete_seats' => 'நீக்கப்பட்ட இடங்கள்', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'படத்தை பதிவேற்றம் செய்யவும்', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'இறக்குமதி', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'ஒப்படைக்கப்பட்டது', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'காலாவதியாகிறது', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/th-TH/admin/hardware/message.php b/resources/lang/th-TH/admin/hardware/message.php index 759fed366..0bce00db1 100644 --- a/resources/lang/th-TH/admin/hardware/message.php +++ b/resources/lang/th-TH/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'ไฟล์ของคุณถูกลบเรียบร้อยแล้ว', 'file_delete_error' => 'ไม่สามารถลบไฟล์ได้', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/th-TH/admin/kits/general.php b/resources/lang/th-TH/admin/kits/general.php index f57fb645c..2b5c2d9cd 100644 --- a/resources/lang/th-TH/admin/kits/general.php +++ b/resources/lang/th-TH/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/th-TH/admin/locations/message.php b/resources/lang/th-TH/admin/locations/message.php index a547a059e..5daae8baa 100644 --- a/resources/lang/th-TH/admin/locations/message.php +++ b/resources/lang/th-TH/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'สถานที่นี้ถูกใช้งานหรือเกี่ยวข้องอยู่กับหมวดสถานที่ใดที่หนึ่ง และไม่สามารถลบได้ กรุณาปรับปรุงสถานที่ของท่านไม่ให้มีส่วนเกี่ยวข้องกับหมวดสถานที่นี้ และลองอีกครั้ง. ', 'assigned_assets' => 'สินทรัพย์ถูกมอบหมายแล้ว', 'current_location' => 'ตำแหน่งปัจจุบัน', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'ปรับปรุงสถานที่เรียบร้อยแล้ว.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'คุณแน่ใจที่จะลบสถานที่นี้?', 'error' => 'มีปัญหาระหว่างการลบสถานที่ กรุณาลองใหม่อีกครั้ง.', diff --git a/resources/lang/th-TH/admin/models/message.php b/resources/lang/th-TH/admin/models/message.php index 9bbf63664..87410a917 100644 --- a/resources/lang/th-TH/admin/models/message.php +++ b/resources/lang/th-TH/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'โมเดลนี้มีความสัมพันธ์กับสินทรัพย์หนึ่ง หรือมากกว่าในปัจจุบัน และจะไม่สามารถลบได้ กรุณาลบสินทรัพย์และลองอีกครั้ง ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'ยังไม่ได้สร้างโมเดล กรุณาลองใหม่อีกครั้ง', diff --git a/resources/lang/th-TH/admin/settings/general.php b/resources/lang/th-TH/admin/settings/general.php index 031882f62..067f6de4c 100644 --- a/resources/lang/th-TH/admin/settings/general.php +++ b/resources/lang/th-TH/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/th-TH/admin/settings/message.php b/resources/lang/th-TH/admin/settings/message.php index 738c80e17..6f393e61b 100644 --- a/resources/lang/th-TH/admin/settings/message.php +++ b/resources/lang/th-TH/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'เกิดข้อผิดพลาดขณะล้างข้อมูล', diff --git a/resources/lang/th-TH/general.php b/resources/lang/th-TH/general.php index cc08313a4..50c623790 100644 --- a/resources/lang/th-TH/general.php +++ b/resources/lang/th-TH/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'การใช้งาน', 'country' => 'ประเทศ', 'could_not_restore' => 'การกู้คืนผิดพลาด', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'สร้างใหม่', 'created' => 'สร้างรายการแล้ว', 'created_asset' => 'ทรัพย์สินที่ถูกสร้าง', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'แอ็พพลิเคชันนี้กำลังทำงานในโหมดการผลิตโดยเปิดใช้งานดีบัก ข้อมูลนี้สามารถเปิดเผยข้อมูลที่ละเอียดอ่อนหากแอปพลิเคชันของคุณสามารถเข้าถึงโลกภายนอกได้ ปิดใช้งานโหมดดีบั๊กโดยการตั้งค่า APP_DEBUG ในไฟล์ .env ของคุณเป็น false', 'delete' => 'ลบ', 'delete_confirm' => 'คุณแน่ใจหรือไม่ว่าต้องการลบ?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'ลบแล้ว', 'delete_seats' => 'ลบที่นั่งแล้ว', 'deletion_failed' => 'การลบล้มเหลว', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'อัพโหลดภาพ', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'นำเข้า', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'ขั้นตอนที่ 4', 'setup_config_check' => 'การตรวจสอบการตั้งค่า', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'เสร็จสิ้น', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'ส่งมอบ', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'ยินดีต้อนรับ, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'วันที่เริ่มต้น', 'end_date' => 'วันที่สิ้นสุด', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'วันที่หมดอายุ', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/tl-PH/admin/hardware/message.php b/resources/lang/tl-PH/admin/hardware/message.php index d06bf4a0e..041d32f56 100644 --- a/resources/lang/tl-PH/admin/hardware/message.php +++ b/resources/lang/tl-PH/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Your file has been been successfully deleted', 'file_delete_error' => 'The file was unable to be deleted', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/tl-PH/admin/kits/general.php b/resources/lang/tl-PH/admin/kits/general.php index f57fb645c..2b5c2d9cd 100644 --- a/resources/lang/tl-PH/admin/kits/general.php +++ b/resources/lang/tl-PH/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/tl-PH/admin/locations/message.php b/resources/lang/tl-PH/admin/locations/message.php index 6226c71ab..488ec9c67 100644 --- a/resources/lang/tl-PH/admin/locations/message.php +++ b/resources/lang/tl-PH/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Location updated successfully.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Are you sure you wish to delete this location?', 'error' => 'There was an issue deleting the location. Please try again.', diff --git a/resources/lang/tl-PH/admin/models/message.php b/resources/lang/tl-PH/admin/models/message.php index f61a2c535..ae3bc34ee 100644 --- a/resources/lang/tl-PH/admin/models/message.php +++ b/resources/lang/tl-PH/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'This model is currently associated with one or more assets and cannot be deleted. Please delete the assets, and then try deleting again. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model was not created, please try again.', diff --git a/resources/lang/tl-PH/admin/settings/general.php b/resources/lang/tl-PH/admin/settings/general.php index 4a15dd3f4..df154a6b4 100644 --- a/resources/lang/tl-PH/admin/settings/general.php +++ b/resources/lang/tl-PH/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/tl-PH/admin/settings/message.php b/resources/lang/tl-PH/admin/settings/message.php index 24e2d292c..c91575144 100644 --- a/resources/lang/tl-PH/admin/settings/message.php +++ b/resources/lang/tl-PH/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'An error has occurred while purging. ', diff --git a/resources/lang/tl-PH/general.php b/resources/lang/tl-PH/general.php index c36771dfb..e328108fe 100644 --- a/resources/lang/tl-PH/general.php +++ b/resources/lang/tl-PH/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Upload Image', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Expires', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/tr-TR/admin/hardware/message.php b/resources/lang/tr-TR/admin/hardware/message.php index ea01703b9..dac053230 100644 --- a/resources/lang/tr-TR/admin/hardware/message.php +++ b/resources/lang/tr-TR/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Dosyanız başarıyla silindi', 'file_delete_error' => 'Dosya silenemedi', 'file_missing' => 'Seçilen dosya bulunamıyor', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Başlık bilgisindeki bir veya daha fazla öznitelik, hatalı UTF-8 karakterleri içeriyor', 'content_row_has_malformed_characters' => 'Başlıktaki ilk satırda bir veya daha fazla öznitelik, hatalı biçimlendirilmiş UTF-8 karakterleri içeriyor', ], diff --git a/resources/lang/tr-TR/admin/kits/general.php b/resources/lang/tr-TR/admin/kits/general.php index 74af52c7e..68eac0c87 100644 --- a/resources/lang/tr-TR/admin/kits/general.php +++ b/resources/lang/tr-TR/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit başarıyla silindi', 'kit_model_updated' => 'Model başarıyla güncellendi', 'kit_model_detached' => 'Model başarıyla ayrıldı', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/tr-TR/admin/locations/message.php b/resources/lang/tr-TR/admin/locations/message.php index 57b2acf2f..cf1fa3c3b 100644 --- a/resources/lang/tr-TR/admin/locations/message.php +++ b/resources/lang/tr-TR/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Bu konum şu anda en az bir alt konum üstüdür ve silinemez. Lütfen artık bu konuma ait alt konumları güncelleyin. ', 'assigned_assets' => 'Atanan Varlıklar', 'current_location' => 'Mevcut konum', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Konum güncellendi.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Konumu silmek istediğinize emin misiniz?', 'error' => 'Konum silinirken bir hata oluştu. Lütfen tekrar deneyin.', diff --git a/resources/lang/tr-TR/admin/models/message.php b/resources/lang/tr-TR/admin/models/message.php index 7874505c7..5df9086a1 100644 --- a/resources/lang/tr-TR/admin/models/message.php +++ b/resources/lang/tr-TR/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'UYARI! Bu öğeye ilişkin varlık modeli geçersiz veya eksik!', 'no_association_fix' => 'Bu değişiklik bazı şeylerin garip ve tuhaf bir şekilde bozulmasına yol açabilir. Bu varlığı bir modelle ilişkilendirmek için düzeltin.', 'assoc_users' => 'Model bir ya da daha çok demirbaş ile ilişkili ve silinemez. Lütfen demirbaşları silin ve tekrar deneyin. ', - 'invalid_category_type' => 'Kategori, bir varlık kategorisi olmak zorunda.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Klasör oluşturulmadı, lütfen tekrar deneyin.', diff --git a/resources/lang/tr-TR/admin/settings/general.php b/resources/lang/tr-TR/admin/settings/general.php index a0b9de888..5627f1258 100644 --- a/resources/lang/tr-TR/admin/settings/general.php +++ b/resources/lang/tr-TR/admin/settings/general.php @@ -382,5 +382,7 @@ return [ 'default_avatar_help' => 'Kullanıcı profil fotoğrafı yüklememişse bu görsel profil fotoğrafı olacak.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/tr-TR/admin/settings/message.php b/resources/lang/tr-TR/admin/settings/message.php index 026b5554b..b818a0dbd 100644 --- a/resources/lang/tr-TR/admin/settings/message.php +++ b/resources/lang/tr-TR/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Veritabanınızı :filename\'den geri yüklemek istediğinizden emin misiniz?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Temizleme sırasında bir hata oluştu. ', diff --git a/resources/lang/tr-TR/general.php b/resources/lang/tr-TR/general.php index ffe045bad..2589af2d6 100644 --- a/resources/lang/tr-TR/general.php +++ b/resources/lang/tr-TR/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Sarf Malzemeleri', 'country' => 'Ülke', 'could_not_restore' => ':item_type: :error geri yüklenirken hata oluştu', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Yeni Oluştur', 'created' => 'Öğe oluşturuldu', 'created_asset' => 'Oluşturulmuş Demirbaş', @@ -101,7 +101,7 @@ Context | Request Context ', 'delete' => 'Sil', 'delete_confirm' => 'Öğeyi silmek istediğinizden emin misiniz?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Silinmiş', 'delete_seats' => 'Silinen Kullanıcı Lisansı Sayısı', 'deletion_failed' => 'Silme başarısız', @@ -161,7 +161,7 @@ Context | Request Context 'image_upload' => 'Resim yükle', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Bu dosya okunamadı. Kabul edilen dosya türleri jpg, webp, png, gif ve svg\'dir. Bu dosyanın mime tipi: :mimetype.', 'import' => 'İçeri aktar', 'import_this_file' => 'Alanları eşleyin ve bu dosyayı işleyin', @@ -352,7 +352,7 @@ Context | Request Context 'setup_step_4' => 'Adım 4', 'setup_config_check' => 'Yapılandırma Kontrolü', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Tamamlandı!', 'bulk_edit_about_to' => 'Şunları düzenlemek üzeresiniz: ', 'checked_out' => 'Çıkış Yapıldı', @@ -429,7 +429,7 @@ Context | Request Context 'assets_by_status_type' => 'Durum Türüne Göre Varlıklar', 'pie_chart_type' => 'Pano Pasta Grafik Türü', 'hello_name' => 'Merhaba, :name!', - 'unaccepted_profile_warning' => 'Kabul gerektiren öğeleriniz var. Kabul etmek veya reddetmek için buraya tıklayın', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Başlangıç Tarihi', 'end_date' => 'Bitiş Tarihi', 'alt_uploaded_image_thumbnail' => 'Yüklenen küçük resim', @@ -562,5 +562,8 @@ Context | Request Context 'expires' => 'Bitiş', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/uk-UA/admin/hardware/message.php b/resources/lang/uk-UA/admin/hardware/message.php index 6a639a0b5..0422c9741 100644 --- a/resources/lang/uk-UA/admin/hardware/message.php +++ b/resources/lang/uk-UA/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Ваш файл успішно вилучено', 'file_delete_error' => 'Файл не може бути видалений', 'file_missing' => 'Відсутній файл', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Один або кілька атрибутів у рядку заголовка містять невірні символи UTF-8', 'content_row_has_malformed_characters' => 'Один або кілька атрибутів у першому рядку вмісту містять неправильні символи UTF-8', ], diff --git a/resources/lang/uk-UA/admin/kits/general.php b/resources/lang/uk-UA/admin/kits/general.php index 9756201b9..04cba1685 100644 --- a/resources/lang/uk-UA/admin/kits/general.php +++ b/resources/lang/uk-UA/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Набір було успішно видалено', 'kit_model_updated' => 'Модель успішно оновлено', 'kit_model_detached' => 'Модель успішно від’єднано', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/uk-UA/admin/locations/message.php b/resources/lang/uk-UA/admin/locations/message.php index f199be5b6..bf50a70b4 100644 --- a/resources/lang/uk-UA/admin/locations/message.php +++ b/resources/lang/uk-UA/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Це місцезнаходження наразі батько принаймні одного дочірнього місця і не може бути видалений. Будь ласка, оновіть ваше місцеположення, щоб більше не посилатися на це місце і повторіть спробу. ', 'assigned_assets' => 'Призначені активи', 'current_location' => 'Поточне місцезнаходження', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Розташування успішно створено.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Ви впевнені, що хочете видати це розташування?', 'error' => 'Виникла проблема з видаленням місцезнаходження. Будь ласка, спробуйте ще раз.', diff --git a/resources/lang/uk-UA/admin/models/message.php b/resources/lang/uk-UA/admin/models/message.php index f3f60415e..cfb2e074d 100644 --- a/resources/lang/uk-UA/admin/models/message.php +++ b/resources/lang/uk-UA/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'УВАГА! Модель активу для цього елемента невірна або відсутня!', 'no_association_fix' => 'Це може порушити речі дивним і жахливим способом. Відредагуйте цей актив щоб призначити йому модель.', 'assoc_users' => 'Ця модель пов\'язана в даний час з одним або більше активами і не може бути видалена. Будь ласка, видаліть активи, а потім спробуйте видалити їх. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Модель не було створено, спробуйте ще раз.', diff --git a/resources/lang/uk-UA/admin/settings/general.php b/resources/lang/uk-UA/admin/settings/general.php index 3f4e30951..d2234bc54 100644 --- a/resources/lang/uk-UA/admin/settings/general.php +++ b/resources/lang/uk-UA/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/uk-UA/admin/settings/message.php b/resources/lang/uk-UA/admin/settings/message.php index e8b232ab8..6d2765322 100644 --- a/resources/lang/uk-UA/admin/settings/message.php +++ b/resources/lang/uk-UA/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Ви дійсно бажаєте відновити базу даних з :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Під час очищення сталася помилка. ', diff --git a/resources/lang/uk-UA/general.php b/resources/lang/uk-UA/general.php index d499d5dae..ce32c7377 100644 --- a/resources/lang/uk-UA/general.php +++ b/resources/lang/uk-UA/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Витратні матеріали', 'country' => 'Країна', 'could_not_restore' => 'Помилка відновлення :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Створити новий', 'created' => 'Елемент створено', 'created_asset' => 'створений актив', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ця програма працює в робочому режимі з увімкненим відлагодженням. Це може призвести до розкриття конфіденційних даних, якщо ваша програма доступна зовнішньому світу. Вимкніть режим налагодження, установивши для значення APP_DEBUG у вашому файлі .env значення false.', 'delete' => 'Видалити', 'delete_confirm' => 'Ви впевнені, що бажаєте видалити :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Видалено', 'delete_seats' => 'Видалені місця', 'deletion_failed' => 'Помилка видалення', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Завантажити зображення', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Цей файл зображення не був прочитаний. Допустимі типи файлів - jpg, webp, png, gif та svg. Mimetype цього файлу: :mimetype.', 'import' => 'Імпорт', 'import_this_file' => 'Поля карти і обробка цього файлу', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Крок 4', 'setup_config_check' => 'Перевірка конфігурації', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Завершено!', 'bulk_edit_about_to' => 'Ви збираєтеся редагувати наступне: ', 'checked_out' => 'Видано', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Активи за типом статусу', 'pie_chart_type' => 'Тип діаграми в меню налаштувань', 'hello_name' => 'Привіт, :name!', - 'unaccepted_profile_warning' => 'У вас є :count предметів, які потребують прийняття. Натисніть тут, щоб прийняти або відхилити їх', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Дата початку', 'end_date' => 'Дата закінчення', 'alt_uploaded_image_thumbnail' => 'Завантажений ескіз', @@ -559,5 +559,8 @@ return [ 'expires' => 'Термін закінчується', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/ur-PK/admin/hardware/message.php b/resources/lang/ur-PK/admin/hardware/message.php index d06bf4a0e..041d32f56 100644 --- a/resources/lang/ur-PK/admin/hardware/message.php +++ b/resources/lang/ur-PK/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Your file has been been successfully deleted', 'file_delete_error' => 'The file was unable to be deleted', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/ur-PK/admin/kits/general.php b/resources/lang/ur-PK/admin/kits/general.php index f57fb645c..2b5c2d9cd 100644 --- a/resources/lang/ur-PK/admin/kits/general.php +++ b/resources/lang/ur-PK/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/ur-PK/admin/locations/message.php b/resources/lang/ur-PK/admin/locations/message.php index 6226c71ab..488ec9c67 100644 --- a/resources/lang/ur-PK/admin/locations/message.php +++ b/resources/lang/ur-PK/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Location updated successfully.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Are you sure you wish to delete this location?', 'error' => 'There was an issue deleting the location. Please try again.', diff --git a/resources/lang/ur-PK/admin/models/message.php b/resources/lang/ur-PK/admin/models/message.php index f61a2c535..ae3bc34ee 100644 --- a/resources/lang/ur-PK/admin/models/message.php +++ b/resources/lang/ur-PK/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'This model is currently associated with one or more assets and cannot be deleted. Please delete the assets, and then try deleting again. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model was not created, please try again.', diff --git a/resources/lang/ur-PK/admin/settings/general.php b/resources/lang/ur-PK/admin/settings/general.php index 31165cf3f..7ce360eda 100644 --- a/resources/lang/ur-PK/admin/settings/general.php +++ b/resources/lang/ur-PK/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/ur-PK/admin/settings/message.php b/resources/lang/ur-PK/admin/settings/message.php index 24e2d292c..c91575144 100644 --- a/resources/lang/ur-PK/admin/settings/message.php +++ b/resources/lang/ur-PK/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'An error has occurred while purging. ', diff --git a/resources/lang/ur-PK/general.php b/resources/lang/ur-PK/general.php index 444ed5408..763438790 100644 --- a/resources/lang/ur-PK/general.php +++ b/resources/lang/ur-PK/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Upload Image', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Expires', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/vi-VN/admin/hardware/message.php b/resources/lang/vi-VN/admin/hardware/message.php index d854a10fd..12601c260 100644 --- a/resources/lang/vi-VN/admin/hardware/message.php +++ b/resources/lang/vi-VN/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Tập tin của bạn đã được xóa thành công', 'file_delete_error' => 'Không thể xóa tệp', 'file_missing' => 'Tệp đã chọn bị thiếu', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'Một hoặc nhiều thuộc tính trong hàng tiêu đề chứa các ký tự không đúng định dạng UTF-8', 'content_row_has_malformed_characters' => 'Một hoặc nhiều thuộc tính ở hàng đầu tiên của nội dung chứa ký tự không đúng định dạng UTF-8', ], diff --git a/resources/lang/vi-VN/admin/kits/general.php b/resources/lang/vi-VN/admin/kits/general.php index 167d152c8..3d114d859 100644 --- a/resources/lang/vi-VN/admin/kits/general.php +++ b/resources/lang/vi-VN/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Bộ kit đã xóa thành công', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/vi-VN/admin/locations/message.php b/resources/lang/vi-VN/admin/locations/message.php index 4e54728f3..d1a392d15 100644 --- a/resources/lang/vi-VN/admin/locations/message.php +++ b/resources/lang/vi-VN/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Địa phương này hiện tại là cấp parent của ít nhật một địa phương con và không thể xóa. Xin vui lòng cập nhật địa phương của bạn để không liên kết đến địa phương này và thử lại. ', 'assigned_assets' => 'Tài sản được giao', 'current_location' => 'Vị trí hiện tại', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Địa phương đã cập nhật thành công.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Bạn có chắc muốn xóa địa phương này?', 'error' => 'Có vấn đề xảy ra khi xóa địa phương. Xin vui lòng thử lại.', diff --git a/resources/lang/vi-VN/admin/models/message.php b/resources/lang/vi-VN/admin/models/message.php index 0972b6ea7..09f25acd9 100644 --- a/resources/lang/vi-VN/admin/models/message.php +++ b/resources/lang/vi-VN/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'CẢNH BÁO! Model tài sản cho cho thiết bị này không hợp lệ hoặc bị thiếu!', 'no_association_fix' => 'Điều này sẽ phá vỡ mọi thứ theo những cách kỳ lạ và khủng khiếp. Hãy chỉnh sửa tài sản này ngay bây giờ để gán cho nó một model.', 'assoc_users' => 'Tài sản này hiện tại đang liên kết với ít nhất một hoặc nhiều tài sản và không thể xóa. Xin vui lòng xóa tài sản, và cố gắng thử lại lần nữa. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Kiểu tài sản chưa được tạo, xin thử lại.', diff --git a/resources/lang/vi-VN/admin/settings/general.php b/resources/lang/vi-VN/admin/settings/general.php index 0d7c0b1c5..687774ead 100644 --- a/resources/lang/vi-VN/admin/settings/general.php +++ b/resources/lang/vi-VN/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/vi-VN/admin/settings/message.php b/resources/lang/vi-VN/admin/settings/message.php index 4b30cbb5f..c923afc1a 100644 --- a/resources/lang/vi-VN/admin/settings/message.php +++ b/resources/lang/vi-VN/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Đã xảy ra lỗi trong khi xóa.', diff --git a/resources/lang/vi-VN/general.php b/resources/lang/vi-VN/general.php index 133a76ca3..dd5f074e7 100644 --- a/resources/lang/vi-VN/general.php +++ b/resources/lang/vi-VN/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Vật tư phụ', 'country' => 'Nước', 'could_not_restore' => 'Khôi phục lỗi :item_type: :Lỗi', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Tạo mới', 'created' => 'Mục đã tạo', 'created_asset' => 'tài sản đã tạo', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Ứng dụng này đang chạy trong chế độ sản xuất với bật gỡ lỗi. Điều này có thể phơi bày dữ liệu nhạy cảm nếu ứng dụng của bạn có thể tiếp cận được với thế giới bên ngoài. Tắt chế độ gỡ lỗi bằng cách đặt giá trị APP_DEBUG trong tệp .env của bạn thành false.', 'delete' => 'Xóa', 'delete_confirm' => 'Bạn có chắc chắn muốn xoá trường này không?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Đã xóa', 'delete_seats' => 'Ghế đã Xóa', 'deletion_failed' => 'Xoá không được', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Tải hình', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'Tập tin hình ảnh không thể đọc được. Chỉ chấp nhận các kiểu tập tin là jpg, webp, png, gif, và svg.', 'import' => 'Nhập', 'import_this_file' => 'Các trường bản đồ và quá trình xử lý tệp này', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Bước 4', 'setup_config_check' => 'Kiểm tra cấu hình', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Hoàn tất!', 'bulk_edit_about_to' => 'Bạn đang chuẩn bị chỉnh sửa nội dung sau: ', 'checked_out' => 'Bàn giao', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Tài sản theo kiểu trạng thái', 'pie_chart_type' => 'Kiểu Biểu Đồ Tròn Dashboard', 'hello_name' => 'Xin chào, :name!', - 'unaccepted_profile_warning' => 'Bạn đang có :count yêu cầu chờ chấp nhận. Nhấn để chấp nhận hoặc từ chối các yêu cầu', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Ngày Bắt Đầu', 'end_date' => 'Ngày Kết Thúc', 'alt_uploaded_image_thumbnail' => 'Tải ảnh nhỏ lên', @@ -559,5 +559,8 @@ return [ 'expires' => 'Hết hạn', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/zh-CN/admin/hardware/message.php b/resources/lang/zh-CN/admin/hardware/message.php index e7debc483..f610c7af1 100644 --- a/resources/lang/zh-CN/admin/hardware/message.php +++ b/resources/lang/zh-CN/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => '您的文件已成功删除', 'file_delete_error' => '该文件无法被删除', 'file_missing' => '所选文件丢失', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => '标题行中的一个或多个属性包含格式错误的 UTF-8 字符', 'content_row_has_malformed_characters' => '第一行内容中的一个或多个属性包含格式错误的 UTF-8 字符', ], diff --git a/resources/lang/zh-CN/admin/kits/general.php b/resources/lang/zh-CN/admin/kits/general.php index e8a496546..f0b129145 100644 --- a/resources/lang/zh-CN/admin/kits/general.php +++ b/resources/lang/zh-CN/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => '套件已删除', 'kit_model_updated' => '型号已更新', 'kit_model_detached' => '型号已成功分离。', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/zh-CN/admin/locations/message.php b/resources/lang/zh-CN/admin/locations/message.php index 4ac1e6f10..f7cd3a0f7 100644 --- a/resources/lang/zh-CN/admin/locations/message.php +++ b/resources/lang/zh-CN/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => '删除失败,该位置是一个或多个子位置的上层节点。请更新地理位置信息以取消关联,然后重试。 ', 'assigned_assets' => '已分配的资产', 'current_location' => '当前地理位置', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => '位置更新成功。' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => '确定删除这个位置吗?', 'error' => '删除位置的过成中出现了一点儿问题,请重试。', diff --git a/resources/lang/zh-CN/admin/models/message.php b/resources/lang/zh-CN/admin/models/message.php index b9c9db848..231baec68 100644 --- a/resources/lang/zh-CN/admin/models/message.php +++ b/resources/lang/zh-CN/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => '警告!此物品的资产型号无效或丢失!', 'no_association_fix' => '这将以怪异且可怕的方式破坏一切。立即编辑此资产并为其指定一个型号。', 'assoc_users' => '本模板下目前还有相关的资产,不能被删除,请删除资产以后,再重试。', - 'invalid_category_type' => '类别必须是一个资产类别。', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => '模板没有被创建,请重试。', diff --git a/resources/lang/zh-CN/admin/settings/general.php b/resources/lang/zh-CN/admin/settings/general.php index 0a4b42923..3254b38c8 100644 --- a/resources/lang/zh-CN/admin/settings/general.php +++ b/resources/lang/zh-CN/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => '如果用户没有个人资料照片,此图像将作为个人资料显示。', 'restore_default_avatar' => '恢复 原始系统默认头像', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/zh-CN/admin/settings/message.php b/resources/lang/zh-CN/admin/settings/message.php index d64c14226..ebd59b94f 100644 --- a/resources/lang/zh-CN/admin/settings/message.php +++ b/resources/lang/zh-CN/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => '您确定要从 :filename还原您的数据库吗?' ], 'restore' => [ - 'success' => '您的系统备份已恢复。请重新登录。' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => '清除过程中出现了错误。 ', diff --git a/resources/lang/zh-CN/general.php b/resources/lang/zh-CN/general.php index f2e7def35..a5bbe2455 100644 --- a/resources/lang/zh-CN/general.php +++ b/resources/lang/zh-CN/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => '消耗品', 'country' => '国家', 'could_not_restore' => '恢复时出错 :item_type: :error', - 'not_deleted' => ':item_type 未删除,所以无法恢复', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => '新增', 'created' => '项目已创建', 'created_asset' => '新建资产', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => '此应用程序运行在生产模式下的调试状态。如果您的应用程序可以被外部访问,这会使敏感数据暴露。通过将 .env 文件中的APP_DEBUG 值设置为 false来 禁用调试模式。', 'delete' => '刪除', 'delete_confirm' => '是否确定删除此项', - 'delete_confirm_no_undo' => '您确定要删除 :item?此操作无法撤消。', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => '已删除', 'delete_seats' => '已移除空位', 'deletion_failed' => '删除失败', @@ -158,7 +158,7 @@ return [ 'image_upload' => '上传图片', 'filetypes_accepted_help' => '可接受的文件类型是 :type 。允许的最大大小是 :size.|可接受的文件类型是 :type 。允许最大上传大小是 :size。', 'filetypes_size_help' => '允许最大上传大小为 :size', - 'image_filetypes_help' => '可接受的文件类型是jpg、webp、png、gif、svg和avif。允许最大上传大小为 :size。', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => '此图像文件不可读。可接受的文件类型为jpg、webp、png、gif和svg。此文件的 mimetype 类型为::mimetype。', 'import' => '导入', 'import_this_file' => '映射字段并处理此文件', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => '第 4 步', 'setup_config_check' => '配置检查', 'setup_create_database' => '创建数据库表', - 'setup_create_admin' => '创建管理员用户', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => '完成!', 'bulk_edit_about_to' => '您将要编辑以下内容: ', 'checked_out' => '已借出', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => '按状态类型显示的资产', 'pie_chart_type' => '仪表盘饼图类型', 'hello_name' => '您好,:name!', - 'unaccepted_profile_warning' => '您需要接受:count 件物品。点击这里接受或拒绝。', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => '开始日期', 'end_date' => '结束日期', 'alt_uploaded_image_thumbnail' => '已上传缩略图', @@ -559,5 +559,8 @@ return [ 'expires' => '过期', 'map_fields'=> '映射 :item_type 字段', 'remaining_var' => '剩余:count个', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/zh-HK/admin/hardware/message.php b/resources/lang/zh-HK/admin/hardware/message.php index d06bf4a0e..041d32f56 100644 --- a/resources/lang/zh-HK/admin/hardware/message.php +++ b/resources/lang/zh-HK/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Your file has been been successfully deleted', 'file_delete_error' => 'The file was unable to be deleted', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/zh-HK/admin/kits/general.php b/resources/lang/zh-HK/admin/kits/general.php index f57fb645c..2b5c2d9cd 100644 --- a/resources/lang/zh-HK/admin/kits/general.php +++ b/resources/lang/zh-HK/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/zh-HK/admin/locations/message.php b/resources/lang/zh-HK/admin/locations/message.php index 6226c71ab..488ec9c67 100644 --- a/resources/lang/zh-HK/admin/locations/message.php +++ b/resources/lang/zh-HK/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'This location is currently the parent of at least one child location and cannot be deleted. Please update your locations to no longer reference this location and try again. ', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Location updated successfully.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Are you sure you wish to delete this location?', 'error' => 'There was an issue deleting the location. Please try again.', diff --git a/resources/lang/zh-HK/admin/models/message.php b/resources/lang/zh-HK/admin/models/message.php index f61a2c535..ae3bc34ee 100644 --- a/resources/lang/zh-HK/admin/models/message.php +++ b/resources/lang/zh-HK/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'This model is currently associated with one or more assets and cannot be deleted. Please delete the assets, and then try deleting again. ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Model was not created, please try again.', diff --git a/resources/lang/zh-HK/admin/settings/general.php b/resources/lang/zh-HK/admin/settings/general.php index 31165cf3f..7ce360eda 100644 --- a/resources/lang/zh-HK/admin/settings/general.php +++ b/resources/lang/zh-HK/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/zh-HK/admin/settings/message.php b/resources/lang/zh-HK/admin/settings/message.php index 24e2d292c..c91575144 100644 --- a/resources/lang/zh-HK/admin/settings/message.php +++ b/resources/lang/zh-HK/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'An error has occurred while purging. ', diff --git a/resources/lang/zh-HK/general.php b/resources/lang/zh-HK/general.php index d5403bd95..54767b308 100644 --- a/resources/lang/zh-HK/general.php +++ b/resources/lang/zh-HK/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Consumables', 'country' => 'Country', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Create New', 'created' => 'Item Created', 'created_asset' => 'created asset', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'This application is running in production mode with debugging enabled. This can expose sensitive data if your application is accessible to the outside world. Disable debug mode by setting the APP_DEBUG value in your .env file to false.', 'delete' => 'Delete', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Upload Image', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Import', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Checked Out', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Expires', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/zh-TW/admin/hardware/message.php b/resources/lang/zh-TW/admin/hardware/message.php index 666de34cc..c6a7d4a15 100644 --- a/resources/lang/zh-TW/admin/hardware/message.php +++ b/resources/lang/zh-TW/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => '您的檔案已成功刪除。', 'file_delete_error' => '您的檔案無法被刪除。', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => '標頭列中的一個或多個屬性包含異常的 UTF-8 字元', 'content_row_has_malformed_characters' => '內容的第一列中的一個或多個屬性包含異常的 UTF-8 字元', ], diff --git a/resources/lang/zh-TW/admin/kits/general.php b/resources/lang/zh-TW/admin/kits/general.php index 979da571c..c7499fb98 100644 --- a/resources/lang/zh-TW/admin/kits/general.php +++ b/resources/lang/zh-TW/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => '套件已成功刪除', 'kit_model_updated' => '型號成功更新', 'kit_model_detached' => '型號成功分離', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/zh-TW/admin/locations/message.php b/resources/lang/zh-TW/admin/locations/message.php index 3e5c4da17..9c874b4b9 100644 --- a/resources/lang/zh-TW/admin/locations/message.php +++ b/resources/lang/zh-TW/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => '至少還有一個子項目與此位置關聯,目前不能被删除,請檢查後重試。 ', 'assigned_assets' => '已分配資產', 'current_location' => '目前位置', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => '成功更新地點.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => '您確定要刪除此位置嗎?', 'error' => '刪除位置時發生問題,請重試。', diff --git a/resources/lang/zh-TW/admin/models/message.php b/resources/lang/zh-TW/admin/models/message.php index 3473fb833..5740b34f3 100644 --- a/resources/lang/zh-TW/admin/models/message.php +++ b/resources/lang/zh-TW/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => '警告!此項目的資產型號無效或遺失!', 'no_association_fix' => '這將以奇怪和可怕的方式損壞事物。立即編輯此資產以分配型號。', 'assoc_users' => '至少還有一個資產與此樣板關聯,目前不能被删除,請在刪除資產後重試。 ', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => '新增樣板失敗,請重試。', diff --git a/resources/lang/zh-TW/admin/settings/general.php b/resources/lang/zh-TW/admin/settings/general.php index 7af807d32..48f8bd926 100644 --- a/resources/lang/zh-TW/admin/settings/general.php +++ b/resources/lang/zh-TW/admin/settings/general.php @@ -382,5 +382,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/zh-TW/admin/settings/message.php b/resources/lang/zh-TW/admin/settings/message.php index 6ed32111e..e187e4d90 100644 --- a/resources/lang/zh-TW/admin/settings/message.php +++ b/resources/lang/zh-TW/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => '請您確認是否要從 :filename 還原資料庫?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => '清除過程中發生錯誤。', diff --git a/resources/lang/zh-TW/general.php b/resources/lang/zh-TW/general.php index 3c89e4c47..9378a3b56 100644 --- a/resources/lang/zh-TW/general.php +++ b/resources/lang/zh-TW/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => '耗材', 'country' => '國家', 'could_not_restore' => '還原錯誤 :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => '新增', 'created' => '項目已新增', 'created_asset' => '新增資產', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => '此應用程式已開啟除錯模式, 如果開放外部存取可能造成敏感資料外洩。您可透過修改.env檔案中的參數APP_DEBUG,將值改為false關閉除錯模式。', 'delete' => '刪除', 'delete_confirm' => '您確定要刪除 :item 嗎?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => '刪除', 'delete_seats' => '刪除授權', 'deletion_failed' => '刪除失敗', @@ -158,7 +158,7 @@ return [ 'image_upload' => '上傳圖片', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => '此影像無法被讀取。可接受的檔案格式為 jpg, webp, png, gif 以及 svg。此影像的 mimetype 為 :mimetype。', 'import' => '匯入', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => '步驟 4', 'setup_config_check' => '檢查設定', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => '完成!', 'bulk_edit_about_to' => '您即將編輯以下項目:', 'checked_out' => '已領用', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => '按狀態類型的資產', 'pie_chart_type' => '儀表板圓餅圖類型', 'hello_name' => '你好, :name!', - 'unaccepted_profile_warning' => '您有 :count 項目需要接受。點選這裡接受或拒絕它們', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => '開始日期', 'end_date' => '結束日期', 'alt_uploaded_image_thumbnail' => '已上傳的縮圖', @@ -559,5 +559,8 @@ return [ 'expires' => '過期', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; diff --git a/resources/lang/zu-ZA/admin/hardware/message.php b/resources/lang/zu-ZA/admin/hardware/message.php index 371846edd..b8680983c 100644 --- a/resources/lang/zu-ZA/admin/hardware/message.php +++ b/resources/lang/zu-ZA/admin/hardware/message.php @@ -58,6 +58,7 @@ return [ 'file_delete_success' => 'Ifayela lakho lisusiwe ngempumelelo', 'file_delete_error' => 'Ifayela alikwazanga ukususwa', 'file_missing' => 'The file selected is missing', + 'file_already_deleted' => 'The file selected was already deleted', 'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters', 'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters', ], diff --git a/resources/lang/zu-ZA/admin/kits/general.php b/resources/lang/zu-ZA/admin/kits/general.php index 862a51230..40a1cc25c 100644 --- a/resources/lang/zu-ZA/admin/kits/general.php +++ b/resources/lang/zu-ZA/admin/kits/general.php @@ -47,4 +47,5 @@ return [ 'kit_deleted' => 'Kit was successfully deleted', 'kit_model_updated' => 'Model was successfully updated', 'kit_model_detached' => 'Model was successfully detached', + 'model_already_attached' => 'Model already attached to kit', ]; diff --git a/resources/lang/zu-ZA/admin/locations/message.php b/resources/lang/zu-ZA/admin/locations/message.php index 290f930f4..0c3411081 100644 --- a/resources/lang/zu-ZA/admin/locations/message.php +++ b/resources/lang/zu-ZA/admin/locations/message.php @@ -8,6 +8,7 @@ return array( 'assoc_child_loc' => 'Le ndawo okwamanje ungumzali okungenani indawo eyodwa yengane futhi ayikwazi ukususwa. Sicela ubuyekeze izindawo zakho ukuze ungasaphinde ubhekisele kule ndawo bese uyazama futhi.', 'assigned_assets' => 'Assigned Assets', 'current_location' => 'Current Location', + 'open_map' => 'Open in :map_provider_icon Maps', 'create' => array( @@ -20,6 +21,11 @@ return array( 'success' => 'Indawo ibuyekezwe ngempumelelo.' ), + 'restore' => array( + 'error' => 'Location was not restored, please try again', + 'success' => 'Location restored successfully.' + ), + 'delete' => array( 'confirm' => 'Uqinisekile ukuthi ufisa ukususa le ndawo?', 'error' => 'Kube nenkinga ekususeni indawo. Ngicela uzame futhi.', diff --git a/resources/lang/zu-ZA/admin/models/message.php b/resources/lang/zu-ZA/admin/models/message.php index c46254f28..e9b206e03 100644 --- a/resources/lang/zu-ZA/admin/models/message.php +++ b/resources/lang/zu-ZA/admin/models/message.php @@ -7,7 +7,7 @@ return array( 'no_association' => 'WARNING! The asset model for this item is invalid or missing!', 'no_association_fix' => 'This will break things in weird and horrible ways. Edit this asset now to assign it a model.', 'assoc_users' => 'Lo modeli okwamanje uhlotshaniswa nefa elilodwa noma ngaphezulu futhi alinakususwa. Sicela ususe amafa, bese uzama ukususa futhi.', - 'invalid_category_type' => 'The category must be an asset category.', + 'invalid_category_type' => 'This category must be an asset category.', 'create' => array( 'error' => 'Isibonelo asizange sidalwe, sicela uzame futhi.', diff --git a/resources/lang/zu-ZA/admin/settings/general.php b/resources/lang/zu-ZA/admin/settings/general.php index 3d9f7c8f5..7a8cd17b7 100644 --- a/resources/lang/zu-ZA/admin/settings/general.php +++ b/resources/lang/zu-ZA/admin/settings/general.php @@ -381,5 +381,7 @@ return [ 'default_avatar_help' => 'This image will be displayed as a profile if a user does not have a profile photo.', 'restore_default_avatar' => 'Restore original system default avatar', 'restore_default_avatar_help' => '', + 'due_checkin_days' => 'Due For Checkin Warning', + 'due_checkin_days_help' => 'How many days before the expected checkin of an asset should it be listed in the "Due for checkin" page?', ]; diff --git a/resources/lang/zu-ZA/admin/settings/message.php b/resources/lang/zu-ZA/admin/settings/message.php index 8b5d197f3..6749a54f1 100644 --- a/resources/lang/zu-ZA/admin/settings/message.php +++ b/resources/lang/zu-ZA/admin/settings/message.php @@ -15,7 +15,7 @@ return [ 'restore_confirm' => 'Are you sure you wish to restore your database from :filename?' ], 'restore' => [ - 'success' => 'Your system backup has been restored. Please login again.' + 'success' => 'Your system backup has been restored. Please log in again.' ], 'purge' => [ 'error' => 'Kuvele iphutha ngenkathi kuhlanzwa.', diff --git a/resources/lang/zu-ZA/general.php b/resources/lang/zu-ZA/general.php index 1d6f4712d..dcaab9ed3 100644 --- a/resources/lang/zu-ZA/general.php +++ b/resources/lang/zu-ZA/general.php @@ -77,7 +77,7 @@ return [ 'consumables' => 'Amakhomikhali', 'country' => 'Izwe', 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted, so it cannot be restored', + 'not_deleted' => 'The :item_type was not deleted and therefore cannot be restored', 'create' => 'Dala Okusha', 'created' => 'Into edalwe', 'created_asset' => 'ifa elidalwe', @@ -98,7 +98,7 @@ return [ 'debug_warning_text' => 'Lolu hlelo lokusebenza lusemodi yokukhiqiza ngokususa iphutha kunikwe amandla. Lokhu kungabonisa idatha ebucayi uma isicelo sakho sifinyeleleka ezweni langaphandle. Khubaza imodi yokulungisa iphutha ngokubeka inani le-APP_DEBUG kufayela lakho le-.env kuya ku-false.', 'delete' => 'Susa', 'delete_confirm' => 'Are you sure you wish to delete :item?', - 'delete_confirm_no_undo' => 'Are you sure you wish to delete :item? This cannot be undone.', + 'delete_confirm_no_undo' => 'Are you sure, you wish to delete :item? This cannot be undone.', 'deleted' => 'Isusiwe', 'delete_seats' => 'Izihlalo ezifakiwe', 'deletion_failed' => 'Deletion failed', @@ -158,7 +158,7 @@ return [ 'image_upload' => 'Layisha isithombe', 'filetypes_accepted_help' => 'Accepted filetype is :types. The maximum size allowed is :size.|Accepted filetypes are :types. The maximum upload size allowed is :size.', 'filetypes_size_help' => 'The maximum upload size allowed is :size.', - 'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', + 'image_filetypes_help' => 'Accepted Filetypes are jpg, webp, png, gif, svg, and avif. The maximum upload size allowed is :size.', 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.', 'import' => 'Ngenisa', 'import_this_file' => 'Map fields and process this file', @@ -349,7 +349,7 @@ return [ 'setup_step_4' => 'Step 4', 'setup_config_check' => 'Configuration Check', 'setup_create_database' => 'Create database tables', - 'setup_create_admin' => 'Create admin user', + 'setup_create_admin' => 'Create an admin user', 'setup_done' => 'Finished!', 'bulk_edit_about_to' => 'You are about to edit the following: ', 'checked_out' => 'Ikhishiwe', @@ -426,7 +426,7 @@ return [ 'assets_by_status_type' => 'Assets by Status Type', 'pie_chart_type' => 'Dashboard Pie Chart Type', 'hello_name' => 'Hello, :name!', - 'unaccepted_profile_warning' => 'You have :count items requiring acceptance. Click here to accept or decline them', + 'unaccepted_profile_warning' => 'You have one item requiring acceptance. Click here to accept or decline it | You have :count items requiring acceptance. Click here to accept or decline them', 'start_date' => 'Start Date', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', @@ -559,5 +559,8 @@ return [ 'expires' => 'Iphelelwa yisikhathi', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', + 'assets_in_var' => 'Assets in :name :type', + 'label' => 'Label', + 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', ]; From bbdbec71976b0abd2c1ac8e6c999d6321098b37b Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Tue, 20 Aug 2024 11:00:39 -0700 Subject: [PATCH 137/224] Rely on $attributes behavior rendering passed attributes --- resources/views/blade/icon.blade.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/resources/views/blade/icon.blade.php b/resources/views/blade/icon.blade.php index 7aa6fdd40..ea35502c8 100644 --- a/resources/views/blade/icon.blade.php +++ b/resources/views/blade/icon.blade.php @@ -2,9 +2,6 @@ @props([ 'type' => '', - 'class' => false, - 'style' => false, 'id' => false, - 'title' => false, ]) -merge(['class' => Icon::icon($type).' '.$class]) }} {{ isset($style) ? $attributes->merge(['style' => $style]): '' }} {{ isset($title) ? $attributes->merge(['title' => $title]): '' }} aria-hidden="true"> \ No newline at end of file +merge(['class' => Icon::icon($type)]) }} aria-hidden="true"> \ No newline at end of file From eca6b03f44a0f4c51c650afa45bf9833021a8314 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Tue, 20 Aug 2024 11:08:53 -0700 Subject: [PATCH 138/224] Allow id to be rendered --- resources/views/blade/icon.blade.php | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/views/blade/icon.blade.php b/resources/views/blade/icon.blade.php index ea35502c8..f2a430f4b 100644 --- a/resources/views/blade/icon.blade.php +++ b/resources/views/blade/icon.blade.php @@ -2,6 +2,5 @@ @props([ 'type' => '', - 'id' => false, ]) merge(['class' => Icon::icon($type)]) }} aria-hidden="true"> \ No newline at end of file From 09033b19a7be28ea35e0bd4fe9f94c0e4f8c1a70 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 20 Aug 2024 19:44:13 +0100 Subject: [PATCH 139/224] Bumped hash Signed-off-by: snipe --- config/version.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/version.php b/config/version.php index e00f58b0b..8ba20219a 100644 --- a/config/version.php +++ b/config/version.php @@ -1,10 +1,10 @@ 'v7.0.11', - 'full_app_version' => 'v7.0.11 - build 14904-g6c0cf9447', - 'build_version' => '14904', + 'full_app_version' => 'v7.0.11 - build 15044-g46ed07642', + 'build_version' => '15044', 'prerelease_version' => '', - 'hash_version' => 'g6c0cf9447', - 'full_hash' => 'v7.0.11-218-g6c0cf9447', + 'hash_version' => 'g46ed07642', + 'full_hash' => 'v7.0.11-133-g46ed07642', 'branch' => 'develop', ); \ No newline at end of file From 9858b0f37f2f27c43c47e6f437b36e8a72985690 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 20 Aug 2024 14:23:55 -0700 Subject: [PATCH 140/224] fixes info tab for users and assets --- resources/assets/less/overrides.less | 18 ++++++++++++++++++ resources/views/hardware/view.blade.php | 7 ++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/resources/assets/less/overrides.less b/resources/assets/less/overrides.less index 3358e5563..7b4dfc9bc 100644 --- a/resources/assets/less/overrides.less +++ b/resources/assets/less/overrides.less @@ -851,6 +851,24 @@ th.css-component > .th-inner::before margin-top:50px } } +@media screen and (max-width: 992px){ + .info-stack-container { + display: flex; + flex-direction: column; + } + .col-md-3.col-xs-12.col-sm-push-9.info-stack{ + left:auto; + order:2; + } + .col-md-9.col-xs-12.col-sm-pull-3.info-stack{ + right:auto; + order:1; + } + .info-stack-container > .col-md-9.col-xs-12.col-sm-pull-3.info-stack > .row-new-striped > .row > .col-sm-2{ + width:auto; + float:none; + } +} @media screen and (max-width: 1318px) and (min-width: 1200px){ .admin.box{ height:170px; diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index 2da403834..61b90c28d 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -160,9 +160,9 @@
@endif - +
-
+
@if (($asset->image) || (($asset->model) && ($asset->model->image!=''))) @@ -334,7 +334,7 @@ -
+
@@ -1078,6 +1078,7 @@
+
From 9d484077ae030020e3b1cd585783d8db03c5c0f5 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 20 Aug 2024 14:24:37 -0700 Subject: [PATCH 141/224] missed a file --- resources/views/users/view.blade.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/resources/views/users/view.blade.php b/resources/views/users/view.blade.php index 8fbed865e..dd36377c4 100755 --- a/resources/views/users/view.blade.php +++ b/resources/views/users/view.blade.php @@ -159,9 +159,9 @@
@endif - +
-
+
@@ -306,7 +306,7 @@ -
+
@@ -765,6 +765,7 @@ @endif
+
From 963911f2e19b04656b470d00da76cedfe5b3d068 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Wed, 21 Aug 2024 00:23:10 -0700 Subject: [PATCH 142/224] changed order of info stgack --- resources/assets/less/overrides.less | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/assets/less/overrides.less b/resources/assets/less/overrides.less index 7b4dfc9bc..735791b4c 100644 --- a/resources/assets/less/overrides.less +++ b/resources/assets/less/overrides.less @@ -858,11 +858,11 @@ th.css-component > .th-inner::before } .col-md-3.col-xs-12.col-sm-push-9.info-stack{ left:auto; - order:2; + order:1; } .col-md-9.col-xs-12.col-sm-pull-3.info-stack{ right:auto; - order:1; + order:2; } .info-stack-container > .col-md-9.col-xs-12.col-sm-pull-3.info-stack > .row-new-striped > .row > .col-sm-2{ width:auto; From 4d03f1e110b02e5a75bf931a6674b67c269c12de Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 21 Aug 2024 09:46:18 +0100 Subject: [PATCH 143/224] Fixed #15341 - validate parent ID Signed-off-by: snipe --- app/Models/Location.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/Location.php b/app/Models/Location.php index f08a51a98..e6c310979 100755 --- a/app/Models/Location.php +++ b/app/Models/Location.php @@ -33,7 +33,7 @@ class Location extends SnipeModel 'country' => 'min:2|max:191|nullable', 'zip' => 'max:10|nullable', 'manager_id' => 'exists:users,id|nullable', - 'parent_id' => 'non_circular:locations,id', + 'parent_id' => 'nullable|exists:locations,id|non_circular:locations,id', ]; protected $casts = [ From a23dee52f27aa4c54578308eef78f3d875b34c65 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 21 Aug 2024 09:58:47 +0100 Subject: [PATCH 144/224] Added tests Signed-off-by: snipe --- .../Feature/Locations/Ui/CreateLocationsTest.php | 15 ++++++++++++++- .../Feature/Locations/Ui/UpdateLocationsTest.php | 15 +++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/tests/Feature/Locations/Ui/CreateLocationsTest.php b/tests/Feature/Locations/Ui/CreateLocationsTest.php index 5e229f104..c6813c26b 100644 --- a/tests/Feature/Locations/Ui/CreateLocationsTest.php +++ b/tests/Feature/Locations/Ui/CreateLocationsTest.php @@ -32,6 +32,19 @@ class CreateLocationsTest extends TestCase $this->assertTrue(Location::where('name', 'Test Location')->exists()); } - + + public function testUserCannotCreateLocationsWithInvalidParent() + { + $this->assertFalse(Location::where('name', 'Test Location')->exists()); + + $this->actingAs(User::factory()->superuser()->create()) + ->post(route('locations.store'), [ + 'name' => 'Test Location', + 'parent_id' => '100000000' + ]) + ->assertRedirect(route('locations.index')); + + $this->assertFalse(Location::where('name', 'Test Location')->exists()); + } } diff --git a/tests/Feature/Locations/Ui/UpdateLocationsTest.php b/tests/Feature/Locations/Ui/UpdateLocationsTest.php index 5359cd1b7..f8fa934b3 100644 --- a/tests/Feature/Locations/Ui/UpdateLocationsTest.php +++ b/tests/Feature/Locations/Ui/UpdateLocationsTest.php @@ -52,6 +52,21 @@ class UpdateLocationsTest extends TestCase $this->assertFalse(Location::where('name', 'Test Location')->exists()); } + public function testUserCannotEditLocationsWithInvalidParent() + { + $location = Location::factory()->create(); + $response = $this->actingAs(User::factory()->superuser()->create()) + ->from(route('locations.edit', ['location' => $location->id])) + ->put(route('locations.update', ['location' => $location]), [ + 'name' => 'Test Location', + 'parent_id' => '100000000' + ]) + ->assertRedirect(route('locations.index')); + + $this->followRedirects($response)->assertSee(trans('general.error')); + $this->assertFalse(Location::where('name', 'Test Location')->exists()); + } + } From 74fbc238230cabc1c44ab1933c65fe48effda13f Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 21 Aug 2024 10:09:35 +0100 Subject: [PATCH 145/224] Updated tests Signed-off-by: snipe --- tests/Feature/Locations/Ui/CreateLocationsTest.php | 3 ++- tests/Feature/Locations/Ui/UpdateLocationsTest.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/Feature/Locations/Ui/CreateLocationsTest.php b/tests/Feature/Locations/Ui/CreateLocationsTest.php index c6813c26b..cfcb84902 100644 --- a/tests/Feature/Locations/Ui/CreateLocationsTest.php +++ b/tests/Feature/Locations/Ui/CreateLocationsTest.php @@ -38,11 +38,12 @@ class CreateLocationsTest extends TestCase $this->assertFalse(Location::where('name', 'Test Location')->exists()); $this->actingAs(User::factory()->superuser()->create()) + ->from(route('locations.create')) ->post(route('locations.store'), [ 'name' => 'Test Location', 'parent_id' => '100000000' ]) - ->assertRedirect(route('locations.index')); + ->assertRedirect(route('locations.create')); $this->assertFalse(Location::where('name', 'Test Location')->exists()); } diff --git a/tests/Feature/Locations/Ui/UpdateLocationsTest.php b/tests/Feature/Locations/Ui/UpdateLocationsTest.php index f8fa934b3..c692374cc 100644 --- a/tests/Feature/Locations/Ui/UpdateLocationsTest.php +++ b/tests/Feature/Locations/Ui/UpdateLocationsTest.php @@ -61,7 +61,7 @@ class UpdateLocationsTest extends TestCase 'name' => 'Test Location', 'parent_id' => '100000000' ]) - ->assertRedirect(route('locations.index')); + ->assertRedirect(route('locations.edit', ['location' => $location->id])); $this->followRedirects($response)->assertSee(trans('general.error')); $this->assertFalse(Location::where('name', 'Test Location')->exists()); From 26b3c62ab804d0ee03815e772ba02e22274bc89c Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 21 Aug 2024 10:29:51 +0100 Subject: [PATCH 146/224] Cleaned up category title Signed-off-by: snipe --- resources/lang/en-US/general.php | 1 - resources/views/categories/view.blade.php | 19 ++++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/resources/lang/en-US/general.php b/resources/lang/en-US/general.php index 763438790..a60f0dedf 100644 --- a/resources/lang/en-US/general.php +++ b/resources/lang/en-US/general.php @@ -559,7 +559,6 @@ return [ 'expires' => 'Expires', 'map_fields'=> 'Map :item_type Field', 'remaining_var' => ':count Remaining', - 'assets_in_var' => 'Assets in :name :type', 'label' => 'Label', 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', diff --git a/resources/views/categories/view.blade.php b/resources/views/categories/view.blade.php index 72a02bf92..6ee7f8e38 100644 --- a/resources/views/categories/view.blade.php +++ b/resources/views/categories/view.blade.php @@ -3,7 +3,7 @@ {{-- Page title --}} @section('title') -{{ trans('general.assets_in_var', ['name'=> $category->name, 'type' => trans('general.category')]) }} +{{ $category->name }} @parent @stop @@ -36,7 +36,19 @@
From d29b3bfb9ae71dc66bf3f49ee6f3453aa2847da9 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 21 Aug 2024 13:06:16 +0100 Subject: [PATCH 150/224] Few more hidden-print classes Signed-off-by: snipe --- resources/views/hardware/view.blade.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index b463f6d78..e49b3b239 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -1120,7 +1120,7 @@
@if (($file->filename) && (Storage::exists('private_uploads/assets/'.$file->filename))) - + @@ -1415,7 +1415,7 @@ @can('update', \App\Models\Asset::class) - + @endcan @@ -1503,11 +1503,11 @@ @if (($file->filename) && (Storage::exists('private_uploads/assetmodels/'.$file->filename))) - + - + @@ -1520,8 +1520,8 @@ @can('update', \App\Models\AssetModel::class) - - + + @endcan
@else -
+
{{ trans('general.no_results') }}
@@ -1157,7 +1157,7 @@ {{ Helper::formatCurrencyOutput($component->purchase_cost) }} each {{ $component->serial }} - {{ trans('general.checkin') }} + {{ trans('general.checkin') }} purchase_cost *$component->pivot->assigned_qty) ?> @@ -1175,7 +1175,7 @@ @else -
+
{{ trans('general.no_results') }}
@@ -1239,7 +1239,7 @@ @else -
+
{{ trans('general.no_results') }}
@@ -1403,7 +1403,7 @@ - + @endif @@ -1427,7 +1427,7 @@ @else -
+
{{ trans('general.no_results') }}
@@ -1504,11 +1504,11 @@ @if (($file->filename) && (Storage::exists('private_uploads/assetmodels/'.$file->filename))) - + - + @endif From 738ef442fdd87887b1ad26ccadf7e78217ffa52e Mon Sep 17 00:00:00 2001 From: Brady Wetherington Date: Wed, 21 Aug 2024 13:16:51 +0100 Subject: [PATCH 151/224] Rename .env var to have DB_ prefix for sanitize-by-default setting --- .env.example | 3 ++- config/backup.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 946bcd801..3bfee7bf2 100644 --- a/.env.example +++ b/.env.example @@ -32,6 +32,8 @@ DB_PREFIX=null DB_DUMP_PATH='/usr/bin' DB_CHARSET=utf8mb4 DB_COLLATION=utf8mb4_unicode_ci +DB_SANITIZE_BY_DEFAULT=false + # -------------------------------------------- # OPTIONAL: SSL DATABASE SETTINGS @@ -185,7 +187,6 @@ REQUIRE_SAML=false API_THROTTLE_PER_MINUTE=120 CSV_ESCAPE_FORMULAS=true LIVEWIRE_URL_PREFIX=null -SANITIZE_BY_DEFAULT=false # -------------------------------------------- # OPTIONAL: HASHING diff --git a/config/backup.php b/config/backup.php index 412c9face..089087733 100644 --- a/config/backup.php +++ b/config/backup.php @@ -237,6 +237,6 @@ return [ ], ], - 'sanitize_by_default' => env('SANITIZE_BY_DEFAULT', false), + 'sanitize_by_default' => env('DB_SANITIZE_BY_DEFAULT', false), ]; From 4ec361c7183547cd90e67c8c86e87055e55605be Mon Sep 17 00:00:00 2001 From: r-xyz <100710244+r-xyz@users.noreply.github.com> Date: Wed, 21 Aug 2024 19:49:51 +0200 Subject: [PATCH 152/224] Add AssetModel files endpoints to API --- .../Api/AssetModelFilesController.php | 200 ++++++++++++++++++ resources/lang/en-GB/admin/models/message.php | 6 + routes/api.php | 33 +++ .../AssetModels/Api/AssetModelFilesTest.php | 120 +++++++++++ 4 files changed, 359 insertions(+) create mode 100644 app/Http/Controllers/Api/AssetModelFilesController.php create mode 100644 tests/Feature/AssetModels/Api/AssetModelFilesTest.php diff --git a/app/Http/Controllers/Api/AssetModelFilesController.php b/app/Http/Controllers/Api/AssetModelFilesController.php new file mode 100644 index 000000000..9d17de4ae --- /dev/null +++ b/app/Http/Controllers/Api/AssetModelFilesController.php @@ -0,0 +1,200 @@ + + * + * @version v1.0 + * @author [T. Scarsbrook] [] + */ +class AssetModelFilesController extends Controller +{ + /** + * Accepts a POST to upload a file to the server. + * + * @param \App\Http\Requests\UploadFileRequest $request + * @param int $assetModelId + * @since [v7.0.12] + * @author [r-xyz] + */ + public function store(UploadFileRequest $request, $assetModelId = null) : JsonResponse + { + // Start by checking if the asset being acted upon exists + if (! $assetModel = AssetModel::find($assetModelId)) { + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.does_not_exist')), 404); + } + + // Make sure we are allowed to update this asset + $this->authorize('update', $asset); + + if ($request->hasFile('file')) { + // If the file storage directory doesn't exist; create it + if (! Storage::exists('private_uploads/assetmodels')) { + Storage::makeDirectory('private_uploads/assetmodels', 775); + } + + // Loop over the attached files and add them to the asset + foreach ($request->file('file') as $file) { + $file_name = $request->handleFile('private_uploads/assetmodels/','model-'.$asset->id, $file); + + $asset->logUpload($file_name, e($request->get('notes'))); + } + + // All done - report success + return response()->json(Helper::formatStandardApiResponse('success', $asset, trans('admin/models/message.upload.success'))); + } + + // We only reach here if no files were included in the POST, so tell the user this + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.upload.nofiles')), 500); + } + + /** + * List the files for an asset. + * + * @param int $assetModelId + * @since [v7.0.12] + * @author [r-xyz] + */ + public function list($assetModelId = null) : JsonResponse + { + // Start by checking if the asset being acted upon exists + if (! $assetModel = AssetModel::find($assetModelId)) { + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.does_not_exist')), 404); + } + + // the asset is valid + if (isset($assetModel->id)) { + $this->authorize('view', $assetModel); + + // Check that there are some uploads on this asset that can be listed + if ($assetModel->uploads->count() > 0) { + $files = array(); + foreach ($assetModel->uploads as $upload) { + array_push($files, $upload); + } + // Give the list of files back to the user + return response()->json(Helper::formatStandardApiResponse('success', $files, trans('admin/models/message.upload.success'))); + } + + // There are no files. + return response()->json(Helper::formatStandardApiResponse('success', array(), trans('admin/models/message.upload.success'))); + } + + // Send back an error message + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.download.error')), 500); + } + + /** + * Check for permissions and display the file. + * + * @param int $assetModelId + * @param int $fileId + * @return \Illuminate\Http\JsonResponse + * @throws \Illuminate\Auth\Access\AuthorizationException + * @since [v7.0.12] + * @author [r-xyz] + */ + public function show($assetModelId = null, $fileId = null) : JsonResponse | StreamedResponse | Storage | StorageHelper | BinaryFileResponse + { + // Start by checking if the asset being acted upon exists + if (! $assetModel = AssetModel::find($assetModelId)) { + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.does_not_exist')), 404); + } + + // the asset is valid + if (isset($assetModel->id)) { + $this->authorize('view', $assetModel); + + // Check that the file being requested exists for the asset + if (! $log = Actionlog::whereNotNull('filename')->where('item_id', $assetModel->id)->find($fileId)) { + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.download.no_match', ['id' => $fileId])), 404); + } + + // Form the full filename with path + $file = 'private_uploads/assetmodels/'.$log->filename; + Log::debug('Checking for '.$file); + + if ($log->action_type == 'audit') { + $file = 'private_uploads/audits/'.$log->filename; + } + + // Check the file actually exists on the filesystem + if (! Storage::exists($file)) { + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.download.does_not_exist', ['id' => $fileId])), 404); + } + + if (request('inline') == 'true') { + + $headers = [ + 'Content-Disposition' => 'inline', + ]; + + return Storage::download($file, $log->filename, $headers); + } + + return StorageHelper::downloader($file); + } + + // Send back an error message + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.download.error', ['id' => $fileId])), 500); + } + + /** + * Delete the associated file + * + * @param int $assetModelId + * @param int $fileId + * @since [v7.0.12] + * @author [r-xyz] + */ + public function destroy($assetModelId = null, $fileId = null) : JsonResponse + { + // Start by checking if the asset being acted upon exists + if (! $assetModel = AssetModel::find($assetModelId)) { + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.does_not_exist')), 404); + } + + $rel_path = 'private_uploads/assetmodels'; + + // the asset is valid + if (isset($assetModel->id)) { + $this->authorize('update', $assetModel); + + // Check for the file + $log = Actionlog::find($fileId); + if ($log) { + // Check the file actually exists, and delete it + if (Storage::exists($rel_path.'/'.$log->filename)) { + Storage::delete($rel_path.'/'.$log->filename); + } + // Delete the record of the file + $log->delete(); + + // All deleting done - notify the user of success + return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/models/message.deletefile.success')), 200); + } + + // The file doesn't seem to really exist, so report an error + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.deletefile.error')), 500); + } + + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.deletefile.error')), 500); + } +} diff --git a/resources/lang/en-GB/admin/models/message.php b/resources/lang/en-GB/admin/models/message.php index ae3bc34ee..18a3fb10c 100644 --- a/resources/lang/en-GB/admin/models/message.php +++ b/resources/lang/en-GB/admin/models/message.php @@ -43,5 +43,11 @@ return array( 'success' => 'Model deleted!|:success_count models deleted!', 'success_partial' => ':success_count model(s) were deleted, however :fail_count were unable to be deleted because they still have assets associated with them.' ), + 'download' => [ + 'error' => 'File(s) not downloaded. Please try again.', + 'success' => 'File(s) successfully downloaded.', + 'does_not_exist' => 'No file exists', + 'no_match' => 'No matching record for that asset/file', + ], ); diff --git a/routes/api.php b/routes/api.php index 0eb0d834c..b57ed0897 100644 --- a/routes/api.php +++ b/routes/api.php @@ -791,6 +791,12 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi ] )->name('api.models.assets'); + Route::post('{id}/restore', + [ + Api\AssetModelsController::class, + 'restore' + ] + )->name('api.models.restore'); Route::post('{id}/restore', [ Api\AssetModelsController::class, @@ -798,6 +804,33 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi ] )->name('api.models.restore'); + Route::post('{model_id}/files', + [ + Api\AssetModelFilesController::class, + 'store' + ] + )->name('api.models.files'); + + Route::get('{model_id}/files', + [ + Api\AssetModelFilesController::class, + 'list' + ] + )->name('api.models.files'); + + Route::get('{model_id}/file/{file_id}', + [ + Api\AssetModelFilesController::class, + 'show' + ] + )->name('api.models.assets.file'); + + Route::delete('{model_id}/file/{file_id}', + [ + Api\AssetModelFilesController::class, + 'destroy' + ] + )->name('api.models.file'); }); Route::resource('models', diff --git a/tests/Feature/AssetModels/Api/AssetModelFilesTest.php b/tests/Feature/AssetModels/Api/AssetModelFilesTest.php new file mode 100644 index 000000000..c22609c0c --- /dev/null +++ b/tests/Feature/AssetModels/Api/AssetModelFilesTest.php @@ -0,0 +1,120 @@ +count(1)->create(); + + // Create a superuser to run this as + $user = User::factory()->superuser()->create(); + + //Upload a file + $this->actingAsForApi($user) + ->post( + route('api.models.files.store', ['model_id' => $model[0]["id"]]), [ + 'file' => [UploadedFile::fake()->create("test.jpg", 100)] + ]) + ->assertOk(); + } + + public function testAssetModelApiListsFiles() + { + // List all files on a model + + // Create an model to work with + $model = AssetModel::factory()->count(1)->create(); + + // Create a superuser to run this as + $user = User::factory()->superuser()->create(); + + // List the files + $this->actingAsForApi($user) + ->getJson( + route('api.models.files.index', ['model_id' => $model[0]["id"]])) + ->assertOk() + ->assertJsonStructure([ + 'status', + 'messages', + 'payload', + ]); + } + + public function testAssetModelApiDownloadsFile() + { + // Download a file from a model + + // Create a model to work with + $model = AssetModel::factory()->count(1)->create(); + + // Create a superuser to run this as + $user = User::factory()->superuser()->create(); + + //Upload a file + $this->actingAsForApi($user) + ->post( + route('api.models.files.store', ['model_id' => $model[0]["id"]]), [ + 'file' => [UploadedFile::fake()->create("test.jpg", 100)] + ]) + ->assertOk(); + + // List the files to get the file ID + $result = $this->actingAsForApi($user) + ->getJson( + route('api.models.files.index', ['model_id' => $model[0]["id"]])) + ->assertOk(); + + // Get the file + $this->actingAsForApi($user) + ->get( + route('api.models.files.show', [ + 'model_id' => $model[0]["id"], + 'file_id' => $result->decodeResponseJson()->json()["payload"][0]["id"], + ])) + ->assertOk(); + } + + public function testAssetModelApiDeletesFile() + { + // Delete a file from a model + + // Create a model to work with + $model = AssetModel::factory()->count(1)->create(); + + // Create a superuser to run this as + $user = User::factory()->superuser()->create(); + + //Upload a file + $this->actingAsForApi($user) + ->post( + route('api.models.files.store', ['model_id' => $model[0]["id"]]), [ + 'file' => [UploadedFile::fake()->create("test.jpg", 100)] + ]) + ->assertOk(); + + // List the files to get the file ID + $result = $this->actingAsForApi($user) + ->getJson( + route('api.models.files.index', ['model_id' => $model[0]["id"]])) + ->assertOk(); + + // Delete the file + $this->actingAsForApi($user) + ->delete( + route('api.models.files.destroy', [ + 'model_id' => $model[0]["id"], + 'file_id' => $result->decodeResponseJson()->json()["payload"][0]["id"], + ])) + ->assertOk(); + } +} From da7313bc9d2ee8614967abaf601782fe85e35113 Mon Sep 17 00:00:00 2001 From: r-xyz <100710244+r-xyz@users.noreply.github.com> Date: Wed, 21 Aug 2024 20:24:22 +0200 Subject: [PATCH 153/224] Fix models files API routes. --- routes/api.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/routes/api.php b/routes/api.php index b57ed0897..b4d5b5d52 100644 --- a/routes/api.php +++ b/routes/api.php @@ -809,28 +809,28 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi Api\AssetModelFilesController::class, 'store' ] - )->name('api.models.files'); + )->name('api.models.files.store'); Route::get('{model_id}/files', [ Api\AssetModelFilesController::class, 'list' ] - )->name('api.models.files'); + )->name('api.models.files.index'); Route::get('{model_id}/file/{file_id}', [ Api\AssetModelFilesController::class, 'show' ] - )->name('api.models.assets.file'); + )->name('api.models.files.show'); Route::delete('{model_id}/file/{file_id}', [ Api\AssetModelFilesController::class, 'destroy' ] - )->name('api.models.file'); + )->name('api.models.files.destroy'); }); Route::resource('models', From cd7db5c4a8448239b632507ea53a25545b41d972 Mon Sep 17 00:00:00 2001 From: r-xyz <100710244+r-xyz@users.noreply.github.com> Date: Wed, 21 Aug 2024 22:24:08 +0200 Subject: [PATCH 154/224] Fix some typos in models file handler. --- app/Http/Controllers/Api/AssetModelFilesController.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Api/AssetModelFilesController.php b/app/Http/Controllers/Api/AssetModelFilesController.php index 9d17de4ae..90d283f72 100644 --- a/app/Http/Controllers/Api/AssetModelFilesController.php +++ b/app/Http/Controllers/Api/AssetModelFilesController.php @@ -42,7 +42,7 @@ class AssetModelFilesController extends Controller } // Make sure we are allowed to update this asset - $this->authorize('update', $asset); + $this->authorize('update', $assetModel); if ($request->hasFile('file')) { // If the file storage directory doesn't exist; create it @@ -52,13 +52,13 @@ class AssetModelFilesController extends Controller // Loop over the attached files and add them to the asset foreach ($request->file('file') as $file) { - $file_name = $request->handleFile('private_uploads/assetmodels/','model-'.$asset->id, $file); + $file_name = $request->handleFile('private_uploads/assetmodels/','model-'.$assetModel->id, $file); - $asset->logUpload($file_name, e($request->get('notes'))); + $assetModel->logUpload($file_name, e($request->get('notes'))); } // All done - report success - return response()->json(Helper::formatStandardApiResponse('success', $asset, trans('admin/models/message.upload.success'))); + return response()->json(Helper::formatStandardApiResponse('success', $assetModel, trans('admin/models/message.upload.success'))); } // We only reach here if no files were included in the POST, so tell the user this From a8eb76fd8dae5f2ad6b716307b32ba477d31ed32 Mon Sep 17 00:00:00 2001 From: r-xyz <100710244+r-xyz@users.noreply.github.com> Date: Wed, 21 Aug 2024 22:25:41 +0200 Subject: [PATCH 155/224] Fixed model files API routes. --- routes/api.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/routes/api.php b/routes/api.php index b4d5b5d52..35e6c9206 100644 --- a/routes/api.php +++ b/routes/api.php @@ -791,12 +791,6 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi ] )->name('api.models.assets'); - Route::post('{id}/restore', - [ - Api\AssetModelsController::class, - 'restore' - ] - )->name('api.models.restore'); Route::post('{id}/restore', [ Api\AssetModelsController::class, From 47d8e2f8b91f82768a9399c5d4de73d63974eb82 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 22 Aug 2024 09:42:05 +0100 Subject: [PATCH 156/224] Add @Scarzy as a contributor --- .all-contributorsrc | 9 +++++++++ CONTRIBUTORS.md | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 68aec8532..679f2740a 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -3190,6 +3190,15 @@ "contributions": [ "code" ] + }, + { + "login": "Scarzy", + "name": "Scarzy", + "avatar_url": "https://avatars.githubusercontent.com/u/1197791?v=4", + "profile": "https://github.com/Scarzy", + "contributions": [ + "code" + ] } ] } diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 6359814b4..1bea56769 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -52,7 +52,7 @@ Thanks goes to all of these wonderful people ([emoji key](https://github.com/ken | [
bilias](https://github.com/bilias)
[💻](https://github.com/snipe/snipe-it/commits?author=bilias "Code") | [
coach1988](https://github.com/coach1988)
[💻](https://github.com/snipe/snipe-it/commits?author=coach1988 "Code") | [
MrM](https://github.com/mauro-miatello)
[💻](https://github.com/snipe/snipe-it/commits?author=mauro-miatello "Code") | [
koiakoia](https://github.com/koiakoia)
[💻](https://github.com/snipe/snipe-it/commits?author=koiakoia "Code") | [
Mustafa Online](https://github.com/mustafa-online)
[💻](https://github.com/snipe/snipe-it/commits?author=mustafa-online "Code") | [
franceslui](https://github.com/franceslui)
[💻](https://github.com/snipe/snipe-it/commits?author=franceslui "Code") | [
Q4kK](https://github.com/Q4kK)
[💻](https://github.com/snipe/snipe-it/commits?author=Q4kK "Code") | | [
squintfox](https://github.com/squintfox)
[💻](https://github.com/snipe/snipe-it/commits?author=squintfox "Code") | [
Jeff Clay](https://github.com/jeffclay)
[💻](https://github.com/snipe/snipe-it/commits?author=jeffclay "Code") | [
Phil J R](https://github.com/PP-JN-RL)
[💻](https://github.com/snipe/snipe-it/commits?author=PP-JN-RL "Code") | [
i_virus](https://www.corelight.com/)
[💻](https://github.com/snipe/snipe-it/commits?author=chandanchowdhury "Code") | [
Paul Grime](https://github.com/gitgrimbo)
[💻](https://github.com/snipe/snipe-it/commits?author=gitgrimbo "Code") | [
Lee Porte](https://leeporte.co.uk)
[💻](https://github.com/snipe/snipe-it/commits?author=LeePorte "Code") | [
BRYAN ](https://github.com/bryanlopezinc)
[💻](https://github.com/snipe/snipe-it/commits?author=bryanlopezinc "Code") [⚠️](https://github.com/snipe/snipe-it/commits?author=bryanlopezinc "Tests") | | [
U-H-T](https://github.com/U-H-T)
[💻](https://github.com/snipe/snipe-it/commits?author=U-H-T "Code") | [
Matt Tyree](https://github.com/Tyree)
[📖](https://github.com/snipe/snipe-it/commits?author=Tyree "Documentation") | [
Florent Bervas](http://spoontux.net)
[💻](https://github.com/snipe/snipe-it/commits?author=FlorentDotMe "Code") | [
Daniel Albertsen](https://ditscheri.com)
[💻](https://github.com/snipe/snipe-it/commits?author=dbakan "Code") | [
r-xyz](https://github.com/r-xyz)
[💻](https://github.com/snipe/snipe-it/commits?author=r-xyz "Code") | [
Steven Mainor](https://github.com/DrekiDegga)
[💻](https://github.com/snipe/snipe-it/commits?author=DrekiDegga "Code") | [
arne-kroeger](https://github.com/arne-kroeger)
[💻](https://github.com/snipe/snipe-it/commits?author=arne-kroeger "Code") | -| [
Glukose1](https://github.com/Glukose1)
[💻](https://github.com/snipe/snipe-it/commits?author=Glukose1 "Code") | +| [
Glukose1](https://github.com/Glukose1)
[💻](https://github.com/snipe/snipe-it/commits?author=Glukose1 "Code") | [
Scarzy](https://github.com/Scarzy)
[💻](https://github.com/snipe/snipe-it/commits?author=Scarzy "Code") | This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome! From 3ac07020945751505b06d4acc358575e92860e0e Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 22 Aug 2024 10:13:22 +0100 Subject: [PATCH 157/224] Fixed #15344 - make select2 for countries freeform-ish Signed-off-by: snipe --- resources/lang/en-US/localizations.php | 5 ++++- resources/macros/macros.php | 17 +++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/resources/lang/en-US/localizations.php b/resources/lang/en-US/localizations.php index f335ddc1b..e87af0718 100644 --- a/resources/lang/en-US/localizations.php +++ b/resources/lang/en-US/localizations.php @@ -135,6 +135,7 @@ return [ 'EC'=>'Ecuador', 'EE'=>'Estonia', 'EG'=>'Egypt', + 'GB-ENG'=>'England', 'ER'=>'Eritrea', 'ES'=>'Spain', 'ET'=>'Ethiopia', @@ -233,6 +234,7 @@ return [ 'NG'=>'Nigeria', 'NI'=>'Nicaragua', 'NL'=>'Netherlands', + 'GB-NIR' => 'Northern Ireland', 'NO'=>'Norway', 'NP'=>'Nepal', 'NR'=>'Nauru', @@ -260,7 +262,7 @@ return [ 'RU'=>'Russian Federation', 'RW'=>'Rwanda', 'SA'=>'Saudi Arabia', - 'UK'=>'Scotland', + 'GB-SCT'=>'Scotland', 'SB'=>'Solomon Islands', 'SC'=>'Seychelles', 'SS'=>'South Sudan', @@ -312,6 +314,7 @@ return [ 'VI'=>'Virgin Islands (U.S.)', 'VN'=>'Viet Nam', 'VU'=>'Vanuatu', + 'GB-WLS' =>'Wales', 'WF'=>'Wallis And Futuna Islands', 'WS'=>'Samoa', 'YE'=>'Yemen', diff --git a/resources/macros/macros.php b/resources/macros/macros.php index 7fefba2aa..1cc754b7c 100644 --- a/resources/macros/macros.php +++ b/resources/macros/macros.php @@ -32,18 +32,27 @@ Form::macro('countries', function ($name = 'country', $selected = null, $class = $idclause = (!is_null($id)) ? $id : ''; - $select = ''; $select .= ''; - // Pull the autoglossonym array from the localizations translation file - foreach (trans('localizations.countries') as $abbr => $country) { + foreach ($countries_array as $abbr => $country) { // We have to handle it this way to handle deprecication warnings since you can't strtoupper on null if ($abbr!='') { $abbr = strtoupper($abbr); } - $select .= ' '; + // Loop through the countries configured in the localization file + $select .= ' '; + + } + + // If the country value doesn't exist in the array, add it as a new option and select it so we don't drop that data + if (!in_array($selected, $countries_array)) { + $select .= ' '; } $select .= ''; From 305dc049a498c913caacdd6f2c21f4320b9c9e52 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 22 Aug 2024 11:01:28 +0100 Subject: [PATCH 158/224] Added asterisk help text Signed-off-by: snipe --- resources/lang/en-US/general.php | 1 + resources/views/partials/forms/edit/address.blade.php | 1 + resources/views/users/edit.blade.php | 2 ++ resources/views/users/view.blade.php | 4 +++- 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/resources/lang/en-US/general.php b/resources/lang/en-US/general.php index a60f0dedf..4ebf1b897 100644 --- a/resources/lang/en-US/general.php +++ b/resources/lang/en-US/general.php @@ -561,5 +561,6 @@ return [ 'remaining_var' => ':count Remaining', 'label' => 'Label', 'import_asset_tag_exists' => 'An asset with the asset tag :asset_tag already exists and an update was not requested. No change was made.', + 'countries_manually_entered_help' => 'Values with an asterisk (*) were manually entered and do not match existing ISO 3166 dropdown values', ]; diff --git a/resources/views/partials/forms/edit/address.blade.php b/resources/views/partials/forms/edit/address.blade.php index c68ecaa8c..893bd0133 100644 --- a/resources/views/partials/forms/edit/address.blade.php +++ b/resources/views/partials/forms/edit/address.blade.php @@ -35,6 +35,7 @@ {{ Form::label('country', trans('general.country'), array('class' => 'col-md-3 control-label')) }}
{!! Form::countries('country', old('country', $item->country), 'select2') !!} +

{{ trans('general.countries_manually_entered_help') }}

{!! $errors->first('country', '') !!}
diff --git a/resources/views/users/edit.blade.php b/resources/views/users/edit.blade.php index 5f0246d02..1c23b7682 100755 --- a/resources/views/users/edit.blade.php +++ b/resources/views/users/edit.blade.php @@ -451,6 +451,8 @@
{!! Form::countries('country', old('country', $user->country), 'col-md-12 select2') !!} + +

{{ trans('general.countries_manually_entered_help') }}

{!! $errors->first('country', '') !!}
diff --git a/resources/views/users/view.blade.php b/resources/views/users/view.blade.php index 8fbed865e..e2397ebe8 100755 --- a/resources/views/users/view.blade.php +++ b/resources/views/users/view.blade.php @@ -197,7 +197,9 @@ {{ trans('admin/users/general.print_assigned') }} @else - + @endif
@endcan From 5efddf6f5b287f83295e5bde066e7a5a707215e6 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 22 Aug 2024 11:01:39 +0100 Subject: [PATCH 159/224] Allow clear on country dropdown Signed-off-by: snipe --- resources/macros/macros.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/macros/macros.php b/resources/macros/macros.php index 1cc754b7c..5d0813115 100644 --- a/resources/macros/macros.php +++ b/resources/macros/macros.php @@ -35,7 +35,7 @@ Form::macro('countries', function ($name = 'country', $selected = null, $class = // Pull the autoglossonym array from the localizations translation file $countries_array = trans('localizations.countries'); - $select = ''; $select .= ''; foreach ($countries_array as $abbr => $country) { @@ -46,13 +46,13 @@ Form::macro('countries', function ($name = 'country', $selected = null, $class = } // Loop through the countries configured in the localization file - $select .= ' '; + $select .= ' '; } // If the country value doesn't exist in the array, add it as a new option and select it so we don't drop that data if (!in_array($selected, $countries_array)) { - $select .= ' '; + $select .= ' '; } $select .= ''; From 94300d81d618d4b50c127e6094f78453412746b9 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 22 Aug 2024 11:19:32 +0100 Subject: [PATCH 160/224] Updated dev assets Signed-off-by: snipe --- public/css/build/app.css | 18 +++++++++++++++++ public/css/build/overrides.css | 18 +++++++++++++++++ public/css/dist/all.css | 36 ++++++++++++++++++++++++++++++++++ public/mix-manifest.json | 6 +++--- 4 files changed, 75 insertions(+), 3 deletions(-) diff --git a/public/css/build/app.css b/public/css/build/app.css index 7f575c30e..018225632 100644 --- a/public/css/build/app.css +++ b/public/css/build/app.css @@ -1129,6 +1129,24 @@ th.css-component > .th-inner::before { margin-top: 50px; } } +@media screen and (max-width: 992px) { + .info-stack-container { + display: flex; + flex-direction: column; + } + .col-md-3.col-xs-12.col-sm-push-9.info-stack { + left: auto; + order: 1; + } + .col-md-9.col-xs-12.col-sm-pull-3.info-stack { + right: auto; + order: 2; + } + .info-stack-container > .col-md-9.col-xs-12.col-sm-pull-3.info-stack > .row-new-striped > .row > .col-sm-2 { + width: auto; + float: none; + } +} @media screen and (max-width: 1318px) and (min-width: 1200px) { .admin.box { height: 170px; diff --git a/public/css/build/overrides.css b/public/css/build/overrides.css index 806262855..bb8a8b590 100644 --- a/public/css/build/overrides.css +++ b/public/css/build/overrides.css @@ -762,6 +762,24 @@ th.css-component > .th-inner::before { margin-top: 50px; } } +@media screen and (max-width: 992px) { + .info-stack-container { + display: flex; + flex-direction: column; + } + .col-md-3.col-xs-12.col-sm-push-9.info-stack { + left: auto; + order: 1; + } + .col-md-9.col-xs-12.col-sm-pull-3.info-stack { + right: auto; + order: 2; + } + .info-stack-container > .col-md-9.col-xs-12.col-sm-pull-3.info-stack > .row-new-striped > .row > .col-sm-2 { + width: auto; + float: none; + } +} @media screen and (max-width: 1318px) and (min-width: 1200px) { .admin.box { height: 170px; diff --git a/public/css/dist/all.css b/public/css/dist/all.css index 494f8e35c..c43fb47e5 100644 --- a/public/css/dist/all.css +++ b/public/css/dist/all.css @@ -22101,6 +22101,24 @@ th.css-component > .th-inner::before { margin-top: 50px; } } +@media screen and (max-width: 992px) { + .info-stack-container { + display: flex; + flex-direction: column; + } + .col-md-3.col-xs-12.col-sm-push-9.info-stack { + left: auto; + order: 1; + } + .col-md-9.col-xs-12.col-sm-pull-3.info-stack { + right: auto; + order: 2; + } + .info-stack-container > .col-md-9.col-xs-12.col-sm-pull-3.info-stack > .row-new-striped > .row > .col-sm-2 { + width: auto; + float: none; + } +} @media screen and (max-width: 1318px) and (min-width: 1200px) { .admin.box { height: 170px; @@ -23536,6 +23554,24 @@ th.css-component > .th-inner::before { margin-top: 50px; } } +@media screen and (max-width: 992px) { + .info-stack-container { + display: flex; + flex-direction: column; + } + .col-md-3.col-xs-12.col-sm-push-9.info-stack { + left: auto; + order: 1; + } + .col-md-9.col-xs-12.col-sm-pull-3.info-stack { + right: auto; + order: 2; + } + .info-stack-container > .col-md-9.col-xs-12.col-sm-pull-3.info-stack > .row-new-striped > .row > .col-sm-2 { + width: auto; + float: none; + } +} @media screen and (max-width: 1318px) and (min-width: 1200px) { .admin.box { height: 170px; diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 0ed3ec857..3cedb083c 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -2,8 +2,8 @@ "/js/build/app.js": "/js/build/app.js?id=5030f4cb69d0d0b87b7fe6ba1b9eece9", "/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=f0b08873a06bb54daeee176a9459f4a9", "/css/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=f4397c717b99fce41a633ca6edd5d1f4", - "/css/build/overrides.css": "/css/build/overrides.css?id=cfbc06b0e0ebd9ee7294c4950dcc4933", - "/css/build/app.css": "/css/build/app.css?id=bcb566c8a13855e85053527728126d07", + "/css/build/overrides.css": "/css/build/overrides.css?id=b4888ad2f6b8e7bdf012279808908c90", + "/css/build/app.css": "/css/build/app.css?id=e413bd66bd54cdd31219e148c3d70155", "/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=4ea0068716c1bb2434d87a16d51b98c9", "/css/dist/skins/skin-yellow.css": "/css/dist/skins/skin-yellow.css?id=7b315b9612b8fde8f9c5b0ddb6bba690", "/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=393aaa7b368b0670fc42434c8cca7dc7", @@ -19,7 +19,7 @@ "/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=f677207c6cf9678eb539abecb408c374", "/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=0640e45bad692dcf62873c6e85904899", "/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=76482123f6c70e866d6b971ba91de7bb", - "/css/dist/all.css": "/css/dist/all.css?id=efcffe03989e373e15ac02f526594126", + "/css/dist/all.css": "/css/dist/all.css?id=d0d01ea8f03fe60b1ea549854d582a0c", "/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7", "/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced1cf5f13147f7", "/js/select2/i18n/af.js": "/js/select2/i18n/af.js?id=4f6fcd73488ce79fae1b7a90aceaecde", From 744f43676d51ee8b8cb06f2f690305dacd350563 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 22 Aug 2024 12:53:16 +0100 Subject: [PATCH 161/224] Fixed checkbox layout on modal from #15296 Signed-off-by: snipe --- public/css/build/app.css | 3 + public/css/build/overrides.css | 3 + public/css/dist/all.css | 6 ++ public/js/build/app.js | 93 ++++++++-------------- public/js/dist/all.js | 93 ++++++++-------------- public/mix-manifest.json | 10 +-- resources/assets/less/overrides.less | 4 + resources/views/settings/backups.blade.php | 8 +- 8 files changed, 88 insertions(+), 132 deletions(-) diff --git a/public/css/build/app.css b/public/css/build/app.css index 018225632..66a22ebf9 100644 --- a/public/css/build/app.css +++ b/public/css/build/app.css @@ -697,6 +697,9 @@ body { font-size: 14px; white-space: normal; } +.modal-warning .modal-help { + color: #fff8af; +} .bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading { z-index: 0 !important; } diff --git a/public/css/build/overrides.css b/public/css/build/overrides.css index bb8a8b590..752650252 100644 --- a/public/css/build/overrides.css +++ b/public/css/build/overrides.css @@ -330,6 +330,9 @@ body { font-size: 14px; white-space: normal; } +.modal-warning .modal-help { + color: #fff8af; +} .bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading { z-index: 0 !important; } diff --git a/public/css/dist/all.css b/public/css/dist/all.css index c43fb47e5..dbe027dcd 100644 --- a/public/css/dist/all.css +++ b/public/css/dist/all.css @@ -21669,6 +21669,9 @@ body { font-size: 14px; white-space: normal; } +.modal-warning .modal-help { + color: #fff8af; +} .bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading { z-index: 0 !important; } @@ -23122,6 +23125,9 @@ body { font-size: 14px; white-space: normal; } +.modal-warning .modal-help { + color: #fff8af; +} .bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading { z-index: 0 !important; } diff --git a/public/js/build/app.js b/public/js/build/app.js index c5c6a5cd6..c188a713b 100644 --- a/public/js/build/app.js +++ b/public/js/build/app.js @@ -130,74 +130,43 @@ pieOptions = { //----------------- var baseUrl = $('meta[name="baseUrl"]').attr('content'); -(function ($, settings) { - var Components = {}; - Components.modals = {}; +$(function () { + var $el = $('table'); // confirm restore modal - Components.modals.confirmRestore = function () { - var $el = $('table'); - var events = { - 'click': function click(evnt) { - var $context = $(this); - var $restoreConfirmModal = $('#restoreConfirmModal'); - var href = $context.attr('href'); - var message = $context.attr('data-content'); - var title = $context.attr('data-title'); - $('#restoreConfirmModalLabel').text(title); - $restoreConfirmModal.find('.modal-body').text(message); - $('#restoreForm').attr('action', href); - $restoreConfirmModal.modal({ - show: true - }); - return false; - } - }; - var render = function render() { - $el.on('click', '.restore-asset', events['click']); - }; - return { - render: render - }; - }; + + $el.on('click', '.restore-asset', function (evnt) { + var $context = $(this); + var $restoreConfirmModal = $('#restoreConfirmModal'); + var href = $context.attr('href'); + var message = $context.attr('data-content'); + var title = $context.attr('data-title'); + $('#confirmModalLabel').text(title); + $restoreConfirmModal.find('.modal-body').text(message); + $('#restoreForm').attr('action', href); + $restoreConfirmModal.modal({ + show: true + }); + return false; + }); // confirm delete modal - Components.modals.confirmDelete = function () { - var $el = $('table'); - var events = { - 'click': function click(evnt) { - var $context = $(this); - var $dataConfirmModal = $('#dataConfirmModal'); - var href = $context.attr('href'); - var message = $context.attr('data-content'); - var title = $context.attr('data-title'); - $('#myModalLabel').text(title); - $dataConfirmModal.find('.modal-body').text(message); - $('#deleteForm').attr('action', href); - $dataConfirmModal.modal({ - show: true - }); - return false; - } - }; - var render = function render() { - $el.on('click', '.delete-asset', events['click']); - }; - return { - render: render - }; - }; - /** - * Application start point - * Component definition stays out of load event, execution only happens. - */ - $(function () { - new Components.modals.confirmRestore().render(); - new Components.modals.confirmDelete().render(); + $el.on('click', '.delete-asset', function (evnt) { + var $context = $(this); + var $dataConfirmModal = $('#dataConfirmModal'); + var href = $context.attr('href'); + var message = $context.attr('data-content'); + var title = $context.attr('data-title'); + $('#myModalLabel').text(title); + $dataConfirmModal.find('.modal-body').text(message); + $('#deleteForm').attr('action', href); + $dataConfirmModal.modal({ + show: true + }); + return false; }); -})(jQuery, window.snipeit.settings); -$(document).ready(function () { + /* * Slideout help menu */ diff --git a/public/js/dist/all.js b/public/js/dist/all.js index f82e4d678..9fa488f37 100644 --- a/public/js/dist/all.js +++ b/public/js/dist/all.js @@ -59324,74 +59324,43 @@ pieOptions = { //----------------- var baseUrl = $('meta[name="baseUrl"]').attr('content'); -(function ($, settings) { - var Components = {}; - Components.modals = {}; +$(function () { + var $el = $('table'); // confirm restore modal - Components.modals.confirmRestore = function () { - var $el = $('table'); - var events = { - 'click': function click(evnt) { - var $context = $(this); - var $restoreConfirmModal = $('#restoreConfirmModal'); - var href = $context.attr('href'); - var message = $context.attr('data-content'); - var title = $context.attr('data-title'); - $('#restoreConfirmModalLabel').text(title); - $restoreConfirmModal.find('.modal-body').text(message); - $('#restoreForm').attr('action', href); - $restoreConfirmModal.modal({ - show: true - }); - return false; - } - }; - var render = function render() { - $el.on('click', '.restore-asset', events['click']); - }; - return { - render: render - }; - }; + + $el.on('click', '.restore-asset', function (evnt) { + var $context = $(this); + var $restoreConfirmModal = $('#restoreConfirmModal'); + var href = $context.attr('href'); + var message = $context.attr('data-content'); + var title = $context.attr('data-title'); + $('#confirmModalLabel').text(title); + $restoreConfirmModal.find('.modal-body').text(message); + $('#restoreForm').attr('action', href); + $restoreConfirmModal.modal({ + show: true + }); + return false; + }); // confirm delete modal - Components.modals.confirmDelete = function () { - var $el = $('table'); - var events = { - 'click': function click(evnt) { - var $context = $(this); - var $dataConfirmModal = $('#dataConfirmModal'); - var href = $context.attr('href'); - var message = $context.attr('data-content'); - var title = $context.attr('data-title'); - $('#myModalLabel').text(title); - $dataConfirmModal.find('.modal-body').text(message); - $('#deleteForm').attr('action', href); - $dataConfirmModal.modal({ - show: true - }); - return false; - } - }; - var render = function render() { - $el.on('click', '.delete-asset', events['click']); - }; - return { - render: render - }; - }; - /** - * Application start point - * Component definition stays out of load event, execution only happens. - */ - $(function () { - new Components.modals.confirmRestore().render(); - new Components.modals.confirmDelete().render(); + $el.on('click', '.delete-asset', function (evnt) { + var $context = $(this); + var $dataConfirmModal = $('#dataConfirmModal'); + var href = $context.attr('href'); + var message = $context.attr('data-content'); + var title = $context.attr('data-title'); + $('#myModalLabel').text(title); + $dataConfirmModal.find('.modal-body').text(message); + $('#deleteForm').attr('action', href); + $dataConfirmModal.modal({ + show: true + }); + return false; }); -})(jQuery, window.snipeit.settings); -$(document).ready(function () { + /* * Slideout help menu */ diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 3cedb083c..42b576091 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,9 +1,9 @@ { - "/js/build/app.js": "/js/build/app.js?id=5030f4cb69d0d0b87b7fe6ba1b9eece9", + "/js/build/app.js": "/js/build/app.js?id=1d7c22e5a4811c37a9d70bf354ae1e9d", "/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=f0b08873a06bb54daeee176a9459f4a9", "/css/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=f4397c717b99fce41a633ca6edd5d1f4", - "/css/build/overrides.css": "/css/build/overrides.css?id=b4888ad2f6b8e7bdf012279808908c90", - "/css/build/app.css": "/css/build/app.css?id=e413bd66bd54cdd31219e148c3d70155", + "/css/build/overrides.css": "/css/build/overrides.css?id=9265dbc8adc38d13abec7f8ff0374dce", + "/css/build/app.css": "/css/build/app.css?id=76584ef562c22532ffa84748f18e3a65", "/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=4ea0068716c1bb2434d87a16d51b98c9", "/css/dist/skins/skin-yellow.css": "/css/dist/skins/skin-yellow.css?id=7b315b9612b8fde8f9c5b0ddb6bba690", "/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=393aaa7b368b0670fc42434c8cca7dc7", @@ -19,7 +19,7 @@ "/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=f677207c6cf9678eb539abecb408c374", "/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=0640e45bad692dcf62873c6e85904899", "/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=76482123f6c70e866d6b971ba91de7bb", - "/css/dist/all.css": "/css/dist/all.css?id=d0d01ea8f03fe60b1ea549854d582a0c", + "/css/dist/all.css": "/css/dist/all.css?id=0978d9f0ba8d47527c248074b757b03d", "/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7", "/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced1cf5f13147f7", "/js/select2/i18n/af.js": "/js/select2/i18n/af.js?id=4f6fcd73488ce79fae1b7a90aceaecde", @@ -111,5 +111,5 @@ "/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=393d720a0f9aba560094fbc8d3b0c0f0", "/js/build/vendor.js": "/js/build/vendor.js?id=c1c24b883f48dc3d16b817aed0b457cc", "/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=6660df122e24940d42d03c06775fec7b", - "/js/dist/all.js": "/js/dist/all.js?id=05654cea82a7a1b78cb20e449d004268" + "/js/dist/all.js": "/js/dist/all.js?id=9fe982072b024cb5b1c41764713de1f7" } diff --git a/resources/assets/less/overrides.less b/resources/assets/less/overrides.less index 735791b4c..096d67f75 100644 --- a/resources/assets/less/overrides.less +++ b/resources/assets/less/overrides.less @@ -358,6 +358,10 @@ body { white-space: normal; } +.modal-warning .modal-help { + color: #fff8af; +} + .bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading { z-index: 0 !important; } diff --git a/resources/views/settings/backups.blade.php b/resources/views/settings/backups.blade.php index d4791deeb..f495795d6 100644 --- a/resources/views/settings/backups.blade.php +++ b/resources/views/settings/backups.blade.php @@ -33,10 +33,12 @@
From ca8864c061adbb2022ce81e5942ee0c243102191 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 22 Aug 2024 13:28:52 +0100 Subject: [PATCH 163/224] Fixed small layout quirks in asset view Signed-off-by: snipe --- resources/views/hardware/view.blade.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index 3f4a52037..eafbcaca2 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -378,11 +378,10 @@ @if (($asset->assignedTo) && ($asset->deleted_at=='')) {{ $asset->assetstatus->name }} - + - + + {!! $asset->assignedTo->present()->glyph() !!} {!! $asset->assignedTo->present()->nameUrl() !!} @else From a000d6454f23c0681c8abb1913479e528a463cb5 Mon Sep 17 00:00:00 2001 From: Iisakki Jaakkola Date: Thu, 22 Aug 2024 15:46:40 +0300 Subject: [PATCH 164/224] Fix non-functional development docker-compose file. --- .env.dev.docker | 2 ++ dev.docker-compose.yml | 44 +++++++++++++++++++----------------------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/.env.dev.docker b/.env.dev.docker index 7b9e2000c..983063bbd 100644 --- a/.env.dev.docker +++ b/.env.dev.docker @@ -1,6 +1,8 @@ # -------------------------------------------- # REQUIRED: DB SETUP # -------------------------------------------- +# https://mariadb.com/kb/en/mariadb-server-docker-official-image-environment-variables/ + MYSQL_DATABASE=snipeit MYSQL_USER=snipeit MYSQL_PASSWORD=changeme1234 diff --git a/dev.docker-compose.yml b/dev.docker-compose.yml index 15272ce5c..84f8dea4b 100644 --- a/dev.docker-compose.yml +++ b/dev.docker-compose.yml @@ -1,3 +1,5 @@ +# Compose file to spin up a local Snipe-IT for development. + version: '3' services: @@ -7,44 +9,38 @@ services: dockerfile: Dockerfile.alpine container_name: snipeit ports: - - "8000:80" - volumes: - - ./storage/logs:/var/www/html/storage/logs + - "8000:80" depends_on: - - mariadb - - redis + redis: + mariadb: + condition: service_healthy + restart: true env_file: - - .env.docker - networks: - - snipeit-backend + - .env.dev.docker mariadb: - image: mariadb:10.6.4-focal + image: mariadb:11.5.2 volumes: - - db:/var/lib/mysql + - db:/var/lib/mysql env_file: - - .env.docker - networks: - - snipeit-backend + - .env.dev.docker ports: - "3306:3306" + healthcheck: + # https://mariadb.com/kb/en/using-healthcheck-sh/#compose-file-example + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] + interval: 5s + timeout: 2s + retries: 5 redis: - image: redis:6.2.5-buster - networks: - - snipeit-backend + image: redis:7.4.0 mailhog: image: mailhog/mailhog:v1.0.1 ports: - # - 1025:1025 - - "8025:8025" - networks: - - snipeit-backend - + # - 1025:1025 + - "8025:8025" volumes: db: {} - -networks: - snipeit-backend: {} From f12f9a816f6776395788cec8e7b0bfddad3de26c Mon Sep 17 00:00:00 2001 From: Iisakki Jaakkola Date: Thu, 22 Aug 2024 15:47:12 +0300 Subject: [PATCH 165/224] Update the official docker-compose file too while at it. --- docker-compose.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index c7c1983a4..d830a9436 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,11 +1,13 @@ +# Compose file for production. + volumes: db_data: storage: services: app: - image: snipe/snipe-it:${APP_VERSION:-v6.4.1} - restart: always + image: snipe/snipe-it:${APP_VERSION:-v7.0.11} + restart: unless-stopped volumes: - storage:/var/lib/snipeit ports: @@ -18,8 +20,8 @@ services: - .env db: - image: mariadb:10.6.4-focal - restart: always + image: mariadb:11.5.2 + restart: unless-stopped volumes: - db_data:/var/lib/mysql environment: @@ -28,7 +30,8 @@ services: MYSQL_PASSWORD: ${DB_PASSWORD} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} healthcheck: - test: mysqladmin ping -h 127.0.0.1 -u $$MYSQL_USER --password=$$MYSQL_PASSWORD + # https://mariadb.com/kb/en/using-healthcheck-sh/#compose-file-example + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 5s timeout: 1s retries: 5 From aef0ac68c36a7b2be1dece41f515df2bdae40ca4 Mon Sep 17 00:00:00 2001 From: Iisakki Jaakkola Date: Thu, 22 Aug 2024 16:10:00 +0300 Subject: [PATCH 166/224] Need to use the long format for redis too in docker-compose file. --- dev.docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dev.docker-compose.yml b/dev.docker-compose.yml index 84f8dea4b..6cf4a1e2f 100644 --- a/dev.docker-compose.yml +++ b/dev.docker-compose.yml @@ -12,6 +12,8 @@ services: - "8000:80" depends_on: redis: + # The default needs to be stated. + condition: service_started mariadb: condition: service_healthy restart: true From 56e31d23036db2c26900fb46b77fc9786041017a Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 22 Aug 2024 14:58:09 +0100 Subject: [PATCH 167/224] Fixed #15366 - use permission for encrypted custom fields Signed-off-by: snipe --- app/Http/Controllers/Api/AssetsController.php | 4 ++-- app/Http/Controllers/Assets/AssetsController.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Api/AssetsController.php b/app/Http/Controllers/Api/AssetsController.php index 855bc5126..1243f1212 100644 --- a/app/Http/Controllers/Api/AssetsController.php +++ b/app/Http/Controllers/Api/AssetsController.php @@ -602,7 +602,7 @@ class AssetsController extends Controller if ($field->field_encrypted == '1') { Log::debug('This model field is encrypted in this fieldset.'); - if (Gate::allows('admin')) { + if (Gate::allows('assets.view.encrypted_custom_fields')) { // If input value is null, use custom field's default value if (($field_val == null) && ($request->has('model_id') != '')) { @@ -695,7 +695,7 @@ class AssetsController extends Controller } } if ($field->field_encrypted == '1') { - if (Gate::allows('admin')) { + if (Gate::allows('assets.view.encrypted_custom_fields')) { $field_val = Crypt::encrypt($field_val); } else { $problems_updating_encrypted_custom_fields = true; diff --git a/app/Http/Controllers/Assets/AssetsController.php b/app/Http/Controllers/Assets/AssetsController.php index 75646e726..59b22b386 100755 --- a/app/Http/Controllers/Assets/AssetsController.php +++ b/app/Http/Controllers/Assets/AssetsController.php @@ -165,7 +165,7 @@ class AssetsController extends Controller if (($model) && ($model->fieldset)) { foreach ($model->fieldset->fields as $field) { if ($field->field_encrypted == '1') { - if (Gate::allows('admin')) { + if (Gate::allows('assets.view.encrypted_custom_fields')) { if (is_array($request->input($field->db_column))) { $asset->{$field->db_column} = Crypt::encrypt(implode(', ', $request->input($field->db_column))); } else { @@ -388,7 +388,7 @@ class AssetsController extends Controller foreach ($model->fieldset->fields as $field) { if ($field->field_encrypted == '1') { - if (Gate::allows('admin')) { + if (Gate::allows('assets.view.encrypted_custom_fields')) { if (is_array($request->input($field->db_column))) { $asset->{$field->db_column} = Crypt::encrypt(implode(', ', $request->input($field->db_column))); } else { From 3957d670d0b38505ab233ee42f66382392f5a389 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Thu, 22 Aug 2024 10:04:46 -0700 Subject: [PATCH 168/224] fixes send acceptance reminder query --- app/Console/Commands/SendAcceptanceReminder.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/Console/Commands/SendAcceptanceReminder.php b/app/Console/Commands/SendAcceptanceReminder.php index dd9e59f61..a11ea8e27 100644 --- a/app/Console/Commands/SendAcceptanceReminder.php +++ b/app/Console/Commands/SendAcceptanceReminder.php @@ -47,9 +47,10 @@ class SendAcceptanceReminder extends Command { $pending = CheckoutAcceptance::pending()->where('checkoutable_type', 'App\Models\Asset') ->whereHas('checkoutable', function($query) { - $query->where('archived', 0); + $query->where('accepted_at', null) + ->where('declined_at', null); }) - ->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model', 'checkoutable.adminuser']) + ->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model', 'checkoutable.admin']) ->get(); $count = 0; From b59bf3e7dc803b24159744c8bf2819a95a7df8ab Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 21 Aug 2024 16:49:29 -0700 Subject: [PATCH 169/224] Add failing test --- .../AssetModels/Ui/UpdateAssetModelsTest.php | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php b/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php index 423eaad57..9a58eb5c5 100644 --- a/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php +++ b/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php @@ -4,6 +4,8 @@ namespace Tests\Feature\AssetModels\Ui; use App\Models\AssetModel; use App\Models\Category; +use App\Models\CustomField; +use App\Models\CustomFieldset; use App\Models\User; use Tests\TestCase; @@ -19,7 +21,7 @@ class UpdateAssetModelsTest extends TestCase ->assertStatus(403) ->assertForbidden(); } - + public function testUserCanEditAssetModels() { $category = Category::factory()->forAssets()->create(); @@ -62,4 +64,41 @@ class UpdateAssetModelsTest extends TestCase } + public function test_default_values_remain_unchanged_after_validation_error_occurs() + { + $this->markIncompleteIfMySQL('Custom Field Tests do not work in MySQL'); + + $assetModel = AssetModel::factory()->create(); + + $customFieldset = CustomFieldset::factory()->create(); + + [$customFieldOne, $customFieldTwo] = CustomField::factory()->count(2)->create(); + + $customFieldset->fields()->attach($customFieldOne, ['order' => 1, 'required' => false]); + $customFieldset->fields()->attach($customFieldTwo, ['order' => 2, 'required' => false]); + + $assetModel->fieldset()->associate($customFieldset); + + $assetModel->defaultValues()->attach($customFieldOne, ['default_value' => 'first default value']); + $assetModel->defaultValues()->attach($customFieldTwo, ['default_value' => 'second default value']); + + $this->actingAs(User::factory()->superuser()->create()) + ->put(route('models.update', ['model' => $assetModel]), [ + // should trigger validation error without name, etc, and NOT remove or change default values + 'add_default_values' => '1', + 'fieldset_id' => $customFieldset->id, + 'default_values' => [ + $customFieldOne->id => 'changed value', + $customFieldTwo->id => 'changed value', + ], + ]); + + $this->assertEquals( + 2, + $assetModel->fresh()->defaultValues->filter(function (CustomField $field) { + return in_array($field->pivot->default_value, ['first default value', 'second default value']); + })->count(), + 'Default field values were changed unexpectedly.' + ); + } } From bcace9d019b08048a954a9b89df9e09f8cbfa67e Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 21 Aug 2024 16:54:16 -0700 Subject: [PATCH 170/224] Point test to correct endpoint --- tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php b/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php index 9a58eb5c5..3ca91e982 100644 --- a/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php +++ b/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php @@ -14,11 +14,10 @@ class UpdateAssetModelsTest extends TestCase public function testPermissionRequiredToStoreAssetModel() { $this->actingAs(User::factory()->create()) - ->post(route('models.store'), [ - 'name' => 'Test Model', - 'category_id' => Category::factory()->create()->id + ->put(route('models.update', ['model' => AssetModel::factory()->create()]), [ + 'name' => 'Changed Name', + 'category_id' => Category::factory()->create()->id, ]) - ->assertStatus(403) ->assertForbidden(); } From 663b2fd844aa6461b5336f10f66d7ea49cf3ecdf Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 21 Aug 2024 16:59:38 -0700 Subject: [PATCH 171/224] Add test case --- .../AssetModels/Ui/UpdateAssetModelsTest.php | 42 +++++++++++++++++-- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php b/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php index 3ca91e982..83ffce7c9 100644 --- a/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php +++ b/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php @@ -68,9 +68,7 @@ class UpdateAssetModelsTest extends TestCase $this->markIncompleteIfMySQL('Custom Field Tests do not work in MySQL'); $assetModel = AssetModel::factory()->create(); - $customFieldset = CustomFieldset::factory()->create(); - [$customFieldOne, $customFieldTwo] = CustomField::factory()->count(2)->create(); $customFieldset->fields()->attach($customFieldOne, ['order' => 1, 'required' => false]); @@ -87,8 +85,8 @@ class UpdateAssetModelsTest extends TestCase 'add_default_values' => '1', 'fieldset_id' => $customFieldset->id, 'default_values' => [ - $customFieldOne->id => 'changed value', - $customFieldTwo->id => 'changed value', + $customFieldOne->id => 'first changed value', + $customFieldTwo->id => 'second changed value', ], ]); @@ -100,4 +98,40 @@ class UpdateAssetModelsTest extends TestCase 'Default field values were changed unexpectedly.' ); } + + public function test_default_values_can_be_updated() + { + $this->markIncompleteIfMySQL('Custom Field Tests do not work in MySQL'); + + $assetModel = AssetModel::factory()->create(); + $customFieldset = CustomFieldset::factory()->create(); + [$customFieldOne, $customFieldTwo] = CustomField::factory()->count(2)->create(); + + $customFieldset->fields()->attach($customFieldOne, ['order' => 1, 'required' => false]); + $customFieldset->fields()->attach($customFieldTwo, ['order' => 2, 'required' => false]); + + $assetModel->fieldset()->associate($customFieldset); + + $assetModel->defaultValues()->attach($customFieldOne, ['default_value' => 'first default value']); + $assetModel->defaultValues()->attach($customFieldTwo, ['default_value' => 'second default value']); + + $this->actingAs(User::factory()->superuser()->create()) + ->put(route('models.update', ['model' => $assetModel]), [ + // should trigger validation error without name, etc, and NOT remove or change default values + 'name' => 'Test Model Edited', + 'category_id' => $assetModel->category_id, + 'add_default_values' => '1', + 'fieldset_id' => $customFieldset->id, + 'default_values' => [ + $customFieldOne->id => 'first changed value', + $customFieldTwo->id => 'second changed value', + ], + ]); + + $potentiallyChangedDefaultValues = $assetModel->defaultValues->pluck('pivot.default_value'); + + $this->assertCount(2, $potentiallyChangedDefaultValues); + $this->assertContains('first changed value', $potentiallyChangedDefaultValues); + $this->assertContains('second changed value', $potentiallyChangedDefaultValues); + } } From d67975cb62f1f5ddb5bc3fa7c5297cb71e3388ea Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 21 Aug 2024 16:59:44 -0700 Subject: [PATCH 172/224] Implement fix --- app/Http/Controllers/AssetModelsController.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/AssetModelsController.php b/app/Http/Controllers/AssetModelsController.php index b6bb34738..60b1a3980 100755 --- a/app/Http/Controllers/AssetModelsController.php +++ b/app/Http/Controllers/AssetModelsController.php @@ -151,17 +151,17 @@ class AssetModelsController extends Controller $model->notes = $request->input('notes'); $model->requestable = $request->input('requestable', '0'); - $this->removeCustomFieldsDefaultValues($model); - $model->fieldset_id = $request->input('fieldset_id'); - if ($this->shouldAddDefaultValues($request->input())) { - if (!$this->assignCustomFieldsDefaultValues($model, $request->input('default_values'))){ - return redirect()->back()->withInput()->with('error', trans('admin/custom_fields/message.fieldset_default_value.error')); - } - } - if ($model->save()) { + $this->removeCustomFieldsDefaultValues($model); + + if ($this->shouldAddDefaultValues($request->input())) { + if (!$this->assignCustomFieldsDefaultValues($model, $request->input('default_values'))) { + return redirect()->back()->withInput()->with('error', trans('admin/custom_fields/message.fieldset_default_value.error')); + } + } + if ($model->wasChanged('eol')) { if ($model->eol > 0) { $newEol = $model->eol; From af0a95be12fbe3b12ec710e95935fa1dcb54bc74 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 21 Aug 2024 17:00:32 -0700 Subject: [PATCH 173/224] Simplify assertions --- .../Feature/AssetModels/Ui/UpdateAssetModelsTest.php | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php b/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php index 83ffce7c9..95eb592b6 100644 --- a/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php +++ b/tests/Feature/AssetModels/Ui/UpdateAssetModelsTest.php @@ -90,13 +90,10 @@ class UpdateAssetModelsTest extends TestCase ], ]); - $this->assertEquals( - 2, - $assetModel->fresh()->defaultValues->filter(function (CustomField $field) { - return in_array($field->pivot->default_value, ['first default value', 'second default value']); - })->count(), - 'Default field values were changed unexpectedly.' - ); + $potentiallyChangedDefaultValues = $assetModel->defaultValues->pluck('pivot.default_value'); + $this->assertCount(2, $potentiallyChangedDefaultValues); + $this->assertContains('first default value', $potentiallyChangedDefaultValues); + $this->assertContains('second default value', $potentiallyChangedDefaultValues); } public function test_default_values_can_be_updated() @@ -129,7 +126,6 @@ class UpdateAssetModelsTest extends TestCase ]); $potentiallyChangedDefaultValues = $assetModel->defaultValues->pluck('pivot.default_value'); - $this->assertCount(2, $potentiallyChangedDefaultValues); $this->assertContains('first changed value', $potentiallyChangedDefaultValues); $this->assertContains('second changed value', $potentiallyChangedDefaultValues); From 1d7853cbfe7ec5def3b8124133379355e133525d Mon Sep 17 00:00:00 2001 From: setpill <37372069+setpill@users.noreply.github.com> Date: Thu, 22 Aug 2024 19:45:53 +0200 Subject: [PATCH 174/224] fixed #15374: load TrustProxies middleware in Kernel.php --- app/Http/Kernel.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index d89f829d4..8c9289a79 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -14,6 +14,7 @@ class Kernel extends HttpKernel * @var array */ protected $middleware = [ + \App\Http\Middleware\TrustProxies::class, \App\Http\Middleware\NoSessionStore::class, \Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance::class, \Illuminate\Session\Middleware\StartSession::class, From ec0346e4a89635871f1a0f432ed2aa9fea6200c7 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 23 Aug 2024 07:19:08 +0100 Subject: [PATCH 175/224] Add @setpill as a contributor --- .all-contributorsrc | 9 +++++++++ CONTRIBUTORS.md | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 679f2740a..bc4231a02 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -3199,6 +3199,15 @@ "contributions": [ "code" ] + }, + { + "login": "setpill", + "name": "setpill", + "avatar_url": "https://avatars.githubusercontent.com/u/37372069?v=4", + "profile": "https://github.com/setpill", + "contributions": [ + "code" + ] } ] } diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 1bea56769..e7d0eac03 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -52,7 +52,7 @@ Thanks goes to all of these wonderful people ([emoji key](https://github.com/ken | [
bilias](https://github.com/bilias)
[💻](https://github.com/snipe/snipe-it/commits?author=bilias "Code") | [
coach1988](https://github.com/coach1988)
[💻](https://github.com/snipe/snipe-it/commits?author=coach1988 "Code") | [
MrM](https://github.com/mauro-miatello)
[💻](https://github.com/snipe/snipe-it/commits?author=mauro-miatello "Code") | [
koiakoia](https://github.com/koiakoia)
[💻](https://github.com/snipe/snipe-it/commits?author=koiakoia "Code") | [
Mustafa Online](https://github.com/mustafa-online)
[💻](https://github.com/snipe/snipe-it/commits?author=mustafa-online "Code") | [
franceslui](https://github.com/franceslui)
[💻](https://github.com/snipe/snipe-it/commits?author=franceslui "Code") | [
Q4kK](https://github.com/Q4kK)
[💻](https://github.com/snipe/snipe-it/commits?author=Q4kK "Code") | | [
squintfox](https://github.com/squintfox)
[💻](https://github.com/snipe/snipe-it/commits?author=squintfox "Code") | [
Jeff Clay](https://github.com/jeffclay)
[💻](https://github.com/snipe/snipe-it/commits?author=jeffclay "Code") | [
Phil J R](https://github.com/PP-JN-RL)
[💻](https://github.com/snipe/snipe-it/commits?author=PP-JN-RL "Code") | [
i_virus](https://www.corelight.com/)
[💻](https://github.com/snipe/snipe-it/commits?author=chandanchowdhury "Code") | [
Paul Grime](https://github.com/gitgrimbo)
[💻](https://github.com/snipe/snipe-it/commits?author=gitgrimbo "Code") | [
Lee Porte](https://leeporte.co.uk)
[💻](https://github.com/snipe/snipe-it/commits?author=LeePorte "Code") | [
BRYAN ](https://github.com/bryanlopezinc)
[💻](https://github.com/snipe/snipe-it/commits?author=bryanlopezinc "Code") [⚠️](https://github.com/snipe/snipe-it/commits?author=bryanlopezinc "Tests") | | [
U-H-T](https://github.com/U-H-T)
[💻](https://github.com/snipe/snipe-it/commits?author=U-H-T "Code") | [
Matt Tyree](https://github.com/Tyree)
[📖](https://github.com/snipe/snipe-it/commits?author=Tyree "Documentation") | [
Florent Bervas](http://spoontux.net)
[💻](https://github.com/snipe/snipe-it/commits?author=FlorentDotMe "Code") | [
Daniel Albertsen](https://ditscheri.com)
[💻](https://github.com/snipe/snipe-it/commits?author=dbakan "Code") | [
r-xyz](https://github.com/r-xyz)
[💻](https://github.com/snipe/snipe-it/commits?author=r-xyz "Code") | [
Steven Mainor](https://github.com/DrekiDegga)
[💻](https://github.com/snipe/snipe-it/commits?author=DrekiDegga "Code") | [
arne-kroeger](https://github.com/arne-kroeger)
[💻](https://github.com/snipe/snipe-it/commits?author=arne-kroeger "Code") | -| [
Glukose1](https://github.com/Glukose1)
[💻](https://github.com/snipe/snipe-it/commits?author=Glukose1 "Code") | [
Scarzy](https://github.com/Scarzy)
[💻](https://github.com/snipe/snipe-it/commits?author=Scarzy "Code") | +| [
Glukose1](https://github.com/Glukose1)
[💻](https://github.com/snipe/snipe-it/commits?author=Glukose1 "Code") | [
Scarzy](https://github.com/Scarzy)
[💻](https://github.com/snipe/snipe-it/commits?author=Scarzy "Code") | [
setpill](https://github.com/setpill)
[💻](https://github.com/snipe/snipe-it/commits?author=setpill "Code") | This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome! From f85ebd7ffd30b334593724cc04dec607afe75ea0 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 23 Aug 2024 07:27:39 +0100 Subject: [PATCH 176/224] Added pull-right to angle bracket Signed-off-by: snipe --- resources/views/layouts/default.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/layouts/default.blade.php b/resources/views/layouts/default.blade.php index b303362ad..9b244102b 100644 --- a/resources/views/layouts/default.blade.php +++ b/resources/views/layouts/default.blade.php @@ -647,7 +647,7 @@ dir="{{ Helper::determineLanguageDirection() }}"> {{ trans('general.settings') }} - +
    From 8546bbdd65c9eb71fbe227df8b26014a894092c1 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 23 Aug 2024 08:38:47 +0100 Subject: [PATCH 177/224] Fixed gate for checkout button Signed-off-by: snipe --- resources/views/hardware/view.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index eafbcaca2..04291c9ea 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -201,7 +201,7 @@
@endcan @elseif (($asset->assigned_to == '') && ($asset->deleted_at=='')) - @can('checkout', Asset::class) + @can('checkout', $asset)
model ? ' data-tooltip="true" title="'.trans('admin/hardware/general.model_invalid_fix').'"' : '') !!}> From 52894615ce962beef3f1eff89f1ee916fbe0a878 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 23 Aug 2024 08:40:41 +0100 Subject: [PATCH 178/224] More specific gate for checkin Signed-off-by: snipe --- resources/views/hardware/view.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index 04291c9ea..3fd68b1da 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -190,7 +190,7 @@ @if (($asset->assetstatus) && ($asset->assetstatus->deployable=='1')) @if (($asset->assigned_to != '') && ($asset->deleted_at=='')) - @can('checkin', \App\Models\Asset::class) + @can('checkin', $asset)
model ? ' data-tooltip="true" title="'.trans('admin/hardware/general.model_invalid_fix').'"' : '') !!}> From d92fa5de6518e787790b5f0f82b4ad9da00af506 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 23 Aug 2024 15:17:25 +0100 Subject: [PATCH 179/224] fa-fw on settings icon Signed-off-by: snipe --- resources/views/layouts/default.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/layouts/default.blade.php b/resources/views/layouts/default.blade.php index 9b244102b..993708dac 100644 --- a/resources/views/layouts/default.blade.php +++ b/resources/views/layouts/default.blade.php @@ -645,7 +645,7 @@ dir="{{ Helper::determineLanguageDirection() }}"> @can('backend.interact')
  • - + {{ trans('general.settings') }} From aa86e07cd2341ad4877a053d10aa55759be940b4 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 23 Aug 2024 15:22:39 +0100 Subject: [PATCH 180/224] Fixed #15385 - small icon tweaks Signed-off-by: snipe --- app/Helpers/IconHelper.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Helpers/IconHelper.php b/app/Helpers/IconHelper.php index fec951791..558ca58b9 100644 --- a/app/Helpers/IconHelper.php +++ b/app/Helpers/IconHelper.php @@ -62,7 +62,7 @@ class IconHelper case 'warning': return 'fas fa-exclamation-triangle'; case 'kits': - return 'fa fa-object-group'; + return 'fas fa-object-group'; case 'assets': return 'fas fa-barcode'; case 'accessories': @@ -74,7 +74,7 @@ class IconHelper case 'licenses': return 'far fa-save'; case 'requestable': - return 'fa fa-laptop'; + return 'fas fa-laptop'; case 'reports': return 'fas fa-chart-bar'; case 'heart': @@ -86,7 +86,7 @@ class IconHelper case 'due': return 'fas fa-history'; case 'import': - return 'fas fa-cloud-upload-alt fa-fw'; + return 'fas fa-cloud-upload-alt'; case 'search': return 'fas fa-search'; case 'alerts': From 263151658fd7bc6f527388ff0f5b9533cb516567 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 23 Aug 2024 17:44:09 +0100 Subject: [PATCH 181/224] Moved general label button Signed-off-by: snipe --- resources/views/users/view.blade.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/resources/views/users/view.blade.php b/resources/views/users/view.blade.php index 13924dd70..2c9687927 100755 --- a/resources/views/users/view.blade.php +++ b/resources/views/users/view.blade.php @@ -263,16 +263,12 @@ @if ($user->deleted_at=='')
    @if ($user->isDeletable()) - - {{csrf_field()}} - {{ method_field("DELETE")}} - - + @else - @@ -1201,6 +1197,14 @@