diff --git a/config/products.php b/config/products.php new file mode 100644 index 000000000..6eb93e2fd --- /dev/null +++ b/config/products.php @@ -0,0 +1,14 @@ +catalog->products->copy product). + // you can also add every relation that should not be copied here to skip them. + // defaults to none (which means everything is copied). + 'skipAttributesOnCopy' => [ + + ], + + // Make the original and source product 'related' via the 'product_relations' table + 'linkProductsOnCopy' => false, +]; \ No newline at end of file diff --git a/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php b/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php index c46bdf271..2f4a072e1 100644 --- a/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php @@ -51,7 +51,7 @@ class ProductDataGrid extends DataGrid ->select( 'product_flat.locale', 'product_flat.channel', - 'product_flat.product_id as product_id', + 'product_flat.product_id', 'products.sku as product_sku', 'product_flat.name as product_name', 'products.type as product_type', @@ -61,17 +61,9 @@ class ProductDataGrid extends DataGrid DB::raw('SUM(DISTINCT ' . DB::getTablePrefix() . 'product_inventories.qty) as quantity') ); - if ($this->locale !== 'all') { - $queryBuilder->where('product_flat.locale', $this->locale); - } - - if ($this->channel !== 'all') { - $queryBuilder->where('product_flat.channel', $this->channel); - } - - $queryBuilder->groupBy('product_flat.product_id'); - $queryBuilder->having('locale', $this->locale !== 'all' ? $this->locale : 'en'); - $queryBuilder->having('channel', $this->channel !== 'all' ? $this->channel : 'default'); + $queryBuilder->groupBy('product_flat.product_id', 'product_flat.locale', 'product_flat.channel'); + $queryBuilder->where('locale', $this->locale !== 'all' ? $this->locale : 'en'); + $queryBuilder->where('channel', $this->channel !== 'all' ? $this->channel : 'default'); $this->addFilter('product_id', 'product_flat.product_id'); $this->addFilter('product_name', 'product_flat.name'); @@ -195,6 +187,13 @@ class ProductDataGrid extends DataGrid public function prepareMassActions() { + $this->addAction([ + 'title' => trans('admin::app.datagrid.copy'), + 'method' => 'GET', + 'route' => 'admin.catalog.products.copy', + 'icon' => 'icon note-icon', + ]); + $this->addMassAction([ 'type' => 'delete', 'label' => trans('admin::app.datagrid.delete'), diff --git a/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php b/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php index 4c4de66c7..b81b8f711 100755 --- a/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/Customer/CustomerController.php @@ -206,6 +206,7 @@ class CustomerController extends Controller $this->customerRepository->delete($id); } else { + session()->flash('error', trans('admin::app.response.order-pending', ['name' => 'Customer'])); return response()->json(['message' => false], 400); } diff --git a/packages/Webkul/Admin/src/Http/Controllers/DashboardController.php b/packages/Webkul/Admin/src/Http/Controllers/DashboardController.php index 7a9415c33..a696aedce 100755 --- a/packages/Webkul/Admin/src/Http/Controllers/DashboardController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/DashboardController.php @@ -236,9 +236,10 @@ class DashboardController extends Controller public function getCustomerWithMostSales() { return $this->orderRepository->getModel() - ->select(DB::raw('SUM(base_grand_total) as total_base_grand_total')) - ->addSelect(DB::raw('COUNT(id) as total_orders')) - ->addSelect('id', 'customer_id', 'customer_email', 'customer_first_name', 'customer_last_name') + ->leftJoin('refunds', 'orders.id', 'refunds.order_id') + ->select(DB::raw('(SUM(orders.base_grand_total) - SUM(IFNULL(refunds.base_grand_total, 0))) as total_base_grand_total')) + ->addSelect(DB::raw('COUNT(orders.id) as total_orders')) + ->addSelect('orders.id', 'customer_id', 'customer_email', 'customer_first_name', 'customer_last_name') ->where('orders.created_at', '>=', $this->startDate) ->where('orders.created_at', '<=', $this->endDate) ->where('orders.status', '<>', 'closed') diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php index 07ab2fc32..2182968a9 100755 --- a/packages/Webkul/Admin/src/Http/routes.php +++ b/packages/Webkul/Admin/src/Http/routes.php @@ -273,6 +273,10 @@ Route::group(['middleware' => ['web']], function () { 'redirect' => 'admin.catalog.products.edit', ])->name('admin.catalog.products.store'); + Route::get('products/copy/{id}', 'Webkul\Product\Http\Controllers\ProductController@copy')->defaults('_config', [ + 'view' => 'admin::catalog.products.edit', + ])->name('admin.catalog.products.copy'); + Route::get('/products/edit/{id}', 'Webkul\Product\Http\Controllers\ProductController@edit')->defaults('_config', [ 'view' => 'admin::catalog.products.edit', ])->name('admin.catalog.products.edit'); diff --git a/packages/Webkul/Admin/src/Resources/lang/ar/app.php b/packages/Webkul/Admin/src/Resources/lang/ar/app.php index 0c941c43c..7ee6d855b 100644 --- a/packages/Webkul/Admin/src/Resources/lang/ar/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ar/app.php @@ -1,20 +1,22 @@ 'حفظ', - 'create' => 'خلق', - 'update' => 'تحديث', - 'delete' => 'حذف', - 'failed' => 'فشل', - 'store' => 'متجر', - 'image' => 'صورة', - 'no result' => 'لا نتيجة', - 'product' => 'المنتج', - 'attribute' => 'ينسب', - 'actions' => 'أجراءات', - 'id' => 'ID', - 'action' => 'عمل', - 'yes' => 'نعم', + 'save' => 'حفظ', + 'create' => 'خلق', + 'update' => 'تحديث', + 'delete' => 'حذف', + 'copy-of' => 'نسخة من ', + 'copy-of-slug' => 'نسخة-من-', + 'failed' => 'فشل', + 'store' => 'متجر', + 'image' => 'صورة', + 'no result' => 'لا نتيجة', + 'product' => 'المنتج', + 'attribute' => 'ينسب', + 'actions' => 'أجراءات', + 'id' => 'ID', + 'action' => 'عمل', + 'yes' => 'نعم', 'no' => 'لا', 'true' => 'صحيح', 'false' => 'خاطئة', @@ -138,27 +140,28 @@ return [ 'datagrid' => [ 'mass-ops' => [ - 'method-error' => 'خطأ! تم اكتشاف طريقة خاطئة ، الرجاء التحقق من تشكيل حركة الكتلة', + 'method-error' => 'خطأ! تم اكتشاف طريقة خاطئة ، الرجاء التحقق من تشكيل حركة الكتلة', 'delete-success' => "تم حذف المورد بنجاح :Selected", 'partial-action' => 'ولم تنفذ بعض الإجراءات بسبب القيود المفروضة على النظام :resource', 'update-success' => "تم تحديث المورد بنجاح :Selected", - 'no-resource' => 'المورد المقدم غير كاف للعمل' + 'no-resource' => 'المورد المقدم غير كاف للعمل', ], - 'id' => 'ID', - 'status' => 'الحالة', - 'code' => 'رمز', - 'admin-name' => 'اسم', - 'name' => 'اسم', - 'direction' => 'اتجاه', - 'fullname' => 'الاسم الكامل', - 'type' => 'النوع', - 'required' => 'مطلوب', - 'unique' => 'فريد', - 'per-locale' => 'على أساس اللغة', - 'per-channel' => 'قائم على القناة', - 'position' => 'موضع', - 'locale' => 'لغة', + 'id' => 'ID', + 'status' => 'الحالة', + 'code' => 'رمز', + 'admin-name' => 'اسم', + 'copy' => 'نسخ', + 'name' => 'اسم', + 'direction' => 'اتجاه', + 'fullname' => 'الاسم الكامل', + 'type' => 'النوع', + 'required' => 'مطلوب', + 'unique' => 'فريد', + 'per-locale' => 'على أساس اللغة', + 'per-channel' => 'قائم على القناة', + 'position' => 'موضع', + 'locale' => 'لغة', 'hostname' => 'اسم المضيف', 'email' => 'البريد الإلكتروني', 'group' => 'المجموعة', @@ -1201,17 +1204,20 @@ return [ ], 'response' => [ - 'being-used' => ':source في :name يتم استخدام هذا المورد', - 'cannot-delete-default' => 'لا يمكن حذف القناة الافتراضية', - 'create-success' => 'إنشاء الاسم بنجاح:name', - 'update-success' => 'تحديث الاسم بنجاح :name ', - 'delete-success' => 'حذف الاسم بنجاح :name', - 'delete-failed' => ':name حدث خطأ أثناء حذف', - 'last-delete-error' => 'مطلوب name: واحد على الأقل', - 'user-define-error' => 'لا يستطيع حذف نظام :name', - 'attribute-error' => 'في المنتجات القابلة للتكوين :name يستخدم ' , - 'attribute-product-error' => 'في المنتجات :name يستخدم ' , - 'customer-associate' => 'لا يمكن حذف :name لأن العميل مرتبط بهذه المجموعة.', + 'being-used' => ':source في :name يتم استخدام هذا المورد', + 'product-copied' => 'تم نسخ المنتج', + 'error-while-copying' => 'خطأ في نسخ المنتج', + 'product-can-not-be-copied' => 'لا يمكن نسخ منتجات الحجز', + 'cannot-delete-default' => 'لا يمكن حذف القناة الافتراضية', + 'create-success' => 'إنشاء الاسم بنجاح:name', + 'update-success' => 'تحديث الاسم بنجاح :name ', + 'delete-success' => 'حذف الاسم بنجاح :name', + 'delete-failed' => ':name حدث خطأ أثناء حذف', + 'last-delete-error' => 'مطلوب name: واحد على الأقل', + 'user-define-error' => 'لا يستطيع حذف نظام :name', + 'attribute-error' => 'في المنتجات القابلة للتكوين :name يستخدم ', + 'attribute-product-error' => 'في المنتجات :name يستخدم ', + 'customer-associate' => 'لا يمكن حذف :name لأن العميل مرتبط بهذه المجموعة.', 'currency-delete-error' => 'يتم تعيين هذه العملة كعملة أساسية القناة لذلك لا يمكن حذفها.', 'upload-success' => 'بنجاح :name تم تحميل', 'delete-category-root' => 'لا يستطيع حذف الجذر الفئة', diff --git a/packages/Webkul/Admin/src/Resources/lang/de/app.php b/packages/Webkul/Admin/src/Resources/lang/de/app.php index 192909b92..c024a5d0e 100755 --- a/packages/Webkul/Admin/src/Resources/lang/de/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/de/app.php @@ -1,1338 +1,1340 @@ 'Speichern', - 'copy-of' => 'Kopie von', - 'create' => 'Erstellen', - 'update' => 'Update', - 'delete' => 'Löschen', - 'failed' => 'Fehlgeschlagen', - 'store' => 'Speichern', - 'image' => 'Bild', - 'no result' => 'Kein Ergebnis', - 'product' => 'Produkt', - 'attribute' => 'Attribut', - 'actions' => 'Aktionen', - 'id' => 'Id', - 'action' => 'Aktion', - 'yes' => 'Ja', - 'no' => 'Nein', - 'true' => 'Wahr', - 'false' => 'Falsch', - 'apply' => 'Anwenden', - 'label' => 'Label', - 'name' => 'Name', - 'title' => 'Titel', - 'code' => 'Code', - 'type' => 'Typ', - 'required' => 'Erforderlich', - 'unique' => 'Einzigartig', - 'locale-based' => 'Sprachabhängig', +return [ + 'save' => 'Speichern', + 'copy-of' => 'Kopie von ', + 'copy-of-slug' => 'kopie-von-', + 'create' => 'Erstellen', + 'update' => 'Update', + 'delete' => 'Löschen', + 'failed' => 'Fehlgeschlagen', + 'store' => 'Speichern', + 'image' => 'Bild', + 'no result' => 'Kein Ergebnis', + 'product' => 'Produkt', + 'attribute' => 'Attribut', + 'actions' => 'Aktionen', + 'id' => 'Id', + 'action' => 'Aktion', + 'yes' => 'Ja', + 'no' => 'Nein', + 'true' => 'Wahr', + 'false' => 'Falsch', + 'apply' => 'Anwenden', + 'label' => 'Label', + 'name' => 'Name', + 'title' => 'Titel', + 'code' => 'Code', + 'type' => 'Typ', + 'required' => 'Erforderlich', + 'unique' => 'Einzigartig', + 'locale-based' => 'Sprachabhängig', 'channel-based' => 'Channelabhängig', - 'status' => 'Status', + 'status' => 'Status', 'select-option' => 'Wählen Sie eine Option', - 'category' => 'Kategorie', - 'common' => - array ( + 'category' => 'Kategorie', + 'common' => + [ 'no-result-found' => 'Wir konnten keine Aufzeichnungen finden.', - 'country' => 'Land', - 'state' => 'Staat', - 'true' => 'Wahr', - 'false' => 'Falsch', - ), - 'layouts' => - array ( - 'my-account' => 'Mein Konto', - 'logout' => 'Logout', - 'visit-shop' => 'Shop besuchen', - 'dashboard' => 'Dashboard', - 'sales' => 'Vertrieb', - 'orders' => 'Bestellungen', - 'shipments' => 'Sendungen', - 'invoices' => 'Rechnungen', - 'refunds' => 'Erstattungen', - 'catalog' => 'Katalog', - 'products' => 'Produkte', - 'categories' => 'Kategorien', - 'attributes' => 'Attribute', - 'attribute-families' => 'Attributgruppen', - 'customers' => 'Kunden', - 'groups' => 'Gruppen', - 'reviews' => 'Bewertungen', + 'country' => 'Land', + 'state' => 'Staat', + 'true' => 'Wahr', + 'false' => 'Falsch', + ], + 'layouts' => + [ + 'my-account' => 'Mein Konto', + 'logout' => 'Logout', + 'visit-shop' => 'Shop besuchen', + 'dashboard' => 'Dashboard', + 'sales' => 'Vertrieb', + 'orders' => 'Bestellungen', + 'shipments' => 'Sendungen', + 'invoices' => 'Rechnungen', + 'refunds' => 'Erstattungen', + 'catalog' => 'Katalog', + 'products' => 'Produkte', + 'categories' => 'Kategorien', + 'attributes' => 'Attribute', + 'attribute-families' => 'Attributgruppen', + 'customers' => 'Kunden', + 'groups' => 'Gruppen', + 'reviews' => 'Bewertungen', 'newsletter-subscriptions' => 'Newsletter-Abonnements', - 'configure' => 'Konfigurieren', - 'settings' => 'Einstellungen', - 'locales' => 'Sprachen', - 'currencies' => 'Währungen', - 'exchange-rates' => 'Wechselkurse', - 'inventory-sources' => 'Inventar-Quellen', - 'channels' => 'Kanäle', - 'users' => 'Benutzer', - 'roles' => 'Rollen', - 'sliders' => 'Slider', - 'taxes' => 'Steuern', - 'tax-categories' => 'Steuer-Kategorien', - 'tax-rates' => 'Steuersätze', - 'promotions' => 'Promotions', - 'discount' => 'Rabatt', - 'cms' => 'CMS', - ), - 'acl' => - array ( - 'dashboard' => 'Dashboard', - 'sales' => 'Vertrieb', - 'orders' => 'Bestellungen', - 'shipments' => 'Sendungen', - 'invoices' => 'Rechnungen', - 'catalog' => 'Katalog', - 'products' => 'Produkte', - 'categories' => 'Kategorien', - 'attributes' => 'Attribute', - 'attribute-families' => 'Attributgruppen', - 'customers' => 'Kunden', - 'groups' => 'Gruppen', - 'reviews' => 'Bewertungen', + 'configure' => 'Konfigurieren', + 'settings' => 'Einstellungen', + 'locales' => 'Sprachen', + 'currencies' => 'Währungen', + 'exchange-rates' => 'Wechselkurse', + 'inventory-sources' => 'Inventar-Quellen', + 'channels' => 'Kanäle', + 'users' => 'Benutzer', + 'roles' => 'Rollen', + 'sliders' => 'Slider', + 'taxes' => 'Steuern', + 'tax-categories' => 'Steuer-Kategorien', + 'tax-rates' => 'Steuersätze', + 'promotions' => 'Promotions', + 'discount' => 'Rabatt', + 'cms' => 'CMS', + ], + 'acl' => + [ + 'dashboard' => 'Dashboard', + 'sales' => 'Vertrieb', + 'orders' => 'Bestellungen', + 'shipments' => 'Sendungen', + 'invoices' => 'Rechnungen', + 'catalog' => 'Katalog', + 'products' => 'Produkte', + 'categories' => 'Kategorien', + 'attributes' => 'Attribute', + 'attribute-families' => 'Attributgruppen', + 'customers' => 'Kunden', + 'groups' => 'Gruppen', + 'reviews' => 'Bewertungen', 'newsletter-subscriptions' => 'Newsletter-Abonnements', - 'configure' => 'Konfigurieren', - 'settings' => 'Einstellungen', - 'locales' => 'Sprachen', - 'currencies' => 'Währungen', - 'exchange-rates' => 'Wechselkurse', - 'inventory-sources' => 'Inventarquellen', - 'channels' => 'Kanäle', - 'users' => 'Benutzer', - 'roles' => 'Rollen', - 'sliders' => 'Sliders', - 'taxes' => 'Steuern', - 'tax-categories' => 'Steuerkategorien', - 'tax-rates' => 'Steuersätze', - 'edit' => 'Bearbeiten', - 'create' => 'Hinzufügen', - 'delete' => 'Löschen', - 'promotions' => 'Promotions', - 'cart-rules' => 'Warenkorbregeln', - 'catalog-rules' => 'Katalogregeln', - ), - 'dashboard' => - array ( - 'title' => 'Dashboard', - 'from' => 'Von', - 'to' => 'An', - 'total-customers' => 'Anzahl Kunden', - 'total-orders' => 'Anzahl Aufträge', - 'total-sale' => 'Gesamterlös', - 'average-sale' => 'Durchschnitt pro Verkauf', - 'increased' => ':progress%', - 'decreased' => ':progress%', - 'sales' => 'Vertrieb', + 'configure' => 'Konfigurieren', + 'settings' => 'Einstellungen', + 'locales' => 'Sprachen', + 'currencies' => 'Währungen', + 'exchange-rates' => 'Wechselkurse', + 'inventory-sources' => 'Inventarquellen', + 'channels' => 'Kanäle', + 'users' => 'Benutzer', + 'roles' => 'Rollen', + 'sliders' => 'Sliders', + 'taxes' => 'Steuern', + 'tax-categories' => 'Steuerkategorien', + 'tax-rates' => 'Steuersätze', + 'edit' => 'Bearbeiten', + 'create' => 'Hinzufügen', + 'delete' => 'Löschen', + 'promotions' => 'Promotions', + 'cart-rules' => 'Warenkorbregeln', + 'catalog-rules' => 'Katalogregeln', + ], + 'dashboard' => + [ + 'title' => 'Dashboard', + 'from' => 'Von', + 'to' => 'An', + 'total-customers' => 'Anzahl Kunden', + 'total-orders' => 'Anzahl Aufträge', + 'total-sale' => 'Gesamterlös', + 'average-sale' => 'Durchschnitt pro Verkauf', + 'increased' => ':progress%', + 'decreased' => ':progress%', + 'sales' => 'Vertrieb', 'top-performing-categories' => 'Top Kategorien', - 'product-count' => ':count Produkte', - 'top-selling-products' => 'Top Produkte', - 'sale-count' => ':count Verkäufe', - 'customer-with-most-sales' => 'Kunden Mit Dem Meisten Umsatz', - 'order-count' => ':count Bestellungen', - 'revenue' => 'Einnahmen :total', - 'stock-threshold' => 'Lagerbestand', - 'qty-left' => ':qty Verbleibend', - ), - 'datagrid' => - array ( - 'mass-ops' => - array ( - 'method-error' => 'Fehler! Falsche Methode erkannt, überprüfen Sie die Konfiguration der Massenaktion', + 'product-count' => ':count Produkte', + 'top-selling-products' => 'Top Produkte', + 'sale-count' => ':count Verkäufe', + 'customer-with-most-sales' => 'Kunden Mit Dem Meisten Umsatz', + 'order-count' => ':count Bestellungen', + 'revenue' => 'Einnahmen :total', + 'stock-threshold' => 'Lagerbestand', + 'qty-left' => ':qty Verbleibend', + ], + 'datagrid' => + [ + 'mass-ops' => + [ + 'method-error' => 'Fehler! Falsche Methode erkannt, überprüfen Sie die Konfiguration der Massenaktion', 'delete-success' => 'Ausgewählte :resource wurden erfolgreich gelöscht', 'partial-action' => 'Einige Aktionen wurden nicht durchgeführt, aufgrund von System-Einschränkungen von :resource', 'update-success' => 'Ausgewählt :resource wurden erfolgreich aktualisiert', - 'no-resource' => 'Die bereitgestellte Ressource reicht für die Aktion nicht aus', - ), - 'id' => 'Id', - 'status' => 'Status', - 'code' => 'Code', - 'admin-name' => 'Name', - 'name' => 'Name', - 'direction' => 'Richtung', - 'fullname' => 'Vollständiger Name', - 'type' => 'Typ', - 'copy' => 'Kopieren', - 'required' => 'Erforderlich', - 'unique' => 'Einzigartig', - 'per-locale' => 'Sprach-basierend', - 'per-channel' => 'Channel-basierend', - 'position' => 'Position', - 'locale' => 'Sprache', - 'hostname' => 'Hostname', - 'email' => 'E-Mail', - 'group' => 'Gruppe', - 'phone' => 'Telefon', - 'gender' => 'Geschlecht', - 'title' => 'Titel', - 'layout' => 'Layout', - 'url-key' => 'URL-Schlüssel', - 'comment' => 'Kommentar', - 'product-name' => 'Produkt', - 'currency-name' => 'Währungsname', - 'exch-rate' => 'Tauschrate', - 'priority' => 'Priorität', - 'subscribed' => 'Abonniert', - 'base-total' => 'Basis Gesamt', - 'grand-total' => 'Gesamtsumme', - 'order-date' => 'Bestelldatum', - 'channel-name' => 'Kanal Name', - 'billed-to' => 'Rechnung an', - 'shipped-to' => 'Versendet an', - 'order-id' => 'Auftragsnummer', - 'invoice-date' => 'Rechnungsdatum', - 'total-qty' => 'Gesamtmenge', + 'no-resource' => 'Die bereitgestellte Ressource reicht für die Aktion nicht aus', + ], + 'id' => 'Id', + 'status' => 'Status', + 'code' => 'Code', + 'admin-name' => 'Name', + 'name' => 'Name', + 'direction' => 'Richtung', + 'fullname' => 'Vollständiger Name', + 'type' => 'Typ', + 'copy' => 'Kopieren', + 'required' => 'Erforderlich', + 'unique' => 'Einzigartig', + 'per-locale' => 'Sprach-basierend', + 'per-channel' => 'Channel-basierend', + 'position' => 'Position', + 'locale' => 'Sprache', + 'hostname' => 'Hostname', + 'email' => 'E-Mail', + 'group' => 'Gruppe', + 'phone' => 'Telefon', + 'gender' => 'Geschlecht', + 'title' => 'Titel', + 'layout' => 'Layout', + 'url-key' => 'URL-Schlüssel', + 'comment' => 'Kommentar', + 'product-name' => 'Produkt', + 'currency-name' => 'Währungsname', + 'exch-rate' => 'Tauschrate', + 'priority' => 'Priorität', + 'subscribed' => 'Abonniert', + 'base-total' => 'Basis Gesamt', + 'grand-total' => 'Gesamtsumme', + 'order-date' => 'Bestelldatum', + 'channel-name' => 'Kanal Name', + 'billed-to' => 'Rechnung an', + 'shipped-to' => 'Versendet an', + 'order-id' => 'Auftragsnummer', + 'invoice-date' => 'Rechnungsdatum', + 'total-qty' => 'Gesamtmenge', 'inventory-source' => 'Inventar Quelle', - 'shipment-date' => 'Versand Datum', - 'shipment-to' => 'Versand', - 'sku' => 'SKU', - 'price' => 'Preis', - 'qty' => 'Menge', - 'permission-type' => 'Berechtigungsart', - 'identifier' => 'Bezeichner', - 'state' => 'Bundesland', - 'country' => 'Land', - 'tax-rate' => 'Rate', - 'role' => 'Rolle', - 'sub-total' => 'Zwischensumme', - 'no-of-products' => 'Anzahl der Produkte', + 'shipment-date' => 'Versand Datum', + 'shipment-to' => 'Versand', + 'sku' => 'SKU', + 'price' => 'Preis', + 'qty' => 'Menge', + 'permission-type' => 'Berechtigungsart', + 'identifier' => 'Bezeichner', + 'state' => 'Bundesland', + 'country' => 'Land', + 'tax-rate' => 'Rate', + 'role' => 'Rolle', + 'sub-total' => 'Zwischensumme', + 'no-of-products' => 'Anzahl der Produkte', 'attribute-family' => 'Attributgruppe', - 'starts-from' => 'Beginnt von', - 'ends-till' => 'Endet bis', - 'per-cust' => 'Pro Kunde', - 'usage-throttle' => 'Einsatzzeiten', - 'for-guest' => 'Für Gäste', - 'order_number' => 'Auftragsnummer', - 'refund-date' => 'Rückerstattung Datum', - 'refunded' => 'Erstattet', - 'start' => 'Starten', - 'end' => 'Ende', - 'active' => 'Aktiv', - 'inactive' => 'Inaktiv', - 'true' => 'Wahr', - 'false' => 'Falsch', - 'approved' => 'Genehmigt', - 'pending' => 'Ausstehend', - 'disapproved' => 'Abgelehnt', - 'coupon-code' => 'Gutschein-Code', - 'times-used' => 'Mal Verwendet', - 'created-date' => 'Erstellt-Datum', - 'expiration-date' => 'Ablaufdatum', - 'edit' => 'Bearbeiten', - 'delete' => 'Löschen', - 'view' => 'Anzeigen', - 'rtl' => 'RTL', - 'ltr' => 'LTR', - 'update-status' => 'Update-Status', - ), - 'account' => - array ( - 'title' => 'Mein Konto', - 'save-btn-title' => 'Speichern', - 'general' => 'Allgemein', - 'name' => 'Name', - 'email' => 'E-Mail', - 'password' => 'Passwort', + 'starts-from' => 'Beginnt von', + 'ends-till' => 'Endet bis', + 'per-cust' => 'Pro Kunde', + 'usage-throttle' => 'Einsatzzeiten', + 'for-guest' => 'Für Gäste', + 'order_number' => 'Auftragsnummer', + 'refund-date' => 'Rückerstattung Datum', + 'refunded' => 'Erstattet', + 'start' => 'Starten', + 'end' => 'Ende', + 'active' => 'Aktiv', + 'inactive' => 'Inaktiv', + 'true' => 'Wahr', + 'false' => 'Falsch', + 'approved' => 'Genehmigt', + 'pending' => 'Ausstehend', + 'disapproved' => 'Abgelehnt', + 'coupon-code' => 'Gutschein-Code', + 'times-used' => 'Mal Verwendet', + 'created-date' => 'Erstellt-Datum', + 'expiration-date' => 'Ablaufdatum', + 'edit' => 'Bearbeiten', + 'delete' => 'Löschen', + 'view' => 'Anzeigen', + 'rtl' => 'RTL', + 'ltr' => 'LTR', + 'update-status' => 'Update-Status', + ], + 'account' => + [ + 'title' => 'Mein Konto', + 'save-btn-title' => 'Speichern', + 'general' => 'Allgemein', + 'name' => 'Name', + 'email' => 'E-Mail', + 'password' => 'Passwort', 'confirm-password' => 'Passwort bestätigen', - 'change-password' => 'Änderung des Account-Passworts', + 'change-password' => 'Änderung des Account-Passworts', 'current-password' => 'Aktuelles Passwort', - ), - 'users' => - array ( + ], + 'users' => + [ 'forget-password' => - array ( - 'title' => 'Passwort vergessen', - 'header-title' => 'Passwort wiederherstellen', - 'email' => 'Registrierte E-Mail-Adresse', - 'password' => 'Passwort', + [ + 'title' => 'Passwort vergessen', + 'header-title' => 'Passwort wiederherstellen', + 'email' => 'Registrierte E-Mail-Adresse', + 'password' => 'Passwort', 'confirm-password' => 'Passwort bestätigen', - 'back-link-title' => 'Zurück zur Anmeldung', + 'back-link-title' => 'Zurück zur Anmeldung', 'submit-btn-title' => 'E-Mail zum Zurücksetzen des Passworts senden', - ), - 'reset-password' => - array ( - 'title' => 'Passwort zurücksetzen', - 'email' => 'Registrierte E-Mail-Adresse', - 'password' => 'Passwort', + ], + 'reset-password' => + [ + 'title' => 'Passwort zurücksetzen', + 'email' => 'Registrierte E-Mail-Adresse', + 'password' => 'Passwort', 'confirm-password' => 'Passwort bestätigen', - 'back-link-title' => 'Zurück zur Anmeldung', + 'back-link-title' => 'Zurück zur Anmeldung', 'submit-btn-title' => 'Passwort Zurücksetzen', - ), - 'roles' => - array ( - 'title' => 'Rollen', - 'add-role-title' => 'Rolle hinzufügen', + ], + 'roles' => + [ + 'title' => 'Rollen', + 'add-role-title' => 'Rolle hinzufügen', 'edit-role-title' => 'Rolle bearbeiten', - 'save-btn-title' => 'Rolle speichern', - 'general' => 'Allgemein', - 'name' => 'Name', - 'description' => 'Beschreibung', - 'access-control' => 'Zugangskontrolle', - 'permissions' => 'Berechtigungen', - 'custom' => 'Benutzerdefiniert', - 'all' => 'Alle', - ), - 'users' => - array ( - 'title' => 'Benutzer', - 'add-user-title' => 'Benutzer hinzufügen', - 'edit-user-title' => 'Benutzer bearbeiten', - 'save-btn-title' => 'Benutzer speichern', - 'general' => 'Allgemein', - 'email' => 'E-Mail', - 'name' => 'Name', - 'password' => 'Passwort', - 'confirm-password' => 'Passwort bestätigen', - 'status-and-role' => 'Status und Rolle', - 'role' => 'Rolle', - 'status' => 'Status', - 'account-is-active' => 'Konto ist aktiv', - 'current-password' => 'Geben Sie das aktuelle Passwort ein', - 'confirm-delete' => 'Bestätigen Sie dieses Konto zu löschen', + 'save-btn-title' => 'Rolle speichern', + 'general' => 'Allgemein', + 'name' => 'Name', + 'description' => 'Beschreibung', + 'access-control' => 'Zugangskontrolle', + 'permissions' => 'Berechtigungen', + 'custom' => 'Benutzerdefiniert', + 'all' => 'Alle', + ], + 'users' => + [ + 'title' => 'Benutzer', + 'add-user-title' => 'Benutzer hinzufügen', + 'edit-user-title' => 'Benutzer bearbeiten', + 'save-btn-title' => 'Benutzer speichern', + 'general' => 'Allgemein', + 'email' => 'E-Mail', + 'name' => 'Name', + 'password' => 'Passwort', + 'confirm-password' => 'Passwort bestätigen', + 'status-and-role' => 'Status und Rolle', + 'role' => 'Rolle', + 'status' => 'Status', + 'account-is-active' => 'Konto ist aktiv', + 'current-password' => 'Geben Sie das aktuelle Passwort ein', + 'confirm-delete' => 'Bestätigen Sie dieses Konto zu löschen', 'confirm-delete-title' => 'Bestätigen Sie das Passwort vor dem Löschen', - 'delete-last' => 'Es ist mindestens ein Administrator erforderlich.', - 'delete-success' => 'Erfolg! Benutzer gelöscht', - 'incorrect-password' => 'Das von Ihnen eingegebene Passwort ist falsch', - 'password-match' => 'Aktuelle Passwörter stimmt nicht überein.', - 'account-save' => 'Konto-Änderungen erfolgreich gespeichert.', - 'login-error' => 'Bitte überprüfen Sie Ihre Anmeldeinformationen und versuchen Sie es erneut.', - 'activate-warning' => 'Ihr Konto ist noch nicht aktiviert, kontaktieren Sie bitte den Administrator.', - ), - 'sessions' => - array ( - 'title' => 'Anmelden', - 'email' => 'E-Mail', - 'password' => 'Passwort', + 'delete-last' => 'Es ist mindestens ein Administrator erforderlich.', + 'delete-success' => 'Erfolg! Benutzer gelöscht', + 'incorrect-password' => 'Das von Ihnen eingegebene Passwort ist falsch', + 'password-match' => 'Aktuelle Passwörter stimmt nicht überein.', + 'account-save' => 'Konto-Änderungen erfolgreich gespeichert.', + 'login-error' => 'Bitte überprüfen Sie Ihre Anmeldeinformationen und versuchen Sie es erneut.', + 'activate-warning' => 'Ihr Konto ist noch nicht aktiviert, kontaktieren Sie bitte den Administrator.', + ], + 'sessions' => + [ + 'title' => 'Anmelden', + 'email' => 'E-Mail', + 'password' => 'Passwort', 'forget-password-link-title' => 'Passwort vergessen?', - 'remember-me' => 'Anmeldung merken', - 'submit-btn-title' => 'Anmelden', - ), - ), - 'sales' => - array ( - 'orders' => - array ( - 'title' => 'Bestellungen', - 'view-title' => 'Bestellung #:order_id', - 'cancel-btn-title' => 'Abbrechen', - 'shipment-btn-title' => 'Sendung', - 'invoice-btn-title' => 'Rechnung', - 'info' => 'Informationen', - 'invoices' => 'Rechnungen', - 'invoices-change-title' => 'Change invoice state', - 'invoices-change-state-desc' => 'Please select the new invoice state:', - 'invoice-status-paid' => 'Paid', - 'invoice-status-pending' => 'Pending', - 'invoice-status-overdue' => 'Overdue', - 'invoice-status-update' => 'Save changes', - 'invoice-status-confirmed' => 'The invoice state has been changed.', - 'invoice-status-error' => 'Could not update the invoice state. ', - 'shipments' => 'Sendungen', - 'order-and-account' => 'Bestellung und Rechnung', - 'order-info' => 'Bestellinformationen', - 'order-date' => 'Bestelldatum', - 'order-status' => 'Bestellstatus', - 'order-status-canceled' => 'Abgebrochen', - 'order-status-closed' => 'Geschlossen', - 'order-status-fraud' => 'Betrug', - 'order-status-pending' => 'Ausstehend', - 'order-status-pending-payment' => 'Ausstehende Zahlung', - 'order-status-processing' => 'Verarbeitung', - 'order-status-success' => 'Abgeschlossen', - 'channel' => 'Kanal', - 'customer-name' => 'Name des Kunden', - 'email' => 'E-Mail', - 'contact-number' => 'Kontakt-Nummer', - 'account-info' => 'Account-Informationen', - 'address' => 'Adresse', - 'shipping-address' => 'Versandadresse', - 'billing-address' => 'Rechnungsadresse', - 'payment-and-shipping' => 'Zahlung und Versand', - 'payment-info' => 'Zahlungsinformationen', - 'payment-method' => 'Zahlungsmethode', - 'currency' => 'Währung', - 'shipping-info' => 'Versand-Informationen', - 'shipping-method' => 'Versandart', - 'shipping-price' => 'Versandkosten', - 'products-ordered' => 'Bestellte Produkte', - 'SKU' => 'SKU', - 'product-name' => 'Produktname', - 'qty' => 'Menge', - 'item-status' => 'Produktstatus', - 'item-ordered' => 'Bestellt (:qty_ordered)', - 'item-invoice' => 'In Rechnung gestellt (:qty_invoiced)', - 'item-shipped' => 'Versand (:qty_shipped)', - 'item-canceled' => 'Abgebrochen (:qty_canceled)', - 'item-refunded' => 'Erstattet (:qty_refunded)', - 'price' => 'Preis', - 'total' => 'Insgesamt', - 'subtotal' => 'Zwischensumme', - 'shipping-handling' => 'Versand & Verpackungskosten', - 'discount' => 'Rabatt', - 'tax' => 'Umsatzsteuer', - 'tax-percent' => 'Umsatzsteuer Prozent', - 'tax-amount' => 'Umsatzsteuer Betrag', - 'discount-amount' => 'Rabatt Betrag', - 'grand-total' => 'Gesamtsumme', - 'total-paid' => 'Insgesamt Bezahlt', - 'total-refunded' => 'Insgesamt Erstattet', - 'total-due' => 'Insgesamt fällig', - 'cancel-confirm-msg' => 'Sind Sie sicher, dass Sie diese Bestellung stornieren möchten?', - 'refund-btn-title' => 'Rückerstattung', - 'refunds' => 'Erstattungen', - ), - 'invoices' => - array ( - 'title' => 'Rechnungen', - 'id' => 'Id', - 'invoice-id' => 'Rechnungsnummer', - 'date' => 'Rechnungsdatum', - 'order-id' => 'Auftragsnummer', - 'customer-name' => 'Name des Kunden', - 'status' => 'Status', - 'amount' => 'Betrag', - 'action' => 'Aktion', - 'add-title' => 'Rechnung erstellen', - 'save-btn-title' => 'Rechnung speichern', - 'qty' => 'Menge', - 'qty-ordered' => 'Bestellte Menge', - 'qty-to-invoice' => 'Menge in Rechnung zu stellen', - 'view-title' => 'Rechnung #:invoice_id', - 'bill-to' => 'Rechnung an', - 'ship-to' => 'Versenden an', - 'print' => 'Drucken', - 'order-date' => 'Bestell-Datum', - 'creation-error' => 'Die Erstellung einer Bestellrechnung ist nicht zulässig.', - 'product-error' => 'Eine Rechnung kann nicht ohne Produkte erstellt werden.', - ), - 'shipments' => - array ( - 'title' => 'Sendungen', - 'id' => 'Id', - 'date' => 'Versanddatum', - 'order-id' => 'Auftragsnummer', - 'order-date' => 'Bestelldatum', - 'customer-name' => 'Name des Kunden', - 'total-qty' => 'Menge insgesamt', - 'action' => 'Aktion', - 'add-title' => 'Sendung anlegen', - 'save-btn-title' => 'Versandkosten sparen', - 'qty-ordered' => 'Bestellte Menge', - 'qty-to-ship' => 'Menge zu versenden', - 'available-sources' => 'Verfügbaren Quellen', - 'source' => 'Quelle', - 'select-source' => 'Bitte wählen sie die Quelle', - 'qty-available' => 'Menge verfügbar', - 'inventory-source' => 'Inventarquelle', - 'carrier-title' => 'Zulieferer', - 'tracking-number' => 'Tracking-Nummer', - 'view-title' => 'Versand #:shipment_id', - 'creation-error' => 'Für diese Bestellung kann kein Versand erstellt werden.', - 'order-error' => 'Die Erstellung von Auftragssendungen ist nicht zulässig.', - 'quantity-invalid' => 'Die angeforderte Menge ist ungültig oder nicht verfügbar.', - ), - 'refunds' => - array ( - 'title' => 'Erstattungen', - 'id' => 'Id', - 'add-title' => 'Erstattung erstellen', - 'save-btn-title' => 'Rückerstattung', - 'order-id' => 'Auftragsnummer', - 'qty-ordered' => 'Bestellte Menge', - 'qty-to-refund' => 'Menge zu erstatten', - 'refund-shipping' => 'Erstattung Versand', - 'adjustment-refund' => 'Rückerstattung anpassen', - 'adjustment-fee' => 'Gebühr anpassen', - 'update-qty' => 'Mengen anpassen', - 'invalid-qty' => 'Wir haben eine ungültige Menge gefunden, um Artikel zu erstatten.', - 'refund-limit-error' => 'Das meiste Geld, das zur Rückerstattung zur Verfügung steht, ist :Höhe.', - 'refunded' => 'Erstattet', - 'date' => 'Rückerstattungsdatum', - 'customer-name' => 'Name des Kunden', - 'status' => 'Status', - 'action' => 'Aktion', - 'view-title' => 'Rückerstattung #:refund_id', - 'invalid-refund-amount-error' => 'Der Rückerstattungsbetrag sollte nicht Null sein.', - ), - ), - 'catalog' => - array ( - 'products' => - array ( - 'title' => 'Produkte', - 'add-product-btn-title' => 'Produkt hinzufügen', - 'add-title' => 'Produkt hinzufügen', - 'edit-title' => 'Produkt bearbeiten', - 'save-btn-title' => 'Produkt speichern', - 'general' => 'Allgemein', - 'product-type' => 'Produkttyp', - 'simple' => 'Einfach', - 'configurable' => 'Konfigurierbar', - 'familiy' => 'Attributgruppe', - 'sku' => 'SKU', - 'configurable-attributes' => 'Konfigurierbare Attribute', - 'attribute-header' => 'Attribut(s)', - 'attribute-option-header' => 'Attribut Option(s)', - 'no' => 'Nein', - 'yes' => 'Ja', - 'disabled' => 'Deaktiviert', - 'enabled' => 'Aktiviert', - 'add-variant-btn-title' => 'Variante hinzufügen', - 'name' => 'Name', - 'qty' => 'Menge', - 'price' => 'Preis', - 'weight' => 'Gewicht', - 'status' => 'Status', - 'add-variant-title' => 'Variante hinzufügen', + 'remember-me' => 'Anmeldung merken', + 'submit-btn-title' => 'Anmelden', + ], + ], + 'sales' => [ + 'orders' => [ + 'title' => 'Bestellungen', + 'view-title' => 'Bestellung #:order_id', + 'cancel-btn-title' => 'Abbrechen', + 'shipment-btn-title' => 'Sendung', + 'invoice-btn-title' => 'Rechnung', + 'info' => 'Informationen', + 'invoices' => 'Rechnungen', + 'invoices-change-title' => 'Rechnungsstatus ändern', + 'invoices-change-state-desc' => 'Bitte wählen Sie den neuen Rechnungsstatus', + 'invoice-status-paid' => 'Bezahlt', + 'invoice-status-pending' => 'Offen', + 'invoice-status-overdue' => 'Überfällig', + 'invoice-status-update' => 'Änderungen speichern', + 'invoice-status-confirmed' => 'Der Bestellstatus wurde verändert.', + 'invoice-status-error' => 'Fehler beim Ändern des Bestellstatus.', + 'shipments' => 'Sendungen', + 'order-and-account' => 'Bestellung und Rechnung', + 'order-info' => 'Bestellinformationen', + 'order-date' => 'Bestelldatum', + 'order-status' => 'Bestellstatus', + 'order-status-canceled' => 'Abgebrochen', + 'order-status-closed' => 'Geschlossen', + 'order-status-fraud' => 'Betrug', + 'order-status-pending' => 'Ausstehend', + 'order-status-pending-payment' => 'Ausstehende Zahlung', + 'order-status-processing' => 'Verarbeitung', + 'order-status-success' => 'Abgeschlossen', + 'channel' => 'Kanal', + 'customer-name' => 'Name des Kunden', + 'email' => 'E-Mail', + 'contact-number' => 'Kontakt-Nummer', + 'account-info' => 'Account-Informationen', + 'address' => 'Adresse', + 'shipping-address' => 'Versandadresse', + 'billing-address' => 'Rechnungsadresse', + 'payment-and-shipping' => 'Zahlung und Versand', + 'payment-info' => 'Zahlungsinformationen', + 'payment-method' => 'Zahlungsmethode', + 'currency' => 'Währung', + 'shipping-info' => 'Versand-Informationen', + 'shipping-method' => 'Versandart', + 'shipping-price' => 'Versandkosten', + 'products-ordered' => 'Bestellte Produkte', + 'SKU' => 'SKU', + 'product-name' => 'Produktname', + 'qty' => 'Menge', + 'item-status' => 'Produktstatus', + 'item-ordered' => 'Bestellt (:qty_ordered)', + 'item-invoice' => 'In Rechnung gestellt (:qty_invoiced)', + 'item-shipped' => 'Versand (:qty_shipped)', + 'item-canceled' => 'Abgebrochen (:qty_canceled)', + 'item-refunded' => 'Erstattet (:qty_refunded)', + 'price' => 'Preis', + 'total' => 'Insgesamt', + 'subtotal' => 'Zwischensumme', + 'shipping-handling' => 'Versand & Verpackungskosten', + 'discount' => 'Rabatt', + 'tax' => 'Umsatzsteuer', + 'tax-percent' => 'Umsatzsteuer Prozent', + 'tax-amount' => 'Umsatzsteuer Betrag', + 'discount-amount' => 'Rabatt Betrag', + 'grand-total' => 'Gesamtsumme', + 'total-paid' => 'Insgesamt Bezahlt', + 'total-refunded' => 'Insgesamt Erstattet', + 'total-due' => 'Insgesamt fällig', + 'cancel-confirm-msg' => 'Sind Sie sicher, dass Sie diese Bestellung stornieren möchten?', + 'refund-btn-title' => 'Rückerstattung', + 'refunds' => 'Erstattungen', + ], + 'invoices' => + [ + 'title' => 'Rechnungen', + 'id' => 'Id', + 'invoice-id' => 'Rechnungsnummer', + 'date' => 'Rechnungsdatum', + 'order-id' => 'Auftragsnummer', + 'customer-name' => 'Name des Kunden', + 'status' => 'Status', + 'amount' => 'Betrag', + 'action' => 'Aktion', + 'add-title' => 'Rechnung erstellen', + 'save-btn-title' => 'Rechnung speichern', + 'qty' => 'Menge', + 'qty-ordered' => 'Bestellte Menge', + 'qty-to-invoice' => 'Menge in Rechnung zu stellen', + 'view-title' => 'Rechnung #:invoice_id', + 'bill-to' => 'Rechnung an', + 'ship-to' => 'Versenden an', + 'print' => 'Drucken', + 'order-date' => 'Bestell-Datum', + 'creation-error' => 'Die Erstellung einer Bestellrechnung ist nicht zulässig.', + 'product-error' => 'Eine Rechnung kann nicht ohne Produkte erstellt werden.', + ], + 'shipments' => + [ + 'title' => 'Sendungen', + 'id' => 'Id', + 'date' => 'Versanddatum', + 'order-id' => 'Auftragsnummer', + 'order-date' => 'Bestelldatum', + 'customer-name' => 'Name des Kunden', + 'total-qty' => 'Menge insgesamt', + 'action' => 'Aktion', + 'add-title' => 'Sendung anlegen', + 'save-btn-title' => 'Versandkosten sparen', + 'qty-ordered' => 'Bestellte Menge', + 'qty-to-ship' => 'Menge zu versenden', + 'available-sources' => 'Verfügbaren Quellen', + 'source' => 'Quelle', + 'select-source' => 'Bitte wählen sie die Quelle', + 'qty-available' => 'Menge verfügbar', + 'inventory-source' => 'Inventarquelle', + 'carrier-title' => 'Zulieferer', + 'tracking-number' => 'Tracking-Nummer', + 'view-title' => 'Versand #:shipment_id', + 'creation-error' => 'Für diese Bestellung kann kein Versand erstellt werden.', + 'order-error' => 'Die Erstellung von Auftragssendungen ist nicht zulässig.', + 'quantity-invalid' => 'Die angeforderte Menge ist ungültig oder nicht verfügbar.', + ], + 'refunds' => + [ + 'title' => 'Erstattungen', + 'id' => 'Id', + 'add-title' => 'Erstattung erstellen', + 'save-btn-title' => 'Rückerstattung', + 'order-id' => 'Auftragsnummer', + 'qty-ordered' => 'Bestellte Menge', + 'qty-to-refund' => 'Menge zu erstatten', + 'refund-shipping' => 'Erstattung Versand', + 'adjustment-refund' => 'Rückerstattung anpassen', + 'adjustment-fee' => 'Gebühr anpassen', + 'update-qty' => 'Mengen anpassen', + 'invalid-qty' => 'Wir haben eine ungültige Menge gefunden, um Artikel zu erstatten.', + 'refund-limit-error' => 'Das meiste Geld, das zur Rückerstattung zur Verfügung steht, ist :Höhe.', + 'refunded' => 'Erstattet', + 'date' => 'Rückerstattungsdatum', + 'customer-name' => 'Name des Kunden', + 'status' => 'Status', + 'action' => 'Aktion', + 'view-title' => 'Rückerstattung #:refund_id', + 'invalid-refund-amount-error' => 'Der Rückerstattungsbetrag sollte nicht Null sein.', + ], + ], + 'catalog' => + [ + 'products' => + [ + 'title' => 'Produkte', + 'add-product-btn-title' => 'Produkt hinzufügen', + 'add-title' => 'Produkt hinzufügen', + 'edit-title' => 'Produkt bearbeiten', + 'save-btn-title' => 'Produkt speichern', + 'general' => 'Allgemein', + 'product-type' => 'Produkttyp', + 'simple' => 'Einfach', + 'configurable' => 'Konfigurierbar', + 'familiy' => 'Attributgruppe', + 'sku' => 'SKU', + 'configurable-attributes' => 'Konfigurierbare Attribute', + 'attribute-header' => 'Attribut(s)', + 'attribute-option-header' => 'Attribut Option(s)', + 'no' => 'Nein', + 'yes' => 'Ja', + 'disabled' => 'Deaktiviert', + 'enabled' => 'Aktiviert', + 'add-variant-btn-title' => 'Variante hinzufügen', + 'name' => 'Name', + 'qty' => 'Menge', + 'price' => 'Preis', + 'weight' => 'Gewicht', + 'status' => 'Status', + 'add-variant-title' => 'Variante hinzufügen', 'variant-already-exist-message' => 'Eine Variante mit denselben Attributoptionen ist bereits vorhanden.', - 'add-image-btn-title' => 'Bild hinzufügen', - 'mass-delete-success' => 'Alle ausgewählten Produkte wurden erfolgreich gelöscht', - 'mass-update-success' => 'Alle ausgewählten Produkte wurden erfolgreich aktualisiert', - 'configurable-error' => 'Bitte wählen Sie mindestens eine konfigurierbares Attribut.', - 'categories' => 'Kategorien', - 'images' => 'Bilder', - 'inventories' => 'Vorräte', - 'variations' => 'Variationen', - 'downloadable' => 'Herunterladbare Informationen', - 'links' => 'Links', - 'add-link-btn-title' => 'Link hinzufügen', - 'samples' => 'Beispiele', - 'add-sample-btn-title' => 'Beispiel hinzufügen', - 'downloads' => 'Download erlaubt', - 'file' => 'Datei', - 'sample' => 'Beispiel', - 'upload-file' => 'Datei hochladen', - 'url' => 'Url', - 'sort-order' => 'Sortierreihenfolge', - 'browse-file' => 'Datei durchsuchen', - 'product-link' => 'Verlinkte Produkte', - 'cross-selling' => 'Cross-Selling', - 'up-selling' => 'Up Selling', - 'related-products' => 'Verwandte Produkte', - 'product-search-hint' => 'Geben Sie den Produktnamen ein', - 'no-result-found' => 'Produkte nicht mit demselben Namen gefunden.', - 'searching' => 'Suche ...', - 'grouped-products' => 'Gruppierte Produkte', - 'search-products' => 'Produkte suchen', - 'channel' => 'Kanäle', - 'bundle-items' => 'Artikel bündeln', - 'add-option-btn-title' => 'Option hinzufügen', - 'option-title' => 'Option Titel', - 'input-type' => 'Input Type', - 'is-required' => 'Ist erforderlich', - 'select' => 'Select', - 'radio' => 'Radio', - 'checkbox' => 'Checkbox', - 'multiselect' => 'Multiselect', - 'new-option' => 'Neue Option', - 'is-default' => 'Ist Standard', - ), + 'add-image-btn-title' => 'Bild hinzufügen', + 'mass-delete-success' => 'Alle ausgewählten Produkte wurden erfolgreich gelöscht', + 'mass-update-success' => 'Alle ausgewählten Produkte wurden erfolgreich aktualisiert', + 'configurable-error' => 'Bitte wählen Sie mindestens eine konfigurierbares Attribut.', + 'categories' => 'Kategorien', + 'images' => 'Bilder', + 'inventories' => 'Vorräte', + 'variations' => 'Variationen', + 'downloadable' => 'Herunterladbare Informationen', + 'links' => 'Links', + 'add-link-btn-title' => 'Link hinzufügen', + 'samples' => 'Beispiele', + 'add-sample-btn-title' => 'Beispiel hinzufügen', + 'downloads' => 'Download erlaubt', + 'file' => 'Datei', + 'sample' => 'Beispiel', + 'upload-file' => 'Datei hochladen', + 'url' => 'Url', + 'sort-order' => 'Sortierreihenfolge', + 'browse-file' => 'Datei durchsuchen', + 'product-link' => 'Verlinkte Produkte', + 'cross-selling' => 'Cross-Selling', + 'up-selling' => 'Up Selling', + 'related-products' => 'Verwandte Produkte', + 'product-search-hint' => 'Geben Sie den Produktnamen ein', + 'no-result-found' => 'Produkte nicht mit demselben Namen gefunden.', + 'searching' => 'Suche ...', + 'grouped-products' => 'Gruppierte Produkte', + 'search-products' => 'Produkte suchen', + 'channel' => 'Kanäle', + 'bundle-items' => 'Artikel bündeln', + 'add-option-btn-title' => 'Option hinzufügen', + 'option-title' => 'Option Titel', + 'input-type' => 'Input Type', + 'is-required' => 'Ist erforderlich', + 'select' => 'Select', + 'radio' => 'Radio', + 'checkbox' => 'Checkbox', + 'multiselect' => 'Multiselect', + 'new-option' => 'Neue Option', + 'is-default' => 'Ist Standard', + ], 'attributes' => - array ( - 'title' => 'Attribute', - 'add-title' => 'Attribut hinzufügen', - 'edit-title' => 'Attribut bearbeiten', - 'save-btn-title' => 'Attribut speichern', - 'general' => 'Allgemein', - 'code' => 'Attribut-Code', - 'type' => 'Attribut-Typ', - 'text' => 'Text', - 'textarea' => 'Textarea', - 'price' => 'Preis', - 'boolean' => 'Boolean', - 'select' => 'Select', - 'multiselect' => 'Multiselect', - 'datetime' => 'Datetime', - 'date' => 'Datum', - 'label' => 'Label', - 'admin' => 'Admin', - 'options' => 'Optionen', - 'position' => 'Position', + [ + 'title' => 'Attribute', + 'add-title' => 'Attribut hinzufügen', + 'edit-title' => 'Attribut bearbeiten', + 'save-btn-title' => 'Attribut speichern', + 'general' => 'Allgemein', + 'code' => 'Attribut-Code', + 'type' => 'Attribut-Typ', + 'text' => 'Text', + 'textarea' => 'Textarea', + 'price' => 'Preis', + 'boolean' => 'Boolean', + 'select' => 'Select', + 'multiselect' => 'Multiselect', + 'datetime' => 'Datetime', + 'date' => 'Datum', + 'label' => 'Label', + 'admin' => 'Admin', + 'options' => 'Optionen', + 'position' => 'Position', 'add-option-btn-title' => 'Option hinzufügen', - 'validations' => 'Validierungen', - 'input_validation' => 'Eingabe-Validierung', - 'is_required' => 'Ist erforderlich', - 'is_unique' => 'Ist einzigartig', - 'number' => 'Anzahl', - 'decimal' => 'Dezimal', - 'email' => 'E-Mail', - 'url' => 'URL', - 'configuration' => 'Konfiguration', - 'status' => 'Status', - 'yes' => 'Ja', - 'no' => 'Nein', - 'value_per_locale' => 'Wert pro Sprache', - 'value_per_channel' => 'Wert pro Kanal', - 'is_filterable' => 'Verwendung in der geschichteten Navigation', - 'is_configurable' => 'Verwenden Sie diese Option, um ein konfigurierbares Produkt zu erstellen', - 'admin_name' => 'Admin-Name', - 'is_visible_on_front' => 'Sichtbar auf der Produktansichtseite im Frontend', - 'swatch_type' => 'Farbfeld-Typ', - 'dropdown' => 'Dropdown', - 'color-swatch' => 'Farbfeld', - 'image-swatch' => 'Bild Farbfeld', - 'text-swatch' => 'Text Farbfeld', - 'swatch' => 'Farbfeld', - 'image' => 'Bild', - 'file' => 'Datei', - 'checkbox' => 'Checkbox', - 'use_in_flat' => 'In Produkt Flat Tabelle erstellen', - 'is_comparable' => 'Attribut ist vergleichbar', - 'default_null_option' => 'Erstellen Sie eine leere Standardoption', - ), - 'families' => - array ( - 'title' => 'Familien', + 'validations' => 'Validierungen', + 'input_validation' => 'Eingabe-Validierung', + 'is_required' => 'Ist erforderlich', + 'is_unique' => 'Ist einzigartig', + 'number' => 'Anzahl', + 'decimal' => 'Dezimal', + 'email' => 'E-Mail', + 'url' => 'URL', + 'configuration' => 'Konfiguration', + 'status' => 'Status', + 'yes' => 'Ja', + 'no' => 'Nein', + 'value_per_locale' => 'Wert pro Sprache', + 'value_per_channel' => 'Wert pro Kanal', + 'is_filterable' => 'Verwendung in der geschichteten Navigation', + 'is_configurable' => 'Verwenden Sie diese Option, um ein konfigurierbares Produkt zu erstellen', + 'admin_name' => 'Admin-Name', + 'is_visible_on_front' => 'Sichtbar auf der Produktansichtseite im Frontend', + 'swatch_type' => 'Farbfeld-Typ', + 'dropdown' => 'Dropdown', + 'color-swatch' => 'Farbfeld', + 'image-swatch' => 'Bild Farbfeld', + 'text-swatch' => 'Text Farbfeld', + 'swatch' => 'Farbfeld', + 'image' => 'Bild', + 'file' => 'Datei', + 'checkbox' => 'Checkbox', + 'use_in_flat' => 'In Produkt Flat Tabelle erstellen', + 'is_comparable' => 'Attribut ist vergleichbar', + 'default_null_option' => 'Erstellen Sie eine leere Standardoption', + ], + 'families' => + [ + 'title' => 'Familien', 'add-family-btn-title' => 'Familie hinzufügen', - 'add-title' => 'Familie hinzufügen', - 'edit-title' => 'Familie bearbeiten', - 'save-btn-title' => 'Familie speichern', - 'general' => 'Allgemein', - 'code' => 'Familien Code', - 'name' => 'Name', - 'groups' => 'Gruppen', - 'add-group-title' => 'Gruppe hinzufügen', - 'position' => 'Position', - 'attribute-code' => 'Code', - 'type' => 'Typ', - 'add-attribute-title' => 'Attribut hinzufügen', - 'search' => 'Suche', - 'group-exist-error' => 'Eine gleichnamige Gruppe existiert bereits.', - ), + 'add-title' => 'Familie hinzufügen', + 'edit-title' => 'Familie bearbeiten', + 'save-btn-title' => 'Familie speichern', + 'general' => 'Allgemein', + 'code' => 'Familien Code', + 'name' => 'Name', + 'groups' => 'Gruppen', + 'add-group-title' => 'Gruppe hinzufügen', + 'position' => 'Position', + 'attribute-code' => 'Code', + 'type' => 'Typ', + 'add-attribute-title' => 'Attribut hinzufügen', + 'search' => 'Suche', + 'group-exist-error' => 'Eine gleichnamige Gruppe existiert bereits.', + ], 'categories' => - array ( - 'title' => 'Kategorien', - 'add-title' => 'Kategorie hinzufügen', - 'edit-title' => 'Kategorie bearbeiten', - 'save-btn-title' => 'Kategorie speichern', - 'general' => 'Allgemein', - 'name' => 'Name', - 'visible-in-menu' => 'Sichtbar im Menü', - 'yes' => 'Ja', - 'no' => 'Nein', - 'position' => 'Position', - 'display-mode' => 'Display-Modus', + [ + 'title' => 'Kategorien', + 'add-title' => 'Kategorie hinzufügen', + 'edit-title' => 'Kategorie bearbeiten', + 'save-btn-title' => 'Kategorie speichern', + 'general' => 'Allgemein', + 'name' => 'Name', + 'visible-in-menu' => 'Sichtbar im Menü', + 'yes' => 'Ja', + 'no' => 'Nein', + 'position' => 'Position', + 'display-mode' => 'Display-Modus', 'products-and-description' => 'Produkte und Beschreibung', - 'products-only' => 'Nur Produkte', - 'description-only' => 'Nur Beschreibungen', - 'description-and-images' => 'Beschreibung und Bilder', - 'description' => 'Beschreibung', - 'parent-category' => 'Übergeordnete Kategorie', - 'seo' => 'Suchmaschinen-Optimierung', - 'slug' => 'Slug', - 'meta_title' => 'Meta Titel', - 'meta_description' => 'Meta-Beschreibung', - 'meta_keywords' => 'Meta-Schlüsselworte', - 'image' => 'Bild', - 'filterable-attributes' => 'Filterbare Attribute', - 'attributes' => 'Attribute', - ), - ), + 'products-only' => 'Nur Produkte', + 'description-only' => 'Nur Beschreibungen', + 'description-and-images' => 'Beschreibung und Bilder', + 'description' => 'Beschreibung', + 'parent-category' => 'Übergeordnete Kategorie', + 'seo' => 'Suchmaschinen-Optimierung', + 'slug' => 'Slug', + 'meta_title' => 'Meta Titel', + 'meta_description' => 'Meta-Beschreibung', + 'meta_keywords' => 'Meta-Schlüsselworte', + 'image' => 'Bild', + 'filterable-attributes' => 'Filterbare Attribute', + 'attributes' => 'Attribute', + ], + ], 'configuration' => - array ( - 'title' => 'Konfiguration', + [ + 'title' => 'Konfiguration', 'save-btn-title' => 'Speichern', - 'save-message' => 'Konfiguration erfolgreich gespeichert', - 'yes' => 'Ja', - 'no' => 'Nein', - 'delete' => 'Löschen', + 'save-message' => 'Konfiguration erfolgreich gespeichert', + 'yes' => 'Ja', + 'no' => 'Nein', + 'delete' => 'Löschen', 'tax-categories' => - array ( - 'title' => 'Steuerkategorien', - 'add-title' => 'Steuerkategorie hinzufügen', - 'edit-title' => 'Steuerkategorie bearbeiten', - 'save-btn-title' => 'Steuerkategorie speichern', - 'general' => 'Steuerkategorie', - 'select-channel' => 'Wählen Sie einen Kanal', - 'name' => 'Name', - 'code' => 'Code', - 'description' => 'Beschreibung', + [ + 'title' => 'Steuerkategorien', + 'add-title' => 'Steuerkategorie hinzufügen', + 'edit-title' => 'Steuerkategorie bearbeiten', + 'save-btn-title' => 'Steuerkategorie speichern', + 'general' => 'Steuerkategorie', + 'select-channel' => 'Wählen Sie einen Kanal', + 'name' => 'Name', + 'code' => 'Code', + 'description' => 'Beschreibung', 'select-taxrates' => 'Wählen Sie die Steuersätze', - 'edit' => - array ( - 'title' => 'Steuerkategorie bearbeiten', + 'edit' => + [ + 'title' => 'Steuerkategorie bearbeiten', 'edit-button-title' => 'Steuerkategorie bearbeiten', - ), - ), - 'tax-rates' => - array ( - 'title' => 'Steuersätze', - 'add-title' => 'Steuersatz hinzufügen', - 'edit-title' => 'Steuersatz bearbeiten', + ], + ], + 'tax-rates' => + [ + 'title' => 'Steuersätze', + 'add-title' => 'Steuersatz hinzufügen', + 'edit-title' => 'Steuersatz bearbeiten', 'save-btn-title' => 'Steuersatz speichern', - 'general' => 'Steuersatz', - 'identifier' => 'Bezeichnung', - 'is_zip' => 'Postleitzahlen Reichweite aktivieren', - 'zip_from' => 'Postleitzahl von', - 'zip_to' => 'Postleitzahl bis', - 'state' => 'Staat', - 'select-state' => 'Wählen Sie eine Region, ein Bundesland oder eine Provinz aus.', - 'country' => 'Land', - 'tax_rate' => 'Rate', - 'edit' => - array ( - 'title' => 'Steuersatz bearbeiten', + 'general' => 'Steuersatz', + 'identifier' => 'Bezeichnung', + 'is_zip' => 'Postleitzahlen Reichweite aktivieren', + 'zip_from' => 'Postleitzahl von', + 'zip_to' => 'Postleitzahl bis', + 'state' => 'Staat', + 'select-state' => 'Wählen Sie eine Region, ein Bundesland oder eine Provinz aus.', + 'country' => 'Land', + 'tax_rate' => 'Rate', + 'edit' => + [ + 'title' => 'Steuersatz bearbeiten', 'edit-button-title' => 'Steuersatz bearbeiten', - ), - 'zip_code' => 'Postleitzahl', - ), - 'sales' => - array ( + ], + 'zip_code' => 'Postleitzahl', + ], + 'sales' => + [ 'shipping-method' => - array ( - 'title' => 'Versand-Methoden', + [ + 'title' => 'Versand-Methoden', 'save-btn-title' => 'Speichern', - 'description' => 'Bearbeiten', - 'active' => 'Aktiv', - 'status' => 'Status', - ), - ), - ), - 'settings' => - array ( - 'locales' => - array ( - 'title' => 'Sprachen', - 'add-title' => 'Sprache hinzufügen', - 'edit-title' => 'Sprache bearbeiten', - 'save-btn-title' => 'Sprache speichern', - 'general' => 'Allgemein', - 'code' => 'Code', - 'name' => 'Name', - 'direction' => 'Richtung', - 'create-success' => 'Sprache erfolgreich erstellt.', - 'update-success' => 'Sprache erfolgreich aktualisiert.', - 'delete-success' => 'Sprache erfolgreich gelöscht.', + 'description' => 'Bearbeiten', + 'active' => 'Aktiv', + 'status' => 'Status', + ], + ], + ], + 'settings' => + [ + 'locales' => + [ + 'title' => 'Sprachen', + 'add-title' => 'Sprache hinzufügen', + 'edit-title' => 'Sprache bearbeiten', + 'save-btn-title' => 'Sprache speichern', + 'general' => 'Allgemein', + 'code' => 'Code', + 'name' => 'Name', + 'direction' => 'Richtung', + 'create-success' => 'Sprache erfolgreich erstellt.', + 'update-success' => 'Sprache erfolgreich aktualisiert.', + 'delete-success' => 'Sprache erfolgreich gelöscht.', 'last-delete-error' => 'Mindestens eine Sprache ist erforderlich.', - ), - 'countries' => - array ( - 'title' => 'Länder', - 'add-title' => 'Land hinzufügen', + ], + 'countries' => + [ + 'title' => 'Länder', + 'add-title' => 'Land hinzufügen', 'save-btn-title' => 'Land speichern', - 'general' => 'Allgemein', - 'code' => 'Code', - 'name' => 'Name', - ), - 'currencies' => - array ( - 'title' => 'Währungen', - 'add-title' => 'Währung hinzufügen', - 'edit-title' => 'Währung bearbeiten', - 'save-btn-title' => 'Währung speichern', - 'general' => 'Allgemein', - 'code' => 'Code', - 'name' => 'Name', - 'symbol' => 'Symbol', - 'create-success' => 'Währung erfolgreich erstellt.', - 'update-success' => 'Währung erfolgreich aktualisiert.', - 'delete-success' => 'Währung erfolgreich gelöscht.', + 'general' => 'Allgemein', + 'code' => 'Code', + 'name' => 'Name', + ], + 'currencies' => + [ + 'title' => 'Währungen', + 'add-title' => 'Währung hinzufügen', + 'edit-title' => 'Währung bearbeiten', + 'save-btn-title' => 'Währung speichern', + 'general' => 'Allgemein', + 'code' => 'Code', + 'name' => 'Name', + 'symbol' => 'Symbol', + 'create-success' => 'Währung erfolgreich erstellt.', + 'update-success' => 'Währung erfolgreich aktualisiert.', + 'delete-success' => 'Währung erfolgreich gelöscht.', 'last-delete-error' => 'Mindestens eine Währung ist erforderlich.', - ), - 'exchange_rates' => - array ( - 'title' => 'Wechselkurse', - 'add-title' => 'Wechselkurs hinzufügen', - 'edit-title' => 'Wechselkurs bearbeiten', - 'save-btn-title' => 'Wechselkurs speichern', - 'general' => 'Allgemein', - 'source_currency' => 'Quell-Währung', - 'target_currency' => 'Ziel-Währung', - 'rate' => 'Rate', + ], + 'exchange_rates' => + [ + 'title' => 'Wechselkurse', + 'add-title' => 'Wechselkurs hinzufügen', + 'edit-title' => 'Wechselkurs bearbeiten', + 'save-btn-title' => 'Wechselkurs speichern', + 'general' => 'Allgemein', + 'source_currency' => 'Quell-Währung', + 'target_currency' => 'Ziel-Währung', + 'rate' => 'Rate', 'exchange-class-not-found' => ':service Wechselkursklasse nicht gefunden', - 'update-rates' => 'Rate aktualisieren mit :service', - 'create-success' => 'Wechselkurs erfolgreich erstellt.', - 'update-success' => 'Wechselkurse erfolgreichaktualisiert.', - 'delete-success' => 'Wechselkurs erfolgreich gelöscht.', - 'last-delete-error' => 'Mindestens ein Wechselkurs ist erforderlich.', - ), + 'update-rates' => 'Rate aktualisieren mit :service', + 'create-success' => 'Wechselkurs erfolgreich erstellt.', + 'update-success' => 'Wechselkurse erfolgreichaktualisiert.', + 'delete-success' => 'Wechselkurs erfolgreich gelöscht.', + 'last-delete-error' => 'Mindestens ein Wechselkurs ist erforderlich.', + ], 'inventory_sources' => - array ( - 'title' => 'Inventar-Quellen', - 'add-title' => 'Inventar Quelle hinzufügen', - 'edit-title' => 'Inventar Quelle bearbeiten', - 'save-btn-title' => 'Inventar Quelle speichern', - 'general' => 'Allgemein', - 'code' => 'Code', - 'name' => 'Name', - 'description' => 'Beschreibung', - 'source-is-active' => 'Quelle ist aktiv', - 'contact-info' => 'Kontakt-Informationen', - 'contact_name' => 'Name', - 'contact_email' => 'E-Mail', - 'contact_number' => 'Kontakt-Nummer', - 'contact_fax' => 'Fax', - 'address' => 'Quell-Adresse', - 'country' => 'Land', - 'state' => 'Staat', - 'city' => 'Stadt', - 'street' => 'Straße', - 'postcode' => 'Postleitzahl', - 'priority' => 'Priorität', - 'latitude' => 'Breite', - 'longitude' => 'Länge', - 'status' => 'Status', - 'create-success' => 'Inventar Quelle erfolgreich erstellt.', - 'update-success' => 'Inventar Quelle erfolgreich aktualisiert.', - 'delete-success' => 'Inventar Quelle erfolgreich gelöscht.', + [ + 'title' => 'Inventar-Quellen', + 'add-title' => 'Inventar Quelle hinzufügen', + 'edit-title' => 'Inventar Quelle bearbeiten', + 'save-btn-title' => 'Inventar Quelle speichern', + 'general' => 'Allgemein', + 'code' => 'Code', + 'name' => 'Name', + 'description' => 'Beschreibung', + 'source-is-active' => 'Quelle ist aktiv', + 'contact-info' => 'Kontakt-Informationen', + 'contact_name' => 'Name', + 'contact_email' => 'E-Mail', + 'contact_number' => 'Kontakt-Nummer', + 'contact_fax' => 'Fax', + 'address' => 'Quell-Adresse', + 'country' => 'Land', + 'state' => 'Staat', + 'city' => 'Stadt', + 'street' => 'Straße', + 'postcode' => 'Postleitzahl', + 'priority' => 'Priorität', + 'latitude' => 'Breite', + 'longitude' => 'Länge', + 'status' => 'Status', + 'create-success' => 'Inventar Quelle erfolgreich erstellt.', + 'update-success' => 'Inventar Quelle erfolgreich aktualisiert.', + 'delete-success' => 'Inventar Quelle erfolgreich gelöscht.', 'last-delete-error' => 'Mindestens eine Inventar-Quelle erforderlich ist.', - ), - 'channels' => - array ( - 'title' => 'Kanäle', - 'add-title' => 'Kanal hinzufügen', - 'edit-title' => 'Kanal bearbeiten', - 'save-btn-title' => 'Kanal speichern', - 'general' => 'Allgemein', - 'code' => 'Code', - 'name' => 'Name', - 'description' => 'Beschreibung', - 'hostname' => 'Hostname', + ], + 'channels' => + [ + 'title' => 'Kanäle', + 'add-title' => 'Kanal hinzufügen', + 'edit-title' => 'Kanal bearbeiten', + 'save-btn-title' => 'Kanal speichern', + 'general' => 'Allgemein', + 'code' => 'Code', + 'name' => 'Name', + 'description' => 'Beschreibung', + 'hostname' => 'Hostname', 'currencies-and-locales' => 'Währungen und Spachen', - 'locales' => 'Sprachen', - 'default-locale' => 'Standard-Sprache', - 'currencies' => 'Währungen', - 'base-currency' => 'Standard-Währung', - 'root-category' => 'Root-Kategorie', - 'inventory_sources' => 'Inventar-Quellen', - 'design' => 'Design', - 'theme' => 'Theme', - 'home_page_content' => 'Startseite Inhalt', - 'footer_content' => 'Fußzeile Inhalt', - 'logo' => 'Logo', - 'favicon' => 'Favicon', - 'create-success' => 'Kanal erfolgreich erstellt.', - 'update-success' => 'Kanal erfolgreich aktualisiert.', - 'delete-success' => 'Kanal erfolgreich gelöscht.', - 'last-delete-error' => 'Mindestens ein Kanal ist erforderlich.', - 'seo' => 'Home-Page-SEO', - 'seo-title' => 'Meta Titel', - 'seo-description' => 'Meta-Beschreibung', - 'seo-keywords' => 'Meta-keywords', - ), - 'sliders' => - array ( - 'title' => 'Sliders', - 'name' => 'Name', - 'add-title' => 'Slider erstellen', - 'edit-title' => 'Slider editieren', - 'save-btn-title' => 'Slider speichern', - 'general' => 'Allgemein', - 'image' => 'Bild', - 'content' => 'Inhalt', - 'channels' => 'Kanal', + 'locales' => 'Sprachen', + 'default-locale' => 'Standard-Sprache', + 'currencies' => 'Währungen', + 'base-currency' => 'Standard-Währung', + 'root-category' => 'Root-Kategorie', + 'inventory_sources' => 'Inventar-Quellen', + 'design' => 'Design', + 'theme' => 'Theme', + 'home_page_content' => 'Startseite Inhalt', + 'footer_content' => 'Fußzeile Inhalt', + 'logo' => 'Logo', + 'favicon' => 'Favicon', + 'create-success' => 'Kanal erfolgreich erstellt.', + 'update-success' => 'Kanal erfolgreich aktualisiert.', + 'delete-success' => 'Kanal erfolgreich gelöscht.', + 'last-delete-error' => 'Mindestens ein Kanal ist erforderlich.', + 'seo' => 'Home-Page-SEO', + 'seo-title' => 'Meta Titel', + 'seo-description' => 'Meta-Beschreibung', + 'seo-keywords' => 'Meta-keywords', + ], + 'sliders' => + [ + 'title' => 'Sliders', + 'name' => 'Name', + 'add-title' => 'Slider erstellen', + 'edit-title' => 'Slider editieren', + 'save-btn-title' => 'Slider speichern', + 'general' => 'Allgemein', + 'image' => 'Bild', + 'content' => 'Inhalt', + 'channels' => 'Kanal', 'created-success' => 'Slider erfolgreich erstellt', - 'created-fault' => 'Fehler beim Erstellen des Slider-Elements', - 'update-success' => 'Slider-Eintrag wurde erfolgreich aktualisiert', - 'update-fail' => 'Slider kann nicht aktualisiert werden', - 'delete-success' => 'Der letzte Slider kann nicht gelöscht werden', - 'delete-fail' => 'Slider erfolgreich gelöscht', - ), - 'tax-categories' => - array ( - 'title' => 'Steuerkategorien', - 'add-title' => 'Steuerkategorie erstellen', - 'edit-title' => 'Steuerkategorie bearbeiten', - 'save-btn-title' => 'Steuern-Kategorie speichern', - 'general' => 'Steuerkategorie', - 'select-channel' => 'Wählen Sie einen Kanal', - 'name' => 'Name', - 'code' => 'Code', - 'description' => 'Beschreibung', + 'created-fault' => 'Fehler beim Erstellen des Slider-Elements', + 'update-success' => 'Slider-Eintrag wurde erfolgreich aktualisiert', + 'update-fail' => 'Slider kann nicht aktualisiert werden', + 'delete-success' => 'Der letzte Slider kann nicht gelöscht werden', + 'delete-fail' => 'Slider erfolgreich gelöscht', + ], + 'tax-categories' => + [ + 'title' => 'Steuerkategorien', + 'add-title' => 'Steuerkategorie erstellen', + 'edit-title' => 'Steuerkategorie bearbeiten', + 'save-btn-title' => 'Steuern-Kategorie speichern', + 'general' => 'Steuerkategorie', + 'select-channel' => 'Wählen Sie einen Kanal', + 'name' => 'Name', + 'code' => 'Code', + 'description' => 'Beschreibung', 'select-taxrates' => 'Wählen Sie die Steuersätze', - 'edit' => - array ( - 'title' => 'Steuerkategorie bearbeiten', + 'edit' => + [ + 'title' => 'Steuerkategorie bearbeiten', 'edit-button-title' => 'Steuerkategorie bearbeiten', - ), - 'create-success' => 'Neue Steuerkategorie Angelegt', - 'create-error' => 'Fehler Bei Der Erstellung Der Steuerkategorie', - 'update-success' => 'Erfolgreich Aktualisiert, Steuerkategorie', - 'update-error' => 'Fehler Beim Update Der Steuerkategorie', - 'atleast-one' => 'Nicht Löschen Sie Die Letzte Steuerart', - 'delete' => 'Steuer Kategorie Wurde Erfolgreich Gelöscht', - ), - 'tax-rates' => - array ( - 'title' => 'Steuersätze', - 'add-title' => 'Steuersatz erstellen', - 'edit-title' => 'Steuersatz bearbeiten', + ], + 'create-success' => 'Neue Steuerkategorie Angelegt', + 'create-error' => 'Fehler Bei Der Erstellung Der Steuerkategorie', + 'update-success' => 'Erfolgreich Aktualisiert, Steuerkategorie', + 'update-error' => 'Fehler Beim Update Der Steuerkategorie', + 'atleast-one' => 'Nicht Löschen Sie Die Letzte Steuerart', + 'delete' => 'Steuer Kategorie Wurde Erfolgreich Gelöscht', + ], + 'tax-rates' => + [ + 'title' => 'Steuersätze', + 'add-title' => 'Steuersatz erstellen', + 'edit-title' => 'Steuersatz bearbeiten', 'save-btn-title' => 'Steuersatz speichern', - 'general' => 'Steuersatz', - 'identifier' => 'Bezeichner', - 'is_zip' => 'Postleitzahlen Reichweite aktivieren', - 'zip_from' => 'Postleitzahl von', - 'zip_to' => 'Postleitzahl bis', - 'state' => 'Staat', - 'select-state' => 'Wählen Sie eine Region, ein Bundesland oder eine Provinz aus.', - 'country' => 'Land', - 'tax_rate' => 'Rate', - 'edit' => - array ( - 'title' => 'Steuersatz bearbeiten', + 'general' => 'Steuersatz', + 'identifier' => 'Bezeichner', + 'is_zip' => 'Postleitzahlen Reichweite aktivieren', + 'zip_from' => 'Postleitzahl von', + 'zip_to' => 'Postleitzahl bis', + 'state' => 'Staat', + 'select-state' => 'Wählen Sie eine Region, ein Bundesland oder eine Provinz aus.', + 'country' => 'Land', + 'tax_rate' => 'Rate', + 'edit' => + [ + 'title' => 'Steuersatz bearbeiten', 'edit-button-title' => 'Steuersatz bearbeiten', - ), - 'zip_code' => 'Postleitzahl', + ], + 'zip_code' => 'Postleitzahl', 'create-success' => 'Steuersatz erfolgreich erstellt', - 'create-error' => 'Steuersatz kann nicht erstellt werden', + 'create-error' => 'Steuersatz kann nicht erstellt werden', 'update-success' => 'Steuersatz erfolgreich aktualisiert', - 'update-error' => 'Fehler! Steuersatz Kann nicht aktualisiert werden', - 'delete' => 'Steuersatz erfolgreich gelöscht', - 'atleast-one' => 'Letzter Steuersatz kann nicht gelöscht werden', - ), - 'development' => - array ( + 'update-error' => 'Fehler! Steuersatz Kann nicht aktualisiert werden', + 'delete' => 'Steuersatz erfolgreich gelöscht', + 'atleast-one' => 'Letzter Steuersatz kann nicht gelöscht werden', + ], + 'development' => + [ 'title' => 'Entwicklung', - ), - ), - 'customers' => - array ( - 'groups' => - array ( - 'add-title' => 'Gruppe hinzufügen', - 'edit-title' => 'Gruppe bearbeiten', - 'save-btn-title' => 'Gruppe speichern', - 'title' => 'Gruppen', - 'code' => 'Code', - 'name' => 'Name', + ], + ], + 'customers' => + [ + 'groups' => + [ + 'add-title' => 'Gruppe hinzufügen', + 'edit-title' => 'Gruppe bearbeiten', + 'save-btn-title' => 'Gruppe speichern', + 'title' => 'Gruppen', + 'code' => 'Code', + 'name' => 'Name', 'is_user_defined' => 'Benutzer definiert', - 'yes' => 'Ja', - ), - 'addresses' => - array ( - 'title' => ':customer_name\'s Adressen-Liste', - 'vat_id' => 'Umsatzsteuer-ID', - 'create-title' => 'Kunden-Adresse erstellen', - 'edit-title' => 'Kunden-Adresse bearbeiten', - 'title-orders' => ':customer_name Auftragsliste', - 'address-list' => 'Adressliste', - 'order-list' => 'Bestellliste', - 'address-id' => 'Adresse-ID', - 'address-1' => 'Adresse 1', - 'city' => 'Stadt', - 'state-name' => 'Staat', - 'country-name' => 'Land', - 'postcode' => 'Postleitzahl', - 'default-address' => 'Standard-Adresse', - 'yes' => 'Ja', - 'not-approved' => 'Nicht zugelassen', - 'no' => 'Nein', - 'dash' => '-', - 'delete' => 'Löschen', - 'create-btn-title' => 'Adresse hinzufügen', - 'save-btn-title' => 'Adresse speichern', - 'general' => 'Allgemein', - 'success-create' => 'Erfolg: Kunden-Adresse erstellt wurde.', - 'success-update' => 'Erfolg: Kunden-Adresse erfolgreich aktualisiert.', - 'success-delete' => 'Erfolg: Kunden-Adresse erfolgreich gelöscht.', + 'yes' => 'Ja', + ], + 'addresses' => + [ + 'title' => ':customer_name\'s Adressen-Liste', + 'vat_id' => 'Umsatzsteuer-ID', + 'create-title' => 'Kunden-Adresse erstellen', + 'edit-title' => 'Kunden-Adresse bearbeiten', + 'title-orders' => ':customer_name Auftragsliste', + 'address-list' => 'Adressliste', + 'order-list' => 'Bestellliste', + 'address-id' => 'Adresse-ID', + 'address-1' => 'Adresse 1', + 'city' => 'Stadt', + 'state-name' => 'Staat', + 'country-name' => 'Land', + 'postcode' => 'Postleitzahl', + 'default-address' => 'Standard-Adresse', + 'yes' => 'Ja', + 'not-approved' => 'Nicht zugelassen', + 'no' => 'Nein', + 'dash' => '-', + 'delete' => 'Löschen', + 'create-btn-title' => 'Adresse hinzufügen', + 'save-btn-title' => 'Adresse speichern', + 'general' => 'Allgemein', + 'success-create' => 'Erfolg: Kunden-Adresse erstellt wurde.', + 'success-update' => 'Erfolg: Kunden-Adresse erfolgreich aktualisiert.', + 'success-delete' => 'Erfolg: Kunden-Adresse erfolgreich gelöscht.', 'success-mass-delete' => 'Erfolg: Die ausgewählten Adressen wurden erfolgreich gelöscht.', - 'error-create' => 'Fehler: Kunde-Adresse nicht erstellt.', - ), - 'note' => - array ( - 'title' => 'Notiz hinzufügen', - 'save-note' => 'Notiz speichern', + 'error-create' => 'Fehler: Kunde-Adresse nicht erstellt.', + ], + 'note' => + [ + 'title' => 'Notiz hinzufügen', + 'save-note' => 'Notiz speichern', 'enter-note' => 'Hinweis eingeben', 'help-title' => 'Notiz zu diesem Kunden hinzufügen', - ), - 'customers' => - array ( - 'add-title' => 'Kunden hinzufügen', - 'edit-title' => 'Kunde bearbeiten', - 'title' => 'Kunden', - 'first_name' => 'Vorname', - 'last_name' => 'Nachname', - 'gender' => 'Geschlecht', - 'email' => 'E-Mail', - 'date_of_birth' => 'Geburtsdatum', - 'phone' => 'Telefon', - 'customer_group' => 'Kundengruppe', - 'save-btn-title' => 'Kunde speichern', - 'channel_name' => 'Kanalname', - 'state' => 'Staat', - 'select-state' => 'Wählen Sie eine Region, ein Bundesland, oder eine Provinz aus.', - 'country' => 'Land', - 'other' => 'Andere', - 'male' => 'Männlich', - 'female' => 'Weiblich', - 'group-default' => 'Die Standardgruppe kann nicht gelöscht werden.', - 'edit-help-title' => 'Kunde bearbeiten', - 'delete-help-title' => 'Kunde löschen', - 'addresses' => 'Adressen', + ], + 'customers' => + [ + 'add-title' => 'Kunden hinzufügen', + 'edit-title' => 'Kunde bearbeiten', + 'title' => 'Kunden', + 'first_name' => 'Vorname', + 'last_name' => 'Nachname', + 'gender' => 'Geschlecht', + 'email' => 'E-Mail', + 'date_of_birth' => 'Geburtsdatum', + 'phone' => 'Telefon', + 'customer_group' => 'Kundengruppe', + 'save-btn-title' => 'Kunde speichern', + 'channel_name' => 'Kanalname', + 'state' => 'Staat', + 'select-state' => 'Wählen Sie eine Region, ein Bundesland, oder eine Provinz aus.', + 'country' => 'Land', + 'other' => 'Andere', + 'male' => 'Männlich', + 'female' => 'Weiblich', + 'group-default' => 'Die Standardgruppe kann nicht gelöscht werden.', + 'edit-help-title' => 'Kunde bearbeiten', + 'delete-help-title' => 'Kunde löschen', + 'addresses' => 'Adressen', 'mass-destroy-success' => 'Kunden erfolgreich gelöscht', - 'mass-update-success' => 'Kunden erfolgreich aktualisiert', - 'status' => 'Status', - 'active' => 'Aktiv', - 'inactive' => 'Inaktiv', - ), - 'reviews' => - array ( - 'title' => 'Bewertungen', - 'edit-title' => 'Bewertung bearbeiten', - 'rating' => 'Bewertung', - 'status' => 'Status', - 'comment' => 'Kommentar', - 'pending' => 'Ausstehend', - 'approved' => 'Genehmigen', + 'mass-update-success' => 'Kunden erfolgreich aktualisiert', + 'status' => 'Status', + 'active' => 'Aktiv', + 'inactive' => 'Inaktiv', + ], + 'reviews' => + [ + 'title' => 'Bewertungen', + 'edit-title' => 'Bewertung bearbeiten', + 'rating' => 'Bewertung', + 'status' => 'Status', + 'comment' => 'Kommentar', + 'pending' => 'Ausstehend', + 'approved' => 'Genehmigen', 'disapproved' => 'Missbilligen', - ), + ], 'subscribers' => - array ( - 'title' => 'Newsletter-Abonnenten', - 'title-edit' => 'Newsletter-Abonnenten bearbeiten', - 'email' => 'E-Mail', - 'is_subscribed' => 'Abonniert', + [ + 'title' => 'Newsletter-Abonnenten', + 'title-edit' => 'Newsletter-Abonnenten bearbeiten', + 'email' => 'E-Mail', + 'is_subscribed' => 'Abonniert', 'edit-btn-title' => 'Abonnenten bearbeiten', 'update-success' => 'Der Abonnent wurde erfolgreich aktualisiert', - 'update-failed' => 'Fehler! Sie können den Abonnenten nicht kündigen', - 'delete' => 'Der Abonnent wurde erfolgreich gelöscht', - 'delete-failed' => 'Fehler! Abonnenten können nicht gelöscht werden', - ), - ), - 'promotions' => - array ( - 'cart-rules' => - array ( - 'title' => 'Warenkorbregeln', - 'add-title' => 'Warenkorbregel hinzufügen', - 'edit-title' => 'Warenkorbregel bearbeiten', - 'save-btn-title' => 'Warenkorbregel speichern', - 'rule-information' => 'Regelinformationen', - 'name' => 'Name', - 'description' => 'Beschreibung', - 'status' => 'Status', - 'is-active' => 'Warenkorbregel ist aktiv', - 'channels' => 'Kanäle', - 'customer-groups' => 'Kundengruppen', - 'coupon-type' => 'Gutscheintyp', - 'no-coupon' => 'Ohne Gutschein', - 'specific-coupon' => 'Gutscheintyp', - 'auto-generate-coupon' => 'Gutschein automatisch generieren', - 'no' => 'Nein', - 'yes' => 'Ja', - 'coupon-code' => 'Gutscheincode', - 'uses-per-coupon' => 'Verwendungen pro Gutschein', - 'uses-per-customer' => 'Verwendungen pro Kunde', + 'update-failed' => 'Fehler! Sie können den Abonnenten nicht kündigen', + 'delete' => 'Der Abonnent wurde erfolgreich gelöscht', + 'delete-failed' => 'Fehler! Abonnenten können nicht gelöscht werden', + ], + ], + 'promotions' => + [ + 'cart-rules' => + [ + 'title' => 'Warenkorbregeln', + 'add-title' => 'Warenkorbregel hinzufügen', + 'edit-title' => 'Warenkorbregel bearbeiten', + 'save-btn-title' => 'Warenkorbregel speichern', + 'rule-information' => 'Regelinformationen', + 'name' => 'Name', + 'description' => 'Beschreibung', + 'status' => 'Status', + 'is-active' => 'Warenkorbregel ist aktiv', + 'channels' => 'Kanäle', + 'customer-groups' => 'Kundengruppen', + 'coupon-type' => 'Gutscheintyp', + 'no-coupon' => 'Ohne Gutschein', + 'specific-coupon' => 'Gutscheintyp', + 'auto-generate-coupon' => 'Gutschein automatisch generieren', + 'no' => 'Nein', + 'yes' => 'Ja', + 'coupon-code' => 'Gutscheincode', + 'uses-per-coupon' => 'Verwendungen pro Gutschein', + 'uses-per-customer' => 'Verwendungen pro Kunde', 'uses-per-customer-control-info' => 'Wird nur für angemeldete Kunden verwendet.', - 'from' => 'Von', - 'to' => 'An', - 'priority' => 'Priorität', - 'conditions' => 'Bedingungen', - 'condition-type' => 'Bedingungen Typ', - 'all-conditions-true' => 'Alle Bedingungen sind erfüllt', - 'any-condition-true' => 'Mindestens eine Bedingung ist erfüllt', - 'add-condition' => 'Bedingung hinzufügen', - 'choose-condition-to-add' => 'Wählen Sie eine Bedingung zum Hinzufügen aus', - 'cart-attribute' => 'Warenkorbattribut', - 'subtotal' => 'Zwischensumme', - 'additional' => 'Zusatzinformationen', - 'total-items-qty' => 'Gesamtmenge der Artikel', - 'total-weight' => 'Gesamtgewicht', - 'payment-method' => 'Zahlungsmethode', - 'shipping-method' => 'Versandart', - 'shipping-postcode' => 'Postleitzahl', - 'shipping-state' => 'Versand Staat', - 'shipping-country' => 'Versand Land', - 'cart-item-attribute' => 'Warenkorb-Item-Attribut', - 'price-in-cart' => 'Betrag im Warenkorb', - 'qty-in-cart' => 'Menge im Warenkorb', - 'product-attribute' => 'Produkt-Attribut', - 'attribute-name-children-only' => ':attribute_name (Nur Kinder)', - 'attribute-name-parent-only' => ':attribute_name (Nur Eltern)', - 'is-equal-to' => 'Gleich', - 'is-not-equal-to' => 'Ist nicht gleich', - 'equals-or-greater-than' => 'Gleich oder größer als', - 'equals-or-less-than' => 'Gleich oder weniger als', - 'greater-than' => 'Größer als', - 'less-than' => 'Weniger als', - 'contain' => 'Enthalten', - 'contains' => 'Enthält', - 'does-not-contain' => 'Nicht enthalten', - 'actions' => 'Aktionen', - 'action-type' => 'Aktion Typ', - 'percentage-product-price' => 'Prozentsatz des Produktpreises', - 'fixed-amount' => 'Fester Betrag', - 'fixed-amount-whole-cart' => 'Fester Betrag für gesamten Warenkorb', - 'buy-x-get-y-free' => 'Kaufen Sie X, erhalten Sie Y kostenfrei', - 'discount-amount' => 'Rabattbetrag', - 'discount-quantity' => 'Maximale Anzahl reduzierter Artikel', - 'discount-step' => 'Kaufe Sie Menge X', - 'free-shipping' => 'Kostenloser Versand', - 'apply-to-shipping' => 'Auf den Versand anwenden', - 'coupon-codes' => 'Gutschein-Codes', - 'coupon-qty' => 'Gutschein Menge', - 'code-length' => 'Code-Länge', - 'code-format' => 'Code-Format', - 'alphanumeric' => 'Alphanumerisch', - 'alphabetical' => 'Alphabetisch', - 'numeric' => 'Numerisch', - 'code-prefix' => 'Code-Präfix', - 'code-suffix' => 'Code Suffix', - 'generate' => 'Generieren', - 'cart-rule-not-defind-error' => 'Warenkorb-Regel ist nicht definiert', - 'mass-delete-success' => 'Alle ausgewählten Gutscheine wurden erfolgreich gelöscht.', - 'end-other-rules' => 'Ende Andere Regeln', - 'children-categories' => 'Kategorien (Nur Kinder)', - 'parent-categories' => 'Kategorien (Nur Eltern)', - 'categories' => 'Kategorien', - 'attribute_family' => 'Attributgruppe', - ), + 'from' => 'Von', + 'to' => 'An', + 'priority' => 'Priorität', + 'conditions' => 'Bedingungen', + 'condition-type' => 'Bedingungen Typ', + 'all-conditions-true' => 'Alle Bedingungen sind erfüllt', + 'any-condition-true' => 'Mindestens eine Bedingung ist erfüllt', + 'add-condition' => 'Bedingung hinzufügen', + 'choose-condition-to-add' => 'Wählen Sie eine Bedingung zum Hinzufügen aus', + 'cart-attribute' => 'Warenkorbattribut', + 'subtotal' => 'Zwischensumme', + 'additional' => 'Zusatzinformationen', + 'total-items-qty' => 'Gesamtmenge der Artikel', + 'total-weight' => 'Gesamtgewicht', + 'payment-method' => 'Zahlungsmethode', + 'shipping-method' => 'Versandart', + 'shipping-postcode' => 'Postleitzahl', + 'shipping-state' => 'Versand Staat', + 'shipping-country' => 'Versand Land', + 'cart-item-attribute' => 'Warenkorb-Item-Attribut', + 'price-in-cart' => 'Betrag im Warenkorb', + 'qty-in-cart' => 'Menge im Warenkorb', + 'product-attribute' => 'Produkt-Attribut', + 'attribute-name-children-only' => ':attribute_name (Nur Kinder)', + 'attribute-name-parent-only' => ':attribute_name (Nur Eltern)', + 'is-equal-to' => 'Gleich', + 'is-not-equal-to' => 'Ist nicht gleich', + 'equals-or-greater-than' => 'Gleich oder größer als', + 'equals-or-less-than' => 'Gleich oder weniger als', + 'greater-than' => 'Größer als', + 'less-than' => 'Weniger als', + 'contain' => 'Enthalten', + 'contains' => 'Enthält', + 'does-not-contain' => 'Nicht enthalten', + 'actions' => 'Aktionen', + 'action-type' => 'Aktion Typ', + 'percentage-product-price' => 'Prozentsatz des Produktpreises', + 'fixed-amount' => 'Fester Betrag', + 'fixed-amount-whole-cart' => 'Fester Betrag für gesamten Warenkorb', + 'buy-x-get-y-free' => 'Kaufen Sie X, erhalten Sie Y kostenfrei', + 'discount-amount' => 'Rabattbetrag', + 'discount-quantity' => 'Maximale Anzahl reduzierter Artikel', + 'discount-step' => 'Kaufe Sie Menge X', + 'free-shipping' => 'Kostenloser Versand', + 'apply-to-shipping' => 'Auf den Versand anwenden', + 'coupon-codes' => 'Gutschein-Codes', + 'coupon-qty' => 'Gutschein Menge', + 'code-length' => 'Code-Länge', + 'code-format' => 'Code-Format', + 'alphanumeric' => 'Alphanumerisch', + 'alphabetical' => 'Alphabetisch', + 'numeric' => 'Numerisch', + 'code-prefix' => 'Code-Präfix', + 'code-suffix' => 'Code Suffix', + 'generate' => 'Generieren', + 'cart-rule-not-defind-error' => 'Warenkorb-Regel ist nicht definiert', + 'mass-delete-success' => 'Alle ausgewählten Gutscheine wurden erfolgreich gelöscht.', + 'end-other-rules' => 'Ende Andere Regeln', + 'children-categories' => 'Kategorien (Nur Kinder)', + 'parent-categories' => 'Kategorien (Nur Eltern)', + 'categories' => 'Kategorien', + 'attribute_family' => 'Attributgruppe', + ], 'catalog-rules' => - array ( - 'title' => 'Katalogregeln', - 'add-title' => 'Katalogregel hinzufügen', - 'edit-title' => 'Katalogregel bearbeiten', - 'save-btn-title' => 'Katalogregel speichern', - 'rule-information' => 'Regeliformationen', - 'name' => 'Name', - 'description' => 'Beschreibung', - 'status' => 'Status', - 'is-active' => 'Katalogregel ist aktiv', - 'channels' => 'Kanäle', - 'customer-groups' => 'Kundengruppen', - 'no' => 'Nein', - 'yes' => 'Ja', - 'from' => 'Von', - 'to' => 'An', - 'priority' => 'Priorität', - 'conditions' => 'Bedingungen', - 'condition-type' => 'Bedingungen Typ', - 'all-conditions-true' => 'Alle Bedingungen sind erfüllt', - 'any-condition-true' => 'Jede Bedingung ist wahr', - 'add-condition' => 'Bedingung hinzufügen', - 'choose-condition-to-add' => 'Wählen Sie eine Bedingung zum Hinzufügen aus', - 'product-attribute' => 'Produkt-Attribut', + [ + 'title' => 'Katalogregeln', + 'add-title' => 'Katalogregel hinzufügen', + 'edit-title' => 'Katalogregel bearbeiten', + 'save-btn-title' => 'Katalogregel speichern', + 'rule-information' => 'Regeliformationen', + 'name' => 'Name', + 'description' => 'Beschreibung', + 'status' => 'Status', + 'is-active' => 'Katalogregel ist aktiv', + 'channels' => 'Kanäle', + 'customer-groups' => 'Kundengruppen', + 'no' => 'Nein', + 'yes' => 'Ja', + 'from' => 'Von', + 'to' => 'An', + 'priority' => 'Priorität', + 'conditions' => 'Bedingungen', + 'condition-type' => 'Bedingungen Typ', + 'all-conditions-true' => 'Alle Bedingungen sind erfüllt', + 'any-condition-true' => 'Jede Bedingung ist wahr', + 'add-condition' => 'Bedingung hinzufügen', + 'choose-condition-to-add' => 'Wählen Sie eine Bedingung zum Hinzufügen aus', + 'product-attribute' => 'Produkt-Attribut', 'attribute-name-children-only' => ':attribute_name (Nur Kinder)', - 'attribute-name-parent-only' => ':attribute_name (Nur Eltern)', - 'is-equal-to' => 'Gleich', - 'is-not-equal-to' => 'Ist nicht gleich', - 'equals-or-greater-than' => 'Gleich oder größer als', - 'equals-or-less-than' => 'Gleich oder weniger als', - 'greater-than' => 'Größer als', - 'less-than' => 'Weniger als', - 'contain' => 'Enthalten', - 'contains' => 'Enthält', - 'does-not-contain' => 'Nicht enthalten', - 'actions' => 'Aktionen', - 'action-type' => 'Aktion Typ', - 'percentage-product-price' => 'Prozentsatz des Produktpreises', - 'fixed-amount' => 'Fester Betrag', - 'fixed-amount-whole-cart' => 'Fester Betrag für gesamten Warenkob', - 'buy-x-get-y-free' => 'Kaufen Sie X, erhalten Sie Y kostenfrei', - 'discount-amount' => 'Rabatt-Betrag', - 'mass-delete-success' => 'Alle ausgewählten Gutscheine wurden erfolgreich gelöscht.', - 'end-other-rules' => 'Ende Andere Regeln', - 'categories' => 'Kategorien', - 'attribute_family' => 'Attributgruppe', - ), - ), - 'error' => - array ( - 'go-to-home' => 'HOME ÖFFNEN', + 'attribute-name-parent-only' => ':attribute_name (Nur Eltern)', + 'is-equal-to' => 'Gleich', + 'is-not-equal-to' => 'Ist nicht gleich', + 'equals-or-greater-than' => 'Gleich oder größer als', + 'equals-or-less-than' => 'Gleich oder weniger als', + 'greater-than' => 'Größer als', + 'less-than' => 'Weniger als', + 'contain' => 'Enthalten', + 'contains' => 'Enthält', + 'does-not-contain' => 'Nicht enthalten', + 'actions' => 'Aktionen', + 'action-type' => 'Aktion Typ', + 'percentage-product-price' => 'Prozentsatz des Produktpreises', + 'fixed-amount' => 'Fester Betrag', + 'fixed-amount-whole-cart' => 'Fester Betrag für gesamten Warenkob', + 'buy-x-get-y-free' => 'Kaufen Sie X, erhalten Sie Y kostenfrei', + 'discount-amount' => 'Rabatt-Betrag', + 'mass-delete-success' => 'Alle ausgewählten Gutscheine wurden erfolgreich gelöscht.', + 'end-other-rules' => 'Ende Andere Regeln', + 'categories' => 'Kategorien', + 'attribute_family' => 'Attributgruppe', + ], + ], + 'error' => + [ + 'go-to-home' => 'HOME ÖFFNEN', 'in-maitainace' => 'In Bearbeitung', - 'right-back' => 'Gleich wieder zurück', - 404 => - array ( + 'right-back' => 'Gleich wieder zurück', + 404 => + [ 'page-title' => '404-Seite nicht gefunden', - 'name' => '404', - 'title' => 'Seite nicht gefunden', - 'message' => 'Die gesuchte Seite existiert nicht oder wurde verschoben. Navigieren Sie mit dem Seitenmenü.', - ), - 403 => - array ( + 'name' => '404', + 'title' => 'Seite nicht gefunden', + 'message' => 'Die gesuchte Seite existiert nicht oder wurde verschoben. Navigieren Sie mit dem Seitenmenü.', + ], + 403 => + [ 'page-title' => '403 Verboten-Fehler', - 'name' => '403', - 'title' => 'Verboten-Fehler', - 'message' => 'Sie haben keine Berechtigung um auf diese Seite zuzugreifen.', - ), - 500 => - array ( + 'name' => '403', + 'title' => 'Verboten-Fehler', + 'message' => 'Sie haben keine Berechtigung um auf diese Seite zuzugreifen.', + ], + 500 => + [ 'page-title' => '500 Interner Serverfehler', - 'name' => '500', - 'title' => 'Interner Serverfehler', - 'message' => 'Der Server hat einen internen Fehler.', - ), - 401 => - array ( + 'name' => '500', + 'title' => 'Interner Serverfehler', + 'message' => 'Der Server hat einen internen Fehler.', + ], + 401 => + [ 'page-title' => '401 Unauthorisiert', - 'name' => '401', - 'title' => 'Unauthorisiert', - 'message' => 'Die Anforderung wurde nicht angewendet, da keine gültigen Authentifizierungsdaten für die Zielressource vorhanden sind.', - ), - ), - 'export' => - array ( - 'export' => 'Export', - 'import' => 'Import', - 'format' => 'Wählen Sie ein Format', - 'download' => 'Download', - 'upload' => 'Hochladen', - 'csv' => 'CSV', - 'xls' => 'XLS', - 'file' => 'Datei', - 'upload-error' => 'Die Datei muss von folgendem Typ sein: xls, xlsx, csv.', - 'duplicate-error' => 'Bezeichner müssen eindeutig sein, doppelte Bezeichner :identifier in Zeile :position.', + 'name' => '401', + 'title' => 'Unauthorisiert', + 'message' => 'Die Anforderung wurde nicht angewendet, da keine gültigen Authentifizierungsdaten für die Zielressource vorhanden sind.', + ], + ], + 'export' => + [ + 'export' => 'Export', + 'import' => 'Import', + 'format' => 'Wählen Sie ein Format', + 'download' => 'Download', + 'upload' => 'Hochladen', + 'csv' => 'CSV', + 'xls' => 'XLS', + 'file' => 'Datei', + 'upload-error' => 'Die Datei muss von folgendem Typ sein: xls, xlsx, csv.', + 'duplicate-error' => 'Bezeichner müssen eindeutig sein, doppelte Bezeichner :identifier in Zeile :position.', 'enough-row-error' => 'die Datei hat nicht genug Zeilen', - 'allowed-type' => 'Erlaubter Typ :', - 'file-type' => 'csv, xls, xlsx.', - 'no-records' => 'Nichts zu exportieren', - 'illegal-format' => 'Fehler! Diese Art von Format wird entweder nicht unterstützt oder ist unzulässig', - ), - 'cms' => - array ( + 'allowed-type' => 'Erlaubter Typ :', + 'file-type' => 'csv, xls, xlsx.', + 'no-records' => 'Nichts zu exportieren', + 'illegal-format' => 'Fehler! Diese Art von Format wird entweder nicht unterstützt oder ist unzulässig', + ], + 'cms' => + [ 'pages' => - array ( - 'general' => 'Allgemein', - 'seo' => 'SEO', - 'pages' => 'Seiten', - 'title' => 'Seiten', - 'add-title' => 'Seite hinzufügen', - 'content' => 'Inhalt', - 'url-key' => 'URL-Schlüssel', - 'channel' => 'Kanäle', - 'locale' => 'Sprachen', + [ + 'general' => 'Allgemein', + 'seo' => 'SEO', + 'pages' => 'Seiten', + 'title' => 'Seiten', + 'add-title' => 'Seite hinzufügen', + 'content' => 'Inhalt', + 'url-key' => 'URL-Schlüssel', + 'channel' => 'Kanäle', + 'locale' => 'Sprachen', 'create-btn-title' => 'Seite speichern', - 'edit-title' => 'Seite bearbeiten', - 'edit-btn-title' => 'Seite speichern', - 'create-success' => 'Seite erfolgreich erstellt', - 'create-partial' => 'Einige der angeforderten Seiten sind bereits vorhanden', - 'create-failure' => 'Alle angeforderten Seiten sind bereits vorhanden', - 'update-success' => 'Seite erfolgreich aktualisiert', - 'update-failure' => 'Die Seite kann nicht aktualisiert werden', - 'page-title' => 'Titel der Seite', - 'layout' => 'Layout', - 'meta_keywords' => 'Meta-Schlüsselworte', + 'edit-title' => 'Seite bearbeiten', + 'edit-btn-title' => 'Seite speichern', + 'create-success' => 'Seite erfolgreich erstellt', + 'create-partial' => 'Einige der angeforderten Seiten sind bereits vorhanden', + 'create-failure' => 'Alle angeforderten Seiten sind bereits vorhanden', + 'update-success' => 'Seite erfolgreich aktualisiert', + 'update-failure' => 'Die Seite kann nicht aktualisiert werden', + 'page-title' => 'Titel der Seite', + 'layout' => 'Layout', + 'meta_keywords' => 'Meta-Schlüsselworte', 'meta_description' => 'Meta-Beschreibung', - 'meta_title' => 'Meta Titel', - 'delete-success' => 'CMS-Seite erfolgreich gelöscht', - 'delete-failure' => 'CMS-Seite kann nicht gelöscht werden', - 'preview' => 'Vorschau', - 'one-col' => '
Use class: "static-container one-column" for one column layout.
', - 'two-col' => '
Use class: "static-container two-column" for two column layout.
', - 'three-col' => '
Use class: "static-container three-column" for three column layout.
', - 'helper-classes' => 'Helfer-Klassen', - ), - ), - 'response' => - array ( - 'being-used' => 'Diese Ressource :name wird verwendet in :source', - 'cannot-delete-default' => 'Der Standardkanal kann nicht gelöscht werden', - 'create-success' => ':name erfolgreich erstellt.', - 'update-success' => ':name erfolgreich aktualisiert.', - 'delete-success' => ':name erfolgreich gelöscht.', - 'delete-failed' => 'Fehler beim löschen von :name.', - 'last-delete-error' => 'Zumindest ein :name ist erforderlich.', - 'user-define-error' => 'System :name kann nicht gelöscht werden', - 'attribute-error' => ':name wird in konfigurierbaren Produkten verwendet.', - 'attribute-product-error' => ':name wird in Produkten verwendet.', - 'customer-associate' => ':name können nicht gelöscht werden, weil Kunden dieser Gruppe zugeordnet sind.', - 'currency-delete-error' => 'Diese Währung ist als Kanalbasiswährung festgelegt und kann daher nicht gelöscht werden.', - 'upload-success' => ':name erfolgreich hochgeladen.', - 'delete-category-root' => 'Die Root-Kategorie kann nicht gelöscht werden', - 'create-root-failure' => 'Kategorie mit dem Namen Root ist bereits vorhanden', - 'cancel-success' => ':name erfolgreich abgebrochen.', - 'cancel-error' => ':name können nicht storniert werden.', - 'already-taken' => 'Der :name wird bereits verwendet.', - 'order-pending' => 'Konto kann nicht gelöscht werden, da einige Bestellungen ausstehen oder verarbeitet werden.', - ), - 'footer' => - array ( + 'meta_title' => 'Meta Titel', + 'delete-success' => 'CMS-Seite erfolgreich gelöscht', + 'delete-failure' => 'CMS-Seite kann nicht gelöscht werden', + 'preview' => 'Vorschau', + 'one-col' => '
Use class: "static-container one-column" for one column layout.
', + 'two-col' => '
Use class: "static-container two-column" for two column layout.
', + 'three-col' => '
Use class: "static-container three-column" for three column layout.
', + 'helper-classes' => 'Helfer-Klassen', + ], + ], + 'response' => + [ + 'being-used' => 'Diese Ressource :name wird verwendet in :source', + 'product-copied' => 'Das Produkt wurde kopiert', + 'error-while-copying' => 'Fehler beim Kopieren des Produkts', + 'product-can-not-be-copied' => 'Produkte vom Typ :type können nicht kopiert werden.', + 'cannot-delete-default' => 'Der Standardkanal kann nicht gelöscht werden', + 'create-success' => ':name erfolgreich erstellt.', + 'update-success' => ':name erfolgreich aktualisiert.', + 'delete-success' => ':name erfolgreich gelöscht.', + 'delete-failed' => 'Fehler beim löschen von :name.', + 'last-delete-error' => 'Zumindest ein :name ist erforderlich.', + 'user-define-error' => 'System :name kann nicht gelöscht werden', + 'attribute-error' => ':name wird in konfigurierbaren Produkten verwendet.', + 'attribute-product-error' => ':name wird in Produkten verwendet.', + 'customer-associate' => ':name können nicht gelöscht werden, weil Kunden dieser Gruppe zugeordnet sind.', + 'currency-delete-error' => 'Diese Währung ist als Kanalbasiswährung festgelegt und kann daher nicht gelöscht werden.', + 'upload-success' => ':name erfolgreich hochgeladen.', + 'delete-category-root' => 'Die Root-Kategorie kann nicht gelöscht werden', + 'create-root-failure' => 'Kategorie mit dem Namen Root ist bereits vorhanden', + 'cancel-success' => ':name erfolgreich abgebrochen.', + 'cancel-error' => ':name können nicht storniert werden.', + 'already-taken' => 'Der :name wird bereits verwendet.', + 'order-pending' => 'Konto kann nicht gelöscht werden, da einige Bestellungen ausstehen oder verarbeitet werden.', + ], + 'footer' => + [ 'copy-right' => 'Powered by Bagisto, A Community Project by Webkul', - ), - 'admin' => - array ( + ], + 'admin' => + [ 'emails' => - array ( - 'email' => 'E-Mail', + [ + 'email' => 'E-Mail', 'notification_label' => 'Benachrichtigungen', - 'notifications' => - array ( - 'verification' => 'Senden von Bestätigungs-E-Mails', - 'registration' => 'Senden von Anmeldungs-E-Mails', - 'customer' => 'Senden von Kunden-E-Mails', - 'new-order' => 'Senden von Auftragsbestätigungs-E-Mails', - 'new-admin' => 'Senden von Admin Einladungs-E-Mails', - 'new-invoice' => 'Senden von Rechnungs-Bestätigungs-E-Mails', - 'new-refund' => 'Senden von Erstattungs-Benachrichtigungs-E-Mails', - 'new-shipment' => 'Senden von Versand-Benachrichtigungs-E-Mails', + 'notifications' => + [ + 'verification' => 'Senden von Bestätigungs-E-Mails', + 'registration' => 'Senden von Anmeldungs-E-Mails', + 'customer' => 'Senden von Kunden-E-Mails', + 'new-order' => 'Senden von Auftragsbestätigungs-E-Mails', + 'new-admin' => 'Senden von Admin Einladungs-E-Mails', + 'new-invoice' => 'Senden von Rechnungs-Bestätigungs-E-Mails', + 'new-refund' => 'Senden von Erstattungs-Benachrichtigungs-E-Mails', + 'new-shipment' => 'Senden von Versand-Benachrichtigungs-E-Mails', 'new-inventory-source' => 'Senden von Inventar-Quellen-E-Mail-Benachrichtigungen', - 'cancel-order' => 'Senden von Abbrechen E-Mails eines Bestellvorgangs', - ), - ), + 'cancel-order' => 'Senden von Abbrechen E-Mails eines Bestellvorgangs', + ], + ], 'system' => - array ( - 'catalog' => 'Katalog', - 'products' => 'Produkte', - 'guest-checkout' => 'Gastbestellungen', - 'allow-guest-checkout' => 'Gastbestellungen erlauben', - 'allow-guest-checkout-hint' => 'Hinweis: Wenn diese Option aktiviert ist, kann sie für jedes Produkt einzeln konfiguriert werden.', - 'review' => 'Überprüfen', - 'allow-guest-review' => 'Gastbewertungen erlauben', - 'inventory' => 'Inventar', - 'stock-options' => 'Inventaroptionen', - 'allow-backorders' => 'Nachbestellungen zulassen', - 'customer' => 'Kunden', - 'settings' => 'Einstellungen', - 'address' => 'Adresse', - 'street-lines' => 'Adresszeilen (Standard: 1)', - 'sales' => 'Vertrieb', - 'shipping-methods' => 'Versand-Methoden', - 'free-shipping' => 'Kostenloser Versand', - 'flate-rate-shipping' => 'Pauschale Versandkosten', - 'shipping' => 'Versand', - 'origin' => 'Herkunft', - 'country' => 'Land', - 'state' => 'Bundesland', - 'zip' => 'Postleitzahl', - 'city' => 'Stadt', - 'street-address' => 'Anschrift', - 'title' => 'Titel', - 'description' => 'Beschreibung', - 'rate' => 'Rate', - 'status' => 'Status', - 'type' => 'Typ', - 'payment-methods' => 'Zahlungsmethoden', - 'cash-on-delivery' => 'Nachnahme', - 'money-transfer' => 'Überweisung', - 'paypal-standard' => 'Paypal-Standard', - 'business-account' => 'Paypal-Geschäftskonto', - 'newsletter' => 'Newsletter-Abonnement', - 'newsletter-subscription' => 'Newsletter-Abonnement erlauben', - 'email' => 'E-Mail-Prüfung', - 'email-verification' => 'E-Mail-Prüfung erlauben', - 'sort_order' => 'Sortierreihenfolge', - 'general' => 'Allgemein', - 'footer' => 'Fußzeile', - 'content' => 'Inhalt', - 'footer-content' => 'Fußzeile Text', - 'footer-toggle' => 'Fußzeile aktiv', - 'locale-options' => 'Einheit-Optionen', - 'weight-unit' => 'Gewichtseinheit', - 'email-settings' => 'E-Mail Einstellungen', - 'email-sender-name' => 'E-Mail-Adresse des Absenders', - 'shop-email-from' => 'E-Mail-Adresse des Shops (bei Bestellungen, etc.)', - 'admin-name' => 'Name des Admins', - 'admin-email' => 'E-Mail-Adresse des Admins', - 'admin-page-limit' => 'Elemente pro Seite (Admin)', - 'design' => 'Design', - 'admin-logo' => 'Admin-Logo', - 'logo-image' => 'Logo-Bild', - 'credit-max' => 'Kunden Kredit Max', - 'credit-max-value' => 'Kredit Max-Wert', - 'use-credit-max' => 'Verwendung von Kredit-Max', - 'order-settings' => 'Bestelleinstellungen', - 'orderNumber' => 'Auftragsnummer Einstellungen', - 'order-number-prefix' => 'Auftragsnummer Präfix', - 'order-number-length' => 'Auftragsnummer Länge', - 'order-number-suffix' => 'Auftragsnummer Suffix', + [ + 'catalog' => 'Katalog', + 'products' => 'Produkte', + 'guest-checkout' => 'Gastbestellungen', + 'allow-guest-checkout' => 'Gastbestellungen erlauben', + 'allow-guest-checkout-hint' => 'Hinweis: Wenn diese Option aktiviert ist, kann sie für jedes Produkt einzeln konfiguriert werden.', + 'review' => 'Überprüfen', + 'allow-guest-review' => 'Gastbewertungen erlauben', + 'inventory' => 'Inventar', + 'stock-options' => 'Inventaroptionen', + 'allow-backorders' => 'Nachbestellungen zulassen', + 'customer' => 'Kunden', + 'settings' => 'Einstellungen', + 'address' => 'Adresse', + 'street-lines' => 'Adresszeilen (Standard: 1)', + 'sales' => 'Vertrieb', + 'shipping-methods' => 'Versand-Methoden', + 'free-shipping' => 'Kostenloser Versand', + 'flate-rate-shipping' => 'Pauschale Versandkosten', + 'shipping' => 'Versand', + 'origin' => 'Herkunft', + 'country' => 'Land', + 'state' => 'Bundesland', + 'zip' => 'Postleitzahl', + 'city' => 'Stadt', + 'street-address' => 'Anschrift', + 'title' => 'Titel', + 'description' => 'Beschreibung', + 'rate' => 'Rate', + 'status' => 'Status', + 'type' => 'Typ', + 'payment-methods' => 'Zahlungsmethoden', + 'cash-on-delivery' => 'Nachnahme', + 'money-transfer' => 'Überweisung', + 'paypal-standard' => 'Paypal-Standard', + 'business-account' => 'Paypal-Geschäftskonto', + 'newsletter' => 'Newsletter-Abonnement', + 'newsletter-subscription' => 'Newsletter-Abonnement erlauben', + 'email' => 'E-Mail-Prüfung', + 'email-verification' => 'E-Mail-Prüfung erlauben', + 'sort_order' => 'Sortierreihenfolge', + 'general' => 'Allgemein', + 'footer' => 'Fußzeile', + 'content' => 'Inhalt', + 'footer-content' => 'Fußzeile Text', + 'footer-toggle' => 'Fußzeile aktiv', + 'locale-options' => 'Einheit-Optionen', + 'weight-unit' => 'Gewichtseinheit', + 'email-settings' => 'E-Mail Einstellungen', + 'email-sender-name' => 'E-Mail-Adresse des Absenders', + 'shop-email-from' => 'E-Mail-Adresse des Shops (bei Bestellungen, etc.)', + 'admin-name' => 'Name des Admins', + 'admin-email' => 'E-Mail-Adresse des Admins', + 'admin-page-limit' => 'Elemente pro Seite (Admin)', + 'design' => 'Design', + 'admin-logo' => 'Admin-Logo', + 'logo-image' => 'Logo-Bild', + 'credit-max' => 'Kunden Kredit Max', + 'credit-max-value' => 'Kredit Max-Wert', + 'use-credit-max' => 'Verwendung von Kredit-Max', + 'order-settings' => 'Bestelleinstellungen', + 'orderNumber' => 'Auftragsnummer Einstellungen', + 'order-number-prefix' => 'Auftragsnummer Präfix', + 'order-number-length' => 'Auftragsnummer Länge', + 'order-number-suffix' => 'Auftragsnummer Suffix', 'order-number-generator-class' => 'Bestell nummern generator', - 'default' => 'Standard', - 'sandbox' => 'Sandbox', - 'all-channels' => 'Alle', - 'all-locales' => 'Alle', - 'invoice-slip-design' => 'Rechnungsdesign', - 'logo' => 'Logo', - ), - ), -); \ No newline at end of file + 'default' => 'Standard', + 'sandbox' => 'Sandbox', + 'all-channels' => 'Alle', + 'all-locales' => 'Alle', + 'invoice-slip-design' => 'Rechnungsdesign', + 'logo' => 'Logo', + ], + ], +]; \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index fd1c381bf..6c2cbe9cb 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -1,18 +1,19 @@ 'Save', - 'copy-of' => 'Copy of', - 'create' => 'Create', - 'update' => 'Update', - 'delete' => 'Delete', - 'failed' => 'Failed', - 'store' => 'Store', - 'image' => 'Image', - 'no result' => 'No result', - 'product' => 'Product', - 'attribute' => 'Attribute', - 'actions' => 'Actions', + 'save' => 'Save', + 'copy-of' => 'Copy of ', + 'copy-of-slug' => 'copy-of-', + 'create' => 'Create', + 'update' => 'Update', + 'delete' => 'Delete', + 'failed' => 'Failed', + 'store' => 'Store', + 'image' => 'Image', + 'no result' => 'No result', + 'product' => 'Product', + 'attribute' => 'Attribute', + 'actions' => 'Actions', 'id' => 'ID', 'action' => 'action', 'yes' => 'Yes', @@ -1209,17 +1210,20 @@ return [ ], 'response' => [ - 'being-used' => 'This resource :name is getting used in :source', - 'cannot-delete-default' => 'Cannot delete the default channel', - 'create-success' => ':name created successfully.', - 'update-success' => ':name updated successfully.', - 'delete-success' => ':name deleted successfully.', - 'delete-failed' => 'Error encountered while deleting :name.', - 'last-delete-error' => 'At least one :name is required.', - 'user-define-error' => 'Can not delete system :name', - 'attribute-error' => ':name is used in configurable products.', - 'attribute-product-error' => ':name is used in products.', - 'customer-associate' => ':name can not be deleted because customer is associated with this group.', + 'being-used' => 'This resource :name is getting used in :source', + 'product-copied' => 'The Product has been copied', + 'error-while-copying' => 'Something went wrong while trying to copy the product', + 'product-can-not-be-copied' => 'Products of type :type can not be copied', + 'cannot-delete-default' => 'Cannot delete the default channel', + 'create-success' => ':name created successfully.', + 'update-success' => ':name updated successfully.', + 'delete-success' => ':name deleted successfully.', + 'delete-failed' => 'Error encountered while deleting :name.', + 'last-delete-error' => 'At least one :name is required.', + 'user-define-error' => 'Can not delete system :name', + 'attribute-error' => ':name is used in configurable products.', + 'attribute-product-error' => ':name is used in products.', + 'customer-associate' => ':name can not be deleted because customer is associated with this group.', 'currency-delete-error' => 'This currency is set as channel base currency so it can not be deleted.', 'upload-success' => ':name uploaded successfully.', 'delete-category-root' => 'Cannot delete the root category', diff --git a/packages/Webkul/Admin/src/Resources/lang/it/app.php b/packages/Webkul/Admin/src/Resources/lang/it/app.php index fca9749c8..e5ca76946 100644 --- a/packages/Webkul/Admin/src/Resources/lang/it/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/it/app.php @@ -146,24 +146,25 @@ return [ 'no-resource' => 'The resource provided for insufficient for the action' ], - 'id' => 'ID', - 'status' => 'Stato', - 'code' => 'Codice', - 'admin-name' => 'Nome', - 'name' => 'Nome', - 'direction' => 'Direzione', - 'fullname' => 'Nome completo', - 'type' => 'Tipo', - 'required' => 'Richiesto', - 'unique' => 'Unico', - 'per-locale' => 'Basato su localizzazione', - 'per-channel' => 'Basato sul canale', - 'position' => 'Posizione', - 'locale' => 'Locale', - 'hostname' => 'Hostname', - 'email' => 'Email', - 'group' => 'Gruppo', - 'phone' => 'Telefono', + 'id' => 'ID', + 'status' => 'Stato', + 'code' => 'Codice', + 'admin-name' => 'Nome', + 'name' => 'Nome', + 'direction' => 'Direzione', + 'fullname' => 'Nome completo', + 'type' => 'Tipo', + 'copy' => 'Copia', + 'required' => 'Richiesto', + 'unique' => 'Unico', + 'per-locale' => 'Basato su localizzazione', + 'per-channel' => 'Basato sul canale', + 'position' => 'Posizione', + 'locale' => 'Locale', + 'hostname' => 'Hostname', + 'email' => 'Email', + 'group' => 'Gruppo', + 'phone' => 'Telefono', 'gender' => 'Sesso', 'title' => 'Titolo', 'layout' => 'Layout', diff --git a/packages/Webkul/Admin/src/Resources/lang/nl/app.php b/packages/Webkul/Admin/src/Resources/lang/nl/app.php index f7ca87ef7..9653de94b 100644 --- a/packages/Webkul/Admin/src/Resources/lang/nl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/nl/app.php @@ -146,24 +146,25 @@ return [ 'no-resource' => 'The resource provided for insufficient for the action' ], - 'id' => 'ID', - 'status' => 'Status', - 'code' => 'Code', - 'admin-name' => 'Naam', - 'name' => 'Naam', - 'direction' => 'Richting', - 'fullname' => 'Volledige naam', - 'type' => 'Type', - 'required' => 'Verplicht', - 'unique' => 'Uniek', - 'per-locale' => 'Lokaal gebaseerd', - 'per-channel' => 'Kanaal gebaseerd', - 'position' => 'Position', - 'locale' => 'Locale', - 'hostname' => 'Hostnaam', - 'email' => 'Email', - 'group' => 'Groep', - 'phone' => 'Telefoon', + 'id' => 'ID', + 'status' => 'Status', + 'code' => 'Code', + 'admin-name' => 'Naam', + 'name' => 'Naam', + 'direction' => 'Richting', + 'fullname' => 'Volledige naam', + 'type' => 'Type', + 'copy' => 'kopiëren', + 'required' => 'Verplicht', + 'unique' => 'Uniek', + 'per-locale' => 'Lokaal gebaseerd', + 'per-channel' => 'Kanaal gebaseerd', + 'position' => 'Position', + 'locale' => 'Locale', + 'hostname' => 'Hostnaam', + 'email' => 'Email', + 'group' => 'Groep', + 'phone' => 'Telefoon', 'gender' => 'Geslacht', 'title' => 'Titel', 'layout' => 'Layout', diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/variations.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/variations.blade.php index b596ff64d..e462c9099 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/variations.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/variations.blade.php @@ -4,12 +4,15 @@ .table th.price, .table th.weight { width: 100px; } + .table th.actions { width: 85px; } + .table td.actions .icon { margin-top: 8px; } + .table td.actions .icon.pencil-lg-icon { margin-right: 10px; } @@ -48,17 +51,31 @@ @parent diff --git a/packages/Webkul/Shop/src/Resources/views/guest/compare/index.blade.php b/packages/Webkul/Shop/src/Resources/views/guest/compare/index.blade.php index 78b233fee..08cd183db 100644 --- a/packages/Webkul/Shop/src/Resources/views/guest/compare/index.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/guest/compare/index.blade.php @@ -3,7 +3,7 @@ @include('shop::guest.compare.compare-products') @section('page_title') - {{ __('velocity::app.customer.compare.compare_similar_items') }} + {{ __('shop::app.customer.compare.compare_similar_items') }} @endsection @section('content-wrapper') diff --git a/packages/Webkul/Shop/src/Resources/views/layouts/header/index.blade.php b/packages/Webkul/Shop/src/Resources/views/layouts/header/index.blade.php index 175c7abc2..c5ee8e77e 100755 --- a/packages/Webkul/Shop/src/Resources/views/layouts/header/index.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/layouts/header/index.blade.php @@ -55,7 +55,7 @@ {!! view_render_event('bagisto.shop.layout.header.comppare-item.before') !!} @php - $showCompare = core()->getConfigData('general.content.shop.compare_option') == "1" ? true : false + $showCompare = core()->getConfigData('general.content.shop.compare_option') == "1" ? true : false @endphp @if ($showCompare) @@ -70,8 +70,8 @@ @endguest style="color: #242424;" > - {{ __('velocity::app.customer.compare.text') }} - + {{ __('shop::app.customer.compare.text') }} + () @endif @@ -202,7 +202,7 @@ - + @@ -297,7 +297,7 @@ localStorage.searched_image_url = self.uploaded_image_url; queryString = localStorage.searched_terms = analysedResult.join('_'); - + self.$root.hideLoader(); window.location.href = "{{ route('shop.search.index') }}" + '?term=' + queryString + '&image-search=1'; @@ -336,6 +336,23 @@ toggleDropdown(e); }); + @auth('customer') + @php + $compareCount = app('Webkul\Velocity\Repositories\VelocityCustomerCompareProductRepository') + ->count([ + 'customer_id' => auth()->guard('customer')->user()->id, + ]); + @endphp + + let comparedItems = JSON.parse(localStorage.getItem('compared_product')); + $('#compare-items-count').html({{ $compareCount }}); + @endauth + + @guest('customer') + let comparedItems = JSON.parse(localStorage.getItem('compared_product')); + $('#compare-items-count').html(comparedItems ? comparedItems.length : 0); + @endguest + function toggleDropdown(e) { var currentElement = $(e.currentTarget); diff --git a/packages/Webkul/Shop/src/Resources/views/products/compare.blade.php b/packages/Webkul/Shop/src/Resources/views/products/compare.blade.php index 447e75661..4fa3c44cd 100755 --- a/packages/Webkul/Shop/src/Resources/views/products/compare.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/products/compare.blade.php @@ -18,7 +18,7 @@ template: '#compare-component-template', - data: function () { + data: function () { return { 'baseUrl': "{{ url()->to('/') }}", 'customer': '{{ auth()->guard('customer')->user() ? "true" : "false" }}' == "true", @@ -37,12 +37,12 @@ 'type': `alert-${response.data.status}`, 'message': response.data.message }]; - + this.$root.addFlashMessages() }).catch(error => { window.flashMessages = [{ 'type': `alert-danger`, - 'message': "{{ __('velocity::app.error.something_went_wrong') }}" + 'message': "{{ __('shop::app.common.error') }}" }]; this.$root.addFlashMessages() @@ -59,14 +59,14 @@ window.flashMessages = [{ 'type': `alert-success`, - 'message': "{{ __('velocity::app.customer.compare.added') }}" + 'message': "{{ __('shop::app.customer.compare.added') }}" }]; this.$root.addFlashMessages() } else { window.flashMessages = [{ 'type': `alert-success`, - 'message': "{{ __('velocity::app.customer.compare.already_added') }}" + 'message': "{{ __('shop::app.customer.compare.already_added') }}" }]; this.$root.addFlashMessages() @@ -76,12 +76,14 @@ window.flashMessages = [{ 'type': `alert-success`, - 'message': "{{ __('velocity::app.customer.compare.added') }}" + 'message': "{{ __('shop::app.customer.compare.added') }}" }]; this.$root.addFlashMessages() } } + + this.updateCompareCount(); }, 'getStorageValue': function (key) { @@ -99,6 +101,28 @@ return true; }, + + 'updateCompareCount': function () { + if (this.customer == "true" || this.customer == true) { + this.$http.get(`${this.baseUrl}/items-count`) + .then(response => { + $('#compare-items-count').html(response.data.compareProductsCount); + }) + .catch(exception => { + window.flashMessages = [{ + 'type': `alert-error`, + 'message': "{{ __('shop::app.common.error') }}" + }]; + + this.$root.addFlashMessages(); + }); + } else { + let comparedItems = JSON.parse(localStorage.getItem('compared_product')); + comparedItemsCount = comparedItems ? comparedItems.length : 0; + + $('#compare-items-count').html(comparedItemsCount); + } + } } }); diff --git a/packages/Webkul/Theme/src/Themes.php b/packages/Webkul/Theme/src/Themes.php index 70dd273a3..3b3fba7a4 100755 --- a/packages/Webkul/Theme/src/Themes.php +++ b/packages/Webkul/Theme/src/Themes.php @@ -66,6 +66,32 @@ class Themes return $this->themes; } + /** + * Return list of registered themes + * + * @return array + */ + public function getChannelThemes() + { + $themes = config('themes.themes', []); + $channelThemes = []; + + foreach ($themes as $code => $data) { + $channelThemes[] = new Theme( + $code, + isset($data['name']) ? $data['name'] : '', + isset($data['assets_path']) ? $data['assets_path'] : '', + isset($data['views_path']) ? $data['views_path'] : '' + ); + + if (isset($data['parent']) && $data['parent']) { + $parentThemes[$code] = $data['parent']; + } + } + + return $channelThemes; + } + /** * Check if specified exists * diff --git a/packages/Webkul/Velocity/src/Http/Controllers/Shop/Controller.php b/packages/Webkul/Velocity/src/Http/Controllers/Shop/Controller.php index cbe3ab1e3..4d5c1a356 100755 --- a/packages/Webkul/Velocity/src/Http/Controllers/Shop/Controller.php +++ b/packages/Webkul/Velocity/src/Http/Controllers/Shop/Controller.php @@ -93,7 +93,6 @@ class Controller extends BaseController * @param \Webkul\Category\Repositories\CategoryRepository $categoryRepository * @param \Webkul\Velocity\Repositories\Product\ProductRepository $velocityProductRepository * @param \Webkul\Velocity\Repositories\VelocityCustomerCompareProductRepository $compareProductsRepository - * @param \Webkul\Velocity\Repositories\VelocityCustomerCompareProductRepository $compareProductsRepository * * @return void */ diff --git a/packages/Webkul/Velocity/src/Resources/lang/ja/app.php b/packages/Webkul/Velocity/src/Resources/lang/ja/app.php index 9d1a299a1..35584b590 100644 --- a/packages/Webkul/Velocity/src/Resources/lang/ja/app.php +++ b/packages/Webkul/Velocity/src/Resources/lang/ja/app.php @@ -1,197 +1,199 @@ [ + 'admin' => [ 'system' => [ 'velocity' => [ - 'general' => 'General', - 'category' => 'Category', - 'settings' => 'Settings', - 'extension_name' => 'Velocity Theme', - 'error-module-inactive' => 'Warning: Velocity theme status is inactive', + 'general' => '一般的な', + 'category' => 'カテゴリー', + 'settings' => '設定', + 'extension_name' => '速度のテーマ', + 'error-module-inactive' => '警告:Velocityテーマのステータスは非アクティブです', ], - 'settings' => [ - 'channels'=> [ - 'subscription_bar' => 'Subscription bar content' + 'channels' => [ + 'subscription_bar' => 'サブスクリプションバーのコンテンツ' ], ], - - 'general' => [ - 'status' => 'Status', - 'active' => 'Active', - 'inactive' => 'Inactive', + 'general' => [ + 'status' => '状態', + 'active' => 'アクティブ', + 'inactive' => '非活性', ], 'category' => [ - 'all' => 'All', - 'left' => 'Left', - 'right' => 'Right', - 'active' => 'Active', - 'custom' => 'Custom', - 'inactive' => 'Inactive', - 'image-alignment' => 'Image Alignment', - 'icon-status' => 'Category Icon Status', - 'image-status' => 'Category Image Status', - 'sub-category-show' => 'Show Sub Category', - 'image-height' => 'Image\'s Height [in Pixel]', - 'image-width' => 'Image\'s Width [in Pixel]', - 'show-tooltip' => 'Show Category\'s Tooltip', - 'num-sub-category' => 'Number Of Sub Category', + 'all' => 'すべて', + 'left' => '左', + 'right' => '正しい', + 'active' => 'アクティブ', + 'custom' => 'カスタム', + 'inactive' => '非活性', + 'image-alignment' => '画像の配置', + 'icon-status' => 'カテゴリアイコンステータス', + 'image-status' => 'カテゴリー画像ステータス', + 'sub-category-show' => 'サブカテゴリーを表示', + 'image-height' => '画像の高さ(ピクセル単位)', + 'image-width' => '画像の幅[ピクセル単位]', + 'show-tooltip' => 'カテゴリのツールチップを表示', + 'num-sub-category' => 'サブカテゴリーの数', ] ], + 'layouts' => [ - 'velocity' => 'Velocity', - 'cms-pages' => 'CMS Pages', - 'meta-data' => 'Meta Data', - 'category-menu' => 'Category Menu', - 'header-content' => 'Header Content', + 'velocity' => '速度', + 'cms-pages' => 'CMSページ', + 'meta-data' => 'メタデータ', + 'category-menu' => 'カテゴリーメニュー', + 'header-content' => 'ヘッダーコンテンツ', ], + 'contents' => [ - 'self' => 'Self', - 'active' => 'Active', - 'new-tab' => 'New Tab', - 'inactive' => 'Inactive', - 'title' => 'Content List', - 'select' => '-- Select --', - 'add-title' => 'Add Content', - 'btn-add-content' => 'Add Content', - 'save-btn-title' => 'Save Content', - 'autocomplete' => '[Autocomplete]', - 'no-result-found' => 'No record found.', - 'search-hint' => 'Search product here...', - 'mass-delete-success' => 'Selected content deleted successfully.', - 'tab' => [ - 'page' => 'Page Setting', - 'content' => 'Content Setting', - 'meta_content' => 'Meta Data', + 'self' => '自己', + 'active' => 'アクティブ', + 'new-tab' => '新しいタブ', + 'inactive' => '非活性', + 'title' => 'コンテンツリスト', + 'select' => '- 選択する -', + 'add-title' => 'コンテンツを追加', + 'btn-add-content' => 'コンテンツを追加', + 'save-btn-title' => 'コンテンツを保存', + 'autocomplete' => '[オートコンプリート]', + 'no-result-found' => 'レコードが見つかりません。', + 'search-hint' => 'ここで製品を検索...', + 'mass-delete-success' => '選択したコンテンツは正常に削除されました。', + 'tab' => [ + 'page' => 'ページ設定', + 'content' => 'コンテンツ設定', + 'meta_content' => 'メタデータ', ], - 'page' => [ - 'title' => 'Title', - 'status' => 'Status', - 'position' => 'Position', + 'page' => [ + 'title' => '題名', + 'status' => '状態', + 'position' => 'ポジション', ], - 'content' => [ - 'content-type' => 'Content Type', - 'custom-title' => 'Custom Title', - 'category-slug' => 'Category Slug', - 'link-target' => 'Page Link Target', - 'custom-product' => 'Store Products', - 'custom-heading' => 'Custom Heading', - 'catalog-type' => 'Product Catalog Type', - 'static-description' => 'Content Description', - 'page-link' => 'Page Link [e.g. http://example.com/../../]', + 'content' => [ + 'content-type' => 'コンテンツタイプ', + 'custom-title' => 'カスタムタイトル', + 'category-slug' => 'カテゴリースラッグ', + 'link-target' => 'ページリンクターゲット', + 'custom-product' => 'ストア製品', + 'custom-heading' => 'カスタム見出し', + 'catalog-type' => '製品カタログのタイプ', + 'static-description' => 'コンテンツの説明', + 'page-link' => 'ページリンク[例: http://example.com/../../]', ], - 'datagrid' => [ - 'id' => 'Id', - 'title' => 'Title', - 'status' => 'Status', - 'position' => 'Position', - 'content-type' => 'Content Type', + 'datagrid' => [ + 'id' => 'Id', + 'title' => '題名', + 'status' => '状態', + 'position' => 'ポジション', + 'content-type' => 'コンテンツタイプ', ] ], + 'meta-data' => [ - 'footer' => 'Footer', - 'title' => 'Velocity meta data', - 'activate-slider' => 'Activate Slider', - 'home-page-content' => 'Home Page Content', - 'footer-left-content' => 'Footer Left Content', - 'subscription-content' => 'Subscription bar Content', - 'sidebar-categories' => 'Sidebar Categories', - 'header_content_count' => 'Header Content Count', - 'footer-left-raw-content' => '

We love to craft softwares and solve the real world problems with the binaries. We are highly committed to our goals. We invest our resources to create world class easy to use softwares and applications for the enterprise business with the top notch, on the edge technology expertise.

', - 'slider-path' => 'Slider Path', - 'category-logo' => 'Category logo', - 'product-policy' => 'Product Policy', - 'update-meta-data' => 'Update Meta Data', - 'product-view-image' => 'Product View Image', - 'advertisement-two' => 'Advertisement Two Images', - 'advertisement-one' => 'Advertisement One Images', - 'footer-middle-content' => 'Footer Middle Content', - 'advertisement-four' => 'Advertisement Four Images', - 'advertisement-three' => 'Advertisement Three Images', - 'images' => 'Images', - 'general' => 'General', - 'add-image-btn-title' => 'Add Image' + 'footer' => 'フッター', + 'title' => '速度メタデータ', + 'activate-slider' => 'スライダーをアクティブにする', + 'home-page-content' => 'ホームページコンテンツ', + 'footer-left-content' => 'フッター左コンテンツ', + 'subscription-content' => 'サブスクリプションバーのコンテンツ', + 'sidebar-categories' => 'サイドバーのカテゴリ', + 'header_content_count' => 'ヘッダーコンテンツ数', + 'footer-left-raw-content' => '

私たちはソフトウェアを作成し、バイナリで現実世界の問題を解決するのが大好きです。私達は私達の目標に非常にコミットしています。私たちはリソースを投資して、最先端のテクノロジーの専門知識を活用し、一流のエンタープライズビジネス向けの使いやすいソフトウェアとアプリケーションを作成します。

', + 'slider-path' => 'スライダーパス', + 'category-logo' => 'カテゴリーロゴ', + 'product-policy' => '製品ポリシー', + 'update-meta-data' => 'メタデータを更新', + 'product-view-image' => '製品ビュー画像', + 'advertisement-two' => '広告2つの画像', + 'advertisement-one' => '広告1つの画像', + 'footer-middle-content' => 'フッターミドルコンテンツ', + 'advertisement-four' => '広告4つの画像', + 'advertisement-three' => '広告3つの画像', + 'images' => '画像', + 'general' => '一般的な', + 'add-image-btn-title' => '画像を追加' ], + 'category' => [ - 'save-btn-title' => 'Save Menu', - 'title' => 'Category Menu List', - 'add-title' => 'Add Menu Content', - 'edit-title' => 'Edit Menu Content', - 'btn-add-category' => 'Add Category Content', - 'datagrid' => [ - 'category-id' => 'Category Id', - 'category-name' => 'Category Name', - 'category-icon' => 'Category Icon', - 'category-status' => 'Status', + 'save-btn-title' => '保存メニュー', + 'title' => 'カテゴリーメニュー一覧', + 'add-title' => 'メニューコンテンツを追加', + 'edit-title' => 'メニューコンテンツの編集', + 'btn-add-category' => 'カテゴリコンテンツを追加', + 'datagrid' => [ + 'category-id' => 'カテゴリID', + 'category-name' => '種別名', + 'category-icon' => 'カテゴリーアイコン', + 'category-status' => '状態', ], - 'tab' => [ - 'general' => 'General', + 'tab' => [ + 'general' => '一般的な', ], - 'status' => 'Status', - 'active' => 'Active', - 'inactive' => 'Inactive', - 'select' => '-- Select --', - 'icon-class' => 'Icon Class', - 'select-category' => 'Choose Category', - 'tooltip-content' => 'Tooltip Content', - 'mass-delete-success' => 'Selected categories menu deleted successfully.', + 'status' => '状態', + 'active' => 'アクティブ', + 'inactive' => '非活性', + 'select' => '- 選択する -', + 'icon-class' => 'アイコンクラス', + 'select-category' => 'カテゴリーを選択', + 'tooltip-content' => 'ツールチップの内容', + 'mass-delete-success' => '選択したカテゴリメニューを削除しました。', ], + 'general' => [ - 'locale_logo' => 'Locale Logo', + 'locale_logo' => 'ロケールロゴ', ], ], - 'home' => [ - 'view-all' => 'View All', - 'add-to-cart' => 'Add To Cart', - 'hot-categories' => 'Hot Categories', - 'payment-methods' => 'Payment Methods', - 'customer-reviews' => 'Customer Reviews', - 'shipping-methods' => 'Shipping Methods', - 'popular-categories' => 'Popular Categories', + 'home' => [ + 'view-all' => 'すべてを見る', + 'add-to-cart' => 'カートに追加', + 'hot-categories' => '人気のカテゴリ', + 'payment-methods' => 'お支払い方法', + 'customer-reviews' => 'カスタマーレビュー', + 'shipping-methods' => '輸送方法', + 'popular-categories' => '人気のカテゴリー', ], - 'header' => [ - 'cart' => 'Cart', - 'cart' => 'Cart', - 'guest' => 'Guest', - 'logout' => 'Logout', - 'title' => 'Account', - 'account' => 'Account', - 'profile' => 'Profile', - 'wishlist' => 'Wishlist', - 'all-categories' => 'All Categories', - 'search-text' => 'Search products here', - 'welcome-message' => 'Welcome, :customer_name', - 'dropdown-text' => 'Manage Cart, Orders & Wishlist', + 'header' => [ + 'cart' => 'カート', + 'guest' => 'ゲスト', + 'logout' => 'ログアウト', + 'title' => 'アカウント', + 'account' => 'アカウント', + 'profile' => 'プロフィール', + 'wishlist' => 'ウィッシュリスト', + 'all-categories' => 'すべてのカテゴリ', + 'search-text' => 'ここで製品を検索', + 'welcome-message' => 'ようこそ、:customer_name', + 'dropdown-text' => 'カート、注文、ウィッシュリストを管理する', ], - 'menu-navbar' => [ - 'text-more' => 'More', - 'text-category' => 'Shop by Category', + 'menu-navbar' => [ + 'text-more' => 'もっと', + 'text-category' => 'カテゴリーで選ぶ', ], - 'minicart' => [ - 'cart' => 'Cart', - 'view-cart' => 'View Cart', + 'minicart' => [ + 'cart' => 'カート', + 'view-cart' => 'カート', ], - 'checkout' => [ - 'qty' => 'Qty', - 'checkout' => 'Checkout', + 'checkout' => [ + 'qty' => '数量', + 'checkout' => 'チェックアウト', 'cart' => [ - 'view-cart' => 'View Cart', - 'cart-summary' => 'Cart Summary', + 'view-cart' => 'かごの中身を見る', + 'cart-summary' => 'カートの概要', ], - 'qty' => 'Qty', - 'items' => 'Items', - 'subtotal' => 'Subtotal', - 'sub-total' => 'Sub Total', - 'proceed' => 'Proceed to checkout', + 'qty' => '数量', + 'items' => 'アイテム', + 'subtotal' => '小計', + 'sub-total' => '小計', + 'proceed' => 'チェックアウトに進む', ], - 'customer' => [ + 'customer' => [ 'compare' => [ 'text' => '比較する', 'compare_similar_items' => '類似アイテムを比較する', @@ -200,85 +202,84 @@ return [ 'already_added' => 'アイテムは比較リストに既に追加されています', 'removed' => '比較リストからアイテムを削除しました', 'empty-text' => "比較リストにアイテムがありません", - 'product_image' => 'Product Image', - 'actions' => 'Actions', + 'product_image' => '商品画像', + 'actions' => '行動', ], 'login-form' => [ - 'sign-up' => 'Sign up', - 'new-customer' => 'New Customer', - 'customer-login' => 'Customer Login', - 'registered-user' => 'Registered User', - 'your-email-address' => 'Your email address', - 'form-login-text' => 'If you have an account, sign in with your email address.', + 'sign-up' => 'サインアップ', + 'new-customer' => '新規のお客様', + 'customer-login' => 'お客様ログイン', + 'registered-user' => '登録ユーザー', + 'your-email-address' => 'メールアドレス', + 'form-login-text' => 'アカウントをお持ちの場合は、メールアドレスでログインしてください。', ], 'signup-form' => [ - 'login' => 'Login', - 'become-user' => 'Become User', - 'user-registration' => 'User Registration', - 'form-sginup-text' => 'If you are new to our store, we glad to have you as member.', + 'login' => 'ログインする', + 'become-user' => 'ユーザーになる', + 'user-registration' => 'ユーザー登録', + 'form-sginup-text' => 'あなたが私たちの店に初めている場合は、メンバーとして喜んでいます。', ], 'forget-password' => [ - 'login' => 'Login', - 'forgot-password' => 'Forgot Password', - 'recover-password' => 'Recover Password', - 'recover-password-text' => 'If you forgot your password, recover it by entering your email address.', + 'login' => 'ログインする', + 'forgot-password' => 'パスワードをお忘れですか', + 'recover-password' => 'パスワードを回復', + 'recover-password-text' => 'パスワードを忘れた場合は、メールアドレスを入力してパスワードを回復してください。', ] ], - 'error' => [ - 'go-to-home' => 'Go to home', - 'page-lost-short' => 'Page lost content', - 'something_went_wrong' => 'something went wrong', - 'page-lost-description' => "The page you're looking for isn't available. Try to search again or use the Go Back button below.", + 'error' => [ + 'go-to-home' => '家に帰る', + 'page-lost-short' => 'ページが失われたコンテンツ', + 'something_went_wrong' => '問題が発生しました', + 'page-lost-description' => "お探しのページはご利用いただけません。もう一度検索するか、下の[戻る]ボタンを使用してください。", ], - 'products' => [ - 'text' => 'Products', - 'details' => 'Details', - 'reviews-title' => 'Reviews', - 'reviewed' => 'Reviewed', - 'review-by' => 'Review by', - 'quick-view' => 'Quick View', - 'not-available' => 'Not Available', - 'submit-review' => 'Submit Review', - 'ratings' => ':totalRatings Ratings', - 'reviews-count' => ':totalReviews Reviews', - 'customer-rating' => 'Customer Rating', - 'more-infomation' => 'More Information', - 'view-all-reviews' => 'View All Reviews', - 'write-your-review' => 'Write Your Review', - 'short-description' => 'Short Descriptions', - 'recently-viewed' => 'Recently Viewed Products', - 'be-first-review' => 'Be the first to write a review', + 'products' => [ + 'text' => '製品', + 'details' => '細部', + 'reviews-title' => 'レビュー', + 'reviewed' => '審査', + 'review-by' => 'によるレビュー', + 'quick-view' => 'クイックビュー', + 'not-available' => '利用不可', + 'submit-review' => 'レビュー送信', + 'ratings' => ':totalRatings 評価', + 'reviews-count' => ':totalReviews レビュー', + 'customer-rating' => 'お客様の評価', + 'more-infomation' => '詳しくは', + 'view-all-reviews' => 'すべてのレビューを表示', + 'write-your-review' => 'レビューを書く', + 'short-description' => '短い説明', + 'recently-viewed' => '最近見た製品', + 'be-first-review' => '最初のレビューを書く', ], - 'shop' => [ + 'shop' => [ 'gender' => [ - 'male' => 'Male', - 'other' => 'Other', - 'female' => 'Female', + 'male' => '男性', + 'other' => 'その他の', + 'female' => '女性', ], 'general' => [ - 'no' => 'No', - 'yes' => 'Yes', - 'view' => 'View', - 'filter' => 'Filter', - 'orders' => 'Orders', - 'update' => 'Update', - 'reviews' => 'Reviews', - 'currencies' => 'Currencies', - 'addresses' => 'Addresses', - 'top-brands' => 'Top Brands', - 'new-password' => 'New password', - 'downloadables' => 'Downloadable Products', - 'confirm-new-password' => 'Confirm new password', - 'enter-current-password' => 'Enter your current password', - + 'no' => '番号', + 'yes' => 'はい', + 'view' => '見る', + 'filter' => 'フィルタ', + 'orders' => '注文', + 'update' => '更新', + 'reviews' => 'レビュー', + 'currencies' => '通貨', + 'addresses' => '住所', + 'top-brands' => 'トップブランド', + 'new-password' => '新しいパスワード', + 'downloadables' => 'ダウンロード可能な製品', + 'confirm-new-password' => '新しいパスワードを確認', + 'enter-current-password' => '現在のパスワードを入力してください', 'alert' => [ - 'info' => 'Info', - 'error' => 'Error', - 'success' => 'Success', - 'warning' => 'Warning', + 'info' => '情報', + 'error' => 'エラー', + 'success' => '成功', + 'warning' => '警告', ], ], 'wishlist' => [ @@ -287,13 +288,11 @@ return [ ] ], - 'responsive' => [ + 'responsive' => [ 'header' => [ - 'done' => 'Done', - 'languages' => 'Languages', - 'greeting' => 'Welcome, :customer !', + 'done' => 'できた', + 'languages' => '言語', + 'greeting' => 'ようこそ、:customer !', ] ], -] - -?> +]; diff --git a/packages/Webkul/Velocity/src/Resources/views/shop/guest/compare/compare-products.blade.php b/packages/Webkul/Velocity/src/Resources/views/shop/guest/compare/compare-products.blade.php index 9b0a89f72..2e21bf5eb 100644 --- a/packages/Webkul/Velocity/src/Resources/views/shop/guest/compare/compare-products.blade.php +++ b/packages/Webkul/Velocity/src/Resources/views/shop/guest/compare/compare-products.blade.php @@ -1,6 +1,10 @@ @php - $attributeRepository = app('\Webkul\Attribute\Repositories\AttributeRepository'); - $comparableAttributes = $attributeRepository->findByField('is_comparable', 1); + $attributeRepository = app('\Webkul\Attribute\Repositories\AttributeFamilyRepository'); + $comparableAttributes = $attributeRepository->getComparableAttributesBelongsToFamily(); + + $locale = request()->get('locale') ?: app()->getLocale(); + + $attributeOptionTranslations = DB::table('attribute_option_translations')->where('locale', $locale)->get()->toJson(); @endphp @push('css') @@ -39,13 +43,13 @@ $comparableAttributes = $comparableAttributes->toArray(); array_splice($comparableAttributes, 1, 0, [[ - 'admin_name' => 'Product Image', - 'type' => 'product_image' + 'code' => 'product_image', + 'admin_name' => __('velocity::app.customer.compare.product_image'), ]]); array_splice($comparableAttributes, 2, 0, [[ - 'admin_name' => 'Actions', - 'type' => 'action' + 'code' => 'addToCartHtml', + 'admin_name' => __('velocity::app.customer.compare.actions'), ]]); @endphp @@ -56,67 +60,91 @@ - @switch ($attribute['type']) - @case('text') - -

+ @switch ($attribute['code']) + @case('name') +
+

- @break; - - @case('textarea') - - @break; - - @case('price') - - @break; - - @case('boolean') - - @break; - - @case('select') - - @break; - - @case('multiselect') - @break - @case('file') - - - - - __ - @break; - - @case('image') - - @break; - @case('product_image') - + + :src="product['{{ $attribute['code'] }}']" + onload="window.updateHeight ? window.updateHeight() : ''" + :onerror="`this.src='${$root.baseUrl}/vendor/webkul/ui/assets/images/product/large-product-placeholder.png'`" /> - @break + @break - @case('action') + @case('price') + + @break + + @case('addToCartHtml')
-
+ - + + + close +
- @break; + @break - @endswitch + @case('color') + + @break + + @case('size') + + @break + + @case('description') + + @break + + @default + @switch ($attribute['type']) + @case('boolean') + + @break; + + @case('checkbox') + + __ + @break; + + @case('select') + + __ + @break; + + @case ('file') + @case ('image') + + + + @break; + + @default + + @break; + @endswitch + + @break + + @endswitch @endforeach @@ -139,6 +167,7 @@ return { 'products': [], 'isProductListLoaded': false, + 'attributeOptions': JSON.parse(@json($attributeOptionTranslations)), 'isCustomer': '{{ auth()->guard('customer')->user() ? "true" : "false" }}' == "true", } }, @@ -231,6 +260,42 @@ this.$root.headerItemsCount++; }, + + 'getAttributeOptions': function (productDetails, attributeValues, type) { + var attributeOptions = '__'; + + if (productDetails && attributeValues) { + var attributeItems; + + if (type == "multiple") { + attributeItems = productDetails[attributeValues].split(','); + } else if (type == "single") { + attributeItems = productDetails[attributeValues]; + } + + attributeOptions = this.attributeOptions.filter(option => { + if (type == "multiple") { + if (attributeItems.indexOf(option.attribute_option_id.toString()) > -1) { + return true; + } + } else if (type == "single") { + if (attributeItems == option.attribute_option_id.toString()) { + return true; + } + } + + return false; + }); + + attributeOptions = attributeOptions.map(option => { + return option.label; + }); + + attributeOptions = attributeOptions.join(', '); + } + + return attributeOptions; + } } }); diff --git a/tests/_support/FunctionalTester.php b/tests/_support/FunctionalTester.php index 6d1e1f8b0..f89e14708 100644 --- a/tests/_support/FunctionalTester.php +++ b/tests/_support/FunctionalTester.php @@ -1,5 +1,6 @@ amOnRoute($name, $params); - $I->seeCurrentRouteIs($name); + + if ($routeCheck) { + $I->seeCurrentRouteIs($name); + } /** @var RouteCollection $routes */ $routes = Route::getRoutes(); diff --git a/tests/functional/Product/ProductCopyCest.php b/tests/functional/Product/ProductCopyCest.php new file mode 100644 index 000000000..392746f73 --- /dev/null +++ b/tests/functional/Product/ProductCopyCest.php @@ -0,0 +1,134 @@ +loginAsAdmin(); + } + + public function testSkipAttributes(FunctionalTester $I) + { + config(['products.skipAttributesOnCopy' => ['name', 'inventories']]); + + $original = $I->haveProduct(Laravel5Helper::SIMPLE_PRODUCT, [ + 'productInventory' => [ + 'qty' => 10, + ], + 'attributeValues' => [ + 'name' => 'Original', + ], + ]); + + $I->amOnAdminRoute('admin.catalog.products.copy', ['id' => $original->id], false); + + // test attribute is skipped: + $attr = $I->dontSeeRecord(ProductAttributeValue::class, [ + 'attribute_id' => 2, // name + 'product_id' => $original->id + 1, + ]); + + // test relation is skipped: + $I->dontSeeRecord(ProductInventory::class, [ + 'product_id' => $original->id + 1, + 'qty' => 10, + ]); + } + + public function testBlockProductCopy(FunctionalTester $I) + { + $original = $I->haveProduct(Laravel5Helper::BOOKING_EVENT_PRODUCT, []); + + $I->amOnAdminRoute('admin.catalog.products.copy', ['id' => $original->id], false); + + $I->seeInSource('Products of type booking can not be copied'); + } + + public function testProductCopy(FunctionalTester $I) + { + // set this config value to true to make it testable. It defaults to false. + config(['products.linkProductsOnCopy' => true]); + + $originalName = $I->fake()->name; + + $original = $I->haveProduct(Laravel5Helper::SIMPLE_PRODUCT, [ + 'productInventory' => [ + 'qty' => 10, + ], + 'attributeValues' => [ + 'name' => $originalName, + ], + ]); + + $count = count(Product::all()); + + $I->amOnAdminRoute('admin.catalog.products.copy', ['id' => $original->id], false); + + $copiedProduct = $I->grabRecord(Product::class, [ + 'id' => $original->id + 1, + 'parent_id' => $original->parent_id, + 'attribute_family_id' => $original->attribute_family_id, + ]); + + $attr = $I->grabRecord(ProductAttributeValue::class, [ + 'attribute_id' => 2, + 'product_id' => $copiedProduct->id, + ]); + $I->assertStringStartsWith('Copy of ' . $originalName, $attr->text_value); + + // url_key + $attr = $I->grabRecord(ProductAttributeValue::class, [ + 'attribute_id' => 3, + 'product_id' => $copiedProduct->id, + ]); + $I->assertStringStartsWith('copy-of-' . $original->url_key, $attr->text_value); + + // sku + $I->seeRecord(ProductAttributeValue::class, [ + 'attribute_id' => 1, + 'product_id' => $copiedProduct->id, + ]); + + // sku + $I->dontSeeRecord(ProductAttributeValue::class, [ + 'attribute_id' => 1, + 'product_id' => $copiedProduct->id, + 'text_value' => $original->sku, + ]); + + // status + $I->seeRecord(ProductAttributeValue::class, [ + 'attribute_id' => 8, + 'boolean_value' => 0, + ]); + + $I->seeRecord(ProductInventory::class, [ + 'product_id' => $copiedProduct->id, + 'qty' => 10, + ]); + + $I->seeRecord('product_relations', [ + 'parent_id' => $original->id, + 'child_id' => $copiedProduct->id, + ]); + + $flat = $I->grabRecord(ProductFlat::class, [ + 'product_id' => $copiedProduct->id, + ]); + $I->assertStringStartsWith('Copy of ' . $originalName, $flat->name); + + $I->assertCount($count + 1, Product::all()); + + $I->seeResponseCodeIsSuccessful(); + } +}