Compare commits
112 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2aa9412565 | |||
| 35ab5c7df0 | |||
| 8a7cd87644 | |||
| 1cdf6f8263 | |||
| b8ad930690 | |||
| ec14a117b7 | |||
| b7cc12a466 | |||
| f4080a7aa9 | |||
| 5abfbdd1d2 | |||
| 31bbb2d035 | |||
| 33dca84ec7 | |||
| 460485d843 | |||
| b59269d5e2 | |||
| 118931b6fb | |||
| 8bbf8409b1 | |||
| b2101a5188 | |||
| ede20523f2 | |||
| 89d9b830a0 | |||
| d76eea53c4 | |||
| 63a8535de1 | |||
| ef7434b7ac | |||
| 148b375ec2 | |||
| d49bc33b54 | |||
| 5bff5cb8c0 | |||
| c8634d85f5 | |||
| a5423649f4 | |||
| b026953190 | |||
| 3c209b29b1 | |||
| c0fb87c7f9 | |||
| 48c3d0fd19 | |||
| 67f60127be | |||
| 4a8a98a7d3 | |||
| 4b8e9a962b | |||
| 966179290b | |||
| 6618e88a9a | |||
| ab6d2987a4 | |||
| 45c140814f | |||
| 467ff045aa | |||
| e0103a7fbd | |||
| 432263f09f | |||
| 911841d188 | |||
| e8fd2a7fe8 | |||
| df5972c4fa | |||
| 4d003ac97a | |||
| 9f4a212b44 | |||
| 12667f41b9 | |||
| a8390ce4bd | |||
| cfc1e1366c | |||
| 44e5fec707 | |||
| f138d3b781 | |||
| bbd7a752a0 | |||
| a66a22ffb2 | |||
| b29f794b35 | |||
| 410c99da17 | |||
| c800662f0c | |||
| b828985151 | |||
| e6f53a53bc | |||
| 0c2800c7dd | |||
| a8f9f5239c | |||
| 63bb2de4d4 | |||
| c4b2ef5660 | |||
| 296655542d | |||
| a55694da2f | |||
| 33bda9b6d1 | |||
| 42347d0f0c | |||
| 6554903aeb | |||
| 502322be4b | |||
| 72facffcbe | |||
| 001bb3cbe2 | |||
| f42bd3a144 | |||
| b9330cf6b1 | |||
| 2844800caf | |||
| b7e8b9bad7 | |||
| a7ecaa6ebc | |||
| 7937258f6e | |||
| cce0739bb7 | |||
| c93f4ef0d5 | |||
| 89e36dbc42 | |||
| d317052ede | |||
| 8ee9e5e059 | |||
| 2602e4d602 | |||
| f357d9fc90 | |||
| 0eda53c484 | |||
| 79a4acae1a | |||
| 91e0b26bbb | |||
| 5f82214703 | |||
| d517e2fd61 | |||
| 28612d8b61 | |||
| 6ee3d0eb97 | |||
| 7987a4eca4 | |||
| 2aa8e1e76b | |||
| be0e327221 | |||
| 9a1acced58 | |||
| d74df93c48 | |||
| b9a9949570 | |||
| 4ccba5337a | |||
| 8aae2b46cd | |||
| d03d4deef9 | |||
| 21ceea0aed | |||
| 2219c9ccb5 | |||
| bf9e53fbe7 | |||
| f68580b482 | |||
| aec2f2a249 | |||
| 831da2d6d1 | |||
| f2aebe5f9a | |||
| 40c0ba9a95 | |||
| f5a0726f98 | |||
| 2263dae8f4 | |||
| 88f03e6b55 | |||
| 8827d33a43 | |||
| 66ac5d05ad | |||
| 18012279f9 |
+11
-2
@@ -51,7 +51,6 @@ MAIL_FROM_ADDR=you@example.com
|
||||
MAIL_FROM_NAME='Snipe-IT'
|
||||
MAIL_REPLYTO_ADDR=you@example.com
|
||||
MAIL_REPLYTO_NAME='Snipe-IT'
|
||||
MAIL_BACKUP_NOTIFICATION_ADDRESS=you@example.com
|
||||
|
||||
# --------------------------------------------
|
||||
# REQUIRED: IMAGE LIBRARY
|
||||
@@ -59,6 +58,15 @@ MAIL_BACKUP_NOTIFICATION_ADDRESS=you@example.com
|
||||
# --------------------------------------------
|
||||
IMAGE_LIB=gd
|
||||
|
||||
|
||||
# --------------------------------------------
|
||||
# OPTIONAL: BACKUP SETTINGS
|
||||
# --------------------------------------------
|
||||
MAIL_BACKUP_NOTIFICATION_DRIVER=null
|
||||
MAIL_BACKUP_NOTIFICATION_ADDRESS=null
|
||||
BACKUP_ENV=true
|
||||
|
||||
|
||||
# --------------------------------------------
|
||||
# OPTIONAL: SESSION SETTINGS
|
||||
# --------------------------------------------
|
||||
@@ -68,6 +76,7 @@ ENCRYPT=false
|
||||
COOKIE_NAME=snipeit_session
|
||||
COOKIE_DOMAIN=null
|
||||
SECURE_COOKIES=false
|
||||
API_TOKEN_EXPIRATION_YEARS=40
|
||||
|
||||
# --------------------------------------------
|
||||
# OPTIONAL: SECURITY HEADER SETTINGS
|
||||
@@ -125,6 +134,7 @@ PRIVATE_AWS_BUCKET_ROOT=null
|
||||
# --------------------------------------------
|
||||
LOGIN_MAX_ATTEMPTS=5
|
||||
LOGIN_LOCKOUT_DURATION=60
|
||||
RESET_PASSWORD_LINK_EXPIRES=900
|
||||
|
||||
# --------------------------------------------
|
||||
# OPTIONAL: MISC
|
||||
@@ -134,6 +144,5 @@ APP_LOG_MAX_FILES=10
|
||||
APP_LOCKED=false
|
||||
APP_CIPHER=AES-256-CBC
|
||||
GOOGLE_MAPS_API=
|
||||
BACKUP_ENV=true
|
||||
LDAP_MEM_LIM=500M
|
||||
LDAP_TIME_LIM=600
|
||||
|
||||
@@ -48,6 +48,7 @@ If applicable, add screenshots to help explain your problem.
|
||||
- Any errors that appear in your browser's error console.
|
||||
- Confirm whether the error is reproducible on the demo: https://snipeitapp.com/demo.
|
||||
- Include any additional information you can find in `storage/logs` and your webserver's logs.
|
||||
- Include the output from `php -m` (this should display what modules you have enabled.)
|
||||
|
||||
**Additional context**
|
||||
- Is this a fresh install or an upgrade?
|
||||
|
||||
@@ -108,7 +108,7 @@ class LdapSync extends Command
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
ini_set('max_execution_time', '600'); //600 seconds = 10 minutes
|
||||
ini_set('max_execution_time', env('LDAP_TIME_LIM', "600")); //600 seconds = 10 minutes
|
||||
ini_set('memory_limit', '500M');
|
||||
$old_error_reporting = error_reporting(); // grab old error_reporting .ini setting, for later re-enablement
|
||||
error_reporting($old_error_reporting & ~E_DEPRECATED); // disable deprecation warnings, for LDAP in PHP 7.4 (and greater)
|
||||
@@ -117,7 +117,7 @@ class LdapSync extends Command
|
||||
$this->dryrun = true;
|
||||
}
|
||||
$this->checkIfLdapIsEnabled();
|
||||
$this->checkLdapConnetion();
|
||||
$this->checkLdapConnection();
|
||||
$this->setBaseDn();
|
||||
$this->getUserDefaultLocation();
|
||||
/*
|
||||
@@ -221,12 +221,11 @@ class LdapSync extends Command
|
||||
*
|
||||
* @since 5.0.0
|
||||
*
|
||||
* @param int $page The page to get the result set
|
||||
*/
|
||||
private function processLdapUsers(int $page=0): void
|
||||
private function processLdapUsers(): void
|
||||
{
|
||||
try {
|
||||
$ldapUsers = $this->ldap->getLdapUsers($page);
|
||||
$ldapUsers = $this->ldap->getLdapUsers();
|
||||
} catch (Exception $e) {
|
||||
$this->outputError($e);
|
||||
exit($e->getMessage());
|
||||
@@ -242,13 +241,9 @@ class LdapSync extends Command
|
||||
}
|
||||
|
||||
// Process each individual users
|
||||
foreach ($ldapUsers as $user) {
|
||||
foreach ($ldapUsers->getResults() as $user) { // AdLdap2's paginate() method is weird, it gets *everything* and ->getResults() returns *everything*
|
||||
$this->updateCreateUser($user);
|
||||
}
|
||||
|
||||
if ($ldapUsers->getCurrentPage() < $ldapUsers->getPages()-1) {
|
||||
$this->processLdapUsers($ldapUsers->getCurrentPage() + 1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -355,7 +350,7 @@ class LdapSync extends Command
|
||||
*
|
||||
* @since 5.0.0
|
||||
*/
|
||||
private function checkLdapConnetion(): void
|
||||
private function checkLdapConnection(): void
|
||||
{
|
||||
try {
|
||||
$this->ldap->testLdapAdUserConnection();
|
||||
|
||||
@@ -64,7 +64,7 @@ class ResetDemoSettings extends Command
|
||||
$settings->thumbnail_max_h = '30';
|
||||
$settings->locale = 'en';
|
||||
$settings->version_footer = 'on';
|
||||
$settings->support_footer = 'on';
|
||||
$settings->support_footer = null;
|
||||
$settings->saml_enabled = '0';
|
||||
$settings->saml_sp_entitiyid = '0';
|
||||
$settings->saml_sp_acs_url = null;
|
||||
|
||||
@@ -58,7 +58,7 @@ class SendExpectedCheckinAlerts extends Command
|
||||
$recipients = collect(explode(',', $settings->alert_email))->map(function ($item, $key) {
|
||||
return new AlertRecipient($item);
|
||||
});
|
||||
Notification::send($recipients, new ExpectedCheckinAdminNotification($assets));
|
||||
\Notification::send($recipients, new ExpectedCheckinAdminNotification($assets));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,14 +55,14 @@ class SendExpirationAlerts extends Command
|
||||
$assets = Asset::getExpiringWarrantee($threshold);
|
||||
if ($assets->count() > 0) {
|
||||
$this->info(trans_choice('mail.assets_warrantee_alert', $assets->count(), ['count' => $assets->count(), 'threshold' => $threshold]));
|
||||
Notification::send($recipients, new ExpiringAssetsNotification($assets, $threshold));
|
||||
\Notification::send($recipients, new ExpiringAssetsNotification($assets, $threshold));
|
||||
}
|
||||
|
||||
// Expiring licenses
|
||||
$licenses = License::getExpiringLicenses($threshold);
|
||||
if ($licenses->count() > 0) {
|
||||
$this->info(trans_choice('mail.license_expiring_alert', $licenses->count(), ['count' => $licenses->count(), 'threshold' => $threshold]));
|
||||
Notification::send($recipients, new ExpiringLicenseNotification($licenses, $threshold));
|
||||
\Notification::send($recipients, new ExpiringLicenseNotification($licenses, $threshold));
|
||||
}
|
||||
} else {
|
||||
if ($settings->alert_email == '') {
|
||||
|
||||
@@ -52,7 +52,7 @@ class SendInventoryAlerts extends Command
|
||||
return new AlertRecipient($item);
|
||||
});
|
||||
|
||||
Notification::send($recipients, new InventoryAlert($items, $settings->alert_threshold));
|
||||
\Notification::send($recipients, new InventoryAlert($items, $settings->alert_threshold));
|
||||
}
|
||||
} else {
|
||||
if ($settings->alert_email == '') {
|
||||
|
||||
@@ -75,7 +75,8 @@ class AccessoryCheckoutController extends Controller
|
||||
'accessory_id' => $accessory->id,
|
||||
'created_at' => Carbon::now(),
|
||||
'user_id' => Auth::id(),
|
||||
'assigned_to' => $request->get('assigned_to')
|
||||
'assigned_to' => $request->get('assigned_to'),
|
||||
'note' => $request->input('note')
|
||||
]);
|
||||
|
||||
DB::table('accessories_users')->where('assigned_to', '=', $accessory->assigned_to)->where('accessory_id', '=', $accessory->id)->first();
|
||||
|
||||
@@ -94,7 +94,7 @@ class AcceptanceController extends Controller {
|
||||
if (!Storage::exists('private_uploads/signatures')) Storage::makeDirectory('private_uploads/signatures', 775);
|
||||
|
||||
|
||||
|
||||
$sig_filename = '';
|
||||
if ($request->filled('signature_output')) {
|
||||
$sig_filename = "siglog-" .Str::uuid() . '-'.date('Y-m-d-his').".png";
|
||||
$data_uri = e($request->input('signature_output'));
|
||||
|
||||
@@ -154,7 +154,6 @@ class AccessoriesController extends Controller
|
||||
$offset = request('offset', 0);
|
||||
$limit = request('limit', 50);
|
||||
|
||||
$accessory->lastCheckoutArray = $accessory->lastCheckout->toArray();
|
||||
$accessory_users = $accessory->users;
|
||||
$total = $accessory_users->count();
|
||||
|
||||
|
||||
@@ -67,7 +67,9 @@ class UsersController extends Controller
|
||||
|
||||
|
||||
if (($request->filled('deleted')) && ($request->input('deleted')=='true')) {
|
||||
$users = $users->GetDeleted();
|
||||
$users = $users->onlyTrashed();
|
||||
} elseif (($request->filled('all')) && ($request->input('deleted')=='true')) {
|
||||
$users = $users->withTrashed();
|
||||
}
|
||||
|
||||
if ($request->filled('company_id')) {
|
||||
|
||||
@@ -76,9 +76,32 @@ class AssetCheckinController extends Controller
|
||||
$asset->status_id = e($request->get('status_id'));
|
||||
}
|
||||
|
||||
// This is just meant to correct legacy issues where some user data would have 0
|
||||
// as a location ID, which isn't valid. Later versions of Snipe-IT have stricter validation
|
||||
// rules, so it's necessary to fix this for long-time users. It's kinda gross, but will help
|
||||
// people (and their data) in the long run
|
||||
|
||||
if ($asset->rtd_location_id=='0') {
|
||||
\Log::debug('Manually override the RTD location IDs');
|
||||
\Log::debug('Original RTD Location ID: '.$asset->rtd_location_id);
|
||||
$asset->rtd_location_id = '';
|
||||
\Log::debug('New RTD Location ID: '.$asset->rtd_location_id);
|
||||
}
|
||||
|
||||
if ($asset->location_id=='0') {
|
||||
\Log::debug('Manually override the location IDs');
|
||||
\Log::debug('Original Location ID: '.$asset->location_id);
|
||||
$asset->location_id = '';
|
||||
\Log::debug('New RTD Location ID: '.$asset->location_id);
|
||||
}
|
||||
|
||||
$asset->location_id = $asset->rtd_location_id;
|
||||
\Log::debug('After Location ID: '.$asset->location_id);
|
||||
\Log::debug('After RTD Location ID: '.$asset->rtd_location_id);
|
||||
|
||||
|
||||
if ($request->filled('location_id')) {
|
||||
\Log::debug('NEW Location ID: '.$request->get('location_id'));
|
||||
$asset->location_id = e($request->get('location_id'));
|
||||
}
|
||||
|
||||
@@ -97,6 +120,6 @@ class AssetCheckinController extends Controller
|
||||
return redirect()->route("hardware.index")->with('success', trans('admin/hardware/message.checkin.success'));
|
||||
}
|
||||
// Redirect to the asset management page with error
|
||||
return redirect()->route("hardware.index")->with('error', trans('admin/hardware/message.checkin.error'));
|
||||
return redirect()->route("hardware.index")->with('error', trans('admin/hardware/message.checkin.error').$asset->getErrors());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ class AssetCheckoutController extends Controller
|
||||
}
|
||||
|
||||
// Redirect to the asset management page with error
|
||||
return redirect()->to("hardware/$assetId/checkout")->with('error', trans('admin/hardware/message.checkout.error'))->withErrors($asset->getErrors());
|
||||
return redirect()->to("hardware/$assetId/checkout")->with('error', trans('admin/hardware/message.checkout.error').$asset->getErrors());
|
||||
} catch (ModelNotFoundException $e) {
|
||||
return redirect()->back()->with('error', trans('admin/hardware/message.checkout.error'))->withErrors($asset->getErrors());
|
||||
} catch (CheckoutNotAllowed $e) {
|
||||
|
||||
@@ -5,7 +5,6 @@ namespace App\Http\Controllers\Auth;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class ForgotPasswordController extends Controller
|
||||
{
|
||||
@@ -60,7 +59,7 @@ class ForgotPasswordController extends Controller
|
||||
*/
|
||||
|
||||
$request->validate([
|
||||
'email' => ['required', 'email', 'max:255'],
|
||||
'username' => ['required', 'max:255'],
|
||||
]);
|
||||
|
||||
|
||||
@@ -74,16 +73,16 @@ class ForgotPasswordController extends Controller
|
||||
*/
|
||||
$response = $this->broker()->sendResetLink(
|
||||
array_merge(
|
||||
$request->only('email'),
|
||||
$request->only('username'),
|
||||
['activated' => '1'],
|
||||
['ldap_import' => '0']
|
||||
)
|
||||
);
|
||||
|
||||
if ($response === \Password::RESET_LINK_SENT) {
|
||||
\Log::info('Password reset attempt: User '.$request->input('email').' found, password reset sent');
|
||||
\Log::info('Password reset attempt: User '.$request->input('username').' WAS found, password reset sent');
|
||||
} else {
|
||||
\Log::info('Password reset attempt: User '.$request->input('email').' not found or user is inactive');
|
||||
\Log::info('Password reset attempt: User matching username '.$request->input('username').' NOT FOUND or user is inactive');
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3,9 +3,13 @@
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\SaveUserRequest;
|
||||
use App\Models\Setting;
|
||||
use App\Models\User;
|
||||
use Illuminate\Foundation\Auth\ResetsPasswords;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Illuminate\Validation\Validator;
|
||||
|
||||
class ResetPasswordController extends Controller
|
||||
{
|
||||
@@ -29,6 +33,8 @@ class ResetPasswordController extends Controller
|
||||
*/
|
||||
protected $redirectTo = '/';
|
||||
|
||||
protected $username = 'username';
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
@@ -44,7 +50,7 @@ class ResetPasswordController extends Controller
|
||||
return [
|
||||
'token' => 'required',
|
||||
'username' => 'required',
|
||||
'password' => 'required|confirmed|'.Setting::passwordComplexityRulesSaving('update'),
|
||||
'password' => 'confirmed|'.Setting::passwordComplexityRulesSaving('store'),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -55,7 +61,7 @@ class ResetPasswordController extends Controller
|
||||
'username', 'password', 'password_confirmation', 'token'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function showResetForm(Request $request, $token = null)
|
||||
{
|
||||
@@ -67,11 +73,48 @@ class ResetPasswordController extends Controller
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
public function reset(Request $request)
|
||||
{
|
||||
|
||||
$messages = [
|
||||
'password.not_in' => trans('validation.disallow_same_pwd_as_user_fields'),
|
||||
];
|
||||
|
||||
$request->validate($this->rules(), $request->all(), $this->validationErrorMessages());
|
||||
|
||||
// Check to see if the user even exists
|
||||
$user = User::where('username', '=', $request->input('username'))->first();
|
||||
|
||||
$broker = $this->broker();
|
||||
if (strpos(Setting::passwordComplexityRulesSaving('store'), 'disallow_same_pwd_as_user_fields') !== FALSE) {
|
||||
$request->validate(
|
||||
[
|
||||
'password' => 'required|notIn:["'.$user->email.'","'.$user->username.'","'.$user->first_name.'","'.$user->last_name.'"'
|
||||
], $messages);
|
||||
|
||||
}
|
||||
|
||||
|
||||
$response = $broker->reset(
|
||||
$this->credentials($request), function ($user, $password) {
|
||||
$this->resetPassword($user, $password);
|
||||
}
|
||||
);
|
||||
|
||||
return $response == \Password::PASSWORD_RESET
|
||||
? $this->sendResetResponse($request, $response)
|
||||
: $this->sendResetFailedResponse($request, $response);
|
||||
}
|
||||
|
||||
|
||||
protected function sendResetFailedResponse(Request $request, $response)
|
||||
{
|
||||
return redirect()->back()
|
||||
->withInput(['username'=> $request->input('username')])
|
||||
->withErrors(['username' => trans($response)]);
|
||||
->withErrors(['username' => trans($response), 'password' => trans($response)]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -156,6 +156,28 @@ class ProfileController extends Controller
|
||||
if (!Hash::check($request->input('current_password'), $user->password)) {
|
||||
$validator->errors()->add('current_password', trans('validation.hashed_pass'));
|
||||
}
|
||||
|
||||
// This checks to make sure that the user's password isn't the same as their username,
|
||||
// email address, first name or last name (see https://github.com/snipe/snipe-it/issues/8661)
|
||||
// While this is handled via SaveUserRequest form request in other places, we have to do this manually
|
||||
// here because we don't have the username, etc form fields available in the profile password change
|
||||
// form.
|
||||
|
||||
// There may be a more elegant way to do this in the future.
|
||||
|
||||
// First let's see if that option is enabled in the settings
|
||||
if (strpos(Setting::passwordComplexityRulesSaving('store'), 'disallow_same_pwd_as_user_fields') !== FALSE) {
|
||||
if (($request->input('password') == $user->username) ||
|
||||
($request->input('password') == $user->email) ||
|
||||
($request->input('password') == $user->first_name) ||
|
||||
($request->input('password') == $user->last_name))
|
||||
{
|
||||
$validator->errors()->add('password', trans('validation.disallow_same_pwd_as_user_fields'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
@@ -10,8 +10,7 @@ use App\Models\User;
|
||||
use App\Notifications\RequestAssetCancelation;
|
||||
use App\Notifications\RequestAssetNotification;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Input;
|
||||
use Redirect;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
/**
|
||||
* This controller handles all actions related to the ability for users
|
||||
|
||||
@@ -106,7 +106,7 @@ class SecurityHeaders
|
||||
$csp_policy[] = "connect-src 'self'";
|
||||
$csp_policy[] = "object-src 'none'";
|
||||
$csp_policy[] = "font-src 'self' data:";
|
||||
$csp_policy[] = "img-src 'self' data: gravatar.com maps.google.com maps.gstatic.com *.googleapis.com";
|
||||
$csp_policy[] = "img-src 'self' data: ".config('app.url')." https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com";
|
||||
$csp_policy = join(';', $csp_policy);
|
||||
$response->headers->set('Content-Security-Policy', $csp_policy);
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ class SaveUserRequest extends FormRequest
|
||||
{
|
||||
|
||||
$rules = [
|
||||
'manager_id' => "nullable|exists:users,id|different:users.id"
|
||||
'manager_id' => "nullable|exists:users,id"
|
||||
];
|
||||
|
||||
switch($this->method())
|
||||
|
||||
@@ -68,8 +68,13 @@ class AccessoriesTransformer
|
||||
|
||||
|
||||
$array = array();
|
||||
|
||||
|
||||
foreach ($accessory_users as $user) {
|
||||
\Log::debug(print_r($user->pivot, true));
|
||||
\Log::debug(print_r($user->pivot, true));
|
||||
$array[] = [
|
||||
|
||||
'assigned_pivot_id' => $user->pivot->id,
|
||||
'id' => (int) $user->id,
|
||||
'username' => e($user->username),
|
||||
@@ -77,7 +82,8 @@ class AccessoriesTransformer
|
||||
'first_name'=> e($user->first_name),
|
||||
'last_name'=> e($user->last_name),
|
||||
'employee_number' => e($user->employee_num),
|
||||
'checkout_notes' => $accessory->lastCheckoutArray[0]['note'],
|
||||
'checkout_notes' => $user->pivot->note,
|
||||
'last_checkout' => Helper::getFormattedDateObject($user->pivot->created_at, 'datetime'),
|
||||
'type' => 'user',
|
||||
'available_actions' => ['checkin' => true]
|
||||
];
|
||||
|
||||
@@ -54,7 +54,6 @@ class UsersTransformer
|
||||
'activated' => ($user->activated =='1') ? true : false,
|
||||
'two_factor_activated' => ($user->two_factor_active()) ? true : false,
|
||||
'two_factor_enrolled' => ($user->two_factor_active_and_enrolled()) ? true : false,
|
||||
|
||||
'assets_count' => (int) $user->assets_count,
|
||||
'licenses_count' => (int) $user->licenses_count,
|
||||
'accessories_count' => (int) $user->accessories_count,
|
||||
@@ -63,6 +62,7 @@ class UsersTransformer
|
||||
'created_at' => Helper::getFormattedDateObject($user->created_at, 'datetime'),
|
||||
'updated_at' => Helper::getFormattedDateObject($user->updated_at, 'datetime'),
|
||||
'last_login' => Helper::getFormattedDateObject($user->last_login, 'datetime'),
|
||||
'deleted_at' => ($user->deleted_at) ? Helper::getFormattedDateObject($user->deleted_at, 'datetime') : null,
|
||||
];
|
||||
|
||||
$permissions_array['available_actions'] = [
|
||||
|
||||
@@ -234,7 +234,7 @@ class Accessory extends SnipeModel
|
||||
|
||||
public function users()
|
||||
{
|
||||
return $this->belongsToMany('\App\Models\User', 'accessories_users', 'accessory_id', 'assigned_to')->withPivot('id')->withTrashed();
|
||||
return $this->belongsToMany('\App\Models\User', 'accessories_users', 'accessory_id', 'assigned_to')->withPivot('id', 'created_at', 'note')->withTrashed();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -120,9 +120,6 @@ class Setting extends Model
|
||||
try {
|
||||
$usercount = User::withTrashed()->count();
|
||||
$settingsCount = self::count();
|
||||
\Log::debug('User table and settings table exist and have records.');
|
||||
\Log::debug('Settings: '.$settingsCount );
|
||||
\Log::debug('Users: '.$usercount );
|
||||
return $usercount > 0 && $settingsCount > 0;
|
||||
} catch (\Throwable $th) {
|
||||
\Log::debug('User table and settings table DO NOT exist or DO NOT have records');
|
||||
|
||||
+8
-4
@@ -26,10 +26,13 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo
|
||||
use UniqueUndeletedTrait;
|
||||
use Notifiable;
|
||||
use Presentable;
|
||||
use Searchable;
|
||||
|
||||
protected $dates = ['deleted_at'];
|
||||
protected $hidden = ['password','remember_token','permissions','reset_password_code','persist_code'];
|
||||
protected $table = 'users';
|
||||
protected $injectUniqueIdentifier = true;
|
||||
|
||||
protected $fillable = [
|
||||
'activated',
|
||||
'address',
|
||||
@@ -74,11 +77,10 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo
|
||||
'password' => 'required|min:8',
|
||||
'locale' => 'max:10|nullable',
|
||||
'website' => 'url|nullable',
|
||||
'manager_id' => 'nullable|exists:users,id|different:users.id',
|
||||
'manager_id' => 'nullable|exists:users,id|cant_manage_self',
|
||||
'location_id' => 'exists:locations,id|nullable',
|
||||
];
|
||||
|
||||
use Searchable;
|
||||
|
||||
/**
|
||||
* The attributes that should be included when searching the model.
|
||||
@@ -107,7 +109,8 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo
|
||||
'groups' => ['name'],
|
||||
'company' => ['name'],
|
||||
'manager' => ['first_name', 'last_name', 'username']
|
||||
];
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* Check user permissions
|
||||
@@ -295,7 +298,8 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo
|
||||
*/
|
||||
public function accessories()
|
||||
{
|
||||
return $this->belongsToMany('\App\Models\Accessory', 'accessories_users', 'assigned_to', 'accessory_id')->withPivot('id')->withTrashed();
|
||||
return $this->belongsToMany('\App\Models\Accessory', 'accessories_users', 'assigned_to', 'accessory_id')
|
||||
->withPivot('id', 'created_at', 'note')->withTrashed();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -62,11 +62,9 @@ class RequestAssetNotification extends Notification
|
||||
$notifyBy = [];
|
||||
|
||||
if (Setting::getSettings()->slack_endpoint!='') {
|
||||
\Log::debug('use slack');
|
||||
$notifyBy[] = 'slack';
|
||||
}
|
||||
|
||||
|
||||
$notifyBy[] = 'mail';
|
||||
|
||||
return $notifyBy;
|
||||
|
||||
@@ -87,8 +87,9 @@ class AuthServiceProvider extends ServiceProvider
|
||||
|
||||
$this->registerPolicies();
|
||||
Passport::routes();
|
||||
Passport::tokensExpireIn(Carbon::now()->addYears(20));
|
||||
Passport::refreshTokensExpireIn(Carbon::now()->addYears(20));
|
||||
Passport::tokensExpireIn(Carbon::now()->addYears(config('passport.expiration_years')));
|
||||
Passport::refreshTokensExpireIn(Carbon::now()->addYears(config('passport.expiration_years')));
|
||||
Passport::personalAccessTokensExpireIn(Carbon::now()->addYears(config('passport.expiration_years')));
|
||||
Passport::withCookieSerialization();
|
||||
|
||||
|
||||
|
||||
@@ -91,6 +91,42 @@ class ValidationServiceProvider extends ServiceProvider
|
||||
});
|
||||
|
||||
|
||||
// This ONLY works for create/update user forms, since the Update Profile Password form doesn't
|
||||
// include any of these additional validator fields
|
||||
Validator::extend('disallow_same_pwd_as_user_fields', function ($attribute, $value, $parameters, $validator) {
|
||||
|
||||
$data = $validator->getData();
|
||||
|
||||
if (array_key_exists("username", $data)) {
|
||||
if ($data['username'] == $data['password']) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (array_key_exists("email", $data)) {
|
||||
if ($data['email'] == $data['password']) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (array_key_exists("first_name", $data)) {
|
||||
if ($data['first_name'] == $data['password']) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (array_key_exists("last_name", $data)) {
|
||||
if ($data['last_name'] == $data['password']) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
|
||||
|
||||
});
|
||||
|
||||
Validator::extend('letters', function ($attribute, $value, $parameters) {
|
||||
return preg_match('/\pL/', $value);
|
||||
});
|
||||
@@ -107,6 +143,27 @@ class ValidationServiceProvider extends ServiceProvider
|
||||
return preg_match('/\p{Z}|\p{S}|\p{P}/', $value);
|
||||
});
|
||||
|
||||
Validator::extend('cant_manage_self', function ($attribute, $value, $parameters, $validator) {
|
||||
// $value is the actual *value* of the thing that's being validated
|
||||
// $attribute is the name of the field that the validation is running on - probably manager_id in our case
|
||||
// $parameters are the optional parameters - an array for everything, split on commas. But we don't take any params here.
|
||||
// $validator gives us proper access to the rest of the actual data
|
||||
$data = $validator->getData();
|
||||
|
||||
if(array_key_exists("id", $data)) {
|
||||
if ($value && $value == $data['id']) {
|
||||
// if you definitely have an ID - you're saving an existing user - and your ID matches your manager's ID - fail.
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
// no 'id' key to compare against (probably because this is a new user)
|
||||
// so it automatically passes this validation
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
+27
-4
@@ -23,10 +23,33 @@ use Illuminate\Support\Facades\Log;
|
||||
*/
|
||||
class LdapAd extends LdapAdConfiguration
|
||||
{
|
||||
/**
|
||||
* @see https://wdmsb.wordpress.com/2014/12/03/descriptions-of-active-directory-useraccountcontrol-value/
|
||||
*/
|
||||
const AD_USER_ACCOUNT_CONTROL_FLAGS = ['512', '544', '66048', '66080', '262656', '262688', '328192', '328224'];
|
||||
/* The following is _probably_ the correct logic, but we can't use it because
|
||||
some users may have been dependent upon the previous behavior, and this
|
||||
could cause additional access to be available to users they don't want
|
||||
to allow to log in.
|
||||
$useraccountcontrol = $results[$i]['useraccountcontrol'][0];
|
||||
if(
|
||||
// based on MS docs at: https://support.microsoft.com/en-us/help/305144/how-to-use-useraccountcontrol-to-manipulate-user-account-properties
|
||||
($useraccountcontrol & 0x200) && // is a NORMAL_ACCOUNT
|
||||
!($useraccountcontrol & 0x02) && // *and* _not_ ACCOUNTDISABLE
|
||||
!($useraccountcontrol & 0x10) // *and* _not_ LOCKOUT
|
||||
) {
|
||||
$user->activated = 1;
|
||||
} else {
|
||||
$user->activated = 0;
|
||||
} */
|
||||
const AD_USER_ACCOUNT_CONTROL_FLAGS = [
|
||||
'512', // 0x200 NORMAL_ACCOUNT
|
||||
'544', // 0x220 NORMAL_ACCOUNT, PASSWD_NOTREQD
|
||||
'66048', // 0x10200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD
|
||||
'66080', // 0x10220 NORMAL_ACCOUNT, PASSWD_NOTREQD, DONT_EXPIRE_PASSWORD
|
||||
'262656', // 0x40200 NORMAL_ACCOUNT, SMARTCARD_REQUIRED
|
||||
'262688', // 0x40220 NORMAL_ACCOUNT, PASSWD_NOTREQD, SMARTCARD_REQUIRED
|
||||
'328192', // 0x50200 NORMAL_ACCOUNT, SMARTCARD_REQUIRED, DONT_EXPIRE_PASSWORD
|
||||
'328224', // 0x50220 NORMAL_ACCOUNT, PASSWD_NOT_REQD, SMARTCARD_REQUIRED, DONT_EXPIRE_PASSWORD
|
||||
'4260352',// 0x410200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD, DONT_REQ_PREAUTH
|
||||
'1049088',// 0x100200 NORMAL_ACCOUNT, NOT_DELEGATED
|
||||
];
|
||||
|
||||
/**
|
||||
* The LDAP results per page.
|
||||
|
||||
+2
-1
@@ -102,7 +102,7 @@ return [
|
||||
'provider' => 'users',
|
||||
'email' => 'auth.emails.password',
|
||||
'table' => 'password_resets',
|
||||
'expire' => env('LOGIN_LOCKOUT_DURATION', 60),
|
||||
'expire' => env('RESET_PASSWORD_LINK_EXPIRES', 900),
|
||||
'throttle' => env('LOGIN_MAX_ATTEMPTS', 60),
|
||||
],
|
||||
],
|
||||
@@ -120,4 +120,5 @@ return [
|
||||
|
||||
'password_timeout' => 10800,
|
||||
|
||||
|
||||
];
|
||||
|
||||
+28
-46
@@ -48,34 +48,21 @@ return [
|
||||
*/
|
||||
'exclude' => [
|
||||
base_path('vendor'),
|
||||
base_path('config'),
|
||||
base_path('node_modules'),
|
||||
],
|
||||
|
||||
/*
|
||||
* Determines if symlinks should be followed.
|
||||
*/
|
||||
'followLinks' => false,
|
||||
'follow_links' => false,
|
||||
|
||||
/*
|
||||
* Determines if it should avoid unreadable folders.
|
||||
*/
|
||||
'ignore_unreadable_directories' => false,
|
||||
],
|
||||
|
||||
/*
|
||||
* The names of the connections to the databases that should be backed up
|
||||
* MySQL, PostgreSQL, SQLite and Mongo databases are supported.
|
||||
*
|
||||
* The content of the database dump may be customized for each connection
|
||||
* by adding a 'dump' key to the connection settings in config/database.php.
|
||||
* E.g.
|
||||
* 'mysql' => [
|
||||
* ...
|
||||
* 'dump' => [
|
||||
* 'excludeTables' => [
|
||||
* 'table_to_exclude_from_backup',
|
||||
* 'another_table_to_exclude'
|
||||
* ]
|
||||
* ]
|
||||
* ],
|
||||
*
|
||||
* For a complete list of available customization options, see https://github.com/spatie/db-dumper
|
||||
*/
|
||||
'databases' => [
|
||||
env('DB_CONNECTION', 'mysql'),
|
||||
],
|
||||
@@ -117,7 +104,7 @@ return [
|
||||
|
||||
/*
|
||||
* You can get notified when specific events occur. Out of the box you can use 'mail' and 'slack'.
|
||||
* For Slack you need to install guzzlehttp/guzzle.
|
||||
* For Slack you need to install guzzlehttp/guzzle and laravel/slack-notification-channel.
|
||||
*
|
||||
* You can also use your own notification classes, just make sure the class is named after one of
|
||||
* the `Spatie\Backup\Events` classes.
|
||||
@@ -125,12 +112,12 @@ return [
|
||||
'notifications' => [
|
||||
|
||||
'notifications' => [
|
||||
\Spatie\Backup\Notifications\Notifications\BackupHasFailed::class => ['mail'],
|
||||
\Spatie\Backup\Notifications\Notifications\UnhealthyBackupWasFound::class => ['mail'],
|
||||
\Spatie\Backup\Notifications\Notifications\CleanupHasFailed::class => ['mail'],
|
||||
\Spatie\Backup\Notifications\Notifications\BackupWasSuccessful::class => ['mail'],
|
||||
\Spatie\Backup\Notifications\Notifications\HealthyBackupWasFound::class => ['mail'],
|
||||
\Spatie\Backup\Notifications\Notifications\CleanupWasSuccessful::class => ['mail'],
|
||||
\Spatie\Backup\Notifications\Notifications\BackupHasFailed::class => [env('MAIL_BACKUP_NOTIFICATION_DRIVER', null)],
|
||||
\Spatie\Backup\Notifications\Notifications\UnhealthyBackupWasFound::class => [env('MAIL_BACKUP_NOTIFICATION_DRIVER', null)],
|
||||
\Spatie\Backup\Notifications\Notifications\CleanupHasFailed::class => [env('MAIL_BACKUP_NOTIFICATION_DRIVER', null)],
|
||||
\Spatie\Backup\Notifications\Notifications\BackupWasSuccessful::class => [env('MAIL_BACKUP_NOTIFICATION_DRIVER', null)],
|
||||
\Spatie\Backup\Notifications\Notifications\HealthyBackupWasFound::class => [env('MAIL_BACKUP_NOTIFICATION_DRIVER', null)],
|
||||
\Spatie\Backup\Notifications\Notifications\CleanupWasSuccessful::class => [env('MAIL_BACKUP_NOTIFICATION_DRIVER', null)],
|
||||
],
|
||||
|
||||
/*
|
||||
@@ -163,22 +150,16 @@ return [
|
||||
* If a backup does not meet the specified requirements the
|
||||
* UnHealthyBackupWasFound event will be fired.
|
||||
*/
|
||||
'monitorBackups' => [
|
||||
'monitor_backups' => [
|
||||
[
|
||||
'name' => config('app.name'),
|
||||
'disks' => [env('PRIVATE_FILESYSTEM_DISK', 'local')],
|
||||
'newestBackupsShouldNotBeOlderThanDays' => 1,
|
||||
'storageUsedMayNotBeHigherThanMegabytes' => 5000,
|
||||
'health_checks' => [
|
||||
\Spatie\Backup\Tasks\Monitor\HealthChecks\MaximumAgeInDays::class => 1,
|
||||
\Spatie\Backup\Tasks\Monitor\HealthChecks\MaximumStorageInMegabytes::class => 5000,
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
[
|
||||
'name' => 'name of the second app',
|
||||
'disks' => ['local', 's3'],
|
||||
'newestBackupsShouldNotBeOlderThanDays' => 1,
|
||||
'storageUsedMayNotBeHigherThanMegabytes' => 5000,
|
||||
],
|
||||
*/
|
||||
],
|
||||
|
||||
'cleanup' => [
|
||||
@@ -193,38 +174,39 @@ return [
|
||||
*/
|
||||
'strategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
|
||||
|
||||
'defaultStrategy' => [
|
||||
'default_strategy' => [
|
||||
|
||||
/*
|
||||
* The number of days for which backups must be kept.
|
||||
*/
|
||||
'keepAllBackupsForDays' => 7,
|
||||
'keep_all_backups_for_days' => 7,
|
||||
|
||||
/*
|
||||
* The number of days for which daily backups must be kept.
|
||||
*/
|
||||
'keepDailyBackupsForDays' => 16,
|
||||
'keep_daily_backups_for_days' => 16,
|
||||
|
||||
/*
|
||||
* The number of weeks for which one weekly backup must be kept.
|
||||
*/
|
||||
'keepWeeklyBackupsForWeeks' => 8,
|
||||
'keep_weekly_backups_for_weeks' => 8,
|
||||
|
||||
/*
|
||||
* The number of months for which one monthly backup must be kept.
|
||||
*/
|
||||
'keepMonthlyBackupsForMonths' => 3,
|
||||
'keep_monthly_backups_for_months' => 4,
|
||||
|
||||
/*
|
||||
* The number of years for which one yearly backup must be kept.
|
||||
*/
|
||||
'keepYearlyBackupsForYears' => 2,
|
||||
'keep_yearly_backups_for_years' => 2,
|
||||
|
||||
/*
|
||||
* After cleaning up the backups remove the oldest backup until
|
||||
* this amount of megabytes has been reached.
|
||||
*/
|
||||
'deleteOldestBackupsWhenUsingMoreMegabytesThan' => 5000,
|
||||
'delete_oldest_backups_when_using_more_megabytes_than' => 5000,
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
];
|
||||
@@ -12,4 +12,5 @@ return [
|
||||
*/
|
||||
'private_key' => env('PASSPORT_PRIVATE_KEY'),
|
||||
'public_key' => env('PASSPORT_PUBLIC_KEY'),
|
||||
'expiration_years' => env('API_TOKEN_EXPIRATION_YEARS', 20),
|
||||
];
|
||||
+5
-5
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
return array (
|
||||
'app_version' => 'v5.0.2',
|
||||
'full_app_version' => 'v5.0.2 - build 5414-gc3e8f6406',
|
||||
'build_version' => '5414',
|
||||
'app_version' => 'v5.0.6',
|
||||
'full_app_version' => 'v5.0.6-5526-g8a7cd8764',
|
||||
'build_version' => '5526',
|
||||
'prerelease_version' => '',
|
||||
'hash_version' => 'gc3e8f6406',
|
||||
'full_hash' => 'v5.0.1-19-gc3e8f6406',
|
||||
'hash_version' => 'g8a7cd8764',
|
||||
'full_hash' => 'v5.0.6-5526-g8a7cd8764',
|
||||
'branch' => 'master',
|
||||
);
|
||||
+8
-3
@@ -1,3 +1,8 @@
|
||||
files:
|
||||
- source: /resources/lang/en/**/*.php
|
||||
translation: '**/%original_file_name%'
|
||||
"commit_message": "Fixed: New translations %original_file_name% from Crowdin"
|
||||
|
||||
"files": [
|
||||
{
|
||||
"source" : "/resources/lang/en/**/*.php",
|
||||
"translation" : "/resources/lang/%locale%/%original_file_name%"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use App\Models\Accessory;
|
||||
use App\Models\Actionlog;
|
||||
|
||||
class MoveAccessoryCheckoutNoteToJoinTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('accessories_users', function (Blueprint $table) {
|
||||
$table->string('note')->nullable(true)->default(null);
|
||||
});
|
||||
|
||||
// Loop through the checked out accessories, find their related action_log entry, and copy over the note
|
||||
// to the newly created note field
|
||||
|
||||
$accessories = Accessory::get();
|
||||
$count = 0;
|
||||
\Log::debug('Accessory Count: '. $accessories->count());
|
||||
|
||||
|
||||
// Loop through all of the accessories
|
||||
foreach ($accessories as $accessory) {
|
||||
$count++;
|
||||
|
||||
\Log::debug('Querying join logs');
|
||||
$join_logs = DB::table('accessories_users')->get();
|
||||
|
||||
// Loop through the accessories_users records
|
||||
foreach ($join_logs as $join_log) {
|
||||
\Log::debug($join_logs->count().' join log records');
|
||||
\Log::debug('Looking for accessories_users that match '. $join_log->created_at);
|
||||
|
||||
// Get the records from action_logs so we can copy the notes over to the new notes field
|
||||
// on the accessories_users table
|
||||
$action_log_entries = Actionlog::where('created_at', '=',$join_log->created_at)
|
||||
->where('target_id', '=',$join_log->assigned_to)
|
||||
->where('item_id', '=',$accessory->id)
|
||||
->where('target_type', '=','App\\Models\\User')
|
||||
->where('action_type', '=', 'checkout')
|
||||
->orderBy('created_at', 'DESC')->get();
|
||||
|
||||
\Log::debug($action_log_entries->count().' matching entries in the action_logs table');
|
||||
\Log::debug('Looking for action_logs that match '. $join_log->created_at);
|
||||
|
||||
foreach ($action_log_entries as $action_log_entry) {
|
||||
|
||||
\Log::debug('Checkout date in asset log: '.$action_log_entry->created_at.' against accessories_users: '.$join_log->created_at);
|
||||
\Log::debug('Action log: '.$action_log_entry->created_at);
|
||||
\Log::debug('Join log: '.$join_log->created_at);
|
||||
|
||||
if ($action_log_entry->created_at == $join_log->created_at) {
|
||||
DB::table('accessories_users')
|
||||
->where('id', $join_log->id)
|
||||
->update(['note' => $action_log_entry->note]);
|
||||
} else {
|
||||
\Log::debug('No match');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('accessories_users', function (Blueprint $table) {
|
||||
$table->dropColumn('note');
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use App\Models\User;
|
||||
use App\Models\Asset;
|
||||
|
||||
class FixZeroValuesForLocations extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
App\Models\Asset::where('location_id', '=', '0')
|
||||
->update(['location_id' => null]);
|
||||
|
||||
App\Models\Asset::where('rtd_location_id', '=', '0')
|
||||
->update(['rtd_location_id' => null]);
|
||||
|
||||
App\Models\User::where('location_id', '=', '0')
|
||||
->update(['location_id' => null]);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
Generated
+35
-15
@@ -4170,7 +4170,8 @@
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"aproba": {
|
||||
"version": "1.2.0",
|
||||
@@ -4191,12 +4192,14 @@
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
@@ -4211,17 +4214,20 @@
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
@@ -4338,7 +4344,8 @@
|
||||
"inherits": {
|
||||
"version": "2.0.4",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.5",
|
||||
@@ -4350,6 +4357,7 @@
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
}
|
||||
@@ -4364,6 +4372,7 @@
|
||||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
@@ -4371,12 +4380,14 @@
|
||||
"minimist": {
|
||||
"version": "1.2.5",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.9.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.2",
|
||||
"yallist": "^3.0.0"
|
||||
@@ -4395,6 +4406,7 @@
|
||||
"version": "0.5.3",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.5"
|
||||
}
|
||||
@@ -4456,7 +4468,8 @@
|
||||
"npm-normalize-package-bin": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"npm-packlist": {
|
||||
"version": "1.4.8",
|
||||
@@ -4484,7 +4497,8 @@
|
||||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
@@ -4496,6 +4510,7 @@
|
||||
"version": "1.4.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
@@ -4573,7 +4588,8 @@
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
@@ -4609,6 +4625,7 @@
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
@@ -4628,6 +4645,7 @@
|
||||
"version": "3.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^2.0.0"
|
||||
}
|
||||
@@ -4671,12 +4689,14 @@
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"yallist": {
|
||||
"version": "3.1.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -5826,7 +5846,8 @@
|
||||
},
|
||||
"js-yaml": {
|
||||
"version": "3.7.0",
|
||||
"resolved": "",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
|
||||
"integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"argparse": "^1.0.7",
|
||||
@@ -6035,7 +6056,6 @@
|
||||
"integrity": "sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw==",
|
||||
"requires": {
|
||||
"canvg": "1.5.3",
|
||||
"file-saver": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
|
||||
"html2canvas": "1.0.0-alpha.12",
|
||||
"omggif": "1.0.7",
|
||||
"promise-polyfill": "8.1.0",
|
||||
@@ -6044,7 +6064,7 @@
|
||||
"dependencies": {
|
||||
"file-saver": {
|
||||
"version": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
|
||||
"from": "github:eligrey/FileSaver.js#1.3.8"
|
||||
"from": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+135
@@ -0,0 +1,135 @@
|
||||
|
||||
#signature-pad {
|
||||
padding-top: 250px;
|
||||
margin: auto;
|
||||
}
|
||||
.m-signature-pad {
|
||||
|
||||
position: relative;
|
||||
font-size: 10px;
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
border: 1px solid #e8e8e8;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.08) inset;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.m-signature-pad:before, .m-signature-pad:after {
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
content: "";
|
||||
width: 40%;
|
||||
height: 10px;
|
||||
left: 20px;
|
||||
bottom: 10px;
|
||||
background: transparent;
|
||||
-webkit-transform: skew(-3deg) rotate(-3deg);
|
||||
-moz-transform: skew(-3deg) rotate(-3deg);
|
||||
-ms-transform: skew(-3deg) rotate(-3deg);
|
||||
-o-transform: skew(-3deg) rotate(-3deg);
|
||||
transform: skew(-3deg) rotate(-3deg);
|
||||
box-shadow: 0 8px 12px rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
.m-signature-pad:after {
|
||||
left: auto;
|
||||
right: 20px;
|
||||
-webkit-transform: skew(3deg) rotate(3deg);
|
||||
-moz-transform: skew(3deg) rotate(3deg);
|
||||
-ms-transform: skew(3deg) rotate(3deg);
|
||||
-o-transform: skew(3deg) rotate(3deg);
|
||||
transform: skew(3deg) rotate(3deg);
|
||||
}
|
||||
|
||||
.m-signature-pad--body {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
bottom: 60px;
|
||||
border: 1px solid #f4f4f4;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.m-signature-pad--body
|
||||
canvas {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.02) inset;
|
||||
}
|
||||
|
||||
.m-signature-pad--footer {
|
||||
position: absolute;
|
||||
left: 20px;
|
||||
right: 20px;
|
||||
bottom: 20px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.m-signature-pad--footer
|
||||
.description {
|
||||
color: #C3C3C3;
|
||||
text-align: center;
|
||||
font-size: 1.2em;
|
||||
margin-top: 1.8em;
|
||||
}
|
||||
|
||||
.m-signature-pad--footer
|
||||
.button {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.m-signature-pad--footer
|
||||
.button.clear {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.m-signature-pad--footer
|
||||
.button.save {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1024px) {
|
||||
.m-signature-pad {
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
width: auto;
|
||||
height: auto;
|
||||
min-width: 250px;
|
||||
min-height: 140px;
|
||||
margin: 5%;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media screen and (min-device-width: 768px) and (max-device-width: 1024px) {
|
||||
.m-signature-pad {
|
||||
margin: 10%;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-height: 320px) {
|
||||
.m-signature-pad--body {
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 32px;
|
||||
}
|
||||
.m-signature-pad--footer {
|
||||
left: 20px;
|
||||
right: 20px;
|
||||
bottom: 4px;
|
||||
height: 28px;
|
||||
}
|
||||
.m-signature-pad--footer
|
||||
.description {
|
||||
font-size: 1em;
|
||||
margin-top: 1em;
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
Vendored
+26
-26
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"/js/build/app.js": "/js/build/app.js?id=fc54bb0c7977c14f519b",
|
||||
"/js/build/app.js": "/js/build/app.js?id=df0e9d334d5c0b0eb048",
|
||||
"/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=59413334823616b81341",
|
||||
"/css/build/app.css": "/css/build/app.css?id=032fd8c3fce99c7fd862",
|
||||
"/css/build/overrides.css": "/css/build/overrides.css?id=0b4aefd7ef0c117ef23a",
|
||||
@@ -7,7 +7,7 @@
|
||||
"/css/dist/skins/skin-red.css": "/css/dist/skins/skin-red.css?id=747948e5f269f64047f7",
|
||||
"/css/dist/skins/skin-contrast.css": "/css/dist/skins/skin-contrast.css?id=d7996d850e8bcdc4e167",
|
||||
"/css/dist/skins/skin-green.css": "/css/dist/skins/skin-green.css?id=eb25d2ec49f730d09431",
|
||||
"/css/dist/skins/skin-green-dark.css": "/css/dist/skins/skin-green-dark.css?id=0cfa39cacd9c83b4f53b",
|
||||
"/css/dist/skins/skin-green-dark.css": "/css/dist/skins/skin-green-dark.css?id=8dfcf59850a3f5775b8c",
|
||||
"/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=35602987835e5d50d162",
|
||||
"/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=6bd9c2420a41eaf96f0b",
|
||||
"/css/dist/skins/skin-red-dark.css": "/css/dist/skins/skin-red-dark.css?id=60de5bc2660c35544c4d",
|
||||
@@ -19,9 +19,9 @@
|
||||
"/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=71c178700d68294e3413",
|
||||
"/css/dist/skins/skin-orange.css": "/css/dist/skins/skin-orange.css?id=b4fc4a74e1f6367dc3e2",
|
||||
"/css/dist/all.css": "/css/dist/all.css?id=6e3b75006f2b19d69f37",
|
||||
"/css/blue.png": "/css/blue.png?id=e83a6c29e04fe851f212",
|
||||
"/css/blue@2x.png": "/css/blue@2x.png?id=51135dd4d24f88f5de0b",
|
||||
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=0cfa39cacd9c83b4f53b",
|
||||
"/css/blue.png": "/css/blue.png?id=4c85d6a97173123bd14a",
|
||||
"/css/blue@2x.png": "/css/blue@2x.png?id=62c67c6a822439e8a4ac",
|
||||
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=8dfcf59850a3f5775b8c",
|
||||
"/css/dist/skins/skin-black-dark.min.css": "/css/dist/skins/skin-black-dark.min.css?id=6bd9c2420a41eaf96f0b",
|
||||
"/css/dist/skins/skin-blue-dark.min.css": "/css/dist/skins/skin-blue-dark.min.css?id=2f665cf40d7348b3f94c",
|
||||
"/css/dist/skins/skin-yellow-dark.min.css": "/css/dist/skins/skin-yellow-dark.min.css?id=4a19f5ae861f98f40bab",
|
||||
@@ -34,5 +34,5 @@
|
||||
"/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=1e77fde04b3f42432581",
|
||||
"/js/build/vendor.js": "/js/build/vendor.js?id=aff75d5aad5e7b429723",
|
||||
"/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=58d95c93430f2ae33392",
|
||||
"/js/dist/all.js": "/js/dist/all.js?id=0a2c2c95ab18fa16faa1"
|
||||
"/js/dist/all.js": "/js/dist/all.js?id=5dc677546cc6d86e605d"
|
||||
}
|
||||
|
||||
@@ -31,8 +31,10 @@
|
||||
<table class="table table-borderless m-b-none" v-if="tokens.length > 0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-md-9">Name</th>
|
||||
<th class="col-md-3"><span class="sr-only">Delete</span></th>
|
||||
<th class="col-md-3">Name</th>
|
||||
<th class="col-md-2">Created</th>
|
||||
<th class="col-md-2">Expires</th>
|
||||
<th class="col-md-2"><span class="sr-only">Delete</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -43,6 +45,14 @@
|
||||
{{ token.name }}
|
||||
</td>
|
||||
|
||||
<td style="vertical-align: middle;">
|
||||
{{ token.created_at }}
|
||||
</td>
|
||||
|
||||
<td style="vertical-align: middle;">
|
||||
{{ token.expires_at }}
|
||||
</td>
|
||||
|
||||
<!-- Delete Button -->
|
||||
<td style="vertical-align: middle;" class="text-right">
|
||||
<a class="action-link btn btn-danger btn-sm" @click="revoke(token)">
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_accessories_title' => 'Oor Toebehore',
|
||||
'about_accessories_text' => 'Toebehore is enigiets wat jy aan gebruikers uitreik, maar dit het nie \'n reeksnommer (of jy gee nie om om hulle unieke te volg nie). Byvoorbeeld, rekenaarmuise of sleutelborde.',
|
||||
'accessory_category' => 'Toebehore Kategorie',
|
||||
'accessory_name' => 'Toebehore Naam',
|
||||
'checkout' => 'Checkout Accessory',
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
return array(
|
||||
|
||||
'does_not_exist' => 'Die accessoire bestaan nie.',
|
||||
'does_not_exist' => 'The accessory [:id] does not exist.',
|
||||
'assoc_users' => 'Hierdie bykomstige het tans: tel items wat uitgekontroleer is aan gebruikers. Kontroleer asseblief die bykomstighede en en probeer weer.',
|
||||
|
||||
'create' => array(
|
||||
|
||||
@@ -7,5 +7,8 @@
|
||||
'view' => 'Bekyk Bate Onderhoud Besonderhede',
|
||||
'repair' => 'herstel',
|
||||
'maintenance' => 'onderhoud',
|
||||
'upgrade' => 'opgradering'
|
||||
'upgrade' => 'opgradering',
|
||||
'calibration' => 'Calibration',
|
||||
'software_support' => 'Software Support',
|
||||
'hardware_support' => 'Hardware Support',
|
||||
];
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_categories_title' => 'Oor Kategorieë',
|
||||
'about_categories' => 'Kategorieë help jou om jou items te organiseer. Sommige voorbeeldkategorieë kan wees "Desktops", "Laptops", "Mobile Phones", "Tablets", ensovoorts, maar jy kan kategorieë gebruik wat vir jou sin maak.',
|
||||
'asset_categories' => 'Bate kategorieë',
|
||||
'category_name' => 'Kategorie Naam',
|
||||
'checkin_email' => 'Stuur e-pos aan gebruiker by aanmelding/afmelding.',
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
<?php
|
||||
return [
|
||||
'about_companies_title' => 'Oor Maatskappye',
|
||||
'about_companies_text' => 'Maatskappye kan gebruik word as \'n eenvoudige identifikasie veld, of kan gebruik word om sigbaarheid van bates, gebruikers, ens beperk as volle maatskappy ondersteuning geaktiveer is in jou Admin instellings.',
|
||||
'select_company' => 'Kies Maatskappy',
|
||||
];
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_components_title' => 'Oor komponente',
|
||||
'about_components_text' => 'Komponente is items wat deel van \'n bate is, byvoorbeeld HDD, RAM, ens.',
|
||||
'component_name' => 'Komponentnaam',
|
||||
'checkin' => 'Checkin-komponent',
|
||||
'checkout' => 'Afhandelingskomponent',
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_consumables_title' => 'Oor Verbruiksgoedere',
|
||||
'about_consumables_text' => 'Verbruiksgoedere word enigiets aangekoop wat oor tyd gebruik sal word. Byvoorbeeld, drukker ink of kopieermapier.',
|
||||
'checkout' => 'Afhandeling Verbruiker na Gebruiker',
|
||||
'consumable_name' => 'Verbruikbare Naam',
|
||||
'create' => 'Skep Verbruik',
|
||||
|
||||
@@ -19,6 +19,7 @@ return array(
|
||||
'status' => 'status',
|
||||
'title' => 'bate',
|
||||
'image' => 'Toestelbeeld',
|
||||
'days_without_acceptance' => 'Dae sonder aanvaarding'
|
||||
'days_without_acceptance' => 'Dae sonder aanvaarding',
|
||||
'monthly_depreciation' => 'Monthly Depreciation'
|
||||
|
||||
);
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_kits_title' => '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. ',
|
||||
|
||||
);
|
||||
@@ -8,6 +8,7 @@ return array(
|
||||
'owner_doesnt_match_asset' => 'Die bate wat u met hierdie lisensie probeer assosieer, is in besit van ander as die persoon wat in die opdrag toegeken is.',
|
||||
'assoc_users' => 'Hierdie lisensie word tans na \'n gebruiker nagegaan en kan nie uitgevee word nie. Gaan asseblief die lisensie eers in, en probeer dan weer uitvee.',
|
||||
'select_asset_or_person' => 'Jy moet \'n bate of \'n gebruiker kies, maar nie albei nie.',
|
||||
'not_found' => 'License not found',
|
||||
|
||||
|
||||
'create' => array(
|
||||
|
||||
@@ -4,50 +4,60 @@ return array(
|
||||
'ad' => 'Aktiewe gids',
|
||||
'ad_domain' => 'Active Directory-domein',
|
||||
'ad_domain_help' => 'Dit is soms dieselfde as jou e-pos domein, maar nie altyd nie.',
|
||||
'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.',
|
||||
'is_ad' => 'Dit is \'n Active Directory-bediener',
|
||||
'alert_email' => 'Stuur kennisgewings aan',
|
||||
'alerts_enabled' => 'Alerts aangeskakel',
|
||||
'alert_interval' => 'Uitgaande Alert Drempel (in dae)',
|
||||
'alert_inv_threshold' => 'Voorraadwaarskuwingsdrempel',
|
||||
'asset_ids' => 'Bate ID\'s',
|
||||
'audit_interval' => 'Ouditinterval',
|
||||
'alert_email' => 'Stuur kennisgewings aan',
|
||||
'alerts_enabled' => 'Alerts aangeskakel',
|
||||
'alert_interval' => 'Uitgaande Alert Drempel (in dae)',
|
||||
'alert_inv_threshold' => 'Voorraadwaarskuwingsdrempel',
|
||||
'asset_ids' => 'Bate ID\'s',
|
||||
'audit_interval' => 'Ouditinterval',
|
||||
'audit_interval_help' => 'As u gereeld u bates fisies moet kontroleer, vul die interval in maande in.',
|
||||
'audit_warning_days' => 'Oudit Waarskuwing Drempel',
|
||||
'audit_warning_days' => 'Oudit Waarskuwing Drempel',
|
||||
'audit_warning_days_help' => 'Hoeveel dae vooruit moet ons u waarsku wanneer bates verskuldig is vir ouditering?',
|
||||
'auto_increment_assets' => 'Genereer outomaties inkrementele bate-ID\'s',
|
||||
'auto_increment_prefix' => 'Voorvoegsel (opsioneel)',
|
||||
'auto_incrementing_help' => 'Aktiveer outomaties inkrementering van bate ID\'s om dit te stel',
|
||||
'backups' => 'rugsteun',
|
||||
'barcode_settings' => 'Barcode-instellings',
|
||||
'auto_increment_assets' => 'Genereer outomaties inkrementele bate-ID\'s',
|
||||
'auto_increment_prefix' => 'Voorvoegsel (opsioneel)',
|
||||
'auto_incrementing_help' => 'Aktiveer outomaties inkrementering van bate ID\'s om dit te stel',
|
||||
'backups' => 'rugsteun',
|
||||
'barcode_settings' => 'Barcode-instellings',
|
||||
'confirm_purge' => 'Bevestig skoonmaak',
|
||||
'confirm_purge_help' => 'Tik die teks "DELETE" in die onderstaande blokkie om jou geskrapde rekords te verwyder. Hierdie handeling kan nie ongedaan gemaak word nie.',
|
||||
'custom_css' => 'Aangepaste CSS',
|
||||
'custom_css_help' => 'Voer enige aangepaste CSS-oortredings in wat u graag wil gebruik. Moenie die <style></style>-etikette insluit nie.',
|
||||
'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' => 'Aangepaste CSS',
|
||||
'custom_css_help' => 'Voer enige aangepaste CSS-oortredings in wat u graag wil gebruik. Moenie die <style></style>-etikette insluit nie.',
|
||||
'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' => 'Verstek Geld',
|
||||
'default_eula_text' => 'Standaard EULA',
|
||||
'default_language' => 'Verstek taal',
|
||||
'default_eula_help_text' => 'U kan ook aangepaste EULA\'s aan spesifieke batekategorieë assosieer.',
|
||||
'default_currency' => 'Verstek Geld',
|
||||
'default_eula_text' => 'Standaard EULA',
|
||||
'default_language' => 'Verstek taal',
|
||||
'default_eula_help_text' => 'U kan ook aangepaste EULA\'s aan spesifieke batekategorieë assosieer.',
|
||||
'display_asset_name' => 'Wys bate naam',
|
||||
'display_checkout_date' => 'Vertoon Checkout Date',
|
||||
'display_eol' => 'Wys EOL in tabelweergawe',
|
||||
'display_qr' => 'Vertoon vierkante kodes',
|
||||
'display_alt_barcode' => 'Wys 1D strepieskode',
|
||||
'barcode_type' => '2D Barcode Type',
|
||||
'alt_barcode_type' => '1D barcode tipe',
|
||||
'display_alt_barcode' => 'Wys 1D strepieskode',
|
||||
'email_logo' => 'Email Logo',
|
||||
'barcode_type' => '2D Barcode Type',
|
||||
'alt_barcode_type' => '1D barcode tipe',
|
||||
'email_logo_size' => 'Square logos in email look best. ',
|
||||
'eula_settings' => 'EULA-instellings',
|
||||
'eula_markdown' => 'Hierdie EULA laat <a href="https://help.github.com/articles/github-flavored-markdown/">Github-geurde markdown</a> toe.',
|
||||
'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 <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>. Line breaks, headers, images, etc may result in unpredictable results.',
|
||||
'general_settings' => 'Algemene instellings',
|
||||
'generate_backup' => 'Genereer rugsteun',
|
||||
'generate_backup' => 'Genereer rugsteun',
|
||||
'header_color' => 'Opskrif Kleur',
|
||||
'info' => 'Met hierdie instellings kan u sekere aspekte van u installasie aanpas.',
|
||||
'label_logo' => 'Label Logo',
|
||||
'label_logo_size' => 'Square logos look best - will be displayed in the top right of each asset label. ',
|
||||
'laravel' => 'Laravel Weergawe',
|
||||
'ldap_enabled' => 'LDAP aangeskakel',
|
||||
'ldap_integration' => 'LDAP-integrasie',
|
||||
@@ -56,9 +66,9 @@ return array(
|
||||
'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_server' => 'LDAP-bediener',
|
||||
'ldap_server_help' => 'Dit moet begin met ldap: // (vir unencrypted of TLS) of ldaps: // (vir SSL)',
|
||||
'ldap_server_cert' => 'LDAP SSL-sertifikaat-validering',
|
||||
'ldap_server_cert_ignore' => 'Laat ongeldige SSL-sertifikaat toe',
|
||||
'ldap_server_cert_help' => 'Kies hierdie boks as u \'n self-ondertekende SSL-sertifikaat gebruik en graag \'n ongeldige SSL-sertifikaat aanvaar.',
|
||||
'ldap_server_cert' => 'LDAP SSL-sertifikaat-validering',
|
||||
'ldap_server_cert_ignore' => 'Laat ongeldige SSL-sertifikaat toe',
|
||||
'ldap_server_cert_help' => 'Kies hierdie boks as u \'n self-ondertekende SSL-sertifikaat gebruik en graag \'n ongeldige SSL-sertifikaat aanvaar.',
|
||||
'ldap_tls' => 'Gebruik TLS',
|
||||
'ldap_tls_help' => 'Dit moet slegs nagegaan word as u STARTTLS op u LDAP-bediener uitvoer.',
|
||||
'ldap_uname' => 'LDAP Bind Gebruikersnaam',
|
||||
@@ -87,6 +97,8 @@ return array(
|
||||
'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 ',
|
||||
@@ -101,16 +113,36 @@ return array(
|
||||
'pwd_secure_complexity' => 'Wagwoord Kompleksiteit',
|
||||
'pwd_secure_complexity_help' => 'Kies watter wagwoord kompleksiteit reëls jy wil afdwing.',
|
||||
'pwd_secure_min' => 'Wagwoord minimum karakters',
|
||||
'pwd_secure_min_help' => 'Minimum toelaatbare waarde is 5',
|
||||
'pwd_secure_min_help' => 'Minimum permitted value is 8',
|
||||
'pwd_secure_uncommon' => 'Voorkom algemene wagwoorde',
|
||||
'pwd_secure_uncommon_help' => 'Dit sal gebruikers nie toelaat om algemene wagwoorde te gebruik van die top 10,000 wagwoorde wat in oortredings gerapporteer is nie.',
|
||||
'qr_help' => 'Aktiveer QR-kodes eers om dit te stel',
|
||||
'qr_text' => 'QR Kode Teks',
|
||||
'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_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.',
|
||||
'setting' => 'omgewing',
|
||||
'settings' => 'instellings',
|
||||
'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 Naam',
|
||||
@@ -118,7 +150,7 @@ return array(
|
||||
'slack_channel' => 'Slack Channel',
|
||||
'slack_endpoint' => 'Slack Endpoint',
|
||||
'slack_integration' => 'Slack Settings',
|
||||
'slack_integration_help' => 'Slap integrasie is opsioneel, maar die eindpunt en die kanaal word benodig as u dit wil gebruik. Om Slack integrasie te konfigureer, moet jy eers <a href=":slack_link" target="_new">\'n inkomende webhook</a> op jou Slack-rekening skep.',
|
||||
'slack_integration_help' => 'Slack integration is optional, however the endpoint and channel are required if you wish to use it. To configure Slack integration, you must first <a href=":slack_link" target="_new" rel="noopener">create an incoming webhook</a> on your Slack account. Click on the <strong>Test Slack Integration</strong> button to confirm your settings are correct before saving. ',
|
||||
'slack_integration_help_button' => 'Once you have saved your Slack information, a test button will appear.',
|
||||
'slack_test_help' => 'Test whether your Slack integration is configured correctly. YOU MUST SAVE YOUR UPDATED SLACK SETTINGS FIRST.',
|
||||
'snipe_version' => 'Snipe-IT-weergawe',
|
||||
@@ -130,6 +162,7 @@ return array(
|
||||
'update' => 'Opdateer instellings',
|
||||
'value' => 'waarde',
|
||||
'brand' => 'Handelsmerk',
|
||||
'web_brand' => 'Web Branding Type',
|
||||
'about_settings_title' => 'Oor instellings',
|
||||
'about_settings_text' => 'Met hierdie instellings kan u sekere aspekte van u installasie aanpas.',
|
||||
'labels_per_page' => 'Etikette per bladsy',
|
||||
@@ -184,4 +217,5 @@ return array(
|
||||
'unique_serial' => 'Unique serial numbers',
|
||||
'unique_serial_help_text' => 'Checking this box will enforce a uniqueness constraint on asset serials',
|
||||
'zerofill_count' => 'Lengte van bate-etikette, insluitend 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.',
|
||||
);
|
||||
|
||||
@@ -19,6 +19,7 @@ return array(
|
||||
'ldap_config_text' => 'LDAP-konfigurasie-instellings kan Admin> Instellings gevind word. Die (opsionele) gekose ligging sal vir alle ingevoerde gebruikers gestel word.',
|
||||
'print_assigned' => 'Print All Assigned',
|
||||
'software_user' => 'Sagteware Uitgesoek na: naam',
|
||||
'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' => 'Sien gebruiker: naam',
|
||||
'usercsv' => 'CSV-lêer',
|
||||
'two_factor_admin_optin_help' => 'Jou huidige administrasie-instellings laat selektiewe handhawing van twee-faktor-verifikasie toe.',
|
||||
|
||||
@@ -12,6 +12,7 @@ return array(
|
||||
'insufficient_permissions' => 'Onvoldoende Toestemmings.',
|
||||
'user_deleted_warning' => 'Hierdie gebruiker is verwyder. Jy sal hierdie gebruiker moet herstel om hulle te wysig of nuwe bates toe te ken.',
|
||||
'ldap_not_configured' => 'LDAP-integrasie is nie vir hierdie installasie gekonfigureer nie.',
|
||||
'password_resets_sent' => 'The selected users who are activated and have a valid email addresses have been sent a password reset link.',
|
||||
|
||||
|
||||
'success' => array(
|
||||
|
||||
@@ -4,6 +4,7 @@ return [
|
||||
'send_password_link' => 'Stuur wagwoord terugstel skakel',
|
||||
'email_reset_password' => 'E-pos wagwoord herstel',
|
||||
'reset_password' => 'Herstel wagwoord',
|
||||
'saml_login' => 'Login via SAML',
|
||||
'login' => 'Teken aan',
|
||||
'login_prompt' => 'Asseblief Login',
|
||||
'forgot_password' => 'ek het my wagwoord vergeet',
|
||||
|
||||
@@ -7,31 +7,39 @@ return array(
|
||||
'account_not_activated' => 'Hierdie gebruikers rekening is nie geaktiveer nie.',
|
||||
'account_suspended' => 'Hierdie gebruikerrekening is opgeskort.',
|
||||
'account_banned' => 'Hierdie gebruikerrekening is verban.',
|
||||
'throttle' => 'Te veel mislukte aanmeldpogings. Probeer asseblief weer in: minute minuut (s).',
|
||||
'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' => 'Kon nie jou inteken nie, probeer asseblief weer.',
|
||||
'success' => 'Jy is suksesvol aangemeld.',
|
||||
),
|
||||
|
||||
'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' => 'Kon nie jou rekening skep nie, probeer asseblief weer.',
|
||||
'success' => 'Rekening suksesvol geskep.',
|
||||
),
|
||||
|
||||
'forgot-password' => array(
|
||||
'error' => 'Daar was \'n probleem tydens die herstel van wagwoordkode, probeer asseblief weer.',
|
||||
'success' => 'Wagwoordherstel-e-pos is suksesvol gestuur.',
|
||||
),
|
||||
|
||||
'forgot-password-confirm' => array(
|
||||
'error' => 'Kon nie jou wagwoord herstel nie, probeer asseblief weer.',
|
||||
'success' => 'Jou wagwoord is suksesvol gereset.',
|
||||
),
|
||||
|
||||
'activate' => array(
|
||||
'error' => 'Kon nie jou rekening aktiveer nie, probeer asseblief weer.',
|
||||
'success' => 'Jou rekening is suksesvol geaktiveer.',
|
||||
'forgot-password' => array(
|
||||
'error' => 'Daar was \'n probleem tydens die herstel van wagwoordkode, probeer asseblief weer.',
|
||||
'success' => 'If that email address exists in our system, a password recovery email has been sent.',
|
||||
),
|
||||
|
||||
'forgot-password-confirm' => array(
|
||||
'error' => 'Kon nie jou wagwoord herstel nie, probeer asseblief weer.',
|
||||
'success' => 'Jou wagwoord is suksesvol gereset.',
|
||||
),
|
||||
|
||||
|
||||
);
|
||||
|
||||
@@ -13,4 +13,5 @@ return array(
|
||||
'upload' => 'oplaai',
|
||||
'select_file' => 'Kies lêer ...',
|
||||
'select_files' => 'Select Files...',
|
||||
'generate_labels' => '{1} Generate Label|[2,*] Generate Labels',
|
||||
);
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
'bulkaudit' => 'Grootmaat Oudit',
|
||||
'bulkaudit_status' => 'Ouditstatus',
|
||||
'bulk_checkout' => 'Grootmaat Checkout',
|
||||
'bystatus' => 'by Status',
|
||||
'cancel' => 'kanselleer',
|
||||
'categories' => 'kategorieë',
|
||||
'category' => 'kategorie',
|
||||
@@ -57,6 +58,7 @@
|
||||
'created' => 'Item geskep',
|
||||
'created_asset' => 'geskep bate',
|
||||
'created_at' => 'Geskep op',
|
||||
'record_created' => 'Record Created',
|
||||
'updated_at' => 'Opgedateer op',
|
||||
'currency' => '$', // this is deprecated
|
||||
'current' => 'Huidige',
|
||||
@@ -87,11 +89,23 @@
|
||||
'firstname_lastname_format' => 'Vir Naam Van (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)',
|
||||
'first' => 'eerste',
|
||||
'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' => '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' => 'First',
|
||||
'first_name' => 'Eerste naam',
|
||||
'first_name_format' => 'Voornaam (jane@example.com)',
|
||||
'files' => 'Files',
|
||||
'file_name' => 'lêer',
|
||||
'file_type' => 'File Type',
|
||||
'file_uploads' => 'Lêeroplaaie',
|
||||
'generate' => 'genereer',
|
||||
'github_markdown' => 'This field accepts <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
|
||||
@@ -111,6 +125,7 @@
|
||||
'asset_maintenances' => 'Asset Maintenances',
|
||||
'item' => 'item',
|
||||
'insufficient_permissions' => 'Onvoldoende toestemmings!',
|
||||
'kits' => 'Predefined Kits',
|
||||
'language' => 'Taal',
|
||||
'last' => 'laaste',
|
||||
'last_login' => 'Laaste Aanmelding',
|
||||
@@ -121,10 +136,11 @@
|
||||
'licenses' => 'lisensies',
|
||||
'list_all' => 'Lys almal',
|
||||
'loading' => 'laai',
|
||||
'lock_passwords' => 'Hierdie veld kan nie in hierdie installasie geredigeer word nie.',
|
||||
'lock_passwords' => 'This field value will not be saved in a demo installation.',
|
||||
'feature_disabled' => 'Hierdie funksie is afgeskakel vir die demo-installasie.',
|
||||
'location' => 'plek',
|
||||
'locations' => 'plekke',
|
||||
'logo_size' => 'Square logos look best with Logo + Text. Logo maximum display size is 50px high x 500px wide. ',
|
||||
'logout' => 'Teken uit',
|
||||
'lookup_by_tag' => 'Opsoek deur Asset Tag',
|
||||
'maintenances' => 'Maintenances',
|
||||
@@ -186,6 +202,7 @@
|
||||
'sign_in' => 'Teken in',
|
||||
'signature' => 'Handtekening',
|
||||
'skin' => 'Skin',
|
||||
'slack_test_msg' => 'Oh hai! Looks like your Slack integration with Snipe-IT is working!',
|
||||
'some_features_disabled' => 'DEMO MODE: Sommige funksies is afgeskakel vir hierdie installasie.',
|
||||
'site_name' => 'Site Naam',
|
||||
'state' => 'staat',
|
||||
@@ -206,19 +223,23 @@
|
||||
'unknown_admin' => 'Onbekende Admin',
|
||||
'username_format' => 'Gebruikernaam',
|
||||
'update' => 'Opdateer',
|
||||
'upload_filetypes_help' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, xls, txt, lic, zip, and rar. Max upload size allowed is :size.',
|
||||
'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' => 'opgelaai',
|
||||
'user' => 'gebruiker',
|
||||
'accepted' => 'aanvaarde',
|
||||
'declined' => 'afgeneem',
|
||||
'unaccepted_asset_report' => 'Onaanvaarde Bates',
|
||||
'users' => 'gebruikers',
|
||||
'viewall' => 'View All',
|
||||
'viewassets' => 'Bekyk Toegewysde Bates',
|
||||
'website' => 'webwerf',
|
||||
'welcome' => 'Welkom, naam',
|
||||
'years' => 'jaar',
|
||||
'yes' => 'Ja',
|
||||
'zip' => 'zip',
|
||||
'noimage' => 'Geen prent opgelaai of prent nie gevind nie.',
|
||||
'token_expired' => 'Jou vormsessie het verval. Probeer asseblief weer.',
|
||||
'noimage' => 'Geen prent opgelaai of prent nie gevind nie.',
|
||||
'token_expired' => 'Jou vormsessie het verval. Probeer asseblief weer.',
|
||||
'login_enabled' => 'Login Enabled',
|
||||
'audit_due' => 'Due for Audit',
|
||||
'audit_overdue' => 'Overdue for Audit',
|
||||
];
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reminder Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
"more_info_title" => "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.<br><br>Note that is 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.',
|
||||
|
||||
|
||||
|
||||
);
|
||||
@@ -18,12 +18,12 @@ return array(
|
||||
'click_to_confirm' => 'Klik asseblief op die volgende skakel om u webadres te bevestig:',
|
||||
'click_on_the_link_accessory' => 'Klik asseblief op die skakel onderaan om te bevestig dat u die bykomstigheid ontvang het.',
|
||||
'click_on_the_link_asset' => 'Klik asseblief op die skakel onderaan om te bevestig dat u die bate ontvang het.',
|
||||
'Confirm_Asset_Checkin' => 'Bevestig Asset Checkin.',
|
||||
'Confirm_Accessory_Checkin' => 'Bevestig Accessoire Checkin.',
|
||||
'Confirm_accessory_delivery' => 'Bevestig toebehore-aflewering.',
|
||||
'Confirm_license_delivery' => 'Confirm license delivery.',
|
||||
'Confirm_asset_delivery' => 'Bevestig bate aflewering.',
|
||||
'Confirm_consumable_delivery' => 'Bevestig verbruikslewering.',
|
||||
'Confirm_Asset_Checkin' => 'Asset checkin confirmation',
|
||||
'Confirm_Accessory_Checkin' => 'Accessory checkin confirmation',
|
||||
'Confirm_accessory_delivery' => 'Accessory delivery confirmation',
|
||||
'Confirm_license_delivery' => 'License delivery confirmation',
|
||||
'Confirm_asset_delivery' => 'Asset delivery confirmation',
|
||||
'Confirm_consumable_delivery' => 'Consumable delivery confirmation',
|
||||
'current_QTY' => 'Huidige QTY',
|
||||
'Days' => 'dae',
|
||||
'days' => 'dae',
|
||||
@@ -63,9 +63,11 @@ return array(
|
||||
'license_expiring_alert' => 'There is :count license expiring in the next :threshold days.|There are :count licenses expiring in the next :threshold days.',
|
||||
'to_reset' => 'Om jou webadres te herstel, voltooi hierdie vorm:',
|
||||
'type' => 'tipe',
|
||||
'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' => 'Welkom: naam',
|
||||
'welcome_to' => 'Welkom by: web!',
|
||||
'your_credentials' => 'Jou Snipe-IT-referenties',
|
||||
|
||||
);
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_accessories_title' => 'حول الملحقات',
|
||||
'about_accessories_text' => 'الملحقات هي أي شيء تقوم بتسليمه للمستخدمين لكنه لا يحتوي على رقم تسلسلي (أو أنك لست بحاجة إلى تتبعه بشكل خاص). مثال: فأرة الحاسوب أو لوحة المفاتيح.',
|
||||
'accessory_category' => 'تصنيف الملحق',
|
||||
'accessory_name' => 'اسم الملحق',
|
||||
'checkout' => 'اخراج الملحق',
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
return array(
|
||||
|
||||
'does_not_exist' => 'الملحق غير موجود.',
|
||||
'does_not_exist' => 'The accessory [:id] does not exist.',
|
||||
'assoc_users' => 'تم إخراج :count عنصر من هذا الملحق للمستخدمين، الرجاء ادخال بعض الملحقات ثم حاول مرة أخرى. ',
|
||||
|
||||
'create' => array(
|
||||
|
||||
@@ -7,5 +7,8 @@
|
||||
'view' => 'عرض تفاصيل صيانة الأصل',
|
||||
'repair' => 'إصلاح',
|
||||
'maintenance' => 'صيانة',
|
||||
'upgrade' => 'الترقية'
|
||||
'upgrade' => 'الترقية',
|
||||
'calibration' => 'Calibration',
|
||||
'software_support' => 'Software Support',
|
||||
'hardware_support' => 'Hardware Support',
|
||||
];
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_categories_title' => 'حول التصنيفات',
|
||||
'about_categories' => 'التصنيفات تساعدك على ترتيب الأصول. من الأمثلة على التصنيفات " حواسيب مكتبية "، " حواسيب محمولة "، "الهواتف النقالة "، "أجهزة لوحية " وهكذا، كما يمكنك استخدام التصنيفات بأي طريقة تناسبك.',
|
||||
'asset_categories' => 'تصنيفات الأصول',
|
||||
'category_name' => 'اسم التصنيف',
|
||||
'checkin_email' => 'إرسال رسالة إلكترونية للمستخدم عند الإدخال \\ الإخراج.',
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
<?php
|
||||
return [
|
||||
'about_companies_title' => 'حول الشركات',
|
||||
'about_companies_text' => 'يمكن للشركات أن تستخدم كحقل معرف بسيط، أو يمكن استخدامها للحد من معاينة الأصول، والمستخدمين، وما إلى ذلك إذا تم تمكين دعم الشركة الكامل في إعدادات مدير النظام.',
|
||||
'select_company' => 'اختر الشركة',
|
||||
];
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_components_title' => 'حول المكونات',
|
||||
'about_components_text' => 'المكونات هي العناصر التي تشكل جزءا من الأصل، على سبيل المثال القرص الصلب، ذاكرة الوصول العشوائي، إلخ.',
|
||||
'component_name' => 'اسم المكون',
|
||||
'checkin' => 'ادخالات المكونات',
|
||||
'checkout' => 'مخرجات المكونات',
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_consumables_title' => 'حول المواد الاستهلاكية',
|
||||
'about_consumables_text' => 'المواد الاستهلاكية هي أي شيء تم شراؤه وسيتم استخدامه مع مرور الوقت. على سبيل المثال، حبر الطابعة أو الورق ناسخة.',
|
||||
'checkout' => 'إخراج المواد الاستهلاكية لمستخدم',
|
||||
'consumable_name' => 'اسم المادة الإستهلاكية',
|
||||
'create' => 'إنشاء مادة إستهلاكية',
|
||||
|
||||
@@ -19,6 +19,7 @@ return array(
|
||||
'status' => 'الحالة',
|
||||
'title' => 'أصل ',
|
||||
'image' => 'صورة الجهاز',
|
||||
'days_without_acceptance' => 'أيام بدون قبول'
|
||||
'days_without_acceptance' => 'أيام بدون قبول',
|
||||
'monthly_depreciation' => 'Monthly Depreciation'
|
||||
|
||||
);
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_kits_title' => '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. ',
|
||||
|
||||
);
|
||||
@@ -8,6 +8,7 @@ return array(
|
||||
'owner_doesnt_match_asset' => 'الأصل اللذي تحاول ربطه مع هذا الترخيص حاليا مملوك لشخص اخر غير اللذي تم اختياره من القائمة المنسدلة.',
|
||||
'assoc_users' => 'هذا الترخيص حاليا مخرج لمستخدم ولا يمكن حذفه. يرجى التحقق من الترخيص في البداية، ثم محاولة الحذف مرة أخرى. ',
|
||||
'select_asset_or_person' => 'يجب تحديد أصل أو مستخدم، وليس كليهما.',
|
||||
'not_found' => 'License not found',
|
||||
|
||||
|
||||
'create' => array(
|
||||
|
||||
@@ -4,50 +4,60 @@ return array(
|
||||
'ad' => 'الدليل النشط',
|
||||
'ad_domain' => 'مجال الدليل النشط',
|
||||
'ad_domain_help' => 'هذا هو أحيانا نفس نطاق البريد الإلكتروني الخاص بك، ولكن ليس دائما.',
|
||||
'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' => 'نسخة اضافية للبريد الإكتروني',
|
||||
'admin_cc_email_help' => 'إذا كنت ترغب في إرسال نسخة من رسائل البريد الإلكتروني لتسجيل الدخول / الخروج التي يتم إرسالها إلى المستخدمين إلى حساب بريد إلكتروني إضافي، فقم بإدخالها هنا. خلاف ذلك، اترك هذه الخانة فارغة.',
|
||||
'is_ad' => 'هذا هو ملقم أكتيف ديركتوري',
|
||||
'alert_email' => 'إرسال تنبيهات إلى',
|
||||
'alerts_enabled' => 'التنبيهان ممكنه',
|
||||
'alert_interval' => 'انتهاء فترة التنبيهات (بالأيام)',
|
||||
'alert_inv_threshold' => 'عتبة تنبيه المخزون',
|
||||
'asset_ids' => 'ارقام تعريف الاصول',
|
||||
'audit_interval' => 'مدة التدقيق',
|
||||
'alert_email' => 'إرسال تنبيهات إلى',
|
||||
'alerts_enabled' => 'التنبيهان ممكنه',
|
||||
'alert_interval' => 'انتهاء فترة التنبيهات (بالأيام)',
|
||||
'alert_inv_threshold' => 'عتبة تنبيه المخزون',
|
||||
'asset_ids' => 'ارقام تعريف الاصول',
|
||||
'audit_interval' => 'مدة التدقيق',
|
||||
'audit_interval_help' => 'إذا كان مطلوبا منك مراجعة أصولك الفعلية بشكل دوري، قم بإدخال المدة بالأشهر.',
|
||||
'audit_warning_days' => 'عتبة تحذير التدقيق',
|
||||
'audit_warning_days' => 'عتبة تحذير التدقيق',
|
||||
'audit_warning_days_help' => 'كم يوما مقدما يجب أن نحذركم عندما تكون الأصول مستحقة للتدقيق؟',
|
||||
'auto_increment_assets' => 'إنشاء ارقام تعريف الاصول مع التزايد التلقائي',
|
||||
'auto_increment_prefix' => 'البادئة (اختياري)',
|
||||
'auto_incrementing_help' => 'أولا قم بتفعيل ارقام تعريف الاصول مع التزايد التلقائي لكي تستطيع تعيين هذا',
|
||||
'backups' => 'النسخ الإحتياطية',
|
||||
'barcode_settings' => 'إعدادات الباركود',
|
||||
'auto_increment_assets' => 'إنشاء ارقام تعريف الاصول مع التزايد التلقائي',
|
||||
'auto_increment_prefix' => 'البادئة (اختياري)',
|
||||
'auto_incrementing_help' => 'أولا قم بتفعيل ارقام تعريف الاصول مع التزايد التلقائي لكي تستطيع تعيين هذا',
|
||||
'backups' => 'النسخ الإحتياطية',
|
||||
'barcode_settings' => 'إعدادات الباركود',
|
||||
'confirm_purge' => 'تأكيد التطهير',
|
||||
'confirm_purge_help' => 'أدخل النص "ديليت" في المربع أدناه لتطهير السجلات المحذوفة. لا يمكن التراجع عن هذا الإجراء.',
|
||||
'custom_css' => 'CSS مخصص',
|
||||
'custom_css_help' => 'أدخل أي تخصيصات CSS ترغب في استخدامها. لا تقم باضافة <style></style>.',
|
||||
'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' => 'CSS مخصص',
|
||||
'custom_css_help' => 'أدخل أي تخصيصات CSS ترغب في استخدامها. لا تقم باضافة <style></style>.',
|
||||
'custom_forgot_pass_url' => 'رابط مخصص لاعادة تعيين كلمة المرور',
|
||||
'custom_forgot_pass_url_help' => 'يحل هذا محل الرابط الخاص باعادة تعيين كلمة المرور على شاشة تسجيل الدخول، وهو مفيد لتوجيه الأشخاص إلى وظيفة إعادة تعيين كلمة مرور من خلال LDAP الداخلي أو المستضاف. وهذا سوف يعطل وظيفة إعادة تعيين كلمة مرور المحلية.',
|
||||
'dashboard_message' => 'رسالة لوحة المعلومات',
|
||||
'dashboard_message_help' => 'سيظهر هذا النص على لوحة التحكم لأي شخص لديه صلاحية عرض لوحة التحكم.',
|
||||
'default_currency' => 'العملة الافتراضية',
|
||||
'default_eula_text' => 'اتفاقية ترخيص المستخدم النهائي الافتراضية',
|
||||
'default_language' => 'اللغة الافتراضية',
|
||||
'default_eula_help_text' => 'يمكنك أيضا ربط (اتفاقية ترخيص المستخدم) لاصناف محددة من الاصول.',
|
||||
'default_currency' => 'العملة الافتراضية',
|
||||
'default_eula_text' => 'اتفاقية ترخيص المستخدم النهائي الافتراضية',
|
||||
'default_language' => 'اللغة الافتراضية',
|
||||
'default_eula_help_text' => 'يمكنك أيضا ربط (اتفاقية ترخيص المستخدم) لاصناف محددة من الاصول.',
|
||||
'display_asset_name' => 'عرض اسم مادة العرض',
|
||||
'display_checkout_date' => 'عرض تاريخ الخروج',
|
||||
'display_eol' => 'عرض نهاية العمر على شكل جدول',
|
||||
'display_qr' => 'عرض رموز مربع',
|
||||
'display_alt_barcode' => 'عرض 1D الباركود',
|
||||
'barcode_type' => '2D نوع الباركود',
|
||||
'alt_barcode_type' => '1D نوع الباركود',
|
||||
'display_alt_barcode' => 'عرض 1D الباركود',
|
||||
'email_logo' => 'Email Logo',
|
||||
'barcode_type' => '2D نوع الباركود',
|
||||
'alt_barcode_type' => '1D نوع الباركود',
|
||||
'email_logo_size' => 'Square logos in email look best. ',
|
||||
'eula_settings' => 'إعدادات اتفاقية ترخيص المستخدم النهائي',
|
||||
'eula_markdown' => 'تسمح اتفاقية ترخيص المستخدم هذه <a href="https://help.github.com/articles/github-flavored-markdown/">بتطبيق نمط الكتابة من Github</a>.',
|
||||
'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' => 'إضافة نص لتذييل الصفحة ',
|
||||
'footer_text_help' => 'This text will appear in the right-side footer. Links are allowed using <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>. Line breaks, headers, images, etc may result in unpredictable results.',
|
||||
'general_settings' => 'الاعدادات العامة',
|
||||
'generate_backup' => 'إنشاء النسخ الاحتياطي',
|
||||
'generate_backup' => 'إنشاء النسخ الاحتياطي',
|
||||
'header_color' => 'رأس اللون',
|
||||
'info' => 'تتيح لك هذه الإعدادات تخصيص بعض جوانب التثبيت.',
|
||||
'label_logo' => 'Label Logo',
|
||||
'label_logo_size' => 'Square logos look best - will be displayed in the top right of each asset label. ',
|
||||
'laravel' => 'نسخة لارافيل',
|
||||
'ldap_enabled' => 'تم تمكين لداب',
|
||||
'ldap_integration' => 'دمج لداب',
|
||||
@@ -56,9 +66,9 @@ return array(
|
||||
'ldap_login_sync_help' => 'هذا يختبر فقط أن LDAP يستطيع المزامنة بشكل صحيح. إذا كان استعلام التوثيق الى LDAP الخاص بك غير صحيح، قد لا يزال المستخدمون غير قادرين على تسجيل الدخول. يجب عليك اولا حفظ اي تغييرات في إعدادات LDAP.',
|
||||
'ldap_server' => 'خادم لداب',
|
||||
'ldap_server_help' => 'ينبغي أن يبدأ هذا مع //:ldap (للاتصال غير المشفر او TLS) او //:ldaps (لاتصال SSL)',
|
||||
'ldap_server_cert' => 'التحقق من صحة شهادة سل لداب',
|
||||
'ldap_server_cert_ignore' => 'السماح بشهادة سل غير صالحة',
|
||||
'ldap_server_cert_help' => 'حدد مربع الاختيار هذا إذا كنت تستخدم شهادة سل موقعة ذاتيا وترغب في قبول شهادة سل غير صالحة.',
|
||||
'ldap_server_cert' => 'التحقق من صحة شهادة سل لداب',
|
||||
'ldap_server_cert_ignore' => 'السماح بشهادة سل غير صالحة',
|
||||
'ldap_server_cert_help' => 'حدد مربع الاختيار هذا إذا كنت تستخدم شهادة سل موقعة ذاتيا وترغب في قبول شهادة سل غير صالحة.',
|
||||
'ldap_tls' => 'استخدام تلس',
|
||||
'ldap_tls_help' => 'يجب التحقق من ذلك فقط في حالة تشغيل ستارتلز على خادم لداب.',
|
||||
'ldap_uname' => 'لداب ربط اسم المستخدم',
|
||||
@@ -87,6 +97,8 @@ return array(
|
||||
'login_common_disabled_help' => 'يعمل هذا الخيار على تعطيل آليات المصادقة الأخرى. ما عليك سوى تمكين هذا الخيار إذا كنت متأكدًا من أن تسجيل الدخول إلى المستخدم_عن_بعد يعمل بالفعل',
|
||||
'login_remote_user_custom_logout_url_text' => 'عنوان صفحة مخصص لتسجيل الخروج',
|
||||
'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_print_assets' => 'الاستخدام في الطباعة',
|
||||
'logo_print_assets_help' => 'استخدم العلامة التجارية في قوائم الأصول القابلة للطباعة ',
|
||||
@@ -101,16 +113,36 @@ return array(
|
||||
'pwd_secure_complexity' => 'تعقيد كلمة المرور',
|
||||
'pwd_secure_complexity_help' => 'حدد أي قواعد تعقيد كلمة المرور التي ترغب في فرضها.',
|
||||
'pwd_secure_min' => 'كلمة المرور الحد الأدنى من الأحرف',
|
||||
'pwd_secure_min_help' => 'الحد الأدنى المسموح به هو 5',
|
||||
'pwd_secure_min_help' => 'Minimum permitted value is 8',
|
||||
'pwd_secure_uncommon' => 'منع كلمات المرور الشائعة',
|
||||
'pwd_secure_uncommon_help' => 'سيؤدي ذلك إلى منع المستخدمين من استخدام كلمات المرور الشائعة من أعلى 10000 كلمة مرور يتم الإبلاغ عنها في حالات خرق.',
|
||||
'qr_help' => 'تمكين رموز قر أولا لتعيين هذا',
|
||||
'qr_text' => 'نص رمز الاستجابة السريعة',
|
||||
'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_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.',
|
||||
'setting' => 'ضبط',
|
||||
'settings' => 'إعدادات',
|
||||
'show_alerts_in_menu' => 'عرض التنبيهات في القائمة العلوية',
|
||||
'show_archived_in_list' => 'الأصول المحفوظة',
|
||||
'show_archived_in_list_text' => 'عرض الأصول المحفوظة في قائمة "جميع الأصول"',
|
||||
'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_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' => 'اسم الموقع',
|
||||
@@ -118,18 +150,19 @@ return array(
|
||||
'slack_channel' => 'قناة سلاك',
|
||||
'slack_endpoint' => 'نقطة نهاية سلاك',
|
||||
'slack_integration' => 'إعدادات سلاك',
|
||||
'slack_integration_help' => 'الربط مع Slack اختياري، ولكن نقطة النهاية endpoint والقناة channel مطلوبان إذا كنت ترغب في استخدامه. لاعداد الربط مع Slack، يجب أولا <a href=":slack_link" target="_new">رابط ويب الكتروني قادم webhook</a> على حساب Slack الخاص بك.',
|
||||
'slack_integration_help_button' => 'Once you have saved your Slack information, a test button will appear.',
|
||||
'slack_integration_help' => 'Slack integration is optional, however the endpoint and channel are required if you wish to use it. To configure Slack integration, you must first <a href=":slack_link" target="_new" rel="noopener">create an incoming webhook</a> on your Slack account. Click on the <strong>Test Slack Integration</strong> button to confirm your settings are correct before saving. ',
|
||||
'slack_integration_help_button' => 'عند الانتهاء من حفظ معلومات Slack الخاصة بك، سوف يظهر زر الفحص.',
|
||||
'slack_test_help' => 'Test whether your Slack integration is configured correctly. YOU MUST SAVE YOUR UPDATED SLACK SETTINGS FIRST.',
|
||||
'snipe_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_footer_help' => 'Specify who sees the Snipe-IT version and build number.',
|
||||
'version_footer_help' => 'حدد من سوف يرى إصدار Snipe-IT و رقم النسخة.',
|
||||
'system' => 'معلومات النظام',
|
||||
'update' => 'إعدادات التحديث',
|
||||
'value' => 'القيمة',
|
||||
'brand' => 'العلامات التجارية',
|
||||
'web_brand' => 'Web Branding Type',
|
||||
'about_settings_title' => 'حول الإعدادات',
|
||||
'about_settings_text' => 'تتيح لك هذه الإعدادات تخصيص بعض جوانب التثبيت.',
|
||||
'labels_per_page' => 'عدد التسميات لكل صفحة',
|
||||
@@ -181,7 +214,8 @@ return array(
|
||||
'bottom' => 'الأسفل',
|
||||
'vertical' => 'عمودي',
|
||||
'horizontal' => 'أفقي',
|
||||
'unique_serial' => 'Unique serial numbers',
|
||||
'unique_serial' => 'أرقام تسلسلية مميزة',
|
||||
'unique_serial_help_text' => 'تحديد المربع سيؤدي الى فرض سياسة التفرد على الرقم التسلسلي للمتلكات',
|
||||
'zerofill_count' => 'طول ترميز الأصل، بما في ذلك تعبئة الاصفار',
|
||||
'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.',
|
||||
);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
return array(
|
||||
'activated_help_text' => 'هذا المستخدم تسجيل الدخول',
|
||||
'activated_disabled_help_text' => 'You cannot edit activation status for your own account.',
|
||||
'activated_disabled_help_text' => 'لا يمكنك تعديل حالة التنشيط لحسابك الخاص.',
|
||||
'assets_user' => 'الأصول التي تم اخراجها إلى :name',
|
||||
'bulk_update_warn' => 'أنت على وشك تعديل خصائص :user_count من المستخدمين. يرجى ملاحظة أنه لا يمكنك تغيير سمات المستخدم الخاصة بك باستخدام هذا النموذج، ويجب إجراء تعديلات على المستخدم الخاص بك بشكل على حدة.',
|
||||
'bulk_update_help' => 'يتيح لك هذا النموذج تحديث عدة مستخدمين في وقت واحد. قم بملء الحقول التي تحتاج إلى تغييرها. ستظل أية حقول فارغة فارغة دون تغيير.',
|
||||
@@ -17,8 +17,9 @@ return array(
|
||||
'restore_user' => 'انقر هنا لاستعادتها.',
|
||||
'last_login' => 'آخر دخول للمستخدم',
|
||||
'ldap_config_text' => 'يمكن العثور على إعدادات تهيئة لداب المشرف> الإعدادات. سيتم تعيين الموقع (اختياري) المحدد لجميع المستخدمين الذين تم استيرادهم.',
|
||||
'print_assigned' => 'Print All Assigned',
|
||||
'print_assigned' => 'طباعة كل الممتلكات',
|
||||
'software_user' => 'البرامج المخرجة الى: :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' => 'عرض المستخدم :name',
|
||||
'usercsv' => 'ملف CSV',
|
||||
'two_factor_admin_optin_help' => 'تسمح إعدادات المشرف الحالية بإنفاذ انتقائي للمصادقة الثنائية.',
|
||||
|
||||
@@ -12,6 +12,7 @@ return array(
|
||||
'insufficient_permissions' => 'صلاحيات غير كافية.',
|
||||
'user_deleted_warning' => 'تم حذف المستخدم. سيكون عليك استعادة هذا المستخدم اذا ارت التعديل عليه او تسليمه اجهزة جديدة.',
|
||||
'ldap_not_configured' => 'لم يتم تكوين دمج لداب لهذا التثبيت.',
|
||||
'password_resets_sent' => 'The selected users who are activated and have a valid email addresses have been sent a password reset link.',
|
||||
|
||||
|
||||
'success' => array(
|
||||
|
||||
@@ -4,6 +4,7 @@ return [
|
||||
'send_password_link' => 'إرسال رسالة إعادة تعيين كلمة المرور',
|
||||
'email_reset_password' => 'البريد الإلكتروني إعادة تعيين كلمة المرور',
|
||||
'reset_password' => 'إعادة تعيين كلمة المرور',
|
||||
'saml_login' => 'Login via SAML',
|
||||
'login' => 'الدخول',
|
||||
'login_prompt' => 'الرجاء تسجيل الدخول',
|
||||
'forgot_password' => 'نسيت كلمة المرور',
|
||||
|
||||
@@ -7,31 +7,39 @@ return array(
|
||||
'account_not_activated' => 'لم يتم تنشيط حساب هذا المستخدم.',
|
||||
'account_suspended' => 'تم تعليق حساب المستخدم هذا.',
|
||||
'account_banned' => 'تم حظر حساب المستخدم هذا.',
|
||||
'throttle' => 'هناك عدد كبير جدا من محاولات تسجيل الدخول الفاشلة. يرجى المحاولة مرة أخرى خلال :minutes دقيقة.',
|
||||
'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' => 'حدثت مشكلة أثناء محاولة تسجيل دخولك، الرجاء إعادة المحاولة.',
|
||||
'success' => 'قمت بتسجيل الدخول بنجاح.',
|
||||
),
|
||||
|
||||
'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' => 'حدثت مشكلة أثناء محاولة إنشاء حسابك، يرجى إعادة المحاولة.',
|
||||
'success' => 'تم إنشاء الحساب بنجاح.',
|
||||
),
|
||||
|
||||
'forgot-password' => array(
|
||||
'error' => 'حدثت مشكلة أثناء محاولة الحصول على رمز إعادة تعيين كلمة المرور، الرجاء إعادة المحاولة.',
|
||||
'success' => 'تم إرسال البريد الإلكتروني لاستعادة كلمة المرور بنجاح.',
|
||||
),
|
||||
|
||||
'forgot-password-confirm' => array(
|
||||
'error' => 'حدثت مشكلة أثناء محاولة إعادة تعيين كلمة المرور، الرجاء إعادة المحاولة.',
|
||||
'success' => 'تمت إعادة تعيين كلمة المرور بنجاح.',
|
||||
),
|
||||
|
||||
'activate' => array(
|
||||
'error' => 'حدثت مشكلة أثناء محاولة تنشيط حسابك، يرجى إعادة المحاولة.',
|
||||
'success' => 'تم تفعيل حسابك بنجاح.',
|
||||
'forgot-password' => array(
|
||||
'error' => 'حدثت مشكلة أثناء محاولة الحصول على رمز إعادة تعيين كلمة المرور، الرجاء إعادة المحاولة.',
|
||||
'success' => 'If that email address exists in our system, a password recovery email has been sent.',
|
||||
),
|
||||
|
||||
'forgot-password-confirm' => array(
|
||||
'error' => 'حدثت مشكلة أثناء محاولة إعادة تعيين كلمة المرور، الرجاء إعادة المحاولة.',
|
||||
'success' => 'تمت إعادة تعيين كلمة المرور بنجاح.',
|
||||
),
|
||||
|
||||
|
||||
);
|
||||
|
||||
@@ -13,4 +13,5 @@ return array(
|
||||
'upload' => 'رفع',
|
||||
'select_file' => 'حدد ملف ...',
|
||||
'select_files' => 'إختيار ملف...',
|
||||
'generate_labels' => '{1} Generate Label|[2,*] Generate Labels',
|
||||
);
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
'bulkaudit' => 'تدقيق متعدد',
|
||||
'bulkaudit_status' => 'حالة التدقيق',
|
||||
'bulk_checkout' => 'اخراج متعدد',
|
||||
'bystatus' => 'by Status',
|
||||
'cancel' => 'إلغاء',
|
||||
'categories' => 'التصنيفات',
|
||||
'category' => 'تصنيف',
|
||||
@@ -57,6 +58,7 @@
|
||||
'created' => 'تم إنشاء العنصر',
|
||||
'created_asset' => 'الأصول المضافة',
|
||||
'created_at' => 'أنشئت في',
|
||||
'record_created' => 'Record Created',
|
||||
'updated_at' => 'تم التحديث في',
|
||||
'currency' => '$', // this is deprecated
|
||||
'current' => 'الحالي',
|
||||
@@ -87,11 +89,23 @@
|
||||
'firstname_lastname_format' => 'الاسم الأول الاسم الأخير (jane.smith@example.com)',
|
||||
'firstname_lastname_underscore_format' => 'الاسم الأول الاسم الأخير (jane_smith@example.com)',
|
||||
'lastnamefirstinitial_format' => 'اللقب والحرف الاول من الاسم (smithj@example.com)',
|
||||
'firstintial_dot_lastname_format' => 'First Initial Last Name (j.smith@example.com)',
|
||||
'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' => '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' => 'First',
|
||||
'first_name' => 'الإسم الأول',
|
||||
'first_name_format' => 'الاسم الأول (jane@example.com)',
|
||||
'files' => 'الملفات',
|
||||
'file_name' => 'ملف',
|
||||
'file_type' => 'File Type',
|
||||
'file_uploads' => 'تحميلات الملفات',
|
||||
'generate' => 'توفير',
|
||||
'github_markdown' => 'This field accepts <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
|
||||
@@ -111,6 +125,7 @@
|
||||
'asset_maintenances' => 'صيانة الأصول',
|
||||
'item' => 'بند',
|
||||
'insufficient_permissions' => 'صلاحيات غير كافية!',
|
||||
'kits' => 'Predefined Kits',
|
||||
'language' => 'لغة',
|
||||
'last' => 'الاخير',
|
||||
'last_login' => 'آخر تسجيل دخول',
|
||||
@@ -121,10 +136,11 @@
|
||||
'licenses' => 'التراخيص',
|
||||
'list_all' => 'عرض الكل',
|
||||
'loading' => 'جار التحميل',
|
||||
'lock_passwords' => 'لا يمكن تعديل هذا الحقل في هذا التثبيت.',
|
||||
'lock_passwords' => 'This field value will not be saved in a demo installation.',
|
||||
'feature_disabled' => 'تم تعطيل هذه الميزة للتثبيت التجريبي.',
|
||||
'location' => 'الموقع',
|
||||
'locations' => 'المواقع',
|
||||
'logo_size' => 'Square logos look best with Logo + Text. Logo maximum display size is 50px high x 500px wide. ',
|
||||
'logout' => 'تسجيل خروج',
|
||||
'lookup_by_tag' => 'البحث عن طريق ترميز الأصل',
|
||||
'maintenances' => 'الصيانة',
|
||||
@@ -186,6 +202,7 @@
|
||||
'sign_in' => 'تسجيل الدخول',
|
||||
'signature' => 'التوقيع',
|
||||
'skin' => 'المظهر',
|
||||
'slack_test_msg' => 'Oh hai! Looks like your Slack integration with Snipe-IT is working!',
|
||||
'some_features_disabled' => 'التثبيت التجريبي (DEMO): يتم تعطيل بعض الميزات لهذا التثبيت.',
|
||||
'site_name' => 'إسم الموقع',
|
||||
'state' => 'المنطقة / الولاية',
|
||||
@@ -206,19 +223,23 @@
|
||||
'unknown_admin' => 'إداري غير معروف',
|
||||
'username_format' => 'تنسيق اسم المستخدم',
|
||||
'update' => 'تحديث',
|
||||
'upload_filetypes_help' => 'أنواع الملفات المسموح بها هي png و gif و jpg و jpeg و doc و docx و pdf و xls و txt و lic و zip و rar. الحد الأقصى لحجم التحميل المسموح به هو: الحجم.',
|
||||
'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' => 'تم تحميلها',
|
||||
'user' => 'المستخدم',
|
||||
'accepted' => 'قبلت',
|
||||
'declined' => 'رفض',
|
||||
'unaccepted_asset_report' => 'الأصول غير المقبولة',
|
||||
'users' => 'المستخدمين',
|
||||
'viewall' => 'View All',
|
||||
'viewassets' => 'عرض الأصول المخرجة',
|
||||
'website' => 'الموقع',
|
||||
'welcome' => 'مرحباً :name',
|
||||
'years' => 'سنوات',
|
||||
'yes' => 'نعم',
|
||||
'zip' => 'الرمز البريدي',
|
||||
'noimage' => 'لم يتم تحميل أي صورة أو صورة لم يتم العثور عليها.',
|
||||
'token_expired' => 'انتهت صلاحية جلسة النموذج. حاول مرة اخرى.',
|
||||
'noimage' => 'لم يتم تحميل أي صورة أو صورة لم يتم العثور عليها.',
|
||||
'token_expired' => 'انتهت صلاحية جلسة النموذج. حاول مرة اخرى.',
|
||||
'login_enabled' => 'Login Enabled',
|
||||
'audit_due' => 'Due for Audit',
|
||||
'audit_overdue' => 'Overdue for Audit',
|
||||
];
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reminder Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
"more_info_title" => "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.<br><br>Note that is 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.',
|
||||
|
||||
|
||||
|
||||
);
|
||||
@@ -18,12 +18,12 @@ return array(
|
||||
'click_to_confirm' => 'يرجى النقر على الرابط التالي لتأكيد حسابك على :web :',
|
||||
'click_on_the_link_accessory' => 'الرجاء النقر على الرابط الموجود في الأسفل لتأكيد استلامك للملحق.',
|
||||
'click_on_the_link_asset' => 'يرجى النقر على الرابط في الجزء السفلي للتأكد من أنك قد تلقيت مادة العرض.',
|
||||
'Confirm_Asset_Checkin' => 'تأكيد فحص الأصول.',
|
||||
'Confirm_Accessory_Checkin' => 'تأكيد الإيداع المساعد.',
|
||||
'Confirm_accessory_delivery' => 'تأكيد التسليم التبعي.',
|
||||
'Confirm_license_delivery' => 'تأكيد تسليم الرخصة.',
|
||||
'Confirm_asset_delivery' => 'تأكيد تسليم الأصول.',
|
||||
'Confirm_consumable_delivery' => 'تأكيد التسليم المستهلكة.',
|
||||
'Confirm_Asset_Checkin' => 'Asset checkin confirmation',
|
||||
'Confirm_Accessory_Checkin' => 'Accessory checkin confirmation',
|
||||
'Confirm_accessory_delivery' => 'Accessory delivery confirmation',
|
||||
'Confirm_license_delivery' => 'License delivery confirmation',
|
||||
'Confirm_asset_delivery' => 'Asset delivery confirmation',
|
||||
'Confirm_consumable_delivery' => 'Consumable delivery confirmation',
|
||||
'current_QTY' => 'الكمية الحالية',
|
||||
'Days' => 'أيام',
|
||||
'days' => 'أيام',
|
||||
@@ -58,14 +58,16 @@ return array(
|
||||
'test_email' => 'اختبار البريد الإلكتروني من قنص-تكنولوجيا المعلومات',
|
||||
'test_mail_text' => 'يعتبر هذا اختبارا من نظام إدارة الأصول Snipe-IT. إذا كنت حصلت على هذا، فان البريد يعمل :)',
|
||||
'the_following_item' => 'تم ادخال العنصر التالي: ',
|
||||
'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.',
|
||||
'assets_warrantee_alert' => 'There is :count asset with a warrantee expiring in the next :threshold days.|There are :count assets with warrantees expiring in the next :threshold days.',
|
||||
'license_expiring_alert' => 'There is :count license expiring in the next :threshold days.|There are :count licenses expiring in the next :threshold days.',
|
||||
'low_inventory_alert' => 'هنالك :count عناصر أقل من الحد الأدنى للمخزون أول سوف تصبح أقل منه قريباً.',
|
||||
'assets_warrantee_alert' => 'هنالك :count أصل سوف تنتهي فترة الضمان الخاصة به في الأيام :threshold القادمة.| هنالك :count أصول سوف تنتهي فترة الضمان الخاصة بهم في الأيام :threshold القادمة.',
|
||||
'license_expiring_alert' => 'هنالك :count رخص سوف تنتهي في الأيام :threshold القادمة.',
|
||||
'to_reset' => 'لإعادة تعيين كلمة مرور على :web، رجاءا أكمل هذا النموذج:',
|
||||
'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' => 'المستخدم',
|
||||
'username' => 'اسم المستخدم',
|
||||
'welcome' => 'مرحباً :name',
|
||||
'welcome_to' => 'مرحبا بكم في :web!',
|
||||
'your_credentials' => 'أوراق اعتماد قنص-إيت الخاص بك',
|
||||
|
||||
);
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
|
||||
return [
|
||||
'sent' => 'تم إرسال رابط كلمة المرور الخاصة بك!',
|
||||
'user' => 'No matching active user found with that email.',
|
||||
'user' => 'لم يتم العثور على اسم مستخدم فعّال مرتبط بعنوان ذلك البريد الالكتروني.',
|
||||
];
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_accessories_title' => 'Относно аксесоарите',
|
||||
'about_accessories_text' => 'Аксесоарите са всички неща, които се изписват на потребителите, но нямат сериен номер (или няма нужда да бъдат конкретно проследявани). Например, това са мишки, клавиатури и др.',
|
||||
'accessory_category' => 'Категория аксесоари',
|
||||
'accessory_name' => 'Аксесоар',
|
||||
'checkout' => 'Отписване на аксесоар',
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
return array(
|
||||
|
||||
'does_not_exist' => 'Аксесоарът на съществува.',
|
||||
'does_not_exist' => 'The accessory [:id] does not exist.',
|
||||
'assoc_users' => 'От този аксесоар са предадени :count броя на потребителите. Моля впишете обратно нови или върнати и опитайте отново.',
|
||||
|
||||
'create' => array(
|
||||
|
||||
@@ -7,5 +7,8 @@
|
||||
'view' => 'Преглед на поддръжка на актив',
|
||||
'repair' => 'Ремонт',
|
||||
'maintenance' => 'Поддръжка',
|
||||
'upgrade' => 'Upgrade'
|
||||
'upgrade' => 'Upgrade',
|
||||
'calibration' => 'Calibration',
|
||||
'software_support' => 'Software Support',
|
||||
'hardware_support' => 'Hardware Support',
|
||||
];
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_categories_title' => 'Относно категориите',
|
||||
'about_categories' => 'Категориите помагат с организирането на вашите елементи. Някои примерни категории могат да бъдат "Настолни компютри","Лаптопи","Мобилни телефони","Таблети", и т.н., но може да използвате всяка категория, имаща смисъл за организацията ви.',
|
||||
'asset_categories' => 'Категории на активи',
|
||||
'category_name' => 'Име на категория',
|
||||
'checkin_email' => 'Изпращане на email до потребителя при вписване/изписване на активи.',
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
<?php
|
||||
return [
|
||||
'about_companies_title' => 'Относно комапнии',
|
||||
'about_companies_text' => 'Компаниите могат да бъдат използвани като лесно поле за идентифициране, или за ограничаване на видимостта на активи, потребители и т.н. ако е активирана пълна поддръжка от Админ настройките.',
|
||||
'select_company' => 'Изберете компания',
|
||||
];
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_components_title' => 'Относно компонентите',
|
||||
'about_components_text' => 'Компонентите са елементи, които са част от актив, напр. HDD, RAM, и т.н..',
|
||||
'component_name' => 'Име на компонент',
|
||||
'checkin' => 'Вписване на компонент',
|
||||
'checkout' => 'Изписване на компонент',
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_consumables_title' => 'Относно консумативите',
|
||||
'about_consumables_text' => 'Консумативите са всички неща, купувани във времето. Например тонер за принтер или хартия.',
|
||||
'checkout' => 'Отписване на консумативи към потребител',
|
||||
'consumable_name' => 'Консуматив',
|
||||
'create' => 'Създаване на консуматив',
|
||||
|
||||
@@ -19,6 +19,7 @@ return array(
|
||||
'status' => 'Статус',
|
||||
'title' => 'Актив ',
|
||||
'image' => 'Изображение на устройството',
|
||||
'days_without_acceptance' => 'Дни без да е предаден'
|
||||
'days_without_acceptance' => 'Дни без да е предаден',
|
||||
'monthly_depreciation' => 'Monthly Depreciation'
|
||||
|
||||
);
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'about_kits_title' => '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. ',
|
||||
|
||||
);
|
||||
@@ -8,6 +8,7 @@ return array(
|
||||
'owner_doesnt_match_asset' => 'Активът, който се опитвате да свържете с този лиценз е притежание на друго лице, различно от това, което е определено в падащия списък.',
|
||||
'assoc_users' => 'Този лиценз понастоящем е изписан на потребител и не може да бъде изтрит. Моля, първо впишете лиценза и тогава опитайте отново да го изтриете. ',
|
||||
'select_asset_or_person' => 'Трябва да изберете актив или потребител, но не и двете.',
|
||||
'not_found' => 'License not found',
|
||||
|
||||
|
||||
'create' => array(
|
||||
|
||||
@@ -4,50 +4,60 @@ return array(
|
||||
'ad' => 'Активна директория',
|
||||
'ad_domain' => 'Домейн на активна директория',
|
||||
'ad_domain_help' => 'Това е понякога еднакво с вашия email домейн, но не винаги.',
|
||||
'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 електронна поща',
|
||||
'admin_cc_email_help' => 'Въведете допълнителни електронни адреси, ако желаете да се изпраща копие на електронните пощи при вписване и изписване на активи.',
|
||||
'is_ad' => 'Това е активна директория на сървър',
|
||||
'alert_email' => 'Изпращане на нотификации към',
|
||||
'alerts_enabled' => 'Включване на известията',
|
||||
'alert_interval' => 'Изтичаш праг на известия (в дни)',
|
||||
'alert_inv_threshold' => 'Праг на известия за запаси',
|
||||
'asset_ids' => 'ID на активи',
|
||||
'audit_interval' => 'Одитен интервал',
|
||||
'alert_email' => 'Изпращане на нотификации към',
|
||||
'alerts_enabled' => 'Включване на известията',
|
||||
'alert_interval' => 'Изтичаш праг на известия (в дни)',
|
||||
'alert_inv_threshold' => 'Праг на известия за запаси',
|
||||
'asset_ids' => 'ID на активи',
|
||||
'audit_interval' => 'Одитен интервал',
|
||||
'audit_interval_help' => 'Ако се изисква редовно да извършвате физически одит на активите си, въведете интервала в месеци.',
|
||||
'audit_warning_days' => 'Праг за предупреждение за одит',
|
||||
'audit_warning_days' => 'Праг за предупреждение за одит',
|
||||
'audit_warning_days_help' => 'Колко дни предварително трябва да ви предупреждаваме, когато активите са дължими за одит?',
|
||||
'auto_increment_assets' => 'Автоматично генериране на инвентарни номера на активите',
|
||||
'auto_increment_prefix' => 'Префикс (незадължително)',
|
||||
'auto_incrementing_help' => 'Първо включете автоматично генериране на инвентарни номера, за да включите тази опция.',
|
||||
'backups' => 'Архивиране',
|
||||
'barcode_settings' => 'Настройки на баркод',
|
||||
'auto_increment_assets' => 'Автоматично генериране на инвентарни номера на активите',
|
||||
'auto_increment_prefix' => 'Префикс (незадължително)',
|
||||
'auto_incrementing_help' => 'Първо включете автоматично генериране на инвентарни номера, за да включите тази опция.',
|
||||
'backups' => 'Архивиране',
|
||||
'barcode_settings' => 'Настройки на баркод',
|
||||
'confirm_purge' => 'Потвърдете пречистване ',
|
||||
'confirm_purge_help' => 'Въдете текста "DELETE" в клетката отдолу за да пречистите изтритите записи. Това действие не може да бъде отменено.',
|
||||
'custom_css' => 'Потребителски CSS',
|
||||
'custom_css_help' => 'Включете вашите CSS правила тук. Не използвайте <style></style> тагове.',
|
||||
'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' => 'Потребителски CSS',
|
||||
'custom_css_help' => 'Включете вашите CSS правила тук. Не използвайте <style></style> тагове.',
|
||||
'custom_forgot_pass_url' => 'Персонализиран адрес за възстановяване на паролата',
|
||||
'custom_forgot_pass_url_help' => 'Това URL ще замени вградения механизъм за възстановяване на паролата на входния екран, което е полезно за потребителите, използващи външни оторизации като LDAP. Това ефективно ще спре възможността за възстановяване на паролата за потребителите, управлявани през Sinpe-it.',
|
||||
'dashboard_message' => 'Съобщение на таблото',
|
||||
'dashboard_message_help' => 'Този текст ще се появи на таблото на всички потребители с права за достъп до таблото.',
|
||||
'default_currency' => 'Валута по подразбиране',
|
||||
'default_eula_text' => 'EULA по подразбиране',
|
||||
'default_language' => 'Език по подразбиране',
|
||||
'default_eula_help_text' => 'Можете да асоциирате специфична EULA към всяка избрана категория.',
|
||||
'default_currency' => 'Валута по подразбиране',
|
||||
'default_eula_text' => 'EULA по подразбиране',
|
||||
'default_language' => 'Език по подразбиране',
|
||||
'default_eula_help_text' => 'Можете да асоциирате специфична EULA към всяка избрана категория.',
|
||||
'display_asset_name' => 'Визуализиране на актив',
|
||||
'display_checkout_date' => 'Визуализиране на дата на изписване',
|
||||
'display_eol' => 'Визуализиране на EOL в таблиците',
|
||||
'display_qr' => 'Показване на Square кодове',
|
||||
'display_alt_barcode' => 'Показване на 1D баркод',
|
||||
'barcode_type' => '2D тип на баркод',
|
||||
'alt_barcode_type' => '1D тип на баркод',
|
||||
'display_alt_barcode' => 'Показване на 1D баркод',
|
||||
'email_logo' => 'Email Logo',
|
||||
'barcode_type' => '2D тип на баркод',
|
||||
'alt_barcode_type' => '1D тип на баркод',
|
||||
'email_logo_size' => 'Square logos in email look best. ',
|
||||
'eula_settings' => 'Настройки на EULA',
|
||||
'eula_markdown' => 'Съдържанието на EULA може да бъде форматирано с <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
|
||||
'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' => 'Допълнителен текст във футъра',
|
||||
'footer_text_help' => 'Този текст ще се визуализира в дясната част на футъра. Връзки могат да бъдат добавяни с използването на <a href="https://help.github.com/articles/github-flavored-markdown/">Github тип markdown</a>. Нови редове, хедър тагове, изображения и т.н. могат да доведат до непредвидими резултати.',
|
||||
'general_settings' => 'Общи настройки',
|
||||
'generate_backup' => 'Създаване на архив',
|
||||
'generate_backup' => 'Създаване на архив',
|
||||
'header_color' => 'Цвят на хедъра',
|
||||
'info' => 'Тези настройки позволяват да конфигурирате различни аспекти на Вашата инсталация.',
|
||||
'label_logo' => 'Label Logo',
|
||||
'label_logo_size' => 'Square logos look best - will be displayed in the top right of each asset label. ',
|
||||
'laravel' => 'Версия на Laravel',
|
||||
'ldap_enabled' => 'LDAP включен',
|
||||
'ldap_integration' => 'LDAP интеграция',
|
||||
@@ -56,9 +66,9 @@ return array(
|
||||
'ldap_login_sync_help' => 'Това единствено проверява дали LDAP може да се синхронизира успешно. Ако вашата LDAP заявка за оторизация не е коректна е възможно потребителите да не могат да влязат. НЕОБХОДИМО Е ДА ЗАПИШЕТЕ LDAP НАСТРОЙКИТЕ ПРЕДИ ТОВА.',
|
||||
'ldap_server' => 'LDAP сървър',
|
||||
'ldap_server_help' => 'Това трябва да започва с Idap:// (for unencrypted or TLS) или Idaps:// (for SSL)',
|
||||
'ldap_server_cert' => 'Валидация на LDAP SSL сертификата',
|
||||
'ldap_server_cert_ignore' => 'Допускане на невалиден SSL сертификат',
|
||||
'ldap_server_cert_help' => 'Изберете тази опция ако използвате самоподписан SSL сертификат.',
|
||||
'ldap_server_cert' => 'Валидация на LDAP SSL сертификата',
|
||||
'ldap_server_cert_ignore' => 'Допускане на невалиден SSL сертификат',
|
||||
'ldap_server_cert_help' => 'Изберете тази опция ако използвате самоподписан SSL сертификат.',
|
||||
'ldap_tls' => 'Използвайте TLS',
|
||||
'ldap_tls_help' => 'Това трябва да се маркира само ако изпълнявате STARTTLS на вашия LDAP сървър. ',
|
||||
'ldap_uname' => 'LDAP потребител за връзка',
|
||||
@@ -87,6 +97,8 @@ return array(
|
||||
'login_common_disabled_help' => 'Тази опция изключва останалите оторизационни механизми. Преди да включите тази настройка моля проверете дали REMOTE_USER механизмът работи',
|
||||
'login_remote_user_custom_logout_url_text' => 'Персонализиран адрес за изход',
|
||||
'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_print_assets' => 'Използвай при пчат',
|
||||
'logo_print_assets_help' => 'Use branding on printable asset lists ',
|
||||
@@ -101,16 +113,36 @@ return array(
|
||||
'pwd_secure_complexity' => 'Сложност на паролата',
|
||||
'pwd_secure_complexity_help' => 'Изберете правилата за сложност на паролата, които искате да приложите.',
|
||||
'pwd_secure_min' => 'Минимални знаци за паролата',
|
||||
'pwd_secure_min_help' => 'Минималната допустима стойност е 5',
|
||||
'pwd_secure_min_help' => 'Minimum permitted value is 8',
|
||||
'pwd_secure_uncommon' => 'Предотвратяване на общи пароли',
|
||||
'pwd_secure_uncommon_help' => 'Това ще забрани на потребителите да използват общи пароли от най-добрите 10 000 пароли, за които се съобщава, че са нарушени.',
|
||||
'qr_help' => 'Първо включете QR кодовете, за да извършите тези настройки.',
|
||||
'qr_text' => 'Съдържание на QR код',
|
||||
'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_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.',
|
||||
'setting' => 'Настройка',
|
||||
'settings' => 'Настройки',
|
||||
'show_alerts_in_menu' => 'Показва съобщения в главното меню',
|
||||
'show_archived_in_list' => 'Архивирани активи',
|
||||
'show_archived_in_list_text' => 'Показва архивираните активи в списъка "Всички активи"',
|
||||
'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_email_help' => 'Премахнете отметката, ако Вашата инсталация е достъпна единствено във вътрешната мрежа или през VPN.',
|
||||
'site_name' => 'Име на системата',
|
||||
@@ -118,7 +150,7 @@ return array(
|
||||
'slack_channel' => 'Slack канал',
|
||||
'slack_endpoint' => 'Slack Endpoint',
|
||||
'slack_integration' => 'Slack настройки',
|
||||
'slack_integration_help' => 'Интеграцията със Slack е незадължителна. Ако желаете да я използвате е необходимо да настроите endpoint и канал. За да конфигурирате Slack интеграцията, първо <a href=":slack_link" target="_new">създайте входящ webhook</a> във Вашия Slack акаунт.',
|
||||
'slack_integration_help' => 'Slack integration is optional, however the endpoint and channel are required if you wish to use it. To configure Slack integration, you must first <a href=":slack_link" target="_new" rel="noopener">create an incoming webhook</a> on your Slack account. Click on the <strong>Test Slack Integration</strong> button to confirm your settings are correct before saving. ',
|
||||
'slack_integration_help_button' => 'След запис на Slack информацията ще бъде показан бутон за тест.',
|
||||
'slack_test_help' => 'Тест за коректна конфигурация на интеграцията със Slack. НЕОБХОДИМО Е ПЪРВО ДА ЗАПИШЕТЕ SLACK НАСТРОЙКИТЕ.',
|
||||
'snipe_version' => 'Snipe-IT версия',
|
||||
@@ -130,6 +162,7 @@ return array(
|
||||
'update' => 'Обновяване на настройките',
|
||||
'value' => 'Стойност',
|
||||
'brand' => 'Брандиране',
|
||||
'web_brand' => 'Web Branding Type',
|
||||
'about_settings_title' => 'Относно настройките',
|
||||
'about_settings_text' => 'Тези настройки позволяват да конфигурирате различни аспекти на Вашата инсталация.',
|
||||
'labels_per_page' => 'Етикети на страница',
|
||||
@@ -184,4 +217,5 @@ return array(
|
||||
'unique_serial' => 'Unique serial numbers',
|
||||
'unique_serial_help_text' => 'Checking this box will enforce a uniqueness constraint on asset serials',
|
||||
'zerofill_count' => 'Дължина на етикети на актив, включително 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.',
|
||||
);
|
||||
|
||||
@@ -19,6 +19,7 @@ return array(
|
||||
'ldap_config_text' => 'LDAP конфигурационните настройки могат да бъдат намерени в Admin > Settings. Избраното (по изобр) местоположение ще бъде настроено за всички въведени потребители.',
|
||||
'print_assigned' => 'Печат на всички отдадени',
|
||||
'software_user' => 'Софтуерни продукти, изписани на :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' => 'Преглед на потребител :name',
|
||||
'usercsv' => 'CSV файл',
|
||||
'two_factor_admin_optin_help' => 'Текущите настройки на администратор позволяват избирателно прилагане на двуфакторова автентификация. ',
|
||||
|
||||
@@ -12,6 +12,7 @@ return array(
|
||||
'insufficient_permissions' => 'Нямате необходимите права.',
|
||||
'user_deleted_warning' => 'Този потребител е изтрит. За да редактирате данните за него или да му зададете актив, трябва първо да възстановите потребителя.',
|
||||
'ldap_not_configured' => 'Интеграцията с LDAP не е конфигурирана за тази инсталация.',
|
||||
'password_resets_sent' => 'The selected users who are activated and have a valid email addresses have been sent a password reset link.',
|
||||
|
||||
|
||||
'success' => array(
|
||||
|
||||
@@ -4,6 +4,7 @@ return [
|
||||
'send_password_link' => 'Изпрати връзка за повторно задаване на паролата',
|
||||
'email_reset_password' => 'Имейл за нулиране на паролата',
|
||||
'reset_password' => 'Нулиране на паролата',
|
||||
'saml_login' => 'Login via SAML',
|
||||
'login' => 'Логин',
|
||||
'login_prompt' => 'Моля влезте в системата',
|
||||
'forgot_password' => 'Забравих си паролата',
|
||||
|
||||
@@ -7,31 +7,39 @@ return array(
|
||||
'account_not_activated' => 'Потребителят все още не е активиран.',
|
||||
'account_suspended' => 'Потребителят е временно спрян.',
|
||||
'account_banned' => 'Потребителят е неактивен.',
|
||||
'throttle' => 'Твърде много неуспешни опити за влизане в системата. Моля опитайте отново след около :minutes минути.',
|
||||
'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' => 'Проблем при входа в системата. Моля опитайте отново.',
|
||||
'success' => 'Успешен вход в системата.',
|
||||
),
|
||||
|
||||
'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' => 'Проблем при създаването на потребителя. Моля опитайте отново.',
|
||||
'success' => 'Потребителят създаден успешно.',
|
||||
),
|
||||
|
||||
'forgot-password' => array(
|
||||
'error' => 'Проблем при извличането на код за възстановяване на паролата. Моля опитайте отново.',
|
||||
'success' => 'Връзка за възстановяване на паролата беше изпратена на електронната поща.',
|
||||
),
|
||||
|
||||
'forgot-password-confirm' => array(
|
||||
'error' => 'Проблем при промяна на паролата. Моля опитайте отново.',
|
||||
'success' => 'Паролата променена успешно.',
|
||||
),
|
||||
|
||||
'activate' => array(
|
||||
'error' => 'Проблем при активиране на потребителя. Моля опитайте отново.',
|
||||
'success' => 'Потребителят активиран успешно.',
|
||||
'forgot-password' => array(
|
||||
'error' => 'Проблем при извличането на код за възстановяване на паролата. Моля опитайте отново.',
|
||||
'success' => 'If that email address exists in our system, a password recovery email has been sent.',
|
||||
),
|
||||
|
||||
'forgot-password-confirm' => array(
|
||||
'error' => 'Проблем при промяна на паролата. Моля опитайте отново.',
|
||||
'success' => 'Паролата променена успешно.',
|
||||
),
|
||||
|
||||
|
||||
);
|
||||
|
||||
@@ -13,4 +13,5 @@ return array(
|
||||
'upload' => 'Качване',
|
||||
'select_file' => 'Изберете файл...',
|
||||
'select_files' => 'Изберете файлове...',
|
||||
'generate_labels' => '{1} Generate Label|[2,*] Generate Labels',
|
||||
);
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
'bulkaudit' => 'Групов одит',
|
||||
'bulkaudit_status' => 'Статус на одита',
|
||||
'bulk_checkout' => 'Общо отписване',
|
||||
'bystatus' => 'by Status',
|
||||
'cancel' => 'Отказ',
|
||||
'categories' => 'Категории',
|
||||
'category' => 'Категория',
|
||||
@@ -57,6 +58,7 @@
|
||||
'created' => 'Създадени артикули',
|
||||
'created_asset' => 'създадени активи',
|
||||
'created_at' => 'Създаден на',
|
||||
'record_created' => 'Record Created',
|
||||
'updated_at' => 'Обновено на',
|
||||
'currency' => '$', // this is deprecated
|
||||
'current' => 'Текущи',
|
||||
@@ -87,11 +89,23 @@
|
||||
'firstname_lastname_format' => 'Име Фамилия (jane.smith@example.com)',
|
||||
'firstname_lastname_underscore_format' => 'Име Фамилия (jane.smith@example.com)',
|
||||
'lastnamefirstinitial_format' => 'Фамилно име Инициал на собствено (smithj@example.com)',
|
||||
'firstintial_dot_lastname_format' => 'First Initial Last Name (j.smith@example.com)',
|
||||
'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' => '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' => 'First',
|
||||
'first_name' => 'Собствено име',
|
||||
'first_name_format' => 'Име (jane@example.com)',
|
||||
'files' => 'Файлове',
|
||||
'file_name' => 'Файл',
|
||||
'file_type' => 'File Type',
|
||||
'file_uploads' => 'Качени файлове',
|
||||
'generate' => 'Генериране',
|
||||
'github_markdown' => 'Това поле позволява въвеждането на <a href="https://help.github.com/articles/github-flavored-markdown/">Github вид markdown</a>.',
|
||||
@@ -111,6 +125,7 @@
|
||||
'asset_maintenances' => 'Поддръжки на активи',
|
||||
'item' => 'Информация',
|
||||
'insufficient_permissions' => 'Нямате необходимите права!',
|
||||
'kits' => 'Predefined Kits',
|
||||
'language' => 'Език',
|
||||
'last' => 'Последна',
|
||||
'last_login' => 'Последен достъп до системата',
|
||||
@@ -121,10 +136,11 @@
|
||||
'licenses' => 'Лицензи',
|
||||
'list_all' => 'Преглед на всички',
|
||||
'loading' => 'Зареждане',
|
||||
'lock_passwords' => 'Полето не може да бъде редактирано в тази конфигурация.',
|
||||
'lock_passwords' => 'This field value will not be saved in a demo installation.',
|
||||
'feature_disabled' => 'Тази функция е забранена за демо инсталацията.',
|
||||
'location' => 'Местоположение',
|
||||
'locations' => 'Местоположения',
|
||||
'logo_size' => 'Square logos look best with Logo + Text. Logo maximum display size is 50px high x 500px wide. ',
|
||||
'logout' => 'Изход',
|
||||
'lookup_by_tag' => 'Търсене по етикет на актив',
|
||||
'maintenances' => 'Профилактики',
|
||||
@@ -186,6 +202,7 @@
|
||||
'sign_in' => 'Вход',
|
||||
'signature' => 'Подпис',
|
||||
'skin' => 'Тема',
|
||||
'slack_test_msg' => 'Oh hai! Looks like your Slack integration with Snipe-IT is working!',
|
||||
'some_features_disabled' => 'DEMO MODE: Някои свойства не са разрешени за тази инсталация.',
|
||||
'site_name' => 'Име на системата',
|
||||
'state' => 'Област',
|
||||
@@ -206,19 +223,23 @@
|
||||
'unknown_admin' => 'Непознат администратор',
|
||||
'username_format' => 'Формат на потребителско име',
|
||||
'update' => 'Обновяване',
|
||||
'upload_filetypes_help' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, xls, txt, lic, zip, and rar. Max upload size allowed is :size.',
|
||||
'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' => 'Качен',
|
||||
'user' => 'Потребител',
|
||||
'accepted' => 'приет',
|
||||
'declined' => 'отказан',
|
||||
'unaccepted_asset_report' => 'Неприети активи',
|
||||
'users' => 'Потребители',
|
||||
'viewall' => 'View All',
|
||||
'viewassets' => 'Преглед на изписаните активи',
|
||||
'website' => 'Страница',
|
||||
'welcome' => 'Добре дошли, :name',
|
||||
'years' => 'години',
|
||||
'yes' => 'Да',
|
||||
'zip' => 'Пощенски код',
|
||||
'noimage' => 'Липсва изображение или не е качено.',
|
||||
'token_expired' => 'Вашата сесия за формуляр изтече. Моля опитайте отново.',
|
||||
'noimage' => 'Липсва изображение или не е качено.',
|
||||
'token_expired' => 'Вашата сесия за формуляр изтече. Моля опитайте отново.',
|
||||
'login_enabled' => 'Login Enabled',
|
||||
'audit_due' => 'Due for Audit',
|
||||
'audit_overdue' => 'Overdue for Audit',
|
||||
];
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reminder Language Lines
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The following language lines are the default lines which match reasons
|
||||
| that are given by the password broker for a password update attempt
|
||||
| has failed, such as for an invalid token or invalid new password.
|
||||
|
|
||||
*/
|
||||
|
||||
"more_info_title" => "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.<br><br>Note that is 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.',
|
||||
|
||||
|
||||
|
||||
);
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user