From 2777ac96cc51223352fb384a015781ebb71bdb98 Mon Sep 17 00:00:00 2001 From: U-H-T <> Date: Thu, 23 May 2024 11:10:23 +0200 Subject: [PATCH 001/110] add logo support for Brother TZe24mm labels --- .../Labels/Tapes/Brother/TZe_24mm_B.php | 105 ++++++++++++++++++ .../Labels/Tapes/Brother/TZe_24mm_C.php | 77 +++++++++++++ 2 files changed, 182 insertions(+) create mode 100644 app/Models/Labels/Tapes/Brother/TZe_24mm_B.php create mode 100644 app/Models/Labels/Tapes/Brother/TZe_24mm_C.php diff --git a/app/Models/Labels/Tapes/Brother/TZe_24mm_B.php b/app/Models/Labels/Tapes/Brother/TZe_24mm_B.php new file mode 100644 index 0000000000..cedf5e0cbd --- /dev/null +++ b/app/Models/Labels/Tapes/Brother/TZe_24mm_B.php @@ -0,0 +1,105 @@ +getPrintableArea(); + + $currentX = $pa->x1; + $currentY = $pa->y1; + $usableWidth = $pa->w; + $usableHeight = $pa->h; + + $barcodeSize = $pa->h - self::TAG_SIZE; + + if ($record->has('barcode2d')) { + static::writeText( + $pdf, $record->get('tag'), + $pa->x1, $pa->y2 - self::TAG_SIZE, + 'freemono', 'b', self::TAG_SIZE, 'C', + $barcodeSize, self::TAG_SIZE, true, 0 + ); + static::write2DBarcode( + $pdf, $record->get('barcode2d')->content, $record->get('barcode2d')->type, + $currentX, $currentY, + $barcodeSize, $barcodeSize + ); + $currentX += $barcodeSize + self::BARCODE_MARGIN; + $usableWidth -= $barcodeSize + self::BARCODE_MARGIN; + } else { + static::writeText( + $pdf, $record->get('tag'), + $pa->x1, $pa->y2 - self::TAG_SIZE, + 'freemono', 'b', self::TAG_SIZE, 'R', + $usableWidth, self::TAG_SIZE, true, 0 + ); + } + + $usableWidth -= self::LOGO_MAX_WIDTH - self::LOGO_MARGIN; + + if ($record->has('title')) { + static::writeText( + $pdf, $record->get('title'), + $currentX, $currentY, + 'freesans', '', self::TITLE_SIZE, 'L', + $usableWidth, self::TITLE_SIZE, true, 0 + ); + $currentY += self::TITLE_SIZE + self::TITLE_MARGIN; + } + + foreach ($record->get('fields') as $field) { + static::writeText( + $pdf, $field['label'], + $currentX, $currentY, + 'freesans', '', self::LABEL_SIZE, 'L', + $usableWidth, self::LABEL_SIZE, true, 0, 0 + ); + $currentY += self::LABEL_SIZE + self::LABEL_MARGIN; + + static::writeText( + $pdf, $field['value'], + $currentX, $currentY, + 'freemono', 'B', self::FIELD_SIZE, 'L', + $usableWidth, self::FIELD_SIZE, true, 0, 0.3 + ); + $currentY += self::FIELD_SIZE + self::FIELD_MARGIN; + } + + $currentX += $usableWidth + (self::LOGO_MARGIN/2); + + if ($record->has('logo')) { + $logoSize = static::writeImage( + $pdf, $record->get('logo'), + $currentX, $pa->y1, + self::LOGO_MAX_WIDTH, $usableHeight, + 'L', 'T', 300, true, false, 0 + ); + $currentX += $logoSize[0] + self::LOGO_MARGIN; + $usableWidth -= $logoSize[0] + self::LOGO_MARGIN; + } + } +} diff --git a/app/Models/Labels/Tapes/Brother/TZe_24mm_C.php b/app/Models/Labels/Tapes/Brother/TZe_24mm_C.php new file mode 100644 index 0000000000..65b3676bfc --- /dev/null +++ b/app/Models/Labels/Tapes/Brother/TZe_24mm_C.php @@ -0,0 +1,77 @@ +getPrintableArea(); + + $currentX = $pa->x1; + $currentY = $pa->y1; + $usableWidth = $pa->w; + $usableHeight = $pa->h; + + $barcodeSize = $pa->h - self::TAG_SIZE; + + if ($record->has('barcode2d')) { + static::writeText( + $pdf, $record->get('tag'), + $pa->x1, $pa->y2 - self::TAG_SIZE, + 'freemono', 'b', self::TAG_SIZE, 'C', + $barcodeSize, self::TAG_SIZE, true, 0 + ); + static::write2DBarcode( + $pdf, $record->get('barcode2d')->content, $record->get('barcode2d')->type, + $currentX, $currentY, + $barcodeSize, $barcodeSize + ); + $currentX += $barcodeSize + self::BARCODE_MARGIN; + $usableWidth -= $barcodeSize + self::BARCODE_MARGIN; + } else { + static::writeText( + $pdf, $record->get('tag'), + $pa->x1, $pa->y2 - self::TAG_SIZE, + 'freemono', 'b', self::TAG_SIZE, 'R', + $usableWidth, self::TAG_SIZE, true, 0 + ); + } + + $usableWidth -= self::LOGO_MAX_WIDTH - self::LOGO_MARGIN; + + $currentX += $usableWidth - (self::LOGO_MARGIN/2); + + if ($record->has('logo')) { + $logoSize = static::writeImage( + $pdf, $record->get('logo'), + $currentX, $pa->y1, + self::LOGO_MAX_WIDTH, $usableHeight, + 'L', 'T', 300, true, false, 0 + ); + $currentX += $logoSize[0] + self::LOGO_MARGIN; + $usableWidth -= $logoSize[0] + self::LOGO_MARGIN; + } + } +} From 8a2ea971e16d2c043320cb3cd2f255bbb33820b8 Mon Sep 17 00:00:00 2001 From: Scarzy Date: Tue, 30 Apr 2024 21:30:45 +0100 Subject: [PATCH 002/110] Add an API assets files controller Based heavily on the Assets assets files controller. Added errors related to to the files management. Added the API endpoints for file upload and show, but only upload is currently tested/works. --- .../Controllers/Api/AssetFilesController.php | 171 ++++++++++++++++++ app/Http/Requests/UploadFileRequest.php | 2 + .../lang/en-GB/admin/hardware/message.php | 7 + routes/api.php | 17 +- 4 files changed, 193 insertions(+), 4 deletions(-) create mode 100644 app/Http/Controllers/Api/AssetFilesController.php diff --git a/app/Http/Controllers/Api/AssetFilesController.php b/app/Http/Controllers/Api/AssetFilesController.php new file mode 100644 index 0000000000..f94e8afd83 --- /dev/null +++ b/app/Http/Controllers/Api/AssetFilesController.php @@ -0,0 +1,171 @@ +] + */ +class AssetFilesController extends Controller +{ + /** + * Accepts a POST to upload a file to the server. + * + * @param \App\Http\Requests\UploadFileRequest $request + * @param int $assetId + * @return \Illuminate\Http\JsonResponse + * @throws \Illuminate\Auth\Access\AuthorizationException + * @since [v6.0] + * @author [T. Scarsbrook] [] + */ + public function store(UploadFileRequest $request, $assetId = null) + { + if (! $asset = Asset::find($assetId)) { + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 500); + } + + $this->authorize('update', $asset); + + \Log::warning($request); + #\Log::warning($request['name']); + #\Log::warning($request['filename']); + #\Log::warning($request['contents']); + if ($request->hasFile('file')) { + \Log::warning("So, I am actually getting in here..."); + if (! Storage::exists('private_uploads/assets')) { + Storage::makeDirectory('private_uploads/assets', 775); + } + + \Log::warning("File is"); + \Log::warning($request->file('file')); + \Log::warning("File ends"); + foreach ($request->file('file') as $file) { + \Log::warning("Handling file "); + \Log::warning($file); + $file_name = $request->handleFile('private_uploads/assets/','hardware-'.$asset->id, $file); + + $asset->logUpload($file_name, e($request->get('notes'))); + } + \Log::warning("Done handling"); + #$request->IamAnOrange(); + + return response()->json(Helper::formatStandardApiResponse('success', $asset, trans('admin/hardware/message.upload.success'))); + } + + return response()->json(Helper::formatStandardApiResponse('error', null, "Bad bananas"), 500); + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.upload.nofiles')), 500); + } + + /** + * Check for permissions and display the file. + * + * @param int $assetId + * @param int $fileId + * @return \Illuminate\Http\JsonResponse + * @throws \Illuminate\Auth\Access\AuthorizationException + * @since [v6.0] + * @author [T. Scarsbrook] [] + */ + public function show($assetId = null, $fileId = null) + { + $asset = Asset::find($assetId); + // the asset is valid + if (isset($asset->id)) { + $this->authorize('view', $asset); + + if (! $log = Actionlog::whereNotNull('filename')->where('item_id', $asset->id)->find($fileId)) { + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.no_match', ['id' => $fileId])), 500); + } + + $file = 'private_uploads/assets/'.$log->filename; + \Log::debug('Checking for '.$file); + + if ($log->action_type == 'audit') { + $file = 'private_uploads/audits/'.$log->filename; + } + + if (! Storage::exists($file)) { + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.does_not_exist', ['id' => $fileId])), 404); + } + + if (request('inline') == 'true') { + + $headers = [ + 'Content-Disposition' => 'inline', + ]; + + return Storage::download($file, $log->filename, $headers); + return response()->json(Helper::formatStandardApiResponse('success', $asset, trans('admin/hardware/message.upload.success'))); + } + + return StorageHelper::downloader($file); + } + + // Send back an error message + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.error', ['id' => $fileId])), 500); + } + + /** + * Delete the associated file + * + * @param int $assetId + * @param int $fileId + * @return \Illuminate\Http\JsonResponse + * @throws \Illuminate\Auth\Access\AuthorizationException + * @since [v6.0] + * @author [T. Scarsbrook] [] + */ + public function destroy($assetId = null, $fileId = null) + { + $asset = Asset::find($assetId); + $this->authorize('update', $asset); + $rel_path = 'private_uploads/assets'; + + // the asset is valid + if (isset($asset->id)) { + $this->authorize('update', $asset); + $log = Actionlog::find($fileId); + if ($log) { + if (Storage::exists($rel_path.'/'.$log->filename)) { + Storage::delete($rel_path.'/'.$log->filename); + } + $log->delete(); + + return redirect()->back()->with('success', trans('admin/hardware/message.deletefile.success')); + } + + return redirect()->back()->with('success', trans('admin/hardware/message.deletefile.success')); + } + + // Redirect to the hardware management page + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.deletefile.error')), 500); + } +} diff --git a/app/Http/Requests/UploadFileRequest.php b/app/Http/Requests/UploadFileRequest.php index d91d0bf0b8..4762e52b75 100644 --- a/app/Http/Requests/UploadFileRequest.php +++ b/app/Http/Requests/UploadFileRequest.php @@ -2,12 +2,14 @@ namespace App\Http\Requests; +use App\Http\Traits\ConvertsBase64ToFiles; use enshrined\svgSanitize\Sanitizer; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Log; class UploadFileRequest extends Request { + use ConvertsBase64ToFiles; /** * Determine if the user is authorized to make this request. * diff --git a/resources/lang/en-GB/admin/hardware/message.php b/resources/lang/en-GB/admin/hardware/message.php index 3af3dbc6e3..7185cd8dcf 100644 --- a/resources/lang/en-GB/admin/hardware/message.php +++ b/resources/lang/en-GB/admin/hardware/message.php @@ -51,6 +51,13 @@ return [ 'invalidfiles' => 'One or more of your files is too large or is a filetype that is not allowed. Allowed filetypes are png, gif, jpg, doc, docx, pdf, and txt.', ], + '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', + ], + 'import' => [ 'error' => 'Some items did not import correctly.', 'errorDetail' => 'The following Items were not imported because of errors.', diff --git a/routes/api.php b/routes/api.php index 8adb0af619..0d77aa6b9b 100644 --- a/routes/api.php +++ b/routes/api.php @@ -544,13 +544,22 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi 'restore' ] )->name('api.assets.restore'); + Route::post('{asset_id}/files', + [ + Api\AssetFilesController::class, + 'store' + ] + )->name('api.assets.files'); + + Route::get('{asset_id}/files', + [ + Api\AssetFilesController::class, + 'show' + ] + )->name('api.assets.files'); }); - - - - Route::resource('hardware', Api\AssetsController::class, ['names' => [ From 92670d57119913335e132d384c6ca780e01fb04d Mon Sep 17 00:00:00 2001 From: Scarzy Date: Tue, 30 Apr 2024 22:30:51 +0100 Subject: [PATCH 003/110] Add the ability to list files for an asset --- .../Controllers/Api/AssetFilesController.php | 45 ++++++++++++++----- routes/api.php | 2 +- 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/Api/AssetFilesController.php b/app/Http/Controllers/Api/AssetFilesController.php index f94e8afd83..6198b42bc9 100644 --- a/app/Http/Controllers/Api/AssetFilesController.php +++ b/app/Http/Controllers/Api/AssetFilesController.php @@ -12,6 +12,7 @@ use App\Helpers\Helper; use App\Http\Controllers\Controller; use App\Models\Asset; use App\Models\AssetModel; +use App\Models\Actionlog; use \Illuminate\Support\Facades\Auth; use Carbon\Carbon; use DB; @@ -54,28 +55,16 @@ class AssetFilesController extends Controller $this->authorize('update', $asset); - \Log::warning($request); - #\Log::warning($request['name']); - #\Log::warning($request['filename']); - #\Log::warning($request['contents']); if ($request->hasFile('file')) { - \Log::warning("So, I am actually getting in here..."); if (! Storage::exists('private_uploads/assets')) { Storage::makeDirectory('private_uploads/assets', 775); } - \Log::warning("File is"); - \Log::warning($request->file('file')); - \Log::warning("File ends"); foreach ($request->file('file') as $file) { - \Log::warning("Handling file "); - \Log::warning($file); $file_name = $request->handleFile('private_uploads/assets/','hardware-'.$asset->id, $file); $asset->logUpload($file_name, e($request->get('notes'))); } - \Log::warning("Done handling"); - #$request->IamAnOrange(); return response()->json(Helper::formatStandardApiResponse('success', $asset, trans('admin/hardware/message.upload.success'))); } @@ -84,6 +73,38 @@ class AssetFilesController extends Controller return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.upload.nofiles')), 500); } + /** + * List the files for an asset. + * + * @param int $assetId + * @return \Illuminate\Http\JsonResponse + * @throws \Illuminate\Auth\Access\AuthorizationException + * @since [v6.0] + * @author [T. Scarsbrook] [] + */ + public function list($assetId = null) + { + $asset = Asset::find($assetId); + + // the asset is valid + if (isset($asset->id)) { + $this->authorize('view', $asset); + + if ($asset->uploads->count() > 0) { + $files = array(); + foreach ($asset->uploads as $upload) { + array_push($files, $upload); + } + return response()->json(Helper::formatStandardApiResponse('success', $files, trans('admin/hardware/message.upload.success'))); + } + + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.no_match', ['id' => $fileId])), 500); + } + + // Send back an error message + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.error', ['id' => $fileId])), 500); + } + /** * Check for permissions and display the file. * diff --git a/routes/api.php b/routes/api.php index 0d77aa6b9b..a4486dfc6b 100644 --- a/routes/api.php +++ b/routes/api.php @@ -554,7 +554,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi Route::get('{asset_id}/files', [ Api\AssetFilesController::class, - 'show' + 'list' ] )->name('api.assets.files'); From 194853d860034e9706f9d08361e5d537f7c5913d Mon Sep 17 00:00:00 2001 From: Scarzy Date: Tue, 30 Apr 2024 23:12:28 +0100 Subject: [PATCH 004/110] Remove a redundant line --- app/Http/Controllers/Api/AssetFilesController.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Http/Controllers/Api/AssetFilesController.php b/app/Http/Controllers/Api/AssetFilesController.php index 6198b42bc9..406848f7f0 100644 --- a/app/Http/Controllers/Api/AssetFilesController.php +++ b/app/Http/Controllers/Api/AssetFilesController.php @@ -144,7 +144,6 @@ class AssetFilesController extends Controller ]; return Storage::download($file, $log->filename, $headers); - return response()->json(Helper::formatStandardApiResponse('success', $asset, trans('admin/hardware/message.upload.success'))); } return StorageHelper::downloader($file); From bbb914574491819eb7f62f4f9a0941c906c7dd36 Mon Sep 17 00:00:00 2001 From: Scarzy Date: Tue, 30 Apr 2024 23:12:39 +0100 Subject: [PATCH 005/110] Add an API endpoint to download files --- routes/api.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/routes/api.php b/routes/api.php index a4486dfc6b..bb84f96aeb 100644 --- a/routes/api.php +++ b/routes/api.php @@ -558,6 +558,13 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi ] )->name('api.assets.files'); + Route::get('{asset_id}/file/{file_id}', + [ + Api\AssetFilesController::class, + 'show' + ] + )->name('api.assets.files'); + }); Route::resource('hardware', From f6a1a7609555865851df0edd20b312c1875952f8 Mon Sep 17 00:00:00 2001 From: Scarzy Date: Wed, 1 May 2024 18:46:23 +0100 Subject: [PATCH 006/110] Add an endpoint for deleting a file --- routes/api.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/routes/api.php b/routes/api.php index bb84f96aeb..181c84c1b5 100644 --- a/routes/api.php +++ b/routes/api.php @@ -565,6 +565,13 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi ] )->name('api.assets.files'); + Route::delete('{asset_id}/file/{file_id}', + [ + Api\AssetFilesController::class, + 'destroy' + ] + )->name('api.assets.files'); + }); Route::resource('hardware', From f5791c79a59c1e3cffb07828c864efb014ecf5e0 Mon Sep 17 00:00:00 2001 From: Scarzy Date: Wed, 1 May 2024 18:46:39 +0100 Subject: [PATCH 007/110] Change the returns to be API appropriate --- app/Http/Controllers/Api/AssetFilesController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Api/AssetFilesController.php b/app/Http/Controllers/Api/AssetFilesController.php index 406848f7f0..8c867fe756 100644 --- a/app/Http/Controllers/Api/AssetFilesController.php +++ b/app/Http/Controllers/Api/AssetFilesController.php @@ -179,10 +179,10 @@ class AssetFilesController extends Controller } $log->delete(); - return redirect()->back()->with('success', trans('admin/hardware/message.deletefile.success')); + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.deletefile.success')), 200); } - return redirect()->back()->with('success', trans('admin/hardware/message.deletefile.success')); + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.deletefile.success')), 200); } // Redirect to the hardware management page From 516f766a4443b732e15be73c4e6626b123ed9d90 Mon Sep 17 00:00:00 2001 From: Scarzy Date: Wed, 1 May 2024 18:54:53 +0100 Subject: [PATCH 008/110] Remove some debug code --- app/Http/Controllers/Api/AssetFilesController.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Http/Controllers/Api/AssetFilesController.php b/app/Http/Controllers/Api/AssetFilesController.php index 8c867fe756..6bcac9f679 100644 --- a/app/Http/Controllers/Api/AssetFilesController.php +++ b/app/Http/Controllers/Api/AssetFilesController.php @@ -69,7 +69,6 @@ class AssetFilesController extends Controller return response()->json(Helper::formatStandardApiResponse('success', $asset, trans('admin/hardware/message.upload.success'))); } - return response()->json(Helper::formatStandardApiResponse('error', null, "Bad bananas"), 500); return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.upload.nofiles')), 500); } From e817b20840669bd7d3cae84ba91532883ae51cdf Mon Sep 17 00:00:00 2001 From: Scarzy Date: Wed, 1 May 2024 18:56:49 +0100 Subject: [PATCH 009/110] Fix some responses to be more appropriate Error/success was mixed up --- app/Http/Controllers/Api/AssetFilesController.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Api/AssetFilesController.php b/app/Http/Controllers/Api/AssetFilesController.php index 6bcac9f679..cc2f339d3c 100644 --- a/app/Http/Controllers/Api/AssetFilesController.php +++ b/app/Http/Controllers/Api/AssetFilesController.php @@ -178,13 +178,12 @@ class AssetFilesController extends Controller } $log->delete(); - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.deletefile.success')), 200); + return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/hardware/message.deletefile.success')), 200); } - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.deletefile.success')), 200); + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.deletefile.error')), 500); } - // Redirect to the hardware management page return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.deletefile.error')), 500); } } From f11ea7940687977e4d92259141306ada98a246ee Mon Sep 17 00:00:00 2001 From: Scarzy Date: Wed, 1 May 2024 19:01:33 +0100 Subject: [PATCH 010/110] Add some sanity checks that the asset actually exists --- app/Http/Controllers/Api/AssetFilesController.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Api/AssetFilesController.php b/app/Http/Controllers/Api/AssetFilesController.php index cc2f339d3c..dcacd39535 100644 --- a/app/Http/Controllers/Api/AssetFilesController.php +++ b/app/Http/Controllers/Api/AssetFilesController.php @@ -83,7 +83,9 @@ class AssetFilesController extends Controller */ public function list($assetId = null) { - $asset = Asset::find($assetId); + if (! $asset = Asset::find($assetId)) { + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 500); + } // the asset is valid if (isset($asset->id)) { @@ -116,7 +118,10 @@ class AssetFilesController extends Controller */ public function show($assetId = null, $fileId = null) { - $asset = Asset::find($assetId); + if (! $asset = Asset::find($assetId)) { + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 500); + } + // the asset is valid if (isset($asset->id)) { $this->authorize('view', $asset); @@ -164,8 +169,10 @@ class AssetFilesController extends Controller */ public function destroy($assetId = null, $fileId = null) { - $asset = Asset::find($assetId); - $this->authorize('update', $asset); + if (! $asset = Asset::find($assetId)) { + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 500); + } + $rel_path = 'private_uploads/assets'; // the asset is valid From bb0a614c390666197f37cc197839bdc369202eee Mon Sep 17 00:00:00 2001 From: Scarzy Date: Tue, 7 May 2024 20:58:30 +0100 Subject: [PATCH 011/110] Update some comments --- .../Controllers/Api/AssetFilesController.php | 41 +++++++++++++++---- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/Api/AssetFilesController.php b/app/Http/Controllers/Api/AssetFilesController.php index dcacd39535..53a68f7244 100644 --- a/app/Http/Controllers/Api/AssetFilesController.php +++ b/app/Http/Controllers/Api/AssetFilesController.php @@ -29,11 +29,13 @@ use Route; /** - * This class controls all actions related to assets for - * the Snipe-IT Asset Management application. + * This class controls file related actions related + * to assets for the Snipe-IT Asset Management application. + * + * Based on the Assets/AssetFilesController by A. Gianotto * * @version v1.0 - * @author [A. Gianotto] [] + * @author [T. Scarsbrook] [] */ class AssetFilesController extends Controller { @@ -49,26 +51,32 @@ class AssetFilesController extends Controller */ public function store(UploadFileRequest $request, $assetId = null) { + // Start by checking if the asset being acted upon exists if (! $asset = Asset::find($assetId)) { return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 500); } + // Make sure we are allowed to update this asset $this->authorize('update', $asset); - if ($request->hasFile('file')) { + if ($request->hasFile('file')) { + // If the file storage directory doesn't exist; create it if (! Storage::exists('private_uploads/assets')) { Storage::makeDirectory('private_uploads/assets', 775); } + // Loop over the attached files and add them to the asset foreach ($request->file('file') as $file) { $file_name = $request->handleFile('private_uploads/assets/','hardware-'.$asset->id, $file); $asset->logUpload($file_name, e($request->get('notes'))); } + // All done - report success return response()->json(Helper::formatStandardApiResponse('success', $asset, trans('admin/hardware/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/hardware/message.upload.nofiles')), 500); } @@ -83,6 +91,7 @@ class AssetFilesController extends Controller */ public function list($assetId = null) { + // Start by checking if the asset being acted upon exists if (! $asset = Asset::find($assetId)) { return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 500); } @@ -91,18 +100,21 @@ class AssetFilesController extends Controller if (isset($asset->id)) { $this->authorize('view', $asset); + // Check that there are some uploads on this asset that can be listed if ($asset->uploads->count() > 0) { $files = array(); foreach ($asset->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/hardware/message.upload.success'))); } - + + // There are no files. This possibly isn't the best response for this, but it does get the point across return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.no_match', ['id' => $fileId])), 500); } - // Send back an error message + // return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.error', ['id' => $fileId])), 500); } @@ -118,6 +130,7 @@ class AssetFilesController extends Controller */ public function show($assetId = null, $fileId = null) { + // Start by checking if the asset being acted upon exists if (! $asset = Asset::find($assetId)) { return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 500); } @@ -126,10 +139,12 @@ class AssetFilesController extends Controller if (isset($asset->id)) { $this->authorize('view', $asset); + // Check that the file being requested exists for the asset if (! $log = Actionlog::whereNotNull('filename')->where('item_id', $asset->id)->find($fileId)) { return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.no_match', ['id' => $fileId])), 500); } + // Form the full filename with path $file = 'private_uploads/assets/'.$log->filename; \Log::debug('Checking for '.$file); @@ -137,6 +152,7 @@ class AssetFilesController extends Controller $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/hardware/message.download.does_not_exist', ['id' => $fileId])), 404); } @@ -169,6 +185,7 @@ class AssetFilesController extends Controller */ public function destroy($assetId = null, $fileId = null) { + // Start by checking if the asset being acted upon exists if (! $asset = Asset::find($assetId)) { return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 500); } @@ -178,16 +195,22 @@ class AssetFilesController extends Controller // the asset is valid if (isset($asset->id)) { $this->authorize('update', $asset); + + // Check for the file $log = Actionlog::find($fileId); - if ($log) { + 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/hardware/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/hardware/message.deletefile.error')), 500); } From 73a87a8ea86ad572ddddf9f54d7c0f9de82358e2 Mon Sep 17 00:00:00 2001 From: Scarzy Date: Sat, 18 May 2024 13:04:34 +0100 Subject: [PATCH 012/110] Add the framework of a test --- tests/Feature/Api/AssetFilesTest.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 tests/Feature/Api/AssetFilesTest.php diff --git a/tests/Feature/Api/AssetFilesTest.php b/tests/Feature/Api/AssetFilesTest.php new file mode 100644 index 0000000000..8afda7916a --- /dev/null +++ b/tests/Feature/Api/AssetFilesTest.php @@ -0,0 +1,13 @@ + Date: Sun, 26 May 2024 16:47:30 +0100 Subject: [PATCH 013/110] Fix the test file location --- tests/Feature/Api/{ => Assets}/AssetFilesTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename tests/Feature/Api/{ => Assets}/AssetFilesTest.php (78%) diff --git a/tests/Feature/Api/AssetFilesTest.php b/tests/Feature/Api/Assets/AssetFilesTest.php similarity index 78% rename from tests/Feature/Api/AssetFilesTest.php rename to tests/Feature/Api/Assets/AssetFilesTest.php index 8afda7916a..2f69c31885 100644 --- a/tests/Feature/Api/AssetFilesTest.php +++ b/tests/Feature/Api/Assets/AssetFilesTest.php @@ -1,6 +1,6 @@ Date: Sun, 26 May 2024 19:00:22 +0100 Subject: [PATCH 014/110] Fix some routes Names of some of the routes overlapped with others in an incompatible way. This makes the names more distinct --- routes/api.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routes/api.php b/routes/api.php index 181c84c1b5..1f43af7431 100644 --- a/routes/api.php +++ b/routes/api.php @@ -563,14 +563,14 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi Api\AssetFilesController::class, 'show' ] - )->name('api.assets.files'); + )->name('api.assets.file'); Route::delete('{asset_id}/file/{file_id}', [ Api\AssetFilesController::class, 'destroy' ] - )->name('api.assets.files'); + )->name('api.assets.file'); }); From 45329912e6ce2c56cee4dd54529c94200b97bc40 Mon Sep 17 00:00:00 2001 From: Scarzy Date: Sun, 26 May 2024 19:01:24 +0100 Subject: [PATCH 015/110] Give a better response to listing no files on an asset HTTP500 was never a good choice. Now it sends back an empty array --- app/Http/Controllers/Api/AssetFilesController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Api/AssetFilesController.php b/app/Http/Controllers/Api/AssetFilesController.php index 53a68f7244..2c4adfd0e7 100644 --- a/app/Http/Controllers/Api/AssetFilesController.php +++ b/app/Http/Controllers/Api/AssetFilesController.php @@ -110,8 +110,8 @@ class AssetFilesController extends Controller return response()->json(Helper::formatStandardApiResponse('success', $files, trans('admin/hardware/message.upload.success'))); } - // There are no files. This possibly isn't the best response for this, but it does get the point across - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.no_match', ['id' => $fileId])), 500); + // There are no files. + return response()->json(Helper::formatStandardApiResponse('success', array(), trans('admin/hardware/message.upload.success'))); } // From 2d4af61e6c2aae011fd549d8668d90833de6faac Mon Sep 17 00:00:00 2001 From: Scarzy Date: Mon, 27 May 2024 11:38:30 +0100 Subject: [PATCH 016/110] Begin to add some tests There is currently only really a test for listing, and only for the empty list response --- tests/Feature/Api/Assets/AssetFilesTest.php | 46 ++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/tests/Feature/Api/Assets/AssetFilesTest.php b/tests/Feature/Api/Assets/AssetFilesTest.php index 2f69c31885..af00619287 100644 --- a/tests/Feature/Api/Assets/AssetFilesTest.php +++ b/tests/Feature/Api/Assets/AssetFilesTest.php @@ -3,11 +3,55 @@ namespace Tests\Feature\Api\Assets; use Tests\TestCase; +use App\Models\User; +use App\Models\Asset; class AssetFilesTest extends TestCase { - public function testExample() + public function testAssetApiAcceptsFileUpload() { + // Upload a file to an asset + + // Create an asset to work with + $asset = Asset::factory()->count(1)->create(); // + //// Upload a file + //// Create a superuser to run this as + //$this->actingAsForApi(User::factory()->superuser()->create()) + // ->postJson( + // route('api.asset.files', $asset), [ + // 'file[]' => + } + + public function testAssetApiListsFiles() + { + // List all files on an asset + + // Create an asset to work with + $asset = Asset::factory()->count(1)->create(); + + print($asset); + + // Create a superuser to run this as + $user = User::factory()->superuser()->create(); + $this->actingAsForApi($user) + ->getJson( + route('api.assets.files', ['asset_id' => $asset[0]["id"]])) + ->assertOk() + ->assertJsonStructure([ + 'status', + 'messages', + 'payload', + ]); + } + + public function testAssetApiDownloadsFile() + { + // Download a file from an asset + } + + public function testAssetApiDeletesFile() + { + // Delete a file from an asset } } From 633bcbb6c4217084644013130e1eac6640d8e9e9 Mon Sep 17 00:00:00 2001 From: Scarzy Date: Mon, 27 May 2024 12:50:20 +0100 Subject: [PATCH 017/110] Get the file upload test working Added the upload functionality to the get and delete tests, but I currently don't seem to be able to reference the correct file ID --- tests/Feature/Api/Assets/AssetFilesTest.php | 66 ++++++++++++++++++--- 1 file changed, 57 insertions(+), 9 deletions(-) diff --git a/tests/Feature/Api/Assets/AssetFilesTest.php b/tests/Feature/Api/Assets/AssetFilesTest.php index af00619287..e799ba1a31 100644 --- a/tests/Feature/Api/Assets/AssetFilesTest.php +++ b/tests/Feature/Api/Assets/AssetFilesTest.php @@ -5,6 +5,7 @@ namespace Tests\Feature\Api\Assets; use Tests\TestCase; use App\Models\User; use App\Models\Asset; +use Illuminate\Http\UploadedFile; class AssetFilesTest extends TestCase { @@ -14,13 +15,17 @@ class AssetFilesTest extends TestCase // Create an asset to work with $asset = Asset::factory()->count(1)->create(); - // - //// Upload a file - //// Create a superuser to run this as - //$this->actingAsForApi(User::factory()->superuser()->create()) - // ->postJson( - // route('api.asset.files', $asset), [ - // 'file[]' => + + // Create a superuser to run this as + $user = User::factory()->superuser()->create(); + + //Upload a file + $this->actingAsForApi($user) + ->post( + route('api.assets.files', ['asset_id' => $asset[0]["id"]]), [ + 'file' => [UploadedFile::fake()->create("test.jpg", 100)] + ]) + ->assertOk(); } public function testAssetApiListsFiles() @@ -30,8 +35,6 @@ class AssetFilesTest extends TestCase // Create an asset to work with $asset = Asset::factory()->count(1)->create(); - print($asset); - // Create a superuser to run this as $user = User::factory()->superuser()->create(); $this->actingAsForApi($user) @@ -48,10 +51,55 @@ class AssetFilesTest extends TestCase public function testAssetApiDownloadsFile() { // Download a file from an asset + + // Create an asset to work with + $asset = Asset::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.assets.files', ['asset_id' => $asset[0]["id"]]), [ + 'file' => [UploadedFile::fake()->create("test.jpg", 100)] + ])->assertOk(); + + // Get the file + $this->actingAsForApi($user) + ->get( + route('api.assets.file', [ + 'asset_id' => $asset[0]["id"], + 'file_id' => 1, + ])) + ->assertOk(); } public function testAssetApiDeletesFile() { // Delete a file from an asset + + // Create an asset to work with + $asset = Asset::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.assets.files', ['asset_id' => $asset[0]["id"]]), [ + 'file' => [UploadedFile::fake()->create("test.jpg", 100)] + ]) + ->assertOk(); + + // Delete the file + $this->actingAsForApi($user) + ->delete( + route('api.assets.file', [ + 'asset_id' => $asset[0]["id"], + 'file_id' => 1, + ])) + ->assertOk(); } } From ca9d4e31552b7f3a07543e3cfc6f4df0e2fcc5f8 Mon Sep 17 00:00:00 2001 From: Scarzy Date: Mon, 27 May 2024 13:08:18 +0100 Subject: [PATCH 018/110] Get the tests for download and delete working --- tests/Feature/Api/Assets/AssetFilesTest.php | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/tests/Feature/Api/Assets/AssetFilesTest.php b/tests/Feature/Api/Assets/AssetFilesTest.php index e799ba1a31..2c19d5dc77 100644 --- a/tests/Feature/Api/Assets/AssetFilesTest.php +++ b/tests/Feature/Api/Assets/AssetFilesTest.php @@ -37,6 +37,8 @@ class AssetFilesTest extends TestCase // Create a superuser to run this as $user = User::factory()->superuser()->create(); + + // List the files $this->actingAsForApi($user) ->getJson( route('api.assets.files', ['asset_id' => $asset[0]["id"]])) @@ -63,14 +65,21 @@ class AssetFilesTest extends TestCase ->post( route('api.assets.files', ['asset_id' => $asset[0]["id"]]), [ 'file' => [UploadedFile::fake()->create("test.jpg", 100)] - ])->assertOk(); + ]) + ->assertOk(); + + // List the files to get the file ID + $result = $this->actingAsForApi($user) + ->getJson( + route('api.assets.files', ['asset_id' => $asset[0]["id"]])) + ->assertOk(); // Get the file $this->actingAsForApi($user) ->get( route('api.assets.file', [ 'asset_id' => $asset[0]["id"], - 'file_id' => 1, + 'file_id' => $result->decodeResponseJson()->json()["payload"][0]["id"], ])) ->assertOk(); } @@ -93,12 +102,18 @@ class AssetFilesTest extends TestCase ]) ->assertOk(); + // List the files to get the file ID + $result = $this->actingAsForApi($user) + ->getJson( + route('api.assets.files', ['asset_id' => $asset[0]["id"]])) + ->assertOk(); + // Delete the file $this->actingAsForApi($user) ->delete( route('api.assets.file', [ 'asset_id' => $asset[0]["id"], - 'file_id' => 1, + 'file_id' => $result->decodeResponseJson()->json()["payload"][0]["id"], ])) ->assertOk(); } From 98a94dec29b17f804147f9028e1dda250aa43b45 Mon Sep 17 00:00:00 2001 From: Scarzy Date: Wed, 29 May 2024 22:17:36 +0100 Subject: [PATCH 019/110] Change some errors to be 404 The asset or file was not found, so 500 wasn't the best choice of error code --- app/Http/Controllers/Api/AssetFilesController.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Api/AssetFilesController.php b/app/Http/Controllers/Api/AssetFilesController.php index 2c4adfd0e7..c56e0a7a8c 100644 --- a/app/Http/Controllers/Api/AssetFilesController.php +++ b/app/Http/Controllers/Api/AssetFilesController.php @@ -53,7 +53,7 @@ class AssetFilesController extends Controller { // Start by checking if the asset being acted upon exists if (! $asset = Asset::find($assetId)) { - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 500); + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 404); } // Make sure we are allowed to update this asset @@ -93,7 +93,7 @@ class AssetFilesController extends Controller { // Start by checking if the asset being acted upon exists if (! $asset = Asset::find($assetId)) { - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 500); + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 404); } // the asset is valid @@ -132,7 +132,7 @@ class AssetFilesController extends Controller { // Start by checking if the asset being acted upon exists if (! $asset = Asset::find($assetId)) { - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 500); + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 404); } // the asset is valid @@ -141,7 +141,7 @@ class AssetFilesController extends Controller // Check that the file being requested exists for the asset if (! $log = Actionlog::whereNotNull('filename')->where('item_id', $asset->id)->find($fileId)) { - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.no_match', ['id' => $fileId])), 500); + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.no_match', ['id' => $fileId])), 404); } // Form the full filename with path @@ -187,7 +187,7 @@ class AssetFilesController extends Controller { // Start by checking if the asset being acted upon exists if (! $asset = Asset::find($assetId)) { - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 500); + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 404); } $rel_path = 'private_uploads/assets'; From f48c5ee25242a32abe9379479cc304ca16de1f31 Mon Sep 17 00:00:00 2001 From: Scarzy Date: Wed, 29 May 2024 22:32:45 +0100 Subject: [PATCH 020/110] Fix an error message --- app/Http/Controllers/Api/AssetFilesController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Api/AssetFilesController.php b/app/Http/Controllers/Api/AssetFilesController.php index c56e0a7a8c..d8bc5e3841 100644 --- a/app/Http/Controllers/Api/AssetFilesController.php +++ b/app/Http/Controllers/Api/AssetFilesController.php @@ -114,8 +114,8 @@ class AssetFilesController extends Controller return response()->json(Helper::formatStandardApiResponse('success', array(), trans('admin/hardware/message.upload.success'))); } - // - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.error', ['id' => $fileId])), 500); + // Send back an error message + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.error')), 500); } /** From 404ee238a3f8986e2278413541de55f3902b0761 Mon Sep 17 00:00:00 2001 From: bryanlopezinc Date: Thu, 30 May 2024 14:37:24 +0100 Subject: [PATCH 021/110] Added test for setup page --- tests/Feature/Settings/ShowSetUpPageTest.php | 141 +++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 tests/Feature/Settings/ShowSetUpPageTest.php diff --git a/tests/Feature/Settings/ShowSetUpPageTest.php b/tests/Feature/Settings/ShowSetUpPageTest.php new file mode 100644 index 0000000000..16afae14b4 --- /dev/null +++ b/tests/Feature/Settings/ShowSetUpPageTest.php @@ -0,0 +1,141 @@ +get('/setup'); + } + + public function testView(): void + { + $this->getSetUpPageResponse()->assertOk()->assertViewIs('setup.index'); + } + + public function testWillShowErrorMessageWhenDatabaseConnectionCannotBeEstablished(): void + { + Event::listen(function (QueryExecuted $query) { + if ($query->sql === 'select 2 + 2') { + throw new PDOException("SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO)"); + } + }); + + $this->getSetUpPageResponse()->assertOk(); + + $this->assertSeeDatabaseConnectionErrorMessage(); + } + + protected function assertSeeDatabaseConnectionErrorMessage(bool $shouldSee = true): void + { + $errorMessage = "D'oh! Looks like we can't connect to your database. Please update your database settings in your .env file."; + $successMessage = sprintf('Great work! Connected to %s', DB::connection()->getDatabaseName()); + + if ($shouldSee) { + self::$latestResponse->assertSee($errorMessage, false)->assertDontSee($successMessage, false); + return; + } + + self::$latestResponse->assertSee($successMessage, false)->assertDontSee($errorMessage, false); + } + + public function testWillNotShowErrorMessageWhenDatabaseIsConnected(): void + { + $this->getSetUpPageResponse()->assertOk(); + + $this->assertSeeDatabaseConnectionErrorMessage(false); + } + + public function testWillShowErrorMessageWhenDebugModeIsEnabledAndAppEnvironmentIsSetToProduction(): void + { + config(['app.debug' => true]); + + $this->app->bind('env', fn () => 'production'); + + $this->getSetUpPageResponse()->assertOk(); + + $this->assertSeeDebugModeMisconfigurationErrorMessage(); + } + + protected function assertSeeDebugModeMisconfigurationErrorMessage(bool $shouldSee = true): void + { + $errorMessage = 'Yikes! You should turn off debug mode unless you encounter any issues. Please update your APP_DEBUG settings in your .env file'; + $successMessage = "Awesomesauce. Debug is either turned off, or you're running this in a non-production environment. (Don't forget to turn it off when you're ready to go live.)"; + + if ($shouldSee) { + self::$latestResponse->assertSee($errorMessage, false)->assertDontSee($successMessage, false); + return; + } + + self::$latestResponse->assertSee($successMessage, false)->assertDontSee($errorMessage, false); + } + + public function testWillNotShowErrorWhenDebugModeIsEnabledAndAppEnvironmentIsSetToLocal(): void + { + config(['app.debug' => true]); + + $this->app->bind('env', fn () => 'local'); + + $this->getSetUpPageResponse()->assertOk(); + + $this->assertSeeDebugModeMisconfigurationErrorMessage(false); + } + + public function testWillNotShowErrorWhenDebugModeIsDisabledAndAppEnvironmentIsSetToProduction(): void + { + config(['app.debug' => false]); + + $this->app->bind('env', fn () => 'production'); + + $this->getSetUpPageResponse()->assertOk(); + + $this->assertSeeDebugModeMisconfigurationErrorMessage(false); + } + + public function testWillShowErrorWhenEnvironmentIsLocal(): void + { + $this->app->bind('env', fn () => 'local'); + + $this->getSetUpPageResponse()->assertOk(); + + $this->assertSeeEnvironmentMisconfigurationErrorMessage(); + } + + protected function assertSeeEnvironmentMisconfigurationErrorMessage(bool $shouldSee = true): void + { + $errorMessage = 'Your app is set local instead of production mode.'; + $successMessage = 'Your app is set to production mode. Rock on!'; + + if ($shouldSee) { + self::$latestResponse->assertSee($errorMessage, false)->assertDontSee($successMessage, false); + + return; + } + + self::$latestResponse->assertSee($successMessage, false)->assertDontSee($errorMessage, false); + } + + public function testWillNotShowErrorWhenEnvironmentIsProduction(): void + { + $this->app->bind('env', fn () => 'production'); + + $this->getSetUpPageResponse()->assertOk(); + + $this->assertSeeEnvironmentMisconfigurationErrorMessage(false); + } +} From 623aa58163878afb3fb70e665b7d083c42333647 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 06:57:25 +0100 Subject: [PATCH 022/110] Removed unused statement Signed-off-by: snipe --- app/Models/User.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Models/User.php b/app/Models/User.php index 26bf5bb27f..251d6fd957 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -5,7 +5,6 @@ namespace App\Models; use App\Http\Traits\UniqueUndeletedTrait; use App\Models\Traits\Searchable; use App\Presenters\Presentable; -use Illuminate\Support\Facades\DB; use Illuminate\Auth\Authenticatable; use Illuminate\Auth\Passwords\CanResetPassword; use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract; From 5800e8d8e9dce886c4554bbcec576c5e4af86356 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 06:57:34 +0100 Subject: [PATCH 023/110] Added companyable trait Signed-off-by: snipe --- app/Models/User.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Models/User.php b/app/Models/User.php index 251d6fd957..e2e7f7eeee 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -23,6 +23,7 @@ use Watson\Validating\ValidatingTrait; class User extends SnipeModel implements AuthenticatableContract, AuthorizableContract, CanResetPasswordContract, HasLocalePreference { use HasFactory; + use CompanyableTrait; protected $presenter = \App\Presenters\UserPresenter::class; use SoftDeletes, ValidatingTrait; From 06e9625c64328aa66f6b65b9e8d31f2496f95cb0 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 06:58:07 +0100 Subject: [PATCH 024/110] Use hasUser() to avoid table collisions and infinite loop Signed-off-by: snipe --- app/Models/Company.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/app/Models/Company.php b/app/Models/Company.php index e0e1b8e872..f33992ef74 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -259,7 +259,7 @@ final class Company extends SnipeModel public static function scopeCompanyables($query, $column = 'company_id', $table_name = null) { // If not logged in and hitting this, assume we are on the command line and don't scope?' - if (! static::isFullMultipleCompanySupportEnabled() || (Auth::check() && Auth::user()->isSuperUser()) || (! Auth::check())) { + if (! static::isFullMultipleCompanySupportEnabled() || (Auth::hasUser() && Auth::user()->isSuperUser()) || (! Auth::hasUser())) { return $query; } else { return static::scopeCompanyablesDirectly($query, $column, $table_name); @@ -267,13 +267,16 @@ final class Company extends SnipeModel } /** - * Scoping table queries, determining if a logged in user is part of a company, and only allows + * Scoping table queries, determining if a logged-in user is part of a company, and only allows * that user to see items associated with that company + * + * @see https://github.com/laravel/framework/pull/24518 for info on Auth::hasUser() */ private static function scopeCompanyablesDirectly($query, $column = 'company_id', $table_name = null) { - // Get the company ID of the logged in user, or set it to null if there is no company assicoated with the user - if (Auth::user()) { + + // Get the company ID of the logged-in user, or set it to null if there is no company associated with the user + if (Auth::hasUser()) { $company_id = Auth::user()->company_id; } else { $company_id = null; @@ -285,9 +288,8 @@ final class Company extends SnipeModel // If the column exists in the table, use it to scope the query if (\Schema::hasColumn($query->getModel()->getTable(), $column)) { return $query->where($table.$column, '=', $company_id); - } else { - return $query->join('users as users_comp', 'users_comp.id', 'user_id')->where('users_comp.company_id', '=', $company_id); } + } /** @@ -305,7 +307,7 @@ final class Company extends SnipeModel if (count($companyable_names) == 0) { throw new Exception('No Companyable Children to scope'); - } elseif (! static::isFullMultipleCompanySupportEnabled() || (Auth::check() && Auth::user()->isSuperUser())) { + } elseif (! static::isFullMultipleCompanySupportEnabled() || (Auth::hasUser() && Auth::user()->isSuperUser())) { return $query; } else { $f = function ($q) { From 801e58d52ea7a6c2aef7d907de122cb989de4bfd Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 06:58:15 +0100 Subject: [PATCH 025/110] Removed manual scoping Signed-off-by: snipe --- app/Http/Controllers/Api/UsersController.php | 83 ++++++++++---------- 1 file changed, 40 insertions(+), 43 deletions(-) diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index 5a37c50e1b..bc9b3db5dd 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -13,7 +13,6 @@ use App\Http\Transformers\SelectlistTransformer; use App\Http\Transformers\UsersTransformer; use App\Models\Actionlog; use App\Models\Asset; -use App\Models\Company; use App\Models\License; use App\Models\User; use App\Notifications\CurrentInventory; @@ -285,10 +284,6 @@ class UsersController extends Controller $users = $users->withTrashed(); } - // Apply companyable scope - $users = Company::scopeCompanyables($users); - - // Make sure the offset and limit are actually integers and do not exceed system limits $offset = ($request->input('offset') > $users->count()) ? $users->count() : app('api_offset_value'); $limit = app('api_limit_value'); @@ -321,8 +316,6 @@ class UsersController extends Controller ] )->where('show_in_list', '=', '1'); - $users = Company::scopeCompanyables($users); - if ($request->filled('search')) { $users = $users->where(function ($query) use ($request) { $query->SimpleNameSearch($request->get('search')) @@ -417,9 +410,7 @@ class UsersController extends Controller { $this->authorize('view', User::class); - $user = User::withCount('assets as assets_count', 'licenses as licenses_count', 'accessories as accessories_count', 'consumables as consumables_count', 'managesUsers as manages_users_count', 'managedLocations as manages_locations_count'); - - if ($user = Company::scopeCompanyables($user)->find($id)) { + if ($user = User::withCount('assets as assets_count', 'licenses as licenses_count', 'accessories as accessories_count', 'consumables as consumables_count', 'managesUsers as manages_users_count', 'managedLocations as manages_locations_count')) { $this->authorize('view', $user); return (new UsersTransformer)->transformUser($user); } @@ -442,15 +433,12 @@ class UsersController extends Controller { $this->authorize('update', User::class); - $user = User::findOrFail($id); - $user = Company::scopeCompanyables($user)->find($id); + $user = User::find($id); $this->authorize('update', $user); /** * 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 * */ @@ -529,8 +517,7 @@ class UsersController extends Controller public function destroy($id) { $this->authorize('delete', User::class); - $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed(); - $user = Company::scopeCompanyables($user)->find($id); + $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($id); $this->authorize('delete', $user); if ($user) { @@ -564,9 +551,12 @@ class UsersController extends Controller return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/users/message.success.delete'))); } + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.error.delete'))); + } - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.error.delete'))); + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.user_not_found', compact('id')))); + } /** @@ -582,32 +572,35 @@ class UsersController extends Controller $this->authorize('view', User::class); $this->authorize('view', Asset::class); - $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed(); - $user = Company::scopeCompanyables($user)->find($id); - $this->authorize('view', $user); + if ($user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($id)) { + $this->authorize('view', $user); - $assets = Asset::where('assigned_to', '=', $id)->where('assigned_type', '=', User::class)->with('model'); + $assets = Asset::where('assigned_to', '=', $id)->where('assigned_type', '=', User::class)->with('model'); - // Filter on category ID - if ($request->filled('category_id')) { - $assets = $assets->InCategory($request->input('category_id')); - } - - - // Filter on model ID - if ($request->filled('model_id')) { - - $model_ids = $request->input('model_id'); - if (!is_array($model_ids)) { - $model_ids = array($model_ids); + // Filter on category ID + if ($request->filled('category_id')) { + $assets = $assets->InCategory($request->input('category_id')); } - $assets = $assets->InModelList($model_ids); + + + // Filter on model ID + if ($request->filled('model_id')) { + + $model_ids = $request->input('model_id'); + if (!is_array($model_ids)) { + $model_ids = array($model_ids); + } + $assets = $assets->InModelList($model_ids); + } + + $assets = $assets->get(); + + return (new AssetsTransformer)->transformAssets($assets, $assets->count(), $request); } - $assets = $assets->get(); + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.user_not_found', compact('id')))); - return (new AssetsTransformer)->transformAssets($assets, $assets->count(), $request); } /** @@ -622,17 +615,21 @@ class UsersController extends Controller public function emailAssetList(Request $request, $id) { $this->authorize('update', User::class); - $user = User::findOrFail($id); - $user = Company::scopeCompanyables($user)->find($id); - $this->authorize('update', $user); - if (empty($user->email)) { - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.inventorynotification.error'))); + if ($user = User::find($id)) { + $this->authorize('update', $user); + + if (empty($user->email)) { + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.inventorynotification.error'))); + } + + $user->notify((new CurrentInventory($user))); + return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/users/message.inventorynotification.success'))); } - $user->notify((new CurrentInventory($user))); + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.user_not_found', compact('id')))); - return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/users/message.inventorynotification.success'))); + } /** From c63c17d49ff6434b53bf9199ab8dd1223a17106e Mon Sep 17 00:00:00 2001 From: bryanlopezinc Date: Fri, 31 May 2024 17:33:57 +0100 Subject: [PATCH 026/110] Added test for .env visibility for setup page --- app/Http/Controllers/SettingsController.php | 51 +++++------ tests/Feature/Settings/ShowSetUpPageTest.php | 95 ++++++++++++++++++++ 2 files changed, 118 insertions(+), 28 deletions(-) diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 59bb8f38ca..cbae6a4a53 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -14,6 +14,7 @@ use App\Models\Asset; use App\Models\User; use App\Notifications\FirstAdminNotification; use App\Notifications\MailTest; +use Illuminate\Http\Client\HttpClientException; use Illuminate\Http\Request; use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\Storage; @@ -24,7 +25,9 @@ use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Crypt; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Log; +use Illuminate\Support\Facades\URL; use Illuminate\Support\Facades\Validator; /** @@ -89,20 +92,7 @@ class SettingsController extends Controller $start_settings['php_version_min'] = true; // Curl the .env file to make sure it's not accessible via a browser - $ch = curl_init($protocol.$host.'/.env'); - curl_setopt($ch, CURLOPT_HEADER, true); // we want headers - curl_setopt($ch, CURLOPT_NOBODY, true); // we don't need body - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_TIMEOUT, 10); - $output = curl_exec($ch); - $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); - curl_close($ch); - - if (404 == $httpcode || 403 == $httpcode || 0 == $httpcode) { - $start_settings['env_exposed'] = false; - } else { - $start_settings['env_exposed'] = true; - } + $start_settings['env_exposed'] = $this->dotEnvFileIsExposed(); if (App::Environment('production') && (true == config('app.debug'))) { $start_settings['debug_exposed'] = true; @@ -155,6 +145,25 @@ class SettingsController extends Controller ->with('section', 'Pre-Flight Check'); } + /** + * Determine if the .env file accessible via a browser. + * + * @return bool This method will return true when exceptions (such as curl exception) is thrown. + * Check the log files to see more details about the exception. + */ + protected function dotEnvFileIsExposed() + { + try { + return Http::timeout(10) + ->accept('*/*') + ->get(URL::to('.env')) + ->successful(); + } catch (HttpClientException $e) { + Log::debug($e->getMessage()); + return true; + } + } + /** * Save the first admin user from Setup. * @@ -458,7 +467,6 @@ class SettingsController extends Controller Storage::disk('public')->delete($setting->favicon); $setting->favicon = null; } - } if ($setting->save()) { @@ -966,8 +974,6 @@ class SettingsController extends Controller $setting->ldap_dept = $request->input('ldap_dept'); $setting->ldap_client_tls_cert = $request->input('ldap_client_tls_cert'); $setting->ldap_client_tls_key = $request->input('ldap_client_tls_key'); - - } if ($setting->save()) { @@ -1114,8 +1120,6 @@ class SettingsController extends Controller ]; } - - } } @@ -1209,7 +1213,6 @@ class SettingsController extends Controller } catch (\Exception $e) { Log::debug($e); } - } else { return redirect()->route('settings.backups.index')->with('error', trans('admin/settings/message.backup.file_not_found')); } @@ -1256,15 +1259,10 @@ class SettingsController extends Controller } return redirect()->route('settings.backups.index')->withErrors($validator); - } - } else { return redirect()->route('settings.backups.index')->with('error', trans('general.feature_disabled')); } - - - } /** @@ -1330,7 +1328,6 @@ class SettingsController extends Controller Auth::logout(); return redirect()->route('login')->with('success', 'Your system has been restored. Please login again.'); - } else { return redirect()->route('settings.backups.index')->with('error', trans('admin/settings/message.backup.file_not_found')); } @@ -1358,7 +1355,6 @@ class SettingsController extends Controller } return redirect()->route('settings.index')->with('error', trans('general.purge_not_allowed')); - } /** @@ -1389,7 +1385,6 @@ class SettingsController extends Controller return redirect()->route('settings.index') ->with('output', $output)->with('success', trans('admin/settings/message.purge.success')); - } else { return redirect()->route('settings.purge.index') ->with('error', trans('admin/settings/message.purge.validation_failed')); diff --git a/tests/Feature/Settings/ShowSetUpPageTest.php b/tests/Feature/Settings/ShowSetUpPageTest.php index 16afae14b4..84b6c170e0 100644 --- a/tests/Feature/Settings/ShowSetUpPageTest.php +++ b/tests/Feature/Settings/ShowSetUpPageTest.php @@ -3,14 +3,27 @@ namespace Tests\Feature\Settings; use Illuminate\Database\Events\QueryExecuted; +use Illuminate\Http\Client\ConnectionException; +use Illuminate\Http\Client\Request; +use Illuminate\Http\Client\Response; +use Illuminate\Log\Events\MessageLogged; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Event; +use Illuminate\Support\Facades\Http; +use Illuminate\Support\Facades\URL; use Illuminate\Testing\TestResponse; use PDOException; use Tests\TestCase; class ShowSetUpPageTest extends TestCase { + /** + * We do not want to make actual http request on every test to check .env file + * visibility because that can be really slow especially in some cases where an + * actual server is not running. + */ + protected bool $preventStrayRequest = true; + protected function setUp(): void { parent::setUp(); @@ -20,6 +33,10 @@ class ShowSetUpPageTest extends TestCase protected function getSetUpPageResponse(): TestResponse { + if ($this->preventStrayRequest) { + Http::fake([URL::to('.env') => Http::response(null, 404)]); + } + return $this->get('/setup'); } @@ -138,4 +155,82 @@ class ShowSetUpPageTest extends TestCase $this->assertSeeEnvironmentMisconfigurationErrorMessage(false); } + + public function testWillCheckDotEnvFileVisibility(): void + { + $this->getSetUpPageResponse()->assertOk(); + + Http::assertSent(function (Request $request) { + $this->assertEquals('GET', $request->method()); + $this->assertEquals(URL::to('.env'), $request->url()); + return true; + }); + } + + /** + * @dataProvider willShowErrorWhenDotEnvFileIsAccessibleViaHttpData + */ + public function testWillShowErrorWhenDotEnvFileIsAccessibleViaHttp(int $statusCode): void + { + $this->preventStrayRequest = false; + + Http::fake([URL::to('.env') => Http::response(null, $statusCode)]); + + $this->getSetUpPageResponse()->assertOk(); + + Http::assertSent(function (Request $request, Response $response) use ($statusCode) { + $this->assertEquals($statusCode, $response->status()); + return true; + }); + + $this->assertSeeDotEnvFileExposedErrorMessage(); + } + + public static function willShowErrorWhenDotEnvFileIsAccessibleViaHttpData(): array + { + return collect([200, 202, 204, 206]) + ->mapWithKeys(fn (int $code) => ["StatusCode: {$code}" => [$code]]) + ->all(); + } + + protected function assertSeeDotEnvFileExposedErrorMessage(bool $shouldSee = true): void + { + $errorMessage = "We cannot determine if your config file is exposed to the outside world, so you will have to manually verify this. You don't ever want anyone able to see that file. Ever. Ever ever. An exposed .env file can disclose sensitive data about your system and database."; + $successMessage = "Sweet. It doesn't look like your .env file is exposed to the outside world. (You should double check this in a browser though. You don't ever want anyone able to see that file. Ever. Ever ever.) Click here to check now (This should return a file not found or forbidden error.)"; + + if ($shouldSee) { + self::$latestResponse->assertSee($errorMessage, false)->assertDontSee($successMessage, false); + + return; + } + + self::$latestResponse->assertSee($successMessage, false)->assertDontSee($errorMessage, false); + } + + public function testWillNotShowErrorWhenDotEnvFileIsNotAccessibleViaHttp(): void + { + $this->getSetUpPageResponse()->assertOk(); + + $this->assertSeeDotEnvFileExposedErrorMessage(false); + } + + public function testWillShowErrorWhenDotEnvFileVisibilityCheckRequestFails(): void + { + $this->preventStrayRequest = false; + + Http::fake([URL::to('.env') => fn () => throw new ConnectionException('Some curl error message.')]); + + Event::fake(); + + $this->getSetUpPageResponse()->assertOk(); + + $this->assertSeeDotEnvFileExposedErrorMessage(); + + Event::assertDispatched(function (MessageLogged $event) { + $this->assertEquals('debug', $event->level); + $this->assertEquals('Some curl error message.', $event->message); + + return true; + }); + } } From ca8d478e87e943a9b7c6fb9a23bece463dc7950e Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 18:46:32 +0100 Subject: [PATCH 027/110] Redirect if model is invalid Signed-off-by: snipe --- app/Http/Controllers/Assets/AssetCheckinController.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Assets/AssetCheckinController.php b/app/Http/Controllers/Assets/AssetCheckinController.php index d05822a55f..73f4838a6a 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -12,7 +12,6 @@ use App\Models\CheckoutAcceptance; use App\Models\LicenseSeat; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Facades\Auth; -use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\View; use Illuminate\Support\Facades\Log; @@ -47,6 +46,10 @@ class AssetCheckinController extends Controller return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkin.already_checked_in')); } + if (!$asset->model) { + return redirect()->route('hardware.show', $asset->id)->with('error', trans('admin/hardware/general.model_invalid_fix')); + } + return view('hardware/checkin', compact('asset'))->with('statusLabel_list', Helper::statusLabelList())->with('backto', $backto)->with('table_name', 'Assets'); } @@ -72,6 +75,11 @@ class AssetCheckinController extends Controller if (is_null($target = $asset->assignedTo)) { return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkin.already_checked_in')); } + + if (!$asset->model) { + return redirect()->route('hardware.show', $asset->id)->with('error', trans('admin/hardware/general.model_invalid_fix')); + } + $this->authorize('checkin', $asset); if ($asset->assignedType() == Asset::USER) { From d27613f55c6a4b0de8c509557077bdc838d69b39 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 18:46:41 +0100 Subject: [PATCH 028/110] Updated strings Signed-off-by: snipe --- resources/lang/en-US/admin/hardware/general.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/lang/en-US/admin/hardware/general.php b/resources/lang/en-US/admin/hardware/general.php index f7f8ad4d06..a5244857ae 100644 --- a/resources/lang/en-US/admin/hardware/general.php +++ b/resources/lang/en-US/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Edit Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This asset model is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model this before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Requested', 'not_requestable' => 'Not Requestable', From 0253c2a7561c2644a2974690ab8ab3eabfc9e552 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 18:46:57 +0100 Subject: [PATCH 029/110] Lauout tweaks, warn and disable button if model is invalid Signed-off-by: snipe --- resources/views/hardware/audit.blade.php | 28 +++++++++++++++++++----- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/resources/views/hardware/audit.blade.php b/resources/views/hardware/audit.blade.php index 9713b6fc1e..1192d3cc9f 100644 --- a/resources/views/hardware/audit.blade.php +++ b/resources/views/hardware/audit.blade.php @@ -18,7 +18,7 @@
-
+
{{ Form::open([ @@ -32,15 +32,28 @@
{{csrf_field()}} - @if ($asset->model->name) - + +
{{ Form::label('name', trans('admin/hardware/form.model'), array('class' => 'col-md-3 control-label')) }}
-

{{ $asset->model->name }}

+

+ @if (($asset->model) && ($asset->model->name)) + {{ $asset->model->name }} + @else + + + {{ trans('admin/hardware/general.model_invalid')}} + + {{ trans('admin/hardware/general.model_invalid_fix')}} + + {{ trans('admin/hardware/general.edit') }} + + @endif +

- @endif +
@@ -114,7 +127,10 @@
From 76e664d647f7aa7d0f6471e96aceb7a7f0e87a0a Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 18:47:18 +0100 Subject: [PATCH 030/110] Warn and disable the checkout button if model is invalid Signed-off-by: snipe --- resources/views/hardware/checkin.blade.php | 74 +++++++++++++--------- 1 file changed, 43 insertions(+), 31 deletions(-) diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index debfdef91c..9bd88f3f4f 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -16,50 +16,56 @@ -
+
-
-
-
-

{{ trans('admin/hardware/form.tag') }} {{ $asset->asset_tag }}

+
+
+
+

+ {{ trans('admin/hardware/form.tag') }} + {{ $asset->asset_tag }} +

-
-
- @if ($backto=='user') +
+
+ + @if ($backto == 'user') +
+ @else - @else - - @endif + action="{{ route('hardware.checkin.store', array('assetId'=> $asset->id)) }}" autocomplete="off"> + @endif {{csrf_field()}}
{{ Form::label('model', trans('admin/hardware/form.model'), array('class' => 'col-md-3 control-label')) }}
+

@if (($asset->model) && ($asset->model->name)) {{ $asset->model->name }} - @else - {{ trans('admin/hardware/general.model_invalid')}} - {{ trans('admin/hardware/general.model_invalid_fix')}} + + {{ trans('admin/hardware/general.model_invalid')}} + + {{ trans('admin/hardware/general.model_invalid_fix')}} + + {{ trans('admin/hardware/general.edit') }} + @endif

+
-
{{ Form::label('name', trans('admin/hardware/form.name'), array('class' => 'col-md-3 control-label')) }}
- + {!! $errors->first('name', '') !!}
@@ -67,7 +73,7 @@
{{ Form::label('status_id', trans('admin/hardware/form.status'), array('class' => 'col-md-3 control-label')) }} -
+
{{ Form::select('status_id', $statusLabel_list, '', array('class'=>'select2', 'style'=>'width:100%','id' =>'modal-statuslabel_types', 'aria-label'=>'status_id')) }} {!! $errors->first('status_id', '') !!}
@@ -77,7 +83,9 @@
+ {{ Form::label('checkin_at', trans('admin/hardware/form.checkin_date'), array('class' => 'col-md-3 control-label')) }} +
@@ -89,25 +97,29 @@
-
- {{ Form::label('note', trans('admin/hardware/form.notes'), array('class' => 'col-md-3 control-label')) }} -
- + {!! $errors->first('note', '') !!}
- @include ('partials.forms.redirect_submit_options', ['route' => 'hardware.index', 'table_name' => $table_name, 'type'=> $asset->model->name, 'checkin' => true]) - -
-
+
+
-
+ @include ('partials.forms.redirect_submit_options', + [ + 'route' => 'hardware.index', + 'table_name' => $table_name, + 'type'=> ($asset->model ? $asset->model->name : trans('general.asset_model')), + 'checkin' => true + ]) + + +
+ @stop \ No newline at end of file From b936591240e765a9f67790b708eec3a5a8f3367b Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 18:47:34 +0100 Subject: [PATCH 031/110] Warn and disable on checkout if model is invalid Signed-off-by: snipe --- resources/views/hardware/checkout.blade.php | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/resources/views/hardware/checkout.blade.php b/resources/views/hardware/checkout.blade.php index bb02992819..0ca83fe21f 100755 --- a/resources/views/hardware/checkout.blade.php +++ b/resources/views/hardware/checkout.blade.php @@ -36,7 +36,8 @@
@endif - + +
{{ Form::label('model', trans('admin/hardware/form.model'), array('class' => 'col-md-3 control-label')) }}
@@ -45,8 +46,13 @@ {{ $asset->model->name }} @else - {{ trans('admin/hardware/general.model_invalid')}} - {{ trans('admin/hardware/general.model_invalid_fix')}} + + {{ trans('admin/hardware/general.model_invalid')}} + + {{ trans('admin/hardware/general.model_invalid_fix')}} + + {{ trans('admin/hardware/general.edit') }} + @endif

@@ -141,7 +147,13 @@ @endif
- @include ('partials.forms.redirect_submit_options', ['route' => 'hardware.index', 'table_name' => $table_name, 'type'=> $asset->model->name, 'checkin' => false]) + @include ('partials.forms.redirect_submit_options', + [ + 'route' => 'hardware.index', + 'table_name' => $table_name, + 'type'=> ($asset->model ? $asset->model->name : trans('general.asset_model')), + 'checkin' => false + ])
From 8c5249ba4b725b94afd4fb9254eb9549760d1a6f Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 18:47:53 +0100 Subject: [PATCH 032/110] Disable buttons on view page if model is invalid Signed-off-by: snipe --- resources/views/hardware/view.blade.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index 4eeea43137..9a5e8ba1c1 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -895,7 +895,7 @@ @if (($asset->assigned_to != '') && ($asset->deleted_at=='')) @can('checkin', \App\Models\Asset::class) @@ -903,7 +903,7 @@ @elseif (($asset->assigned_to == '') && ($asset->deleted_at=='')) @can('checkout', \App\Models\Asset::class) @@ -915,7 +915,7 @@ @can('update', $asset) @if ($asset->deleted_at=='') @@ -924,7 +924,7 @@ @can('create', $asset) @@ -932,7 +932,7 @@ @can('audit', \App\Models\Asset::class) @@ -941,12 +941,13 @@ @can('delete', $asset)
@if ($asset->deleted_at=='') - + {{ trans('general.delete') }} @else
@csrf - +
@endif
From 4a1b1675cb0dcac0465991683dfc8330ad07b3af Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 18:48:09 +0100 Subject: [PATCH 033/110] Use storage helper Signed-off-by: snipe --- resources/views/notifications.blade.php | 28 ++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/resources/views/notifications.blade.php b/resources/views/notifications.blade.php index 0205e3e10f..a64436f68d 100755 --- a/resources/views/notifications.blade.php +++ b/resources/views/notifications.blade.php @@ -11,7 +11,7 @@ @endif -@if ($message = Session::get('status')) +@if ($message = session()->get('status'))
@@ -23,7 +23,7 @@ @endif -@if ($message = Session::get('success')) +@if ($message = session()->get('success'))
@@ -35,7 +35,7 @@ @endif -@if ($message = Session::get('success-unescaped')) +@if ($message = session()->get('success-unescaped'))
@@ -47,7 +47,7 @@ @endif -@if ($assets = Session::get('assets')) +@if ($assets = session()->get('assets')) @foreach ($assets as $asset)
@@ -62,9 +62,9 @@
  • {{ trans('general.asset_name') }} {{ $asset->model->name }}
  • @endisset
  • {{ trans('general.asset_tag') }} {{ $asset->asset_tag }}
  • - @isset ($asset->notes) -
  • {{ trans('general.notes') }} {{ $asset->notes }}
  • - @endisset + @isset ($asset->notes) +
  • {{ trans('general.notes') }} {{ $asset->notes }}
  • + @endisset
    @@ -73,7 +73,7 @@ @endif -@if ($consumables = Session::get('consumables')) +@if ($consumables = session()->get('consumables')) @foreach ($consumables as $consumable)
    @@ -87,7 +87,7 @@ @endif -@if ($accessories = Session::get('accessories')) +@if ($accessories = session()->get('accessories')) @foreach ($accessories as $accessory)
    @@ -101,7 +101,7 @@ @endif -@if ($message = Session::get('error')) +@if ($message = session()->get('error'))
    @@ -113,7 +113,7 @@ @endif -@if ($messages = Session::get('error_messages')) +@if ($messages = session()->get('error_messages')) @foreach ($messages as $message)
    @@ -127,7 +127,7 @@ @endif -@if ($messages = Session::get('bulk_asset_errors')) +@if ($messages = session()->get('bulk_asset_errors'))
    @@ -146,7 +146,7 @@ @endif -@if ($message = Session::get('warning')) +@if ($message = session()->get('warning'))
    @@ -158,7 +158,7 @@ @endif -@if ($message = Session::get('info')) +@if ($message = session()->get('info'))
    From 1d97d95c101cdcaf22e3e4947596d63d630af3ad Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 18:48:34 +0100 Subject: [PATCH 034/110] UI and styling tweaks Signed-off-by: snipe --- .../forms/redirect_submit_options.blade.php | 43 +++++++++++++++---- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/resources/views/partials/forms/redirect_submit_options.blade.php b/resources/views/partials/forms/redirect_submit_options.blade.php index 979bc5403c..0c89f587bd 100644 --- a/resources/views/partials/forms/redirect_submit_options.blade.php +++ b/resources/views/partials/forms/redirect_submit_options.blade.php @@ -1,11 +1,36 @@ + + + \ No newline at end of file From cf45e7536f66f4001310d7ea36db5efaeb5ba034 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 18:51:58 +0100 Subject: [PATCH 035/110] Redirect with error if model is invalid Signed-off-by: snipe --- .../Controllers/Assets/AssetCheckoutController.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/Http/Controllers/Assets/AssetCheckoutController.php b/app/Http/Controllers/Assets/AssetCheckoutController.php index 0cbbb79b6c..912f6d57a3 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -34,12 +34,17 @@ class AssetCheckoutController extends Controller $this->authorize('checkout', $asset); + if (!$asset->model) { + return redirect()->route('hardware.show', $asset->id)->with('error', trans('admin/hardware/general.model_invalid_fix')); + } + if ($asset->availableForCheckout()) { return view('hardware/checkout', compact('asset')) ->with('statusLabel_list', Helper::deployableStatusLabelList()) ->with('table_name', 'Assets'); } + return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkout.not_available')); } @@ -62,6 +67,11 @@ class AssetCheckoutController extends Controller return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkout.not_available')); } $this->authorize('checkout', $asset); + + if (!$asset->model) { + return redirect()->route('hardware.show', $asset->id)->with('error', trans('admin/hardware/general.model_invalid_fix')); + } + $admin = Auth::user(); $target = $this->determineCheckoutTarget(); From 3005565bbae63efd64fa46418bb76d8c41977756 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 19:29:12 +0100 Subject: [PATCH 036/110] Slight tweak to language Signed-off-by: snipe --- resources/lang/en-US/admin/hardware/general.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/lang/en-US/admin/hardware/general.php b/resources/lang/en-US/admin/hardware/general.php index a5244857ae..e1472e709c 100644 --- a/resources/lang/en-US/admin/hardware/general.php +++ b/resources/lang/en-US/admin/hardware/general.php @@ -15,7 +15,7 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Edit Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'This asset model is invalid.', + 'model_invalid' => 'This model for this asset is invalid.', 'model_invalid_fix' => 'The asset must be updated use a valid asset model this before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Requested', From a15ed6eaee1283628c2b699dfa28a056b2322d00 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 19:29:29 +0100 Subject: [PATCH 037/110] Wrap disabled links in a span for tooltips Signed-off-by: snipe --- .../Assets/AssetCheckoutController.php | 2 +- resources/views/hardware/checkout.blade.php | 7 ++++--- resources/views/hardware/view.blade.php | 16 +++++++++++----- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/Assets/AssetCheckoutController.php b/app/Http/Controllers/Assets/AssetCheckoutController.php index 912f6d57a3..36f00f0fc6 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -71,7 +71,7 @@ class AssetCheckoutController extends Controller if (!$asset->model) { return redirect()->route('hardware.show', $asset->id)->with('error', trans('admin/hardware/general.model_invalid_fix')); } - + $admin = Auth::user(); $target = $this->determineCheckoutTarget(); diff --git a/resources/views/hardware/checkout.blade.php b/resources/views/hardware/checkout.blade.php index 0ca83fe21f..30e6e670a4 100755 --- a/resources/views/hardware/checkout.blade.php +++ b/resources/views/hardware/checkout.blade.php @@ -46,9 +46,10 @@ {{ $asset->model->name }} @else - - {{ trans('admin/hardware/general.model_invalid')}} - + + {{ trans('admin/hardware/general.model_invalid')}} + + {{ trans('admin/hardware/general.model_invalid_fix')}} {{ trans('admin/hardware/general.edit') }} diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index 9a5e8ba1c1..a9159c4fa3 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -867,7 +867,7 @@ 'id' => 'bulkForm']) }} - + {{ Form::close() }} @@ -895,17 +895,21 @@ @if (($asset->assigned_to != '') && ($asset->deleted_at=='')) @can('checkin', \App\Models\Asset::class) @endcan @elseif (($asset->assigned_to == '') && ($asset->deleted_at=='')) @can('checkout', \App\Models\Asset::class) @endcan @endif @@ -932,9 +936,11 @@ @can('audit', \App\Models\Asset::class) @endcan From dd0a16c3d5372df03d2fac8bf07e0493ad6f2d30 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 20:42:32 +0100 Subject: [PATCH 038/110] Added tests Signed-off-by: snipe --- tests/Feature/Checkins/AssetCheckinTest.php | 37 +++++++++++++++++++ tests/Feature/Checkouts/AssetCheckoutTest.php | 31 ++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/tests/Feature/Checkins/AssetCheckinTest.php b/tests/Feature/Checkins/AssetCheckinTest.php index 7734d4831d..1ccbbfaa01 100644 --- a/tests/Feature/Checkins/AssetCheckinTest.php +++ b/tests/Feature/Checkins/AssetCheckinTest.php @@ -28,6 +28,16 @@ class AssetCheckinTest extends TestCase { $this->actingAs(User::factory()->checkinAssets()->create()) ->post(route('hardware.checkin.store', ['assetId' => Asset::factory()->create()->id])) + ->assertStatus(302) + ->assertSessionHas('error') + ->assertRedirect(route('hardware.index')); + } + + public function testCannotStoreAssetCheckinThatIsNotCheckedOut() + { + $this->actingAs(User::factory()->checkinAssets()->create()) + ->get(route('hardware.checkin.store', ['assetId' => Asset::factory()->create()->id])) + ->assertStatus(302) ->assertSessionHas('error') ->assertRedirect(route('hardware.index')); } @@ -159,4 +169,31 @@ class AssetCheckinTest extends TestCase return $event->action_date === '2023-01-02' && $event->note === 'hello'; }, 1); } + + public function testAssetCheckinPageIsRedirectedIfModelIsInvalid() + { + + $asset = Asset::factory()->assignedToUser()->create(); + $asset->model_id = 0; + $asset->forceSave(); + + $this->actingAs(User::factory()->admin()->create()) + ->get(route('hardware.checkin.create', ['assetId' => $asset->id])) + ->assertStatus(302) + ->assertSessionHas('error') + ->assertRedirect(route('hardware.show',['hardware' => $asset->id])); + } + + public function testAssetCheckinPagePostIsRedirectedIfModelIsInvalid() + { + $asset = Asset::factory()->assignedToUser()->create(); + $asset->model_id = 0; + $asset->forceSave(); + + $this->actingAs(User::factory()->admin()->create()) + ->post(route('hardware.checkin.store', ['assetId' => $asset->id])) + ->assertStatus(302) + ->assertSessionHas('error') + ->assertRedirect(route('hardware.show', ['hardware' => $asset->id])); + } } diff --git a/tests/Feature/Checkouts/AssetCheckoutTest.php b/tests/Feature/Checkouts/AssetCheckoutTest.php index fd0408b452..6dcff789f0 100644 --- a/tests/Feature/Checkouts/AssetCheckoutTest.php +++ b/tests/Feature/Checkouts/AssetCheckoutTest.php @@ -236,4 +236,35 @@ class AssetCheckoutTest extends TestCase $this->assertTrue(Carbon::parse($asset->last_checkout)->diffInSeconds(now()) < 2); } + + public function testAssetCheckoutPageIsRedirectedIfModelIsInvalid() + { + + $asset = Asset::factory()->create(); + $asset->model_id = 0; + $asset->forceSave(); + + $this->actingAs(User::factory()->admin()->create()) + ->get(route('hardware.checkout.create', ['assetId' => $asset->id])) + ->assertStatus(302) + ->assertSessionHas('error') + ->assertRedirect(route('hardware.show',['hardware' => $asset->id])); + } + + public function testAssetCheckoutPagePostIsRedirectedIfModelIsInvalid() + { + $asset = Asset::factory()->create(); + $asset->model_id = 0; + $asset->forceSave(); + $user = User::factory()->create(); + + $this->actingAs(User::factory()->admin()->create()) + ->post(route('hardware.checkout.store', $asset), [ + 'checkout_to_type' => 'user', + 'assigned_user' => $user->id, + ]) + ->assertStatus(302) + ->assertSessionHas('error') + ->assertRedirect(route('hardware.show', ['hardware' => $asset->id])); + } } From 3f9a80942e9956d80a53a33c12a48d369a675d62 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 23:10:23 +0100 Subject: [PATCH 039/110] Removed manual companyable from non-API views Signed-off-by: snipe --- .../Controllers/Users/UsersController.php | 38 +++++++------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 9624753b16..191792cfce 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -181,8 +181,7 @@ class UsersController extends Controller { $this->authorize('update', User::class); - $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed(); - $user = Company::scopeCompanyables($user)->find($id); + $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($id); if ($user) { @@ -228,9 +227,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(); - $user = Company::scopeCompanyables($user)->find($id); + $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->find($id)->withTrashed(); // User is valid - continue... if ($user) { @@ -337,9 +334,8 @@ class UsersController extends Controller { $this->authorize('delete', User::class); - $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed(); - $user = Company::scopeCompanyables($user)->find($id); + $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($id); if ($user) { // Check if we are not trying to delete ourselves @@ -439,8 +435,7 @@ class UsersController extends Controller // Make sure the user can view users at all $this->authorize('view', User::class); - $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed(); - $user = Company::scopeCompanyables($user)->find($userId); + $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($userId); // Make sure they can view this particular user $this->authorize('view', $user); @@ -475,9 +470,7 @@ class UsersController extends Controller app('request')->request->set('permissions', $permissions); - $user_to_clone = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed(); - $user_to_clone = Company::scopeCompanyables($user_to_clone)->find($id); - + $user_to_clone = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($id); // Make sure they can view this particular user $this->authorize('view', $user_to_clone); @@ -541,10 +534,7 @@ class UsersController extends Controller 'groups', 'userloc', 'company' - )->orderBy('created_at', 'DESC'); - - // FMCS scoping - Company::scopeCompanyables($users) + )->orderBy('created_at', 'DESC') ->chunk(500, function ($users) use ($handle) { $headers = [ // strtolower to prevent Excel from trying to open it as a SYLK file @@ -638,20 +628,20 @@ class UsersController extends Controller public function printInventory($id) { $this->authorize('view', User::class); - $show_user = Company::scopeCompanyables(User::where('id', $id)->withTrashed()->first()); + $user = User::where('id', $id)->withTrashed()->first(); // Make sure they can view this particular user - $this->authorize('view', $show_user); + $this->authorize('view', $user); $assets = Asset::where('assigned_to', $id)->where('assigned_type', User::class)->with('model', 'model.category')->get(); - $accessories = $show_user->accessories()->get(); - $consumables = $show_user->consumables()->get(); + $accessories = $user->accessories()->get(); + $consumables = $user->consumables()->get(); return view('users/print')->with('assets', $assets) - ->with('licenses', $show_user->licenses()->get()) + ->with('licenses', $user->licenses()->get()) ->with('accessories', $accessories) ->with('consumables', $consumables) - ->with('show_user', $show_user) + ->with('show_user', $user) ->with('settings', Setting::getSettings()); } @@ -667,7 +657,7 @@ class UsersController extends Controller { $this->authorize('view', User::class); - $user = Company::scopeCompanyables(User::find($id)); + $user = User::find($id); // Make sure they can view this particular user $this->authorize('view', $user); @@ -695,7 +685,7 @@ class UsersController extends Controller */ public function sendPasswordReset($id) { - if (($user = Company::scopeCompanyables(User::find($id))) && ($user->activated == '1') && ($user->email != '') && ($user->ldap_import == '0')) { + if (($user = User::find($id)) && ($user->activated == '1') && ($user->email != '') && ($user->ldap_import == '0')) { $credentials = ['email' => trim($user->email)]; try { From b1562646848e479b0f8037757bcee79c782167d6 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 23:10:53 +0100 Subject: [PATCH 040/110] Tidied up scoping to be better for testing Signed-off-by: snipe --- app/Models/Company.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/Models/Company.php b/app/Models/Company.php index f33992ef74..ea8a28b7e1 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -5,11 +5,11 @@ namespace App\Models; use App\Models\Traits\Searchable; use App\Presenters\Presentable; use Illuminate\Support\Facades\Auth; -use Illuminate\Support\Facades\DB; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Support\Facades\Gate; use Watson\Validating\ValidatingTrait; use Illuminate\Support\Facades\Log; +use Illuminate\Support\Facades\Schema; /** * Model for Companies. * @@ -147,7 +147,7 @@ final class Company extends SnipeModel // This is primary for the gate:allows-check in location->isDeletable() // Locations don't have a company_id so without this it isn't possible to delete locations with FullMultipleCompanySupport enabled // because this function is called by SnipePermissionsPolicy->before() - if (!$companyable instanceof Company && !\Schema::hasColumn($company_table, 'company_id')) { + if (!$companyable instanceof Company && !Schema::hasColumn($company_table, 'company_id')) { return true; } @@ -282,11 +282,13 @@ final class Company extends SnipeModel $company_id = null; } - // Dynamically get the table name if it's not passed in, based on the model we're querying against - $table = ($table_name) ? $table_name."." : $query->getModel()->getTable()."."; // If the column exists in the table, use it to scope the query - if (\Schema::hasColumn($query->getModel()->getTable(), $column)) { + if ((($query) && ($query->getModel()) && (Schema::hasColumn($query->getModel()->getTable(), $column)))) { + + // Dynamically get the table name if it's not passed in, based on the model we're querying against + $table = ($table_name) ? $table_name."." : $query->getModel()->getTable()."."; + return $query->where($table.$column, '=', $company_id); } From f7687008b78228e0b4a9c4965b32ee089e70ee3a Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 23:10:59 +0100 Subject: [PATCH 041/110] Added more tests Signed-off-by: snipe --- tests/Feature/Users/ViewUserTest.php | 106 +++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 tests/Feature/Users/ViewUserTest.php diff --git a/tests/Feature/Users/ViewUserTest.php b/tests/Feature/Users/ViewUserTest.php new file mode 100644 index 0000000000..9d7bbeb15d --- /dev/null +++ b/tests/Feature/Users/ViewUserTest.php @@ -0,0 +1,106 @@ +settings->enableMultipleFullCompanySupport(); + + [$companyA, $companyB] = Company::factory()->count(2)->create(); + + $superuser = User::factory()->superuser()->create(); + $user = User::factory()->for($companyB)->create(); + + $this->actingAs(User::factory()->editUsers()->for($companyA)->create()) + ->get(route('users.show', ['user' => $user->id])) + ->assertStatus(403); + + $this->actingAs($superuser) + ->get(route('users.show', ['user' => $user->id])) + ->assertOk() + ->assertStatus(200); + } + + public function testUserWithoutPermissionsCannotViewPrintAllInventoryPage() + { + $this->settings->enableMultipleFullCompanySupport(); + //$this->withoutExceptionHandling(); + + [$companyA, $companyB] = Company::factory()->count(2)->create(); + + $superuser = User::factory()->superuser()->create(); + $user = User::factory()->for($companyB)->create(); + + $this->actingAs(User::factory()->viewUsers()->for($companyA)->create()) + ->get(route('users.print', ['userId' => $user->id])) + ->assertStatus(403); + + $this->actingAs(User::factory()->viewUsers()->for($companyB)->create()) + ->get(route('users.print', ['userId' => $user->id])) + ->assertStatus(200); + + $this->actingAs($superuser) + ->get(route('users.print', ['userId' => $user->id])) + ->assertOk() + ->assertStatus(200); + } + + public function testUserWithhoutPermissionsCannotSendInventory() + { + Notification::fake(); + + $this->settings->enableMultipleFullCompanySupport(); + + [$companyA, $companyB] = Company::factory()->count(2)->create(); + + $superuser = User::factory()->superuser()->create(); + $user = User::factory()->for($companyB)->create(); + + $this->actingAs(User::factory()->viewUsers()->for($companyA)->create()) + ->post(route('users.email', ['userId' => $user->id])) + ->assertStatus(403); + + $this->actingAs(User::factory()->viewUsers()->for($companyB)->create()) + ->post(route('users.email', ['userId' => $user->id])) + ->assertStatus(302); + + $this->actingAs($superuser) + ->post(route('users.email', ['userId' => $user->id])) + ->assertStatus(302); + + Notification::assertSentTo( + [$user], CurrentInventory::class + ); + } + + public function testUserWithhoutPermissionsCannotDeleteUser() + { + + $this->settings->enableMultipleFullCompanySupport(); + + [$companyA, $companyB] = Company::factory()->count(2)->create(); + + $superuser = User::factory()->superuser()->create(); + $userFromA = User::factory()->for($companyA)->create(); + $userFromB = User::factory()->for($companyB)->create(); + + $this->followingRedirects()->actingAs(User::factory()->deleteUsers()->for($companyA)->create()) + ->delete(route('users.destroy', ['user' => $userFromB->id])) + ->assertStatus(403); + + $this->actingAs(User::factory()->deleteUsers()->for($companyA)->create()) + ->delete(route('users.destroy', ['user' => $userFromA->id])) + ->assertStatus(302) + ->assertRedirect(route('users.index')); + + } + +} From abcfe2b7574021cb99ea3d5d471392733758cde0 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 23:12:13 +0100 Subject: [PATCH 042/110] Derp. Spelling. Signed-off-by: snipe --- tests/Feature/Users/ViewUserTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Feature/Users/ViewUserTest.php b/tests/Feature/Users/ViewUserTest.php index 9d7bbeb15d..2f15b26a6c 100644 --- a/tests/Feature/Users/ViewUserTest.php +++ b/tests/Feature/Users/ViewUserTest.php @@ -53,7 +53,7 @@ class ViewUserTest extends TestCase ->assertStatus(200); } - public function testUserWithhoutPermissionsCannotSendInventory() + public function testUserWithoutPermissionsCannotSendInventory() { Notification::fake(); @@ -81,7 +81,7 @@ class ViewUserTest extends TestCase ); } - public function testUserWithhoutPermissionsCannotDeleteUser() + public function testUserWithoutPermissionsCannotDeleteUser() { $this->settings->enableMultipleFullCompanySupport(); From 32c367090b6de7b45897e1b220ac2f63ff6a42c3 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 23:13:27 +0100 Subject: [PATCH 043/110] Updated test names Signed-off-by: snipe --- tests/Feature/Users/ViewUserTest.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/Feature/Users/ViewUserTest.php b/tests/Feature/Users/ViewUserTest.php index 2f15b26a6c..522eff8421 100644 --- a/tests/Feature/Users/ViewUserTest.php +++ b/tests/Feature/Users/ViewUserTest.php @@ -10,7 +10,7 @@ use App\Notifications\CurrentInventory; class ViewUserTest extends TestCase { - public function testUserWithoutPermissionsCannotViewUserDetailPage() + public function testUserWithoutCompanyPermissionsCannotViewUserDetailPage() { $this->settings->enableMultipleFullCompanySupport(); @@ -29,7 +29,7 @@ class ViewUserTest extends TestCase ->assertStatus(200); } - public function testUserWithoutPermissionsCannotViewPrintAllInventoryPage() + public function testUserWithoutCompanyPermissionsCannotViewPrintAllInventoryPage() { $this->settings->enableMultipleFullCompanySupport(); //$this->withoutExceptionHandling(); @@ -53,7 +53,7 @@ class ViewUserTest extends TestCase ->assertStatus(200); } - public function testUserWithoutPermissionsCannotSendInventory() + public function testUserWithoutCompanyPermissionsCannotSendInventory() { Notification::fake(); @@ -81,7 +81,7 @@ class ViewUserTest extends TestCase ); } - public function testUserWithoutPermissionsCannotDeleteUser() + public function testUserWithoutCompanyPermissionsCannotDeleteUser() { $this->settings->enableMultipleFullCompanySupport(); From 694e3b7f3a1ecfcf3cc31d721f73843bb6f4eb08 Mon Sep 17 00:00:00 2001 From: snipe Date: Sat, 1 Jun 2024 00:42:16 +0100 Subject: [PATCH 044/110] Fixed typo Signed-off-by: snipe --- resources/lang/en-US/admin/hardware/general.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/lang/en-US/admin/hardware/general.php b/resources/lang/en-US/admin/hardware/general.php index e1472e709c..34ac4e63ee 100644 --- a/resources/lang/en-US/admin/hardware/general.php +++ b/resources/lang/en-US/admin/hardware/general.php @@ -16,7 +16,7 @@ return [ 'edit' => 'Edit Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', 'model_invalid' => 'This model for this asset is invalid.', - 'model_invalid_fix' => 'The asset must be updated use a valid asset model this before attempting to check it in or out, or to audit it.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Requested', 'not_requestable' => 'Not Requestable', From c09e93e288afe4bf553102be5d98b6c41e8358b3 Mon Sep 17 00:00:00 2001 From: snipe Date: Sat, 1 Jun 2024 02:59:04 +0100 Subject: [PATCH 045/110] Updated delete users API tests, moved non-API tests Signed-off-by: snipe --- tests/Feature/Api/Users/DeleteUsersTest.php | 69 +++++++++++++++++++ .../DeleteUsersTest.php} | 4 +- 2 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 tests/Feature/Api/Users/DeleteUsersTest.php rename tests/Feature/{Api/Users/UsersDeleteTest.php => Users/DeleteUsersTest.php} (95%) diff --git a/tests/Feature/Api/Users/DeleteUsersTest.php b/tests/Feature/Api/Users/DeleteUsersTest.php new file mode 100644 index 0000000000..830008d0bc --- /dev/null +++ b/tests/Feature/Api/Users/DeleteUsersTest.php @@ -0,0 +1,69 @@ +create(); + User::factory()->count(5)->create(['manager_id' => $manager->id]); + $this->assertFalse($manager->isDeletable()); + + $this->actingAsForApi(User::factory()->deleteUsers()->create()) + ->deleteJson(route('api.users.destroy', $manager->id)) + ->assertOk() + ->assertStatus(200) + ->assertStatusMessageIs('error') + ->json(); + } + + public function testDisallowUserDeletionViaApiIfStillManagingLocations() + { + $manager = User::factory()->create(); + Location::factory()->count(5)->create(['manager_id' => $manager->id]); + + $this->assertFalse($manager->isDeletable()); + + $this->actingAsForApi(User::factory()->deleteUsers()->create()) + ->deleteJson(route('api.users.destroy', $manager->id)) + ->assertOk() + ->assertStatus(200) + ->assertStatusMessageIs('error') + ->json(); + } + + public function testDisallowUserDeletionViaApiIfStillHasLicenses() + { + $manager = User::factory()->create(); + LicenseSeat::factory()->count(5)->create(['assigned_to' => $manager->id]); + + $this->assertFalse($manager->isDeletable()); + + $this->actingAsForApi(User::factory()->deleteUsers()->create()) + ->deleteJson(route('api.users.destroy', $manager->id)) + ->assertOk() + ->assertStatus(200) + ->assertStatusMessageIs('error') + ->json(); + } + + public function testDisallowUserDeletionIfNoDeletePermissions() + { + + $this->actingAsForApi(User::factory()->create()) + ->deleteJson(route('api.users.destroy', User::factory()->create())) + ->assertStatus(403) + ->json(); + } + + + +} diff --git a/tests/Feature/Api/Users/UsersDeleteTest.php b/tests/Feature/Users/DeleteUsersTest.php similarity index 95% rename from tests/Feature/Api/Users/UsersDeleteTest.php rename to tests/Feature/Users/DeleteUsersTest.php index cbdba83278..9903081e20 100644 --- a/tests/Feature/Api/Users/UsersDeleteTest.php +++ b/tests/Feature/Users/DeleteUsersTest.php @@ -1,13 +1,13 @@ Date: Sat, 1 Jun 2024 03:00:45 +0100 Subject: [PATCH 046/110] Fixed typo Signed-off-by: snipe --- app/Http/Controllers/Api/UsersController.php | 31 ++++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index 5a37c50e1b..c2c18748b0 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -79,6 +79,10 @@ class UsersController extends Controller ->withCount('assets as assets_count', 'licenses as licenses_count', 'accessories as accessories_count', 'consumables as consumables_count', 'managesUsers as manages_users_count', 'managedLocations as manages_locations_count'); + if ($request->filled('search') != '') { + $users = $users->TextSearch($request->input('search')); + } + if ($request->filled('activated')) { $users = $users->where('users.activated', '=', $request->input('activated')); } @@ -201,8 +205,12 @@ class UsersController extends Controller if ($request->filled('location_id') != '') { $users = $users->UserLocation($request->input('location_id'), $request->input('search')); - } else { - $users = $users->TextSearch($request->input('search')); + } + + if (($request->filled('deleted')) && ($request->input('deleted') == 'true')) { + $users = $users->onlyTrashed(); + } elseif (($request->filled('all')) && ($request->input('all') == 'true')) { + $users = $users->withTrashed(); } $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; @@ -254,7 +262,7 @@ class UsersController extends Controller 'licenses_count', 'consumables_count', 'accessories_count', - 'manages_user_count', + 'manages_users_count', 'manages_locations_count', 'phone', 'address', @@ -274,16 +282,12 @@ class UsersController extends Controller 'website', ]; - $sort = in_array($request->get('sort'), $allowed_columns) ? $request->get('sort') : 'first_name'; + $sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'first_name'; $users = $users->orderBy($sort, $order); break; } - if (($request->filled('deleted')) && ($request->input('deleted') == 'true')) { - $users = $users->onlyTrashed(); - } elseif (($request->filled('all')) && ($request->input('all') == 'true')) { - $users = $users->withTrashed(); - } + // Apply companyable scope $users = Company::scopeCompanyables($users); @@ -551,6 +555,15 @@ class UsersController extends Controller return response()->json(Helper::formatStandardApiResponse('error', null, 'This user still has ' . $user->managedLocations()->count() . ' locations that they manage.')); } + + + if (($user->managesUsers()) && ($user->managesUsers()->count() > 0)) { + + return response()->json(Helper::formatStandardApiResponse('error', null, 'This user still has ' . $user->managesUsers()->count() . ' users that they manage.')); + } + + + if ($user->delete()) { // Remove the user's avatar if they have one From 52af8afac2332131f2b40ced641b82709ca11ae9 Mon Sep 17 00:00:00 2001 From: snipe Date: Sat, 1 Jun 2024 03:10:29 +0100 Subject: [PATCH 047/110] Added company scoping test Signed-off-by: snipe --- tests/Feature/Api/Users/DeleteUsersTest.php | 32 +++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/Feature/Api/Users/DeleteUsersTest.php b/tests/Feature/Api/Users/DeleteUsersTest.php index 830008d0bc..3b68cbb4dc 100644 --- a/tests/Feature/Api/Users/DeleteUsersTest.php +++ b/tests/Feature/Api/Users/DeleteUsersTest.php @@ -2,6 +2,8 @@ namespace Tests\Feature\Api\Users; +use App\Models\Asset; +use App\Models\Company; use App\Models\Location; use App\Models\User; use App\Models\LicenseSeat; @@ -64,6 +66,36 @@ class DeleteUsersTest extends TestCase ->json(); } + public function testDisallowUserDeletionIfNotInSameCompanyIfNotSuperadmin() + { + $this->settings->enableMultipleFullCompanySupport(); + [$companyA, $companyB] = Company::factory()->count(2)->create(); + + $superUser = $companyA->users()->save(User::factory()->superuser()->make()); + $userInCompanyA = $companyA->users()->save(User::factory()->deleteUsers()->make()); + $userInCompanyB = $companyB->users()->save(User::factory()->deleteUsers()->make()); + + $this->actingAsForApi($userInCompanyA) + ->deleteJson(route('api.users.destroy', $userInCompanyB)) + ->assertStatus(403) + ->json(); + + $this->actingAsForApi($userInCompanyB) + ->deleteJson(route('api.users.destroy', $userInCompanyA)) + ->assertStatus(403) + ->json(); + + $this->actingAsForApi($superUser) + ->deleteJson(route('api.users.destroy', $userInCompanyA)) + ->assertOk() + ->assertStatus(200) + ->assertStatusMessageIs('success') + ->json(); + + } + + + } From cff382605c59b56ec43f9823c7f6a7484d23f6b7 Mon Sep 17 00:00:00 2001 From: snipe Date: Sat, 1 Jun 2024 04:01:04 +0100 Subject: [PATCH 048/110] Fixed some missing strings and checks Signed-off-by: snipe --- app/Http/Controllers/Api/UsersController.php | 20 +++++++------- .../Controllers/Users/UsersController.php | 26 ++++++++++--------- resources/lang/en-US/admin/users/message.php | 6 +++++ 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index c2c18748b0..4b3b00e7a2 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -539,31 +539,31 @@ class UsersController extends Controller if ($user) { + if ($user->id === Auth::id()) { + // Redirect to the user management page + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.error.cannot_delete_yourself'))); + } + if (($user->assets) && ($user->assets->count() > 0)) { - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.error.delete_has_assets'))); + return response()->json(Helper::formatStandardApiResponse('error', null, trans_choice('admin/users/message.error.delete_has_assets_var', $user->assets()->count(), ['count'=> $user->assets()->count()]))); } if (($user->licenses) && ($user->licenses->count() > 0)) { - return response()->json(Helper::formatStandardApiResponse('error', null, 'This user still has ' . $user->licenses->count() . ' license(s) associated with them and cannot be deleted.')); + return response()->json(Helper::formatStandardApiResponse('error', null, trans_choice('admin/users/message.error.delete_has_licenses_var', $user->licenses()->count(), ['count'=> $user->licenses()->count()]))); } if (($user->accessories) && ($user->accessories->count() > 0)) { - return response()->json(Helper::formatStandardApiResponse('error', null, 'This user still has ' . $user->accessories->count() . ' accessories associated with them.')); + return response()->json(Helper::formatStandardApiResponse('error', null, trans_choice('admin/users/message.error.delete_has_accessories_var', $user->accessories()->count(), ['count'=> $user->accessories()->count()]))); } if (($user->managedLocations()) && ($user->managedLocations()->count() > 0)) { - return response()->json(Helper::formatStandardApiResponse('error', null, 'This user still has ' . $user->managedLocations()->count() . ' locations that they manage.')); + return response()->json(Helper::formatStandardApiResponse('error', null, trans_choice('admin/users/message.error.delete_has_locations_var', $user->managedLocations()->count(), ['count'=> $user->managedLocations()->count()]))); } - - if (($user->managesUsers()) && ($user->managesUsers()->count() > 0)) { - - return response()->json(Helper::formatStandardApiResponse('error', null, 'This user still has ' . $user->managesUsers()->count() . ' users that they manage.')); + return response()->json(Helper::formatStandardApiResponse('error', null, trans_choice('admin/users/message.error.delete_has_users_var', $user->managesUsers()->count(), ['count'=> $user->managesUsers()->count()]))); } - - if ($user->delete()) { // Remove the user's avatar if they have one diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 9624753b16..3d971d9e6b 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -346,33 +346,35 @@ class UsersController extends Controller if ($user->id === Auth::id()) { // Redirect to the user management page return redirect()->route('users.index') - ->with('error', 'We would feel really bad if you deleted yourself, please reconsider.'); + ->with('error', trans('admin/users/message.error.cannot_delete_yourself')); } - if (($user->assets()) && (($assetsCount = $user->assets()->count()) > 0)) { + if (($user->assets()) && ($user->assets()->count() > 0)) { // Redirect to the user management page return redirect()->route('users.index') - ->with('error', 'This user still has '.$assetsCount.' assets associated with them.'); + ->with('error', trans_choice('admin/users/message.error.delete_has_assets_var', $user->assets()->count(), ['count'=> $user->assets()->count()])); } - if (($user->licenses()) && (($licensesCount = $user->licenses()->count())) > 0) { - // Redirect to the user management page - return redirect()->route('users.index') - ->with('error', 'This user still has '.$licensesCount.' licenses associated with them.'); + if (($user->licenses()) && ($user->licenses()->count() > 0)) { + return redirect()->route('users.index')->with('error', trans_choice('admin/users/message.error.delete_has_licenses_var', $user->licenses()->count(), ['count'=> $user->licenses()->count()])); } - if (($user->accessories()) && (($accessoriesCount = $user->accessories()->count()) > 0)) { + if (($user->accessories()) && ($user->accessories()->count() > 0)) { // Redirect to the user management page - return redirect()->route('users.index') - ->with('error', 'This user still has '.$accessoriesCount.' accessories associated with them.'); + return redirect()->route('users.index')->with('error', trans_choice('admin/users/message.error.delete_has_accessories_var', $user->accessories()->count(), ['count'=> $user->accessories()->count()])); } - if (($user->managedLocations()) && (($managedLocationsCount = $user->managedLocations()->count())) > 0) { + if (($user->managedLocations()) && ($user->managedLocations()->count() > 0)) { // Redirect to the user management page return redirect()->route('users.index') - ->with('error', 'This user still has '.$managedLocationsCount.' locations that they manage.'); + ->with('error', trans_choice('admin/users/message.error.delete_has_locations_var', $user->managedLocations()->count(), ['count'=> $user->managedLocations()->count()])); } +// if (($user->managesUsers()) && ($user->managesUsers()->count() > 0)) { +// return redirect()->route('users.index') +// ->with('error', trans_choice('admin/users/message.error.delete_has_users_var', $user->managesUsers()->count(), ['count'=> $user->managesUsers()->count()])); +// } + // Delete the user $user->delete(); return redirect()->route('users.index')->with('success', trans('admin/users/message.success.delete')); diff --git a/resources/lang/en-US/admin/users/message.php b/resources/lang/en-US/admin/users/message.php index b7c0a29f14..4d014775bd 100644 --- a/resources/lang/en-US/admin/users/message.php +++ b/resources/lang/en-US/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'There was an issue updating the user. Please try again.', 'delete' => 'There was an issue deleting the user. Please try again.', 'delete_has_assets' => 'This user has items assigned and could not be deleted.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', 'import' => 'There was an issue importing users. Please try again.', 'asset_already_accepted' => 'This asset has already been accepted.', 'accept_or_decline' => 'You must either accept or decline this asset.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'The asset you have attempted to accept was not checked out to you.', 'ldap_could_not_connect' => 'Could not connect to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server:', 'ldap_could_not_bind' => 'Could not bind to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server: ', From ea8d390596971a08db2f39e3bdd27999ceba7246 Mon Sep 17 00:00:00 2001 From: snipe Date: Sat, 1 Jun 2024 04:01:09 +0100 Subject: [PATCH 049/110] MOAR TESTS Signed-off-by: snipe --- tests/Feature/Api/Users/DeleteUsersTest.php | 16 +++++++++++- tests/Feature/Users/DeleteUsersTest.php | 29 ++++++++++++++++----- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/tests/Feature/Api/Users/DeleteUsersTest.php b/tests/Feature/Api/Users/DeleteUsersTest.php index 3b68cbb4dc..e926311dca 100644 --- a/tests/Feature/Api/Users/DeleteUsersTest.php +++ b/tests/Feature/Api/Users/DeleteUsersTest.php @@ -66,7 +66,7 @@ class DeleteUsersTest extends TestCase ->json(); } - public function testDisallowUserDeletionIfNotInSameCompanyIfNotSuperadmin() + public function testDisallowUserDeletionIfNotInSameCompanyAndNotSuperadmin() { $this->settings->enableMultipleFullCompanySupport(); [$companyA, $companyB] = Company::factory()->count(2)->create(); @@ -94,6 +94,20 @@ class DeleteUsersTest extends TestCase } + public function testUsersCannotDeleteThemselves() + { + $user = User::factory()->deleteUsers()->create(); + $this->actingAsForApi($user) + ->deleteJson(route('api.users.destroy', $user)) + ->assertOk() + ->assertStatus(200) + ->assertStatusMessageIs('error') + ->json(); + + } + + + diff --git a/tests/Feature/Users/DeleteUsersTest.php b/tests/Feature/Users/DeleteUsersTest.php index 9903081e20..3d2da4bf4e 100644 --- a/tests/Feature/Users/DeleteUsersTest.php +++ b/tests/Feature/Users/DeleteUsersTest.php @@ -13,27 +13,44 @@ class DeleteUsersTest extends TestCase public function testDisallowUserDeletionIfStillManagingPeople() { - $manager = User::factory()->create(['first_name' => 'Manager', 'last_name' => 'McManagerson']); - User::factory()->create(['first_name' => 'Lowly', 'last_name' => 'Worker', 'manager_id' => $manager->id]); + $manager = User::factory()->create(); + User::factory()->count(3)->create(['manager_id' => $manager->id]); + $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($manager->isDeletable()); + + $this->actingAs(User::factory()->deleteUsers()->create()) + ->delete(route('users.destroy', $manager->id)) + ->assertStatus(302) + ->assertRedirect(route('users.index')); } public function testDisallowUserDeletionIfStillManagingLocations() { - $manager = User::factory()->create(['first_name' => 'Manager', 'last_name' => 'McManagerson']); - Location::factory()->create(['manager_id' => $manager->id]); + $manager = User::factory()->create(); + Location::factory()->count(3)->create(['manager_id' => $manager->id]); + $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($manager->isDeletable()); + + $this->actingAs(User::factory()->deleteUsers()->create()) + ->delete(route('users.destroy', $manager->id)) + ->assertStatus(302) + ->assertRedirect(route('users.index')); } public function testAllowUserDeletionIfNotManagingLocations() { - $manager = User::factory()->create(['first_name' => 'Manager', 'last_name' => 'McManagerson']); + $manager = User::factory()->create(); $this->actingAs(User::factory()->deleteUsers()->create())->assertTrue($manager->isDeletable()); + + $this->actingAs(User::factory()->deleteUsers()->create()) + ->delete(route('users.destroy', $manager->id)) + ->assertStatus(302) + ->assertRedirect(route('users.index')); } public function testDisallowUserDeletionIfNoDeletePermissions() { - $manager = User::factory()->create(['first_name' => 'Manager', 'last_name' => 'McManagerson']); + $manager = User::factory()->create(); Location::factory()->create(['manager_id' => $manager->id]); $this->actingAs(User::factory()->editUsers()->create())->assertFalse($manager->isDeletable()); } From 67fb3f10d5607012b30cd050095b1b4c23f090f0 Mon Sep 17 00:00:00 2001 From: snipe Date: Sat, 1 Jun 2024 04:24:47 +0100 Subject: [PATCH 050/110] Tightened up tests with better checks Signed-off-by: snipe --- app/Http/Controllers/Users/UsersController.php | 8 ++++---- tests/Feature/Users/DeleteUsersTest.php | 13 ++++++++++--- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 3d971d9e6b..8df5842929 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -370,10 +370,10 @@ class UsersController extends Controller ->with('error', trans_choice('admin/users/message.error.delete_has_locations_var', $user->managedLocations()->count(), ['count'=> $user->managedLocations()->count()])); } -// if (($user->managesUsers()) && ($user->managesUsers()->count() > 0)) { -// return redirect()->route('users.index') -// ->with('error', trans_choice('admin/users/message.error.delete_has_users_var', $user->managesUsers()->count(), ['count'=> $user->managesUsers()->count()])); -// } + if (($user->managesUsers()) && ($user->managesUsers()->count() > 0)) { + return redirect()->route('users.index') + ->with('error', trans_choice('admin/users/message.error.delete_has_users_var', $user->managesUsers()->count(), ['count'=> $user->managesUsers()->count()])); + } // Delete the user $user->delete(); diff --git a/tests/Feature/Users/DeleteUsersTest.php b/tests/Feature/Users/DeleteUsersTest.php index 3d2da4bf4e..a9ac1ab1ff 100644 --- a/tests/Feature/Users/DeleteUsersTest.php +++ b/tests/Feature/Users/DeleteUsersTest.php @@ -18,10 +18,12 @@ class DeleteUsersTest extends TestCase $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($manager->isDeletable()); - $this->actingAs(User::factory()->deleteUsers()->create()) + $response = $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create()) ->delete(route('users.destroy', $manager->id)) ->assertStatus(302) ->assertRedirect(route('users.index')); + + $this->followRedirects($response)->assertSee('Error'); } public function testDisallowUserDeletionIfStillManagingLocations() @@ -31,10 +33,12 @@ class DeleteUsersTest extends TestCase $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($manager->isDeletable()); - $this->actingAs(User::factory()->deleteUsers()->create()) + $response = $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create()) ->delete(route('users.destroy', $manager->id)) ->assertStatus(302) ->assertRedirect(route('users.index')); + + $this->followRedirects($response)->assertSee('Error'); } public function testAllowUserDeletionIfNotManagingLocations() @@ -42,10 +46,13 @@ class DeleteUsersTest extends TestCase $manager = User::factory()->create(); $this->actingAs(User::factory()->deleteUsers()->create())->assertTrue($manager->isDeletable()); - $this->actingAs(User::factory()->deleteUsers()->create()) + $response = $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create()) ->delete(route('users.destroy', $manager->id)) ->assertStatus(302) ->assertRedirect(route('users.index')); + + $this->followRedirects($response)->assertSee('Success'); + } public function testDisallowUserDeletionIfNoDeletePermissions() From 89e50b94d34aff282509a85d96d7bc64370e1fd4 Mon Sep 17 00:00:00 2001 From: bryanlopezinc Date: Mon, 3 Jun 2024 08:09:05 +0100 Subject: [PATCH 051/110] Fix Failing sqlite test --- tests/Feature/Settings/ShowSetUpPageTest.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/Feature/Settings/ShowSetUpPageTest.php b/tests/Feature/Settings/ShowSetUpPageTest.php index 84b6c170e0..95638be0d6 100644 --- a/tests/Feature/Settings/ShowSetUpPageTest.php +++ b/tests/Feature/Settings/ShowSetUpPageTest.php @@ -10,6 +10,7 @@ use Illuminate\Log\Events\MessageLogged; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Http; +use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\URL; use Illuminate\Testing\TestResponse; use PDOException; @@ -220,7 +221,7 @@ class ShowSetUpPageTest extends TestCase Http::fake([URL::to('.env') => fn () => throw new ConnectionException('Some curl error message.')]); - Event::fake(); + Log::setEventDispatcher(Event::fake()); $this->getSetUpPageResponse()->assertOk(); From f767a94c8498f8c94bc20d9f7dc2b43247cc2095 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 08:18:51 +0000 Subject: [PATCH 052/110] Bump crowdin/github-action from 1 to 2 Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 1 to 2. - [Release notes](https://github.com/crowdin/github-action/releases) - [Commits](https://github.com/crowdin/github-action/compare/v1...v2) --- updated-dependencies: - dependency-name: crowdin/github-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/crowdin-upload.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/crowdin-upload.yml b/.github/workflows/crowdin-upload.yml index 3255934534..7b9331c97d 100644 --- a/.github/workflows/crowdin-upload.yml +++ b/.github/workflows/crowdin-upload.yml @@ -12,7 +12,7 @@ jobs: uses: actions/checkout@v4 - name: Crowdin push - uses: crowdin/github-action@v1 + uses: crowdin/github-action@v2 with: upload_sources: true upload_translations: false From a6f19a1657e6ab422f8d8f445aa16074a5510128 Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 3 Jun 2024 17:06:43 +0100 Subject: [PATCH 053/110] docs: add @U-H-T as a contributor --- .all-contributorsrc | 9 + CONTRIBUTORS.md | 504 +++++++++++++++++++++++++++++++++++++++----- 2 files changed, 463 insertions(+), 50 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 2b7c817603..24aa022c27 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -3117,6 +3117,15 @@ "contributions": [ "code" ] + }, + { + "login": "U-H-T", + "name": "U-H-T", + "avatar_url": "https://avatars.githubusercontent.com/u/64061710?v=4", + "profile": "https://github.com/U-H-T", + "contributions": [ + "code" + ] } ] } diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index f0eabb77b8..355b50c58a 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -1,56 +1,460 @@ Thanks goes to all of these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)) who have helped Snipe-IT get this far: -| [
    snipe](http://www.snipe.net)
    [💻](https://github.com/snipe/snipe-it/commits?author=snipe "Code") [🚇](#infra-snipe "Infrastructure (Hosting, Build-Tools, etc)") [📖](https://github.com/snipe/snipe-it/commits?author=snipe "Documentation") [⚠️](https://github.com/snipe/snipe-it/commits?author=snipe "Tests") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3Asnipe "Bug reports") [🎨](#design-snipe "Design") [👀](#review-snipe "Reviewed Pull Requests") | [
    Brady Wetherington](http://www.uberbrady.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=uberbrady "Code") [📖](https://github.com/snipe/snipe-it/commits?author=uberbrady "Documentation") [🚇](#infra-uberbrady "Infrastructure (Hosting, Build-Tools, etc)") [👀](#review-uberbrady "Reviewed Pull Requests") | [
    Daniel Meltzer](https://github.com/dmeltzer)
    [💻](https://github.com/snipe/snipe-it/commits?author=dmeltzer "Code") [⚠️](https://github.com/snipe/snipe-it/commits?author=dmeltzer "Tests") [📖](https://github.com/snipe/snipe-it/commits?author=dmeltzer "Documentation") | [
    Michael T](http://www.tuckertechonline.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=mtucker6784 "Code") | [
    madd15](https://github.com/madd15)
    [📖](https://github.com/snipe/snipe-it/commits?author=madd15 "Documentation") [💬](#question-madd15 "Answering Questions") | [
    Vincent Sposato](https://github.com/vsposato)
    [💻](https://github.com/snipe/snipe-it/commits?author=vsposato "Code") | [
    Andrea Bergamasco](https://github.com/vjandrea)
    [💻](https://github.com/snipe/snipe-it/commits?author=vjandrea "Code") | -| :---: | :---: | :---: | :---: | :---: | :---: | :---: | -| [
    Karol](https://github.com/kpawelski)
    [🌍](#translation-kpawelski "Translation") [💻](https://github.com/snipe/snipe-it/commits?author=kpawelski "Code") | [
    morph027](http://blog.morph027.de/)
    [💻](https://github.com/snipe/snipe-it/commits?author=morph027 "Code") | [
    fvleminckx](https://github.com/fvleminckx)
    [🚇](#infra-fvleminckx "Infrastructure (Hosting, Build-Tools, etc)") | [
    itsupportcmsukorg](https://github.com/itsupportcmsukorg)
    [💻](https://github.com/snipe/snipe-it/commits?author=itsupportcmsukorg "Code") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3Aitsupportcmsukorg "Bug reports") | [
    Frank](https://override.io)
    [💻](https://github.com/snipe/snipe-it/commits?author=base-zero "Code") | [
    Deleted user](https://github.com/ghost)
    [🌍](#translation-ghost "Translation") [💻](https://github.com/snipe/snipe-it/commits?author=ghost "Code") | [
    tiagom62](https://github.com/tiagom62)
    [💻](https://github.com/snipe/snipe-it/commits?author=tiagom62 "Code") [🚇](#infra-tiagom62 "Infrastructure (Hosting, Build-Tools, etc)") | -| [
    Ryan Stafford](https://github.com/rystaf)
    [💻](https://github.com/snipe/snipe-it/commits?author=rystaf "Code") | [
    Eammon Hanlon](https://github.com/ehanlon)
    [💻](https://github.com/snipe/snipe-it/commits?author=ehanlon "Code") | [
    zjean](https://github.com/zjean)
    [💻](https://github.com/snipe/snipe-it/commits?author=zjean "Code") | [
    Matthias Frei](http://www.frei.media)
    [💻](https://github.com/snipe/snipe-it/commits?author=FREImedia "Code") | [
    opsydev](https://github.com/opsydev)
    [💻](https://github.com/snipe/snipe-it/commits?author=opsydev "Code") | [
    Daniel Dreier](http://www.ddreier.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=ddreier "Code") | [
    Nikolai Prokoschenko](http://rassie.org)
    [💻](https://github.com/snipe/snipe-it/commits?author=rassie "Code") | -| [
    Drew](https://github.com/YetAnotherCodeMonkey)
    [💻](https://github.com/snipe/snipe-it/commits?author=YetAnotherCodeMonkey "Code") | [
    Walter](https://github.com/merid14)
    [💻](https://github.com/snipe/snipe-it/commits?author=merid14 "Code") | [
    Petr Baloun](https://github.com/balous)
    [💻](https://github.com/snipe/snipe-it/commits?author=balous "Code") | [
    reidblomquist](https://github.com/reidblomquist)
    [📖](https://github.com/snipe/snipe-it/commits?author=reidblomquist "Documentation") | [
    Mathieu Kooiman](https://github.com/mathieuk)
    [💻](https://github.com/snipe/snipe-it/commits?author=mathieuk "Code") | [
    csayre](https://github.com/csayre)
    [📖](https://github.com/snipe/snipe-it/commits?author=csayre "Documentation") | [
    Adam Dunson](https://github.com/adamdunson)
    [💻](https://github.com/snipe/snipe-it/commits?author=adamdunson "Code") | -| [
    Hereward](https://github.com/thehereward)
    [💻](https://github.com/snipe/snipe-it/commits?author=thehereward "Code") | [
    swoopdk](https://github.com/swoopdk)
    [💻](https://github.com/snipe/snipe-it/commits?author=swoopdk "Code") | [
    Abdullah Alansari](https://linkedin.com/in/ahimta)
    [💻](https://github.com/snipe/snipe-it/commits?author=Ahimta "Code") | [
    Micael Rodrigues](https://github.com/MicaelRodrigues)
    [💻](https://github.com/snipe/snipe-it/commits?author=MicaelRodrigues "Code") | [
    Patrick Gallagher](http://macadmincorner.com)
    [📖](https://github.com/snipe/snipe-it/commits?author=patgmac "Documentation") | [
    Miliamber](https://github.com/Miliamber)
    [💻](https://github.com/snipe/snipe-it/commits?author=Miliamber "Code") | [
    hawk554](https://github.com/hawk554)
    [💻](https://github.com/snipe/snipe-it/commits?author=hawk554 "Code") | -| [
    Justin Kerr](http://jbirdkerr.net)
    [💻](https://github.com/snipe/snipe-it/commits?author=jbirdkerr "Code") | [
    Ira W. Snyder](http://www.irasnyder.com/devel/)
    [📖](https://github.com/snipe/snipe-it/commits?author=irasnyd "Documentation") | [
    Aladin Alaily](https://github.com/aalaily)
    [💻](https://github.com/snipe/snipe-it/commits?author=aalaily "Code") | [
    Chase Hansen](https://github.com/kobie-chasehansen)
    [💻](https://github.com/snipe/snipe-it/commits?author=kobie-chasehansen "Code") [💬](#question-kobie-chasehansen "Answering Questions") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3Akobie-chasehansen "Bug reports") | [
    IDM Helpdesk](https://github.com/IDM-Helpdesk)
    [💻](https://github.com/snipe/snipe-it/commits?author=IDM-Helpdesk "Code") | [
    Kai](http://balticer.de)
    [💻](https://github.com/snipe/snipe-it/commits?author=balticer "Code") | [
    Michael Daniels](http://www.michaeldaniels.me)
    [💻](https://github.com/snipe/snipe-it/commits?author=mdaniels5757 "Code") | -| [
    Tom Castleman](http://tomcastleman.me)
    [💻](https://github.com/snipe/snipe-it/commits?author=tomcastleman "Code") | [
    Daniel Nemanic](https://github.com/DanielNemanic)
    [💻](https://github.com/snipe/snipe-it/commits?author=DanielNemanic "Code") | [
    SouthWolf](https://github.com/southwolf)
    [💻](https://github.com/snipe/snipe-it/commits?author=southwolf "Code") | [
    Ivar Nesje](https://github.com/ivarne)
    [💻](https://github.com/snipe/snipe-it/commits?author=ivarne "Code") | [
    Jérémy Benoist](http://www.j0k3r.net)
    [📖](https://github.com/snipe/snipe-it/commits?author=j0k3r "Documentation") | [
    Chris Leathley](https://github.com/cleathley)
    [🚇](#infra-cleathley "Infrastructure (Hosting, Build-Tools, etc)") | [
    splaer](https://github.com/splaer)
    [🐛](https://github.com/snipe/snipe-it/issues?q=author%3Asplaer "Bug reports") [💻](https://github.com/snipe/snipe-it/commits?author=splaer "Code") | -| [
    Joe Ferguson](http://www.joeferguson.me)
    [💻](https://github.com/snipe/snipe-it/commits?author=svpernova09 "Code") | [
    diwanicki](https://github.com/diwanicki)
    [💻](https://github.com/snipe/snipe-it/commits?author=diwanicki "Code") [📖](https://github.com/snipe/snipe-it/commits?author=diwanicki "Documentation") | [
    Lee Thoong Ching](https://github.com/pakkua80)
    [📖](https://github.com/snipe/snipe-it/commits?author=pakkua80 "Documentation") [💻](https://github.com/snipe/snipe-it/commits?author=pakkua80 "Code") | [
    Marek Šuppa](http://shu.io)
    [💻](https://github.com/snipe/snipe-it/commits?author=mrshu "Code") | [
    Juan J. Martinez](https://github.com/mizar1616)
    [🌍](#translation-mizar1616 "Translation") | [
    R Ryan Dial](https://github.com/rrdial)
    [🌍](#translation-rrdial "Translation") | [
    Andrej Manduch](https://github.com/burlito)
    [📖](https://github.com/snipe/snipe-it/commits?author=burlito "Documentation") | -| [
    Jay Richards](http://www.cordeos.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=technogenus "Code") | [
    Alexander Innes](https://necurity.co.uk)
    [💻](https://github.com/snipe/snipe-it/commits?author=leostat "Code") | [
    Danny Garcia](https://buzzedword.codes)
    [💻](https://github.com/snipe/snipe-it/commits?author=buzzedword "Code") | [
    archpoint](https://github.com/archpoint)
    [💻](https://github.com/snipe/snipe-it/commits?author=archpoint "Code") | [
    Jake McGraw](http://www.jakemcgraw.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=jakemcgraw "Code") | [
    FleischKarussel](https://github.com/FleischKarussel)
    [📖](https://github.com/snipe/snipe-it/commits?author=FleischKarussel "Documentation") | [
    Dylan Yi](https://github.com/feeva)
    [💻](https://github.com/snipe/snipe-it/commits?author=feeva "Code") | -| [
    Gil Rutkowski](http://FlashingCursor.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=flashingcursor "Code") | [
    Desmond Morris](http://www.desmondmorris.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=desmondmorris "Code") | [
    Nick Peelman](http://peelman.us)
    [💻](https://github.com/snipe/snipe-it/commits?author=peelman "Code") | [
    Abraham Vegh](https://abrahamvegh.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=abrahamvegh "Code") | [
    Mohamed Rashid](https://github.com/rashivkp)
    [📖](https://github.com/snipe/snipe-it/commits?author=rashivkp "Documentation") | [
    Kasey](http://hinchk.github.io)
    [💻](https://github.com/snipe/snipe-it/commits?author=HinchK "Code") | [
    Brett](https://github.com/BrettFagerlund)
    [⚠️](https://github.com/snipe/snipe-it/commits?author=BrettFagerlund "Tests") | -| [
    Jason Spriggs](http://jasonspriggs.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=jasonspriggs "Code") | [
    Nate Felton](http://n8felton.wordpress.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=n8felton "Code") | [
    Manasses Ferreira](http://homepages.dcc.ufmg.br/~manassesferreira)
    [💻](https://github.com/snipe/snipe-it/commits?author=manassesferreira "Code") | [
    Steve](https://github.com/steveelwood)
    [⚠️](https://github.com/snipe/snipe-it/commits?author=steveelwood "Tests") | [
    matc](http://twitter.com/matc)
    [⚠️](https://github.com/snipe/snipe-it/commits?author=matc "Tests") | [
    Cole R. Davis](http://www.davisracingteam.com)
    [⚠️](https://github.com/snipe/snipe-it/commits?author=VanillaNinjaD "Tests") | [
    gibsonjoshua55](https://github.com/gibsonjoshua55)
    [💻](https://github.com/snipe/snipe-it/commits?author=gibsonjoshua55 "Code") | -| [
    Robin Temme](https://github.com/zwerch)
    [💻](https://github.com/snipe/snipe-it/commits?author=zwerch "Code") | [
    Iman](https://github.com/imanghafoori1)
    [💻](https://github.com/snipe/snipe-it/commits?author=imanghafoori1 "Code") | [
    Richard Hofman](https://github.com/richardhofman6)
    [💻](https://github.com/snipe/snipe-it/commits?author=richardhofman6 "Code") | [
    gizzmojr](https://github.com/gizzmojr)
    [💻](https://github.com/snipe/snipe-it/commits?author=gizzmojr "Code") | [
    Jenny Li](https://github.com/imjennyli)
    [📖](https://github.com/snipe/snipe-it/commits?author=imjennyli "Documentation") | [
    Geoff Young](https://github.com/GeoffYoung)
    [💻](https://github.com/snipe/snipe-it/commits?author=GeoffYoung "Code") | [
    Elliot Blackburn](http://www.elliotblackburn.com)
    [📖](https://github.com/snipe/snipe-it/commits?author=BlueHatbRit "Documentation") | -| [
    Tõnis Ormisson](http://andmemasin.eu)
    [💻](https://github.com/snipe/snipe-it/commits?author=TonisOrmisson "Code") | [
    Nicolai Essig](http://www.nicolai-essig.de)
    [💻](https://github.com/snipe/snipe-it/commits?author=thakilla "Code") | [
    Danielle](https://github.com/techincolor)
    [📖](https://github.com/snipe/snipe-it/commits?author=techincolor "Documentation") | [
    Lawrence](https://github.com/TheVakman)
    [⚠️](https://github.com/snipe/snipe-it/commits?author=TheVakman "Tests") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3ATheVakman "Bug reports") | [
    uknzaeinozpas](https://github.com/uknzaeinozpas)
    [⚠️](https://github.com/snipe/snipe-it/commits?author=uknzaeinozpas "Tests") [💻](https://github.com/snipe/snipe-it/commits?author=uknzaeinozpas "Code") | [
    Ryan](https://github.com/Gelob)
    [📖](https://github.com/snipe/snipe-it/commits?author=Gelob "Documentation") | [
    vcordes79](https://github.com/vcordes79)
    [💻](https://github.com/snipe/snipe-it/commits?author=vcordes79 "Code") | -| [
    fordster78](https://github.com/fordster78)
    [💻](https://github.com/snipe/snipe-it/commits?author=fordster78 "Code") | [
    CronKz](https://github.com/CronKz)
    [💻](https://github.com/snipe/snipe-it/commits?author=CronKz "Code") [🌍](#translation-CronKz "Translation") | [
    Tim Bishop](https://github.com/tdb)
    [💻](https://github.com/snipe/snipe-it/commits?author=tdb "Code") | [
    Sean McIlvenna](https://www.seanmcilvenna.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=seanmcilvenna "Code") | [
    cepacs](https://github.com/cepacs)
    [🐛](https://github.com/snipe/snipe-it/issues?q=author%3Acepacs "Bug reports") [📖](https://github.com/snipe/snipe-it/commits?author=cepacs "Documentation") | [
    lea-mink](https://github.com/lea-mink)
    [💻](https://github.com/snipe/snipe-it/commits?author=lea-mink "Code") | [
    Hannah Tinkler](https://github.com/hannahtinkler)
    [💻](https://github.com/snipe/snipe-it/commits?author=hannahtinkler "Code") | -| [
    Doeke Zanstra](https://github.com/doekman)
    [💻](https://github.com/snipe/snipe-it/commits?author=doekman "Code") | [
    Djamon Staal](https://www.sdhd.nl/)
    [💻](https://github.com/snipe/snipe-it/commits?author=SjamonDaal "Code") | [
    Earl Ramirez](https://github.com/EarlRamirez)
    [💻](https://github.com/snipe/snipe-it/commits?author=EarlRamirez "Code") | [
    Richard Ray Thomas](https://github.com/RichardRay)
    [💻](https://github.com/snipe/snipe-it/commits?author=RichardRay "Code") | [
    Ryan Kuba](https://www.taisun.io/)
    [💻](https://github.com/snipe/snipe-it/commits?author=thelamer "Code") | [
    Brian Monroe](https://github.com/ParadoxGuitarist)
    [💻](https://github.com/snipe/snipe-it/commits?author=ParadoxGuitarist "Code") | [
    plexorama](https://github.com/plexorama)
    [💻](https://github.com/snipe/snipe-it/commits?author=plexorama "Code") | -| [
    Till Deeke](https://tilldeeke.de)
    [💻](https://github.com/snipe/snipe-it/commits?author=tilldeeke "Code") | [
    5quirrel](https://github.com/5quirrel)
    [💻](https://github.com/snipe/snipe-it/commits?author=5quirrel "Code") | [
    Jason](https://github.com/jasonlshelton)
    [💻](https://github.com/snipe/snipe-it/commits?author=jasonlshelton "Code") | [
    Antti](https://github.com/chemfy)
    [💻](https://github.com/snipe/snipe-it/commits?author=chemfy "Code") | [
    DeusMaximus](https://github.com/DeusMaximus)
    [💻](https://github.com/snipe/snipe-it/commits?author=DeusMaximus "Code") | [
    a-royal](https://github.com/A-ROYAL)
    [🌍](#translation-A-ROYAL "Translation") | [
    Alberto Aldrigo](https://github.com/albertoaldrigo)
    [🌍](#translation-albertoaldrigo "Translation") | -| [
    Alex Stanev](http://alex.stanev.org/blog)
    [🌍](#translation-RealEnder "Translation") | [
    Andreas Rehm](http://devel.itsolution2.de)
    [🌍](#translation-sirrus "Translation") | [
    Andreas Erhard](https://github.com/xelan)
    [🌍](#translation-xelan "Translation") | [
    Andrés Vanegas Jiménez](https://github.com/angeldeejay)
    [🌍](#translation-angeldeejay "Translation") | [
    Antonio Schiavon](https://github.com/aschiavon91)
    [🌍](#translation-aschiavon91 "Translation") | [
    benunter](https://github.com/benunter)
    [🌍](#translation-benunter "Translation") | [
    Borys Żmuda](http://catweb24.pl)
    [🌍](#translation-rudashi "Translation") | -| [
    chibacityblues](https://github.com/chibacityblues)
    [🌍](#translation-chibacityblues "Translation") | [
    Chien Wei Lin](https://github.com/cwlin0416)
    [🌍](#translation-cwlin0416 "Translation") | [
    Christian Schuster](https://github.com/Againstreality)
    [🌍](#translation-Againstreality "Translation") | [
    Christian Stefanus](http://chriss.webhostid.com)
    [🌍](#translation-kopi-item "Translation") | [
    wxcafé](http://wxcafe.net)
    [🌍](#translation-wxcafe "Translation") | [
    dpyroc](https://github.com/dpyroc)
    [🌍](#translation-dpyroc "Translation") | [
    Daniel Friedlmaier](http://www.friedlmaier.net)
    [🌍](#translation-da-friedl "Translation") | -| [
    Daniel Heene](https://github.com/danielheene)
    [🌍](#translation-danielheene "Translation") | [
    danielcb](https://github.com/danielcb)
    [🌍](#translation-danielcb "Translation") | [
    Dominik Senti](https://github.com/dominiksenti)
    [🌍](#translation-dominiksenti "Translation") | [
    Eric Gautheron](http://www.konectik.com)
    [🌍](#translation-EpixFr "Translation") | [
    Erlend Pilø](https://erlpil.com)
    [🌍](#translation-Erlpil "Translation") | [
    Fabio Rapposelli](http://fabio.technology)
    [🌍](#translation-frapposelli "Translation") | [
    Felipe Barros](https://github.com/fgbs)
    [🌍](#translation-fgbs "Translation") | -| [
    Fernando Possebon](https://github.com/possebon)
    [🌍](#translation-possebon "Translation") | [
    gdraque](https://github.com/gdraque)
    [🌍](#translation-gdraque "Translation") | [
    Georg Wallisch](https://github.com/georgwallisch)
    [🌍](#translation-georgwallisch "Translation") | [
    Gerardo Robles](https://github.com/jgroblesr85)
    [🌍](#translation-jgroblesr85 "Translation") | [
    Gluek](https://t.me/Gluek)
    [🌍](#translation-mrgluek "Translation") | [
    AdnanAbuShahad](https://github.com/AdnanAbuShahad)
    [🌍](#translation-AdnanAbuShahad "Translation") | [
    Hafidzi My](https://hafidzi.my)
    [🌍](#translation-hafidzi "Translation") | -| [
    Harim Park](https://github.com/fofwisdom)
    [🌍](#translation-fofwisdom "Translation") | [
    Henrik Kentsson](http://www.kentsson.se)
    [🌍](#translation-Kentsson "Translation") | [
    Husnul Yaqien](https://github.com/husnulyaqien)
    [🌍](#translation-husnulyaqien "Translation") | [
    Ibrahim](http://abaalkhail.org)
    [🌍](#translation-abaalkh "Translation") | [
    igolman](https://github.com/igolman)
    [🌍](#translation-igolman "Translation") | [
    itangiang](https://github.com/itangiang)
    [🌍](#translation-itangiang "Translation") | [
    jarby1211](https://github.com/jarby1211)
    [🌍](#translation-jarby1211 "Translation") | -| [
    Jhonn Willker](http://jwillker.com)
    [🌍](#translation-JohnWillker "Translation") | [
    Jose](https://github.com/joxelito94)
    [🌍](#translation-joxelito94 "Translation") | [
    laopangzi](https://github.com/laopangzi)
    [🌍](#translation-laopangzi "Translation") | [
    Lars Strojny](http://usrportage.de)
    [🌍](#translation-lstrojny "Translation") | [
    MarcosBL](http://twitter.com/marcosbl)
    [🌍](#translation-MarcosBL "Translation") | [
    marie joy cajes](https://github.com/mariejoyacajes)
    [🌍](#translation-mariejoyacajes "Translation") | [
    Mark S. Johansen](http://www.markjohansen.dk)
    [🌍](#translation-msjohansen "Translation") | -| [
    Martin Stub](http://martinstub.dk)
    [🌍](#translation-stubben "Translation") | [
    Meyer Flavio](https://github.com/meyerf99)
    [🌍](#translation-meyerf99 "Translation") | [
    Micael Rodrigues](https://github.com/MicaelRodrigues)
    [🌍](#translation-MicaelRodrigues "Translation") | [
    Mikael Rasmussen](http://rubixy.com/)
    [🌍](#translation-mikaelssen "Translation") | [
    IxFail](https://github.com/IxFail)
    [🌍](#translation-IxFail "Translation") | [
    Mohammed Fota](http://www.mohammedfota.com)
    [🌍](#translation-MohammedFota "Translation") | [
    Moayad Alserihi](https://github.com/omego)
    [🌍](#translation-omego "Translation") | -| [
    saymd](https://github.com/saymd)
    [🌍](#translation-saymd "Translation") | [
    Patrik Larsson](https://nordsken.se)
    [🌍](#translation-pooot "Translation") | [
    drcryo](https://github.com/drcryo)
    [🌍](#translation-drcryo "Translation") | [
    pawel1615](https://github.com/pawel1615)
    [🌍](#translation-pawel1615 "Translation") | [
    bodrovics](https://github.com/bodrovics)
    [🌍](#translation-bodrovics "Translation") | [
    priatna](https://github.com/priatna)
    [🌍](#translation-priatna "Translation") | [
    Fan Jiang](https://amayume.net)
    [🌍](#translation-ProfFan "Translation") | -| [
    ragnarcx](https://github.com/ragnarcx)
    [🌍](#translation-ragnarcx "Translation") | [
    Rein van Haaren](http://www.reinvanhaaren.nl/)
    [🌍](#translation-reinvanhaaren "Translation") | [
    Teguh Dwicaksana](http://dheche.songolimo.net)
    [🌍](#translation-dheche "Translation") | [
    fraccie](https://github.com/FRaccie)
    [🌍](#translation-FRaccie "Translation") | [
    vinzruzell](https://github.com/vinzruzell)
    [🌍](#translation-vinzruzell "Translation") | [
    Kevin Austin](http://kevinaustin.com)
    [🌍](#translation-vipsystem "Translation") | [
    Wira Sandy](http://azuraweb.xyz)
    [🌍](#translation-wira-sandy "Translation") | -| [
    Илья](https://github.com/GrayHoax)
    [🌍](#translation-GrayHoax "Translation") | [
    GodUseVPN](https://github.com/godusevpn)
    [🌍](#translation-godusevpn "Translation") | [
    周周](https://github.com/EngrZhou)
    [🌍](#translation-EngrZhou "Translation") | [
    Sam](https://github.com/takuy)
    [💻](https://github.com/snipe/snipe-it/commits?author=takuy "Code") | [
    Azerothian](https://www.illisian.com.au)
    [💻](https://github.com/snipe/snipe-it/commits?author=Azerothian "Code") | [
    Wes Hulette](http://macfoo.wordpress.com/)
    [💻](https://github.com/snipe/snipe-it/commits?author=jwhulette "Code") | [
    patrict](https://github.com/patrict)
    [💻](https://github.com/snipe/snipe-it/commits?author=patrict "Code") | -| [
    Dmitriy Minaev](https://github.com/VELIKII-DIVAN)
    [💻](https://github.com/snipe/snipe-it/commits?author=VELIKII-DIVAN "Code") | [
    liquidhorse](https://github.com/liquidhorse)
    [💻](https://github.com/snipe/snipe-it/commits?author=liquidhorse "Code") | [
    Jordi Boggiano](https://seld.be/)
    [💻](https://github.com/snipe/snipe-it/commits?author=Seldaek "Code") | [
    Ivan Nieto](https://github.com/inietov)
    [💻](https://github.com/snipe/snipe-it/commits?author=inietov "Code") | [
    Ben RUBSON](https://github.com/benrubson)
    [💻](https://github.com/snipe/snipe-it/commits?author=benrubson "Code") | [
    NMathar](https://github.com/NMathar)
    [💻](https://github.com/snipe/snipe-it/commits?author=NMathar "Code") | [
    Steffen](https://github.com/smb)
    [💻](https://github.com/snipe/snipe-it/commits?author=smb "Code") | -| [
    Sxderp](https://github.com/Sxderp)
    [💻](https://github.com/snipe/snipe-it/commits?author=Sxderp "Code") | [
    fanta8897](https://github.com/fanta8897)
    [💻](https://github.com/snipe/snipe-it/commits?author=fanta8897 "Code") | [
    Andrey Bolonin](https://andreybolonin.com/phpconsulting/)
    [💻](https://github.com/snipe/snipe-it/commits?author=andreybolonin "Code") | [
    shinayoshi](http://www.shinayoshi.net/)
    [💻](https://github.com/snipe/snipe-it/commits?author=shinayoshi "Code") | [
    Hubert](https://github.com/reuser)
    [💻](https://github.com/snipe/snipe-it/commits?author=reuser "Code") | [
    KeenRivals](https://brashear.me)
    [💻](https://github.com/snipe/snipe-it/commits?author=KeenRivals "Code") | [
    omyno](https://github.com/omyno)
    [💻](https://github.com/snipe/snipe-it/commits?author=omyno "Code") | -| [
    Evgeny](https://github.com/jackka)
    [💻](https://github.com/snipe/snipe-it/commits?author=jackka "Code") | [
    Colin Campbell](https://digitalist.se)
    [💻](https://github.com/snipe/snipe-it/commits?author=colin-campbell "Code") | [
    Ľubomír Kučera](https://github.com/lubo)
    [💻](https://github.com/snipe/snipe-it/commits?author=lubo "Code") | [
    Martin Meredith](https://www.sourceguru.net)
    [💻](https://github.com/snipe/snipe-it/commits?author=Mezzle "Code") | [
    Tim Farmer](https://github.com/timothyfarmer)
    [💻](https://github.com/snipe/snipe-it/commits?author=timothyfarmer "Code") | [
    Marián Skrip](https://github.com/mskrip)
    [💻](https://github.com/snipe/snipe-it/commits?author=mskrip "Code") | [
    Godfrey Martinez](https://github.com/Godmartinz)
    [💻](https://github.com/snipe/snipe-it/commits?author=Godmartinz "Code") | -| [
    bigtreeEdo](https://github.com/bigtreeEdo)
    [💻](https://github.com/snipe/snipe-it/commits?author=bigtreeEdo "Code") | [
    Colin McNeil](https://colinmcneil.me/)
    [💻](https://github.com/snipe/snipe-it/commits?author=ColinMcNeil "Code") | [
    JoKneeMo](https://github.com/JoKneeMo)
    [💻](https://github.com/snipe/snipe-it/commits?author=JoKneeMo "Code") | [
    Joshi](http://www.redbridge.se)
    [💻](https://github.com/snipe/snipe-it/commits?author=joshi-redbridge "Code") | [
    Anthony Burns](https://github.com/anthonypburns)
    [💻](https://github.com/snipe/snipe-it/commits?author=anthonypburns "Code") | [
    johnson-yi](https://github.com/johnson-yi)
    [💻](https://github.com/snipe/snipe-it/commits?author=johnson-yi "Code") | [
    Sanjay Govind](https://tangentmc.net)
    [💻](https://github.com/snipe/snipe-it/commits?author=sanjay900 "Code") | -| [
    Peter Upfold](https://peter.upfold.org.uk/)
    [💻](https://github.com/snipe/snipe-it/commits?author=PeterUpfold "Code") | [
    Jared Biel](https://github.com/jbiel)
    [💻](https://github.com/snipe/snipe-it/commits?author=jbiel "Code") | [
    Dampfklon](https://github.com/dampfklon)
    [💻](https://github.com/snipe/snipe-it/commits?author=dampfklon "Code") | [
    Charles Hamilton](https://communityclosing.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=chamilton-ccn "Code") | [
    Giuseppe Iannello](https://github.com/giannello)
    [💻](https://github.com/snipe/snipe-it/commits?author=giannello "Code") | [
    Peter Dave Hello](https://www.peterdavehello.org/)
    [💻](https://github.com/snipe/snipe-it/commits?author=PeterDaveHello "Code") | [
    sigmoidal](https://github.com/sigmoidal)
    [💻](https://github.com/snipe/snipe-it/commits?author=sigmoidal "Code") | -| [
    Vincent Lainé](https://github.com/phenixdotnet)
    [💻](https://github.com/snipe/snipe-it/commits?author=phenixdotnet "Code") | [
    Lucas Pleß](http://www.lucas-pless.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=derlucas "Code") | [
    Ian Littman](http://twitter.com/iansltx)
    [💻](https://github.com/snipe/snipe-it/commits?author=iansltx "Code") | [
    João Paulo](https://github.com/PauloLuna)
    [💻](https://github.com/snipe/snipe-it/commits?author=PauloLuna "Code") | [
    ThoBur](https://github.com/ThoBur)
    [💻](https://github.com/snipe/snipe-it/commits?author=ThoBur "Code") | [
    Alexander Chibrikin](http://phpprofi.ru/)
    [💻](https://github.com/snipe/snipe-it/commits?author=alek13 "Code") | [
    Anthony Winstanley](https://github.com/winstan)
    [💻](https://github.com/snipe/snipe-it/commits?author=winstan "Code") | -| [
    Folke](https://github.com/fashberg)
    [💻](https://github.com/snipe/snipe-it/commits?author=fashberg "Code") | [
    Bennett Blodinger](https://github.com/benwa)
    [💻](https://github.com/snipe/snipe-it/commits?author=benwa "Code") | [
    NMC](https://nmc.dev)
    [💻](https://github.com/snipe/snipe-it/commits?author=ncareau "Code") | [
    andres-baller](https://github.com/andres-baller)
    [💻](https://github.com/snipe/snipe-it/commits?author=andres-baller "Code") | [
    sean-borg](https://github.com/sean-borg)
    [💻](https://github.com/snipe/snipe-it/commits?author=sean-borg "Code") | [
    EDVLeer](https://github.com/EDVLeer)
    [💻](https://github.com/snipe/snipe-it/commits?author=EDVLeer "Code") | [
    Kurokat](https://github.com/Kurokat)
    [💻](https://github.com/snipe/snipe-it/commits?author=Kurokat "Code") | -| [
    Kevin Köllmann](https://www.kevinkoellmann.de)
    [💻](https://github.com/snipe/snipe-it/commits?author=koelle25 "Code") | [
    sw-mreyes](https://github.com/sw-mreyes)
    [💻](https://github.com/snipe/snipe-it/commits?author=sw-mreyes "Code") | [
    Joel Pittet](https://pittet.ca)
    [💻](https://github.com/snipe/snipe-it/commits?author=joelpittet "Code") | [
    Eli Young](https://elyscape.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=elyscape "Code") | [
    Raell Dottin](https://github.com/raelldottin)
    [💻](https://github.com/snipe/snipe-it/commits?author=raelldottin "Code") | [
    Tom Misilo](https://github.com/misilot)
    [💻](https://github.com/snipe/snipe-it/commits?author=misilot "Code") | [
    David Davenne](http://david.davenne.be)
    [💻](https://github.com/snipe/snipe-it/commits?author=JuustoMestari "Code") | -| [
    Mark Stenglein](https://markstenglein.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=ocelotsloth "Code") | [
    ajsy](https://github.com/ajsy)
    [💻](https://github.com/snipe/snipe-it/commits?author=ajsy "Code") | [
    Jan Kiesewetter](https://github.com/t3easy)
    [💻](https://github.com/snipe/snipe-it/commits?author=t3easy "Code") | [
    Tetrachloromethane250](https://github.com/Tetrachloromethane250)
    [💻](https://github.com/snipe/snipe-it/commits?author=Tetrachloromethane250 "Code") | [
    Lars Kajes](https://www.kajes.se/)
    [💻](https://github.com/snipe/snipe-it/commits?author=kajes "Code") | [
    Joly0](https://github.com/Joly0)
    [💻](https://github.com/snipe/snipe-it/commits?author=Joly0 "Code") | [
    theburger](https://github.com/limeless)
    [💻](https://github.com/snipe/snipe-it/commits?author=limeless "Code") | -| [
    David Valin Alonso](https://github.com/deivishome)
    [💻](https://github.com/snipe/snipe-it/commits?author=deivishome "Code") | [
    andreaci](https://github.com/andreaci)
    [💻](https://github.com/snipe/snipe-it/commits?author=andreaci "Code") | [
    Jelle Sebreghts](http://www.jellesebreghts.be)
    [💻](https://github.com/snipe/snipe-it/commits?author=Jelle-S "Code") | [
    Michael Pietsch](https://github.com/Skywalker-11)
    | [
    Masudul Haque Shihab](https://github.com/sh1hab)
    [💻](https://github.com/snipe/snipe-it/commits?author=sh1hab "Code") | [
    Supapong Areeprasertkul](http://www.freedomdive.com/)
    [💻](https://github.com/snipe/snipe-it/commits?author=zybersup "Code") | [
    Peter Sarossy](https://github.com/psarossy)
    [💻](https://github.com/snipe/snipe-it/commits?author=psarossy "Code") | -| [
    Renee Margaret McConahy](https://github.com/nepella)
    [💻](https://github.com/snipe/snipe-it/commits?author=nepella "Code") | [
    JohnnyPicnic](https://github.com/JohnnyPicnic)
    [💻](https://github.com/snipe/snipe-it/commits?author=JohnnyPicnic "Code") | [
    markbrule](https://github.com/markbrule)
    [💻](https://github.com/snipe/snipe-it/commits?author=markbrule "Code") | [
    Mike Campbell](https://github.com/mikecmpbll)
    [💻](https://github.com/snipe/snipe-it/commits?author=mikecmpbll "Code") | [
    tbrconnect](https://github.com/tbrconnect)
    [💻](https://github.com/snipe/snipe-it/commits?author=tbrconnect "Code") | [
    kcoyo](https://github.com/kcoyo)
    [💻](https://github.com/snipe/snipe-it/commits?author=kcoyo "Code") | [
    Travis Miller](https://travismiller.com/)
    [💻](https://github.com/snipe/snipe-it/commits?author=travismiller "Code") | -| [
    Evan Taylor](https://github.com/Delta5)
    [💻](https://github.com/snipe/snipe-it/commits?author=Delta5 "Code") | [
    Petri Asikainen](https://github.com/PetriAsi)
    [💻](https://github.com/snipe/snipe-it/commits?author=PetriAsi "Code") | [
    derdeagle](https://github.com/derdeagle)
    [💻](https://github.com/snipe/snipe-it/commits?author=derdeagle "Code") | [
    Mike Frysinger](https://wh0rd.org/)
    [💻](https://github.com/snipe/snipe-it/commits?author=vapier "Code") | [
    ALPHA](https://github.com/AL4AL)
    [💻](https://github.com/snipe/snipe-it/commits?author=AL4AL "Code") | [
    FliegenKLATSCH](https://www.ifern.de)
    [💻](https://github.com/snipe/snipe-it/commits?author=FliegenKLATSCH "Code") | [
    Jeremy Price](https://github.com/jerm)
    [💻](https://github.com/snipe/snipe-it/commits?author=jerm "Code") | -| [
    Toreg87](https://github.com/Toreg87)
    [💻](https://github.com/snipe/snipe-it/commits?author=Toreg87 "Code") | [
    Matthew Nickson](https://github.com/Computroniks)
    [💻](https://github.com/snipe/snipe-it/commits?author=Computroniks "Code") | [
    Jethro Nederhof](https://jethron.id.au)
    [💻](https://github.com/snipe/snipe-it/commits?author=jethron "Code") | [
    Oskar Stenberg](https://github.com/01ste02)
    [💻](https://github.com/snipe/snipe-it/commits?author=01ste02 "Code") | [
    Robert-Azelis](https://github.com/Robert-Azelis)
    [💻](https://github.com/snipe/snipe-it/commits?author=Robert-Azelis "Code") | [
    Alexander William Smith](https://github.com/alwism)
    [💻](https://github.com/snipe/snipe-it/commits?author=alwism "Code") | [
    LEITWERK AG](https://www.leitwerk.de/)
    [💻](https://github.com/snipe/snipe-it/commits?author=leitwerk-ag "Code") | -| [
    Adam](http://www.aboutcher.co.uk)
    [💻](https://github.com/snipe/snipe-it/commits?author=adamboutcher "Code") | [
    Ian](https://snksrv.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=sneak-it "Code") | [
    Shao Yu-Lung (Allen)](http://blog.bestlong.idv.tw/)
    [💻](https://github.com/snipe/snipe-it/commits?author=bestlong "Code") | [
    Haxatron](https://github.com/Haxatron)
    [💻](https://github.com/snipe/snipe-it/commits?author=Haxatron "Code") | [
    PlaneNuts](https://github.com/PlaneNuts)
    [💻](https://github.com/snipe/snipe-it/commits?author=PlaneNuts "Code") | [
    Bradley Coudriet](http://bjcpgd.cias.rit.edu)
    [💻](https://github.com/snipe/snipe-it/commits?author=exula "Code") | [
    Dalton Durst](https://daltondur.st)
    [💻](https://github.com/snipe/snipe-it/commits?author=UniversalSuperBox "Code") | -| [
    Alex Janes](https://adagiohealth.org)
    [💻](https://github.com/snipe/snipe-it/commits?author=adagioajanes "Code") | [
    Nuraeil](https://github.com/nuraeil)
    [💻](https://github.com/snipe/snipe-it/commits?author=nuraeil "Code") | [
    TenOfTens](https://github.com/TenOfTens)
    [💻](https://github.com/snipe/snipe-it/commits?author=TenOfTens "Code") | [
    waffle](https://ditisjens.be/)
    [💻](https://github.com/snipe/snipe-it/commits?author=insert-waffle "Code") | [
    Yevhenii Huzii](https://github.com/QveenSi)
    [💻](https://github.com/snipe/snipe-it/commits?author=QveenSi "Code") | [
    Achmad Fienan Rahardianto](https://github.com/veenone)
    [💻](https://github.com/snipe/snipe-it/commits?author=veenone "Code") | [
    Yevhenii Huzii](https://github.com/QveenSi)
    [💻](https://github.com/snipe/snipe-it/commits?author=QveenSi "Code") | -| [
    Christian Weirich](https://github.com/chrisweirich)
    [💻](https://github.com/snipe/snipe-it/commits?author=chrisweirich "Code") | [
    denzfarid](https://github.com/denzfarid)
    | [
    ntbutler-nbcs](https://github.com/ntbutler-nbcs)
    [💻](https://github.com/snipe/snipe-it/commits?author=ntbutler-nbcs "Code") | [
    Naveen](https://naveensrinivasan.dev)
    [💻](https://github.com/snipe/snipe-it/commits?author=naveensrinivasan "Code") | [
    Mike Roquemore](https://github.com/mikeroq)
    [💻](https://github.com/snipe/snipe-it/commits?author=mikeroq "Code") | [
    Daniel Reeder](https://github.com/reederda)
    [🌍](#translation-reederda "Translation") [🌍](#translation-reederda "Translation") [💻](https://github.com/snipe/snipe-it/commits?author=reederda "Code") | [
    vickyjaura183](https://github.com/vickyjaura183)
    [💻](https://github.com/snipe/snipe-it/commits?author=vickyjaura183 "Code") | -| [
    Peace](https://github.com/julian-piehl)
    [💻](https://github.com/snipe/snipe-it/commits?author=julian-piehl "Code") | [
    Kyle Gordon](https://github.com/kylegordon)
    [💻](https://github.com/snipe/snipe-it/commits?author=kylegordon "Code") | [
    Katharina Drexel](http://www.bfh.ch)
    [💻](https://github.com/snipe/snipe-it/commits?author=sunflowerbofh "Code") | [
    David Sferruzza](https://david.sferruzza.fr/)
    [💻](https://github.com/snipe/snipe-it/commits?author=dsferruzza "Code") | [
    Rick Nelson](https://github.com/rnelsonee)
    [💻](https://github.com/snipe/snipe-it/commits?author=rnelsonee "Code") | [
    BasO12](https://github.com/BasO12)
    [💻](https://github.com/snipe/snipe-it/commits?author=BasO12 "Code") | [
    Vautia](https://github.com/Vautia)
    [💻](https://github.com/snipe/snipe-it/commits?author=Vautia "Code") | -| [
    Chris Hartjes](http://www.littlehart.net/atthekeyboard)
    [💻](https://github.com/snipe/snipe-it/commits?author=chartjes "Code") | [
    geo-chen](https://github.com/geo-chen)
    [💻](https://github.com/snipe/snipe-it/commits?author=geo-chen "Code") | [
    Phan Nguyen](https://github.com/nh314)
    [💻](https://github.com/snipe/snipe-it/commits?author=nh314 "Code") | [
    Iisakki Jaakkola](https://github.com/StarlessNights)
    [💻](https://github.com/snipe/snipe-it/commits?author=StarlessNights "Code") | [
    Ikko Ashimine](https://bandism.net/)
    [💻](https://github.com/snipe/snipe-it/commits?author=eltociear "Code") | [
    Lukas Fehling](https://github.com/lukasfehling)
    [💻](https://github.com/snipe/snipe-it/commits?author=lukasfehling "Code") | [
    Fernando Almeida](https://github.com/fernando-almeida)
    [💻](https://github.com/snipe/snipe-it/commits?author=fernando-almeida "Code") | -| [
    akemidx](https://github.com/akemidx)
    [💻](https://github.com/snipe/snipe-it/commits?author=akemidx "Code") | [
    Oguz Bilgic](http://oguz.site)
    [💻](https://github.com/snipe/snipe-it/commits?author=oguzbilgic "Code") | [
    Scooter Crawford](https://github.com/scoo73r)
    [💻](https://github.com/snipe/snipe-it/commits?author=scoo73r "Code") | [
    subdriven](https://github.com/subdriven)
    [💻](https://github.com/snipe/snipe-it/commits?author=subdriven "Code") | [
    Andrew Savinykh](https://github.com/AndrewSav)
    [💻](https://github.com/snipe/snipe-it/commits?author=AndrewSav "Code") | [
    Tadayuki Onishi](https://kenchan0130.github.io)
    [💻](https://github.com/snipe/snipe-it/commits?author=kenchan0130 "Code") | [
    Florian](https://github.com/floschoepfer)
    [💻](https://github.com/snipe/snipe-it/commits?author=floschoepfer "Code") | -| [
    Spencer Long](http://spencerlong.com)
    [💻](https://github.com/snipe/snipe-it/commits?author=spencerrlongg "Code") | [
    Marcus Moore](https://github.com/marcusmoore)
    [💻](https://github.com/snipe/snipe-it/commits?author=marcusmoore "Code") | [
    Martin Meredith](https://github.com/Mezzle)
    | [
    dboth](http://dboth.de)
    [💻](https://github.com/snipe/snipe-it/commits?author=dboth "Code") | [
    Zachary Fleck](https://github.com/zacharyfleck)
    [💻](https://github.com/snipe/snipe-it/commits?author=zacharyfleck "Code") | [
    VIKAAS-A](https://github.com/vikaas-cyper)
    [💻](https://github.com/snipe/snipe-it/commits?author=vikaas-cyper "Code") | [
    Abdul Kareem](https://github.com/ak-piracha)
    [💻](https://github.com/snipe/snipe-it/commits?author=ak-piracha "Code") | -| [
    NojoudAlshehri](https://github.com/NojoudAlshehri)
    [💻](https://github.com/snipe/snipe-it/commits?author=NojoudAlshehri "Code") | [
    Stefan Stidl](https://github.com/stefanstidlffg)
    [💻](https://github.com/snipe/snipe-it/commits?author=stefanstidlffg "Code") | [
    Quentin Aymard](https://github.com/qay21)
    [💻](https://github.com/snipe/snipe-it/commits?author=qay21 "Code") | [
    Grant Le Roux](https://github.com/cram42)
    [💻](https://github.com/snipe/snipe-it/commits?author=cram42 "Code") | [
    Bogdan](http://@singrity)
    [💻](https://github.com/snipe/snipe-it/commits?author=Singrity "Code") | [
    mmanjos](https://github.com/mmanjos)
    [💻](https://github.com/snipe/snipe-it/commits?author=mmanjos "Code") | [
    Abdelaziz Faki](https://azooz2014.github.io/)
    [💻](https://github.com/snipe/snipe-it/commits?author=Azooz2014 "Code") | -| [
    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") | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    snipe
    snipe

    💻 🚇 📖 ⚠️ 🐛 🎨 👀
    Brady Wetherington
    Brady Wetherington

    💻 📖 🚇 👀
    Daniel Meltzer
    Daniel Meltzer

    💻 ⚠️ 📖
    Michael T
    Michael T

    💻
    madd15
    madd15

    📖 💬
    Vincent Sposato
    Vincent Sposato

    💻
    Andrea Bergamasco
    Andrea Bergamasco

    💻
    Karol
    Karol

    🌍 💻
    morph027
    morph027

    💻
    fvleminckx
    fvleminckx

    🚇
    itsupportcmsukorg
    itsupportcmsukorg

    💻 🐛
    Frank
    Frank

    💻
    Deleted user
    Deleted user

    🌍 💻
    tiagom62
    tiagom62

    💻 🚇
    Ryan Stafford
    Ryan Stafford

    💻
    Eammon Hanlon
    Eammon Hanlon

    💻
    zjean
    zjean

    💻
    Matthias Frei
    Matthias Frei

    💻
    opsydev
    opsydev

    💻
    Daniel Dreier
    Daniel Dreier

    💻
    Nikolai Prokoschenko
    Nikolai Prokoschenko

    💻
    Drew
    Drew

    💻
    Walter
    Walter

    💻
    Petr Baloun
    Petr Baloun

    💻
    reidblomquist
    reidblomquist

    📖
    Mathieu Kooiman
    Mathieu Kooiman

    💻
    csayre
    csayre

    📖
    Adam Dunson
    Adam Dunson

    💻
    Hereward
    Hereward

    💻
    swoopdk
    swoopdk

    💻
    Abdullah Alansari
    Abdullah Alansari

    💻
    Micael Rodrigues
    Micael Rodrigues

    💻
    Patrick Gallagher
    Patrick Gallagher

    📖
    Miliamber
    Miliamber

    💻
    hawk554
    hawk554

    💻
    Justin Kerr
    Justin Kerr

    💻
    Ira W. Snyder
    Ira W. Snyder

    📖
    Aladin Alaily
    Aladin Alaily

    💻
    Chase Hansen
    Chase Hansen

    💻 💬 🐛
    IDM Helpdesk
    IDM Helpdesk

    💻
    Kai
    Kai

    💻
    Michael Daniels
    Michael Daniels

    💻
    Tom Castleman
    Tom Castleman

    💻
    Daniel Nemanic
    Daniel Nemanic

    💻
    SouthWolf
    SouthWolf

    💻
    Ivar Nesje
    Ivar Nesje

    💻
    Jérémy Benoist
    Jérémy Benoist

    📖
    Chris Leathley
    Chris Leathley

    🚇
    splaer
    splaer

    🐛 💻
    Joe Ferguson
    Joe Ferguson

    💻
    diwanicki
    diwanicki

    💻 📖
    Lee Thoong Ching
    Lee Thoong Ching

    📖 💻
    Marek Šuppa
    Marek Šuppa

    💻
    Juan J. Martinez
    Juan J. Martinez

    🌍
    R Ryan Dial
    R Ryan Dial

    🌍
    Andrej Manduch
    Andrej Manduch

    📖
    Jay Richards
    Jay Richards

    💻
    Alexander Innes
    Alexander Innes

    💻
    Danny Garcia
    Danny Garcia

    💻
    archpoint
    archpoint

    💻
    Jake McGraw
    Jake McGraw

    💻
    FleischKarussel
    FleischKarussel

    📖
    Dylan Yi
    Dylan Yi

    💻
    Gil Rutkowski
    Gil Rutkowski

    💻
    Desmond Morris
    Desmond Morris

    💻
    Nick Peelman
    Nick Peelman

    💻
    Abraham Vegh
    Abraham Vegh

    💻
    Mohamed Rashid
    Mohamed Rashid

    📖
    Kasey
    Kasey

    💻
    Brett
    Brett

    ⚠️
    Jason Spriggs
    Jason Spriggs

    💻
    Nate Felton
    Nate Felton

    💻
    Manasses Ferreira
    Manasses Ferreira

    💻
    Steve
    Steve

    ⚠️
    matc
    matc

    ⚠️
    Cole R. Davis
    Cole R. Davis

    ⚠️
    gibsonjoshua55
    gibsonjoshua55

    💻
    Robin Temme
    Robin Temme

    💻
    Iman
    Iman

    💻
    Richard Hofman
    Richard Hofman

    💻
    gizzmojr
    gizzmojr

    💻
    Jenny Li
    Jenny Li

    📖
    Geoff Young
    Geoff Young

    💻
    Elliot Blackburn
    Elliot Blackburn

    📖
    Tõnis Ormisson
    Tõnis Ormisson

    💻
    Nicolai Essig
    Nicolai Essig

    💻
    Danielle
    Danielle

    📖
    Lawrence
    Lawrence

    ⚠️ 🐛
    uknzaeinozpas
    uknzaeinozpas

    ⚠️ 💻
    Ryan
    Ryan

    📖
    vcordes79
    vcordes79

    💻
    fordster78
    fordster78

    💻
    CronKz
    CronKz

    💻 🌍
    Tim Bishop
    Tim Bishop

    💻
    Sean McIlvenna
    Sean McIlvenna

    💻
    cepacs
    cepacs

    🐛 📖
    lea-mink
    lea-mink

    💻
    Hannah Tinkler
    Hannah Tinkler

    💻
    Doeke Zanstra
    Doeke Zanstra

    💻
    Djamon Staal
    Djamon Staal

    💻
    Earl Ramirez
    Earl Ramirez

    💻
    Richard Ray Thomas
    Richard Ray Thomas

    💻
    Ryan Kuba
    Ryan Kuba

    💻
    Brian Monroe
    Brian Monroe

    💻
    plexorama
    plexorama

    💻
    Till Deeke
    Till Deeke

    💻
    5quirrel
    5quirrel

    💻
    Jason
    Jason

    💻
    Antti
    Antti

    💻
    DeusMaximus
    DeusMaximus

    💻
    a-royal
    a-royal

    🌍
    Alberto Aldrigo
    Alberto Aldrigo

    🌍
    Alex Stanev
    Alex Stanev

    🌍
    Andreas Rehm
    Andreas Rehm

    🌍
    Andreas Erhard
    Andreas Erhard

    🌍
    Andrés Vanegas Jiménez
    Andrés Vanegas Jiménez

    🌍
    Antonio Schiavon
    Antonio Schiavon

    🌍
    benunter
    benunter

    🌍
    Borys Żmuda
    Borys Żmuda

    🌍
    chibacityblues
    chibacityblues

    🌍
    Chien Wei Lin
    Chien Wei Lin

    🌍
    Christian Schuster
    Christian Schuster

    🌍
    Christian Stefanus
    Christian Stefanus

    🌍
    wxcafé
    wxcafé

    🌍
    dpyroc
    dpyroc

    🌍
    Daniel Friedlmaier
    Daniel Friedlmaier

    🌍
    Daniel Heene
    Daniel Heene

    🌍
    danielcb
    danielcb

    🌍
    Dominik Senti
    Dominik Senti

    🌍
    Eric Gautheron
    Eric Gautheron

    🌍
    Erlend Pilø
    Erlend Pilø

    🌍
    Fabio Rapposelli
    Fabio Rapposelli

    🌍
    Felipe Barros
    Felipe Barros

    🌍
    Fernando Possebon
    Fernando Possebon

    🌍
    gdraque
    gdraque

    🌍
    Georg Wallisch
    Georg Wallisch

    🌍
    Gerardo Robles
    Gerardo Robles

    🌍
    Gluek
    Gluek

    🌍
    AdnanAbuShahad
    AdnanAbuShahad

    🌍
    Hafidzi My
    Hafidzi My

    🌍
    Harim Park
    Harim Park

    🌍
    Henrik Kentsson
    Henrik Kentsson

    🌍
    Husnul Yaqien
    Husnul Yaqien

    🌍
    Ibrahim
    Ibrahim

    🌍
    igolman
    igolman

    🌍
    itangiang
    itangiang

    🌍
    jarby1211
    jarby1211

    🌍
    Jhonn Willker
    Jhonn Willker

    🌍
    Jose
    Jose

    🌍
    laopangzi
    laopangzi

    🌍
    Lars Strojny
    Lars Strojny

    🌍
    MarcosBL
    MarcosBL

    🌍
    marie joy cajes
    marie joy cajes

    🌍
    Mark S. Johansen
    Mark S. Johansen

    🌍
    Martin Stub
    Martin Stub

    🌍
    Meyer Flavio
    Meyer Flavio

    🌍
    Micael Rodrigues
    Micael Rodrigues

    🌍
    Mikael Rasmussen
    Mikael Rasmussen

    🌍
    IxFail
    IxFail

    🌍
    Mohammed Fota
    Mohammed Fota

    🌍
    Moayad Alserihi
    Moayad Alserihi

    🌍
    saymd
    saymd

    🌍
    Patrik Larsson
    Patrik Larsson

    🌍
    drcryo
    drcryo

    🌍
    pawel1615
    pawel1615

    🌍
    bodrovics
    bodrovics

    🌍
    priatna
    priatna

    🌍
    Fan Jiang
    Fan Jiang

    🌍
    ragnarcx
    ragnarcx

    🌍
    Rein van Haaren
    Rein van Haaren

    🌍
    Teguh Dwicaksana
    Teguh Dwicaksana

    🌍
    fraccie
    fraccie

    🌍
    vinzruzell
    vinzruzell

    🌍
    Kevin Austin
    Kevin Austin

    🌍
    Wira Sandy
    Wira Sandy

    🌍
    Илья
    Илья

    🌍
    GodUseVPN
    GodUseVPN

    🌍
    周周
    周周

    🌍
    Sam
    Sam

    💻
    Azerothian
    Azerothian

    💻
    Wes Hulette
    Wes Hulette

    💻
    patrict
    patrict

    💻
    Dmitriy Minaev
    Dmitriy Minaev

    💻
    liquidhorse
    liquidhorse

    💻
    Jordi Boggiano
    Jordi Boggiano

    💻
    Ivan Nieto
    Ivan Nieto

    💻
    Ben RUBSON
    Ben RUBSON

    💻
    NMathar
    NMathar

    💻
    Steffen
    Steffen

    💻
    Sxderp
    Sxderp

    💻
    fanta8897
    fanta8897

    💻
    Andrey Bolonin
    Andrey Bolonin

    💻
    shinayoshi
    shinayoshi

    💻
    Hubert
    Hubert

    💻
    KeenRivals
    KeenRivals

    💻
    omyno
    omyno

    💻
    Evgeny
    Evgeny

    💻
    Colin Campbell
    Colin Campbell

    💻
    Ľubomír Kučera
    Ľubomír Kučera

    💻
    Martin Meredith
    Martin Meredith

    💻
    Tim Farmer
    Tim Farmer

    💻
    Marián Skrip
    Marián Skrip

    💻
    Godfrey Martinez
    Godfrey Martinez

    💻
    bigtreeEdo
    bigtreeEdo

    💻
    Colin  McNeil
    Colin McNeil

    💻
    JoKneeMo
    JoKneeMo

    💻
    Joshi
    Joshi

    💻
    Anthony Burns
    Anthony Burns

    💻
    johnson-yi
    johnson-yi

    💻
    Sanjay Govind
    Sanjay Govind

    💻
    Peter Upfold
    Peter Upfold

    💻
    Jared Biel
    Jared Biel

    💻
    Dampfklon
    Dampfklon

    💻
    Charles Hamilton
    Charles Hamilton

    💻
    Giuseppe Iannello
    Giuseppe Iannello

    💻
    Peter Dave Hello
    Peter Dave Hello

    💻
    sigmoidal
    sigmoidal

    💻
    Vincent Lainé
    Vincent Lainé

    💻
    Lucas Pleß
    Lucas Pleß

    💻
    Ian Littman
    Ian Littman

    💻
    João Paulo
    João Paulo

    💻
    ThoBur
    ThoBur

    💻
    Alexander Chibrikin
    Alexander Chibrikin

    💻
    Anthony Winstanley
    Anthony Winstanley

    💻
    Folke
    Folke

    💻
    Bennett Blodinger
    Bennett Blodinger

    💻
    NMC
    NMC

    💻
    andres-baller
    andres-baller

    💻
    sean-borg
    sean-borg

    💻
    EDVLeer
    EDVLeer

    💻
    Kurokat
    Kurokat

    💻
    Kevin Köllmann
    Kevin Köllmann

    💻
    sw-mreyes
    sw-mreyes

    💻
    Joel Pittet
    Joel Pittet

    💻
    Eli Young
    Eli Young

    💻
    Raell Dottin
    Raell Dottin

    💻
    Tom Misilo
    Tom Misilo

    💻
    David Davenne
    David Davenne

    💻
    Mark Stenglein
    Mark Stenglein

    💻
    ajsy
    ajsy

    💻
    Jan Kiesewetter
    Jan Kiesewetter

    💻
    Tetrachloromethane250
    Tetrachloromethane250

    💻
    Lars Kajes
    Lars Kajes

    💻
    Joly0
    Joly0

    💻
    theburger
    theburger

    💻
    David Valin Alonso
    David Valin Alonso

    💻
    andreaci
    andreaci

    💻
    Jelle Sebreghts
    Jelle Sebreghts

    💻
    Michael Pietsch
    Michael Pietsch

    Masudul Haque Shihab
    Masudul Haque Shihab

    💻
    Supapong Areeprasertkul
    Supapong Areeprasertkul

    💻
    Peter Sarossy
    Peter Sarossy

    💻
    Renee Margaret McConahy
    Renee Margaret McConahy

    💻
    JohnnyPicnic
    JohnnyPicnic

    💻
    markbrule
    markbrule

    💻
    Mike Campbell
    Mike Campbell

    💻
    tbrconnect
    tbrconnect

    💻
    kcoyo
    kcoyo

    💻
    Travis Miller
    Travis Miller

    💻
    Evan Taylor
    Evan Taylor

    💻
    Petri Asikainen
    Petri Asikainen

    💻
    derdeagle
    derdeagle

    💻
    Mike Frysinger
    Mike Frysinger

    💻
    ALPHA
    ALPHA

    💻
    FliegenKLATSCH
    FliegenKLATSCH

    💻
    Jeremy Price
    Jeremy Price

    💻
    Toreg87
    Toreg87

    💻
    Matthew Nickson
    Matthew Nickson

    💻
    Jethro Nederhof
    Jethro Nederhof

    💻
    Oskar Stenberg
    Oskar Stenberg

    💻
    Robert-Azelis
    Robert-Azelis

    💻
    Alexander William Smith
    Alexander William Smith

    💻
    LEITWERK AG
    LEITWERK AG

    💻
    Adam
    Adam

    💻
    Ian
    Ian

    💻
    Shao Yu-Lung (Allen)
    Shao Yu-Lung (Allen)

    💻
    Haxatron
    Haxatron

    💻
    PlaneNuts
    PlaneNuts

    💻
    Bradley Coudriet
    Bradley Coudriet

    💻
    Dalton Durst
    Dalton Durst

    💻
    Alex Janes
    Alex Janes

    💻
    Nuraeil
    Nuraeil

    💻
    TenOfTens
    TenOfTens

    💻
    waffle
    waffle

    💻
    Yevhenii Huzii
    Yevhenii Huzii

    💻
    Achmad Fienan Rahardianto
    Achmad Fienan Rahardianto

    💻
    Yevhenii Huzii
    Yevhenii Huzii

    💻
    Christian Weirich
    Christian Weirich

    💻
    denzfarid
    denzfarid

    ntbutler-nbcs
    ntbutler-nbcs

    💻
    Naveen
    Naveen

    💻
    Mike Roquemore
    Mike Roquemore

    💻
    Daniel Reeder
    Daniel Reeder

    🌍 🌍 💻
    vickyjaura183
    vickyjaura183

    💻
    Peace
    Peace

    💻
    Kyle Gordon
    Kyle Gordon

    💻
    Katharina Drexel
    Katharina Drexel

    💻
    David Sferruzza
    David Sferruzza

    💻
    Rick Nelson
    Rick Nelson

    💻
    BasO12
    BasO12

    💻
    Vautia
    Vautia

    💻
    Chris Hartjes
    Chris Hartjes

    💻
    geo-chen
    geo-chen

    💻
    Phan Nguyen
    Phan Nguyen

    💻
    Iisakki Jaakkola
    Iisakki Jaakkola

    💻
    Ikko Ashimine
    Ikko Ashimine

    💻
    Lukas Fehling
    Lukas Fehling

    💻
    Fernando Almeida
    Fernando Almeida

    💻
    akemidx
    akemidx

    💻
    Oguz Bilgic
    Oguz Bilgic

    💻
    Scooter Crawford
    Scooter Crawford

    💻
    subdriven
    subdriven

    💻
    Andrew Savinykh
    Andrew Savinykh

    💻
    Tadayuki Onishi
    Tadayuki Onishi

    💻
    Florian
    Florian

    💻
    Spencer Long
    Spencer Long

    💻
    Marcus Moore
    Marcus Moore

    💻
    Martin Meredith
    Martin Meredith

    dboth
    dboth

    💻
    Zachary Fleck
    Zachary Fleck

    💻
    VIKAAS-A
    VIKAAS-A

    💻
    Abdul Kareem
    Abdul Kareem

    💻
    NojoudAlshehri
    NojoudAlshehri

    💻
    Stefan Stidl
    Stefan Stidl

    💻
    Quentin Aymard
    Quentin Aymard

    💻
    Grant Le Roux
    Grant Le Roux

    💻
    Bogdan
    Bogdan

    💻
    mmanjos
    mmanjos

    💻
    Abdelaziz Faki
    Abdelaziz Faki

    💻
    bilias
    bilias

    💻
    coach1988
    coach1988

    💻
    MrM
    MrM

    💻
    koiakoia
    koiakoia

    💻
    Mustafa Online
    Mustafa Online

    💻
    franceslui
    franceslui

    💻
    Q4kK
    Q4kK

    💻
    squintfox
    squintfox

    💻
    Jeff Clay
    Jeff Clay

    💻
    Phil J R
    Phil J R

    💻
    i_virus
    i_virus

    💻
    Paul Grime
    Paul Grime

    💻
    Lee Porte
    Lee Porte

    💻
    BRYAN
    BRYAN

    💻
    U-H-T
    U-H-T

    💻
    + + + + This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome! From 85cb7c92e755107f6a4a12d846222d5f15aadd74 Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 3 Jun 2024 20:44:40 +0100 Subject: [PATCH 054/110] Updated strings Signed-off-by: snipe --- resources/lang/aa-ER/account/general.php | 1 + resources/lang/aa-ER/admin/hardware/form.php | 3 + .../lang/aa-ER/admin/hardware/general.php | 4 +- resources/lang/aa-ER/admin/users/message.php | 6 + resources/lang/aa-ER/general.php | 10 +- resources/lang/aa-ER/table.php | 9 +- resources/lang/af-ZA/account/general.php | 1 + resources/lang/af-ZA/admin/hardware/form.php | 3 + .../lang/af-ZA/admin/hardware/general.php | 4 +- resources/lang/af-ZA/admin/users/message.php | 6 + resources/lang/af-ZA/general.php | 10 +- resources/lang/af-ZA/table.php | 9 +- resources/lang/am-ET/account/general.php | 1 + resources/lang/am-ET/admin/hardware/form.php | 3 + .../lang/am-ET/admin/hardware/general.php | 4 +- resources/lang/am-ET/admin/users/message.php | 6 + resources/lang/am-ET/general.php | 12 +- resources/lang/am-ET/table.php | 9 +- resources/lang/ar-SA/account/general.php | 1 + resources/lang/ar-SA/admin/hardware/form.php | 3 + .../lang/ar-SA/admin/hardware/general.php | 4 +- resources/lang/ar-SA/admin/users/message.php | 6 + resources/lang/ar-SA/general.php | 10 +- resources/lang/ar-SA/table.php | 9 +- resources/lang/bg-BG/account/general.php | 1 + resources/lang/bg-BG/admin/hardware/form.php | 3 + .../lang/bg-BG/admin/hardware/general.php | 4 +- resources/lang/bg-BG/admin/users/message.php | 6 + resources/lang/bg-BG/general.php | 10 +- resources/lang/bg-BG/table.php | 9 +- resources/lang/ca-ES/account/general.php | 1 + resources/lang/ca-ES/admin/hardware/form.php | 3 + .../lang/ca-ES/admin/hardware/general.php | 4 +- resources/lang/ca-ES/admin/users/message.php | 6 + resources/lang/ca-ES/general.php | 10 +- resources/lang/ca-ES/table.php | 9 +- resources/lang/chr-US/account/general.php | 13 + .../lang/chr-US/admin/accessories/general.php | 22 + .../lang/chr-US/admin/accessories/message.php | 39 ++ .../lang/chr-US/admin/accessories/table.php | 11 + .../chr-US/admin/asset_maintenances/form.php | 14 + .../admin/asset_maintenances/general.php | 16 + .../admin/asset_maintenances/message.php | 21 + .../chr-US/admin/asset_maintenances/table.php | 8 + .../lang/chr-US/admin/categories/general.php | 25 + .../lang/chr-US/admin/categories/message.php | 26 + .../lang/chr-US/admin/categories/table.php | 10 + .../lang/chr-US/admin/companies/general.php | 7 + .../lang/chr-US/admin/companies/message.php | 20 + .../lang/chr-US/admin/companies/table.php | 11 + .../lang/chr-US/admin/components/general.php | 16 + .../lang/chr-US/admin/components/message.php | 37 ++ .../lang/chr-US/admin/components/table.php | 5 + .../lang/chr-US/admin/consumables/general.php | 11 + .../lang/chr-US/admin/consumables/message.php | 37 ++ .../lang/chr-US/admin/consumables/table.php | 5 + .../chr-US/admin/custom_fields/general.php | 61 ++ .../chr-US/admin/custom_fields/message.php | 63 ++ .../lang/chr-US/admin/departments/message.php | 22 + .../lang/chr-US/admin/departments/table.php | 11 + .../chr-US/admin/depreciations/general.php | 16 + .../chr-US/admin/depreciations/message.php | 25 + .../lang/chr-US/admin/depreciations/table.php | 11 + .../lang/chr-US/admin/groups/message.php | 22 + resources/lang/chr-US/admin/groups/table.php | 9 + resources/lang/chr-US/admin/groups/titles.php | 16 + resources/lang/chr-US/admin/hardware/form.php | 62 ++ .../lang/chr-US/admin/hardware/general.php | 43 ++ .../lang/chr-US/admin/hardware/message.php | 95 +++ .../lang/chr-US/admin/hardware/table.php | 33 ++ resources/lang/chr-US/admin/kits/general.php | 50 ++ .../lang/chr-US/admin/labels/message.php | 11 + resources/lang/chr-US/admin/labels/table.php | 19 + resources/lang/chr-US/admin/licenses/form.php | 22 + .../lang/chr-US/admin/licenses/general.php | 51 ++ .../lang/chr-US/admin/licenses/message.php | 54 ++ .../lang/chr-US/admin/licenses/table.php | 18 + .../lang/chr-US/admin/locations/message.php | 29 + .../lang/chr-US/admin/locations/table.php | 42 ++ .../chr-US/admin/manufacturers/message.php | 30 + .../lang/chr-US/admin/manufacturers/table.php | 16 + .../lang/chr-US/admin/models/general.php | 18 + .../lang/chr-US/admin/models/message.php | 47 ++ resources/lang/chr-US/admin/models/table.php | 17 + .../lang/chr-US/admin/reports/general.php | 17 + .../lang/chr-US/admin/reports/message.php | 5 + .../lang/chr-US/admin/settings/general.php | 368 ++++++++++++ .../lang/chr-US/admin/settings/message.php | 46 ++ .../lang/chr-US/admin/settings/table.php | 6 + .../chr-US/admin/statuslabels/message.php | 32 + .../lang/chr-US/admin/statuslabels/table.php | 19 + .../lang/chr-US/admin/suppliers/message.php | 28 + .../lang/chr-US/admin/suppliers/table.php | 26 + resources/lang/chr-US/admin/users/general.php | 54 ++ resources/lang/chr-US/admin/users/message.php | 74 +++ resources/lang/chr-US/admin/users/table.php | 41 ++ resources/lang/chr-US/auth.php | 20 + resources/lang/chr-US/auth/general.php | 19 + resources/lang/chr-US/auth/message.php | 45 ++ resources/lang/chr-US/button.php | 24 + resources/lang/chr-US/general.php | 551 ++++++++++++++++++ resources/lang/chr-US/help.php | 35 ++ resources/lang/chr-US/localizations.php | 321 ++++++++++ resources/lang/chr-US/mail.php | 93 +++ resources/lang/chr-US/pagination.php | 20 + resources/lang/chr-US/passwords.php | 9 + resources/lang/chr-US/reminders.php | 21 + resources/lang/chr-US/table.php | 11 + resources/lang/chr-US/validation.php | 162 +++++ resources/lang/cs-CZ/account/general.php | 1 + resources/lang/cs-CZ/admin/hardware/form.php | 3 + .../lang/cs-CZ/admin/hardware/general.php | 4 +- resources/lang/cs-CZ/admin/users/message.php | 6 + resources/lang/cs-CZ/general.php | 10 +- resources/lang/cs-CZ/table.php | 9 +- resources/lang/cy-GB/account/general.php | 1 + resources/lang/cy-GB/admin/hardware/form.php | 3 + .../lang/cy-GB/admin/hardware/general.php | 4 +- resources/lang/cy-GB/admin/users/message.php | 6 + resources/lang/cy-GB/general.php | 10 +- resources/lang/cy-GB/table.php | 9 +- resources/lang/da-DK/account/general.php | 1 + resources/lang/da-DK/admin/hardware/form.php | 3 + .../lang/da-DK/admin/hardware/general.php | 4 +- resources/lang/da-DK/admin/users/message.php | 6 + resources/lang/da-DK/general.php | 10 +- resources/lang/da-DK/table.php | 9 +- resources/lang/de-DE/account/general.php | 1 + resources/lang/de-DE/admin/hardware/form.php | 3 + .../lang/de-DE/admin/hardware/general.php | 4 +- .../lang/de-DE/admin/hardware/message.php | 4 +- .../lang/de-DE/admin/settings/general.php | 2 +- resources/lang/de-DE/admin/users/message.php | 6 + resources/lang/de-DE/general.php | 10 +- resources/lang/de-DE/table.php | 9 +- resources/lang/de-if/account/general.php | 1 + resources/lang/de-if/admin/hardware/form.php | 3 + .../lang/de-if/admin/hardware/general.php | 4 +- .../lang/de-if/admin/hardware/message.php | 8 +- .../lang/de-if/admin/settings/general.php | 2 +- resources/lang/de-if/admin/users/message.php | 6 + resources/lang/de-if/general.php | 12 +- resources/lang/de-if/table.php | 9 +- resources/lang/el-GR/account/general.php | 1 + resources/lang/el-GR/admin/hardware/form.php | 3 + .../lang/el-GR/admin/hardware/general.php | 4 +- resources/lang/el-GR/admin/users/message.php | 6 + resources/lang/el-GR/general.php | 10 +- resources/lang/el-GR/table.php | 9 +- resources/lang/en-GB/account/general.php | 1 + resources/lang/en-GB/admin/hardware/form.php | 3 + .../lang/en-GB/admin/hardware/general.php | 4 +- resources/lang/en-GB/admin/users/message.php | 6 + resources/lang/en-GB/general.php | 10 +- resources/lang/en-GB/table.php | 9 +- resources/lang/en-ID/account/general.php | 1 + resources/lang/en-ID/admin/hardware/form.php | 3 + .../lang/en-ID/admin/hardware/general.php | 4 +- resources/lang/en-ID/admin/users/message.php | 6 + resources/lang/en-ID/general.php | 10 +- resources/lang/en-ID/table.php | 9 +- resources/lang/es-CO/account/general.php | 1 + .../lang/es-CO/admin/categories/message.php | 2 +- .../lang/es-CO/admin/categories/table.php | 2 +- .../es-CO/admin/depreciations/general.php | 4 +- resources/lang/es-CO/admin/hardware/form.php | 3 + .../lang/es-CO/admin/hardware/general.php | 9 +- .../lang/es-CO/admin/hardware/message.php | 8 +- .../lang/es-CO/admin/settings/general.php | 10 +- resources/lang/es-CO/admin/users/message.php | 6 + resources/lang/es-CO/general.php | 16 +- resources/lang/es-CO/table.php | 9 +- resources/lang/es-ES/account/general.php | 1 + .../lang/es-ES/admin/categories/message.php | 2 +- resources/lang/es-ES/admin/hardware/form.php | 3 + .../lang/es-ES/admin/hardware/general.php | 9 +- .../lang/es-ES/admin/hardware/message.php | 8 +- .../lang/es-ES/admin/settings/general.php | 6 +- resources/lang/es-ES/admin/users/message.php | 6 + resources/lang/es-ES/general.php | 18 +- resources/lang/es-ES/table.php | 9 +- resources/lang/es-MX/account/general.php | 1 + .../lang/es-MX/admin/categories/message.php | 2 +- .../lang/es-MX/admin/categories/table.php | 2 +- resources/lang/es-MX/admin/hardware/form.php | 3 + .../lang/es-MX/admin/hardware/general.php | 9 +- .../lang/es-MX/admin/hardware/message.php | 10 +- .../lang/es-MX/admin/settings/general.php | 4 +- resources/lang/es-MX/admin/users/message.php | 6 + resources/lang/es-MX/general.php | 16 +- resources/lang/es-MX/table.php | 9 +- resources/lang/es-VE/account/general.php | 1 + .../lang/es-VE/admin/categories/general.php | 2 +- .../lang/es-VE/admin/categories/table.php | 4 +- resources/lang/es-VE/admin/hardware/form.php | 3 + .../lang/es-VE/admin/hardware/general.php | 9 +- .../lang/es-VE/admin/hardware/message.php | 8 +- .../lang/es-VE/admin/settings/general.php | 10 +- resources/lang/es-VE/admin/users/message.php | 6 + resources/lang/es-VE/general.php | 20 +- resources/lang/es-VE/table.php | 9 +- resources/lang/et-EE/account/general.php | 1 + resources/lang/et-EE/admin/hardware/form.php | 3 + .../lang/et-EE/admin/hardware/general.php | 4 +- resources/lang/et-EE/admin/users/message.php | 6 + resources/lang/et-EE/general.php | 12 +- resources/lang/et-EE/table.php | 9 +- resources/lang/fa-IR/account/general.php | 1 + resources/lang/fa-IR/admin/hardware/form.php | 3 + .../lang/fa-IR/admin/hardware/general.php | 4 +- resources/lang/fa-IR/admin/users/message.php | 6 + resources/lang/fa-IR/general.php | 11 +- resources/lang/fa-IR/table.php | 9 +- resources/lang/fi-FI/account/general.php | 1 + resources/lang/fi-FI/admin/hardware/form.php | 3 + .../lang/fi-FI/admin/hardware/general.php | 4 +- resources/lang/fi-FI/admin/users/message.php | 6 + resources/lang/fi-FI/general.php | 10 +- resources/lang/fi-FI/table.php | 9 +- resources/lang/fil-PH/account/general.php | 1 + resources/lang/fil-PH/admin/hardware/form.php | 3 + .../lang/fil-PH/admin/hardware/general.php | 4 +- resources/lang/fil-PH/admin/users/message.php | 6 + resources/lang/fil-PH/general.php | 10 +- resources/lang/fil-PH/table.php | 9 +- resources/lang/fr-FR/account/general.php | 1 + resources/lang/fr-FR/admin/hardware/form.php | 3 + .../lang/fr-FR/admin/hardware/general.php | 4 +- resources/lang/fr-FR/admin/users/message.php | 6 + resources/lang/fr-FR/general.php | 10 +- resources/lang/fr-FR/table.php | 9 +- resources/lang/ga-IE/account/general.php | 1 + resources/lang/ga-IE/admin/hardware/form.php | 3 + .../lang/ga-IE/admin/hardware/general.php | 4 +- resources/lang/ga-IE/admin/users/message.php | 6 + resources/lang/ga-IE/general.php | 10 +- resources/lang/ga-IE/table.php | 9 +- resources/lang/he-IL/account/general.php | 1 + resources/lang/he-IL/admin/hardware/form.php | 3 + .../lang/he-IL/admin/hardware/general.php | 4 +- resources/lang/he-IL/admin/users/message.php | 6 + resources/lang/he-IL/general.php | 10 +- resources/lang/he-IL/table.php | 9 +- resources/lang/hr-HR/account/general.php | 1 + resources/lang/hr-HR/admin/hardware/form.php | 3 + .../lang/hr-HR/admin/hardware/general.php | 4 +- resources/lang/hr-HR/admin/users/message.php | 6 + resources/lang/hr-HR/general.php | 10 +- resources/lang/hr-HR/table.php | 9 +- resources/lang/hu-HU/account/general.php | 1 + resources/lang/hu-HU/admin/hardware/form.php | 3 + .../lang/hu-HU/admin/hardware/general.php | 4 +- resources/lang/hu-HU/admin/users/message.php | 6 + resources/lang/hu-HU/general.php | 10 +- resources/lang/hu-HU/table.php | 9 +- resources/lang/id-ID/account/general.php | 1 + resources/lang/id-ID/admin/hardware/form.php | 3 + .../lang/id-ID/admin/hardware/general.php | 4 +- resources/lang/id-ID/admin/users/message.php | 6 + resources/lang/id-ID/general.php | 10 +- resources/lang/id-ID/table.php | 9 +- resources/lang/is-IS/account/general.php | 1 + resources/lang/is-IS/admin/hardware/form.php | 3 + .../lang/is-IS/admin/hardware/general.php | 4 +- resources/lang/is-IS/admin/users/message.php | 6 + resources/lang/is-IS/general.php | 10 +- resources/lang/is-IS/table.php | 9 +- resources/lang/it-IT/account/general.php | 1 + resources/lang/it-IT/admin/hardware/form.php | 3 + .../lang/it-IT/admin/hardware/general.php | 2 +- .../lang/it-IT/admin/hardware/message.php | 8 +- resources/lang/it-IT/admin/users/message.php | 6 + resources/lang/it-IT/general.php | 14 +- resources/lang/it-IT/table.php | 9 +- resources/lang/iu-NU/account/general.php | 1 + resources/lang/iu-NU/admin/hardware/form.php | 3 + .../lang/iu-NU/admin/hardware/general.php | 4 +- resources/lang/iu-NU/admin/users/message.php | 6 + resources/lang/iu-NU/general.php | 10 +- resources/lang/iu-NU/table.php | 9 +- resources/lang/ja-JP/account/general.php | 1 + resources/lang/ja-JP/admin/hardware/form.php | 3 + .../lang/ja-JP/admin/hardware/general.php | 4 +- resources/lang/ja-JP/admin/users/message.php | 6 + resources/lang/ja-JP/general.php | 10 +- resources/lang/ja-JP/table.php | 9 +- resources/lang/km-KH/account/general.php | 1 + .../lang/km-KH/admin/accessories/message.php | 10 +- resources/lang/km-KH/admin/hardware/form.php | 3 + .../lang/km-KH/admin/hardware/general.php | 4 +- resources/lang/km-KH/admin/hardware/table.php | 4 +- resources/lang/km-KH/admin/licenses/table.php | 2 +- resources/lang/km-KH/admin/settings/table.php | 4 +- resources/lang/km-KH/admin/users/message.php | 6 + resources/lang/km-KH/admin/users/table.php | 4 +- resources/lang/km-KH/auth.php | 6 +- resources/lang/km-KH/auth/general.php | 26 +- resources/lang/km-KH/auth/message.php | 40 +- resources/lang/km-KH/button.php | 32 +- resources/lang/km-KH/general.php | 52 +- resources/lang/km-KH/help.php | 2 +- resources/lang/km-KH/mail.php | 132 ++--- resources/lang/km-KH/pagination.php | 4 +- resources/lang/km-KH/table.php | 9 +- resources/lang/ko-KR/account/general.php | 1 + resources/lang/ko-KR/admin/hardware/form.php | 3 + .../lang/ko-KR/admin/hardware/general.php | 4 +- resources/lang/ko-KR/admin/users/message.php | 6 + resources/lang/ko-KR/general.php | 10 +- resources/lang/ko-KR/table.php | 9 +- resources/lang/lt-LT/account/general.php | 1 + resources/lang/lt-LT/admin/hardware/form.php | 3 + .../lang/lt-LT/admin/hardware/general.php | 4 +- resources/lang/lt-LT/admin/users/message.php | 6 + resources/lang/lt-LT/general.php | 10 +- resources/lang/lt-LT/table.php | 9 +- resources/lang/lv-LV/account/general.php | 1 + resources/lang/lv-LV/admin/hardware/form.php | 3 + .../lang/lv-LV/admin/hardware/general.php | 4 +- resources/lang/lv-LV/admin/users/message.php | 6 + resources/lang/lv-LV/general.php | 10 +- resources/lang/lv-LV/table.php | 9 +- resources/lang/mi-NZ/account/general.php | 1 + resources/lang/mi-NZ/admin/hardware/form.php | 3 + .../lang/mi-NZ/admin/hardware/general.php | 4 +- resources/lang/mi-NZ/admin/users/message.php | 6 + resources/lang/mi-NZ/general.php | 10 +- resources/lang/mi-NZ/table.php | 9 +- resources/lang/mk-MK/account/general.php | 1 + resources/lang/mk-MK/admin/hardware/form.php | 3 + .../lang/mk-MK/admin/hardware/general.php | 4 +- resources/lang/mk-MK/admin/users/message.php | 6 + resources/lang/mk-MK/general.php | 10 +- resources/lang/mk-MK/table.php | 9 +- resources/lang/ml-IN/account/general.php | 1 + resources/lang/ml-IN/admin/hardware/form.php | 3 + .../lang/ml-IN/admin/hardware/general.php | 4 +- resources/lang/ml-IN/admin/users/message.php | 6 + resources/lang/ml-IN/general.php | 10 +- resources/lang/ml-IN/table.php | 9 +- resources/lang/mn-MN/account/general.php | 1 + resources/lang/mn-MN/admin/hardware/form.php | 3 + .../lang/mn-MN/admin/hardware/general.php | 4 +- resources/lang/mn-MN/admin/users/message.php | 6 + resources/lang/mn-MN/general.php | 10 +- resources/lang/mn-MN/table.php | 9 +- resources/lang/ms-MY/account/general.php | 1 + resources/lang/ms-MY/admin/hardware/form.php | 3 + .../lang/ms-MY/admin/hardware/general.php | 4 +- resources/lang/ms-MY/admin/users/message.php | 6 + resources/lang/ms-MY/general.php | 10 +- resources/lang/ms-MY/table.php | 9 +- resources/lang/nl-NL/account/general.php | 1 + resources/lang/nl-NL/admin/hardware/form.php | 3 + .../lang/nl-NL/admin/hardware/general.php | 4 +- resources/lang/nl-NL/admin/users/message.php | 6 + resources/lang/nl-NL/general.php | 10 +- resources/lang/nl-NL/table.php | 9 +- resources/lang/no-NO/account/general.php | 1 + resources/lang/no-NO/admin/hardware/form.php | 3 + .../lang/no-NO/admin/hardware/general.php | 4 +- resources/lang/no-NO/admin/users/message.php | 6 + resources/lang/no-NO/general.php | 10 +- resources/lang/no-NO/table.php | 9 +- resources/lang/pl-PL/account/general.php | 1 + resources/lang/pl-PL/admin/hardware/form.php | 3 + .../lang/pl-PL/admin/hardware/general.php | 4 +- resources/lang/pl-PL/admin/users/message.php | 6 + resources/lang/pl-PL/general.php | 10 +- resources/lang/pl-PL/table.php | 9 +- resources/lang/pt-BR/account/general.php | 1 + resources/lang/pt-BR/admin/hardware/form.php | 3 + .../lang/pt-BR/admin/hardware/general.php | 4 +- resources/lang/pt-BR/admin/users/message.php | 6 + resources/lang/pt-BR/general.php | 10 +- resources/lang/pt-BR/table.php | 9 +- resources/lang/pt-PT/account/general.php | 1 + resources/lang/pt-PT/admin/hardware/form.php | 3 + .../lang/pt-PT/admin/hardware/general.php | 4 +- resources/lang/pt-PT/admin/users/message.php | 6 + resources/lang/pt-PT/general.php | 10 +- resources/lang/pt-PT/table.php | 9 +- resources/lang/ro-RO/account/general.php | 1 + resources/lang/ro-RO/admin/hardware/form.php | 3 + .../lang/ro-RO/admin/hardware/general.php | 4 +- resources/lang/ro-RO/admin/users/message.php | 6 + resources/lang/ro-RO/general.php | 10 +- resources/lang/ro-RO/table.php | 9 +- resources/lang/ru-RU/account/general.php | 1 + resources/lang/ru-RU/admin/hardware/form.php | 3 + .../lang/ru-RU/admin/hardware/general.php | 4 +- resources/lang/ru-RU/admin/users/message.php | 6 + resources/lang/ru-RU/general.php | 10 +- resources/lang/ru-RU/table.php | 9 +- resources/lang/si-LK/account/general.php | 1 + resources/lang/si-LK/admin/hardware/form.php | 3 + .../lang/si-LK/admin/hardware/general.php | 4 +- resources/lang/si-LK/admin/users/message.php | 6 + resources/lang/si-LK/general.php | 10 +- resources/lang/si-LK/table.php | 9 +- resources/lang/sk-SK/account/general.php | 1 + resources/lang/sk-SK/admin/hardware/form.php | 3 + .../lang/sk-SK/admin/hardware/general.php | 4 +- resources/lang/sk-SK/admin/users/message.php | 6 + resources/lang/sk-SK/general.php | 10 +- resources/lang/sk-SK/table.php | 9 +- resources/lang/sl-SI/account/general.php | 1 + resources/lang/sl-SI/admin/hardware/form.php | 3 + .../lang/sl-SI/admin/hardware/general.php | 4 +- resources/lang/sl-SI/admin/users/message.php | 6 + resources/lang/sl-SI/general.php | 10 +- resources/lang/sl-SI/table.php | 9 +- resources/lang/so-SO/account/general.php | 1 + resources/lang/so-SO/admin/hardware/form.php | 3 + .../lang/so-SO/admin/hardware/general.php | 4 +- resources/lang/so-SO/admin/users/message.php | 6 + resources/lang/so-SO/general.php | 10 +- resources/lang/so-SO/table.php | 9 +- resources/lang/sq-AL/account/general.php | 1 + resources/lang/sq-AL/admin/hardware/form.php | 3 + .../lang/sq-AL/admin/hardware/general.php | 4 +- resources/lang/sq-AL/admin/users/message.php | 6 + resources/lang/sq-AL/general.php | 10 +- resources/lang/sq-AL/table.php | 9 +- resources/lang/sr-CS/account/general.php | 1 + resources/lang/sr-CS/admin/hardware/form.php | 3 + .../lang/sr-CS/admin/hardware/general.php | 4 +- .../lang/sr-CS/admin/settings/general.php | 2 +- resources/lang/sr-CS/admin/users/message.php | 6 + resources/lang/sr-CS/general.php | 10 +- resources/lang/sr-CS/table.php | 9 +- resources/lang/sv-SE/account/general.php | 1 + resources/lang/sv-SE/admin/hardware/form.php | 3 + .../lang/sv-SE/admin/hardware/general.php | 4 +- resources/lang/sv-SE/admin/users/message.php | 6 + resources/lang/sv-SE/general.php | 10 +- resources/lang/sv-SE/table.php | 9 +- resources/lang/ta-IN/account/general.php | 1 + resources/lang/ta-IN/admin/hardware/form.php | 3 + .../lang/ta-IN/admin/hardware/general.php | 4 +- resources/lang/ta-IN/admin/users/message.php | 6 + resources/lang/ta-IN/general.php | 10 +- resources/lang/ta-IN/table.php | 9 +- resources/lang/th-TH/account/general.php | 1 + resources/lang/th-TH/admin/hardware/form.php | 3 + .../lang/th-TH/admin/hardware/general.php | 4 +- resources/lang/th-TH/admin/users/message.php | 6 + resources/lang/th-TH/general.php | 10 +- resources/lang/th-TH/table.php | 9 +- resources/lang/tl-PH/account/general.php | 1 + resources/lang/tl-PH/admin/hardware/form.php | 3 + .../lang/tl-PH/admin/hardware/general.php | 4 +- resources/lang/tl-PH/admin/users/message.php | 6 + resources/lang/tl-PH/general.php | 10 +- resources/lang/tl-PH/table.php | 9 +- resources/lang/tr-TR/account/general.php | 1 + resources/lang/tr-TR/admin/hardware/form.php | 3 + .../lang/tr-TR/admin/hardware/general.php | 4 +- resources/lang/tr-TR/admin/users/message.php | 6 + resources/lang/tr-TR/admin/users/table.php | 2 +- resources/lang/tr-TR/general.php | 10 +- resources/lang/tr-TR/table.php | 9 +- resources/lang/uk-UA/account/general.php | 1 + resources/lang/uk-UA/admin/hardware/form.php | 3 + .../lang/uk-UA/admin/hardware/general.php | 4 +- resources/lang/uk-UA/admin/users/message.php | 6 + resources/lang/uk-UA/general.php | 10 +- resources/lang/uk-UA/table.php | 9 +- resources/lang/ur-PK/account/general.php | 1 + resources/lang/ur-PK/admin/hardware/form.php | 3 + .../lang/ur-PK/admin/hardware/general.php | 4 +- resources/lang/ur-PK/admin/users/message.php | 6 + resources/lang/ur-PK/general.php | 10 +- resources/lang/ur-PK/table.php | 9 +- .../vendor/backup/ar-SA/notifications.php | 35 -- .../vendor/backup/da-DK/notifications.php | 35 -- .../vendor/backup/de-DE/notifications.php | 35 -- .../vendor/backup/en-US/notifications.php | 35 -- .../vendor/backup/es-ES/notifications.php | 35 -- .../vendor/backup/fa-IR/notifications.php | 35 -- .../vendor/backup/fr-FR/notifications.php | 35 -- resources/lang/vi-VN/account/general.php | 1 + .../lang/vi-VN/admin/companies/table.php | 4 +- .../lang/vi-VN/admin/components/message.php | 2 +- .../lang/vi-VN/admin/consumables/message.php | 2 +- .../lang/vi-VN/admin/departments/message.php | 2 +- resources/lang/vi-VN/admin/hardware/form.php | 3 + .../lang/vi-VN/admin/hardware/general.php | 4 +- resources/lang/vi-VN/admin/users/message.php | 6 + resources/lang/vi-VN/general.php | 68 ++- resources/lang/vi-VN/localizations.php | 2 +- resources/lang/vi-VN/table.php | 9 +- resources/lang/zh-CN/account/general.php | 1 + resources/lang/zh-CN/admin/hardware/form.php | 3 + .../lang/zh-CN/admin/hardware/general.php | 2 +- resources/lang/zh-CN/admin/users/message.php | 6 + resources/lang/zh-CN/general.php | 10 +- resources/lang/zh-CN/table.php | 9 +- resources/lang/zh-HK/account/general.php | 1 + resources/lang/zh-HK/admin/hardware/form.php | 3 + .../lang/zh-HK/admin/hardware/general.php | 4 +- resources/lang/zh-HK/admin/users/message.php | 6 + resources/lang/zh-HK/general.php | 10 +- resources/lang/zh-HK/table.php | 9 +- resources/lang/zh-TW/account/general.php | 1 + resources/lang/zh-TW/admin/hardware/form.php | 3 + .../lang/zh-TW/admin/hardware/general.php | 4 +- resources/lang/zh-TW/admin/users/message.php | 6 + resources/lang/zh-TW/general.php | 10 +- resources/lang/zh-TW/table.php | 9 +- resources/lang/zu-ZA/account/general.php | 1 + resources/lang/zu-ZA/admin/hardware/form.php | 3 + .../lang/zu-ZA/admin/hardware/general.php | 4 +- resources/lang/zu-ZA/admin/users/message.php | 6 + resources/lang/zu-ZA/general.php | 10 +- resources/lang/zu-ZA/table.php | 9 +- 516 files changed, 5300 insertions(+), 984 deletions(-) create mode 100644 resources/lang/chr-US/account/general.php create mode 100644 resources/lang/chr-US/admin/accessories/general.php create mode 100644 resources/lang/chr-US/admin/accessories/message.php create mode 100644 resources/lang/chr-US/admin/accessories/table.php create mode 100644 resources/lang/chr-US/admin/asset_maintenances/form.php create mode 100644 resources/lang/chr-US/admin/asset_maintenances/general.php create mode 100644 resources/lang/chr-US/admin/asset_maintenances/message.php create mode 100644 resources/lang/chr-US/admin/asset_maintenances/table.php create mode 100644 resources/lang/chr-US/admin/categories/general.php create mode 100644 resources/lang/chr-US/admin/categories/message.php create mode 100644 resources/lang/chr-US/admin/categories/table.php create mode 100644 resources/lang/chr-US/admin/companies/general.php create mode 100644 resources/lang/chr-US/admin/companies/message.php create mode 100644 resources/lang/chr-US/admin/companies/table.php create mode 100644 resources/lang/chr-US/admin/components/general.php create mode 100644 resources/lang/chr-US/admin/components/message.php create mode 100644 resources/lang/chr-US/admin/components/table.php create mode 100644 resources/lang/chr-US/admin/consumables/general.php create mode 100644 resources/lang/chr-US/admin/consumables/message.php create mode 100644 resources/lang/chr-US/admin/consumables/table.php create mode 100644 resources/lang/chr-US/admin/custom_fields/general.php create mode 100644 resources/lang/chr-US/admin/custom_fields/message.php create mode 100644 resources/lang/chr-US/admin/departments/message.php create mode 100644 resources/lang/chr-US/admin/departments/table.php create mode 100644 resources/lang/chr-US/admin/depreciations/general.php create mode 100644 resources/lang/chr-US/admin/depreciations/message.php create mode 100644 resources/lang/chr-US/admin/depreciations/table.php create mode 100644 resources/lang/chr-US/admin/groups/message.php create mode 100644 resources/lang/chr-US/admin/groups/table.php create mode 100644 resources/lang/chr-US/admin/groups/titles.php create mode 100644 resources/lang/chr-US/admin/hardware/form.php create mode 100644 resources/lang/chr-US/admin/hardware/general.php create mode 100644 resources/lang/chr-US/admin/hardware/message.php create mode 100644 resources/lang/chr-US/admin/hardware/table.php create mode 100644 resources/lang/chr-US/admin/kits/general.php create mode 100644 resources/lang/chr-US/admin/labels/message.php create mode 100644 resources/lang/chr-US/admin/labels/table.php create mode 100644 resources/lang/chr-US/admin/licenses/form.php create mode 100644 resources/lang/chr-US/admin/licenses/general.php create mode 100644 resources/lang/chr-US/admin/licenses/message.php create mode 100644 resources/lang/chr-US/admin/licenses/table.php create mode 100644 resources/lang/chr-US/admin/locations/message.php create mode 100644 resources/lang/chr-US/admin/locations/table.php create mode 100644 resources/lang/chr-US/admin/manufacturers/message.php create mode 100644 resources/lang/chr-US/admin/manufacturers/table.php create mode 100644 resources/lang/chr-US/admin/models/general.php create mode 100644 resources/lang/chr-US/admin/models/message.php create mode 100644 resources/lang/chr-US/admin/models/table.php create mode 100644 resources/lang/chr-US/admin/reports/general.php create mode 100644 resources/lang/chr-US/admin/reports/message.php create mode 100644 resources/lang/chr-US/admin/settings/general.php create mode 100644 resources/lang/chr-US/admin/settings/message.php create mode 100644 resources/lang/chr-US/admin/settings/table.php create mode 100644 resources/lang/chr-US/admin/statuslabels/message.php create mode 100644 resources/lang/chr-US/admin/statuslabels/table.php create mode 100644 resources/lang/chr-US/admin/suppliers/message.php create mode 100644 resources/lang/chr-US/admin/suppliers/table.php create mode 100644 resources/lang/chr-US/admin/users/general.php create mode 100644 resources/lang/chr-US/admin/users/message.php create mode 100644 resources/lang/chr-US/admin/users/table.php create mode 100644 resources/lang/chr-US/auth.php create mode 100644 resources/lang/chr-US/auth/general.php create mode 100644 resources/lang/chr-US/auth/message.php create mode 100644 resources/lang/chr-US/button.php create mode 100644 resources/lang/chr-US/general.php create mode 100644 resources/lang/chr-US/help.php create mode 100644 resources/lang/chr-US/localizations.php create mode 100644 resources/lang/chr-US/mail.php create mode 100644 resources/lang/chr-US/pagination.php create mode 100644 resources/lang/chr-US/passwords.php create mode 100644 resources/lang/chr-US/reminders.php create mode 100644 resources/lang/chr-US/table.php create mode 100644 resources/lang/chr-US/validation.php delete mode 100644 resources/lang/vendor/backup/ar-SA/notifications.php delete mode 100644 resources/lang/vendor/backup/da-DK/notifications.php delete mode 100644 resources/lang/vendor/backup/de-DE/notifications.php delete mode 100644 resources/lang/vendor/backup/en-US/notifications.php delete mode 100644 resources/lang/vendor/backup/es-ES/notifications.php delete mode 100644 resources/lang/vendor/backup/fa-IR/notifications.php delete mode 100644 resources/lang/vendor/backup/fr-FR/notifications.php diff --git a/resources/lang/aa-ER/account/general.php b/resources/lang/aa-ER/account/general.php index dacaeab732..0d850233f5 100644 --- a/resources/lang/aa-ER/account/general.php +++ b/resources/lang/aa-ER/account/general.php @@ -7,4 +7,5 @@ return array( 'api_base_url_endpoint' => 'crwdns6804:0crwdne6804:0', 'api_token_expiration_time' => 'crwdns6806:0crwdne6806:0', 'api_reference' => 'crwdns6808:0crwdne6808:0', + 'profile_updated' => 'crwdns12202:0crwdne12202:0', ); diff --git a/resources/lang/aa-ER/admin/hardware/form.php b/resources/lang/aa-ER/admin/hardware/form.php index 67f634ea80..03289a1626 100644 --- a/resources/lang/aa-ER/admin/hardware/form.php +++ b/resources/lang/aa-ER/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'crwdns713:0crwdne713:0', 'qr' => 'crwdns714:0crwdne714:0', 'requestable' => 'crwdns715:0crwdne715:0', + 'redirect_to_all' => 'crwdns12222:0crwdne12222:0', + 'redirect_to_type' => 'crwdns12224:0crwdne12224:0', + 'redirect_to_checked_out_to' => 'crwdns12226:0crwdne12226:0', 'select_statustype' => 'crwdns1167:0crwdne1167:0', 'serial' => 'crwdns716:0crwdne716:0', 'status' => 'crwdns717:0crwdne717:0', diff --git a/resources/lang/aa-ER/admin/hardware/general.php b/resources/lang/aa-ER/admin/hardware/general.php index b1fef66612..4d2d0a1c92 100644 --- a/resources/lang/aa-ER/admin/hardware/general.php +++ b/resources/lang/aa-ER/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'crwdns11695:0crwdne11695:0', 'edit' => 'crwdns759:0crwdne759:0', 'model_deleted' => 'crwdns6081:0crwdne6081:0', - 'model_invalid' => 'crwdns11225:0crwdne11225:0', - 'model_invalid_fix' => 'crwdns11227:0crwdne11227:0', + 'model_invalid' => 'crwdns12228:0crwdne12228:0', + 'model_invalid_fix' => 'crwdns12232:0crwdne12232:0', 'requestable' => 'crwdns1177:0crwdne1177:0', 'requested' => 'crwdns1697:0crwdne1697:0', 'not_requestable' => 'crwdns6555:0crwdne6555:0', diff --git a/resources/lang/aa-ER/admin/users/message.php b/resources/lang/aa-ER/admin/users/message.php index 3cdee7f200..b4d71b6ef6 100644 --- a/resources/lang/aa-ER/admin/users/message.php +++ b/resources/lang/aa-ER/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'crwdns801:0crwdne801:0', 'delete' => 'crwdns802:0crwdne802:0', 'delete_has_assets' => 'crwdns1888:0crwdne1888:0', + 'delete_has_assets_var' => 'crwdns12234:0crwdne12234:0', + 'delete_has_licenses_var' => 'crwdns12236:0crwdne12236:0', + 'delete_has_accessories_var' => 'crwdns12238:0crwdne12238:0', + 'delete_has_locations_var' => 'crwdns12240:0crwdne12240:0', + 'delete_has_users_var' => 'crwdns12242:0crwdne12242:0', 'unsuspend' => 'crwdns803:0crwdne803:0', 'import' => 'crwdns1195:0crwdne1195:0', 'asset_already_accepted' => 'crwdns1267:0crwdne1267:0', 'accept_or_decline' => 'crwdns1346:0crwdne1346:0', + 'cannot_delete_yourself' => 'crwdns12244:0crwdne12244:0', 'incorrect_user_accepted' => 'crwdns1483:0crwdne1483:0', 'ldap_could_not_connect' => 'crwdns1413:0crwdne1413:0', 'ldap_could_not_bind' => 'crwdns1414:0crwdne1414:0', diff --git a/resources/lang/aa-ER/general.php b/resources/lang/aa-ER/general.php index 4ffca59080..b7eaf23886 100644 --- a/resources/lang/aa-ER/general.php +++ b/resources/lang/aa-ER/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'crwdns1291:0crwdne1291:0', 'address' => 'crwdns1019:0crwdne1019:0', 'admin' => 'crwdns1020:0crwdne1020:0', + 'admin_tooltip' => 'crwdns12216:0crwdne12216:0', + 'superuser' => 'crwdns12218:0crwdne12218:0', + 'superuser_tooltip' => 'crwdns12220:0crwdne12220:0', 'administrator' => 'crwdns2016:0crwdne2016:0', 'add_seats' => 'crwdns1472:0crwdne1472:0', 'age' => "crwdns11183:0crwdne11183:0", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'crwdns6151:0crwdne6151:0', 'requested_assets_menu' => 'crwdns6153:0crwdne6153:0', 'request_canceled' => 'crwdns1703:0crwdne1703:0', + 'request_item' => 'crwdns12204:0crwdne12204:0', + 'external_link_tooltip' => 'crwdns12206:0crwdne12206:0', 'save' => 'crwdns1083:0crwdne1083:0', 'select_var' => 'crwdns11455:0crwdne11455:0', // this will eventually replace all of our other selects 'select' => 'crwdns1281:0crwdne1281:0', @@ -397,8 +402,9 @@ return [ 'accessory_name' => 'crwdns6291:0crwdne6291:0', 'clone_item' => 'crwdns6293:0crwdne6293:0', 'checkout_tooltip' => 'crwdns6295:0crwdne6295:0', - 'checkin_tooltip' => 'crwdns6297:0crwdne6297:0', + 'checkin_tooltip' => 'crwdns12208:0crwdne12208:0', 'checkout_user_tooltip' => 'crwdns6299:0crwdne6299:0', + 'checkin_to_diff_location' => 'crwdns12210:0crwdne12210:0', 'maintenance_mode' => 'crwdns6790:0crwdne6790:0', 'maintenance_mode_title' => 'crwdns6792:0crwdne6792:0', 'ldap_import' => 'crwdns6794:0crwdne6794:0', @@ -499,6 +505,8 @@ return [ 'address2' => 'crwdns11675:0crwdne11675:0', 'import_note' => 'crwdns11677:0crwdne11677:0', ], + 'remove_customfield_association' => 'crwdns12212:0crwdne12212:0', + 'checked_out_to_fields' => 'crwdns12214:0crwdne12214:0', 'percent_complete' => 'crwdns11811:0crwdne11811:0', 'uploading' => 'crwdns11813:0crwdne11813:0', 'upload_error' => 'crwdns11884:0crwdne11884:0', diff --git a/resources/lang/aa-ER/table.php b/resources/lang/aa-ER/table.php index b87f9fb1e8..44fcfe23ed 100644 --- a/resources/lang/aa-ER/table.php +++ b/resources/lang/aa-ER/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'crwdns1016:0crwdne1016:0', - 'action' => 'crwdns1134:0crwdne1134:0', - 'by' => 'crwdns1135:0crwdne1135:0', - 'item' => 'crwdns1204:0crwdne1204:0', + 'actions' => 'crwdns1016:0crwdne1016:0', + 'action' => 'crwdns1134:0crwdne1134:0', + 'by' => 'crwdns1135:0crwdne1135:0', + 'item' => 'crwdns1204:0crwdne1204:0', + 'no_matching_records' => 'crwdns12200:0crwdne12200:0', ); diff --git a/resources/lang/af-ZA/account/general.php b/resources/lang/af-ZA/account/general.php index 920c1ef7f8..a1cba2bd45 100644 --- a/resources/lang/af-ZA/account/general.php +++ b/resources/lang/af-ZA/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/af-ZA/admin/hardware/form.php b/resources/lang/af-ZA/admin/hardware/form.php index a332065256..6943e6c62a 100644 --- a/resources/lang/af-ZA/admin/hardware/form.php +++ b/resources/lang/af-ZA/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Bestellingnommer', 'qr' => 'QR-kode', 'requestable' => 'Gebruikers kan hierdie bate aanvra', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Kies Status Tipe', 'serial' => 'Serial', 'status' => 'status', diff --git a/resources/lang/af-ZA/admin/hardware/general.php b/resources/lang/af-ZA/admin/hardware/general.php index c31798ac35..05d3be9de4 100644 --- a/resources/lang/af-ZA/admin/hardware/general.php +++ b/resources/lang/af-ZA/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Wysig bate', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'versoek', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/af-ZA/admin/users/message.php b/resources/lang/af-ZA/admin/users/message.php index d19fee76dc..81d99479a6 100644 --- a/resources/lang/af-ZA/admin/users/message.php +++ b/resources/lang/af-ZA/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Kon nie die gebruiker opdateer nie. Probeer asseblief weer.', 'delete' => 'Daar was \'n probleem met die verwydering van die gebruiker. Probeer asseblief weer.', 'delete_has_assets' => 'Hierdie gebruiker het items toegeken en kon nie uitgevee word nie.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Daar was \'n probleem wat die gebruiker onttrek het. Probeer asseblief weer.', 'import' => 'Kon nie gebruikers invoer nie. Probeer asseblief weer.', 'asset_already_accepted' => 'Hierdie bate is reeds aanvaar.', 'accept_or_decline' => 'U moet hierdie bate aanvaar of afkeur.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Die bate wat u probeer aanvaar het, is nie na u gekontroleer nie.', 'ldap_could_not_connect' => 'Kon nie aan die LDAP-bediener koppel nie. Gaan asseblief die LDAP-bediener opstelling in die LDAP-konfigurasie lêer.
    Error van LDAP-bediener:', 'ldap_could_not_bind' => 'Kon nie aan die LDAP-bediener bind nie. Gaan asseblief die LDAP-bediener opstelling in die LDAP-konfigurasie lêer.
    Error van LDAP-bediener:', diff --git a/resources/lang/af-ZA/general.php b/resources/lang/af-ZA/general.php index 558aa53111..ad867d849d 100644 --- a/resources/lang/af-ZA/general.php +++ b/resources/lang/af-ZA/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Aktiwiteitsverslag', 'address' => 'adres', 'admin' => 'admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Bykomende sitplekke', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Versoek gekanselleer', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Save', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Kies', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Toebehore Naam:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% volledige', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/af-ZA/table.php b/resources/lang/af-ZA/table.php index 50f5f3c4c8..39c025af68 100644 --- a/resources/lang/af-ZA/table.php +++ b/resources/lang/af-ZA/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'aksies', - 'action' => 'aksie', - 'by' => 'deur', - 'item' => 'item', + 'actions' => 'aksies', + 'action' => 'aksie', + 'by' => 'deur', + 'item' => 'item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/am-ET/account/general.php b/resources/lang/am-ET/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/am-ET/account/general.php +++ b/resources/lang/am-ET/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/am-ET/admin/hardware/form.php b/resources/lang/am-ET/admin/hardware/form.php index 9dca6828f0..0b3d46b575 100644 --- a/resources/lang/am-ET/admin/hardware/form.php +++ b/resources/lang/am-ET/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Order Number', 'qr' => 'QR Code', 'requestable' => 'Users may request this asset', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Select Status Type', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/lang/am-ET/admin/hardware/general.php b/resources/lang/am-ET/admin/hardware/general.php index ec3921c634..88327fed9a 100644 --- a/resources/lang/am-ET/admin/hardware/general.php +++ b/resources/lang/am-ET/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Edit Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Requested', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/am-ET/admin/users/message.php b/resources/lang/am-ET/admin/users/message.php index b7c0a29f14..4d014775bd 100644 --- a/resources/lang/am-ET/admin/users/message.php +++ b/resources/lang/am-ET/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'There was an issue updating the user. Please try again.', 'delete' => 'There was an issue deleting the user. Please try again.', 'delete_has_assets' => 'This user has items assigned and could not be deleted.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', 'import' => 'There was an issue importing users. Please try again.', 'asset_already_accepted' => 'This asset has already been accepted.', 'accept_or_decline' => 'You must either accept or decline this asset.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'The asset you have attempted to accept was not checked out to you.', 'ldap_could_not_connect' => 'Could not connect to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server:', 'ldap_could_not_bind' => 'Could not bind to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server: ', diff --git a/resources/lang/am-ET/general.php b/resources/lang/am-ET/general.php index 84cec637a7..8c888c1783 100644 --- a/resources/lang/am-ET/general.php +++ b/resources/lang/am-ET/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'የእንቅስቃሴ ዘገባ', 'address' => 'አድራሻ', 'admin' => 'ተቆጣጣሪ', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'አስተዳዳሪ', 'add_seats' => 'የተጨመሩ መቀመጫዎች', 'age' => "እድሜ", @@ -143,7 +146,6 @@ return [ 'generate_labels' => 'Generate Labels', 'github_markdown' => 'This field accepts Github flavored markdown.', 'groups' => 'Groups', - 'permission_level' => 'Permission Level', 'gravatar_email' => 'Gravatar Email Address', 'gravatar_url' => 'Change your avatar at Gravatar.com.', 'history' => 'History', @@ -242,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Request Canceled', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Save', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Select', @@ -275,7 +279,6 @@ return [ 'status_labels' => 'Status Labels', 'status' => 'Status', 'accept_eula' => 'Acceptance Agreement', - 'superuser' => 'Superuser', 'supplier' => 'Supplier', 'suppliers' => 'Suppliers', 'sure_to_delete' => 'Are you sure you wish to delete', @@ -400,8 +403,9 @@ return [ 'accessory_name' => 'Accessory Name:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -502,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% complete', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/am-ET/table.php b/resources/lang/am-ET/table.php index e1e766ca10..f276cbb5aa 100644 --- a/resources/lang/am-ET/table.php +++ b/resources/lang/am-ET/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Actions', - 'action' => 'ተግባር', - 'by' => 'By', - 'item' => 'Item', + 'actions' => 'Actions', + 'action' => 'ተግባር', + 'by' => 'By', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/ar-SA/account/general.php b/resources/lang/ar-SA/account/general.php index 04e6600e4d..4873d33f1a 100644 --- a/resources/lang/ar-SA/account/general.php +++ b/resources/lang/ar-SA/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'تم تعيين رموز API لانتهاء صلاحيتها في:', 'api_reference' => 'الرجاء التحقق من مرجع API إلى العثور على نقاط نهاية API المحددة ووثائق API الإضافية.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/ar-SA/admin/hardware/form.php b/resources/lang/ar-SA/admin/hardware/form.php index 0364377bac..966aa8b07b 100644 --- a/resources/lang/ar-SA/admin/hardware/form.php +++ b/resources/lang/ar-SA/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'رقم طلب الشراء', 'qr' => 'رمز الاستجابة السريعة QR', 'requestable' => 'يمكن للمستخدمين طلب هذا الأصل', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'حدد نوع الحالة', 'serial' => 'التسلسل', 'status' => 'الحالة', diff --git a/resources/lang/ar-SA/admin/hardware/general.php b/resources/lang/ar-SA/admin/hardware/general.php index f84ea7e64b..e0847a7fad 100644 --- a/resources/lang/ar-SA/admin/hardware/general.php +++ b/resources/lang/ar-SA/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'هل أنت متأكد من أنك تريد حذف هذا الأصل؟', 'edit' => 'تعديل الأصل', 'model_deleted' => 'تم حذف موديل الأصول هذا. يجب استعادة الموديل قبل أن تتمكن من استعادة الأصل.', - 'model_invalid' => 'نموذج هذا الأصل غير صالح.', - 'model_invalid_fix' => 'يجب تحرير الأصل لتصحيح هذا قبل محاولة التحقق منه أو الخروج منه.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'قابل للطلب', 'requested' => 'تم الطلب', 'not_requestable' => 'غير مطلوب', diff --git a/resources/lang/ar-SA/admin/users/message.php b/resources/lang/ar-SA/admin/users/message.php index 45e38c11da..9b5a279d48 100644 --- a/resources/lang/ar-SA/admin/users/message.php +++ b/resources/lang/ar-SA/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'حدث خطأ أثناء تحديث هذا المستخدم. حاول مرة أخرى.', 'delete' => 'حدث خطأ ما أثناء حذف هذا المستخدم. حاول مرة أخرى.', 'delete_has_assets' => 'يحتوي هذا المستخدم على عناصر تم اخراجها ولا يمكن حذفها.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'حدث خطأ ما أثناء إلغاء تقييد الانتظار. حاول مرة أخرى.', 'import' => 'حدث خطأ أثناء استيراد المستخدمين. حاول مرة أخرى.', 'asset_already_accepted' => 'هذا الجهاز تم قبوله مسبقاً.', 'accept_or_decline' => 'يجب إما قبول مادة العرض هذه أو رفضها.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'لم يتم سحب مادة العرض التي حاولت قبولها.', 'ldap_could_not_connect' => 'تعذر الاتصال بخادم LDAP. الرجاء التحقق من الاعدادات الخاصة بخادم LDAP في ملف اعدادات LDAP.
    الخطأ من خادم LDAP:', 'ldap_could_not_bind' => 'تعذر ربط خادم LDAP. الرجاء التحقق من الاعدادات الخاصة بخادم LDAP في ملف اعدادات LDAP.
    الخطأ من خادم LDAP: ', diff --git a/resources/lang/ar-SA/general.php b/resources/lang/ar-SA/general.php index 4fcac70b39..4abaab5529 100644 --- a/resources/lang/ar-SA/general.php +++ b/resources/lang/ar-SA/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'تقرير الأنشطة', 'address' => 'العنوان', 'admin' => 'الإدارة', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'المدير', 'add_seats' => 'المقاعد المضافة', 'age' => "العمر", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'الأصول المطلوبة', 'requested_assets_menu' => 'الأصول المطلوبة', 'request_canceled' => 'تم إلغاء الطلب', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'حفظ', 'select_var' => 'اختر :thing... ', // this will eventually replace all of our other selects 'select' => 'تحديد', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'اسم الملحق:', 'clone_item' => 'استنساخ العنصر', 'checkout_tooltip' => 'تحقق من هذا العنصر', - 'checkin_tooltip' => 'تحقق من هذا العنصر في', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'تحقق من هذا العنصر إلى مستخدم', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'الخدمة غير متوفرة مؤقتاً لتحديثات النظام. الرجاء التحقق مرة أخرى لاحقاً.', 'maintenance_mode_title' => 'النظام غير متوفر مؤقتا', 'ldap_import' => 'لا ينبغي إدارة كلمة مرور المستخدم بواسطة LDAP. (هذا يسمح لك بإرسال طلبات كلمة مرور منسية.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'سطر العنوان 2', 'import_note' => 'مستورد باستخدام مستورد csv', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% اكتمال', 'uploading' => 'تحميل... ', 'upload_error' => 'خطأ في تحميل الملف. الرجاء التحقق من أنه لا توجد صفوف فارغة وأنه لا يوجد تكرار لأسماء الأعمدة.', diff --git a/resources/lang/ar-SA/table.php b/resources/lang/ar-SA/table.php index ee7428d7c0..2f1afa8e03 100644 --- a/resources/lang/ar-SA/table.php +++ b/resources/lang/ar-SA/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'الإجراءات', - 'action' => 'الإجراء', - 'by' => 'بواسطة', - 'item' => 'عنصر', + 'actions' => 'الإجراءات', + 'action' => 'الإجراء', + 'by' => 'بواسطة', + 'item' => 'عنصر', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/bg-BG/account/general.php b/resources/lang/bg-BG/account/general.php index e61f80b5e2..4c7fa4888d 100644 --- a/resources/lang/bg-BG/account/general.php +++ b/resources/lang/bg-BG/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API ключа ще изтиче на:', 'api_reference' => 'Прочетете API reference за да намерите специфични API endpoints и допълнителна API документация.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/bg-BG/admin/hardware/form.php b/resources/lang/bg-BG/admin/hardware/form.php index 68413f7488..7927d7e356 100644 --- a/resources/lang/bg-BG/admin/hardware/form.php +++ b/resources/lang/bg-BG/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Номер на поръчка', 'qr' => 'QR код', 'requestable' => 'Потребителите могат да изписват актива', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Избиране на тип на статуса', 'serial' => 'Сериен номер', 'status' => 'Статус', diff --git a/resources/lang/bg-BG/admin/hardware/general.php b/resources/lang/bg-BG/admin/hardware/general.php index 94ce94f837..e0ff0a9d5a 100644 --- a/resources/lang/bg-BG/admin/hardware/general.php +++ b/resources/lang/bg-BG/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Сигурни ли сте, че желаете изтриване на актива?', 'edit' => 'Редакция на актив', 'model_deleted' => 'Този Модел на актив беше изтрит. Вие трябва да възстановите този модел преди да можете да възстановите актива.', - 'model_invalid' => 'Модела на този актив е невалиден.', - 'model_invalid_fix' => 'Актива трябва да бъде редактиран преди да можете да го заведете.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Може да бъде изискван', 'requested' => 'Изискан', 'not_requestable' => 'Не може да бъде изискан', diff --git a/resources/lang/bg-BG/admin/users/message.php b/resources/lang/bg-BG/admin/users/message.php index af9df8c6e7..5a15131561 100644 --- a/resources/lang/bg-BG/admin/users/message.php +++ b/resources/lang/bg-BG/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Възникна проблем при обновяването на този потребител. Моля, опитайте отново.', 'delete' => 'Възникна проблем при изтриването на този потребител. Моля, опитайте отново.', 'delete_has_assets' => 'Този потребител има зададени елементи и не може да бъде изтрит.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Проблем при активирането на потребителя. Моля опитайте отново.', 'import' => 'Проблем при зареждането на потребителите. Моля опитайте отново.', 'asset_already_accepted' => 'Този актив е вече приет.', 'accept_or_decline' => 'Трябва да приемете или да откажете този актив.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Активът, който се опитвате да приемете не е изписан към Вас.', 'ldap_could_not_connect' => 'Проблем при комуникацията с LDAP сървъра. Моля прегледайте конфигурацията на LDAP.
    Грешка от LDAP сървъра: ', 'ldap_could_not_bind' => 'Проблем при връзката с LDAP сървъра. Моля прегледайте конфигурацията на LDAP.
    Грешка от LDAP сървъра: ', diff --git a/resources/lang/bg-BG/general.php b/resources/lang/bg-BG/general.php index 3e45c6b734..800925193b 100644 --- a/resources/lang/bg-BG/general.php +++ b/resources/lang/bg-BG/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Справка за дейностите', 'address' => 'Aдрес', 'admin' => 'Администриране', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Администратор', 'add_seats' => 'Добавени работни места', 'age' => "Години", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Изискуеми активи', 'requested_assets_menu' => 'Изискуеми активи', 'request_canceled' => 'Заявка отменена', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Запис', 'select_var' => 'Избран :thing... ', // this will eventually replace all of our other selects 'select' => 'Избор', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Име на аксесоар:', 'clone_item' => 'Клониране', 'checkout_tooltip' => 'Изпишете този артикул', - 'checkin_tooltip' => 'Впишете този артикул', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Изпишете този артикул на потребител', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Услугата е временно недостъпна поради обновяване. Моля опитайте по-късно.', 'maintenance_mode_title' => 'Системата е временно недостъпна', 'ldap_import' => 'Потребителската парола не трябва да се управлява от LDAP. (Това ви позволява да изпращате заявки за забравена парола)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Адрес ред 2', 'import_note' => 'Импортирано използвайки CSV импорт', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% завърешен', 'uploading' => 'Качване... ', 'upload_error' => 'Грешка при качване на файл. Моля проверете да няма празни редове или повтарящи се колони.', diff --git a/resources/lang/bg-BG/table.php b/resources/lang/bg-BG/table.php index 8f4b409245..87ab0ff030 100644 --- a/resources/lang/bg-BG/table.php +++ b/resources/lang/bg-BG/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Действия', - 'action' => 'Действие', - 'by' => 'От', - 'item' => 'Информация', + 'actions' => 'Действия', + 'action' => 'Действие', + 'by' => 'От', + 'item' => 'Информация', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/ca-ES/account/general.php b/resources/lang/ca-ES/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/ca-ES/account/general.php +++ b/resources/lang/ca-ES/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/ca-ES/admin/hardware/form.php b/resources/lang/ca-ES/admin/hardware/form.php index a96dd43c18..8d8f41f189 100644 --- a/resources/lang/ca-ES/admin/hardware/form.php +++ b/resources/lang/ca-ES/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Order Number', 'qr' => 'QR Code', 'requestable' => 'Users may request this asset', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Select Status Type', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/lang/ca-ES/admin/hardware/general.php b/resources/lang/ca-ES/admin/hardware/general.php index 603586d77b..0cd9d24fd1 100644 --- a/resources/lang/ca-ES/admin/hardware/general.php +++ b/resources/lang/ca-ES/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Edit Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Requested', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/ca-ES/admin/users/message.php b/resources/lang/ca-ES/admin/users/message.php index b7c0a29f14..4d014775bd 100644 --- a/resources/lang/ca-ES/admin/users/message.php +++ b/resources/lang/ca-ES/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'There was an issue updating the user. Please try again.', 'delete' => 'There was an issue deleting the user. Please try again.', 'delete_has_assets' => 'This user has items assigned and could not be deleted.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', 'import' => 'There was an issue importing users. Please try again.', 'asset_already_accepted' => 'This asset has already been accepted.', 'accept_or_decline' => 'You must either accept or decline this asset.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'The asset you have attempted to accept was not checked out to you.', 'ldap_could_not_connect' => 'Could not connect to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server:', 'ldap_could_not_bind' => 'Could not bind to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server: ', diff --git a/resources/lang/ca-ES/general.php b/resources/lang/ca-ES/general.php index 4cf1d1f160..6137f2118e 100644 --- a/resources/lang/ca-ES/general.php +++ b/resources/lang/ca-ES/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Informe d\'Activitat', 'address' => 'Adreça', 'admin' => 'Administrador', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrador', 'add_seats' => 'Added seats', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Request Canceled', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Save', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Select', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Accessory Name:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% completar', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/ca-ES/table.php b/resources/lang/ca-ES/table.php index 7feca3e104..ad7284a93d 100644 --- a/resources/lang/ca-ES/table.php +++ b/resources/lang/ca-ES/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Actions', - 'action' => 'Acció', - 'by' => 'By', - 'item' => 'Item', + 'actions' => 'Actions', + 'action' => 'Acció', + 'by' => 'By', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/chr-US/account/general.php b/resources/lang/chr-US/account/general.php new file mode 100644 index 0000000000..1fc28f3409 --- /dev/null +++ b/resources/lang/chr-US/account/general.php @@ -0,0 +1,13 @@ + 'Personal API Keys', + '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' => 'Your API base url is located at:', + 'api_base_url_endpoint' => '/<endpoint>', + 'api_token_expiration_time' => 'API tokens are set to expire in:', + 'api_reference' => 'Please check the API reference to + find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', +); diff --git a/resources/lang/chr-US/admin/accessories/general.php b/resources/lang/chr-US/admin/accessories/general.php new file mode 100644 index 0000000000..bed7f38fab --- /dev/null +++ b/resources/lang/chr-US/admin/accessories/general.php @@ -0,0 +1,22 @@ + 'Accessory Category', + 'accessory_name' => 'Accessory Name', + 'checkout' => 'Checkout Accessory', + 'checkin' => 'Checkin Accessory', + 'create' => 'Create Accessory', + 'edit' => 'Edit Accessory', + 'eula_text' => 'Category EULA', + 'eula_text_help' => 'This field allows you to customize your EULAs for specific types of assets. If you only have one EULA for all of your assets, you can check the box below to use the primary default.', + 'require_acceptance' => 'Require users to confirm acceptance of assets in this category.', + 'no_default_eula' => 'No primary default EULA found. Add one in Settings.', + 'total' => 'Total', + 'remaining' => 'Avail', + 'update' => 'Update Accessory', + 'use_default_eula' => 'Use the primary default EULA instead.', + 'use_default_eula_disabled' => 'Use the primary default EULA instead. No primary default EULA is set. Please add one in Settings.', + 'clone' => 'Clone Accessory', + 'delete_disabled' => 'This accessory cannot be deleted yet because some items are still checked out.', + +); diff --git a/resources/lang/chr-US/admin/accessories/message.php b/resources/lang/chr-US/admin/accessories/message.php new file mode 100644 index 0000000000..c688d5e03d --- /dev/null +++ b/resources/lang/chr-US/admin/accessories/message.php @@ -0,0 +1,39 @@ + 'The accessory [:id] does not exist.', + 'not_found' => 'That accessory was not found.', + 'assoc_users' => 'This accessory currently has :count items checked out to users. Please check in the accessories and and try again. ', + + 'create' => array( + 'error' => 'The accessory was not created, please try again.', + 'success' => 'The accessory was successfully created.' + ), + + 'update' => array( + 'error' => 'The accessory was not updated, please try again', + 'success' => 'The accessory was updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this accessory?', + 'error' => 'There was an issue deleting the accessory. Please try again.', + 'success' => 'The accessory was deleted successfully.' + ), + + 'checkout' => array( + 'error' => 'Accessory was not checked out, please try again', + 'success' => 'Accessory checked out successfully.', + 'unavailable' => 'Accessory is not available for checkout. Check quantity available', + 'user_does_not_exist' => 'That user is invalid. Please try again.' + ), + + 'checkin' => array( + 'error' => 'Accessory was not checked in, please try again', + 'success' => 'Accessory checked in successfully.', + 'user_does_not_exist' => 'That user is invalid. Please try again.' + ) + + +); diff --git a/resources/lang/chr-US/admin/accessories/table.php b/resources/lang/chr-US/admin/accessories/table.php new file mode 100644 index 0000000000..e02d9f22e4 --- /dev/null +++ b/resources/lang/chr-US/admin/accessories/table.php @@ -0,0 +1,11 @@ + 'Download CSV', + 'eula_text' => 'EULA', + 'id' => 'ID', + 'require_acceptance' => 'Acceptance', + 'title' => 'Accessory Name', + + +); diff --git a/resources/lang/chr-US/admin/asset_maintenances/form.php b/resources/lang/chr-US/admin/asset_maintenances/form.php new file mode 100644 index 0000000000..785d06b08f --- /dev/null +++ b/resources/lang/chr-US/admin/asset_maintenances/form.php @@ -0,0 +1,14 @@ + 'Asset Maintenance Type', + 'title' => 'Title', + 'start_date' => 'Start Date', + 'completion_date' => 'Completion Date', + 'cost' => 'Cost', + 'is_warranty' => 'Warranty Improvement', + 'asset_maintenance_time' => 'Asset Maintenance Time (in days)', + 'notes' => 'Notes', + 'update' => 'Update Asset Maintenance', + 'create' => 'Create Asset Maintenance' + ]; diff --git a/resources/lang/chr-US/admin/asset_maintenances/general.php b/resources/lang/chr-US/admin/asset_maintenances/general.php new file mode 100644 index 0000000000..0f9a4547a2 --- /dev/null +++ b/resources/lang/chr-US/admin/asset_maintenances/general.php @@ -0,0 +1,16 @@ + 'Asset Maintenances', + 'edit' => 'Edit Asset Maintenance', + 'delete' => 'Delete Asset Maintenance', + 'view' => 'View Asset Maintenance Details', + 'repair' => 'Repair', + 'maintenance' => 'Maintenance', + 'upgrade' => 'Upgrade', + 'calibration' => 'Calibration', + 'software_support' => 'Software Support', + 'hardware_support' => 'Hardware Support', + 'configuration_change' => 'Configuration Change', + 'pat_test' => 'PAT Test', + ]; diff --git a/resources/lang/chr-US/admin/asset_maintenances/message.php b/resources/lang/chr-US/admin/asset_maintenances/message.php new file mode 100644 index 0000000000..b44f618207 --- /dev/null +++ b/resources/lang/chr-US/admin/asset_maintenances/message.php @@ -0,0 +1,21 @@ + 'Asset Maintenance you were looking for was not found!', + 'delete' => [ + 'confirm' => 'Are you sure you wish to delete this asset maintenance?', + 'error' => 'There was an issue deleting the asset maintenance. Please try again.', + 'success' => 'The asset maintenance was deleted successfully.', + ], + 'create' => [ + 'error' => 'Asset Maintenance was not created, please try again.', + 'success' => 'Asset Maintenance created successfully.', + ], + 'edit' => [ + 'error' => 'Asset Maintenance was not edited, please try again.', + 'success' => 'Asset Maintenance edited successfully.', + ], + 'asset_maintenance_incomplete' => 'Not Completed Yet', + 'warranty' => 'Warranty', + 'not_warranty' => 'Not Warranty', + ]; diff --git a/resources/lang/chr-US/admin/asset_maintenances/table.php b/resources/lang/chr-US/admin/asset_maintenances/table.php new file mode 100644 index 0000000000..3ba895038d --- /dev/null +++ b/resources/lang/chr-US/admin/asset_maintenances/table.php @@ -0,0 +1,8 @@ + 'Asset Maintenance', + 'asset_name' => 'Asset Name', + 'is_warranty' => 'Warranty', + 'dl_csv' => 'Download CSV', + ]; diff --git a/resources/lang/chr-US/admin/categories/general.php b/resources/lang/chr-US/admin/categories/general.php new file mode 100644 index 0000000000..2fe448b44e --- /dev/null +++ b/resources/lang/chr-US/admin/categories/general.php @@ -0,0 +1,25 @@ + 'Asset Categories', + 'category_name' => 'Category Name', + 'checkin_email' => 'Send email to user on checkin/checkout.', + 'checkin_email_notification' => 'This user will be sent an email on checkin/checkout.', + 'clone' => 'Clone Category', + 'create' => 'Create Category', + 'edit' => 'Edit Category', + '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.', + 'eula_text' => 'Category EULA', + 'eula_text_help' => 'This field allows you to customize your EULAs for specific types of assets. If you only have one EULA for all of your assets, you can check the box below to use the primary default.', + 'name' => 'Category Name', + 'require_acceptance' => 'Require users to confirm acceptance of assets in this category.', + 'required_acceptance' => 'This user will be emailed with a link to confirm acceptance of this item.', + 'required_eula' => 'This user will be emailed a copy of the EULA', + 'no_default_eula' => 'No primary default EULA found. Add one in Settings.', + 'update' => 'Update Category', + 'use_default_eula' => 'Use the primary default EULA instead.', + 'use_default_eula_disabled' => 'Use the primary default EULA instead. No primary default EULA is set. Please add one in Settings.', + 'use_default_eula_column' => 'Use default EULA', + +); diff --git a/resources/lang/chr-US/admin/categories/message.php b/resources/lang/chr-US/admin/categories/message.php new file mode 100644 index 0000000000..4e493f68b6 --- /dev/null +++ b/resources/lang/chr-US/admin/categories/message.php @@ -0,0 +1,26 @@ + 'Category does not exist.', + 'assoc_models' => 'This category is currently associated with at least one model and cannot be deleted. Please update your models to no longer reference this category and try again. ', + 'assoc_items' => 'This category is currently associated with at least one :asset_type and cannot be deleted. Please update your :asset_type to no longer reference this category and try again. ', + + 'create' => array( + 'error' => 'Category was not created, please try again.', + 'success' => 'Category created successfully.' + ), + + 'update' => array( + 'error' => 'Category was not updated, please try again', + 'success' => 'Category updated successfully.', + 'cannot_change_category_type' => 'You cannot change the category type once it has been created', + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this category?', + 'error' => 'There was an issue deleting the category. Please try again.', + 'success' => 'The category was deleted successfully.' + ) + +); diff --git a/resources/lang/chr-US/admin/categories/table.php b/resources/lang/chr-US/admin/categories/table.php new file mode 100644 index 0000000000..a3ee96ae7f --- /dev/null +++ b/resources/lang/chr-US/admin/categories/table.php @@ -0,0 +1,10 @@ + 'EULA', + 'id' => 'ID', + 'parent' => 'Parent', + 'require_acceptance' => 'Acceptance', + 'title' => 'Asset Category Name', + +); diff --git a/resources/lang/chr-US/admin/companies/general.php b/resources/lang/chr-US/admin/companies/general.php new file mode 100644 index 0000000000..37781012ba --- /dev/null +++ b/resources/lang/chr-US/admin/companies/general.php @@ -0,0 +1,7 @@ + 'Select Company', + 'about_companies' => 'About Companies', + 'about_companies_description' => ' You can use companies as a simple informative field, or you can use them to restrict asset visibility and availability to users with a specific company by enabling Full Company Support in your Admin Settings.', +]; diff --git a/resources/lang/chr-US/admin/companies/message.php b/resources/lang/chr-US/admin/companies/message.php new file mode 100644 index 0000000000..e440b7ac5f --- /dev/null +++ b/resources/lang/chr-US/admin/companies/message.php @@ -0,0 +1,20 @@ + 'Company does not exist.', + 'deleted' => 'Deleted company', + 'assoc_users' => 'This company is currently associated with at least one model and cannot be deleted. Please update your models to no longer reference this company and try again. ', + 'create' => [ + 'error' => 'Company was not created, please try again.', + 'success' => 'Company created successfully.', + ], + 'update' => [ + 'error' => 'Company was not updated, please try again', + 'success' => 'Company updated successfully.', + ], + 'delete' => [ + 'confirm' => 'Are you sure you wish to delete this company?', + 'error' => 'There was an issue deleting the company. Please try again.', + 'success' => 'The Company was deleted successfully.', + ], +]; diff --git a/resources/lang/chr-US/admin/companies/table.php b/resources/lang/chr-US/admin/companies/table.php new file mode 100644 index 0000000000..100b258240 --- /dev/null +++ b/resources/lang/chr-US/admin/companies/table.php @@ -0,0 +1,11 @@ + 'Companies', + 'create' => 'Create Company', + 'email' => 'Company Email', + 'title' => 'Company', + 'phone' => 'Company Phone', + 'update' => 'Update Company', + 'name' => 'Company Name', + 'id' => 'ID', +); diff --git a/resources/lang/chr-US/admin/components/general.php b/resources/lang/chr-US/admin/components/general.php new file mode 100644 index 0000000000..5b788a51ec --- /dev/null +++ b/resources/lang/chr-US/admin/components/general.php @@ -0,0 +1,16 @@ + 'Component Name', + 'checkin' => 'Checkin Component', + 'checkout' => 'Checkout Component', + 'cost' => 'Purchase Cost', + 'create' => 'Create Component', + 'edit' => 'Edit Component', + 'date' => 'Purchase Date', + 'order' => 'Order Number', + 'remaining' => 'Remaining', + 'total' => 'Total', + 'update' => 'Update Component', + 'checkin_limit' => 'Amount checked in must be equal to or less than :assigned_qty' +); diff --git a/resources/lang/chr-US/admin/components/message.php b/resources/lang/chr-US/admin/components/message.php new file mode 100644 index 0000000000..0a7dd8d954 --- /dev/null +++ b/resources/lang/chr-US/admin/components/message.php @@ -0,0 +1,37 @@ + 'Component does not exist.', + + 'create' => array( + 'error' => 'Component was not created, please try again.', + 'success' => 'Component created successfully.' + ), + + 'update' => array( + 'error' => 'Component was not updated, please try again', + 'success' => 'Component updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this component?', + 'error' => 'There was an issue deleting the component. Please try again.', + 'success' => 'The component was deleted successfully.' + ), + + 'checkout' => array( + 'error' => 'Component was not checked out, please try again', + 'success' => 'Component checked out successfully.', + 'user_does_not_exist' => 'That user is invalid. Please try again.', + 'unavailable' => 'Not enough components remaining: :remaining remaining, :requested requested ', + ), + + 'checkin' => array( + 'error' => 'Component was not checked in, please try again', + 'success' => 'Component checked in successfully.', + 'user_does_not_exist' => 'That user is invalid. Please try again.' + ) + + +); diff --git a/resources/lang/chr-US/admin/components/table.php b/resources/lang/chr-US/admin/components/table.php new file mode 100644 index 0000000000..3d4fed6a7f --- /dev/null +++ b/resources/lang/chr-US/admin/components/table.php @@ -0,0 +1,5 @@ + 'Component Name', +); diff --git a/resources/lang/chr-US/admin/consumables/general.php b/resources/lang/chr-US/admin/consumables/general.php new file mode 100644 index 0000000000..7c6bb32968 --- /dev/null +++ b/resources/lang/chr-US/admin/consumables/general.php @@ -0,0 +1,11 @@ + 'Checkout Consumable to User', + 'consumable_name' => 'Consumable Name', + 'create' => 'Create Consumable', + 'item_no' => 'Item No.', + 'remaining' => 'Remaining', + 'total' => 'Total', + 'update' => 'Update Consumable', +); diff --git a/resources/lang/chr-US/admin/consumables/message.php b/resources/lang/chr-US/admin/consumables/message.php new file mode 100644 index 0000000000..c0d0aa7f68 --- /dev/null +++ b/resources/lang/chr-US/admin/consumables/message.php @@ -0,0 +1,37 @@ + 'Consumable does not exist.', + + 'create' => array( + 'error' => 'Consumable was not created, please try again.', + 'success' => 'Consumable created successfully.' + ), + + 'update' => array( + 'error' => 'Consumable was not updated, please try again', + 'success' => 'Consumable updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this consumable?', + 'error' => 'There was an issue deleting the consumable. Please try again.', + 'success' => 'The consumable was deleted successfully.' + ), + + 'checkout' => array( + 'error' => 'Consumable was not checked out, please try again', + 'success' => 'Consumable checked out successfully.', + 'user_does_not_exist' => 'That user is invalid. Please try again.', + 'unavailable' => 'There are not enough consumables for this checkout. Please check the quantity left. ', + ), + + 'checkin' => array( + 'error' => 'Consumable was not checked in, please try again', + 'success' => 'Consumable checked in successfully.', + 'user_does_not_exist' => 'That user is invalid. Please try again.' + ) + + +); diff --git a/resources/lang/chr-US/admin/consumables/table.php b/resources/lang/chr-US/admin/consumables/table.php new file mode 100644 index 0000000000..bb76721f17 --- /dev/null +++ b/resources/lang/chr-US/admin/consumables/table.php @@ -0,0 +1,5 @@ + 'Consumable Name', +); diff --git a/resources/lang/chr-US/admin/custom_fields/general.php b/resources/lang/chr-US/admin/custom_fields/general.php new file mode 100644 index 0000000000..e3c21d1f0c --- /dev/null +++ b/resources/lang/chr-US/admin/custom_fields/general.php @@ -0,0 +1,61 @@ + 'Custom Fields', + 'manage' => 'Manage', + 'field' => 'Field', + 'about_fieldsets_title' => 'About Fieldsets', + 'about_fieldsets_text' => 'Fieldsets allow you to create groups of custom fields that are frequently re-used for specific asset model types.', + 'custom_format' => 'Custom Regex format...', + 'encrypt_field' => 'Encrypt the value of this field in the database', + 'encrypt_field_help' => 'WARNING: Encrypting a field makes it unsearchable.', + 'encrypted' => 'Encrypted', + 'fieldset' => 'Fieldset', + 'qty_fields' => 'Qty Fields', + 'fieldsets' => 'Fieldsets', + 'fieldset_name' => 'Fieldset Name', + 'field_name' => 'Field Name', + 'field_values' => 'Field Values', + 'field_values_help' => 'Add selectable options, one per line. Blank lines other than the first line will be ignored.', + 'field_element' => 'Form Element', + 'field_element_short' => 'Element', + 'field_format' => 'Format', + 'field_custom_format' => 'Custom Regex Format', + 'field_custom_format_help' => 'This field allows you to use a regex expression for validation. It should start with "regex:" - for example, to validate that a custom field value contains a valid IMEI (15 numeric digits), you would use regex:/^[0-9]{15}$/.', + 'required' => 'Required', + 'req' => 'Req.', + 'used_by_models' => 'Used By Models', + 'order' => 'Order', + 'create_fieldset' => 'New Fieldset', + 'update_fieldset' => 'Update Fieldset', + 'fieldset_does_not_exist' => 'Fieldset :id does not exist', + 'fieldset_updated' => 'Fieldset updated', + 'create_fieldset_title' => 'Create a new fieldset', + 'create_field' => 'New Custom Field', + 'create_field_title' => 'Create a new custom field', + 'value_encrypted' => 'The value of this field is encrypted in the database. Only admin users will be able to view the decrypted value', + 'show_in_email' => 'Include the value of this field in checkout emails sent to the user? Encrypted fields cannot be included in emails', + 'show_in_email_short' => 'Include in emails.', + 'help_text' => 'Help Text', + 'help_text_description' => 'This is optional text that will appear below the form elements while editing an asset to provide context on the field.', + 'about_custom_fields_title' => 'About Custom Fields', + 'about_custom_fields_text' => 'Custom fields allow you to add arbitrary attributes to assets.', + 'add_field_to_fieldset' => 'Add Field to Fieldset', + 'make_optional' => 'Required - click to make optional', + 'make_required' => 'Optional - click to make required', + 'reorder' => 'Reorder', + 'db_field' => 'DB Field', + 'db_convert_warning' => 'WARNING. This field is in the custom fields table as :db_column but should be :expected.', + 'is_unique' => 'This value must be unique across all assets', + 'unique' => 'Unique', + 'display_in_user_view' => 'Allow the checked out user to view these values in their View Assigned Assets page', + 'display_in_user_view_table' => 'Visible to User', + 'auto_add_to_fieldsets' => 'Automatically add this to every new fieldset', + 'add_to_preexisting_fieldsets' => 'Add to any existing fieldsets', + 'show_in_listview' => 'Show in list views by default. Authorized users will still be able to show/hide via the column selector', + 'show_in_listview_short' => 'Show in lists', + 'show_in_requestable_list_short' => 'Show in requestable assets list', + 'show_in_requestable_list' => 'Show value in requestable assets list. Encrypted fields will not be shown', + 'encrypted_options' => 'This field is encrypted, so some display options will not be available.', + +]; diff --git a/resources/lang/chr-US/admin/custom_fields/message.php b/resources/lang/chr-US/admin/custom_fields/message.php new file mode 100644 index 0000000000..43ba821821 --- /dev/null +++ b/resources/lang/chr-US/admin/custom_fields/message.php @@ -0,0 +1,63 @@ + array( + 'invalid' => 'That field does not exist.', + 'already_added' => 'Field already added', + + 'create' => array( + 'error' => 'Field was not created, please try again.', + 'success' => 'Field created successfully.', + 'assoc_success' => 'Field successfully added to fieldset.' + ), + + 'update' => array( + 'error' => 'Field was not updated, please try again', + 'success' => 'Field updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this field?', + 'error' => 'There was an issue deleting the field. Please try again.', + 'success' => 'The field was deleted successfully.', + 'in_use' => 'Field is still in use.', + ) + + ), + + 'fieldset' => array( + + 'does_not_exist' => 'Fieldset does not exist', + + 'create' => array( + 'error' => 'Fieldset was not created, please try again.', + 'success' => 'Fieldset created successfully.' + ), + + 'update' => array( + 'error' => 'Fieldset was not updated, please try again', + 'success' => 'Fieldset updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this fieldset?', + 'error' => 'There was an issue deleting the fieldset. Please try again.', + 'success' => 'The fieldset was deleted successfully.', + 'in_use' => 'Fieldset is still in use.', + ) + + ), + + 'fieldset_default_value' => array( + + 'error' => 'Error validating default fieldset values.', + + ), + + + + + + +); diff --git a/resources/lang/chr-US/admin/departments/message.php b/resources/lang/chr-US/admin/departments/message.php new file mode 100644 index 0000000000..2e371348b9 --- /dev/null +++ b/resources/lang/chr-US/admin/departments/message.php @@ -0,0 +1,22 @@ + 'Department does not exist.', + 'department_already_exists' => 'A department already exists with that name at this company location. Or choose a more specific name for this department. ', + 'assoc_users' => 'This department is currently associated with at least one user and cannot be deleted. Please update your users to no longer reference this department and try again. ', + 'create' => array( + 'error' => 'Department was not created, please try again.', + 'success' => 'Department created successfully.' + ), + 'update' => array( + 'error' => 'Department was not updated, please try again', + 'success' => 'Department updated successfully.' + ), + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this department?', + 'error' => 'There was an issue deleting the department. Please try again.', + 'success' => 'The department was deleted successfully.' + ) + +); diff --git a/resources/lang/chr-US/admin/departments/table.php b/resources/lang/chr-US/admin/departments/table.php new file mode 100644 index 0000000000..76494247be --- /dev/null +++ b/resources/lang/chr-US/admin/departments/table.php @@ -0,0 +1,11 @@ + 'ID', + 'name' => 'Department Name', + 'manager' => 'Manager', + 'location' => 'Location', + 'create' => 'Create Department', + 'update' => 'Update Department', + ); diff --git a/resources/lang/chr-US/admin/depreciations/general.php b/resources/lang/chr-US/admin/depreciations/general.php new file mode 100644 index 0000000000..1a5666f9dc --- /dev/null +++ b/resources/lang/chr-US/admin/depreciations/general.php @@ -0,0 +1,16 @@ + 'About Asset Depreciations', + 'about_depreciations' => 'You can set up asset depreciations to depreciate assets based on straight-line depreciation.', + 'asset_depreciations' => 'Asset Depreciations', + 'create' => 'Create Depreciation', + 'depreciation_name' => 'Depreciation Name', + 'depreciation_min' => 'Floor Value of Depreciation', + 'number_of_months' => 'Number of Months', + 'update' => 'Update Depreciation', + 'depreciation_min' => 'Minimum Value after Depreciation', + 'no_depreciations_warning' => 'Warning: + You do not currently have any depreciations set up. + Please set up at least one depreciation to view the depreciation report.', +]; diff --git a/resources/lang/chr-US/admin/depreciations/message.php b/resources/lang/chr-US/admin/depreciations/message.php new file mode 100644 index 0000000000..c20e52c13c --- /dev/null +++ b/resources/lang/chr-US/admin/depreciations/message.php @@ -0,0 +1,25 @@ + 'Depreciation class does not exist.', + 'assoc_users' => 'This depreciation is currently associated with one or more models and cannot be deleted. Please delete the models, and then try deleting again. ', + + + 'create' => array( + 'error' => 'Depreciation class was not created, please try again. :(', + 'success' => 'Depreciation class created successfully. :)' + ), + + 'update' => array( + 'error' => 'Depreciation class was not updated, please try again', + 'success' => 'Depreciation class updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this depreciation class?', + 'error' => 'There was an issue deleting the depreciation class. Please try again.', + 'success' => 'The depreciation class was deleted successfully.' + ) + +); diff --git a/resources/lang/chr-US/admin/depreciations/table.php b/resources/lang/chr-US/admin/depreciations/table.php new file mode 100644 index 0000000000..256b10b92a --- /dev/null +++ b/resources/lang/chr-US/admin/depreciations/table.php @@ -0,0 +1,11 @@ + 'ID', + 'months' => 'Months', + 'term' => 'Term', + 'title' => 'Name ', + 'depreciation_min' => 'Floor Value', + +]; diff --git a/resources/lang/chr-US/admin/groups/message.php b/resources/lang/chr-US/admin/groups/message.php new file mode 100644 index 0000000000..495acaf36b --- /dev/null +++ b/resources/lang/chr-US/admin/groups/message.php @@ -0,0 +1,22 @@ + 'Group already exists!', + 'group_not_found' => 'Group ID :id does not exist.', + 'group_name_required' => 'The name field is required', + + 'success' => array( + 'create' => 'Group was successfully created.', + 'update' => 'Group was successfully updated.', + 'delete' => 'Group was successfully deleted.', + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this group?', + 'create' => 'There was an issue creating the group. Please try again.', + 'update' => 'There was an issue updating the group. Please try again.', + 'delete' => 'There was an issue deleting the group. Please try again.', + ), + +); diff --git a/resources/lang/chr-US/admin/groups/table.php b/resources/lang/chr-US/admin/groups/table.php new file mode 100644 index 0000000000..61f060a116 --- /dev/null +++ b/resources/lang/chr-US/admin/groups/table.php @@ -0,0 +1,9 @@ + 'Id', + 'name' => 'Name', + 'users' => '# of Users', + +); diff --git a/resources/lang/chr-US/admin/groups/titles.php b/resources/lang/chr-US/admin/groups/titles.php new file mode 100644 index 0000000000..d875f190d7 --- /dev/null +++ b/resources/lang/chr-US/admin/groups/titles.php @@ -0,0 +1,16 @@ + 'About Groups', + 'about_groups' => 'Groups are used to generalize user permissions.', + 'group_management' => 'Group Management', + 'create' => 'Create New Group', + 'update' => 'Edit Group', + 'group_name' => 'Group Name', + 'group_admin' => 'Group Admin', + 'allow' => 'Allow', + 'deny' => 'Deny', + 'permission' => 'Permission', + 'grant' => 'Grant', + 'no_permissions' => 'This group has no permissions.' +]; diff --git a/resources/lang/chr-US/admin/hardware/form.php b/resources/lang/chr-US/admin/hardware/form.php new file mode 100644 index 0000000000..edec543637 --- /dev/null +++ b/resources/lang/chr-US/admin/hardware/form.php @@ -0,0 +1,62 @@ + 'Confirm Bulk Delete Assets', + 'bulk_restore' => 'Confirm Bulk Restore Assets', + 'bulk_delete_help' => 'Review the assets for bulk deletion below. Once deleted, these assets can be restored, but they will no longer be associated with any users they are currently assigned to.', + 'bulk_restore_help' => 'Review the assets for bulk restoration below. Once restored, these assets will not be associated with any users they were previously assigned to.', + 'bulk_delete_warn' => 'You are about to delete :asset_count assets.', + 'bulk_restore_warn' => 'You are about to restore :asset_count assets.', + 'bulk_update' => 'Bulk Update Assets', + 'bulk_update_help' => 'This form allows you to update multiple assets at once. Only fill in the fields you need to change. Any fields left blank will remain unchanged. ', + 'bulk_update_warn' => 'You are about to edit the properties of a single asset.|You are about to edit the properties of :asset_count assets.', + 'bulk_update_with_custom_field' => 'Note the assets are :asset_model_count different types of models.', + 'bulk_update_model_prefix' => 'On Models', + 'bulk_update_custom_field_unique' => 'This is a unique field and can not be bulk edited.', + 'checkedout_to' => 'Checked Out To', + 'checkout_date' => 'Checkout Date', + 'checkin_date' => 'Checkin Date', + 'checkout_to' => 'Checkout to', + 'cost' => 'Purchase Cost', + 'create' => 'Create Asset', + 'date' => 'Purchase Date', + 'depreciation' => 'Depreciation', + 'depreciates_on' => 'Depreciates On', + 'default_location' => 'Default Location', + 'default_location_phone' => 'Default Location Phone', + 'eol_date' => 'EOL Date', + 'eol_rate' => 'EOL Rate', + 'expected_checkin' => 'Expected Checkin Date', + 'expires' => 'Expires', + 'fully_depreciated' => 'Fully Depreciated', + 'help_checkout' => 'If you wish to assign this asset immediately, select "Ready to Deploy" from the status list above. ', + 'mac_address' => 'MAC Address', + 'manufacturer' => 'Manufacturer', + 'model' => 'Model', + 'months' => 'months', + 'name' => 'Asset Name', + 'notes' => 'Notes', + 'order' => 'Order Number', + 'qr' => 'QR Code', + 'requestable' => 'Users may request this asset', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', + 'select_statustype' => 'Select Status Type', + 'serial' => 'Serial', + 'status' => 'Status', + 'tag' => 'Asset Tag', + 'update' => 'Asset Update', + 'warranty' => 'Warranty', + 'warranty_expires' => 'Warranty Expires', + 'years' => 'years', + 'asset_location' => 'Update Asset Location', + 'asset_location_update_default_current' => 'Update default location AND actual location', + 'asset_location_update_default' => 'Update only default location', + 'asset_location_update_actual' => 'Update only actual location', + 'asset_not_deployable' => 'That asset status is not deployable. This asset cannot be checked out.', + 'asset_deployable' => 'That status is deployable. This asset can be checked out.', + 'processing_spinner' => 'Processing... (This might take a bit of time on large files)', + 'optional_infos' => 'Optional Information', + 'order_details' => 'Order Related Information' +]; diff --git a/resources/lang/chr-US/admin/hardware/general.php b/resources/lang/chr-US/admin/hardware/general.php new file mode 100644 index 0000000000..34ac4e63ee --- /dev/null +++ b/resources/lang/chr-US/admin/hardware/general.php @@ -0,0 +1,43 @@ + 'About Assets', + 'about_assets_text' => 'Assets are items tracked by serial number or asset tag. They tend to be higher value items where identifying a specific item matters.', + 'archived' => 'Archived', + 'asset' => 'Asset', + 'bulk_checkout' => 'Checkout Assets', + 'bulk_checkin' => 'Checkin Assets', + 'checkin' => 'Checkin Asset', + 'checkout' => 'Checkout Asset', + 'clone' => 'Clone Asset', + 'deployable' => 'Deployable', + 'deleted' => 'This asset has been deleted.', + 'delete_confirm' => 'Are you sure you want to delete this asset?', + 'edit' => 'Edit Asset', + 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', + 'requestable' => 'Requestable', + 'requested' => 'Requested', + 'not_requestable' => 'Not Requestable', + 'requestable_status_warning' => 'Do not change requestable status', + 'restore' => 'Restore Asset', + 'pending' => 'Pending', + 'undeployable' => 'Undeployable', + 'undeployable_tooltip' => 'This asset has a status label that is undeployable and cannot be checked out at this time.', + 'view' => 'View Asset', + 'csv_error' => 'You have an error in your CSV file:', + 'import_text' => '

    Upload a CSV that contains asset history. The assets and users MUST already exist in the system, or they will be skipped. Matching assets for history import happens against the asset tag. We will try to find a matching user based on the user\'s name you provide, and the criteria you select below. If you do not select any criteria below, it will simply try to match on the username format you configured in the Admin > General Settings.

    Fields included in the CSV must match the headers: Asset Tag, Name, Checkout Date, Checkin Date. Any additional fields will be ignored.

    Checkin Date: blank or future checkin dates will checkout items to associated user. Excluding the Checkin Date column will create a checkin date with todays date.

    + ', + 'csv_import_match_f-l' => 'Try to match users by firstname.lastname (jane.smith) format', + 'csv_import_match_initial_last' => 'Try to match users by first initial last name (jsmith) format', + 'csv_import_match_first' => 'Try to match users by first name (jane) format', + 'csv_import_match_email' => 'Try to match users by email as username', + 'csv_import_match_username' => 'Try to match users by username', + 'error_messages' => 'Error messages:', + 'success_messages' => 'Success messages:', + 'alert_details' => 'Please see below for details.', + 'custom_export' => 'Custom Export', + 'mfg_warranty_lookup' => ':manufacturer Warranty Status Lookup', + 'user_department' => 'User Department', +]; diff --git a/resources/lang/chr-US/admin/hardware/message.php b/resources/lang/chr-US/admin/hardware/message.php new file mode 100644 index 0000000000..32698b1c07 --- /dev/null +++ b/resources/lang/chr-US/admin/hardware/message.php @@ -0,0 +1,95 @@ + 'Warning: This asset has been marked as currently undeployable. + If this status has changed, please update the asset status.', + 'does_not_exist' => 'Asset does not exist.', + 'does_not_exist_var'=> 'Asset with tag :asset_tag not found.', + 'no_tag' => 'No asset tag provided.', + 'does_not_exist_or_not_requestable' => 'That asset does not exist or is not requestable.', + 'assoc_users' => 'This asset is currently checked out to a user and cannot be deleted. Please check the asset in first, and then try deleting again. ', + '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.', + + 'create' => [ + 'error' => 'Asset was not created, please try again. :(', + 'success' => 'Asset created successfully. :)', + 'success_linked' => 'Asset with tag :tag was created successfully. Click here to view.', + ], + + 'update' => [ + 'error' => 'Asset was not updated, please try again', + 'success' => 'Asset updated successfully.', + 'encrypted_warning' => 'Asset updated successfully, but encrypted custom fields were not due to permissions', + 'nothing_updated' => 'No fields were selected, so nothing was updated.', + 'no_assets_selected' => 'No assets were selected, so nothing was updated.', + 'assets_do_not_exist_or_are_invalid' => 'Selected assets cannot be updated.', + ], + + 'restore' => [ + 'error' => 'Asset was not restored, please try again', + 'success' => 'Asset restored successfully.', + 'bulk_success' => 'Asset restored successfully.', + 'nothing_updated' => 'No assets were selected, so nothing was restored.', + ], + + 'audit' => [ + 'error' => 'Asset audit unsuccessful: :error ', + 'success' => 'Asset audit successfully logged.', + ], + + + 'deletefile' => [ + 'error' => 'File not deleted. Please try again.', + 'success' => 'File successfully deleted.', + ], + + 'upload' => [ + 'error' => 'File(s) not uploaded. Please try again.', + 'success' => 'File(s) successfully uploaded.', + 'nofiles' => 'You did not select any files for upload, or the file you are trying to upload is too large', + 'invalidfiles' => 'One or more of your files is too large or is a filetype that is not allowed. Allowed filetypes are png, gif, jpg, doc, docx, pdf, and txt.', + ], + + 'import' => [ + 'error' => 'Some items did not import correctly.', + 'errorDetail' => 'The following Items were not imported because of errors.', + 'success' => 'Your file has been imported', + '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', + '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', + ], + + + 'delete' => [ + 'confirm' => 'Are you sure you wish to delete this asset?', + 'error' => 'There was an issue deleting the asset. Please try again.', + 'nothing_updated' => 'No assets were selected, so nothing was deleted.', + 'success' => 'The asset was deleted successfully.', + ], + + 'checkout' => [ + 'error' => 'Asset was not checked out, please try again', + 'success' => 'Asset checked out successfully.', + 'user_does_not_exist' => 'That user is invalid. Please try again.', + 'not_available' => 'That asset is not available for checkout!', + 'no_assets_selected' => 'You must select at least one asset from the list', + ], + + 'checkin' => [ + 'error' => 'Asset was not checked in, please try again', + 'success' => 'Asset checked in successfully.', + 'user_does_not_exist' => 'That user is invalid. Please try again.', + 'already_checked_in' => 'That asset is already checked in.', + + ], + + 'requests' => [ + 'error' => 'Asset was not requested, please try again', + 'success' => 'Asset requested successfully.', + 'canceled' => 'Checkout request successfully canceled', + ], + +]; diff --git a/resources/lang/chr-US/admin/hardware/table.php b/resources/lang/chr-US/admin/hardware/table.php new file mode 100644 index 0000000000..92b228dccd --- /dev/null +++ b/resources/lang/chr-US/admin/hardware/table.php @@ -0,0 +1,33 @@ + 'Asset Tag', + 'asset_model' => 'Model', + 'assigned_to' => 'Assigned To', + 'book_value' => 'Current Value', + 'change' => 'In/Out', + 'checkout_date' => 'Checkout Date', + 'checkoutto' => 'Checked Out', + 'components_cost' => 'Total Components Cost', + 'current_value' => 'Current Value', + 'diff' => 'Diff', + 'dl_csv' => 'Download CSV', + 'eol' => 'EOL', + 'id' => 'ID', + 'last_checkin_date' => 'Last Checkin Date', + 'location' => 'Location', + 'purchase_cost' => 'Cost', + 'purchase_date' => 'Purchased', + 'serial' => 'Serial', + 'status' => 'Status', + 'title' => 'Asset ', + 'image' => 'Device Image', + 'days_without_acceptance' => 'Days Without Acceptance', + 'monthly_depreciation' => 'Monthly Depreciation', + 'assigned_to' => 'Assigned To', + 'requesting_user' => 'Requesting User', + 'requested_date' => 'Requested Date', + 'changed' => 'Changed', + 'icon' => 'Icon', +]; diff --git a/resources/lang/chr-US/admin/kits/general.php b/resources/lang/chr-US/admin/kits/general.php new file mode 100644 index 0000000000..f57fb645c4 --- /dev/null +++ b/resources/lang/chr-US/admin/kits/general.php @@ -0,0 +1,50 @@ + 'About Predefined Kits', + 'about_kits_text' => 'Predefined Kits let you quickly check out a collection of items (assets, licenses, etc) to a user. This can be helpful when your onboarding process is consistent across many users and all users receive the same items.', + 'checkout' => 'Checkout Kit ', + 'create_success' => 'Kit was successfully created.', + 'create' => 'Create Predefined Kit', + 'update' => 'Update Predefined Kit', + 'delete_success' => 'Kit was successfully deleted.', + 'update_success' => 'Kit was successfully updated.', + 'none_models' => 'There are not enough available assets for :model to checkout. :qty are required. ', + 'none_licenses' => 'There are not enough available seats for :license to checkout. :qty are required. ', + 'none_consumables' => 'There are not enough available units of :consumable to checkout. :qty are required. ', + 'none_accessory' => 'There are not enough available units of :accessory to checkout. :qty are required. ', + 'append_accessory' => 'Append Accessory', + 'update_appended_accessory' => 'Update appended Accessory', + 'append_consumable' => 'Append Consumable', + 'update_appended_consumable' => 'Update appended Consumable', + 'append_license' => 'Append license', + 'update_appended_license' => 'Update appended license', + 'append_model' => 'Append model', + 'update_appended_model' => 'Update appended model', + 'license_error' => 'License already attached to kit', + 'license_added_success' => 'License added successfully', + 'license_updated' => 'License was successfully updated', + 'license_none' => 'License does not exist', + 'license_detached' => 'License was successfully detached', + 'consumable_added_success' => 'Consumable added successfully', + 'consumable_updated' => 'Consumable was successfully updated', + 'consumable_error' => 'Consumable already attached to kit', + 'consumable_deleted' => 'Delete was successful', + 'consumable_none' => 'Consumable does not exist', + 'consumable_detached' => 'Consumable was successfully detached', + 'accessory_added_success' => 'Accessory added successfully', + 'accessory_updated' => 'Accessory was successfully updated', + 'accessory_detached' => 'Accessory was successfully detached', + 'accessory_error' => 'Accessory already attached to kit', + 'accessory_deleted' => 'Delete was successful', + 'accessory_none' => 'The accessory does not exist', + 'checkout_success' => 'Checkout was successful', + 'checkout_error' => 'Checkout error', + 'kit_none' => 'Kit does not exist', + 'kit_created' => 'Kit was successfully created', + 'kit_updated' => 'Kit was successfully updated', + 'kit_not_found' => 'Kit not found', + 'kit_deleted' => 'Kit was successfully deleted', + 'kit_model_updated' => 'Model was successfully updated', + 'kit_model_detached' => 'Model was successfully detached', +]; diff --git a/resources/lang/chr-US/admin/labels/message.php b/resources/lang/chr-US/admin/labels/message.php new file mode 100644 index 0000000000..96785f0754 --- /dev/null +++ b/resources/lang/chr-US/admin/labels/message.php @@ -0,0 +1,11 @@ + 'Invalid count returned from :name. Expected :expected, got :actual.', + 'invalid_return_type' => 'Invalid type returned from :name. Expected :expected, got :actual.', + 'invalid_return_value' => 'Invalid value returned from :name. Expected :expected, got :actual.', + + 'does_not_exist' => 'Label does not exist', + +]; diff --git a/resources/lang/chr-US/admin/labels/table.php b/resources/lang/chr-US/admin/labels/table.php new file mode 100644 index 0000000000..bef4ba170e --- /dev/null +++ b/resources/lang/chr-US/admin/labels/table.php @@ -0,0 +1,19 @@ + 'Test Company Limited', + 'example_defaultloc' => 'Building 1', + 'example_category' => 'Test Category', + 'example_location' => 'Building 2', + 'example_manufacturer' => 'Test Manufacturing Inc.', + 'example_model' => 'Test Model', + 'example_supplier' => 'Test Company Limited', + 'labels_per_page' => 'Labels', + 'support_fields' => 'Fields', + 'support_asset_tag' => 'Tag', + 'support_1d_barcode' => '1D', + 'support_2d_barcode' => '2D', + 'support_logo' => 'Logo', + 'support_title' => 'Title', + +]; \ No newline at end of file diff --git a/resources/lang/chr-US/admin/licenses/form.php b/resources/lang/chr-US/admin/licenses/form.php new file mode 100644 index 0000000000..ce29167874 --- /dev/null +++ b/resources/lang/chr-US/admin/licenses/form.php @@ -0,0 +1,22 @@ + 'Asset', + 'checkin' => 'Checkin', + 'create' => 'Create License', + 'expiration' => 'Expiration Date', + 'license_key' => 'Product Key', + 'maintained' => 'Maintained', + 'name' => 'Software Name', + 'no_depreciation' => 'Do Not Depreciate', + 'purchase_order' => 'Purchase Order Number', + 'reassignable' => 'Reassignable', + 'remaining_seats' => 'Remaining Seats', + 'seats' => 'Seats', + 'termination_date' => 'Termination Date', + 'to_email' => 'Licensed to Email', + 'to_name' => 'Licensed to Name', + 'update' => 'Update License', + 'checkout_help' => 'You must check a license out to a hardware asset or a person. You can select both, but the owner of the asset must match the person you\'re checking the asset out to.' +); diff --git a/resources/lang/chr-US/admin/licenses/general.php b/resources/lang/chr-US/admin/licenses/general.php new file mode 100644 index 0000000000..79b69a3d94 --- /dev/null +++ b/resources/lang/chr-US/admin/licenses/general.php @@ -0,0 +1,51 @@ + 'About Licenses', + 'about_licenses' => 'Licenses are used to track software. They have a specified number of seats that can be checked out to individuals', + 'checkin' => 'Checkin License Seat', + 'checkout_history' => 'Checkout History', + 'checkout' => 'Checkout License Seat', + 'edit' => 'Edit License', + 'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.', + 'clone' => 'Clone License', + 'history_for' => 'History for ', + 'in_out' => 'In/Out', + 'info' => 'License Info', + 'license_seats' => 'License Seats', + 'seat' => 'Seat', + 'seats' => 'Seats', + 'software_licenses' => 'Software Licenses', + 'user' => 'User', + 'view' => 'View License', + 'delete_disabled' => 'This license cannot be deleted yet because some seats are still checked out.', + 'bulk' => + [ + 'checkin_all' => [ + 'button' => 'Checkin All Seats', + 'modal' => 'This will action checkin one seat. | This action will checkin all :checkedout_seats_count seats for this license.', + 'enabled_tooltip' => 'Checkin ALL seats for this license from both users and assets', + 'disabled_tooltip' => 'This is disabled because there are no seats currently checked out', + 'disabled_tooltip_reassignable' => 'This is disabled because the License is not reassignable', + 'success' => 'License successfully checked in! | All licenses were successfully checked in!', + 'log_msg' => 'Checked in via bulk license checkout in license GUI', + ], + + 'checkout_all' => [ + 'button' => 'Checkout All Seats', + 'modal' => 'This action will checkout one seat to the first available user. | This action will checkout all :available_seats_count seats to the first available users. A user is considered available for this seat if they do not already have this license checked out to them, and the Auto-Assign License property is enabled on their user account.', + 'enabled_tooltip' => 'Checkout ALL seats (or as many as are available) to ALL users', + 'disabled_tooltip' => 'This is disabled because there are no seats currently available', + 'success' => 'License successfully checked out! | :count licenses were successfully checked out!', + 'error_no_seats' => 'There are no remaining seats left for this license.', + 'warn_not_enough_seats' => ':count users were assigned this license, but we ran out of available license seats.', + 'warn_no_avail_users' => 'Nothing to do. There are no users who do not already have this license assigned to them.', + 'log_msg' => 'Checked out via bulk license checkout in license GUI', + + + ], + ], + + 'below_threshold' => 'There are only :remaining_count seats left for this license with a minimum quantity of :min_amt. You may want to consider purchasing more seats.', + 'below_threshold_short' => 'This item is below the minimum required quantity.', +); diff --git a/resources/lang/chr-US/admin/licenses/message.php b/resources/lang/chr-US/admin/licenses/message.php new file mode 100644 index 0000000000..27fbfe38a9 --- /dev/null +++ b/resources/lang/chr-US/admin/licenses/message.php @@ -0,0 +1,54 @@ + 'License does not exist or you do not have permission to view it.', + 'user_does_not_exist' => 'User does not exist or you do not have permission to view them.', + 'asset_does_not_exist' => 'The asset you are trying to associate with this license does not exist.', + 'owner_doesnt_match_asset' => 'The asset you are trying to associate with this license is owned by somene other than the person selected in the assigned to dropdown.', + 'assoc_users' => 'This license is currently checked out to a user and cannot be deleted. Please check the license in first, and then try deleting again. ', + 'select_asset_or_person' => 'You must select an asset or a user, but not both.', + 'not_found' => 'License not found', + 'seats_available' => ':seat_count seats available', + + + 'create' => array( + 'error' => 'License was not created, please try again.', + 'success' => 'License created successfully.' + ), + + 'deletefile' => array( + 'error' => 'File not deleted. Please try again.', + 'success' => 'File successfully deleted.', + ), + + 'upload' => array( + 'error' => 'File(s) not uploaded. Please try again.', + 'success' => 'File(s) successfully uploaded.', + 'nofiles' => 'You did not select any files for upload, or the file you are trying to upload is too large', + 'invalidfiles' => 'One or more of your files is too large or is a filetype that is not allowed. Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, rar, rtf, xml, and lic.', + ), + + 'update' => array( + 'error' => 'License was not updated, please try again', + 'success' => 'License updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this license?', + 'error' => 'There was an issue deleting the license. Please try again.', + 'success' => 'The license was deleted successfully.' + ), + + 'checkout' => array( + 'error' => 'There was an issue checking out the license. Please try again.', + 'success' => 'The license was checked out successfully', + 'not_enough_seats' => 'Not enough license seats available for checkout', + ), + + 'checkin' => array( + 'error' => 'There was an issue checking in the license. Please try again.', + 'success' => 'The license was checked in successfully' + ), + +); diff --git a/resources/lang/chr-US/admin/licenses/table.php b/resources/lang/chr-US/admin/licenses/table.php new file mode 100644 index 0000000000..9cabf9c883 --- /dev/null +++ b/resources/lang/chr-US/admin/licenses/table.php @@ -0,0 +1,18 @@ + 'Assigned To', + 'checkout' => 'In/Out', + 'deleted_at' => 'Deleted at', + 'id' => 'ID', + 'license_email' => 'License Email', + 'license_name' => 'Licensed To', + 'purchase_date' => 'Purchase Date', + 'purchased' => 'Purchased', + 'seats' => 'Seats', + 'hardware' => 'Hardware', + 'serial' => 'Serial', + 'title' => 'License', + +); diff --git a/resources/lang/chr-US/admin/locations/message.php b/resources/lang/chr-US/admin/locations/message.php new file mode 100644 index 0000000000..22c7fe8f70 --- /dev/null +++ b/resources/lang/chr-US/admin/locations/message.php @@ -0,0 +1,29 @@ + 'Location does not exist.', + 'assoc_users' => 'This location is currently associated with at least one user and cannot be deleted. Please update your users 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', + 'current_location' => 'Current Location', + + + 'create' => array( + 'error' => 'Location was not created, please try again.', + 'success' => 'Location created successfully.' + ), + + 'update' => array( + 'error' => 'Location was not updated, please try again', + 'success' => 'Location updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this location?', + 'error' => 'There was an issue deleting the location. Please try again.', + 'success' => 'The location was deleted successfully.' + ) + +); diff --git a/resources/lang/chr-US/admin/locations/table.php b/resources/lang/chr-US/admin/locations/table.php new file mode 100644 index 0000000000..ed3f96f6b4 --- /dev/null +++ b/resources/lang/chr-US/admin/locations/table.php @@ -0,0 +1,42 @@ + 'About Locations', + 'about_locations' => 'Locations are used to track location information for users, assets, and other items', + 'assets_rtd' => 'Assets', // This has NEVER meant Assets Retired. I don't know how it keeps getting reverted. + 'assets_checkedout' => 'Assets Assigned', + 'id' => 'ID', + 'city' => 'City', + 'state' => 'State', + 'country' => 'Country', + 'create' => 'Create Location', + 'update' => 'Update Location', + 'print_assigned' => 'Print Assigned', + 'print_all_assigned' => 'Print All Assigned', + 'name' => 'Location Name', + 'address' => 'Address', + 'address2' => 'Address Line 2', + 'zip' => 'Postal Code', + 'locations' => 'Locations', + 'parent' => 'Parent', + 'currency' => 'Location Currency', + 'ldap_ou' => 'LDAP Search OU', + 'user_name' => 'User Name', + 'department' => 'Department', + 'location' => 'Location', + 'asset_tag' => 'Assets Tag', + 'asset_name' => 'Name', + 'asset_category' => 'Category', + 'asset_manufacturer' => 'Manufacturer', + 'asset_model' => 'Model', + 'asset_serial' => 'Serial', + 'asset_location' => 'Location', + 'asset_checked_out' => 'Checked Out', + 'asset_expected_checkin' => 'Expected Checkin', + 'date' => 'Date:', + 'phone' => 'Location Phone', + 'signed_by_asset_auditor' => 'Signed By (Asset Auditor):', + 'signed_by_finance_auditor' => 'Signed By (Finance Auditor):', + 'signed_by_location_manager' => 'Signed By (Location Manager):', + 'signed_by' => 'Signed Off By:', +]; diff --git a/resources/lang/chr-US/admin/manufacturers/message.php b/resources/lang/chr-US/admin/manufacturers/message.php new file mode 100644 index 0000000000..61416e0230 --- /dev/null +++ b/resources/lang/chr-US/admin/manufacturers/message.php @@ -0,0 +1,30 @@ + 'Variables {LOCALE}, {SERIAL}, {MODEL_NUMBER}, and {MODEL_NAME} may be used in your URL to have those values auto-populate when viewing assets - for example https://checkcoverage.apple.com/{LOCALE}/{SERIAL}.', + 'does_not_exist' => 'Manufacturer does not exist.', + 'assoc_users' => 'This manufacturer is currently associated with at least one model and cannot be deleted. Please update your models to no longer reference this manufacturer and try again. ', + + 'create' => array( + 'error' => 'Manufacturer was not created, please try again.', + 'success' => 'Manufacturer created successfully.' + ), + + 'update' => array( + 'error' => 'Manufacturer was not updated, please try again', + 'success' => 'Manufacturer updated successfully.' + ), + + 'restore' => array( + 'error' => 'Manufacturer was not restored, please try again', + 'success' => 'Manufacturer restored successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this manufacturer?', + 'error' => 'There was an issue deleting the manufacturer. Please try again.', + 'success' => 'The Manufacturer was deleted successfully.' + ) + +); diff --git a/resources/lang/chr-US/admin/manufacturers/table.php b/resources/lang/chr-US/admin/manufacturers/table.php new file mode 100644 index 0000000000..6a0aaa8865 --- /dev/null +++ b/resources/lang/chr-US/admin/manufacturers/table.php @@ -0,0 +1,16 @@ + 'About manufacturers', + 'about_manufacturers_text' => 'Manufacturers are the companies that create your assets. You can store important support contact information about them here, which will be displayed on your asset detail pages.', + 'asset_manufacturers' => 'Asset Manufacturers', + 'create' => 'Create Manufacturer', + 'id' => 'ID', + 'name' => 'Name', + 'support_email' => 'Support Email', + 'support_phone' => 'Support Phone', + 'support_url' => 'Support URL', + 'warranty_lookup_url' => 'Warranty Lookup URL', + 'update' => 'Update Manufacturer', + +); diff --git a/resources/lang/chr-US/admin/models/general.php b/resources/lang/chr-US/admin/models/general.php new file mode 100644 index 0000000000..7e4a77adbc --- /dev/null +++ b/resources/lang/chr-US/admin/models/general.php @@ -0,0 +1,18 @@ + 'About Asset Models', + 'about_models_text' => 'Asset Models are a way to group identical assets. "MBP 2013", "IPhone 6s", etc.', + 'deleted' => 'This model has been deleted.', + 'bulk_delete' => 'Bulk Delete Asset Models', + 'bulk_delete_help' => 'Use the checkboxes below to confirm the deletion of the selected asset models. Asset models that have assets associated with them cannot be deleted until the assets are associated with a different model.', + 'bulk_delete_warn' => 'You are about to delete one asset model.|You are about to delete :model_count asset models.', + 'restore' => 'Restore Model', + 'requestable' => 'Users may request this model', + 'show_mac_address' => 'Show MAC address field in assets in this model', + 'view_deleted' => 'View Deleted', + 'view_models' => 'View Models', + 'fieldset' => 'Fieldset', + 'no_custom_field' => 'No custom fields', + 'add_default_values' => 'Add default values', +); diff --git a/resources/lang/chr-US/admin/models/message.php b/resources/lang/chr-US/admin/models/message.php new file mode 100644 index 0000000000..cc38c54530 --- /dev/null +++ b/resources/lang/chr-US/admin/models/message.php @@ -0,0 +1,47 @@ + 'Deleted asset model', + 'does_not_exist' => 'Model does not exist.', + '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. ', + + + 'create' => array( + 'error' => 'Model was not created, please try again.', + 'success' => 'Model created successfully.', + 'duplicate_set' => 'An asset model with that name, manufacturer and model number already exists.', + ), + + 'update' => array( + 'error' => 'Model was not updated, please try again', + 'success' => 'Model updated successfully.', + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this asset model?', + 'error' => 'There was an issue deleting the model. Please try again.', + 'success' => 'The model was deleted successfully.' + ), + + 'restore' => array( + 'error' => 'Model was not restored, please try again', + 'success' => 'Model restored successfully.' + ), + + 'bulkedit' => array( + 'error' => 'No fields were changed, so nothing was updated.', + 'success' => 'Model successfully updated. |:model_count models successfully updated.', + 'warn' => 'You are about to update the properties of the following model:|You are about to edit the properties of the following :model_count models:', + + ), + + 'bulkdelete' => array( + 'error' => 'No models were selected, so nothing was deleted.', + '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.' + ), + +); diff --git a/resources/lang/chr-US/admin/models/table.php b/resources/lang/chr-US/admin/models/table.php new file mode 100644 index 0000000000..11a512b3d3 --- /dev/null +++ b/resources/lang/chr-US/admin/models/table.php @@ -0,0 +1,17 @@ + 'Create Asset Model', + 'created_at' => 'Created at', + 'eol' => 'EOL', + 'modelnumber' => 'Model No.', + 'name' => 'Asset Model Name', + 'numassets' => 'Assets', + 'title' => 'Asset Models', + 'update' => 'Update Asset Model', + 'view' => 'View Asset Model', + 'update' => 'Update Asset Model', + 'clone' => 'Clone Model', + 'edit' => 'Edit Model', +); diff --git a/resources/lang/chr-US/admin/reports/general.php b/resources/lang/chr-US/admin/reports/general.php new file mode 100644 index 0000000000..9b682f8ecd --- /dev/null +++ b/resources/lang/chr-US/admin/reports/general.php @@ -0,0 +1,17 @@ + 'Select the options you want for your asset report.', + 'deleted_user' => 'Deleted user', + 'send_reminder' => 'Send reminder', + 'reminder_sent' => 'Reminder sent', + 'acceptance_deleted' => 'Acceptance request deleted', + 'acceptance_request' => 'Acceptance request', + 'custom_export' => [ + 'user_address' => 'User Address', + 'user_city' => 'User City', + 'user_state' => 'User State', + 'user_country' => 'User Country', + 'user_zip' => 'User Zip' + ] +]; \ No newline at end of file diff --git a/resources/lang/chr-US/admin/reports/message.php b/resources/lang/chr-US/admin/reports/message.php new file mode 100644 index 0000000000..d4c8f8198f --- /dev/null +++ b/resources/lang/chr-US/admin/reports/message.php @@ -0,0 +1,5 @@ + 'You must select at least ONE option.' +); diff --git a/resources/lang/chr-US/admin/settings/general.php b/resources/lang/chr-US/admin/settings/general.php new file mode 100644 index 0000000000..01adf36ebf --- /dev/null +++ b/resources/lang/chr-US/admin/settings/general.php @@ -0,0 +1,368 @@ + 'Active Directory', + 'ad_domain' => 'Active Directory domain', + 'ad_domain_help' => 'This is sometimes the same as your email domain, but not always.', + 'ad_append_domain_label' => 'Append domain name', + 'ad_append_domain' => 'Append domain name to username field', + 'ad_append_domain_help' => 'User isn\'t required to write "username@domain.local", they can just type "username".', + 'admin_cc_email' => 'CC Email', + 'admin_cc_email_help' => 'If you would like to send a copy of checkin/checkout emails that are sent to users to an additional email account, enter it here. Otherwise leave this field blank.', + 'admin_settings' => 'Admin Settings', + 'is_ad' => 'This is an Active Directory server', + 'alerts' => 'Alerts', + 'alert_title' => 'Update Notification Settings', + 'alert_email' => 'Send alerts to', + 'alert_email_help' => 'Email addresses or distribution lists you want alerts to be sent to, comma separated', + 'alerts_enabled' => 'Email Alerts Enabled', + 'alert_interval' => 'Expiring Alerts Threshold (in days)', + 'alert_inv_threshold' => 'Inventory Alert Threshold', + 'allow_user_skin' => 'Allow User Skin', + 'allow_user_skin_help_text' => 'Checking this box will allow a user to override the UI skin with a different one.', + 'asset_ids' => 'Asset IDs', + 'audit_interval' => 'Audit Interval', + 'audit_interval_help' => 'If you are required to regularly physically audit your assets, enter the interval in months that you use. If you update this value, all of the "next audit dates" for assets with an upcoming audit date will be updated.', + 'audit_warning_days' => 'Audit Warning Threshold', + 'audit_warning_days_help' => 'How many days in advance should we warn you when assets are due for auditing?', + 'auto_increment_assets' => 'Generate auto-incrementing asset tags', + 'auto_increment_prefix' => 'Prefix (optional)', + 'auto_incrementing_help' => 'Enable auto-incrementing asset tags first to set this', + 'backups' => 'Backups', + 'backups_help' => 'Create, download, and restore backups ', + 'backups_restoring' => 'Restoring from Backup', + '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. ', + 'backups_logged_out' => 'All existing users, including you, will be logged out once your restore is complete.', + 'backups_large' => 'Very large backups may time out on the restore attempt and may still need to be run via command line. ', + 'barcode_settings' => 'Barcode Settings', + 'confirm_purge' => 'Confirm Purge', + 'confirm_purge_help' => 'Enter the text "DELETE" in the box below to purge your deleted records. This action cannot be undone and will PERMANENTLY delete all soft-deleted items and users. (You should make a backup first, just to be safe.)', + 'custom_css' => 'Custom CSS', + 'custom_css_help' => 'Enter any custom CSS overrides you would like to use. Do not include the <style></style> tags.', + 'custom_forgot_pass_url' => 'Custom Password Reset URL', + 'custom_forgot_pass_url_help' => 'This replaces the built-in forgotten password URL on the login screen, useful to direct people to internal or hosted LDAP password reset functionality. It will effectively disable local user forgotten password functionality.', + 'dashboard_message' => 'Dashboard Message', + 'dashboard_message_help' => 'This text will appear on the dashboard for anyone with permission to view the dashboard.', + 'default_currency' => 'Default Currency', + 'default_eula_text' => 'Default EULA', + 'default_language' => 'Default Language', + 'default_eula_help_text' => 'You can also associate custom EULAs to specific asset categories.', + 'acceptance_note' => 'Add a note for your decision (Optional)', + 'display_asset_name' => 'Display Asset Name', + 'display_checkout_date' => 'Display Checkout Date', + 'display_eol' => 'Display EOL in table view', + 'display_qr' => 'Display Square Codes', + 'display_alt_barcode' => 'Display 1D barcode', + 'email_logo' => 'Email Logo', + 'barcode_type' => '2D Barcode Type', + 'alt_barcode_type' => '1D barcode type', + 'email_logo_size' => 'Square logos in email look best. ', + 'enabled' => 'Enabled', + 'eula_settings' => 'EULA Settings', + 'eula_markdown' => 'This EULA allows Github flavored markdown.', + 'favicon' => 'Favicon', + 'favicon_format' => 'Accepted filetypes are ico, png, and gif. Other image formats may not work in all browsers.', + 'favicon_size' => 'Favicons should be square images, 16x16 pixels.', + 'footer_text' => 'Additional Footer Text ', + 'footer_text_help' => 'This text will appear in the right-side footer. Links are allowed using Github flavored markdown. Line breaks, headers, images, etc may result in unpredictable results.', + 'general_settings' => 'General Settings', + 'general_settings_keywords' => 'company support, signature, acceptance, email format, username format, images, per page, thumbnail, eula, gravatar, tos, dashboard, privacy', + 'general_settings_help' => 'Default EULA and more', + 'generate_backup' => 'Generate Backup', + 'google_workspaces' => 'Google Workspaces', + 'header_color' => 'Header Color', + 'info' => 'These settings let you customize certain aspects of your installation.', + 'label_logo' => 'Label Logo', + 'label_logo_size' => 'Square logos look best - will be displayed in the top right of each asset label. ', + 'laravel' => 'Laravel Version', + 'ldap' => 'LDAP', + 'ldap_default_group' => 'Default Permissions Group', + 'ldap_default_group_info' => 'Select a group to assign to newly synced users. Remember that a user takes on the permissions of the group they are assigned.', + 'no_default_group' => 'No Default Group', + 'ldap_help' => 'LDAP/Active Directory', + 'ldap_client_tls_key' => 'LDAP Client TLS Key', + 'ldap_client_tls_cert' => 'LDAP Client-Side TLS Certificate', + 'ldap_enabled' => 'LDAP enabled', + 'ldap_integration' => 'LDAP Integration', + 'ldap_settings' => 'LDAP Settings', + 'ldap_client_tls_cert_help' => 'Client-Side TLS Certificate and Key for LDAP connections are usually only useful in Google Workspace configurations with "Secure LDAP." Both are required.', + 'ldap_location' => 'LDAP Location', +'ldap_location_help' => 'The Ldap Location field should be used if an OU is not being used in the Base Bind DN. Leave this blank if an OU search is being used.', + 'ldap_login_test_help' => 'Enter a valid LDAP username and password from the base DN you specified above to test whether your LDAP login is configured correctly. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.', + 'ldap_login_sync_help' => 'This only tests that LDAP can sync correctly. If your LDAP Authentication query is not correct, users may still not be able to login. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.', + 'ldap_manager' => 'LDAP Manager', + 'ldap_server' => 'LDAP Server', + 'ldap_server_help' => 'This should start with ldap:// (for unencrypted or TLS) or ldaps:// (for SSL)', + 'ldap_server_cert' => 'LDAP SSL certificate validation', + 'ldap_server_cert_ignore' => 'Allow invalid SSL Certificate', + 'ldap_server_cert_help' => 'Select this checkbox if you are using a self signed SSL cert and would like to accept an invalid SSL certificate.', + 'ldap_tls' => 'Use TLS', + 'ldap_tls_help' => 'This should be checked only if you are running STARTTLS on your LDAP server. ', + 'ldap_uname' => 'LDAP Bind Username', + 'ldap_dept' => 'LDAP Department', + 'ldap_phone' => 'LDAP Telephone Number', + 'ldap_jobtitle' => 'LDAP Job Title', + 'ldap_country' => 'LDAP Country', + 'ldap_pword' => 'LDAP Bind Password', + 'ldap_basedn' => 'Base Bind DN', + 'ldap_filter' => 'LDAP Filter', + 'ldap_pw_sync' => 'LDAP Password Sync', + 'ldap_pw_sync_help' => 'Uncheck this box if you do not wish to keep LDAP passwords synced with local passwords. Disabling this means that your users may not be able to login if your LDAP server is unreachable for some reason.', + 'ldap_username_field' => 'Username Field', + 'ldap_lname_field' => 'Last Name', + 'ldap_fname_field' => 'LDAP First Name', + 'ldap_auth_filter_query' => 'LDAP Authentication query', + 'ldap_version' => 'LDAP Version', + 'ldap_active_flag' => 'LDAP Active Flag', + 'ldap_activated_flag_help' => 'This value is used to determine whether a synced user can login to Snipe-IT. It does not affect the ability to check items in or out to them, and should be the attribute name within your AD/LDAP, not the value.

    If this field is set to a field name that does not exist in your AD/LDAP, or the value in the AD/LDAP field is set to 0 or false, user login will be disabled. If the value in the AD/LDAP field is set to 1 or true or any other text means the user can log in. When the field is blank in your AD, we respect the userAccountControl attribute, which usually allows non-suspended users to log in.', + 'ldap_emp_num' => 'LDAP Employee Number', + 'ldap_email' => 'LDAP Email', + 'ldap_test' => 'Test LDAP', + 'ldap_test_sync' => 'Test LDAP Synchronization', + 'license' => 'Software License', + 'load_remote' => 'Use Gravatar', + '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 images from Gravatar.', + 'login' => 'Login Attempts', + 'login_attempt' => 'Login Attempt', + 'login_ip' => 'IP Address', + 'login_success' => 'Success?', + 'login_user_agent' => 'User Agent', + 'login_help' => 'List of attempted logins', + 'login_note' => 'Login Note', + 'login_note_help' => 'Optionally include a few sentences on your login screen, for example to assist people who have found a lost or stolen device. This field accepts Github flavored markdown', + 'login_remote_user_text' => 'Remote User login options', + 'login_remote_user_enabled_text' => 'Enable Login with Remote User Header', + 'login_remote_user_enabled_help' => 'This option enables Authentication via the REMOTE_USER header according to the "Common Gateway Interface (rfc3875)"', + 'login_common_disabled_text' => 'Disable other authentication mechanisms', + 'login_common_disabled_help' => 'This option disables other authentication mechanisms. Just enable this option if you are sure that your REMOTE_USER login is already working', + 'login_remote_user_custom_logout_url_text' => 'Custom logout URL', + 'login_remote_user_custom_logout_url_help' => 'If a url is provided here, users will get redirected to this URL after the user logs out of Snipe-IT. This is useful to close the user sessions of your Authentication provider correctly.', + 'login_remote_user_header_name_text' => 'Custom user name header', + 'login_remote_user_header_name_help' => 'Use the specified header instead of REMOTE_USER', + 'logo' => 'Logo', + 'logo_print_assets' => 'Use in Print', + 'logo_print_assets_help' => 'Use branding on printable asset lists ', + 'full_multiple_companies_support_help_text' => 'Restricting users (including admins) assigned to companies to their company\'s assets.', + 'full_multiple_companies_support_text' => 'Full Multiple Companies Support', + 'show_in_model_list' => 'Show in Model Dropdowns', + 'optional' => 'optional', + 'per_page' => 'Results Per Page', + 'php' => 'PHP Version', + 'php_info' => 'PHP Info', + 'php_overview' => 'PHP', + 'php_overview_keywords' => 'phpinfo, system, info', + 'php_overview_help' => 'PHP System info', + 'php_gd_info' => 'You must install php-gd to display QR codes, see install instructions.', + 'php_gd_warning' => 'PHP Image Processing and GD plugin is NOT installed.', + 'pwd_secure_complexity' => 'Password Complexity', + 'pwd_secure_complexity_help' => 'Select whichever password complexity rules you wish to enforce.', + 'pwd_secure_complexity_disallow_same_pwd_as_user_fields' => 'Password cannot be the same as first name, last name, email, or username', + 'pwd_secure_complexity_letters' => 'Require at least one letter', + 'pwd_secure_complexity_numbers' => 'Require at least one number', + 'pwd_secure_complexity_symbols' => 'Require at least one symbol', + 'pwd_secure_complexity_case_diff' => 'Require at least one uppercase and one lowercase', + 'pwd_secure_min' => 'Password minimum characters', + 'pwd_secure_min_help' => 'Minimum permitted value is 8', + 'pwd_secure_uncommon' => 'Prevent common passwords', + 'pwd_secure_uncommon_help' => 'This will disallow users from using common passwords from the top 10,000 passwords reported in breaches.', + 'qr_help' => 'Enable QR Codes first to set this', + 'qr_text' => 'QR Code Text', + 'saml' => 'SAML', + 'saml_title' => 'Update SAML settings', + 'saml_help' => 'SAML settings', + 'saml_enabled' => 'SAML enabled', + 'saml_integration' => 'SAML Integration', + 'saml_sp_entityid' => 'Entity ID', + 'saml_sp_acs_url' => 'Assertion Consumer Service (ACS) URL', + 'saml_sp_sls_url' => 'Single Logout Service (SLS) URL', + 'saml_sp_x509cert' => 'Public Certificate', + 'saml_sp_metadata_url' => 'Metadata URL', + 'saml_idp_metadata' => 'SAML IdP Metadata', + 'saml_idp_metadata_help' => 'You can specify the IdP metadata using a URL or XML file.', + 'saml_attr_mapping_username' => 'Attribute Mapping - Username', + 'saml_attr_mapping_username_help' => 'NameID will be used if attribute mapping is unspecified or invalid.', + 'saml_forcelogin_label' => 'SAML Force Login', + 'saml_forcelogin' => 'Make SAML the primary login', + 'saml_forcelogin_help' => 'You can use \'/login?nosaml\' to get to the normal login page.', + 'saml_slo_label' => 'SAML Single Log Out', + 'saml_slo' => 'Send a LogoutRequest to IdP on Logout', + 'saml_slo_help' => 'This will cause the user to be first redirected to the IdP on logout. Leave unchecked if the IdP doesn\'t correctly support SP-initiated SAML SLO.', + 'saml_custom_settings' => 'SAML Custom Settings', + 'saml_custom_settings_help' => 'You can specify additional settings to the onelogin/php-saml library. Use at your own risk.', + 'saml_download' => 'Download Metadata', + 'setting' => 'Setting', + 'settings' => 'Settings', + 'show_alerts_in_menu' => 'Show alerts in top menu', + 'show_archived_in_list' => 'Archived Assets', + 'show_archived_in_list_text' => 'Show archived assets in the "all assets" listing', + 'show_assigned_assets' => 'Show assets assigned to assets', + 'show_assigned_assets_help' => 'Display assets which were assigned to the other assets in View User -> Assets, View User -> Info -> Print All Assigned and in Account -> View Assigned Assets.', + 'show_images_in_email' => 'Show images in emails', + 'show_images_in_email_help' => 'Uncheck this box if your Snipe-IT installation is behind a VPN or closed network and users outside the network will not be able to load images served from this installation in their emails.', + 'site_name' => 'Site Name', + 'integrations' => 'Integrations', + 'slack' => 'Slack', + 'general_webhook' => 'General Webhook', + 'ms_teams' => 'Microsoft Teams', + 'webhook' => ':app', + 'webhook_presave' => 'Test to Save', + 'webhook_title' => 'Update Webhook Settings', + 'webhook_help' => 'Integration settings', + 'webhook_botname' => ':app Botname', + 'webhook_channel' => ':app Channel', + 'webhook_endpoint' => ':app Endpoint', + 'webhook_integration' => ':app Settings', + 'webhook_test' =>'Test :app integration', + '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.', + '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', + 'version_footer' => 'Version in Footer ', + 'version_footer_help' => 'Specify who sees the Snipe-IT version and build number.', + 'system' => 'System Information', + 'update' => 'Update Settings', + 'value' => 'Value', + 'brand' => 'Branding', + 'brand_keywords' => 'footer, logo, print, theme, skin, header, colors, color, css', + 'brand_help' => 'Logo, Site Name', + 'web_brand' => 'Web Branding Type', + 'about_settings_title' => 'About Settings', + 'about_settings_text' => 'These settings let you customize certain aspects of your installation.', + 'labels_per_page' => 'Labels per page', + 'label_dimensions' => 'Label dimensions (inches)', + 'next_auto_tag_base' => 'Next auto-increment', + 'page_padding' => 'Page margins (inches)', + 'privacy_policy_link' => 'Link to Privacy Policy', + 'privacy_policy' => 'Privacy Policy', + 'privacy_policy_link_help' => 'If a url is included here, a link to your privacy policy will be included in the app footer and in any emails that the system sends out, in compliance with GDPR. ', + 'purge' => 'Purge Deleted Records', + 'purge_deleted' => 'Purge Deleted ', + 'labels_display_bgutter' => 'Label bottom gutter', + 'labels_display_sgutter' => 'Label side gutter', + 'labels_fontsize' => 'Label font size', + 'labels_pagewidth' => 'Label sheet width', + 'labels_pageheight' => 'Label sheet height', + 'label_gutters' => 'Label spacing (inches)', + 'page_dimensions' => 'Page dimensions (inches)', + 'label_fields' => 'Label visible fields', + 'inches' => 'inches', + 'width_w' => 'w', + 'height_h' => 'h', + 'show_url_in_emails' => 'Link to Snipe-IT in Emails', + 'show_url_in_emails_help_text' => 'Uncheck this box if you do not wish to link back to your Snipe-IT installation in your email footers. Useful if most of your users never login. ', + 'text_pt' => 'pt', + 'thumbnail_max_h' => 'Max thumbnail height', + 'thumbnail_max_h_help' => 'Maximum height in pixels that thumbnails may display in the listing view. Min 25, max 500.', + 'two_factor' => 'Two Factor Authentication', + 'two_factor_secret' => 'Two-Factor Code', + 'two_factor_enrollment' => 'Two-Factor Enrollment', + 'two_factor_enabled_text' => 'Enable Two Factor', + 'two_factor_reset' => 'Reset Two-Factor Secret', + 'two_factor_reset_help' => 'This will force the user to enroll their device with their authenticator app again. This can be useful if their currently enrolled device is lost or stolen. ', + 'two_factor_reset_success' => 'Two factor device successfully reset', + 'two_factor_reset_error' => 'Two factor device reset failed', + 'two_factor_enabled_warning' => 'Enabling two-factor if it is not currently enabled will immediately force you to authenticate with a Google Auth enrolled device. You will have the ability to enroll your device if one is not currently enrolled.', + 'two_factor_enabled_help' => 'This will turn on two-factor authentication using Google Authenticator.', + 'two_factor_optional' => 'Selective (Users can enable or disable if permitted)', + 'two_factor_required' => 'Required for all users', + 'two_factor_disabled' => 'Disabled', + 'two_factor_enter_code' => 'Enter Two-Factor Code', + 'two_factor_config_complete' => 'Submit Code', + 'two_factor_enabled_edit_not_allowed' => 'Your administrator does not permit you to edit this setting.', + 'two_factor_enrollment_text' => "Two factor authentication is required, however your device has not been enrolled yet. Open your Google Authenticator app and scan the QR code below to enroll your device. Once you've enrolled your device, enter the code below", + 'require_accept_signature' => 'Require Signature', + 'require_accept_signature_help_text' => 'Enabling this feature will require users to physically sign off on accepting an asset.', + 'left' => 'left', + 'right' => 'right', + 'top' => 'top', + 'bottom' => 'bottom', + 'vertical' => 'vertical', + 'horizontal' => 'horizontal', + 'unique_serial' => 'Unique serial numbers', + 'unique_serial_help_text' => 'Checking this box will enforce a uniqueness constraint on asset serials', + 'zerofill_count' => 'Length of asset tags, including zerofill', + 'username_format_help' => 'This setting will only be used by the import process if a username is not provided and we have to generate a username for you.', + 'oauth_title' => 'OAuth API Settings', + 'oauth' => 'OAuth', + 'oauth_help' => 'Oauth Endpoint Settings', + 'asset_tag_title' => 'Update Asset Tag Settings', + 'barcode_title' => 'Update Barcode Settings', + 'barcodes' => 'Barcodes', + 'barcodes_help_overview' => 'Barcode & QR settings', + 'barcodes_help' => 'This will attempt to delete cached barcodes. This would typically only be used if your barcode settings have changed, or if your Snipe-IT URL has changed. Barcodes will be re-generated when accessed next.', + 'barcodes_spinner' => 'Attempting to delete files...', + 'barcode_delete_cache' => 'Delete Barcode Cache', + 'branding_title' => 'Update Branding Settings', + 'general_title' => 'Update General Settings', + 'mail_test' => 'Send Test', + 'mail_test_help' => 'This will attempt to send a test mail to :replyto.', + 'filter_by_keyword' => 'Filter by setting keyword', + 'security' => 'Security', + 'security_title' => 'Update Security Settings', + 'security_keywords' => 'password, passwords, requirements, two factor, two-factor, common passwords, remote login, logout, authentication', + 'security_help' => 'Two-factor, Password Restrictions', + 'groups_keywords' => 'permissions, permission groups, authorization', + 'groups_help' => 'Account permission groups', + 'localization' => 'Localization', + 'localization_title' => 'Update Localization Settings', + 'localization_keywords' => 'localization, currency, local, locale, time zone, timezone, international, internatinalization, language, languages, translation', + 'localization_help' => 'Language, date display', + 'notifications' => 'Notifications', + 'notifications_help' => 'Email Alerts & Audit Settings', + 'asset_tags_help' => 'Incrementing and prefixes', + 'labels' => 'Labels', + 'labels_title' => 'Update Label Settings', + 'labels_help' => 'Label sizes & settings', + 'purge' => 'Purge', + 'purge_keywords' => 'permanently delete', + 'purge_help' => 'Purge Deleted Records', + 'ldap_extension_warning' => 'It does not look like the LDAP extension is installed or enabled on this server. You can still save your settings, but you will need to enable the LDAP extension for PHP before LDAP syncing or login will work.', + 'ldap_ad' => 'LDAP/AD', + 'employee_number' => 'Employee Number', + 'create_admin_user' => 'Create a User ::', + 'create_admin_success' => 'Success! Your admin user has been added!', + 'create_admin_redirect' => 'Click here to go to your app login!', + 'setup_migrations' => 'Database Migrations ::', + 'setup_no_migrations' => 'There was nothing to migrate. Your database tables were already set up!', + 'setup_successful_migrations' => 'Your database tables have been created', + 'setup_migration_output' => 'Migration output:', + 'setup_migration_create_user' => 'Next: Create User', + 'ldap_settings_link' => 'LDAP Settings Page', + 'slack_test' => 'Test Integration', + 'label2_enable' => 'New Label Engine', + 'label2_enable_help' => 'Switch to the new label engine. Note: You will need to save this setting before setting others.', + 'label2_template' => 'Template', + 'label2_template_help' => 'Select which template to use for label generation', + 'label2_title' => 'Title', + 'label2_title_help' => 'The title to show on labels that support it', + 'label2_title_help_phold' => 'The placeholder {COMPANY} will be replaced with the asset's company name', + 'label2_asset_logo' => 'Use Asset Logo', + 'label2_asset_logo_help' => 'Use the logo of the asset's assigned company, rather than the value at :setting_name', + 'label2_1d_type' => '1D Barcode Type', + 'label2_1d_type_help' => 'Format for 1D barcodes', + 'label2_2d_type' => '2D Barcode Type', + 'label2_2d_type_help' => 'Format for 2D barcodes', + 'label2_2d_target' => '2D Barcode Target', + 'label2_2d_target_help' => 'The URL the 2D barcode points to when scanned', + 'label2_fields' => 'Field Definitions', + 'label2_fields_help' => 'Fields can be added, removed, and reordered in the left column. For each field, multiple options for Label and DataSource can be added, removed, and reordered in the right column.', + 'help_asterisk_bold' => 'Text entered as **text** will be displayed as bold', + 'help_blank_to_use' => 'Leave blank to use the value from :setting_name', + 'help_default_will_use' => ':default will use the value from :setting_name.
    Note that the value of the barcodes must comply with the respective barcode spec in order to be successfully generated. Please see the documentation for more details. ', + 'default' => 'Default', + 'none' => 'None', + 'google_callback_help' => 'This should be entered as the callback URL in your Google OAuth app settings in your organization's Google developer console .', + 'google_login' => 'Google Workspace Login Settings', + 'enable_google_login' => 'Enable users to login with Google Workspace', + 'enable_google_login_help' => 'Users will not be automatically provisioned. They must have an existing account here AND in Google Workspace, and their username here must match their Google Workspace email address. ', + 'mail_reply_to' => 'Mail Reply-To Address', + 'mail_from' => 'Mail From Address', + 'database_driver' => 'Database Driver', + 'bs_table_storage' => 'Table Storage', + 'timezone' => 'Timezone', + +]; diff --git a/resources/lang/chr-US/admin/settings/message.php b/resources/lang/chr-US/admin/settings/message.php new file mode 100644 index 0000000000..c9b0f34217 --- /dev/null +++ b/resources/lang/chr-US/admin/settings/message.php @@ -0,0 +1,46 @@ + [ + 'error' => 'An error has occurred while updating. ', + 'success' => 'Settings updated successfully.', + ], + 'backup' => [ + 'delete_confirm' => 'Are you sure you would like to delete this backup file? This action cannot be undone. ', + 'file_deleted' => 'The backup file was successfully deleted. ', + 'generated' => 'A new backup file was successfully created.', + 'file_not_found' => 'That backup file could not be found on the server.', + '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?' + ], + 'purge' => [ + 'error' => 'An error has occurred while purging. ', + 'validation_failed' => 'Your purge confirmation is incorrect. Please type the word "DELETE" in the confirmation box.', + 'success' => 'Deleted records successfully purged.', + ], + 'mail' => [ + 'sending' => 'Sending Test Email...', + 'success' => 'Mail sent!', + 'error' => 'Mail could not be sent.', + 'additional' => 'No additional error message provided. Check your mail settings and your app log.' + ], + 'ldap' => [ + 'testing' => 'Testing LDAP Connection, Binding & Query ...', + '500' => '500 Server Error. Please check your server logs for more information.', + 'error' => 'Something went wrong :(', + 'sync_success' => 'A sample of 10 users returned from the LDAP server based on your settings:', + 'testing_authentication' => 'Testing LDAP Authentication...', + 'authentication_success' => 'User authenticated against LDAP successfully!' + ], + 'webhook' => [ + 'sending' => 'Sending :app test message...', + 'success' => 'Your :webhook_name Integration works!', + 'success_pt1' => 'Success! Check the ', + 'success_pt2' => ' channel for your test message, and be sure to click SAVE below to store your settings.', + '500' => '500 Server Error.', + 'error' => 'Something went wrong. :app responded with: :error_message', + 'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we don’t follow redirects. Please use the actual endpoint.', + 'error_misc' => 'Something went wrong. :( ', + ] +]; diff --git a/resources/lang/chr-US/admin/settings/table.php b/resources/lang/chr-US/admin/settings/table.php new file mode 100644 index 0000000000..22db5c84ed --- /dev/null +++ b/resources/lang/chr-US/admin/settings/table.php @@ -0,0 +1,6 @@ + 'Created', + 'size' => 'Size', +); diff --git a/resources/lang/chr-US/admin/statuslabels/message.php b/resources/lang/chr-US/admin/statuslabels/message.php new file mode 100644 index 0000000000..b1b4034d0d --- /dev/null +++ b/resources/lang/chr-US/admin/statuslabels/message.php @@ -0,0 +1,32 @@ + 'Status Label does not exist.', + 'deleted_label' => 'Deleted Status Label', + 'assoc_assets' => 'This Status Label is currently associated with at least one Asset and cannot be deleted. Please update your assets to no longer reference this status and try again. ', + + 'create' => [ + 'error' => 'Status Label was not created, please try again.', + 'success' => 'Status Label created successfully.', + ], + + 'update' => [ + 'error' => 'Status Label was not updated, please try again', + 'success' => 'Status Label updated successfully.', + ], + + 'delete' => [ + 'confirm' => 'Are you sure you wish to delete this Status Label?', + 'error' => 'There was an issue deleting the Status Label. Please try again.', + 'success' => 'The Status Label was deleted successfully.', + ], + + 'help' => [ + 'undeployable' => 'These assets cannot be assigned to anyone.', + 'deployable' => 'These assets can be checked out. Once they are assigned, they will assume a meta status of Deployed.', + 'archived' => 'These assets cannot be checked out, and will only show up in the Archived view. This is useful for retaining information about assets for budgeting/historic purposes but keeping them out of the day-to-day asset list.', + 'pending' => 'These assets can not yet be assigned to anyone, often used for items that are out for repair, but are expected to return to circulation.', + ], + +]; diff --git a/resources/lang/chr-US/admin/statuslabels/table.php b/resources/lang/chr-US/admin/statuslabels/table.php new file mode 100644 index 0000000000..27befb5ef7 --- /dev/null +++ b/resources/lang/chr-US/admin/statuslabels/table.php @@ -0,0 +1,19 @@ + 'About Status Labels', + 'archived' => 'Archived', + 'create' => 'Create Status Label', + 'color' => 'Chart Color', + 'default_label' => 'Default Label', + 'default_label_help' => 'This is used to ensure your most commonly used status labels appear at the top of the select box when creating/editing assets.', + 'deployable' => 'Deployable', + 'info' => 'Status labels are used to describe the various states your assets could be in. They may be out for repair, lost/stolen, etc. You can create new status labels for deployable, pending and archived assets.', + 'name' => 'Status Name', + 'pending' => 'Pending', + 'status_type' => 'Status Type', + 'show_in_nav' => 'Show in side nav', + 'title' => 'Status Labels', + 'undeployable' => 'Undeployable', + 'update' => 'Update Status Label', +); diff --git a/resources/lang/chr-US/admin/suppliers/message.php b/resources/lang/chr-US/admin/suppliers/message.php new file mode 100644 index 0000000000..a693669c7e --- /dev/null +++ b/resources/lang/chr-US/admin/suppliers/message.php @@ -0,0 +1,28 @@ + 'Deleted supplier', + 'does_not_exist' => 'Supplier does not exist.', + + + 'create' => array( + 'error' => 'Supplier was not created, please try again.', + 'success' => 'Supplier created successfully.' + ), + + 'update' => array( + 'error' => 'Supplier was not updated, please try again', + 'success' => 'Supplier updated successfully.' + ), + + 'delete' => array( + 'confirm' => 'Are you sure you wish to delete this supplier?', + 'error' => 'There was an issue deleting the supplier. Please try again.', + 'success' => 'Supplier was deleted successfully.', + 'assoc_assets' => 'This supplier is currently associated with :asset_count asset(s) and cannot be deleted. Please update your assets to no longer reference this supplier and try again. ', + 'assoc_licenses' => 'This supplier is currently associated with :licenses_count licences(s) and cannot be deleted. Please update your licenses to no longer reference this supplier and try again. ', + 'assoc_maintenances' => 'This supplier is currently associated with :asset_maintenances_count asset maintenances(s) and cannot be deleted. Please update your asset maintenances to no longer reference this supplier and try again. ', + ) + +); diff --git a/resources/lang/chr-US/admin/suppliers/table.php b/resources/lang/chr-US/admin/suppliers/table.php new file mode 100644 index 0000000000..fe7ce55021 --- /dev/null +++ b/resources/lang/chr-US/admin/suppliers/table.php @@ -0,0 +1,26 @@ + 'About Suppliers', + 'about_suppliers_text' => 'Suppliers are used to track the source of items', + 'address' => 'Supplier Address', + 'assets' => 'Assets', + 'city' => 'City', + 'contact' => 'Contact Name', + 'country' => 'Country', + 'create' => 'Create Supplier', + 'email' => 'Email', + 'fax' => 'Fax', + 'id' => 'ID', + 'licenses' => 'Licenses', + 'name' => 'Supplier Name', + 'notes' => 'Notes', + 'phone' => 'Phone', + 'state' => 'State', + 'suppliers' => 'Suppliers', + 'update' => 'Update Supplier', + 'view' => 'View Supplier', + 'view_assets_for' => 'View Assets for', + 'zip' => 'Postal Code', + +); diff --git a/resources/lang/chr-US/admin/users/general.php b/resources/lang/chr-US/admin/users/general.php new file mode 100644 index 0000000000..b097ccec69 --- /dev/null +++ b/resources/lang/chr-US/admin/users/general.php @@ -0,0 +1,54 @@ + 'This user can login', + 'activated_disabled_help_text' => 'You cannot edit activation status for your own account.', + 'assets_user' => 'Assets assigned to :name', + 'bulk_update_warn' => 'You are about to edit the properties of :user_count users. Please note that you cannot change your own user attributes using this form, and must make edits to your own user individually.', + 'bulk_update_help' => 'This form allows you to update multiple users at once. Only fill in the fields you need to change. Any fields left blank will remain unchanged.', + 'current_assets' => 'Assets currently checked out to this user', + 'clone' => 'Clone User', + 'contact_user' => 'Contact :name', + 'edit' => 'Edit User', + 'filetype_info' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, txt, zip, and rar.', + 'history_user' => 'History for :name', + 'info' => 'Info', + 'restore_user' => 'Click here to restore them.', + 'last_login' => 'Last Login', + 'ldap_config_text' => 'LDAP configuration settings can be found Admin > Settings. The (optional) selected location will be set for all imported users.', + 'print_assigned' => 'Print All Assigned', + 'email_assigned' => 'Email List of All Assigned', + 'user_notified' => 'User has been emailed a list of their currently assigned items.', + 'auto_assign_label' => 'Include this user when auto-assigning eligible licenses', + 'auto_assign_help' => 'Skip this user in auto assignment of licenses', + 'software_user' => 'Software Checked out to :name', + 'send_email_help' => 'You must provide an email address for this user to send them credentials. Emailing credentials can only be done on user creation. Passwords are stored in a one-way hash and cannot be retrieved once saved.', + 'view_user' => 'View User :name', + 'usercsv' => 'CSV file', + 'two_factor_admin_optin_help' => 'Your current admin settings allow selective enforcement of two-factor authentication. ', + 'two_factor_enrolled' => '2FA Device Enrolled ', + 'two_factor_active' => '2FA Active ', + 'user_deactivated' => 'User cannot login', + 'user_activated' => 'User can login', + 'activation_status_warning' => 'Do not change activation status', + 'group_memberships_helpblock' => 'Only superadmins may edit group memberships.', + 'superadmin_permission_warning' => 'Only superadmins may grant a user superadmin access.', + 'admin_permission_warning' => 'Only users with admins rights or greater may grant a user admin access.', + 'remove_group_memberships' => 'Remove Group Memberships', + 'warning_deletion_information' => 'You are about to checkin ALL items from the :count user(s) listed below. Super admin names are highlighted in red.', + 'update_user_assets_status' => 'Update all assets for these users to this status', + 'checkin_user_properties' => 'Check in all properties associated with these users', + 'remote_label' => 'This is a remote user', + 'remote' => 'Remote', + 'remote_help' => 'This can be useful if you need to filter by remote users who never or rarely come into your physical locations.', + 'not_remote_label' => 'This is not a remote user', + 'vip_label' => 'VIP user', + 'vip_help' => 'This can be helpful to mark important people in your org if you would like to handle them in special ways.', + 'create_user' => 'Create a user', + 'create_user_page_explanation' => 'This is the account information you will use to access the site for the first time.', + 'email_credentials' => 'Email credentials', + 'email_credentials_text' => 'Email my credentials to the email address above', + 'next_save_user' => 'Next: Save User', + 'all_assigned_list_generation' => 'Generated on:', + 'email_user_creds_on_create' => 'Email this user their credentials?', +]; diff --git a/resources/lang/chr-US/admin/users/message.php b/resources/lang/chr-US/admin/users/message.php new file mode 100644 index 0000000000..4d014775bd --- /dev/null +++ b/resources/lang/chr-US/admin/users/message.php @@ -0,0 +1,74 @@ + 'You have successfully accepted this asset.', + 'declined' => 'You have successfully declined this asset.', + 'bulk_manager_warn' => 'Your users have been successfully updated, however your manager entry was not saved because the manager you selected was also in the user list to be edited, and users may not be their own manager. Please select your users again, excluding the manager.', + 'user_exists' => 'User already exists!', + 'user_not_found' => 'User does not exist.', + 'user_login_required' => 'The login field is required', + 'user_has_no_assets_assigned' => 'No assets currently assigned to user.', + 'user_password_required' => 'The password is required.', + 'insufficient_permissions' => 'Insufficient Permissions.', + 'user_deleted_warning' => 'This user has been deleted. You will have to restore this user to edit them or assign them new assets.', + 'ldap_not_configured' => 'LDAP integration has not been configured for this installation.', + 'password_resets_sent' => 'The selected users who are activated and have a valid email addresses have been sent a password reset link.', + 'password_reset_sent' => 'A password reset link has been sent to :email!', + 'user_has_no_email' => 'This user does not have an email address in their profile.', + 'log_record_not_found' => 'A matching log record for this user could not be found.', + + + 'success' => array( + 'create' => 'User was successfully created.', + 'update' => 'User was successfully updated.', + 'update_bulk' => 'Users were successfully updated!', + 'delete' => 'User was successfully deleted.', + 'ban' => 'User was successfully banned.', + 'unban' => 'User was successfully unbanned.', + 'suspend' => 'User was successfully suspended.', + 'unsuspend' => 'User was successfully unsuspended.', + 'restored' => 'User was successfully restored.', + 'import' => 'Users imported successfully.', + ), + + 'error' => array( + 'create' => 'There was an issue creating the user. Please try again.', + 'update' => 'There was an issue updating the user. Please try again.', + 'delete' => 'There was an issue deleting the user. Please try again.', + 'delete_has_assets' => 'This user has items assigned and could not be deleted.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', + 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', + 'import' => 'There was an issue importing users. Please try again.', + 'asset_already_accepted' => 'This asset has already been accepted.', + 'accept_or_decline' => 'You must either accept or decline this asset.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', + 'incorrect_user_accepted' => 'The asset you have attempted to accept was not checked out to you.', + 'ldap_could_not_connect' => 'Could not connect to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server:', + 'ldap_could_not_bind' => 'Could not bind to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server: ', + '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. ', + ), + + 'deletefile' => array( + 'error' => 'File not deleted. Please try again.', + 'success' => 'File successfully deleted.', + ), + + 'upload' => array( + 'error' => 'File(s) not uploaded. Please try again.', + 'success' => 'File(s) successfully uploaded.', + 'nofiles' => 'You did not select any files for upload', + 'invalidfiles' => 'One or more of your files is too large or is a filetype that is not allowed. Allowed filetypes are png, gif, jpg, doc, docx, pdf, and txt.', + ), + + 'inventorynotification' => array( + 'error' => 'This user has no email set.', + 'success' => 'The user has been notified about their current inventory.' + ) +); \ No newline at end of file diff --git a/resources/lang/chr-US/admin/users/table.php b/resources/lang/chr-US/admin/users/table.php new file mode 100644 index 0000000000..7c5fb2cad5 --- /dev/null +++ b/resources/lang/chr-US/admin/users/table.php @@ -0,0 +1,41 @@ + 'Active', + 'allow' => 'Allow', + 'checkedout' => 'Assets', + 'created_at' => 'Created', + 'createuser' => 'Create User', + 'deny' => 'Deny', + 'email' => 'Email', + 'employee_num' => 'Employee No.', + 'first_name' => 'First Name', + 'groupnotes' => 'Select a group to assign to the user, remember that a user takes on the permissions of the group they are assigned. Use ctrl+click (or cmd+click on MacOS) to deselect groups.', + 'id' => 'Id', + 'inherit' => 'Inherit', + 'job' => 'Job Title', + 'last_login' => 'Last Login', + 'last_name' => 'Last Name', + 'location' => 'Location', + 'lock_passwords' => 'Login details cannot be changed on this installation.', + 'manager' => 'Manager', + 'managed_locations' => 'Managed Locations', + 'managed_users' => 'Managed Users', + 'name' => 'Name', + 'nogroup' => 'No groups have been created yet. To add one, visit: ', + 'notes' => 'Notes', + 'password_confirm' => 'Confirm Password', + 'password' => 'Password', + 'phone' => 'Phone', + 'show_current' => 'Show Current Users', + 'show_deleted' => 'Show Deleted Users', + 'title' => 'Title', + 'to_restore_them' => 'to restore them.', + 'total_assets_cost' => "Total Assets Cost", + 'updateuser' => 'Update User', + 'username' => 'Username', + 'user_deleted_text' => 'This user has been marked as deleted.', + 'username_note' => '(This is used for Active Directory binding only, not for login.)', + 'cloneuser' => 'Clone User', + 'viewusers' => 'View Users', +); diff --git a/resources/lang/chr-US/auth.php b/resources/lang/chr-US/auth.php new file mode 100644 index 0000000000..db310aa1bb --- /dev/null +++ b/resources/lang/chr-US/auth.php @@ -0,0 +1,20 @@ + 'These credentials do not match our records.', + 'password' => 'The provided password is incorrect.', + 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + +); diff --git a/resources/lang/chr-US/auth/general.php b/resources/lang/chr-US/auth/general.php new file mode 100644 index 0000000000..e6a6eed0fc --- /dev/null +++ b/resources/lang/chr-US/auth/general.php @@ -0,0 +1,19 @@ + 'Send Password Reset Link', + 'email_reset_password' => 'Email Password Reset', + 'reset_password' => 'Reset Password', + 'saml_login' => 'Login via SAML', + 'login' => 'Login', + 'login_prompt' => 'Please Login', + 'forgot_password' => 'I forgot my password', + 'ldap_reset_password' => 'Please click here to reset your LDAP password', + 'remember_me' => 'Remember Me', + 'username_help_top' => 'Enter your username to be emailed a password reset link.', + 'username_help_bottom' => 'Your username and email address may be the same, but may not be, depending on your configuration. If you cannot remember your username, contact your administrator.

    Usernames without an associated email address will not be emailed a password reset link. ', + 'google_login' => 'Login with Google Workspace', + 'google_login_failed' => 'Google Login failed, please try again.', + +]; + diff --git a/resources/lang/chr-US/auth/message.php b/resources/lang/chr-US/auth/message.php new file mode 100644 index 0000000000..f086d8c04c --- /dev/null +++ b/resources/lang/chr-US/auth/message.php @@ -0,0 +1,45 @@ + 'An account with the this email already exists.', + 'account_not_found' => 'The username or password is incorrect.', + 'account_not_activated' => 'This user account is not activated.', + 'account_suspended' => 'This user account is suspended.', + 'account_banned' => 'This user account is banned.', + 'throttle' => 'Too many failed login attempts. Please try again in :minutes minutes.', + + 'two_factor' => array( + 'already_enrolled' => 'Your device is already enrolled.', + 'success' => 'You have successfully logged in.', + 'code_required' => 'Two-factor code is required.', + 'invalid_code' => 'Two-factor code is invalid.', + ), + + 'signin' => array( + 'error' => 'There was a problem while trying to log you in, please try again.', + 'success' => 'You have successfully logged in.', + ), + + 'logout' => array( + 'error' => 'There was a problem while trying to log you out, please try again.', + 'success' => 'You have successfully logged out.', + ), + + 'signup' => array( + 'error' => 'There was a problem while trying to create your account, please try again.', + 'success' => 'Account sucessfully created.', + ), + + 'forgot-password' => array( + 'error' => 'There was a problem while trying to get a reset password code, please try again.', + 'success' => 'If that email address exists in our system, a password recovery email has been sent.', + ), + + 'forgot-password-confirm' => array( + 'error' => 'There was a problem while trying to reset your password, please try again.', + 'success' => 'Your password has been successfully reset.', + ), + + +); diff --git a/resources/lang/chr-US/button.php b/resources/lang/chr-US/button.php new file mode 100644 index 0000000000..22821b8157 --- /dev/null +++ b/resources/lang/chr-US/button.php @@ -0,0 +1,24 @@ + 'Actions', + 'add' => 'Add New', + 'cancel' => 'Cancel', + 'checkin_and_delete' => 'Checkin All / Delete User', + 'delete' => 'Delete', + 'edit' => 'Edit', + 'restore' => 'Restore', + 'remove' => 'Remove', + 'request' => 'Request', + 'submit' => 'Submit', + 'upload' => 'Upload', + 'select_file' => 'Select File...', + 'select_files' => 'Select Files...', + 'generate_labels' => '{1} Generate Label|[2,*] Generate Labels', + 'send_password_link' => 'Send Password Reset Link', + 'go' => 'Go', + 'bulk_actions' => 'Bulk Actions', + 'add_maintenance' => 'Add Maintenance', + 'append' => 'Append', + 'new' => 'New', +]; diff --git a/resources/lang/chr-US/general.php b/resources/lang/chr-US/general.php new file mode 100644 index 0000000000..ec0b8e6ee3 --- /dev/null +++ b/resources/lang/chr-US/general.php @@ -0,0 +1,551 @@ + '2FA reset', + 'accessories' => 'Accessories', + 'activated' => 'Activated', + 'accepted_date' => 'Date Accepted', + 'accessory' => 'Accessory', + 'accessory_report' => 'Accessory Report', + 'action' => 'Action', + 'activity_report' => 'Activity Report', + 'address' => 'Address', + 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', + 'administrator' => 'Administrator', + 'add_seats' => 'Added seats', + 'age' => "Age", + 'all_assets' => 'All Assets', + 'all' => 'All', + 'archived' => 'Archived', + 'asset_models' => 'Asset Models', + 'asset_model' => 'Model', + 'asset' => 'Asset', + 'asset_report' => 'Asset Report', + 'asset_tag' => 'Asset Tag', + 'asset_tags' => 'Asset Tags', + 'assets_available' => 'Assets available', + 'accept_assets' => 'Accept Assets :name', + 'accept_assets_menu' => 'Accept Assets', + 'audit' => 'Audit', + 'audit_report' => 'Audit Log', + 'assets' => 'Assets', + 'assets_audited' => 'assets audited', + 'assets_checked_in_count' => 'assets checked in', + 'assets_checked_out_count' => 'assets checked out', + 'asset_deleted_warning' => 'This asset has been deleted. You must restore it before you can assign it to someone.', + 'assigned_date' => 'Date Assigned', + 'assigned_to' => 'Assigned to :name', + 'assignee' => 'Assigned to', + 'avatar_delete' => 'Delete Avatar', + 'avatar_upload' => 'Upload Avatar', + 'back' => 'Back', + 'bad_data' => 'Nothing found. Maybe bad data?', + 'bulkaudit' => 'Bulk Audit', + 'bulkaudit_status' => 'Audit Status', + 'bulk_checkout' => 'Bulk Checkout', + 'bulk_edit' => 'Bulk Edit', + 'bulk_delete' => 'Bulk Delete', + 'bulk_actions' => 'Bulk Actions', + 'bulk_checkin_delete' => 'Bulk Checkin / Delete Users', + 'byod' => 'BYOD', + 'byod_help' => 'This device is owned by the user', + 'bystatus' => 'by Status', + 'cancel' => 'Cancel', + 'categories' => 'Categories', + 'category' => 'Category', + 'change' => 'In/Out', + 'changeemail' => 'Change Email Address', + 'changepassword' => 'Change Password', + 'checkin' => 'Checkin', + 'checkin_from' => 'Checkin from', + 'checkout' => 'Checkout', + 'checkouts_count' => 'Checkouts', + 'checkins_count' => 'Checkins', + 'user_requests_count' => 'Requests', + 'city' => 'City', + 'click_here' => 'Click here', + 'clear_selection' => 'Clear Selection', + 'companies' => 'Companies', + 'company' => 'Company', + 'component' => 'Component', + 'components' => 'Components', + 'complete' => 'Complete', + 'consumable' => 'Consumable', + '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', + 'create' => 'Create New', + 'created' => 'Item Created', + 'created_asset' => 'created asset', + 'created_at' => 'Created At', + 'created_by' => 'Created By', + 'record_created' => 'Record Created', + 'updated_at' => 'Updated at', + 'currency' => '$', // this is deprecated + 'current' => 'Current', + 'current_password' => 'Current Password', + 'customize_report' => 'Customize Report', + 'custom_report' => 'Custom Asset Report', + 'dashboard' => 'Dashboard', + 'days' => 'days', + 'days_to_next_audit' => 'Days to Next Audit', + 'date' => 'Date', + 'debug_warning' => 'Warning!', + '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.', + 'deleted' => 'Deleted', + 'delete_seats' => 'Deleted Seats', + 'deletion_failed' => 'Deletion failed', + 'departments' => 'Departments', + 'department' => 'Department', + 'deployed' => 'Deployed', + 'depreciation' => 'Depreciation', + 'depreciations' => 'Depreciations', + 'depreciation_report' => 'Depreciation Report', + 'details' => 'Details', + 'download' => 'Download', + 'download_all' => 'Download All', + 'editprofile' => 'Edit Your Profile', + 'eol' => 'EOL', + 'email_domain' => 'Email Domain', + 'email_format' => 'Email Format', + 'employee_number' => 'Employee Number', + 'email_domain_help' => 'This is used to generate email addresses when importing', + 'error' => 'Error', + 'exclude_archived' => 'Exclude Archived Assets', + 'exclude_deleted' => 'Exclude Deleted Assets', + 'example' => 'Example: ', + 'filastname_format' => 'First Initial Last Name (jsmith@example.com)', + 'firstname_lastname_format' => 'First Name Last Name (jane.smith@example.com)', + 'firstname_lastname_underscore_format' => 'First Name Last Name (jane_smith@example.com)', + 'lastnamefirstinitial_format' => 'Last Name First Initial (smithj@example.com)', + 'firstintial_dot_lastname_format' => 'First Initial Last Name (j.smith@example.com)', + 'firstname_lastname_display' => 'First Name Last Name (Jane Smith)', + 'lastname_firstname_display' => 'Last Name First Name (Smith Jane)', + 'name_display_format' => 'Name Display Format', + 'first' => 'First', + 'firstnamelastname' => 'First Name Last Name (janesmith@example.com)', + '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)', + 'first_name' => 'First Name', + 'first_name_format' => 'First Name (jane@example.com)', + 'files' => 'Files', + 'file_name' => 'File', + 'file_type' => 'File Type', + 'filesize' => 'File Size', + 'file_uploads' => 'File Uploads', + 'file_upload' => 'File Upload', + 'generate' => 'Generate', + 'generate_labels' => 'Generate Labels', + 'github_markdown' => 'This field accepts Github flavored markdown.', + 'groups' => 'Groups', + 'gravatar_email' => 'Gravatar Email Address', + 'gravatar_url' => 'Change your avatar at Gravatar.com.', + 'history' => 'History', + 'history_for' => 'History for', + 'id' => 'ID', + 'image' => 'Image', + '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, and svg. Max 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', + 'importing' => 'Importing', + 'importing_help' => 'You can import assets, accessories, licenses, components, consumables, and users via CSV file.

    The CSV should be comma-delimited and formatted with headers that match the ones in the sample CSVs in the documentation.', + 'import-history' => 'Import History', + 'asset_maintenance' => 'Asset Maintenance', + 'asset_maintenance_report' => 'Asset Maintenance Report', + 'asset_maintenances' => 'Asset Maintenances', + 'item' => 'Item', + 'item_name' => 'Item Name', + 'import_file' => 'import CSV file', + 'import_type' => 'CSV import type', + 'insufficient_permissions' => 'Insufficient permissions!', + 'kits' => 'Predefined Kits', + 'language' => 'Language', + 'last' => 'Last', + 'last_login' => 'Last Login', + 'last_name' => 'Last Name', + 'license' => 'License', + 'license_report' => 'License Report', + 'licenses_available' => 'Licenses available', + 'licenses' => 'Licenses', + 'list_all' => 'List All', + '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', + 'location_plural' => 'Location|Locations', + 'locations' => 'Locations', + 'logo_size' => 'Square logos look best with Logo + Text. Logo maximum display size is 50px high x 500px wide. ', + 'logout' => 'Logout', + 'lookup_by_tag' => 'Lookup by Asset Tag', + 'maintenances' => 'Maintenances', + 'manage_api_keys' => 'Manage API Keys', + 'manufacturer' => 'Manufacturer', + 'manufacturers' => 'Manufacturers', + 'markdown' => 'This field allows Github flavored markdown.', + 'min_amt' => 'Min. QTY', + 'min_amt_help' => 'Minimum number of items that should be available before an alert gets triggered. Leave Min. QTY blank if you do not want to receive alerts for low inventory.', + 'model_no' => 'Model No.', + 'months' => 'months', + 'moreinfo' => 'More Info', + 'name' => 'Name', + 'new_password' => 'New Password', + 'next' => 'Next', + 'next_audit_date' => 'Next Audit Date', + '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.', + 'no_email' => 'No email address associated with this user', + 'last_audit' => 'Last Audit', + 'new' => 'new!', + 'no_depreciation' => 'No Depreciation', + 'no_results' => 'No Results.', + 'no' => 'No', + 'notes' => 'Notes', + 'order_number' => 'Order Number', + 'only_deleted' => 'Only Deleted Assets', + 'page_menu' => 'Showing _MENU_ items', + 'pagination_info' => 'Showing _START_ to _END_ of _TOTAL_ items', + 'pending' => 'Pending', + 'people' => 'People', + 'per_page' => 'Results Per Page', + 'previous' => 'Previous', + 'processing' => 'Processing', + 'profile' => 'Your profile', + 'purchase_cost' => 'Purchase Cost', + 'purchase_date' => 'Purchase Date', + 'qty' => 'QTY', + 'quantity' => 'Quantity', + 'quantity_minimum' => 'You have :count items below or almost below minimum quantity levels', + 'quickscan_checkin' => 'Quick Scan Checkin', + 'quickscan_checkin_status' => 'Checkin Status', + 'ready_to_deploy' => 'Ready to Deploy', + 'recent_activity' => 'Recent Activity', + 'remaining' => 'Remaining', + 'remove_company' => 'Remove Company Association', + 'reports' => 'Reports', + 'restored' => 'restored', + 'restore' => 'Restore', + 'requestable_models' => 'Requestable Models', + 'requested' => 'Requested', + 'requested_date' => 'Requested Date', + 'requested_assets' => 'Requested Assets', + 'requested_assets_menu' => 'Requested Assets', + 'request_canceled' => 'Request Canceled', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', + 'save' => 'Save', + 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects + 'select' => 'Select', + 'select_all' => 'Select All', + 'search' => 'Search', + 'select_category' => 'Select a Category', + 'select_datasource' => 'Select a Datasource', + 'select_department' => 'Select a Department', + 'select_depreciation' => 'Select a Depreciation Type', + 'select_location' => 'Select a Location', + 'select_manufacturer' => 'Select a Manufacturer', + 'select_model' => 'Select a Model', + 'select_supplier' => 'Select a Supplier', + 'select_user' => 'Select a User', + 'select_date' => 'Select Date (YYYY-MM-DD)', + 'select_statuslabel' => 'Select Status', + 'select_company' => 'Select Company', + 'select_asset' => 'Select Asset', + 'settings' => 'Settings', + 'show_deleted' => 'Show Deleted', + 'show_current' => 'Show Current', + 'sign_in' => 'Sign in', + 'signature' => 'Signature', + '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!', + 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', + 'site_name' => 'Site Name', + 'state' => 'State', + 'status_labels' => 'Status Labels', + 'status' => 'Status', + 'accept_eula' => 'Acceptance Agreement', + 'supplier' => 'Supplier', + 'suppliers' => 'Suppliers', + 'sure_to_delete' => 'Are you sure you wish to delete', + 'sure_to_delete_var' => 'Are you sure you wish to delete :item?', + 'delete_what' => 'Delete :item', + 'submit' => 'Submit', + 'target' => 'Target', + 'time_and_date_display' => 'Time and Date Display', + 'total_assets' => 'total assets', + 'total_licenses' => 'total licenses', + 'total_accessories' => 'total accessories', + 'total_consumables' => 'total consumables', + 'type' => 'Type', + 'undeployable' => 'Un-deployable', + 'unknown_admin' => 'Unknown Admin', + 'username_format' => 'Username Format', + 'username' => 'Username', + 'update' => 'Update', + 'upload_filetypes_help' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, xls, xlsx, txt, lic, xml, zip, rtf and rar. Max upload size allowed is :size.', + 'uploaded' => 'Uploaded', + 'user' => 'User', + 'accepted' => 'accepted', + 'declined' => 'declined', + 'declined_note' => 'Declined Notes', + 'unassigned' => 'Unassigned', + 'unaccepted_asset_report' => 'Unaccepted Assets', + 'users' => 'Users', + 'viewall' => 'View All', + 'viewassets' => 'View Assigned Assets', + 'viewassetsfor' => 'View Assets for :name', + 'website' => 'Website', + 'welcome' => 'Welcome, :name', + 'years' => 'years', + 'yes' => 'Yes', + 'zip' => 'Zip', + 'noimage' => 'No image uploaded or image not found.', + 'file_does_not_exist' => 'The requested file does not exist on the server.', + 'file_upload_success' => 'File upload success!', + 'no_files_uploaded' => 'File upload success!', + 'token_expired' => 'Your form session has expired. Please try again.', + 'login_enabled' => 'Login Enabled', + 'audit_due' => 'Due for Audit', + 'audit_due_days' => 'Assets Due for Audit Within :days Day|Assets Due for Audit Within :days Days', + 'checkin_due' => 'Due for Checkin', + 'checkin_overdue' => 'Overdue for Checkin', + 'checkin_due_days' => 'Assets Due for Checkin Within :days Day|Assets Due for Checkin Within :days Days', + 'audit_overdue' => 'Overdue for Audit', + 'accept' => 'Accept :asset', + 'i_accept' => 'I accept', + 'i_decline' => 'I decline', + 'accept_decline' => 'Accept/Decline', + 'sign_tos' => 'Sign below to indicate that you agree to the terms of service:', + 'clear_signature' => 'Clear Signature', + 'show_help' => 'Show help', + 'hide_help' => 'Hide help', + 'view_all' => 'view all', + 'hide_deleted' => 'Hide Deleted', + 'email' => 'Email', + '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_done' => 'Finished!', + 'bulk_edit_about_to' => 'You are about to edit the following: ', + 'checked_out' => 'Checked Out', + 'checked_out_to' => 'Checked out to', + 'fields' => 'Fields', + 'last_checkout' => 'Last Checkout', + 'due_to_checkin' => 'The following :count items are due to be checked in soon:', + 'expected_checkin' => 'Expected Checkin', + 'reminder_checked_out_items' => 'This is a reminder of the items currently checked out to you. If you feel this list is inaccurate (something is missing, or something appears here that you believe you never received), please email :reply_to_name at :reply_to_address.', + 'changed' => 'Changed', + 'to' => 'To', + 'report_fields_info' => '

    Select the fields you would like to include in your custom report, and click Generate. The file (custom-asset-report-YYYY-mm-dd.csv) will download automatically, and you can open it in Excel.

    +

    If you would like to export only certain assets, use the options below to fine-tune your results.

    ', + 'range' => 'Range', + 'bom_remark' => 'Add a BOM (byte-order mark) to this CSV', + 'improvements' => 'Improvements', + 'information' => 'Information', + 'permissions' => 'Permissions', + 'managed_ldap' => '(Managed via LDAP)', + 'export' => 'Export', + 'ldap_sync' => 'LDAP Sync', + 'ldap_user_sync' => 'LDAP User Sync', + 'synchronize' => 'Synchronize', + 'sync_results' => 'Synchronization Results', + 'license_serial' => 'Serial/Product Key', + 'invalid_category' => 'Invalid or missing category', + 'invalid_item_category_single' => 'Invalid or missing :type category. Please update the category of this :type to include a valid category before checking out.', + 'dashboard_info' => 'This is your dashboard. There are many like it, but this one is yours.', + '60_percent_warning' => '60% Complete (warning)', + 'dashboard_empty' => 'It looks like you have not added anything yet, so we do not have anything awesome to display. Get started by adding some assets, accessories, consumables, or licenses now!', + 'new_asset' => 'New Asset', + 'new_license' => 'New License', + 'new_accessory' => 'New Accessory', + 'new_consumable' => 'New Consumable', + 'collapse' => 'Collapse', + 'assigned' => 'Assigned', + 'asset_count' => 'Asset Count', + 'accessories_count' => 'Accessories Count', + 'consumables_count' => 'Consumables Count', + 'components_count' => 'Components Count', + 'licenses_count' => 'Licenses Count', + 'notification_error' => 'Error', + 'notification_error_hint' => 'Please check the form below for errors', + 'notification_bulk_error_hint' => 'The following fields had validation errors and were not edited:', + 'notification_success' => 'Success', + 'notification_warning' => 'Warning', + 'notification_info' => 'Info', + 'asset_information' => 'Asset Information', + 'model_name' => 'Model Name', + 'asset_name' => 'Asset Name', + 'consumable_information' => 'Consumable Information:', + 'consumable_name' => 'Consumable Name:', + 'accessory_information' => 'Accessory Information:', + 'accessory_name' => 'Accessory Name:', + 'clone_item' => 'Clone Item', + 'checkout_tooltip' => 'Check this item out', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', + 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', + 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', + 'maintenance_mode_title' => 'System Temporarily Unavailable', + 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', + 'purge_not_allowed' => 'Purging deleted data has been disabled in the .env file. Contact support or your systems administrator.', + 'backup_delete_not_allowed' => 'Deleting backups has been disabled in the .env file. Contact support or your systems administrator.', + 'additional_files' => 'Additional Files', + 'shitty_browser' => 'No signature detected. If you are using an older browser, please use a more modern browser to complete your asset acceptance.', + 'bulk_soft_delete' =>'Also soft-delete these users. Their asset history will remain intact unless/until you purge deleted records in the Admin Settings.', + 'bulk_checkin_delete_success' => 'Your selected users have been deleted and their items have been checked in.', + 'bulk_checkin_success' => 'The items for the selected users have been checked in.', + 'set_to_null' => 'Delete values for this asset|Delete values for all :asset_count assets ', + 'set_users_field_to_null' => 'Delete :field values for this user|Delete :field values for all :user_count users ', + 'na_no_purchase_date' => 'N/A - No purchase date provided', + 'assets_by_status' => 'Assets by Status', + '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', + 'start_date' => 'Start Date', + 'end_date' => 'End Date', + 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', + 'placeholder_kit' => 'Select a kit', + 'file_not_found' => 'File not found', + 'preview_not_available' => '(no preview)', + 'setup' => 'Setup', + 'pre_flight' => 'Pre-Flight', + 'skip_to_main_content' => 'Skip to main content', + 'toggle_navigation' => 'Toggle navigation', + 'alerts' => 'Alerts', + 'tasks_view_all' => 'View all tasks', + 'true' => 'True', + 'false' => 'False', + 'integration_option' => 'Integration Option', + 'log_does_not_exist' => 'No matching log record exists.', + 'merge_users' => 'Merge Users', + 'merge_information' => 'This will merge the :count users into a single user. Select the user you wish to merge the others into below, and the associated assets, licenses, etc will be moved over to the selected user and the other users will be marked as deleted.', + 'warning_merge_information' => 'This action CANNOT be undone and should ONLY be used when you need to merge users because of a bad import or sync. Be sure to run a backup first.', + 'no_users_selected' => 'No users selected', + 'not_enough_users_selected' => 'At least :count users must be selected', + 'merge_success' => ':count users merged successfully into :into_username!', + 'merged' => 'merged', + 'merged_log_this_user_into' => 'Merged this user (ID :to_id - :to_username) into user ID :from_id (:from_username) ', + 'merged_log_this_user_from' => 'Merged user ID :from_id (:from_username) into this user (ID :to_id - :to_username)', + 'clear_and_save' => 'Clear & Save', + 'update_existing_values' => 'Update Existing Values?', + 'auto_incrementing_asset_tags_disabled_so_tags_required' => 'Generating auto-incrementing asset tags is disabled so all rows need to have the "Asset Tag" column populated.', + 'auto_incrementing_asset_tags_enabled_so_now_assets_will_be_created' => 'Note: Generating auto-incrementing asset tags is enabled so assets will be created for rows that do not have "Asset Tag" populated. Rows that do have "Asset Tag" populated will be updated with the provided information.', + 'send_welcome_email_to_users' => ' Send Welcome Email for new Users?', + 'send_email' => 'Send Email', + 'call' => 'Call number', + 'back_before_importing' => 'Backup before importing?', + 'csv_header_field' => 'CSV Header Field', + 'import_field' => 'Import Field', + 'sample_value' => 'Sample Value', + 'no_headers' => 'No Columns Found', + 'error_in_import_file' => 'There was an error reading the CSV file: :error', + 'errors_importing' => 'Some Errors occurred while importing: ', + 'warning' => 'WARNING: :warning', + 'success_redirecting' => '"Success... Redirecting.', + 'cancel_request' => 'Cancel this item request', + 'setup_successful_migrations' => 'Your database tables have been created', + 'setup_migration_output' => 'Migration output:', + 'setup_migration_create_user' => 'Next: Create User', + 'importer_generic_error' => 'Your file import is complete, but we did receive an error. This is usually caused by third-party API throttling from a notification webhook (such as Slack) and would not have interfered with the import itself, but you should confirm this.', + 'confirm' => 'Confirm', + 'autoassign_licenses' => 'Auto-Assign Licenses', + 'autoassign_licenses_help' => 'Allow this user to have licenses assigned via the bulk-assign license UI or cli tools.', + 'autoassign_licenses_help_long' => 'This allows a user to be have licenses assigned via the bulk-assign license UI or cli tools. (For example, you might not want contractors to be auto-assigned a license you would provide to only staff members. You can still individually assign licenses to those users, but they will not be included in the Checkout License to All Users functions.)', + 'no_autoassign_licenses_help' => 'Do not include user for bulk-assigning through the license UI or cli tools.', + 'modal_confirm_generic' => 'Are you sure?', + 'cannot_be_deleted' => 'This item cannot be deleted', + 'cannot_be_edited' => 'This item cannot be edited.', + 'undeployable_tooltip' => 'This item cannot be checked out. Check the quantity remaining.', + 'serial_number' => 'Serial Number', + 'item_notes' => ':item Notes', + 'item_name_var' => ':item Name', + 'error_user_company' => 'Checkout target company and asset company do not match', + 'error_user_company_accept_view' => 'An Asset assigned to you belongs to a different company so you can\'t accept nor deny it, please check with your manager', + 'importer' => [ + 'checked_out_to_fullname' => 'Checked Out to: Full Name', + 'checked_out_to_first_name' => 'Checked Out to: First Name', + 'checked_out_to_last_name' => 'Checked Out to: Last Name', + 'checked_out_to_username' => 'Checked Out to: Username', + 'checked_out_to_email' => 'Checked Out to: Email', + 'checked_out_to_tag' => 'Checked Out to: Asset Tag', + 'manager_first_name' => 'Manager First Name', + 'manager_last_name' => 'Manager Last Name', + 'manager_full_name' => 'Manager Full Name', + 'manager_username' => 'Manager Username', + 'checkout_type' => 'Checkout Type', + 'checkout_location' => 'Checkout to Location', + 'image_filename' => 'Image Filename', + 'do_not_import' => 'Do Not Import', + 'vip' => 'VIP', + 'avatar' => 'Avatar', + 'gravatar' => 'Gravatar Email', + 'currency' => 'Currency', + 'address2' => 'Address Line 2', + 'import_note' => 'Imported using csv importer', + ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', + 'percent_complete' => '% complete', + 'uploading' => 'Uploading... ', + 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', + 'copy_to_clipboard' => 'Copy to Clipboard', + 'copied' => 'Copied!', + 'status_compatibility' => 'If assets are already assigned, they cannot be changed to a non-deployable status type and this value change will be skipped.', + 'rtd_location_help' => 'This is the location of the asset when it is not checked out', + 'item_not_found' => ':item_type ID :id does not exist or has been deleted', + 'action_permission_denied' => 'You do not have permission to :action :item_type ID :id', + 'action_permission_generic' => 'You do not have permission to :action this :item_type', + 'edit' => 'edit', + 'action_source' => 'Action Source', + 'or' => 'or', + 'url' => 'URL', + 'edit_fieldset' => 'Edit fieldset fields and options', + 'permission_denied_superuser_demo' => 'Permission denied. You cannot update user information for superadmins on the demo.', + 'pwd_reset_not_sent' => 'User is not activated, is LDAP synced, or does not have an email address', + 'error_sending_email' => 'Error sending email', + 'bulk' => [ + 'delete' => + [ + 'header' => 'Bulk Delete :object_type', + 'warn' => 'You are about to delete one :object_type|You are about to delete :count :object_type', + 'success' => ':object_type successfully deleted|Successfully deleted :count :object_type', + 'error' => 'Could not delete :object_type', + 'nothing_selected' => 'No :object_type selected - nothing to do', + 'partial' => 'Deleted :success_count :object_type, but :error_count :object_type could not be deleted', + ], + ], + 'no_requestable' => 'There are no requestable assets or asset models.', + + 'countable' => [ + 'accessories' => ':count Accessory|:count Accessories', + 'assets' => ':count Asset|:count Assets', + 'licenses' => ':count License|:count Licenses', + 'license_seats' => ':count License Seat|:count License Seats', + 'consumables' => ':count Consumable|:count Consumables', + 'components' => ':count Component|:count Components', + ] + +]; diff --git a/resources/lang/chr-US/help.php b/resources/lang/chr-US/help.php new file mode 100644 index 0000000000..a59e0056be --- /dev/null +++ b/resources/lang/chr-US/help.php @@ -0,0 +1,35 @@ + 'More Info', + + 'audit_help' => 'Checking this box will edit the asset record to reflect this new location. Leaving it unchecked will simply note the location in the audit log.

    Note that if this asset is checked out, it will not change the location of the person, asset or location it is checked out to.', + + 'assets' => 'Assets are items tracked by serial number or asset tag. They tend to be higher value items where identifying a specific item matters.', + + 'categories' => 'Categories help you organize your items. Some example categories might be "Desktops", "Laptops", "Mobile Phones", "Tablets", and so on, but you can use categories any way that makes sense for you.', + + 'accessories' => 'Accessories are anything you issue to users but that do not have a serial number (or you do not care about tracking them uniquely). For example, computer mice or keyboards.', + + 'companies' => 'Companies can be used as a simple identifier field, or can be used to limit visibility of assets, users, etc if full company support is enabled in your Admin settings.', + + 'components' => 'Components are items that are part of an asset, for example HDD, RAM, etc.', + + 'consumables' => 'Consumables are anything purchased that will be used up over time. For example, printer ink or copier paper.', + + 'depreciations' => 'You can set up asset depreciations to depreciate assets based on straight-line depreciation.', + + 'empty_file' => 'The importer detects that this file is empty.' +]; diff --git a/resources/lang/chr-US/localizations.php b/resources/lang/chr-US/localizations.php new file mode 100644 index 0000000000..f1232dd138 --- /dev/null +++ b/resources/lang/chr-US/localizations.php @@ -0,0 +1,321 @@ + 'Select a language', + 'languages' => [ + 'en-US'=> 'English, US', + 'en-GB'=> 'English, UK', + 'am-ET' => 'Amharic', + 'af-ZA'=> 'Afrikaans', + 'ar-SA'=> 'Arabic', + 'bg-BG'=> 'Bulgarian', + 'zh-CN'=> 'Chinese Simplified', + 'zh-TW'=> 'Chinese Traditional', + 'ca-ES' => 'Catalan', + 'hr-HR'=> 'Croatian', + 'cs-CZ'=> 'Czech', + 'da-DK'=> 'Danish', + 'nl-NL'=> 'Dutch', + 'en-ID'=> 'English, Indonesia', + 'et-EE'=> 'Estonian', + 'fil-PH'=> 'Filipino', + 'fi-FI'=> 'Finnish', + 'fr-FR'=> 'French', + 'de-DE'=> 'German', + 'de-if'=> 'German (Informal)', + 'el-GR'=> 'Greek', + 'he-IL'=> 'Hebrew', + 'hu-HU'=> 'Hungarian', + 'is-IS' => 'Icelandic', + 'id-ID'=> 'Indonesian', + 'ga-IE'=> 'Irish', + 'it-IT'=> 'Italian', + 'ja-JP'=> 'Japanese', + 'km-KH'=>'Khmer', + 'ko-KR'=> 'Korean', + 'lt-LT'=>'Lithuanian', + 'lv-LV'=> 'Latvian', + 'mk-MK'=> 'Macedonian', + 'ms-MY'=> 'Malay', + 'mi-NZ'=> 'Maori', + 'mn-MN'=> 'Mongolian', + 'no-NO'=> 'Norwegian', + 'fa-IR'=> 'Persian', + 'pl-PL'=> 'Polish', + 'pt-PT'=> 'Portuguese', + 'pt-BR'=> 'Portuguese, Brazilian', + 'ro-RO'=> 'Romanian', + 'ru-RU'=> 'Russian', + 'sr-CS' => 'Serbian (Latin)', + 'sk-SK'=> 'Slovak', + 'sl-SI'=> 'Slovenian', + 'so-SO'=> 'Somali', + 'es-ES'=> 'Spanish', + 'es-CO'=> 'Spanish, Colombia', + 'es-MX'=> 'Spanish, Mexico', + 'es-VE'=> 'Spanish, Venezuela', + 'sv-SE'=> 'Swedish', + 'tl-PH'=> 'Tagalog', + 'ta-IN'=> 'Tamil', + 'th-TH'=> 'Thai', + 'tr-TR'=> 'Turkish', + 'uk-UA'=> 'Ukranian', + 'vi-VN'=> 'Vietnamese', + 'cy-GB'=> 'Welsh', + 'zu-ZA'=> 'Zulu', + ], + + 'select_country' => 'Select a country', + + 'countries' => [ + 'AC'=>'Ascension Island', + 'AD'=>'Andorra', + 'AE'=>'United Arab Emirates', + 'AF'=>'Afghanistan', + 'AG'=>'Antigua And Barbuda', + 'AI'=>'Anguilla', + 'AL'=>'Albania', + 'AM'=>'Armenia', + 'AN'=>'Netherlands Antilles', + 'AO'=>'Angola', + 'AQ'=>'Antarctica', + 'AR'=>'Argentina', + 'AS'=>'American Samoa', + 'AT'=>'Austria', + 'AU'=>'Australia', + 'AW'=>'Aruba', + 'AX'=>'Ã…land', + 'AZ'=>'Azerbaijan', + 'BA'=>'Bosnia And Herzegovina', + 'BB'=>'Barbados', + 'BE'=>'Belgium', + 'BD'=>'Bangladesh', + 'BF'=>'Burkina Faso', + 'BG'=>'Bulgaria', + 'BH'=>'Bahrain', + 'BI'=>'Burundi', + 'BJ'=>'Benin', + 'BM'=>'Bermuda', + 'BN'=>'Brunei Darussalam', + 'BO'=>'Bolivia', + 'BR'=>'Brazil', + 'BS'=>'Bahamas', + 'BT'=>'Bhutan', + 'BV'=>'Bouvet Island', + 'BW'=>'Botswana', + 'BY'=>'Belarus', + 'BZ'=>'Belize', + 'CA'=>'Canada', + 'CC'=>'Cocos (Keeling) Islands', + 'CD'=>'Congo (Democratic Republic)', + 'CF'=>'Central African Republic', + 'CG'=>'Congo (Republic)', + 'CH'=>'Switzerland', + 'CI'=>'Côte d\'Ivoire', + 'CK'=>'Cook Islands', + 'CL'=>'Chile', + 'CM'=>'Cameroon', + 'CN'=>'People\'s Republic of China', + 'CO'=>'Colombia', + 'CR'=>'Costa Rica', + 'CU'=>'Cuba', + 'CV'=>'Cape Verde', + 'CX'=>'Christmas Island', + 'CY'=>'Cyprus', + 'CZ'=>'Czech Republic', + 'DE'=>'Germany', + 'DJ'=>'Djibouti', + 'DK'=>'Denmark', + 'DM'=>'Dominica', + 'DO'=>'Dominican Republic', + 'DZ'=>'Algeria', + 'EC'=>'Ecuador', + 'EE'=>'Estonia', + 'EG'=>'Egypt', + 'ER'=>'Eritrea', + 'ES'=>'Spain', + 'ET'=>'Ethiopia', + 'EU'=>'European Union', + 'FI'=>'Finland', + 'FJ'=>'Fiji', + 'FK'=>'Falkland Islands (Malvinas)', + 'FM'=>'Micronesia, Federated States Of', + 'FO'=>'Faroe Islands', + 'FR'=>'France', + 'GA'=>'Gabon', + 'GD'=>'Grenada', + 'GE'=>'Georgia', + 'GF'=>'French Guiana', + 'GG'=>'Guernsey', + 'GH'=>'Ghana', + 'GI'=>'Gibraltar', + 'GL'=>'Greenland', + 'GM'=>'Gambia', + 'GN'=>'Guinea', + 'GP'=>'Guadeloupe', + 'GQ'=>'Equatorial Guinea', + 'GR'=>'Greece', + 'GS'=>'South Georgia And The South Sandwich Islands', + 'GT'=>'Guatemala', + 'GU'=>'Guam', + 'GW'=>'Guinea-Bissau', + 'GY'=>'Guyana', + 'HK'=>'Hong Kong', + 'HM'=>'Heard And Mc Donald Islands', + 'HN'=>'Honduras', + 'HR'=>'Croatia (local name: Hrvatska)', + 'HT'=>'Haiti', + 'HU'=>'Hungary', + 'ID'=>'Indonesia', + 'IE'=>'Ireland', + 'IL'=>'Israel', + 'IM'=>'Isle of Man', + 'IN'=>'India', + 'IO'=>'British Indian Ocean Territory', + 'IQ'=>'Iraq', + 'IR'=>'Iran, Islamic Republic Of', + 'IS'=>'Iceland', + 'IT'=>'Italy', + 'JE'=>'Jersey', + 'JM'=>'Jamaica', + 'JO'=>'Jordan', + 'JP'=>'Japan', + 'KE'=>'Kenya', + 'KG'=>'Kyrgyzstan', + 'KH'=>'Cambodia', + 'KI'=>'Kiribati', + 'KM'=>'Comoros', + 'KN'=>'Saint Kitts And Nevis', + 'KR'=>'Korea, Republic Of', + 'KW'=>'Kuwait', + 'KY'=>'Cayman Islands', + 'KZ'=>'Kazakhstan', + 'LA'=>'Lao People\'s Democratic Republic', + 'LB'=>'Lebanon', + 'LC'=>'Saint Lucia', + 'LI'=>'Liechtenstein', + 'LK'=>'Sri Lanka', + 'LR'=>'Liberia', + 'LS'=>'Lesotho', + 'LT'=>'Lithuania', + 'LU'=>'Luxembourg', + 'LV'=>'Latvia', + 'LY'=>'Libyan Arab Jamahiriya', + 'MA'=>'Morocco', + 'MC'=>'Monaco', + 'MD'=>'Moldova, Republic Of', + 'ME'=>'Montenegro', + 'MG'=>'Madagascar', + 'MH'=>'Marshall Islands', + 'MK'=>'Macedonia, The Former Yugoslav Republic Of', + 'ML'=>'Mali', + 'MM'=>'Myanmar', + 'MN'=>'Mongolia', + 'MO'=>'Macau', + 'MP'=>'Northern Mariana Islands', + 'MQ'=>'Martinique', + 'MR'=>'Mauritania', + 'MS'=>'Montserrat', + 'MT'=>'Malta', + 'MU'=>'Mauritius', + 'MV'=>'Maldives', + 'MW'=>'Malawi', + 'MX'=>'Mexico', + 'MY'=>'Malaysia', + 'MZ'=>'Mozambique', + 'NA'=>'Namibia', + 'NC'=>'New Caledonia', + 'NE'=>'Niger', + 'NF'=>'Norfolk Island', + 'NG'=>'Nigeria', + 'NI'=>'Nicaragua', + 'NL'=>'Netherlands', + 'NO'=>'Norway', + 'NP'=>'Nepal', + 'NR'=>'Nauru', + 'NU'=>'Niue', + 'NZ'=>'New Zealand', + 'OM'=>'Oman', + 'PA'=>'Panama', + 'PE'=>'Peru', + 'PF'=>'French Polynesia', + 'PG'=>'Papua New Guinea', + 'PH'=>'Philippines, Republic of the', + 'PK'=>'Pakistan', + 'PL'=>'Poland', + 'PM'=>'St. Pierre And Miquelon', + 'PN'=>'Pitcairn', + 'PR'=>'Puerto Rico', + 'PS'=>'Palestine', + 'PT'=>'Portugal', + 'PW'=>'Palau', + 'PY'=>'Paraguay', + 'QA'=>'Qatar', + 'RE'=>'Reunion', + 'RO'=>'Romania', + 'RS'=>'Serbia', + 'RU'=>'Russian Federation', + 'RW'=>'Rwanda', + 'SA'=>'Saudi Arabia', + 'UK'=>'Scotland', + 'SB'=>'Solomon Islands', + 'SC'=>'Seychelles', + 'SS'=>'South Sudan', + 'SD'=>'Sudan', + 'SE'=>'Sweden', + 'SG'=>'Singapore', + 'SH'=>'St. Helena', + 'SI'=>'Slovenia', + 'SJ'=>'Svalbard And Jan Mayen Islands', + 'SK'=>'Slovakia (Slovak Republic)', + 'SL'=>'Sierra Leone', + 'SM'=>'San Marino', + 'SN'=>'Senegal', + 'SO'=>'Somalia', + 'SR'=>'Suriname', + 'ST'=>'Sao Tome And Principe', + 'SU'=>'Soviet Union', + 'SV'=>'El Salvador', + 'SY'=>'Syrian Arab Republic', + 'SZ'=>'Swaziland', + 'TC'=>'Turks And Caicos Islands', + 'TD'=>'Chad', + 'TF'=>'French Southern Territories', + 'TG'=>'Togo', + 'TH'=>'Thailand', + 'TJ'=>'Tajikistan', + 'TK'=>'Tokelau', + 'TI'=>'East Timor', + 'TM'=>'Turkmenistan', + 'TN'=>'Tunisia', + 'TO'=>'Tonga', + 'TP'=>'East Timor (old code)', + 'TR'=>'Turkey', + 'TT'=>'Trinidad And Tobago', + 'TV'=>'Tuvalu', + 'TW'=>'Taiwan', + 'TZ'=>'Tanzania, United Republic Of', + 'UA'=>'Ukraine', + 'UG'=>'Uganda', + 'UK'=>'United Kingdom', + 'US'=>'United States', + 'UM'=>'United States Minor Outlying Islands', + 'UY'=>'Uruguay', + 'UZ'=>'Uzbekistan', + 'VA'=>'Vatican City State (Holy See)', + 'VC'=>'Saint Vincent And The Grenadines', + 'VE'=>'Venezuela', + 'VG'=>'Virgin Islands (British)', + 'VI'=>'Virgin Islands (U.S.)', + 'VN'=>'Viet Nam', + 'VU'=>'Vanuatu', + 'WF'=>'Wallis And Futuna Islands', + 'WS'=>'Samoa', + 'YE'=>'Yemen', + 'YT'=>'Mayotte', + 'ZA'=>'South Africa', + 'ZM'=>'Zambia', + 'ZW'=>'Zimbabwe', + ], +]; \ No newline at end of file diff --git a/resources/lang/chr-US/mail.php b/resources/lang/chr-US/mail.php new file mode 100644 index 0000000000..759ff0f5e8 --- /dev/null +++ b/resources/lang/chr-US/mail.php @@ -0,0 +1,93 @@ + 'Accessory checked in', + 'Accessory_Checkout_Notification' => 'Accessory checked out', + 'Asset_Checkin_Notification' => 'Asset checked in', + 'Asset_Checkout_Notification' => 'Asset checked out', + 'Confirm_Accessory_Checkin' => 'Accessory checkin confirmation', + 'Confirm_Asset_Checkin' => 'Asset checkin confirmation', + 'Confirm_accessory_delivery' => 'Accessory delivery confirmation', + 'Confirm_asset_delivery' => 'Asset delivery confirmation', + 'Confirm_consumable_delivery' => 'Consumable delivery confirmation', + 'Confirm_license_delivery' => 'License delivery confirmation', + 'Consumable_checkout_notification' => 'Consumable checked out', + 'Days' => 'Days', + 'Expected_Checkin_Date' => 'An asset checked out to you is due to be checked back in on :date', + 'Expected_Checkin_Notification' => 'Reminder: :name checkin deadline approaching', + 'Expected_Checkin_Report' => 'Expected asset checkin report', + 'Expiring_Assets_Report' => 'Expiring Assets Report.', + 'Expiring_Licenses_Report' => 'Expiring Licenses Report.', + 'Item_Request_Canceled' => 'Item Request Canceled', + 'Item_Requested' => 'Item Requested', + 'License_Checkin_Notification' => 'License checked in', + 'License_Checkout_Notification' => 'License checked out', + 'Low_Inventory_Report' => 'Low Inventory Report', + 'a_user_canceled' => 'A user has canceled an item request on the website', + 'a_user_requested' => 'A user has requested an item on the website', + 'acceptance_asset_accepted' => 'A user has accepted an item', + 'acceptance_asset_declined' => 'A user has declined an item', + 'accessory_name' => 'Accessory Name:', + 'additional_notes' => 'Additional Notes:', + 'admin_has_created' => 'An administrator has created an account for you on the :web website.', + 'asset' => 'Asset:', + 'asset_name' => 'Asset Name:', + 'asset_requested' => 'Asset requested', + 'asset_tag' => 'Asset Tag', + 'assets_warrantee_alert' => 'There is :count asset with a warranty expiring in the next :threshold days.|There are :count assets with warranties expiring in the next :threshold days.', + 'assigned_to' => 'Assigned To', + 'best_regards' => 'Best regards,', + 'canceled' => 'Canceled:', + 'checkin_date' => 'Checkin Date:', + 'checkout_date' => 'Checkout Date:', + 'checkedout_from' => 'Checked out from', + 'checkedin_from' => 'Checked in from', + 'checked_into' => 'Checked into', + 'click_on_the_link_accessory' => 'Please click on the link at the bottom to confirm that you have received the accessory.', + 'click_on_the_link_asset' => 'Please click on the link at the bottom to confirm that you have received the asset.', + 'click_to_confirm' => 'Please click on the following link to confirm your :web account:', + 'current_QTY' => 'Current QTY', + 'days' => 'Days', + 'expecting_checkin_date' => 'Expected Checkin Date:', + 'expires' => 'Expires', + 'hello' => 'Hello', + 'hi' => 'Hi', + 'i_have_read' => 'I have read and agree to the terms of use, and have received this item.', + 'inventory_report' => 'Inventory Report', + 'item' => 'Item:', + 'license_expiring_alert' => 'There is :count license expiring in the next :threshold days.|There are :count licenses expiring in the next :threshold days.', + 'link_to_update_password' => 'Please click on the following link to update your :web password:', + 'login' => 'Login:', + 'login_first_admin' => 'Login to your new Snipe-IT installation using the credentials below:', + 'low_inventory_alert' => 'There is :count item that is below minimum inventory or will soon be low.|There are :count items that are below minimum inventory or will soon be low.', + 'min_QTY' => 'Min QTY', + 'name' => 'Name', + 'new_item_checked' => 'A new item has been checked out under your name, details are below.', + 'notes' => 'Notes', + 'password' => 'Password:', + 'password_reset' => 'Password Reset', + 'read_the_terms' => 'Please read the terms of use below.', + 'read_the_terms_and_click' => 'Please read the terms of use below, and click on the link at the bottom to confirm that you read and agree to the terms of use, and have received the asset.', + 'requested' => 'Requested:', + 'reset_link' => 'Your Password Reset Link', + 'reset_password' => 'Click here to reset your password:', + 'rights_reserved' => 'All rights reserved.', + 'serial' => 'Serial', + 'snipe_webhook_test' => 'Snipe-IT Integration Test', + 'snipe_webhook_summary' => 'Snipe-IT Integration Test Summary', + 'supplier' => 'Supplier', + 'tag' => 'Tag', + 'test_email' => 'Test Email from Snipe-IT', + 'test_mail_text' => 'This is a test from the Snipe-IT Asset Management System. If you got this, mail is working :)', + 'the_following_item' => 'The following item has been checked in: ', + 'to_reset' => 'To reset your :web password, complete this form:', + 'type' => 'Type', + 'upcoming-audits' => 'There is :count asset that is coming up for audit within :threshold days.|There are :count assets that are coming up for audit within :threshold days.', + 'user' => 'User', + 'username' => 'Username', + 'welcome' => 'Welcome :name', + 'welcome_to' => 'Welcome to :web!', + 'your_assets' => 'View Your Assets', + 'your_credentials' => 'Your Snipe-IT credentials', +]; diff --git a/resources/lang/chr-US/pagination.php b/resources/lang/chr-US/pagination.php new file mode 100644 index 0000000000..b573b51e91 --- /dev/null +++ b/resources/lang/chr-US/pagination.php @@ -0,0 +1,20 @@ + '« Previous', + + 'next' => 'Next »', + +); diff --git a/resources/lang/chr-US/passwords.php b/resources/lang/chr-US/passwords.php new file mode 100644 index 0000000000..41a87f98ed --- /dev/null +++ b/resources/lang/chr-US/passwords.php @@ -0,0 +1,9 @@ + 'If a matching user with a valid email address exists in our system, a password recovery email has been sent.', + 'user' => 'If a matching user with a valid email address exists in our system, a password recovery email has been sent.', + 'token' => 'This password reset token is invalid or expired, or does not match the username provided.', + 'reset' => 'Your password has been reset!', + 'password_change' => 'Your password has been updated!', +]; diff --git a/resources/lang/chr-US/reminders.php b/resources/lang/chr-US/reminders.php new file mode 100644 index 0000000000..8a197467df --- /dev/null +++ b/resources/lang/chr-US/reminders.php @@ -0,0 +1,21 @@ + "Passwords must be six characters and match the confirmation.", + "user" => "Username or email address is incorrect", + "token" => 'This password reset token is invalid or expired, or does not match the username provided.', + 'sent' => 'If a matching user with a valid email address exists in our system, a password recovery email has been sent.', + +); diff --git a/resources/lang/chr-US/table.php b/resources/lang/chr-US/table.php new file mode 100644 index 0000000000..16e32b148f --- /dev/null +++ b/resources/lang/chr-US/table.php @@ -0,0 +1,11 @@ + 'Actions', + 'action' => 'Action', + 'by' => 'By', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', + +); diff --git a/resources/lang/chr-US/validation.php b/resources/lang/chr-US/validation.php new file mode 100644 index 0000000000..05374e23af --- /dev/null +++ b/resources/lang/chr-US/validation.php @@ -0,0 +1,162 @@ + 'The :attribute must be accepted.', + 'active_url' => 'The :attribute is not a valid URL.', + 'after' => 'The :attribute must be a date after :date.', + 'after_or_equal' => 'The :attribute must be a date after or equal to :date.', + 'alpha' => 'The :attribute may only contain letters.', + 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.', + 'alpha_num' => 'The :attribute may only contain letters and numbers.', + 'array' => 'The :attribute must be an array.', + 'before' => 'The :attribute must be a date before :date.', + 'before_or_equal' => 'The :attribute must be a date before or equal to :date.', + 'between' => [ + 'numeric' => 'The :attribute must be between :min - :max.', + 'file' => 'The :attribute must be between :min - :max kilobytes.', + 'string' => 'The :attribute must be between :min - :max characters.', + 'array' => 'The :attribute must have between :min and :max items.', + ], + 'boolean' => 'The :attribute must be true or false.', + 'confirmed' => 'The :attribute confirmation does not match.', + 'date' => 'The :attribute is not a valid date.', + 'date_format' => 'The :attribute does not match the format :format.', + 'different' => 'The :attribute and :other must be different.', + 'digits' => 'The :attribute must be :digits digits.', + 'digits_between' => 'The :attribute must be between :min and :max digits.', + 'dimensions' => 'The :attribute has invalid image dimensions.', + 'distinct' => 'The :attribute field has a duplicate value.', + 'email' => 'The :attribute format is invalid.', + 'exists' => 'The selected :attribute is invalid.', + 'file' => 'The :attribute must be a file.', + 'filled' => 'The :attribute field must have a value.', + 'image' => 'The :attribute must be an image.', + 'import_field_empty' => 'The value for :fieldname cannot be null.', + 'in' => 'The selected :attribute is invalid.', + 'in_array' => 'The :attribute field does not exist in :other.', + 'integer' => 'The :attribute must be an integer.', + 'ip' => 'The :attribute must be a valid IP address.', + 'ipv4' => 'The :attribute must be a valid IPv4 address.', + 'ipv6' => 'The :attribute must be a valid IPv6 address.', + 'is_unique_department' => 'The :attribute must be unique to this Company Location', + 'json' => 'The :attribute must be a valid JSON string.', + 'max' => [ + 'numeric' => 'The :attribute may not be greater than :max.', + 'file' => 'The :attribute may not be greater than :max kilobytes.', + 'string' => 'The :attribute may not be greater than :max characters.', + 'array' => 'The :attribute may not have more than :max items.', + ], + 'mimes' => 'The :attribute must be a file of type: :values.', + 'mimetypes' => 'The :attribute must be a file of type: :values.', + 'min' => [ + 'numeric' => 'The :attribute must be at least :min.', + 'file' => 'The :attribute must be at least :min kilobytes.', + 'string' => 'The :attribute must be at least :min characters.', + 'array' => 'The :attribute must have at least :min items.', + ], + 'starts_with' => 'The :attribute must start with one of the following: :values.', + 'ends_with' => 'The :attribute must end with one of the following: :values.', + + 'not_in' => 'The selected :attribute is invalid.', + 'numeric' => 'The :attribute must be a number.', + 'present' => 'The :attribute field must be present.', + 'valid_regex' => 'That is not a valid regex. ', + 'regex' => 'The :attribute format is invalid.', + 'required' => 'The :attribute field is required.', + 'required_if' => 'The :attribute field is required when :other is :value.', + 'required_unless' => 'The :attribute field is required unless :other is in :values.', + 'required_with' => 'The :attribute field is required when :values is present.', + 'required_with_all' => 'The :attribute field is required when :values is present.', + 'required_without' => 'The :attribute field is required when :values is not present.', + 'required_without_all' => 'The :attribute field is required when none of :values are present.', + 'same' => 'The :attribute and :other must match.', + 'size' => [ + 'numeric' => 'The :attribute must be :size.', + 'file' => 'The :attribute must be :size kilobytes.', + 'string' => 'The :attribute must be :size characters.', + 'array' => 'The :attribute must contain :size items.', + ], + 'string' => 'The :attribute must be a string.', + 'timezone' => 'The :attribute must be a valid zone.', + 'two_column_unique_undeleted' => 'The :attribute must be unique across :table1 and :table2. ', + 'unique' => 'The :attribute has already been taken.', + 'uploaded' => 'The :attribute failed to upload.', + 'url' => 'The :attribute format is invalid.', + 'unique_undeleted' => 'The :attribute must be unique.', + 'non_circular' => 'The :attribute must not create a circular reference.', + 'not_array' => ':attribute cannot be an array.', + 'disallow_same_pwd_as_user_fields' => 'Password cannot be the same as the username.', + 'letters' => 'Password must contain at least one letter.', + 'numbers' => 'Password must contain at least one number.', + 'case_diff' => 'Password must use mixed case.', + 'symbols' => 'Password must contain symbols.', + 'gte' => [ + 'numeric' => 'Value cannot be negative' + ], + 'checkboxes' => ':attribute contains invalid options.', + 'radio_buttons' => ':attribute is invalid.', + + + /* + |-------------------------------------------------------------------------- + | Custom Validation Language Lines + |-------------------------------------------------------------------------- + | + | Here you may specify custom validation messages for attributes using the + | convention "attribute.rule" to name the lines. This makes it quick to + | specify a specific custom language line for a given attribute rule. + | + */ + + 'custom' => [ + 'alpha_space' => 'The :attribute field contains a character that is not allowed.', + 'email_array' => 'One or more email addresses is invalid.', + 'hashed_pass' => 'Your current password is incorrect', + 'dumbpwd' => 'That password is too common.', + 'statuslabel_type' => 'You must select a valid status label type', + + // 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 + // people won't know how to format. + 'purchase_date.date_format' => 'The :attribute must be a valid date in YYYY-MM-DD format', + 'last_audit_date.date_format' => 'The :attribute must be a valid date in YYYY-MM-DD hh:mm:ss format', + 'expiration_date.date_format' => 'The :attribute must be a valid date in YYYY-MM-DD format', + 'termination_date.date_format' => 'The :attribute must be a valid date in YYYY-MM-DD format', + 'expected_checkin.date_format' => 'The :attribute must be a valid date in YYYY-MM-DD format', + 'start_date.date_format' => 'The :attribute must be a valid date in YYYY-MM-DD format', + 'end_date.date_format' => 'The :attribute must be a valid date in YYYY-MM-DD format', + + ], + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap attribute place-holders + | with something more reader friendly such as E-Mail Address instead + | of "email". This simply helps us make messages a little cleaner. + | + */ + + 'attributes' => [], + + /* + |-------------------------------------------------------------------------- + | Generic Validation Messages + |-------------------------------------------------------------------------- + */ + 'invalid_value_in_field' => 'Invalid value included in this field', +]; diff --git a/resources/lang/cs-CZ/account/general.php b/resources/lang/cs-CZ/account/general.php index 59d4ab2905..560b169df3 100644 --- a/resources/lang/cs-CZ/account/general.php +++ b/resources/lang/cs-CZ/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokeny vyprší:', 'api_reference' => 'Zkontrolujte prosím API reference pro nalezení konkrétního koncového bodu a další API dokumentaci.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/cs-CZ/admin/hardware/form.php b/resources/lang/cs-CZ/admin/hardware/form.php index 470d9473f5..842bfe4a69 100644 --- a/resources/lang/cs-CZ/admin/hardware/form.php +++ b/resources/lang/cs-CZ/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Č. objednávky', 'qr' => 'QR kód', 'requestable' => 'Uživatelé můžou požádat o tento majetek', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Zvolte typ stavu', 'serial' => 'Sériové číslo', 'status' => 'Stav', diff --git a/resources/lang/cs-CZ/admin/hardware/general.php b/resources/lang/cs-CZ/admin/hardware/general.php index 5251728d32..3e638e1a55 100644 --- a/resources/lang/cs-CZ/admin/hardware/general.php +++ b/resources/lang/cs-CZ/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Opravdu chcete odstranit tuto položku?', 'edit' => 'Upravit majetek', 'model_deleted' => 'Tento model majetku byl odstraněn. Před obnovením majetku musíte model obnovit.', - 'model_invalid' => 'Model tohoto majetku je neplatný.', - 'model_invalid_fix' => 'Měli byste tento majetek upravit dříve, než jej vydáte, či přijmete.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Lze vyžádat', 'requested' => 'Požadováno', 'not_requestable' => 'Nelze vyžádat', diff --git a/resources/lang/cs-CZ/admin/users/message.php b/resources/lang/cs-CZ/admin/users/message.php index fc0be343b3..4a2551113c 100644 --- a/resources/lang/cs-CZ/admin/users/message.php +++ b/resources/lang/cs-CZ/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Vyskytl se problém při aktualizování uživatele. Zkuste to znovu.', 'delete' => 'Vyskytl se problém při mazání uživatele. Zkuste to znovu.', 'delete_has_assets' => 'Tento uživatel má položky přiřazené a nelze je smazat.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Vyskytl se problém při rušení uživatele. Zkuste to znovu.', 'import' => 'Vyskytl se problém při importu uživatelů. Zkuste to znovu.', 'asset_already_accepted' => 'Tento majetek již byl odsouhlasen.', 'accept_or_decline' => 'Musíte přijmout nebo odmítnout tento majetek.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Majetek, který jste se pokoušeli přijmout, nebyl vydán pro vás.', 'ldap_could_not_connect' => 'Nelze se připojit k serveru LDAP. Zkontrolujte prosím konfiguraci serveru LDAP v konfiguračním souboru LDAP.
    Chyba serveru LDAP:', 'ldap_could_not_bind' => 'Nelze svázat server LDAP. Zkontrolujte prosím konfiguraci serveru LDAP v konfiguračním souboru LDAP.
    Chyba serveru LDAP: ', diff --git a/resources/lang/cs-CZ/general.php b/resources/lang/cs-CZ/general.php index 599908a379..11d72d1f9e 100644 --- a/resources/lang/cs-CZ/general.php +++ b/resources/lang/cs-CZ/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Report aktivity', 'address' => 'Adresa', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Správce', 'add_seats' => 'Přidaná licenční místa', 'age' => "Stáří", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Vyžádaný majetek', 'requested_assets_menu' => 'Vyžádaný majetek', 'request_canceled' => 'Žádost zrušena', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Uložit', 'select_var' => 'Vyberte :thing... ', // this will eventually replace all of our other selects 'select' => 'Zvolit', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Název příslušenství:', 'clone_item' => 'Duplikovat položku', 'checkout_tooltip' => 'Vydat položku', - 'checkin_tooltip' => 'Převzít položku', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Vydat položku uživateli', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Systém je momentálně nedostupný kvůli aktualizaci. Zkuste to, prosím, později.', 'maintenance_mode_title' => 'Systém je dočasně nedostupný', 'ldap_import' => 'Heslo by nemělo být spravováno LDAP. (To vám umožní odeslat žádost o obnovení zapomenutého hesla.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Adresa 2', 'import_note' => 'Importováno pomocí csv importu', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% dokončit', 'uploading' => 'Nahrávám... ', 'upload_error' => 'Chyba při nahrávání souboru. Zkontrolujte, zda nejsou žádné prázdné řádky a že nejsou duplicitní názvy sloupců.', diff --git a/resources/lang/cs-CZ/table.php b/resources/lang/cs-CZ/table.php index 3ab875403a..f77fb117c6 100644 --- a/resources/lang/cs-CZ/table.php +++ b/resources/lang/cs-CZ/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Akce', - 'action' => 'Akce', - 'by' => 'Vytvořil', - 'item' => 'Položka', + 'actions' => 'Akce', + 'action' => 'Akce', + 'by' => 'Vytvořil', + 'item' => 'Položka', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/cy-GB/account/general.php b/resources/lang/cy-GB/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/cy-GB/account/general.php +++ b/resources/lang/cy-GB/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/cy-GB/admin/hardware/form.php b/resources/lang/cy-GB/admin/hardware/form.php index ff9c5a83a8..960a9217fa 100644 --- a/resources/lang/cy-GB/admin/hardware/form.php +++ b/resources/lang/cy-GB/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Rhif Archeb', 'qr' => 'Côd QR', 'requestable' => 'Gellir ddefnyddwyr gwneud cais am yr ased yma', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Dewis Math o Statws', 'serial' => 'Serial', 'status' => 'Statws', diff --git a/resources/lang/cy-GB/admin/hardware/general.php b/resources/lang/cy-GB/admin/hardware/general.php index 061eb925d9..0633dc9359 100644 --- a/resources/lang/cy-GB/admin/hardware/general.php +++ b/resources/lang/cy-GB/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Addasu Ased', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Ar gael', 'requested' => 'Gofynnwyd amdano', 'not_requestable' => 'Ddim ar gael', diff --git a/resources/lang/cy-GB/admin/users/message.php b/resources/lang/cy-GB/admin/users/message.php index 2fce454f3e..63046b048d 100644 --- a/resources/lang/cy-GB/admin/users/message.php +++ b/resources/lang/cy-GB/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Roedd problem wrth ceisio diweddaru\'r defnyddiwr. Ceisiwch eto o. g. y. dd.', 'delete' => 'Roedd problem wrth ceisio dileu\'r defnyddiwr. Ceisiwch eto o. g. y. dd.', 'delete_has_assets' => 'Offer wedi nodi yn erbyn y defnyddiwr felly heb ei ddileu.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Roedd problem wrth ceisio alluogi\'r defnyddiwr. Ceisiwch eto o. g. y. dd.', 'import' => 'Roedd problem wrth ceisio mewnforio defnyddwyr. Ceisiwch eto o. g. y. dd.', 'asset_already_accepted' => 'Ased wedi\'i dderbyn yn barod.', 'accept_or_decline' => 'Rhaid i chi unai derbyn neu gwrthod yr ased yma.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Rydych wedi ceisio derbyn ased sydd ddim wedi nodi yn erbyn eich cyfrif.', 'ldap_could_not_connect' => 'Wedi methu cyylltu trwy LDAP. Gwiriwch eich gosodiadau LDAP.
    Error from LDAP Server:', 'ldap_could_not_bind' => 'Wedi methu cysylltu trwy LDAP. Gwiriwch eich gosodiadau LDAP.
    Error from LDAP Server: ', diff --git a/resources/lang/cy-GB/general.php b/resources/lang/cy-GB/general.php index 68229dc3cb..bee1bd0bef 100644 --- a/resources/lang/cy-GB/general.php +++ b/resources/lang/cy-GB/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Adroddiad gweithgaredd', 'address' => 'Cyfeiriad', 'admin' => 'Gweinyddol', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Gweinyddwr', 'add_seats' => 'Seddi wedi\'i ychwanegu', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Cais wedi dileu', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Cadw', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Dewis', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Enw Ategolyn:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% wedi cwbwlhau', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/cy-GB/table.php b/resources/lang/cy-GB/table.php index e89dc4391d..7bafdabaf7 100644 --- a/resources/lang/cy-GB/table.php +++ b/resources/lang/cy-GB/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Gweithredoedd', - 'action' => 'Gweithred', - 'by' => 'Erbyn', - 'item' => 'Eitem', + 'actions' => 'Gweithredoedd', + 'action' => 'Gweithred', + 'by' => 'Erbyn', + 'item' => 'Eitem', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/da-DK/account/general.php b/resources/lang/da-DK/account/general.php index 85326dc4c2..48bbe15fc7 100644 --- a/resources/lang/da-DK/account/general.php +++ b/resources/lang/da-DK/account/general.php @@ -7,4 +7,5 @@ return array( 'api_base_url_endpoint' => '/<endpoint>', 'api_token_expiration_time' => 'API-nøgler er indstillet til at udløbe efter:', 'api_reference' => 'Se venligst i API-manualen for at finde specifikke API-endpoints og yderligere API-dokumentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/da-DK/admin/hardware/form.php b/resources/lang/da-DK/admin/hardware/form.php index 763486b659..b35ccd2b2b 100644 --- a/resources/lang/da-DK/admin/hardware/form.php +++ b/resources/lang/da-DK/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Ordrenummer', 'qr' => 'QR kode', 'requestable' => 'Brugere kan efterspørge dette aktiv', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Vælg statustype', 'serial' => 'Serienummer', 'status' => 'Status', diff --git a/resources/lang/da-DK/admin/hardware/general.php b/resources/lang/da-DK/admin/hardware/general.php index a5fc1ecb2c..3e0d5c7d4c 100644 --- a/resources/lang/da-DK/admin/hardware/general.php +++ b/resources/lang/da-DK/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Er du sikker på, at du vil slette dette aktiv?', 'edit' => 'Rediger aktiv', 'model_deleted' => 'Denne aktivmodel er blevet slettet. Du skal gendanne modellen, før du kan gendanne aktivet.', - 'model_invalid' => 'Modellen af dette aktiv er ugyldig.', - 'model_invalid_fix' => 'Aktivet skal redigeres for at korrigere dette, før du forsøger at tjekke det ind eller ud.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'kan anmodes', 'requested' => 'Anmodet', 'not_requestable' => 'Ikke Anmodet', diff --git a/resources/lang/da-DK/admin/users/message.php b/resources/lang/da-DK/admin/users/message.php index 205a3cbd07..d9ac4b2446 100644 --- a/resources/lang/da-DK/admin/users/message.php +++ b/resources/lang/da-DK/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Der opstod et problem, der opdaterede brugeren. Prøv igen.', 'delete' => 'Der opstod et problem ved at slette brugeren. Prøv igen.', 'delete_has_assets' => 'Denne bruger har elementer tildelt og kunne ikke slettes.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Der opstod et problem, der afbrudte brugeren. Prøv igen.', 'import' => 'Der var et problem, der importerede brugere. Prøv igen.', 'asset_already_accepted' => 'Dette aktiv er allerede accepteret.', 'accept_or_decline' => 'Du skal enten acceptere eller afvise dette aktiv.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Det aktiv, du har forsøgt at acceptere, blev ikke tjekket ud til dig.', 'ldap_could_not_connect' => 'Kunne ikke oprette forbindelse til LDAP-serveren. Tjek venligst din LDAP-serverkonfiguration i LDAP-konfigurationsfilen.
    Error fra LDAP-server:', 'ldap_could_not_bind' => 'Kunne ikke binde til LDAP-serveren. Tjek venligst din LDAP-serverkonfiguration i LDAP-konfigurationsfilen.
    Error fra LDAP-server:', diff --git a/resources/lang/da-DK/general.php b/resources/lang/da-DK/general.php index e4508d542d..7dbd6f5f69 100644 --- a/resources/lang/da-DK/general.php +++ b/resources/lang/da-DK/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Aktivitetsrapport', 'address' => 'Addresse', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Tilføjede pladser', 'age' => "Alder", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Anmodede aktiver', 'requested_assets_menu' => 'Anmodede aktiver', 'request_canceled' => 'Anmodning Annulleret', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Gem', 'select_var' => 'Vælg :thing... ', // this will eventually replace all of our other selects 'select' => 'Vælg', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Tilbehørsnavn:', 'clone_item' => 'Klon emne', 'checkout_tooltip' => 'Tjek dette emne ud', - 'checkin_tooltip' => 'Tjek dette emne ind', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Tjek dette emne ud til en bruger', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Tjenesten er midlertidigt utilgængelig grundet systemopdateringer. Tjek venligst tilbage senere.', 'maintenance_mode_title' => 'Systemet er midlertidigt utilgængeligt', 'ldap_import' => 'Brugerkodeord bør ikke administreres af LDAP. (Dette giver dig mulighed for at sende glemt adgangskode-anmodninger.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Adresselinje 2', 'import_note' => 'Importeret med CSV-importør', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% komplet', 'uploading' => 'Uploader... ', 'upload_error' => 'Fejl under upload af fil. Kontroller, at der ikke er nogen tomme rækker og at ingen kolonnenavne er duplikeret.', diff --git a/resources/lang/da-DK/table.php b/resources/lang/da-DK/table.php index 922b8e82bf..85d7dad36e 100644 --- a/resources/lang/da-DK/table.php +++ b/resources/lang/da-DK/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Handlinger', - 'action' => 'Handling', - 'by' => 'Af', - 'item' => 'Emne', + 'actions' => 'Handlinger', + 'action' => 'Handling', + 'by' => 'Af', + 'item' => 'Emne', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/de-DE/account/general.php b/resources/lang/de-DE/account/general.php index d567bd1261..7828c401ab 100644 --- a/resources/lang/de-DE/account/general.php +++ b/resources/lang/de-DE/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API-Token sollen ablaufen in:', 'api_reference' => 'Bitte lesen Sie die API Dokumentation um Informationen über die verfügbaren API endpoints und ihre Verwendung zu erhalten.', + 'profile_updated' => 'Konto erfolgreich aktualisiert', ); diff --git a/resources/lang/de-DE/admin/hardware/form.php b/resources/lang/de-DE/admin/hardware/form.php index 1f67f3ef99..90548cc13b 100644 --- a/resources/lang/de-DE/admin/hardware/form.php +++ b/resources/lang/de-DE/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Auftragsnummer', 'qr' => 'QR-Code', 'requestable' => 'Benutzer dürfen dieses Asset anfordern', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Status Typ auswählen', 'serial' => 'Seriennummer', 'status' => 'Status', diff --git a/resources/lang/de-DE/admin/hardware/general.php b/resources/lang/de-DE/admin/hardware/general.php index e910a427c1..be674aca13 100644 --- a/resources/lang/de-DE/admin/hardware/general.php +++ b/resources/lang/de-DE/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Sind Sie sich sicher, dass Sie dieses Asset löschen möchten?', 'edit' => 'Asset bearbeiten', 'model_deleted' => 'Dieses Modell für Assets wurde gelöscht. Sie müssen das Modell wiederherstellen, bevor Sie das Asset wiederherstellen können.', - 'model_invalid' => 'Das Modell dieses Asset ist ungültig.', - 'model_invalid_fix' => 'Das Asset sollte bearbeitet werden, um dies zu korrigieren, bevor versucht wird, es ein- oder auszuchecken.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Anforderbar', 'requested' => 'Angefordert', 'not_requestable' => 'Kann nicht angefordert werden', diff --git a/resources/lang/de-DE/admin/hardware/message.php b/resources/lang/de-DE/admin/hardware/message.php index d92a19d801..2ce1f69d6a 100644 --- a/resources/lang/de-DE/admin/hardware/message.php +++ b/resources/lang/de-DE/admin/hardware/message.php @@ -5,8 +5,8 @@ return [ 'undeployable' => 'Achtung:Dieses Asset wurde kürzlich als nicht verteilbar markiert. Falls sich dieser Status verändert hat, aktualisieren Sie bitte den Asset Status.', 'does_not_exist' => 'Asset existiert nicht.', - 'does_not_exist_var'=> 'Asset with tag :asset_tag not found.', - 'no_tag' => 'No asset tag provided.', + 'does_not_exist_var'=> 'Asset mit Tag :asset_tag nicht gefunden.', + 'no_tag' => 'Kein Asset Tag angegeben.', 'does_not_exist_or_not_requestable' => 'Dieses Asset existiert nicht oder kann nicht angefordert werden.', 'assoc_users' => 'Dieses Asset ist im Moment an einen Benutzer herausgegeben und kann nicht entfernt werden. Bitte buchen sie das Asset wieder ein und versuchen Sie dann erneut es zu entfernen. ', '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.', diff --git a/resources/lang/de-DE/admin/settings/general.php b/resources/lang/de-DE/admin/settings/general.php index 6ccbb17d74..d8c9c0f3eb 100644 --- a/resources/lang/de-DE/admin/settings/general.php +++ b/resources/lang/de-DE/admin/settings/general.php @@ -49,7 +49,7 @@ return [ 'default_eula_text' => 'Standard EULA', 'default_language' => 'Standardsprache', 'default_eula_help_text' => 'Sie können ebenfalls eigene EULA\'s mit spezifischen Asset Kategorien verknüpfen.', - 'acceptance_note' => 'Add a note for your decision (Optional)', + 'acceptance_note' => 'Notiz für Ihre Entscheidung hinzufügen (Optional)', 'display_asset_name' => 'Zeige Assetname an', 'display_checkout_date' => 'Zeige Herausgabedatum', 'display_eol' => 'Zeige EOL in der Tabellenansicht', diff --git a/resources/lang/de-DE/admin/users/message.php b/resources/lang/de-DE/admin/users/message.php index f1ef456d86..db0e5cfcde 100644 --- a/resources/lang/de-DE/admin/users/message.php +++ b/resources/lang/de-DE/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Beim Aktualisieren des Benutzers ist ein Fehler aufgetreten. Bitte probieren Sie es noch einmal.', 'delete' => 'Beim Entfernen des Benutzers ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.', 'delete_has_assets' => 'Der Benutzer konnte nicht gelöscht werden, da ihm Gegenstände zugeordnet sind.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Es gab ein Problem beim reaktivieren des Benutzers. Bitte versuche es erneut.', 'import' => 'Es gab ein Problem beim importieren der Benutzer. Bitte noch einmal versuchen.', 'asset_already_accepted' => 'Dieses Asset wurde bereits akzeptiert.', 'accept_or_decline' => 'Sie müssen diesen Gegenstand entweder annehmen oder ablehnen.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Das Asset, welches Sie versuchen zu aktivieren, wurde nicht für Sie ausgebucht.', 'ldap_could_not_connect' => 'Konnte keine Verbindung zum LDAP Server herstellen. Bitte LDAP Einstellungen in der LDAP Konfigurationsdatei prüfen.
    Fehler vom LDAP Server:', 'ldap_could_not_bind' => 'Konnte keine Verbindung zum LDAP Server herstellen. Bitte LDAP Einstellungen in der LDAP Konfigurationsdatei prüfen.
    Fehler vom LDAP Server: ', diff --git a/resources/lang/de-DE/general.php b/resources/lang/de-DE/general.php index f82cad9fdd..8061919caf 100644 --- a/resources/lang/de-DE/general.php +++ b/resources/lang/de-DE/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Aktivitätsbericht', 'address' => 'Adresse', 'admin' => 'Administrator', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Plätze hinzugefügt', 'age' => "Alter", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Angeforderte Assets', 'requested_assets_menu' => 'Angeforderte Assets', 'request_canceled' => 'Anfrage abgebrochen', + 'request_item' => 'Diesen Artikel anfordern', + 'external_link_tooltip' => 'Externer Link zu', 'save' => 'Speichern', 'select_var' => ':thing auswählen... ', // this will eventually replace all of our other selects 'select' => 'Auswählen', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Zubehörname:', 'clone_item' => 'Element klonen', 'checkout_tooltip' => 'Diesen Gegenstand zuweisen', - 'checkin_tooltip' => 'Diesen Artikel zurücknehmen', + 'checkin_tooltip' => 'Diesen Artikel zurückgeben, sodass er erneut zur Ausgabe bereitsteht', 'checkout_user_tooltip' => 'Diesen Artikel an einen Benutzer herausgeben', + 'checkin_to_diff_location' => 'Sie können dieses Asset an einen vom Standard-Standort abweichenden Standort herausgeben', 'maintenance_mode' => 'Der Dienst ist wegen Wartungsarbeiten vorübergehend nicht verfügbar. Bitte versuchen Sie es später noch einmal.', 'maintenance_mode_title' => 'System vorübergehend nicht verfügbar', 'ldap_import' => 'Das Benutzerkennwort sollte nicht von LDAP verwaltet werden. (Dies erlaubt es Ihnen, Links zum Zurücksetzen des Passworts zu senden.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Adresszeile 2', 'import_note' => 'Mit CSV-Importer importiert', ], + 'remove_customfield_association' => 'Dieses Feld aus dem Feldsatz entfernen. Das benutzerdefinierte Feld wird nicht gelöscht, nur die Verbindung des Feldes mit diesem Feldsatz.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% vollständig', 'uploading' => 'Wird hochgeladen ... ', 'upload_error' => 'Fehler beim Hochladen der Datei. Bitte überprüfen Sie, dass keine leeren Zeilen vorhanden sind und keine Spaltennamen dupliziert werden.', diff --git a/resources/lang/de-DE/table.php b/resources/lang/de-DE/table.php index 9203ca8c68..4f2de45fab 100644 --- a/resources/lang/de-DE/table.php +++ b/resources/lang/de-DE/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Aktionen', - 'action' => 'Aktion', - 'by' => 'Von', - 'item' => 'Gegenstand', + 'actions' => 'Aktionen', + 'action' => 'Aktion', + 'by' => 'Von', + 'item' => 'Gegenstand', + 'no_matching_records' => 'Keine passenden Datensätze gefunden', ); diff --git a/resources/lang/de-if/account/general.php b/resources/lang/de-if/account/general.php index 23adc03cc0..733b27d1c4 100644 --- a/resources/lang/de-if/account/general.php +++ b/resources/lang/de-if/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API-Token sollen ablaufen in:', 'api_reference' => 'Bitte lese die API Dokumentation um Informationen über die verfügbaren API endpoints und ihre Verwendung zu erhalten.', + 'profile_updated' => 'Konto erfolgreich aktualisiert', ); diff --git a/resources/lang/de-if/admin/hardware/form.php b/resources/lang/de-if/admin/hardware/form.php index 6909abd1fc..ad83aed39b 100644 --- a/resources/lang/de-if/admin/hardware/form.php +++ b/resources/lang/de-if/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Auftragsnummer', 'qr' => 'QR-Code', 'requestable' => 'Benutzer dürfen dieses Asset anfordern', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Status Typ auswählen', 'serial' => 'Seriennummer', 'status' => 'Status', diff --git a/resources/lang/de-if/admin/hardware/general.php b/resources/lang/de-if/admin/hardware/general.php index 1a600dbae5..841cbf995f 100644 --- a/resources/lang/de-if/admin/hardware/general.php +++ b/resources/lang/de-if/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Bist du sicher, dass du dieses Asset löschen möchtest?', 'edit' => 'Asset bearbeiten', 'model_deleted' => 'Dieses Modell für Assets wurde gelöscht. Du musst das Modell wiederherstellen, bevor Du das Asset wiederherstellen kannst.', - 'model_invalid' => 'Das Modell dieses Assets ist ungültig.', - 'model_invalid_fix' => 'Das Asset sollte bearbeitet werden, um dies zu korrigieren, bevor versucht wird, es ein- oder auszuchecken.', + 'model_invalid' => 'Das Modell für dieses Asset ist ungültig.', + 'model_invalid_fix' => 'Das Asset muss aktualisiert und ein gültiges Asset-Modell verwendet werden, bevor versucht wird, es ein- oder auszuchecken oder es zu prüfen.', 'requestable' => 'Anforderbar', 'requested' => 'Angefordert', 'not_requestable' => 'Kann nicht angefordert werden', diff --git a/resources/lang/de-if/admin/hardware/message.php b/resources/lang/de-if/admin/hardware/message.php index e2baa1221a..7fa02be239 100644 --- a/resources/lang/de-if/admin/hardware/message.php +++ b/resources/lang/de-if/admin/hardware/message.php @@ -5,11 +5,11 @@ return [ 'undeployable' => 'Achtung:Dieses Asset wurde kürzlich als nicht verteilbar markiert. Falls sich dieser Status verändert hat, aktualisiere bitte den Asset Status.', 'does_not_exist' => 'Asset existiert nicht.', - 'does_not_exist_var'=> 'Asset with tag :asset_tag not found.', - 'no_tag' => 'No asset tag provided.', + 'does_not_exist_var'=> 'Asset mit Tag :asset_tag nicht gefunden.', + 'no_tag' => 'Kein Asset Tag angegeben.', 'does_not_exist_or_not_requestable' => 'Dieses Asset existiert nicht oder kann nicht angefordert werden.', 'assoc_users' => 'Dieses Asset ist im Moment an einen Benutzer herausgegeben und kann nicht entfernt werden. Bitte buche das Asset wieder ein und versuche dann erneut, es zu entfernen. ', - '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' => 'Das nächste Prüfdatum dieses Assets (:next_audit_date) liegt vor dem letzten Prüfdatum (:last_audit_date). Bitte aktualisieren Sie das nächste Prüfdatum.', 'create' => [ 'error' => 'Asset wurde nicht erstellt. Bitte versuche es erneut. :(', @@ -34,7 +34,7 @@ return [ ], 'audit' => [ - 'error' => 'Asset audit unsuccessful: :error ', + 'error' => 'Asset Prüfung fehlgeschlagen: :error ', 'success' => 'Asset-Audit erfolgreich protokolliert.', ], diff --git a/resources/lang/de-if/admin/settings/general.php b/resources/lang/de-if/admin/settings/general.php index c5c0dfc2f1..bd0a552ac6 100644 --- a/resources/lang/de-if/admin/settings/general.php +++ b/resources/lang/de-if/admin/settings/general.php @@ -49,7 +49,7 @@ return [ 'default_eula_text' => 'Standard EULA', 'default_language' => 'Standardsprache', 'default_eula_help_text' => 'Du kannst ebenso benutzerdefinierte EULAs bestimmten Asset-Kategorien zuordnen.', - 'acceptance_note' => 'Add a note for your decision (Optional)', + 'acceptance_note' => 'Notiz für Ihre Entscheidung hinzufügen (Optional)', 'display_asset_name' => 'Asset-Name anzeigen', 'display_checkout_date' => 'Checkout-Datum anzeigen', 'display_eol' => 'EOL in Tabellenansicht anzeigen', diff --git a/resources/lang/de-if/admin/users/message.php b/resources/lang/de-if/admin/users/message.php index 83aca3faf5..8182ff6586 100644 --- a/resources/lang/de-if/admin/users/message.php +++ b/resources/lang/de-if/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Beim Aktualisieren des Benutzers ist ein Fehler aufgetreten. Bitte probiere es noch einmal.', 'delete' => 'Beim Löschen des Benutzers ist ein Fehler aufgetreten. Bitte versuche es erneut.', 'delete_has_assets' => 'Der Benutzer konnte nicht gelöscht werden, da ihm Gegenstände zugeordnet sind.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Es gab ein Problem beim reaktivieren des Benutzers. Bitte versuche es erneut.', 'import' => 'Es gab ein Problem beim Importieren der Benutzer. Bitte noch einmal versuchen.', 'asset_already_accepted' => 'Dieses Asset wurde bereits akzeptiert.', 'accept_or_decline' => 'Du musst diesen Gegenstand entweder annehmen oder ablehnen.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Das Asset, dass Du versuchst zu aktivieren, wurde nicht an Dich ausgebucht.', 'ldap_could_not_connect' => 'Konnte keine Verbindung zum LDAP Server herstellen. Bitte LDAP Einstellungen in der LDAP Konfigurationsdatei prüfen.
    Fehler vom LDAP Server:', 'ldap_could_not_bind' => 'Konnte keine Verbindung zum LDAP Server herstellen. Bitte LDAP Einstellungen in der LDAP Konfigurationsdatei prüfen.
    Fehler vom LDAP Server: ', diff --git a/resources/lang/de-if/general.php b/resources/lang/de-if/general.php index 998dfdcd79..20d8887f35 100644 --- a/resources/lang/de-if/general.php +++ b/resources/lang/de-if/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Aktivitätsbericht', 'address' => 'Adresse', 'admin' => 'Admin', + 'admin_tooltip' => 'Dieser Benutzer hat Administratorrechte', + 'superuser' => 'Superbenutzer', + 'superuser_tooltip' => 'Dieser Benutzer hat Superbenutzer-Rechte', 'administrator' => 'Administrator', 'add_seats' => 'Lizenzen hinzugefügt', 'age' => "Alter", @@ -202,7 +205,7 @@ return [ 'new_password' => 'Neues Passwort', 'next' => 'Nächste', 'next_audit_date' => 'Nächstes Prüfdatum', - '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' => 'Wenn Sie Auditing in Ihrer Organisation verwenden, dies wird in der Regel automatisch anhand des letzten Prüfdatums und der Prüffrequenz (in Admin-Einstellungen > Alarme) berechnet und Sie können dies leer lassen. Sie können dieses Datum hier manuell festlegen, wenn Sie es benötigen, aber es muss später als das letzte Prüfungsdatum sein. ', 'audit_images_help' => 'You can find audit images in the asset\'s history tab.', 'no_email' => 'Keine E-Mail-Adresse mit diesem Benutzer verknüpft', 'last_audit' => 'Letzte Prüfung', @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Angeforderte Assets', 'requested_assets_menu' => 'Angeforderte Assets', 'request_canceled' => 'Anfrage abgebrochen', + 'request_item' => 'Gegenstand anfordern', + 'external_link_tooltip' => 'Externer Link zu', 'save' => 'Speichern', 'select_var' => ':thing auswählen ... ', // this will eventually replace all of our other selects 'select' => 'Auswählen', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Zubehörname:', 'clone_item' => 'Element klonen', 'checkout_tooltip' => 'Diesen Gegenstand heraugeben', - 'checkin_tooltip' => 'Diesen Artikel zurücknehmen', + 'checkin_tooltip' => 'Externer Link zu', 'checkout_user_tooltip' => 'Diesen Artikel an einen Benutzer herausgeben', + 'checkin_to_diff_location' => 'Sie können sich dafür entscheiden, dieses Asset an einem anderen Ort als dem standardmäßigen Standort :default_location einzuchecken, falls einer festgelegt ist', 'maintenance_mode' => 'Der Dienst ist wegen Wartungsarbeiten vorübergehend nicht verfügbar. Bitte versuche es später noch einmal.', 'maintenance_mode_title' => 'System vorübergehend nicht verfügbar', 'ldap_import' => 'Benutzerkennwort sollte nicht von LDAP verwaltet werden. (Das erlaubt es Dir, Passwortrücksetzungen zu versenden.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Adresszeile 2', 'import_note' => 'Mit CSV-Importer importiert', ], + 'remove_customfield_association' => 'Entfernen Sie dieses Feld aus dem Feldsatz. Dies wird das benutzerdefinierte Feld nicht löschen, sondern nur die Zuordnung dieses Feldes zu diesem Feldsatz entfernen.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% vollständig', 'uploading' => 'Hochladen... ', 'upload_error' => 'Fehler beim Hochladen der Datei. Bitte überprüfe, dass keine leeren Zeilen vorhanden sind und keine Spaltennamen dupliziert werden.', diff --git a/resources/lang/de-if/table.php b/resources/lang/de-if/table.php index 9203ca8c68..5131dbcadb 100644 --- a/resources/lang/de-if/table.php +++ b/resources/lang/de-if/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Aktionen', - 'action' => 'Aktion', - 'by' => 'Von', - 'item' => 'Gegenstand', + 'actions' => 'Aktionen', + 'action' => 'Aktion', + 'by' => 'Von', + 'item' => 'Gegenstand', + 'no_matching_records' => 'Keine passenden Einträge gefunden', ); diff --git a/resources/lang/el-GR/account/general.php b/resources/lang/el-GR/account/general.php index 2d05603b53..bc2293791d 100644 --- a/resources/lang/el-GR/account/general.php +++ b/resources/lang/el-GR/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'Τα API tokens έχουν οριστεί να λήγουν:', 'api_reference' => 'Παρακαλούμε ελέγξτε τον API κωδικό στο βρείτε συγκεκριμένα endpoints API και πρόσθετη τεκμηρίωση API.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/el-GR/admin/hardware/form.php b/resources/lang/el-GR/admin/hardware/form.php index 48d7e25a1f..7a17bb6983 100644 --- a/resources/lang/el-GR/admin/hardware/form.php +++ b/resources/lang/el-GR/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Αριθμός παραγγελίας', 'qr' => 'Κωδικός QR', 'requestable' => 'Οι χρήστες μπορούν να αιτηθούν το πάγιο', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Επιλέξτε Τύπο Κατάστασης', 'serial' => 'Σειριακός', 'status' => 'Κατάσταση', diff --git a/resources/lang/el-GR/admin/hardware/general.php b/resources/lang/el-GR/admin/hardware/general.php index 32300fb1c3..172e972155 100644 --- a/resources/lang/el-GR/admin/hardware/general.php +++ b/resources/lang/el-GR/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το στοιχείο?', 'edit' => 'Επεξεργασία παγίων', 'model_deleted' => 'Αυτό το μοντέλο περιουσιακών στοιχείων έχει διαγραφεί. Πρέπει να επαναφέρετε το μοντέλο για να μπορέσετε να επαναφέρετε το περιουσιακό στοιχείο.', - 'model_invalid' => 'Το μοντέλο αυτού του περιουσιακού στοιχείου δεν είναι έγκυρο.', - 'model_invalid_fix' => 'Το περιουσιακό στοιχείο θα πρέπει να επεξεργαστεί για να διορθώσει αυτό πριν επιχειρήσετε να το ελέγξετε μέσα ή έξω.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Επαναληπτικό', 'requested' => 'Ζητήθηκαν', 'not_requestable' => 'Δεν Απαιτούνται', diff --git a/resources/lang/el-GR/admin/users/message.php b/resources/lang/el-GR/admin/users/message.php index 6d787edd8c..dee0a51b4f 100644 --- a/resources/lang/el-GR/admin/users/message.php +++ b/resources/lang/el-GR/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Παρουσιάστηκε ένα πρόβλημα ενημέρωσης του χρήστη. ΠΑΡΑΚΑΛΩ προσπαθησε ξανα.', 'delete' => 'Παρουσιάστηκε πρόβλημα κατά τη διαγραφή του χρήστη. ΠΑΡΑΚΑΛΩ προσπαθησε ξανα.', 'delete_has_assets' => 'Αυτός ο χρήστης έχει αναθέσει στοιχεία και δεν ήταν δυνατή η διαγραφή του.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Παρουσιάστηκε ένα ζήτημα που δεν ανέβαλε τον χρήστη. ΠΑΡΑΚΑΛΩ προσπαθησε ξανα.', 'import' => 'Παρουσιάστηκε πρόβλημα κατά την εισαγωγή χρηστών. ΠΑΡΑΚΑΛΩ προσπαθησε ξανα.', 'asset_already_accepted' => 'Το στοιχείο αυτό έχει ήδη γίνει αποδεκτό.', 'accept_or_decline' => 'Πρέπει είτε να αποδεχθείτε είτε να απορρίψετε αυτό το στοιχείο.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Το περιουσιακό στοιχείο που προσπαθήσατε να δεχτείτε δεν σας έχει αποσταλεί.', 'ldap_could_not_connect' => 'Δεν ήταν δυνατή η σύνδεση με το διακομιστή LDAP. Ελέγξτε τη διαμόρφωση του διακομιστή LDAP στο αρχείο ρύθμισης LDAP.
    Ερώτηση από διακομιστή LDAP:', 'ldap_could_not_bind' => 'Δεν ήταν δυνατή η δέσμευση του διακομιστή LDAP. Ελέγξτε τη διαμόρφωση του διακομιστή LDAP στο αρχείο ρύθμισης LDAP.
    Ερώτηση από διακομιστή LDAP:', diff --git a/resources/lang/el-GR/general.php b/resources/lang/el-GR/general.php index 319d61e6dd..f84283bf04 100644 --- a/resources/lang/el-GR/general.php +++ b/resources/lang/el-GR/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Έκθεση Δραστηριότητας', 'address' => 'Διεύθυνση', 'admin' => 'Διαχειριστής', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Διαχειριστής', 'add_seats' => 'Προστέθηκαν θέσεις', 'age' => "Ηλικία", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Ζητούμενα Περιουσιακά Στοιχεία', 'requested_assets_menu' => 'Ζητούμενα Περιουσιακά Στοιχεία', 'request_canceled' => 'Το αίτημα ακυρώθηκε', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Αποθήκευση', 'select_var' => 'Επιλέξτε :thing... ', // this will eventually replace all of our other selects 'select' => 'Επιλογή', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Όνομα ανταλλακτικού:', 'clone_item' => 'Κλωνοποίηση Αντικειμένου', 'checkout_tooltip' => 'Ελέγξτε αυτό το στοιχείο έξω', - 'checkin_tooltip' => 'Ελέγξτε αυτό το στοιχείο στο', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Επιλέξτε αυτό το στοιχείο έξω σε ένα χρήστη', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Η υπηρεσία δεν είναι προσωρινά διαθέσιμη για ενημερώσεις συστήματος. Παρακαλούμε ελέγξτε ξανά αργότερα.', 'maintenance_mode_title' => 'Προσωρινά Μη Διαθέσιμο Σύστημα', 'ldap_import' => 'Ο κωδικός πρόσβασης χρήστη δεν πρέπει να γίνεται από το LDAP. (Αυτό σας επιτρέπει να στείλετε αιτήματα ξεχασμένων κωδικών.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Γραμμή Διεύθυνσης 2', 'import_note' => 'Εισήχθη με χρήση εισαγωγέα csv', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% πλήρης', 'uploading' => 'Μεταφόρτωση... ', 'upload_error' => 'Σφάλμα κατά τη μεταφόρτωση του αρχείου. Παρακαλώ ελέγξτε ότι δεν υπάρχουν κενές γραμμές και ότι δεν υπάρχουν διπλότυπα ονόματα στηλών.', diff --git a/resources/lang/el-GR/table.php b/resources/lang/el-GR/table.php index 717fdcf1bb..a258017ec5 100644 --- a/resources/lang/el-GR/table.php +++ b/resources/lang/el-GR/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Ενέργειες', - 'action' => 'Ενέργεια', - 'by' => 'Από', - 'item' => 'Αντικείμενο', + 'actions' => 'Ενέργειες', + 'action' => 'Ενέργεια', + 'by' => 'Από', + 'item' => 'Αντικείμενο', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/en-GB/account/general.php b/resources/lang/en-GB/account/general.php index 632100246f..7407fd0a9c 100644 --- a/resources/lang/en-GB/account/general.php +++ b/resources/lang/en-GB/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/en-GB/admin/hardware/form.php b/resources/lang/en-GB/admin/hardware/form.php index 6059bf0f56..0b5062fdae 100644 --- a/resources/lang/en-GB/admin/hardware/form.php +++ b/resources/lang/en-GB/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Order Number', 'qr' => 'QR Code', 'requestable' => 'Users may request this asset', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Select Status Type', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/lang/en-GB/admin/hardware/general.php b/resources/lang/en-GB/admin/hardware/general.php index b964db9858..b69d045b51 100644 --- a/resources/lang/en-GB/admin/hardware/general.php +++ b/resources/lang/en-GB/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Edit Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The model of this asset is invalid.', - 'model_invalid_fix' => 'The asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Requested', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/en-GB/admin/users/message.php b/resources/lang/en-GB/admin/users/message.php index 515cf69b9e..8bb5f85018 100644 --- a/resources/lang/en-GB/admin/users/message.php +++ b/resources/lang/en-GB/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'There was an issue updating the user. Please try again.', 'delete' => 'There was an issue deleting the user. Please try again.', 'delete_has_assets' => 'This user has items assigned and could not be deleted.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', 'import' => 'There was an issue importing users. Please try again.', 'asset_already_accepted' => 'This asset has already been accepted.', 'accept_or_decline' => 'You must either accept or decline this asset.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'The asset you have attempted to accept was not checked out to you.', 'ldap_could_not_connect' => 'Could not connect to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server:', 'ldap_could_not_bind' => 'Could not bind to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server: ', diff --git a/resources/lang/en-GB/general.php b/resources/lang/en-GB/general.php index 693c6894e7..7f6bd12be5 100644 --- a/resources/lang/en-GB/general.php +++ b/resources/lang/en-GB/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Activity Report', 'address' => 'Address', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Added seats', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Request Canceled', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Save', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Select', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Accessory Name:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using CSV importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% complete', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/en-GB/table.php b/resources/lang/en-GB/table.php index f7a49d86c1..16e32b148f 100644 --- a/resources/lang/en-GB/table.php +++ b/resources/lang/en-GB/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Actions', - 'action' => 'Action', - 'by' => 'By', - 'item' => 'Item', + 'actions' => 'Actions', + 'action' => 'Action', + 'by' => 'By', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/en-ID/account/general.php b/resources/lang/en-ID/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/en-ID/account/general.php +++ b/resources/lang/en-ID/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/en-ID/admin/hardware/form.php b/resources/lang/en-ID/admin/hardware/form.php index 6b2b1c03bc..9c4af6caef 100644 --- a/resources/lang/en-ID/admin/hardware/form.php +++ b/resources/lang/en-ID/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Nomor Permintaan', 'qr' => 'Kode QR', 'requestable' => 'Pengguna dapat meminta aset ini', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Pilih Jenis Status', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/lang/en-ID/admin/hardware/general.php b/resources/lang/en-ID/admin/hardware/general.php index 04873ddcc0..24e5a40d27 100644 --- a/resources/lang/en-ID/admin/hardware/general.php +++ b/resources/lang/en-ID/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Edit Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Permintaan', 'requested' => 'Diminta', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/en-ID/admin/users/message.php b/resources/lang/en-ID/admin/users/message.php index afdd1cb185..868d53fa50 100644 --- a/resources/lang/en-ID/admin/users/message.php +++ b/resources/lang/en-ID/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Terjadi masalah saat memperbarui pengguna. Silahkan coba lagi.', 'delete' => 'Terjadi masalah saat menghapus pengguna. Silahkan coba lagi.', 'delete_has_assets' => 'Pengguna ini memiliki item yang ditetapkan dan tidak dapat dihapus.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Terjadi masalah saat tidak menangguhkan pengguna. Silahkan coba lagi.', 'import' => 'Terjadi masalah saat mengimpor pengguna. Silahkan coba lagi.', 'asset_already_accepted' => 'Aset ini sudah diterima.', 'accept_or_decline' => 'Anda harus menerima atau menolak aset ini.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Aset yang anda sudah coba terima tidak diperiksa untuk Anda.', 'ldap_could_not_connect' => 'Tidak dapat terhubung ke peladen LDAP. Silahkan periksa konfigurasi peladen LDAP anda di berkas konfigurasi.
    Kesalahan dari peladen LDAP:', 'ldap_could_not_bind' => 'Tidak dapat mengikat peladen LDAP. Silakan periksa konfigurasi peladen LDAP Anda di berkas konfigurasi LDAP.
    Kesalahan dari peladen LDAP: ', diff --git a/resources/lang/en-ID/general.php b/resources/lang/en-ID/general.php index 83993657c3..92813124a5 100644 --- a/resources/lang/en-ID/general.php +++ b/resources/lang/en-ID/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Laporan Aktifitas', 'address' => 'Alamat', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Seat ditambahkan', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Permintaan dibatalkan', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Simpan', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Pilih', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Nama Aksesoris:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% lengkap', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/en-ID/table.php b/resources/lang/en-ID/table.php index ee00630a60..4dc8394bc2 100644 --- a/resources/lang/en-ID/table.php +++ b/resources/lang/en-ID/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Tindakan', - 'action' => 'Langkah', - 'by' => 'Oleh', - 'item' => 'Item', + 'actions' => 'Tindakan', + 'action' => 'Langkah', + 'by' => 'Oleh', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/es-CO/account/general.php b/resources/lang/es-CO/account/general.php index 6fa8892e8a..41b1df2b2a 100644 --- a/resources/lang/es-CO/account/general.php +++ b/resources/lang/es-CO/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'Los tokens de la API están establecidos para expirar en:', 'api_reference' => 'Por favor, revise la referencia API a para encontrar puntos finales específicos de la API y documentación adicional de la API.', + 'profile_updated' => 'Cuenta actualizada exitosamente', ); diff --git a/resources/lang/es-CO/admin/categories/message.php b/resources/lang/es-CO/admin/categories/message.php index 91c0367a5d..97e635df5f 100644 --- a/resources/lang/es-CO/admin/categories/message.php +++ b/resources/lang/es-CO/admin/categories/message.php @@ -4,7 +4,7 @@ return array( 'does_not_exist' => 'La categoría no existe.', 'assoc_models' => 'Esta categoría está actualmente asociada con al menos un modelo y no puede ser eliminada. Por favor actualiza tus modelos para no referenciar más esta categoría e inténtalo de nuevo. ', - 'assoc_items' => 'Esta categoría está actualmente asociada con al menos un :asset_type y no puede ser eliminada. Por favor actualiza tus :asset_type para no referenciar más esta categoría e inténtalo de nuevo. ', + 'assoc_items' => 'Esta categoría está actualmente asociada con al menos un: asset_type y no se puede eliminar. Por favor actualice su: asset_type para que no haga referencia a esta categoría e inténtelo de nuevo. ', 'create' => array( 'error' => 'La categoría no fue creada, por favor inténtalo de nuevo.', diff --git a/resources/lang/es-CO/admin/categories/table.php b/resources/lang/es-CO/admin/categories/table.php index 55ac255e5f..d6a5c05c5e 100644 --- a/resources/lang/es-CO/admin/categories/table.php +++ b/resources/lang/es-CO/admin/categories/table.php @@ -1,7 +1,7 @@ 'Licencia', + 'eula_text' => 'Acuerdo de uso (EULA)', 'id' => 'ID', 'parent' => 'Padre', 'require_acceptance' => 'Aceptación', diff --git a/resources/lang/es-CO/admin/depreciations/general.php b/resources/lang/es-CO/admin/depreciations/general.php index 3710ef46b9..c9c549087e 100644 --- a/resources/lang/es-CO/admin/depreciations/general.php +++ b/resources/lang/es-CO/admin/depreciations/general.php @@ -11,6 +11,6 @@ return [ 'update' => 'Actualizar Depreciación', 'depreciation_min' => 'Valor mínimo después de depreciación', 'no_depreciations_warning' => 'Advertencia: - No tiene ninguna amortización configurada. - Por favor, configure al menos una amortización para ver el informe de amortizaciones.', + No tiene ninguna depreciación configurada. + Por favor, configure al menos una depreciación para ver el informe de depreciaciones.', ]; diff --git a/resources/lang/es-CO/admin/hardware/form.php b/resources/lang/es-CO/admin/hardware/form.php index 00a762c3e6..780c05ef95 100644 --- a/resources/lang/es-CO/admin/hardware/form.php +++ b/resources/lang/es-CO/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Orden Número', 'qr' => 'Código QR', 'requestable' => 'Los usuarios pueden solicitar este equipo', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Ir a :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Selecciona Tipo de Estado', 'serial' => 'Número de serie', 'status' => 'Estado', diff --git a/resources/lang/es-CO/admin/hardware/general.php b/resources/lang/es-CO/admin/hardware/general.php index a3c75b5495..06341a8082 100644 --- a/resources/lang/es-CO/admin/hardware/general.php +++ b/resources/lang/es-CO/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => '¿Está seguro de que desea eliminar este recurso?', 'edit' => 'Editar Equipo', 'model_deleted' => 'El modelo de este activo ha sido borrado. Debe restaurar el modelo antes de restaurar o crear el activo.', - 'model_invalid' => 'El modelo de este activo no es válido.', - 'model_invalid_fix' => 'El Activo debe ser editado para corregir esto antes de intentar comprobarlo dentro o fuera.', + 'model_invalid' => 'Este modelo para este activo es inválido.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Puede Solicitarse', 'requested' => 'Solicitado', 'not_requestable' => 'No solicitable', @@ -27,13 +27,12 @@ return [ 'undeployable_tooltip' => 'Este activo tiene una etiqueta de estado que no es desplegable y no puede ser revisado en este momento.', 'view' => 'Ver Equipo', 'csv_error' => 'Tiene un error en su archivo CSV:', - 'import_text' => '

    Upload a CSV that contains asset history. The assets and users MUST already exist in the system, or they will be skipped. Matching assets for history import happens against the asset tag. We will try to find a matching user based on the user\'s name you provide, and the criteria you select below. If you do not select any criteria below, it will simply try to match on the username format you configured in the Admin > General Settings.

    Fields included in the CSV must match the headers: Asset Tag, Name, Checkout Date, Checkin Date. Any additional fields will be ignored.

    Checkin Date: blank or future checkin dates will checkout items to associated user. Excluding the Checkin Date column will create a checkin date with todays date.

    - ', + 'import_text' => '

    Sube un archivo CSV que contenga el historial de activos. Los activos y los usuarios DEBEN existir ya en el sistema, o serán omitidos. La importación del historial busca activos que coincidan con la etiqueta de activo. Intentaremos encontrar un usuario usando el nombre del usuario que proporciones y los criterios que selecciones a continuación. Si no seleccionas ningún criterio a continuación, el sistema simplemente intentará usar el formato de nombre de usuario que configuraste en Admin > Opciones Generales.

    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 Devolución): dejar en blanco o usar fechas futuras asignará los ítems al usuario asociado. Excluir la columna Checkin Date creará una fecha de devolución con la fecha de hoy.

    ', 'csv_import_match_f-l' => 'Intenta emparejar usuarios con formato nombre.lastname (jane.smith)', 'csv_import_match_initial_last' => 'Intentar emparejar a los usuarios con un formato primer apellido inicial (jsmith)', 'csv_import_match_first' => 'Intentar emparejar a los usuarios con formato primer nombre (jane)', 'csv_import_match_email' => 'Intenta emparejar a los usuarios por email como nombre de usuario', - 'csv_import_match_username' => 'Try to match users by username', + 'csv_import_match_username' => 'Intentar emparejar los usuarios usando la propiedad 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 63cf317fad..58ead380ca 100644 --- a/resources/lang/es-CO/admin/hardware/message.php +++ b/resources/lang/es-CO/admin/hardware/message.php @@ -5,11 +5,11 @@ return [ 'undeployable' => 'ADVERTENCIADVERTENCI Este activo ha sido marcado como actualmente no desplegable. Si este estado ha cambiado, por favor actualice el estado del activo.', 'does_not_exist' => 'El recurso no existe.', - 'does_not_exist_var'=> 'Asset with tag :asset_tag not found.', - 'no_tag' => 'No asset tag provided.', + 'does_not_exist_var'=> 'Activo con etiqueta :asset_tag no encontrado.', + 'no_tag' => 'No se ha proporcionado ninguna etiqueta de activo.', 'does_not_exist_or_not_requestable' => 'Ese activo no existe o no es solicitable.', 'assoc_users' => 'Este activo está actualmente reservado a un usuario y no puede ser eliminado. Por favor, compruebe el activo primero y vuelva a intentarlo. ', - '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' => 'La próxima fecha de auditoría de este activo (:next_audit_date) es anterior a la última fecha de auditoría (:last_audit_date). Por favor, actualice la próxima fecha de auditoría.', 'create' => [ 'error' => 'El recurso no fue creado, por favor inténtalo de nuevo. :(', @@ -34,7 +34,7 @@ return [ ], 'audit' => [ - 'error' => 'Asset audit unsuccessful: :error ', + 'error' => 'Auditoría de activos fallida: :error ', 'success' => 'Auditoría de activos registrada con éxito.', ], diff --git a/resources/lang/es-CO/admin/settings/general.php b/resources/lang/es-CO/admin/settings/general.php index 5e8a3d266c..a020ba7771 100644 --- a/resources/lang/es-CO/admin/settings/general.php +++ b/resources/lang/es-CO/admin/settings/general.php @@ -33,7 +33,7 @@ return [ 'backups_restoring' => 'Restaurando desde la copia de seguridad', 'backups_upload' => 'Subir copia de seguridad', 'backups_path' => 'Las copias de seguridad en el servidor se almacenan en :path', - 'backups_restore_warning' => 'Utilice el botón de restauración para restaurar desde una copia de seguridad anterior. (Actualmente esto no funciona con almacenamiento de archivos S3 o Docker.

    Su base de datos completa de :app_name y cualquier archivo subido será completamente reemplazado por lo que hay en el archivo de copia de seguridad. ', + 'backups_restore_warning' => 'Utilice el botón de restauración para restaurar desde una copia de seguridad anterior. (Actualmente esto no funciona con almacenamiento de archivos S3 o Docker.)

    Su base de datos completa de :app_name y cualquier archivo subido será completamente reemplazado por lo que hay en el archivo de copia de seguridad. ', 'backups_logged_out' => 'Todos los usuarios existentes, incluido usted, se cerrarán una vez que la restauración haya finalizado.', 'backups_large' => 'Las copias de seguridad muy grandes pueden agotarse en el intento de restauración y todavía pueden necesitar ser ejecutadas a través de la línea de comandos. ', 'barcode_settings' => 'Ajustes de código de barras', @@ -49,7 +49,7 @@ return [ 'default_eula_text' => 'Default EULA', 'default_language' => 'Idioma por defecto', 'default_eula_help_text' => 'También puede asociar EULAs personalizados a categorías específicas de activos.', - 'acceptance_note' => 'Add a note for your decision (Optional)', + 'acceptance_note' => 'Añada una nota para su decisión (opcional)', 'display_asset_name' => 'Mostrar nombre de activo', 'display_checkout_date' => 'Mostrar fecha de pago', 'display_eol' => 'Mostrar EOL en vista de tabla', @@ -89,7 +89,7 @@ return [ 'ldap_settings' => 'Ajustes LDAP', 'ldap_client_tls_cert_help' => 'El certificado TLS lateral del cliente y la clave para las conexiones LDAP normalmente sólo son útiles en las configuraciones del espacio de trabajo de Google con "Secure LDAP". Ambas son requeridas.', 'ldap_location' => 'Ubicación LDAP', -'ldap_location_help' => 'The Ldap Location field should be used if an OU is not being used in the Base Bind DN. Leave this blank if an OU search is being used.', +'ldap_location_help' => 'El campo Location (ubicación) de Ldap debe utilizarse si una OU no está siendo utilizada en el Base Bind DN (DN del enlace base). Deje este espacio en blanco si se utiliza una búsqueda OU.', 'ldap_login_test_help' => 'Introduzca un nombre de usuario y contraseña LDAP válidos del DN base que especificó anteriormente para comprobar si su inicio de sesión LDAP está configurado correctamente. DEBES GUARDAR SUS SETTINGS LDAP ACTUALIZADOS.', 'ldap_login_sync_help' => 'Esto sólo prueba que LDAP puede sincronizar correctamente. Si su consulta de autenticación LDAP no es correcta, es posible que los usuarios todavía no puedan iniciar sesión. DEBES GUARDAR SUS SETTINGS LDAP ACTUALIZADOS.', 'ldap_manager' => 'Gestor LDAP', @@ -116,7 +116,7 @@ return [ '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 tu 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 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_emp_num' => 'Número de empleado LDAP', 'ldap_email' => 'LDAP Email', 'ldap_test' => 'Probar LDAP', @@ -352,7 +352,7 @@ return [ 'label2_fields_help' => 'Los campos pueden ser agregados, eliminados y reordenados en la columna izquierda. Para cada campo, múltiples opciones para Etiqueta y DataSource pueden ser agregadas, eliminadas y reordenadas en la columna derecha.', 'help_asterisk_bold' => 'Texto introducido como **texto** se mostrará como negrita', 'help_blank_to_use' => 'Deje en blanco para usar el valor de :setting_name', - 'help_default_will_use' => ':default will use the value from :setting_name.
    Note that the value of the barcodes must comply with the respective barcode spec in order to be successfully generated. Please see the documentation for more details. ', + 'help_default_will_use' => ':default usará el valor de :setting_name.
    Tenga en cuenta que el valor de los códigos de barra debe estar en cumplimiento con la especificación respectiva para que sean generados exitosamente. Por favor lea la documentación para más detalles. ', 'default' => 'Por defecto', 'none' => 'Ninguna', 'google_callback_help' => 'Esto debería introducirse como la URL de devolución de llamada en la configuración de la aplicación de Google OAuth en tu organización's consola de desarrollador de Google .', diff --git a/resources/lang/es-CO/admin/users/message.php b/resources/lang/es-CO/admin/users/message.php index dacba0923e..a5425abd41 100644 --- a/resources/lang/es-CO/admin/users/message.php +++ b/resources/lang/es-CO/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Hubo un problema al actualizar el usuario. Por favor, inténtelo de nuevo.', 'delete' => 'Hubo un problema al eliminar el usuario. Por favor, inténtelo de nuevo.', 'delete_has_assets' => 'Este usuario tiene elementos asignados y no se ha podido eliminar.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Hubo un problema sin suspender al usuario. Por favor, inténtelo de nuevo.', 'import' => 'Hubo un problema importando usuarios. Por favor, inténtelo de nuevo.', 'asset_already_accepted' => 'Este activo ya ha sido aceptado.', 'accept_or_decline' => 'Debe aceptar o rechazar este activo.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'El activo que ha intentado aceptar no ha sido revisado para 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: ', diff --git a/resources/lang/es-CO/general.php b/resources/lang/es-CO/general.php index 548ef0575b..54f3f4a16d 100644 --- a/resources/lang/es-CO/general.php +++ b/resources/lang/es-CO/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Reporte de Actividad', 'address' => 'Dirección', 'admin' => 'Admin', + 'admin_tooltip' => 'Este usuario tiene privilegios de superadministrador', + 'superuser' => 'Superusuario', + 'superuser_tooltip' => 'Este usuario es superadministrador', 'administrator' => 'Administrador', 'add_seats' => 'Sitios añadidos', 'age' => "Edad", @@ -202,8 +205,8 @@ return [ 'new_password' => 'Nueva contraseña', 'next' => 'Siguiente', 'next_audit_date' => 'Próxima fecha de auditoría', - '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' => 'Si utiliza auditoría en su organización, esto normalmente se calcula automáticamente en función de la última fecha de auditoría del activo y la frecuencia de auditoría (en Configuración de administración > Alertas) y puede dejarlo en blanco. Puede establecer manualmente esta fecha aquí si lo necesita, pero debe ser posterior a la última fecha de auditoría. ', + 'audit_images_help' => 'Puede encontrar imágenes de auditoría en la pestaña Historial del activo.', 'no_email' => 'No hay dirección de correo electrónico asociada a este usuario', 'last_audit' => 'Última auditoría', 'new' => 'nuevo!', @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Activos solicitados', 'requested_assets_menu' => 'Activos solicitados', 'request_canceled' => 'Solicitud cancelada', + 'request_item' => 'Solicitar este elemento', + 'external_link_tooltip' => 'Enlace externo a', 'save' => 'Guardar', 'select_var' => 'Seleccionar :thing... ', // this will eventually replace all of our other selects 'select' => 'Seleccionar', @@ -297,7 +302,7 @@ return [ 'user' => 'Usuario', 'accepted' => 'aceptado', 'declined' => 'rechazado', - 'declined_note' => 'Declined Notes', + 'declined_note' => 'Notas de rechazo', 'unassigned' => 'Sin asignar', 'unaccepted_asset_report' => 'Activos no aceptados', 'users' => 'Usuarios', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Nombre de accesorio:', 'clone_item' => 'Clonar objeto', 'checkout_tooltip' => 'Revisa este elemento', - 'checkin_tooltip' => 'Comprobar este elemento en', + 'checkin_tooltip' => 'Devuelva este elemento para que esté disponible para resignar, borrar, etc.', 'checkout_user_tooltip' => 'Revisa este elemento a un usuario', + 'checkin_to_diff_location' => 'Puede optar por registrar este activo en una ubicación distinta a la predeterminada :default_location, si es que existe una configurada', 'maintenance_mode' => 'El servicio no está disponible temporalmente para actualizaciones del sistema. Por favor, vuelva más tarde.', 'maintenance_mode_title' => 'Sistema temporalmente no disponible', 'ldap_import' => 'La contraseña del usuario no debe ser administrada por LDAP. (Esto le permite enviar solicitudes de contraseña olvidadas.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Dirección línea 2', 'import_note' => 'Importado usando el importador de csv', ], + 'remove_customfield_association' => 'Elimine este campo del grupo de campos. Esto no eliminará el campo personalizado, solo la asociación de este campo con este grupo de campos.', + 'checked_out_to_fields' => 'Campos sobre quién tiene asignado el elemento', 'percent_complete' => '% complete', 'uploading' => 'Subiendo... ', 'upload_error' => 'Error al cargar el archivo. Por favor, compruebe que no hay filas vacías y que no hay nombres de columna duplicados.', diff --git a/resources/lang/es-CO/table.php b/resources/lang/es-CO/table.php index 678324c194..f9a2b34e43 100644 --- a/resources/lang/es-CO/table.php +++ b/resources/lang/es-CO/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Acciones', - 'action' => 'Acción', - 'by' => 'Por', - 'item' => 'Articulo', + 'actions' => 'Acciones', + 'action' => 'Acción', + 'by' => 'Por', + 'item' => 'Articulo', + 'no_matching_records' => 'No se encontraron registros coincidentes', ); diff --git a/resources/lang/es-ES/account/general.php b/resources/lang/es-ES/account/general.php index 27118e2f3a..4f9b322a01 100644 --- a/resources/lang/es-ES/account/general.php +++ b/resources/lang/es-ES/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'Los tokens de la API están establecidos para expirar en:', 'api_reference' => 'Por favor, revise la referencia API para encontrar endpoints específicos de la API y documentación adicional de la API.', + 'profile_updated' => 'Cuenta actualizada exitosamente', ); diff --git a/resources/lang/es-ES/admin/categories/message.php b/resources/lang/es-ES/admin/categories/message.php index 633e43f626..c0158bf5a1 100644 --- a/resources/lang/es-ES/admin/categories/message.php +++ b/resources/lang/es-ES/admin/categories/message.php @@ -4,7 +4,7 @@ return array( 'does_not_exist' => 'Categoría inexistente.', 'assoc_models' => 'Esta categoría está asignada al menos a un modelo y no puede ser eliminada. ', - 'assoc_items' => 'Esta categoría está actualmente asociada con al menos uno: asset_type y no se puede eliminar. Por favor actualice su: asset_type para ya no hacer referencia a esta categoría e inténtelo de nuevo. ', + 'assoc_items' => 'Esta categoría está actualmente asociada con al menos un: asset_type y no se puede eliminar. Por favor actualice su: asset_type para que no haga referencia a esta categoría e inténtelo de nuevo. ', 'create' => array( 'error' => 'La categoría no se ha creado, intentalo de nuevo.', diff --git a/resources/lang/es-ES/admin/hardware/form.php b/resources/lang/es-ES/admin/hardware/form.php index bfe76c58eb..0d7d247631 100644 --- a/resources/lang/es-ES/admin/hardware/form.php +++ b/resources/lang/es-ES/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Nº Pedido', 'qr' => 'Código QR', 'requestable' => 'Los usuarios pueden solicitarlo', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Ir a :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Selecciona estado', 'serial' => 'N. Serie', 'status' => 'Estado', diff --git a/resources/lang/es-ES/admin/hardware/general.php b/resources/lang/es-ES/admin/hardware/general.php index 94b58ea3e0..c582413290 100644 --- a/resources/lang/es-ES/admin/hardware/general.php +++ b/resources/lang/es-ES/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => '¿Está seguro de que desea eliminar este recurso?', 'edit' => 'Editar Equipo', 'model_deleted' => 'Este Modelo de activo fue eliminado. Debes restaurar este modelo antes de poder restaurar el Activo.', - 'model_invalid' => 'El modelo de este activo no es válido.', - 'model_invalid_fix' => 'El Activo debe ser editado para corregir esto antes de intentar retirarlo o asignarlo.', + 'model_invalid' => 'Este modelo para este activo es inválido.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requerible', 'requested' => 'Solicitado', 'not_requestable' => 'No solicitable', @@ -27,13 +27,12 @@ return [ 'undeployable_tooltip' => 'Este activo tiene una etiqueta de estado que no es desplegable y no puede ser revisado en este momento.', 'view' => 'Ver Equipo', 'csv_error' => 'Tiene un error en su archivo CSV:', - 'import_text' => '

    Upload a CSV that contains asset history. The assets and users MUST already exist in the system, or they will be skipped. Matching assets for history import happens against the asset tag. We will try to find a matching user based on the user\'s name you provide, and the criteria you select below. If you do not select any criteria below, it will simply try to match on the username format you configured in the Admin > General Settings.

    Fields included in the CSV must match the headers: Asset Tag, Name, Checkout Date, Checkin Date. Any additional fields will be ignored.

    Checkin Date: blank or future checkin dates will checkout items to associated user. Excluding the Checkin Date column will create a checkin date with todays date.

    - ', + 'import_text' => '

    Cargue un archivo CSV que contenga el historial de activos. Los activos y los usuarios DEBEN existir ya en el sistema, o serán omitidos. La importación del historial busca activos que coincidan con la etiqueta de 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 Admin > Opciones Generales.

    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 Devolución): dejar en blanco o usar fechas futuras asignará los ítems al usuario asociado. Excluir la columna Checkin Date creará una fecha de devolución con la fecha de hoy.

    ', 'csv_import_match_f-l' => 'Intenta emparejar usuarios con formato nombre.lastname (jane.smith)', 'csv_import_match_initial_last' => 'Intentar emparejar a los usuarios con un formato primer apellido inicial (jsmith)', 'csv_import_match_first' => 'Intentar emparejar a los usuarios con formato primer nombre (jane)', 'csv_import_match_email' => 'Intenta emparejar a los usuarios por email como nombre de usuario', - 'csv_import_match_username' => 'Try to match users by username', + 'csv_import_match_username' => 'Intentar coincidir usuarios por 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 226044901d..34ac9d4933 100644 --- a/resources/lang/es-ES/admin/hardware/message.php +++ b/resources/lang/es-ES/admin/hardware/message.php @@ -5,11 +5,11 @@ return [ 'undeployable' => 'Atención: Este equipo está marcado como no isntalabre. Si no es correcto, actualiza su estado.', 'does_not_exist' => 'Equipo inexistente.', - 'does_not_exist_var'=> 'Asset with tag :asset_tag not found.', - 'no_tag' => 'No asset tag provided.', + 'does_not_exist_var'=> 'Activo con etiqueta :asset_tag no encontrado.', + 'no_tag' => 'No se ha proporcionado ninguna etiqueta de activo.', 'does_not_exist_or_not_requestable' => 'Buen intento. El activo no existe o no es solicitable.', 'assoc_users' => 'Equipo asignado a un usuario, no se puede eliminar.', - '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' => 'La próxima fecha de auditoría de este activo (:next_audit_date) es anterior a la última fecha de auditoría (:last_audit_date). Por favor, actualice la próxima fecha de auditoría.', 'create' => [ 'error' => 'Equipo no creado, intentalo de nuevo. :(', @@ -34,7 +34,7 @@ return [ ], 'audit' => [ - 'error' => 'Asset audit unsuccessful: :error ', + 'error' => 'Auditoría de activos fallida: :error ', 'success' => 'Auditoría de activos registrada correctamente.', ], diff --git a/resources/lang/es-ES/admin/settings/general.php b/resources/lang/es-ES/admin/settings/general.php index 8cf779fed4..f50b36a2da 100644 --- a/resources/lang/es-ES/admin/settings/general.php +++ b/resources/lang/es-ES/admin/settings/general.php @@ -49,7 +49,7 @@ return [ 'default_eula_text' => 'EULA por defecto', 'default_language' => 'Idioma predeterminado', 'default_eula_help_text' => 'También puede asociar EULAs personalizadas para categorías especificas de equipos.', - 'acceptance_note' => 'Add a note for your decision (Optional)', + 'acceptance_note' => 'Añada una nota para su decisión (opcional)', 'display_asset_name' => 'Mostrar Nombre Equipo', 'display_checkout_date' => 'Mostrar Fecha de Salida', 'display_eol' => 'Mostrar EOL', @@ -89,7 +89,7 @@ return [ 'ldap_settings' => 'Ajustes LDAP', 'ldap_client_tls_cert_help' => 'El certificado TLS del cliente y la clave para las conexiones LDAP normalmente sólo son útiles en las configuraciones de Google Workspace con "LDAP Seguro". Ambas son requeridas.', 'ldap_location' => 'Ubicación LDAP', -'ldap_location_help' => 'The Ldap Location field should be used if an OU is not being used in the Base Bind DN. Leave this blank if an OU search is being used.', +'ldap_location_help' => 'El campo Location (ubicación) de Ldap debe utilizarse si una OU no está siendo utilizada en el Base Bind DN (DN del enlace base). Deje este espacio en blanco si se utiliza una búsqueda OU.', 'ldap_login_test_help' => 'Introduce un nombre de usuario LDAP válido y una contraseña de la DN base que especificaste anteriormente para probar si tu inicio de sesión LDAP está configurado correctamente. DEBES GUARDAR TUS CONFIGURACIONES LDAP ACTUALIZADAS PRIMERO.', 'ldap_login_sync_help' => 'Esto sólo prueba que LDAP puede sincronizarse correctamente. Si tu solicitud de Autenticación LDAP no es correcta, los usuarios aún no podrían iniciar sesión. DEBES GUARDAR TUS CONFIGURACIONES LDAP ACTUALIZADAS PRIMERO.', 'ldap_manager' => 'Gestor LDAP', @@ -352,7 +352,7 @@ return [ 'label2_fields_help' => 'Los campos pueden ser agregados, eliminados y reordenados en la columna izquierda. Para cada campo, múltiples opciones para Etiqueta y DataSource pueden ser agregadas, eliminadas y reordenadas en la columna derecha.', 'help_asterisk_bold' => 'Texto introducido como **texto** se mostrará como negrita', 'help_blank_to_use' => 'Deje en blanco para usar el valor de :setting_name', - 'help_default_will_use' => ':default will use the value from :setting_name.
    Note that the value of the barcodes must comply with the respective barcode spec in order to be successfully generated. Please see the documentation for more details. ', + 'help_default_will_use' => ':default usará el valor de :setting_name.
    Tenga en cuenta que el valor de los códigos de barra debe estar en cumplimiento con la especificación respectiva para que sean generados exitosamente. Por favor lea la documentación para más detalles. ', 'default' => 'Por defecto', 'none' => 'Ninguna', 'google_callback_help' => 'Esto debería introducirse como la URL de devolución de llamada en la configuración de la aplicación de Google OAuth en tu organización's consola de desarrollador de Google .', diff --git a/resources/lang/es-ES/admin/users/message.php b/resources/lang/es-ES/admin/users/message.php index 22f39bb8b0..5276f88304 100644 --- a/resources/lang/es-ES/admin/users/message.php +++ b/resources/lang/es-ES/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Ha habido un problema actualizando el Usuario. Intentalo de nuevo.', 'delete' => 'Ha habido un problema eliminando el Usuario. Intentalo de nuevo.', 'delete_has_assets' => 'Este usuario tiene elementos asignados y no se pueden eliminar.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Ha habido un problema marcando como no suspendido el Usuario. Intentalo de nuevo.', 'import' => 'Ha habido un problema importando los usuarios. Por favor intente nuevamente.', 'asset_already_accepted' => 'Este equipo ya ha sido aceptado.', 'accept_or_decline' => 'Debe aceptar o declinar este equipo.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'El equipo que has permitido aceptar no te tiene checkeado a ti.', '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: ', diff --git a/resources/lang/es-ES/general.php b/resources/lang/es-ES/general.php index aeb3788a56..5583d5f34e 100644 --- a/resources/lang/es-ES/general.php +++ b/resources/lang/es-ES/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Reporte de Actividad', 'address' => 'Dirección', 'admin' => 'Admin', + 'admin_tooltip' => 'Este usuario tiene privilegios de superadministrador', + 'superuser' => 'Superusuario', + 'superuser_tooltip' => 'Este usuario es superadministrador', 'administrator' => 'Administrador', 'add_seats' => 'Sitios añadidos', 'age' => "Edad", @@ -202,8 +205,8 @@ return [ 'new_password' => 'Nueva contraseña', 'next' => 'Siguiente', 'next_audit_date' => 'Próxima fecha de auditoría', - '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' => 'Si utiliza auditoría en su organización, esto normalmente se calcula automáticamente en función de la última fecha de auditoría del activo y la frecuencia de auditoría (en Configuración de administración > Alertas) y puede dejarlo en blanco. Puede establecer manualmente esta fecha aquí si lo necesita, pero debe ser posterior a la última fecha de auditoría. ', + 'audit_images_help' => 'Puede encontrar imágenes de auditoría en la pestaña Historial del activo.', 'no_email' => 'No hay dirección de correo electrónico asociada a este usuario', 'last_audit' => 'Última auditoría', 'new' => 'nuevo!', @@ -241,13 +244,15 @@ return [ 'requested_assets' => 'Activos solicitados', 'requested_assets_menu' => 'Activos solicitados', 'request_canceled' => 'Solicitud Cancelada', + 'request_item' => 'Solicitar este elemento', + 'external_link_tooltip' => 'Enlace externo a', 'save' => 'Guardar', 'select_var' => 'Seleccionar :thing... ', // this will eventually replace all of our other selects 'select' => 'Seleccionar', 'select_all' => 'Seleccionar todo', 'search' => 'Buscar', 'select_category' => 'Seleccione una categoría', - 'select_datasource' => 'Seleccione un datoscópico', + 'select_datasource' => 'Seleccione un origen de datos', 'select_department' => 'Seleccione un departamento', 'select_depreciation' => 'Seleccionar un tipo de Amortización', 'select_location' => 'Seleccionar una Ubicación', @@ -297,7 +302,7 @@ return [ 'user' => 'Usuario', 'accepted' => 'aceptado', 'declined' => 'declinado', - 'declined_note' => 'Declined Notes', + 'declined_note' => 'Notas de rechazo', 'unassigned' => 'Sin asignar', 'unaccepted_asset_report' => 'Activos no aceptados', 'users' => 'Usuarios', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Nombre de accesorio:', 'clone_item' => 'Clonar objeto', 'checkout_tooltip' => 'Registrar salida de este elemento', - 'checkin_tooltip' => 'Registrar entrada de este elemento', + 'checkin_tooltip' => 'Devuelva este elemento para que esté disponible para resignar, borrar, etc.', 'checkout_user_tooltip' => 'Registrar salida de este elemento para un usuario', + 'checkin_to_diff_location' => 'Puede optar por registrar este activo en una ubicación distinta a la predeterminada :default_location, si es que existe una configurada', 'maintenance_mode' => 'El servicio no está disponible temporalmente debido por actualizaciones del sistema. Por favor, vuelva más tarde.', 'maintenance_mode_title' => 'Sistema temporalmente no disponible', 'ldap_import' => 'La contraseña de usuario no debe ser administrada por LDAP. (Esto le permite enviar solicitudes de contraseña olvidada.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Dirección (línea 2)', 'import_note' => 'Importado usando el importador de csv', ], + 'remove_customfield_association' => 'Elimine este campo del grupo de campos. Esto no eliminará el campo personalizado, solo la asociación de este campo con este grupo de campos.', + 'checked_out_to_fields' => 'Campos sobre quién tiene asignado el elemento', 'percent_complete' => '% completo', 'uploading' => 'Subiendo... ', 'upload_error' => 'Error al cargar el archivo. Por favor, compruebe que no hay filas vacías y que no hay nombres de columna duplicados.', diff --git a/resources/lang/es-ES/table.php b/resources/lang/es-ES/table.php index 1ad5301590..75bdd56a6b 100644 --- a/resources/lang/es-ES/table.php +++ b/resources/lang/es-ES/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Acciones', - 'action' => 'Acción', - 'by' => 'Por', - 'item' => 'Item', + 'actions' => 'Acciones', + 'action' => 'Acción', + 'by' => 'Por', + 'item' => 'Item', + 'no_matching_records' => 'No se encontraron registros que coincidan', ); diff --git a/resources/lang/es-MX/account/general.php b/resources/lang/es-MX/account/general.php index d344a57a7b..78ea705a91 100644 --- a/resources/lang/es-MX/account/general.php +++ b/resources/lang/es-MX/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'Los tokens de la API están establecidos para expirar en:', 'api_reference' => 'Por favor, revise la referencia API para encontrar puntos finales específicos de la API y documentación adicional de la API.', + 'profile_updated' => 'Cuenta actualizada exitosamente', ); diff --git a/resources/lang/es-MX/admin/categories/message.php b/resources/lang/es-MX/admin/categories/message.php index e9706fd72d..67a5623464 100644 --- a/resources/lang/es-MX/admin/categories/message.php +++ b/resources/lang/es-MX/admin/categories/message.php @@ -4,7 +4,7 @@ return array( 'does_not_exist' => 'Categoría inexistente.', 'assoc_models' => 'Esta categoría está asignada al menos a un modelo y no puede ser eliminada. ', - 'assoc_items' => 'Esta categoría está actualmente asociada con al menos uno: asset_type y no se puede eliminar. Por favor actualice su: asset_type para ya no hacer referencia a esta categoría e inténtelo de nuevo. ', + 'assoc_items' => 'Esta categoría está actualmente asociada con al menos un: asset_type y no se puede eliminar. Por favor actualice su: asset_type para que no haga referencia a esta categoría e inténtelo de nuevo. ', 'create' => array( 'error' => 'La categoría no se ha creado, intentalo de nuevo.', diff --git a/resources/lang/es-MX/admin/categories/table.php b/resources/lang/es-MX/admin/categories/table.php index 441e322fcc..a1187ddf7c 100644 --- a/resources/lang/es-MX/admin/categories/table.php +++ b/resources/lang/es-MX/admin/categories/table.php @@ -1,7 +1,7 @@ 'EULA', + 'eula_text' => 'Acuerdo de uso (EULA)', 'id' => 'ID', 'parent' => 'Padre', 'require_acceptance' => 'Aceptación', diff --git a/resources/lang/es-MX/admin/hardware/form.php b/resources/lang/es-MX/admin/hardware/form.php index b91a817550..8b93debe60 100644 --- a/resources/lang/es-MX/admin/hardware/form.php +++ b/resources/lang/es-MX/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Nº Pedido', 'qr' => 'Código QR', 'requestable' => 'Los usuarios pueden solicitarlo', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Ir a :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Selecciona estado', 'serial' => 'N. Serie', 'status' => 'Estado', diff --git a/resources/lang/es-MX/admin/hardware/general.php b/resources/lang/es-MX/admin/hardware/general.php index 4776178f18..eab273741c 100644 --- a/resources/lang/es-MX/admin/hardware/general.php +++ b/resources/lang/es-MX/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => '¿Está seguro de que desea eliminar este recurso?', 'edit' => 'Editar Equipo', 'model_deleted' => 'Este modelo de equipo fue eliminado. Debes restaurar el moldelo antes de restaurar el activo.', - 'model_invalid' => 'El Modelo de este Activo no es válido.', - 'model_invalid_fix' => 'Es necesario corregir esto antes de realizar movimientos con este Activo.', + 'model_invalid' => 'Este modelo para este activo es inválido.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requerible', 'requested' => 'Solicitado', 'not_requestable' => 'No solicitable', @@ -27,13 +27,12 @@ return [ 'undeployable_tooltip' => 'Este activo tiene una etiqueta de estado que no es desplegable y no puede ser asignado en este momento.', 'view' => 'Ver Equipo', 'csv_error' => 'Hay un error en su archivo CSV:', - 'import_text' => '

    Upload a CSV that contains asset history. The assets and users MUST already exist in the system, or they will be skipped. Matching assets for history import happens against the asset tag. We will try to find a matching user based on the user\'s name you provide, and the criteria you select below. If you do not select any criteria below, it will simply try to match on the username format you configured in the Admin > General Settings.

    Fields included in the CSV must match the headers: Asset Tag, Name, Checkout Date, Checkin Date. Any additional fields will be ignored.

    Checkin Date: blank or future checkin dates will checkout items to associated user. Excluding the Checkin Date column will create a checkin date with todays date.

    - ', + 'import_text' => '

    Cargue un archivo CSV que contenga el historial de activos. Los activos y los usuarios DEBEN existir ya en el sistema, o serán omitidos. La importación del historial busca activos que coincidan con la etiqueta de 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 Admin > Opciones Generales.

    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 Devolución): dejar en blanco o usar fechas futuras asignará los ítems al usuario asociado. Excluir la columna Checkin Date creará una fecha de devolución con la fecha de hoy.

    ', 'csv_import_match_f-l' => 'Intenta emparejar usuarios con formato nombre.lastname (jane.smith)', 'csv_import_match_initial_last' => 'Intentar emparejar a los usuarios con un formato primer apellido inicial (jsmith)', 'csv_import_match_first' => 'Intentar emparejar a los usuarios con formato primer nombre (jane)', 'csv_import_match_email' => 'Intenta emparejar a los usuarios por email como nombre de usuario', - 'csv_import_match_username' => 'Try to match users by username', + 'csv_import_match_username' => 'Intentar hacer coincidir los usuarios usando la propiedad 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 d1ebb9c931..c6bc57b8e7 100644 --- a/resources/lang/es-MX/admin/hardware/message.php +++ b/resources/lang/es-MX/admin/hardware/message.php @@ -5,11 +5,11 @@ return [ 'undeployable' => 'Atención: Este equipo está marcado como no isntalabre. Si no es correcto, actualiza su estado.', 'does_not_exist' => 'Equipo inexistente.', - 'does_not_exist_var'=> 'Asset with tag :asset_tag not found.', - 'no_tag' => 'No asset tag provided.', + 'does_not_exist_var'=> 'Activo con etiqueta :asset_tag no encontrado.', + 'no_tag' => 'No se ha proporcionado ninguna etiqueta de activo.', 'does_not_exist_or_not_requestable' => 'Ese activo no existe o no puede ser solicitado.', 'assoc_users' => 'Equipo asignado a un usuario, no se puede eliminar.', - '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' => 'La próxima fecha de auditoría de este activo (:next_audit_date) es anterior a la última fecha de auditoría (:last_audit_date). Por favor, actualice la próxima fecha de auditoría.', 'create' => [ 'error' => 'Equipo no creado, intentalo de nuevo. :(', @@ -20,7 +20,7 @@ return [ 'update' => [ 'error' => 'Equipo no actualizado, intentalo de nuevo', 'success' => 'Equipo actualizado.', - 'encrypted_warning' => 'Activo actualizado con éxito, pero los campos personalizados cifrados no se debieron a permisos', + 'encrypted_warning' => 'Activo actualizado con éxito, pero los campos personalizados cifrados no se actualizaron debido a permisos', 'nothing_updated' => 'Ningún campo fue seleccionado, por lo que nada ha sido actualizado.', 'no_assets_selected' => 'Ningún recurso fue seleccionado, por lo que no se actualizó nada.', 'assets_do_not_exist_or_are_invalid' => 'Los activos seleccionados no se pueden actualizar.', @@ -34,7 +34,7 @@ return [ ], 'audit' => [ - 'error' => 'Asset audit unsuccessful: :error ', + 'error' => 'Auditoría de activos fallida: :error ', 'success' => 'Auditoría de activos registrada correctamente.', ], diff --git a/resources/lang/es-MX/admin/settings/general.php b/resources/lang/es-MX/admin/settings/general.php index bdda644adb..313eb52a6d 100644 --- a/resources/lang/es-MX/admin/settings/general.php +++ b/resources/lang/es-MX/admin/settings/general.php @@ -49,7 +49,7 @@ return [ 'default_eula_text' => 'EULA por defecto', 'default_language' => 'Idioma predeterminado', 'default_eula_help_text' => 'También puede asociar EULAs personalizadas para categorías especificas de equipos.', - 'acceptance_note' => 'Add a note for your decision (Optional)', + 'acceptance_note' => 'Añada una nota para su decisión (opcional)', 'display_asset_name' => 'Mostrar Nombre Equipo', 'display_checkout_date' => 'Mostrar Fecha de Salida', 'display_eol' => 'Mostrar EOL', @@ -352,7 +352,7 @@ return [ 'label2_fields_help' => 'Los campos pueden ser agregados, eliminados y reordenados en la columna izquierda. Para cada campo, múltiples opciones para Etiqueta y DataSource pueden ser agregadas, eliminadas y reordenadas en la columna derecha.', 'help_asterisk_bold' => 'El texto escrito como **texto** se mostrará como negrita', 'help_blank_to_use' => 'Deje en blanco para usar el valor de :setting_name', - 'help_default_will_use' => ':default will use the value from :setting_name.
    Note that the value of the barcodes must comply with the respective barcode spec in order to be successfully generated. Please see the documentation for more details. ', + 'help_default_will_use' => ':default usará el valor de :setting_name.
    Tenga en cuenta que el valor de los códigos de barra debe estar en cumplimiento con la especificación respectiva para que sean generados exitosamente. Por favor lea la documentación para más detalles. ', 'default' => 'Predeterminado', 'none' => 'Ninguno', 'google_callback_help' => 'Esto debería introducirse como la URL de devolución de llamada en la configuración de la aplicación de Google OAuth de la Google developer console de tu organización.', diff --git a/resources/lang/es-MX/admin/users/message.php b/resources/lang/es-MX/admin/users/message.php index 763c9d1168..dc1b7d29e1 100644 --- a/resources/lang/es-MX/admin/users/message.php +++ b/resources/lang/es-MX/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Ha habido un problema actualizando el Usuario. Intentalo de nuevo.', 'delete' => 'Ha habido un problema eliminando el Usuario. Intentalo de nuevo.', 'delete_has_assets' => 'Este usuario tiene elementos asignados y no se pueden eliminar.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Ha habido un problema marcando como no suspendido el Usuario. Intentalo de nuevo.', 'import' => 'Ha habido un problema importando los usuarios. Por favor intente nuevamente.', 'asset_already_accepted' => 'Este equipo ya ha sido aceptado.', 'accept_or_decline' => 'Debe aceptar o declinar este equipo.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'El equipo que has permitido aceptar no te tiene checkeado a ti.', '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: ', diff --git a/resources/lang/es-MX/general.php b/resources/lang/es-MX/general.php index b22e90ddff..fd5d958783 100644 --- a/resources/lang/es-MX/general.php +++ b/resources/lang/es-MX/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Reporte de Actividad', 'address' => 'Dirección', 'admin' => 'Admin', + 'admin_tooltip' => 'Este usuario tiene privilegios de superadministrador', + 'superuser' => 'Superusuario', + 'superuser_tooltip' => 'Este usuario es superadministrador', 'administrator' => 'Administrator', 'add_seats' => 'Sitios añadidos', 'age' => "Edad", @@ -202,8 +205,8 @@ return [ 'new_password' => 'Nueva contraseña', 'next' => 'Siguiente', 'next_audit_date' => 'Próxima fecha de auditoría', - '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' => 'Si utiliza auditoría en su organización, esto normalmente se calcula automáticamente en función de la última fecha de auditoría del activo y la frecuencia de auditoría (en Configuración de administración > Alertas) y puede dejarlo en blanco. Puede establecer manualmente esta fecha aquí si lo necesita, pero debe ser posterior a la última fecha de auditoría. ', + 'audit_images_help' => 'Puede encontrar imágenes de auditoría en la pestaña Historial del activo.', 'no_email' => 'No hay dirección de correo electrónico asociada a este usuario', 'last_audit' => 'Última auditoría', 'new' => 'nuevo!', @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Activos solicitados', 'requested_assets_menu' => 'Activos solicitados', 'request_canceled' => 'Solicitud Cancelada', + 'request_item' => 'Solicitar este elemento', + 'external_link_tooltip' => 'Enlace externo a', 'save' => 'Guardar', 'select_var' => 'Seleccionar :thing... ', // this will eventually replace all of our other selects 'select' => 'Seleccionar', @@ -297,7 +302,7 @@ return [ 'user' => 'Usuario', 'accepted' => 'aceptado', 'declined' => 'declinado', - 'declined_note' => 'Declined Notes', + 'declined_note' => 'Notas de rechazo', 'unassigned' => 'Sin asignar', 'unaccepted_asset_report' => 'Activos no aceptados', 'users' => 'Usuarios', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Nombre de accesorio:', 'clone_item' => 'Clonar objeto', 'checkout_tooltip' => 'Registrar salida de este elemento', - 'checkin_tooltip' => 'Registrar entrada de este elemento', + 'checkin_tooltip' => 'Devuelva este elemento para que esté disponible para resignar, borrar, etc.', 'checkout_user_tooltip' => 'Revisa este elemento a un usuario', + 'checkin_to_diff_location' => 'Puede optar por registrar este activo en una ubicación distinta a la predeterminada :default_location, si es que existe una configurada', 'maintenance_mode' => 'El servicio no está disponible temporalmente debido a actualizaciones del sistema. Por favor, vuelva más tarde.', 'maintenance_mode_title' => 'Sistema temporalmente no disponible', 'ldap_import' => 'La contraseña de usuario no debe ser administrada por LDAP. (Esto le permite enviar solicitudes de contraseña olvidada.)', @@ -500,6 +506,8 @@ return [ 'address2' => '2da linea de Dirección', 'import_note' => 'Importado usando el importador de csv', ], + 'remove_customfield_association' => 'Elimine este campo del grupo de campos. Esto no eliminará el campo personalizado, solo la asociación de este campo con este grupo de campos.', + 'checked_out_to_fields' => 'Campos sobre quién tiene asignado el elemento', 'percent_complete' => '% completo', 'uploading' => 'Subiendo... ', 'upload_error' => 'Error al cargar el archivo. Por favor, compruebe que no hay filas vacías y que no hay nombres de columna duplicados.', diff --git a/resources/lang/es-MX/table.php b/resources/lang/es-MX/table.php index 1ad5301590..75bdd56a6b 100644 --- a/resources/lang/es-MX/table.php +++ b/resources/lang/es-MX/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Acciones', - 'action' => 'Acción', - 'by' => 'Por', - 'item' => 'Item', + 'actions' => 'Acciones', + 'action' => 'Acción', + 'by' => 'Por', + 'item' => 'Item', + 'no_matching_records' => 'No se encontraron registros que coincidan', ); diff --git a/resources/lang/es-VE/account/general.php b/resources/lang/es-VE/account/general.php index 6fa8892e8a..41b1df2b2a 100644 --- a/resources/lang/es-VE/account/general.php +++ b/resources/lang/es-VE/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'Los tokens de la API están establecidos para expirar en:', 'api_reference' => 'Por favor, revise la referencia API a para encontrar puntos finales específicos de la API y documentación adicional de la API.', + 'profile_updated' => 'Cuenta actualizada exitosamente', ); diff --git a/resources/lang/es-VE/admin/categories/general.php b/resources/lang/es-VE/admin/categories/general.php index 050a8eff30..10b9ca7c74 100644 --- a/resources/lang/es-VE/admin/categories/general.php +++ b/resources/lang/es-VE/admin/categories/general.php @@ -3,7 +3,7 @@ return array( 'asset_categories' => 'Categorías de Activos', 'category_name' => 'Nombre de la Categoría', - 'checkin_email' => 'Enviar un correo al usuario al asignar/desasignar.', + 'checkin_email' => 'Enviar un correo al usuario al devolver/asignar.', 'checkin_email_notification' => 'A este usuario se le enviará un correo electrónico al asignar/devolver.', 'clone' => 'Clonar Categoría', 'create' => 'Crear Catergoría', diff --git a/resources/lang/es-VE/admin/categories/table.php b/resources/lang/es-VE/admin/categories/table.php index c88311d15a..bf176ae9b6 100644 --- a/resources/lang/es-VE/admin/categories/table.php +++ b/resources/lang/es-VE/admin/categories/table.php @@ -1,10 +1,10 @@ 'Licencia', + 'eula_text' => 'Acuerdo de uso (EULA)', 'id' => 'Identificación', 'parent' => 'Padre', 'require_acceptance' => 'Aceptación', - 'title' => 'Nombre de la Categoría de Activo', + 'title' => 'Nombre de la categoría del activo', ); diff --git a/resources/lang/es-VE/admin/hardware/form.php b/resources/lang/es-VE/admin/hardware/form.php index e32e2fed7b..f43e72fd5d 100644 --- a/resources/lang/es-VE/admin/hardware/form.php +++ b/resources/lang/es-VE/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Número de Orden', 'qr' => 'Código QR', 'requestable' => 'Los usuarios pueden solicitar este activo', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Ir a :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Seleccionar Tipo de Estado', 'serial' => 'Serial', 'status' => 'Estado', diff --git a/resources/lang/es-VE/admin/hardware/general.php b/resources/lang/es-VE/admin/hardware/general.php index 04529953fd..45fe2b4b0c 100644 --- a/resources/lang/es-VE/admin/hardware/general.php +++ b/resources/lang/es-VE/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => '¿Está seguro de que desea eliminar este recurso?', 'edit' => 'Editar Activo', 'model_deleted' => 'Este modelo de activos ha sido eliminado. Debe restaurar el modelo antes de poder restaurar el activo.', - 'model_invalid' => 'El modelo de este activo no es válido.', - 'model_invalid_fix' => 'El Activo debe ser editado para corregir esto antes de intentar comprobarlo dentro o fuera.', + 'model_invalid' => 'Este modelo para este activo es inválido.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Solicitable', 'requested' => 'Solicitado', 'not_requestable' => 'No solicitable', @@ -27,13 +27,12 @@ return [ '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' => '

    Upload a CSV that contains asset history. The assets and users MUST already exist in the system, or they will be skipped. Matching assets for history import happens against the asset tag. We will try to find a matching user based on the user\'s name you provide, and the criteria you select below. If you do not select any criteria below, it will simply try to match on the username format you configured in the Admin > General Settings.

    Fields included in the CSV must match the headers: Asset Tag, Name, Checkout Date, Checkin Date. Any additional fields will be ignored.

    Checkin Date: blank or future checkin dates will checkout items to associated user. Excluding the Checkin Date column will create a checkin date with todays date.

    - ', + 'import_text' => '

    Cargue un archivo CSV que contenga el historial de activos. Los activos y los usuarios DEBEN existir ya en el sistema, o serán omitidos. La importación del historial busca activos que coincidan con la etiqueta de 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 Admin > Opciones Generales.

    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 Devolución): dejar en blanco o usar fechas futuras asignará los ítems al usuario asociado. Excluir la columna Checkin Date creará una fecha de devolución con la fecha de hoy.

    ', 'csv_import_match_f-l' => 'Intenta emparejar usuarios con formato nombre.lastname (jane.smith)', 'csv_import_match_initial_last' => 'Intentar emparejar a los usuarios con un formato primer apellido inicial (jsmith)', 'csv_import_match_first' => 'Intentar emparejar a los usuarios con formato primer nombre (jane)', 'csv_import_match_email' => 'Intenta emparejar a los usuarios por email como nombre de usuario', - 'csv_import_match_username' => 'Try to match users by username', + 'csv_import_match_username' => 'Intentar hacer coincidir los usuarios usando la propiedad 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 cb50ec72c7..01b76caa68 100644 --- a/resources/lang/es-VE/admin/hardware/message.php +++ b/resources/lang/es-VE/admin/hardware/message.php @@ -4,11 +4,11 @@ return [ 'undeployable' => 'Advertencia: este activo ha sido marcado actualmente como no enviable. Si este estado cambia, por favor actualiza el estado de activos.', 'does_not_exist' => 'El activo no existe.', - 'does_not_exist_var'=> 'Asset with tag :asset_tag not found.', - 'no_tag' => 'No asset tag provided.', + 'does_not_exist_var'=> 'Activo con etiqueta :asset_tag no encontrado.', + 'no_tag' => 'No se ha proporcionado ninguna etiqueta de activo.', 'does_not_exist_or_not_requestable' => 'Ese activo no existe o no es solicitable.', 'assoc_users' => 'Este activo está actualmente asignado a un usuario y no puede ser borrado. Por favor, revisa el activo primero y luego intenta borrarlo. ', - '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' => 'La próxima fecha de auditoría de este activo (:next_audit_date) es anterior a la última fecha de auditoría (:last_audit_date). Por favor, actualice la próxima fecha de auditoría.', 'create' => [ 'error' => 'El activo no ha sido creado, por favor, inténtelo de nuevo. :(', @@ -33,7 +33,7 @@ return [ ], 'audit' => [ - 'error' => 'Asset audit unsuccessful: :error ', + 'error' => 'Auditoría de activos fallida: :error ', 'success' => 'Audoría de activo registrada con éxito.', ], diff --git a/resources/lang/es-VE/admin/settings/general.php b/resources/lang/es-VE/admin/settings/general.php index 9b56cd023c..663741a808 100644 --- a/resources/lang/es-VE/admin/settings/general.php +++ b/resources/lang/es-VE/admin/settings/general.php @@ -33,7 +33,7 @@ return [ 'backups_restoring' => 'Restaurando desde la copia de seguridad', 'backups_upload' => 'Subir copia de seguridad', 'backups_path' => 'Las copias de seguridad en el servidor se almacenan en :path', - 'backups_restore_warning' => 'Utilice el botón de restauración para restaurar desde una copia de seguridad anterior. (Actualmente esto no funciona con almacenamiento de archivos S3 o Docker.

    Su base de datos completa de :app_name y cualquier archivo subido será completamente reemplazado por lo que hay en el archivo de copia de seguridad. ', + 'backups_restore_warning' => 'Utilice el botón de restauración para restaurar desde una copia de seguridad anterior. (Actualmente esto no funciona con almacenamiento de archivos S3 o Docker.)

    Su base de datos completa :app_name y cualquier archivo subido será completamente reemplazado por lo que hay en el archivo de copia de seguridad. ', 'backups_logged_out' => 'Todos los usuarios existentes, incluido usted, se cerrarán una vez que la restauración haya finalizado.', 'backups_large' => 'Las copias de seguridad muy grandes pueden agotarse en el intento de restauración y todavía pueden necesitar ser ejecutadas a través de la línea de comandos. ', 'barcode_settings' => 'Configuración del Código de Barras', @@ -49,7 +49,7 @@ return [ 'default_eula_text' => 'Licencia Predeterminada', 'default_language' => 'Lenguaje Predeterminado', 'default_eula_help_text' => 'También puedes asociar licencias personalizadas a categorías de activos específicas.', - 'acceptance_note' => 'Add a note for your decision (Optional)', + 'acceptance_note' => 'Añada una nota para su decisión (opcional)', 'display_asset_name' => 'Mostrar Nombre del Equipo', 'display_checkout_date' => 'Mostrar fecha de Salida', 'display_eol' => 'Mostrar Fin de Vida en la vista de tabla', @@ -89,7 +89,7 @@ return [ 'ldap_settings' => 'Configuración LDAP', 'ldap_client_tls_cert_help' => 'El certificado TLS lateral del cliente y la clave para las conexiones LDAP normalmente sólo son útiles en las configuraciones del espacio de trabajo de Google con "Secure LDAP". Ambas son requeridas.', 'ldap_location' => 'Ubicación LDAP', -'ldap_location_help' => 'The Ldap Location field should be used if an OU is not being used in the Base Bind DN. Leave this blank if an OU search is being used.', +'ldap_location_help' => 'El campo Location (ubicación) de Ldap debe utilizarse si una OU no está siendo utilizada en el Base Bind DN (DN del enlace base). Deje este espacio en blanco si se utiliza una búsqueda OU.', 'ldap_login_test_help' => 'Introduce un usuario y contraseña LDAP válidos desde la base DN que especificaste antes para probar si tu inicio de sesión LDAP está configurado correctamente. DEBES GUARDAR TUS CONFIGURACIONES LDAP ACTUALIZADAS PRIMERO.', 'ldap_login_sync_help' => 'Esto solo prueba que LDAP puede sincronizarse correctamente. Si tu solicitud de Autenticación LDAP no es correcta, los usuarios no podrían iniciar sesión. DEBES GUARDAR TUS CONFIGURACIONES LDAP ACTUALIZADAS PRIMERO.', 'ldap_manager' => 'Gestor LDAP', @@ -116,7 +116,7 @@ return [ 'ldap_auth_filter_query' => 'Solicitud de Autenticació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 tu 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 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_emp_num' => 'Número de Empleado LDAP', 'ldap_email' => 'Correo electrónico LDAP', 'ldap_test' => 'Probar LDAP', @@ -352,7 +352,7 @@ return [ 'label2_fields_help' => 'Los campos pueden ser agregados, eliminados y reordenados en la columna izquierda. Para cada campo, múltiples opciones para Etiqueta y DataSource pueden ser agregadas, eliminadas y reordenadas en la columna derecha.', 'help_asterisk_bold' => 'Texto introducido como **texto** se mostrará como negrita', 'help_blank_to_use' => 'Deje en blanco para usar el valor de :setting_name', - 'help_default_will_use' => ':default will use the value from :setting_name.
    Note that the value of the barcodes must comply with the respective barcode spec in order to be successfully generated. Please see the documentation for more details. ', + 'help_default_will_use' => ':default usará el valor de :setting_name.
    Tenga en cuenta que el valor de los códigos de barra debe estar en cumplimiento con la especificación respectiva para que sean generados exitosamente. Por favor lea la documentación para más detalles. ', 'default' => 'Por defecto', 'none' => 'Ninguna', 'google_callback_help' => 'Esto debería introducirse como la URL de devolución de llamada en la configuración de la aplicación de Google OAuth en tu organización's consola de desarrollador de Google .', diff --git a/resources/lang/es-VE/admin/users/message.php b/resources/lang/es-VE/admin/users/message.php index abbb54d742..34a6fb1501 100644 --- a/resources/lang/es-VE/admin/users/message.php +++ b/resources/lang/es-VE/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Hubo un problema actualizando al usuario. Por favor, inténtalo de nuevo.', 'delete' => 'Hubo un problema borrando el usuario. Por favor, inténtalo de nuevo.', 'delete_has_assets' => 'Este usuario tiene elementos asignados y no pudo ser borrado.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Hubo un problema des-suspendiendo al usuario. Por favor inténtelo de nuevo.', 'import' => 'Hubo un problema importando usuarios. Por favor inténtelo de nuevo.', 'asset_already_accepted' => 'Este activo ya ha sido aceptado.', 'accept_or_decline' => 'Debes aceptar o rechazar este activo.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'El activo que intentaste aceptar no fue asignado a ti.', '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: ', diff --git a/resources/lang/es-VE/general.php b/resources/lang/es-VE/general.php index 4f8c1ff934..ea4c1f6b04 100644 --- a/resources/lang/es-VE/general.php +++ b/resources/lang/es-VE/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Reporte de Actividad', 'address' => 'Dirección', 'admin' => 'Admin', + 'admin_tooltip' => 'Este usuario tiene privilegios de superadministrador', + 'superuser' => 'Superusuario', + 'superuser_tooltip' => 'Este usuario es superadministrador', 'administrator' => 'Administrador', 'add_seats' => 'Puestos añadidos', 'age' => "Edad", @@ -202,8 +205,8 @@ return [ 'new_password' => 'Nueva contraseña', 'next' => 'Siguiente', 'next_audit_date' => 'Próxima fecha de auditoría', - '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' => 'Si utiliza auditoría en su organización, esto normalmente se calcula automáticamente en función de la última fecha de auditoría del activo y la frecuencia de auditoría (en Configuración de administración > Alertas) y puede dejarlo en blanco. Puede establecer manualmente esta fecha aquí si lo necesita, pero debe ser posterior a la última fecha de auditoría. ', + 'audit_images_help' => 'Puede encontrar imágenes de auditoría en la pestaña Historial del activo.', 'no_email' => 'No hay dirección de correo electrónico asociada a este usuario', 'last_audit' => 'Última auditoría', 'new' => '¡nuevo!', @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Activos solicitados', 'requested_assets_menu' => 'Activos solicitados', 'request_canceled' => 'Solicitud Cancelada', + 'request_item' => 'Solicitar este elemento', + 'external_link_tooltip' => 'Enlace externo a', 'save' => 'Guardar', 'select_var' => 'Seleccionar :thing... ', // this will eventually replace all of our other selects 'select' => 'Seleccionar', @@ -297,7 +302,7 @@ return [ 'user' => 'Usuario', 'accepted' => 'aceptado', 'declined' => 'rechazado', - 'declined_note' => 'Declined Notes', + 'declined_note' => 'Notas de rechazo', 'unassigned' => 'Sin asignar', 'unaccepted_asset_report' => 'Activos no aceptados', 'users' => 'Usuarios', @@ -317,8 +322,8 @@ return [ 'login_enabled' => 'Inicio de sesión activado', 'audit_due' => 'Vence la auditoría', 'audit_due_days' => 'Activos vencidos para auditoría dentro de :days Día|Activos vencidos para auditoría dentro de :days Días', - 'checkin_due' => 'Vence por Checkin', - 'checkin_overdue' => 'Atrasado para Checkin', + 'checkin_due' => 'Devoluciones cerca a vencerse', + 'checkin_overdue' => 'Atrasado por devolverse', 'checkin_due_days' => 'Activos vencidos por cheque dentro de :days día|Activos vencidos por cheque dentro de :days días', 'audit_overdue' => 'Atrasado para la auditoría', 'accept' => 'Aceptar :asset', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Nombre del Accesorio:', 'clone_item' => 'Clonar objeto', 'checkout_tooltip' => 'Revisa este elemento', - 'checkin_tooltip' => 'Comprobar este elemento en', + 'checkin_tooltip' => 'Devuelva este elemento para que esté disponible para resignar, borrar, etc.', 'checkout_user_tooltip' => 'Revisa este elemento a un usuario', + 'checkin_to_diff_location' => 'Puede optar por registrar este activo en una ubicación distinta a la ubicación predeterminada :default_location, si existe una configurada', 'maintenance_mode' => 'El servicio no está disponible temporalmente para actualizaciones del sistema. Por favor, vuelva más tarde.', 'maintenance_mode_title' => 'Sistema temporalmente no disponible', 'ldap_import' => 'La contraseña del usuario no debe ser administrada por LDAP. (Esto le permite enviar solicitudes de contraseña olvidadas.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Dirección línea 2', 'import_note' => 'Importado usando el importador de csv', ], + 'remove_customfield_association' => 'Elimine este campo del grupo de campos. Esto no eliminará el campo personalizado, solo la asociación de este campo con este grupo de campos.', + 'checked_out_to_fields' => 'Campos sobre quién tiene asignado el elemento', 'percent_complete' => '% completo', 'uploading' => 'Subiendo... ', 'upload_error' => 'Error al cargar el archivo. Por favor, compruebe que no hay filas vacías y que no hay nombres de columna duplicados.', diff --git a/resources/lang/es-VE/table.php b/resources/lang/es-VE/table.php index f59a30b934..f827af5873 100644 --- a/resources/lang/es-VE/table.php +++ b/resources/lang/es-VE/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Acciones', - 'action' => 'Acción', - 'by' => 'Por', - 'item' => 'Artículo', + 'actions' => 'Acciones', + 'action' => 'Acción', + 'by' => 'Por', + 'item' => 'Artículo', + 'no_matching_records' => 'No se encontraron registros que coincidan', ); diff --git a/resources/lang/et-EE/account/general.php b/resources/lang/et-EE/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/et-EE/account/general.php +++ b/resources/lang/et-EE/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/et-EE/admin/hardware/form.php b/resources/lang/et-EE/admin/hardware/form.php index 26e6f3c0c5..e3c9053f6e 100644 --- a/resources/lang/et-EE/admin/hardware/form.php +++ b/resources/lang/et-EE/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Tellimuse number', 'qr' => 'QR kood', 'requestable' => 'Kasutajad võivad seda vahendit taotleda', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Valige oleku tüüp', 'serial' => 'Seerianumber', 'status' => 'Staatus', diff --git a/resources/lang/et-EE/admin/hardware/general.php b/resources/lang/et-EE/admin/hardware/general.php index 7abf29a579..48611ce6b1 100644 --- a/resources/lang/et-EE/admin/hardware/general.php +++ b/resources/lang/et-EE/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Muuda vahendit', 'model_deleted' => 'See vara mudel on kustutatud. Enne vara taastamist peab taastama mudeli.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Taotletav', 'requested' => 'Taotletud', 'not_requestable' => 'Mittetaotletav', diff --git a/resources/lang/et-EE/admin/users/message.php b/resources/lang/et-EE/admin/users/message.php index 35281e4af6..bd33914137 100644 --- a/resources/lang/et-EE/admin/users/message.php +++ b/resources/lang/et-EE/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Kasutaja uuendamisel tekkis probleem. Palun proovi uuesti.', 'delete' => 'Kasutaja kustutamisel tekkis probleem. Palun proovi uuesti.', 'delete_has_assets' => 'Sellel kasutajal on varad määratud ja teda ei saa kustutada.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Kasutaja pole probleemi lahendanud. Palun proovi uuesti.', 'import' => 'Kasutajate importimisel tekkis probleem. Palun proovi uuesti.', 'asset_already_accepted' => 'See vahend on juba vastu võetud.', 'accept_or_decline' => 'Te peate selle vara kas aktsepteerima või loobuma.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Varasemat vara, mille olete proovinud aktsepteerida, ei olnud teie jaoks kontrollitud.', 'ldap_could_not_connect' => 'LDAP-serveriga ei õnnestunud ühendust luua. Palun kontrollige oma LDAP-i serveri konfiguratsiooni LDAP-i konfiguratsioonifailis.
    Viga LDAP serverist:', 'ldap_could_not_bind' => 'LDAP-serverit ei saa siduda. Palun kontrollige oma LDAP-i serveri konfiguratsiooni LDAP-i konfiguratsioonifailis.
    Viga LDAP serverist:', diff --git a/resources/lang/et-EE/general.php b/resources/lang/et-EE/general.php index 90f0939437..5c3f5d9866 100644 --- a/resources/lang/et-EE/general.php +++ b/resources/lang/et-EE/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Tegevuste aruanne', 'address' => 'Aadress', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administraator', 'add_seats' => 'Lisatud istekohad', 'age' => "Vanus", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Taotletavad vahendid', 'requested_assets_menu' => 'Vaadake taotletud vahendeid', 'request_canceled' => 'Taotlus tühistati', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Salvesta', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Vali', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Tarviku nimi:', 'clone_item' => 'Klooni üksus', 'checkout_tooltip' => 'Väljasta see üksus', - 'checkin_tooltip' => 'Tagasta see üksus', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Väljasta üksus kasutajale', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Teenus pole süsteemivärskenduste tõttu ajutiselt saadaval. Tule hiljem tagasi.', 'maintenance_mode_title' => 'Süsteem on ajutiselt kättesaamatu', 'ldap_import' => 'LDAP ei tohiks kasutaja parooli hallata. (See võimaldab teil saata unustatud parooli päringuid)', @@ -418,7 +424,7 @@ return [ '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', - 'start_date' => 'Start Date', + 'start_date' => 'Alguskuupäev', 'end_date' => 'End Date', 'alt_uploaded_image_thumbnail' => 'Uploaded thumbnail', 'placeholder_kit' => 'Select a kit', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% tehtud', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/et-EE/table.php b/resources/lang/et-EE/table.php index 8618018389..dc36c3bdca 100644 --- a/resources/lang/et-EE/table.php +++ b/resources/lang/et-EE/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Tegevused', - 'action' => 'Tegevus', - 'by' => 'Kes', - 'item' => 'Kirje', + 'actions' => 'Tegevused', + 'action' => 'Tegevus', + 'by' => 'Kes', + 'item' => 'Kirje', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/fa-IR/account/general.php b/resources/lang/fa-IR/account/general.php index 2e2e1e7beb..769da8381b 100644 --- a/resources/lang/fa-IR/account/general.php +++ b/resources/lang/fa-IR/account/general.php @@ -11,4 +11,5 @@ return array( 'api_token_expiration_time' => 'توکن‌های API در موارد زیر منقضی می‌شوند:', 'api_reference' => 'لطفاً مرجع API را بررسی کنید نقاط انتهایی API خاص و اسناد API اضافی را پیدا کنید.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/fa-IR/admin/hardware/form.php b/resources/lang/fa-IR/admin/hardware/form.php index 839aaebfe0..a85204fd55 100644 --- a/resources/lang/fa-IR/admin/hardware/form.php +++ b/resources/lang/fa-IR/admin/hardware/form.php @@ -51,6 +51,9 @@ return [ 'qr' => 'کیو آر کد', 'requestable' => 'کاربران ممکن است این دارایی هارا درخواست کنند ', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'انتخاب نوع وضعیت', 'serial' => 'سریال', 'status' => 'وضعیت', diff --git a/resources/lang/fa-IR/admin/hardware/general.php b/resources/lang/fa-IR/admin/hardware/general.php index 8e7204112e..39c33ef8a0 100644 --- a/resources/lang/fa-IR/admin/hardware/general.php +++ b/resources/lang/fa-IR/admin/hardware/general.php @@ -18,8 +18,8 @@ return [ 'edit' => 'ویرایش دارایی', 'model_deleted' => 'این مدل دارایی حذف شده است. قبل از اینکه بتوانید Asset را بازیابی کنید، باید مدل را بازیابی کنید. ', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'در خواست شد', 'requested' => 'درخواست شده', 'not_requestable' => 'غیر قابل درخواست diff --git a/resources/lang/fa-IR/admin/users/message.php b/resources/lang/fa-IR/admin/users/message.php index 851ee7ae67..3e319acc79 100644 --- a/resources/lang/fa-IR/admin/users/message.php +++ b/resources/lang/fa-IR/admin/users/message.php @@ -40,10 +40,16 @@ return array( 'update' => 'اشکال در به روزرسانی کاربر.لطفا دوباره تلاش کنید.', 'delete' => 'اشکال در حذف کاربر.لطفا دوباره تلاش کنید.', 'delete_has_assets' => 'این کاربر دارای مواردی تعیین شده است و نمی تواند حذف شود.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'اشکال در به رفع تعلیق کاربر.لطفا دوباره تلاش کنید.', 'import' => 'اشکال در به وارد کردن کاربران.لطفا دوباره تلاش کنید.', 'asset_already_accepted' => 'دارایی پذیرفته شده است.', 'accept_or_decline' => 'شما باید این دارایی را قبول یا رد کنید.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'دارایی که میخواهید قبول یا رد کنید به شما محول نشده.', 'ldap_could_not_connect' => 'ارتباط با سرور LDAP برقرار نشد.لطفا پیکربندی LDPA سرور را در فایل LDPA config بررسی کنید.
    اشکال از سرور LDPA:', 'ldap_could_not_bind' => 'ارتباط با سرور LDAP برقرار نشد.لطفا پیکربندی LDPA سرور را در فایل LDPA config بررسی کنید.
    اشکال از سرور LDPA:', diff --git a/resources/lang/fa-IR/general.php b/resources/lang/fa-IR/general.php index 3a8d0dee74..58a48fc04b 100644 --- a/resources/lang/fa-IR/general.php +++ b/resources/lang/fa-IR/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'گزارش فعالیت', 'address' => 'آدرس', 'admin' => 'مدیر', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'مدیر', 'add_seats' => 'اضافه شدن صندلی', 'age' => "سن", @@ -266,6 +269,8 @@ return [ 'requested_assets_menu' => 'دارایی های درخواستی ', 'request_canceled' => 'درخواست لغو شد', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'ذخیره کردن', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'انتخاب', @@ -475,10 +480,10 @@ return [ ', 'checkout_tooltip' => 'این مورد را بررسی کنید ', - 'checkin_tooltip' => 'این مورد را بررسی کنید -', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'این مورد را برای یک کاربر بررسی کنید ', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'این سرویس به طور موقت برای به روز رسانی سیستم در دسترس نیست. لطفاً بعداً دوباره بررسی کنید. ', 'maintenance_mode_title' => 'سرویس موقتا در دسترس نیست.', @@ -591,6 +596,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% تکمیل', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/fa-IR/table.php b/resources/lang/fa-IR/table.php index da8c8add04..d1084405f7 100644 --- a/resources/lang/fa-IR/table.php +++ b/resources/lang/fa-IR/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'فعالیت ها', - 'action' => 'فعالیت', - 'by' => 'توسط', - 'item' => 'مورد', + 'actions' => 'فعالیت ها', + 'action' => 'فعالیت', + 'by' => 'توسط', + 'item' => 'مورد', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/fi-FI/account/general.php b/resources/lang/fi-FI/account/general.php index 2453454fc2..24ced92d8b 100644 --- a/resources/lang/fi-FI/account/general.php +++ b/resources/lang/fi-FI/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API-tunnisteet vanhenevat:', 'api_reference' => 'Tarkista API viite löydät erityisiä API päätepisteitä ja muuta API dokumentaatiota.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/fi-FI/admin/hardware/form.php b/resources/lang/fi-FI/admin/hardware/form.php index 6a94bfdbb0..0aaf5a37b7 100644 --- a/resources/lang/fi-FI/admin/hardware/form.php +++ b/resources/lang/fi-FI/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Tilausnumero', 'qr' => 'QR-koodi', 'requestable' => 'Käyttäjät voivat pyytää tätä laitetta', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Valitse tila', 'serial' => 'Sarjanumero', 'status' => 'Tila', diff --git a/resources/lang/fi-FI/admin/hardware/general.php b/resources/lang/fi-FI/admin/hardware/general.php index 19c772756c..1fef856259 100644 --- a/resources/lang/fi-FI/admin/hardware/general.php +++ b/resources/lang/fi-FI/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Oletko varma, että haluat poistaa tämän laitteen?', 'edit' => 'Muokkaa laitetta', 'model_deleted' => 'Laitemalli on poistettu. Voit palauttaa laitteen kun olet ensin palauttanut poistetun laitemallin.', - 'model_invalid' => 'Tämän laitteen malli on virheellinen.', - 'model_invalid_fix' => 'Laitetta tulee muokata tilanteen korjaamiseksi, ennen kuin se yritetään lainata tai palauttaa.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Pyydettävissä', 'requested' => 'Pyydetty', 'not_requestable' => 'Ei pyydettävissä', diff --git a/resources/lang/fi-FI/admin/users/message.php b/resources/lang/fi-FI/admin/users/message.php index 038178943a..2f2001e545 100644 --- a/resources/lang/fi-FI/admin/users/message.php +++ b/resources/lang/fi-FI/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Käyttäjän päivityksessä tapahtui virhe. Yritä uudelleen.', 'delete' => 'Käyttäjän poistamisessa tapahtui virhe. Yritä uudelleen.', 'delete_has_assets' => 'Käyttäjää ei voida poistaa, koska käyttäjälle on luovutettuna nimikkeitä.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Käyttäjän jäädytyksen poistossa tapahtui virhe. Yritä uudelleen.', 'import' => 'Käyttäjien tuonnissa tapahtui virhe, Yritä uudelleen.', 'asset_already_accepted' => 'Tämä laite on jo hyväksytty.', 'accept_or_decline' => 'Sinun on joko hyväksyttävä tai hylättävä tämä laite.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Laitetta jota yritit hyväksyä, ei luovutettu sinulle.', 'ldap_could_not_connect' => 'Yhteyttä LDAP-palvelimeen ei voitu muodostaa. Tarkista LDAP-palvelimen määritys.
    LDAP-palvelimen virhe:', 'ldap_could_not_bind' => 'Yhdistäminen LDAP-palvelimeen ei onnistunut. Tarkista LDAP-palvelimen asetukset.
    LDAP-palvelimen virhe: ', diff --git a/resources/lang/fi-FI/general.php b/resources/lang/fi-FI/general.php index 269261e8c3..2b8e1069ea 100644 --- a/resources/lang/fi-FI/general.php +++ b/resources/lang/fi-FI/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Toimintaraportti', 'address' => 'Osoite', 'admin' => 'Ylläpitäjä', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Järjestelmänvalvoja', 'add_seats' => 'Lisätty', 'age' => "Ikä", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Pyydetyt laitteet', 'requested_assets_menu' => 'Pyydetyt laitteet', 'request_canceled' => 'Pyyntö peruutettu', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Tallenna', 'select_var' => 'Valitse :thing... ', // this will eventually replace all of our other selects 'select' => 'Valitse', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Lisävarusteen Nimi:', 'clone_item' => 'Kloonaa nimike', 'checkout_tooltip' => 'Luovuta tämä kohde', - 'checkin_tooltip' => 'Palauta tämä kohde', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Luovuta tämä kohde käyttäjälle', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Palvelu tilapäisesti poissa käytöstä järjestelmäpäivysyksen vuoksi. Kokeile myöhemmin uudelleen.', 'maintenance_mode_title' => 'Palvelu tilapäisesti poissa käytöstä', 'ldap_import' => 'Käyttäjän salasana ei tule olla LDAP hallittu. (Tämän avulla voit lähettää unohdettu salasanapyyntöjä.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Osoiterivi 2', 'import_note' => 'Tuotu käyttämällä CSV-tuontia', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% valmis', 'uploading' => 'Lähetetään... ', 'upload_error' => 'Virhe tiedostoa lähetettäessä. Tarkista, että tyhjiä rivejä ei ole ja että sarakkeiden nimiä ei ole kopioitu.', diff --git a/resources/lang/fi-FI/table.php b/resources/lang/fi-FI/table.php index 5b07f4713c..d10328b643 100644 --- a/resources/lang/fi-FI/table.php +++ b/resources/lang/fi-FI/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Toiminnot', - 'action' => 'Toiminto', - 'by' => 'Suorittaja', - 'item' => 'Nimike', + 'actions' => 'Toiminnot', + 'action' => 'Toiminto', + 'by' => 'Suorittaja', + 'item' => 'Nimike', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/fil-PH/account/general.php b/resources/lang/fil-PH/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/fil-PH/account/general.php +++ b/resources/lang/fil-PH/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/fil-PH/admin/hardware/form.php b/resources/lang/fil-PH/admin/hardware/form.php index 452901ccd9..853ff073a9 100644 --- a/resources/lang/fil-PH/admin/hardware/form.php +++ b/resources/lang/fil-PH/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Ang Numero ng Order', 'qr' => 'Ang Code ng QR', 'requestable' => 'Ang mga gumagamit ay pwedeng mag-rekwest ng asset na ito', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Pumili ng Tipo ng Katayuan', 'serial' => 'Ang Seryal', 'status' => 'Ang Katayuan', diff --git a/resources/lang/fil-PH/admin/hardware/general.php b/resources/lang/fil-PH/admin/hardware/general.php index 6af252ef26..4114a66619 100644 --- a/resources/lang/fil-PH/admin/hardware/general.php +++ b/resources/lang/fil-PH/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'I-edit ang Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Pwedeng Ma-rekwest', 'requested' => 'Ni-rekwest', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/fil-PH/admin/users/message.php b/resources/lang/fil-PH/admin/users/message.php index 3f64b36c30..2432c53e4a 100644 --- a/resources/lang/fil-PH/admin/users/message.php +++ b/resources/lang/fil-PH/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Mayroong isyu sa pag-update sa user. Mangyaring subukang muli.', 'delete' => 'Mayroong isyu sa pag-delete ng user. Mangyaring subukang muli.', 'delete_has_assets' => 'Ang user na ito any may mga aytem na nai-assign at hindi maaring i-delete.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Mayroong isyu sa pagtanggal ng suspenso sa user. Mangyaring subukang muli.', 'import' => 'Mayroong isyu sa pag-import ng mga user. Mangyaring subukang muli.', 'asset_already_accepted' => 'Ang asset na ito ay tinanggap na.', 'accept_or_decline' => 'Dapat mong tanggapin o kaya tanggihan ang asset na ito.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Ang asset na tinangka mong tanggapin ay hindi nai-check out sa iyo.', 'ldap_could_not_connect' => 'Hindi maka-konekta sa serber ng LDAP. Mangyaring surrin ang iyong konpigurasyon ng serber ng LDAP sa LDAP config file.
    May error mula sa Serber ng LDAP:', 'ldap_could_not_bind' => 'Hindi makapah-bind sa serber ng LDAP. Mangyaring suriin ang iyong konpigurasyon ng serber ng LDAP sa LDAP config file.
    may error mula sa Serber ng LDAP: diff --git a/resources/lang/fil-PH/general.php b/resources/lang/fil-PH/general.php index 48493fbff4..7c576f67d6 100644 --- a/resources/lang/fil-PH/general.php +++ b/resources/lang/fil-PH/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Ang Ulat sa Aktibidad', 'address' => 'Ang Address', 'admin' => 'Ang admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Mga upuang naidagdag', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Ang mga Rekwest ay Nakansela', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'I-save', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Pumili', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Ang Pangalan ng Aksesorya:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% nakompleto na', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/fil-PH/table.php b/resources/lang/fil-PH/table.php index f41bf7b0a2..c854bca296 100644 --- a/resources/lang/fil-PH/table.php +++ b/resources/lang/fil-PH/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Ang mga aksyon', - 'action' => 'Ang aksyon', - 'by' => 'Batay sa', - 'item' => 'Ang Aytem', + 'actions' => 'Ang mga aksyon', + 'action' => 'Ang aksyon', + 'by' => 'Batay sa', + 'item' => 'Ang Aytem', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/fr-FR/account/general.php b/resources/lang/fr-FR/account/general.php index 450408481c..b376ce32bd 100644 --- a/resources/lang/fr-FR/account/general.php +++ b/resources/lang/fr-FR/account/general.php @@ -9,4 +9,5 @@ return array( '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 points de terminaison spécifiques et des informations supplémentaires.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/fr-FR/admin/hardware/form.php b/resources/lang/fr-FR/admin/hardware/form.php index 0e1a9d3e41..2217ebd670 100644 --- a/resources/lang/fr-FR/admin/hardware/form.php +++ b/resources/lang/fr-FR/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Numéro de Commande', 'qr' => 'Code QR', 'requestable' => 'Les utilisateurs·trices peuvent demander cet actif', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Choisissez le type de statut', 'serial' => 'Série ', 'status' => 'Statut', diff --git a/resources/lang/fr-FR/admin/hardware/general.php b/resources/lang/fr-FR/admin/hardware/general.php index 88a5025dd2..b5050b4ddb 100644 --- a/resources/lang/fr-FR/admin/hardware/general.php +++ b/resources/lang/fr-FR/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Êtes-vous sûr·e de vouloir supprimer cet actif ?', 'edit' => 'Editer le Bien', 'model_deleted' => 'Ce modèle d\'actifs a été supprimé. Vous devez restaurer le modèle avant de pouvoir restaurer l\'actif.', - 'model_invalid' => 'Le modèle de cette ressource n\'est pas valide.', - 'model_invalid_fix' => 'La ressource doit être éditée pour corriger cela avant d\'essayer de l\'enregistrer ou de l\'affecter.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Demandable', 'requested' => 'Demandé', 'not_requestable' => 'Non demandable', diff --git a/resources/lang/fr-FR/admin/users/message.php b/resources/lang/fr-FR/admin/users/message.php index c11c0c1924..5bb58a8a61 100644 --- a/resources/lang/fr-FR/admin/users/message.php +++ b/resources/lang/fr-FR/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Un problème a eu lieu pendant la mise à jour de l\'utilisateur. Veuillez essayer à nouveau.', 'delete' => 'Un problème a eu lieu pendant la suppression de l\'utilisateur. Veuillez essayer à nouveau.', 'delete_has_assets' => 'Cet utilisateur a des éléments assignés et n\'a pas pu être supprimé.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Un problème a eu lieu pendant la réhabilitation de l\'utilisateur. Veuillez essayer à nouveau.', 'import' => 'Il y a eu un problème lors de l\'importation des utilisateurs. Veuillez réessayer.', 'asset_already_accepted' => 'Cet actif a déjà été accepté.', 'accept_or_decline' => 'Vous devez accepter ou refuser cet actif.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Le bien que vous avez tenté d\'accepter ne vous avait pas été attribué.', 'ldap_could_not_connect' => 'Impossible de se connecter au serveur LDAP . S\'il vous plaît vérifier la configuration de votre serveur LDAP dans le fichier de configuration LDAP .
    Erreur du serveur LDAP :', 'ldap_could_not_bind' => 'Impossible de se connecter au serveur LDAP . S\'il vous plaît vérifier la configuration de votre serveur LDAP dans le fichier de configuration LDAP .
    Erreur de serveur LDAP : ', diff --git a/resources/lang/fr-FR/general.php b/resources/lang/fr-FR/general.php index 96f5877ee1..a77057924a 100644 --- a/resources/lang/fr-FR/general.php +++ b/resources/lang/fr-FR/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Rapport d\'activité', 'address' => 'Adresse', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrateur·trice', 'add_seats' => 'Places ajoutées', 'age' => "Âge", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Actifs demandés', 'requested_assets_menu' => 'Actifs demandés', 'request_canceled' => 'Demande annulée', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Sauvegarder', 'select_var' => 'Sélectionner :thing... ', // this will eventually replace all of our other selects 'select' => 'Sélectionner', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Nom de l’accessoire :', 'clone_item' => 'Cloner l\'élément', 'checkout_tooltip' => 'Affecter cet élément', - 'checkin_tooltip' => 'Désaffecter cet élément', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Affecter cet élément à un utilisateur', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Le service est temporairement indisponible en raison d\'une mise à jour du système. Veuillez revenir plus tard.', 'maintenance_mode_title' => 'Le système est temporairement indisponible', 'ldap_import' => 'Le mot de passe de l\'utilisateur ne devrait pas être géré par LDAP. (Cela vous permet d\'envoyer des demandes de mot de passe oublié.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Adresse Ligne 2', 'import_note' => 'Importé à l\'aide de l\'importateur CSV', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% terminé', 'uploading' => 'Téléversement... ', 'upload_error' => 'Erreur lors du téléversement du fichier. Veuillez vérifier qu\'il n\'y a pas de lignes vides et qu\'aucun nom de colonne n\'est dupliqué.', diff --git a/resources/lang/fr-FR/table.php b/resources/lang/fr-FR/table.php index eecc764682..e097a0f17a 100644 --- a/resources/lang/fr-FR/table.php +++ b/resources/lang/fr-FR/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Actions', - 'action' => 'Action', - 'by' => 'Par', - 'item' => 'Item', + 'actions' => 'Actions', + 'action' => 'Action', + 'by' => 'Par', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/ga-IE/account/general.php b/resources/lang/ga-IE/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/ga-IE/account/general.php +++ b/resources/lang/ga-IE/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/ga-IE/admin/hardware/form.php b/resources/lang/ga-IE/admin/hardware/form.php index 66457cdce5..273960a8e7 100644 --- a/resources/lang/ga-IE/admin/hardware/form.php +++ b/resources/lang/ga-IE/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Uimhir ordú', 'qr' => 'Cód QR', 'requestable' => 'Féadfaidh úsáideoirí an tsócmhainn seo a iarraidh', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Roghnaigh Cineál Stádas', 'serial' => 'Sraithuimhir', 'status' => 'Stádas', diff --git a/resources/lang/ga-IE/admin/hardware/general.php b/resources/lang/ga-IE/admin/hardware/general.php index 91aec28adf..75b79d3f1f 100644 --- a/resources/lang/ga-IE/admin/hardware/general.php +++ b/resources/lang/ga-IE/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Athraigh Sócmhainn', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Inrianaithe', 'requested' => 'Iarrtar', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/ga-IE/admin/users/message.php b/resources/lang/ga-IE/admin/users/message.php index d8f94b0694..9d26d415f4 100644 --- a/resources/lang/ga-IE/admin/users/message.php +++ b/resources/lang/ga-IE/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Bhí ceist ann ag nuashonrú an úsáideora. Arís, le d\'thoil.', 'delete' => 'Bhí ceist ann a scriosadh an t-úsáideoir. Arís, le d\'thoil.', 'delete_has_assets' => 'Tá míreanna sannta ag an úsáideoir seo agus ní fhéadfaí iad a scriosadh.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Bhí ceist ann gan an t-úsáideoir a chaitheamh. Arís, le d\'thoil.', 'import' => 'Bhí ceist ann a bhí ag iompórtáil úsáideoirí. Arís, le d\'thoil.', 'asset_already_accepted' => 'Glactar leis an tsócmhainn seo cheana féin.', 'accept_or_decline' => 'Ní mór duit an tsócmhainn seo a ghlacadh nó a laghdú.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Níor seiceáladh an tsócmhainn a d\'iarr tú glacadh leis.', 'ldap_could_not_connect' => 'Níorbh fhéidir ceangal leis an bhfreastalaí LDAP. Seiceáil do chumraíocht an fhreastalaí LDAP sa chomhad cumraíochta LDAP.
    Error ó Freastalaí LDAP:', 'ldap_could_not_bind' => 'Níorbh fhéidir ceangal leis an bhfreastalaí LDAP. Seiceáil do chumraíocht an fhreastalaí LDAP sa chomhad cumraíochta LDAP.
    Error ó Freastalaí LDAP:', diff --git a/resources/lang/ga-IE/general.php b/resources/lang/ga-IE/general.php index 9567febec2..151a3390b6 100644 --- a/resources/lang/ga-IE/general.php +++ b/resources/lang/ga-IE/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Tuarascáil Ghníomhaíochta', 'address' => 'Seoladh', 'admin' => 'Riarachán', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Suíocháin breise', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Iarratas Ar Ceal', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Sábháil', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Roghnaigh', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Ainm Cúlpháirtí:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% comhlánaigh', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/ga-IE/table.php b/resources/lang/ga-IE/table.php index 4a40275971..0ac427cc26 100644 --- a/resources/lang/ga-IE/table.php +++ b/resources/lang/ga-IE/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Gníomhartha', - 'action' => 'Gníomh', - 'by' => 'De réir', - 'item' => 'Mír', + 'actions' => 'Gníomhartha', + 'action' => 'Gníomh', + 'by' => 'De réir', + 'item' => 'Mír', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/he-IL/account/general.php b/resources/lang/he-IL/account/general.php index 71d48b14b5..fa7c3cca3c 100644 --- a/resources/lang/he-IL/account/general.php +++ b/resources/lang/he-IL/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/he-IL/admin/hardware/form.php b/resources/lang/he-IL/admin/hardware/form.php index 730ab06ce0..7fbb699fdd 100644 --- a/resources/lang/he-IL/admin/hardware/form.php +++ b/resources/lang/he-IL/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'מספר הזמנה', 'qr' => 'קוד QR', 'requestable' => 'משתמשים רשאים לבקש את הנכס', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'בחר סוג סטטוס', 'serial' => 'סידורי', 'status' => 'סטָטוּס', diff --git a/resources/lang/he-IL/admin/hardware/general.php b/resources/lang/he-IL/admin/hardware/general.php index 54ed489735..e291f50a96 100644 --- a/resources/lang/he-IL/admin/hardware/general.php +++ b/resources/lang/he-IL/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'ערוך נכס', 'model_deleted' => 'המודל של הנכס נמחק. יש לשחזר את המודל לפני שניתן לשחזר את הנכס.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'ניתן לבקש', 'requested' => 'מבוקש', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/he-IL/admin/users/message.php b/resources/lang/he-IL/admin/users/message.php index 60b38f3ffb..5fe817ac78 100644 --- a/resources/lang/he-IL/admin/users/message.php +++ b/resources/lang/he-IL/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'היתה בעיה בעדכון המשתמש. בבקשה נסה שוב.', 'delete' => 'היתה בעיה במחיקת המשתמש. בבקשה נסה שוב.', 'delete_has_assets' => 'למשתמש זה יש פריטים שהוקצו ולא ניתן למחוק אותם.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'היתה בעיה בהתעלמות מהמשתמש. בבקשה נסה שוב.', 'import' => 'היתה בעיה בייבוא ​​משתמשים. בבקשה נסה שוב.', 'asset_already_accepted' => 'הנכס כבר התקבל.', 'accept_or_decline' => 'עליך לקבל או לדחות את הנכס.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'הנכס שניסית לקבל לא נבדק לך.', 'ldap_could_not_connect' => 'לא ניתן להתחבר לשרת LDAP. בדוק את תצורת שרת LDAP בקובץ תצורת LDAP.
    שגיאה משרת LDAP:', 'ldap_could_not_bind' => 'לא ניתן היה להתחבר לשרת LDAP. בדוק את תצורת שרת LDAP בקובץ תצורת LDAP.
    שגיאה משרת LDAP:', diff --git a/resources/lang/he-IL/general.php b/resources/lang/he-IL/general.php index 0ae6540dca..69b55a6c82 100644 --- a/resources/lang/he-IL/general.php +++ b/resources/lang/he-IL/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'דוח פעילות', 'address' => 'כתובת', 'admin' => 'מנהל מערכת', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'אדמיניסטרטור', 'add_seats' => 'מושבים נוספים', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'נכסים שנדרשו', 'requested_assets_menu' => 'נכסים שנדרשו', 'request_canceled' => 'הבקשה בוטלה', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'להציל', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'בחר', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'שם אביזר:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'העבר פריט זה', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'שורת כתובת 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% לְהַשְׁלִים', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/he-IL/table.php b/resources/lang/he-IL/table.php index 333594d698..a74a6afd62 100644 --- a/resources/lang/he-IL/table.php +++ b/resources/lang/he-IL/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'פעולות', - 'action' => 'פעולה', - 'by' => 'על ידי', - 'item' => 'פריט', + 'actions' => 'פעולות', + 'action' => 'פעולה', + 'by' => 'על ידי', + 'item' => 'פריט', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/hr-HR/account/general.php b/resources/lang/hr-HR/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/hr-HR/account/general.php +++ b/resources/lang/hr-HR/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/hr-HR/admin/hardware/form.php b/resources/lang/hr-HR/admin/hardware/form.php index 14afd532fa..cc1645d358 100644 --- a/resources/lang/hr-HR/admin/hardware/form.php +++ b/resources/lang/hr-HR/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Broj narudžbe', 'qr' => 'QR kod', 'requestable' => 'Korisnici mogu zatražiti ovaj materijal', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Odaberite vrstu statusa', 'serial' => 'Serijski', 'status' => 'Status', diff --git a/resources/lang/hr-HR/admin/hardware/general.php b/resources/lang/hr-HR/admin/hardware/general.php index a566a07e40..e73faa7d6a 100644 --- a/resources/lang/hr-HR/admin/hardware/general.php +++ b/resources/lang/hr-HR/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Uređivanje imovine', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Traženi', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/hr-HR/admin/users/message.php b/resources/lang/hr-HR/admin/users/message.php index b59c993a6f..5a4f3dd3ee 100644 --- a/resources/lang/hr-HR/admin/users/message.php +++ b/resources/lang/hr-HR/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Došlo je do problema s ažuriranjem korisnika. Molim te pokušaj ponovno.', 'delete' => 'Došlo je do problema s brisanjem korisnika. Molim te pokušaj ponovno.', 'delete_has_assets' => 'Ovaj korisnik ima stavke dodijeljene i nije ih moguće izbrisati.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Došlo je do problema s obustavom korisnika. Molim te pokušaj ponovno.', 'import' => 'Došlo je do problema s uvozom korisnika. Molim te pokušaj ponovno.', 'asset_already_accepted' => 'Ova je imovina već prihvaćena.', 'accept_or_decline' => 'Morate prihvatiti ili odbiti ovaj materijal.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Predmete koje ste pokušali prihvatiti nisu provjereni.', 'ldap_could_not_connect' => 'Povezivanje s LDAP poslužiteljem nije uspjelo. Provjerite konfiguraciju LDAP poslužitelja u LDAP konfiguracijskoj datoteci.
    Preku s LDAP poslužitelja:', 'ldap_could_not_bind' => 'Nije moguće povezati se s LDAP poslužiteljem. Provjerite konfiguraciju LDAP poslužitelja u LDAP konfiguracijskoj datoteci.
    Preku s LDAP poslužitelja:', diff --git a/resources/lang/hr-HR/general.php b/resources/lang/hr-HR/general.php index fd69c201c1..99c4686314 100644 --- a/resources/lang/hr-HR/general.php +++ b/resources/lang/hr-HR/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Izvješće o aktivnostima', 'address' => 'Adresa', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Dodana mjesta', 'age' => "Godine", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Zahtjev je otkazan', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Uštedjeti', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Izaberi', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Naziv dodatne opreme:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% potpun', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/hr-HR/table.php b/resources/lang/hr-HR/table.php index cdff01e3ab..dbee892ef3 100644 --- a/resources/lang/hr-HR/table.php +++ b/resources/lang/hr-HR/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'akcije', - 'action' => 'Akcijski', - 'by' => 'Po', - 'item' => 'Artikal', + 'actions' => 'akcije', + 'action' => 'Akcijski', + 'by' => 'Po', + 'item' => 'Artikal', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/hu-HU/account/general.php b/resources/lang/hu-HU/account/general.php index 6401c97f4b..04f85c803b 100644 --- a/resources/lang/hu-HU/account/general.php +++ b/resources/lang/hu-HU/account/general.php @@ -7,4 +7,5 @@ return array( 'api_base_url_endpoint' => '/<endpoint>', 'api_token_expiration_time' => 'Az API tokenek lejárati ideje:', 'api_reference' => 'Kérjük, ellenőrizze a API referenciákat ahol konkrét API végpontokat és további API dokumentációt talál.', + 'profile_updated' => 'A fiók frissítése sikeres', ); diff --git a/resources/lang/hu-HU/admin/hardware/form.php b/resources/lang/hu-HU/admin/hardware/form.php index 0aaa6a96b2..8364872739 100644 --- a/resources/lang/hu-HU/admin/hardware/form.php +++ b/resources/lang/hu-HU/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Számla sorszáma', 'qr' => 'QR Code', 'requestable' => 'A felhasználók kérhetik ezt az eszközt', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Állapot típusának kiválasztása', 'serial' => 'Sorozatszám', 'status' => 'Státusz', diff --git a/resources/lang/hu-HU/admin/hardware/general.php b/resources/lang/hu-HU/admin/hardware/general.php index 61234e3f1c..280459f40c 100644 --- a/resources/lang/hu-HU/admin/hardware/general.php +++ b/resources/lang/hu-HU/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Biztosan törölni akarja ezt az eszközt?', 'edit' => 'Eszköz módosítása', 'model_deleted' => 'Ennek az eszköznek a modellje törölve lett. Elösszőr a modellt vissza kell állítani, utánna lehet csak az eszközt visszaállítani.', - 'model_invalid' => 'Ennek az eszköznek a modellje érvénytelen.', - 'model_invalid_fix' => 'Az eszközt módosítani kell a javításához, mielőtt megkísérli a kiadását vagy visszavételét.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'lehívási', 'requested' => 'Kérve', 'not_requestable' => 'Nem kérhető', diff --git a/resources/lang/hu-HU/admin/users/message.php b/resources/lang/hu-HU/admin/users/message.php index e76849a7c3..f11845df05 100644 --- a/resources/lang/hu-HU/admin/users/message.php +++ b/resources/lang/hu-HU/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Hiba történt a felhasználó frissítésében. Kérlek próbáld újra.', 'delete' => 'A felhasználó törölte a problémát. Kérlek próbáld újra.', 'delete_has_assets' => 'Ez a felhasználó rendelkezik elemekkel, amelyeket nem lehet törölni.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'A felhasználó felfüggesztette a problémát. Kérlek próbáld újra.', 'import' => 'Hiba történt a felhasználók importálása során. Kérlek próbáld újra.', 'asset_already_accepted' => 'Ezt az eszközt már elfogadták.', 'accept_or_decline' => 'El kell fogadnia vagy el kell utasítania ezt az eszközt.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Az általad megpróbált eszköz nem lett kiegyenlítve.', 'ldap_could_not_connect' => 'Nem sikerült csatlakozni az LDAP kiszolgálóhoz. Ellenőrizze az LDAP kiszolgáló konfigurációját az LDAP konfigurációs fájlban.
    Az LDAP kiszolgáló hibája:', 'ldap_could_not_bind' => 'Nem sikerült kötni az LDAP kiszolgálóhoz. Ellenőrizze az LDAP kiszolgáló konfigurációját az LDAP konfigurációs fájlban.
    Az LDAP kiszolgáló hibája:', diff --git a/resources/lang/hu-HU/general.php b/resources/lang/hu-HU/general.php index 5532119686..0bd083cf2a 100644 --- a/resources/lang/hu-HU/general.php +++ b/resources/lang/hu-HU/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Tevékenység riport', 'address' => 'Cím', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Adminisztrátor', 'add_seats' => 'Hozzáadott ülések', 'age' => "Életkor", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Kért eszközök', 'requested_assets_menu' => 'Kért eszközök', 'request_canceled' => 'A kérelem törölve', + 'request_item' => 'Igénylés', + 'external_link_tooltip' => 'Külső hivatkozás :', 'save' => 'Mentés', 'select_var' => 'Kiválasztás :thing... ', // this will eventually replace all of our other selects 'select' => 'Választ', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Tartozék neve:', 'clone_item' => 'Cikk klónozása', 'checkout_tooltip' => 'Adja ki ezt a cikket', - 'checkin_tooltip' => 'Vegye vissza ezt a cikket', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Adja ki ezt a cikket egy felhasználónak', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'A szolgáltatás átmenetileg nem érhető el a rendszerfrissítések miatt. Kérjük, nézzen vissza később.', 'maintenance_mode_title' => 'A rendszer átmenetileg nem elérhető', 'ldap_import' => 'A felhasználói jelszót nem az LDAP-nak kell kezelnie. (Ez lehetővé teszi, hogy elfelejtett jelszóra vonatkozó kéréseket küldjön.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Cím sor 2', 'import_note' => 'A CSV importálóval betöltve', ], + 'remove_customfield_association' => 'Mező eltávolítása a mezőkészletből. Ez nem fogja törölni az egyedi mezőt, csak ennek a mezőt veszi ki a mezőkészletből.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% elkészült', 'uploading' => 'Feltöltés...', 'upload_error' => 'Hiba a fájl feltöltése során. Kérem, ellenőrizze, hogy nincsenek üres sorok és nincsenek oszlop fejléc nevek duplikálva.', diff --git a/resources/lang/hu-HU/table.php b/resources/lang/hu-HU/table.php index 722b0a119e..737512d0e8 100644 --- a/resources/lang/hu-HU/table.php +++ b/resources/lang/hu-HU/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Lehetőség', - 'action' => 'Művelet', - 'by' => 'Által', - 'item' => 'Tétel', + 'actions' => 'Lehetőség', + 'action' => 'Művelet', + 'by' => 'Által', + 'item' => 'Tétel', + 'no_matching_records' => 'Nincs megfelelő találat', ); diff --git a/resources/lang/id-ID/account/general.php b/resources/lang/id-ID/account/general.php index 349e2a7d33..93d0c97736 100644 --- a/resources/lang/id-ID/account/general.php +++ b/resources/lang/id-ID/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'Token API disetel kedaluwarsa dalam:', 'api_reference' => 'Silakan periksa Referensi API untuk menemukan titik akhir API tertentu dan dokumentasi API tambahan.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/id-ID/admin/hardware/form.php b/resources/lang/id-ID/admin/hardware/form.php index 769cbf90f2..c6f76f0527 100644 --- a/resources/lang/id-ID/admin/hardware/form.php +++ b/resources/lang/id-ID/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Nomor Pemesanan', 'qr' => 'Kode QR', 'requestable' => 'Pengguna dapat meminta aset ini', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Memilih Tipe Status', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/lang/id-ID/admin/hardware/general.php b/resources/lang/id-ID/admin/hardware/general.php index ec654f9995..57d8b706db 100644 --- a/resources/lang/id-ID/admin/hardware/general.php +++ b/resources/lang/id-ID/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Sunting Aset', 'model_deleted' => 'Model Aset ini telah dihapus. Anda harus memulihkan model aset tersebut sebelum Anda dapat memulihkan Aset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Dapat diminta', 'requested' => 'Telah diminta', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/id-ID/admin/users/message.php b/resources/lang/id-ID/admin/users/message.php index deea2651a1..fa87a83c3e 100644 --- a/resources/lang/id-ID/admin/users/message.php +++ b/resources/lang/id-ID/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Terdapat masalah ketika memperbarui pengguna. Silahkan coba kembali.', 'delete' => 'Terdapat masalah ketika menghapus pengguna. Silahkan coba kembali.', 'delete_has_assets' => 'Pengguna ini memiliki item yang ditugaskan dan tidak dapat dihapus.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Terdapat masalah ketika menangguhkan pengguna. Silahkan coba kembali.', 'import' => 'Terdapat masalah ketika mengimpor pengguna. Silahkan coba kembali.', 'asset_already_accepted' => 'Aset ini telah di terima.', 'accept_or_decline' => 'Anda harus menolak atau menerima aset ini.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Aset yang akan di berikan ke anda, belum di setujui.', 'ldap_could_not_connect' => 'Gagal koneksi ke server LDAP. Silahkan periksa konfigurasi server LDAP di berkas config.
    Eror dari server LDAP:', 'ldap_could_not_bind' => 'Server LDAP gagal mengikat. Silahkan cek kembali konfigurasi server LDAP di berkas config.
    Eror dari server LDAP: ', diff --git a/resources/lang/id-ID/general.php b/resources/lang/id-ID/general.php index 6b76add004..36b1906d23 100644 --- a/resources/lang/id-ID/general.php +++ b/resources/lang/id-ID/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Laporan kegiatan', 'address' => 'Alamat', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Tambahan hak', 'age' => "Usia", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Aset yang Diminta', 'requested_assets_menu' => 'Aset yang Diminta', 'request_canceled' => 'Permintaan Dibatalkan', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Simpan', 'select_var' => 'Pilih :thing... ', // this will eventually replace all of our other selects 'select' => 'Pilih', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Nama Aksesoris:', 'clone_item' => 'Duplikasi', 'checkout_tooltip' => 'Keluar-kan barang ini', - 'checkin_tooltip' => 'Kembali-kan barang ini', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Keluar-kan barang ini untuk pengguna', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Layanan sedang dalam proses pembaharuan. Mohon kunjungi di lain waktu.', 'maintenance_mode_title' => 'Sistem tidak dapat diakses untuk sementara waktu', 'ldap_import' => 'Sandi pengguna tidak seharusnya di kelola oleh LDAP. (Hal tersebut agar dapat mengirimkan permintaan perubahan sandi.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Baris Alamat 2', 'import_note' => 'Telah di impor menggunakan csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% lengkap', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/id-ID/table.php b/resources/lang/id-ID/table.php index c3c135e756..c37a396506 100644 --- a/resources/lang/id-ID/table.php +++ b/resources/lang/id-ID/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Tindakan', - 'action' => 'Tindakan', - 'by' => 'Oleh', - 'item' => 'Item', + 'actions' => 'Tindakan', + 'action' => 'Tindakan', + 'by' => 'Oleh', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/is-IS/account/general.php b/resources/lang/is-IS/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/is-IS/account/general.php +++ b/resources/lang/is-IS/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/is-IS/admin/hardware/form.php b/resources/lang/is-IS/admin/hardware/form.php index ed73391bc3..bb1efa32e1 100644 --- a/resources/lang/is-IS/admin/hardware/form.php +++ b/resources/lang/is-IS/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Pöntunarnúmer', 'qr' => 'QR kóði', 'requestable' => 'Notendur mega biðja um þessa eign', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Veldu stöðu', 'serial' => 'Raðnúmer', 'status' => 'Staða', diff --git a/resources/lang/is-IS/admin/hardware/general.php b/resources/lang/is-IS/admin/hardware/general.php index ec3ef0344d..22b31bf2d5 100644 --- a/resources/lang/is-IS/admin/hardware/general.php +++ b/resources/lang/is-IS/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Breyta eign', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Lausar', 'requested' => 'óskað eftir', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/is-IS/admin/users/message.php b/resources/lang/is-IS/admin/users/message.php index cca327f4bd..fa2ffd8f0e 100644 --- a/resources/lang/is-IS/admin/users/message.php +++ b/resources/lang/is-IS/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'There was an issue updating the user. Please try again.', 'delete' => 'There was an issue deleting the user. Please try again.', 'delete_has_assets' => 'This user has items assigned and could not be deleted.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', 'import' => 'There was an issue importing users. Please try again.', 'asset_already_accepted' => 'Þessi eign hefur þegar verið samþykkt.', 'accept_or_decline' => 'Þú verður annað hvort að samþykkja eða hafna þessari eign.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Eigninni sem þú reyndir að samþykkja var ekki ráðstafað til þín.', 'ldap_could_not_connect' => 'Could not connect to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server:', 'ldap_could_not_bind' => 'Could not bind to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server: ', diff --git a/resources/lang/is-IS/general.php b/resources/lang/is-IS/general.php index 8447b8863e..58b75c9bcd 100644 --- a/resources/lang/is-IS/general.php +++ b/resources/lang/is-IS/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Aðgerðaskýrsla', 'address' => 'Heimilisfang', 'admin' => 'Kerfisstjóri', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Kerfisstjóri', 'add_seats' => 'Viðbætt leyfi', 'age' => "Aldur", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Beiðni endurkölluð', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Vista', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Veldu', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Accessory Name:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% lokið', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/is-IS/table.php b/resources/lang/is-IS/table.php index 38ad9911a0..b2d460ebc4 100644 --- a/resources/lang/is-IS/table.php +++ b/resources/lang/is-IS/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Aðgerðir', - 'action' => 'Aðgerð', - 'by' => 'Eftir', - 'item' => 'Atriði', + 'actions' => 'Aðgerðir', + 'action' => 'Aðgerð', + 'by' => 'Eftir', + 'item' => 'Atriði', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/it-IT/account/general.php b/resources/lang/it-IT/account/general.php index 34da13f97a..a38fdf085e 100644 --- a/resources/lang/it-IT/account/general.php +++ b/resources/lang/it-IT/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'I token API scadranno fra:', 'api_reference' => 'Controlla la Guida di Riferimento delle API per trovare gli endpoint API specifici e documentazione aggiuntiva.', + 'profile_updated' => 'Account aggiornato con successo', ); diff --git a/resources/lang/it-IT/admin/hardware/form.php b/resources/lang/it-IT/admin/hardware/form.php index 2e2c2f6bdb..4a8b774a0c 100644 --- a/resources/lang/it-IT/admin/hardware/form.php +++ b/resources/lang/it-IT/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Numero Ordine', 'qr' => 'QR Code', 'requestable' => 'Gli utenti possono richiedere questo bene', + 'redirect_to_all' => 'Ritorna a tutti i :type', + 'redirect_to_type' => 'Vai a :type', + 'redirect_to_checked_out_to' => 'Vai agli assegnati', 'select_statustype' => 'Selezionare il tipo di stato', 'serial' => 'Seriale', 'status' => 'Stato', diff --git a/resources/lang/it-IT/admin/hardware/general.php b/resources/lang/it-IT/admin/hardware/general.php index f1468c139b..e0f5220953 100644 --- a/resources/lang/it-IT/admin/hardware/general.php +++ b/resources/lang/it-IT/admin/hardware/general.php @@ -16,7 +16,7 @@ return [ 'edit' => 'Modifica Asset', 'model_deleted' => 'Questo modello di asset è stato eliminato. Devi ripristinare il modello prima di poter ripristinare il bene.', 'model_invalid' => 'Il modello di questo bene non è valido.', - 'model_invalid_fix' => 'Il bene deve essere modificato per correggerlo prima di farne il check in o il check out.', + 'model_invalid_fix' => 'Il bene deve avere un modello valido prima di poterne fare l\'assegnazioni, check-in o controlli.', 'requestable' => 'Disponibile', 'requested' => 'richiesto', 'not_requestable' => 'Non Richiedibili', diff --git a/resources/lang/it-IT/admin/hardware/message.php b/resources/lang/it-IT/admin/hardware/message.php index a3f6517b42..2c22d66c1b 100644 --- a/resources/lang/it-IT/admin/hardware/message.php +++ b/resources/lang/it-IT/admin/hardware/message.php @@ -5,11 +5,11 @@ return [ 'undeployable' => 'Attenzione: Questo asset è stato marcato come non distribuibile. Se lo stato è cambiato,aggiorna lo stato dell\'asset.', 'does_not_exist' => 'Questo Asset non esiste.', - 'does_not_exist_var'=> 'Asset with tag :asset_tag not found.', - 'no_tag' => 'No asset tag provided.', + 'does_not_exist_var'=> 'Bene con tag :asset_tag non trovato.', + 'no_tag' => 'Nessun tag del Bene è stato fornito.', 'does_not_exist_or_not_requestable' => 'Questo bene non esiste o non è disponibile.', 'assoc_users' => 'Questo asset è stato assegnato ad un Utente e non può essere cancellato. Per favore Riassegnalo in magazzino,e dopo riprova a cancellarlo.', - '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' => 'La prossima data d\'inventario di questo Bene (:next_audit_date) precede l\'ultima data d\'inventario (:last_audit_date). Si prega di aggiornare la prossima data d\'inventario.', 'create' => [ 'error' => 'L\'asset non è stato creato, riprova per favore. :(', @@ -34,7 +34,7 @@ return [ ], 'audit' => [ - 'error' => 'Asset audit unsuccessful: :error ', + 'error' => 'Inventario del Bene non riuscito: :error ', 'success' => 'L\'audit di risorse si è registrato con successo.', ], diff --git a/resources/lang/it-IT/admin/users/message.php b/resources/lang/it-IT/admin/users/message.php index 01815d31da..654d82fdf0 100644 --- a/resources/lang/it-IT/admin/users/message.php +++ b/resources/lang/it-IT/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'C\'è stato un problema durante l\'aggiornamento dell\'utente. Per favore riprova.', 'delete' => 'C\'è stato un problema durante la cancellazione dell\'utente. Riprova per favore.', 'delete_has_assets' => 'Questo utente dispone di elementi assegnati e non può essere eliminato.', + 'delete_has_assets_var' => 'Questo utente ha ancora un Bene assegnato. Prima di procedere, si prega di farlo restituire.|Questo utente ha ancora :count Beni assegnati. Prima di procedere si prega di farglieli restituire.', + 'delete_has_licenses_var' => 'Questo utente ha ancora una licenza assegnata. Prima di procedere si prega di fargliela restituire|Questo utente ha ancora :count licenze assegnate. Prima di procedere si prega di fargliele restituire.', + 'delete_has_accessories_var' => 'Questo utente ha ancora un accessorio assegnato. Prima di procedere si prega di farglielo restituire|Questo utente ha ancora :count accessori assegnati. Prima di procedere si prega di farglieli restituire.', + 'delete_has_locations_var' => 'Questo utente è ancora responsabile di una sede. Si prega di scegliere un altro responsabile prima di procedere.|Questo utente è ancora responsabile di :count sedi. Si prega di scegliere un altro responsabile prima di procedere.', + 'delete_has_users_var' => 'Questo utente è ancora responsabile di un altro utente. Si prega di scegliere un altro responsabile prima di procedere.|Questo utente è ancora responsabile di :count utenti. Si prega di scegliere un altro responsabile prima di procedere.', 'unsuspend' => 'C\'è stato un problema durante la riabilitazione dell\'utente. Riprova per favore.', 'import' => 'C\'è stato un problema durante l\'importazione degli utenti. Riprova per favore.', 'asset_already_accepted' => 'Questo bene è già stato accettato.', 'accept_or_decline' => 'Devi accettare o rifiutare questo prodotto.', + 'cannot_delete_yourself' => 'Ci dispiacerebbe davvero tanto se cancellassi te stesso, per favore ripensaci.', 'incorrect_user_accepted' => 'L\'asset che hai tentato di accettare non è stato verificato.', 'ldap_could_not_connect' => 'Impossibile connettersi al server LDAP. Controlla la configurazione del tuo server LDAP nel file di configurazione LDAP.
    Errori dal server LDAP:', 'ldap_could_not_bind' => 'Impossibile unirsi al server LDAP. Controlla la configurazione del tuo server LDAP nel file di configurazione LDAP.
    Errori dal server LDAP: ', diff --git a/resources/lang/it-IT/general.php b/resources/lang/it-IT/general.php index 3955f70769..69cdac0fe4 100644 --- a/resources/lang/it-IT/general.php +++ b/resources/lang/it-IT/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Report delle attività', 'address' => 'Indirizzo', 'admin' => 'Amministratore', + 'admin_tooltip' => 'L\'utente è un amministratore', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'L\'utente è un superuser', 'administrator' => 'Amministratore', 'add_seats' => 'Aggiunti posti', 'age' => "Età", @@ -202,8 +205,8 @@ return [ 'new_password' => 'Nuova password', 'next' => 'Successivo', 'next_audit_date' => 'Prossima data di controllo', - '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' => 'Se usi la funzione per inventariare nella tua azienda, questo valore è calcolato automaticamente in base all\'ultima data di inventario del Bene e alla frequenza d\'inventario (in Impostazioni Amministratore > Notifiche) e puoi lasciare questo campo vuoto. Qui puoi impostare manualmente questa data, se vuoi, ma deve essere successiva all\'ultima data d\'inventario. ', + 'audit_images_help' => 'Puoi trovare immagini d\'inventario nella scheda "Storico" del Bene.', 'no_email' => 'Nessun indirizzo email associato a questo utente', 'last_audit' => 'Ultimo Controllo Inventario', 'new' => 'nuovo!', @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Beni richiesti', 'requested_assets_menu' => 'Beni richiesti', 'request_canceled' => 'Richiesta annullata', + 'request_item' => 'Richiedi questo articolo', + 'external_link_tooltip' => 'Collegamento esterno a', 'save' => 'Salva', 'select_var' => 'Seleziona :thing... ', // this will eventually replace all of our other selects 'select' => 'Seleziona', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Nome Accessorio:', 'clone_item' => 'Clona articolo', 'checkout_tooltip' => 'Assegna questo articolo', - 'checkin_tooltip' => 'Restituisci questo articolo', + 'checkin_tooltip' => 'Restituisci questo oggetto in modo che sia disponibile per una riassegnazione, ripristino, ecc...', 'checkout_user_tooltip' => 'Assegna questo articolo a un utente', + 'checkin_to_diff_location' => 'Puoi scegliere di restituire questo Bene a una sede diversa da quella predefinita di :default_location , se è stata impostata', 'maintenance_mode' => 'Servizio temporaneamente non disponibile per aggiornamenti. Si prega di riprovare più tardi.', 'maintenance_mode_title' => 'Sistema Temporaneamente Non Disponibile', 'ldap_import' => 'La password dell\'utente non deve essere gestita da LDAP. (Consente di inviare le richieste di password dimenticate.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Indirizzo, riga 2', 'import_note' => 'Importato utilizzando l\'importatore csv', ], + 'remove_customfield_association' => 'Rimuovi questo campo dal set. Questa azione non eliminerà il campo personalizzato, solo l\'associazione di questo campo con il set.', + 'checked_out_to_fields' => 'Campi degli assegnati', 'percent_complete' => '% completato', 'uploading' => 'Caricamento... ', 'upload_error' => 'Errore nel caricamento del file. Controlla che non ci siano righe vuote e che nessun nome di colonna sia duplicato.', diff --git a/resources/lang/it-IT/table.php b/resources/lang/it-IT/table.php index 794cfadcfd..d5cd74590c 100644 --- a/resources/lang/it-IT/table.php +++ b/resources/lang/it-IT/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Azioni', - 'action' => 'Azione', - 'by' => 'per', - 'item' => 'Articolo', + 'actions' => 'Azioni', + 'action' => 'Azione', + 'by' => 'per', + 'item' => 'Articolo', + 'no_matching_records' => 'Nessun record corrispondente trovato', ); diff --git a/resources/lang/iu-NU/account/general.php b/resources/lang/iu-NU/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/iu-NU/account/general.php +++ b/resources/lang/iu-NU/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/iu-NU/admin/hardware/form.php b/resources/lang/iu-NU/admin/hardware/form.php index a7aba0813c..edec543637 100644 --- a/resources/lang/iu-NU/admin/hardware/form.php +++ b/resources/lang/iu-NU/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Order Number', 'qr' => 'QR Code', 'requestable' => 'Users may request this asset', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Select Status Type', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/lang/iu-NU/admin/hardware/general.php b/resources/lang/iu-NU/admin/hardware/general.php index f7f8ad4d06..34ac4e63ee 100644 --- a/resources/lang/iu-NU/admin/hardware/general.php +++ b/resources/lang/iu-NU/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Edit Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Requested', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/iu-NU/admin/users/message.php b/resources/lang/iu-NU/admin/users/message.php index b7c0a29f14..4d014775bd 100644 --- a/resources/lang/iu-NU/admin/users/message.php +++ b/resources/lang/iu-NU/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'There was an issue updating the user. Please try again.', 'delete' => 'There was an issue deleting the user. Please try again.', 'delete_has_assets' => 'This user has items assigned and could not be deleted.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', 'import' => 'There was an issue importing users. Please try again.', 'asset_already_accepted' => 'This asset has already been accepted.', 'accept_or_decline' => 'You must either accept or decline this asset.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'The asset you have attempted to accept was not checked out to you.', 'ldap_could_not_connect' => 'Could not connect to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server:', 'ldap_could_not_bind' => 'Could not bind to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server: ', diff --git a/resources/lang/iu-NU/general.php b/resources/lang/iu-NU/general.php index 7ee1557c51..ec0b8e6ee3 100644 --- a/resources/lang/iu-NU/general.php +++ b/resources/lang/iu-NU/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Activity Report', 'address' => 'Address', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Added seats', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Request Canceled', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Save', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Select', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Accessory Name:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% complete', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/iu-NU/table.php b/resources/lang/iu-NU/table.php index f7a49d86c1..16e32b148f 100644 --- a/resources/lang/iu-NU/table.php +++ b/resources/lang/iu-NU/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Actions', - 'action' => 'Action', - 'by' => 'By', - 'item' => 'Item', + 'actions' => 'Actions', + 'action' => 'Action', + 'by' => 'By', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/ja-JP/account/general.php b/resources/lang/ja-JP/account/general.php index d991372f1c..838df6b2bf 100644 --- a/resources/lang/ja-JP/account/general.php +++ b/resources/lang/ja-JP/account/general.php @@ -7,4 +7,5 @@ return array( 'api_base_url_endpoint' => '/<エンドポイント>', 'api_token_expiration_time' => 'APIトークンの有効期限:', 'api_reference' => 'API リファレンス を確認して、特定のAPI エンドポイントと追加のAPIドキュメントを見つけてください。', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/ja-JP/admin/hardware/form.php b/resources/lang/ja-JP/admin/hardware/form.php index 4001600681..8768ee2d12 100644 --- a/resources/lang/ja-JP/admin/hardware/form.php +++ b/resources/lang/ja-JP/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => '注文番号', 'qr' => 'QRコード', 'requestable' => '利用者がこの資産を要求するかもしれません。', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'ステータスタイプを選択', 'serial' => 'シリアル', 'status' => 'ステータス', diff --git a/resources/lang/ja-JP/admin/hardware/general.php b/resources/lang/ja-JP/admin/hardware/general.php index 23100a84cc..94fa361387 100644 --- a/resources/lang/ja-JP/admin/hardware/general.php +++ b/resources/lang/ja-JP/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'この資産を削除してもよろしいですか?', 'edit' => '資産を編集', 'model_deleted' => 'この資産モデルは削除されました。資産を復元する前に、モデルを復元する必要があります。', - 'model_invalid' => 'この資産のモデルは無効です。', - 'model_invalid_fix' => 'チェックインまたはチェックアウトを試みる前に、資産を編集して修正する必要があります。', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => '要求可能', 'requested' => '要求済', 'not_requestable' => '要求可能ではありません', diff --git a/resources/lang/ja-JP/admin/users/message.php b/resources/lang/ja-JP/admin/users/message.php index 069a0bcb33..09d71d9bee 100644 --- a/resources/lang/ja-JP/admin/users/message.php +++ b/resources/lang/ja-JP/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => '利用者を更新する際に問題が発生しました。もう一度、やり直して下さい。', 'delete' => '利用者を削除する際に問題が発生しました。もう一度、やり直して下さい。', 'delete_has_assets' => 'このユーザーにはアイテムが割り当てられており、削除できません。', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => '利用者を再開する際に問題が発生しました。もう一度、やり直して下さい。', 'import' => '利用者をインポートする際に問題が発生しました。もう一度、やり直して下さい。', 'asset_already_accepted' => 'この資産は既に承認されています。', 'accept_or_decline' => 'あなたはこの資産を承認もしくは却下しなけれなばなりません。', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => '資産を受諾しようとしましたが貸し出しできませんでした。', 'ldap_could_not_connect' => 'LDAPサーバーに接続できません。LDAP設定ファイル内のサーバー設定を確認して下さい。
    LDAPサーバーからのエラー:', 'ldap_could_not_bind' => 'LDAPサーバーにバインドできません。LDAP設定ファイル内のサーバー設定を確認して下さい。
    LDAPサーバーからのエラー: ', diff --git a/resources/lang/ja-JP/general.php b/resources/lang/ja-JP/general.php index 25e05e0e76..186f2e454f 100644 --- a/resources/lang/ja-JP/general.php +++ b/resources/lang/ja-JP/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => '操作レポート', 'address' => '住所', 'admin' => '管理', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => '管理者', 'add_seats' => 'シートを追加', 'age' => "経過", @@ -241,6 +244,8 @@ return [ 'requested_assets' => '要求された資産', 'requested_assets_menu' => '要求された資産', 'request_canceled' => 'リクエストキャンセル', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => '保存', 'select_var' => ':thingを選択してください。 ', // this will eventually replace all of our other selects 'select' => '選択', @@ -398,8 +403,9 @@ return [ 'accessory_name' => '付属品名:', 'clone_item' => 'アイテムを複製', 'checkout_tooltip' => 'このアイテムをチェックアウト', - 'checkin_tooltip' => 'このアイテムをチェックイン', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'このアイテムをユーザーにチェックアウトする', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'このサービスはシステムアップデートで一時的に利用できません。後でもう一度確認してください。', 'maintenance_mode_title' => 'システムが一時的に利用できません', 'ldap_import' => 'ユーザーのパスワードはLDAPで管理しない。(パスワードリセット機能が利用出来るようになります)', @@ -500,6 +506,8 @@ return [ 'address2' => '住所2', 'import_note' => 'csvインポートを使用してインポートしました', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% 成功', 'uploading' => 'アップロード中... ', 'upload_error' => 'ファイルのアップロード中にエラーが発生しました。空の行がなく、列名が重複していないことを確認してください。', diff --git a/resources/lang/ja-JP/table.php b/resources/lang/ja-JP/table.php index 63176ae638..df76fe0e43 100644 --- a/resources/lang/ja-JP/table.php +++ b/resources/lang/ja-JP/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'アクション', - 'action' => 'アクション', - 'by' => '実行者', - 'item' => '品目', + 'actions' => 'アクション', + 'action' => 'アクション', + 'by' => '実行者', + 'item' => '品目', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/km-KH/account/general.php b/resources/lang/km-KH/account/general.php index 545f423b9c..0213cea48f 100644 --- a/resources/lang/km-KH/account/general.php +++ b/resources/lang/km-KH/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'និមិត្តសញ្ញា API ត្រូវបានកំណត់ឱ្យផុតកំណត់នៅក្នុង៖', 'api_reference' => 'សូមពិនិត្យមើល ឯកសារយោង API ទៅ ស្វែងរកចំណុចបញ្ចប់ API ជាក់លាក់ និងឯកសារ API បន្ថែម', + 'profile_updated' => 'ធ្វើបច្ចុប្បន្នភាពគណនីដោយជោគជ័យ', ); diff --git a/resources/lang/km-KH/admin/accessories/message.php b/resources/lang/km-KH/admin/accessories/message.php index ad18bcf846..3539fe6ed5 100644 --- a/resources/lang/km-KH/admin/accessories/message.php +++ b/resources/lang/km-KH/admin/accessories/message.php @@ -4,7 +4,7 @@ return array( 'does_not_exist' => 'គ្រឿងបន្លាស់ [:id] មិនមានទេ។', 'not_found' => 'គ្រឿងបន្លាស់នោះមិនត្រូវបានរកឃើញទេ។', - 'assoc_users' => 'This accessory currently has :count items checked out to users. Please check in the accessories and and try again. ', + 'assoc_users' => 'គ្រឿងបន្លាស់នេះបច្ចុប្បន្នមាន៖ រាប់ធាតុ checked out ដល់អ្នកប្រើប្រាស់។ សូមពិនិត្យមើលគ្រឿងបន្ថែម ហើយព្យាយាមម្តងទៀត។ ', 'create' => array( 'error' => 'គ្រឿងបន្លាស់មិនត្រូវបានបង្កើតទេ សូមព្យាយាមម្តងទៀត។', @@ -23,14 +23,14 @@ return array( ), 'checkout' => array( - 'error' => 'Accessory was not checked out, please try again', - 'success' => 'Accessory checked out successfully.', - 'unavailable' => 'Accessory is not available for checkout. Check quantity available', + 'error' => 'គ្រឿងបន្លាស់មិនchecked outទេ សូមព្យាយាមម្តងទៀត', + 'success' => 'គ្រឿងបន្លាស់ត្រូវchecked out ដោយជោគជ័យ។', + 'unavailable' => 'គ្រឿងបន្លាស់មិនមានសម្រាប់ checkout ទេ។ ពិនិត្យបរិមាណដែលអាចប្រើបាន', 'user_does_not_exist' => 'អ្នកប្រើប្រាស់នោះមិនត្រឹមត្រូវទេ។ សូម​ព្យាយាម​ម្តង​ទៀត។' ), 'checkin' => array( - 'error' => 'Accessory was not checked in, please try again', + 'error' => 'គ្រឿងបន្លាស់មិនchecked inទេ សូមព្យាយាមម្តងទៀត', 'success' => 'Accessory checked in successfully.', 'user_does_not_exist' => 'អ្នកប្រើប្រាស់នោះមិនត្រឹមត្រូវទេ។ សូម​ព្យាយាម​ម្តង​ទៀត។' ) diff --git a/resources/lang/km-KH/admin/hardware/form.php b/resources/lang/km-KH/admin/hardware/form.php index 9080eb7414..0824f88773 100644 --- a/resources/lang/km-KH/admin/hardware/form.php +++ b/resources/lang/km-KH/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'លេខបញ្ជាទិញ', 'qr' => 'QR Code', 'requestable' => 'អ្នកប្រើប្រាស់អាចស្នើសុំ Asset នេះ', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'ជ្រើសរើសប្រភេទស្ថានភាព', 'serial' => 'Serial', 'status' => 'ស្ថានភាព', diff --git a/resources/lang/km-KH/admin/hardware/general.php b/resources/lang/km-KH/admin/hardware/general.php index 3455807f35..20dab1fe03 100644 --- a/resources/lang/km-KH/admin/hardware/general.php +++ b/resources/lang/km-KH/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'តើអ្នកប្រាកដថាចង់លុបទ្រព្យសម្បត្តិនេះទេ?', 'edit' => 'កែសម្រួលទ្រព្យសកម្ម', 'model_deleted' => 'គំរូទ្រព្យសកម្មនេះត្រូវបានលុប។ អ្នក​ត្រូវ​តែ​ស្ដារ​គំរូ​មុន​ពេល​អ្នក​អាច​ស្ដារ​ទ្រព្យសកម្ម។', - 'model_invalid' => 'គំរូនៃទ្រព្យសកម្មនេះមិនត្រឹមត្រូវទេ។', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'អាចស្នើសុំបាន', 'requested' => 'បានស្នើសុំ', 'not_requestable' => 'មិនអាចស្នើសុំបាន។', diff --git a/resources/lang/km-KH/admin/hardware/table.php b/resources/lang/km-KH/admin/hardware/table.php index 36ae9f5fe4..3e8bea24dc 100644 --- a/resources/lang/km-KH/admin/hardware/table.php +++ b/resources/lang/km-KH/admin/hardware/table.php @@ -4,7 +4,7 @@ return [ 'asset_tag' => 'ស្លាកទ្រព្យសម្បត្តិ', 'asset_model' => 'គំរូ', - 'assigned_to' => 'Assigned To', + 'assigned_to' => 'ចាត់តាំងទៅ', 'book_value' => 'Current Value', 'change' => 'In/Out', 'checkout_date' => 'ថ្ងៃប្រគល់អោយ', @@ -25,7 +25,7 @@ return [ 'image' => 'Device Image', 'days_without_acceptance' => 'Days Without Acceptance', 'monthly_depreciation' => 'Monthly Depreciation', - 'assigned_to' => 'Assigned To', + 'assigned_to' => 'ចាត់តាំងទៅ', 'requesting_user' => 'Requesting User', 'requested_date' => 'Requested Date', 'changed' => 'Changed', diff --git a/resources/lang/km-KH/admin/licenses/table.php b/resources/lang/km-KH/admin/licenses/table.php index b76efa96be..1e5fc65865 100644 --- a/resources/lang/km-KH/admin/licenses/table.php +++ b/resources/lang/km-KH/admin/licenses/table.php @@ -2,7 +2,7 @@ return array( - 'assigned_to' => 'Assigned To', + 'assigned_to' => 'ចាត់តាំងទៅ', 'checkout' => 'In/Out', 'deleted_at' => 'Deleted at', 'id' => 'លេខសម្គាល់', diff --git a/resources/lang/km-KH/admin/settings/table.php b/resources/lang/km-KH/admin/settings/table.php index 22db5c84ed..3826d0653f 100644 --- a/resources/lang/km-KH/admin/settings/table.php +++ b/resources/lang/km-KH/admin/settings/table.php @@ -1,6 +1,6 @@ 'Created', - 'size' => 'Size', + 'created' => 'បានបង្កើត', + 'size' => 'ទំហំ', ); diff --git a/resources/lang/km-KH/admin/users/message.php b/resources/lang/km-KH/admin/users/message.php index 46183b3649..a4756ed5a6 100644 --- a/resources/lang/km-KH/admin/users/message.php +++ b/resources/lang/km-KH/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'មានបញ្ហាក្នុងការអាប់ដេតអ្នកប្រើប្រាស់។ សូម​ព្យាយាម​ម្តង​ទៀត។', 'delete' => 'មានបញ្ហាក្នុងការលុបអ្នកប្រើប្រាស់។ សូម​ព្យាយាម​ម្តង​ទៀត។', 'delete_has_assets' => 'អ្នក​ប្រើ​នេះ​មាន​ធាតុ​ដែល​បាន​កំណត់ ហើយ​មិន​អាច​លុប​បាន​ទេ។', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'មានបញ្ហាក្នុងការឈប់ផ្អាកអ្នកប្រើប្រាស់។ សូម​ព្យាយាម​ម្តង​ទៀត។', 'import' => 'មានបញ្ហាក្នុងការនាំចូលអ្នកប្រើប្រាស់។ សូម​ព្យាយាម​ម្តង​ទៀត។', 'asset_already_accepted' => 'ទ្រព្យសកម្មនេះត្រូវបានទទួលរួចហើយ។', 'accept_or_decline' => 'អ្នក​ត្រូវតែ​ទទួល​យក ឬ​បដិសេធ​ទ្រព្យសកម្ម​នេះ។', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'The asset you have attempted to accept was not checked out to you.', 'ldap_could_not_connect' => 'មិនអាចភ្ជាប់ទៅម៉ាស៊ីនមេ LDAP បានទេ។ សូមពិនិត្យមើលការកំណត់រចនាសម្ព័ន្ធម៉ាស៊ីនមេ LDAP របស់អ្នកនៅក្នុងឯកសារកំណត់រចនាសម្ព័ន្ធ LDAP ។
    កំហុសពីម៉ាស៊ីនមេ LDAP៖', 'ldap_could_not_bind' => 'មិនអាចភ្ជាប់ទៅម៉ាស៊ីនមេ LDAP បានទេ។ សូមពិនិត្យមើលការកំណត់រចនាសម្ព័ន្ធម៉ាស៊ីនមេ LDAP របស់អ្នកនៅក្នុងឯកសារកំណត់រចនាសម្ព័ន្ធ LDAP ។
    កំហុសពីម៉ាស៊ីនមេ LDAP៖ ', diff --git a/resources/lang/km-KH/admin/users/table.php b/resources/lang/km-KH/admin/users/table.php index e6c0922931..db76fdec9d 100644 --- a/resources/lang/km-KH/admin/users/table.php +++ b/resources/lang/km-KH/admin/users/table.php @@ -4,7 +4,7 @@ return array( 'activated' => 'Active', 'allow' => 'អនុញ្ញាត', 'checkedout' => 'ទ្រព្យសកម្ម', - 'created_at' => 'Created', + 'created_at' => 'បានបង្កើត', 'createuser' => 'Create User', 'deny' => 'បដិសេធ', 'email' => 'Email', @@ -33,7 +33,7 @@ return array( 'to_restore_them' => 'to restore them.', 'total_assets_cost' => "Total Assets Cost", 'updateuser' => 'Update User', - 'username' => 'Username', + 'username' => 'ឈ្មោះ​អ្នកប្រើប្រាស់', 'user_deleted_text' => 'This user has been marked as deleted.', 'username_note' => '(This is used for Active Directory binding only, not for login.)', 'cloneuser' => 'ក្លូន អ្នកប្រើប្រាស់', diff --git a/resources/lang/km-KH/auth.php b/resources/lang/km-KH/auth.php index db310aa1bb..ab77d166a3 100644 --- a/resources/lang/km-KH/auth.php +++ b/resources/lang/km-KH/auth.php @@ -13,8 +13,8 @@ return array( | */ - 'failed' => 'These credentials do not match our records.', - 'password' => 'The provided password is incorrect.', - 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + 'failed' => 'លិខិតសម្គាល់ទាំងនេះមិនត្រូវគ្នានឹងកំណត់ត្រារបស់យើងទេ។', + 'password' => 'ពាក្យសម្ងាត់ដែលបានផ្តល់គឺមិនត្រឹមត្រូវទេ។', + 'throttle' => 'ការព្យាយាមចូលច្រើនពេក។ សូមព្យាយាមម្តងទៀតក្នុងរយៈពេល : វិនាទីវិនាទី។', ); diff --git a/resources/lang/km-KH/auth/general.php b/resources/lang/km-KH/auth/general.php index e6a6eed0fc..54ec9f2308 100644 --- a/resources/lang/km-KH/auth/general.php +++ b/resources/lang/km-KH/auth/general.php @@ -1,19 +1,19 @@ 'Send Password Reset Link', - 'email_reset_password' => 'Email Password Reset', - 'reset_password' => 'Reset Password', - 'saml_login' => 'Login via SAML', - 'login' => 'Login', - 'login_prompt' => 'Please Login', - 'forgot_password' => 'I forgot my password', - 'ldap_reset_password' => 'Please click here to reset your LDAP password', - 'remember_me' => 'Remember Me', - 'username_help_top' => 'Enter your username to be emailed a password reset link.', - 'username_help_bottom' => 'Your username and email address may be the same, but may not be, depending on your configuration. If you cannot remember your username, contact your administrator.

    Usernames without an associated email address will not be emailed a password reset link. ', - 'google_login' => 'Login with Google Workspace', - 'google_login_failed' => 'Google Login failed, please try again.', + 'send_password_link' => 'ផ្ញើតំណកំណត់ពាក្យសម្ងាត់ឡើងវិញ', + 'email_reset_password' => 'កំណត់ពាក្យសម្ងាត់អ៊ីមែលឡើងវិញ', + 'reset_password' => 'កំណត់ពាក្យសម្ងាត់ឡើងវិញ', + 'saml_login' => 'ចូលតាមរយៈ SAML', + 'login' => 'ចូល', + 'login_prompt' => 'សូមចូល', + 'forgot_password' => 'ខ្ញុំ​ភ្លេច​ពាក្យសម្ងាត់​របស់ខ្ញុំ', + 'ldap_reset_password' => 'សូមចុចទីនេះដើម្បីកំណត់ពាក្យសម្ងាត់ LDAP របស់អ្នកឡើងវិញ', + 'remember_me' => 'ចងចាំខ្ញុំ', + 'username_help_top' => 'បញ្ចូល ឈ្មោះអ្នកប្រើ របស់អ្នកដើម្បីផ្ញើអ៊ីមែលទៅតំណកំណត់ពាក្យសម្ងាត់ឡើងវិញ។', + 'username_help_bottom' => 'ឈ្មោះអ្នកប្រើ និងអាសយដ្ឋានអ៊ីមែលរបស់អ្នក អាចដូចគ្នា ប៉ុន្តែប្រហែលជាមិនមែនទេ អាស្រ័យលើការកំណត់របស់អ្នក។ ប្រសិនបើអ្នកមិនអាចចាំឈ្មោះអ្នកប្រើប្រាស់របស់អ្នកបានទេ សូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នក។

    ឈ្មោះ​អ្នក​ប្រើ​ដែល​គ្មាន​អាសយដ្ឋាន​អ៊ីមែល​ដែល​ពាក់ព័ន្ធ​នឹង​មិន​ត្រូវ​បាន​ផ្ញើ​អ៊ីមែល​តំណ​កំណត់​ពាក្យ​សម្ងាត់​ឡើង​វិញ​ទេ។ ', + 'google_login' => 'ចូលជាមួយ Google Workspace', + 'google_login_failed' => 'ការចូល Google បានបរាជ័យ សូមព្យាយាមម្តងទៀត។', ]; diff --git a/resources/lang/km-KH/auth/message.php b/resources/lang/km-KH/auth/message.php index f086d8c04c..234baf6257 100644 --- a/resources/lang/km-KH/auth/message.php +++ b/resources/lang/km-KH/auth/message.php @@ -2,43 +2,43 @@ return array( - 'account_already_exists' => 'An account with the this email already exists.', - 'account_not_found' => 'The username or password is incorrect.', - 'account_not_activated' => 'This user account is not activated.', - 'account_suspended' => 'This user account is suspended.', - 'account_banned' => 'This user account is banned.', - 'throttle' => 'Too many failed login attempts. Please try again in :minutes minutes.', + 'account_already_exists' => 'គណនីដែលមានអ៊ីមែលនេះមានរួចហើយ។', + 'account_not_found' => 'ឈ្មោះ​អ្នក​ប្រើ ឬ​ពាក្យ​សម្ងាត់​មិន​ត្រឹមត្រូវ។', + 'account_not_activated' => 'គណនីអ្នកប្រើប្រាស់នេះមិនដំណើរការទេ។', + 'account_suspended' => 'គណនីអ្នកប្រើប្រាស់នេះត្រូវបានផ្អាក។', + 'account_banned' => 'គណនីអ្នកប្រើប្រាស់នេះត្រូវបានហាមឃាត់។', + 'throttle' => 'ការព្យាយាមចូលដែលបរាជ័យច្រើនពេក។ សូមព្យាយាមម្តងទៀតក្នុងរយៈពេល៖ នាទីនាទី។', 'two_factor' => array( - 'already_enrolled' => 'Your device is already enrolled.', - 'success' => 'You have successfully logged in.', - 'code_required' => 'Two-factor code is required.', - 'invalid_code' => 'Two-factor code is invalid.', + 'already_enrolled' => 'ឧបករណ៍របស់អ្នកបានចុះឈ្មោះរួចហើយ។', + 'success' => 'អ្នកបានចូលដោយជោគជ័យ។', + 'code_required' => 'កូដកត្តាពីរត្រូវបានទាមទារ។', + 'invalid_code' => 'កូដកត្តាពីរគឺមិនត្រឹមត្រូវទេ។', ), 'signin' => array( - 'error' => 'There was a problem while trying to log you in, please try again.', - 'success' => 'You have successfully logged in.', + 'error' => 'មានបញ្ហានៅពេលព្យាយាមចូល សូមព្យាយាមម្តងទៀត។', + 'success' => 'អ្នកបានចូលដោយជោគជ័យ។', ), 'logout' => array( - 'error' => 'There was a problem while trying to log you out, please try again.', - 'success' => 'You have successfully logged out.', + 'error' => 'មានបញ្ហានៅពេលព្យាយាមចេញពីអ្នក សូមព្យាយាមម្តងទៀត។', + 'success' => 'អ្នកបានចេញដោយជោគជ័យ។', ), 'signup' => array( - 'error' => 'There was a problem while trying to create your account, please try again.', - 'success' => 'Account sucessfully created.', + 'error' => 'មានបញ្ហានៅពេលព្យាយាមបង្កើតគណនីរបស់អ្នក សូមព្យាយាមម្តងទៀត។', + 'success' => 'គណនីត្រូវបានបង្កើតដោយជោគជ័យ។', ), 'forgot-password' => array( - 'error' => 'There was a problem while trying to get a reset password code, please try again.', - 'success' => 'If that email address exists in our system, a password recovery email has been sent.', + 'error' => 'មានបញ្ហានៅពេលព្យាយាមយកលេខកូដសម្ងាត់កំណត់ឡើងវិញ សូមព្យាយាមម្តងទៀត។', + 'success' => 'ប្រសិនបើអាសយដ្ឋានអ៊ីមែលនោះមាននៅក្នុងប្រព័ន្ធរបស់យើង អ៊ីមែលសង្គ្រោះពាក្យសម្ងាត់ត្រូវបានផ្ញើ។', ), 'forgot-password-confirm' => array( - 'error' => 'There was a problem while trying to reset your password, please try again.', - 'success' => 'Your password has been successfully reset.', + 'error' => 'មានបញ្ហានៅពេលព្យាយាមកំណត់ពាក្យសម្ងាត់របស់អ្នកឡើងវិញ សូមព្យាយាមម្តងទៀត។', + 'success' => 'ពាក្យសម្ងាត់របស់អ្នកត្រូវបានកំណត់ឡើងវិញដោយជោគជ័យ។', ), diff --git a/resources/lang/km-KH/button.php b/resources/lang/km-KH/button.php index ebe17ac4c7..9afcf24983 100644 --- a/resources/lang/km-KH/button.php +++ b/resources/lang/km-KH/button.php @@ -1,24 +1,24 @@ 'Actions', - 'add' => 'Add New', + 'actions' => 'សកម្មភាព', + 'add' => 'បន្ថែម​ថ្មី', 'cancel' => 'បោះបង់', - 'checkin_and_delete' => 'Checkin All / Delete User', + 'checkin_and_delete' => 'Checkin ទាំងអស់ / លុបអ្នកប្រើប្រាស់', 'delete' => 'លុប', - 'edit' => 'Edit', - 'restore' => 'Restore', - 'remove' => 'Remove', - 'request' => 'Request', + 'edit' => 'កែសម្រួល', + 'restore' => 'ស្តារ', + 'remove' => 'ដកចេញ', + 'request' => 'ស្នើសុំ', 'submit' => 'ដាក់ស្នើ', - 'upload' => 'Upload', - 'select_file' => 'Select File...', - 'select_files' => 'Select Files...', - 'generate_labels' => '{1} Generate Label|[2,*] Generate Labels', - 'send_password_link' => 'Send Password Reset Link', - 'go' => 'Go', + 'upload' => 'ផ្ទុកឡើង', + 'select_file' => 'ជ្រើសរើសឯកសារ...', + 'select_files' => 'ជ្រើសរើសឯកសារច្រើន...', + 'generate_labels' => '{1} បង្កើតស្លាក | [2,*] បង្កើតស្លាកច្រើន', + 'send_password_link' => 'ផ្ញើតំណកំណត់ពាក្យសម្ងាត់ឡើងវិញ', + 'go' => 'ទៅ', 'bulk_actions' => 'សកម្មភាពច្រើន', - 'add_maintenance' => 'Add Maintenance', - 'append' => 'Append', - 'new' => 'New', + 'add_maintenance' => 'បន្ថែមការថែទាំ', + 'append' => 'បន្ថែម', + 'new' => 'ថ្មី', ]; diff --git a/resources/lang/km-KH/general.php b/resources/lang/km-KH/general.php index 3c23e3ef28..f88b0a6877 100644 --- a/resources/lang/km-KH/general.php +++ b/resources/lang/km-KH/general.php @@ -1,7 +1,7 @@ '2FA reset', + '2FA_reset' => '2FA កំណត់ឡើងវិញ', 'accessories' => 'គ្រឿងបន្លាស់', 'activated' => 'បានធ្វើឱ្យសកម្ម', 'accepted_date' => 'កាលបរិច្ឆេទទទួលយក', @@ -11,6 +11,9 @@ return [ 'activity_report' => 'របាយការណ៍សកម្មភាព', 'address' => 'អាស័យដ្ឋាន', 'admin' => 'Admin', + 'admin_tooltip' => 'អ្នកប្រើប្រាស់នេះមានសិទ្ធិជាអ្នកគ្រប់គ្រង', + 'superuser' => 'អ្នកប្រើជាន់ខ្ពស់', + 'superuser_tooltip' => 'អ្នកប្រើប្រាស់នេះមានសិទ្ធិអ្នកប្រើប្រាស់ជាន់ខ្ពស់', 'administrator' => 'Administrator', 'add_seats' => 'កៅអីបន្ថែម', 'age' => "អាយុ", @@ -61,7 +64,7 @@ return [ 'checkout' => 'Checkout', 'checkouts_count' => 'Checkouts', 'checkins_count' => 'Checkins', - 'user_requests_count' => 'Requests', + 'user_requests_count' => 'សំណើ', 'city' => 'ទីក្រុង', 'click_here' => 'ចុច​ទីនេះ', 'clear_selection' => 'ជម្រះការជ្រើសរើស', @@ -70,11 +73,11 @@ return [ 'component' => 'Component', 'components' => 'Components', 'complete' => 'បញ្ចប់', - 'consumable' => 'Consumable', + 'consumable' => 'ប្រើប្រាស់បាន។', 'consumables' => 'Consumables', 'country' => 'ប្រទេស', - 'could_not_restore' => 'Error restoring :item_type: :error', - 'not_deleted' => 'The :item_type is not deleted so it cannot be restored', + 'could_not_restore' => 'កំហុសក្នុងការស្តារ :item_type: :error', + 'not_deleted' => ':item_type មិនត្រូវបានលុបទេ ដូច្នេះវាមិនអាចស្ដារឡើងវិញបានទេ។', 'create' => 'បង្កើត​ថ្មី', 'created' => 'ធាតុត្រូវបានបង្កើត', 'created_asset' => 'ទ្រព្យសកម្មដែលបានបង្កើត', @@ -83,10 +86,10 @@ return [ 'record_created' => 'បានបង្កើតកំណត់ត្រា', 'updated_at' => 'បានធ្វើបច្ចុប្បន្នភាពនៅ', 'currency' => '$', // this is deprecated - 'current' => 'Current', - 'current_password' => 'Current Password', - 'customize_report' => 'Customize Report', - 'custom_report' => 'Custom Asset Report', + 'current' => 'នា​ពេល​បច្ចុប្បន្ន', + 'current_password' => 'លេខសំងាត់​បច្ចុប្បន្ន', + 'customize_report' => 'កំណត់របាយការណ៍តាមបំណង', + 'custom_report' => 'របាយការណ៍ទ្រព្យសកម្មផ្ទាល់ខ្លួន', 'dashboard' => 'ផ្ទាំងគ្រប់គ្រង', 'days' => 'ថ្ងៃ', 'days_to_next_audit' => 'ថ្ងៃទៅសវនកម្មបន្ទាប់', @@ -110,7 +113,7 @@ return [ 'download_all' => 'ទាញយកទាំងអស់', 'editprofile' => 'កែសម្រួលប្រវត្តិរូបរបស់អ្នក', 'eol' => 'EOL', - 'email_domain' => 'Email Domain', + 'email_domain' => 'ដែនអ៊ីមែល', 'email_format' => 'ទម្រង់អ៊ីមែល', 'employee_number' => 'លេខបុគ្គលិក', 'email_domain_help' => 'វាត្រូវបានប្រើដើម្បីបង្កើតអាសយដ្ឋានអ៊ីមែលនៅពេលនាំចូល', @@ -125,8 +128,8 @@ return [ 'firstintial_dot_lastname_format' => 'នាមត្រកូលដំបូង (j.smith@example.com)', 'firstname_lastname_display' => 'នាមត្រកូលនាមខ្លួន (Jane Smith)', 'lastname_firstname_display' => 'នាមត្រកូលនាមខ្លួន (ស្មីត ជេន)', - 'name_display_format' => 'Name Display Format', - 'first' => 'First', + 'name_display_format' => 'ឈ្មោះទម្រង់បង្ហាញ', + 'first' => 'ទីមួយ', 'firstnamelastname' => 'នាមខ្លួន នាមត្រកូល (janesmith@example.com)', 'lastname_firstinitial' => 'នាមត្រកូល នាមខ្លួនដំបូង (smith_j@example.com)', 'firstinitial.lastname' => 'នាមត្រកូលដំបូង (j.smith@example.com)', @@ -139,12 +142,12 @@ return [ 'filesize' => 'ទំហំ​ឯកសារ', 'file_uploads' => 'ឯកសារ​ផ្ទុក​ឡើង', 'file_upload' => 'ឯកសារ​ផ្ទុក​ឡើង', - 'generate' => 'Generate', - 'generate_labels' => 'Generate Labels', + 'generate' => 'បង្កើត', + 'generate_labels' => 'បង្កើតស្លាក', 'github_markdown' => 'This field accepts Github flavored markdown.', 'groups' => 'ក្រុម', - 'gravatar_email' => 'Gravatar Email Address', - 'gravatar_url' => 'Change your avatar at Gravatar.com.', + 'gravatar_email' => 'អាសយដ្ឋានអ៊ីមែល Gravatar', + 'gravatar_url' => 'ផ្លាស់ប្តូររូបតំណាងរបស់អ្នកនៅ Gravatar.com។', 'history' => 'ប្រវត្តិ', 'history_for' => 'ប្រវត្តិសម្រាប់', 'id' => 'លេខសម្គាល់', @@ -176,14 +179,14 @@ return [ 'last_name' => 'នាមត្រកូល', 'license' => 'អាជ្ញាប័ណ្ណ', 'license_report' => 'របាយការណ៍អាជ្ញាប័ណ្ណ', - 'licenses_available' => 'Licenses available', + 'licenses_available' => 'មានអាជ្ញាប័ណ្ណ', 'licenses' => 'អាជ្ញាប័ណ្ណ', 'list_all' => 'រាយបញ្ជីទាំងអស់', 'loading' => 'កំពុងផ្ទុក... សូមរង់ចាំ....', 'lock_passwords' => 'តម្លៃវាលនេះនឹងមិនត្រូវបានរក្សាទុកក្នុងការដំឡើងសាកល្បងទេ។', 'feature_disabled' => 'មុខងារនេះត្រូវបានបិទសម្រាប់ការដំឡើងសាកល្បង។', 'location' => 'ទីតាំង', - 'location_plural' => 'Location|Locations', + 'location_plural' => 'ទីតាំង | ទីតាំង', 'locations' => 'ទីតាំង', 'logo_size' => 'ឡូហ្គោការ៉េមើលទៅល្អបំផុតជាមួយនឹងនិមិត្តសញ្ញា + អត្ថបទ។ ទំហំបង្ហាញនិមិត្តសញ្ញាអតិបរមាគឺ 50px ខ្ពស់ x 500px ។ ', 'logout' => 'ចាកចេញ', @@ -234,13 +237,15 @@ return [ 'remove_company' => 'Remove Company Association', 'reports' => 'Reports', 'restored' => 'restored', - 'restore' => 'Restore', + 'restore' => 'ស្តារ', 'requestable_models' => 'Requestable Models', 'requested' => 'បានស្នើសុំ', 'requested_date' => 'Requested Date', 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Request Canceled', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Save', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Select', @@ -290,7 +295,7 @@ return [ 'undeployable' => 'Un-deployable', 'unknown_admin' => 'Unknown Admin', 'username_format' => 'Username Format', - 'username' => 'Username', + 'username' => 'ឈ្មោះ​អ្នកប្រើប្រាស់', 'update' => 'Update', 'upload_filetypes_help' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, xls, xlsx, txt, lic, xml, zip, rtf and rar. Max upload size allowed is :size.', 'uploaded' => 'Uploaded', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'ឈ្មោះគ្រឿងបន្លាស់៖', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% complete', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', @@ -510,7 +518,7 @@ return [ 'item_not_found' => ':item_type ID :id does not exist or has been deleted', 'action_permission_denied' => 'You do not have permission to :action :item_type ID :id', 'action_permission_generic' => 'You do not have permission to :action this :item_type', - 'edit' => 'edit', + 'edit' => 'កែសម្រួល', 'action_source' => 'Action Source', 'or' => 'or', 'url' => 'URL', diff --git a/resources/lang/km-KH/help.php b/resources/lang/km-KH/help.php index 4884684fd8..ff753d91d8 100644 --- a/resources/lang/km-KH/help.php +++ b/resources/lang/km-KH/help.php @@ -15,7 +15,7 @@ return [ 'more_info_title' => 'ព័​ត៍​មាន​បន្ថែម', - 'audit_help' => 'Checking this box will edit the asset record to reflect this new location. Leaving it unchecked will simply note the location in the audit log.

    Note that if this asset is checked out, it will not change the location of the person, asset or location it is checked out to.', + 'audit_help' => 'ការធីកប្រអប់នេះនឹងកែសម្រួលកំណត់ត្រាទ្រព្យសម្បត្តិដើម្បីឆ្លុះបញ្ចាំងពីទីតាំងថ្មីនេះ។ ការទុកវាចោលដោយមិនធីកនឹងកត់សម្គាល់ទីតាំងនៅក្នុងកំណត់ហេតុសវនកម្ម។

    ចំណាំថាប្រសិនបើទ្រព្យសកម្មនេះត្រូវបាន checked out វានឹងមិនផ្លាស់ប្តូរទីតាំងរបស់មនុស្ស ទ្រព្យសម្បត្តិ ឬទីតាំងដែលវាត្រូវបាន checked out ទៅ.', 'assets' => 'ទ្រព្យសកម្មគឺជាធាតុដែលតាមដានដោយលេខស៊េរី ឬស្លាកទ្រព្យសម្បត្តិ។ ពួកវាមានទំនោរទៅជាធាតុមានតម្លៃខ្ពស់ជាង ដែលការកំណត់អត្តសញ្ញាណធាតុជាក់លាក់មួយមានសារៈសំខាន់។', diff --git a/resources/lang/km-KH/mail.php b/resources/lang/km-KH/mail.php index d78cc87f9b..f38d7dbfe7 100644 --- a/resources/lang/km-KH/mail.php +++ b/resources/lang/km-KH/mail.php @@ -2,92 +2,92 @@ return [ - 'Accessory_Checkin_Notification' => 'Accessory checked in', - 'Accessory_Checkout_Notification' => 'Accessory checked out', - 'Asset_Checkin_Notification' => 'Asset checked in', - 'Asset_Checkout_Notification' => 'Asset checked out', - 'Confirm_Accessory_Checkin' => 'Accessory checkin confirmation', - 'Confirm_Asset_Checkin' => 'Asset checkin confirmation', - 'Confirm_accessory_delivery' => 'Accessory delivery confirmation', - 'Confirm_asset_delivery' => 'Asset delivery confirmation', - 'Confirm_consumable_delivery' => 'Consumable delivery confirmation', - 'Confirm_license_delivery' => 'License delivery confirmation', - 'Consumable_checkout_notification' => 'Consumable checked out', - 'Days' => 'Days', - 'Expected_Checkin_Date' => 'An asset checked out to you is due to be checked back in on :date', - 'Expected_Checkin_Notification' => 'Reminder: :name checkin deadline approaching', - 'Expected_Checkin_Report' => 'Expected asset checkin report', - 'Expiring_Assets_Report' => 'Expiring Assets Report.', - 'Expiring_Licenses_Report' => 'Expiring Licenses Report.', - 'Item_Request_Canceled' => 'Item Request Canceled', - 'Item_Requested' => 'Item Requested', - 'License_Checkin_Notification' => 'License checked in', - 'License_Checkout_Notification' => 'License checked out', - 'Low_Inventory_Report' => 'Low Inventory Report', + 'Accessory_Checkin_Notification' => 'គ្រឿងបន្លាស់ បាន checked in', + 'Accessory_Checkout_Notification' => 'គ្រឿងបន្លាស់ បាន checked out', + 'Asset_Checkin_Notification' => 'ទ្រព្យសកម្មបាន checked in', + 'Asset_Checkout_Notification' => 'ទ្រព្យសកម្មបាន checked out', + 'Confirm_Accessory_Checkin' => 'ការបញ្ជាក់ការពិនិត្យមើលគ្រឿងបន្លាស់', + 'Confirm_Asset_Checkin' => 'ការបញ្ជាក់ការពិនិត្យមើលទ្រព្យសម្បត្តិ', + 'Confirm_accessory_delivery' => 'ការបញ្ជាក់ពីការដឹកជញ្ជូនគ្រឿងបន្លាស់', + 'Confirm_asset_delivery' => 'ការបញ្ជាក់ការចែកចាយទ្រព្យសកម្ម', + 'Confirm_consumable_delivery' => 'ការបញ្ជាក់ការដឹកជញ្ជូនដែលអាចប្រើប្រាស់បាន។', + 'Confirm_license_delivery' => 'ការបញ្ជាក់ពីការផ្តល់អាជ្ញាប័ណ្ណ', + 'Consumable_checkout_notification' => 'ទំនិញប្រើប្រាស់បាន checked out', + 'Days' => 'ថ្ងៃ', + 'Expected_Checkin_Date' => 'ទ្រព្យសកម្មដែលបាន checked out សម្រាប់អ្នកគឺត្រូវ checked in មកវិញនៅថ្ងៃ : date', + 'Expected_Checkin_Notification' => 'រំលឹក៖ ពេលវេលា checkin ឈ្មោះជិតមកដល់ហើយ។', + 'Expected_Checkin_Report' => 'របាយការណ៍ checkin ទ្រព្យសម្បត្តិដែលរំពឹងទុក', + 'Expiring_Assets_Report' => 'របាយការណ៍ទ្រព្យសកម្មផុតកំណត់។', + 'Expiring_Licenses_Report' => 'របាយការណ៍អាជ្ញាប័ណ្ណផុតកំណត់។', + 'Item_Request_Canceled' => 'សំណើធាតុត្រូវបានលុបចោល', + 'Item_Requested' => 'ធាតុដែលបានស្នើសុំ', + 'License_Checkin_Notification' => 'អាជ្ញាប័ណ្ណ checked in', + 'License_Checkout_Notification' => 'អាជ្ញាប័ណ្ណ checked out', + 'Low_Inventory_Report' => 'របាយការណ៍សារពើភ័ណ្ឌទាប', 'a_user_canceled' => 'អ្នក​ប្រើ​បាន​លុប​ចោល​សំណើ​ធាតុ​មួយ​នៅ​លើ​គេហទំព័រ', 'a_user_requested' => 'អ្នកប្រើប្រាស់បានស្នើសុំធាតុនៅលើគេហទំព័រ', - 'acceptance_asset_accepted' => 'A user has accepted an item', + 'acceptance_asset_accepted' => 'អ្នកប្រើប្រាស់បានទទួលយកធាតុមួយ។', 'acceptance_asset_declined' => 'អ្នកប្រើប្រាស់បានបដិសេធធាតុមួយ។', 'accessory_name' => 'ឈ្មោះគ្រឿងបន្លាស់៖', 'additional_notes' => 'កំណត់ចំណាំបន្ថែម៖', 'admin_has_created' => 'អ្នកគ្រប់គ្រងបានបង្កើតគណនីមួយសម្រាប់អ្នកនៅលើគេហទំព័រ៖ គេហទំព័រ។', 'asset' => 'ទ្រព្យសកម្ម៖', - 'asset_name' => 'Asset Name:', - 'asset_requested' => 'Asset requested', + 'asset_name' => 'ឈ្មោះទ្រព្យសកម្ម៖', + 'asset_requested' => 'បាន​ស្នើ​សុំ​ទ្រព្យ​សកម្ម', 'asset_tag' => 'ស្លាកទ្រព្យសម្បត្តិ', - 'assets_warrantee_alert' => 'There is :count asset with a warranty expiring in the next :threshold days.|There are :count assets with warranties expiring in the next :threshold days.', - 'assigned_to' => 'Assigned To', - 'best_regards' => 'Best regards,', - 'canceled' => 'Canceled:', + 'assets_warrantee_alert' => 'មាន : រាប់ទ្រព្យសកម្មជាមួយនឹងការធានាផុតកំណត់ក្នុងរយៈពេលបន្ទាប់ : threshold days។ | មាន : រាប់ទ្រព្យសកម្មជាមួយនឹងការធានាផុតកំណត់ក្នុងរយៈពេលបន្ទាប់ : threshold days ។', + 'assigned_to' => 'ចាត់តាំងទៅ', + 'best_regards' => 'សូមគោរព', + 'canceled' => 'បានលុបចោល៖', 'checkin_date' => 'កាលបរិច្ឆេទត្រឡប់មកវិញ:', 'checkout_date' => 'ថ្ងៃប្រគល់អោយ:', - 'checkedout_from' => 'Checked out from', - 'checkedin_from' => 'Checked in from', + 'checkedout_from' => 'Checked out ពី', + 'checkedin_from' => 'Checked in ពី', 'checked_into' => 'Checked into', - 'click_on_the_link_accessory' => 'Please click on the link at the bottom to confirm that you have received the accessory.', - 'click_on_the_link_asset' => 'Please click on the link at the bottom to confirm that you have received the asset.', - 'click_to_confirm' => 'Please click on the following link to confirm your :web account:', + 'click_on_the_link_accessory' => 'សូមចុចលើតំណភ្ជាប់នៅខាងក្រោមដើម្បីបញ្ជាក់ថាអ្នកបានទទួលគ្រឿងបន្លាស់។', + 'click_on_the_link_asset' => 'សូមចុចលើតំណភ្ជាប់នៅខាងក្រោម ដើម្បីបញ្ជាក់ថាអ្នកបានទទួលទ្រព្យសកម្ម។', + 'click_to_confirm' => 'សូមចុចលើតំណភ្ជាប់ខាងក្រោមដើម្បីបញ្ជាក់៖គណនីបណ្ដាញរបស់អ្នក៖', 'current_QTY' => 'Current QTY', - 'days' => 'Days', + 'days' => 'ថ្ងៃ', 'expecting_checkin_date' => 'កាលបរិច្ឆេទដែលរំពឹងទុកនឹង Checkin:', 'expires' => 'ផុតកំណត់', - 'hello' => 'Hello', - 'hi' => 'Hi', - 'i_have_read' => 'I have read and agree to the terms of use, and have received this item.', - 'inventory_report' => 'Inventory Report', - 'item' => 'Item:', - 'license_expiring_alert' => 'There is :count license expiring in the next :threshold days.|There are :count licenses expiring in the next :threshold days.', - 'link_to_update_password' => 'Please click on the following link to update your :web password:', - 'login' => 'Login:', - 'login_first_admin' => 'Login to your new Snipe-IT installation using the credentials below:', - 'low_inventory_alert' => 'There is :count item that is below minimum inventory or will soon be low.|There are :count items that are below minimum inventory or will soon be low.', + 'hello' => 'ជំរាបសួរ', + 'hi' => 'សួស្តី', + 'i_have_read' => 'ខ្ញុំបានអាន និងយល់ព្រមតាមលក្ខខណ្ឌនៃការប្រើប្រាស់ ហើយបានទទួលធាតុនេះ។', + 'inventory_report' => 'របាយការណ៍សារពើភ័ណ្ឌ', + 'item' => 'ធាតុ', + 'license_expiring_alert' => 'មាន :count License ផុតកំណត់ក្នុង :threshold days បន្ទាប់។ | មាន :count licenses ផុតកំណត់ក្នុង :threshold days បន្ទាប់។', + 'link_to_update_password' => 'សូមចុចលើតំណខាងក្រោមដើម្បីធ្វើបច្ចុប្បន្នភាព៖ពាក្យសម្ងាត់បណ្ដាញរបស់អ្នក៖', + 'login' => 'ចូល', + 'login_first_admin' => 'ចូលទៅកាន់ការដំឡើង Snipe-IT ថ្មីរបស់អ្នកដោយប្រើព័ត៌មានបញ្ជាក់អត្តសញ្ញាណខាងក្រោម៖', + 'low_inventory_alert' => 'មាន : រាប់ធាតុដែលទាបជាងសារពើភ័ណ្ឌអប្បបរមា ឬឆាប់ៗនេះនឹងមានកម្រិតទាប។|មាន : រាប់ធាតុដែលទាបជាងសារពើភណ្ឌអប្បបរមា ឬនឹងទាបឆាប់ៗនេះ។', 'min_QTY' => 'Min QTY', 'name' => 'ឈ្មោះ', - 'new_item_checked' => 'A new item has been checked out under your name, details are below.', + 'new_item_checked' => 'ធាតុថ្មីត្រូវបានchecked outក្រោមឈ្មោះរបស់អ្នក ព័ត៌មានលម្អិតមាននៅខាងក្រោម។', 'notes' => 'កំណត់ចំណាំ', - 'password' => 'Password:', - 'password_reset' => 'Password Reset', - 'read_the_terms' => 'Please read the terms of use below.', - 'read_the_terms_and_click' => 'Please read the terms of use below, and click on the link at the bottom to confirm that you read and agree to the terms of use, and have received the asset.', - 'requested' => 'Requested:', - 'reset_link' => 'Your Password Reset Link', - 'reset_password' => 'Click here to reset your password:', - 'rights_reserved' => 'All rights reserved.', + 'password' => 'ពាក្យសម្ងាត់', + 'password_reset' => 'កំណត់ពាក្យសម្ងាត់ឡើងវិញ', + 'read_the_terms' => 'សូមអានលក្ខខណ្ឌប្រើប្រាស់ខាងក្រោម។', + 'read_the_terms_and_click' => 'សូមអានលក្ខខណ្ឌនៃការប្រើប្រាស់ខាងក្រោម ហើយចុចលើតំណភ្ជាប់នៅខាងក្រោម ដើម្បីបញ្ជាក់ថាអ្នកបានអាន និងយល់ព្រមតាមលក្ខខណ្ឌនៃការប្រើប្រាស់ ហើយបានទទួលទ្រព្យសកម្ម។', + 'requested' => 'បានស្នើសុំ', + 'reset_link' => 'តំណកំណត់ពាក្យសម្ងាត់របស់អ្នកឡើងវិញ', + 'reset_password' => 'ចុចទីនេះដើម្បីកំណត់ពាក្យសម្ងាត់របស់អ្នកឡើងវិញ៖', + 'rights_reserved' => 'រក្សា​រ​សិទ្ធ​គ្រប់យ៉ាង។', 'serial' => 'Serial', - 'snipe_webhook_test' => 'Snipe-IT Integration Test', - 'snipe_webhook_summary' => 'Snipe-IT Integration Test Summary', + 'snipe_webhook_test' => 'ការធ្វើតេស្តរួមបញ្ចូល Snipe-IT', + 'snipe_webhook_summary' => 'សេចក្តីសង្ខេបការធ្វើតេស្តរួមបញ្ចូល Snipe-IT', 'supplier' => 'អ្នកផ្គត់ផ្គង់', 'tag' => 'Tag', - 'test_email' => 'Test Email from Snipe-IT', - 'test_mail_text' => 'This is a test from the Snipe-IT Asset Management System. If you got this, mail is working :)', - 'the_following_item' => 'The following item has been checked in: ', - 'to_reset' => 'To reset your :web password, complete this form:', + 'test_email' => 'សាកល្បងអ៊ីមែលពី Snipe-IT', + 'test_mail_text' => 'នេះគឺជាការសាកល្បងពីប្រព័ន្ធគ្រប់គ្រងទ្រព្យសកម្ម Snipe-IT។ ប្រសិនបើអ្នកទទួលបានវា សំបុត្រកំពុងដំណើរការ :)', + 'the_following_item' => 'ធាតុខាងក្រោមត្រូវបានchecked in៖ ', + 'to_reset' => 'ដើម្បីកំណត់:ពាក្យសម្ងាត់បណ្ដាញរបស់អ្នកឡើងវិញ សូមបំពេញទម្រង់បែបបទនេះ៖', 'type' => 'ប្រភេទ', - 'upcoming-audits' => 'There is :count asset that is coming up for audit within :threshold days.|There are :count assets that are coming up for audit within :threshold days.', + 'upcoming-audits' => 'មាន : រាប់ទ្រព្យសកម្មដែលនឹងមកដល់សម្រាប់សវនកម្មក្នុងរយៈពេល : threshold days។|មាន : រាប់ទ្រព្យសកម្មដែលនឹងមកដល់សម្រាប់សវនកម្មក្នុងរយៈពេល : threshold days ។', 'user' => 'អ្នក​ប្រើ', - 'username' => 'Username', - 'welcome' => 'Welcome :name', - 'welcome_to' => 'Welcome to :web!', - 'your_assets' => 'View Your Assets', - 'your_credentials' => 'Your Snipe-IT credentials', + 'username' => 'ឈ្មោះ​អ្នកប្រើប្រាស់', + 'welcome' => 'សូមស្វាគមន៍៖ ឈ្មោះ', + 'welcome_to' => 'សូមស្វាគមន៍មកកាន់៖ គេហទំព័រ!', + 'your_assets' => 'មើលទ្រព្យសកម្មរបស់អ្នក', + 'your_credentials' => 'លិខិតសម្គាល់ Snipe-IT របស់អ្នក។', ]; diff --git a/resources/lang/km-KH/pagination.php b/resources/lang/km-KH/pagination.php index b573b51e91..f0f9335e7a 100644 --- a/resources/lang/km-KH/pagination.php +++ b/resources/lang/km-KH/pagination.php @@ -13,8 +13,8 @@ return array( | */ - 'previous' => '« Previous', + 'previous' => '« មុន', - 'next' => 'Next »', + 'next' => 'បន្ទាប់ »', ); diff --git a/resources/lang/km-KH/table.php b/resources/lang/km-KH/table.php index bdebaaa83f..056779c4da 100644 --- a/resources/lang/km-KH/table.php +++ b/resources/lang/km-KH/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Actions', - 'action' => 'សកម្មភាព', - 'by' => 'By', - 'item' => 'ធាតុ', + 'actions' => 'សកម្មភាព', + 'action' => 'សកម្មភាព', + 'by' => 'By', + 'item' => 'ធាតុ', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/ko-KR/account/general.php b/resources/lang/ko-KR/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/ko-KR/account/general.php +++ b/resources/lang/ko-KR/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/ko-KR/admin/hardware/form.php b/resources/lang/ko-KR/admin/hardware/form.php index b0c79c57e6..e918213ebf 100644 --- a/resources/lang/ko-KR/admin/hardware/form.php +++ b/resources/lang/ko-KR/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => '주문 번호', 'qr' => 'QR 코드', 'requestable' => '사용자가 이 자산을 요청하실 수 있습니다', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => '상태 유형 선택', 'serial' => '일련번호', 'status' => '상태', diff --git a/resources/lang/ko-KR/admin/hardware/general.php b/resources/lang/ko-KR/admin/hardware/general.php index 36a3086baf..6edd60c67f 100644 --- a/resources/lang/ko-KR/admin/hardware/general.php +++ b/resources/lang/ko-KR/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => '자산 수정', 'model_deleted' => '모델이 삭제되었습니다. 자산을 복원하기 전에 모델을 복원해야 합니다.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => '요청가능', 'requested' => '요청됨', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/ko-KR/admin/users/message.php b/resources/lang/ko-KR/admin/users/message.php index 8ea68db410..efac4ad2fc 100644 --- a/resources/lang/ko-KR/admin/users/message.php +++ b/resources/lang/ko-KR/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => '사용자를 갱신하는 중 오류가 발생했습니다. 다시 시도해 주세요.', 'delete' => '사용자를 삭제하는 중 문제가 발생했습니다. 다시 시도해 주세요.', 'delete_has_assets' => '이 사용자에게 품목이 할당되었고 삭제할 수 없습니다.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => '사용자의 대기 해제 중 문제가 발생했습니다. 다시 시도하세요.', 'import' => '사용자를 내보내기 할 때 문제가 발생했습니다. 다시 시도하세요.', 'asset_already_accepted' => '이 자산은 이미 수락되었습니다.', 'accept_or_decline' => '이 자산을 승인 하거나 거부 하셔야 합니다.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => '승인하려는 자산이 체크아웃되지 않았습니다.', 'ldap_could_not_connect' => 'LDAP 서버에 접속 할 수 없습니다. LDAP 설정 파일의 LDAP 서버 구성을 확인해 보세요.
    LDAP 서버 오류:', 'ldap_could_not_bind' => 'LDAP 서버와 동기화 할 수 없습니다. LDAP 설정 파일의 LDAP 서버 구성을 확인해 보세요.
    LDAP 서버 오류: ', diff --git a/resources/lang/ko-KR/general.php b/resources/lang/ko-KR/general.php index 42ecb983c7..3c5db81d8f 100644 --- a/resources/lang/ko-KR/general.php +++ b/resources/lang/ko-KR/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => '활동 보고서', 'address' => '주소', 'admin' => '관리자', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => '관리자', 'add_seats' => '추가한 Seat', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => '요청 취소', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => '저장', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => '선택', @@ -398,8 +403,9 @@ return [ 'accessory_name' => '액세서리 이름', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% 완료', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/ko-KR/table.php b/resources/lang/ko-KR/table.php index 17b9a5ca84..243c8bb92a 100644 --- a/resources/lang/ko-KR/table.php +++ b/resources/lang/ko-KR/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => '기능', - 'action' => '작업', - 'by' => '요청자', - 'item' => '항목', + 'actions' => '기능', + 'action' => '작업', + 'by' => '요청자', + 'item' => '항목', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/lt-LT/account/general.php b/resources/lang/lt-LT/account/general.php index 1c6995ca10..4c1b82956d 100644 --- a/resources/lang/lt-LT/account/general.php +++ b/resources/lang/lt-LT/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokenai nustos galioti:', 'api_reference' => 'Prašau patikrinti API nuorodą, kad rasti API galinius taškus ir papildomą API dokumentaciją.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/lt-LT/admin/hardware/form.php b/resources/lang/lt-LT/admin/hardware/form.php index 13db0db6e7..572a77001f 100644 --- a/resources/lang/lt-LT/admin/hardware/form.php +++ b/resources/lang/lt-LT/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Užsakymo numeris', 'qr' => 'QR kodas', 'requestable' => 'Naudotojai galintys gauti šią įrangą', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Parinkti būklės tipą', 'serial' => 'Serijinis numeris', 'status' => 'Būklė', diff --git a/resources/lang/lt-LT/admin/hardware/general.php b/resources/lang/lt-LT/admin/hardware/general.php index b03ea169c5..1667e95aa9 100644 --- a/resources/lang/lt-LT/admin/hardware/general.php +++ b/resources/lang/lt-LT/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Ar jūs tikrai norite ištrinti šią įrangą?', 'edit' => 'Keisti įrangą', 'model_deleted' => 'Šios įrangos modelis yra ištrintas. Pirma turite atstattyti modelį, tada galėsite atstatyti įrangą.', - 'model_invalid' => 'Neteisingas įrangos modelis.', - 'model_invalid_fix' => 'Įranga turi būti pataisyta prieš ją įregistruojant ar išregistruojant.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Reiklaujamas', 'requested' => 'Užklausta', 'not_requestable' => 'Nereikalaujamas', diff --git a/resources/lang/lt-LT/admin/users/message.php b/resources/lang/lt-LT/admin/users/message.php index 4f1ed6980f..5b0f115984 100644 --- a/resources/lang/lt-LT/admin/users/message.php +++ b/resources/lang/lt-LT/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Nepavyko atnaujinti naudotojo. Prašome bandykite dar kartą.', 'delete' => 'Nepavyko ištrinti naudotojo. Prašome bandykite dar kartą.', 'delete_has_assets' => 'Šis vartotojas turi priskirtus elementus, kurių negalima ištrinti.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Nepavyko atšaldyti naudotojo. Prašome bandykite dar kartą.', 'import' => 'Nepavyko įkelti naudotojų. Prašome bandykite dar kartą.', 'asset_already_accepted' => 'ši įranga jau buvo priimta.', 'accept_or_decline' => 'Jūs turite arba priimti arba atmesti šią įrangą.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Įranga kurią bandote priimti, nebuvo priskirta Jums.', 'ldap_could_not_connect' => 'Negali prisijungti prie LDAP serverio. Prašome patikrinkite savo LDAP serverio konfigūraciją LDAP konfigūracijos faile.
    Klaida iš LDAP Serverio:', 'ldap_could_not_bind' => 'Negali nustatyti vartotojo prisijungiant prie LDAP serverio. Prašome patikrinkite savo LDAP serverio konfigūraciją LDAP konfigūracijos faile.
    Klaida iš LDAP Serverio: ', diff --git a/resources/lang/lt-LT/general.php b/resources/lang/lt-LT/general.php index e02597a601..5a6f897f6b 100644 --- a/resources/lang/lt-LT/general.php +++ b/resources/lang/lt-LT/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Veiksmų ataskaita', 'address' => 'Adresas', 'admin' => 'Administratorius', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administratorius', 'add_seats' => 'Prideta licenzijų', 'age' => "Amžius", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Prašoma įranga', 'requested_assets_menu' => 'Prašoma įranga', 'request_canceled' => 'Prašymas atšauktas', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Išsaugoti', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Pasirinkite', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Priedo pavadinimas:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'Sistema laikinai nepasiekiama', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Antroji adreso eilutė', 'import_note' => 'Importuota naudojantis csv importo įrankiu', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% baigta', 'uploading' => 'Įkeliama... ', 'upload_error' => 'Klaida kraunant bylą. Patikrinkite, ar nėra tuščių eilučių ar dublių stulpelių pavadinimuose.', diff --git a/resources/lang/lt-LT/table.php b/resources/lang/lt-LT/table.php index dccf8ca6f7..30e2a0575e 100644 --- a/resources/lang/lt-LT/table.php +++ b/resources/lang/lt-LT/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Veiksmai', - 'action' => 'Veiksmas', - 'by' => 'Atlikti', - 'item' => 'Įranga', + 'actions' => 'Veiksmai', + 'action' => 'Veiksmas', + 'by' => 'Atlikti', + 'item' => 'Įranga', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/lv-LV/account/general.php b/resources/lang/lv-LV/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/lv-LV/account/general.php +++ b/resources/lang/lv-LV/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/lv-LV/admin/hardware/form.php b/resources/lang/lv-LV/admin/hardware/form.php index c68fed0f66..ded57c1765 100644 --- a/resources/lang/lv-LV/admin/hardware/form.php +++ b/resources/lang/lv-LV/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Pasūtījuma numurs', 'qr' => 'QR kods', 'requestable' => 'Lietotāji var pieprasīt šo aktīvu', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Atlasiet statusa veidu', 'serial' => 'Sērijas numurs', 'status' => 'Statuss', diff --git a/resources/lang/lv-LV/admin/hardware/general.php b/resources/lang/lv-LV/admin/hardware/general.php index 9d99c68154..0cf01a247d 100644 --- a/resources/lang/lv-LV/admin/hardware/general.php +++ b/resources/lang/lv-LV/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Rediģēt īpašumu', 'model_deleted' => 'Šis pamatlīdzekļu modelis ir dzēsts. Jums ir jāatjauno modelis pirms drīkstiet atjaunot pamatlīdzekli.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Pieļaujams', 'requested' => 'Pieprasīts', 'not_requestable' => 'Nav pieprasāms', diff --git a/resources/lang/lv-LV/admin/users/message.php b/resources/lang/lv-LV/admin/users/message.php index fbde00ccbf..0779e5c823 100644 --- a/resources/lang/lv-LV/admin/users/message.php +++ b/resources/lang/lv-LV/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Radās problēma, atjauninot lietotāju. Lūdzu mēģiniet vēlreiz.', 'delete' => 'Radās problēma, izdzēšot lietotāju. Lūdzu mēģiniet vēlreiz.', 'delete_has_assets' => 'Šim lietotājam ir piešķirti priekšmeti un to nevarēja dzēst.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Nebija saistīta problēma, kas saistītu ar lietotāju. Lūdzu mēģiniet vēlreiz.', 'import' => 'Bija problēma importēt lietotājus. Lūdzu mēģiniet vēlreiz.', 'asset_already_accepted' => 'Šis aktīvs jau ir pieņemts.', 'accept_or_decline' => 'Jums ir vai nu jāpieņem vai jāatsakās no šī īpašuma.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Aktīvs, kuru jūs mēģinājāt pieņemt, netika izrakstīts jums.', 'ldap_could_not_connect' => 'Nevarēja izveidot savienojumu ar LDAP serveri. Lūdzu, pārbaudiet LDAP servera konfigurāciju LDAP konfigurācijas failā.
    Par LDAP servera kļūda:', 'ldap_could_not_bind' => 'Nevarēja saistīties ar LDAP serveri. Lūdzu, pārbaudiet LDAP servera konfigurāciju LDAP konfigurācijas failā.
    Par LDAP servera kļūda:', diff --git a/resources/lang/lv-LV/general.php b/resources/lang/lv-LV/general.php index 1876fa78a2..b83c561944 100644 --- a/resources/lang/lv-LV/general.php +++ b/resources/lang/lv-LV/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Darbības pārskats', 'address' => 'Adrese', 'admin' => 'Administrators', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrators', 'add_seats' => 'Pievienoti sēdekļi', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Pieprasījums atcelts', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Saglabājiet', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Izvēlieties', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Piederumu nosaukums:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% pabeigt', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/lv-LV/table.php b/resources/lang/lv-LV/table.php index 1e36198579..2e407b03db 100644 --- a/resources/lang/lv-LV/table.php +++ b/resources/lang/lv-LV/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Darbības', - 'action' => 'Darbība', - 'by' => 'Līdz', - 'item' => 'Vienums', + 'actions' => 'Darbības', + 'action' => 'Darbība', + 'by' => 'Līdz', + 'item' => 'Vienums', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/mi-NZ/account/general.php b/resources/lang/mi-NZ/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/mi-NZ/account/general.php +++ b/resources/lang/mi-NZ/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/mi-NZ/admin/hardware/form.php b/resources/lang/mi-NZ/admin/hardware/form.php index 17846e251b..2c57d95a89 100644 --- a/resources/lang/mi-NZ/admin/hardware/form.php +++ b/resources/lang/mi-NZ/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Tau Tau', 'qr' => 'QR Code', 'requestable' => 'Ka taea e nga kaiwhakamahi te tono mo tenei taonga', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Tīpakohia te Momo Tūnga', 'serial' => 'Waea', 'status' => 'Tūnga', diff --git a/resources/lang/mi-NZ/admin/hardware/general.php b/resources/lang/mi-NZ/admin/hardware/general.php index bae21c7491..e21838fc55 100644 --- a/resources/lang/mi-NZ/admin/hardware/general.php +++ b/resources/lang/mi-NZ/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Whakatikahia te Ahua', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Ka taea te tuku', 'requested' => 'I tonohia', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/mi-NZ/admin/users/message.php b/resources/lang/mi-NZ/admin/users/message.php index d0d38c29d2..2ad8d30aab 100644 --- a/resources/lang/mi-NZ/admin/users/message.php +++ b/resources/lang/mi-NZ/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'He raru kei te whakahou i te kaiwhakamahi. Tena ngana ano.', 'delete' => 'He raru kei te whakakore i te kaiwhakamahi. Tena ngana ano.', 'delete_has_assets' => 'Kei a tenei kaiwhakamahi nga mea kua tohua me te kore e taea te muku.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'He raruraru kaore i te whakautu i te kaiwhakamahi. Tena ngana ano.', 'import' => 'He raruraru e kawemai ana i nga kaiwhakamahi. Tena ngana ano.', 'asset_already_accepted' => 'Kua whakaaetia tenei taonga.', 'accept_or_decline' => 'Me whakaae ranei koe ki te whakakore i tenei taonga.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Ko te taonga i whaia e koe ki te whakaae kihai i tukuna ki a koe.', 'ldap_could_not_connect' => 'Kāore i taea te hono atu ki te tūmau LDAP. Titiro koa ki te whirihoranga o tō tūmau LDAP i te kōnae whirihora LDAP.
    Error mai i te Tūmau LDAP:', 'ldap_could_not_bind' => 'Kāore i taea te here ki te tūmau LDAP. Titiro koa ki te whirihoranga o tō tūmau LDAP i te kōnae whirihora LDAP.
    Error mai i te Tūmau LDAP:', diff --git a/resources/lang/mi-NZ/general.php b/resources/lang/mi-NZ/general.php index 2557d93781..c2e0112c86 100644 --- a/resources/lang/mi-NZ/general.php +++ b/resources/lang/mi-NZ/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Mahinga Mahi', 'address' => 'Wāhitau', 'admin' => 'Kaiwhakahaere', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Ngā nohoanga kua whakaurua', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Tono Whakamutua', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Tiaki', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Tīpako', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Ingoa Whakauru:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% kua oti', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/mi-NZ/table.php b/resources/lang/mi-NZ/table.php index 105af16182..3721c8cfd5 100644 --- a/resources/lang/mi-NZ/table.php +++ b/resources/lang/mi-NZ/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Nga mahi', - 'action' => 'Mahi', - 'by' => 'Na', - 'item' => 'Tuhinga', + 'actions' => 'Nga mahi', + 'action' => 'Mahi', + 'by' => 'Na', + 'item' => 'Tuhinga', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/mk-MK/account/general.php b/resources/lang/mk-MK/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/mk-MK/account/general.php +++ b/resources/lang/mk-MK/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/mk-MK/admin/hardware/form.php b/resources/lang/mk-MK/admin/hardware/form.php index 4e7fc4e3f1..40ff699106 100644 --- a/resources/lang/mk-MK/admin/hardware/form.php +++ b/resources/lang/mk-MK/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Број на нарачка', 'qr' => 'QR Код', 'requestable' => 'Корисниците може да го побараат ова средство', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Изберете статус', 'serial' => 'Сериски број', 'status' => 'Статус', diff --git a/resources/lang/mk-MK/admin/hardware/general.php b/resources/lang/mk-MK/admin/hardware/general.php index 0183a9499e..ebe0c7fbca 100644 --- a/resources/lang/mk-MK/admin/hardware/general.php +++ b/resources/lang/mk-MK/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Уредување на основно средство', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Може да се побара', 'requested' => 'Побарано', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/mk-MK/admin/users/message.php b/resources/lang/mk-MK/admin/users/message.php index a79782a40a..cf76e9efb4 100644 --- a/resources/lang/mk-MK/admin/users/message.php +++ b/resources/lang/mk-MK/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Имаше проблем со ажурирање на корисникот. Обидете се повторно.', 'delete' => 'Имаше проблем со бришење на корисникот. Обидете се повторно.', 'delete_has_assets' => 'Корисникот има задолжени ставки и не може да биде избришан.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Имаше проблем со отстранување на привременото блокирање. Обидете се повторно.', 'import' => 'Имаше проблем со увозот на корисници. Обидете се повторно.', 'asset_already_accepted' => 'Ова основно средство веќе е прифатено.', 'accept_or_decline' => 'Мора да го прифатите или одбиете основното средство.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Средството што се обидовте да го прифатите не е задожено на Вас.', 'ldap_could_not_connect' => 'Не можам да се поврзам со LDAP серверот. Проверете ја конфигурацијата за LDAP сервер во LDAP конфигурациската датотека.
    Грешка од LDAP-серверот:', 'ldap_could_not_bind' => 'Не можам да се поврзам со LDAP серверот. Проверете ја конфигурацијата за LDAP сервер во LDAP конфигурациската датотека.
    Грешка од LDAP-серверот: ', diff --git a/resources/lang/mk-MK/general.php b/resources/lang/mk-MK/general.php index 8c6b42cedb..bd2167d9ba 100644 --- a/resources/lang/mk-MK/general.php +++ b/resources/lang/mk-MK/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Извештај за активност', 'address' => 'Адреса', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Администратор', 'add_seats' => 'Додадени места', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Барањето е откажано', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Зачувај', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Избери', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Име на додаток:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% завршено', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/mk-MK/table.php b/resources/lang/mk-MK/table.php index f0cfcc0288..1099a075a4 100644 --- a/resources/lang/mk-MK/table.php +++ b/resources/lang/mk-MK/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Акции', - 'action' => 'Акција', - 'by' => 'Од', - 'item' => 'Ставка', + 'actions' => 'Акции', + 'action' => 'Акција', + 'by' => 'Од', + 'item' => 'Ставка', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/ml-IN/account/general.php b/resources/lang/ml-IN/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/ml-IN/account/general.php +++ b/resources/lang/ml-IN/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/ml-IN/admin/hardware/form.php b/resources/lang/ml-IN/admin/hardware/form.php index a7aba0813c..edec543637 100644 --- a/resources/lang/ml-IN/admin/hardware/form.php +++ b/resources/lang/ml-IN/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Order Number', 'qr' => 'QR Code', 'requestable' => 'Users may request this asset', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Select Status Type', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/lang/ml-IN/admin/hardware/general.php b/resources/lang/ml-IN/admin/hardware/general.php index f7f8ad4d06..34ac4e63ee 100644 --- a/resources/lang/ml-IN/admin/hardware/general.php +++ b/resources/lang/ml-IN/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Edit Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Requested', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/ml-IN/admin/users/message.php b/resources/lang/ml-IN/admin/users/message.php index b7c0a29f14..4d014775bd 100644 --- a/resources/lang/ml-IN/admin/users/message.php +++ b/resources/lang/ml-IN/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'There was an issue updating the user. Please try again.', 'delete' => 'There was an issue deleting the user. Please try again.', 'delete_has_assets' => 'This user has items assigned and could not be deleted.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', 'import' => 'There was an issue importing users. Please try again.', 'asset_already_accepted' => 'This asset has already been accepted.', 'accept_or_decline' => 'You must either accept or decline this asset.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'The asset you have attempted to accept was not checked out to you.', 'ldap_could_not_connect' => 'Could not connect to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server:', 'ldap_could_not_bind' => 'Could not bind to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server: ', diff --git a/resources/lang/ml-IN/general.php b/resources/lang/ml-IN/general.php index 2313cc9bb2..073a46b87e 100644 --- a/resources/lang/ml-IN/general.php +++ b/resources/lang/ml-IN/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Activity Report', 'address' => 'വിലാസം', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Added seats', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Request Canceled', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Save', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Select', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Accessory Name:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% complete', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/ml-IN/table.php b/resources/lang/ml-IN/table.php index f7a49d86c1..16e32b148f 100644 --- a/resources/lang/ml-IN/table.php +++ b/resources/lang/ml-IN/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Actions', - 'action' => 'Action', - 'by' => 'By', - 'item' => 'Item', + 'actions' => 'Actions', + 'action' => 'Action', + 'by' => 'By', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/mn-MN/account/general.php b/resources/lang/mn-MN/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/mn-MN/account/general.php +++ b/resources/lang/mn-MN/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/mn-MN/admin/hardware/form.php b/resources/lang/mn-MN/admin/hardware/form.php index 25cfc5152a..61a2ccd71a 100644 --- a/resources/lang/mn-MN/admin/hardware/form.php +++ b/resources/lang/mn-MN/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Захиалгын дугаар', 'qr' => 'QR код', 'requestable' => 'Хэрэглэгчид энэ хөрөнгийг шаардаж болно', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Статусын төрлийг сонгоно уу', 'serial' => 'Цуваа', 'status' => 'Статус', diff --git a/resources/lang/mn-MN/admin/hardware/general.php b/resources/lang/mn-MN/admin/hardware/general.php index 8a749009bb..3e49ffa554 100644 --- a/resources/lang/mn-MN/admin/hardware/general.php +++ b/resources/lang/mn-MN/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Хөрөнгийг засварлах', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Уучлаарай', 'requested' => 'Хүсэлт гаргасан', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/mn-MN/admin/users/message.php b/resources/lang/mn-MN/admin/users/message.php index b37a44d2c6..c0fad766d6 100644 --- a/resources/lang/mn-MN/admin/users/message.php +++ b/resources/lang/mn-MN/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Хэрэглэгчийг шинэчлэхэд асуудал гарлаа. Дахин оролдоно уу.', 'delete' => 'Хэрэглэгчийг устгахад асуудал гарлаа. Дахин оролдоно уу.', 'delete_has_assets' => 'Энэ хэрэглэгчид оноосон зүйлтэй бөгөөд устгах боломжгүй байна.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Хэрэглэгчийг түдгэлзүүлэхэд асуудал үүссэн. Дахин оролдоно уу.', 'import' => 'Хэрэглэгч импортлох асуудал гарсан. Дахин оролдоно уу.', 'asset_already_accepted' => 'Энэ хөрөнгийг аль хэдийн хүлээн авлаа.', 'accept_or_decline' => 'Та энэ хөрөнгийг хүлээн зөвшөөрөх эсвэл хасах ёстой.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Таны хүлээн авахыг оролдсон хөрөнгө таныг шалгаагүй байна.', 'ldap_could_not_connect' => 'LDAP сервертэй холбогдож чадсангүй. LDAP серверийн тохиргоог LDAP тохиргооны файлдаа шалгана уу.
    LDAP серверийн алдаа:', 'ldap_could_not_bind' => 'LDAP сервертэй холбогдож чадахгүй байна. LDAP серверийн тохиргоог LDAP тохиргооны файлдаа шалгана уу.
    LDAP серверийн алдаа:', diff --git a/resources/lang/mn-MN/general.php b/resources/lang/mn-MN/general.php index 0d410edb54..7a1cd90c0e 100644 --- a/resources/lang/mn-MN/general.php +++ b/resources/lang/mn-MN/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Үйл ажиллагааны тайлан', 'address' => 'Хаяг', 'admin' => 'админ', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Админ', 'add_seats' => 'Суудал нэмсэн', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Хүсэлтийг цуцалсан', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Хадгалах', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Сонгох', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Дагалдах хэрэгслийн нэр:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% бүрэн дуусгах', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/mn-MN/table.php b/resources/lang/mn-MN/table.php index 2582fbd470..a75e0426c0 100644 --- a/resources/lang/mn-MN/table.php +++ b/resources/lang/mn-MN/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Үйлдлүүд', - 'action' => 'Үйлдэл', - 'by' => 'Хэрэглэгч', - 'item' => 'Зүйл', + 'actions' => 'Үйлдлүүд', + 'action' => 'Үйлдэл', + 'by' => 'Хэрэглэгч', + 'item' => 'Зүйл', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/ms-MY/account/general.php b/resources/lang/ms-MY/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/ms-MY/account/general.php +++ b/resources/lang/ms-MY/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/ms-MY/admin/hardware/form.php b/resources/lang/ms-MY/admin/hardware/form.php index e1d45aed6c..d482551993 100644 --- a/resources/lang/ms-MY/admin/hardware/form.php +++ b/resources/lang/ms-MY/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Nombor Pesanan', 'qr' => 'Kod QR', 'requestable' => 'Pengguna dibenarkan untuk memohon harta ini', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Pilih Jenis Status', 'serial' => 'Siri', 'status' => 'Status', diff --git a/resources/lang/ms-MY/admin/hardware/general.php b/resources/lang/ms-MY/admin/hardware/general.php index 76da8be4ab..df49aaa496 100644 --- a/resources/lang/ms-MY/admin/hardware/general.php +++ b/resources/lang/ms-MY/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Kemaskini Harta', 'model_deleted' => 'Model Aset ini telah dipadamkan. Anda mesti kembalikan model sebelum anda boleh kembalikan Aset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Diminta', 'requested' => 'Diminta', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/ms-MY/admin/users/message.php b/resources/lang/ms-MY/admin/users/message.php index d943231949..893f110b21 100644 --- a/resources/lang/ms-MY/admin/users/message.php +++ b/resources/lang/ms-MY/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Ada isu semasa mencipta pengguna. Sila cuba lagi.', 'delete' => 'Ada isu semasa menghapuskan pengguna. Sila cuba lagi.', 'delete_has_assets' => 'Pengguna ini mempunyai item yang ditetapkan dan tidak dapat dipadamkan.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Ada isu semasa melepakan pengguna. Sila cuba lagi. ', 'import' => 'Terdapat masalah mengimport pengguna. Sila cuba lagi.', 'asset_already_accepted' => 'Aset ini telah diterima.', 'accept_or_decline' => 'Anda mesti menerima atau menolak aset ini.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Aset yang anda telah cuba terima tidak diperiksa kepada anda.', 'ldap_could_not_connect' => 'Tidak dapat menyambung ke pelayan LDAP. Sila periksa konfigurasi pelayan LDAP anda dalam fail konfigurasi LDAP.
    Error dari LDAP Server:', 'ldap_could_not_bind' => 'Tidak dapat mengikat pelayan LDAP. Sila periksa konfigurasi pelayan LDAP anda dalam fail konfigurasi LDAP.
    Error dari LDAP Server:', diff --git a/resources/lang/ms-MY/general.php b/resources/lang/ms-MY/general.php index 2327ff751c..3020411c41 100644 --- a/resources/lang/ms-MY/general.php +++ b/resources/lang/ms-MY/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Laporan Aktiviti', 'address' => 'Alamat', 'admin' => 'Pentadbir', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Pentadbir', 'add_seats' => 'Menambah kerusi', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Permintaan Dibatalkan', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Simpan', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Pilih', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Nama Aksesori:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% lengkap', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/ms-MY/table.php b/resources/lang/ms-MY/table.php index 5c3e925fe1..90a941e8b3 100644 --- a/resources/lang/ms-MY/table.php +++ b/resources/lang/ms-MY/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Tindakan', - 'action' => 'Tindakan', - 'by' => 'Oleh', - 'item' => 'Perkara', + 'actions' => 'Tindakan', + 'action' => 'Tindakan', + 'by' => 'Oleh', + 'item' => 'Perkara', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/nl-NL/account/general.php b/resources/lang/nl-NL/account/general.php index 417063ebc1..706bd2da43 100644 --- a/resources/lang/nl-NL/account/general.php +++ b/resources/lang/nl-NL/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens zijn ingesteld om te verlopen in:', 'api_reference' => 'Raadpleeg de API-referentie om specifieke API-eindpunten en aanvullende API-documentatie te vinden.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/nl-NL/admin/hardware/form.php b/resources/lang/nl-NL/admin/hardware/form.php index b491956572..6dbf2a442b 100644 --- a/resources/lang/nl-NL/admin/hardware/form.php +++ b/resources/lang/nl-NL/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Ordernummer', 'qr' => 'QR-code', 'requestable' => 'Gebruikers mogen dit asset aanvragen', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Selecteer status type', 'serial' => 'Serienummer', 'status' => 'Status', diff --git a/resources/lang/nl-NL/admin/hardware/general.php b/resources/lang/nl-NL/admin/hardware/general.php index 17ca795eb2..b0df639d32 100644 --- a/resources/lang/nl-NL/admin/hardware/general.php +++ b/resources/lang/nl-NL/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Weet u zeker dat u dit item wilt verwijderen?', 'edit' => 'Asset bewerken', 'model_deleted' => 'Dit Assets model is verwijderd. U moet het model herstellen voordat u het Asset kunt herstellen.', - 'model_invalid' => 'Het model van dit item is ongeldig.', - 'model_invalid_fix' => 'Het asset moet worden bewerkt om dit te corrigeren voordat u probeert het in of uit te checken.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Aanvraagbaar', 'requested' => 'Aangevraagd', 'not_requestable' => 'Niet aanvraagbaar', diff --git a/resources/lang/nl-NL/admin/users/message.php b/resources/lang/nl-NL/admin/users/message.php index 9ad83d4b76..e6741bd994 100644 --- a/resources/lang/nl-NL/admin/users/message.php +++ b/resources/lang/nl-NL/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Er was een probleem tijdens het bijwerken van de gebruiker. Probeer opnieuw, aub.', 'delete' => 'Er was een probleem tijdens het verwijderen van de gebruiker. Probeer opnieuw, aub.', 'delete_has_assets' => 'Deze gebruiker heeft toegewezen items en kon niet worden verwijderd.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Er was een probleem tijdens het opnieuw inschakelen van de gebruiker. Probeer opnieuw, aub.', 'import' => 'Er was een probleem met het importeren van de gebruikers. Probeer het opnieuw.', 'asset_already_accepted' => 'Dit asset is al geaccepteerd.', 'accept_or_decline' => 'Je moet dit asset accepteren of weigeren.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Het asset dat je probeerde te accepteren is niet uitgecheckt aan jou.', 'ldap_could_not_connect' => 'Kan niet verbinden met de LDAP server. Controleer je LDAP server configuratie in de LDAP configuratie bestand.
    Fout van LDAP server:', 'ldap_could_not_bind' => 'Kan niet verbinden met de LDAP server. Controleer je LDAP server configuratie in de LDAP configuratie bestand.
    Fout van LDAP server: ', diff --git a/resources/lang/nl-NL/general.php b/resources/lang/nl-NL/general.php index 371b6a3058..53afeec3ec 100644 --- a/resources/lang/nl-NL/general.php +++ b/resources/lang/nl-NL/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Activiteitenrapportage', 'address' => 'Adres', 'admin' => 'Beheerder', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Beheerder', 'add_seats' => 'Toegevoegde plekken', 'age' => "Leeftijd", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Aangevraagd activa', 'requested_assets_menu' => 'Aangevraagde activa', 'request_canceled' => 'Aanvraag geannuleerd', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Opslaan', 'select_var' => 'Selecteer :thing... ', // this will eventually replace all of our other selects 'select' => 'Selecteer', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Accessoire naam:', 'clone_item' => 'Item dupliceren', 'checkout_tooltip' => 'Check dit item uit', - 'checkin_tooltip' => 'Check dit item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check dit item uit aan een gebruiker', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'De service is tijdelijk niet beschikbaar voor systeemupdates. Probeer het later nog eens.', 'maintenance_mode_title' => 'Dienst tijdelijk niet beschikbaar', 'ldap_import' => 'Het gebruikerswachtwoord mag niet worden beheerd door LDAP. (Hiermee kun je vergeten wachtwoord aanvragen verzenden.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Adresregel 2', 'import_note' => 'Geïmporteerd met csv-bestand', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% voltooid', 'uploading' => 'Uploaden... ', 'upload_error' => 'Fout bij het uploaden. Controleer of er geen lege rijen zijn en dat er geen kolomnamen zijn gedupliceerd.', diff --git a/resources/lang/nl-NL/table.php b/resources/lang/nl-NL/table.php index 1125daf164..6260b042cc 100644 --- a/resources/lang/nl-NL/table.php +++ b/resources/lang/nl-NL/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Acties', - 'action' => 'Actie', - 'by' => 'Door', - 'item' => 'Item', + 'actions' => 'Acties', + 'action' => 'Actie', + 'by' => 'Door', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/no-NO/account/general.php b/resources/lang/no-NO/account/general.php index af2392a8a6..41f0dce68a 100644 --- a/resources/lang/no-NO/account/general.php +++ b/resources/lang/no-NO/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API-tokens er satt til å utløpe om:', 'api_reference' => 'Sjekk API-referanse for å finne spesifikke API-endepunkter og ytterligere API-dokumentasjon.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/no-NO/admin/hardware/form.php b/resources/lang/no-NO/admin/hardware/form.php index 8be275ddfa..f58d7b8cb9 100644 --- a/resources/lang/no-NO/admin/hardware/form.php +++ b/resources/lang/no-NO/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Ordrenummer', 'qr' => 'QR-kode', 'requestable' => 'Brukere kan be om eiendel', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Velg statustype', 'serial' => 'Serienummer', 'status' => 'Status', diff --git a/resources/lang/no-NO/admin/hardware/general.php b/resources/lang/no-NO/admin/hardware/general.php index 198539b4fb..9b19b6b2a0 100644 --- a/resources/lang/no-NO/admin/hardware/general.php +++ b/resources/lang/no-NO/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Er du sikker på at du vil slette denne ressursen?', 'edit' => 'Rediger eiendel', 'model_deleted' => 'Denne eiendelsmodellen er slettet. Du må gjenopprette modellen før du kan gjenopprette eiendelen.', - 'model_invalid' => 'Modellen til denne ressursen er ugyldig.', - 'model_invalid_fix' => 'Ressursen burde endres for å rette opp dette før du prøver å sjekke det inn eller ut.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Forespørrbar', 'requested' => 'Forespurt', 'not_requestable' => 'Ikke mulig å spørre etter', diff --git a/resources/lang/no-NO/admin/users/message.php b/resources/lang/no-NO/admin/users/message.php index 902bf92f28..ece6cbec5e 100644 --- a/resources/lang/no-NO/admin/users/message.php +++ b/resources/lang/no-NO/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Det oppstod et problem under oppdatering av bruker. Prøv igjen.', 'delete' => 'Det oppstod et problem under sletting av bruker. Prøv igjen.', 'delete_has_assets' => 'Denne brukeren har utstyr tildelt og kan ikke slettes.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Det oppstod et problem under aktivering av bruker. Prøv igjen.', 'import' => 'Det oppstod et problem under import av brukere. Prøv igjen.', 'asset_already_accepted' => 'Denne eiendelen er allerede akseptert.', 'accept_or_decline' => 'Du må enten akseptere eller avvise denne eiendelen.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Eiendelen du prøvde å akseptere ble ikke sjekket ut til deg.', 'ldap_could_not_connect' => 'Kunne ikke kople til LDAP-serveren. Sjekk LDAP-innstillingene i konfigurasjonsfilen.
    Feil fra LDAP-server:', 'ldap_could_not_bind' => 'Kunne ikke opprette tilkopling til LDAP-server. Sjekk LDAP-innstillingene i konfigurasjonsfilen.
    Feil fra LDAP-server: ', diff --git a/resources/lang/no-NO/general.php b/resources/lang/no-NO/general.php index 22d646787c..53e7927f97 100644 --- a/resources/lang/no-NO/general.php +++ b/resources/lang/no-NO/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Aktivitetsrapport', 'address' => 'Adresse', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Setelisenser lagt til', 'age' => "Alder", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Forespurte eiendeler', 'requested_assets_menu' => 'Forespurte eiendeler', 'request_canceled' => 'Forespørsel avbrutt', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Lagre', 'select_var' => 'Velg :thing... ', // this will eventually replace all of our other selects 'select' => 'Velg', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Tilbehørets navn:', 'clone_item' => 'Klon element', 'checkout_tooltip' => 'Sjekk ut denne gjenstanden', - 'checkin_tooltip' => 'Sjekk inn dette elementet', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Sjekk dette elementet ut til en bruker', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Tjenesten er midlertidig utilgjengelig for systemoppdateringer. Vennligst prøv igjen senere.', 'maintenance_mode_title' => 'System midlertidig ikke tilgjengelig', 'ldap_import' => 'Brukerpassord bør ikke administreres av LDAP. (Dette lar deg sende glemte passord forespørsler.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Adresselinje 2', 'import_note' => 'Importert med csv-importør', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% fullført', 'uploading' => 'Laster opp... ', 'upload_error' => 'Feil ved opplasting av fil. Vennligst sjekk at det ikke er noen tomme rader og at ingen kolonnenavn er duplisert.', diff --git a/resources/lang/no-NO/table.php b/resources/lang/no-NO/table.php index 25b8be6b6a..f32ec7ca4b 100644 --- a/resources/lang/no-NO/table.php +++ b/resources/lang/no-NO/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Handlinger', - 'action' => 'Handling', - 'by' => 'Av', - 'item' => 'Enhet', + 'actions' => 'Handlinger', + 'action' => 'Handling', + 'by' => 'Av', + 'item' => 'Enhet', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/pl-PL/account/general.php b/resources/lang/pl-PL/account/general.php index 4c8d9a4f6c..19c0700bc1 100644 --- a/resources/lang/pl-PL/account/general.php +++ b/resources/lang/pl-PL/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'Tokeny API tracą ważność za:', 'api_reference' => 'Sprawdź API reference, aby znaleźć konkretne enpoint-y API i dodatkową dokumentację API.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/pl-PL/admin/hardware/form.php b/resources/lang/pl-PL/admin/hardware/form.php index 5a96b8acb4..156307e07d 100644 --- a/resources/lang/pl-PL/admin/hardware/form.php +++ b/resources/lang/pl-PL/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Numer zamówienia', 'qr' => 'Kod QR', 'requestable' => 'Użytkownicy mogą wymagać tego zasobu', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Wybierz status', 'serial' => 'Numer seryjny', 'status' => 'Status', diff --git a/resources/lang/pl-PL/admin/hardware/general.php b/resources/lang/pl-PL/admin/hardware/general.php index 76a72a2984..3005434105 100644 --- a/resources/lang/pl-PL/admin/hardware/general.php +++ b/resources/lang/pl-PL/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Czy na pewno chcesz usunąć?', 'edit' => 'Edytuj zasób', 'model_deleted' => 'Ten model zasobów został usunięty. Musisz przywrócić model zanim będziesz mógł przywrócić zasób.', - 'model_invalid' => 'Model tego zasobu jest nieprawidłowy.', - 'model_invalid_fix' => 'Zasób powinien być edytowany w celu poprawienia tego przed próbą przyjęcia go lub wydania.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Żądane', 'requested' => 'Zamówione', 'not_requestable' => 'Brak możliwości zarządzania', diff --git a/resources/lang/pl-PL/admin/users/message.php b/resources/lang/pl-PL/admin/users/message.php index d7a60baf09..72172694fb 100644 --- a/resources/lang/pl-PL/admin/users/message.php +++ b/resources/lang/pl-PL/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Podczas aktualizacji użytkownika wystąpił problem. Spróbuj ponownie.', 'delete' => 'Wystąpił błąd podczas usuwania użytkownika. Spróbuj ponownie.', 'delete_has_assets' => 'Ten użytkownik posiada elementy przypisane i nie może być usunięty.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Wystąpił problem podczas odblokowania użytkownika. Spróbuj ponownie.', 'import' => 'Podczas importowania użytkowników wystąpił błąd. Spróbuj ponownie.', 'asset_already_accepted' => 'Aktywo zostało już zaakceptowane.', 'accept_or_decline' => 'Musisz zaakceptować lub odrzucić to aktywo.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Zasób, który próbowano zaakceptować nie został wyewidencjonowany dla użytkownika.', 'ldap_could_not_connect' => 'Nie udało się połączyć z serwerem LDAP. Sprawdź proszę konfigurację serwera LDAP w pliku konfiguracji.
    Błąd z serwera LDAP:', 'ldap_could_not_bind' => 'Nie udało się połączyć z serwerem LDAP. Sprawdź proszę konfigurację serwera LDAP w pliku konfiguracji.
    Błąd z serwera LDAP: ', diff --git a/resources/lang/pl-PL/general.php b/resources/lang/pl-PL/general.php index 57c17d769b..6030f4eae1 100644 --- a/resources/lang/pl-PL/general.php +++ b/resources/lang/pl-PL/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Raport Aktywności', 'address' => 'Adres', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Dodano miejsca', 'age' => "Wiek", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Żądane zasoby', 'requested_assets_menu' => 'Żądane zasoby', 'request_canceled' => 'Żądanie anulowane', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Zapisz', 'select_var' => 'Wybierz :thing... ', // this will eventually replace all of our other selects 'select' => 'Wybierz', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Nazwa akcesorium:', 'clone_item' => 'Klonuj obiekt', 'checkout_tooltip' => 'Sprawdź ten element', - 'checkin_tooltip' => 'Sprawdź ten element w', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Sprawdź ten element do użytkownika', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Usługa jest tymczasowo niedostępna z powodu aktualizacji systemu. Sprawdź ponownie później.', 'maintenance_mode_title' => 'System tymczasowo niedostępny', 'ldap_import' => 'Hasło użytkownika nie powinno być zarządzane przez LDAP. (Pozwala to wysyłać prośbę o zresetowanie zapomnianego hasła)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Druga linia adresu', 'import_note' => 'Zaimportowano przy użyciu importera csv', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% ukończone', 'uploading' => 'Wgrywanie... ', 'upload_error' => 'Błąd podczas przesyłania pliku. Sprawdź, czy nie ma pustych wierszy i czy nazwy kolumn nie są zduplikowane.', diff --git a/resources/lang/pl-PL/table.php b/resources/lang/pl-PL/table.php index 5e73b97e54..71f834cf02 100644 --- a/resources/lang/pl-PL/table.php +++ b/resources/lang/pl-PL/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Akcje', - 'action' => 'Akcja', - 'by' => 'Przez', - 'item' => 'Przedmiot', + 'actions' => 'Akcje', + 'action' => 'Akcja', + 'by' => 'Przez', + 'item' => 'Przedmiot', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/pt-BR/account/general.php b/resources/lang/pt-BR/account/general.php index 1b060de9b1..e4d9d80db0 100644 --- a/resources/lang/pt-BR/account/general.php +++ b/resources/lang/pt-BR/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'Tokens de API estão definidos para expirar em:', 'api_reference' => 'Confira a referência da API para encontrar pontos de API específicos e documentação adicional da API.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/pt-BR/admin/hardware/form.php b/resources/lang/pt-BR/admin/hardware/form.php index c08ca37d44..c678fc998d 100644 --- a/resources/lang/pt-BR/admin/hardware/form.php +++ b/resources/lang/pt-BR/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Número do Pedido', 'qr' => 'Código QR', 'requestable' => 'Usuários podem solicitar este ativo', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Selecione o Tipo de Status', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/lang/pt-BR/admin/hardware/general.php b/resources/lang/pt-BR/admin/hardware/general.php index 6e510d463b..fae8afb6dc 100644 --- a/resources/lang/pt-BR/admin/hardware/general.php +++ b/resources/lang/pt-BR/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Tem certeza de que deseja excluir este ativo?', 'edit' => 'Editar Ativo', 'model_deleted' => 'Este modelo de Ativos foi excluído. Você deve restaurar o modelo antes de restaurar o Ativo.', - 'model_invalid' => 'O modelo deste ativo é inválido.', - 'model_invalid_fix' => 'O Ativo deve ser editado para corrigir isso antes de tentar verificá-lo ou verificá-lo.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Solicitável', 'requested' => 'Solicitado', 'not_requestable' => 'Não solicitável', diff --git a/resources/lang/pt-BR/admin/users/message.php b/resources/lang/pt-BR/admin/users/message.php index 46dedce852..693ef19df6 100644 --- a/resources/lang/pt-BR/admin/users/message.php +++ b/resources/lang/pt-BR/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Houve um problema ao atualizar o usuário. Tente novamente.', 'delete' => 'Houve um problema ao excluir o usuário. Tente novamente.', 'delete_has_assets' => 'Este usuário tem itens atribuídos e não pôde ser excluído.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Houve um problema ao remover a suspensão do usuário. Tente novamente.', 'import' => 'Houve um problema ao importar usuários. Tente novamente.', 'asset_already_accepted' => 'Este ativo já foi aceito.', 'accept_or_decline' => 'Você precisa aceita ou rejeitar esse ativo.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'O ativo que tentou aceitar não foi solicitado por você.', 'ldap_could_not_connect' => 'Não foi possível conectar ao servidor LDAP. Por favor verifique as configurações do servidor LDAP no arquivo de configurações.
    Erro do Servidor LDAP:', 'ldap_could_not_bind' => 'Não foi possível se ligar ao servidor LDAP. Por favor verifique as configurações do servidor LDAP no arquivo de configurações.
    Erro do Servidor LDAP: ', diff --git a/resources/lang/pt-BR/general.php b/resources/lang/pt-BR/general.php index 5fe2a3559c..90915c1d71 100644 --- a/resources/lang/pt-BR/general.php +++ b/resources/lang/pt-BR/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Relatório de Atividade', 'address' => 'Endereço', 'admin' => 'Administrador', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrador', 'add_seats' => 'Assentos adicionados', 'age' => "Idade", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Ativos Solicitados', 'requested_assets_menu' => 'Ativos Solicitados', 'request_canceled' => 'Solicitação Cancelada', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Salvar', 'select_var' => 'Selecione :thing... ', // this will eventually replace all of our other selects 'select' => 'Selecionar', @@ -399,8 +404,9 @@ Resultados da Sincronização', 'accessory_name' => 'Nome do Acessório:', 'clone_item' => 'Clonar Item', 'checkout_tooltip' => 'Fazer check-out do item', - 'checkin_tooltip' => 'Fazer check-in do item', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Fazer check-out deste item para um usuário', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'O serviço está temporariamente indisponível para atualizações do sistema. Por favor, volte mais tarde.', 'maintenance_mode_title' => 'Sistema Temporariamente Indisponível', 'ldap_import' => 'A senha do usuário não deve ser gerenciada pelo LDAP. (Isso permite que você envie solicitações de senha esquecidas.)', @@ -501,6 +507,8 @@ Resultados da Sincronização', 'address2' => 'Complemento', 'import_note' => 'Importado usando o importador csv', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% completo', 'uploading' => 'Enviando... ', 'upload_error' => 'Erro ao enviar o arquivo. Por favor, verifique se não existem linhas vazias e se nenhum nome de coluna está duplicado.', diff --git a/resources/lang/pt-BR/table.php b/resources/lang/pt-BR/table.php index e6c7b0ef36..5fdefa3003 100644 --- a/resources/lang/pt-BR/table.php +++ b/resources/lang/pt-BR/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Ações', - 'action' => 'Ação', - 'by' => 'Por', - 'item' => 'Item', + 'actions' => 'Ações', + 'action' => 'Ação', + 'by' => 'Por', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/pt-PT/account/general.php b/resources/lang/pt-PT/account/general.php index 73f5f61815..18877036a9 100644 --- a/resources/lang/pt-PT/account/general.php +++ b/resources/lang/pt-PT/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'Tokens de API estão definidos para expirar em:', 'api_reference' => 'Verifique a referência da API para encontrar endpoints de API específicos e documentação adicional da API.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/pt-PT/admin/hardware/form.php b/resources/lang/pt-PT/admin/hardware/form.php index d8297f3d4b..567134f885 100644 --- a/resources/lang/pt-PT/admin/hardware/form.php +++ b/resources/lang/pt-PT/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Nº de encomenda', 'qr' => 'Código QR', 'requestable' => 'Utilizadores podem solicitar este ativo', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Selecionar Estado', 'serial' => 'Nº de Série', 'status' => 'Estado', diff --git a/resources/lang/pt-PT/admin/hardware/general.php b/resources/lang/pt-PT/admin/hardware/general.php index acfbc30712..eea1873af9 100644 --- a/resources/lang/pt-PT/admin/hardware/general.php +++ b/resources/lang/pt-PT/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Tem a certeza de que pretende eliminar este equipamento?', 'edit' => 'Editar artigo', 'model_deleted' => 'Este modelo de artigo foi excluído. Deve restaurar o modelo antes de restaurar o artigo.', - 'model_invalid' => 'O modelo deste artigo é inválido.', - 'model_invalid_fix' => 'O artigo deve ser editado para corrigir isso antes de tentar recebe-lo ou entregá-lo.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Solicitavel', 'requested' => 'Requisitado', 'not_requestable' => 'Não solicitável', diff --git a/resources/lang/pt-PT/admin/users/message.php b/resources/lang/pt-PT/admin/users/message.php index a80f600308..a1ed26601f 100644 --- a/resources/lang/pt-PT/admin/users/message.php +++ b/resources/lang/pt-PT/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Ocorreu um problema ao atualizar o utilizador. Por favor, tente novamente.', 'delete' => 'Ocorreu um problema ao remover o utilizador. Por favor, tente novamente.', 'delete_has_assets' => 'Este usuário tem itens atribuídos e não pôde ser excluído.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Ocorreu um problema ao retirar a suspensão ao utilizador. Por favor, tente novamente.', 'import' => 'Ocorreu um problema ao importar os utilizadores. Por favor, tente novamente.', 'asset_already_accepted' => 'Este artigo já foi aceite.', 'accept_or_decline' => 'Tem que aceitar ou recusar este artigo.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'O ativo que tentou aceitar não foi solicitado por si.', 'ldap_could_not_connect' => 'Não foi possível estabelecer uma ligação ao servidor LDAP. Por favor, verifique a configuração de servidor no ficheiro de configuração.
    Error do Servidor LDAP:', 'ldap_could_not_bind' => 'Não foi possível estabelecer uma vinculação com o servidor LDAP. Por favor, verifique a configuração de servidor no ficheiro de configuração.
    Error do Servidor LDAP: ', diff --git a/resources/lang/pt-PT/general.php b/resources/lang/pt-PT/general.php index bd7feaeac4..10b7d70bc5 100644 --- a/resources/lang/pt-PT/general.php +++ b/resources/lang/pt-PT/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Relatório de atividades', 'address' => 'Morada', 'admin' => 'Administração', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrador', 'add_seats' => 'Utilizadores adicionados', 'age' => "Idade", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Artigos solicitados', 'requested_assets_menu' => 'Artigos solicitados', 'request_canceled' => 'Pedido cancelado', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Guardar', 'select_var' => 'Selecione :thing... ', // this will eventually replace all of our other selects 'select' => 'Selecione', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Nome do Acessório:', 'clone_item' => 'Clonar Item', 'checkout_tooltip' => 'Entregue este item', - 'checkin_tooltip' => 'Rececione este artigo', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Rececione este artigo para um utilizador', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'O serviço está temporariamente indisponível para atualizações do sistema. Por favor, volte mais tarde.', 'maintenance_mode_title' => 'Serviço temporariamente indisponível', 'ldap_import' => 'A senha do utilizador não deve ser gerida pelo LDAP. (Isto permite que seja enviado pedidos de senha esquecida.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Linha de Endereço 2', 'import_note' => 'Importado usando o importador csv', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% completo', 'uploading' => 'Enviando... ', 'upload_error' => 'Erro ao enviar o arquivo. Por favor, verifique se não existem linhas vazias e se nenhum nome de coluna está duplicado.', diff --git a/resources/lang/pt-PT/table.php b/resources/lang/pt-PT/table.php index e6c7b0ef36..5fdefa3003 100644 --- a/resources/lang/pt-PT/table.php +++ b/resources/lang/pt-PT/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Ações', - 'action' => 'Ação', - 'by' => 'Por', - 'item' => 'Item', + 'actions' => 'Ações', + 'action' => 'Ação', + 'by' => 'Por', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/ro-RO/account/general.php b/resources/lang/ro-RO/account/general.php index 645c381d19..e99c9b39d1 100644 --- a/resources/lang/ro-RO/account/general.php +++ b/resources/lang/ro-RO/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'Token-urile API sunt setate să expire în:', 'api_reference' => 'Vă rugăm să verificați referința API la pentru a găsi criterii specifice API și documentație API adițională.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/ro-RO/admin/hardware/form.php b/resources/lang/ro-RO/admin/hardware/form.php index 59524f574a..a749e19ff2 100644 --- a/resources/lang/ro-RO/admin/hardware/form.php +++ b/resources/lang/ro-RO/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Numar ordine', 'qr' => 'Cod QR', 'requestable' => 'Utilizatorii pot cere acest activ', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Selecteaza tip status', 'serial' => 'Serie', 'status' => 'Stare', diff --git a/resources/lang/ro-RO/admin/hardware/general.php b/resources/lang/ro-RO/admin/hardware/general.php index 9120b56b07..9d2fe60e78 100644 --- a/resources/lang/ro-RO/admin/hardware/general.php +++ b/resources/lang/ro-RO/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Sunteţi sigur că doriţi să ştergeţi acest activ?', 'edit' => 'Editeaza activ', 'model_deleted' => 'Acest model de active a fost șters. Trebuie să restaurați modelul înainte de a putea restaura activul.', - 'model_invalid' => 'Modelul acestui activ nu este valid.', - 'model_invalid_fix' => 'Activul trebuie editat pentru a corecta acest lucru înainte de a încerca să îl verificați înăuntru sau afară.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Solicitat', 'not_requestable' => 'Nu poate fi solicitat', diff --git a/resources/lang/ro-RO/admin/users/message.php b/resources/lang/ro-RO/admin/users/message.php index a1fce542b7..727ceb96b8 100644 --- a/resources/lang/ro-RO/admin/users/message.php +++ b/resources/lang/ro-RO/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'A aparut o problema la actualizarea utilizatorului. Incercati iar.', 'delete' => 'A aparut o problema la stergerea utilizatorului. Incercati iar.', 'delete_has_assets' => 'Acest utilizator are elemente atribuite și nu a putut fi șters.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'A aparut o problema la reactivarea utilizatorului. Incercati iar.', 'import' => 'A apărut o problemă la importarea utilizatorilor. Vă rugăm să încercați din nou.', 'asset_already_accepted' => 'Acest activ a fost deja acceptat.', 'accept_or_decline' => 'Trebuie să acceptați sau să refuzați acest activ.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Activitatea pe care ați încercat să o acceptați nu a fost verificată de dvs.', 'ldap_could_not_connect' => 'Nu s-a putut conecta la serverul LDAP. Verificați configurația serverului LDAP în fișierul de configurare LDAP.
    Error de la LDAP Server:', 'ldap_could_not_bind' => 'Nu s-a putut lega la serverul LDAP. Verificați configurația serverului LDAP în fișierul de configurare LDAP.
    Error de la LDAP Server:', diff --git a/resources/lang/ro-RO/general.php b/resources/lang/ro-RO/general.php index 28a8edbf5b..a3f04b9f57 100644 --- a/resources/lang/ro-RO/general.php +++ b/resources/lang/ro-RO/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Raport de activitate', 'address' => 'Adresa', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Adăugat scaune', 'age' => "Vârsta", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Activele solicitate', 'requested_assets_menu' => 'Activele solicitate', 'request_canceled' => 'Cerere anulată', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Salveaza', 'select_var' => 'Selectează :thing... ', // this will eventually replace all of our other selects 'select' => 'Selectați', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Nume accesoriu:', 'clone_item' => 'Clonează elementul', 'checkout_tooltip' => 'Verifică acest articol afară', - 'checkin_tooltip' => 'Bifați acest element în', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Bifați acest element pentru un utilizator', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Serviciul este temporar indisponibil pentru actualizări de sistem. Vă rugăm să verificaţi din nou mai târziu.', 'maintenance_mode_title' => 'Sistem temporar indisponibil', 'ldap_import' => 'Parola de utilizator nu ar trebui să fie gestionată de LDAP. (Acest lucru vă permite să trimiteți cereri de parolă uitată.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Adresă linia 2', 'import_note' => 'Importat folosind importatorul csv', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% complet', 'uploading' => 'Încărcare... ', 'upload_error' => 'Eroare la încărcarea fișierului. Vă rugăm să verificați că nu există rânduri goale și că nici un nume de coloane nu este duplicat.', diff --git a/resources/lang/ro-RO/table.php b/resources/lang/ro-RO/table.php index c7e946ed86..a81b937354 100644 --- a/resources/lang/ro-RO/table.php +++ b/resources/lang/ro-RO/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Actiuni', - 'action' => 'Actiune', - 'by' => 'Facut de', - 'item' => 'Articol', + 'actions' => 'Actiuni', + 'action' => 'Actiune', + 'by' => 'Facut de', + 'item' => 'Articol', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/ru-RU/account/general.php b/resources/lang/ru-RU/account/general.php index 527b341101..4d6ab5bfd0 100644 --- a/resources/lang/ru-RU/account/general.php +++ b/resources/lang/ru-RU/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API токены истекут:', 'api_reference' => 'Пожалуйста, обратитесь к справочнику API, чтобы найти конкретные конечные точки API и дополнительную документацию API.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/ru-RU/admin/hardware/form.php b/resources/lang/ru-RU/admin/hardware/form.php index 7211469dc2..e639d27978 100644 --- a/resources/lang/ru-RU/admin/hardware/form.php +++ b/resources/lang/ru-RU/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Номер заказа', 'qr' => 'QR-код', 'requestable' => 'Пользователи могут запросить этот актив', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Выберите тип статуса', 'serial' => 'Серийный номер', 'status' => 'Статус', diff --git a/resources/lang/ru-RU/admin/hardware/general.php b/resources/lang/ru-RU/admin/hardware/general.php index 2b338cc3e8..9bcd752559 100644 --- a/resources/lang/ru-RU/admin/hardware/general.php +++ b/resources/lang/ru-RU/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Вы уверены, что хотите удалить этот актив?', 'edit' => 'Редактировать актив', 'model_deleted' => 'Эта модель была удалена. Вы должны восстановить модель прежде, чем сможете восстановить актив.', - 'model_invalid' => 'Модель этого актива недействительна.', - 'model_invalid_fix' => 'Актив должен быть отредактирован для исправления этого перед тем, как отвязать или привязать его.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Готов к выдаче', 'requested' => 'Запрошенное', 'not_requestable' => 'Не подлежит запросу', diff --git a/resources/lang/ru-RU/admin/users/message.php b/resources/lang/ru-RU/admin/users/message.php index 69f51b9816..1889feb84c 100644 --- a/resources/lang/ru-RU/admin/users/message.php +++ b/resources/lang/ru-RU/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'При изменении пользователя возникла проблема. Пожалуйста попробуйте снова.', 'delete' => 'При удалении пользователя возникла проблема. Пожалуйста попробуйте снова.', 'delete_has_assets' => 'У пользователя есть назначенные ему активы и не может быть удалён.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'При разморозке пользователя возникла проблема. Пожалуйста попробуйте снова.', 'import' => 'При импорте пользователей произошла ошибка. Попробуйте еще раз.', 'asset_already_accepted' => 'Этот актив уже был принят.', 'accept_or_decline' => 'Примите или отклоните актив.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Актив, который вы попытались принять, не был записан на вас.', 'ldap_could_not_connect' => 'Не могу подключиться к серверу LDAP. Проверьте настройки LDAP сервера в файле конфигурации LDAP.
    Ошибка от LDAP сервера:', 'ldap_could_not_bind' => 'Не могу связаться (bind) с сервером LDAP. Проверьте настройки LDAP сервера в файле конфигурации LDAP.
    Ошибка от LDAP сервера: ', diff --git a/resources/lang/ru-RU/general.php b/resources/lang/ru-RU/general.php index a3689770e8..cf2139846c 100644 --- a/resources/lang/ru-RU/general.php +++ b/resources/lang/ru-RU/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Oтчет о деятельности', 'address' => 'Адрес', 'admin' => 'Администратор', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Администратор', 'add_seats' => 'Рабочих мест', 'age' => "Возраст", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Запрашиваемые активы', 'requested_assets_menu' => 'Запрошенные активы', 'request_canceled' => 'Запрос отменен', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'Внешняя ссылка на', 'save' => 'Сохранить', 'select_var' => 'Выберите :thing... ', // this will eventually replace all of our other selects 'select' => 'Выбор', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Название аксессуара:', 'clone_item' => 'Клонировать позицию', 'checkout_tooltip' => 'Выдать этот элемент', - 'checkin_tooltip' => 'Принять этот элемент', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Выдать эту единицу пользователю', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Служба временно недоступна для системных обновлений. Пожалуйста, проверьте позже.', 'maintenance_mode_title' => 'Система временно недоступна', 'ldap_import' => 'Пароль пользователя не должен управляться LDAP. (Это позволяет отправлять ссылку на сброс забытого пароля.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Адрес, строка 2', 'import_note' => 'Импортировано с помощью csv импортера', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% завершено', 'uploading' => 'Загрузка... ', 'upload_error' => 'Ошибка загрузки файла. Пожалуйста, проверьте, что нет пустых строк и нет повторяющихся названий столбцов.', diff --git a/resources/lang/ru-RU/table.php b/resources/lang/ru-RU/table.php index ef26a02f4a..9566f58598 100644 --- a/resources/lang/ru-RU/table.php +++ b/resources/lang/ru-RU/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Действия', - 'action' => 'Действие', - 'by' => 'Кем', - 'item' => 'Предмет', + 'actions' => 'Действия', + 'action' => 'Действие', + 'by' => 'Кем', + 'item' => 'Предмет', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/si-LK/account/general.php b/resources/lang/si-LK/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/si-LK/account/general.php +++ b/resources/lang/si-LK/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/si-LK/admin/hardware/form.php b/resources/lang/si-LK/admin/hardware/form.php index d5b3ca2c56..a3555a96d2 100644 --- a/resources/lang/si-LK/admin/hardware/form.php +++ b/resources/lang/si-LK/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Order Number', 'qr' => 'QR Code', 'requestable' => 'Users may request this asset', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Select Status Type', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/lang/si-LK/admin/hardware/general.php b/resources/lang/si-LK/admin/hardware/general.php index f7f8ad4d06..34ac4e63ee 100644 --- a/resources/lang/si-LK/admin/hardware/general.php +++ b/resources/lang/si-LK/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Edit Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Requested', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/si-LK/admin/users/message.php b/resources/lang/si-LK/admin/users/message.php index b7c0a29f14..4d014775bd 100644 --- a/resources/lang/si-LK/admin/users/message.php +++ b/resources/lang/si-LK/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'There was an issue updating the user. Please try again.', 'delete' => 'There was an issue deleting the user. Please try again.', 'delete_has_assets' => 'This user has items assigned and could not be deleted.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', 'import' => 'There was an issue importing users. Please try again.', 'asset_already_accepted' => 'This asset has already been accepted.', 'accept_or_decline' => 'You must either accept or decline this asset.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'The asset you have attempted to accept was not checked out to you.', 'ldap_could_not_connect' => 'Could not connect to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server:', 'ldap_could_not_bind' => 'Could not bind to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server: ', diff --git a/resources/lang/si-LK/general.php b/resources/lang/si-LK/general.php index 20406f61ef..98cc49d495 100644 --- a/resources/lang/si-LK/general.php +++ b/resources/lang/si-LK/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Activity Report', 'address' => 'Address', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Added seats', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Request Canceled', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Save', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Select', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Accessory Name:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% complete', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/si-LK/table.php b/resources/lang/si-LK/table.php index f7a49d86c1..16e32b148f 100644 --- a/resources/lang/si-LK/table.php +++ b/resources/lang/si-LK/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Actions', - 'action' => 'Action', - 'by' => 'By', - 'item' => 'Item', + 'actions' => 'Actions', + 'action' => 'Action', + 'by' => 'By', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/sk-SK/account/general.php b/resources/lang/sk-SK/account/general.php index 0b2b240d2a..668a2a446f 100644 --- a/resources/lang/sk-SK/account/general.php +++ b/resources/lang/sk-SK/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/sk-SK/admin/hardware/form.php b/resources/lang/sk-SK/admin/hardware/form.php index d424cb07a8..49f2ef5edc 100644 --- a/resources/lang/sk-SK/admin/hardware/form.php +++ b/resources/lang/sk-SK/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Číslo objednávky', 'qr' => 'QR kód', 'requestable' => 'Používatelia môžu žiadať tento majetok', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Vyberte typ stavu', 'serial' => 'Sériové číslo', 'status' => 'Stav', diff --git a/resources/lang/sk-SK/admin/hardware/general.php b/resources/lang/sk-SK/admin/hardware/general.php index 9a57aac21e..533d491912 100644 --- a/resources/lang/sk-SK/admin/hardware/general.php +++ b/resources/lang/sk-SK/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Upraviť majetok', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Vyžiadateľný', 'requested' => 'Vyžiadané', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/sk-SK/admin/users/message.php b/resources/lang/sk-SK/admin/users/message.php index 7b56f7f548..ea9c90bb8c 100644 --- a/resources/lang/sk-SK/admin/users/message.php +++ b/resources/lang/sk-SK/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Pri aktualizácií používateľa sa vyskytla chyba. Prosím skúste znovu.', 'delete' => 'Pri odstraňovaní používateľa sa vyskytla chyba. Skúste prosím neskôr.', 'delete_has_assets' => 'Tento používateľ ma priradené položky a nemôže byť odstránený.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Pri pokuse o zrušenie pozastavenia používateľa nastala chyba. Skúste prosím znovu.', 'import' => 'Pri importovaní používateľov nastala chyba. Prosím skúste znovu.', 'asset_already_accepted' => 'Tento majetok bol už prijatý.', 'accept_or_decline' => 'Musíte prijať alebo odmietnuť tento majetok.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Majetok, ktorý sa pokúšate prijať, Vám nebol priradený.', 'ldap_could_not_connect' => 'Nepodarilo sa pripojiť k LDAP serveru. Prosím skontrolujte nastavenia LDAP serveru v Admin nastavenia > LDAP/AD
    Chyba LDAP serveru:', 'ldap_could_not_bind' => 'Nepodarilo sa napojiť na LDAP server. Prosím skontrolujte nastavenia LDAP serveru v Admin nastavenia > LDAP/AD
    Chyba LDAP serveru: ', diff --git a/resources/lang/sk-SK/general.php b/resources/lang/sk-SK/general.php index 80e27ee7f5..d3a0ffcb62 100644 --- a/resources/lang/sk-SK/general.php +++ b/resources/lang/sk-SK/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Activity Report', 'address' => 'Adresa', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Added seats', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Request Canceled', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Uložiť', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Select', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Názov príslušenstva:', 'clone_item' => 'Duplikovať položku', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Služba je dočasne nedostupná pre aktualizácie systému. Skúste to neskôr.', 'maintenance_mode_title' => 'Systém je dočasne nedostupný', 'ldap_import' => 'Používateľské heslo by nemalo spravovať LDAP. (Umožni Vám to odosielať žiadosti o zabudnuté heslo.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% complete', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/sk-SK/table.php b/resources/lang/sk-SK/table.php index a27158be03..d0c4be4b8f 100644 --- a/resources/lang/sk-SK/table.php +++ b/resources/lang/sk-SK/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Akcie', - 'action' => 'Akcia', - 'by' => 'Podľa', - 'item' => 'Položka', + 'actions' => 'Akcie', + 'action' => 'Akcia', + 'by' => 'Podľa', + 'item' => 'Položka', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/sl-SI/account/general.php b/resources/lang/sl-SI/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/sl-SI/account/general.php +++ b/resources/lang/sl-SI/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/sl-SI/admin/hardware/form.php b/resources/lang/sl-SI/admin/hardware/form.php index dda8a39b86..2180f99244 100644 --- a/resources/lang/sl-SI/admin/hardware/form.php +++ b/resources/lang/sl-SI/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Številka naročila', 'qr' => 'QR-koda', 'requestable' => 'Uporabniki lahko zahtevajo to sredstvo', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Izberite vrsto statusa', 'serial' => 'Serijska številka', 'status' => 'Status', diff --git a/resources/lang/sl-SI/admin/hardware/general.php b/resources/lang/sl-SI/admin/hardware/general.php index 87352c76ed..ffac9330bb 100644 --- a/resources/lang/sl-SI/admin/hardware/general.php +++ b/resources/lang/sl-SI/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Urejanje sredstva', 'model_deleted' => 'Model tega sredstva je bil izbrisan. Pred obnovitvijo sredstva je potrebno obnoviti model.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Zahtevano', 'requested' => 'Zahtevano', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/sl-SI/admin/users/message.php b/resources/lang/sl-SI/admin/users/message.php index cabb4eb99c..01b0654786 100644 --- a/resources/lang/sl-SI/admin/users/message.php +++ b/resources/lang/sl-SI/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Prišlo je do težave pri posodabljanju uporabnika. Prosim poskusite ponovno.', 'delete' => 'Pri brisanju uporabnika je prišlo do težave. Prosim poskusite ponovno.', 'delete_has_assets' => 'Ta uporabnik ima dodeljene elemente in ga ni mogoče izbrisati.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Prišlo je do težave pri od-suspendiranju uporabnika. Prosim poskusite ponovno.', 'import' => 'Pri uvozu uporabnikov je prišlo do težave. Prosim poskusite ponovno.', 'asset_already_accepted' => 'To sredstvo je bilo že sprejeto.', 'accept_or_decline' => 'To sredstev morate sprejeti ali zavrniti.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Sredstev, ki ste ga poskušali sprejeti, ni bilo izdano za vas.', 'ldap_could_not_connect' => 'Povezave s strežnikom LDAP ni bilo mogoče vzpostaviti. Preverite konfiguracijo strežnika LDAP v konfiguracijski datoteki LDAP.
    Napaka strežnika LDAP:', 'ldap_could_not_bind' => 'Povezave s strežnikom LDAP ni bilo mogoče vzpostaviti. Preverite konfiguracijo strežnika LDAP v konfiguracijski datoteki LDAP.
    Napaka strežnika LDAP: ', diff --git a/resources/lang/sl-SI/general.php b/resources/lang/sl-SI/general.php index f261445b34..4f706f96a9 100644 --- a/resources/lang/sl-SI/general.php +++ b/resources/lang/sl-SI/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Poročilo o dejavnosti', 'address' => 'Naslov', 'admin' => 'Administrator', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Skrbnik', 'add_seats' => 'Dodani sedeži', 'age' => "Starost", @@ -242,6 +245,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Zahteva je bila preklicana', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Shrani', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Izberite', @@ -399,8 +404,9 @@ return [ 'accessory_name' => 'Ime Dodatka:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -501,6 +507,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% končano', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/sl-SI/table.php b/resources/lang/sl-SI/table.php index e606efa263..d935aed3d1 100644 --- a/resources/lang/sl-SI/table.php +++ b/resources/lang/sl-SI/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Dejanja', - 'action' => 'Dejanje', - 'by' => 'Od', - 'item' => 'Element', + 'actions' => 'Dejanja', + 'action' => 'Dejanje', + 'by' => 'Od', + 'item' => 'Element', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/so-SO/account/general.php b/resources/lang/so-SO/account/general.php index 116e8e5547..9a1bf65fd7 100644 --- a/resources/lang/so-SO/account/general.php +++ b/resources/lang/so-SO/account/general.php @@ -7,4 +7,5 @@ return array( 'api_base_url_endpoint' => '/< dhamaadka>', 'api_token_expiration_time' => 'Calaamadaha API waxa lagu dejiyay inay ku dhacaan:', 'api_reference' => 'Fadlan hubi Tixraaca API si aad u heshid meelaha dhamaadka API ee gaarka ah iyo dukumeenti API oo dheeri ah.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/so-SO/admin/hardware/form.php b/resources/lang/so-SO/admin/hardware/form.php index 08ccaa5e5b..122e4ab52a 100644 --- a/resources/lang/so-SO/admin/hardware/form.php +++ b/resources/lang/so-SO/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Nambarka dalbashada', 'qr' => 'Koodhka QR', 'requestable' => 'Isticmaalayaasha ayaa codsan kara hantidan', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Dooro Nooca Xaaladda', 'serial' => 'Taxane', 'status' => 'Xaalada', diff --git a/resources/lang/so-SO/admin/hardware/general.php b/resources/lang/so-SO/admin/hardware/general.php index 33f0604077..0682e12893 100644 --- a/resources/lang/so-SO/admin/hardware/general.php +++ b/resources/lang/so-SO/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Ma hubtaa inaad doonayso inaad tirtirto hantidan?', 'edit' => 'Wax ka beddel hantida', 'model_deleted' => 'Qaabkan Hantida waa la tirtiray Waa inaad soo celisaa qaabka ka hor inta aanad soo celin Hantida.', - 'model_invalid' => 'Qaabka hantidani waa mid aan shaqayn.', - 'model_invalid_fix' => 'Hantida waa in la tafatiraa si tan loo saxo ka hor inta aan la isku dayin in la hubiyo ama laga saaro.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'La codsan karo', 'requested' => 'La codsaday', 'not_requestable' => 'Looma baahna', diff --git a/resources/lang/so-SO/admin/users/message.php b/resources/lang/so-SO/admin/users/message.php index 97c6d3a507..0bfdb4decd 100644 --- a/resources/lang/so-SO/admin/users/message.php +++ b/resources/lang/so-SO/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Waxaa jirtay arrin la cusboonaysiiyay isticmaaluhu. Fadlan isku day mar kale.', 'delete' => 'Waxaa jirtay arrin la tirtiray isticmaaluhu. Fadlan isku day mar kale.', 'delete_has_assets' => 'Isticmaalahaan wuxuu leeyahay walxo loo qoondeeyay lamana tirtiri karo.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Waxaa jirtay arrin aan la hakin isticmaaluhu. Fadlan isku day mar kale.', 'import' => 'Waxaa jirtay arin soo dejinta isticmaalayaasha Fadlan isku day mar kale.', 'asset_already_accepted' => 'Hantidan mar hore waa la aqbalay.', 'accept_or_decline' => 'Waa inaad aqbashaa ama diiddaa hantidan.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Hantida aad isku dayday inaad aqbasho adiga laguma hubin.', 'ldap_could_not_connect' => 'Waa lagu xidhi kari waayay serfarka LDAP Fadlan ka hubi server-kaaga LDAP ee ku jira faylka habaynta LDAP. Khalad ka yimid Server LDAP:', 'ldap_could_not_bind' => 'Laguma xidhi karo serfarka LDAP Fadlan ka hubi server-kaaga LDAP ee ku jira faylka habaynta LDAP.
    Khalad ka yimid Server LDAP: ', diff --git a/resources/lang/so-SO/general.php b/resources/lang/so-SO/general.php index ccd7bea8f2..0a71432902 100644 --- a/resources/lang/so-SO/general.php +++ b/resources/lang/so-SO/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Warbixinta Dhaqdhaqaaqa', 'address' => 'Cinwaanka', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Maamule', 'add_seats' => 'Kuraasta lagu daray', 'age' => "Da'da", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Hantida la codsaday', 'requested_assets_menu' => 'Hantida la codsaday', 'request_canceled' => 'Codsiga waa la joojiyay', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Badbaadin', 'select_var' => 'Dooro :thing', // this will eventually replace all of our other selects 'select' => 'Dooro', @@ -397,8 +402,9 @@ return [ 'accessory_name' => 'Magaca Agabka:', 'clone_item' => 'Shayga Clone', 'checkout_tooltip' => 'Hubi shaygan', - 'checkin_tooltip' => 'Hubi shaygan gudaha', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Hubi shaygan isticmaalaha', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Adeeggu si ku meel gaar ah uma heli karo cusboonaysiinta nidaamka. Fadlan dib u eeg hadhow', 'maintenance_mode_title' => 'Nidaamka Si Ku Meel Gaar Ah Aan Loo Helin', 'ldap_import' => 'Furaha isticmaalaha waa in uusan maamulin LDAP. (Tani waxay kuu ogolaanaysaa inaad soo dirto codsiyada sirta ah ee la illoobay.)', @@ -499,6 +505,8 @@ return [ 'address2' => 'Khadka Ciwaanka 2', 'import_note' => 'Lagu soo dejiyo iyadoo la isticmaalayo csv soodejiye', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% dhamaystiran', 'uploading' => 'Soo dejinta... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/so-SO/table.php b/resources/lang/so-SO/table.php index 6abd7492eb..7112144ecf 100644 --- a/resources/lang/so-SO/table.php +++ b/resources/lang/so-SO/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Ficilada', - 'action' => 'Ficil', - 'by' => 'By', - 'item' => 'Shayga', + 'actions' => 'Ficilada', + 'action' => 'Ficil', + 'by' => 'By', + 'item' => 'Shayga', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/sq-AL/account/general.php b/resources/lang/sq-AL/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/sq-AL/account/general.php +++ b/resources/lang/sq-AL/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/sq-AL/admin/hardware/form.php b/resources/lang/sq-AL/admin/hardware/form.php index a7aba0813c..edec543637 100644 --- a/resources/lang/sq-AL/admin/hardware/form.php +++ b/resources/lang/sq-AL/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Order Number', 'qr' => 'QR Code', 'requestable' => 'Users may request this asset', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Select Status Type', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/lang/sq-AL/admin/hardware/general.php b/resources/lang/sq-AL/admin/hardware/general.php index f7f8ad4d06..34ac4e63ee 100644 --- a/resources/lang/sq-AL/admin/hardware/general.php +++ b/resources/lang/sq-AL/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Edit Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Requested', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/sq-AL/admin/users/message.php b/resources/lang/sq-AL/admin/users/message.php index b7c0a29f14..4d014775bd 100644 --- a/resources/lang/sq-AL/admin/users/message.php +++ b/resources/lang/sq-AL/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'There was an issue updating the user. Please try again.', 'delete' => 'There was an issue deleting the user. Please try again.', 'delete_has_assets' => 'This user has items assigned and could not be deleted.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', 'import' => 'There was an issue importing users. Please try again.', 'asset_already_accepted' => 'This asset has already been accepted.', 'accept_or_decline' => 'You must either accept or decline this asset.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'The asset you have attempted to accept was not checked out to you.', 'ldap_could_not_connect' => 'Could not connect to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server:', 'ldap_could_not_bind' => 'Could not bind to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server: ', diff --git a/resources/lang/sq-AL/general.php b/resources/lang/sq-AL/general.php index 7ee1557c51..ec0b8e6ee3 100644 --- a/resources/lang/sq-AL/general.php +++ b/resources/lang/sq-AL/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Activity Report', 'address' => 'Address', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Added seats', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Request Canceled', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Save', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Select', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Accessory Name:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% complete', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/sq-AL/table.php b/resources/lang/sq-AL/table.php index f7a49d86c1..16e32b148f 100644 --- a/resources/lang/sq-AL/table.php +++ b/resources/lang/sq-AL/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Actions', - 'action' => 'Action', - 'by' => 'By', - 'item' => 'Item', + 'actions' => 'Actions', + 'action' => 'Action', + 'by' => 'By', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/sr-CS/account/general.php b/resources/lang/sr-CS/account/general.php index fff8813648..a1ed1dd58e 100644 --- a/resources/lang/sr-CS/account/general.php +++ b/resources/lang/sr-CS/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokeni će isteći za:', 'api_reference' => 'Proverite API referencu da biste pronašli određene krajnje tačke API-ja i dodatnu API dokumentaciju.', + 'profile_updated' => 'Nalog je uspešno izmenjen', ); diff --git a/resources/lang/sr-CS/admin/hardware/form.php b/resources/lang/sr-CS/admin/hardware/form.php index 1f6ac5f16f..964ced76af 100644 --- a/resources/lang/sr-CS/admin/hardware/form.php +++ b/resources/lang/sr-CS/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Broj narudžbine', 'qr' => 'QR Code', 'requestable' => 'Korisnici mogu zatražiti ovaj resurs', + 'redirect_to_all' => 'Vrati se na sve :type', + 'redirect_to_type' => 'Idi na :type', + 'redirect_to_checked_out_to' => 'Idi na zaduženo', 'select_statustype' => 'Odaberite vrstu statusa', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/lang/sr-CS/admin/hardware/general.php b/resources/lang/sr-CS/admin/hardware/general.php index 53354c5897..d428c34d32 100644 --- a/resources/lang/sr-CS/admin/hardware/general.php +++ b/resources/lang/sr-CS/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Da li ste sigurni da želite da obrišete ovaj resurs?', 'edit' => 'Uređivanje imovine', 'model_deleted' => 'Ovaj Model osnovnog sredstva je izbrisan. Morate da vratite model da bi ste mogli da vratite sredstvo.', - 'model_invalid' => 'Model ove imovine je neispravan.', - 'model_invalid_fix' => 'Ova imovinu bi trebalo izmeniti da bi se ovo ispravilo pre pokušaja zaduživanja ili razduživanja.', + 'model_invalid' => 'Ovaj model nije ispravan za ovu imovinu.', + 'model_invalid_fix' => 'Imovina mora biti izmenjena korišćenjem ispravnog modela imovine pre pokušaja zaduživanja ili razduživanja, ili popisivanja.', 'requestable' => 'Može da se potražuje', 'requested' => 'Zatraženo', 'not_requestable' => 'Ne može da se potražuje', diff --git a/resources/lang/sr-CS/admin/settings/general.php b/resources/lang/sr-CS/admin/settings/general.php index 7107933fa1..1dc6767dbc 100644 --- a/resources/lang/sr-CS/admin/settings/general.php +++ b/resources/lang/sr-CS/admin/settings/general.php @@ -68,7 +68,7 @@ return [ 'footer_text' => 'Dodatni tekst u futeru ', 'footer_text_help' => 'Ovaj tekst će se pojaviti u desnom podnožju. Veze su dozvoljene korišćenjem Github flavored markdovn. Prelomi redova, zaglavlja, slike itd. mogu dovesti do nepredvidivih rezultata.', 'general_settings' => 'Osnovna podešavanja', - 'general_settings_keywords' => 'podrška kompanije, potpis, prihvatanje, format e-poruke, format korisničkog imena, slike, po stranici, sličica, ugovoro korišćenju, gravatar, uslovi usluga, komandna tabla, privatnost', + 'general_settings_keywords' => 'podrška kompanije, potpis, prihvatanje, format e-poruke, format korisničkog imena, slike, po stranici, sličica, ugovor o korišćenju, gravatar, uslovi usluga, komandna tabla, privatnost', 'general_settings_help' => 'Podrazumevani EULA i još mnogo toga', 'generate_backup' => 'Generiši rezervnu kopiju', 'google_workspaces' => 'Google Workspaces', diff --git a/resources/lang/sr-CS/admin/users/message.php b/resources/lang/sr-CS/admin/users/message.php index c75e81d97c..fbd36dd480 100644 --- a/resources/lang/sr-CS/admin/users/message.php +++ b/resources/lang/sr-CS/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Došlo je do problema s ažuriranjem korisnika. Molim pokušajte ponovo.', 'delete' => 'Došlo je do problema s brisanjem korisnika. Molim pokušajte ponovo.', 'delete_has_assets' => 'Ovaj korisnik ima dodeljene stavke i ne može biti obrisan.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', 'import' => 'Došlo je do problema s importom korisnika. Molim pokušajte ponovo.', 'asset_already_accepted' => 'Ova je imovina već prihvaćena.', 'accept_or_decline' => 'Morate prihvatiti ili odbaciti ovaj resurs, imovinu.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'The asset you have attempted to accept was not checked out to you.', 'ldap_could_not_connect' => 'Povezivanje s LDAP serverom nije uspelo. Proverite konfiguraciju LDAP servera u LDAP konfig datoteci.
    Greška sa LDAP servera:', 'ldap_could_not_bind' => 'Nije moguće povezati se sa LDAP serverom. Provjerite konfiguraciju LDAP servera.
    Greška sa LDAP servera: ', diff --git a/resources/lang/sr-CS/general.php b/resources/lang/sr-CS/general.php index 91450d75c3..12cd14ad49 100644 --- a/resources/lang/sr-CS/general.php +++ b/resources/lang/sr-CS/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Izveštaj o aktivnostima', 'address' => 'Adresa', 'admin' => 'Admin', + 'admin_tooltip' => 'Ovaj korisnik ima admin privilegije', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'Ovaj korisnik ima superuser privilegije', 'administrator' => 'Administrator', 'add_seats' => 'Dodana mesta', 'age' => "Godine", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Zatražena imovina', 'requested_assets_menu' => 'Zatražena imovina', 'request_canceled' => 'Zahtev je otkazan', + 'request_item' => 'Zatraži ovu stavku', + 'external_link_tooltip' => 'Eksterna veza do', 'save' => 'Sačuvaj', 'select_var' => 'Izaberite :thing... ', // this will eventually replace all of our other selects 'select' => 'Označi', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Naziv dodatne opreme, pribora:', 'clone_item' => 'Kloniraj stavku', 'checkout_tooltip' => 'Zaduži ovu stavku', - 'checkin_tooltip' => 'Razduži ovu stavku', + 'checkin_tooltip' => 'Razdužite ovu stavku kako bi bila dostupna za ponovno zaduživanje', 'checkout_user_tooltip' => 'Zaduži ovu stavku korisniku', + 'checkin_to_diff_location' => 'Možete da izaberete da razdužite ovu imovinu u lokaciju drugačiju od podrazumevane lokacije :default_location ako je podešena', 'maintenance_mode' => 'Usluga je privremeno nedostupna za ažuriranja sistema. Proverite ponovo kasnije.', 'maintenance_mode_title' => 'Sistem je privremeno nedostupan', 'ldap_import' => 'LDAP ne bi trebalo da upravlja korisničkom lozinkom. (Ovo vam omogućava da pošaljete zahteve za zaboravljenu lozinku.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Adresa 2', 'import_note' => 'Uvezeno pomoću csv importera', ], + 'remove_customfield_association' => 'Uklonite ovo polje iz grupe polja. To neće obrisati prilagođeno polje, samo povezanost ovog polja sa ovom grupom polja.', + 'checked_out_to_fields' => 'Zaduženo poljima', 'percent_complete' => '% završeno', 'uploading' => 'Slanje... ', 'upload_error' => 'Greška tokom slanja datoteke. Molim vas potvrdite da nema praznih redova i da nazivi kolona nisu duplirani.', diff --git a/resources/lang/sr-CS/table.php b/resources/lang/sr-CS/table.php index eca3dcae76..d1bf3fa83b 100644 --- a/resources/lang/sr-CS/table.php +++ b/resources/lang/sr-CS/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Akcije', - 'action' => 'Akcija', - 'by' => 'By', - 'item' => 'Artikal', + 'actions' => 'Akcije', + 'action' => 'Akcija', + 'by' => 'By', + 'item' => 'Artikal', + 'no_matching_records' => 'Nisu pronađeni odgovarajući zapisi', ); diff --git a/resources/lang/sv-SE/account/general.php b/resources/lang/sv-SE/account/general.php index 27e3209db6..dc1e90d263 100644 --- a/resources/lang/sv-SE/account/general.php +++ b/resources/lang/sv-SE/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API-tokens är inställda på att gå ut om:', 'api_reference' => 'Vänligen kontrollera API-referensen för att hitta specifika API-slutpunkter och ytterligare API-dokumentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/sv-SE/admin/hardware/form.php b/resources/lang/sv-SE/admin/hardware/form.php index 17339b5dee..7342e23c49 100644 --- a/resources/lang/sv-SE/admin/hardware/form.php +++ b/resources/lang/sv-SE/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Order Nummer', 'qr' => 'QR-kod', 'requestable' => 'Användare kan begära denna tillgång', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Välj Statustyp', 'serial' => 'Serienummer', 'status' => 'Status', diff --git a/resources/lang/sv-SE/admin/hardware/general.php b/resources/lang/sv-SE/admin/hardware/general.php index 690101a7ca..1d25a2a7fc 100644 --- a/resources/lang/sv-SE/admin/hardware/general.php +++ b/resources/lang/sv-SE/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Är du säker du vill radera denna tillgång?', 'edit' => 'Redigera tillgång', 'model_deleted' => 'Denna tillgångsmodell har tagits bort. Du måste återställa modellen innan du kan återställa tillgången.', - 'model_invalid' => 'Modellen för denna tillgång är ogiltig.', - 'model_invalid_fix' => 'Tillgången bör redigeras för att rätta till detta innan du försöker checka in eller ut.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Tillgängliga', 'requested' => 'Begärda', 'not_requestable' => 'Inte begärbar', diff --git a/resources/lang/sv-SE/admin/users/message.php b/resources/lang/sv-SE/admin/users/message.php index 1a9609a0e0..b7390912ab 100644 --- a/resources/lang/sv-SE/admin/users/message.php +++ b/resources/lang/sv-SE/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Det gick inte att uppdatera användaren. Var god försök igen.', 'delete' => 'Det gick inte att ta bort användaren. Var god försök igen.', 'delete_has_assets' => 'Den här användaren har objekt tilldelade och kunde inte raderas.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Det uppstod ett problem som avbröt användaren. Var god försök igen.', 'import' => 'Det gick inte att importera användare. Var god försök igen.', 'asset_already_accepted' => 'Denna tillgång har redan godkänts.', 'accept_or_decline' => 'Du måste antingen godkänna eller neka den här tillgången.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Den tillgång du försökte acceptera har inte checkats ut till dig.', 'ldap_could_not_connect' => 'Det gick inte att ansluta till LDAP-servern. Kontrollera din LDAP-serverkonfiguration i LDAP-konfigurationsfilen.
    Fel från LDAP-servern:', 'ldap_could_not_bind' => 'Kunde inte binda till LDAP-servern. Kontrollera din LDAP-serverkonfiguration i LDAP-konfigurationsfilen.
    Fel från LDAP-servern:', diff --git a/resources/lang/sv-SE/general.php b/resources/lang/sv-SE/general.php index 98a2e352e1..df85e6c396 100644 --- a/resources/lang/sv-SE/general.php +++ b/resources/lang/sv-SE/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Aktivitets Rapport', 'address' => 'Adress', 'admin' => 'Administratör', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administratör', 'add_seats' => 'Tillagda platser', 'age' => "Ålder", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Begärda tillgångar', 'requested_assets_menu' => 'Begärda tillgångar', 'request_canceled' => 'Förfrågan annulleras', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Spara', 'select_var' => 'Välj :thing... ', // this will eventually replace all of our other selects 'select' => 'Välj', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Tillbehörsnamn:', 'clone_item' => 'Klona objekt', 'checkout_tooltip' => 'Låna utdetta objekt', - 'checkin_tooltip' => 'Checka in detta objekt', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Låna utdetta objekt till en användare', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Tjänsten är för tillfället inte tillgänglig för systemuppdateringar. Kontrollera igen senare.', 'maintenance_mode_title' => 'Systemet är tillfälligt otillgängligt', 'ldap_import' => 'Användarlösenord bör inte hanteras av LDAP. (Detta gör att du kan skicka bortglömda lösenordsförfrågningar.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Adressrad 2', 'import_note' => 'Importerad med csv importerare', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% slutförd', 'uploading' => 'Uppladdar... ', 'upload_error' => 'Fel vid uppladdning av fil. Kontrollera att det inte finns några tomma rader och att inga kolumnnamn dupliceras.', diff --git a/resources/lang/sv-SE/table.php b/resources/lang/sv-SE/table.php index 09544ca5c9..40a20a319d 100644 --- a/resources/lang/sv-SE/table.php +++ b/resources/lang/sv-SE/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Handlingar', - 'action' => 'Handling', - 'by' => 'Av', - 'item' => 'Artikel', + 'actions' => 'Handlingar', + 'action' => 'Handling', + 'by' => 'Av', + 'item' => 'Artikel', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/ta-IN/account/general.php b/resources/lang/ta-IN/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/ta-IN/account/general.php +++ b/resources/lang/ta-IN/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/ta-IN/admin/hardware/form.php b/resources/lang/ta-IN/admin/hardware/form.php index dbde253289..8c62d147f6 100644 --- a/resources/lang/ta-IN/admin/hardware/form.php +++ b/resources/lang/ta-IN/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'ஆர்டர் எண்', 'qr' => 'க்யு ஆர் குறியீடு', 'requestable' => 'பயனர்கள் இந்த சொத்தை கோரலாம்', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'நிலை வகை தேர்ந்தெடுக்கவும்', 'serial' => 'சீரியல்', 'status' => 'நிலைமை', diff --git a/resources/lang/ta-IN/admin/hardware/general.php b/resources/lang/ta-IN/admin/hardware/general.php index 41d90bdbef..297fde84c6 100644 --- a/resources/lang/ta-IN/admin/hardware/general.php +++ b/resources/lang/ta-IN/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'சொத்து திருத்து', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'கோரப்பட்டது', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/ta-IN/admin/users/message.php b/resources/lang/ta-IN/admin/users/message.php index 29b944e841..9176bea4fe 100644 --- a/resources/lang/ta-IN/admin/users/message.php +++ b/resources/lang/ta-IN/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'பயனரைப் புதுப்பிப்பதில் சிக்கல் ஏற்பட்டது. தயவு செய்து மீண்டும் முயற்சிக்கவும்.', 'delete' => 'பயனரை நீக்குவதில் ஒரு சிக்கல் இருந்தது. தயவு செய்து மீண்டும் முயற்சிக்கவும்.', 'delete_has_assets' => 'இந்த பயனருக்கு ஒதுக்கப்பட்டுள்ள உருப்படிகளைக் கொண்டுள்ளது, மேலும் நீக்க முடியாது.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'பயனரை unsuspending ஒரு சிக்கல் இருந்தது. தயவு செய்து மீண்டும் முயற்சிக்கவும்.', 'import' => 'பயனர்களை இறக்குமதி செய்வதில் சிக்கல் ஏற்பட்டது. தயவு செய்து மீண்டும் முயற்சிக்கவும்.', 'asset_already_accepted' => 'இந்த சொத்து ஏற்கனவே ஏற்கப்பட்டுள்ளது.', 'accept_or_decline' => 'நீங்கள் இந்த சொத்தை ஏற்கவோ அல்லது குறைக்கவோ கூடாது.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'நீங்கள் ஏற்றுக்கொள்ள முயற்சித்த சொத்து உங்களிடம் சோதிக்கப்படவில்லை.', 'ldap_could_not_connect' => 'LDAP சேவையகத்துடன் இணைக்க முடியவில்லை. LDAP கட்டமைப்பு கோப்பில் உங்கள் LDAP சர்வர் கட்டமைப்பை சரிபார்க்கவும்.
    LDAP சேவையகத்திலிருந்து பிழை:', 'ldap_could_not_bind' => 'LDAP சேவையகத்துடன் இணைக்க முடியவில்லை. LDAP கட்டமைப்பு கோப்பில் உங்கள் LDAP சர்வர் கட்டமைப்பை சரிபார்க்கவும்.
    LDAP சேவையகத்திலிருந்து பிழை:', diff --git a/resources/lang/ta-IN/general.php b/resources/lang/ta-IN/general.php index adb4fd2086..242bd9e9fb 100644 --- a/resources/lang/ta-IN/general.php +++ b/resources/lang/ta-IN/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'செயல்பாட்டு அறிக்கை', 'address' => 'முகவரி', 'admin' => 'நிர்வாகம்', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'நிர்வாகி', 'add_seats' => 'சேர்க்கப்பட்டது இடங்கள்', 'age' => "வயது", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'கோரிக்கை ரத்து செய்யப்பட்டது', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'சேமி', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'தேர்வு', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'துணை பெயர்:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% முழுமையான', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/ta-IN/table.php b/resources/lang/ta-IN/table.php index 3407744552..b4023bff83 100644 --- a/resources/lang/ta-IN/table.php +++ b/resources/lang/ta-IN/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'செயல்கள்', - 'action' => 'அதிரடி', - 'by' => 'மூலம்', - 'item' => 'பொருள்', + 'actions' => 'செயல்கள்', + 'action' => 'அதிரடி', + 'by' => 'மூலம்', + 'item' => 'பொருள்', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/th-TH/account/general.php b/resources/lang/th-TH/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/th-TH/account/general.php +++ b/resources/lang/th-TH/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/th-TH/admin/hardware/form.php b/resources/lang/th-TH/admin/hardware/form.php index 131af210bf..a824805392 100644 --- a/resources/lang/th-TH/admin/hardware/form.php +++ b/resources/lang/th-TH/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'หมายเลขสั่งซื้อ', 'qr' => 'QR Code', 'requestable' => 'ผู้ใช้งานอาจร้องขอสินทรัพย์นี้', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'เลือกประเภทสถานะ', 'serial' => 'ซีเรียล', 'status' => 'สถานะ', diff --git a/resources/lang/th-TH/admin/hardware/general.php b/resources/lang/th-TH/admin/hardware/general.php index 49ac1fddc1..8c07efe25b 100644 --- a/resources/lang/th-TH/admin/hardware/general.php +++ b/resources/lang/th-TH/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'แก้ไขสินทรัพย์', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'ร้องขอได้', 'requested' => 'การขอใช้บริการ', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/th-TH/admin/users/message.php b/resources/lang/th-TH/admin/users/message.php index 03bbe92fad..2426e9b969 100644 --- a/resources/lang/th-TH/admin/users/message.php +++ b/resources/lang/th-TH/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'มีปัญหาระหว่างปรับปรุงข้อมูลผู้ใช้ กรุณาลองใหม่อีกครั้ง', 'delete' => 'มีปัญหาระหว่างลบผู้ใช้งาน กรุณาลองใหม่อีกครั้ง', 'delete_has_assets' => 'ผู้ใช้รายนี้มีรายการที่กำหนดและไม่สามารถลบได้', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'มีปัญหาระหว่างการยกเลิกการระงับผู้ใช้งาน กรุณาลองใหม่อีกครั้ง', 'import' => 'มีปัญหาระหว่างการนำเข้าผู้ใช้งาน กรุณาลองใหม่อีกครั้ง', 'asset_already_accepted' => 'ทรัพย์สินนี้ได้รับการยอมรับแล้ว', 'accept_or_decline' => 'คุณต้องยอมรับ หรือปฏิเสธสินทรัพย์นี้', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'เนื้อหาที่คุณพยายามยอมรับไม่ได้ถูกเช็คเอาท์ให้คุณ', 'ldap_could_not_connect' => 'ไม่สามารถเชื่อมต่อกับ LDAP Server ได้ กรุณาตรวจสอบการตั้งค่า LDAP Server ของคุณในไฟล์ตั้งค่า LDAP
    ผิดพลาดจาก LDAP Server:', 'ldap_could_not_bind' => 'ไม่สามารถผูกกับ LDAP Server ได้ กรุณาตรวจสอบการตั้งค่า LDAP Server ของคุณในไฟล์ตั้งค่า LDAP
    ผิดพลาดจาก LDAP Server: ', diff --git a/resources/lang/th-TH/general.php b/resources/lang/th-TH/general.php index e0d4dd53a5..872b84fa2e 100644 --- a/resources/lang/th-TH/general.php +++ b/resources/lang/th-TH/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'รายงานกิจกรรม', 'address' => 'ที่อยู่', 'admin' => 'ผู้ดูแลระบบ', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'ผู้บริหารระบบ', 'add_seats' => 'เพิ่มที่นั่งแล้ว', 'age' => "อายุ", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'คำขอยกเลิกแล้ว', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'บันทึก', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'เลือก', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'ชื่อของอุปกรณ์:', 'clone_item' => 'สร้างสำเนา', 'checkout_tooltip' => 'ส่งมอบรายการนี้', - 'checkin_tooltip' => 'รับมอบรายการนี้', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'ส่งมอบรายการนี้แก่บุคคล', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'ระบบงานนี้งดบริการชั่วคราวเนื่องจากกำลังอัพเดทระบบ โปรดกลับมาอีกครั้งภายหลัง', 'maintenance_mode_title' => 'ระบบงดการบริการชั่วคราว', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% complete', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/th-TH/table.php b/resources/lang/th-TH/table.php index 60bf03349f..306ec101a9 100644 --- a/resources/lang/th-TH/table.php +++ b/resources/lang/th-TH/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'การกระทำ', - 'action' => 'การกระทำ', - 'by' => 'โดย', - 'item' => 'รายการ', + 'actions' => 'การกระทำ', + 'action' => 'การกระทำ', + 'by' => 'โดย', + 'item' => 'รายการ', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/tl-PH/account/general.php b/resources/lang/tl-PH/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/tl-PH/account/general.php +++ b/resources/lang/tl-PH/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/tl-PH/admin/hardware/form.php b/resources/lang/tl-PH/admin/hardware/form.php index 24b6745d1c..b7ba172375 100644 --- a/resources/lang/tl-PH/admin/hardware/form.php +++ b/resources/lang/tl-PH/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Order Number', 'qr' => 'QR Code', 'requestable' => 'Users may request this asset', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Select Status Type', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/lang/tl-PH/admin/hardware/general.php b/resources/lang/tl-PH/admin/hardware/general.php index f7f8ad4d06..34ac4e63ee 100644 --- a/resources/lang/tl-PH/admin/hardware/general.php +++ b/resources/lang/tl-PH/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Edit Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Requested', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/tl-PH/admin/users/message.php b/resources/lang/tl-PH/admin/users/message.php index b7c0a29f14..4d014775bd 100644 --- a/resources/lang/tl-PH/admin/users/message.php +++ b/resources/lang/tl-PH/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'There was an issue updating the user. Please try again.', 'delete' => 'There was an issue deleting the user. Please try again.', 'delete_has_assets' => 'This user has items assigned and could not be deleted.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', 'import' => 'There was an issue importing users. Please try again.', 'asset_already_accepted' => 'This asset has already been accepted.', 'accept_or_decline' => 'You must either accept or decline this asset.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'The asset you have attempted to accept was not checked out to you.', 'ldap_could_not_connect' => 'Could not connect to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server:', 'ldap_could_not_bind' => 'Could not bind to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server: ', diff --git a/resources/lang/tl-PH/general.php b/resources/lang/tl-PH/general.php index 61524803bb..fc66775c12 100644 --- a/resources/lang/tl-PH/general.php +++ b/resources/lang/tl-PH/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Activity Report', 'address' => 'Address', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Added seats', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Request Canceled', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Save', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Select', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Pangalan ng accessory:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% complete', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/tl-PH/table.php b/resources/lang/tl-PH/table.php index ad84acb5a4..fd9b7352f7 100644 --- a/resources/lang/tl-PH/table.php +++ b/resources/lang/tl-PH/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Mga kilos', - 'action' => 'Kilos', - 'by' => 'Batay sa', - 'item' => 'Aytem', + 'actions' => 'Mga kilos', + 'action' => 'Kilos', + 'by' => 'Batay sa', + 'item' => 'Aytem', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/tr-TR/account/general.php b/resources/lang/tr-TR/account/general.php index 1acb508779..7fb43a717a 100644 --- a/resources/lang/tr-TR/account/general.php +++ b/resources/lang/tr-TR/account/general.php @@ -8,4 +8,5 @@ return array( 'api_base_url_endpoint' => '/<uçnokta>', 'api_token_expiration_time' => 'API jetonlarınız şu süre içinde sona erecek şekilde ayarlanmıştır:', 'api_reference' => 'Lütfen API referansını kontrol edin belirli API uç noktalarını ve ek API belgelerini bulun.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/tr-TR/admin/hardware/form.php b/resources/lang/tr-TR/admin/hardware/form.php index c5032b3033..80479268a8 100644 --- a/resources/lang/tr-TR/admin/hardware/form.php +++ b/resources/lang/tr-TR/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Sipariş Numarası', 'qr' => 'QR Kod', 'requestable' => 'Kullanıcılar bu demirbaşı talep edebilir', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Durum Seçiniz', 'serial' => 'Seri No', 'status' => 'Durum', diff --git a/resources/lang/tr-TR/admin/hardware/general.php b/resources/lang/tr-TR/admin/hardware/general.php index 1114ae440a..95b2c354f8 100644 --- a/resources/lang/tr-TR/admin/hardware/general.php +++ b/resources/lang/tr-TR/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Bu ürünü silmek istediğinize eminmisiniz?', 'edit' => 'Demirbaşı Düzenle', 'model_deleted' => 'Bu varlık modeli silindi. Varlığı geri almak için modelini geri almalısınız.', - 'model_invalid' => 'Bu varlığın model bilgisi hatalı.', - 'model_invalid_fix' => 'Varlığı iade alma veya teslim etme işlemi öncesinde bunu düzeltmek için varlık bilgisi düzenlenmelidir.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Talep edilebilir', 'requested' => 'Talep edildi', 'not_requestable' => 'Talep Edilemez', diff --git a/resources/lang/tr-TR/admin/users/message.php b/resources/lang/tr-TR/admin/users/message.php index 3609134639..3060074eca 100644 --- a/resources/lang/tr-TR/admin/users/message.php +++ b/resources/lang/tr-TR/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Kullanıcı oluştururken bir sorun oluştu. Lütfen yeniden deneyin.', 'delete' => 'Kullanıcı silinirken bir problem oluştu. Lütfen tekrar deneyin.', 'delete_has_assets' => 'Bu kullanıcının atadığı öğeler var ve silinemiyor.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Kullanıcı erişimi açılırken bir sorun oluştu. Lütfen yeniden deneyin.', 'import' => 'Kullanıcılar içe aktarılırken bir sorun oluştu. Lütfen yeniden deneyin.', 'asset_already_accepted' => 'Bu varlık zaten kabul etti.', 'accept_or_decline' => 'Kullanıcı varlığı kabul veya red etmeli.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Atamaya çalıştığınız varlık atanamadı.', 'ldap_could_not_connect' => 'LDAP sunucusuna bağlanamadı. LDAP yapılandırma dosyası LDAP sunucusu yapılandırmanızda gözden geçirin.
    LDAP sunucusundan Hata:', 'ldap_could_not_bind' => 'LDAP sunucusuna bağlanamadı. LDAP yapılandırma dosyası LDAP sunucusu yapılandırmanızda gözden geçirin.
    LDAP sunucusundan Hata: ', diff --git a/resources/lang/tr-TR/admin/users/table.php b/resources/lang/tr-TR/admin/users/table.php index 844ef54b97..ec11dce6d6 100644 --- a/resources/lang/tr-TR/admin/users/table.php +++ b/resources/lang/tr-TR/admin/users/table.php @@ -20,7 +20,7 @@ return array( 'lock_passwords' => 'Bu kurulumda giriş bilgileri değiştirilemez.', 'manager' => 'Yönetici', 'managed_locations' => 'Yönetilen Mekanlar', - 'managed_users' => 'Managed Users', + 'managed_users' => 'Yönetilen Kullanıcılar', 'name' => 'Adı', 'nogroup' => 'Henüz hiçbir grup oluşturulmadı. Bir tane eklemek için şu adresi ziyaret edin:', 'notes' => 'Notlar', diff --git a/resources/lang/tr-TR/general.php b/resources/lang/tr-TR/general.php index cc2a4c6bb7..8aabb3e160 100644 --- a/resources/lang/tr-TR/general.php +++ b/resources/lang/tr-TR/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Aktivite Raporu', 'address' => 'Adres', 'admin' => 'Yönetici', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Yönetici', 'add_seats' => 'Eklenen kişi sayısı', 'age' => "Yaş", @@ -244,6 +247,8 @@ Context | Request Context 'requested_assets' => 'Talep Edilen Varlıklar', 'requested_assets_menu' => 'Talep Edilen Varlıklar', 'request_canceled' => 'Talep iptal edildi', + 'request_item' => 'Ürünü Talep Et', + 'external_link_tooltip' => 'Dış bağlantı', 'save' => 'Kaydet', 'select_var' => 'Seçin :tür... ', // this will eventually replace all of our other selects 'select' => 'Seç', @@ -401,8 +406,9 @@ Context | Request Context 'accessory_name' => 'Aksesuar Adı:', 'clone_item' => 'Öğeyi Klonla', 'checkout_tooltip' => 'Öğenin çıkışını yapın', - 'checkin_tooltip' => 'Öğenin girişini yapın', + 'checkin_tooltip' => 'Ürünü yeniden basım, yeniden ayarlama gibi durumlar için murakabe et', 'checkout_user_tooltip' => 'Öğenin kullanıcıya çıkışını yapın', + 'checkin_to_diff_location' => 'Bu varlığı, varsayılan konumu dışında bir konuma teslim etmeyi seçebilirsiniz. Seçili konum:default_location', 'maintenance_mode' => 'Sistem güncellemeleri için servis geçici olarak kullanılamıyor. Lütfen daha sonra tekrar kontrol edin.', 'maintenance_mode_title' => 'Hizmet geçici olarak kullanılamıyor', 'ldap_import' => 'Kullanıcı parolası LDAP ile yönetilmemelidir. (Bu unutulan parola istekleri göndermenizi sağlar.)', @@ -503,6 +509,8 @@ Context | Request Context 'address2' => 'Adres Satırı 2', 'import_note' => 'Csv içe aktarıldı', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% tamamlandı', 'uploading' => 'Yükleniyor... ', 'upload_error' => 'Dosya yüklenirken hata oluştu. Lütfen boş satır olmadığından ve hiçbir sütun adının kopyalanmadığından emin olun.', diff --git a/resources/lang/tr-TR/table.php b/resources/lang/tr-TR/table.php index c4d85cebe0..6632ce06de 100644 --- a/resources/lang/tr-TR/table.php +++ b/resources/lang/tr-TR/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Hareketler', - 'action' => 'Hareket', - 'by' => 'Tarafından', - 'item' => 'Ürün', + 'actions' => 'Hareketler', + 'action' => 'Hareket', + 'by' => 'Tarafından', + 'item' => 'Ürün', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/uk-UA/account/general.php b/resources/lang/uk-UA/account/general.php index 88388017cd..5a06c9c390 100644 --- a/resources/lang/uk-UA/account/general.php +++ b/resources/lang/uk-UA/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API токени закінчуються:', 'api_reference' => 'Будь ласка, перевірте довідку по API, щоб дізнатись про ресурси API та додаткову документацію стосовно них.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/uk-UA/admin/hardware/form.php b/resources/lang/uk-UA/admin/hardware/form.php index 983bd4654f..2413f24af5 100644 --- a/resources/lang/uk-UA/admin/hardware/form.php +++ b/resources/lang/uk-UA/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Номер замовлення', 'qr' => 'QR-код', 'requestable' => 'Користувачі можуть запитувати цей медіафайл', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Виберіть тип статусу', 'serial' => 'Серійник', 'status' => 'Статус', diff --git a/resources/lang/uk-UA/admin/hardware/general.php b/resources/lang/uk-UA/admin/hardware/general.php index 51faacec3a..457eb6e636 100644 --- a/resources/lang/uk-UA/admin/hardware/general.php +++ b/resources/lang/uk-UA/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Ви впевнені, що хочете видалити цей медіафайл?', 'edit' => 'Редагувати актив', 'model_deleted' => 'Ця модель активів була видалена. Ви повинні відновити модель, перш ніж ви зможете відновити Ця модель.', - 'model_invalid' => 'Модель цього майна недійсна.', - 'model_invalid_fix' => 'Актив повинен бути відредагований, щоб виправити це, перш ніж намагатися перевірити його в або поза ним.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Доступно для запиту', 'requested' => 'Запрошено користувачем', 'not_requestable' => 'Ви не можете запросити', diff --git a/resources/lang/uk-UA/admin/users/message.php b/resources/lang/uk-UA/admin/users/message.php index 85f32ab351..541f15e33d 100644 --- a/resources/lang/uk-UA/admin/users/message.php +++ b/resources/lang/uk-UA/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Виникла проблема при оновленні користувача. Будь ласка, спробуйте ще раз.', 'delete' => 'Виникла проблема при видаленні користувача. Будь ласка, спробуйте ще раз.', 'delete_has_assets' => 'Цей користувач має призначені елементи і не може бути видалений.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Виникла проблема не призупинення користувача. Будь ласка, спробуйте ще раз.', 'import' => 'Виникла проблема з імпортом користувачів. Будь ласка, спробуйте ще раз.', 'asset_already_accepted' => 'Цей актив уже було прийнято.', 'accept_or_decline' => 'Ви повинні прийняти або відхилити цей актив.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Актив, який ви намагалися прийняти, не був перевірений для вас.', 'ldap_could_not_connect' => 'Не вдалося підключитися до сервера LDAP. Будь ласка, перевірте конфігурацію вашого сервера LDAP у файлі конфігурації LDAP.
    Помилка від LDAP Сервера:', 'ldap_could_not_bind' => 'Не вдалося підключитися до сервера LDAP. Перевірте конфігурацію сервера LDAP у файлі конфігурації LDAP.
    Помилка сервера LDAP: ', diff --git a/resources/lang/uk-UA/general.php b/resources/lang/uk-UA/general.php index c2bb9f1131..33c28089f2 100644 --- a/resources/lang/uk-UA/general.php +++ b/resources/lang/uk-UA/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Звіт про діяльність', 'address' => 'Адреса', 'admin' => 'Адміністратор', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Адміністратор', 'add_seats' => 'Додано місць', 'age' => "Вік", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Запитані активи', 'requested_assets_menu' => 'Запитані активи', 'request_canceled' => 'Запит скасовано', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Зберегти', 'select_var' => 'Оберіть :thing... ', // this will eventually replace all of our other selects 'select' => 'Обрати', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Назва аксесуара:', 'clone_item' => 'Клонувати предмет', 'checkout_tooltip' => 'Перевірте цей елемент', - 'checkin_tooltip' => 'Перевірити цей елемент', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Відмітити цей елемент користувачу', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'Сервіс тимчасово недоступний для оновлення системи. Будь ласка, перевірте пізніше.', 'maintenance_mode_title' => 'Системний тимчасово недоступний', 'ldap_import' => 'Не має керуватися LDAP. (Це дозволяє надіслати забуті запити на пароль.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Адресний рядок 2', 'import_note' => 'Імпортовано за допомогою csv імпортера', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% завершити', 'uploading' => 'Відвантаження... ', 'upload_error' => 'Помилка завантаження файлу. Будь ласка, перевірте, чи немає порожніх рядків і що не дубльовані назви стовпців.', diff --git a/resources/lang/uk-UA/table.php b/resources/lang/uk-UA/table.php index 9ad145bdb1..d09a69a132 100644 --- a/resources/lang/uk-UA/table.php +++ b/resources/lang/uk-UA/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Дії', - 'action' => 'Дія', - 'by' => 'Ким', - 'item' => 'Елемент', + 'actions' => 'Дії', + 'action' => 'Дія', + 'by' => 'Ким', + 'item' => 'Елемент', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/ur-PK/account/general.php b/resources/lang/ur-PK/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/ur-PK/account/general.php +++ b/resources/lang/ur-PK/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/ur-PK/admin/hardware/form.php b/resources/lang/ur-PK/admin/hardware/form.php index a7aba0813c..edec543637 100644 --- a/resources/lang/ur-PK/admin/hardware/form.php +++ b/resources/lang/ur-PK/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Order Number', 'qr' => 'QR Code', 'requestable' => 'Users may request this asset', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Select Status Type', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/lang/ur-PK/admin/hardware/general.php b/resources/lang/ur-PK/admin/hardware/general.php index f7f8ad4d06..34ac4e63ee 100644 --- a/resources/lang/ur-PK/admin/hardware/general.php +++ b/resources/lang/ur-PK/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Edit Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Requested', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/ur-PK/admin/users/message.php b/resources/lang/ur-PK/admin/users/message.php index b7c0a29f14..4d014775bd 100644 --- a/resources/lang/ur-PK/admin/users/message.php +++ b/resources/lang/ur-PK/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'There was an issue updating the user. Please try again.', 'delete' => 'There was an issue deleting the user. Please try again.', 'delete_has_assets' => 'This user has items assigned and could not be deleted.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', 'import' => 'There was an issue importing users. Please try again.', 'asset_already_accepted' => 'This asset has already been accepted.', 'accept_or_decline' => 'You must either accept or decline this asset.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'The asset you have attempted to accept was not checked out to you.', 'ldap_could_not_connect' => 'Could not connect to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server:', 'ldap_could_not_bind' => 'Could not bind to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server: ', diff --git a/resources/lang/ur-PK/general.php b/resources/lang/ur-PK/general.php index 7ee1557c51..ec0b8e6ee3 100644 --- a/resources/lang/ur-PK/general.php +++ b/resources/lang/ur-PK/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Activity Report', 'address' => 'Address', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Added seats', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Request Canceled', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Save', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Select', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Accessory Name:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% complete', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/ur-PK/table.php b/resources/lang/ur-PK/table.php index f7a49d86c1..16e32b148f 100644 --- a/resources/lang/ur-PK/table.php +++ b/resources/lang/ur-PK/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Actions', - 'action' => 'Action', - 'by' => 'By', - 'item' => 'Item', + 'actions' => 'Actions', + 'action' => 'Action', + 'by' => 'By', + 'item' => 'Item', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/vendor/backup/ar-SA/notifications.php b/resources/lang/vendor/backup/ar-SA/notifications.php deleted file mode 100644 index f84de9cce1..0000000000 --- a/resources/lang/vendor/backup/ar-SA/notifications.php +++ /dev/null @@ -1,35 +0,0 @@ - 'رسالة استثناء: :message', - 'exception_trace' => 'تتبع الإستثناء: :trace', - 'exception_message_title' => 'رسالة استثناء', - 'exception_trace_title' => 'تتبع الإستثناء', - - 'backup_failed_subject' => 'أخفق النسخ الاحتياطي لل :application_name', - 'backup_failed_body' => 'مهم: حدث خطأ أثناء النسخ الاحتياطي :application_name', - - 'backup_successful_subject' => 'نسخ احتياطي جديد ناجح ل :application_name', - 'backup_successful_subject_title' => 'نجاح النسخ الاحتياطي الجديد!', - 'backup_successful_body' => 'أخبار عظيمة، نسخة احتياطية جديدة ل :application_name تم إنشاؤها بنجاح على القرص المسمى :disk_name.', - - 'cleanup_failed_subject' => 'فشل تنظيف النسخ الاحتياطي للتطبيق :application_name .', - 'cleanup_failed_body' => 'حدث خطأ أثناء تنظيف النسخ الاحتياطية ل :application_name', - - 'cleanup_successful_subject' => 'تنظيف النسخ الاحتياطية ل :application_name تمت بنجاح', - 'cleanup_successful_subject_title' => 'تنظيف النسخ الاحتياطية تم بنجاح!', - 'cleanup_successful_body' => 'تنظيف النسخ الاحتياطية ل :application_name على القرص المسمى :disk_name تم بنجاح.', - - 'healthy_backup_found_subject' => 'النسخ الاحتياطية ل :application_name على القرص :disk_name صحية', - 'healthy_backup_found_subject_title' => 'النسخ الاحتياطية ل :application_name صحية', - 'healthy_backup_found_body' => 'تعتبر النسخ الاحتياطية ل :application_name صحية. عمل جيد!', - - 'unhealthy_backup_found_subject' => 'مهم: النسخ الاحتياطية ل :application_name غير صحية', - 'unhealthy_backup_found_subject_title' => 'مهم: النسخ الاحتياطية ل :application_name غير صحية. :problem', - 'unhealthy_backup_found_body' => 'النسخ الاحتياطية ل :application_name على القرص :disk_name غير صحية.', - 'unhealthy_backup_found_not_reachable' => 'لا يمكن الوصول إلى وجهة النسخ الاحتياطي. :error', - 'unhealthy_backup_found_empty' => 'لا توجد نسخ احتياطية لهذا التطبيق على الإطلاق.', - 'unhealthy_backup_found_old' => 'تم إنشاء أحدث النسخ الاحتياطية في :date وتعتبر قديمة جدا.', - 'unhealthy_backup_found_unknown' => 'عذرا، لا يمكن تحديد سبب دقيق.', - 'unhealthy_backup_found_full' => 'النسخ الاحتياطية تستخدم الكثير من التخزين. الاستخدام الحالي هو :disk_usage وهو أعلى من الحد المسموح به من :disk_limit.', -]; diff --git a/resources/lang/vendor/backup/da-DK/notifications.php b/resources/lang/vendor/backup/da-DK/notifications.php deleted file mode 100644 index e7b95fc5ae..0000000000 --- a/resources/lang/vendor/backup/da-DK/notifications.php +++ /dev/null @@ -1,35 +0,0 @@ - 'Fejlbesked: :message', - 'exception_trace' => 'Fejl trace: :trace', - 'exception_message_title' => 'Fejlbesked', - 'exception_trace_title' => 'Fejl trace', - - 'backup_failed_subject' => 'Backup af :application_name fejlede', - 'backup_failed_body' => 'Vigtigt: Der skete en fejl under backup af :application_name', - - 'backup_successful_subject' => 'Ny backup af :application_name oprettet', - 'backup_successful_subject_title' => 'Ny backup!', - 'backup_successful_body' => 'Gode nyheder - der blev oprettet en ny backup af :application_name på disken :disk_name.', - - 'cleanup_failed_subject' => 'Oprydning af backups for :application_name fejlede.', - 'cleanup_failed_body' => 'Der skete en fejl under oprydning af backups for :application_name', - - 'cleanup_successful_subject' => 'Oprydning af backups for :application_name gennemført', - 'cleanup_successful_subject_title' => 'Backup oprydning gennemført!', - 'cleanup_successful_body' => 'Oprydningen af backups for :application_name på disken :disk_name er gennemført.', - - 'healthy_backup_found_subject' => 'Alle backups for :application_name på disken :disk_name er OK', - 'healthy_backup_found_subject_title' => 'Alle backups for :application_name er OK', - 'healthy_backup_found_body' => 'Alle backups for :application_name er ok. Godt gået!', - - 'unhealthy_backup_found_subject' => 'Vigtigt: Backups for :application_name fejlbehæftede', - 'unhealthy_backup_found_subject_title' => 'Vigtigt: Backups for :application_name er fejlbehæftede. :problem', - 'unhealthy_backup_found_body' => 'Backups for :application_name på disken :disk_name er fejlbehæftede.', - 'unhealthy_backup_found_not_reachable' => 'Backup destinationen kunne ikke findes. :error', - 'unhealthy_backup_found_empty' => 'Denne applikation har ingen backups overhovedet.', - 'unhealthy_backup_found_old' => 'Den seneste backup fra :date er for gammel.', - 'unhealthy_backup_found_unknown' => 'Beklager, en præcis årsag kunne ikke findes.', - 'unhealthy_backup_found_full' => 'Backups bruger for meget plads. Nuværende disk forbrug er :disk_usage, hvilket er mere end den tilladte grænse på :disk_limit.', -]; diff --git a/resources/lang/vendor/backup/de-DE/notifications.php b/resources/lang/vendor/backup/de-DE/notifications.php deleted file mode 100644 index 2d87d8f11b..0000000000 --- a/resources/lang/vendor/backup/de-DE/notifications.php +++ /dev/null @@ -1,35 +0,0 @@ - 'Fehlermeldung: :message', - 'exception_trace' => 'Fehlerverfolgung: :trace', - 'exception_message_title' => 'Fehlermeldung', - 'exception_trace_title' => 'Fehlerverfolgung', - - 'backup_failed_subject' => 'Backup von :application_name konnte nicht erstellt werden', - 'backup_failed_body' => 'Wichtig: Beim Backup von :application_name ist ein Fehler aufgetreten', - - 'backup_successful_subject' => 'Erfolgreiches neues Backup von :application_name', - 'backup_successful_subject_title' => 'Erfolgreiches neues Backup!', - 'backup_successful_body' => 'Gute Nachrichten, ein neues Backup von :application_name wurde erfolgreich erstellt und in :disk_name gepeichert.', - - 'cleanup_failed_subject' => 'Aufräumen der Backups von :application_name schlug fehl.', - 'cleanup_failed_body' => 'Beim aufräumen der Backups von :application_name ist ein Fehler aufgetreten', - - 'cleanup_successful_subject' => 'Aufräumen der Backups von :application_name backups erfolgreich', - 'cleanup_successful_subject_title' => 'Aufräumen der Backups erfolgreich!', - 'cleanup_successful_body' => 'Aufräumen der Backups von :application_name in :disk_name war erfolgreich.', - - 'healthy_backup_found_subject' => 'Die Backups von :application_name in :disk_name sind gesund', - 'healthy_backup_found_subject_title' => 'Die Backups von :application_name sind Gesund', - 'healthy_backup_found_body' => 'Die Backups von :application_name wurden als gesund eingestuft. Gute Arbeit!', - - 'unhealthy_backup_found_subject' => 'Wichtig: Die Backups für :application_name sind nicht gesund', - 'unhealthy_backup_found_subject_title' => 'Wichtig: Die Backups für :application_name sind ungesund. :problem', - 'unhealthy_backup_found_body' => 'Die Backups für :application_name in :disk_name sind ungesund.', - 'unhealthy_backup_found_not_reachable' => 'Das Backup Ziel konnte nicht erreicht werden. :error', - 'unhealthy_backup_found_empty' => 'Es gibt für die Anwendung noch gar keine Backups.', - 'unhealthy_backup_found_old' => 'Das letzte Backup am :date ist zu lange her.', - 'unhealthy_backup_found_unknown' => 'Sorry, ein genauer Grund konnte nicht gefunden werden.', - 'unhealthy_backup_found_full' => 'Die Backups verbrauchen zu viel Platz. Aktuell wird :disk_usage belegt, dass ist höher als das erlaubte Limit von :disk_limit.', -]; diff --git a/resources/lang/vendor/backup/en-US/notifications.php b/resources/lang/vendor/backup/en-US/notifications.php deleted file mode 100644 index 369ef94e41..0000000000 --- a/resources/lang/vendor/backup/en-US/notifications.php +++ /dev/null @@ -1,35 +0,0 @@ - 'Exception message: :message', - 'exception_trace' => 'Exception trace: :trace', - 'exception_message_title' => 'Exception message', - 'exception_trace_title' => 'Exception trace', - - 'backup_failed_subject' => 'Failed back up of :application_name', - 'backup_failed_body' => 'Important: An error occurred while backing up :application_name', - - 'backup_successful_subject' => 'Successful new backup of :application_name', - 'backup_successful_subject_title' => 'Successful new backup!', - 'backup_successful_body' => 'Great news, a new backup of :application_name was successfully created on the disk named :disk_name.', - - 'cleanup_failed_subject' => 'Cleaning up the backups of :application_name failed.', - 'cleanup_failed_body' => 'An error occurred while cleaning up the backups of :application_name', - - 'cleanup_successful_subject' => 'Clean up of :application_name backups successful', - 'cleanup_successful_subject_title' => 'Clean up of backups successful!', - 'cleanup_successful_body' => 'The clean up of the :application_name backups on the disk named :disk_name was successful.', - - 'healthy_backup_found_subject' => 'The backups for :application_name on disk :disk_name are healthy', - 'healthy_backup_found_subject_title' => 'The backups for :application_name are healthy', - 'healthy_backup_found_body' => 'The backups for :application_name are considered healthy. Good job!', - - 'unhealthy_backup_found_subject' => 'Important: The backups for :application_name are unhealthy', - 'unhealthy_backup_found_subject_title' => 'Important: The backups for :application_name are unhealthy. :problem', - 'unhealthy_backup_found_body' => 'The backups for :application_name on disk :disk_name are unhealthy.', - 'unhealthy_backup_found_not_reachable' => 'The backup destination cannot be reached. :error', - 'unhealthy_backup_found_empty' => 'There are no backups of this application at all.', - 'unhealthy_backup_found_old' => 'The latest backup made on :date is considered too old.', - 'unhealthy_backup_found_unknown' => 'Sorry, an exact reason cannot be determined.', - 'unhealthy_backup_found_full' => 'The backups are using too much storage. Current usage is :disk_usage which is higher than the allowed limit of :disk_limit.', -]; diff --git a/resources/lang/vendor/backup/es-ES/notifications.php b/resources/lang/vendor/backup/es-ES/notifications.php deleted file mode 100644 index 4f4900fe59..0000000000 --- a/resources/lang/vendor/backup/es-ES/notifications.php +++ /dev/null @@ -1,35 +0,0 @@ - 'Mensaje de la excepción: :message', - 'exception_trace' => 'Traza de la excepción: :trace', - 'exception_message_title' => 'Mensaje de la excepción', - 'exception_trace_title' => 'Traza de la excepción', - - 'backup_failed_subject' => 'Copia de seguridad de :application_name fallida', - 'backup_failed_body' => 'Importante: Ocurrió un error al realizar la copia de seguridad de :application_name', - - 'backup_successful_subject' => 'Se completó con éxito la copia de seguridad de :application_name', - 'backup_successful_subject_title' => '¡Nueva copia de seguridad creada con éxito!', - 'backup_successful_body' => 'Buenas noticias, una nueva copia de seguridad de :application_name fue creada con éxito en el disco llamado :disk_name.', - - 'cleanup_failed_subject' => 'La limpieza de copias de seguridad de :application_name falló.', - 'cleanup_failed_body' => 'Ocurrió un error mientras se realizaba la limpieza de copias de seguridad de :application_name', - - 'cleanup_successful_subject' => 'La limpieza de copias de seguridad de :application_name se completó con éxito', - 'cleanup_successful_subject_title' => '!Limpieza de copias de seguridad completada con éxito!', - 'cleanup_successful_body' => 'La limpieza de copias de seguridad de :application_name en el disco llamado :disk_name se completo con éxito.', - - 'healthy_backup_found_subject' => 'Las copias de seguridad de :application_name en el disco :disk_name están en buen estado', - 'healthy_backup_found_subject_title' => 'Las copias de seguridad de :application_name están en buen estado', - 'healthy_backup_found_body' => 'Las copias de seguridad de :application_name se consideran en buen estado. ¡Buen trabajo!', - - 'unhealthy_backup_found_subject' => 'Importante: Las copias de seguridad de :application_name están en mal estado', - 'unhealthy_backup_found_subject_title' => 'Importante: Las copias de seguridad de :application_name están en mal estado. :problem', - 'unhealthy_backup_found_body' => 'Las copias de seguridad de :application_name en el disco :disk_name están en mal estado.', - 'unhealthy_backup_found_not_reachable' => 'No se puede acceder al destino de la copia de seguridad. :error', - 'unhealthy_backup_found_empty' => 'No existe ninguna copia de seguridad de esta aplicación.', - 'unhealthy_backup_found_old' => 'La última copia de seguriad hecha en :date es demasiado antigua.', - 'unhealthy_backup_found_unknown' => 'Lo siento, no es posible determinar la razón exacta.', - 'unhealthy_backup_found_full' => 'Las copias de seguridad están ocupando demasiado espacio. El espacio utilizado actualmente es :disk_usage el cual es mayor que el límite permitido de :disk_limit.', -]; diff --git a/resources/lang/vendor/backup/fa-IR/notifications.php b/resources/lang/vendor/backup/fa-IR/notifications.php deleted file mode 100644 index 33cbe335ea..0000000000 --- a/resources/lang/vendor/backup/fa-IR/notifications.php +++ /dev/null @@ -1,35 +0,0 @@ - 'پیغام خطا: :message', - 'exception_trace' => 'جزییات خطا: :trace', - 'exception_message_title' => 'پیغام خطا', - 'exception_trace_title' => 'جزییات خطا', - - 'backup_failed_subject' => 'پشتیبان‌گیری :application_name با خطا مواجه شد.', - 'backup_failed_body' => 'پیغام مهم: هنگام پشتیبان‌گیری از :application_name خطایی رخ داده است. ', - - 'backup_successful_subject' => 'نسخه پشتیبان جدید :application_name با موفقیت ساخته شد.', - 'backup_successful_subject_title' => 'پشتیبان‌گیری موفق!', - 'backup_successful_body' => 'خبر خوب, به تازگی نسخه پشتیبان :application_name بر روی دیسک :disk_name با موفقیت ساخته شد. ', - - 'cleanup_failed_subject' => 'پاک‌‌سازی نسخه پشتیبان :application_name انجام نشد.', - 'cleanup_failed_body' => 'هنگام پاک‌سازی نسخه پشتیبان :application_name خطایی رخ داده است.', - - 'cleanup_successful_subject' => 'پاک‌سازی نسخه پشتیبان :application_name با موفقیت انجام شد.', - 'cleanup_successful_subject_title' => 'پاک‌سازی نسخه پشتیبان!', - 'cleanup_successful_body' => 'پاک‌سازی نسخه پشتیبان :application_name بر روی دیسک :disk_name با موفقیت انجام شد.', - - 'healthy_backup_found_subject' => 'نسخه پشتیبان :application_name بر روی دیسک :disk_name سالم بود.', - 'healthy_backup_found_subject_title' => 'نسخه پشتیبان :application_name سالم بود.', - 'healthy_backup_found_body' => 'نسخه پشتیبان :application_name به نظر سالم میاد. دمت گرم!', - - 'unhealthy_backup_found_subject' => 'خبر مهم: نسخه پشتیبان :application_name سالم نبود.', - 'unhealthy_backup_found_subject_title' => 'خبر مهم: نسخه پشتیبان :application_name سالم نبود. :problem', - 'unhealthy_backup_found_body' => 'نسخه پشتیبان :application_name بر روی دیسک :disk_name سالم نبود.', - 'unhealthy_backup_found_not_reachable' => 'مقصد پشتیبان‌گیری در دسترس نبود. :error', - 'unhealthy_backup_found_empty' => 'برای این برنامه هیچ نسخه پشتیبانی وجود ندارد.', - 'unhealthy_backup_found_old' => 'آخرین نسخه پشتیبان برای تاریخ :date است. که به نظر خیلی قدیمی میاد. ', - 'unhealthy_backup_found_unknown' => 'متاسفانه دلیل دقیق مشخص نشده است.', - 'unhealthy_backup_found_full' => 'نسخه‌های پشتیبانی که تهیه کرده اید حجم زیادی اشغال کرده اند. میزان دیسک استفاده شده :disk_usage است که از میزان مجاز :disk_limit فراتر رفته است. ', -]; diff --git a/resources/lang/vendor/backup/fr-FR/notifications.php b/resources/lang/vendor/backup/fr-FR/notifications.php deleted file mode 100644 index 57a98c23a6..0000000000 --- a/resources/lang/vendor/backup/fr-FR/notifications.php +++ /dev/null @@ -1,35 +0,0 @@ - 'Message de l\'exception : :message', - 'exception_trace' => 'Trace de l\'exception : :trace', - 'exception_message_title' => 'Message de l\'exception', - 'exception_trace_title' => 'Trace de l\'exception', - - 'backup_failed_subject' => 'Échec de la sauvegarde de :application_name', - 'backup_failed_body' => 'Important : Une erreur est survenue lors de la sauvegarde de :application_name', - - 'backup_successful_subject' => 'Succès de la sauvegarde de :application_name', - 'backup_successful_subject_title' => 'Sauvegarde créée avec succès !', - 'backup_successful_body' => 'Bonne nouvelle, une nouvelle sauvegarde de :application_name a été créée avec succès sur le disque nommé :disk_name.', - - 'cleanup_failed_subject' => 'Le nettoyage des sauvegardes de :application_name a echoué.', - 'cleanup_failed_body' => 'Une erreur est survenue lors du nettoyage des sauvegardes de :application_name', - - 'cleanup_successful_subject' => 'Succès du nettoyage des sauvegardes de :application_name', - 'cleanup_successful_subject_title' => 'Sauvegardes nettoyées avec succès !', - 'cleanup_successful_body' => 'Le nettoyage des sauvegardes de :application_name sur le disque nommé :disk_name a été effectué avec succès.', - - 'healthy_backup_found_subject' => 'Les sauvegardes pour :application_name sur le disque :disk_name sont saines', - 'healthy_backup_found_subject_title' => 'Les sauvegardes pour :application_name sont saines', - 'healthy_backup_found_body' => 'Les sauvegardes pour :application_name sont considérées saines. Bon travail !', - - 'unhealthy_backup_found_subject' => 'Important : Les sauvegardes pour :application_name sont corrompues', - 'unhealthy_backup_found_subject_title' => 'Important : Les sauvegardes pour :application_name sont corrompues. :problem', - 'unhealthy_backup_found_body' => 'Les sauvegardes pour :application_name sur le disque :disk_name sont corrompues.', - 'unhealthy_backup_found_not_reachable' => 'La destination de la sauvegarde n\'est pas accessible. :error', - 'unhealthy_backup_found_empty' => 'Il n\'y a aucune sauvegarde pour cette application.', - 'unhealthy_backup_found_old' => 'La dernière sauvegarde du :date est considérée trop vieille.', - 'unhealthy_backup_found_unknown' => 'Désolé, une raison exacte ne peut être déterminée.', - 'unhealthy_backup_found_full' => 'Les sauvegardes utilisent trop d\'espace disque. L\'utilisation actuelle est de :disk_usage alors que la limite autorisée est de :disk_limit.', -]; diff --git a/resources/lang/vi-VN/account/general.php b/resources/lang/vi-VN/account/general.php index 837b86fbcc..026d0efeda 100644 --- a/resources/lang/vi-VN/account/general.php +++ b/resources/lang/vi-VN/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'Khóa API được thiết lập có thời hạn đến:', 'api_reference' => 'Vui lòng kiểm tra tài liệu tham khảo API để tìm các API endpoint cụ thể và tài liệu API bổ sung.', + 'profile_updated' => 'Đã cập nhật tài khoản thành công', ); diff --git a/resources/lang/vi-VN/admin/companies/table.php b/resources/lang/vi-VN/admin/companies/table.php index 2ef90157c3..af632b6837 100644 --- a/resources/lang/vi-VN/admin/companies/table.php +++ b/resources/lang/vi-VN/admin/companies/table.php @@ -2,9 +2,9 @@ return array( 'companies' => 'Các công ty', 'create' => 'Tạo công ty', - 'email' => 'Company Email', + 'email' => 'Địa chỉ email', 'title' => 'Công ty', - 'phone' => 'Company Phone', + 'phone' => 'Số điện thoại', 'update' => 'Cập nhật Công ty', 'name' => 'Tên công ty', 'id' => 'ID', diff --git a/resources/lang/vi-VN/admin/components/message.php b/resources/lang/vi-VN/admin/components/message.php index 4055c51358..7496384174 100644 --- a/resources/lang/vi-VN/admin/components/message.php +++ b/resources/lang/vi-VN/admin/components/message.php @@ -24,7 +24,7 @@ return array( 'error' => 'Hợp phần đã không được kiểm tra, hãy thử lại', 'success' => 'Thành phần được kiểm tra thành công.', 'user_does_not_exist' => 'Người dùng đó không hợp lệ. Vui lòng thử lại.', - 'unavailable' => 'Not enough components remaining: :remaining remaining, :requested requested ', + 'unavailable' => 'Không đủ thành phần còn lại: :remaining, Yêu cầu :requested ', ), 'checkin' => array( diff --git a/resources/lang/vi-VN/admin/consumables/message.php b/resources/lang/vi-VN/admin/consumables/message.php index 2eafeb818d..722314ff49 100644 --- a/resources/lang/vi-VN/admin/consumables/message.php +++ b/resources/lang/vi-VN/admin/consumables/message.php @@ -24,7 +24,7 @@ return array( 'error' => 'Vật tư phụ chưa checkout, xin thử lại', 'success' => 'Vật tư phụ đã checkout thành công.', 'user_does_not_exist' => 'Người dùng này không tồn tại. Xin vui lòng thử lại.', - 'unavailable' => 'There are not enough consumables for this checkout. Please check the quantity left. ', + 'unavailable' => 'Không đủ vật tư tiêu hao cho checkout. Vui lòng kiểm tra số lượng còn lại. ', ), 'checkin' => array( diff --git a/resources/lang/vi-VN/admin/departments/message.php b/resources/lang/vi-VN/admin/departments/message.php index 55524633b2..83219f0665 100644 --- a/resources/lang/vi-VN/admin/departments/message.php +++ b/resources/lang/vi-VN/admin/departments/message.php @@ -3,7 +3,7 @@ return array( 'does_not_exist' => 'Bộ không tồn tại.', - 'department_already_exists' => 'A department already exists with that name at this company location. Or choose a more specific name for this department. ', + 'department_already_exists' => 'Đã tồn tại bộ phận trong vị trí công ty này. Hoặc bạn có thể chọn một tên cụ thể hơn cho bộ phận này. ', 'assoc_users' => 'Bộ phận này hiện đang kết hợp với ít nhất một người dùng và không thể bị xóa. Hãy cập nhật người dùng của bạn để không tham khảo bộ phận này nữa và thử lại.', 'create' => array( 'error' => 'Phòng không được tạo, vui lòng thử lại.', diff --git a/resources/lang/vi-VN/admin/hardware/form.php b/resources/lang/vi-VN/admin/hardware/form.php index 3021ad5e6a..6bc9084582 100644 --- a/resources/lang/vi-VN/admin/hardware/form.php +++ b/resources/lang/vi-VN/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Số đơn hàng', 'qr' => 'Mã QR', 'requestable' => 'Những người dùng có thể yêu cầu tài sản này', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Lựa chọn loại tình trạng', 'serial' => 'Số Sê-ri', 'status' => 'Tình trạng', diff --git a/resources/lang/vi-VN/admin/hardware/general.php b/resources/lang/vi-VN/admin/hardware/general.php index 6acaa94bce..e0191f6834 100644 --- a/resources/lang/vi-VN/admin/hardware/general.php +++ b/resources/lang/vi-VN/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Bạn có chắc chắn muốn xóa tài sản này không?', 'edit' => 'Sửa tài sản', 'model_deleted' => 'Model tài sản này đã bị xóa. Vui lòng khôi phục lại model trước khi khôi phục tài sản.', - 'model_invalid' => 'Model của tài sản này không hợp lệ.', - 'model_invalid_fix' => 'Tài sản phải được chỉnh sửa để sửa lỗi này trước khi cố gắng kiểm tra vào hoặc ra.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Cho phép đề xuất', 'requested' => 'Yêu cầu', 'not_requestable' => 'Không cho phép đề xuất', diff --git a/resources/lang/vi-VN/admin/users/message.php b/resources/lang/vi-VN/admin/users/message.php index 57051c30d2..b732fcc99e 100644 --- a/resources/lang/vi-VN/admin/users/message.php +++ b/resources/lang/vi-VN/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Có vấn đề xảy ra khi cập nhật người dùng. Xin thử lại lần nữa.', 'delete' => 'Có vấn đề xảy ra khi xóa người dùng. Xin thử lại lần nữa.', 'delete_has_assets' => 'Người dùng này đã gán các mục và không thể bị xóa.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Có vấn đề xảy ra khi phục hồi người dùng bị tạm ngưng. Xin thử lại.', 'import' => 'Có vấn đề xảy ra khi nhập danh sách người dùng. Xin thử lại.', 'asset_already_accepted' => 'Tài sản này đã được chấp thuận.', 'accept_or_decline' => 'Bạn phải chấp nhận hoặc từ chối tài sản này.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Nội dung bạn đã cố gắng chấp nhận không được kiểm tra cho bạn.', 'ldap_could_not_connect' => 'Không thể kết nối đến máy chủ LDAP. Xin vui lòng kiểm tra lại cấu hình máy chủ LDAP của bạn ở trong tập tin cấu hình LDAP.
    Lỗi từ máy chủ LDAP:', 'ldap_could_not_bind' => 'Không thể liên kết đến máy chủ LDAP. Xin vui lòng kiểm tra lại cấu hình máy chủ LDAP của bạn ở trong tập tin cấu hình LDAP.
    Lỗi từ máy chủ LDAP: ', diff --git a/resources/lang/vi-VN/general.php b/resources/lang/vi-VN/general.php index 9dee24034b..fa829b7359 100644 --- a/resources/lang/vi-VN/general.php +++ b/resources/lang/vi-VN/general.php @@ -1,7 +1,7 @@ '2FA reset', + '2FA_reset' => 'Đặt lại xác thực 2 yếu tố', 'accessories' => 'Phụ kiện', 'activated' => 'Kích hoạt', 'accepted_date' => 'Ngày chấp nhận', @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Activity Report', 'address' => 'Địa chỉ', 'admin' => 'Quản lý', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Quản trị viên', 'add_seats' => 'Thêm chỗ ngồi', 'age' => "Tuổi", @@ -176,7 +179,7 @@ return [ 'last_name' => 'Tên', 'license' => 'Bản quyền', 'license_report' => 'Báo cáo bản quyền', - 'licenses_available' => 'Licenses available', + '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ờ....', @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Tài sản đã yêu cầu', 'requested_assets_menu' => 'Tài sản đã yêu cầu', 'request_canceled' => 'Yêu cầu Đã Hủy', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Lưu', 'select_var' => 'Lựa chọn :thing... ', // this will eventually replace all of our other selects 'select' => 'Chọn', @@ -278,7 +283,7 @@ return [ 'suppliers' => 'Nhà cung cấp', 'sure_to_delete' => 'Bạn có chắc chắn muốn xoá', 'sure_to_delete_var' => 'Bạn có chắc chắn muốn xoá trường này không?', - 'delete_what' => 'Delete :item', + 'delete_what' => 'Xóa :item', 'submit' => 'Đệ trình', 'target' => 'Mục tiêu', 'time_and_date_display' => 'Hiển thị thời gian và ngày tháng', @@ -292,12 +297,12 @@ return [ 'username_format' => 'Định dạng Tên người dùng', 'username' => 'Tên đăng nhập', 'update' => 'Cập nhật', - 'upload_filetypes_help' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, xls, xlsx, txt, lic, xml, zip, rtf and rar. Max upload size allowed is :size.', + 'upload_filetypes_help' => 'Cho phép các định dạng png, gif, jpg, jpeg, doc, docx, pdf, xls, xlsx, txt, lic, xml, zip, rtf and rar. Dung lượng tối đa :size.', 'uploaded' => 'Đã tải lên', 'user' => 'Người dùng', 'accepted' => 'đã chấp nhận', 'declined' => 'đã từ chối', - 'declined_note' => 'Declined Notes', + 'declined_note' => 'Ghi chú bị từ chối', 'unassigned' => 'Không gán', 'unaccepted_asset_report' => 'Những tài sản không chấp nhận', 'users' => 'Người dùng', @@ -374,10 +379,10 @@ return [ 'dashboard_empty' => 'Có vẻ như bạn chưa thêm bất kỳ điều gì nên chúng tôi không có gì để hiển thị. Hãy bắt đầu bằng cách thêm một số nội dung, phụ kiện, vật tư tiêu hao hoặc giấy phép ngay bây giờ!', 'new_asset' => 'New Asset', 'new_license' => 'New License', - 'new_accessory' => 'New Accessory', - 'new_consumable' => 'New Consumable', - 'collapse' => 'Collapse', - 'assigned' => 'Assigned', + 'new_accessory' => 'Thêm phụ kiện', + 'new_consumable' => 'Tạo vật tư phụ', + 'collapse' => 'Thu gọn', + 'assigned' => 'Đã giao', 'asset_count' => 'Asset Count', 'accessories_count' => 'Accessories Count', 'consumables_count' => 'Consumables Count', @@ -386,7 +391,7 @@ return [ 'notification_error' => 'Lỗi', 'notification_error_hint' => 'Please check the form below for errors', 'notification_bulk_error_hint' => 'The following fields had validation errors and were not edited:', - 'notification_success' => 'Success', + 'notification_success' => 'Thành công', 'notification_warning' => 'Cảnh báo', 'notification_info' => 'Thông tin', 'asset_information' => 'Asset Information', @@ -398,43 +403,44 @@ return [ 'accessory_name' => 'Tên Phụ Kiện:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Cấp phát tài sản', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', 'purge_not_allowed' => 'Purging deleted data has been disabled in the .env file. Contact support or your systems administrator.', 'backup_delete_not_allowed' => 'Deleting backups has been disabled in the .env file. Contact support or your systems administrator.', - 'additional_files' => 'Additional Files', + 'additional_files' => 'Các tệp bổ sung', 'shitty_browser' => 'No signature detected. If you are using an older browser, please use a more modern browser to complete your asset acceptance.', 'bulk_soft_delete' =>'Also soft-delete these users. Their asset history will remain intact unless/until you purge deleted records in the Admin Settings.', 'bulk_checkin_delete_success' => 'Your selected users have been deleted and their items have been checked in.', 'bulk_checkin_success' => 'The items for the selected users have been checked in.', 'set_to_null' => 'Delete values for this asset|Delete values for all :asset_count assets ', 'set_users_field_to_null' => 'Delete :field values for this user|Delete :field values for all :user_count users ', - 'na_no_purchase_date' => 'N/A - No purchase date provided', - 'assets_by_status' => 'Assets by Status', - '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', + 'na_no_purchase_date' => 'N/A - Không có dữ liệu ngày mua hàng', + 'assets_by_status' => 'Tài sản theo trạng thái', + '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', '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', 'placeholder_kit' => 'Chọn công cụ', - 'file_not_found' => 'File not found', - 'preview_not_available' => '(no preview)', - 'setup' => 'Setup', + 'file_not_found' => 'Không tìm thấy tệp', + 'preview_not_available' => '(không có bản xem trước)', + 'setup' => 'Cài đặt', 'pre_flight' => 'Pre-Flight', - 'skip_to_main_content' => 'Skip to main content', - 'toggle_navigation' => 'Toggle navigation', + 'skip_to_main_content' => 'Chuyển đến nội dung chính', + 'toggle_navigation' => 'Đổi điều hướng', 'alerts' => 'Cảnh báo', - 'tasks_view_all' => 'View all tasks', - 'true' => 'True', - 'false' => 'False', - 'integration_option' => 'Integration Option', - 'log_does_not_exist' => 'No matching log record exists.', - 'merge_users' => 'Merge Users', + 'tasks_view_all' => 'Xem tất cả các tác vụ', + 'true' => 'Đúng', + 'false' => 'Sai', + 'integration_option' => 'Tùy Chọn Tích Hợp', + 'log_does_not_exist' => 'Không khớp với các bản ghi log có sẵn.', + 'merge_users' => 'Hợp Nhất User', 'merge_information' => 'This will merge the :count users into a single user. Select the user you wish to merge the others into below, and the associated assets, licenses, etc will be moved over to the selected user and the other users will be marked as deleted.', 'warning_merge_information' => 'This action CANNOT be undone and should ONLY be used when you need to merge users because of a bad import or sync. Be sure to run a backup first.', 'no_users_selected' => 'No users selected', @@ -448,7 +454,7 @@ return [ 'auto_incrementing_asset_tags_disabled_so_tags_required' => 'Generating auto-incrementing asset tags is disabled so all rows need to have the "Asset Tag" column populated.', 'auto_incrementing_asset_tags_enabled_so_now_assets_will_be_created' => 'Note: Generating auto-incrementing asset tags is enabled so assets will be created for rows that do not have "Asset Tag" populated. Rows that do have "Asset Tag" populated will be updated with the provided information.', 'send_welcome_email_to_users' => ' Send Welcome Email for new Users?', - 'send_email' => 'Send Email', + 'send_email' => 'Gửi Email', 'call' => 'Call number', 'back_before_importing' => 'Backup before importing?', 'csv_header_field' => 'CSV Header Field', @@ -500,6 +506,8 @@ return [ 'address2' => 'Địa chỉ thứ 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% hoàn thành', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/vi-VN/localizations.php b/resources/lang/vi-VN/localizations.php index f1232dd138..e715ade55d 100644 --- a/resources/lang/vi-VN/localizations.php +++ b/resources/lang/vi-VN/localizations.php @@ -2,7 +2,7 @@ return [ - 'select_language' => 'Select a language', + 'select_language' => 'Lựa chọn ngôn ngữ', 'languages' => [ 'en-US'=> 'English, US', 'en-GB'=> 'English, UK', diff --git a/resources/lang/vi-VN/table.php b/resources/lang/vi-VN/table.php index 0ede618d5a..8a2d246d39 100644 --- a/resources/lang/vi-VN/table.php +++ b/resources/lang/vi-VN/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Thao tác', - 'action' => 'Tác vụ', - 'by' => 'Bởi', - 'item' => 'Mục', + 'actions' => 'Thao tác', + 'action' => 'Tác vụ', + 'by' => 'Bởi', + 'item' => 'Mục', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/zh-CN/account/general.php b/resources/lang/zh-CN/account/general.php index 7d12430ab1..d28721335a 100644 --- a/resources/lang/zh-CN/account/general.php +++ b/resources/lang/zh-CN/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => '设定 API 令牌过期时间为:', 'api_reference' => '请查询 API 引用 到 找到特定的 API 端点以及额外的 API 文档。', + 'profile_updated' => '帐户已成功更新', ); diff --git a/resources/lang/zh-CN/admin/hardware/form.php b/resources/lang/zh-CN/admin/hardware/form.php index 9a67f395f1..9ba90e83ef 100644 --- a/resources/lang/zh-CN/admin/hardware/form.php +++ b/resources/lang/zh-CN/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => '订单号', 'qr' => '二维码', 'requestable' => '用户可能申请了该资产', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => '选择状态类型', 'serial' => '序列号', 'status' => '状态', diff --git a/resources/lang/zh-CN/admin/hardware/general.php b/resources/lang/zh-CN/admin/hardware/general.php index 64f3492f78..50216f5338 100644 --- a/resources/lang/zh-CN/admin/hardware/general.php +++ b/resources/lang/zh-CN/admin/hardware/general.php @@ -16,7 +16,7 @@ return [ 'edit' => '编辑资产', 'model_deleted' => '这个资源模型已被删除。您必须先还原模型才能还原素材。', 'model_invalid' => '此资产的型号无效。', - 'model_invalid_fix' => '在尝试归还或借出资产之前,应编辑资产以更正此问题。', + 'model_invalid_fix' => '在尝试借出、归还或盘点之前,必须使用有效的资产型号更新资产。', 'requestable' => '可申领', 'requested' => '已申请', 'not_requestable' => '不可申领', diff --git a/resources/lang/zh-CN/admin/users/message.php b/resources/lang/zh-CN/admin/users/message.php index 43613afd78..24cc927ed0 100644 --- a/resources/lang/zh-CN/admin/users/message.php +++ b/resources/lang/zh-CN/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => '更新用户过程中出现了一些问题,请重试。', 'delete' => '删除用户过程中出现了一点儿问题,请重试。', 'delete_has_assets' => '此用户具有分配的项目,无法删除。', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => '恢复停用用户的过程中出现了一点儿问题,请重试。', 'import' => '导入用户出现问题。请再试一次。', 'asset_already_accepted' => '资产已被接受', 'accept_or_decline' => '你必须选择接受或者拒绝该资产。', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => '您正尝试接受的资产未被分配与您', 'ldap_could_not_connect' => '无法连接到LDAP服务器,请检查LDAP配置文件中的相关设置。
    LDAP服务器错误信息:', 'ldap_could_not_bind' => '无法绑定到LDAP服务器,请检查LDAP配置文件中的相关设置。
    LDAP服务器错误信息: ', diff --git a/resources/lang/zh-CN/general.php b/resources/lang/zh-CN/general.php index ed7dc34e9a..8da10d2f7b 100644 --- a/resources/lang/zh-CN/general.php +++ b/resources/lang/zh-CN/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => '活动报告', 'address' => '地址', 'admin' => '管理员', + 'admin_tooltip' => '此用户拥有管理员权限', + 'superuser' => '超级用户', + 'superuser_tooltip' => '此用户拥有超级用户权限', 'administrator' => '管理员', 'add_seats' => '已增加空位', 'age' => "年龄", @@ -241,6 +244,8 @@ return [ 'requested_assets' => '已申领资产', 'requested_assets_menu' => '已申领资产', 'request_canceled' => '取消请求', + 'request_item' => '申领此项', + 'external_link_tooltip' => '外部链接到', 'save' => '保存​​', 'select_var' => '选择 :thing... ', // this will eventually replace all of our other selects 'select' => '选择', @@ -398,8 +403,9 @@ return [ 'accessory_name' => '配件名称:', 'clone_item' => '克隆物品', 'checkout_tooltip' => '借出此物品', - 'checkin_tooltip' => '归还此物品', + 'checkin_tooltip' => '选中此项,以便重新发布、重映像等。', 'checkout_user_tooltip' => '借出此物品给一个用户', + 'checkin_to_diff_location' => '您可以选择将此资产归还到此资产的默认位置(如果已设置):default_location 以外的位置', 'maintenance_mode' => '该服务暂时无法用于系统更新。请稍后再试。', 'maintenance_mode_title' => '系统暂时不可用', 'ldap_import' => '用户密码不应由LDAP管理。(这允许您发送忘记密码的请求。)', @@ -500,6 +506,8 @@ return [ 'address2' => '地址行2', 'import_note' => '使用 csv 导入器导入', ], + 'remove_customfield_association' => '从字段集中删除此字段。这不会删除自定义字段,只会删除此字段与此字段集的关联。', + 'checked_out_to_fields' => '借出到字段', 'percent_complete' => '% 完成', 'uploading' => '正在上传... ', 'upload_error' => '上传文件时出错。请检查是否没有空行,并且没有重复的列名。', diff --git a/resources/lang/zh-CN/table.php b/resources/lang/zh-CN/table.php index ae5de58af8..2df250aef7 100644 --- a/resources/lang/zh-CN/table.php +++ b/resources/lang/zh-CN/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => '操作', - 'action' => '操作', - 'by' => '经由', - 'item' => '项目', + 'actions' => '操作', + 'action' => '操作', + 'by' => '经由', + 'item' => '项目', + 'no_matching_records' => '未找到匹配的记录', ); diff --git a/resources/lang/zh-HK/account/general.php b/resources/lang/zh-HK/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/zh-HK/account/general.php +++ b/resources/lang/zh-HK/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/zh-HK/admin/hardware/form.php b/resources/lang/zh-HK/admin/hardware/form.php index a7aba0813c..edec543637 100644 --- a/resources/lang/zh-HK/admin/hardware/form.php +++ b/resources/lang/zh-HK/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Order Number', 'qr' => 'QR Code', 'requestable' => 'Users may request this asset', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Select Status Type', 'serial' => 'Serial', 'status' => 'Status', diff --git a/resources/lang/zh-HK/admin/hardware/general.php b/resources/lang/zh-HK/admin/hardware/general.php index f7f8ad4d06..34ac4e63ee 100644 --- a/resources/lang/zh-HK/admin/hardware/general.php +++ b/resources/lang/zh-HK/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Edit Asset', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Requestable', 'requested' => 'Requested', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/zh-HK/admin/users/message.php b/resources/lang/zh-HK/admin/users/message.php index b7c0a29f14..4d014775bd 100644 --- a/resources/lang/zh-HK/admin/users/message.php +++ b/resources/lang/zh-HK/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'There was an issue updating the user. Please try again.', 'delete' => 'There was an issue deleting the user. Please try again.', 'delete_has_assets' => 'This user has items assigned and could not be deleted.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'There was an issue unsuspending the user. Please try again.', 'import' => 'There was an issue importing users. Please try again.', 'asset_already_accepted' => 'This asset has already been accepted.', 'accept_or_decline' => 'You must either accept or decline this asset.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'The asset you have attempted to accept was not checked out to you.', 'ldap_could_not_connect' => 'Could not connect to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server:', 'ldap_could_not_bind' => 'Could not bind to the LDAP server. Please check your LDAP server configuration in the LDAP config file.
    Error from LDAP Server: ', diff --git a/resources/lang/zh-HK/general.php b/resources/lang/zh-HK/general.php index 30dd232a2a..d011cf705c 100644 --- a/resources/lang/zh-HK/general.php +++ b/resources/lang/zh-HK/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Activity Report', 'address' => 'Address', 'admin' => 'Admin', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Added seats', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Request Canceled', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Save', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Select', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Accessory Name:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% complete', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/zh-HK/table.php b/resources/lang/zh-HK/table.php index d11fdbabc4..2f0b5ec54d 100644 --- a/resources/lang/zh-HK/table.php +++ b/resources/lang/zh-HK/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => '操作', - 'action' => '操作', - 'by' => '經由', - 'item' => '項目', + 'actions' => '操作', + 'action' => '操作', + 'by' => '經由', + 'item' => '項目', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/zh-TW/account/general.php b/resources/lang/zh-TW/account/general.php index ce37c5b1d8..fc3f782858 100644 --- a/resources/lang/zh-TW/account/general.php +++ b/resources/lang/zh-TW/account/general.php @@ -7,4 +7,5 @@ return array( 'api_base_url_endpoint' => '/<端點>', 'api_token_expiration_time' => 'API tokens 設定為在以下時間過期:', 'api_reference' => '請查閱 API 參考文件 以找到特定的 API 端點和額外的 API 文件。', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/zh-TW/admin/hardware/form.php b/resources/lang/zh-TW/admin/hardware/form.php index 091f745283..91e789f0b1 100644 --- a/resources/lang/zh-TW/admin/hardware/form.php +++ b/resources/lang/zh-TW/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => '訂單編號', 'qr' => 'QR Code', 'requestable' => '使用者可申請此資產', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => '選擇狀態類型', 'serial' => '序號', 'status' => '狀態', diff --git a/resources/lang/zh-TW/admin/hardware/general.php b/resources/lang/zh-TW/admin/hardware/general.php index df9b0fc077..456f4b5815 100644 --- a/resources/lang/zh-TW/admin/hardware/general.php +++ b/resources/lang/zh-TW/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => '您確定要刪除此資產嗎?', 'edit' => '編輯資產', 'model_deleted' => '此資產模板已被刪除. 你必須先還原資產模板才可還原資產.', - 'model_invalid' => '此資產的型號無效。', - 'model_invalid_fix' => '在嘗試登記或借出前,需要先編輯資產以修正此問題。', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => '可申領', 'requested' => '已申領', 'not_requestable' => '不可申請', diff --git a/resources/lang/zh-TW/admin/users/message.php b/resources/lang/zh-TW/admin/users/message.php index cb2760b3db..8c503b7ec2 100644 --- a/resources/lang/zh-TW/admin/users/message.php +++ b/resources/lang/zh-TW/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => '更新使用者失敗,請重試。', 'delete' => '刪除使用者失敗,請重試。', 'delete_has_assets' => '此使用者已分配物件,無法刪除。', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => '解除停用使用者失敗,請重試。', 'import' => '匯入使用者失敗,請重試。', 'asset_already_accepted' => '資產已被接受', 'accept_or_decline' => '您必須選擇接受或拒絕該資產。', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => '您正嘗試接受的資產未分配給您', 'ldap_could_not_connect' => '無法連接到 LDAP 伺服器,請檢查 LDAP 設定文件中的相關設定。
    LDAP 伺服器錯誤訊息:', 'ldap_could_not_bind' => '無法綁定 LDAP 伺服器,請檢查 LDAP 設定文件中的相關設定。
    LDAP 伺服器錯誤訊息:', diff --git a/resources/lang/zh-TW/general.php b/resources/lang/zh-TW/general.php index 62faee7e44..dbf6c23918 100644 --- a/resources/lang/zh-TW/general.php +++ b/resources/lang/zh-TW/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => '活動報告', 'address' => '地址', 'admin' => '管理員', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => '管理員', 'add_seats' => '新增授權', 'age' => "年齡", @@ -241,6 +244,8 @@ return [ 'requested_assets' => '申請的資產', 'requested_assets_menu' => '申請的資產', 'request_canceled' => '取消申請', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => '儲存', 'select_var' => '選擇 :thing... ', // this will eventually replace all of our other selects 'select' => '選擇', @@ -398,8 +403,9 @@ return [ 'accessory_name' => '配件名稱:', 'clone_item' => '複製項目', 'checkout_tooltip' => '借出此項目', - 'checkin_tooltip' => '歸還此項目', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => '將此項目借出給使用者', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => '系統升級中,服務目前暫時無法使用,請稍後再查看。', 'maintenance_mode_title' => '系統暫時無法使用', 'ldap_import' => '使用者密碼不應該由LDAP管理。(這允許你發送忘記密碼的請求)', @@ -500,6 +506,8 @@ return [ 'address2' => '地址第二行', 'import_note' => '使用 csv 匯入器匯入', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% 完成', 'uploading' => '上傳中... ', 'upload_error' => '上傳檔案錯誤,請檢查是否有空行,列名稱是否重複。', diff --git a/resources/lang/zh-TW/table.php b/resources/lang/zh-TW/table.php index d11fdbabc4..2f0b5ec54d 100644 --- a/resources/lang/zh-TW/table.php +++ b/resources/lang/zh-TW/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => '操作', - 'action' => '操作', - 'by' => '經由', - 'item' => '項目', + 'actions' => '操作', + 'action' => '操作', + 'by' => '經由', + 'item' => '項目', + 'no_matching_records' => 'No matching records found', ); diff --git a/resources/lang/zu-ZA/account/general.php b/resources/lang/zu-ZA/account/general.php index 7fc060a849..1fc28f3409 100644 --- a/resources/lang/zu-ZA/account/general.php +++ b/resources/lang/zu-ZA/account/general.php @@ -9,4 +9,5 @@ return array( 'api_token_expiration_time' => 'API tokens are set to expire in:', 'api_reference' => 'Please check the API reference to find specific API endpoints and additional API documentation.', + 'profile_updated' => 'Account successfully updated', ); diff --git a/resources/lang/zu-ZA/admin/hardware/form.php b/resources/lang/zu-ZA/admin/hardware/form.php index 8426067313..1cbc70f4a6 100644 --- a/resources/lang/zu-ZA/admin/hardware/form.php +++ b/resources/lang/zu-ZA/admin/hardware/form.php @@ -39,6 +39,9 @@ return [ 'order' => 'Inombolo Ye-oda', 'qr' => 'Ikhodi ye-QR', 'requestable' => 'Abasebenzisi bangase bacele le mali', + 'redirect_to_all' => 'Return to all :type', + 'redirect_to_type' => 'Go to :type', + 'redirect_to_checked_out_to' => 'Go to Checked Out to', 'select_statustype' => 'Khetha uhlobo lomumo', 'serial' => 'Serial', 'status' => 'Isimo', diff --git a/resources/lang/zu-ZA/admin/hardware/general.php b/resources/lang/zu-ZA/admin/hardware/general.php index 9083ecc9f4..8b2ac0065e 100644 --- a/resources/lang/zu-ZA/admin/hardware/general.php +++ b/resources/lang/zu-ZA/admin/hardware/general.php @@ -15,8 +15,8 @@ return [ 'delete_confirm' => 'Are you sure you want to delete this asset?', 'edit' => 'Hlela Impahla', 'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.', - 'model_invalid' => 'The Model of this Asset is invalid.', - 'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.', + 'model_invalid' => 'This model for this asset is invalid.', + 'model_invalid_fix' => 'The asset must be updated use a valid asset model before attempting to check it in or out, or to audit it.', 'requestable' => 'Iyadingeka', 'requested' => 'Kuceliwe', 'not_requestable' => 'Not Requestable', diff --git a/resources/lang/zu-ZA/admin/users/message.php b/resources/lang/zu-ZA/admin/users/message.php index c3961321fe..cf9786a5ea 100644 --- a/resources/lang/zu-ZA/admin/users/message.php +++ b/resources/lang/zu-ZA/admin/users/message.php @@ -37,10 +37,16 @@ return array( 'update' => 'Kube nenkinga yokuvuselela umsebenzisi. Ngicela uzame futhi.', 'delete' => 'Kube nenkinga yokusula umsebenzisi. Ngicela uzame futhi.', 'delete_has_assets' => 'Lo msebenzisi unezinto ezinikezwe futhi azikwazanga ukususwa.', + 'delete_has_assets_var' => 'This user still has an asset assigned. Please check it in first.|This user still has :count assets assigned. Please check their assets in first.', + 'delete_has_licenses_var' => 'This user still has a license seats assigned. Please check it in first.|This user still has :count license seats assigned. Please check them in first.', + 'delete_has_accessories_var' => 'This user still has an accessory assigned. Please check it in first.|This user still has :count accessories assigned. Please check their assets in first.', + 'delete_has_locations_var' => 'This user still manages a location. Please select another manager first.|This user still manages :count locations. Please select another manager first.', + 'delete_has_users_var' => 'This user still manages another user. Please select another manager for that user first.|This user still manages :count users. Please select another manager for them first.', 'unsuspend' => 'Kube nenkinga engalindeleki umsebenzisi. Ngicela uzame futhi.', 'import' => 'Kube nenkinga yokungenisa abasebenzisi. Ngicela uzame futhi.', 'asset_already_accepted' => 'Lelifa selivele lamukelwe.', 'accept_or_decline' => 'Kufanele wamukele noma unqabe le mali.', + 'cannot_delete_yourself' => 'We would feel really bad if you deleted yourself, please reconsider.', 'incorrect_user_accepted' => 'Impahla oyizame ukwamukela ayizange ihlolwe kuwe.', 'ldap_could_not_connect' => 'Ayikwazanga ukuxhuma kuseva ye-LDAP. Sicela uhlole ukumisa kweseva yakho ye-LDAP kufayili ye-LDAP config.
    Iphutha kusuka kwiseva ye-LDAP:', 'ldap_could_not_bind' => 'Ayikwazanga ukubopha iseva ye-LDAP. Sicela uhlole ukumisa kweseva yakho ye-LDAP kufayili ye-LDAP config.
    Iphutha kusuka kwiseva ye-LDAP:', diff --git a/resources/lang/zu-ZA/general.php b/resources/lang/zu-ZA/general.php index dc1e3845e6..d46d61442c 100644 --- a/resources/lang/zu-ZA/general.php +++ b/resources/lang/zu-ZA/general.php @@ -11,6 +11,9 @@ return [ 'activity_report' => 'Umbiko Womsebenzi', 'address' => 'Ikheli', 'admin' => 'Ukuphatha', + 'admin_tooltip' => 'This user has admin privileges', + 'superuser' => 'Superuser', + 'superuser_tooltip' => 'This user has superuser privileges', 'administrator' => 'Administrator', 'add_seats' => 'Izihlalo ezengeziwe', 'age' => "Age", @@ -241,6 +244,8 @@ return [ 'requested_assets' => 'Requested Assets', 'requested_assets_menu' => 'Requested Assets', 'request_canceled' => 'Isicelo sikhanseliwe', + 'request_item' => 'Request this item', + 'external_link_tooltip' => 'External link to', 'save' => 'Londoloza', 'select_var' => 'Select :thing... ', // this will eventually replace all of our other selects 'select' => 'Khetha', @@ -398,8 +403,9 @@ return [ 'accessory_name' => 'Igama lokufinyelela:', 'clone_item' => 'Clone Item', 'checkout_tooltip' => 'Check this item out', - 'checkin_tooltip' => 'Check this item in', + 'checkin_tooltip' => 'Check this item in so that it is available for re-issue, re-imaging, etc', 'checkout_user_tooltip' => 'Check this item out to a user', + 'checkin_to_diff_location' => 'You can choose to check this asset in to a location other than this asset\'s default location of :default_location if one is set', 'maintenance_mode' => 'The service is temporarily unavailable for system updates. Please check back later.', 'maintenance_mode_title' => 'System Temporarily Unavailable', 'ldap_import' => 'User password should not be managed by LDAP. (This allows you to send forgotten password requests.)', @@ -500,6 +506,8 @@ return [ 'address2' => 'Address Line 2', 'import_note' => 'Imported using csv importer', ], + 'remove_customfield_association' => 'Remove this field from the fieldset. This will not delete the custom field, only this field\'s association with this fieldset.', + 'checked_out_to_fields' => 'Checked Out To Fields', 'percent_complete' => '% qedela', 'uploading' => 'Uploading... ', 'upload_error' => 'Error uploading file. Please check that there are no empty rows and that no column names are duplicated.', diff --git a/resources/lang/zu-ZA/table.php b/resources/lang/zu-ZA/table.php index 0797bd00f3..d52837d44d 100644 --- a/resources/lang/zu-ZA/table.php +++ b/resources/lang/zu-ZA/table.php @@ -2,9 +2,10 @@ return array( - 'actions' => 'Izenzo', - 'action' => 'Isenzo', - 'by' => 'Ngu', - 'item' => 'Into', + 'actions' => 'Izenzo', + 'action' => 'Isenzo', + 'by' => 'Ngu', + 'item' => 'Into', + 'no_matching_records' => 'No matching records found', ); From 29a36839aafc2270651282c661a30796e4fc117f Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Mon, 3 Jun 2024 16:29:53 -0700 Subject: [PATCH 055/110] Move existing API checkin and checkout tests under domain directory --- tests/Feature/Api/{Assets => Checkins}/AssetCheckinTest.php | 2 +- .../Api/{Accessories => Checkouts}/AccessoryCheckoutTest.php | 2 +- tests/Feature/Api/{Assets => Checkouts}/AssetCheckoutTest.php | 2 +- .../Api/{Consumables => Checkouts}/ConsumableCheckoutTest.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename tests/Feature/Api/{Assets => Checkins}/AssetCheckinTest.php (99%) rename tests/Feature/Api/{Accessories => Checkouts}/AccessoryCheckoutTest.php (98%) rename tests/Feature/Api/{Assets => Checkouts}/AssetCheckoutTest.php (99%) rename tests/Feature/Api/{Consumables => Checkouts}/ConsumableCheckoutTest.php (98%) diff --git a/tests/Feature/Api/Assets/AssetCheckinTest.php b/tests/Feature/Api/Checkins/AssetCheckinTest.php similarity index 99% rename from tests/Feature/Api/Assets/AssetCheckinTest.php rename to tests/Feature/Api/Checkins/AssetCheckinTest.php index add90a067d..edd3f80191 100644 --- a/tests/Feature/Api/Assets/AssetCheckinTest.php +++ b/tests/Feature/Api/Checkins/AssetCheckinTest.php @@ -1,6 +1,6 @@ Date: Mon, 3 Jun 2024 16:49:44 -0700 Subject: [PATCH 056/110] Move test method to existing test --- tests/Feature/Api/Users/UpdateUserApiTest.php | 73 ++++++++++++++++ tests/Feature/Api/Users/UsersUpdateTest.php | 84 ------------------- 2 files changed, 73 insertions(+), 84 deletions(-) delete mode 100644 tests/Feature/Api/Users/UsersUpdateTest.php diff --git a/tests/Feature/Api/Users/UpdateUserApiTest.php b/tests/Feature/Api/Users/UpdateUserApiTest.php index 37ebce4a46..2635dc867b 100644 --- a/tests/Feature/Api/Users/UpdateUserApiTest.php +++ b/tests/Feature/Api/Users/UpdateUserApiTest.php @@ -3,12 +3,85 @@ namespace Tests\Feature\Api\Users; use App\Models\Company; +use App\Models\Department; use App\Models\Group; +use App\Models\Location; use App\Models\User; +use Illuminate\Support\Facades\Hash; use Tests\TestCase; class UpdateUserApiTest extends TestCase { + public function testCanUpdateUserViaPatch() + { + $admin = User::factory()->superuser()->create(); + $manager = User::factory()->create(); + $company = Company::factory()->create(); + $department = Department::factory()->create(); + $location = Location::factory()->create(); + [$groupA, $groupB] = Group::factory()->count(2)->create(); + + $user = User::factory()->create([ + 'activated' => false, + 'remote' => false, + 'vip' => false, + ]); + + $this->actingAsForApi($admin) + ->patchJson(route('api.users.update', $user), [ + 'first_name' => 'Mabel', + 'last_name' => 'Mora', + 'username' => 'mabel', + 'password' => 'super-secret', + 'email' => 'mabel@onlymurderspod.com', + 'permissions' => '{"a.new.permission":"1"}', + 'activated' => true, + 'phone' => '619-555-5555', + 'jobtitle' => 'Host', + 'manager_id' => $manager->id, + 'employee_num' => '1111', + 'notes' => 'Pretty good artist', + 'company_id' => $company->id, + 'department_id' => $department->id, + 'location_id' => $location->id, + 'remote' => true, + 'groups' => $groupA->id, + 'vip' => true, + 'start_date' => '2021-08-01', + 'end_date' => '2025-12-31', + ]) + ->assertOk(); + + $user->refresh(); + $this->assertEquals('Mabel', $user->first_name, 'First name was not updated'); + $this->assertEquals('Mora', $user->last_name, 'Last name was not updated'); + $this->assertEquals('mabel', $user->username, 'Username was not updated'); + $this->assertTrue(Hash::check('super-secret', $user->password), 'Password was not updated'); + $this->assertEquals('mabel@onlymurderspod.com', $user->email, 'Email was not updated'); + $this->assertArrayHasKey('a.new.permission', $user->decodePermissions(), 'Permissions were not updated'); + $this->assertTrue((bool) $user->activated, 'User not marked as activated'); + $this->assertEquals('619-555-5555', $user->phone, 'Phone was not updated'); + $this->assertEquals('Host', $user->jobtitle, 'Job title was not updated'); + $this->assertTrue($user->manager->is($manager), 'Manager was not updated'); + $this->assertEquals('1111', $user->employee_num, 'Employee number was not updated'); + $this->assertEquals('Pretty good artist', $user->notes, 'Notes was not updated'); + $this->assertTrue($user->company->is($company), 'Company was not updated'); + $this->assertTrue($user->department->is($department), 'Department was not updated'); + $this->assertTrue($user->location->is($location), 'Location was not updated'); + $this->assertEquals(1, $user->remote, 'Remote was not updated'); + $this->assertTrue($user->groups->contains($groupA), 'Groups were not updated'); + $this->assertEquals(1, $user->vip, 'VIP was not updated'); + $this->assertEquals('2021-08-01', $user->start_date, 'Start date was not updated'); + $this->assertEquals('2025-12-31', $user->end_date, 'End date was not updated'); + + // `groups` can be an id or array or ids + $this->patch(route('api.users.update', $user), ['groups' => [$groupA->id, $groupB->id]]); + + $user->refresh(); + $this->assertTrue($user->groups->contains($groupA), 'Not part of expected group'); + $this->assertTrue($user->groups->contains($groupB), 'Not part of expected group'); + } + public function testApiUsersCanBeActivatedWithNumber() { $admin = User::factory()->superuser()->create(); diff --git a/tests/Feature/Api/Users/UsersUpdateTest.php b/tests/Feature/Api/Users/UsersUpdateTest.php deleted file mode 100644 index d6e0f9e46b..0000000000 --- a/tests/Feature/Api/Users/UsersUpdateTest.php +++ /dev/null @@ -1,84 +0,0 @@ -superuser()->create(); - $manager = User::factory()->create(); - $company = Company::factory()->create(); - $department = Department::factory()->create(); - $location = Location::factory()->create(); - [$groupA, $groupB] = Group::factory()->count(2)->create(); - - $user = User::factory()->create([ - 'activated' => false, - 'remote' => false, - 'vip' => false, - ]); - - $this->actingAsForApi($admin) - ->patchJson(route('api.users.update', $user), [ - 'first_name' => 'Mabel', - 'last_name' => 'Mora', - 'username' => 'mabel', - 'password' => 'super-secret', - 'email' => 'mabel@onlymurderspod.com', - 'permissions' => '{"a.new.permission":"1"}', - 'activated' => true, - 'phone' => '619-555-5555', - 'jobtitle' => 'Host', - 'manager_id' => $manager->id, - 'employee_num' => '1111', - 'notes' => 'Pretty good artist', - 'company_id' => $company->id, - 'department_id' => $department->id, - 'location_id' => $location->id, - 'remote' => true, - 'groups' => $groupA->id, - 'vip' => true, - 'start_date' => '2021-08-01', - 'end_date' => '2025-12-31', - ]) - ->assertOk(); - - $user->refresh(); - $this->assertEquals('Mabel', $user->first_name, 'First name was not updated'); - $this->assertEquals('Mora', $user->last_name, 'Last name was not updated'); - $this->assertEquals('mabel', $user->username, 'Username was not updated'); - $this->assertTrue(Hash::check('super-secret', $user->password), 'Password was not updated'); - $this->assertEquals('mabel@onlymurderspod.com', $user->email, 'Email was not updated'); - $this->assertArrayHasKey('a.new.permission', $user->decodePermissions(), 'Permissions were not updated'); - $this->assertTrue((bool)$user->activated, 'User not marked as activated'); - $this->assertEquals('619-555-5555', $user->phone, 'Phone was not updated'); - $this->assertEquals('Host', $user->jobtitle, 'Job title was not updated'); - $this->assertTrue($user->manager->is($manager), 'Manager was not updated'); - $this->assertEquals('1111', $user->employee_num, 'Employee number was not updated'); - $this->assertEquals('Pretty good artist', $user->notes, 'Notes was not updated'); - $this->assertTrue($user->company->is($company), 'Company was not updated'); - $this->assertTrue($user->department->is($department), 'Department was not updated'); - $this->assertTrue($user->location->is($location), 'Location was not updated'); - $this->assertEquals(1, $user->remote, 'Remote was not updated'); - $this->assertTrue($user->groups->contains($groupA), 'Groups were not updated'); - $this->assertEquals(1, $user->vip, 'VIP was not updated'); - $this->assertEquals('2021-08-01', $user->start_date, 'Start date was not updated'); - $this->assertEquals('2025-12-31', $user->end_date, 'End date was not updated'); - - // `groups` can be an id or array or ids - $this->patch(route('api.users.update', $user), ['groups' => [$groupA->id, $groupB->id]]); - - $user->refresh(); - $this->assertTrue($user->groups->contains($groupA), 'Not part of expected group'); - $this->assertTrue($user->groups->contains($groupB), 'Not part of expected group'); - } -} From b07e3b4a9102a5bfbde7ba9322453b5a211891c2 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Mon, 3 Jun 2024 16:50:56 -0700 Subject: [PATCH 057/110] Remove API from test class name --- .../Api/Users/{UpdateUserApiTest.php => UpdateUserTest.php} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename tests/Feature/Api/Users/{UpdateUserApiTest.php => UpdateUserTest.php} (99%) diff --git a/tests/Feature/Api/Users/UpdateUserApiTest.php b/tests/Feature/Api/Users/UpdateUserTest.php similarity index 99% rename from tests/Feature/Api/Users/UpdateUserApiTest.php rename to tests/Feature/Api/Users/UpdateUserTest.php index 2635dc867b..37b137b415 100644 --- a/tests/Feature/Api/Users/UpdateUserApiTest.php +++ b/tests/Feature/Api/Users/UpdateUserTest.php @@ -10,7 +10,7 @@ use App\Models\User; use Illuminate\Support\Facades\Hash; use Tests\TestCase; -class UpdateUserApiTest extends TestCase +class UpdateUserTest extends TestCase { public function testCanUpdateUserViaPatch() { From 95f6381da436dd0f0363ea0534315449c41da960 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Mon, 3 Jun 2024 16:53:15 -0700 Subject: [PATCH 058/110] Update tests names to VerbNounTest --- .../Api/Assets/{AssetStoreTest.php => StoreAssetTest.php} | 2 +- .../Api/Assets/{AssetUpdateTest.php => UpdateAssetTest.php} | 2 +- .../Api/Groups/{GroupStoreTest.php => StoreGroupTest.php} | 2 +- .../Assets/{AssetsBulkEditTest.php => BulkEditAssetsTest.php} | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename tests/Feature/Api/Assets/{AssetStoreTest.php => StoreAssetTest.php} (99%) rename tests/Feature/Api/Assets/{AssetUpdateTest.php => UpdateAssetTest.php} (98%) rename tests/Feature/Api/Groups/{GroupStoreTest.php => StoreGroupTest.php} (98%) rename tests/Feature/Assets/{AssetsBulkEditTest.php => BulkEditAssetsTest.php} (99%) diff --git a/tests/Feature/Api/Assets/AssetStoreTest.php b/tests/Feature/Api/Assets/StoreAssetTest.php similarity index 99% rename from tests/Feature/Api/Assets/AssetStoreTest.php rename to tests/Feature/Api/Assets/StoreAssetTest.php index 006a5738f7..617c7625b9 100644 --- a/tests/Feature/Api/Assets/AssetStoreTest.php +++ b/tests/Feature/Api/Assets/StoreAssetTest.php @@ -16,7 +16,7 @@ use Illuminate\Testing\Fluent\AssertableJson; use Illuminate\Testing\TestResponse; use Tests\TestCase; -class AssetStoreTest extends TestCase +class StoreAssetTest extends TestCase { public function testRequiresPermissionToCreateAsset() { diff --git a/tests/Feature/Api/Assets/AssetUpdateTest.php b/tests/Feature/Api/Assets/UpdateAssetTest.php similarity index 98% rename from tests/Feature/Api/Assets/AssetUpdateTest.php rename to tests/Feature/Api/Assets/UpdateAssetTest.php index ed830c379c..1889a70a79 100644 --- a/tests/Feature/Api/Assets/AssetUpdateTest.php +++ b/tests/Feature/Api/Assets/UpdateAssetTest.php @@ -8,7 +8,7 @@ use App\Models\User; use Illuminate\Support\Facades\Crypt; use Tests\TestCase; -class AssetUpdateTest extends TestCase +class UpdateAssetTest extends TestCase { public function testEncryptedCustomFieldCanBeUpdated() { diff --git a/tests/Feature/Api/Groups/GroupStoreTest.php b/tests/Feature/Api/Groups/StoreGroupTest.php similarity index 98% rename from tests/Feature/Api/Groups/GroupStoreTest.php rename to tests/Feature/Api/Groups/StoreGroupTest.php index afa7a747d8..e0c5118b64 100644 --- a/tests/Feature/Api/Groups/GroupStoreTest.php +++ b/tests/Feature/Api/Groups/StoreGroupTest.php @@ -7,7 +7,7 @@ use App\Models\Group; use App\Models\User; use Tests\TestCase; -class GroupStoreTest extends TestCase +class StoreGroupTest extends TestCase { public function testStoringGroupRequiresSuperAdminPermission() { diff --git a/tests/Feature/Assets/AssetsBulkEditTest.php b/tests/Feature/Assets/BulkEditAssetsTest.php similarity index 99% rename from tests/Feature/Assets/AssetsBulkEditTest.php rename to tests/Feature/Assets/BulkEditAssetsTest.php index 70918b3595..94458aafb6 100644 --- a/tests/Feature/Assets/AssetsBulkEditTest.php +++ b/tests/Feature/Assets/BulkEditAssetsTest.php @@ -12,7 +12,7 @@ use App\Models\User; use Illuminate\Support\Facades\Crypt; use Tests\TestCase; -class AssetsBulkEditTest extends TestCase +class BulkEditAssetsTest extends TestCase { public function testUserWithPermissionsCanAccessPage() { From b1e8e5389bcc515e983b20f4a9c56a5fa0f1fb32 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Mon, 3 Jun 2024 16:54:59 -0700 Subject: [PATCH 059/110] Make most test names singular --- .../{RequestableAssetsTest.php => RequestableAssetTest.php} | 2 +- .../{ConsumablesIndexTest.php => ConsumableIndexTest.php} | 2 +- .../Licenses/{LicensesIndexTest.php => LicenseIndexTest.php} | 2 +- .../Api/Users/{DeleteUsersTest.php => DeleteUserTest.php} | 2 +- .../Api/Users/{UsersSearchTest.php => UserSearchTest.php} | 2 +- tests/Feature/Users/{DeleteUsersTest.php => DeleteUserTest.php} | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) rename tests/Feature/Api/Assets/{RequestableAssetsTest.php => RequestableAssetTest.php} (98%) rename tests/Feature/Api/Consumables/{ConsumablesIndexTest.php => ConsumableIndexTest.php} (97%) rename tests/Feature/Api/Licenses/{LicensesIndexTest.php => LicenseIndexTest.php} (98%) rename tests/Feature/Api/Users/{DeleteUsersTest.php => DeleteUserTest.php} (98%) rename tests/Feature/Api/Users/{UsersSearchTest.php => UserSearchTest.php} (99%) rename tests/Feature/Users/{DeleteUsersTest.php => DeleteUserTest.php} (98%) diff --git a/tests/Feature/Api/Assets/RequestableAssetsTest.php b/tests/Feature/Api/Assets/RequestableAssetTest.php similarity index 98% rename from tests/Feature/Api/Assets/RequestableAssetsTest.php rename to tests/Feature/Api/Assets/RequestableAssetTest.php index d90e45f223..a4f3d805a7 100644 --- a/tests/Feature/Api/Assets/RequestableAssetsTest.php +++ b/tests/Feature/Api/Assets/RequestableAssetTest.php @@ -7,7 +7,7 @@ use App\Models\Company; use App\Models\User; use Tests\TestCase; -class RequestableAssetsTest extends TestCase +class RequestableAssetTest extends TestCase { public function testViewingRequestableAssetsRequiresCorrectPermission() { diff --git a/tests/Feature/Api/Consumables/ConsumablesIndexTest.php b/tests/Feature/Api/Consumables/ConsumableIndexTest.php similarity index 97% rename from tests/Feature/Api/Consumables/ConsumablesIndexTest.php rename to tests/Feature/Api/Consumables/ConsumableIndexTest.php index 00fa43da27..8fc4b934a7 100644 --- a/tests/Feature/Api/Consumables/ConsumablesIndexTest.php +++ b/tests/Feature/Api/Consumables/ConsumableIndexTest.php @@ -7,7 +7,7 @@ use App\Models\Consumable; use App\Models\User; use Tests\TestCase; -class ConsumablesIndexTest extends TestCase +class ConsumableIndexTest extends TestCase { public function testConsumableIndexAdheresToCompanyScoping() { diff --git a/tests/Feature/Api/Licenses/LicensesIndexTest.php b/tests/Feature/Api/Licenses/LicenseIndexTest.php similarity index 98% rename from tests/Feature/Api/Licenses/LicensesIndexTest.php rename to tests/Feature/Api/Licenses/LicenseIndexTest.php index 603002a095..c8b081aa46 100644 --- a/tests/Feature/Api/Licenses/LicensesIndexTest.php +++ b/tests/Feature/Api/Licenses/LicenseIndexTest.php @@ -7,7 +7,7 @@ use App\Models\License; use App\Models\User; use Tests\TestCase; -class LicensesIndexTest extends TestCase +class LicenseIndexTest extends TestCase { public function testLicensesIndexAdheresToCompanyScoping() { diff --git a/tests/Feature/Api/Users/DeleteUsersTest.php b/tests/Feature/Api/Users/DeleteUserTest.php similarity index 98% rename from tests/Feature/Api/Users/DeleteUsersTest.php rename to tests/Feature/Api/Users/DeleteUserTest.php index e926311dca..c5ff0a4ac1 100644 --- a/tests/Feature/Api/Users/DeleteUsersTest.php +++ b/tests/Feature/Api/Users/DeleteUserTest.php @@ -9,7 +9,7 @@ use App\Models\User; use App\Models\LicenseSeat; use Tests\TestCase; -class DeleteUsersTest extends TestCase +class DeleteUserTest extends TestCase { diff --git a/tests/Feature/Api/Users/UsersSearchTest.php b/tests/Feature/Api/Users/UserSearchTest.php similarity index 99% rename from tests/Feature/Api/Users/UsersSearchTest.php rename to tests/Feature/Api/Users/UserSearchTest.php index 72f23017f5..fe5849d324 100644 --- a/tests/Feature/Api/Users/UsersSearchTest.php +++ b/tests/Feature/Api/Users/UserSearchTest.php @@ -7,7 +7,7 @@ use App\Models\User; use Laravel\Passport\Passport; use Tests\TestCase; -class UsersSearchTest extends TestCase +class UserSearchTest extends TestCase { public function testCanSearchByUserFirstAndLastName() { diff --git a/tests/Feature/Users/DeleteUsersTest.php b/tests/Feature/Users/DeleteUserTest.php similarity index 98% rename from tests/Feature/Users/DeleteUsersTest.php rename to tests/Feature/Users/DeleteUserTest.php index a9ac1ab1ff..69ac9672a5 100644 --- a/tests/Feature/Users/DeleteUsersTest.php +++ b/tests/Feature/Users/DeleteUserTest.php @@ -7,7 +7,7 @@ use App\Models\User; use Laravel\Passport\Passport; use Tests\TestCase; -class DeleteUsersTest extends TestCase +class DeleteUserTest extends TestCase { From 6202f6157ab21adcd7d0257c37f5af0cde1369d7 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 4 Jun 2024 08:41:00 -0700 Subject: [PATCH 060/110] fix select2 behavior --- .../views/partials/forms/redirect_submit_options.blade.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/views/partials/forms/redirect_submit_options.blade.php b/resources/views/partials/forms/redirect_submit_options.blade.php index 0c89f587bd..c960dbb860 100644 --- a/resources/views/partials/forms/redirect_submit_options.blade.php +++ b/resources/views/partials/forms/redirect_submit_options.blade.php @@ -10,7 +10,7 @@
    - model ? ' disabled' : '') }}> - From d202dfc22593f21f6457f05d194c58d2c49d6a7f Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Tue, 4 Jun 2024 10:48:53 -0700 Subject: [PATCH 061/110] Organize API tests into domains --- tests/Feature/{Api/Assets => Assets/Api}/AssetIndexTest.php | 5 +++-- .../{Api/Assets => Assets/Api}/AssetsForSelectListTest.php | 2 +- .../{Api/Assets => Assets/Api}/RequestableAssetTest.php | 2 +- tests/Feature/{Api/Assets => Assets/Api}/StoreAssetTest.php | 4 +--- tests/Feature/{Api/Assets => Assets/Api}/UpdateAssetTest.php | 2 +- tests/Feature/Assets/{ => Ui}/BulkEditAssetsTest.php | 2 +- .../{Api/Checkins => Checkins/Api}/AssetCheckinTest.php | 2 +- tests/Feature/Checkins/{ => Ui}/AccessoryCheckinTest.php | 2 +- tests/Feature/Checkins/{ => Ui}/AssetCheckinTest.php | 2 +- .../CheckoutAcceptances/{ => Ui}/AccessoryAcceptanceTest.php | 2 +- .../Checkouts => Checkouts/Api}/AccessoryCheckoutTest.php | 2 +- .../{Api/Checkouts => Checkouts/Api}/AssetCheckoutTest.php | 2 +- .../Checkouts => Checkouts/Api}/ConsumableCheckoutTest.php | 2 +- tests/Feature/Checkouts/{ => Ui}/AccessoryCheckoutTest.php | 2 +- tests/Feature/Checkouts/{ => Ui}/AssetCheckoutTest.php | 2 +- tests/Feature/Checkouts/{ => Ui}/ConsumableCheckoutTest.php | 2 +- tests/Feature/Checkouts/{ => Ui}/LicenseCheckoutTest.php | 2 +- .../Components => Components/Api}/ComponentIndexTest.php | 2 +- .../Consumables => Consumables/Api}/ConsumableIndexTest.php | 2 +- .../Departments => Departments/Api}/DepartmentIndexTest.php | 2 +- tests/Feature/{Api/Groups => Groups/Api}/StoreGroupTest.php | 2 +- .../{Api/Licenses => Licenses/Api}/LicenseIndexTest.php | 2 +- .../Api}/LocationsForSelectListTest.php | 2 +- tests/Feature/{Api/Users => Users/Api}/DeleteUserTest.php | 5 ++--- tests/Feature/{Api/Users => Users/Api}/UpdateUserTest.php | 2 +- tests/Feature/{Api/Users => Users/Api}/UserSearchTest.php | 2 +- .../{Api/Users => Users/Api}/UsersForSelectListTest.php | 2 +- tests/Feature/Users/{ => Ui}/DeleteUserTest.php | 3 +-- tests/Feature/Users/{ => Ui}/UpdateUserTest.php | 2 +- 29 files changed, 32 insertions(+), 35 deletions(-) rename tests/Feature/{Api/Assets => Assets/Api}/AssetIndexTest.php (99%) rename tests/Feature/{Api/Assets => Assets/Api}/AssetsForSelectListTest.php (98%) rename tests/Feature/{Api/Assets => Assets/Api}/RequestableAssetTest.php (98%) rename tests/Feature/{Api/Assets => Assets/Api}/StoreAssetTest.php (99%) rename tests/Feature/{Api/Assets => Assets/Api}/UpdateAssetTest.php (98%) rename tests/Feature/Assets/{ => Ui}/BulkEditAssetsTest.php (99%) rename tests/Feature/{Api/Checkins => Checkins/Api}/AssetCheckinTest.php (99%) rename tests/Feature/Checkins/{ => Ui}/AccessoryCheckinTest.php (98%) rename tests/Feature/Checkins/{ => Ui}/AssetCheckinTest.php (99%) rename tests/Feature/CheckoutAcceptances/{ => Ui}/AccessoryAcceptanceTest.php (98%) rename tests/Feature/{Api/Checkouts => Checkouts/Api}/AccessoryCheckoutTest.php (98%) rename tests/Feature/{Api/Checkouts => Checkouts/Api}/AssetCheckoutTest.php (99%) rename tests/Feature/{Api/Checkouts => Checkouts/Api}/ConsumableCheckoutTest.php (98%) rename tests/Feature/Checkouts/{ => Ui}/AccessoryCheckoutTest.php (98%) rename tests/Feature/Checkouts/{ => Ui}/AssetCheckoutTest.php (99%) rename tests/Feature/Checkouts/{ => Ui}/ConsumableCheckoutTest.php (98%) rename tests/Feature/Checkouts/{ => Ui}/LicenseCheckoutTest.php (97%) rename tests/Feature/{Api/Components => Components/Api}/ComponentIndexTest.php (98%) rename tests/Feature/{Api/Consumables => Consumables/Api}/ConsumableIndexTest.php (98%) rename tests/Feature/{Api/Departments => Departments/Api}/DepartmentIndexTest.php (98%) rename tests/Feature/{Api/Groups => Groups/Api}/StoreGroupTest.php (98%) rename tests/Feature/{Api/Licenses => Licenses/Api}/LicenseIndexTest.php (98%) rename tests/Feature/{Api/Locations => Locations/Api}/LocationsForSelectListTest.php (97%) rename tests/Feature/{Api/Users => Users/Api}/DeleteUserTest.php (98%) rename tests/Feature/{Api/Users => Users/Api}/UpdateUserTest.php (99%) rename tests/Feature/{Api/Users => Users/Api}/UserSearchTest.php (99%) rename tests/Feature/{Api/Users => Users/Api}/UsersForSelectListTest.php (99%) rename tests/Feature/Users/{ => Ui}/DeleteUserTest.php (97%) rename tests/Feature/Users/{ => Ui}/UpdateUserTest.php (98%) diff --git a/tests/Feature/Api/Assets/AssetIndexTest.php b/tests/Feature/Assets/Api/AssetIndexTest.php similarity index 99% rename from tests/Feature/Api/Assets/AssetIndexTest.php rename to tests/Feature/Assets/Api/AssetIndexTest.php index 0a21e13f26..c4a362d28b 100644 --- a/tests/Feature/Api/Assets/AssetIndexTest.php +++ b/tests/Feature/Assets/Api/AssetIndexTest.php @@ -1,13 +1,14 @@ Date: Tue, 4 Jun 2024 10:49:29 -0700 Subject: [PATCH 062/110] Update domain name --- tests/Feature/{Reports => Reporting}/CustomReportTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename tests/Feature/{Reports => Reporting}/CustomReportTest.php (99%) diff --git a/tests/Feature/Reports/CustomReportTest.php b/tests/Feature/Reporting/CustomReportTest.php similarity index 99% rename from tests/Feature/Reports/CustomReportTest.php rename to tests/Feature/Reporting/CustomReportTest.php index d90e4cb2a0..4d11cb23c8 100644 --- a/tests/Feature/Reports/CustomReportTest.php +++ b/tests/Feature/Reporting/CustomReportTest.php @@ -1,6 +1,6 @@ Date: Wed, 5 Jun 2024 10:08:15 +0200 Subject: [PATCH 063/110] fix(ActionlogController): correct signature image for s3 bucket --- app/Http/Controllers/ActionlogController.php | 27 ++++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/app/Http/Controllers/ActionlogController.php b/app/Http/Controllers/ActionlogController.php index 91425281ee..4cdfb7d5ae 100644 --- a/app/Http/Controllers/ActionlogController.php +++ b/app/Http/Controllers/ActionlogController.php @@ -14,18 +14,23 @@ class ActionlogController extends Controller // file_get_contents, so we set the error reporting for just this class error_reporting(0); - $this->authorize('view', \App\Models\Asset::class); - $file = config('app.private_uploads').'/signatures/'.$filename; - $filetype = Helper::checkUploadIsImage($file); + $disk = config('filesystems.default'); + switch (config("filesystems.disks.$disk.driver")) { + case 's3': + $file = 'private_uploads/signatures/'.$filename; + return redirect()->away(Storage::disk($disk)->temporaryUrl($file, now()->addMinutes(5))); + default: + $this->authorize('view', \App\Models\Asset::class); + $file = config('app.private_uploads').'/signatures/'.$filename; + $filetype = Helper::checkUploadIsImage($file); - $contents = file_get_contents($file, false, stream_context_create(['http' => ['ignore_errors' => true]])); - if ($contents === false) { - Log::warning('File '.$file.' not found'); - return false; - } else { - return Response::make($contents)->header('Content-Type', $filetype); - } - + $contents = file_get_contents($file, false, stream_context_create(['http' => ['ignore_errors' => true]])); + if ($contents === false) { + Log::warning('File '.$file.' not found'); + return false; + } else { + return Response::make($contents)->header('Content-Type', $filetype); + } } public function getStoredEula($filename){ $this->authorize('view', \App\Models\Asset::class); From ea7c3c84854581cdb399eeddd1c160e2385a20fb Mon Sep 17 00:00:00 2001 From: fe80 Date: Wed, 5 Jun 2024 10:55:27 +0200 Subject: [PATCH 064/110] fix(ActionlogController): add missing class Illuminate\Support\Facades\Storage --- app/Http/Controllers/ActionlogController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Http/Controllers/ActionlogController.php b/app/Http/Controllers/ActionlogController.php index 4cdfb7d5ae..4c1a853969 100644 --- a/app/Http/Controllers/ActionlogController.php +++ b/app/Http/Controllers/ActionlogController.php @@ -6,6 +6,7 @@ use App\Helpers\Helper; use App\Models\Actionlog; use Illuminate\Support\Facades\Response; use Illuminate\Support\Facades\Log; +use Illuminate\Support\Facades\Storage; class ActionlogController extends Controller { public function displaySig($filename) From 832ceeba56f88af70e9b916f2939207ad482efa9 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 09:57:10 +0100 Subject: [PATCH 065/110] Fixed missing endpush Signed-off-by: snipe --- resources/views/users/print.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/users/print.blade.php b/resources/views/users/print.blade.php index 4bbec7980b..d41d80b180 100644 --- a/resources/views/users/print.blade.php +++ b/resources/views/users/print.blade.php @@ -470,7 +470,7 @@ }); }); - +@endpush From 09e94ec176f67272e4798c137a3be48d018e50c4 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 09:57:24 +0100 Subject: [PATCH 066/110] Reordered withTrashed() and find() Signed-off-by: snipe --- app/Http/Controllers/Users/UsersController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 191792cfce..920e896d54 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -227,7 +227,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')->find($id)->withTrashed(); + $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed()->find($id); // User is valid - continue... if ($user) { From 9d56617caf1e998b5fe59ba20f94da170a745d9d Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 30 May 2024 23:02:10 +0100 Subject: [PATCH 067/110] Moved expected checkin date on view Signed-off-by: snipe --- resources/views/hardware/view.blade.php | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index a9159c4fa3..179db4a0b1 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -705,18 +705,6 @@
    @endif - @if ($asset->expected_checkin!='') -
    -
    - - {{ trans('admin/hardware/form.expected_checkin') }} - -
    -
    - {{ Helper::getFormattedDateObject($asset->expected_checkin, 'date', false) }} -
    -
    - @endif
    @@ -804,6 +792,19 @@
    @endif + @if ($asset->expected_checkin!='') +
    +
    + + {{ trans('admin/hardware/form.expected_checkin') }} + +
    +
    + {{ Helper::getFormattedDateObject($asset->expected_checkin, 'date', false) }} +
    +
    + @endif + @if ($asset->last_checkin!='')
    From b2a86e312bda855d74a3128ac968e2fe071cf049 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 30 May 2024 23:02:23 +0100 Subject: [PATCH 068/110] Added last_checkout and last_checkin as fillable Signed-off-by: snipe --- app/Models/Asset.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Models/Asset.php b/app/Models/Asset.php index 09dae1a1c3..12c5aeb93a 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -149,6 +149,8 @@ class Asset extends Depreciable 'last_audit_date', 'next_audit_date', 'asset_eol_date', + 'last_checkin', + 'last_checkout', ]; use Searchable; From f4f184e1157c14ace70ed08ea02126cc7c04f849 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 30 May 2024 23:03:04 +0100 Subject: [PATCH 069/110] Removed noisy debugging Signed-off-by: snipe --- app/Http/Livewire/Importer.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Http/Livewire/Importer.php b/app/Http/Livewire/Importer.php index 318514af73..929844e3b7 100644 --- a/app/Http/Livewire/Importer.php +++ b/app/Http/Livewire/Importer.php @@ -119,8 +119,7 @@ class Importer extends Component public function updating($name, $new_import_type) { if ($name == "activeFile.import_type") { - Log::debug("WE ARE CHANGING THE import_type!!!!! TO: " . $new_import_type); - Log::debug("so, what's \$this->>field_map at?: " . print_r($this->field_map, true)); + // go through each header, find a matching field to try and map it to. foreach ($this->activeFile->header_row as $i => $header) { // do we have something mapped already? From c8279c0b99067a7391d88d89277e74f17c9620ec Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 30 May 2024 23:06:17 +0100 Subject: [PATCH 070/110] Moved asset-only date stuff into the asset importer Signed-off-by: snipe --- app/Importer/ItemImporter.php | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/app/Importer/ItemImporter.php b/app/Importer/ItemImporter.php index e1b0f1c289..c472023fa0 100644 --- a/app/Importer/ItemImporter.php +++ b/app/Importer/ItemImporter.php @@ -79,26 +79,6 @@ class ItemImporter extends Importer $this->item['purchase_date'] = date('Y-m-d', strtotime($this->findCsvMatch($row, 'purchase_date'))); } - $this->item['last_audit_date'] = null; - if ($this->findCsvMatch($row, 'last_audit_date') != '') { - $this->item['last_audit_date'] = date('Y-m-d', strtotime($this->findCsvMatch($row, 'last_audit_date'))); - } - - $this->item['next_audit_date'] = null; - if ($this->findCsvMatch($row, 'next_audit_date') != '') { - $this->item['next_audit_date'] = date('Y-m-d', strtotime($this->findCsvMatch($row, 'next_audit_date'))); - } - - $this->item['asset_eol_date'] = null; - if($this->findCsvMatch($row, 'asset_eol_date') != '') { - $csvMatch = $this->findCsvMatch($row, 'asset_eol_date'); - try { - $this->item['asset_eol_date'] = CarbonImmutable::parse($csvMatch)->format('Y-m-d'); - } catch (\Exception $e) { - Log::info($e->getMessage()); - $this->log('Unable to parse date: '.$csvMatch); - } - } $this->item['qty'] = $this->findCsvMatch($row, 'quantity'); $this->item['requestable'] = $this->findCsvMatch($row, 'requestable'); From d02904c9a3ed18c627de16907ce04ee0e0c17028 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 00:13:20 +0100 Subject: [PATCH 071/110] Added new fields Signed-off-by: snipe --- app/Http/Livewire/Importer.php | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/app/Http/Livewire/Importer.php b/app/Http/Livewire/Importer.php index 929844e3b7..72e751502f 100644 --- a/app/Http/Livewire/Importer.php +++ b/app/Http/Livewire/Importer.php @@ -236,6 +236,15 @@ class Importer extends Component 'email' => trans('general.importer.checked_out_to_email'), 'username' => trans('general.importer.checked_out_to_username'), 'checkout_location' => trans('general.importer.checkout_location'), + /** + * These are here so users can import history, to replace the dinosaur that + * was the history importer + */ + 'last_checkin' => trans('admin/hardware/table.last_checkin_date'), + 'last_checkout' => trans('admin/hardware/table.checkout_date'), + 'expected_checkin' => trans('admin/hardware/form.expected_checkin'), + 'last_audit_date' => trans('general.last_audit'), + 'next_audit_date' => trans('general.next_audit_date'), ]; $this->consumables_fields = [ @@ -379,6 +388,12 @@ class Importer extends Component 'job title for user', 'job title', ], + 'full_name' => + [ + 'full name', + 'fullname', + trans('general.importer.checked_out_to_fullname') + ], 'username' => [ 'user name', @@ -411,6 +426,7 @@ class Importer extends Component 'telephone', 'tel.', ], + 'serial' => [ 'serial number', @@ -455,6 +471,12 @@ class Importer extends Component [ 'Next Audit', ], + 'last_checkout' => + [ + 'Last Checkout', + 'Last Checkout Date', + 'Checkout Date', + ], 'address2' => [ 'Address 2', @@ -523,8 +545,8 @@ class Importer extends Component // TODO: why don't we just do File::find($id)? This seems dumb. foreach($this->files as $file) { Log::debug("File id is: ".$file->id); - if($id == $file->id) { - if(Storage::delete('private_uploads/imports/'.$file->file_path)) { + if ($id == $file->id) { + if (Storage::delete('private_uploads/imports/'.$file->file_path)) { $file->delete(); $this->message = trans('admin/hardware/message.import.file_delete_success'); From 4ccbfb56a413cc5086c8dec4e2a6f0d4010d05df Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 00:13:49 +0100 Subject: [PATCH 072/110] Make sure the status label is deployable Signed-off-by: snipe --- app/Importer/AssetImporter.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Importer/AssetImporter.php b/app/Importer/AssetImporter.php index 594ca58f0d..1235a88f86 100644 --- a/app/Importer/AssetImporter.php +++ b/app/Importer/AssetImporter.php @@ -7,8 +7,10 @@ use App\Models\AssetModel; use App\Models\Statuslabel; use App\Models\User; use App\Events\CheckoutableCheckedIn; +use Carbon\CarbonImmutable; use Illuminate\Support\Facades\Auth; use Carbon\Carbon; +use Illuminate\Support\Facades\Log; class AssetImporter extends ItemImporter { @@ -19,7 +21,7 @@ class AssetImporter extends ItemImporter parent::__construct($filename); if (!is_null(Statuslabel::first())) { - $this->defaultStatusLabelId = Statuslabel::first()->id; + $this->defaultStatusLabelId = Statuslabel::deployable()->first()->id; } } From f4d530b4b19e0af748e3522f85807f019283623b Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 00:15:54 +0100 Subject: [PATCH 073/110] =?UTF-8?q?Removed=20filename=20column=20since=20i?= =?UTF-8?q?t=E2=80=99s=20never=20worked?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: snipe --- resources/views/livewire/importer.blade.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/resources/views/livewire/importer.blade.php b/resources/views/livewire/importer.blade.php index 1018bbb164..1aed8b8835 100644 --- a/resources/views/livewire/importer.blade.php +++ b/resources/views/livewire/importer.blade.php @@ -38,13 +38,10 @@ @php \Log::debug("import errors are: ".print_r($import_errors,true)); @endphp @foreach($import_errors AS $key => $actual_import_errors) - @php \Log::debug("Key is: $key"); @endphp @foreach($actual_import_errors AS $table => $error_bag) - @php \Log::debug("Table is: $table"); @endphp @foreach($error_bag as $field => $error_list) - @php \Log::debug("Field is: $field"); @endphp - {{ $activeFile->file_path ?? "Unknown File" }} + {{ $activeFile ?? "Unknown File" }} {{ $field }}: {{ implode(", ",$error_list) }} From 3a0f7eca54ee41496bac376b772068a1d0844911 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 00:16:16 +0100 Subject: [PATCH 074/110] Put asset EOL date back in the Item Importer I have no idea why this is necessary Signed-off-by: snipe --- app/Importer/ItemImporter.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/Importer/ItemImporter.php b/app/Importer/ItemImporter.php index c472023fa0..6f6b43876d 100644 --- a/app/Importer/ItemImporter.php +++ b/app/Importer/ItemImporter.php @@ -79,6 +79,18 @@ class ItemImporter extends Importer $this->item['purchase_date'] = date('Y-m-d', strtotime($this->findCsvMatch($row, 'purchase_date'))); } + $this->item['asset_eol_date'] = null; + if ($this->findCsvMatch($row, 'asset_eol_date') != '') { + $csvMatch = $this->findCsvMatch($row, 'asset_eol_date'); + \Log::warning('EOL Date for $csvMatch is '.$csvMatch); + try { + $this->item['asset_eol_date'] = CarbonImmutable::parse($csvMatch)->format('Y-m-d'); + } catch (\Exception $e) { + Log::info($e->getMessage()); + $this->log('Unable to parse date: '.$csvMatch); + } + } + $this->item['qty'] = $this->findCsvMatch($row, 'quantity'); $this->item['requestable'] = $this->findCsvMatch($row, 'requestable'); @@ -369,7 +381,6 @@ class ItemImporter extends Importer if ($status->save()) { $this->log('Status '.$asset_statuslabel_name.' was created'); - return $status->id; } From 0ee2b74ff3b3f077ef14005c30a8a81c154fd591 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 00:16:37 +0100 Subject: [PATCH 075/110] Added date parsers for new date fields Signed-off-by: snipe --- app/Importer/AssetImporter.php | 98 ++++++++++++++++++++++++++-------- 1 file changed, 76 insertions(+), 22 deletions(-) diff --git a/app/Importer/AssetImporter.php b/app/Importer/AssetImporter.php index 1235a88f86..2c913006b8 100644 --- a/app/Importer/AssetImporter.php +++ b/app/Importer/AssetImporter.php @@ -66,16 +66,14 @@ class AssetImporter extends ItemImporter $editingAsset = false; $asset_tag = $this->findCsvMatch($row, 'asset_tag'); - if(empty($asset_tag)){ + if (empty($asset_tag)){ $asset_tag = Asset::autoincrement_asset(); } - $asset = Asset::where(['asset_tag'=> (string) $asset_tag])->first(); if ($asset) { if (! $this->updating) { $this->log('A matching Asset '.$asset_tag.' already exists'); - return; } @@ -85,6 +83,13 @@ class AssetImporter extends ItemImporter $this->log('No Matching Asset, Creating a new one'); $asset = new Asset; } + + // If no status ID is found + if (! array_key_exists('status_id', $this->item) && ! $editingAsset) { + $this->log('No status ID field found, defaulting to first deployable status label.'); + $this->item['status_id'] = $this->defaultStatusLabelId; + } + $this->item['notes'] = trim($this->findCsvMatch($row, 'asset_notes')); $this->item['image'] = trim($this->findCsvMatch($row, 'image')); $this->item['requestable'] = trim(($this->fetchHumanBoolean($this->findCsvMatch($row, 'requestable'))) == 1) ? '1' : 0; @@ -92,13 +97,12 @@ class AssetImporter extends ItemImporter $this->item['warranty_months'] = intval(trim($this->findCsvMatch($row, 'warranty_months'))); $this->item['model_id'] = $this->createOrFetchAssetModel($row); $this->item['byod'] = ($this->fetchHumanBoolean(trim($this->findCsvMatch($row, 'byod'))) == 1) ? '1' : 0; - - - // If no status ID is found - if (! array_key_exists('status_id', $this->item) && ! $editingAsset) { - $this->log('No status field found, defaulting to first status.'); - $this->item['status_id'] = $this->defaultStatusLabelId; - } + $this->item['last_checkout'] = trim($this->findCsvMatch($row, 'last_checkout')); + $this->item['last_checkin'] = trim($this->findCsvMatch($row, 'last_checkin')); + $this->item['expected_checkin'] = trim($this->findCsvMatch($row, 'expected_checkin')); + $this->item['last_audit_date'] = trim($this->findCsvMatch($row, 'last_audit_date')); + $this->item['next_audit_date'] = trim($this->findCsvMatch($row, 'next_audit_date')); + $this->item['asset_eol_date'] = trim($this->findCsvMatch($row, 'asset_eol_date')); $this->item['asset_tag'] = $asset_tag; @@ -106,8 +110,10 @@ class AssetImporter extends ItemImporter // Sanitizing the item will remove it. if (array_key_exists('checkout_target', $this->item)) { $target = $this->item['checkout_target']; - } + } + $item = $this->sanitizeItemForStoring($asset, $editingAsset); + // The location id fetched by the csv reader is actually the rtd_location_id. // This will also set location_id, but then that will be overridden by the // checkout method if necessary below. @@ -115,16 +121,60 @@ class AssetImporter extends ItemImporter $item['rtd_location_id'] = $this->item['location_id']; } - $item['last_audit_date'] = null; - if (isset($this->item['last_audit_date'])) { - $item['last_audit_date'] = $this->item['last_audit_date']; + $checkin_date = date('Y-m-d H:i:s'); + if ($this->item['last_checkin']!='') { + try { + $checkin_date = CarbonImmutable::parse($this->item['last_checkin'])->format('Y-m-d H:i:s'); + $this->item['last_checkout'] = $checkin_date; + } catch (\Exception $e) { + Log::info($e->getMessage()); + $this->log('Unable to parse date: '.$this->item['last_checkout']); + } } - $item['next_audit_date'] = null; - if (isset($this->item['next_audit_date'])) { - $item['next_audit_date'] = $this->item['next_audit_date']; + /** + * We use this to backdate the checkout action further down + */ + $checkout_date = date('Y-m-d H:i:s'); + if ($this->item['last_checkout']!='') { + + try { + $checkout_date = CarbonImmutable::parse($this->item['last_checkout'])->format('Y-m-d H:i:s'); + $this->item['last_checkout'] = $checkout_date; + } catch (\Exception $e) { + Log::info($e->getMessage()); + $this->log('Unable to parse date: '.$this->item['last_checkout']); + } } - + + if ($this->item['expected_checkin']!='') { + try { + $this->item['expected_checkin'] = CarbonImmutable::parse($this->item['expected_checkin'])->format('Y-m-d'); + } catch (\Exception $e) { + Log::info($e->getMessage()); + $this->log('Unable to parse date: '.$this->item['expected_checkin']); + } + } + + if ($this->item['last_audit_date']!='') { + try { + $this->item['last_audit_date'] = CarbonImmutable::parse($this->item['last_audit_date'])->format('Y-m-d'); + } catch (\Exception $e) { + Log::info($e->getMessage()); + $this->log('Unable to parse date: '.$this->item['last_audit_date']); + } + } + + if ($this->item['next_audit_date']!='') { + try { + $this->item['next_audit_date'] = CarbonImmutable::parse($this->item['next_audit_date'])->format('Y-m-d'); + } catch (\Exception $e) { + Log::info($e->getMessage()); + $this->log('Unable to parse date: '.$this->item['next_audit_date']); + } + } + + if ($editingAsset) { $asset->update($item); } else { @@ -137,23 +187,27 @@ class AssetImporter extends ItemImporter $asset->{$custom_field} = $val; } } + // This sets an attribute on the Loggable trait for the action log $asset->setImported(true); + if ($asset->save()) { $this->log('Asset '.$this->item['name'].' with serial number '.$this->item['serial'].' was created'); // If we have a target to checkout to, lets do so. - //-- user_id is a property of the abstract class Importer, which this class inherits from and it's setted by + //-- user_id is a property of the abstract class Importer, which this class inherits from and it's set by //-- the class that needs to use it (command importer or GUI importer inside the project). if (isset($target) && ($target !== false)) { if (!is_null($asset->assigned_to)){ - if ($asset->assigned_to != $target->id){ - event(new CheckoutableCheckedIn($asset, User::find($asset->assigned_to), Auth::user(), $asset->notes, date('Y-m-d H:i:s'))); + if ($asset->assigned_to != $target->id) { + event(new CheckoutableCheckedIn($asset, User::find($asset->assigned_to), Auth::user(), 'Checkin from CSV Importer', $checkin_date)); + $this->log('Checking this asset in'); } } - $asset->fresh()->checkOut($target, $this->user_id, date('Y-m-d H:i:s'), null, $asset->notes, $asset->name); + $asset->fresh()->checkOut($target, $this->user_id, $checkout_date, null, 'Checkout from CSV Importer', $asset->name); + $this->log('Checking this asset out'); } return; From 026c80992e3e3c462532c2653ae578f0cc63d685 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 02:14:06 +0100 Subject: [PATCH 076/110] Pull the log reference Signed-off-by: snipe --- app/Http/Livewire/Importer.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/Http/Livewire/Importer.php b/app/Http/Livewire/Importer.php index 72e751502f..c3f23270bd 100644 --- a/app/Http/Livewire/Importer.php +++ b/app/Http/Livewire/Importer.php @@ -8,7 +8,6 @@ use Livewire\Component; use App\Models\Import; use Illuminate\Support\Facades\Storage; -use Illuminate\Support\Facades\Log; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; @@ -544,7 +543,6 @@ class Importer extends Component { // TODO: why don't we just do File::find($id)? This seems dumb. foreach($this->files as $file) { - Log::debug("File id is: ".$file->id); if ($id == $file->id) { if (Storage::delete('private_uploads/imports/'.$file->file_path)) { $file->delete(); From 52950f13224a19f7d49f5acb0dff62937793777a Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 02:14:40 +0100 Subject: [PATCH 077/110] Refactored date parsing Signed-off-by: snipe --- app/Importer/AssetImporter.php | 59 ++++++++++++---------------------- app/Importer/ItemImporter.php | 23 ++++++------- 2 files changed, 32 insertions(+), 50 deletions(-) diff --git a/app/Importer/AssetImporter.php b/app/Importer/AssetImporter.php index 2c913006b8..40dbf87f29 100644 --- a/app/Importer/AssetImporter.php +++ b/app/Importer/AssetImporter.php @@ -97,20 +97,19 @@ class AssetImporter extends ItemImporter $this->item['warranty_months'] = intval(trim($this->findCsvMatch($row, 'warranty_months'))); $this->item['model_id'] = $this->createOrFetchAssetModel($row); $this->item['byod'] = ($this->fetchHumanBoolean(trim($this->findCsvMatch($row, 'byod'))) == 1) ? '1' : 0; - $this->item['last_checkout'] = trim($this->findCsvMatch($row, 'last_checkout')); $this->item['last_checkin'] = trim($this->findCsvMatch($row, 'last_checkin')); + $this->item['last_checkout'] = trim($this->findCsvMatch($row, 'last_checkout')); $this->item['expected_checkin'] = trim($this->findCsvMatch($row, 'expected_checkin')); $this->item['last_audit_date'] = trim($this->findCsvMatch($row, 'last_audit_date')); $this->item['next_audit_date'] = trim($this->findCsvMatch($row, 'next_audit_date')); - $this->item['asset_eol_date'] = trim($this->findCsvMatch($row, 'asset_eol_date')); - + $this->item['asset_eol_date'] = trim($this->findCsvMatch($row, 'next_audit_date')); $this->item['asset_tag'] = $asset_tag; // We need to save the user if it exists so that we can checkout to user later. // Sanitizing the item will remove it. if (array_key_exists('checkout_target', $this->item)) { $target = $this->item['checkout_target']; - } + } $item = $this->sanitizeItemForStoring($asset, $editingAsset); @@ -121,15 +120,14 @@ class AssetImporter extends ItemImporter $item['rtd_location_id'] = $this->item['location_id']; } + + /** + * We use this to backdate the checkin action further down + */ $checkin_date = date('Y-m-d H:i:s'); if ($this->item['last_checkin']!='') { - try { - $checkin_date = CarbonImmutable::parse($this->item['last_checkin'])->format('Y-m-d H:i:s'); - $this->item['last_checkout'] = $checkin_date; - } catch (\Exception $e) { - Log::info($e->getMessage()); - $this->log('Unable to parse date: '.$this->item['last_checkout']); - } + $item['last_checkin'] = $this->parseOrNullDate('last_checkin', 'datetime'); + $checkout_date = $this->item['last_checkin']; } /** @@ -137,41 +135,24 @@ class AssetImporter extends ItemImporter */ $checkout_date = date('Y-m-d H:i:s'); if ($this->item['last_checkout']!='') { - - try { - $checkout_date = CarbonImmutable::parse($this->item['last_checkout'])->format('Y-m-d H:i:s'); - $this->item['last_checkout'] = $checkout_date; - } catch (\Exception $e) { - Log::info($e->getMessage()); - $this->log('Unable to parse date: '.$this->item['last_checkout']); - } + $item['last_checkout'] = $this->parseOrNullDate('last_checkout', 'datetime'); + $checkout_date = $this->item['last_checkout']; } if ($this->item['expected_checkin']!='') { - try { - $this->item['expected_checkin'] = CarbonImmutable::parse($this->item['expected_checkin'])->format('Y-m-d'); - } catch (\Exception $e) { - Log::info($e->getMessage()); - $this->log('Unable to parse date: '.$this->item['expected_checkin']); - } + $item['expected_checkin'] = $this->parseOrNullDate('expected_checkin'); } if ($this->item['last_audit_date']!='') { - try { - $this->item['last_audit_date'] = CarbonImmutable::parse($this->item['last_audit_date'])->format('Y-m-d'); - } catch (\Exception $e) { - Log::info($e->getMessage()); - $this->log('Unable to parse date: '.$this->item['last_audit_date']); - } + $item['last_audit_date'] = $this->parseOrNullDate('last_audit_date'); } if ($this->item['next_audit_date']!='') { - try { - $this->item['next_audit_date'] = CarbonImmutable::parse($this->item['next_audit_date'])->format('Y-m-d'); - } catch (\Exception $e) { - Log::info($e->getMessage()); - $this->log('Unable to parse date: '.$this->item['next_audit_date']); - } + $item['next_audit_date'] = $this->parseOrNullDate('next_audit_date'); + } + + if ($this->item['asset_eol_date']!='') { + $item['asset_eol_date'] = $this->parseOrNullDate('asset_eol_date'); } @@ -202,16 +183,16 @@ class AssetImporter extends ItemImporter if (!is_null($asset->assigned_to)){ if ($asset->assigned_to != $target->id) { event(new CheckoutableCheckedIn($asset, User::find($asset->assigned_to), Auth::user(), 'Checkin from CSV Importer', $checkin_date)); - $this->log('Checking this asset in'); } } $asset->fresh()->checkOut($target, $this->user_id, $checkout_date, null, 'Checkout from CSV Importer', $asset->name); - $this->log('Checking this asset out'); } return; } $this->logError($asset, 'Asset "'.$this->item['name'].'"'); } + + } diff --git a/app/Importer/ItemImporter.php b/app/Importer/ItemImporter.php index 6f6b43876d..ee680413d8 100644 --- a/app/Importer/ItemImporter.php +++ b/app/Importer/ItemImporter.php @@ -79,17 +79,17 @@ class ItemImporter extends Importer $this->item['purchase_date'] = date('Y-m-d', strtotime($this->findCsvMatch($row, 'purchase_date'))); } - $this->item['asset_eol_date'] = null; - if ($this->findCsvMatch($row, 'asset_eol_date') != '') { - $csvMatch = $this->findCsvMatch($row, 'asset_eol_date'); - \Log::warning('EOL Date for $csvMatch is '.$csvMatch); - try { - $this->item['asset_eol_date'] = CarbonImmutable::parse($csvMatch)->format('Y-m-d'); - } catch (\Exception $e) { - Log::info($e->getMessage()); - $this->log('Unable to parse date: '.$csvMatch); - } - } +// $this->item['asset_eol_date'] = null; +// if ($this->findCsvMatch($row, 'asset_eol_date') != '') { +// $csvMatch = $this->findCsvMatch($row, 'asset_eol_date'); +// \Log::warning('EOL Date for $csvMatch is '.$csvMatch); +// try { +// $this->item['asset_eol_date'] = CarbonImmutable::parse($csvMatch)->format('Y-m-d'); +// } catch (\Exception $e) { +// Log::info($e->getMessage()); +// $this->log('Unable to parse date: '.$csvMatch); +// } +// } $this->item['qty'] = $this->findCsvMatch($row, 'quantity'); @@ -500,4 +500,5 @@ class ItemImporter extends Importer return null; } + } From afe4e5d62e5edb6f9c7a7acf73b8b6ad8db15575 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 02:14:50 +0100 Subject: [PATCH 078/110] Added date parser Signed-off-by: snipe --- app/Importer/Importer.php | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/app/Importer/Importer.php b/app/Importer/Importer.php index c7b0e96820..0d3f3ed623 100644 --- a/app/Importer/Importer.php +++ b/app/Importer/Importer.php @@ -6,6 +6,7 @@ use App\Models\CustomField; use App\Models\Department; use App\Models\Setting; use App\Models\User; +use Carbon\CarbonImmutable; use ForceUTF8\Encoding; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Auth; @@ -551,4 +552,35 @@ abstract class Importer return null; } + + /** + * Parse a date or return null + * + * @author A. Gianotto + * @since 7.0.0 + * @param $field + * @param $format + * @return string|null + + */ + public function parseOrNullDate($field, $format = 'date') { + + $format = 'Y-m-d'; + + if ($format == 'datetime') { + $date_format = 'Y-m-d H:i:s'; + } + + if (array_key_exists($field, $this->item) && $this->item[$field] != '') { + + try { + $value = CarbonImmutable::parse($this->item[$field])->format($date_format); + return $value; + } catch (\Exception $e) { + $this->log('Unable to parse date: ' . $this->item['next_audit_date']); + return null; + } + } + return null; + } } From 9d9ad86dd53e6376ed523d5d85db791cfa2fd6b7 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 02:14:59 +0100 Subject: [PATCH 079/110] Added mutators and accessors for dates Signed-off-by: snipe --- app/Models/Asset.php | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/app/Models/Asset.php b/app/Models/Asset.php index 12c5aeb93a..ace867ea98 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -983,6 +983,49 @@ class Asset extends Depreciable $this->attributes['next_audit_date'] = $value ? Carbon::parse($value)->format('Y-m-d') : null; } + public function getLastCheckoutAttribute($value) + { + return $this->attributes['last_checkout'] = $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null; + } + + public function setLastCheckoutAttribute($value) + { + $this->attributes['last_checkout'] = $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null; + } + + public function getLastCheckinAttribute($value) + { + return $this->attributes['last_checkin'] = $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null; + } + + public function setLastCheckinAttribute($value) + { + $this->attributes['last_checkin'] = $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null; + } + + public function getLastAuditDateAttribute($value) + { + return $this->attributes['last_audit_date'] = $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null; + } + + public function setLastAuditDateAttribute($value) + { + $this->attributes['last_audit_date'] = $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null; + } + + public function getAssetEolDateAttribute($value) + { + return $this->attributes['asset_eol_date'] = $value ? Carbon::parse($value)->format('Y-m-d') : null; + } + + public function setAssetEolDateAttribute($value) + { + $this->attributes['asset_eol_date'] = $value ? Carbon::parse($value)->format('Y-m-d') : null; + } + + + + /** * This sets the requestable to a boolean 0 or 1. This accounts for forms or API calls that * explicitly pass the requestable field but it has a null or empty value. From e054fc1ef162704aaa5b10259b9b913faee2fc0c Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 02:15:24 +0100 Subject: [PATCH 080/110] Removed noisy import debugging, made nicer output Signed-off-by: snipe --- resources/views/livewire/importer.blade.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/views/livewire/importer.blade.php b/resources/views/livewire/importer.blade.php index 1aed8b8835..10c0920dcb 100644 --- a/resources/views/livewire/importer.blade.php +++ b/resources/views/livewire/importer.blade.php @@ -36,12 +36,11 @@ {{ trans('general.error') }} - @php \Log::debug("import errors are: ".print_r($import_errors,true)); @endphp @foreach($import_errors AS $key => $actual_import_errors) @foreach($actual_import_errors AS $table => $error_bag) @foreach($error_bag as $field => $error_list) - {{ $activeFile ?? "Unknown File" }} + {{ $key }} {{ $field }}: {{ implode(", ",$error_list) }} From 181bafd012122a0853838f53375db20902643cc6 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 31 May 2024 02:24:39 +0100 Subject: [PATCH 081/110] Fixed tests Signed-off-by: snipe --- tests/Feature/Assets/Api/StoreAssetTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/Feature/Assets/Api/StoreAssetTest.php b/tests/Feature/Assets/Api/StoreAssetTest.php index 2629f735bf..a3f5981635 100644 --- a/tests/Feature/Assets/Api/StoreAssetTest.php +++ b/tests/Feature/Assets/Api/StoreAssetTest.php @@ -67,7 +67,7 @@ class StoreAssetTest extends TestCase $this->assertEquals('random_string', $asset->asset_tag); $this->assertEquals($userAssigned->id, $asset->assigned_to); $this->assertTrue($asset->company->is($company)); - $this->assertEquals('2023-09-03 00:00:00', $asset->last_audit_date->format('Y-m-d H:i:s')); + $this->assertEquals('2023-09-03 00:00:00', $asset->last_audit_date); $this->assertTrue($asset->location->is($location)); $this->assertTrue($asset->model->is($model)); $this->assertEquals('A New Asset', $asset->name); @@ -87,7 +87,7 @@ class StoreAssetTest extends TestCase { $response = $this->actingAsForApi(User::factory()->superuser()->create()) ->postJson(route('api.assets.store'), [ - 'last_audit_date' => '2023-09-03 12:23:45', + 'last_audit_date' => '2023-09-03', 'asset_tag' => '1234', 'model_id' => AssetModel::factory()->create()->id, 'status_id' => Statuslabel::factory()->create()->id, @@ -96,7 +96,7 @@ class StoreAssetTest extends TestCase ->assertStatusMessageIs('success'); $asset = Asset::find($response['payload']['id']); - $this->assertEquals('00:00:00', $asset->last_audit_date->format('H:i:s')); + $this->assertEquals('2023-09-03 00:00:00', $asset->last_audit_date); } public function testLastAuditDateCanBeNull() From b0ddb26e73794bb062affeedd0d1279fb0510f63 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 10:10:57 +0100 Subject: [PATCH 082/110] Fixed variable name, $field Signed-off-by: snipe --- app/Importer/Importer.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Importer/Importer.php b/app/Importer/Importer.php index 0d3f3ed623..9738723509 100644 --- a/app/Importer/Importer.php +++ b/app/Importer/Importer.php @@ -565,7 +565,7 @@ abstract class Importer */ public function parseOrNullDate($field, $format = 'date') { - $format = 'Y-m-d'; + $date_format = 'Y-m-d'; if ($format == 'datetime') { $date_format = 'Y-m-d H:i:s'; @@ -577,7 +577,7 @@ abstract class Importer $value = CarbonImmutable::parse($this->item[$field])->format($date_format); return $value; } catch (\Exception $e) { - $this->log('Unable to parse date: ' . $this->item['next_audit_date']); + $this->log('Unable to parse date: ' . $this->item[$field]); return null; } } From 1cdec61be6eef160dd8ac7746126027cff63a041 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 10:56:54 +0100 Subject: [PATCH 083/110] Use more modern mutator/accessory syntax Signed-off-by: snipe --- app/Models/Asset.php | 76 ++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 45 deletions(-) diff --git a/app/Models/Asset.php b/app/Models/Asset.php index ace867ea98..0ef88c5c44 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -10,7 +10,7 @@ use App\Http\Traits\UniqueUndeletedTrait; use App\Models\Traits\Acceptable; use App\Models\Traits\Searchable; use App\Presenters\Presentable; -use AssetPresenter; +use App\Presenters\AssetPresenter; use Illuminate\Support\Facades\Auth; use Carbon\Carbon; use Illuminate\Support\Facades\DB; @@ -19,6 +19,8 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Facades\Storage; use Watson\Validating\ValidatingTrait; +use Illuminate\Database\Eloquent\Casts\Attribute; +use Illuminate\Database\Eloquent\Model; /** * Model for Assets. @@ -28,7 +30,7 @@ use Watson\Validating\ValidatingTrait; class Asset extends Depreciable { - protected $presenter = \App\Presenters\AssetPresenter::class; + protected $presenter = AssetPresenter::class; use CompanyableTrait; use HasFactory, Loggable, Requestable, Presentable, SoftDeletes, ValidatingTrait, UniqueUndeletedTrait; @@ -973,59 +975,39 @@ class Asset extends Depreciable * @param $value * @return void */ - public function getNextAuditDateAttribute($value) + + protected function nextAuditDate(): Attribute { - return $this->attributes['next_audit_date'] = $value ? Carbon::parse($value)->format('Y-m-d') : null; + return Attribute::make( + get: fn ($value) => $value ? Carbon::parse($value)->format('Y-m-d') : null, + set: fn ($value) => $value ? Carbon::parse($value)->format('Y-m-d') : null, + ); } - public function setNextAuditDateAttribute($value) + protected function lastCheckout(): Attribute { - $this->attributes['next_audit_date'] = $value ? Carbon::parse($value)->format('Y-m-d') : null; + return Attribute::make( + get: fn ($value) => $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null, + set: fn ($value) => $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null, + ); } - public function getLastCheckoutAttribute($value) + protected function lastCheckin(): Attribute { - return $this->attributes['last_checkout'] = $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null; + return Attribute::make( + get: fn ($value) => $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null, + set: fn ($value) => $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null, + ); } - public function setLastCheckoutAttribute($value) + protected function assetEolDate(): Attribute { - $this->attributes['last_checkout'] = $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null; + return Attribute::make( + get: fn ($value) => $value ? Carbon::parse($value)->format('Y-m-d') : null, + set: fn ($value) => $value ? Carbon::parse($value)->format('Y-m-d') : null, + ); } - public function getLastCheckinAttribute($value) - { - return $this->attributes['last_checkin'] = $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null; - } - - public function setLastCheckinAttribute($value) - { - $this->attributes['last_checkin'] = $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null; - } - - public function getLastAuditDateAttribute($value) - { - return $this->attributes['last_audit_date'] = $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null; - } - - public function setLastAuditDateAttribute($value) - { - $this->attributes['last_audit_date'] = $value ? Carbon::parse($value)->format('Y-m-d H:i:s') : null; - } - - public function getAssetEolDateAttribute($value) - { - return $this->attributes['asset_eol_date'] = $value ? Carbon::parse($value)->format('Y-m-d') : null; - } - - public function setAssetEolDateAttribute($value) - { - $this->attributes['asset_eol_date'] = $value ? Carbon::parse($value)->format('Y-m-d') : null; - } - - - - /** * This sets the requestable to a boolean 0 or 1. This accounts for forms or API calls that * explicitly pass the requestable field but it has a null or empty value. @@ -1035,9 +1017,13 @@ class Asset extends Depreciable * @param $value * @return void */ - public function setRequestableAttribute($value) + + protected function requestable(): Attribute { - $this->attributes['requestable'] = (int) filter_var($value, FILTER_VALIDATE_BOOLEAN); + return Attribute::make( + get: fn ($value) => (int) filter_var($value, FILTER_VALIDATE_BOOLEAN), + set: fn ($value) => (int) filter_var($value, FILTER_VALIDATE_BOOLEAN), + ); } From 5bd9ecb8df50ac64839aac2b98cb1c0d3505c6e5 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 13:28:37 +0100 Subject: [PATCH 084/110] Created DeleteUser request Signed-off-by: snipe --- app/Http/Requests/DeleteUserRequest.php | 89 +++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 app/Http/Requests/DeleteUserRequest.php diff --git a/app/Http/Requests/DeleteUserRequest.php b/app/Http/Requests/DeleteUserRequest.php new file mode 100644 index 0000000000..a640d6a9d2 --- /dev/null +++ b/app/Http/Requests/DeleteUserRequest.php @@ -0,0 +1,89 @@ +|string> + */ + public function rules(): array + { + + $user_to_delete = User::find(request()->route('user')); + + if ($user_to_delete) { + $this->merge([ + 'user' => request()->route('user'), + 'admin_id' => Auth::user()->id, + 'managed_users' => $user_to_delete->managesUsers()->count(), + 'managed_locations' => $user_to_delete->managedLocations()->count(), + 'assigned_assets' => $user_to_delete->assets()->count(), + 'assigned_licenses' => $user_to_delete->licenses()->count(), + 'assigned_accessories' => $user_to_delete->accessories()->count(), + ]); + } + + return [ + 'id' => ['exists:users,id'], + 'user' => Rule::notIn([Auth::user()->id]), + 'managed_users' => Rule::in([0]), + 'managed_locations' => Rule::in([0]), + 'assigned_assets' => Rule::in([0]), + 'assigned_licenses' => Rule::in([0]), + 'assigned_accessories' => Rule::in([0]), + ]; + } + + public function messages(): array + { + + $user_to_delete = User::find(request()->route('user')); + $messages = ['id.exists' => trans('admin/users/message.user_not_found')]; + + if ($user_to_delete) { + + $messages = array_merge([ + + // Cannot delete yourself + 'user.not_in' => trans('admin/users/message.error.cannot_delete_yourself'), + + // managed users is not 0 + 'managed_users.in' => trans_choice('admin/users/message.error.delete_has_users_var', $user_to_delete->managesUsers()->count(), ['count' => $user_to_delete->managesUsers()->count()]), + + // managed locations is not 0 + 'managed_locations.in' => trans_choice('admin/users/message.error.delete_has_locations_var', $user_to_delete->managedLocations()->count(), ['count' => $user_to_delete->managedLocations()->count()]), + + + // assigned_assets is not 0 + 'assigned_assets.in' => trans_choice('admin/users/message.error.delete_has_assets_var', $user_to_delete->assets()->count(), ['count' => $user_to_delete->assets()->count()]), + + // assigned licenses is not 0 + 'assigned_licenses.in' => trans_choice('admin/users/message.error.delete_has_licenses_var', $user_to_delete->licenses()->count(), ['count' => $user_to_delete->licenses()->count()]), + + // assigned accessories is not 0 + 'assigned_accessories.in' => trans_choice('admin/users/message.error.delete_has_accessories_var', $user_to_delete->accessories()->count(), ['count' => $user_to_delete->accessories()->count()]), + + ], $messages); + } + + return $messages; + } +} From 065a47a44640794846c04fb6905aaf741df47a7d Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 13:28:44 +0100 Subject: [PATCH 085/110] Use the DeleteUser request Signed-off-by: snipe --- app/Http/Controllers/Api/UsersController.php | 35 ++++--------------- .../Controllers/Users/UsersController.php | 5 +-- 2 files changed, 9 insertions(+), 31 deletions(-) diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index 4b3b00e7a2..848adb66ff 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -22,6 +22,7 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Log; +use App\Http\Requests\DeleteUserRequest; class UsersController extends Controller { @@ -530,40 +531,16 @@ class UsersController extends Controller * @param int $id * @return \Illuminate\Http\Response */ - public function destroy($id) + public function destroy(DeleteUserRequest $request, $id) { $this->authorize('delete', User::class); - $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed(); + $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc'); $user = Company::scopeCompanyables($user)->find($id); $this->authorize('delete', $user); + if ($user) { - - if ($user->id === Auth::id()) { - // Redirect to the user management page - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.error.cannot_delete_yourself'))); - } - - if (($user->assets) && ($user->assets->count() > 0)) { - return response()->json(Helper::formatStandardApiResponse('error', null, trans_choice('admin/users/message.error.delete_has_assets_var', $user->assets()->count(), ['count'=> $user->assets()->count()]))); - } - - if (($user->licenses) && ($user->licenses->count() > 0)) { - return response()->json(Helper::formatStandardApiResponse('error', null, trans_choice('admin/users/message.error.delete_has_licenses_var', $user->licenses()->count(), ['count'=> $user->licenses()->count()]))); - } - - if (($user->accessories) && ($user->accessories->count() > 0)) { - return response()->json(Helper::formatStandardApiResponse('error', null, trans_choice('admin/users/message.error.delete_has_accessories_var', $user->accessories()->count(), ['count'=> $user->accessories()->count()]))); - } - - if (($user->managedLocations()) && ($user->managedLocations()->count() > 0)) { - return response()->json(Helper::formatStandardApiResponse('error', null, trans_choice('admin/users/message.error.delete_has_locations_var', $user->managedLocations()->count(), ['count'=> $user->managedLocations()->count()]))); - } - - if (($user->managesUsers()) && ($user->managesUsers()->count() > 0)) { - return response()->json(Helper::formatStandardApiResponse('error', null, trans_choice('admin/users/message.error.delete_has_users_var', $user->managesUsers()->count(), ['count'=> $user->managesUsers()->count()]))); - } - + if ($user->delete()) { // Remove the user's avatar if they have one @@ -579,7 +556,7 @@ class UsersController extends Controller } } - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.error.delete'))); + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.user_not_found', compact('id')))); } /** diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 8df5842929..4d891be193 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Users; use App\Helpers\Helper; use App\Http\Controllers\Controller; +use App\Http\Requests\DeleteUserRequest; use App\Http\Requests\ImageUploadRequest; use App\Http\Requests\SaveUserRequest; use App\Models\Actionlog; @@ -333,11 +334,11 @@ class UsersController extends Controller * @return \Illuminate\Http\RedirectResponse * @throws \Illuminate\Auth\Access\AuthorizationException */ - public function destroy($id = null) + public function destroy(DeleteUserRequest $request, $id = null) { $this->authorize('delete', User::class); - $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc')->withTrashed(); + $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc'); $user = Company::scopeCompanyables($user)->find($id); From d4c080c7e4a5bdfcf0c342a4d772e12cf03a730d Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 13:40:32 +0100 Subject: [PATCH 086/110] Use the form request on the UI controller Signed-off-by: snipe --- .../Controllers/Users/UsersController.php | 33 ------------------- 1 file changed, 33 deletions(-) diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 4d891be193..b40694f389 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -343,39 +343,6 @@ class UsersController extends Controller if ($user) { - // Check if we are not trying to delete ourselves - if ($user->id === Auth::id()) { - // Redirect to the user management page - return redirect()->route('users.index') - ->with('error', trans('admin/users/message.error.cannot_delete_yourself')); - } - - if (($user->assets()) && ($user->assets()->count() > 0)) { - // Redirect to the user management page - return redirect()->route('users.index') - ->with('error', trans_choice('admin/users/message.error.delete_has_assets_var', $user->assets()->count(), ['count'=> $user->assets()->count()])); - } - - if (($user->licenses()) && ($user->licenses()->count() > 0)) { - return redirect()->route('users.index')->with('error', trans_choice('admin/users/message.error.delete_has_licenses_var', $user->licenses()->count(), ['count'=> $user->licenses()->count()])); - } - - if (($user->accessories()) && ($user->accessories()->count() > 0)) { - // Redirect to the user management page - return redirect()->route('users.index')->with('error', trans_choice('admin/users/message.error.delete_has_accessories_var', $user->accessories()->count(), ['count'=> $user->accessories()->count()])); - } - - if (($user->managedLocations()) && ($user->managedLocations()->count() > 0)) { - // Redirect to the user management page - return redirect()->route('users.index') - ->with('error', trans_choice('admin/users/message.error.delete_has_locations_var', $user->managedLocations()->count(), ['count'=> $user->managedLocations()->count()])); - } - - if (($user->managesUsers()) && ($user->managesUsers()->count() > 0)) { - return redirect()->route('users.index') - ->with('error', trans_choice('admin/users/message.error.delete_has_users_var', $user->managesUsers()->count(), ['count'=> $user->managesUsers()->count()])); - } - // Delete the user $user->delete(); return redirect()->route('users.index')->with('success', trans('admin/users/message.success.delete')); From 5cdb2b7163bf2fce74ecbe0b2feb93babe5aba35 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 14:00:35 +0100 Subject: [PATCH 087/110] Check that the user was not aready deleted Signed-off-by: snipe --- app/Http/Controllers/Users/UsersController.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index b40694f389..e88572b586 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -341,8 +341,7 @@ class UsersController extends Controller $user = User::with('assets', 'assets.model', 'consumables', 'accessories', 'licenses', 'userloc'); $user = Company::scopeCompanyables($user)->find($id); - - if ($user) { + if (($user) && ($user->deleted_at = '')) { // Delete the user $user->delete(); return redirect()->route('users.index')->with('success', trans('admin/users/message.success.delete')); From 47420a802a5294b44beef5095e019214269f8923 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 14:02:04 +0100 Subject: [PATCH 088/110] More (failing) tests Signed-off-by: snipe --- tests/Feature/Users/Ui/DeleteUserTest.php | 45 +++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tests/Feature/Users/Ui/DeleteUserTest.php b/tests/Feature/Users/Ui/DeleteUserTest.php index a3bb7364bd..ad4f7f282a 100644 --- a/tests/Feature/Users/Ui/DeleteUserTest.php +++ b/tests/Feature/Users/Ui/DeleteUserTest.php @@ -2,6 +2,7 @@ namespace Tests\Feature\Users\Ui; +use App\Models\LicenseSeat; use App\Models\Location; use App\Models\User; use Tests\TestCase; @@ -40,6 +41,37 @@ class DeleteUserTest extends TestCase $this->followRedirects($response)->assertSee('Error'); } + public function testDisallowUserDeletionIfStillHaveAccessories() + { + $user = User::factory()->create(); + Accessory::factory()->count(3)->create(['assigned_to' => $user->id]); + + $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($user->isDeletable()); + + $response = $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create()) + ->delete(route('users.destroy', $user->id)) + ->assertStatus(302) + ->assertRedirect(route('users.index')); + + $this->followRedirects($response)->assertSee('Error'); + } + + public function testDisallowUserDeletionIfStillHaveLicenses() + { + $user = User::factory()->create(); + LicenseSeat::factory()->count(3)->create(['assigned_to' => $user->id]); + + $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($user->isDeletable()); + + $response = $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create()) + ->delete(route('users.destroy', $user->id)) + ->assertStatus(302) + ->assertRedirect(route('users.index')); + + $this->followRedirects($response)->assertSee('Error'); + } + + public function testAllowUserDeletionIfNotManagingLocations() { $manager = User::factory()->create(); @@ -61,5 +93,18 @@ class DeleteUserTest extends TestCase $this->actingAs(User::factory()->editUsers()->create())->assertFalse($manager->isDeletable()); } + public function testUsersCannotDeleteThemselves() + { + $manager = User::factory()->deleteUsers()->create(); + $this->actingAs(User::factory()->deleteUsers()->create())->assertTrue($manager->isDeletable()); + + $response = $this->actingAs($manager) + ->delete(route('users.destroy', $manager->id)) + ->assertStatus(302) + ->assertRedirect(route('users.index')); + + $this->followRedirects($response)->assertSee('Error'); + } + } From 64dd8f5d6533000821216dc379d09758493db514 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 14:03:33 +0100 Subject: [PATCH 089/110] Missed a use statement Signed-off-by: snipe --- tests/Feature/Users/Ui/DeleteUserTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Feature/Users/Ui/DeleteUserTest.php b/tests/Feature/Users/Ui/DeleteUserTest.php index ad4f7f282a..f5e4b46b02 100644 --- a/tests/Feature/Users/Ui/DeleteUserTest.php +++ b/tests/Feature/Users/Ui/DeleteUserTest.php @@ -4,6 +4,7 @@ namespace Tests\Feature\Users\Ui; use App\Models\LicenseSeat; use App\Models\Location; +use App\Models\Accessory; use App\Models\User; use Tests\TestCase; From 2479ccc4c636af1517cdc5184c2d9903177ffefa Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 14:07:18 +0100 Subject: [PATCH 090/110] Fixed accessory assignment Signed-off-by: snipe --- tests/Feature/Users/Ui/DeleteUserTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Feature/Users/Ui/DeleteUserTest.php b/tests/Feature/Users/Ui/DeleteUserTest.php index f5e4b46b02..2be2240563 100644 --- a/tests/Feature/Users/Ui/DeleteUserTest.php +++ b/tests/Feature/Users/Ui/DeleteUserTest.php @@ -45,7 +45,7 @@ class DeleteUserTest extends TestCase public function testDisallowUserDeletionIfStillHaveAccessories() { $user = User::factory()->create(); - Accessory::factory()->count(3)->create(['assigned_to' => $user->id]); + Accessory::factory()->count(3)->checkedOutToUser()->create($user); $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($user->isDeletable()); From a2346e466633759cc3e5a2744760bca5acc2423d Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 14:09:57 +0100 Subject: [PATCH 091/110] Changed numbers Signed-off-by: snipe --- tests/Feature/Users/Ui/DeleteUserTest.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/Feature/Users/Ui/DeleteUserTest.php b/tests/Feature/Users/Ui/DeleteUserTest.php index 2be2240563..9fb5ba15dc 100644 --- a/tests/Feature/Users/Ui/DeleteUserTest.php +++ b/tests/Feature/Users/Ui/DeleteUserTest.php @@ -15,7 +15,7 @@ class DeleteUserTest extends TestCase public function testDisallowUserDeletionIfStillManagingPeople() { $manager = User::factory()->create(); - User::factory()->count(3)->create(['manager_id' => $manager->id]); + User::factory()->count(1)->create(['manager_id' => $manager->id]); $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($manager->isDeletable()); @@ -30,7 +30,7 @@ class DeleteUserTest extends TestCase public function testDisallowUserDeletionIfStillManagingLocations() { $manager = User::factory()->create(); - Location::factory()->count(3)->create(['manager_id' => $manager->id]); + Location::factory()->count(2)->create(['manager_id' => $manager->id]); $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($manager->isDeletable()); @@ -45,7 +45,7 @@ class DeleteUserTest extends TestCase public function testDisallowUserDeletionIfStillHaveAccessories() { $user = User::factory()->create(); - Accessory::factory()->count(3)->checkedOutToUser()->create($user); + Accessory::factory()->count(3)->checkedOutToUser($user)->create(); $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($user->isDeletable()); @@ -60,7 +60,7 @@ class DeleteUserTest extends TestCase public function testDisallowUserDeletionIfStillHaveLicenses() { $user = User::factory()->create(); - LicenseSeat::factory()->count(3)->create(['assigned_to' => $user->id]); + LicenseSeat::factory()->count(4)->create(['assigned_to' => $user->id]); $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($user->isDeletable()); From c5cbe37007c075057e18c61499449688d008c7e9 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 14:13:51 +0100 Subject: [PATCH 092/110] Added view permissions for the redirects Signed-off-by: snipe --- tests/Feature/Users/Ui/DeleteUserTest.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/Feature/Users/Ui/DeleteUserTest.php b/tests/Feature/Users/Ui/DeleteUserTest.php index 9fb5ba15dc..991043fdb0 100644 --- a/tests/Feature/Users/Ui/DeleteUserTest.php +++ b/tests/Feature/Users/Ui/DeleteUserTest.php @@ -17,7 +17,7 @@ class DeleteUserTest extends TestCase $manager = User::factory()->create(); User::factory()->count(1)->create(['manager_id' => $manager->id]); - $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($manager->isDeletable()); + $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create())->assertFalse($manager->isDeletable()); $response = $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create()) ->delete(route('users.destroy', $manager->id)) @@ -32,7 +32,7 @@ class DeleteUserTest extends TestCase $manager = User::factory()->create(); Location::factory()->count(2)->create(['manager_id' => $manager->id]); - $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($manager->isDeletable()); + $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create())->assertFalse($manager->isDeletable()); $response = $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create()) ->delete(route('users.destroy', $manager->id)) @@ -47,7 +47,7 @@ class DeleteUserTest extends TestCase $user = User::factory()->create(); Accessory::factory()->count(3)->checkedOutToUser($user)->create(); - $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($user->isDeletable()); + $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create())->assertFalse($user->isDeletable()); $response = $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create()) ->delete(route('users.destroy', $user->id)) @@ -62,7 +62,7 @@ class DeleteUserTest extends TestCase $user = User::factory()->create(); LicenseSeat::factory()->count(4)->create(['assigned_to' => $user->id]); - $this->actingAs(User::factory()->deleteUsers()->create())->assertFalse($user->isDeletable()); + $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create())->assertFalse($user->isDeletable()); $response = $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create()) ->delete(route('users.destroy', $user->id)) @@ -76,7 +76,7 @@ class DeleteUserTest extends TestCase public function testAllowUserDeletionIfNotManagingLocations() { $manager = User::factory()->create(); - $this->actingAs(User::factory()->deleteUsers()->create())->assertTrue($manager->isDeletable()); + $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create())->assertTrue($manager->isDeletable()); $response = $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create()) ->delete(route('users.destroy', $manager->id)) @@ -91,13 +91,13 @@ class DeleteUserTest extends TestCase { $manager = User::factory()->create(); Location::factory()->create(['manager_id' => $manager->id]); - $this->actingAs(User::factory()->editUsers()->create())->assertFalse($manager->isDeletable()); + $this->actingAs(User::factory()->editUsers()->viewUsers()->create())->assertFalse($manager->isDeletable()); } public function testUsersCannotDeleteThemselves() { - $manager = User::factory()->deleteUsers()->create(); - $this->actingAs(User::factory()->deleteUsers()->create())->assertTrue($manager->isDeletable()); + $manager = User::factory()->deleteUsers()->viewUsers()->create(); + $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create())->assertTrue($manager->isDeletable()); $response = $this->actingAs($manager) ->delete(route('users.destroy', $manager->id)) From 374c6845d6e13c1b4c8c5810e524ae779c6e1d4f Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 14:16:28 +0100 Subject: [PATCH 093/110] Added test if user has assets Signed-off-by: snipe --- tests/Feature/Users/Ui/DeleteUserTest.php | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tests/Feature/Users/Ui/DeleteUserTest.php b/tests/Feature/Users/Ui/DeleteUserTest.php index 991043fdb0..137a498d66 100644 --- a/tests/Feature/Users/Ui/DeleteUserTest.php +++ b/tests/Feature/Users/Ui/DeleteUserTest.php @@ -2,11 +2,13 @@ namespace Tests\Feature\Users\Ui; +use Tests\TestCase; use App\Models\LicenseSeat; use App\Models\Location; use App\Models\Accessory; use App\Models\User; -use Tests\TestCase; + +use App\Models\Asset; class DeleteUserTest extends TestCase { @@ -94,6 +96,22 @@ class DeleteUserTest extends TestCase $this->actingAs(User::factory()->editUsers()->viewUsers()->create())->assertFalse($manager->isDeletable()); } + public function testDisallowUserDeletionIfTheyStillHaveAssets() + { + $user = User::factory()->create(); + Asset::factory()->count(6)->checkedOutToUser($user)->create(); + + $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create())->assertFalse($user->isDeletable()); + + $response = $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create()) + ->delete(route('users.destroy', $user->id)) + ->assertStatus(302) + ->assertRedirect(route('users.index')); + + $this->followRedirects($response)->assertSee('Error'); + } + + public function testUsersCannotDeleteThemselves() { $manager = User::factory()->deleteUsers()->viewUsers()->create(); From 7ac315e1eb22e51851519661e8bafee9a005cdfc Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 14:50:45 +0100 Subject: [PATCH 094/110] Fixed tests Signed-off-by: snipe --- app/Http/Requests/DeleteUserRequest.php | 3 +++ tests/Feature/Users/Ui/DeleteUserTest.php | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/Http/Requests/DeleteUserRequest.php b/app/Http/Requests/DeleteUserRequest.php index a640d6a9d2..8136bd68e2 100644 --- a/app/Http/Requests/DeleteUserRequest.php +++ b/app/Http/Requests/DeleteUserRequest.php @@ -11,6 +11,9 @@ use Illuminate\Http\Request; class DeleteUserRequest extends FormRequest { + + protected $redirectRoute = 'users.index'; + /** * Determine if the user is authorized to make this request. */ diff --git a/tests/Feature/Users/Ui/DeleteUserTest.php b/tests/Feature/Users/Ui/DeleteUserTest.php index 137a498d66..0f5fbdcec7 100644 --- a/tests/Feature/Users/Ui/DeleteUserTest.php +++ b/tests/Feature/Users/Ui/DeleteUserTest.php @@ -99,7 +99,14 @@ class DeleteUserTest extends TestCase public function testDisallowUserDeletionIfTheyStillHaveAssets() { $user = User::factory()->create(); - Asset::factory()->count(6)->checkedOutToUser($user)->create(); + $asset = Asset::factory()->create(); + + $this->actingAs(User::factory()->checkoutAssets()->create()) + ->post(route('hardware.checkout.store', $asset->id), [ + 'checkout_to_type' => 'user', + 'assigned_user' => $user->id, + 'name' => 'Changed Name', + ]); $this->actingAs(User::factory()->deleteUsers()->viewUsers()->create())->assertFalse($user->isDeletable()); From 871255f28cb06f595feeeb50bd3ceb63da211326 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 5 Jun 2024 20:40:45 +0100 Subject: [PATCH 095/110] Fixed #14812 - added consumables to individual inventory report Signed-off-by: snipe --- .../Commands/SendCurrentInventoryToUsers.php | 2 +- app/Notifications/CurrentInventory.php | 1 + .../notifications/markdown/user-inventory.blade.php | 13 +++++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/Console/Commands/SendCurrentInventoryToUsers.php b/app/Console/Commands/SendCurrentInventoryToUsers.php index 74acc9cc0f..c5180203e6 100644 --- a/app/Console/Commands/SendCurrentInventoryToUsers.php +++ b/app/Console/Commands/SendCurrentInventoryToUsers.php @@ -43,7 +43,7 @@ class SendCurrentInventoryToUsers extends Command $count = 0; foreach ($users as $user) { - if (($user->assets->count() > 0) || ($user->accessories->count() > 0) || ($user->licenses->count() > 0)) { + if (($user->assets->count() > 0) || ($user->accessories->count() > 0) || ($user->licenses->count() > 0) || ($user->consumables->count() > 0)) { $count++; $user->notify((new CurrentInventory($user))); } diff --git a/app/Notifications/CurrentInventory.php b/app/Notifications/CurrentInventory.php index 158955b273..ae64b188cd 100644 --- a/app/Notifications/CurrentInventory.php +++ b/app/Notifications/CurrentInventory.php @@ -43,6 +43,7 @@ class CurrentInventory extends Notification 'assets' => $this->user->assets, 'accessories' => $this->user->accessories, 'licenses' => $this->user->licenses, + 'consumables' => $this->user->consumables, ]) ->subject(trans('mail.inventory_report')); diff --git a/resources/views/notifications/markdown/user-inventory.blade.php b/resources/views/notifications/markdown/user-inventory.blade.php index 7b298dbc32..f1b329ec8d 100644 --- a/resources/views/notifications/markdown/user-inventory.blade.php +++ b/resources/views/notifications/markdown/user-inventory.blade.php @@ -56,6 +56,19 @@ @endif +@if ($consumables->count() > 0) +## {{ $consumables->count() }} {{ trans('general.consumables') }} + + + +@foreach($consumables as $consumable) + + + +@endforeach +
    {{ trans('mail.name') }}
    {{ $consumable->name }}
    +@endif + @endcomponent From d35e251d6ed22e6b8a1a42b36d0993ca4777c880 Mon Sep 17 00:00:00 2001 From: bryanlopezinc Date: Wed, 5 Jun 2024 21:46:43 +0100 Subject: [PATCH 096/110] Added test for app url config --- app/Http/Controllers/SettingsController.php | 25 ++--------- tests/Feature/Settings/ShowSetUpPageTest.php | 47 +++++++++++++++++--- 2 files changed, 43 insertions(+), 29 deletions(-) diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index cbae6a4a53..26ab2b2a83 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -67,28 +67,9 @@ class SettingsController extends Controller $start_settings['db_error'] = $e->getMessage(); } - if (array_key_exists("HTTP_X_FORWARDED_PROTO", $_SERVER)) { - $protocol = $_SERVER["HTTP_X_FORWARDED_PROTO"] . "://"; - } elseif (array_key_exists('HTTPS', $_SERVER) && ('on' == $_SERVER['HTTPS'])) { - $protocol = "https://"; - } else { - $protocol = "http://"; - } - - if (array_key_exists("HTTP_X_FORWARDED_HOST", $_SERVER)) { - $host = $_SERVER["HTTP_X_FORWARDED_HOST"]; - } else { - $host = array_key_exists('SERVER_NAME', $_SERVER) ? $_SERVER['SERVER_NAME'] : null; - $port = array_key_exists('SERVER_PORT', $_SERVER) ? $_SERVER['SERVER_PORT'] : null; - if (('http://' === $protocol && '80' != $port) || ('https://' === $protocol && '443' != $port)) { - $host .= ':'.$port; - } - } - $pageURL = $protocol.$host.$_SERVER['REQUEST_URI']; - - $start_settings['url_config'] = config('app.url').'/setup'; - $start_settings['url_valid'] = ($start_settings['url_config'] === $pageURL); - $start_settings['real_url'] = $pageURL; + $start_settings['url_config'] = trim(config('app.url'), '/'). '/setup'; + $start_settings['real_url'] = request()->url(); + $start_settings['url_valid'] = $start_settings['url_config'] === $start_settings['real_url']; $start_settings['php_version_min'] = true; // Curl the .env file to make sure it's not accessible via a browser diff --git a/tests/Feature/Settings/ShowSetUpPageTest.php b/tests/Feature/Settings/ShowSetUpPageTest.php index 95638be0d6..44c3d5a420 100644 --- a/tests/Feature/Settings/ShowSetUpPageTest.php +++ b/tests/Feature/Settings/ShowSetUpPageTest.php @@ -25,13 +25,6 @@ class ShowSetUpPageTest extends TestCase */ protected bool $preventStrayRequest = true; - protected function setUp(): void - { - parent::setUp(); - - $_SERVER['REQUEST_URI'] = '/setup'; - } - protected function getSetUpPageResponse(): TestResponse { if ($this->preventStrayRequest) { @@ -234,4 +227,44 @@ class ShowSetUpPageTest extends TestCase return true; }); } + + public function testWillShowErrorMessageWhenAppUrlIsNotSameWithPageUrl(): void + { + config(['app.url' => 'http://www.github.com']); + + $this->getSetUpPageResponse()->assertOk(); + + $this->assertSeeAppUrlMisconfigurationErrorMessage(); + } + + protected function assertSeeAppUrlMisconfigurationErrorMessage(bool $shouldSee = true): void + { + $url = URL::to('setup'); + + $errorMessage = "Uh oh! Snipe-IT thinks your URL is http://www.github.com/setup, but your real URL is {$url}"; + $successMessage = 'That URL looks right! Good job!'; + + if ($shouldSee) { + self::$latestResponse->assertSee($errorMessage)->assertDontSee($successMessage); + return; + } + + self::$latestResponse->assertSee($successMessage)->assertDontSee($errorMessage); + } + + public function testWillNotShowErrorMessageWhenAppUrlIsSameWithPageUrl(): void + { + $this->getSetUpPageResponse()->assertOk(); + + $this->assertSeeAppUrlMisconfigurationErrorMessage(false); + } + + public function testWhenAppUrlContainsTrailingSlash(): void + { + config(['app.url' => 'http://www.github.com/']); + + $this->getSetUpPageResponse()->assertOk(); + + $this->assertSeeAppUrlMisconfigurationErrorMessage(); + } } From 44dae22a3c55d5b5f449b6bee02ee32b998280f0 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Thu, 6 Jun 2024 13:18:19 -0700 Subject: [PATCH 097/110] adjust label preview window --- resources/views/settings/labels.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/settings/labels.blade.php b/resources/views/settings/labels.blade.php index 6f3694caff..bced2050b4 100644 --- a/resources/views/settings/labels.blade.php +++ b/resources/views/settings/labels.blade.php @@ -66,10 +66,10 @@
    -
    +
    @include('partials.label2-preview')
    -
    +
    Date: Thu, 6 Jun 2024 13:21:00 -0700 Subject: [PATCH 098/110] Add Postgres GitHub workflow for tests --- .github/workflows/tests-postgres.yml | 80 ++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 .github/workflows/tests-postgres.yml diff --git a/.github/workflows/tests-postgres.yml b/.github/workflows/tests-postgres.yml new file mode 100644 index 0000000000..c897762bde --- /dev/null +++ b/.github/workflows/tests-postgres.yml @@ -0,0 +1,80 @@ +name: Tests in Postgres + +on: + push: + branches: + - master + - develop + pull_request: + +jobs: + tests: + runs-on: ubuntu-latest + + services: + postgresql: + image: postgres:14 + env: + POSTGRES_DB: snipeit + POSTGRES_USER: snipeit + POSTGRES_PASSWORD: password + ports: + - 5432:5432 + options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3 + + strategy: + fail-fast: false + matrix: + php-version: + - "8.2" + + name: PHP ${{ matrix.php-version }} + + steps: + - uses: shivammathur/setup-php@v2 + with: + php-version: "${{ matrix.php-version }}" + coverage: none + + - uses: actions/checkout@v4 + + - name: Get Composer Cache Directory + id: composer-cache + run: | + echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + - uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-composer- + + - name: Copy .env + run: | + cp -v .env.testing.example .env + cp -v .env.testing.example .env.testing + + - name: Install Dependencies + run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist + + - name: Setup Laravel + env: + DB_CONNECTION: pgsql + DB_DATABASE: snipeit + DB_PORT: ${{ job.services.postgresql.ports[5432] }} + DB_USERNAME: snipeit + DB_PASSWORD: password + run: | + php artisan key:generate + php artisan migrate --force + php artisan passport:install + chmod -R 777 storage bootstrap/cache + + - name: Execute tests (Unit and Feature tests) via PHPUnit + env: + DB_CONNECTION: pgsql + DB_DATABASE: snipeit + DB_PORT: ${{ job.services.postgresql.ports[5432] }} + DB_USERNAME: snipeit + DB_PASSWORD: password + run: php artisan test --parallel From 6df1c36011ff244fcc54f76258207142513d778b Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Thu, 6 Jun 2024 13:24:02 -0700 Subject: [PATCH 099/110] oops --- resources/views/settings/labels.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/settings/labels.blade.php b/resources/views/settings/labels.blade.php index bced2050b4..6b7fde2694 100644 --- a/resources/views/settings/labels.blade.php +++ b/resources/views/settings/labels.blade.php @@ -66,7 +66,7 @@
    -
    +
    @include('partials.label2-preview')
    From 6c296ccf8e1867fedf1d30f0feb15baf0f641866 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Thu, 6 Jun 2024 13:27:39 -0700 Subject: [PATCH 100/110] Use "postgres" instead of "postgres:14" --- .github/workflows/tests-postgres.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests-postgres.yml b/.github/workflows/tests-postgres.yml index c897762bde..4e4fbc66d0 100644 --- a/.github/workflows/tests-postgres.yml +++ b/.github/workflows/tests-postgres.yml @@ -13,7 +13,7 @@ jobs: services: postgresql: - image: postgres:14 + image: postgres env: POSTGRES_DB: snipeit POSTGRES_USER: snipeit From 3621292a0ef0ba910d04079edb02b99ff6705dc0 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Thu, 6 Jun 2024 13:28:05 -0700 Subject: [PATCH 101/110] removes unnecessary height --- resources/views/partials/label2-preview.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/partials/label2-preview.blade.php b/resources/views/partials/label2-preview.blade.php index 36617bcc37..78518f103c 100644 --- a/resources/views/partials/label2-preview.blade.php +++ b/resources/views/partials/label2-preview.blade.php @@ -2,7 +2,7 @@ @push('css')