@@ -37,7 +41,7 @@
@{{ tax.name }}
@{{ tax.rate }}
@{{ tax.type }}
- @{{ tax.region.name }}
+ @{{ tax.region ? tax.region.name : '' }}
@{{ tax.created_at }}
@{{ tax.updated_at }}
@@ -126,7 +130,7 @@
this.dialog.show = true
this.dialog.type = type
this.dialog.index = index
- this.dialog.form.region_id = this.source.regions[0].id
+ this.dialog.form.region_id = this.source.regions.length ? this.source.regions[0].id : 0
if (type == 'edit') {
let tax = this.tax_rates[index];
diff --git a/resources/beike/admin/views/pages/theme/index.blade.php b/resources/beike/admin/views/pages/theme/index.blade.php
index 9ad1bfde..13cb0f60 100644
--- a/resources/beike/admin/views/pages/theme/index.blade.php
+++ b/resources/beike/admin/views/pages/theme/index.blade.php
@@ -6,7 +6,10 @@
@section('content')
-
+
diff --git a/resources/beike/admin/views/pages/user/forgotten.blade.php b/resources/beike/admin/views/pages/user/forgotten.blade.php
index 700c462e..144e97be 100644
--- a/resources/beike/admin/views/pages/user/forgotten.blade.php
+++ b/resources/beike/admin/views/pages/user/forgotten.blade.php
@@ -10,8 +10,8 @@
-
-
+
+
{{--
--}}
diff --git a/resources/beike/admin/views/vendor/pagination/bootstrap-4.blade.php b/resources/beike/admin/views/vendor/pagination/bootstrap-4.blade.php
index 63c6f56b..73001d39 100644
--- a/resources/beike/admin/views/vendor/pagination/bootstrap-4.blade.php
+++ b/resources/beike/admin/views/vendor/pagination/bootstrap-4.blade.php
@@ -4,11 +4,11 @@
{{-- Previous Page Link --}}
@if ($paginator->onFirstPage())
- ‹
+
@else
- ‹
+
@endif
@@ -34,11 +34,11 @@
{{-- Next Page Link --}}
@if ($paginator->hasMorePages())
- ›
+
@else
- ›
+
@endif
diff --git a/resources/beike/shop/default/css/bootstrap/bootstrap-icons.scss b/resources/beike/shop/default/css/bootstrap/bootstrap-icons.scss
index 458150dd..0ce3cbb5 100644
--- a/resources/beike/shop/default/css/bootstrap/bootstrap-icons.scss
+++ b/resources/beike/shop/default/css/bootstrap/bootstrap-icons.scss
@@ -13,6 +13,7 @@ $bootstrap-icons-font-src: url("/vendor/bootstrap/icon/bootstrap-icons.woff2?08e
url("/vendor/bootstrap/icon/bootstrap-icons.woff?08efbba7c53d8c5413793eecb19b20bb") format("woff") !default;
@font-face {
+ font-display: block;
font-family: $bootstrap-icons-font;
src: $bootstrap-icons-font-src;
}
@@ -454,7 +455,6 @@ $bootstrap-icons-map: (
"cloud-fog2": "\f2a2",
"cloud-hail-fill": "\f2a3",
"cloud-hail": "\f2a4",
- "cloud-haze-1": "\f2a5",
"cloud-haze-fill": "\f2a6",
"cloud-haze": "\f2a7",
"cloud-haze2-fill": "\f2a8",
@@ -1450,21 +1450,16 @@ $bootstrap-icons-map: (
"dpad": "\f687",
"ear-fill": "\f688",
"ear": "\f689",
- "envelope-check-1": "\f68a",
"envelope-check-fill": "\f68b",
"envelope-check": "\f68c",
- "envelope-dash-1": "\f68d",
"envelope-dash-fill": "\f68e",
"envelope-dash": "\f68f",
- "envelope-exclamation-1": "\f690",
"envelope-exclamation-fill": "\f691",
"envelope-exclamation": "\f692",
"envelope-plus-fill": "\f693",
"envelope-plus": "\f694",
- "envelope-slash-1": "\f695",
"envelope-slash-fill": "\f696",
"envelope-slash": "\f697",
- "envelope-x-1": "\f698",
"envelope-x-fill": "\f699",
"envelope-x": "\f69a",
"explicit-fill": "\f69b",
@@ -1474,8 +1469,6 @@ $bootstrap-icons-map: (
"list-columns-reverse": "\f69f",
"list-columns": "\f6a0",
"meta": "\f6a1",
- "mortorboard-fill": "\f6a2",
- "mortorboard": "\f6a3",
"nintendo-switch": "\f6a4",
"pc-display-horizontal": "\f6a5",
"pc-display": "\f6a6",
@@ -1494,7 +1487,6 @@ $bootstrap-icons-map: (
"send-check": "\f6b3",
"send-dash-fill": "\f6b4",
"send-dash": "\f6b5",
- "send-exclamation-1": "\f6b6",
"send-exclamation-fill": "\f6b7",
"send-exclamation": "\f6b8",
"send-fill": "\f6b9",
@@ -1506,7 +1498,6 @@ $bootstrap-icons-map: (
"send-x": "\f6bf",
"send": "\f6c0",
"steam": "\f6c1",
- "terminal-dash-1": "\f6c2",
"terminal-dash": "\f6c3",
"terminal-plus": "\f6c4",
"terminal-split": "\f6c5",
@@ -1536,7 +1527,6 @@ $bootstrap-icons-map: (
"usb-symbol": "\f6dd",
"usb": "\f6de",
"boombox-fill": "\f6df",
- "displayport-1": "\f6e0",
"displayport": "\f6e1",
"gpu-card": "\f6e2",
"memory": "\f6e3",
@@ -1549,8 +1539,6 @@ $bootstrap-icons-map: (
"pci-card": "\f6ea",
"router-fill": "\f6eb",
"router": "\f6ec",
- "ssd-fill": "\f6ed",
- "ssd": "\f6ee",
"thunderbolt-fill": "\f6ef",
"thunderbolt": "\f6f0",
"usb-drive-fill": "\f6f1",
@@ -1657,7 +1645,6 @@ $bootstrap-icons-map: (
"filetype-pdf": "\f756",
"filetype-php": "\f757",
"filetype-png": "\f758",
- "filetype-ppt-1": "\f759",
"filetype-ppt": "\f75a",
"filetype-psd": "\f75b",
"filetype-py": "\f75c",
@@ -1673,7 +1660,6 @@ $bootstrap-icons-map: (
"filetype-txt": "\f766",
"filetype-wav": "\f767",
"filetype-woff": "\f768",
- "filetype-xls-1": "\f769",
"filetype-xls": "\f76a",
"filetype-xml": "\f76b",
"filetype-yml": "\f76c",
@@ -1716,1688 +1702,293 @@ $bootstrap-icons-map: (
"filetype-json": "\f791",
"filetype-pptx": "\f792",
"filetype-xlsx": "\f793",
+ "1-circle-fill": "\f796",
+ "1-circle": "\f797",
+ "1-square-fill": "\f798",
+ "1-square": "\f799",
+ "2-circle-fill": "\f79c",
+ "2-circle": "\f79d",
+ "2-square-fill": "\f79e",
+ "2-square": "\f79f",
+ "3-circle-fill": "\f7a2",
+ "3-circle": "\f7a3",
+ "3-square-fill": "\f7a4",
+ "3-square": "\f7a5",
+ "4-circle-fill": "\f7a8",
+ "4-circle": "\f7a9",
+ "4-square-fill": "\f7aa",
+ "4-square": "\f7ab",
+ "5-circle-fill": "\f7ae",
+ "5-circle": "\f7af",
+ "5-square-fill": "\f7b0",
+ "5-square": "\f7b1",
+ "6-circle-fill": "\f7b4",
+ "6-circle": "\f7b5",
+ "6-square-fill": "\f7b6",
+ "6-square": "\f7b7",
+ "7-circle-fill": "\f7ba",
+ "7-circle": "\f7bb",
+ "7-square-fill": "\f7bc",
+ "7-square": "\f7bd",
+ "8-circle-fill": "\f7c0",
+ "8-circle": "\f7c1",
+ "8-square-fill": "\f7c2",
+ "8-square": "\f7c3",
+ "9-circle-fill": "\f7c6",
+ "9-circle": "\f7c7",
+ "9-square-fill": "\f7c8",
+ "9-square": "\f7c9",
+ "airplane-engines-fill": "\f7ca",
+ "airplane-engines": "\f7cb",
+ "airplane-fill": "\f7cc",
+ "airplane": "\f7cd",
+ "alexa": "\f7ce",
+ "alipay": "\f7cf",
+ "android": "\f7d0",
+ "android2": "\f7d1",
+ "box-fill": "\f7d2",
+ "box-seam-fill": "\f7d3",
+ "browser-chrome": "\f7d4",
+ "browser-edge": "\f7d5",
+ "browser-firefox": "\f7d6",
+ "browser-safari": "\f7d7",
+ "c-circle-fill": "\f7da",
+ "c-circle": "\f7db",
+ "c-square-fill": "\f7dc",
+ "c-square": "\f7dd",
+ "capsule-pill": "\f7de",
+ "capsule": "\f7df",
+ "car-front-fill": "\f7e0",
+ "car-front": "\f7e1",
+ "cassette-fill": "\f7e2",
+ "cassette": "\f7e3",
+ "cc-circle-fill": "\f7e6",
+ "cc-circle": "\f7e7",
+ "cc-square-fill": "\f7e8",
+ "cc-square": "\f7e9",
+ "cup-hot-fill": "\f7ea",
+ "cup-hot": "\f7eb",
+ "currency-rupee": "\f7ec",
+ "dropbox": "\f7ed",
+ "escape": "\f7ee",
+ "fast-forward-btn-fill": "\f7ef",
+ "fast-forward-btn": "\f7f0",
+ "fast-forward-circle-fill": "\f7f1",
+ "fast-forward-circle": "\f7f2",
+ "fast-forward-fill": "\f7f3",
+ "fast-forward": "\f7f4",
+ "filetype-sql": "\f7f5",
+ "fire": "\f7f6",
+ "google-play": "\f7f7",
+ "h-circle-fill": "\f7fa",
+ "h-circle": "\f7fb",
+ "h-square-fill": "\f7fc",
+ "h-square": "\f7fd",
+ "indent": "\f7fe",
+ "lungs-fill": "\f7ff",
+ "lungs": "\f800",
+ "microsoft-teams": "\f801",
+ "p-circle-fill": "\f804",
+ "p-circle": "\f805",
+ "p-square-fill": "\f806",
+ "p-square": "\f807",
+ "pass-fill": "\f808",
+ "pass": "\f809",
+ "prescription": "\f80a",
+ "prescription2": "\f80b",
+ "r-circle-fill": "\f80e",
+ "r-circle": "\f80f",
+ "r-square-fill": "\f810",
+ "r-square": "\f811",
+ "repeat-1": "\f812",
+ "repeat": "\f813",
+ "rewind-btn-fill": "\f814",
+ "rewind-btn": "\f815",
+ "rewind-circle-fill": "\f816",
+ "rewind-circle": "\f817",
+ "rewind-fill": "\f818",
+ "rewind": "\f819",
+ "train-freight-front-fill": "\f81a",
+ "train-freight-front": "\f81b",
+ "train-front-fill": "\f81c",
+ "train-front": "\f81d",
+ "train-lightrail-front-fill": "\f81e",
+ "train-lightrail-front": "\f81f",
+ "truck-front-fill": "\f820",
+ "truck-front": "\f821",
+ "ubuntu": "\f822",
+ "unindent": "\f823",
+ "unity": "\f824",
+ "universal-access-circle": "\f825",
+ "universal-access": "\f826",
+ "virus": "\f827",
+ "virus2": "\f828",
+ "wechat": "\f829",
+ "yelp": "\f82a",
+ "sign-stop-fill": "\f82b",
+ "sign-stop-lights-fill": "\f82c",
+ "sign-stop-lights": "\f82d",
+ "sign-stop": "\f82e",
+ "sign-turn-left-fill": "\f82f",
+ "sign-turn-left": "\f830",
+ "sign-turn-right-fill": "\f831",
+ "sign-turn-right": "\f832",
+ "sign-turn-slight-left-fill": "\f833",
+ "sign-turn-slight-left": "\f834",
+ "sign-turn-slight-right-fill": "\f835",
+ "sign-turn-slight-right": "\f836",
+ "sign-yield-fill": "\f837",
+ "sign-yield": "\f838",
+ "ev-station-fill": "\f839",
+ "ev-station": "\f83a",
+ "fuel-pump-diesel-fill": "\f83b",
+ "fuel-pump-diesel": "\f83c",
+ "fuel-pump-fill": "\f83d",
+ "fuel-pump": "\f83e",
+ "0-circle-fill": "\f83f",
+ "0-circle": "\f840",
+ "0-square-fill": "\f841",
+ "0-square": "\f842",
+ "rocket-fill": "\f843",
+ "rocket-takeoff-fill": "\f844",
+ "rocket-takeoff": "\f845",
+ "rocket": "\f846",
+ "stripe": "\f847",
+ "subscript": "\f848",
+ "superscript": "\f849",
+ "trello": "\f84a",
+ "envelope-at-fill": "\f84b",
+ "envelope-at": "\f84c",
+ "regex": "\f84d",
+ "text-wrap": "\f84e",
+ "sign-dead-end-fill": "\f84f",
+ "sign-dead-end": "\f850",
+ "sign-do-not-enter-fill": "\f851",
+ "sign-do-not-enter": "\f852",
+ "sign-intersection-fill": "\f853",
+ "sign-intersection-side-fill": "\f854",
+ "sign-intersection-side": "\f855",
+ "sign-intersection-t-fill": "\f856",
+ "sign-intersection-t": "\f857",
+ "sign-intersection-y-fill": "\f858",
+ "sign-intersection-y": "\f859",
+ "sign-intersection": "\f85a",
+ "sign-merge-left-fill": "\f85b",
+ "sign-merge-left": "\f85c",
+ "sign-merge-right-fill": "\f85d",
+ "sign-merge-right": "\f85e",
+ "sign-no-left-turn-fill": "\f85f",
+ "sign-no-left-turn": "\f860",
+ "sign-no-parking-fill": "\f861",
+ "sign-no-parking": "\f862",
+ "sign-no-right-turn-fill": "\f863",
+ "sign-no-right-turn": "\f864",
+ "sign-railroad-fill": "\f865",
+ "sign-railroad": "\f866",
+ "building-add": "\f867",
+ "building-check": "\f868",
+ "building-dash": "\f869",
+ "building-down": "\f86a",
+ "building-exclamation": "\f86b",
+ "building-fill-add": "\f86c",
+ "building-fill-check": "\f86d",
+ "building-fill-dash": "\f86e",
+ "building-fill-down": "\f86f",
+ "building-fill-exclamation": "\f870",
+ "building-fill-gear": "\f871",
+ "building-fill-lock": "\f872",
+ "building-fill-slash": "\f873",
+ "building-fill-up": "\f874",
+ "building-fill-x": "\f875",
+ "building-fill": "\f876",
+ "building-gear": "\f877",
+ "building-lock": "\f878",
+ "building-slash": "\f879",
+ "building-up": "\f87a",
+ "building-x": "\f87b",
+ "buildings-fill": "\f87c",
+ "buildings": "\f87d",
+ "bus-front-fill": "\f87e",
+ "bus-front": "\f87f",
+ "ev-front-fill": "\f880",
+ "ev-front": "\f881",
+ "globe-americas": "\f882",
+ "globe-asia-australia": "\f883",
+ "globe-central-south-asia": "\f884",
+ "globe-europe-africa": "\f885",
+ "house-add-fill": "\f886",
+ "house-add": "\f887",
+ "house-check-fill": "\f888",
+ "house-check": "\f889",
+ "house-dash-fill": "\f88a",
+ "house-dash": "\f88b",
+ "house-down-fill": "\f88c",
+ "house-down": "\f88d",
+ "house-exclamation-fill": "\f88e",
+ "house-exclamation": "\f88f",
+ "house-gear-fill": "\f890",
+ "house-gear": "\f891",
+ "house-lock-fill": "\f892",
+ "house-lock": "\f893",
+ "house-slash-fill": "\f894",
+ "house-slash": "\f895",
+ "house-up-fill": "\f896",
+ "house-up": "\f897",
+ "house-x-fill": "\f898",
+ "house-x": "\f899",
+ "person-add": "\f89a",
+ "person-down": "\f89b",
+ "person-exclamation": "\f89c",
+ "person-fill-add": "\f89d",
+ "person-fill-check": "\f89e",
+ "person-fill-dash": "\f89f",
+ "person-fill-down": "\f8a0",
+ "person-fill-exclamation": "\f8a1",
+ "person-fill-gear": "\f8a2",
+ "person-fill-lock": "\f8a3",
+ "person-fill-slash": "\f8a4",
+ "person-fill-up": "\f8a5",
+ "person-fill-x": "\f8a6",
+ "person-gear": "\f8a7",
+ "person-lock": "\f8a8",
+ "person-slash": "\f8a9",
+ "person-up": "\f8aa",
+ "scooter": "\f8ab",
+ "taxi-front-fill": "\f8ac",
+ "taxi-front": "\f8ad",
+ "amd": "\f8ae",
+ "database-add": "\f8af",
+ "database-check": "\f8b0",
+ "database-dash": "\f8b1",
+ "database-down": "\f8b2",
+ "database-exclamation": "\f8b3",
+ "database-fill-add": "\f8b4",
+ "database-fill-check": "\f8b5",
+ "database-fill-dash": "\f8b6",
+ "database-fill-down": "\f8b7",
+ "database-fill-exclamation": "\f8b8",
+ "database-fill-gear": "\f8b9",
+ "database-fill-lock": "\f8ba",
+ "database-fill-slash": "\f8bb",
+ "database-fill-up": "\f8bc",
+ "database-fill-x": "\f8bd",
+ "database-fill": "\f8be",
+ "database-gear": "\f8bf",
+ "database-lock": "\f8c0",
+ "database-slash": "\f8c1",
+ "database-up": "\f8c2",
+ "database-x": "\f8c3",
+ "database": "\f8c4",
+ "houses-fill": "\f8c5",
+ "houses": "\f8c6",
+ "nvidia": "\f8c7",
+ "person-vcard-fill": "\f8c8",
+ "person-vcard": "\f8c9",
+ "sina-weibo": "\f8ca",
+ "tencent-qq": "\f8cb",
+ "wikipedia": "\f8cc",
);
-.bi-123::before { content: map-get($bootstrap-icons-map, "123"); }
-.bi-alarm-fill::before { content: map-get($bootstrap-icons-map, "alarm-fill"); }
-.bi-alarm::before { content: map-get($bootstrap-icons-map, "alarm"); }
-.bi-align-bottom::before { content: map-get($bootstrap-icons-map, "align-bottom"); }
-.bi-align-center::before { content: map-get($bootstrap-icons-map, "align-center"); }
-.bi-align-end::before { content: map-get($bootstrap-icons-map, "align-end"); }
-.bi-align-middle::before { content: map-get($bootstrap-icons-map, "align-middle"); }
-.bi-align-start::before { content: map-get($bootstrap-icons-map, "align-start"); }
-.bi-align-top::before { content: map-get($bootstrap-icons-map, "align-top"); }
-.bi-alt::before { content: map-get($bootstrap-icons-map, "alt"); }
-.bi-app-indicator::before { content: map-get($bootstrap-icons-map, "app-indicator"); }
-.bi-app::before { content: map-get($bootstrap-icons-map, "app"); }
-.bi-archive-fill::before { content: map-get($bootstrap-icons-map, "archive-fill"); }
-.bi-archive::before { content: map-get($bootstrap-icons-map, "archive"); }
-.bi-arrow-90deg-down::before { content: map-get($bootstrap-icons-map, "arrow-90deg-down"); }
-.bi-arrow-90deg-left::before { content: map-get($bootstrap-icons-map, "arrow-90deg-left"); }
-.bi-arrow-90deg-right::before { content: map-get($bootstrap-icons-map, "arrow-90deg-right"); }
-.bi-arrow-90deg-up::before { content: map-get($bootstrap-icons-map, "arrow-90deg-up"); }
-.bi-arrow-bar-down::before { content: map-get($bootstrap-icons-map, "arrow-bar-down"); }
-.bi-arrow-bar-left::before { content: map-get($bootstrap-icons-map, "arrow-bar-left"); }
-.bi-arrow-bar-right::before { content: map-get($bootstrap-icons-map, "arrow-bar-right"); }
-.bi-arrow-bar-up::before { content: map-get($bootstrap-icons-map, "arrow-bar-up"); }
-.bi-arrow-clockwise::before { content: map-get($bootstrap-icons-map, "arrow-clockwise"); }
-.bi-arrow-counterclockwise::before { content: map-get($bootstrap-icons-map, "arrow-counterclockwise"); }
-.bi-arrow-down-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-circle-fill"); }
-.bi-arrow-down-circle::before { content: map-get($bootstrap-icons-map, "arrow-down-circle"); }
-.bi-arrow-down-left-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-left-circle-fill"); }
-.bi-arrow-down-left-circle::before { content: map-get($bootstrap-icons-map, "arrow-down-left-circle"); }
-.bi-arrow-down-left-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-left-square-fill"); }
-.bi-arrow-down-left-square::before { content: map-get($bootstrap-icons-map, "arrow-down-left-square"); }
-.bi-arrow-down-left::before { content: map-get($bootstrap-icons-map, "arrow-down-left"); }
-.bi-arrow-down-right-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-right-circle-fill"); }
-.bi-arrow-down-right-circle::before { content: map-get($bootstrap-icons-map, "arrow-down-right-circle"); }
-.bi-arrow-down-right-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-right-square-fill"); }
-.bi-arrow-down-right-square::before { content: map-get($bootstrap-icons-map, "arrow-down-right-square"); }
-.bi-arrow-down-right::before { content: map-get($bootstrap-icons-map, "arrow-down-right"); }
-.bi-arrow-down-short::before { content: map-get($bootstrap-icons-map, "arrow-down-short"); }
-.bi-arrow-down-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-square-fill"); }
-.bi-arrow-down-square::before { content: map-get($bootstrap-icons-map, "arrow-down-square"); }
-.bi-arrow-down-up::before { content: map-get($bootstrap-icons-map, "arrow-down-up"); }
-.bi-arrow-down::before { content: map-get($bootstrap-icons-map, "arrow-down"); }
-.bi-arrow-left-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-left-circle-fill"); }
-.bi-arrow-left-circle::before { content: map-get($bootstrap-icons-map, "arrow-left-circle"); }
-.bi-arrow-left-right::before { content: map-get($bootstrap-icons-map, "arrow-left-right"); }
-.bi-arrow-left-short::before { content: map-get($bootstrap-icons-map, "arrow-left-short"); }
-.bi-arrow-left-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-left-square-fill"); }
-.bi-arrow-left-square::before { content: map-get($bootstrap-icons-map, "arrow-left-square"); }
-.bi-arrow-left::before { content: map-get($bootstrap-icons-map, "arrow-left"); }
-.bi-arrow-repeat::before { content: map-get($bootstrap-icons-map, "arrow-repeat"); }
-.bi-arrow-return-left::before { content: map-get($bootstrap-icons-map, "arrow-return-left"); }
-.bi-arrow-return-right::before { content: map-get($bootstrap-icons-map, "arrow-return-right"); }
-.bi-arrow-right-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-right-circle-fill"); }
-.bi-arrow-right-circle::before { content: map-get($bootstrap-icons-map, "arrow-right-circle"); }
-.bi-arrow-right-short::before { content: map-get($bootstrap-icons-map, "arrow-right-short"); }
-.bi-arrow-right-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-right-square-fill"); }
-.bi-arrow-right-square::before { content: map-get($bootstrap-icons-map, "arrow-right-square"); }
-.bi-arrow-right::before { content: map-get($bootstrap-icons-map, "arrow-right"); }
-.bi-arrow-up-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-circle-fill"); }
-.bi-arrow-up-circle::before { content: map-get($bootstrap-icons-map, "arrow-up-circle"); }
-.bi-arrow-up-left-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-left-circle-fill"); }
-.bi-arrow-up-left-circle::before { content: map-get($bootstrap-icons-map, "arrow-up-left-circle"); }
-.bi-arrow-up-left-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-left-square-fill"); }
-.bi-arrow-up-left-square::before { content: map-get($bootstrap-icons-map, "arrow-up-left-square"); }
-.bi-arrow-up-left::before { content: map-get($bootstrap-icons-map, "arrow-up-left"); }
-.bi-arrow-up-right-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-right-circle-fill"); }
-.bi-arrow-up-right-circle::before { content: map-get($bootstrap-icons-map, "arrow-up-right-circle"); }
-.bi-arrow-up-right-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-right-square-fill"); }
-.bi-arrow-up-right-square::before { content: map-get($bootstrap-icons-map, "arrow-up-right-square"); }
-.bi-arrow-up-right::before { content: map-get($bootstrap-icons-map, "arrow-up-right"); }
-.bi-arrow-up-short::before { content: map-get($bootstrap-icons-map, "arrow-up-short"); }
-.bi-arrow-up-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-square-fill"); }
-.bi-arrow-up-square::before { content: map-get($bootstrap-icons-map, "arrow-up-square"); }
-.bi-arrow-up::before { content: map-get($bootstrap-icons-map, "arrow-up"); }
-.bi-arrows-angle-contract::before { content: map-get($bootstrap-icons-map, "arrows-angle-contract"); }
-.bi-arrows-angle-expand::before { content: map-get($bootstrap-icons-map, "arrows-angle-expand"); }
-.bi-arrows-collapse::before { content: map-get($bootstrap-icons-map, "arrows-collapse"); }
-.bi-arrows-expand::before { content: map-get($bootstrap-icons-map, "arrows-expand"); }
-.bi-arrows-fullscreen::before { content: map-get($bootstrap-icons-map, "arrows-fullscreen"); }
-.bi-arrows-move::before { content: map-get($bootstrap-icons-map, "arrows-move"); }
-.bi-aspect-ratio-fill::before { content: map-get($bootstrap-icons-map, "aspect-ratio-fill"); }
-.bi-aspect-ratio::before { content: map-get($bootstrap-icons-map, "aspect-ratio"); }
-.bi-asterisk::before { content: map-get($bootstrap-icons-map, "asterisk"); }
-.bi-at::before { content: map-get($bootstrap-icons-map, "at"); }
-.bi-award-fill::before { content: map-get($bootstrap-icons-map, "award-fill"); }
-.bi-award::before { content: map-get($bootstrap-icons-map, "award"); }
-.bi-back::before { content: map-get($bootstrap-icons-map, "back"); }
-.bi-backspace-fill::before { content: map-get($bootstrap-icons-map, "backspace-fill"); }
-.bi-backspace-reverse-fill::before { content: map-get($bootstrap-icons-map, "backspace-reverse-fill"); }
-.bi-backspace-reverse::before { content: map-get($bootstrap-icons-map, "backspace-reverse"); }
-.bi-backspace::before { content: map-get($bootstrap-icons-map, "backspace"); }
-.bi-badge-3d-fill::before { content: map-get($bootstrap-icons-map, "badge-3d-fill"); }
-.bi-badge-3d::before { content: map-get($bootstrap-icons-map, "badge-3d"); }
-.bi-badge-4k-fill::before { content: map-get($bootstrap-icons-map, "badge-4k-fill"); }
-.bi-badge-4k::before { content: map-get($bootstrap-icons-map, "badge-4k"); }
-.bi-badge-8k-fill::before { content: map-get($bootstrap-icons-map, "badge-8k-fill"); }
-.bi-badge-8k::before { content: map-get($bootstrap-icons-map, "badge-8k"); }
-.bi-badge-ad-fill::before { content: map-get($bootstrap-icons-map, "badge-ad-fill"); }
-.bi-badge-ad::before { content: map-get($bootstrap-icons-map, "badge-ad"); }
-.bi-badge-ar-fill::before { content: map-get($bootstrap-icons-map, "badge-ar-fill"); }
-.bi-badge-ar::before { content: map-get($bootstrap-icons-map, "badge-ar"); }
-.bi-badge-cc-fill::before { content: map-get($bootstrap-icons-map, "badge-cc-fill"); }
-.bi-badge-cc::before { content: map-get($bootstrap-icons-map, "badge-cc"); }
-.bi-badge-hd-fill::before { content: map-get($bootstrap-icons-map, "badge-hd-fill"); }
-.bi-badge-hd::before { content: map-get($bootstrap-icons-map, "badge-hd"); }
-.bi-badge-tm-fill::before { content: map-get($bootstrap-icons-map, "badge-tm-fill"); }
-.bi-badge-tm::before { content: map-get($bootstrap-icons-map, "badge-tm"); }
-.bi-badge-vo-fill::before { content: map-get($bootstrap-icons-map, "badge-vo-fill"); }
-.bi-badge-vo::before { content: map-get($bootstrap-icons-map, "badge-vo"); }
-.bi-badge-vr-fill::before { content: map-get($bootstrap-icons-map, "badge-vr-fill"); }
-.bi-badge-vr::before { content: map-get($bootstrap-icons-map, "badge-vr"); }
-.bi-badge-wc-fill::before { content: map-get($bootstrap-icons-map, "badge-wc-fill"); }
-.bi-badge-wc::before { content: map-get($bootstrap-icons-map, "badge-wc"); }
-.bi-bag-check-fill::before { content: map-get($bootstrap-icons-map, "bag-check-fill"); }
-.bi-bag-check::before { content: map-get($bootstrap-icons-map, "bag-check"); }
-.bi-bag-dash-fill::before { content: map-get($bootstrap-icons-map, "bag-dash-fill"); }
-.bi-bag-dash::before { content: map-get($bootstrap-icons-map, "bag-dash"); }
-.bi-bag-fill::before { content: map-get($bootstrap-icons-map, "bag-fill"); }
-.bi-bag-plus-fill::before { content: map-get($bootstrap-icons-map, "bag-plus-fill"); }
-.bi-bag-plus::before { content: map-get($bootstrap-icons-map, "bag-plus"); }
-.bi-bag-x-fill::before { content: map-get($bootstrap-icons-map, "bag-x-fill"); }
-.bi-bag-x::before { content: map-get($bootstrap-icons-map, "bag-x"); }
-.bi-bag::before { content: map-get($bootstrap-icons-map, "bag"); }
-.bi-bar-chart-fill::before { content: map-get($bootstrap-icons-map, "bar-chart-fill"); }
-.bi-bar-chart-line-fill::before { content: map-get($bootstrap-icons-map, "bar-chart-line-fill"); }
-.bi-bar-chart-line::before { content: map-get($bootstrap-icons-map, "bar-chart-line"); }
-.bi-bar-chart-steps::before { content: map-get($bootstrap-icons-map, "bar-chart-steps"); }
-.bi-bar-chart::before { content: map-get($bootstrap-icons-map, "bar-chart"); }
-.bi-basket-fill::before { content: map-get($bootstrap-icons-map, "basket-fill"); }
-.bi-basket::before { content: map-get($bootstrap-icons-map, "basket"); }
-.bi-basket2-fill::before { content: map-get($bootstrap-icons-map, "basket2-fill"); }
-.bi-basket2::before { content: map-get($bootstrap-icons-map, "basket2"); }
-.bi-basket3-fill::before { content: map-get($bootstrap-icons-map, "basket3-fill"); }
-.bi-basket3::before { content: map-get($bootstrap-icons-map, "basket3"); }
-.bi-battery-charging::before { content: map-get($bootstrap-icons-map, "battery-charging"); }
-.bi-battery-full::before { content: map-get($bootstrap-icons-map, "battery-full"); }
-.bi-battery-half::before { content: map-get($bootstrap-icons-map, "battery-half"); }
-.bi-battery::before { content: map-get($bootstrap-icons-map, "battery"); }
-.bi-bell-fill::before { content: map-get($bootstrap-icons-map, "bell-fill"); }
-.bi-bell::before { content: map-get($bootstrap-icons-map, "bell"); }
-.bi-bezier::before { content: map-get($bootstrap-icons-map, "bezier"); }
-.bi-bezier2::before { content: map-get($bootstrap-icons-map, "bezier2"); }
-.bi-bicycle::before { content: map-get($bootstrap-icons-map, "bicycle"); }
-.bi-binoculars-fill::before { content: map-get($bootstrap-icons-map, "binoculars-fill"); }
-.bi-binoculars::before { content: map-get($bootstrap-icons-map, "binoculars"); }
-.bi-blockquote-left::before { content: map-get($bootstrap-icons-map, "blockquote-left"); }
-.bi-blockquote-right::before { content: map-get($bootstrap-icons-map, "blockquote-right"); }
-.bi-book-fill::before { content: map-get($bootstrap-icons-map, "book-fill"); }
-.bi-book-half::before { content: map-get($bootstrap-icons-map, "book-half"); }
-.bi-book::before { content: map-get($bootstrap-icons-map, "book"); }
-.bi-bookmark-check-fill::before { content: map-get($bootstrap-icons-map, "bookmark-check-fill"); }
-.bi-bookmark-check::before { content: map-get($bootstrap-icons-map, "bookmark-check"); }
-.bi-bookmark-dash-fill::before { content: map-get($bootstrap-icons-map, "bookmark-dash-fill"); }
-.bi-bookmark-dash::before { content: map-get($bootstrap-icons-map, "bookmark-dash"); }
-.bi-bookmark-fill::before { content: map-get($bootstrap-icons-map, "bookmark-fill"); }
-.bi-bookmark-heart-fill::before { content: map-get($bootstrap-icons-map, "bookmark-heart-fill"); }
-.bi-bookmark-heart::before { content: map-get($bootstrap-icons-map, "bookmark-heart"); }
-.bi-bookmark-plus-fill::before { content: map-get($bootstrap-icons-map, "bookmark-plus-fill"); }
-.bi-bookmark-plus::before { content: map-get($bootstrap-icons-map, "bookmark-plus"); }
-.bi-bookmark-star-fill::before { content: map-get($bootstrap-icons-map, "bookmark-star-fill"); }
-.bi-bookmark-star::before { content: map-get($bootstrap-icons-map, "bookmark-star"); }
-.bi-bookmark-x-fill::before { content: map-get($bootstrap-icons-map, "bookmark-x-fill"); }
-.bi-bookmark-x::before { content: map-get($bootstrap-icons-map, "bookmark-x"); }
-.bi-bookmark::before { content: map-get($bootstrap-icons-map, "bookmark"); }
-.bi-bookmarks-fill::before { content: map-get($bootstrap-icons-map, "bookmarks-fill"); }
-.bi-bookmarks::before { content: map-get($bootstrap-icons-map, "bookmarks"); }
-.bi-bookshelf::before { content: map-get($bootstrap-icons-map, "bookshelf"); }
-.bi-bootstrap-fill::before { content: map-get($bootstrap-icons-map, "bootstrap-fill"); }
-.bi-bootstrap-reboot::before { content: map-get($bootstrap-icons-map, "bootstrap-reboot"); }
-.bi-bootstrap::before { content: map-get($bootstrap-icons-map, "bootstrap"); }
-.bi-border-all::before { content: map-get($bootstrap-icons-map, "border-all"); }
-.bi-border-bottom::before { content: map-get($bootstrap-icons-map, "border-bottom"); }
-.bi-border-center::before { content: map-get($bootstrap-icons-map, "border-center"); }
-.bi-border-inner::before { content: map-get($bootstrap-icons-map, "border-inner"); }
-.bi-border-left::before { content: map-get($bootstrap-icons-map, "border-left"); }
-.bi-border-middle::before { content: map-get($bootstrap-icons-map, "border-middle"); }
-.bi-border-outer::before { content: map-get($bootstrap-icons-map, "border-outer"); }
-.bi-border-right::before { content: map-get($bootstrap-icons-map, "border-right"); }
-.bi-border-style::before { content: map-get($bootstrap-icons-map, "border-style"); }
-.bi-border-top::before { content: map-get($bootstrap-icons-map, "border-top"); }
-.bi-border-width::before { content: map-get($bootstrap-icons-map, "border-width"); }
-.bi-border::before { content: map-get($bootstrap-icons-map, "border"); }
-.bi-bounding-box-circles::before { content: map-get($bootstrap-icons-map, "bounding-box-circles"); }
-.bi-bounding-box::before { content: map-get($bootstrap-icons-map, "bounding-box"); }
-.bi-box-arrow-down-left::before { content: map-get($bootstrap-icons-map, "box-arrow-down-left"); }
-.bi-box-arrow-down-right::before { content: map-get($bootstrap-icons-map, "box-arrow-down-right"); }
-.bi-box-arrow-down::before { content: map-get($bootstrap-icons-map, "box-arrow-down"); }
-.bi-box-arrow-in-down-left::before { content: map-get($bootstrap-icons-map, "box-arrow-in-down-left"); }
-.bi-box-arrow-in-down-right::before { content: map-get($bootstrap-icons-map, "box-arrow-in-down-right"); }
-.bi-box-arrow-in-down::before { content: map-get($bootstrap-icons-map, "box-arrow-in-down"); }
-.bi-box-arrow-in-left::before { content: map-get($bootstrap-icons-map, "box-arrow-in-left"); }
-.bi-box-arrow-in-right::before { content: map-get($bootstrap-icons-map, "box-arrow-in-right"); }
-.bi-box-arrow-in-up-left::before { content: map-get($bootstrap-icons-map, "box-arrow-in-up-left"); }
-.bi-box-arrow-in-up-right::before { content: map-get($bootstrap-icons-map, "box-arrow-in-up-right"); }
-.bi-box-arrow-in-up::before { content: map-get($bootstrap-icons-map, "box-arrow-in-up"); }
-.bi-box-arrow-left::before { content: map-get($bootstrap-icons-map, "box-arrow-left"); }
-.bi-box-arrow-right::before { content: map-get($bootstrap-icons-map, "box-arrow-right"); }
-.bi-box-arrow-up-left::before { content: map-get($bootstrap-icons-map, "box-arrow-up-left"); }
-.bi-box-arrow-up-right::before { content: map-get($bootstrap-icons-map, "box-arrow-up-right"); }
-.bi-box-arrow-up::before { content: map-get($bootstrap-icons-map, "box-arrow-up"); }
-.bi-box-seam::before { content: map-get($bootstrap-icons-map, "box-seam"); }
-.bi-box::before { content: map-get($bootstrap-icons-map, "box"); }
-.bi-braces::before { content: map-get($bootstrap-icons-map, "braces"); }
-.bi-bricks::before { content: map-get($bootstrap-icons-map, "bricks"); }
-.bi-briefcase-fill::before { content: map-get($bootstrap-icons-map, "briefcase-fill"); }
-.bi-briefcase::before { content: map-get($bootstrap-icons-map, "briefcase"); }
-.bi-brightness-alt-high-fill::before { content: map-get($bootstrap-icons-map, "brightness-alt-high-fill"); }
-.bi-brightness-alt-high::before { content: map-get($bootstrap-icons-map, "brightness-alt-high"); }
-.bi-brightness-alt-low-fill::before { content: map-get($bootstrap-icons-map, "brightness-alt-low-fill"); }
-.bi-brightness-alt-low::before { content: map-get($bootstrap-icons-map, "brightness-alt-low"); }
-.bi-brightness-high-fill::before { content: map-get($bootstrap-icons-map, "brightness-high-fill"); }
-.bi-brightness-high::before { content: map-get($bootstrap-icons-map, "brightness-high"); }
-.bi-brightness-low-fill::before { content: map-get($bootstrap-icons-map, "brightness-low-fill"); }
-.bi-brightness-low::before { content: map-get($bootstrap-icons-map, "brightness-low"); }
-.bi-broadcast-pin::before { content: map-get($bootstrap-icons-map, "broadcast-pin"); }
-.bi-broadcast::before { content: map-get($bootstrap-icons-map, "broadcast"); }
-.bi-brush-fill::before { content: map-get($bootstrap-icons-map, "brush-fill"); }
-.bi-brush::before { content: map-get($bootstrap-icons-map, "brush"); }
-.bi-bucket-fill::before { content: map-get($bootstrap-icons-map, "bucket-fill"); }
-.bi-bucket::before { content: map-get($bootstrap-icons-map, "bucket"); }
-.bi-bug-fill::before { content: map-get($bootstrap-icons-map, "bug-fill"); }
-.bi-bug::before { content: map-get($bootstrap-icons-map, "bug"); }
-.bi-building::before { content: map-get($bootstrap-icons-map, "building"); }
-.bi-bullseye::before { content: map-get($bootstrap-icons-map, "bullseye"); }
-.bi-calculator-fill::before { content: map-get($bootstrap-icons-map, "calculator-fill"); }
-.bi-calculator::before { content: map-get($bootstrap-icons-map, "calculator"); }
-.bi-calendar-check-fill::before { content: map-get($bootstrap-icons-map, "calendar-check-fill"); }
-.bi-calendar-check::before { content: map-get($bootstrap-icons-map, "calendar-check"); }
-.bi-calendar-date-fill::before { content: map-get($bootstrap-icons-map, "calendar-date-fill"); }
-.bi-calendar-date::before { content: map-get($bootstrap-icons-map, "calendar-date"); }
-.bi-calendar-day-fill::before { content: map-get($bootstrap-icons-map, "calendar-day-fill"); }
-.bi-calendar-day::before { content: map-get($bootstrap-icons-map, "calendar-day"); }
-.bi-calendar-event-fill::before { content: map-get($bootstrap-icons-map, "calendar-event-fill"); }
-.bi-calendar-event::before { content: map-get($bootstrap-icons-map, "calendar-event"); }
-.bi-calendar-fill::before { content: map-get($bootstrap-icons-map, "calendar-fill"); }
-.bi-calendar-minus-fill::before { content: map-get($bootstrap-icons-map, "calendar-minus-fill"); }
-.bi-calendar-minus::before { content: map-get($bootstrap-icons-map, "calendar-minus"); }
-.bi-calendar-month-fill::before { content: map-get($bootstrap-icons-map, "calendar-month-fill"); }
-.bi-calendar-month::before { content: map-get($bootstrap-icons-map, "calendar-month"); }
-.bi-calendar-plus-fill::before { content: map-get($bootstrap-icons-map, "calendar-plus-fill"); }
-.bi-calendar-plus::before { content: map-get($bootstrap-icons-map, "calendar-plus"); }
-.bi-calendar-range-fill::before { content: map-get($bootstrap-icons-map, "calendar-range-fill"); }
-.bi-calendar-range::before { content: map-get($bootstrap-icons-map, "calendar-range"); }
-.bi-calendar-week-fill::before { content: map-get($bootstrap-icons-map, "calendar-week-fill"); }
-.bi-calendar-week::before { content: map-get($bootstrap-icons-map, "calendar-week"); }
-.bi-calendar-x-fill::before { content: map-get($bootstrap-icons-map, "calendar-x-fill"); }
-.bi-calendar-x::before { content: map-get($bootstrap-icons-map, "calendar-x"); }
-.bi-calendar::before { content: map-get($bootstrap-icons-map, "calendar"); }
-.bi-calendar2-check-fill::before { content: map-get($bootstrap-icons-map, "calendar2-check-fill"); }
-.bi-calendar2-check::before { content: map-get($bootstrap-icons-map, "calendar2-check"); }
-.bi-calendar2-date-fill::before { content: map-get($bootstrap-icons-map, "calendar2-date-fill"); }
-.bi-calendar2-date::before { content: map-get($bootstrap-icons-map, "calendar2-date"); }
-.bi-calendar2-day-fill::before { content: map-get($bootstrap-icons-map, "calendar2-day-fill"); }
-.bi-calendar2-day::before { content: map-get($bootstrap-icons-map, "calendar2-day"); }
-.bi-calendar2-event-fill::before { content: map-get($bootstrap-icons-map, "calendar2-event-fill"); }
-.bi-calendar2-event::before { content: map-get($bootstrap-icons-map, "calendar2-event"); }
-.bi-calendar2-fill::before { content: map-get($bootstrap-icons-map, "calendar2-fill"); }
-.bi-calendar2-minus-fill::before { content: map-get($bootstrap-icons-map, "calendar2-minus-fill"); }
-.bi-calendar2-minus::before { content: map-get($bootstrap-icons-map, "calendar2-minus"); }
-.bi-calendar2-month-fill::before { content: map-get($bootstrap-icons-map, "calendar2-month-fill"); }
-.bi-calendar2-month::before { content: map-get($bootstrap-icons-map, "calendar2-month"); }
-.bi-calendar2-plus-fill::before { content: map-get($bootstrap-icons-map, "calendar2-plus-fill"); }
-.bi-calendar2-plus::before { content: map-get($bootstrap-icons-map, "calendar2-plus"); }
-.bi-calendar2-range-fill::before { content: map-get($bootstrap-icons-map, "calendar2-range-fill"); }
-.bi-calendar2-range::before { content: map-get($bootstrap-icons-map, "calendar2-range"); }
-.bi-calendar2-week-fill::before { content: map-get($bootstrap-icons-map, "calendar2-week-fill"); }
-.bi-calendar2-week::before { content: map-get($bootstrap-icons-map, "calendar2-week"); }
-.bi-calendar2-x-fill::before { content: map-get($bootstrap-icons-map, "calendar2-x-fill"); }
-.bi-calendar2-x::before { content: map-get($bootstrap-icons-map, "calendar2-x"); }
-.bi-calendar2::before { content: map-get($bootstrap-icons-map, "calendar2"); }
-.bi-calendar3-event-fill::before { content: map-get($bootstrap-icons-map, "calendar3-event-fill"); }
-.bi-calendar3-event::before { content: map-get($bootstrap-icons-map, "calendar3-event"); }
-.bi-calendar3-fill::before { content: map-get($bootstrap-icons-map, "calendar3-fill"); }
-.bi-calendar3-range-fill::before { content: map-get($bootstrap-icons-map, "calendar3-range-fill"); }
-.bi-calendar3-range::before { content: map-get($bootstrap-icons-map, "calendar3-range"); }
-.bi-calendar3-week-fill::before { content: map-get($bootstrap-icons-map, "calendar3-week-fill"); }
-.bi-calendar3-week::before { content: map-get($bootstrap-icons-map, "calendar3-week"); }
-.bi-calendar3::before { content: map-get($bootstrap-icons-map, "calendar3"); }
-.bi-calendar4-event::before { content: map-get($bootstrap-icons-map, "calendar4-event"); }
-.bi-calendar4-range::before { content: map-get($bootstrap-icons-map, "calendar4-range"); }
-.bi-calendar4-week::before { content: map-get($bootstrap-icons-map, "calendar4-week"); }
-.bi-calendar4::before { content: map-get($bootstrap-icons-map, "calendar4"); }
-.bi-camera-fill::before { content: map-get($bootstrap-icons-map, "camera-fill"); }
-.bi-camera-reels-fill::before { content: map-get($bootstrap-icons-map, "camera-reels-fill"); }
-.bi-camera-reels::before { content: map-get($bootstrap-icons-map, "camera-reels"); }
-.bi-camera-video-fill::before { content: map-get($bootstrap-icons-map, "camera-video-fill"); }
-.bi-camera-video-off-fill::before { content: map-get($bootstrap-icons-map, "camera-video-off-fill"); }
-.bi-camera-video-off::before { content: map-get($bootstrap-icons-map, "camera-video-off"); }
-.bi-camera-video::before { content: map-get($bootstrap-icons-map, "camera-video"); }
-.bi-camera::before { content: map-get($bootstrap-icons-map, "camera"); }
-.bi-camera2::before { content: map-get($bootstrap-icons-map, "camera2"); }
-.bi-capslock-fill::before { content: map-get($bootstrap-icons-map, "capslock-fill"); }
-.bi-capslock::before { content: map-get($bootstrap-icons-map, "capslock"); }
-.bi-card-checklist::before { content: map-get($bootstrap-icons-map, "card-checklist"); }
-.bi-card-heading::before { content: map-get($bootstrap-icons-map, "card-heading"); }
-.bi-card-image::before { content: map-get($bootstrap-icons-map, "card-image"); }
-.bi-card-list::before { content: map-get($bootstrap-icons-map, "card-list"); }
-.bi-card-text::before { content: map-get($bootstrap-icons-map, "card-text"); }
-.bi-caret-down-fill::before { content: map-get($bootstrap-icons-map, "caret-down-fill"); }
-.bi-caret-down-square-fill::before { content: map-get($bootstrap-icons-map, "caret-down-square-fill"); }
-.bi-caret-down-square::before { content: map-get($bootstrap-icons-map, "caret-down-square"); }
-.bi-caret-down::before { content: map-get($bootstrap-icons-map, "caret-down"); }
-.bi-caret-left-fill::before { content: map-get($bootstrap-icons-map, "caret-left-fill"); }
-.bi-caret-left-square-fill::before { content: map-get($bootstrap-icons-map, "caret-left-square-fill"); }
-.bi-caret-left-square::before { content: map-get($bootstrap-icons-map, "caret-left-square"); }
-.bi-caret-left::before { content: map-get($bootstrap-icons-map, "caret-left"); }
-.bi-caret-right-fill::before { content: map-get($bootstrap-icons-map, "caret-right-fill"); }
-.bi-caret-right-square-fill::before { content: map-get($bootstrap-icons-map, "caret-right-square-fill"); }
-.bi-caret-right-square::before { content: map-get($bootstrap-icons-map, "caret-right-square"); }
-.bi-caret-right::before { content: map-get($bootstrap-icons-map, "caret-right"); }
-.bi-caret-up-fill::before { content: map-get($bootstrap-icons-map, "caret-up-fill"); }
-.bi-caret-up-square-fill::before { content: map-get($bootstrap-icons-map, "caret-up-square-fill"); }
-.bi-caret-up-square::before { content: map-get($bootstrap-icons-map, "caret-up-square"); }
-.bi-caret-up::before { content: map-get($bootstrap-icons-map, "caret-up"); }
-.bi-cart-check-fill::before { content: map-get($bootstrap-icons-map, "cart-check-fill"); }
-.bi-cart-check::before { content: map-get($bootstrap-icons-map, "cart-check"); }
-.bi-cart-dash-fill::before { content: map-get($bootstrap-icons-map, "cart-dash-fill"); }
-.bi-cart-dash::before { content: map-get($bootstrap-icons-map, "cart-dash"); }
-.bi-cart-fill::before { content: map-get($bootstrap-icons-map, "cart-fill"); }
-.bi-cart-plus-fill::before { content: map-get($bootstrap-icons-map, "cart-plus-fill"); }
-.bi-cart-plus::before { content: map-get($bootstrap-icons-map, "cart-plus"); }
-.bi-cart-x-fill::before { content: map-get($bootstrap-icons-map, "cart-x-fill"); }
-.bi-cart-x::before { content: map-get($bootstrap-icons-map, "cart-x"); }
-.bi-cart::before { content: map-get($bootstrap-icons-map, "cart"); }
-.bi-cart2::before { content: map-get($bootstrap-icons-map, "cart2"); }
-.bi-cart3::before { content: map-get($bootstrap-icons-map, "cart3"); }
-.bi-cart4::before { content: map-get($bootstrap-icons-map, "cart4"); }
-.bi-cash-stack::before { content: map-get($bootstrap-icons-map, "cash-stack"); }
-.bi-cash::before { content: map-get($bootstrap-icons-map, "cash"); }
-.bi-cast::before { content: map-get($bootstrap-icons-map, "cast"); }
-.bi-chat-dots-fill::before { content: map-get($bootstrap-icons-map, "chat-dots-fill"); }
-.bi-chat-dots::before { content: map-get($bootstrap-icons-map, "chat-dots"); }
-.bi-chat-fill::before { content: map-get($bootstrap-icons-map, "chat-fill"); }
-.bi-chat-left-dots-fill::before { content: map-get($bootstrap-icons-map, "chat-left-dots-fill"); }
-.bi-chat-left-dots::before { content: map-get($bootstrap-icons-map, "chat-left-dots"); }
-.bi-chat-left-fill::before { content: map-get($bootstrap-icons-map, "chat-left-fill"); }
-.bi-chat-left-quote-fill::before { content: map-get($bootstrap-icons-map, "chat-left-quote-fill"); }
-.bi-chat-left-quote::before { content: map-get($bootstrap-icons-map, "chat-left-quote"); }
-.bi-chat-left-text-fill::before { content: map-get($bootstrap-icons-map, "chat-left-text-fill"); }
-.bi-chat-left-text::before { content: map-get($bootstrap-icons-map, "chat-left-text"); }
-.bi-chat-left::before { content: map-get($bootstrap-icons-map, "chat-left"); }
-.bi-chat-quote-fill::before { content: map-get($bootstrap-icons-map, "chat-quote-fill"); }
-.bi-chat-quote::before { content: map-get($bootstrap-icons-map, "chat-quote"); }
-.bi-chat-right-dots-fill::before { content: map-get($bootstrap-icons-map, "chat-right-dots-fill"); }
-.bi-chat-right-dots::before { content: map-get($bootstrap-icons-map, "chat-right-dots"); }
-.bi-chat-right-fill::before { content: map-get($bootstrap-icons-map, "chat-right-fill"); }
-.bi-chat-right-quote-fill::before { content: map-get($bootstrap-icons-map, "chat-right-quote-fill"); }
-.bi-chat-right-quote::before { content: map-get($bootstrap-icons-map, "chat-right-quote"); }
-.bi-chat-right-text-fill::before { content: map-get($bootstrap-icons-map, "chat-right-text-fill"); }
-.bi-chat-right-text::before { content: map-get($bootstrap-icons-map, "chat-right-text"); }
-.bi-chat-right::before { content: map-get($bootstrap-icons-map, "chat-right"); }
-.bi-chat-square-dots-fill::before { content: map-get($bootstrap-icons-map, "chat-square-dots-fill"); }
-.bi-chat-square-dots::before { content: map-get($bootstrap-icons-map, "chat-square-dots"); }
-.bi-chat-square-fill::before { content: map-get($bootstrap-icons-map, "chat-square-fill"); }
-.bi-chat-square-quote-fill::before { content: map-get($bootstrap-icons-map, "chat-square-quote-fill"); }
-.bi-chat-square-quote::before { content: map-get($bootstrap-icons-map, "chat-square-quote"); }
-.bi-chat-square-text-fill::before { content: map-get($bootstrap-icons-map, "chat-square-text-fill"); }
-.bi-chat-square-text::before { content: map-get($bootstrap-icons-map, "chat-square-text"); }
-.bi-chat-square::before { content: map-get($bootstrap-icons-map, "chat-square"); }
-.bi-chat-text-fill::before { content: map-get($bootstrap-icons-map, "chat-text-fill"); }
-.bi-chat-text::before { content: map-get($bootstrap-icons-map, "chat-text"); }
-.bi-chat::before { content: map-get($bootstrap-icons-map, "chat"); }
-.bi-check-all::before { content: map-get($bootstrap-icons-map, "check-all"); }
-.bi-check-circle-fill::before { content: map-get($bootstrap-icons-map, "check-circle-fill"); }
-.bi-check-circle::before { content: map-get($bootstrap-icons-map, "check-circle"); }
-.bi-check-square-fill::before { content: map-get($bootstrap-icons-map, "check-square-fill"); }
-.bi-check-square::before { content: map-get($bootstrap-icons-map, "check-square"); }
-.bi-check::before { content: map-get($bootstrap-icons-map, "check"); }
-.bi-check2-all::before { content: map-get($bootstrap-icons-map, "check2-all"); }
-.bi-check2-circle::before { content: map-get($bootstrap-icons-map, "check2-circle"); }
-.bi-check2-square::before { content: map-get($bootstrap-icons-map, "check2-square"); }
-.bi-check2::before { content: map-get($bootstrap-icons-map, "check2"); }
-.bi-chevron-bar-contract::before { content: map-get($bootstrap-icons-map, "chevron-bar-contract"); }
-.bi-chevron-bar-down::before { content: map-get($bootstrap-icons-map, "chevron-bar-down"); }
-.bi-chevron-bar-expand::before { content: map-get($bootstrap-icons-map, "chevron-bar-expand"); }
-.bi-chevron-bar-left::before { content: map-get($bootstrap-icons-map, "chevron-bar-left"); }
-.bi-chevron-bar-right::before { content: map-get($bootstrap-icons-map, "chevron-bar-right"); }
-.bi-chevron-bar-up::before { content: map-get($bootstrap-icons-map, "chevron-bar-up"); }
-.bi-chevron-compact-down::before { content: map-get($bootstrap-icons-map, "chevron-compact-down"); }
-.bi-chevron-compact-left::before { content: map-get($bootstrap-icons-map, "chevron-compact-left"); }
-.bi-chevron-compact-right::before { content: map-get($bootstrap-icons-map, "chevron-compact-right"); }
-.bi-chevron-compact-up::before { content: map-get($bootstrap-icons-map, "chevron-compact-up"); }
-.bi-chevron-contract::before { content: map-get($bootstrap-icons-map, "chevron-contract"); }
-.bi-chevron-double-down::before { content: map-get($bootstrap-icons-map, "chevron-double-down"); }
-.bi-chevron-double-left::before { content: map-get($bootstrap-icons-map, "chevron-double-left"); }
-.bi-chevron-double-right::before { content: map-get($bootstrap-icons-map, "chevron-double-right"); }
-.bi-chevron-double-up::before { content: map-get($bootstrap-icons-map, "chevron-double-up"); }
-.bi-chevron-down::before { content: map-get($bootstrap-icons-map, "chevron-down"); }
-.bi-chevron-expand::before { content: map-get($bootstrap-icons-map, "chevron-expand"); }
-.bi-chevron-left::before { content: map-get($bootstrap-icons-map, "chevron-left"); }
-.bi-chevron-right::before { content: map-get($bootstrap-icons-map, "chevron-right"); }
-.bi-chevron-up::before { content: map-get($bootstrap-icons-map, "chevron-up"); }
-.bi-circle-fill::before { content: map-get($bootstrap-icons-map, "circle-fill"); }
-.bi-circle-half::before { content: map-get($bootstrap-icons-map, "circle-half"); }
-.bi-circle-square::before { content: map-get($bootstrap-icons-map, "circle-square"); }
-.bi-circle::before { content: map-get($bootstrap-icons-map, "circle"); }
-.bi-clipboard-check::before { content: map-get($bootstrap-icons-map, "clipboard-check"); }
-.bi-clipboard-data::before { content: map-get($bootstrap-icons-map, "clipboard-data"); }
-.bi-clipboard-minus::before { content: map-get($bootstrap-icons-map, "clipboard-minus"); }
-.bi-clipboard-plus::before { content: map-get($bootstrap-icons-map, "clipboard-plus"); }
-.bi-clipboard-x::before { content: map-get($bootstrap-icons-map, "clipboard-x"); }
-.bi-clipboard::before { content: map-get($bootstrap-icons-map, "clipboard"); }
-.bi-clock-fill::before { content: map-get($bootstrap-icons-map, "clock-fill"); }
-.bi-clock-history::before { content: map-get($bootstrap-icons-map, "clock-history"); }
-.bi-clock::before { content: map-get($bootstrap-icons-map, "clock"); }
-.bi-cloud-arrow-down-fill::before { content: map-get($bootstrap-icons-map, "cloud-arrow-down-fill"); }
-.bi-cloud-arrow-down::before { content: map-get($bootstrap-icons-map, "cloud-arrow-down"); }
-.bi-cloud-arrow-up-fill::before { content: map-get($bootstrap-icons-map, "cloud-arrow-up-fill"); }
-.bi-cloud-arrow-up::before { content: map-get($bootstrap-icons-map, "cloud-arrow-up"); }
-.bi-cloud-check-fill::before { content: map-get($bootstrap-icons-map, "cloud-check-fill"); }
-.bi-cloud-check::before { content: map-get($bootstrap-icons-map, "cloud-check"); }
-.bi-cloud-download-fill::before { content: map-get($bootstrap-icons-map, "cloud-download-fill"); }
-.bi-cloud-download::before { content: map-get($bootstrap-icons-map, "cloud-download"); }
-.bi-cloud-drizzle-fill::before { content: map-get($bootstrap-icons-map, "cloud-drizzle-fill"); }
-.bi-cloud-drizzle::before { content: map-get($bootstrap-icons-map, "cloud-drizzle"); }
-.bi-cloud-fill::before { content: map-get($bootstrap-icons-map, "cloud-fill"); }
-.bi-cloud-fog-fill::before { content: map-get($bootstrap-icons-map, "cloud-fog-fill"); }
-.bi-cloud-fog::before { content: map-get($bootstrap-icons-map, "cloud-fog"); }
-.bi-cloud-fog2-fill::before { content: map-get($bootstrap-icons-map, "cloud-fog2-fill"); }
-.bi-cloud-fog2::before { content: map-get($bootstrap-icons-map, "cloud-fog2"); }
-.bi-cloud-hail-fill::before { content: map-get($bootstrap-icons-map, "cloud-hail-fill"); }
-.bi-cloud-hail::before { content: map-get($bootstrap-icons-map, "cloud-hail"); }
-.bi-cloud-haze-1::before { content: map-get($bootstrap-icons-map, "cloud-haze-1"); }
-.bi-cloud-haze-fill::before { content: map-get($bootstrap-icons-map, "cloud-haze-fill"); }
-.bi-cloud-haze::before { content: map-get($bootstrap-icons-map, "cloud-haze"); }
-.bi-cloud-haze2-fill::before { content: map-get($bootstrap-icons-map, "cloud-haze2-fill"); }
-.bi-cloud-lightning-fill::before { content: map-get($bootstrap-icons-map, "cloud-lightning-fill"); }
-.bi-cloud-lightning-rain-fill::before { content: map-get($bootstrap-icons-map, "cloud-lightning-rain-fill"); }
-.bi-cloud-lightning-rain::before { content: map-get($bootstrap-icons-map, "cloud-lightning-rain"); }
-.bi-cloud-lightning::before { content: map-get($bootstrap-icons-map, "cloud-lightning"); }
-.bi-cloud-minus-fill::before { content: map-get($bootstrap-icons-map, "cloud-minus-fill"); }
-.bi-cloud-minus::before { content: map-get($bootstrap-icons-map, "cloud-minus"); }
-.bi-cloud-moon-fill::before { content: map-get($bootstrap-icons-map, "cloud-moon-fill"); }
-.bi-cloud-moon::before { content: map-get($bootstrap-icons-map, "cloud-moon"); }
-.bi-cloud-plus-fill::before { content: map-get($bootstrap-icons-map, "cloud-plus-fill"); }
-.bi-cloud-plus::before { content: map-get($bootstrap-icons-map, "cloud-plus"); }
-.bi-cloud-rain-fill::before { content: map-get($bootstrap-icons-map, "cloud-rain-fill"); }
-.bi-cloud-rain-heavy-fill::before { content: map-get($bootstrap-icons-map, "cloud-rain-heavy-fill"); }
-.bi-cloud-rain-heavy::before { content: map-get($bootstrap-icons-map, "cloud-rain-heavy"); }
-.bi-cloud-rain::before { content: map-get($bootstrap-icons-map, "cloud-rain"); }
-.bi-cloud-slash-fill::before { content: map-get($bootstrap-icons-map, "cloud-slash-fill"); }
-.bi-cloud-slash::before { content: map-get($bootstrap-icons-map, "cloud-slash"); }
-.bi-cloud-sleet-fill::before { content: map-get($bootstrap-icons-map, "cloud-sleet-fill"); }
-.bi-cloud-sleet::before { content: map-get($bootstrap-icons-map, "cloud-sleet"); }
-.bi-cloud-snow-fill::before { content: map-get($bootstrap-icons-map, "cloud-snow-fill"); }
-.bi-cloud-snow::before { content: map-get($bootstrap-icons-map, "cloud-snow"); }
-.bi-cloud-sun-fill::before { content: map-get($bootstrap-icons-map, "cloud-sun-fill"); }
-.bi-cloud-sun::before { content: map-get($bootstrap-icons-map, "cloud-sun"); }
-.bi-cloud-upload-fill::before { content: map-get($bootstrap-icons-map, "cloud-upload-fill"); }
-.bi-cloud-upload::before { content: map-get($bootstrap-icons-map, "cloud-upload"); }
-.bi-cloud::before { content: map-get($bootstrap-icons-map, "cloud"); }
-.bi-clouds-fill::before { content: map-get($bootstrap-icons-map, "clouds-fill"); }
-.bi-clouds::before { content: map-get($bootstrap-icons-map, "clouds"); }
-.bi-cloudy-fill::before { content: map-get($bootstrap-icons-map, "cloudy-fill"); }
-.bi-cloudy::before { content: map-get($bootstrap-icons-map, "cloudy"); }
-.bi-code-slash::before { content: map-get($bootstrap-icons-map, "code-slash"); }
-.bi-code-square::before { content: map-get($bootstrap-icons-map, "code-square"); }
-.bi-code::before { content: map-get($bootstrap-icons-map, "code"); }
-.bi-collection-fill::before { content: map-get($bootstrap-icons-map, "collection-fill"); }
-.bi-collection-play-fill::before { content: map-get($bootstrap-icons-map, "collection-play-fill"); }
-.bi-collection-play::before { content: map-get($bootstrap-icons-map, "collection-play"); }
-.bi-collection::before { content: map-get($bootstrap-icons-map, "collection"); }
-.bi-columns-gap::before { content: map-get($bootstrap-icons-map, "columns-gap"); }
-.bi-columns::before { content: map-get($bootstrap-icons-map, "columns"); }
-.bi-command::before { content: map-get($bootstrap-icons-map, "command"); }
-.bi-compass-fill::before { content: map-get($bootstrap-icons-map, "compass-fill"); }
-.bi-compass::before { content: map-get($bootstrap-icons-map, "compass"); }
-.bi-cone-striped::before { content: map-get($bootstrap-icons-map, "cone-striped"); }
-.bi-cone::before { content: map-get($bootstrap-icons-map, "cone"); }
-.bi-controller::before { content: map-get($bootstrap-icons-map, "controller"); }
-.bi-cpu-fill::before { content: map-get($bootstrap-icons-map, "cpu-fill"); }
-.bi-cpu::before { content: map-get($bootstrap-icons-map, "cpu"); }
-.bi-credit-card-2-back-fill::before { content: map-get($bootstrap-icons-map, "credit-card-2-back-fill"); }
-.bi-credit-card-2-back::before { content: map-get($bootstrap-icons-map, "credit-card-2-back"); }
-.bi-credit-card-2-front-fill::before { content: map-get($bootstrap-icons-map, "credit-card-2-front-fill"); }
-.bi-credit-card-2-front::before { content: map-get($bootstrap-icons-map, "credit-card-2-front"); }
-.bi-credit-card-fill::before { content: map-get($bootstrap-icons-map, "credit-card-fill"); }
-.bi-credit-card::before { content: map-get($bootstrap-icons-map, "credit-card"); }
-.bi-crop::before { content: map-get($bootstrap-icons-map, "crop"); }
-.bi-cup-fill::before { content: map-get($bootstrap-icons-map, "cup-fill"); }
-.bi-cup-straw::before { content: map-get($bootstrap-icons-map, "cup-straw"); }
-.bi-cup::before { content: map-get($bootstrap-icons-map, "cup"); }
-.bi-cursor-fill::before { content: map-get($bootstrap-icons-map, "cursor-fill"); }
-.bi-cursor-text::before { content: map-get($bootstrap-icons-map, "cursor-text"); }
-.bi-cursor::before { content: map-get($bootstrap-icons-map, "cursor"); }
-.bi-dash-circle-dotted::before { content: map-get($bootstrap-icons-map, "dash-circle-dotted"); }
-.bi-dash-circle-fill::before { content: map-get($bootstrap-icons-map, "dash-circle-fill"); }
-.bi-dash-circle::before { content: map-get($bootstrap-icons-map, "dash-circle"); }
-.bi-dash-square-dotted::before { content: map-get($bootstrap-icons-map, "dash-square-dotted"); }
-.bi-dash-square-fill::before { content: map-get($bootstrap-icons-map, "dash-square-fill"); }
-.bi-dash-square::before { content: map-get($bootstrap-icons-map, "dash-square"); }
-.bi-dash::before { content: map-get($bootstrap-icons-map, "dash"); }
-.bi-diagram-2-fill::before { content: map-get($bootstrap-icons-map, "diagram-2-fill"); }
-.bi-diagram-2::before { content: map-get($bootstrap-icons-map, "diagram-2"); }
-.bi-diagram-3-fill::before { content: map-get($bootstrap-icons-map, "diagram-3-fill"); }
-.bi-diagram-3::before { content: map-get($bootstrap-icons-map, "diagram-3"); }
-.bi-diamond-fill::before { content: map-get($bootstrap-icons-map, "diamond-fill"); }
-.bi-diamond-half::before { content: map-get($bootstrap-icons-map, "diamond-half"); }
-.bi-diamond::before { content: map-get($bootstrap-icons-map, "diamond"); }
-.bi-dice-1-fill::before { content: map-get($bootstrap-icons-map, "dice-1-fill"); }
-.bi-dice-1::before { content: map-get($bootstrap-icons-map, "dice-1"); }
-.bi-dice-2-fill::before { content: map-get($bootstrap-icons-map, "dice-2-fill"); }
-.bi-dice-2::before { content: map-get($bootstrap-icons-map, "dice-2"); }
-.bi-dice-3-fill::before { content: map-get($bootstrap-icons-map, "dice-3-fill"); }
-.bi-dice-3::before { content: map-get($bootstrap-icons-map, "dice-3"); }
-.bi-dice-4-fill::before { content: map-get($bootstrap-icons-map, "dice-4-fill"); }
-.bi-dice-4::before { content: map-get($bootstrap-icons-map, "dice-4"); }
-.bi-dice-5-fill::before { content: map-get($bootstrap-icons-map, "dice-5-fill"); }
-.bi-dice-5::before { content: map-get($bootstrap-icons-map, "dice-5"); }
-.bi-dice-6-fill::before { content: map-get($bootstrap-icons-map, "dice-6-fill"); }
-.bi-dice-6::before { content: map-get($bootstrap-icons-map, "dice-6"); }
-.bi-disc-fill::before { content: map-get($bootstrap-icons-map, "disc-fill"); }
-.bi-disc::before { content: map-get($bootstrap-icons-map, "disc"); }
-.bi-discord::before { content: map-get($bootstrap-icons-map, "discord"); }
-.bi-display-fill::before { content: map-get($bootstrap-icons-map, "display-fill"); }
-.bi-display::before { content: map-get($bootstrap-icons-map, "display"); }
-.bi-distribute-horizontal::before { content: map-get($bootstrap-icons-map, "distribute-horizontal"); }
-.bi-distribute-vertical::before { content: map-get($bootstrap-icons-map, "distribute-vertical"); }
-.bi-door-closed-fill::before { content: map-get($bootstrap-icons-map, "door-closed-fill"); }
-.bi-door-closed::before { content: map-get($bootstrap-icons-map, "door-closed"); }
-.bi-door-open-fill::before { content: map-get($bootstrap-icons-map, "door-open-fill"); }
-.bi-door-open::before { content: map-get($bootstrap-icons-map, "door-open"); }
-.bi-dot::before { content: map-get($bootstrap-icons-map, "dot"); }
-.bi-download::before { content: map-get($bootstrap-icons-map, "download"); }
-.bi-droplet-fill::before { content: map-get($bootstrap-icons-map, "droplet-fill"); }
-.bi-droplet-half::before { content: map-get($bootstrap-icons-map, "droplet-half"); }
-.bi-droplet::before { content: map-get($bootstrap-icons-map, "droplet"); }
-.bi-earbuds::before { content: map-get($bootstrap-icons-map, "earbuds"); }
-.bi-easel-fill::before { content: map-get($bootstrap-icons-map, "easel-fill"); }
-.bi-easel::before { content: map-get($bootstrap-icons-map, "easel"); }
-.bi-egg-fill::before { content: map-get($bootstrap-icons-map, "egg-fill"); }
-.bi-egg-fried::before { content: map-get($bootstrap-icons-map, "egg-fried"); }
-.bi-egg::before { content: map-get($bootstrap-icons-map, "egg"); }
-.bi-eject-fill::before { content: map-get($bootstrap-icons-map, "eject-fill"); }
-.bi-eject::before { content: map-get($bootstrap-icons-map, "eject"); }
-.bi-emoji-angry-fill::before { content: map-get($bootstrap-icons-map, "emoji-angry-fill"); }
-.bi-emoji-angry::before { content: map-get($bootstrap-icons-map, "emoji-angry"); }
-.bi-emoji-dizzy-fill::before { content: map-get($bootstrap-icons-map, "emoji-dizzy-fill"); }
-.bi-emoji-dizzy::before { content: map-get($bootstrap-icons-map, "emoji-dizzy"); }
-.bi-emoji-expressionless-fill::before { content: map-get($bootstrap-icons-map, "emoji-expressionless-fill"); }
-.bi-emoji-expressionless::before { content: map-get($bootstrap-icons-map, "emoji-expressionless"); }
-.bi-emoji-frown-fill::before { content: map-get($bootstrap-icons-map, "emoji-frown-fill"); }
-.bi-emoji-frown::before { content: map-get($bootstrap-icons-map, "emoji-frown"); }
-.bi-emoji-heart-eyes-fill::before { content: map-get($bootstrap-icons-map, "emoji-heart-eyes-fill"); }
-.bi-emoji-heart-eyes::before { content: map-get($bootstrap-icons-map, "emoji-heart-eyes"); }
-.bi-emoji-laughing-fill::before { content: map-get($bootstrap-icons-map, "emoji-laughing-fill"); }
-.bi-emoji-laughing::before { content: map-get($bootstrap-icons-map, "emoji-laughing"); }
-.bi-emoji-neutral-fill::before { content: map-get($bootstrap-icons-map, "emoji-neutral-fill"); }
-.bi-emoji-neutral::before { content: map-get($bootstrap-icons-map, "emoji-neutral"); }
-.bi-emoji-smile-fill::before { content: map-get($bootstrap-icons-map, "emoji-smile-fill"); }
-.bi-emoji-smile-upside-down-fill::before { content: map-get($bootstrap-icons-map, "emoji-smile-upside-down-fill"); }
-.bi-emoji-smile-upside-down::before { content: map-get($bootstrap-icons-map, "emoji-smile-upside-down"); }
-.bi-emoji-smile::before { content: map-get($bootstrap-icons-map, "emoji-smile"); }
-.bi-emoji-sunglasses-fill::before { content: map-get($bootstrap-icons-map, "emoji-sunglasses-fill"); }
-.bi-emoji-sunglasses::before { content: map-get($bootstrap-icons-map, "emoji-sunglasses"); }
-.bi-emoji-wink-fill::before { content: map-get($bootstrap-icons-map, "emoji-wink-fill"); }
-.bi-emoji-wink::before { content: map-get($bootstrap-icons-map, "emoji-wink"); }
-.bi-envelope-fill::before { content: map-get($bootstrap-icons-map, "envelope-fill"); }
-.bi-envelope-open-fill::before { content: map-get($bootstrap-icons-map, "envelope-open-fill"); }
-.bi-envelope-open::before { content: map-get($bootstrap-icons-map, "envelope-open"); }
-.bi-envelope::before { content: map-get($bootstrap-icons-map, "envelope"); }
-.bi-eraser-fill::before { content: map-get($bootstrap-icons-map, "eraser-fill"); }
-.bi-eraser::before { content: map-get($bootstrap-icons-map, "eraser"); }
-.bi-exclamation-circle-fill::before { content: map-get($bootstrap-icons-map, "exclamation-circle-fill"); }
-.bi-exclamation-circle::before { content: map-get($bootstrap-icons-map, "exclamation-circle"); }
-.bi-exclamation-diamond-fill::before { content: map-get($bootstrap-icons-map, "exclamation-diamond-fill"); }
-.bi-exclamation-diamond::before { content: map-get($bootstrap-icons-map, "exclamation-diamond"); }
-.bi-exclamation-octagon-fill::before { content: map-get($bootstrap-icons-map, "exclamation-octagon-fill"); }
-.bi-exclamation-octagon::before { content: map-get($bootstrap-icons-map, "exclamation-octagon"); }
-.bi-exclamation-square-fill::before { content: map-get($bootstrap-icons-map, "exclamation-square-fill"); }
-.bi-exclamation-square::before { content: map-get($bootstrap-icons-map, "exclamation-square"); }
-.bi-exclamation-triangle-fill::before { content: map-get($bootstrap-icons-map, "exclamation-triangle-fill"); }
-.bi-exclamation-triangle::before { content: map-get($bootstrap-icons-map, "exclamation-triangle"); }
-.bi-exclamation::before { content: map-get($bootstrap-icons-map, "exclamation"); }
-.bi-exclude::before { content: map-get($bootstrap-icons-map, "exclude"); }
-.bi-eye-fill::before { content: map-get($bootstrap-icons-map, "eye-fill"); }
-.bi-eye-slash-fill::before { content: map-get($bootstrap-icons-map, "eye-slash-fill"); }
-.bi-eye-slash::before { content: map-get($bootstrap-icons-map, "eye-slash"); }
-.bi-eye::before { content: map-get($bootstrap-icons-map, "eye"); }
-.bi-eyedropper::before { content: map-get($bootstrap-icons-map, "eyedropper"); }
-.bi-eyeglasses::before { content: map-get($bootstrap-icons-map, "eyeglasses"); }
-.bi-facebook::before { content: map-get($bootstrap-icons-map, "facebook"); }
-.bi-file-arrow-down-fill::before { content: map-get($bootstrap-icons-map, "file-arrow-down-fill"); }
-.bi-file-arrow-down::before { content: map-get($bootstrap-icons-map, "file-arrow-down"); }
-.bi-file-arrow-up-fill::before { content: map-get($bootstrap-icons-map, "file-arrow-up-fill"); }
-.bi-file-arrow-up::before { content: map-get($bootstrap-icons-map, "file-arrow-up"); }
-.bi-file-bar-graph-fill::before { content: map-get($bootstrap-icons-map, "file-bar-graph-fill"); }
-.bi-file-bar-graph::before { content: map-get($bootstrap-icons-map, "file-bar-graph"); }
-.bi-file-binary-fill::before { content: map-get($bootstrap-icons-map, "file-binary-fill"); }
-.bi-file-binary::before { content: map-get($bootstrap-icons-map, "file-binary"); }
-.bi-file-break-fill::before { content: map-get($bootstrap-icons-map, "file-break-fill"); }
-.bi-file-break::before { content: map-get($bootstrap-icons-map, "file-break"); }
-.bi-file-check-fill::before { content: map-get($bootstrap-icons-map, "file-check-fill"); }
-.bi-file-check::before { content: map-get($bootstrap-icons-map, "file-check"); }
-.bi-file-code-fill::before { content: map-get($bootstrap-icons-map, "file-code-fill"); }
-.bi-file-code::before { content: map-get($bootstrap-icons-map, "file-code"); }
-.bi-file-diff-fill::before { content: map-get($bootstrap-icons-map, "file-diff-fill"); }
-.bi-file-diff::before { content: map-get($bootstrap-icons-map, "file-diff"); }
-.bi-file-earmark-arrow-down-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-arrow-down-fill"); }
-.bi-file-earmark-arrow-down::before { content: map-get($bootstrap-icons-map, "file-earmark-arrow-down"); }
-.bi-file-earmark-arrow-up-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-arrow-up-fill"); }
-.bi-file-earmark-arrow-up::before { content: map-get($bootstrap-icons-map, "file-earmark-arrow-up"); }
-.bi-file-earmark-bar-graph-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-bar-graph-fill"); }
-.bi-file-earmark-bar-graph::before { content: map-get($bootstrap-icons-map, "file-earmark-bar-graph"); }
-.bi-file-earmark-binary-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-binary-fill"); }
-.bi-file-earmark-binary::before { content: map-get($bootstrap-icons-map, "file-earmark-binary"); }
-.bi-file-earmark-break-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-break-fill"); }
-.bi-file-earmark-break::before { content: map-get($bootstrap-icons-map, "file-earmark-break"); }
-.bi-file-earmark-check-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-check-fill"); }
-.bi-file-earmark-check::before { content: map-get($bootstrap-icons-map, "file-earmark-check"); }
-.bi-file-earmark-code-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-code-fill"); }
-.bi-file-earmark-code::before { content: map-get($bootstrap-icons-map, "file-earmark-code"); }
-.bi-file-earmark-diff-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-diff-fill"); }
-.bi-file-earmark-diff::before { content: map-get($bootstrap-icons-map, "file-earmark-diff"); }
-.bi-file-earmark-easel-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-easel-fill"); }
-.bi-file-earmark-easel::before { content: map-get($bootstrap-icons-map, "file-earmark-easel"); }
-.bi-file-earmark-excel-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-excel-fill"); }
-.bi-file-earmark-excel::before { content: map-get($bootstrap-icons-map, "file-earmark-excel"); }
-.bi-file-earmark-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-fill"); }
-.bi-file-earmark-font-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-font-fill"); }
-.bi-file-earmark-font::before { content: map-get($bootstrap-icons-map, "file-earmark-font"); }
-.bi-file-earmark-image-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-image-fill"); }
-.bi-file-earmark-image::before { content: map-get($bootstrap-icons-map, "file-earmark-image"); }
-.bi-file-earmark-lock-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-lock-fill"); }
-.bi-file-earmark-lock::before { content: map-get($bootstrap-icons-map, "file-earmark-lock"); }
-.bi-file-earmark-lock2-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-lock2-fill"); }
-.bi-file-earmark-lock2::before { content: map-get($bootstrap-icons-map, "file-earmark-lock2"); }
-.bi-file-earmark-medical-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-medical-fill"); }
-.bi-file-earmark-medical::before { content: map-get($bootstrap-icons-map, "file-earmark-medical"); }
-.bi-file-earmark-minus-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-minus-fill"); }
-.bi-file-earmark-minus::before { content: map-get($bootstrap-icons-map, "file-earmark-minus"); }
-.bi-file-earmark-music-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-music-fill"); }
-.bi-file-earmark-music::before { content: map-get($bootstrap-icons-map, "file-earmark-music"); }
-.bi-file-earmark-person-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-person-fill"); }
-.bi-file-earmark-person::before { content: map-get($bootstrap-icons-map, "file-earmark-person"); }
-.bi-file-earmark-play-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-play-fill"); }
-.bi-file-earmark-play::before { content: map-get($bootstrap-icons-map, "file-earmark-play"); }
-.bi-file-earmark-plus-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-plus-fill"); }
-.bi-file-earmark-plus::before { content: map-get($bootstrap-icons-map, "file-earmark-plus"); }
-.bi-file-earmark-post-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-post-fill"); }
-.bi-file-earmark-post::before { content: map-get($bootstrap-icons-map, "file-earmark-post"); }
-.bi-file-earmark-ppt-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-ppt-fill"); }
-.bi-file-earmark-ppt::before { content: map-get($bootstrap-icons-map, "file-earmark-ppt"); }
-.bi-file-earmark-richtext-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-richtext-fill"); }
-.bi-file-earmark-richtext::before { content: map-get($bootstrap-icons-map, "file-earmark-richtext"); }
-.bi-file-earmark-ruled-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-ruled-fill"); }
-.bi-file-earmark-ruled::before { content: map-get($bootstrap-icons-map, "file-earmark-ruled"); }
-.bi-file-earmark-slides-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-slides-fill"); }
-.bi-file-earmark-slides::before { content: map-get($bootstrap-icons-map, "file-earmark-slides"); }
-.bi-file-earmark-spreadsheet-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-spreadsheet-fill"); }
-.bi-file-earmark-spreadsheet::before { content: map-get($bootstrap-icons-map, "file-earmark-spreadsheet"); }
-.bi-file-earmark-text-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-text-fill"); }
-.bi-file-earmark-text::before { content: map-get($bootstrap-icons-map, "file-earmark-text"); }
-.bi-file-earmark-word-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-word-fill"); }
-.bi-file-earmark-word::before { content: map-get($bootstrap-icons-map, "file-earmark-word"); }
-.bi-file-earmark-x-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-x-fill"); }
-.bi-file-earmark-x::before { content: map-get($bootstrap-icons-map, "file-earmark-x"); }
-.bi-file-earmark-zip-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-zip-fill"); }
-.bi-file-earmark-zip::before { content: map-get($bootstrap-icons-map, "file-earmark-zip"); }
-.bi-file-earmark::before { content: map-get($bootstrap-icons-map, "file-earmark"); }
-.bi-file-easel-fill::before { content: map-get($bootstrap-icons-map, "file-easel-fill"); }
-.bi-file-easel::before { content: map-get($bootstrap-icons-map, "file-easel"); }
-.bi-file-excel-fill::before { content: map-get($bootstrap-icons-map, "file-excel-fill"); }
-.bi-file-excel::before { content: map-get($bootstrap-icons-map, "file-excel"); }
-.bi-file-fill::before { content: map-get($bootstrap-icons-map, "file-fill"); }
-.bi-file-font-fill::before { content: map-get($bootstrap-icons-map, "file-font-fill"); }
-.bi-file-font::before { content: map-get($bootstrap-icons-map, "file-font"); }
-.bi-file-image-fill::before { content: map-get($bootstrap-icons-map, "file-image-fill"); }
-.bi-file-image::before { content: map-get($bootstrap-icons-map, "file-image"); }
-.bi-file-lock-fill::before { content: map-get($bootstrap-icons-map, "file-lock-fill"); }
-.bi-file-lock::before { content: map-get($bootstrap-icons-map, "file-lock"); }
-.bi-file-lock2-fill::before { content: map-get($bootstrap-icons-map, "file-lock2-fill"); }
-.bi-file-lock2::before { content: map-get($bootstrap-icons-map, "file-lock2"); }
-.bi-file-medical-fill::before { content: map-get($bootstrap-icons-map, "file-medical-fill"); }
-.bi-file-medical::before { content: map-get($bootstrap-icons-map, "file-medical"); }
-.bi-file-minus-fill::before { content: map-get($bootstrap-icons-map, "file-minus-fill"); }
-.bi-file-minus::before { content: map-get($bootstrap-icons-map, "file-minus"); }
-.bi-file-music-fill::before { content: map-get($bootstrap-icons-map, "file-music-fill"); }
-.bi-file-music::before { content: map-get($bootstrap-icons-map, "file-music"); }
-.bi-file-person-fill::before { content: map-get($bootstrap-icons-map, "file-person-fill"); }
-.bi-file-person::before { content: map-get($bootstrap-icons-map, "file-person"); }
-.bi-file-play-fill::before { content: map-get($bootstrap-icons-map, "file-play-fill"); }
-.bi-file-play::before { content: map-get($bootstrap-icons-map, "file-play"); }
-.bi-file-plus-fill::before { content: map-get($bootstrap-icons-map, "file-plus-fill"); }
-.bi-file-plus::before { content: map-get($bootstrap-icons-map, "file-plus"); }
-.bi-file-post-fill::before { content: map-get($bootstrap-icons-map, "file-post-fill"); }
-.bi-file-post::before { content: map-get($bootstrap-icons-map, "file-post"); }
-.bi-file-ppt-fill::before { content: map-get($bootstrap-icons-map, "file-ppt-fill"); }
-.bi-file-ppt::before { content: map-get($bootstrap-icons-map, "file-ppt"); }
-.bi-file-richtext-fill::before { content: map-get($bootstrap-icons-map, "file-richtext-fill"); }
-.bi-file-richtext::before { content: map-get($bootstrap-icons-map, "file-richtext"); }
-.bi-file-ruled-fill::before { content: map-get($bootstrap-icons-map, "file-ruled-fill"); }
-.bi-file-ruled::before { content: map-get($bootstrap-icons-map, "file-ruled"); }
-.bi-file-slides-fill::before { content: map-get($bootstrap-icons-map, "file-slides-fill"); }
-.bi-file-slides::before { content: map-get($bootstrap-icons-map, "file-slides"); }
-.bi-file-spreadsheet-fill::before { content: map-get($bootstrap-icons-map, "file-spreadsheet-fill"); }
-.bi-file-spreadsheet::before { content: map-get($bootstrap-icons-map, "file-spreadsheet"); }
-.bi-file-text-fill::before { content: map-get($bootstrap-icons-map, "file-text-fill"); }
-.bi-file-text::before { content: map-get($bootstrap-icons-map, "file-text"); }
-.bi-file-word-fill::before { content: map-get($bootstrap-icons-map, "file-word-fill"); }
-.bi-file-word::before { content: map-get($bootstrap-icons-map, "file-word"); }
-.bi-file-x-fill::before { content: map-get($bootstrap-icons-map, "file-x-fill"); }
-.bi-file-x::before { content: map-get($bootstrap-icons-map, "file-x"); }
-.bi-file-zip-fill::before { content: map-get($bootstrap-icons-map, "file-zip-fill"); }
-.bi-file-zip::before { content: map-get($bootstrap-icons-map, "file-zip"); }
-.bi-file::before { content: map-get($bootstrap-icons-map, "file"); }
-.bi-files-alt::before { content: map-get($bootstrap-icons-map, "files-alt"); }
-.bi-files::before { content: map-get($bootstrap-icons-map, "files"); }
-.bi-film::before { content: map-get($bootstrap-icons-map, "film"); }
-.bi-filter-circle-fill::before { content: map-get($bootstrap-icons-map, "filter-circle-fill"); }
-.bi-filter-circle::before { content: map-get($bootstrap-icons-map, "filter-circle"); }
-.bi-filter-left::before { content: map-get($bootstrap-icons-map, "filter-left"); }
-.bi-filter-right::before { content: map-get($bootstrap-icons-map, "filter-right"); }
-.bi-filter-square-fill::before { content: map-get($bootstrap-icons-map, "filter-square-fill"); }
-.bi-filter-square::before { content: map-get($bootstrap-icons-map, "filter-square"); }
-.bi-filter::before { content: map-get($bootstrap-icons-map, "filter"); }
-.bi-flag-fill::before { content: map-get($bootstrap-icons-map, "flag-fill"); }
-.bi-flag::before { content: map-get($bootstrap-icons-map, "flag"); }
-.bi-flower1::before { content: map-get($bootstrap-icons-map, "flower1"); }
-.bi-flower2::before { content: map-get($bootstrap-icons-map, "flower2"); }
-.bi-flower3::before { content: map-get($bootstrap-icons-map, "flower3"); }
-.bi-folder-check::before { content: map-get($bootstrap-icons-map, "folder-check"); }
-.bi-folder-fill::before { content: map-get($bootstrap-icons-map, "folder-fill"); }
-.bi-folder-minus::before { content: map-get($bootstrap-icons-map, "folder-minus"); }
-.bi-folder-plus::before { content: map-get($bootstrap-icons-map, "folder-plus"); }
-.bi-folder-symlink-fill::before { content: map-get($bootstrap-icons-map, "folder-symlink-fill"); }
-.bi-folder-symlink::before { content: map-get($bootstrap-icons-map, "folder-symlink"); }
-.bi-folder-x::before { content: map-get($bootstrap-icons-map, "folder-x"); }
-.bi-folder::before { content: map-get($bootstrap-icons-map, "folder"); }
-.bi-folder2-open::before { content: map-get($bootstrap-icons-map, "folder2-open"); }
-.bi-folder2::before { content: map-get($bootstrap-icons-map, "folder2"); }
-.bi-fonts::before { content: map-get($bootstrap-icons-map, "fonts"); }
-.bi-forward-fill::before { content: map-get($bootstrap-icons-map, "forward-fill"); }
-.bi-forward::before { content: map-get($bootstrap-icons-map, "forward"); }
-.bi-front::before { content: map-get($bootstrap-icons-map, "front"); }
-.bi-fullscreen-exit::before { content: map-get($bootstrap-icons-map, "fullscreen-exit"); }
-.bi-fullscreen::before { content: map-get($bootstrap-icons-map, "fullscreen"); }
-.bi-funnel-fill::before { content: map-get($bootstrap-icons-map, "funnel-fill"); }
-.bi-funnel::before { content: map-get($bootstrap-icons-map, "funnel"); }
-.bi-gear-fill::before { content: map-get($bootstrap-icons-map, "gear-fill"); }
-.bi-gear-wide-connected::before { content: map-get($bootstrap-icons-map, "gear-wide-connected"); }
-.bi-gear-wide::before { content: map-get($bootstrap-icons-map, "gear-wide"); }
-.bi-gear::before { content: map-get($bootstrap-icons-map, "gear"); }
-.bi-gem::before { content: map-get($bootstrap-icons-map, "gem"); }
-.bi-geo-alt-fill::before { content: map-get($bootstrap-icons-map, "geo-alt-fill"); }
-.bi-geo-alt::before { content: map-get($bootstrap-icons-map, "geo-alt"); }
-.bi-geo-fill::before { content: map-get($bootstrap-icons-map, "geo-fill"); }
-.bi-geo::before { content: map-get($bootstrap-icons-map, "geo"); }
-.bi-gift-fill::before { content: map-get($bootstrap-icons-map, "gift-fill"); }
-.bi-gift::before { content: map-get($bootstrap-icons-map, "gift"); }
-.bi-github::before { content: map-get($bootstrap-icons-map, "github"); }
-.bi-globe::before { content: map-get($bootstrap-icons-map, "globe"); }
-.bi-globe2::before { content: map-get($bootstrap-icons-map, "globe2"); }
-.bi-google::before { content: map-get($bootstrap-icons-map, "google"); }
-.bi-graph-down::before { content: map-get($bootstrap-icons-map, "graph-down"); }
-.bi-graph-up::before { content: map-get($bootstrap-icons-map, "graph-up"); }
-.bi-grid-1x2-fill::before { content: map-get($bootstrap-icons-map, "grid-1x2-fill"); }
-.bi-grid-1x2::before { content: map-get($bootstrap-icons-map, "grid-1x2"); }
-.bi-grid-3x2-gap-fill::before { content: map-get($bootstrap-icons-map, "grid-3x2-gap-fill"); }
-.bi-grid-3x2-gap::before { content: map-get($bootstrap-icons-map, "grid-3x2-gap"); }
-.bi-grid-3x2::before { content: map-get($bootstrap-icons-map, "grid-3x2"); }
-.bi-grid-3x3-gap-fill::before { content: map-get($bootstrap-icons-map, "grid-3x3-gap-fill"); }
-.bi-grid-3x3-gap::before { content: map-get($bootstrap-icons-map, "grid-3x3-gap"); }
-.bi-grid-3x3::before { content: map-get($bootstrap-icons-map, "grid-3x3"); }
-.bi-grid-fill::before { content: map-get($bootstrap-icons-map, "grid-fill"); }
-.bi-grid::before { content: map-get($bootstrap-icons-map, "grid"); }
-.bi-grip-horizontal::before { content: map-get($bootstrap-icons-map, "grip-horizontal"); }
-.bi-grip-vertical::before { content: map-get($bootstrap-icons-map, "grip-vertical"); }
-.bi-hammer::before { content: map-get($bootstrap-icons-map, "hammer"); }
-.bi-hand-index-fill::before { content: map-get($bootstrap-icons-map, "hand-index-fill"); }
-.bi-hand-index-thumb-fill::before { content: map-get($bootstrap-icons-map, "hand-index-thumb-fill"); }
-.bi-hand-index-thumb::before { content: map-get($bootstrap-icons-map, "hand-index-thumb"); }
-.bi-hand-index::before { content: map-get($bootstrap-icons-map, "hand-index"); }
-.bi-hand-thumbs-down-fill::before { content: map-get($bootstrap-icons-map, "hand-thumbs-down-fill"); }
-.bi-hand-thumbs-down::before { content: map-get($bootstrap-icons-map, "hand-thumbs-down"); }
-.bi-hand-thumbs-up-fill::before { content: map-get($bootstrap-icons-map, "hand-thumbs-up-fill"); }
-.bi-hand-thumbs-up::before { content: map-get($bootstrap-icons-map, "hand-thumbs-up"); }
-.bi-handbag-fill::before { content: map-get($bootstrap-icons-map, "handbag-fill"); }
-.bi-handbag::before { content: map-get($bootstrap-icons-map, "handbag"); }
-.bi-hash::before { content: map-get($bootstrap-icons-map, "hash"); }
-.bi-hdd-fill::before { content: map-get($bootstrap-icons-map, "hdd-fill"); }
-.bi-hdd-network-fill::before { content: map-get($bootstrap-icons-map, "hdd-network-fill"); }
-.bi-hdd-network::before { content: map-get($bootstrap-icons-map, "hdd-network"); }
-.bi-hdd-rack-fill::before { content: map-get($bootstrap-icons-map, "hdd-rack-fill"); }
-.bi-hdd-rack::before { content: map-get($bootstrap-icons-map, "hdd-rack"); }
-.bi-hdd-stack-fill::before { content: map-get($bootstrap-icons-map, "hdd-stack-fill"); }
-.bi-hdd-stack::before { content: map-get($bootstrap-icons-map, "hdd-stack"); }
-.bi-hdd::before { content: map-get($bootstrap-icons-map, "hdd"); }
-.bi-headphones::before { content: map-get($bootstrap-icons-map, "headphones"); }
-.bi-headset::before { content: map-get($bootstrap-icons-map, "headset"); }
-.bi-heart-fill::before { content: map-get($bootstrap-icons-map, "heart-fill"); }
-.bi-heart-half::before { content: map-get($bootstrap-icons-map, "heart-half"); }
-.bi-heart::before { content: map-get($bootstrap-icons-map, "heart"); }
-.bi-heptagon-fill::before { content: map-get($bootstrap-icons-map, "heptagon-fill"); }
-.bi-heptagon-half::before { content: map-get($bootstrap-icons-map, "heptagon-half"); }
-.bi-heptagon::before { content: map-get($bootstrap-icons-map, "heptagon"); }
-.bi-hexagon-fill::before { content: map-get($bootstrap-icons-map, "hexagon-fill"); }
-.bi-hexagon-half::before { content: map-get($bootstrap-icons-map, "hexagon-half"); }
-.bi-hexagon::before { content: map-get($bootstrap-icons-map, "hexagon"); }
-.bi-hourglass-bottom::before { content: map-get($bootstrap-icons-map, "hourglass-bottom"); }
-.bi-hourglass-split::before { content: map-get($bootstrap-icons-map, "hourglass-split"); }
-.bi-hourglass-top::before { content: map-get($bootstrap-icons-map, "hourglass-top"); }
-.bi-hourglass::before { content: map-get($bootstrap-icons-map, "hourglass"); }
-.bi-house-door-fill::before { content: map-get($bootstrap-icons-map, "house-door-fill"); }
-.bi-house-door::before { content: map-get($bootstrap-icons-map, "house-door"); }
-.bi-house-fill::before { content: map-get($bootstrap-icons-map, "house-fill"); }
-.bi-house::before { content: map-get($bootstrap-icons-map, "house"); }
-.bi-hr::before { content: map-get($bootstrap-icons-map, "hr"); }
-.bi-hurricane::before { content: map-get($bootstrap-icons-map, "hurricane"); }
-.bi-image-alt::before { content: map-get($bootstrap-icons-map, "image-alt"); }
-.bi-image-fill::before { content: map-get($bootstrap-icons-map, "image-fill"); }
-.bi-image::before { content: map-get($bootstrap-icons-map, "image"); }
-.bi-images::before { content: map-get($bootstrap-icons-map, "images"); }
-.bi-inbox-fill::before { content: map-get($bootstrap-icons-map, "inbox-fill"); }
-.bi-inbox::before { content: map-get($bootstrap-icons-map, "inbox"); }
-.bi-inboxes-fill::before { content: map-get($bootstrap-icons-map, "inboxes-fill"); }
-.bi-inboxes::before { content: map-get($bootstrap-icons-map, "inboxes"); }
-.bi-info-circle-fill::before { content: map-get($bootstrap-icons-map, "info-circle-fill"); }
-.bi-info-circle::before { content: map-get($bootstrap-icons-map, "info-circle"); }
-.bi-info-square-fill::before { content: map-get($bootstrap-icons-map, "info-square-fill"); }
-.bi-info-square::before { content: map-get($bootstrap-icons-map, "info-square"); }
-.bi-info::before { content: map-get($bootstrap-icons-map, "info"); }
-.bi-input-cursor-text::before { content: map-get($bootstrap-icons-map, "input-cursor-text"); }
-.bi-input-cursor::before { content: map-get($bootstrap-icons-map, "input-cursor"); }
-.bi-instagram::before { content: map-get($bootstrap-icons-map, "instagram"); }
-.bi-intersect::before { content: map-get($bootstrap-icons-map, "intersect"); }
-.bi-journal-album::before { content: map-get($bootstrap-icons-map, "journal-album"); }
-.bi-journal-arrow-down::before { content: map-get($bootstrap-icons-map, "journal-arrow-down"); }
-.bi-journal-arrow-up::before { content: map-get($bootstrap-icons-map, "journal-arrow-up"); }
-.bi-journal-bookmark-fill::before { content: map-get($bootstrap-icons-map, "journal-bookmark-fill"); }
-.bi-journal-bookmark::before { content: map-get($bootstrap-icons-map, "journal-bookmark"); }
-.bi-journal-check::before { content: map-get($bootstrap-icons-map, "journal-check"); }
-.bi-journal-code::before { content: map-get($bootstrap-icons-map, "journal-code"); }
-.bi-journal-medical::before { content: map-get($bootstrap-icons-map, "journal-medical"); }
-.bi-journal-minus::before { content: map-get($bootstrap-icons-map, "journal-minus"); }
-.bi-journal-plus::before { content: map-get($bootstrap-icons-map, "journal-plus"); }
-.bi-journal-richtext::before { content: map-get($bootstrap-icons-map, "journal-richtext"); }
-.bi-journal-text::before { content: map-get($bootstrap-icons-map, "journal-text"); }
-.bi-journal-x::before { content: map-get($bootstrap-icons-map, "journal-x"); }
-.bi-journal::before { content: map-get($bootstrap-icons-map, "journal"); }
-.bi-journals::before { content: map-get($bootstrap-icons-map, "journals"); }
-.bi-joystick::before { content: map-get($bootstrap-icons-map, "joystick"); }
-.bi-justify-left::before { content: map-get($bootstrap-icons-map, "justify-left"); }
-.bi-justify-right::before { content: map-get($bootstrap-icons-map, "justify-right"); }
-.bi-justify::before { content: map-get($bootstrap-icons-map, "justify"); }
-.bi-kanban-fill::before { content: map-get($bootstrap-icons-map, "kanban-fill"); }
-.bi-kanban::before { content: map-get($bootstrap-icons-map, "kanban"); }
-.bi-key-fill::before { content: map-get($bootstrap-icons-map, "key-fill"); }
-.bi-key::before { content: map-get($bootstrap-icons-map, "key"); }
-.bi-keyboard-fill::before { content: map-get($bootstrap-icons-map, "keyboard-fill"); }
-.bi-keyboard::before { content: map-get($bootstrap-icons-map, "keyboard"); }
-.bi-ladder::before { content: map-get($bootstrap-icons-map, "ladder"); }
-.bi-lamp-fill::before { content: map-get($bootstrap-icons-map, "lamp-fill"); }
-.bi-lamp::before { content: map-get($bootstrap-icons-map, "lamp"); }
-.bi-laptop-fill::before { content: map-get($bootstrap-icons-map, "laptop-fill"); }
-.bi-laptop::before { content: map-get($bootstrap-icons-map, "laptop"); }
-.bi-layer-backward::before { content: map-get($bootstrap-icons-map, "layer-backward"); }
-.bi-layer-forward::before { content: map-get($bootstrap-icons-map, "layer-forward"); }
-.bi-layers-fill::before { content: map-get($bootstrap-icons-map, "layers-fill"); }
-.bi-layers-half::before { content: map-get($bootstrap-icons-map, "layers-half"); }
-.bi-layers::before { content: map-get($bootstrap-icons-map, "layers"); }
-.bi-layout-sidebar-inset-reverse::before { content: map-get($bootstrap-icons-map, "layout-sidebar-inset-reverse"); }
-.bi-layout-sidebar-inset::before { content: map-get($bootstrap-icons-map, "layout-sidebar-inset"); }
-.bi-layout-sidebar-reverse::before { content: map-get($bootstrap-icons-map, "layout-sidebar-reverse"); }
-.bi-layout-sidebar::before { content: map-get($bootstrap-icons-map, "layout-sidebar"); }
-.bi-layout-split::before { content: map-get($bootstrap-icons-map, "layout-split"); }
-.bi-layout-text-sidebar-reverse::before { content: map-get($bootstrap-icons-map, "layout-text-sidebar-reverse"); }
-.bi-layout-text-sidebar::before { content: map-get($bootstrap-icons-map, "layout-text-sidebar"); }
-.bi-layout-text-window-reverse::before { content: map-get($bootstrap-icons-map, "layout-text-window-reverse"); }
-.bi-layout-text-window::before { content: map-get($bootstrap-icons-map, "layout-text-window"); }
-.bi-layout-three-columns::before { content: map-get($bootstrap-icons-map, "layout-three-columns"); }
-.bi-layout-wtf::before { content: map-get($bootstrap-icons-map, "layout-wtf"); }
-.bi-life-preserver::before { content: map-get($bootstrap-icons-map, "life-preserver"); }
-.bi-lightbulb-fill::before { content: map-get($bootstrap-icons-map, "lightbulb-fill"); }
-.bi-lightbulb-off-fill::before { content: map-get($bootstrap-icons-map, "lightbulb-off-fill"); }
-.bi-lightbulb-off::before { content: map-get($bootstrap-icons-map, "lightbulb-off"); }
-.bi-lightbulb::before { content: map-get($bootstrap-icons-map, "lightbulb"); }
-.bi-lightning-charge-fill::before { content: map-get($bootstrap-icons-map, "lightning-charge-fill"); }
-.bi-lightning-charge::before { content: map-get($bootstrap-icons-map, "lightning-charge"); }
-.bi-lightning-fill::before { content: map-get($bootstrap-icons-map, "lightning-fill"); }
-.bi-lightning::before { content: map-get($bootstrap-icons-map, "lightning"); }
-.bi-link-45deg::before { content: map-get($bootstrap-icons-map, "link-45deg"); }
-.bi-link::before { content: map-get($bootstrap-icons-map, "link"); }
-.bi-linkedin::before { content: map-get($bootstrap-icons-map, "linkedin"); }
-.bi-list-check::before { content: map-get($bootstrap-icons-map, "list-check"); }
-.bi-list-nested::before { content: map-get($bootstrap-icons-map, "list-nested"); }
-.bi-list-ol::before { content: map-get($bootstrap-icons-map, "list-ol"); }
-.bi-list-stars::before { content: map-get($bootstrap-icons-map, "list-stars"); }
-.bi-list-task::before { content: map-get($bootstrap-icons-map, "list-task"); }
-.bi-list-ul::before { content: map-get($bootstrap-icons-map, "list-ul"); }
-.bi-list::before { content: map-get($bootstrap-icons-map, "list"); }
-.bi-lock-fill::before { content: map-get($bootstrap-icons-map, "lock-fill"); }
-.bi-lock::before { content: map-get($bootstrap-icons-map, "lock"); }
-.bi-mailbox::before { content: map-get($bootstrap-icons-map, "mailbox"); }
-.bi-mailbox2::before { content: map-get($bootstrap-icons-map, "mailbox2"); }
-.bi-map-fill::before { content: map-get($bootstrap-icons-map, "map-fill"); }
-.bi-map::before { content: map-get($bootstrap-icons-map, "map"); }
-.bi-markdown-fill::before { content: map-get($bootstrap-icons-map, "markdown-fill"); }
-.bi-markdown::before { content: map-get($bootstrap-icons-map, "markdown"); }
-.bi-mask::before { content: map-get($bootstrap-icons-map, "mask"); }
-.bi-megaphone-fill::before { content: map-get($bootstrap-icons-map, "megaphone-fill"); }
-.bi-megaphone::before { content: map-get($bootstrap-icons-map, "megaphone"); }
-.bi-menu-app-fill::before { content: map-get($bootstrap-icons-map, "menu-app-fill"); }
-.bi-menu-app::before { content: map-get($bootstrap-icons-map, "menu-app"); }
-.bi-menu-button-fill::before { content: map-get($bootstrap-icons-map, "menu-button-fill"); }
-.bi-menu-button-wide-fill::before { content: map-get($bootstrap-icons-map, "menu-button-wide-fill"); }
-.bi-menu-button-wide::before { content: map-get($bootstrap-icons-map, "menu-button-wide"); }
-.bi-menu-button::before { content: map-get($bootstrap-icons-map, "menu-button"); }
-.bi-menu-down::before { content: map-get($bootstrap-icons-map, "menu-down"); }
-.bi-menu-up::before { content: map-get($bootstrap-icons-map, "menu-up"); }
-.bi-mic-fill::before { content: map-get($bootstrap-icons-map, "mic-fill"); }
-.bi-mic-mute-fill::before { content: map-get($bootstrap-icons-map, "mic-mute-fill"); }
-.bi-mic-mute::before { content: map-get($bootstrap-icons-map, "mic-mute"); }
-.bi-mic::before { content: map-get($bootstrap-icons-map, "mic"); }
-.bi-minecart-loaded::before { content: map-get($bootstrap-icons-map, "minecart-loaded"); }
-.bi-minecart::before { content: map-get($bootstrap-icons-map, "minecart"); }
-.bi-moisture::before { content: map-get($bootstrap-icons-map, "moisture"); }
-.bi-moon-fill::before { content: map-get($bootstrap-icons-map, "moon-fill"); }
-.bi-moon-stars-fill::before { content: map-get($bootstrap-icons-map, "moon-stars-fill"); }
-.bi-moon-stars::before { content: map-get($bootstrap-icons-map, "moon-stars"); }
-.bi-moon::before { content: map-get($bootstrap-icons-map, "moon"); }
-.bi-mouse-fill::before { content: map-get($bootstrap-icons-map, "mouse-fill"); }
-.bi-mouse::before { content: map-get($bootstrap-icons-map, "mouse"); }
-.bi-mouse2-fill::before { content: map-get($bootstrap-icons-map, "mouse2-fill"); }
-.bi-mouse2::before { content: map-get($bootstrap-icons-map, "mouse2"); }
-.bi-mouse3-fill::before { content: map-get($bootstrap-icons-map, "mouse3-fill"); }
-.bi-mouse3::before { content: map-get($bootstrap-icons-map, "mouse3"); }
-.bi-music-note-beamed::before { content: map-get($bootstrap-icons-map, "music-note-beamed"); }
-.bi-music-note-list::before { content: map-get($bootstrap-icons-map, "music-note-list"); }
-.bi-music-note::before { content: map-get($bootstrap-icons-map, "music-note"); }
-.bi-music-player-fill::before { content: map-get($bootstrap-icons-map, "music-player-fill"); }
-.bi-music-player::before { content: map-get($bootstrap-icons-map, "music-player"); }
-.bi-newspaper::before { content: map-get($bootstrap-icons-map, "newspaper"); }
-.bi-node-minus-fill::before { content: map-get($bootstrap-icons-map, "node-minus-fill"); }
-.bi-node-minus::before { content: map-get($bootstrap-icons-map, "node-minus"); }
-.bi-node-plus-fill::before { content: map-get($bootstrap-icons-map, "node-plus-fill"); }
-.bi-node-plus::before { content: map-get($bootstrap-icons-map, "node-plus"); }
-.bi-nut-fill::before { content: map-get($bootstrap-icons-map, "nut-fill"); }
-.bi-nut::before { content: map-get($bootstrap-icons-map, "nut"); }
-.bi-octagon-fill::before { content: map-get($bootstrap-icons-map, "octagon-fill"); }
-.bi-octagon-half::before { content: map-get($bootstrap-icons-map, "octagon-half"); }
-.bi-octagon::before { content: map-get($bootstrap-icons-map, "octagon"); }
-.bi-option::before { content: map-get($bootstrap-icons-map, "option"); }
-.bi-outlet::before { content: map-get($bootstrap-icons-map, "outlet"); }
-.bi-paint-bucket::before { content: map-get($bootstrap-icons-map, "paint-bucket"); }
-.bi-palette-fill::before { content: map-get($bootstrap-icons-map, "palette-fill"); }
-.bi-palette::before { content: map-get($bootstrap-icons-map, "palette"); }
-.bi-palette2::before { content: map-get($bootstrap-icons-map, "palette2"); }
-.bi-paperclip::before { content: map-get($bootstrap-icons-map, "paperclip"); }
-.bi-paragraph::before { content: map-get($bootstrap-icons-map, "paragraph"); }
-.bi-patch-check-fill::before { content: map-get($bootstrap-icons-map, "patch-check-fill"); }
-.bi-patch-check::before { content: map-get($bootstrap-icons-map, "patch-check"); }
-.bi-patch-exclamation-fill::before { content: map-get($bootstrap-icons-map, "patch-exclamation-fill"); }
-.bi-patch-exclamation::before { content: map-get($bootstrap-icons-map, "patch-exclamation"); }
-.bi-patch-minus-fill::before { content: map-get($bootstrap-icons-map, "patch-minus-fill"); }
-.bi-patch-minus::before { content: map-get($bootstrap-icons-map, "patch-minus"); }
-.bi-patch-plus-fill::before { content: map-get($bootstrap-icons-map, "patch-plus-fill"); }
-.bi-patch-plus::before { content: map-get($bootstrap-icons-map, "patch-plus"); }
-.bi-patch-question-fill::before { content: map-get($bootstrap-icons-map, "patch-question-fill"); }
-.bi-patch-question::before { content: map-get($bootstrap-icons-map, "patch-question"); }
-.bi-pause-btn-fill::before { content: map-get($bootstrap-icons-map, "pause-btn-fill"); }
-.bi-pause-btn::before { content: map-get($bootstrap-icons-map, "pause-btn"); }
-.bi-pause-circle-fill::before { content: map-get($bootstrap-icons-map, "pause-circle-fill"); }
-.bi-pause-circle::before { content: map-get($bootstrap-icons-map, "pause-circle"); }
-.bi-pause-fill::before { content: map-get($bootstrap-icons-map, "pause-fill"); }
-.bi-pause::before { content: map-get($bootstrap-icons-map, "pause"); }
-.bi-peace-fill::before { content: map-get($bootstrap-icons-map, "peace-fill"); }
-.bi-peace::before { content: map-get($bootstrap-icons-map, "peace"); }
-.bi-pen-fill::before { content: map-get($bootstrap-icons-map, "pen-fill"); }
-.bi-pen::before { content: map-get($bootstrap-icons-map, "pen"); }
-.bi-pencil-fill::before { content: map-get($bootstrap-icons-map, "pencil-fill"); }
-.bi-pencil-square::before { content: map-get($bootstrap-icons-map, "pencil-square"); }
-.bi-pencil::before { content: map-get($bootstrap-icons-map, "pencil"); }
-.bi-pentagon-fill::before { content: map-get($bootstrap-icons-map, "pentagon-fill"); }
-.bi-pentagon-half::before { content: map-get($bootstrap-icons-map, "pentagon-half"); }
-.bi-pentagon::before { content: map-get($bootstrap-icons-map, "pentagon"); }
-.bi-people-fill::before { content: map-get($bootstrap-icons-map, "people-fill"); }
-.bi-people::before { content: map-get($bootstrap-icons-map, "people"); }
-.bi-percent::before { content: map-get($bootstrap-icons-map, "percent"); }
-.bi-person-badge-fill::before { content: map-get($bootstrap-icons-map, "person-badge-fill"); }
-.bi-person-badge::before { content: map-get($bootstrap-icons-map, "person-badge"); }
-.bi-person-bounding-box::before { content: map-get($bootstrap-icons-map, "person-bounding-box"); }
-.bi-person-check-fill::before { content: map-get($bootstrap-icons-map, "person-check-fill"); }
-.bi-person-check::before { content: map-get($bootstrap-icons-map, "person-check"); }
-.bi-person-circle::before { content: map-get($bootstrap-icons-map, "person-circle"); }
-.bi-person-dash-fill::before { content: map-get($bootstrap-icons-map, "person-dash-fill"); }
-.bi-person-dash::before { content: map-get($bootstrap-icons-map, "person-dash"); }
-.bi-person-fill::before { content: map-get($bootstrap-icons-map, "person-fill"); }
-.bi-person-lines-fill::before { content: map-get($bootstrap-icons-map, "person-lines-fill"); }
-.bi-person-plus-fill::before { content: map-get($bootstrap-icons-map, "person-plus-fill"); }
-.bi-person-plus::before { content: map-get($bootstrap-icons-map, "person-plus"); }
-.bi-person-square::before { content: map-get($bootstrap-icons-map, "person-square"); }
-.bi-person-x-fill::before { content: map-get($bootstrap-icons-map, "person-x-fill"); }
-.bi-person-x::before { content: map-get($bootstrap-icons-map, "person-x"); }
-.bi-person::before { content: map-get($bootstrap-icons-map, "person"); }
-.bi-phone-fill::before { content: map-get($bootstrap-icons-map, "phone-fill"); }
-.bi-phone-landscape-fill::before { content: map-get($bootstrap-icons-map, "phone-landscape-fill"); }
-.bi-phone-landscape::before { content: map-get($bootstrap-icons-map, "phone-landscape"); }
-.bi-phone-vibrate-fill::before { content: map-get($bootstrap-icons-map, "phone-vibrate-fill"); }
-.bi-phone-vibrate::before { content: map-get($bootstrap-icons-map, "phone-vibrate"); }
-.bi-phone::before { content: map-get($bootstrap-icons-map, "phone"); }
-.bi-pie-chart-fill::before { content: map-get($bootstrap-icons-map, "pie-chart-fill"); }
-.bi-pie-chart::before { content: map-get($bootstrap-icons-map, "pie-chart"); }
-.bi-pin-angle-fill::before { content: map-get($bootstrap-icons-map, "pin-angle-fill"); }
-.bi-pin-angle::before { content: map-get($bootstrap-icons-map, "pin-angle"); }
-.bi-pin-fill::before { content: map-get($bootstrap-icons-map, "pin-fill"); }
-.bi-pin::before { content: map-get($bootstrap-icons-map, "pin"); }
-.bi-pip-fill::before { content: map-get($bootstrap-icons-map, "pip-fill"); }
-.bi-pip::before { content: map-get($bootstrap-icons-map, "pip"); }
-.bi-play-btn-fill::before { content: map-get($bootstrap-icons-map, "play-btn-fill"); }
-.bi-play-btn::before { content: map-get($bootstrap-icons-map, "play-btn"); }
-.bi-play-circle-fill::before { content: map-get($bootstrap-icons-map, "play-circle-fill"); }
-.bi-play-circle::before { content: map-get($bootstrap-icons-map, "play-circle"); }
-.bi-play-fill::before { content: map-get($bootstrap-icons-map, "play-fill"); }
-.bi-play::before { content: map-get($bootstrap-icons-map, "play"); }
-.bi-plug-fill::before { content: map-get($bootstrap-icons-map, "plug-fill"); }
-.bi-plug::before { content: map-get($bootstrap-icons-map, "plug"); }
-.bi-plus-circle-dotted::before { content: map-get($bootstrap-icons-map, "plus-circle-dotted"); }
-.bi-plus-circle-fill::before { content: map-get($bootstrap-icons-map, "plus-circle-fill"); }
-.bi-plus-circle::before { content: map-get($bootstrap-icons-map, "plus-circle"); }
-.bi-plus-square-dotted::before { content: map-get($bootstrap-icons-map, "plus-square-dotted"); }
-.bi-plus-square-fill::before { content: map-get($bootstrap-icons-map, "plus-square-fill"); }
-.bi-plus-square::before { content: map-get($bootstrap-icons-map, "plus-square"); }
-.bi-plus::before { content: map-get($bootstrap-icons-map, "plus"); }
-.bi-power::before { content: map-get($bootstrap-icons-map, "power"); }
-.bi-printer-fill::before { content: map-get($bootstrap-icons-map, "printer-fill"); }
-.bi-printer::before { content: map-get($bootstrap-icons-map, "printer"); }
-.bi-puzzle-fill::before { content: map-get($bootstrap-icons-map, "puzzle-fill"); }
-.bi-puzzle::before { content: map-get($bootstrap-icons-map, "puzzle"); }
-.bi-question-circle-fill::before { content: map-get($bootstrap-icons-map, "question-circle-fill"); }
-.bi-question-circle::before { content: map-get($bootstrap-icons-map, "question-circle"); }
-.bi-question-diamond-fill::before { content: map-get($bootstrap-icons-map, "question-diamond-fill"); }
-.bi-question-diamond::before { content: map-get($bootstrap-icons-map, "question-diamond"); }
-.bi-question-octagon-fill::before { content: map-get($bootstrap-icons-map, "question-octagon-fill"); }
-.bi-question-octagon::before { content: map-get($bootstrap-icons-map, "question-octagon"); }
-.bi-question-square-fill::before { content: map-get($bootstrap-icons-map, "question-square-fill"); }
-.bi-question-square::before { content: map-get($bootstrap-icons-map, "question-square"); }
-.bi-question::before { content: map-get($bootstrap-icons-map, "question"); }
-.bi-rainbow::before { content: map-get($bootstrap-icons-map, "rainbow"); }
-.bi-receipt-cutoff::before { content: map-get($bootstrap-icons-map, "receipt-cutoff"); }
-.bi-receipt::before { content: map-get($bootstrap-icons-map, "receipt"); }
-.bi-reception-0::before { content: map-get($bootstrap-icons-map, "reception-0"); }
-.bi-reception-1::before { content: map-get($bootstrap-icons-map, "reception-1"); }
-.bi-reception-2::before { content: map-get($bootstrap-icons-map, "reception-2"); }
-.bi-reception-3::before { content: map-get($bootstrap-icons-map, "reception-3"); }
-.bi-reception-4::before { content: map-get($bootstrap-icons-map, "reception-4"); }
-.bi-record-btn-fill::before { content: map-get($bootstrap-icons-map, "record-btn-fill"); }
-.bi-record-btn::before { content: map-get($bootstrap-icons-map, "record-btn"); }
-.bi-record-circle-fill::before { content: map-get($bootstrap-icons-map, "record-circle-fill"); }
-.bi-record-circle::before { content: map-get($bootstrap-icons-map, "record-circle"); }
-.bi-record-fill::before { content: map-get($bootstrap-icons-map, "record-fill"); }
-.bi-record::before { content: map-get($bootstrap-icons-map, "record"); }
-.bi-record2-fill::before { content: map-get($bootstrap-icons-map, "record2-fill"); }
-.bi-record2::before { content: map-get($bootstrap-icons-map, "record2"); }
-.bi-reply-all-fill::before { content: map-get($bootstrap-icons-map, "reply-all-fill"); }
-.bi-reply-all::before { content: map-get($bootstrap-icons-map, "reply-all"); }
-.bi-reply-fill::before { content: map-get($bootstrap-icons-map, "reply-fill"); }
-.bi-reply::before { content: map-get($bootstrap-icons-map, "reply"); }
-.bi-rss-fill::before { content: map-get($bootstrap-icons-map, "rss-fill"); }
-.bi-rss::before { content: map-get($bootstrap-icons-map, "rss"); }
-.bi-rulers::before { content: map-get($bootstrap-icons-map, "rulers"); }
-.bi-save-fill::before { content: map-get($bootstrap-icons-map, "save-fill"); }
-.bi-save::before { content: map-get($bootstrap-icons-map, "save"); }
-.bi-save2-fill::before { content: map-get($bootstrap-icons-map, "save2-fill"); }
-.bi-save2::before { content: map-get($bootstrap-icons-map, "save2"); }
-.bi-scissors::before { content: map-get($bootstrap-icons-map, "scissors"); }
-.bi-screwdriver::before { content: map-get($bootstrap-icons-map, "screwdriver"); }
-.bi-search::before { content: map-get($bootstrap-icons-map, "search"); }
-.bi-segmented-nav::before { content: map-get($bootstrap-icons-map, "segmented-nav"); }
-.bi-server::before { content: map-get($bootstrap-icons-map, "server"); }
-.bi-share-fill::before { content: map-get($bootstrap-icons-map, "share-fill"); }
-.bi-share::before { content: map-get($bootstrap-icons-map, "share"); }
-.bi-shield-check::before { content: map-get($bootstrap-icons-map, "shield-check"); }
-.bi-shield-exclamation::before { content: map-get($bootstrap-icons-map, "shield-exclamation"); }
-.bi-shield-fill-check::before { content: map-get($bootstrap-icons-map, "shield-fill-check"); }
-.bi-shield-fill-exclamation::before { content: map-get($bootstrap-icons-map, "shield-fill-exclamation"); }
-.bi-shield-fill-minus::before { content: map-get($bootstrap-icons-map, "shield-fill-minus"); }
-.bi-shield-fill-plus::before { content: map-get($bootstrap-icons-map, "shield-fill-plus"); }
-.bi-shield-fill-x::before { content: map-get($bootstrap-icons-map, "shield-fill-x"); }
-.bi-shield-fill::before { content: map-get($bootstrap-icons-map, "shield-fill"); }
-.bi-shield-lock-fill::before { content: map-get($bootstrap-icons-map, "shield-lock-fill"); }
-.bi-shield-lock::before { content: map-get($bootstrap-icons-map, "shield-lock"); }
-.bi-shield-minus::before { content: map-get($bootstrap-icons-map, "shield-minus"); }
-.bi-shield-plus::before { content: map-get($bootstrap-icons-map, "shield-plus"); }
-.bi-shield-shaded::before { content: map-get($bootstrap-icons-map, "shield-shaded"); }
-.bi-shield-slash-fill::before { content: map-get($bootstrap-icons-map, "shield-slash-fill"); }
-.bi-shield-slash::before { content: map-get($bootstrap-icons-map, "shield-slash"); }
-.bi-shield-x::before { content: map-get($bootstrap-icons-map, "shield-x"); }
-.bi-shield::before { content: map-get($bootstrap-icons-map, "shield"); }
-.bi-shift-fill::before { content: map-get($bootstrap-icons-map, "shift-fill"); }
-.bi-shift::before { content: map-get($bootstrap-icons-map, "shift"); }
-.bi-shop-window::before { content: map-get($bootstrap-icons-map, "shop-window"); }
-.bi-shop::before { content: map-get($bootstrap-icons-map, "shop"); }
-.bi-shuffle::before { content: map-get($bootstrap-icons-map, "shuffle"); }
-.bi-signpost-2-fill::before { content: map-get($bootstrap-icons-map, "signpost-2-fill"); }
-.bi-signpost-2::before { content: map-get($bootstrap-icons-map, "signpost-2"); }
-.bi-signpost-fill::before { content: map-get($bootstrap-icons-map, "signpost-fill"); }
-.bi-signpost-split-fill::before { content: map-get($bootstrap-icons-map, "signpost-split-fill"); }
-.bi-signpost-split::before { content: map-get($bootstrap-icons-map, "signpost-split"); }
-.bi-signpost::before { content: map-get($bootstrap-icons-map, "signpost"); }
-.bi-sim-fill::before { content: map-get($bootstrap-icons-map, "sim-fill"); }
-.bi-sim::before { content: map-get($bootstrap-icons-map, "sim"); }
-.bi-skip-backward-btn-fill::before { content: map-get($bootstrap-icons-map, "skip-backward-btn-fill"); }
-.bi-skip-backward-btn::before { content: map-get($bootstrap-icons-map, "skip-backward-btn"); }
-.bi-skip-backward-circle-fill::before { content: map-get($bootstrap-icons-map, "skip-backward-circle-fill"); }
-.bi-skip-backward-circle::before { content: map-get($bootstrap-icons-map, "skip-backward-circle"); }
-.bi-skip-backward-fill::before { content: map-get($bootstrap-icons-map, "skip-backward-fill"); }
-.bi-skip-backward::before { content: map-get($bootstrap-icons-map, "skip-backward"); }
-.bi-skip-end-btn-fill::before { content: map-get($bootstrap-icons-map, "skip-end-btn-fill"); }
-.bi-skip-end-btn::before { content: map-get($bootstrap-icons-map, "skip-end-btn"); }
-.bi-skip-end-circle-fill::before { content: map-get($bootstrap-icons-map, "skip-end-circle-fill"); }
-.bi-skip-end-circle::before { content: map-get($bootstrap-icons-map, "skip-end-circle"); }
-.bi-skip-end-fill::before { content: map-get($bootstrap-icons-map, "skip-end-fill"); }
-.bi-skip-end::before { content: map-get($bootstrap-icons-map, "skip-end"); }
-.bi-skip-forward-btn-fill::before { content: map-get($bootstrap-icons-map, "skip-forward-btn-fill"); }
-.bi-skip-forward-btn::before { content: map-get($bootstrap-icons-map, "skip-forward-btn"); }
-.bi-skip-forward-circle-fill::before { content: map-get($bootstrap-icons-map, "skip-forward-circle-fill"); }
-.bi-skip-forward-circle::before { content: map-get($bootstrap-icons-map, "skip-forward-circle"); }
-.bi-skip-forward-fill::before { content: map-get($bootstrap-icons-map, "skip-forward-fill"); }
-.bi-skip-forward::before { content: map-get($bootstrap-icons-map, "skip-forward"); }
-.bi-skip-start-btn-fill::before { content: map-get($bootstrap-icons-map, "skip-start-btn-fill"); }
-.bi-skip-start-btn::before { content: map-get($bootstrap-icons-map, "skip-start-btn"); }
-.bi-skip-start-circle-fill::before { content: map-get($bootstrap-icons-map, "skip-start-circle-fill"); }
-.bi-skip-start-circle::before { content: map-get($bootstrap-icons-map, "skip-start-circle"); }
-.bi-skip-start-fill::before { content: map-get($bootstrap-icons-map, "skip-start-fill"); }
-.bi-skip-start::before { content: map-get($bootstrap-icons-map, "skip-start"); }
-.bi-slack::before { content: map-get($bootstrap-icons-map, "slack"); }
-.bi-slash-circle-fill::before { content: map-get($bootstrap-icons-map, "slash-circle-fill"); }
-.bi-slash-circle::before { content: map-get($bootstrap-icons-map, "slash-circle"); }
-.bi-slash-square-fill::before { content: map-get($bootstrap-icons-map, "slash-square-fill"); }
-.bi-slash-square::before { content: map-get($bootstrap-icons-map, "slash-square"); }
-.bi-slash::before { content: map-get($bootstrap-icons-map, "slash"); }
-.bi-sliders::before { content: map-get($bootstrap-icons-map, "sliders"); }
-.bi-smartwatch::before { content: map-get($bootstrap-icons-map, "smartwatch"); }
-.bi-snow::before { content: map-get($bootstrap-icons-map, "snow"); }
-.bi-snow2::before { content: map-get($bootstrap-icons-map, "snow2"); }
-.bi-snow3::before { content: map-get($bootstrap-icons-map, "snow3"); }
-.bi-sort-alpha-down-alt::before { content: map-get($bootstrap-icons-map, "sort-alpha-down-alt"); }
-.bi-sort-alpha-down::before { content: map-get($bootstrap-icons-map, "sort-alpha-down"); }
-.bi-sort-alpha-up-alt::before { content: map-get($bootstrap-icons-map, "sort-alpha-up-alt"); }
-.bi-sort-alpha-up::before { content: map-get($bootstrap-icons-map, "sort-alpha-up"); }
-.bi-sort-down-alt::before { content: map-get($bootstrap-icons-map, "sort-down-alt"); }
-.bi-sort-down::before { content: map-get($bootstrap-icons-map, "sort-down"); }
-.bi-sort-numeric-down-alt::before { content: map-get($bootstrap-icons-map, "sort-numeric-down-alt"); }
-.bi-sort-numeric-down::before { content: map-get($bootstrap-icons-map, "sort-numeric-down"); }
-.bi-sort-numeric-up-alt::before { content: map-get($bootstrap-icons-map, "sort-numeric-up-alt"); }
-.bi-sort-numeric-up::before { content: map-get($bootstrap-icons-map, "sort-numeric-up"); }
-.bi-sort-up-alt::before { content: map-get($bootstrap-icons-map, "sort-up-alt"); }
-.bi-sort-up::before { content: map-get($bootstrap-icons-map, "sort-up"); }
-.bi-soundwave::before { content: map-get($bootstrap-icons-map, "soundwave"); }
-.bi-speaker-fill::before { content: map-get($bootstrap-icons-map, "speaker-fill"); }
-.bi-speaker::before { content: map-get($bootstrap-icons-map, "speaker"); }
-.bi-speedometer::before { content: map-get($bootstrap-icons-map, "speedometer"); }
-.bi-speedometer2::before { content: map-get($bootstrap-icons-map, "speedometer2"); }
-.bi-spellcheck::before { content: map-get($bootstrap-icons-map, "spellcheck"); }
-.bi-square-fill::before { content: map-get($bootstrap-icons-map, "square-fill"); }
-.bi-square-half::before { content: map-get($bootstrap-icons-map, "square-half"); }
-.bi-square::before { content: map-get($bootstrap-icons-map, "square"); }
-.bi-stack::before { content: map-get($bootstrap-icons-map, "stack"); }
-.bi-star-fill::before { content: map-get($bootstrap-icons-map, "star-fill"); }
-.bi-star-half::before { content: map-get($bootstrap-icons-map, "star-half"); }
-.bi-star::before { content: map-get($bootstrap-icons-map, "star"); }
-.bi-stars::before { content: map-get($bootstrap-icons-map, "stars"); }
-.bi-stickies-fill::before { content: map-get($bootstrap-icons-map, "stickies-fill"); }
-.bi-stickies::before { content: map-get($bootstrap-icons-map, "stickies"); }
-.bi-sticky-fill::before { content: map-get($bootstrap-icons-map, "sticky-fill"); }
-.bi-sticky::before { content: map-get($bootstrap-icons-map, "sticky"); }
-.bi-stop-btn-fill::before { content: map-get($bootstrap-icons-map, "stop-btn-fill"); }
-.bi-stop-btn::before { content: map-get($bootstrap-icons-map, "stop-btn"); }
-.bi-stop-circle-fill::before { content: map-get($bootstrap-icons-map, "stop-circle-fill"); }
-.bi-stop-circle::before { content: map-get($bootstrap-icons-map, "stop-circle"); }
-.bi-stop-fill::before { content: map-get($bootstrap-icons-map, "stop-fill"); }
-.bi-stop::before { content: map-get($bootstrap-icons-map, "stop"); }
-.bi-stoplights-fill::before { content: map-get($bootstrap-icons-map, "stoplights-fill"); }
-.bi-stoplights::before { content: map-get($bootstrap-icons-map, "stoplights"); }
-.bi-stopwatch-fill::before { content: map-get($bootstrap-icons-map, "stopwatch-fill"); }
-.bi-stopwatch::before { content: map-get($bootstrap-icons-map, "stopwatch"); }
-.bi-subtract::before { content: map-get($bootstrap-icons-map, "subtract"); }
-.bi-suit-club-fill::before { content: map-get($bootstrap-icons-map, "suit-club-fill"); }
-.bi-suit-club::before { content: map-get($bootstrap-icons-map, "suit-club"); }
-.bi-suit-diamond-fill::before { content: map-get($bootstrap-icons-map, "suit-diamond-fill"); }
-.bi-suit-diamond::before { content: map-get($bootstrap-icons-map, "suit-diamond"); }
-.bi-suit-heart-fill::before { content: map-get($bootstrap-icons-map, "suit-heart-fill"); }
-.bi-suit-heart::before { content: map-get($bootstrap-icons-map, "suit-heart"); }
-.bi-suit-spade-fill::before { content: map-get($bootstrap-icons-map, "suit-spade-fill"); }
-.bi-suit-spade::before { content: map-get($bootstrap-icons-map, "suit-spade"); }
-.bi-sun-fill::before { content: map-get($bootstrap-icons-map, "sun-fill"); }
-.bi-sun::before { content: map-get($bootstrap-icons-map, "sun"); }
-.bi-sunglasses::before { content: map-get($bootstrap-icons-map, "sunglasses"); }
-.bi-sunrise-fill::before { content: map-get($bootstrap-icons-map, "sunrise-fill"); }
-.bi-sunrise::before { content: map-get($bootstrap-icons-map, "sunrise"); }
-.bi-sunset-fill::before { content: map-get($bootstrap-icons-map, "sunset-fill"); }
-.bi-sunset::before { content: map-get($bootstrap-icons-map, "sunset"); }
-.bi-symmetry-horizontal::before { content: map-get($bootstrap-icons-map, "symmetry-horizontal"); }
-.bi-symmetry-vertical::before { content: map-get($bootstrap-icons-map, "symmetry-vertical"); }
-.bi-table::before { content: map-get($bootstrap-icons-map, "table"); }
-.bi-tablet-fill::before { content: map-get($bootstrap-icons-map, "tablet-fill"); }
-.bi-tablet-landscape-fill::before { content: map-get($bootstrap-icons-map, "tablet-landscape-fill"); }
-.bi-tablet-landscape::before { content: map-get($bootstrap-icons-map, "tablet-landscape"); }
-.bi-tablet::before { content: map-get($bootstrap-icons-map, "tablet"); }
-.bi-tag-fill::before { content: map-get($bootstrap-icons-map, "tag-fill"); }
-.bi-tag::before { content: map-get($bootstrap-icons-map, "tag"); }
-.bi-tags-fill::before { content: map-get($bootstrap-icons-map, "tags-fill"); }
-.bi-tags::before { content: map-get($bootstrap-icons-map, "tags"); }
-.bi-telegram::before { content: map-get($bootstrap-icons-map, "telegram"); }
-.bi-telephone-fill::before { content: map-get($bootstrap-icons-map, "telephone-fill"); }
-.bi-telephone-forward-fill::before { content: map-get($bootstrap-icons-map, "telephone-forward-fill"); }
-.bi-telephone-forward::before { content: map-get($bootstrap-icons-map, "telephone-forward"); }
-.bi-telephone-inbound-fill::before { content: map-get($bootstrap-icons-map, "telephone-inbound-fill"); }
-.bi-telephone-inbound::before { content: map-get($bootstrap-icons-map, "telephone-inbound"); }
-.bi-telephone-minus-fill::before { content: map-get($bootstrap-icons-map, "telephone-minus-fill"); }
-.bi-telephone-minus::before { content: map-get($bootstrap-icons-map, "telephone-minus"); }
-.bi-telephone-outbound-fill::before { content: map-get($bootstrap-icons-map, "telephone-outbound-fill"); }
-.bi-telephone-outbound::before { content: map-get($bootstrap-icons-map, "telephone-outbound"); }
-.bi-telephone-plus-fill::before { content: map-get($bootstrap-icons-map, "telephone-plus-fill"); }
-.bi-telephone-plus::before { content: map-get($bootstrap-icons-map, "telephone-plus"); }
-.bi-telephone-x-fill::before { content: map-get($bootstrap-icons-map, "telephone-x-fill"); }
-.bi-telephone-x::before { content: map-get($bootstrap-icons-map, "telephone-x"); }
-.bi-telephone::before { content: map-get($bootstrap-icons-map, "telephone"); }
-.bi-terminal-fill::before { content: map-get($bootstrap-icons-map, "terminal-fill"); }
-.bi-terminal::before { content: map-get($bootstrap-icons-map, "terminal"); }
-.bi-text-center::before { content: map-get($bootstrap-icons-map, "text-center"); }
-.bi-text-indent-left::before { content: map-get($bootstrap-icons-map, "text-indent-left"); }
-.bi-text-indent-right::before { content: map-get($bootstrap-icons-map, "text-indent-right"); }
-.bi-text-left::before { content: map-get($bootstrap-icons-map, "text-left"); }
-.bi-text-paragraph::before { content: map-get($bootstrap-icons-map, "text-paragraph"); }
-.bi-text-right::before { content: map-get($bootstrap-icons-map, "text-right"); }
-.bi-textarea-resize::before { content: map-get($bootstrap-icons-map, "textarea-resize"); }
-.bi-textarea-t::before { content: map-get($bootstrap-icons-map, "textarea-t"); }
-.bi-textarea::before { content: map-get($bootstrap-icons-map, "textarea"); }
-.bi-thermometer-half::before { content: map-get($bootstrap-icons-map, "thermometer-half"); }
-.bi-thermometer-high::before { content: map-get($bootstrap-icons-map, "thermometer-high"); }
-.bi-thermometer-low::before { content: map-get($bootstrap-icons-map, "thermometer-low"); }
-.bi-thermometer-snow::before { content: map-get($bootstrap-icons-map, "thermometer-snow"); }
-.bi-thermometer-sun::before { content: map-get($bootstrap-icons-map, "thermometer-sun"); }
-.bi-thermometer::before { content: map-get($bootstrap-icons-map, "thermometer"); }
-.bi-three-dots-vertical::before { content: map-get($bootstrap-icons-map, "three-dots-vertical"); }
-.bi-three-dots::before { content: map-get($bootstrap-icons-map, "three-dots"); }
-.bi-toggle-off::before { content: map-get($bootstrap-icons-map, "toggle-off"); }
-.bi-toggle-on::before { content: map-get($bootstrap-icons-map, "toggle-on"); }
-.bi-toggle2-off::before { content: map-get($bootstrap-icons-map, "toggle2-off"); }
-.bi-toggle2-on::before { content: map-get($bootstrap-icons-map, "toggle2-on"); }
-.bi-toggles::before { content: map-get($bootstrap-icons-map, "toggles"); }
-.bi-toggles2::before { content: map-get($bootstrap-icons-map, "toggles2"); }
-.bi-tools::before { content: map-get($bootstrap-icons-map, "tools"); }
-.bi-tornado::before { content: map-get($bootstrap-icons-map, "tornado"); }
-.bi-trash-fill::before { content: map-get($bootstrap-icons-map, "trash-fill"); }
-.bi-trash::before { content: map-get($bootstrap-icons-map, "trash"); }
-.bi-trash2-fill::before { content: map-get($bootstrap-icons-map, "trash2-fill"); }
-.bi-trash2::before { content: map-get($bootstrap-icons-map, "trash2"); }
-.bi-tree-fill::before { content: map-get($bootstrap-icons-map, "tree-fill"); }
-.bi-tree::before { content: map-get($bootstrap-icons-map, "tree"); }
-.bi-triangle-fill::before { content: map-get($bootstrap-icons-map, "triangle-fill"); }
-.bi-triangle-half::before { content: map-get($bootstrap-icons-map, "triangle-half"); }
-.bi-triangle::before { content: map-get($bootstrap-icons-map, "triangle"); }
-.bi-trophy-fill::before { content: map-get($bootstrap-icons-map, "trophy-fill"); }
-.bi-trophy::before { content: map-get($bootstrap-icons-map, "trophy"); }
-.bi-tropical-storm::before { content: map-get($bootstrap-icons-map, "tropical-storm"); }
-.bi-truck-flatbed::before { content: map-get($bootstrap-icons-map, "truck-flatbed"); }
-.bi-truck::before { content: map-get($bootstrap-icons-map, "truck"); }
-.bi-tsunami::before { content: map-get($bootstrap-icons-map, "tsunami"); }
-.bi-tv-fill::before { content: map-get($bootstrap-icons-map, "tv-fill"); }
-.bi-tv::before { content: map-get($bootstrap-icons-map, "tv"); }
-.bi-twitch::before { content: map-get($bootstrap-icons-map, "twitch"); }
-.bi-twitter::before { content: map-get($bootstrap-icons-map, "twitter"); }
-.bi-type-bold::before { content: map-get($bootstrap-icons-map, "type-bold"); }
-.bi-type-h1::before { content: map-get($bootstrap-icons-map, "type-h1"); }
-.bi-type-h2::before { content: map-get($bootstrap-icons-map, "type-h2"); }
-.bi-type-h3::before { content: map-get($bootstrap-icons-map, "type-h3"); }
-.bi-type-italic::before { content: map-get($bootstrap-icons-map, "type-italic"); }
-.bi-type-strikethrough::before { content: map-get($bootstrap-icons-map, "type-strikethrough"); }
-.bi-type-underline::before { content: map-get($bootstrap-icons-map, "type-underline"); }
-.bi-type::before { content: map-get($bootstrap-icons-map, "type"); }
-.bi-ui-checks-grid::before { content: map-get($bootstrap-icons-map, "ui-checks-grid"); }
-.bi-ui-checks::before { content: map-get($bootstrap-icons-map, "ui-checks"); }
-.bi-ui-radios-grid::before { content: map-get($bootstrap-icons-map, "ui-radios-grid"); }
-.bi-ui-radios::before { content: map-get($bootstrap-icons-map, "ui-radios"); }
-.bi-umbrella-fill::before { content: map-get($bootstrap-icons-map, "umbrella-fill"); }
-.bi-umbrella::before { content: map-get($bootstrap-icons-map, "umbrella"); }
-.bi-union::before { content: map-get($bootstrap-icons-map, "union"); }
-.bi-unlock-fill::before { content: map-get($bootstrap-icons-map, "unlock-fill"); }
-.bi-unlock::before { content: map-get($bootstrap-icons-map, "unlock"); }
-.bi-upc-scan::before { content: map-get($bootstrap-icons-map, "upc-scan"); }
-.bi-upc::before { content: map-get($bootstrap-icons-map, "upc"); }
-.bi-upload::before { content: map-get($bootstrap-icons-map, "upload"); }
-.bi-vector-pen::before { content: map-get($bootstrap-icons-map, "vector-pen"); }
-.bi-view-list::before { content: map-get($bootstrap-icons-map, "view-list"); }
-.bi-view-stacked::before { content: map-get($bootstrap-icons-map, "view-stacked"); }
-.bi-vinyl-fill::before { content: map-get($bootstrap-icons-map, "vinyl-fill"); }
-.bi-vinyl::before { content: map-get($bootstrap-icons-map, "vinyl"); }
-.bi-voicemail::before { content: map-get($bootstrap-icons-map, "voicemail"); }
-.bi-volume-down-fill::before { content: map-get($bootstrap-icons-map, "volume-down-fill"); }
-.bi-volume-down::before { content: map-get($bootstrap-icons-map, "volume-down"); }
-.bi-volume-mute-fill::before { content: map-get($bootstrap-icons-map, "volume-mute-fill"); }
-.bi-volume-mute::before { content: map-get($bootstrap-icons-map, "volume-mute"); }
-.bi-volume-off-fill::before { content: map-get($bootstrap-icons-map, "volume-off-fill"); }
-.bi-volume-off::before { content: map-get($bootstrap-icons-map, "volume-off"); }
-.bi-volume-up-fill::before { content: map-get($bootstrap-icons-map, "volume-up-fill"); }
-.bi-volume-up::before { content: map-get($bootstrap-icons-map, "volume-up"); }
-.bi-vr::before { content: map-get($bootstrap-icons-map, "vr"); }
-.bi-wallet-fill::before { content: map-get($bootstrap-icons-map, "wallet-fill"); }
-.bi-wallet::before { content: map-get($bootstrap-icons-map, "wallet"); }
-.bi-wallet2::before { content: map-get($bootstrap-icons-map, "wallet2"); }
-.bi-watch::before { content: map-get($bootstrap-icons-map, "watch"); }
-.bi-water::before { content: map-get($bootstrap-icons-map, "water"); }
-.bi-whatsapp::before { content: map-get($bootstrap-icons-map, "whatsapp"); }
-.bi-wifi-1::before { content: map-get($bootstrap-icons-map, "wifi-1"); }
-.bi-wifi-2::before { content: map-get($bootstrap-icons-map, "wifi-2"); }
-.bi-wifi-off::before { content: map-get($bootstrap-icons-map, "wifi-off"); }
-.bi-wifi::before { content: map-get($bootstrap-icons-map, "wifi"); }
-.bi-wind::before { content: map-get($bootstrap-icons-map, "wind"); }
-.bi-window-dock::before { content: map-get($bootstrap-icons-map, "window-dock"); }
-.bi-window-sidebar::before { content: map-get($bootstrap-icons-map, "window-sidebar"); }
-.bi-window::before { content: map-get($bootstrap-icons-map, "window"); }
-.bi-wrench::before { content: map-get($bootstrap-icons-map, "wrench"); }
-.bi-x-circle-fill::before { content: map-get($bootstrap-icons-map, "x-circle-fill"); }
-.bi-x-circle::before { content: map-get($bootstrap-icons-map, "x-circle"); }
-.bi-x-diamond-fill::before { content: map-get($bootstrap-icons-map, "x-diamond-fill"); }
-.bi-x-diamond::before { content: map-get($bootstrap-icons-map, "x-diamond"); }
-.bi-x-octagon-fill::before { content: map-get($bootstrap-icons-map, "x-octagon-fill"); }
-.bi-x-octagon::before { content: map-get($bootstrap-icons-map, "x-octagon"); }
-.bi-x-square-fill::before { content: map-get($bootstrap-icons-map, "x-square-fill"); }
-.bi-x-square::before { content: map-get($bootstrap-icons-map, "x-square"); }
-.bi-x::before { content: map-get($bootstrap-icons-map, "x"); }
-.bi-youtube::before { content: map-get($bootstrap-icons-map, "youtube"); }
-.bi-zoom-in::before { content: map-get($bootstrap-icons-map, "zoom-in"); }
-.bi-zoom-out::before { content: map-get($bootstrap-icons-map, "zoom-out"); }
-.bi-bank::before { content: map-get($bootstrap-icons-map, "bank"); }
-.bi-bank2::before { content: map-get($bootstrap-icons-map, "bank2"); }
-.bi-bell-slash-fill::before { content: map-get($bootstrap-icons-map, "bell-slash-fill"); }
-.bi-bell-slash::before { content: map-get($bootstrap-icons-map, "bell-slash"); }
-.bi-cash-coin::before { content: map-get($bootstrap-icons-map, "cash-coin"); }
-.bi-check-lg::before { content: map-get($bootstrap-icons-map, "check-lg"); }
-.bi-coin::before { content: map-get($bootstrap-icons-map, "coin"); }
-.bi-currency-bitcoin::before { content: map-get($bootstrap-icons-map, "currency-bitcoin"); }
-.bi-currency-dollar::before { content: map-get($bootstrap-icons-map, "currency-dollar"); }
-.bi-currency-euro::before { content: map-get($bootstrap-icons-map, "currency-euro"); }
-.bi-currency-exchange::before { content: map-get($bootstrap-icons-map, "currency-exchange"); }
-.bi-currency-pound::before { content: map-get($bootstrap-icons-map, "currency-pound"); }
-.bi-currency-yen::before { content: map-get($bootstrap-icons-map, "currency-yen"); }
-.bi-dash-lg::before { content: map-get($bootstrap-icons-map, "dash-lg"); }
-.bi-exclamation-lg::before { content: map-get($bootstrap-icons-map, "exclamation-lg"); }
-.bi-file-earmark-pdf-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-pdf-fill"); }
-.bi-file-earmark-pdf::before { content: map-get($bootstrap-icons-map, "file-earmark-pdf"); }
-.bi-file-pdf-fill::before { content: map-get($bootstrap-icons-map, "file-pdf-fill"); }
-.bi-file-pdf::before { content: map-get($bootstrap-icons-map, "file-pdf"); }
-.bi-gender-ambiguous::before { content: map-get($bootstrap-icons-map, "gender-ambiguous"); }
-.bi-gender-female::before { content: map-get($bootstrap-icons-map, "gender-female"); }
-.bi-gender-male::before { content: map-get($bootstrap-icons-map, "gender-male"); }
-.bi-gender-trans::before { content: map-get($bootstrap-icons-map, "gender-trans"); }
-.bi-headset-vr::before { content: map-get($bootstrap-icons-map, "headset-vr"); }
-.bi-info-lg::before { content: map-get($bootstrap-icons-map, "info-lg"); }
-.bi-mastodon::before { content: map-get($bootstrap-icons-map, "mastodon"); }
-.bi-messenger::before { content: map-get($bootstrap-icons-map, "messenger"); }
-.bi-piggy-bank-fill::before { content: map-get($bootstrap-icons-map, "piggy-bank-fill"); }
-.bi-piggy-bank::before { content: map-get($bootstrap-icons-map, "piggy-bank"); }
-.bi-pin-map-fill::before { content: map-get($bootstrap-icons-map, "pin-map-fill"); }
-.bi-pin-map::before { content: map-get($bootstrap-icons-map, "pin-map"); }
-.bi-plus-lg::before { content: map-get($bootstrap-icons-map, "plus-lg"); }
-.bi-question-lg::before { content: map-get($bootstrap-icons-map, "question-lg"); }
-.bi-recycle::before { content: map-get($bootstrap-icons-map, "recycle"); }
-.bi-reddit::before { content: map-get($bootstrap-icons-map, "reddit"); }
-.bi-safe-fill::before { content: map-get($bootstrap-icons-map, "safe-fill"); }
-.bi-safe2-fill::before { content: map-get($bootstrap-icons-map, "safe2-fill"); }
-.bi-safe2::before { content: map-get($bootstrap-icons-map, "safe2"); }
-.bi-sd-card-fill::before { content: map-get($bootstrap-icons-map, "sd-card-fill"); }
-.bi-sd-card::before { content: map-get($bootstrap-icons-map, "sd-card"); }
-.bi-skype::before { content: map-get($bootstrap-icons-map, "skype"); }
-.bi-slash-lg::before { content: map-get($bootstrap-icons-map, "slash-lg"); }
-.bi-translate::before { content: map-get($bootstrap-icons-map, "translate"); }
-.bi-x-lg::before { content: map-get($bootstrap-icons-map, "x-lg"); }
-.bi-safe::before { content: map-get($bootstrap-icons-map, "safe"); }
-.bi-apple::before { content: map-get($bootstrap-icons-map, "apple"); }
-.bi-microsoft::before { content: map-get($bootstrap-icons-map, "microsoft"); }
-.bi-windows::before { content: map-get($bootstrap-icons-map, "windows"); }
-.bi-behance::before { content: map-get($bootstrap-icons-map, "behance"); }
-.bi-dribbble::before { content: map-get($bootstrap-icons-map, "dribbble"); }
-.bi-line::before { content: map-get($bootstrap-icons-map, "line"); }
-.bi-medium::before { content: map-get($bootstrap-icons-map, "medium"); }
-.bi-paypal::before { content: map-get($bootstrap-icons-map, "paypal"); }
-.bi-pinterest::before { content: map-get($bootstrap-icons-map, "pinterest"); }
-.bi-signal::before { content: map-get($bootstrap-icons-map, "signal"); }
-.bi-snapchat::before { content: map-get($bootstrap-icons-map, "snapchat"); }
-.bi-spotify::before { content: map-get($bootstrap-icons-map, "spotify"); }
-.bi-stack-overflow::before { content: map-get($bootstrap-icons-map, "stack-overflow"); }
-.bi-strava::before { content: map-get($bootstrap-icons-map, "strava"); }
-.bi-wordpress::before { content: map-get($bootstrap-icons-map, "wordpress"); }
-.bi-vimeo::before { content: map-get($bootstrap-icons-map, "vimeo"); }
-.bi-activity::before { content: map-get($bootstrap-icons-map, "activity"); }
-.bi-easel2-fill::before { content: map-get($bootstrap-icons-map, "easel2-fill"); }
-.bi-easel2::before { content: map-get($bootstrap-icons-map, "easel2"); }
-.bi-easel3-fill::before { content: map-get($bootstrap-icons-map, "easel3-fill"); }
-.bi-easel3::before { content: map-get($bootstrap-icons-map, "easel3"); }
-.bi-fan::before { content: map-get($bootstrap-icons-map, "fan"); }
-.bi-fingerprint::before { content: map-get($bootstrap-icons-map, "fingerprint"); }
-.bi-graph-down-arrow::before { content: map-get($bootstrap-icons-map, "graph-down-arrow"); }
-.bi-graph-up-arrow::before { content: map-get($bootstrap-icons-map, "graph-up-arrow"); }
-.bi-hypnotize::before { content: map-get($bootstrap-icons-map, "hypnotize"); }
-.bi-magic::before { content: map-get($bootstrap-icons-map, "magic"); }
-.bi-person-rolodex::before { content: map-get($bootstrap-icons-map, "person-rolodex"); }
-.bi-person-video::before { content: map-get($bootstrap-icons-map, "person-video"); }
-.bi-person-video2::before { content: map-get($bootstrap-icons-map, "person-video2"); }
-.bi-person-video3::before { content: map-get($bootstrap-icons-map, "person-video3"); }
-.bi-person-workspace::before { content: map-get($bootstrap-icons-map, "person-workspace"); }
-.bi-radioactive::before { content: map-get($bootstrap-icons-map, "radioactive"); }
-.bi-webcam-fill::before { content: map-get($bootstrap-icons-map, "webcam-fill"); }
-.bi-webcam::before { content: map-get($bootstrap-icons-map, "webcam"); }
-.bi-yin-yang::before { content: map-get($bootstrap-icons-map, "yin-yang"); }
-.bi-bandaid-fill::before { content: map-get($bootstrap-icons-map, "bandaid-fill"); }
-.bi-bandaid::before { content: map-get($bootstrap-icons-map, "bandaid"); }
-.bi-bluetooth::before { content: map-get($bootstrap-icons-map, "bluetooth"); }
-.bi-body-text::before { content: map-get($bootstrap-icons-map, "body-text"); }
-.bi-boombox::before { content: map-get($bootstrap-icons-map, "boombox"); }
-.bi-boxes::before { content: map-get($bootstrap-icons-map, "boxes"); }
-.bi-dpad-fill::before { content: map-get($bootstrap-icons-map, "dpad-fill"); }
-.bi-dpad::before { content: map-get($bootstrap-icons-map, "dpad"); }
-.bi-ear-fill::before { content: map-get($bootstrap-icons-map, "ear-fill"); }
-.bi-ear::before { content: map-get($bootstrap-icons-map, "ear"); }
-.bi-envelope-check-1::before { content: map-get($bootstrap-icons-map, "envelope-check-1"); }
-.bi-envelope-check-fill::before { content: map-get($bootstrap-icons-map, "envelope-check-fill"); }
-.bi-envelope-check::before { content: map-get($bootstrap-icons-map, "envelope-check"); }
-.bi-envelope-dash-1::before { content: map-get($bootstrap-icons-map, "envelope-dash-1"); }
-.bi-envelope-dash-fill::before { content: map-get($bootstrap-icons-map, "envelope-dash-fill"); }
-.bi-envelope-dash::before { content: map-get($bootstrap-icons-map, "envelope-dash"); }
-.bi-envelope-exclamation-1::before { content: map-get($bootstrap-icons-map, "envelope-exclamation-1"); }
-.bi-envelope-exclamation-fill::before { content: map-get($bootstrap-icons-map, "envelope-exclamation-fill"); }
-.bi-envelope-exclamation::before { content: map-get($bootstrap-icons-map, "envelope-exclamation"); }
-.bi-envelope-plus-fill::before { content: map-get($bootstrap-icons-map, "envelope-plus-fill"); }
-.bi-envelope-plus::before { content: map-get($bootstrap-icons-map, "envelope-plus"); }
-.bi-envelope-slash-1::before { content: map-get($bootstrap-icons-map, "envelope-slash-1"); }
-.bi-envelope-slash-fill::before { content: map-get($bootstrap-icons-map, "envelope-slash-fill"); }
-.bi-envelope-slash::before { content: map-get($bootstrap-icons-map, "envelope-slash"); }
-.bi-envelope-x-1::before { content: map-get($bootstrap-icons-map, "envelope-x-1"); }
-.bi-envelope-x-fill::before { content: map-get($bootstrap-icons-map, "envelope-x-fill"); }
-.bi-envelope-x::before { content: map-get($bootstrap-icons-map, "envelope-x"); }
-.bi-explicit-fill::before { content: map-get($bootstrap-icons-map, "explicit-fill"); }
-.bi-explicit::before { content: map-get($bootstrap-icons-map, "explicit"); }
-.bi-git::before { content: map-get($bootstrap-icons-map, "git"); }
-.bi-infinity::before { content: map-get($bootstrap-icons-map, "infinity"); }
-.bi-list-columns-reverse::before { content: map-get($bootstrap-icons-map, "list-columns-reverse"); }
-.bi-list-columns::before { content: map-get($bootstrap-icons-map, "list-columns"); }
-.bi-meta::before { content: map-get($bootstrap-icons-map, "meta"); }
-.bi-mortorboard-fill::before { content: map-get($bootstrap-icons-map, "mortorboard-fill"); }
-.bi-mortorboard::before { content: map-get($bootstrap-icons-map, "mortorboard"); }
-.bi-nintendo-switch::before { content: map-get($bootstrap-icons-map, "nintendo-switch"); }
-.bi-pc-display-horizontal::before { content: map-get($bootstrap-icons-map, "pc-display-horizontal"); }
-.bi-pc-display::before { content: map-get($bootstrap-icons-map, "pc-display"); }
-.bi-pc-horizontal::before { content: map-get($bootstrap-icons-map, "pc-horizontal"); }
-.bi-pc::before { content: map-get($bootstrap-icons-map, "pc"); }
-.bi-playstation::before { content: map-get($bootstrap-icons-map, "playstation"); }
-.bi-plus-slash-minus::before { content: map-get($bootstrap-icons-map, "plus-slash-minus"); }
-.bi-projector-fill::before { content: map-get($bootstrap-icons-map, "projector-fill"); }
-.bi-projector::before { content: map-get($bootstrap-icons-map, "projector"); }
-.bi-qr-code-scan::before { content: map-get($bootstrap-icons-map, "qr-code-scan"); }
-.bi-qr-code::before { content: map-get($bootstrap-icons-map, "qr-code"); }
-.bi-quora::before { content: map-get($bootstrap-icons-map, "quora"); }
-.bi-quote::before { content: map-get($bootstrap-icons-map, "quote"); }
-.bi-robot::before { content: map-get($bootstrap-icons-map, "robot"); }
-.bi-send-check-fill::before { content: map-get($bootstrap-icons-map, "send-check-fill"); }
-.bi-send-check::before { content: map-get($bootstrap-icons-map, "send-check"); }
-.bi-send-dash-fill::before { content: map-get($bootstrap-icons-map, "send-dash-fill"); }
-.bi-send-dash::before { content: map-get($bootstrap-icons-map, "send-dash"); }
-.bi-send-exclamation-1::before { content: map-get($bootstrap-icons-map, "send-exclamation-1"); }
-.bi-send-exclamation-fill::before { content: map-get($bootstrap-icons-map, "send-exclamation-fill"); }
-.bi-send-exclamation::before { content: map-get($bootstrap-icons-map, "send-exclamation"); }
-.bi-send-fill::before { content: map-get($bootstrap-icons-map, "send-fill"); }
-.bi-send-plus-fill::before { content: map-get($bootstrap-icons-map, "send-plus-fill"); }
-.bi-send-plus::before { content: map-get($bootstrap-icons-map, "send-plus"); }
-.bi-send-slash-fill::before { content: map-get($bootstrap-icons-map, "send-slash-fill"); }
-.bi-send-slash::before { content: map-get($bootstrap-icons-map, "send-slash"); }
-.bi-send-x-fill::before { content: map-get($bootstrap-icons-map, "send-x-fill"); }
-.bi-send-x::before { content: map-get($bootstrap-icons-map, "send-x"); }
-.bi-send::before { content: map-get($bootstrap-icons-map, "send"); }
-.bi-steam::before { content: map-get($bootstrap-icons-map, "steam"); }
-.bi-terminal-dash-1::before { content: map-get($bootstrap-icons-map, "terminal-dash-1"); }
-.bi-terminal-dash::before { content: map-get($bootstrap-icons-map, "terminal-dash"); }
-.bi-terminal-plus::before { content: map-get($bootstrap-icons-map, "terminal-plus"); }
-.bi-terminal-split::before { content: map-get($bootstrap-icons-map, "terminal-split"); }
-.bi-ticket-detailed-fill::before { content: map-get($bootstrap-icons-map, "ticket-detailed-fill"); }
-.bi-ticket-detailed::before { content: map-get($bootstrap-icons-map, "ticket-detailed"); }
-.bi-ticket-fill::before { content: map-get($bootstrap-icons-map, "ticket-fill"); }
-.bi-ticket-perforated-fill::before { content: map-get($bootstrap-icons-map, "ticket-perforated-fill"); }
-.bi-ticket-perforated::before { content: map-get($bootstrap-icons-map, "ticket-perforated"); }
-.bi-ticket::before { content: map-get($bootstrap-icons-map, "ticket"); }
-.bi-tiktok::before { content: map-get($bootstrap-icons-map, "tiktok"); }
-.bi-window-dash::before { content: map-get($bootstrap-icons-map, "window-dash"); }
-.bi-window-desktop::before { content: map-get($bootstrap-icons-map, "window-desktop"); }
-.bi-window-fullscreen::before { content: map-get($bootstrap-icons-map, "window-fullscreen"); }
-.bi-window-plus::before { content: map-get($bootstrap-icons-map, "window-plus"); }
-.bi-window-split::before { content: map-get($bootstrap-icons-map, "window-split"); }
-.bi-window-stack::before { content: map-get($bootstrap-icons-map, "window-stack"); }
-.bi-window-x::before { content: map-get($bootstrap-icons-map, "window-x"); }
-.bi-xbox::before { content: map-get($bootstrap-icons-map, "xbox"); }
-.bi-ethernet::before { content: map-get($bootstrap-icons-map, "ethernet"); }
-.bi-hdmi-fill::before { content: map-get($bootstrap-icons-map, "hdmi-fill"); }
-.bi-hdmi::before { content: map-get($bootstrap-icons-map, "hdmi"); }
-.bi-usb-c-fill::before { content: map-get($bootstrap-icons-map, "usb-c-fill"); }
-.bi-usb-c::before { content: map-get($bootstrap-icons-map, "usb-c"); }
-.bi-usb-fill::before { content: map-get($bootstrap-icons-map, "usb-fill"); }
-.bi-usb-plug-fill::before { content: map-get($bootstrap-icons-map, "usb-plug-fill"); }
-.bi-usb-plug::before { content: map-get($bootstrap-icons-map, "usb-plug"); }
-.bi-usb-symbol::before { content: map-get($bootstrap-icons-map, "usb-symbol"); }
-.bi-usb::before { content: map-get($bootstrap-icons-map, "usb"); }
-.bi-boombox-fill::before { content: map-get($bootstrap-icons-map, "boombox-fill"); }
-.bi-displayport-1::before { content: map-get($bootstrap-icons-map, "displayport-1"); }
-.bi-displayport::before { content: map-get($bootstrap-icons-map, "displayport"); }
-.bi-gpu-card::before { content: map-get($bootstrap-icons-map, "gpu-card"); }
-.bi-memory::before { content: map-get($bootstrap-icons-map, "memory"); }
-.bi-modem-fill::before { content: map-get($bootstrap-icons-map, "modem-fill"); }
-.bi-modem::before { content: map-get($bootstrap-icons-map, "modem"); }
-.bi-motherboard-fill::before { content: map-get($bootstrap-icons-map, "motherboard-fill"); }
-.bi-motherboard::before { content: map-get($bootstrap-icons-map, "motherboard"); }
-.bi-optical-audio-fill::before { content: map-get($bootstrap-icons-map, "optical-audio-fill"); }
-.bi-optical-audio::before { content: map-get($bootstrap-icons-map, "optical-audio"); }
-.bi-pci-card::before { content: map-get($bootstrap-icons-map, "pci-card"); }
-.bi-router-fill::before { content: map-get($bootstrap-icons-map, "router-fill"); }
-.bi-router::before { content: map-get($bootstrap-icons-map, "router"); }
-.bi-ssd-fill::before { content: map-get($bootstrap-icons-map, "ssd-fill"); }
-.bi-ssd::before { content: map-get($bootstrap-icons-map, "ssd"); }
-.bi-thunderbolt-fill::before { content: map-get($bootstrap-icons-map, "thunderbolt-fill"); }
-.bi-thunderbolt::before { content: map-get($bootstrap-icons-map, "thunderbolt"); }
-.bi-usb-drive-fill::before { content: map-get($bootstrap-icons-map, "usb-drive-fill"); }
-.bi-usb-drive::before { content: map-get($bootstrap-icons-map, "usb-drive"); }
-.bi-usb-micro-fill::before { content: map-get($bootstrap-icons-map, "usb-micro-fill"); }
-.bi-usb-micro::before { content: map-get($bootstrap-icons-map, "usb-micro"); }
-.bi-usb-mini-fill::before { content: map-get($bootstrap-icons-map, "usb-mini-fill"); }
-.bi-usb-mini::before { content: map-get($bootstrap-icons-map, "usb-mini"); }
-.bi-cloud-haze2::before { content: map-get($bootstrap-icons-map, "cloud-haze2"); }
-.bi-device-hdd-fill::before { content: map-get($bootstrap-icons-map, "device-hdd-fill"); }
-.bi-device-hdd::before { content: map-get($bootstrap-icons-map, "device-hdd"); }
-.bi-device-ssd-fill::before { content: map-get($bootstrap-icons-map, "device-ssd-fill"); }
-.bi-device-ssd::before { content: map-get($bootstrap-icons-map, "device-ssd"); }
-.bi-displayport-fill::before { content: map-get($bootstrap-icons-map, "displayport-fill"); }
-.bi-mortarboard-fill::before { content: map-get($bootstrap-icons-map, "mortarboard-fill"); }
-.bi-mortarboard::before { content: map-get($bootstrap-icons-map, "mortarboard"); }
-.bi-terminal-x::before { content: map-get($bootstrap-icons-map, "terminal-x"); }
-.bi-arrow-through-heart-fill::before { content: map-get($bootstrap-icons-map, "arrow-through-heart-fill"); }
-.bi-arrow-through-heart::before { content: map-get($bootstrap-icons-map, "arrow-through-heart"); }
-.bi-badge-sd-fill::before { content: map-get($bootstrap-icons-map, "badge-sd-fill"); }
-.bi-badge-sd::before { content: map-get($bootstrap-icons-map, "badge-sd"); }
-.bi-bag-heart-fill::before { content: map-get($bootstrap-icons-map, "bag-heart-fill"); }
-.bi-bag-heart::before { content: map-get($bootstrap-icons-map, "bag-heart"); }
-.bi-balloon-fill::before { content: map-get($bootstrap-icons-map, "balloon-fill"); }
-.bi-balloon-heart-fill::before { content: map-get($bootstrap-icons-map, "balloon-heart-fill"); }
-.bi-balloon-heart::before { content: map-get($bootstrap-icons-map, "balloon-heart"); }
-.bi-balloon::before { content: map-get($bootstrap-icons-map, "balloon"); }
-.bi-box2-fill::before { content: map-get($bootstrap-icons-map, "box2-fill"); }
-.bi-box2-heart-fill::before { content: map-get($bootstrap-icons-map, "box2-heart-fill"); }
-.bi-box2-heart::before { content: map-get($bootstrap-icons-map, "box2-heart"); }
-.bi-box2::before { content: map-get($bootstrap-icons-map, "box2"); }
-.bi-braces-asterisk::before { content: map-get($bootstrap-icons-map, "braces-asterisk"); }
-.bi-calendar-heart-fill::before { content: map-get($bootstrap-icons-map, "calendar-heart-fill"); }
-.bi-calendar-heart::before { content: map-get($bootstrap-icons-map, "calendar-heart"); }
-.bi-calendar2-heart-fill::before { content: map-get($bootstrap-icons-map, "calendar2-heart-fill"); }
-.bi-calendar2-heart::before { content: map-get($bootstrap-icons-map, "calendar2-heart"); }
-.bi-chat-heart-fill::before { content: map-get($bootstrap-icons-map, "chat-heart-fill"); }
-.bi-chat-heart::before { content: map-get($bootstrap-icons-map, "chat-heart"); }
-.bi-chat-left-heart-fill::before { content: map-get($bootstrap-icons-map, "chat-left-heart-fill"); }
-.bi-chat-left-heart::before { content: map-get($bootstrap-icons-map, "chat-left-heart"); }
-.bi-chat-right-heart-fill::before { content: map-get($bootstrap-icons-map, "chat-right-heart-fill"); }
-.bi-chat-right-heart::before { content: map-get($bootstrap-icons-map, "chat-right-heart"); }
-.bi-chat-square-heart-fill::before { content: map-get($bootstrap-icons-map, "chat-square-heart-fill"); }
-.bi-chat-square-heart::before { content: map-get($bootstrap-icons-map, "chat-square-heart"); }
-.bi-clipboard-check-fill::before { content: map-get($bootstrap-icons-map, "clipboard-check-fill"); }
-.bi-clipboard-data-fill::before { content: map-get($bootstrap-icons-map, "clipboard-data-fill"); }
-.bi-clipboard-fill::before { content: map-get($bootstrap-icons-map, "clipboard-fill"); }
-.bi-clipboard-heart-fill::before { content: map-get($bootstrap-icons-map, "clipboard-heart-fill"); }
-.bi-clipboard-heart::before { content: map-get($bootstrap-icons-map, "clipboard-heart"); }
-.bi-clipboard-minus-fill::before { content: map-get($bootstrap-icons-map, "clipboard-minus-fill"); }
-.bi-clipboard-plus-fill::before { content: map-get($bootstrap-icons-map, "clipboard-plus-fill"); }
-.bi-clipboard-pulse::before { content: map-get($bootstrap-icons-map, "clipboard-pulse"); }
-.bi-clipboard-x-fill::before { content: map-get($bootstrap-icons-map, "clipboard-x-fill"); }
-.bi-clipboard2-check-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-check-fill"); }
-.bi-clipboard2-check::before { content: map-get($bootstrap-icons-map, "clipboard2-check"); }
-.bi-clipboard2-data-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-data-fill"); }
-.bi-clipboard2-data::before { content: map-get($bootstrap-icons-map, "clipboard2-data"); }
-.bi-clipboard2-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-fill"); }
-.bi-clipboard2-heart-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-heart-fill"); }
-.bi-clipboard2-heart::before { content: map-get($bootstrap-icons-map, "clipboard2-heart"); }
-.bi-clipboard2-minus-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-minus-fill"); }
-.bi-clipboard2-minus::before { content: map-get($bootstrap-icons-map, "clipboard2-minus"); }
-.bi-clipboard2-plus-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-plus-fill"); }
-.bi-clipboard2-plus::before { content: map-get($bootstrap-icons-map, "clipboard2-plus"); }
-.bi-clipboard2-pulse-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-pulse-fill"); }
-.bi-clipboard2-pulse::before { content: map-get($bootstrap-icons-map, "clipboard2-pulse"); }
-.bi-clipboard2-x-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-x-fill"); }
-.bi-clipboard2-x::before { content: map-get($bootstrap-icons-map, "clipboard2-x"); }
-.bi-clipboard2::before { content: map-get($bootstrap-icons-map, "clipboard2"); }
-.bi-emoji-kiss-fill::before { content: map-get($bootstrap-icons-map, "emoji-kiss-fill"); }
-.bi-emoji-kiss::before { content: map-get($bootstrap-icons-map, "emoji-kiss"); }
-.bi-envelope-heart-fill::before { content: map-get($bootstrap-icons-map, "envelope-heart-fill"); }
-.bi-envelope-heart::before { content: map-get($bootstrap-icons-map, "envelope-heart"); }
-.bi-envelope-open-heart-fill::before { content: map-get($bootstrap-icons-map, "envelope-open-heart-fill"); }
-.bi-envelope-open-heart::before { content: map-get($bootstrap-icons-map, "envelope-open-heart"); }
-.bi-envelope-paper-fill::before { content: map-get($bootstrap-icons-map, "envelope-paper-fill"); }
-.bi-envelope-paper-heart-fill::before { content: map-get($bootstrap-icons-map, "envelope-paper-heart-fill"); }
-.bi-envelope-paper-heart::before { content: map-get($bootstrap-icons-map, "envelope-paper-heart"); }
-.bi-envelope-paper::before { content: map-get($bootstrap-icons-map, "envelope-paper"); }
-.bi-filetype-aac::before { content: map-get($bootstrap-icons-map, "filetype-aac"); }
-.bi-filetype-ai::before { content: map-get($bootstrap-icons-map, "filetype-ai"); }
-.bi-filetype-bmp::before { content: map-get($bootstrap-icons-map, "filetype-bmp"); }
-.bi-filetype-cs::before { content: map-get($bootstrap-icons-map, "filetype-cs"); }
-.bi-filetype-css::before { content: map-get($bootstrap-icons-map, "filetype-css"); }
-.bi-filetype-csv::before { content: map-get($bootstrap-icons-map, "filetype-csv"); }
-.bi-filetype-doc::before { content: map-get($bootstrap-icons-map, "filetype-doc"); }
-.bi-filetype-docx::before { content: map-get($bootstrap-icons-map, "filetype-docx"); }
-.bi-filetype-exe::before { content: map-get($bootstrap-icons-map, "filetype-exe"); }
-.bi-filetype-gif::before { content: map-get($bootstrap-icons-map, "filetype-gif"); }
-.bi-filetype-heic::before { content: map-get($bootstrap-icons-map, "filetype-heic"); }
-.bi-filetype-html::before { content: map-get($bootstrap-icons-map, "filetype-html"); }
-.bi-filetype-java::before { content: map-get($bootstrap-icons-map, "filetype-java"); }
-.bi-filetype-jpg::before { content: map-get($bootstrap-icons-map, "filetype-jpg"); }
-.bi-filetype-js::before { content: map-get($bootstrap-icons-map, "filetype-js"); }
-.bi-filetype-jsx::before { content: map-get($bootstrap-icons-map, "filetype-jsx"); }
-.bi-filetype-key::before { content: map-get($bootstrap-icons-map, "filetype-key"); }
-.bi-filetype-m4p::before { content: map-get($bootstrap-icons-map, "filetype-m4p"); }
-.bi-filetype-md::before { content: map-get($bootstrap-icons-map, "filetype-md"); }
-.bi-filetype-mdx::before { content: map-get($bootstrap-icons-map, "filetype-mdx"); }
-.bi-filetype-mov::before { content: map-get($bootstrap-icons-map, "filetype-mov"); }
-.bi-filetype-mp3::before { content: map-get($bootstrap-icons-map, "filetype-mp3"); }
-.bi-filetype-mp4::before { content: map-get($bootstrap-icons-map, "filetype-mp4"); }
-.bi-filetype-otf::before { content: map-get($bootstrap-icons-map, "filetype-otf"); }
-.bi-filetype-pdf::before { content: map-get($bootstrap-icons-map, "filetype-pdf"); }
-.bi-filetype-php::before { content: map-get($bootstrap-icons-map, "filetype-php"); }
-.bi-filetype-png::before { content: map-get($bootstrap-icons-map, "filetype-png"); }
-.bi-filetype-ppt-1::before { content: map-get($bootstrap-icons-map, "filetype-ppt-1"); }
-.bi-filetype-ppt::before { content: map-get($bootstrap-icons-map, "filetype-ppt"); }
-.bi-filetype-psd::before { content: map-get($bootstrap-icons-map, "filetype-psd"); }
-.bi-filetype-py::before { content: map-get($bootstrap-icons-map, "filetype-py"); }
-.bi-filetype-raw::before { content: map-get($bootstrap-icons-map, "filetype-raw"); }
-.bi-filetype-rb::before { content: map-get($bootstrap-icons-map, "filetype-rb"); }
-.bi-filetype-sass::before { content: map-get($bootstrap-icons-map, "filetype-sass"); }
-.bi-filetype-scss::before { content: map-get($bootstrap-icons-map, "filetype-scss"); }
-.bi-filetype-sh::before { content: map-get($bootstrap-icons-map, "filetype-sh"); }
-.bi-filetype-svg::before { content: map-get($bootstrap-icons-map, "filetype-svg"); }
-.bi-filetype-tiff::before { content: map-get($bootstrap-icons-map, "filetype-tiff"); }
-.bi-filetype-tsx::before { content: map-get($bootstrap-icons-map, "filetype-tsx"); }
-.bi-filetype-ttf::before { content: map-get($bootstrap-icons-map, "filetype-ttf"); }
-.bi-filetype-txt::before { content: map-get($bootstrap-icons-map, "filetype-txt"); }
-.bi-filetype-wav::before { content: map-get($bootstrap-icons-map, "filetype-wav"); }
-.bi-filetype-woff::before { content: map-get($bootstrap-icons-map, "filetype-woff"); }
-.bi-filetype-xls-1::before { content: map-get($bootstrap-icons-map, "filetype-xls-1"); }
-.bi-filetype-xls::before { content: map-get($bootstrap-icons-map, "filetype-xls"); }
-.bi-filetype-xml::before { content: map-get($bootstrap-icons-map, "filetype-xml"); }
-.bi-filetype-yml::before { content: map-get($bootstrap-icons-map, "filetype-yml"); }
-.bi-heart-arrow::before { content: map-get($bootstrap-icons-map, "heart-arrow"); }
-.bi-heart-pulse-fill::before { content: map-get($bootstrap-icons-map, "heart-pulse-fill"); }
-.bi-heart-pulse::before { content: map-get($bootstrap-icons-map, "heart-pulse"); }
-.bi-heartbreak-fill::before { content: map-get($bootstrap-icons-map, "heartbreak-fill"); }
-.bi-heartbreak::before { content: map-get($bootstrap-icons-map, "heartbreak"); }
-.bi-hearts::before { content: map-get($bootstrap-icons-map, "hearts"); }
-.bi-hospital-fill::before { content: map-get($bootstrap-icons-map, "hospital-fill"); }
-.bi-hospital::before { content: map-get($bootstrap-icons-map, "hospital"); }
-.bi-house-heart-fill::before { content: map-get($bootstrap-icons-map, "house-heart-fill"); }
-.bi-house-heart::before { content: map-get($bootstrap-icons-map, "house-heart"); }
-.bi-incognito::before { content: map-get($bootstrap-icons-map, "incognito"); }
-.bi-magnet-fill::before { content: map-get($bootstrap-icons-map, "magnet-fill"); }
-.bi-magnet::before { content: map-get($bootstrap-icons-map, "magnet"); }
-.bi-person-heart::before { content: map-get($bootstrap-icons-map, "person-heart"); }
-.bi-person-hearts::before { content: map-get($bootstrap-icons-map, "person-hearts"); }
-.bi-phone-flip::before { content: map-get($bootstrap-icons-map, "phone-flip"); }
-.bi-plugin::before { content: map-get($bootstrap-icons-map, "plugin"); }
-.bi-postage-fill::before { content: map-get($bootstrap-icons-map, "postage-fill"); }
-.bi-postage-heart-fill::before { content: map-get($bootstrap-icons-map, "postage-heart-fill"); }
-.bi-postage-heart::before { content: map-get($bootstrap-icons-map, "postage-heart"); }
-.bi-postage::before { content: map-get($bootstrap-icons-map, "postage"); }
-.bi-postcard-fill::before { content: map-get($bootstrap-icons-map, "postcard-fill"); }
-.bi-postcard-heart-fill::before { content: map-get($bootstrap-icons-map, "postcard-heart-fill"); }
-.bi-postcard-heart::before { content: map-get($bootstrap-icons-map, "postcard-heart"); }
-.bi-postcard::before { content: map-get($bootstrap-icons-map, "postcard"); }
-.bi-search-heart-fill::before { content: map-get($bootstrap-icons-map, "search-heart-fill"); }
-.bi-search-heart::before { content: map-get($bootstrap-icons-map, "search-heart"); }
-.bi-sliders2-vertical::before { content: map-get($bootstrap-icons-map, "sliders2-vertical"); }
-.bi-sliders2::before { content: map-get($bootstrap-icons-map, "sliders2"); }
-.bi-trash3-fill::before { content: map-get($bootstrap-icons-map, "trash3-fill"); }
-.bi-trash3::before { content: map-get($bootstrap-icons-map, "trash3"); }
-.bi-valentine::before { content: map-get($bootstrap-icons-map, "valentine"); }
-.bi-valentine2::before { content: map-get($bootstrap-icons-map, "valentine2"); }
-.bi-wrench-adjustable-circle-fill::before { content: map-get($bootstrap-icons-map, "wrench-adjustable-circle-fill"); }
-.bi-wrench-adjustable-circle::before { content: map-get($bootstrap-icons-map, "wrench-adjustable-circle"); }
-.bi-wrench-adjustable::before { content: map-get($bootstrap-icons-map, "wrench-adjustable"); }
-.bi-filetype-json::before { content: map-get($bootstrap-icons-map, "filetype-json"); }
-.bi-filetype-pptx::before { content: map-get($bootstrap-icons-map, "filetype-pptx"); }
-.bi-filetype-xlsx::before { content: map-get($bootstrap-icons-map, "filetype-xlsx"); }
+@each $icon, $codepoint in $bootstrap-icons-map {
+ .bi-#{$icon}::before { content: $codepoint; }
+}
diff --git a/resources/beike/shop/default/css/bootstrap/bootstrap.scss b/resources/beike/shop/default/css/bootstrap/bootstrap.scss
index d3f60e04..7f9d5fef 100644
--- a/resources/beike/shop/default/css/bootstrap/bootstrap.scss
+++ b/resources/beike/shop/default/css/bootstrap/bootstrap.scss
@@ -65,15 +65,29 @@ $form-floating-height: 50px;
$dropdown-border-color: rgba(0, 0, 0, 0.1);
$dropdown-item-padding-y: .4rem;
-
+$dropdown-bg :#fff;
$card-border-width: 0;
+$card-bg: #fff;
$alert-padding-y: 0.5rem;
$form-feedback-icon-valid: none;
$form-feedback-icon-valid-color: inherit;
+$pagination-border-width: 0;
+$pagination-bg: #f4f4f5;
+$pagination-color: #606266;
+$pagination-border-radius: 2px;
+$pagination-disabled-bg: $pagination-bg;
+$pagination-disabled-color: #c0c4cc;
+$pagination-hover-color: $primary;
+$pagination-padding-x: 4px;
+$pagination-padding-y: .3rem;
+$pagination-focus-color: #606266;
+
+$table-bg: transparent;
+
// $dropdown-divider-bg: rgba(0, 0, 0, 0.1);
@import './bootstrap-icons';
@import 'node_modules/bootstrap/scss/bootstrap';
@@ -164,4 +178,16 @@ $form-feedback-icon-valid-color: inherit;
}
}
}
+}
+
+.pagination {
+ > li {
+ margin: 0 5px;
+ font-weight: bold;
+ a, span {
+ text-align: center;
+ border-radius: 2px !important;
+ min-width: 30px;
+ }
+ }
}
\ No newline at end of file
diff --git a/resources/beike/shop/default/css/footer.scss b/resources/beike/shop/default/css/footer.scss
index 29a47325..d6e46c54 100644
--- a/resources/beike/shop/default/css/footer.scss
+++ b/resources/beike/shop/default/css/footer.scss
@@ -31,6 +31,7 @@ footer {
.icon {
width: 34px;
+ flex: 0 0 34px;
margin-right: 14px;
}
@@ -89,9 +90,5 @@ footer {
@media (max-width:768px) {
padding: 10px 0;
}
-
- .right-img {
- max-height: 42px;
- }
}
}
\ No newline at end of file
diff --git a/resources/beike/shop/default/css/global.scss b/resources/beike/shop/default/css/global.scss
index 52ea837a..ba02ca87 100644
--- a/resources/beike/shop/default/css/global.scss
+++ b/resources/beike/shop/default/css/global.scss
@@ -100,6 +100,7 @@ h1,h2,h3, h4, h5, h6, b, strong {
img {
max-width: 100%;
+ max-height: 100%;
height: auto;
}
@@ -321,4 +322,52 @@ img {
padding-top: .8rem;
padding-bottom: .8rem;
}
+}
+
+// 溢出隐藏 显示省略号
+.text-ellipsis {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ // 加一个 line
+ &.line-2 {
+ white-space: normal;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 2;
+ }
+
+ &.line-3 {
+ white-space: normal;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 3;
+ }
+}
+
+.mobile-paginator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ .input-group {
+ max-width: 60px;
+ margin: 0 10px;
+
+ .input-group-text {
+ padding: 0.46rem 0.56rem;
+ }
+
+ #mb-page-input {
+ padding: 0.46rem 0.26rem;
+ text-align: center;
+ }
+ }
+
+ .btn {
+ border: 1px solid var(--bs-border-color);
+ &:active {
+ background-color: #eee;
+ }
+ }
}
\ No newline at end of file
diff --git a/resources/beike/shop/default/css/header.scss b/resources/beike/shop/default/css/header.scss
index adcc30f5..05ff88fc 100644
--- a/resources/beike/shop/default/css/header.scss
+++ b/resources/beike/shop/default/css/header.scss
@@ -9,32 +9,25 @@
*/
header {
- // box-shadow: 0px 1px 10px rgba(0, 0, 0, .04);
background: #fff;
body:not(.page-home) & {
box-shadow: 0 6px 12px 0 rgba(0, 0, 0, .04);
- // border-bottom: 1px solid #e5e5e5;
}
.top-wrap {
- // padding: 10px;
height: 40px;
- // max-height: 50px;
background: #F7F8FA;
display: flex;
- }
- .top-wrap, .header-content {
.dropdown {
&:hover {
background-color: #fff;
.dropdown-menu {
- margin: 0;
display: block;
- box-shadow: 0 0 15px rgb(0, 0, 0, .1);
border: none;
+ box-shadow: 0 0 15px rgb(0, 0, 0, .1);
&.dropdown-menu-end {
right: 0;
@@ -44,10 +37,42 @@ header {
}
}
+ .header-content {
+ .nav-item {
+ &:hover {
+ > a {
+ color: $primary;
+ }
+ }
+ }
+
+ .dropdown {
+ .dropdown-menu {
+ border: none;
+ left: 50%;
+ visibility: hidden;
+ opacity: 0;
+ display: block;
+ transform-origin: top center;
+ transition: all .2s ease-in-out;
+ transform: translate(-50%, 0.5rem);
+ box-shadow: 0 0 15px rgb(0, 0, 0, .1);
+ }
+
+ &:hover {
+ .dropdown-menu {
+ opacity: 1;
+ visibility: visible;
+ transform: translate(-50%);
+ }
+ }
+ }
+ }
+
.header-content {
position: relative;
background-color: #fff;
-
+
> .container {
display: flex;
align-items: center;
@@ -59,36 +84,6 @@ header {
max-width: 1140px;
}
- @media (min-width: 1200px) {
- .navbar-nav {
- .dropdown {
-
- &.position-static >.dropdown-menu {
- // top: 100%;
- }
-
- &:hover {
- .dropdown-menu {
- opacity: 1;
- visibility: visible;
- transform: translate(-50%);
- }
- }
-
- >.dropdown-menu {
- left: 50%;
- transform: translate(-50%, 0.5rem);
- transition: all .2s ease-in-out;
- transition-property: visibility,transform,opacity;
- visibility: hidden;
- opacity: 0;
- display: block;
- transform-origin: top center;
- }
- }
- }
- }
-
> .navbar-nav {
> .nav-item {
background-color: transparent;
@@ -378,13 +373,30 @@ header {
}
}
- .accordion-collapse {
- padding: 10px;
+ > .accordion-collapse {
+ padding: 0 10px;
border-top: 1px solid #e5e5e5;
.children-group {
- .group-name {
- margin-bottom: 4px;
+ .children-title {
+ height: 44px;
+ span {
+ margin-right: -10px;
+ width: 44px;
+ height: 42px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ &:active {
+ background-color: #eee;
+ }
+
+ &[aria-expanded="true"] {
+ i::before {
+ content: "\F63B";
+ }
+ }
+ }
}
.nav {
diff --git a/resources/beike/shop/default/css/module/module-image-plus.scss b/resources/beike/shop/default/css/module/module-image-plus.scss
index 67713cba..ada5771a 100644
--- a/resources/beike/shop/default/css/module/module-image-plus.scss
+++ b/resources/beike/shop/default/css/module/module-image-plus.scss
@@ -14,21 +14,6 @@
padding-left: 0;
}
- a {
- overflow: hidden;
- display: block;
-
- img {
- transition: .3s ease-in-out;
- }
-
- &:hover {
- img {
- transform: rotate(6deg) scale(1.3);
- }
- }
- }
-
.module-image-plus-top {
display: flex;
@@ -47,4 +32,21 @@
padding-right: 0;
padding-left: 0;
}
+}
+
+.banner-magnify-hover {
+ .image-wrap {
+ overflow: hidden;
+ display: block;
+
+ img {
+ transition: .3s ease-in-out;
+ }
+
+ &:hover {
+ img {
+ transform: rotate(6deg) scale(1.3);
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/resources/beike/shop/default/css/page-account-address.scss b/resources/beike/shop/default/css/page-account-address.scss
index 78f558eb..f1d9e547 100644
--- a/resources/beike/shop/default/css/page-account-address.scss
+++ b/resources/beike/shop/default/css/page-account-address.scss
@@ -12,14 +12,15 @@ body.page-account-address, body.page-checkout {
.addresses-wrap {
.item {
position: relative;
- padding: 14px 14px 14px 18px;
+ padding: 14px;
margin-bottom: 1.3rem;
- border: 1px solid #e8e8e8;
- height: 130px;
+ border: 1px solid #e5e5e5;
+ height: 140px;
cursor: pointer;
@media (max-width: 768px) {
- padding: 10px 10px 10px 14px;
+ padding: 10px;
+ height: auto;
}
&:hover {
@@ -58,6 +59,7 @@ body.page-account-address, body.page-checkout {
.zipcode {
margin-bottom: .3rem;
+ min-height: 20px;
}
.address-info {
@@ -67,13 +69,11 @@ body.page-account-address, body.page-checkout {
}
.address-bottom {
+ min-height: 28px;
display: flex;
align-items: center; // flex-start | center
justify-content: space-between; // flex-end | center | space-between
// flex-wrap: wrap;
- a {
- color: #2d68a8;
- }
}
}
}
diff --git a/resources/beike/shop/default/css/page-checkout.scss b/resources/beike/shop/default/css/page-checkout.scss
index 48272ea9..bd1efce2 100644
--- a/resources/beike/shop/default/css/page-checkout.scss
+++ b/resources/beike/shop/default/css/page-checkout.scss
@@ -170,9 +170,8 @@ body.page-checkout, body.page-bk-stripe {
align-items: center; // flex-start | center
padding-right: 4px;
- img {
- width: 40px;
- margin-right: 10px;
+ .img {
+ flex: 0 0 40px;
}
.quantity {
diff --git a/resources/beike/shop/default/css/page-product.scss b/resources/beike/shop/default/css/page-product.scss
index d17e935e..983ee672 100644
--- a/resources/beike/shop/default/css/page-product.scss
+++ b/resources/beike/shop/default/css/page-product.scss
@@ -23,6 +23,8 @@ body.page-product {
}
.product-image {
+ position: relative;
+
#swiper {
height: 250px;
@media (min-width: 480px) {
@@ -117,6 +119,68 @@ body.page-product {
.right {
border: 1px solid #eee;
+ position: relative;
+ }
+
+ #product-video {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ z-index: 99;
+ display: none;
+ }
+
+ .open-video {
+ position: absolute;
+ bottom: 10px;
+ z-index: 99;
+ line-height: 1;
+ cursor: pointer;
+
+ @media (min-width: 768px) {
+ transform: translateX(-50%);
+ left: 50%;
+ }
+
+ @media (max-width: 768px) {
+ right: 10px;
+ }
+
+ &:hover {
+ i {
+ color: #fff;
+ background-color: rgba(0, 0, 0, 0.648);
+ }
+ }
+
+ i {
+ font-size: 3.5rem;
+ line-height: 1;
+ border-radius: 50%;
+ font-weight: 400;
+ display: inline-block;
+ color: rgba(255, 255, 255, 0.948);
+ background-color: rgba(0, 0, 0, 0.348);
+
+ @media (max-width: 768px) {
+ font-size: 2.5rem;
+ }
+ }
+ }
+
+ .close-video {
+ position: absolute;
+ top: 6px;
+ right: 10px;
+ z-index: 9999;
+ color: #aaa;
+ font-size: 30px;
+ cursor: pointer;
+ &:hover {
+ color: #fff;
+ }
}
}
diff --git a/resources/beike/shop/default/js/app.js b/resources/beike/shop/default/js/app.js
index 39650e99..9776a8b2 100644
--- a/resources/beike/shop/default/js/app.js
+++ b/resources/beike/shop/default/js/app.js
@@ -3,7 +3,7 @@
* @link https://beikeshop.com
* @Author pu shuo
* @Date 2022-08-29 17:32:51
- * @LastEditTime 2023-02-02 11:06:01
+ * @LastEditTime 2023-05-18 10:18:09
*/
import http from "../../../../js/http";
@@ -19,22 +19,6 @@ import './header'
import './bootstrap-validation'
$(document).ready(function ($) {
- $(document).on('click', '.offcanvas-products-delete', function () {
- const id = $(this).data('id');
-
- $http.delete(`carts/${id}`).then((res) => {
- $(this).parents('.product-list').remove();
- if (!res.data.quantity) {
- $('.cart-badge-quantity').hide();
- } else {
- $('.cart-badge-quantity').show().html(res.data.quantity > 99 ? '99+' : res.data.quantity);
- }
-
- $('.offcanvas-right-cart-count').text(res.data.quantity);
- $('.offcanvas-right-cart-amount').text(res.data.amount_format);
- })
- })
-
if ($(window).width() > 992 && $('.x-fixed-top').length) {
$('.x-fixed-top').scrollToFixed({
zIndex: 999,
diff --git a/resources/beike/shop/default/js/common.js b/resources/beike/shop/default/js/common.js
index c8c36b52..59302043 100644
--- a/resources/beike/shop/default/js/common.js
+++ b/resources/beike/shop/default/js/common.js
@@ -3,7 +3,7 @@
* @link https://beikeshop.com
* @Author pu shuo
* @Date 2022-09-09 19:16:39
- * @LastEditTime 2023-02-13 09:26:05
+ * @LastEditTime 2023-05-18 09:02:44
*/
export default {
@@ -31,7 +31,7 @@ export default {
* @param {*} isBuyNow 是否立即购买
* @return {*} 返回Promise
*/
- addCart({sku_id, quantity = 1, isBuyNow = false}, event) {
+ addCart({sku_id, quantity = 1, isBuyNow = false}, event, callback) {
if (!config.isLogin && !config.guestCheckout) {
this.openLogin()
return;
@@ -46,8 +46,9 @@ export default {
$http.post('/carts', {sku_id, quantity, buy_now: isBuyNow}, {hload: !!event}).then((res) => {
this.getCarts();
layer.msg(res.message)
- if (isBuyNow) {
- location.href = 'checkout'
+
+ if (callback) {
+ callback(res)
}
}).finally(() => {$btn.html(btnHtml).prop('disabled', false)})
},
@@ -96,6 +97,18 @@ export default {
});
},
+ productQuickView(id, callback) {
+ layer.open({
+ type: 2,
+ title: '',
+ shadeClose: true,
+ scrollbar: false,
+ area: ['1000px', '600px'],
+ skin: 'login-pop-box',
+ content: `products/${id}?iframe=true`
+ });
+ },
+
getQueryString(name, defaultValue) {
const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
const r = window.location.search.substr(1).match(reg);
@@ -129,4 +142,35 @@ export default {
+ ',width=' + iWidth + ',innerWidth=' + iWidth + ',top=' + iTop + ',left=' + iLeft
+ ',toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no');
},
+
+ // 判断 js 插件是否加载,如果未加载则往页面添加 script 标签
+ loadScript(url, callback) {
+ // 判断页面中是否已经存在指定的 js 插件
+ if (!document.querySelector(`script[src="${url}"]`)) {
+ // 创建一个新的 script 标签
+ const script = document.createElement('script');
+ script.src = url;
+ // 将 script 标签添加到 head 标签中
+ document.head.appendChild(script);
+ // 监听 js 插件加载完成事件
+ script.onload = function () {
+ callback && callback();
+ }
+ } else {
+ callback && callback();
+ }
+ },
+
+ // 判断 css 插件是否加载,如果未加载则往页面添加 link 标签
+ loadStyle(url) {
+ // 判断页面中是否已经存在指定的 css 插件
+ if (!document.querySelector(`link[href="${url}"]`)) {
+ // 创建一个新的 link 标签
+ const link = document.createElement('link');
+ link.href = url;
+ link.rel = 'stylesheet';
+ // 将 link 标签添加到 head 标签中
+ document.head.appendChild(link);
+ }
+ }
}
diff --git a/resources/beike/shop/default/js/header.js b/resources/beike/shop/default/js/header.js
index 18950652..9a7c9a21 100644
--- a/resources/beike/shop/default/js/header.js
+++ b/resources/beike/shop/default/js/header.js
@@ -3,7 +3,7 @@
* @link https://beikeshop.com
* @Author pu shuo
* @Date 2022-08-16 18:47:18
- * @LastEditTime 2023-03-16 17:30:20
+ * @LastEditTime 2023-05-18 10:27:58
*/
$(function () {
@@ -22,6 +22,35 @@ $(function () {
});
}
+ // 购物车侧边栏弹出
+ $(document).on("click", ".btn-right-cart", function () {
+ const currentUrl = window.location.pathname;
+ if (currentUrl == '/checkout' || currentUrl == '/carts') {
+ return;
+ }
+
+ const offcanvasRightCart = new bootstrap.Offcanvas('#offcanvas-right-cart')
+ offcanvasRightCart.show()
+ });
+
+ // 侧边栏购物车删除商品
+ $(document).on('click', '.offcanvas-products-delete', function () {
+ const id = $(this).data('id');
+
+ $http.delete(`carts/${id}`).then((res) => {
+ $(this).parents('.product-list').remove();
+ if (!res.data.quantity) {
+ $('.cart-badge-quantity').hide();
+ $('.empty-cart').removeClass('d-none');
+ } else {
+ $('.cart-badge-quantity').show().html(res.data.quantity > 99 ? '99+' : res.data.quantity);
+ }
+
+ $('.offcanvas-right-cart-count').text(res.data.quantity);
+ $('.offcanvas-right-cart-amount').text(res.data.amount_format);
+ })
+ })
+
// 响应式下弹窗菜单交互
$(document).on("click", ".mobile-open-menu", function () {
const offcanvasMobileMenu = new bootstrap.Offcanvas('#offcanvas-mobile-menu')
diff --git a/resources/js/http.js b/resources/js/http.js
index 099bfe67..c92c4dae 100644
--- a/resources/js/http.js
+++ b/resources/js/http.js
@@ -3,7 +3,7 @@
* @link https://beikeshop.com
* @Author pu shuo
* @Date 2022-08-02 19:19:52
- * @LastEditTime 2022-09-16 20:58:16
+ * @LastEditTime 2023-05-29 18:56:35
*/
window.axios = require('axios');
@@ -25,8 +25,8 @@ export default {
* @param url 接口路由
* @returns {AxiosPromise}
*/
- get (url, params, {hmsg, hload}={}) {
- return this.request('get', url, params = params, {hmsg, hload});
+ get (url, params, {hmsg, hload, base}={}) {
+ return this.request('get', url, params = params, {hmsg, hload, base});
},
/**
@@ -37,8 +37,8 @@ export default {
* @returns {AxiosPromise}
*/
- post (url, params, {hmsg, hload}={}) {
- return this.request('post', url, params, {hmsg, hload});
+ post (url, params, {hmsg, hload, base}={}) {
+ return this.request('post', url, params, {hmsg, hload, base});
},
/**
@@ -48,8 +48,8 @@ export default {
* @returns {Promise}
*/
- delete (url, params, {hmsg, hload}={}) {
- return this.request('delete', url, params, {hmsg, hload});
+ delete (url, params, {hmsg, hload, base}={}) {
+ return this.request('delete', url, params, {hmsg, hload, base});
},
/**
@@ -59,8 +59,8 @@ export default {
* @returns {Promise}
*/
- put (url, params, {hmsg, hload}={}) {
- return this.request('put', url, params, {hmsg, hload});
+ put (url, params, {hmsg, hload, base}={}) {
+ return this.request('put', url, params, {hmsg, hload, base});
},
@@ -73,11 +73,15 @@ export default {
* @returns {Promise}
*/
// 错误和失败信息都在这里进行处理,界面中调用的时候只处理正确数据即可
- request(method, url, params = {}, {hmsg, hload} = {}) {
+ request(method, url, params = {}, {hmsg, hload, base} = {}) {
if (!hload) {
layer.load(2, {shade: [0.3,'#fff'] })
}
+ if (base) {
+ axios.defaults.baseURL = base;
+ }
+
return new Promise((resolve, reject) => {
axios({method: method, url: url, [method == 'get' ? 'params' : 'data']: params}).then((res) => {
if (res) {
diff --git a/resources/lang/de/admin/common.php b/resources/lang/de/admin/common.php
index 34c2dadc..5090f5c5 100644
--- a/resources/lang/de/admin/common.php
+++ b/resources/lang/de/admin/common.php
@@ -22,30 +22,30 @@ return [
'has_no_permission' => 'Sie sind nicht berechtigt, auf diese Seite zuzugreifen, wenden Sie sich bitte an Ihren Systemadministrator.',
// header
- 'home' => 'Startseite verwalten',
- 'order' => 'Auftragsverwaltung',
- 'rma' => 'Kundendienstverwaltung',
- 'rma_reason' => 'Rücksendegrundverwaltung',
- 'product' => 'Produktmanagement',
+ 'home' => 'Titelseite',
+ 'order' => 'Befehl',
+ 'rma' => 'Kundendienst',
+ 'rma_reason' => 'Rücksendegrund',
+ 'product' => 'Produkt',
'brand' => 'Markenführung',
'attribute' => 'attribute',
'attribute_group' => 'attribute group',
'category' => 'category management',
- 'customer_group' => 'Kundengruppenverwaltung',
- 'customer' => 'Kundenverwaltung',
- 'page' => 'Inhaltsverwaltung',
+ 'customer_group' => 'Kundengruppen',
+ 'customer' => 'Kunden',
+ 'page' => 'Inhalts',
'page_category' => 'Page Category',
- 'setting' => 'system settings',
- 'plugin' => 'plugin-verwaltung',
+ 'setting' => 'System',
+ 'plugin' => 'plugin',
'admin_user' => 'Backend-Benutzer',
'admin_role' => 'Benutzerrolle',
'region' => 'Regionsgruppierung',
- 'tax_rate' => 'Steuersatzverwaltung',
- 'tax_class' => 'Steuerverwaltung',
- 'currency' => 'Währungsverwaltung',
- 'language' => 'Sprachverwaltung',
- 'zone' => 'Provinzverwaltung',
- 'country' => 'Landesverwaltung',
+ 'tax_rate' => 'Steuersatz',
+ 'tax_class' => 'Steuer',
+ 'currency' => 'Währungs',
+ 'language' => 'Sprach',
+ 'zone' => 'Provinz',
+ 'country' => 'Landes',
'file_manager' => 'Dateimanager',
'access_frontend' => 'Zugang zum Frontend',
@@ -63,11 +63,11 @@ return [
'page_categories_index' => 'Artikelklassifizierung',
'design_footer_index' => 'Fußzeilendekoration',
'design_menu_index' => 'Navigationskonfiguration',
- 'categories_index' => 'Produktkategorie',
- 'products_index' => 'Produktverwaltung',
+ 'categories_index' => 'Kategorie',
+ 'products_index' => 'Produkt',
'products_trashed' => 'Papierkorb',
'customers_trashed' => 'Papierkorb',
- 'brands_index' => 'Produktmarke',
+ 'brands_index' => 'Marke',
'orders_index' => 'Bestellliste',
'rmas_index' => 'Kundendienstverwaltung',
'rma_reasons_index' => 'Nachverkaufsgrund',
diff --git a/resources/lang/de/admin/dashboard.php b/resources/lang/de/admin/dashboard.php
index e63d4bb4..892eae84 100644
--- a/resources/lang/de/admin/dashboard.php
+++ b/resources/lang/de/admin/dashboard.php
@@ -10,6 +10,7 @@
*/
return [
+ 'product_total' => 'Product Total',
'customer_view' => 'Benutzerbesuche',
'order_total' => 'Bestellmenge',
'customer_new' => 'Benutzer hinzufügen',
diff --git a/resources/lang/de/admin/product.php b/resources/lang/de/admin/product.php
index c1212a63..ab36672e 100644
--- a/resources/lang/de/admin/product.php
+++ b/resources/lang/de/admin/product.php
@@ -39,6 +39,8 @@ return [
'add_variable_image' => 'Spezifikationsbild hinzufügen',
'default_main_product' => 'Standard-Hauptprodukt',
'modify_order' => 'Zum Ändern doppelklicken, zum Anpassen der Reihenfolge ziehen',
+ 'weight_text' => 'Gewicht',
+ 'weight_class' => 'Gewichtseinheit',
'confirm_batch_product' => 'Möchten Sie die ausgewählten Elemente wirklich in großen Mengen löschen?',
'confirm_batch_status' => 'Möchten Sie den Status der ausgewählten Artikel wirklich per Bulk-Verfahren bearbeiten?',
diff --git a/resources/lang/de/pagination.php b/resources/lang/de/pagination.php
index d1d58f6a..c048d58a 100644
--- a/resources/lang/de/pagination.php
+++ b/resources/lang/de/pagination.php
@@ -1,6 +1,6 @@
'Weiter »',
- 'previous' => '« Zurück',
+ 'next' => 'Weiter',
+ 'previous' => 'Zurück',
];
diff --git a/resources/lang/en/address.php b/resources/lang/en/address.php
index eb5e0853..4a49c405 100644
--- a/resources/lang/en/address.php
+++ b/resources/lang/en/address.php
@@ -11,7 +11,7 @@
return [
'index' => 'Edit Address',
- 'name' => 'Name',
+ 'name' => 'Full name',
'phone' => 'Phone',
'country_id' => 'Country ID',
'zone' => 'Zone',
diff --git a/resources/lang/en/admin/account.php b/resources/lang/en/admin/account.php
new file mode 100644
index 00000000..4272d53f
--- /dev/null
+++ b/resources/lang/en/admin/account.php
@@ -0,0 +1,15 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'create_token' => 'Create Token',
+ 'password_text' => 'If the password is left blank, it will not be modified',
+];
diff --git a/resources/lang/en/admin/attribute_group.php b/resources/lang/en/admin/attribute_group.php
index 42ef0e94..d8af877b 100644
--- a/resources/lang/en/admin/attribute_group.php
+++ b/resources/lang/en/admin/attribute_group.php
@@ -13,6 +13,7 @@ return [
'index' => 'Attribute group',
'create_at_groups' => 'Create',
'error_cannot_delete_attribute_used' => 'Attribute Group used by attribute (ID: :attributes), can not be deleted!',
+ 'error_cannot_delete_default_group' => 'The attribute group with ID 1 is the default attribute group and cannot be deleted.',
'attribute_groups_index' => 'Index',
'attribute_groups_create' => 'Create',
diff --git a/resources/lang/en/admin/common.php b/resources/lang/en/admin/common.php
index dd715911..2895febf 100644
--- a/resources/lang/en/admin/common.php
+++ b/resources/lang/en/admin/common.php
@@ -23,6 +23,7 @@ return [
// header
'home' => 'Home',
+ 'home_index' => 'Home',
'order' => 'Orders',
'rma' => 'RMA',
'rma_reason' => 'RMA Reason',
@@ -39,6 +40,7 @@ return [
'page_category' => 'Page Category',
'setting' => 'Settings',
'plugin' => 'Plugin',
+ 'design' => 'Design',
'marketing' => 'Plugin Marketing',
'admin_user' => 'Admin User',
'admin_role' => 'Admin Role',
@@ -51,8 +53,16 @@ return [
'country' => 'Country',
'file_manager' => 'File Manager',
'access_frontend' => 'Frontend',
+ 'copyright_buy' => 'Copyright Buy',
+ 'recent_view' => 'Recently Visited',
+ 'common_link' => 'Common Links',
+ 'header_search_input' => 'Search Features',
+ 'header_search_title' => 'Search Results',
+ 'license_services' => 'License & Services',
// sidebar
+ 'account_index' => 'Personal Center',
+ 'multi_filter_index' => 'Advanced Filter',
'theme_index' => 'Theme Setting',
'attribute_groups_index' => 'Attribute Group',
'attributes_index' => 'Attributes',
diff --git a/resources/lang/en/admin/currency.php b/resources/lang/en/admin/currency.php
index fbe546be..56b2baf6 100644
--- a/resources/lang/en/admin/currency.php
+++ b/resources/lang/en/admin/currency.php
@@ -16,4 +16,5 @@ return [
'currencies_show' => 'Detail',
'currencies_update' => 'Edit',
'currencies_delete' => 'Delete',
+ 'order_exist' => 'This currency has orders in use and cannot be deleted!',
];
diff --git a/resources/lang/en/admin/dashboard.php b/resources/lang/en/admin/dashboard.php
index 2a83044e..ee85092b 100644
--- a/resources/lang/en/admin/dashboard.php
+++ b/resources/lang/en/admin/dashboard.php
@@ -10,6 +10,7 @@
*/
return [
+ 'product_total' => 'Product Total',
'customer_view' => 'Customer View',
'order_total' => 'Order Total',
'customer_new' => 'Customer New',
diff --git a/resources/lang/en/admin/file_manager.php b/resources/lang/en/admin/file_manager.php
index 294955f6..11356b90 100644
--- a/resources/lang/en/admin/file_manager.php
+++ b/resources/lang/en/admin/file_manager.php
@@ -10,6 +10,13 @@
*/
return [
+ 'file_sorting' => 'File Sorting',
+ 'text_type' => 'Type',
+ 'text_created' => 'Created Time',
+ 'file_name' => 'File Name',
+ 'to_sort' => 'Sort',
+ 'text_desc' => 'Descent',
+ 'text_asc' => 'Ascent',
'file_manager_create' => 'Create',
'file_manager_show' => 'View',
'file_manager_update' => 'Rename',
@@ -20,12 +27,14 @@ return [
'create_folder' => 'Create folder',
'rename' => 'Rename',
'download' => 'Download',
- 'upload_files' => 'Upload Files',
+ 'upload_files' => 'Upload',
'click_upload' => 'Click upload, or drag image here',
'image_uploading' => 'Image Uploading',
'no_file' => 'No File',
'picture_space' => 'Picture Space',
'show_pc' => 'Please go to the PC side to operate',
+ 'verify_select_image' => 'Please select a picture',
+ 'verify_select_video' => 'Please select video',
'confirm_delete_file' => 'Do you want to delete the selected file',
'confirm_delete_folder' => 'The folder deletion operation is in progress, all files in the folder will be deleted, do you want to confirm?',
@@ -33,5 +42,6 @@ return [
'can_empty' => 'Can not be empty',
'finish' => 'Finish',
'uploading' => 'loading...',
+ 'upload_fail' => 'Upload failed',
'file_manager' => 'File Manager',
];
diff --git a/resources/lang/en/admin/marketing.php b/resources/lang/en/admin/marketing.php
index 727b5f46..c72c9cda 100644
--- a/resources/lang/en/admin/marketing.php
+++ b/resources/lang/en/admin/marketing.php
@@ -10,28 +10,33 @@
*/
return [
- 'marketing_list' => 'Marketing',
- 'marketing_index' => 'Index',
- 'marketing_show' => 'Detail',
- 'marketing_buy' => 'Buy',
- 'marketing_download' => 'Download',
- 'set_token' => 'Set Token',
- 'get_token_text' => 'Log in to BeikeShop official website personal center - bind domain name, add current domain name',
- 'get_token' => 'Get Token',
- 'download_count' => 'download count',
- 'last_update' => 'last update',
- 'text_version' => 'version',
- 'text_compatibility' => 'compatibility',
- 'text_author' => 'plug-in author',
- 'download_plugin' => 'download plugin',
- 'download_description' => 'Plugin description',
- 'text_free' => 'free',
- 'btn_buy' => 'Buy',
- 'text_pay' => 'Payment Amount',
- 'select_pay' => 'select payment method',
- 'wxpay' => 'WeChat scan code payment!',
- 'pay_success_title' => 'Payment successful!',
- 'pay_success_text' => 'The plug-in purchase is successful, click OK to refresh the page',
- 'ali_pay_success' => 'Payment completed? ',
- 'ali_pay_text' => 'Payment has been completed, please refresh the page',
+ 'marketing_list' => 'Marketing',
+ 'marketing_index' => 'Index',
+ 'marketing_show' => 'Detail',
+ 'marketing_buy' => 'Buy',
+ 'marketing_download' => 'Download',
+ 'set_token' => 'Set Token',
+ 'get_token_text' => 'Log in to BeikeShop official website personal center - bind domain name, add current domain name',
+ 'get_token' => 'Get Token',
+ 'download_count' => 'download count',
+ 'last_update' => 'last update',
+ 'text_version' => 'version',
+ 'text_compatibility' => 'compatibility',
+ 'text_author' => 'plug-in author',
+ 'download_plugin' => 'download plugin',
+ 'download_description' => 'Plugin description',
+ 'text_free' => 'free',
+ 'btn_buy' => 'Buy',
+ 'text_pay' => 'Payment Amount',
+ 'select_pay' => 'select payment method',
+ 'wxpay' => 'WeChat scan code payment!',
+ 'pay_success_title' => 'Payment successful!',
+ 'pay_success_text' => 'The plug-in purchase is successful, click OK to refresh the page',
+ 'ali_pay_success' => 'Payment completed? ',
+ 'ali_pay_text' => 'Payment has been completed, please refresh the page',
+ 'version_compatible_text' => 'This plugin is not compatible with the current system version, please upgrade to Latest Version ',
+ 'to_update' => 'To Upgrade',
+ 'bk_register_hint' => 'Register a new account with beikeshop.com ',
+ 'bk_login_hint' => 'login with beikeshop.com account',
+ 'bind_bk_token' => 'Bind BeikeShop account and get Token automatically',
];
diff --git a/resources/lang/en/admin/multi_filter.php b/resources/lang/en/admin/multi_filter.php
new file mode 100644
index 00000000..5189aeac
--- /dev/null
+++ b/resources/lang/en/admin/multi_filter.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'price_filter' => 'Price Filter',
+];
diff --git a/resources/lang/en/admin/order.php b/resources/lang/en/admin/order.php
index ef48c44d..09f6e6d6 100644
--- a/resources/lang/en/admin/order.php
+++ b/resources/lang/en/admin/order.php
@@ -12,15 +12,24 @@
return [
'list' => 'Order List',
- 'order_quantity' => 'Order Quantity',
- 'order_amount' => 'Order Amount',
- 'orders_index' => 'Index',
- 'orders_create' => 'Create',
- 'orders_show' => 'Detail',
- 'orders_export' => 'Export',
- 'orders_update' => 'Update',
- 'orders_delete' => 'Delete',
- 'notify' => 'Whether to remind',
- 'orders_update_status' => 'Update Status',
- 'error_status' => 'Please select a status',
+ 'order_quantity' => 'Order Quantity',
+ 'order_amount' => 'Order Amount',
+ 'orders_index' => 'Index',
+ 'orders_create' => 'Create',
+ 'orders_show' => 'Detail',
+ 'orders_export' => 'Export',
+ 'orders_update' => 'Update',
+ 'orders_delete' => 'Delete',
+ 'notify' => 'Whether to remind',
+ 'orders_update_status' => 'Update Status',
+ 'error_status' => 'Please select a status',
+ 'payments_history' => 'Payment History',
+ 'text_response' => 'Pesponse',
+ 'text_request' => 'Pequest',
+ 'text_callback' => 'Callback',
+ 'text_callback' => 'Callback',
+ 'text_receipt' => 'Receipt',
+ 'order_id' => 'Order Id',
+ 'text_transaction_id' => 'Transaction Id',
+ 'text_click_view' => 'Click To View',
];
diff --git a/resources/lang/en/admin/plugin.php b/resources/lang/en/admin/plugin.php
index 85ad63f7..b51f1e55 100644
--- a/resources/lang/en/admin/plugin.php
+++ b/resources/lang/en/admin/plugin.php
@@ -19,11 +19,12 @@ return [
'plugins_uninstall' => 'Uninstall',
'to_enable' => 'To Enable',
- 'plugin_list' => 'Plugin List',
- 'plugin_code' => 'Code',
- 'plugin_type' => 'Type',
- 'plugin_description' => 'Description',
- 'plugin_upload' => 'Upload(Only for zip file)',
+ 'plugin_list' => 'Plugin List',
+ 'plugin_code' => 'Code',
+ 'plugin_type' => 'Type',
+ 'plugin_version' => 'Version',
+ 'plugin_description' => 'Description',
+ 'plugin_upload' => 'Upload(Only for zip file)',
'shipping' => 'Shipping',
'payment' => 'Payment',
diff --git a/resources/lang/en/admin/product.php b/resources/lang/en/admin/product.php
index 19256611..7c748db6 100644
--- a/resources/lang/en/admin/product.php
+++ b/resources/lang/en/admin/product.php
@@ -20,6 +20,8 @@ return [
'products_trashed' => 'Trashed',
'products_restore' => 'Restore',
'clear_restore' => 'Empty Recycle Bin',
+ 'products_filter_index' => 'View Filters',
+ 'products_filter_update' => 'Modify Filters',
'batch_delete' => 'Batch Delete',
'batch_active' => 'Batch Active',
@@ -36,11 +38,14 @@ return [
'quantity' => 'Quantity',
'enable_multi_spec' => 'Enable multi-spec',
'image_help' => 'The first picture will be used as the main picture of the product, and multiple pictures can be uploaded at the same time, and the position of multiple pictures can be adjusted at will',
+ 'video_help' => 'If the prompt exceeds the system size limit, please modify the php.ini parameter post_max_size',
'add_variable' => 'Add Specs',
'add_variable_value' => 'Add Specification Value',
'add_variable_image' => 'Add Spec Image',
'default_main_product' => 'Default main product',
'modify_order' => 'Double-click to modify, drag to adjust the order',
+ 'weight_text' => 'weight',
+ 'weight_class' => 'weight unit',
'confirm_batch_product' => 'Are you sure you want to delete the selected products in batches? ',
'confirm_batch_status' => 'Confirm to modify the status of the selected products in batches? ',
diff --git a/resources/lang/en/admin/rma.php b/resources/lang/en/admin/rma.php
index c2119c68..83540f6a 100644
--- a/resources/lang/en/admin/rma.php
+++ b/resources/lang/en/admin/rma.php
@@ -17,6 +17,7 @@ return [
'rmas_update' => 'Update',
'rmas_delete' => 'Delete',
+ 'rma_list_title' => 'Rmas application list',
'customers_name' => 'Customers Name',
'quantity' => 'Quantity',
'service_type' => 'Service Type',
diff --git a/resources/lang/en/admin/setting.php b/resources/lang/en/admin/setting.php
index 10fca776..96d3218e 100644
--- a/resources/lang/en/admin/setting.php
+++ b/resources/lang/en/admin/setting.php
@@ -71,4 +71,9 @@ return [
'head_code' => 'Insert code',
'head_code_info' => 'The code in the input box will be inserted into the head of the front-end page, which can be used to count the code or add special plug-ins, etc',
'rate_api_key' => 'Exchange rate API KEY',
+ 'multi_filter' => 'Multi Filter',
+ 'please_select' => 'Please select',
+ 'multi_filter_helper' => 'Please select the attributes that need to be displayed in the filter area of the product list at the front desk, if left blank, all will be displayed',
+ 'filter_attribute' => 'Attribute Filter',
+ 'license_code' => 'License Code',
];
diff --git a/resources/lang/en/common.php b/resources/lang/en/common.php
index 89be5081..b4f71fb5 100644
--- a/resources/lang/en/common.php
+++ b/resources/lang/en/common.php
@@ -78,6 +78,10 @@ return [
'text_to' => 'To',
'batch_setting' => 'Batch setting',
'show_all' => 'View all',
+ 'get_more' => 'Get More',
+ 'view_more' => 'View more',
+ 'view_details' => 'Check Details',
+ 'quick_view' => 'Quick View',
'id' => 'ID',
'created_at' => 'Created At',
@@ -85,6 +89,7 @@ return [
'sort_order' => 'Sort Order',
'error_page' => 'The data you accessed does not exist or has been deleted~',
'error_page_btn' => 'Return to previous page',
+ 'no_repeat' => 'Do not re-add',
'contacts' => 'Contacts',
'content' => 'Content',
diff --git a/resources/lang/en/pagination.php b/resources/lang/en/pagination.php
index fcab34b2..f53e5d37 100644
--- a/resources/lang/en/pagination.php
+++ b/resources/lang/en/pagination.php
@@ -13,7 +13,7 @@ return [
|
*/
- 'previous' => '« Previous',
- 'next' => 'Next »',
+ 'previous' => 'Previous',
+ 'next' => 'Next',
];
diff --git a/resources/lang/en/product.php b/resources/lang/en/product.php
index d01f4c59..384b29a2 100644
--- a/resources/lang/en/product.php
+++ b/resources/lang/en/product.php
@@ -19,7 +19,11 @@ return [
'category' => 'Category',
'model' => 'Model',
'quantity' => 'Quantity',
- 'image' => 'Image',
+ 'kg' => 'Kilogram',
+ 'g' => 'Gram',
+ 'oz' => 'Ounce',
+ 'lb' => 'Pound',
+ 'video' => 'Video',
'active' => 'Active',
'inactive' => 'Inactive',
diff --git a/resources/lang/en/shop/account.php b/resources/lang/en/shop/account.php
index d027f0b9..83dda6b7 100644
--- a/resources/lang/en/shop/account.php
+++ b/resources/lang/en/shop/account.php
@@ -19,7 +19,7 @@ return [
'pending_payment' => 'Pending Payment',
'pending_send' => 'To be delivered',
'pending_receipt' => 'Pending Receipt',
- 'after_sales' => 'After Sales',
+ 'after_sales' => 'RMA',
'no_order' => "You don't have an order yet!",
'to_buy' => 'To place an order',
'order_number' => 'Order Number',
@@ -35,7 +35,7 @@ return [
'edit' => [
'index' => 'Edit',
- 'modify_avatar' => 'Modify Avatar',
+ 'modify_avatar' => 'Profile Picture',
'suggest' => 'Upload a JPG or PNG image. 300 x 300 is recommended.',
'name' => 'Name',
'email' => 'Email',
@@ -72,7 +72,7 @@ return [
'state' => 'State',
'order_amount' => 'Order Amount',
'order_items' => 'Order Items',
- 'apply_after_sales' => 'Apply for after-sales',
+ 'apply_after_sales' => 'Apply for RMA',
'order_total' => 'Order Total',
'logistics_status' => 'Logistics Status',
'order_status' => 'Order Status',
@@ -100,7 +100,7 @@ return [
'addresses' => [
'index' => 'Addresses',
'add_address' => 'Add New Address',
- 'default_address' => 'Default Address',
+ 'default_address' => 'Default',
'delete' => 'Delete',
'edit' => 'Edit',
'enter_name' => 'Please type in your name',
@@ -114,7 +114,7 @@ return [
],
'rma' => [
- 'index' => 'Rma',
+ 'index' => 'RMA',
'commodity' => 'Commodity',
'quantity' => 'Quantity',
'service_type' => 'Service Type',
@@ -127,7 +127,7 @@ return [
],
'rma_form' => [
- 'index' => 'Submit after-sales information',
+ 'index' => 'Submit RMA information',
'service_type' => 'Service Type',
'return_quantity' => 'Return Quantity',
'unpacked' => 'Unpacked',
diff --git a/resources/lang/en/shop/carts.php b/resources/lang/en/shop/carts.php
index 097e17d2..2e6e1d7a 100644
--- a/resources/lang/en/shop/carts.php
+++ b/resources/lang/en/shop/carts.php
@@ -13,7 +13,7 @@ return [
'index' => 'Cart',
'added_to_cart' => 'Added To Cart',
'select_all' => 'Select All',
- 'commodity' => 'Commodity',
+ 'commodity' => 'Product',
'quantity' => 'Quantity',
'subtotal' => 'Subtotal',
'product_total' => 'Product Total',
diff --git a/resources/lang/en/shop/checkout.php b/resources/lang/en/shop/checkout.php
index 7e78df87..36f367dd 100644
--- a/resources/lang/en/shop/checkout.php
+++ b/resources/lang/en/shop/checkout.php
@@ -10,25 +10,26 @@
*/
return [
- 'index' => 'Checkout',
- 'address' => 'Address',
- 'payment_address' => 'Payment Address',
- 'same_as_shipping_address' => 'Same As Shipping Address',
- 'chosen' => 'Chosen',
- 'edit' => 'Edit',
- 'choose_another_address' => 'Choose Another Address',
- 'add_new_address' => 'Add New Address',
- 'payment_method' => 'Payment Method',
- 'delivery_method' => 'Delivery Method',
- 'cart_totals' => 'Cart Totals',
- 'submit_order' => 'Submit Order',
- 'enter_name' => 'Please type in your name',
- 'enter_phone' => 'Please type your phone number',
- 'enter_address' => 'Please enter detailed address 1',
- 'select_province' => 'Please select province',
- 'enter_city' => 'Please fill in the city ',
- 'check_form' => 'Please check that the form is filled out correctly',
- 'error_payment_address' => 'Please select a billing address',
+ 'index' => 'Checkout',
+ 'address' => 'Address',
+ 'payment_address' => 'Payment Address',
+ 'same_as_shipping_address' => 'Same As Shipping Address',
+ 'chosen' => 'Chosen',
+ 'edit' => 'Edit',
+ 'choose_another_address' => 'Choose Another Address',
+ 'add_new_address' => 'Add New Address',
+ 'payment_method' => 'Payment Method',
+ 'delivery_method' => 'Delivery Method',
+ 'cart_totals' => 'Cart Totals',
+ 'submit_order' => 'Submit Order',
+ 'enter_name' => 'Please type in your name',
+ 'enter_phone' => 'Please type your phone number',
+ 'enter_address' => 'Please enter detailed address 1',
+ 'select_province' => 'Please select province',
+ 'enter_city' => 'Please fill in the city ',
+ 'check_form' => 'Please check that the form is filled out correctly',
+ 'error_payment_address' => 'Please select a billing address',
+ 'checkout_success_title' => 'Thank you for your order!',
'payment' => [
'index' => 'Please Pay',
diff --git a/resources/lang/es/admin/common.php b/resources/lang/es/admin/common.php
index 8c301101..feb25498 100644
--- a/resources/lang/es/admin/common.php
+++ b/resources/lang/es/admin/common.php
@@ -22,21 +22,21 @@ return [
'has_no_permission' => 'No tiene permiso para acceder a esta página, comuníquese con el administrador de su sistema.',
// header
- 'home' => 'Administrar Inicio',
- 'order' => 'Gestión de pedidos',
- 'rma' => 'Gestión del servicio postventa',
- 'rma_reason' => 'Gestión de motivos de devolución',
+ 'home' => 'Página delantera',
+ 'order' => 'Pedidos',
+ 'rma' => 'servicio postventa',
+ 'rma_reason' => 'Motivos de devolución',
'product' => 'gestión de mercancías',
'brand' => 'gestión de la marca',
'attribute' => 'attribute',
'attribute_group' => 'attribute group',
- 'category' => 'Gestión de clasificaciones',
- 'customer_group' => 'Gestión de grupos de clientes',
+ 'category' => 'Clasificaciones',
+ 'customer_group' => 'Grupos de clientes',
'customer' => 'gestión de clientes',
- 'page' => 'Gestión de contenido',
+ 'page' => 'Contenido',
'page_category' => 'Page Category',
- 'setting' => 'ajustes del sistema',
- 'plugin' => 'Gestión de complementos',
+ 'setting' => 'Configuración',
+ 'plugin' => 'Enchufar',
'admin_user' => 'usuario de fondo',
'admin_role' => 'rol del usuario',
'region' => 'Agrupación regional',
@@ -44,13 +44,13 @@ return [
'tax_class' => 'gestión fiscal',
'currency' => 'administración del dinero',
'language' => 'manejo de idiomas',
- 'zone' => 'Gestión de provincia',
+ 'zone' => 'Provincia',
'country' => 'Administración del Estado',
'file_manager' => 'administrador de archivos',
'access_frontend' => 'Visita la recepción',
// sidebar
- 'settings_index' => 'ajustes del sistema',
+ 'settings_index' => 'Configuración',
'admin_users_index' => 'usuario de fondo',
'plugins_index' => 'Lista de complementos',
'regions_index' => 'Agrupación regional',
@@ -74,7 +74,7 @@ return [
'customers_index' => 'Lista de clientes',
'customer_groups_index' => 'grupo de clientes',
'countries_index' => 'Administración del Estado',
- 'zones_index' => 'Gestión de provincia',
+ 'zones_index' => 'Provincia',
'update_nav' => 'actualizar',
'update_title' => 'Buscar una nueva versión de BeikeShop, ya sea para actualizar ahora',
'update_new_version' => 'última versión',
diff --git a/resources/lang/es/admin/dashboard.php b/resources/lang/es/admin/dashboard.php
index a6ba4d03..0d99503b 100644
--- a/resources/lang/es/admin/dashboard.php
+++ b/resources/lang/es/admin/dashboard.php
@@ -10,6 +10,7 @@
*/
return [
+ 'product_total' => 'Product Total',
'customer_view' => 'Visitas de usuarios',
'order_total' => 'Volumen de pedidos',
'customer_new' => 'Usuarios nuevos',
diff --git a/resources/lang/es/admin/product.php b/resources/lang/es/admin/product.php
index 1f3beeb3..355b82a0 100644
--- a/resources/lang/es/admin/product.php
+++ b/resources/lang/es/admin/product.php
@@ -39,6 +39,8 @@ return [
'add_variable_image' => 'Agregar imagen de especificaciones',
'default_main_product' => 'Producto principal predeterminado',
'modify_order' => 'Haz doble clic para modificar, arrastra para ajustar el orden',
+ 'peso_texto' => 'peso',
+ 'weight_class' => 'unidad de peso',
'confirm_batch_product' => '¿Está seguro de que desea eliminar los elementos seleccionados de forma masiva?',
'confirm_batch_status' => '¿Está seguro de que desea editar en masa el estado de los elementos seleccionados?',
diff --git a/resources/lang/es/pagination.php b/resources/lang/es/pagination.php
index 66abb4fb..acb83ba1 100644
--- a/resources/lang/es/pagination.php
+++ b/resources/lang/es/pagination.php
@@ -1,6 +1,6 @@
'Siguiente »',
- 'previous' => '« Anterior',
+ 'next' => 'Siguiente',
+ 'previous' => 'Anterior',
];
diff --git a/resources/lang/fr/admin/common.php b/resources/lang/fr/admin/common.php
index 014110c9..1b8dbb58 100644
--- a/resources/lang/fr/admin/common.php
+++ b/resources/lang/fr/admin/common.php
@@ -22,28 +22,28 @@ return [
'has_no_permission' => 'Vous n\'êtes pas autorisé à accéder à cette page, veuillez contacter l\'administrateur système. ',
// header
- 'home' => 'Gérer la page d\'accueil',
- 'order' => 'gestion des commandes',
+ 'home' => 'Page Garde',
+ 'order' => 'Commandes',
'rma' => 'gestion du service après-vente',
'rma_reason' => 'Gestion des motifs de retour',
- 'product' => 'gestion des produits',
+ 'product' => 'Produits',
'brand' => 'gestion de la marque',
'attribute' => 'attribute',
'attribute_group' => 'attribute group',
- 'category' => 'gestion des catégories',
- 'customer_group' => 'gestion des groupes de clients',
- 'customer' => 'gestion des clients',
- 'page' => 'gestion de contenu',
+ 'category' => 'Catégories',
+ 'customer_group' => 'Groupes de clients',
+ 'customer' => 'Clients',
+ 'page' => 'Article',
'page_category' => 'Page Category',
- 'setting' => 'paramètres système',
- 'plugin' => 'gestion des plugins',
+ 'setting' => 'Installation',
+ 'plugin' => 'Plugins',
'admin_user' => 'utilisateur principal',
'admin_role' => 'rôle d\'utilisateur',
'region' => 'groupement de régions',
- 'tax_rate' => 'gestion des taux d\'imposition',
- 'tax_class' => 'gestion des taxes',
- 'currency' => 'gestion des devises',
- 'language' => 'gestion des langues',
+ 'tax_rate' => 'Taux d\'imposition',
+ 'tax_class' => 'Taxes',
+ 'currency' => 'Devises',
+ 'language' => 'Langues',
'zone' => 'gestion de la province',
'country' => 'gestion pays',
'file_manager' => 'gestionnaire de fichiers',
@@ -56,15 +56,15 @@ return [
'regions_index' => 'groupement de régions',
'tax_rates_index' => 'paramètres du taux d\'imposition',
'tax_classes_index' => 'catégorie de taxe',
- 'currencies_index' => 'gestion des devises',
- 'languages_index' => 'gestion des langues',
+ 'currencies_index' => 'Devises',
+ 'languages_index' => 'Langues',
'design_index' => 'Décoration de la maison',
- 'pages_index' => 'gestion des articles',
+ 'pages_index' => 'Articles',
'page_categories_index' => 'Classement des articles',
'design_footer_index' => 'décoration du pied de page',
'design_menu_index' => 'Configuration navigation',
'categories_index' => 'catégorie de produit',
- 'products_index' => 'gestion des produits',
+ 'products_index' => 'Produits',
'products_trashed' => 'corbeille',
'customers_trashed' => 'corbeille',
'brands_index' => 'marque du produit',
@@ -74,7 +74,7 @@ return [
'customers_index' => 'liste de clients',
'customer_groups_index' => 'groupe de clients',
'countries_index' => 'Gestion des pays',
- 'zones_index' => 'gestion des provinces',
+ 'zones_index' => 'Provinces',
'update_nav' => 'mettre à jour',
'update_title' => 'Trouver une nouvelle version de BeikeShop, si mettre à jour maintenant',
'update_new_version' => 'dernière version',
diff --git a/resources/lang/fr/admin/dashboard.php b/resources/lang/fr/admin/dashboard.php
index 5a4c0e50..78938c66 100644
--- a/resources/lang/fr/admin/dashboard.php
+++ b/resources/lang/fr/admin/dashboard.php
@@ -10,6 +10,7 @@
*/
return [
+ 'product_total' => 'Product Total',
'customer_view' => 'visites des utilisateurs',
'order_total' => 'montant de la commande',
'customer_new' => 'Ajouter un utilisateur',
diff --git a/resources/lang/fr/admin/product.php b/resources/lang/fr/admin/product.php
index 77fc934b..c12a5560 100644
--- a/resources/lang/fr/admin/product.php
+++ b/resources/lang/fr/admin/product.php
@@ -39,6 +39,8 @@ return [
'add_variable_image' => 'Ajouter une image de spécification',
'default_main_product' => 'produit principal par défaut',
'modify_order' => 'Double-cliquez pour modifier, faites glisser pour ajuster la commande',
+ 'weight_text' => 'poids',
+ 'weight_class' => 'unité de poids',
'confirm_batch_product' => 'Êtes-vous sûr de vouloir supprimer les produits sélectionnés par lots? ',
'confirm_batch_status' => 'Confirmer pour modifier le statut des produits sélectionnés par lots? ',
diff --git a/resources/lang/fr/pagination.php b/resources/lang/fr/pagination.php
index 5cd4aa72..58ae13b8 100644
--- a/resources/lang/fr/pagination.php
+++ b/resources/lang/fr/pagination.php
@@ -1,6 +1,6 @@
'Suivant »',
- 'previous' => '« Précédent',
+ 'next' => 'Suivant',
+ 'previous' => 'Précédent',
];
diff --git a/resources/lang/id/address.php b/resources/lang/id/address.php
new file mode 100644
index 00000000..76be34ad
--- /dev/null
+++ b/resources/lang/id/address.php
@@ -0,0 +1,25 @@
+
+ * @created 2022-08-22 18:18:59
+ * @modified 2022-08-22 18:18:59
+ */
+
+return [
+ 'index' => 'Edit Alamat',
+ 'name' => 'Nama',
+ 'phone' => 'Nomor telepon',
+ 'country_id' => 'ID Negara',
+ 'zone' => 'provinsi',
+ 'zone_id' => 'ID Provinsi',
+ 'address_1' => 'Alamat 1',
+ 'address_2' => 'Alamat 2',
+ 'address' => 'Alamat',
+ 'enter_city' => 'Masukkan alamat',
+ 'post_code' => 'Kode Pos',
+ 'default' => 'alamat default',
+];
diff --git a/resources/lang/id/admin/admin_roles.php b/resources/lang/id/admin/admin_roles.php
new file mode 100644
index 00000000..9d67b009
--- /dev/null
+++ b/resources/lang/id/admin/admin_roles.php
@@ -0,0 +1,21 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'select_all' => 'Pilih Semua',
+ 'unselect_all' => 'hapus centang',
+ 'role_name' => 'Nama peran',
+ 'role_management' => 'manajemen peran',
+ 'role' => 'Peran',
+ 'permission' => 'Otoritas sistem',
+ 'plugin_permission' => 'Izin pengaya',
+ 'error_roles' => 'Harap pilih setidaknya satu peran',
+];
diff --git a/resources/lang/id/admin/attribute.php b/resources/lang/id/admin/attribute.php
new file mode 100644
index 00000000..46e29ddd
--- /dev/null
+++ b/resources/lang/id/admin/attribute.php
@@ -0,0 +1,30 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => 'Atribut',
+ 'attribute_info' => 'Informasi atribut',
+ 'create_at' => 'Buat properti',
+ 'attribute_value' => 'Nilai atribut',
+ 'set_attribute' => 'Properti Konfigurasi',
+ 'add_attribute' => 'Tambahkan nilai atribut',
+ 'before_attribute' => 'Silakan pilih atribut kiri terlebih dahulu',
+ 'btn_at' => 'Pergi sekarang',
+ 'btn_later' => 'Pergi nanti',
+ 'to_info_values' => 'Harap buka halaman detail untuk mengedit nilai atribut',
+ 'error_cannot_delete_product_used' => 'Atribut tidak dapat dihapus karena digunakan oleh produk (ID produk: :product_ids)',
+
+ 'attributes_index' => 'Daftar properti',
+ 'attributes_create' => 'Buat properti',
+ 'attributes_show' => 'Detail properti',
+ 'attributes_update' => 'Perbarui atribut',
+ 'attributes_delete' => 'Hapus atribut',
+];
diff --git a/resources/lang/id/admin/attribute_group.php b/resources/lang/id/admin/attribute_group.php
new file mode 100644
index 00000000..d41d416b
--- /dev/null
+++ b/resources/lang/id/admin/attribute_group.php
@@ -0,0 +1,23 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => 'Grup properti',
+ 'create_at_groups' => 'Buat grup atribut',
+ 'error_cannot_delete_attribute_used' => 'Grup atribut tidak dapat dihapus karena digunakan oleh atribut (ID atribut: :attributes)',
+ 'error_cannot_delete_default_group' => 'Yang dengan ID 1 adalah grup atribut default dan tidak dapat dihapus',
+
+ 'attribute_groups_index' => 'Daftar grup atribut',
+ 'attribute_groups_create' => 'Buat grup atribut',
+ 'attribute_groups_show' => 'Detail grup atribut',
+ 'attribute_groups_update' => 'Perbarui grup atribut',
+ 'attribute_groups_delete' => 'Hapus grup atribut',
+];
diff --git a/resources/lang/id/admin/base.php b/resources/lang/id/admin/base.php
new file mode 100644
index 00000000..4435bc37
--- /dev/null
+++ b/resources/lang/id/admin/base.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-04 15:29:49
+ * @modified 2022-08-04 15:29:49
+ */
+
+return [
+ 'name' => 'Indonesia',
+];
diff --git a/resources/lang/id/admin/brand.php b/resources/lang/id/admin/brand.php
new file mode 100644
index 00000000..9097b08c
--- /dev/null
+++ b/resources/lang/id/admin/brand.php
@@ -0,0 +1,21 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => 'merek',
+
+ 'brands_index' => 'Daftar merek',
+ 'brands_create' => 'Buat merek',
+ 'brands_show' => 'Detail merek',
+ 'brands_update' => 'Perbarui merek',
+ 'brands_delete' => 'Hapus merek',
+ 'error_upload' => 'Tolong unggah ikon',
+];
diff --git a/resources/lang/id/admin/builder.php b/resources/lang/id/admin/builder.php
new file mode 100644
index 00000000..f62f499b
--- /dev/null
+++ b/resources/lang/id/admin/builder.php
@@ -0,0 +1,254 @@
+
+ * @created 2022-08-04 15:29:49
+ * @modified 2022-08-04 15:29:49
+ */
+
+return [
+ 'heading_title' => 'Pengeditan Halaman',
+ 'page_category' => 'klasifikasi artikel',
+ 'modules_instructions' => 'Modul yang tersedia, klik untuk menambahkan ke halaman',
+ 'text_floor_prompt' => 'Pengaturan (konfigurasi lantai perlu disimpan dan disegarkan untuk memperbarui halaman)',
+ 'text_new_page' => 'Tambah halaman baru',
+ 'text_quit' => 'berhenti',
+ 'text_save' => 'Menyimpan',
+ 'text_view_page' => 'Lihat halaman',
+ 'text_module' => 'modul',
+ 'text_module_title' => 'Judul modul',
+ 'text_menu' => 'Navigasi',
+ 'text_drag_sort' => 'Urutkan seret',
+ 'text_set_up' => 'mempersiapkan',
+ 'text_delete' => 'menghapus',
+ 'text_floor' => 'lantai',
+ 'text_add_module' => 'Tambah modul',
+ 'text_to_menu' => 'Edit menu navigasi',
+ 'text_other' => 'lainnya',
+ 'text_preparing' => 'mempersiapkan...',
+ 'text_floor_setting' => 'Pengaturan Lantai',
+ 'text_background_color' => 'warna latar belakang',
+ 'text_sure' => 'Tentu',
+ 'text_page_name' => 'Silakan masukkan nama halaman baru',
+ 'text_is_save' => 'Harap pastikan data halaman saat ini telah disimpan! ',
+ 'text_pop_ads' => 'Iklan munculan',
+ 'text_style_setting' => 'Pengaturan gaya',
+ 'text_is_save_data' => 'Sebelum berpindah halaman, harap pastikan bahwa data halaman saat ini telah disimpan? ',
+ 'text_hint' => 'petunjuk',
+ 'text_cancel' => 'Membatalkan',
+ 'text_created_success' => 'Halaman berhasil dibuat',
+ 'text_html_none' => 'Kesalahan pemuatan modul, data HTML kosong! ',
+ 'text_is_delete' => 'OK untuk dihapus',
+ 'text_enable' => 'memungkinkan',
+ 'text_set_title' => 'Judul konfigurasi',
+ 'text_set_subtitle' => 'Konfigurasikan subtitle',
+ 'text_suggested_size' => 'Ukuran yang disarankan (lebar x tinggi): ',
+ 'text_word' => 'Kata',
+ 'text_add_pictures' => 'tambahkan gambar',
+ 'text_refresh_cookie' => 'Segarkan Cookie',
+ 'text_popup_hint' => 'Catatan: Saat pengguna mengklik tutup, itu tidak akan ditampilkan lagi hingga browser ditutup dan dibuka kembali. Untuk pengujian lokal, Anda dapat mengklik "Segarkan Cookie", lalu segarkan browser, dan jendela pop-up dapat dimulai kembali. ',
+ 'text_cookie_refresh_success' => 'Cookie berhasil disegarkan, segarkan browser untuk melihat konten jendela pop-up. ',
+ 'text_add_hot_links' => 'Tambahkan tautan pencarian populer',
+ 'text_add' => 'Tambahkan',
+ 'text_margin_top' => 'Padding modul - atas',
+ 'text_margin_bottom' => 'Padding Modul - Bawah',
+ 'text_file_manager' => 'Pengelola File',
+ 'modules_link' => 'Tautan',
+ 'modules_choose_link' => 'Pilih tautan',
+ 'text_select_link' => 'Silakan pilih halaman tautan untuk melompat ke',
+ 'text_no' => 'tidak ada',
+ 'text_search' => 'mencari',
+ 'text_is_newpage' => 'Apakah jendela baru terbuka:',
+ 'text_manage' => 'mengelola',
+ 'text_title_cover' => 'Judul (mengganti nama tautan yang dipilih di bawah)',
+ 'text_enter_link' => 'Masukkan alamat tautan',
+ 'text_states' => 'negara',
+ 'text_disable' => 'cacat',
+ 'text_no_data' => 'Data tidak ada atau telah dihapus',
+ 'text_to_add' => 'menambahkan',
+ 'text_category' => 'Kategori',
+ 'text_information' => 'Halaman tertentu',
+ 'text_manufacturer' => 'merek produk',
+ 'text_static' => 'Koneksi tetap',
+ 'text_custom' => 'menyesuaikan',
+ 'text_top_text' => 'Teks atas',
+ 'text_edit_page_name' => 'Ubah nama halaman',
+ 'text_page_name_no' => 'Nama wajib diisi',
+ 'custom_name' => 'Nama khusus',
+ 'move_down' => 'Turunkan',
+ 'move_up' => 'Naik',
+
+ // 固定连接
+ 'text_static_product_latest' => 'Produk baru',
+ 'text_static_product_special' => 'Penawaran istimewa',
+ 'text_static_product_manufacturer' => 'Zona Merek',
+ 'text_static_account_account' => 'Pusat Anggota',
+ 'text_static_account_order' => 'Tatanan sejarah',
+ 'text_static_account_wishlist' => 'Daftar favorit',
+ 'text_static_affiliate_login' => 'Anggota Afiliasi',
+ 'text_static_account_newsletter' => 'Konsultasi berlangganan',
+ 'text_static_information_contact' => 'Hubungi kami',
+ 'text_static_information_sitemap' => 'Peta Situs',
+ 'text_static_information_faq' => 'masalah umum',
+ 'text_static_account_voucher' => 'voucher',
+ 'text_static_account_login' => 'Gabung',
+ 'text_static_account_register' => 'daftar',
+ 'text_static_checkout_cart' => 'kereta Belanja',
+ 'text_static_blog_home' => 'blog',
+
+ 'text_edit_product' => 'Edit detail produk',
+ 'text_edit_home' => 'Edit beranda',
+ 'text_edit_mb_home' => 'Edit beranda terminal seluler',
+ 'text_footer_edit' => 'Edit catatan kaki',
+ 'text_header_edit' => 'Edit tajuk',
+ 'text_save_refresh' => 'Simpan dan segarkan',
+ 'text_save_refresh_header' => 'Simpan (segarkan tajuk)',
+ 'text_service_icon' => 'Ikon layanan',
+ 'text_describe' => 'menggambarkan',
+ 'text_add_link' => 'Tambahkan tautan',
+ 'text_is_btn' => 'Apakah akan menampilkan tombol',
+ 'text_phone' => 'Telepon',
+ 'text_address' => 'alamat',
+ 'text_email' => 'Surat',
+ 'text_copyright' => 'Hak Cipta/Gambar',
+ 'text_yq_link' => 'Tautan',
+ 'text_link_bar' => 'Bilah tautan',
+ 'text_introduce' => 'memperkenalkan',
+ 'text_up_logo' => 'unggah logo',
+ 'text_hot_keywords' => 'Kata kunci pencarian populer',
+ 'text_title' => 'Judul',
+ 'text_text_notific' => 'Pemberitahuan teks',
+ 'text_only_home' => 'Tampilkan hanya di halaman pertama',
+ 'text_font_color' => 'warna huruf',
+ 'text_image' => 'gambar',
+ 'text_show' => 'menunjukkan',
+ 'text_is_phone' => 'Tampilkan nomor kontak',
+ 'text_half_angle' => 'Pisahkan dengan koma',
+ 'text_prompt_words' => 'Teks perintah',
+ 'text_search_bar' => 'Bilah pencarian',
+ 'text_btn_text' => 'Teks tombol',
+ 'text_banner_ad' => 'Spanduk iklan',
+ 'text_l_c' => 'Kolom Bahasa/Mata Uang',
+ 'text_top_color' => 'Warna bagian atas',
+ 'text_title_color' => 'warna judul',
+ 'text_color' => 'warna',
+ 'text_left_text' => 'Teks Kiri',
+ 'text_right_icon' => 'Ikon pembayaran yang tepat',
+ 'text_bgi' => 'Gambar latar belakang',
+ 'text_btn' => 'tombol',
+
+ // page
+ 'page_product_title_size' => 'Ukuran font judul komoditas',
+ 'page_product_title_color' => 'warna judul produk',
+ 'page_product_price_color' => 'Warna harga produk',
+ 'page_product_thumb_position' => 'Posisi gambar mini',
+ 'page_product_image' => 'gambar produk',
+ 'page_product_bottom' => 'dasar',
+ 'page_product_left' => 'sisi kiri',
+ 'page_product_magnifying_style' => 'Gaya kaca pembesar',
+ 'page_product_magnifying_window' => 'jendela luar',
+ 'page_product_magnifying_inner' => 'Suspensi internal',
+ 'page_product_magnifying_lens' => 'Kaca pembesar internal',
+ 'page_product_share' => 'membagikan',
+ 'page_product_share_code' => 'Bagikan kode',
+ 'page_product_general_settings' => 'Pengaturan Umum',
+ 'page_product_font_size' => 'Ukuran huruf',
+
+ // ModuleS List
+ 'modules_photo_text' => 'Foto-teks',
+ 'modules_video_module' => 'Modul video',
+ 'modules_customer_reviews' => 'Ulasan Pelanggan',
+ 'modules_images_link' => 'Beberapa tautan gambar',
+ 'modules_background_icon_text' => 'Teks ikon latar belakang',
+ 'modules_slideshow_category' => 'Klasifikasi tayangan slide',
+ 'modules_bargain' => 'tawar-menawar',
+ 'modules_bestseller' => 'barang penjualan panas',
+ 'modules_blog' => 'blog',
+ 'modules_carousel' => 'Ikon Bo',
+ 'modules_category' => 'Modul klasifikasi',
+ 'modules_coupon' => 'kupon',
+ 'modules_flash_sale' => 'Lonjakan komoditas',
+ 'modules_group_buying' => 'Grup teka-teki',
+ 'modules_html' => 'Teks yang kaya',
+ 'modules_icon_text' => 'Teks ikon',
+ 'modules_image_100' => 'Modul gambar tunggal',
+ 'modules_image_200' => 'Dua gambar dalam satu baris',
+ 'modules_image_300' => 'Sederetan tiga gambar',
+ 'modules_image_301' => 'Tiga gambar dalam satu baris-pro',
+ 'modules_image_400' => 'Sederetan empat gambar',
+ 'modules_image_401' => 'Sederetan empat gambar-pro',
+ 'modules_latest' => 'Produk baru',
+ 'modules_manufacturer' => 'Daftar merek',
+ 'modules_product' => 'Komoditas',
+ 'modules_product_tab' => 'Tab Produk',
+ 'modules_slideshow' => 'tayangan slide',
+ 'modules_quantity' => 'Tampilkan batas jumlah',
+ 'modules_manage_bargain' => 'Mengelola barang tawar-menawar',
+ 'modules_manage_blog' => 'Kelola Blog',
+ 'modules_no_blog' => 'Tidak ada artikel, silakan buka [Manajemen Konten -> Manajemen Blog] untuk mengonfigurasi artikel terlebih dahulu. ',
+ 'modules_slides_per_view' => 'Jumlah yang ditampilkan pada satu layar',
+ 'modules_enter_content' => 'Silakan masukkan konten',
+ 'modules_full_screen' => 'Apakah layar penuh',
+ 'modules_content' => 'isi',
+ 'modules_edit_content' => 'Edit konten',
+ 'modules_select_image' => 'Pilih gambar',
+ 'modules_quantity_line' => 'Tampilkan beberapa dalam satu baris',
+ 'modules_please_choose' => 'tolong pilih',
+ 'modules_choose' => 'memilih',
+ 'modules_add_category' => 'Tambahkan kategori',
+ 'modules_choose_category' => 'Pilih Kategori',
+ 'modules_set_coupon' => 'Konfigurasi Kupon',
+ 'modules_no_coupon' => 'Tidak ada data kupon',
+ 'modules_manage_flash' => 'Kelola produk lonjakan',
+ 'modules_manage_group' => 'Kelola Komoditas Grup',
+ 'modules_no_state' => 'Modul saat ini tidak diaktifkan atau dikonfigurasi, harap buka [Manajemen Modul] latar belakang untuk mengonfigurasi modul ini terlebih dahulu. ',
+ 'modules_grid_mode' => 'Mode Kotak',
+ 'modules_more_link' => 'Tautan lainnya',
+ 'modules_choose_brand' => 'Pilih merek',
+ 'modules_set_product' => 'Konfigurasi barang',
+ 'modules_keywords_search' => 'Silakan masukkan pencarian kata kunci',
+ 'modules_test_name' => 'Nama tes',
+ 'modules_please_products' => 'Silakan tambahkan produk',
+ 'modules_image_size' => 'ukuran gambar',
+ 'modules_height' => 'tinggi',
+ 'modules_width' => 'Lebar',
+ 'modules_category_style' => 'Gaya tampilan kategori',
+ 'modules_down' => 'di bawah',
+ 'modules_left' => 'kiri',
+ 'modules_category_no' => 'Jangan mengklasifikasikan',
+ 'modules_review_name' => 'Nama',
+ 'modules_profession' => 'Profesi',
+ 'modules_video_cover' => 'Video sampul',
+ 'modules_video' => 'video',
+
+ // mobile
+ 'mobile_search' => 'Bilah pencarian',
+ 'mobile_search_normal' => 'Tidak diperbaiki di bagian atas layar',
+ 'mobile_search_hide' => 'Jangan tampilkan bilah pencarian teratas',
+ 'mobile_search_fixed' => 'Diperbaiki ke atas layar (default)',
+
+ // Menu
+ 'main_menu' => 'menu utama',
+ 'please_add_data' => 'Silakan tambahkan data',
+ 'add_main_menu' => 'Tambah menu utama',
+ 'main_menu_name_link' => 'Nama/tautan menu utama',
+ 'main_menu_label' => 'Label menu utama',
+ 'label_background_color' => 'Label warna latar belakang',
+ 'label_text_color' => 'Warna teks label',
+ 'submenu_group' => 'Submenu (grup)',
+ 'add_menu_group' => 'Tambahkan grup menu',
+ 'full_screen' => 'Apakah layar penuh',
+ 'menu' => 'menu',
+ 'add_submenu_link' => 'Tambahkan tautan submenu',
+ 'type' => 'jenis',
+
+ // footer
+ 'footer_edit' => 'Editor Kaki',
+ 'sub_title' => 'Subjudul',
+ 'introduction' => 'Perkenalan',
+ 'copyright_settings' => 'Pengaturan Hak Cipta',
+];
diff --git a/resources/lang/id/admin/category.php b/resources/lang/id/admin/category.php
new file mode 100644
index 00000000..6110bf86
--- /dev/null
+++ b/resources/lang/id/admin/category.php
@@ -0,0 +1,22 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => 'Klasifikasi',
+ 'edit_category' => 'Edit Kategori',
+ 'parent_category' => 'Sub-judul',
+
+ 'categories_index' => 'Daftar Kategori',
+ 'categories_create' => 'Buat klasifikasi',
+ 'categories_show' => 'Detail kategori',
+ 'categories_update' => 'Perbarui klasifikasi',
+ 'categories_delete' => 'Hapus kategori',
+];
diff --git a/resources/lang/id/admin/common.php b/resources/lang/id/admin/common.php
new file mode 100644
index 00000000..6c1feabf
--- /dev/null
+++ b/resources/lang/id/admin/common.php
@@ -0,0 +1,90 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'admin_panel' => 'belakang panggung',
+ 'edit' => 'edit',
+ 'status' => 'negara',
+ 'action' => 'beroperasi',
+ 'install' => 'Install',
+ 'uninstall' => 'Copot pemasangan',
+
+ // errors
+ 'forbidden' => 'Tidak ada akses',
+ 'has_no_permission' => 'Anda tidak memiliki izin untuk mengakses halaman ini, harap hubungi administrator sistem Anda. ',
+
+ // header
+ 'home' => 'Kelola beranda',
+ 'order' => 'Pesanan',
+ 'rma' => 'Layanan purna jual',
+ 'rma_reason' => 'Pengembalian alasan manajemen',
+ 'product' => 'Komoditas',
+ 'brand' => 'Merek',
+ 'attribute' => 'Properti',
+ 'attribute_group' => 'Pengelolaan grup properti',
+ 'category' => 'Kategori',
+ 'customer_group' => 'Grup pelanggan',
+ 'customer' => 'Pelanggan',
+ 'page' => 'Artikel',
+ 'page_category' => 'klasifikasi artikel',
+ 'setting' => 'Pengaturan sistem',
+ 'plugin' => 'Plugin',
+ 'marketing' => 'Pasar Pengaya',
+ 'admin_user' => 'pengguna latar belakang',
+ 'admin_role' => 'Peran pengguna',
+ 'region' => 'Pengelompokan wilayah',
+ 'tax_rate' => 'Tarif pajak',
+ 'tax_class' => 'Pajak',
+ 'currency' => 'Mata uang',
+ 'language' => 'Bahasa',
+ 'zone' => 'Pengelolaan Provinsi',
+ 'country' => 'Nasional',
+ 'file_manager' => 'Pengelola File',
+ 'access_frontend' => 'Kunjungi meja depan',
+
+ // sidebar
+ 'theme_index' => 'Pengaturan template',
+ 'attribute_groups_index' => 'Grup properti',
+ 'attributes_index' => 'Atribut',
+ 'settings_index' => 'Pengaturan sistem',
+ 'admin_users_index' => 'pengguna latar belakang',
+ 'plugins_index' => 'Pengaturan plug-in',
+ 'marketing_index' => 'Pasar Pengaya',
+ 'regions_index' => 'Pengelompokan wilayah',
+ 'tax_rates_index' => 'Pengaturan tarif pajak',
+ 'tax_classes_index' => 'Kategori pajak',
+ 'currencies_index' => 'Mata uang',
+ 'languages_index' => 'Bahasa',
+ 'design_index' => 'Dekorasi rumah',
+ 'pages_index' => 'Artikel',
+ 'page_categories_index' => 'klasifikasi artikel',
+ 'design_footer_index' => 'Dekorasi akhir halaman',
+ 'design_menu_index' => 'Konfigurasi navigasi',
+ 'categories_index' => 'Kategori',
+ 'products_index' => 'Komoditas',
+ 'products_trashed' => 'Tempat sampah',
+ 'customers_trashed' => 'Tempat sampah',
+ 'brands_index' => 'merek produk',
+ 'orders_index' => 'Daftar Pesanan',
+ 'rmas_index' => 'Purna jual',
+ 'rma_reasons_index' => 'Alasan purna jual',
+ 'customers_index' => 'Daftar pelanggan',
+ 'customer_groups_index' => 'Grup pelanggan',
+ 'countries_index' => 'Nasional',
+ 'zones_index' => 'Pengelolaan Provinsi',
+ 'update_nav' => 'memperbarui',
+ 'update_title' => 'Temukan TuikeShop versi baru, apakah akan diperbarui sekarang',
+ 'update_new_version' => 'Versi terbaru dari',
+ 'update_old_version' => 'versi sekarang',
+ 'update_date' => 'Diperbarui',
+ 'update_btn' => 'Pergi untuk mengunduh',
+ 'expired_at' => 'Tanggal kadaluarsa',
+];
diff --git a/resources/lang/id/admin/country.php b/resources/lang/id/admin/country.php
new file mode 100644
index 00000000..bedc4032
--- /dev/null
+++ b/resources/lang/id/admin/country.php
@@ -0,0 +1,18 @@
+
+ * @created 2022-08-29 17:21:38
+ * @modified 2022-08-29 17:21:38
+ */
+return [
+ 'country_name' => 'Nama negara',
+
+ 'countries_index' => 'Daftar negara',
+ 'countries_create' => 'Buat negara',
+ 'countries_update' => 'Perbarui negara',
+ 'countries_delete' => 'Hapus negara',
+];
diff --git a/resources/lang/id/admin/currency.php b/resources/lang/id/admin/currency.php
new file mode 100644
index 00000000..3f5243f0
--- /dev/null
+++ b/resources/lang/id/admin/currency.php
@@ -0,0 +1,19 @@
+
+ * @created 2022-07-28 17:21:38
+ * @modified 2022-07-28 17:21:38
+ */
+return [
+ 'decimal_point' => '.',
+ 'thousand_point' => ',',
+ 'currencies_index' => 'Daftar Mata Uang',
+ 'currencies_create' => 'Buat mata uang',
+ 'currencies_show' => 'Rincian Mata Uang',
+ 'currencies_update' => 'Perbarui Mata Uang',
+ 'currencies_delete' => 'Hapus mata uang',
+];
diff --git a/resources/lang/id/admin/customer.php b/resources/lang/id/admin/customer.php
new file mode 100644
index 00000000..c9573311
--- /dev/null
+++ b/resources/lang/id/admin/customer.php
@@ -0,0 +1,39 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'customers_index' => 'Daftar pelanggan',
+ 'customers_create' => 'Buat pelanggan',
+ 'customers_show' => 'Detil pelanggan',
+ 'customers_update' => 'Perbarui pelanggan',
+ 'customers_delete' => 'Hapus pelanggan',
+
+ 'user_info' => 'Info Pengguna',
+ 'address_management' => 'Manajemen alamat',
+ 'user_name' => 'nama belakang',
+ 'password_info' => 'Biarkan kosong agar kata sandi asli tidak berubah',
+ 'add_address' => 'Tambahkan alamat',
+ 'no_address' => 'Rekening saat ini tidak memiliki alamat',
+ 'edit_address' => 'Ubah alamat',
+ 'address' => 'alamat',
+ 'choose_country' => 'Pilih satu negara',
+ 'zones' => 'Propinsi',
+ 'choose_zones' => 'Pilih provinsi',
+ 'enter_city' => 'Masuk kota',
+ 'city' => 'Kota',
+ 'zipcode' => 'Kode Pos',
+ 'address_1' => 'Alamat rinci 1',
+ 'address_2' => 'Alamat rinci 2',
+
+ 'cannot_delete_root' => 'Akun root tidak dapat dihapus',
+ 'error_email' => 'Masukkan format email yang benar',
+ 'confirm_delete_address' => 'Anda yakin ingin menghapus alamatnya? ',
+];
diff --git a/resources/lang/id/admin/customer_group.php b/resources/lang/id/admin/customer_group.php
new file mode 100644
index 00000000..c97083c6
--- /dev/null
+++ b/resources/lang/id/admin/customer_group.php
@@ -0,0 +1,25 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => 'Grup pelanggan',
+ 'consumption_limit' => 'Jumlah konsumsi',
+ 'discount_rate' => 'Nilai diskon',
+ 'reward_points_factor' => 'Faktor poin bonus',
+ 'integral_factor' => 'Gunakan koefisien integral',
+
+ 'customer_groups_index' => 'Daftar grup pelanggan',
+ 'customer_groups_create' => 'Buat grup pelanggan',
+ 'customer_groups_show' => 'Detail grup pelanggan',
+ 'customer_groups_update' => 'Perbarui grup pelanggan',
+ 'customer_groups_delete' => 'Hapus grup pelanggan',
+ 'default_cannot_delete' => 'Grup pelanggan default tidak dapat dihapus',
+];
diff --git a/resources/lang/id/admin/dashboard.php b/resources/lang/id/admin/dashboard.php
new file mode 100644
index 00000000..a25b0283
--- /dev/null
+++ b/resources/lang/id/admin/dashboard.php
@@ -0,0 +1,25 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'product_total' => 'Product Total',
+ 'customer_view' => 'Kunjungan pengguna',
+ 'order_total' => 'Volume pesanan',
+ 'customer_new' => 'Tambahkan Pengguna',
+ 'order_amount' => 'Penjualan',
+ 'yesterday' => 'Kemarin',
+ 'day_before' => 'dari hari sebelumnya',
+
+ 'order_report' => 'Statistik Pesanan',
+ 'latest_month' => 'Satu bulan',
+ 'latest_week' => 'Satu minggu',
+ 'latest_year' => 'Satu tahun',
+];
diff --git a/resources/lang/id/admin/design_builder.php b/resources/lang/id/admin/design_builder.php
new file mode 100644
index 00000000..bb0f898c
--- /dev/null
+++ b/resources/lang/id/admin/design_builder.php
@@ -0,0 +1,21 @@
+
+ * @created 2022-08-30 11:03:19
+ * @modified 2022-08-30 11:03:19
+ */
+
+return [
+ 'module_brand' => 'Modul Merek',
+ 'module_banner' => 'Modul spanduk',
+ 'module_four_image_pro' => 'Satu baris dan empat angka PRO',
+ 'module_slideshow' => 'Modul Slide',
+ 'module_tab_products' => 'Tab Barang',
+ 'module_product' => 'Modul Komoditas',
+ 'module_icons' => 'modul ikon',
+ 'module_rich_text' => 'Modul Teks Kaya',
+];
diff --git a/resources/lang/id/admin/file_manager.php b/resources/lang/id/admin/file_manager.php
new file mode 100644
index 00000000..166ce3fc
--- /dev/null
+++ b/resources/lang/id/admin/file_manager.php
@@ -0,0 +1,37 @@
+
+ * @created 2022-08-16 17:22:41
+ * @modified 2022-08-16 17:22:41
+ */
+
+return [
+ 'file_manager_create' => 'Buat direktori / file',
+ 'file_manager_show' => 'Lihat direktori / file',
+ 'file_manager_update' => 'Ubah nama',
+ 'file_manager_delete' => 'Hapus direktori / file',
+ 'directory_already_exist' => 'Direktori sudah ada',
+ 'directory_not_empty' => 'Direktori ini tidak kosong',
+ 'target_not_exist' => 'File atau folder asli tidak ada',
+ 'create_folder' => 'Buat Folder',
+ 'rename' => 'Ubah nama',
+ 'download' => 'Unduh',
+ 'upload_files' => 'Unggah file',
+ 'click_upload' => 'Klik unggah, atau seret gambar ke sini',
+ 'image_uploading' => 'Pengunggahan gambar',
+ 'no_file' => 'Tidak ada dokumen',
+ 'picture_space' => 'ruang gambar',
+ 'show_pc' => 'Silakan pergi ke PC untuk beroperasi',
+
+ 'confirm_delete_file' => 'Apakah Anda ingin menghapus bahasa Cina',
+ 'confirm_delete_folder' => 'Operasi penghapusan folder sedang berlangsung, semua file dalam folder akan dihapus, apakah Anda ingin mengonfirmasi?',
+ 'new_folder' => 'Folder Baru',
+ 'can_empty' => 'tidak bisa kosong',
+ 'finish' => 'Selesai',
+ 'uploading' => 'mengunggah',
+ 'file_manager' => 'Manajer Gambar',
+];
diff --git a/resources/lang/id/admin/forgotten.php b/resources/lang/id/admin/forgotten.php
new file mode 100644
index 00000000..0ff5eb50
--- /dev/null
+++ b/resources/lang/id/admin/forgotten.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-16 17:22:41
+ * @modified 2022-08-16 17:22:41
+ */
+
+return [
+ 'verify_code_sent' => 'Captcha telah dikirim, silakan periksa dan masukkan captcha',
+];
diff --git a/resources/lang/id/admin/language.php b/resources/lang/id/admin/language.php
new file mode 100644
index 00000000..b9955422
--- /dev/null
+++ b/resources/lang/id/admin/language.php
@@ -0,0 +1,20 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'languages_index' => 'Daftar bahasa',
+ 'languages_create' => 'Buat bahasa',
+ 'languages_show' => 'Detail bahasa',
+ 'languages_update' => 'Perbarui bahasa',
+ 'languages_delete' => 'Hapus bahasa',
+ 'error_default_language_cannot_delete' => 'Bahasa default tidak dapat dihapus! ',
+ 'help_install' => 'Catatan: Untuk menginstal bahasa baru, Anda perlu mengonfigurasi produk, kategori, navigasi, modul halaman beranda, footer, dan konten lainnya dalam bahasa yang sesuai, jika tidak, tampilan halaman akan menjadi tidak normal',
+];
diff --git a/resources/lang/id/admin/login.php b/resources/lang/id/admin/login.php
new file mode 100644
index 00000000..03ebb60a
--- /dev/null
+++ b/resources/lang/id/admin/login.php
@@ -0,0 +1,15 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'plugins_index' => 'Masuk ke backend TuikeShop',
+ 'log_in' => 'Masuk',
+];
diff --git a/resources/lang/id/admin/marketing.php b/resources/lang/id/admin/marketing.php
new file mode 100644
index 00000000..db401492
--- /dev/null
+++ b/resources/lang/id/admin/marketing.php
@@ -0,0 +1,39 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'marketing_list' => 'Pasar Plugin',
+ 'marketing_index' => 'Pasar Rumah',
+ 'marketing_show' => 'Detail plugin',
+ 'marketing_buy' => 'Beli plugin',
+ 'marketing_download' => 'Unduh plugin',
+ 'set_token' => 'Setel Token',
+ 'get_token_text' => 'Masuk ke pusat pribadi situs web resmi TuikeShop - ikat nama domain, tambahkan nama domain saat ini',
+ 'get_token' => 'Klik untuk mendapatkan token',
+ 'download_count' => 'jumlah unduhan',
+ 'last_update' => 'Terakhir Diperbarui',
+ 'text_version' => 'versi',
+ 'text_compatibility' => 'kompatibilitas',
+ 'text_author' => 'penulis plugin',
+ 'download_plugin' => 'Unduh plugin',
+ 'download_description' => 'deskripsi plugin',
+ 'text_free' => 'Bebas',
+ 'btn_buy' => 'Beli',
+ 'text_pay' => 'Jumlah Pembayaran',
+ 'select_pay' => 'Pilih metode pembayaran',
+ 'wxpay' => 'Pembayaran kode pindai WeChat!',
+ 'pay_success_title' => 'Pembayaran berhasil!',
+ 'pay_success_text' => 'Pembelian plugin berhasil, klik OK untuk menyegarkan halaman',
+ 'ali_pay_success' => 'Sudah dibayar? ',
+ 'ali_pay_text' => 'Pembayaran selesai, harap segarkan halaman',
+ 'version_compatible_text' => 'Plugin tidak kompatibel dengan versi sistem saat ini, silakan tingkatkan ke Versi terbaru ',
+ 'to_update' => 'Pergi untuk meningkatkan',
+];
diff --git a/resources/lang/id/admin/order.php b/resources/lang/id/admin/order.php
new file mode 100644
index 00000000..b6b19a16
--- /dev/null
+++ b/resources/lang/id/admin/order.php
@@ -0,0 +1,26 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'list' => 'Daftar pesanan',
+
+ 'order_quantity' => 'Kuantitas pesanan',
+ 'order_amount' => 'Jumlah pesanan',
+ 'orders_index' => 'Daftar pesanan',
+ 'orders_create' => 'Buat pesanan',
+ 'orders_show' => 'Detail pesanan',
+ 'orders_export' => 'Pesanan Ekspor',
+ 'orders_update' => 'Perbarui Pesanan',
+ 'orders_delete' => 'Hapus Pesanan',
+ 'notify' => 'apakah akan mengingatkan atau tidak',
+ 'orders_update_status' => 'Perbarui Status',
+ 'error_status' => 'Silakan pilih status',
+];
diff --git a/resources/lang/id/admin/page.php b/resources/lang/id/admin/page.php
new file mode 100644
index 00000000..dad591fd
--- /dev/null
+++ b/resources/lang/id/admin/page.php
@@ -0,0 +1,22 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => 'Manajemen Artikel',
+ 'info_title' => 'Judul Informasi',
+ 'info_content' => 'Konten',
+
+ 'pages_index' => 'Daftar Artikel',
+ 'pages_create' => 'Buat artikel',
+ 'pages_show' => 'Detail Artikel',
+ 'pages_update' => 'Penyuntingan Artikel',
+ 'pages_delete' => 'Hapus artikel',
+];
diff --git a/resources/lang/id/admin/page_category.php b/resources/lang/id/admin/page_category.php
new file mode 100644
index 00000000..4607b13d
--- /dev/null
+++ b/resources/lang/id/admin/page_category.php
@@ -0,0 +1,22 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => 'Klasifikasi artikel',
+ 'info_title' => 'Judul kategori',
+ 'info_content' => 'Konten',
+
+ 'page_categories_index' => 'Daftar Klasifikasi',
+ 'page_categories_create' => 'Buat klasifikasi',
+ 'page_categories_show' => 'Detail Klasifikasi',
+ 'page_categories_update' => 'Penyuntingan Kategori',
+ 'page_categories_delete' => 'Hapus klasifikasi',
+];
diff --git a/resources/lang/id/admin/plugin.php b/resources/lang/id/admin/plugin.php
new file mode 100644
index 00000000..1bde3a06
--- /dev/null
+++ b/resources/lang/id/admin/plugin.php
@@ -0,0 +1,36 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'plugins_index' => 'Pengaturan plugin',
+ 'plugins_import' => 'unggah plugin',
+ 'plugins_show' => 'Detail plugin',
+ 'plugins_update' => 'pembaruan plugin',
+ 'plugins_update_status' => 'Perbarui Status',
+ 'plugins_install' => 'Instal',
+ 'plugins_uninstall' => 'Copot pemasangan',
+ 'to_enable' => 'Pergi aktifkan',
+ 'uninstall_hint' => 'Menghapus plugin menghapus semua data yang relevan untuk plugin itu, apakah Anda yakin ingin menghapusnya?',
+
+ 'plugin_list' => 'Pengaturan plugin',
+ 'plugin_code' => 'kode plugin',
+ 'plugin_type' => 'jenis plugin',
+ 'plugin_description' => 'deskripsi plugin',
+ 'plugin_upload' => 'unggah plugin (hanya file zip)',
+
+ 'shipping' => 'metode pengiriman',
+ 'payment' => 'Metode Pembayaran',
+ 'social' => 'jejaring sosial',
+ 'total' => 'Perhitungan pesanan',
+ 'feature' => 'modul fungsi',
+ 'language' => 'Terjemahan bahasa',
+ 'theme' => 'Template Tema',
+];
diff --git a/resources/lang/id/admin/product.php b/resources/lang/id/admin/product.php
new file mode 100644
index 00000000..680cfbc6
--- /dev/null
+++ b/resources/lang/id/admin/product.php
@@ -0,0 +1,49 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'products_index' => 'Daftar Komoditas',
+ 'products_create' => 'Buat Produk',
+ 'products_show' => 'Detail Produk',
+ 'products_update' => 'Perbarui Produk',
+ 'products_delete' => 'Hapus Daftar',
+ 'products_trashed' => 'Tempat Sampah',
+ 'products_restore' => 'Pulihkan Recycle Bin',
+ 'clear_restore' => 'Kosongkan Recycle Bin',
+
+ 'batch_delete' => 'hapus massal',
+ 'batch_active' => 'Daftar batch',
+ 'batch_inactive' => 'Penghapusan massal',
+
+ 'basic_information' => 'Informasi Dasar',
+ 'product_details' => 'Detail Produk',
+ 'product_relations' => 'Produk Terkait',
+ 'stocks' => 'Persediaan Komoditas',
+ 'model' => 'Model',
+ 'price' => 'Harga',
+ 'origin_price' => 'Harga asli',
+ 'cost_price' => 'harga biaya',
+ 'quantity' => 'kuantitas',
+ 'enable_multi_spec' => 'Aktifkan multi-spec',
+ 'image_help' => 'Gambar pertama akan digunakan sebagai gambar utama produk, mendukung banyak gambar untuk diunggah secara bersamaan, dan posisinya dapat disesuaikan sesuka hati di antara beberapa gambar',
+ 'add_variable' => 'Tambahkan Spesifikasi',
+ 'add_variable_value' => 'Tambahkan Nilai Spesifikasi',
+ 'add_variable_image' => 'Tambahkan gambar spesifikasi',
+ 'default_main_product' => 'Produk Utama Default',
+ 'modify_order' => 'Klik dua kali untuk memodifikasi, seret untuk menyesuaikan urutan',
+ 'weight_text' => 'berat',
+ 'weight_class' => 'satuan berat',
+
+ 'confirm_batch_product' => 'Apakah Anda yakin ingin menghapus item yang dipilih secara massal? ',
+ 'confirm_batch_status' => 'Apakah Anda yakin ingin mengedit status produk yang dipilih secara massal? ',
+ 'confirm_batch_restore' => 'Apakah Anda yakin ingin mengembalikan item yang dipilih?',
+ 'confirm_delete_restore' => 'Apakah Anda yakin ingin mengosongkan Recycle Bin?',
+];
diff --git a/resources/lang/id/admin/region.php b/resources/lang/id/admin/region.php
new file mode 100644
index 00000000..21bc1be4
--- /dev/null
+++ b/resources/lang/id/admin/region.php
@@ -0,0 +1,23 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => 'kelompok regional',
+ 'regions_index' => 'Daftar grup zona',
+ 'regions_create' => 'Buat Grup Zona',
+ 'regions_show' => 'Detail Grup Area',
+ 'regions_update' => 'Perbarui Grup Zona',
+ 'regions_delete' => 'Hapus Grup Zona',
+ 'name' => 'Nama',
+ 'describe' => 'Deskripsi',
+ 'country' => 'Negara',
+ 'zone' => 'provinsi',
+];
diff --git a/resources/lang/id/admin/rma.php b/resources/lang/id/admin/rma.php
new file mode 100644
index 00000000..47b3890b
--- /dev/null
+++ b/resources/lang/id/admin/rma.php
@@ -0,0 +1,30 @@
+
+ * @created 2022-08-16 17:22:41
+ * @modified 2022-08-16 17:22:41
+ */
+
+return [
+ 'index' => 'Aplikasi purna jual',
+
+ 'rmas_index' => 'Daftar layanan purna jual',
+ 'rmas_show' => 'Detail layanan purna jual',
+ 'rmas_update' => 'Perbarui layanan purna jual',
+ 'rmas_delete' => 'Hapus layanan purna jual',
+
+ 'customers_name' => 'Nama Pelanggan',
+ 'quantity' => 'kuantitas',
+ 'service_type' => 'jenis layanan',
+ 'rma_details' => 'Detail aplikasi purna jual',
+ 'reasons_return' => 'alasan pengembalian',
+ 'current_state' => 'keadaan saat ini',
+ 'modify_status' => 'ubah status',
+ 'remarks' => 'Informasi Keterangan',
+ 'update_status' => 'Perbarui Status',
+ 'operation_history' => 'Sejarah Operasi',
+];
diff --git a/resources/lang/id/admin/rma_reason.php b/resources/lang/id/admin/rma_reason.php
new file mode 100644
index 00000000..ef66983f
--- /dev/null
+++ b/resources/lang/id/admin/rma_reason.php
@@ -0,0 +1,17 @@
+
+ * @created 2022-08-16 17:22:41
+ * @modified 2022-08-16 17:22:41
+ */
+
+return [
+ 'rma_reasons_index' => 'Daftar alasan',
+ 'rma_reasons_create' => 'alasan penciptaan',
+ 'rma_reasons_update' => 'alasan pembaruan',
+ 'rma_reasons_delete' => 'alasan penghapusan',
+];
diff --git a/resources/lang/id/admin/role.php b/resources/lang/id/admin/role.php
new file mode 100644
index 00000000..3cc601c3
--- /dev/null
+++ b/resources/lang/id/admin/role.php
@@ -0,0 +1,19 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'admin_roles_index' => 'Daftar Peran',
+ 'admin_roles_create' => 'Buat Peran',
+ 'admin_roles_show' => 'Detail Peran',
+ 'admin_roles_update' => 'Perbarui peran',
+ 'admin_roles_delete' => 'Hapus Peran',
+ 'select_one_at_least' => 'Izin tidak boleh kosong, pilih setidaknya satu',
+];
diff --git a/resources/lang/id/admin/setting.php b/resources/lang/id/admin/setting.php
new file mode 100644
index 00000000..cf543c61
--- /dev/null
+++ b/resources/lang/id/admin/setting.php
@@ -0,0 +1,76 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => 'Pengaturan Sistem',
+ 'settings_index' => 'Lihat Pengaturan Sistem',
+ 'settings_update' => 'Ubah pengaturan sistem',
+ 'design_index' => 'Editor Halaman Beranda',
+ 'design_footer_index' => 'Editor Footer',
+ 'design_menu_index' => 'Editor Navigasi',
+ 'product_per_page' => 'Jumlah tampilan per halaman',
+
+ 'checkout_settings' => 'Pengaturan Checkout',
+ 'basic_settings' => 'Pengaturan Dasar',
+ 'store_settings' => 'Pengaturan Toko',
+ 'picture_settings' => 'Pengaturan Gambar',
+ 'use_queue' => 'apakah akan menggunakan antrian',
+ 'mail_settings' => 'Pengaturan Email',
+ 'mail_engine' => 'mesin surat',
+ 'smtp_host' => 'tuan rumah',
+ 'smtp_username' => 'Pengguna',
+ 'smtp_encryption' => 'metode enkripsi',
+ 'smtp_encryption_info' => 'SSL atau TLS',
+ 'smtp_password' => 'kata sandi',
+ 'smtp_password_info' => 'Setel kata sandi SMTP. Silakan merujuk ke Gmail:https://security.google.com/settings/security/apppasswords',
+ 'smtp_port' => 'pelabuhan',
+ 'smtp_timeout' => 'batas waktu',
+ 'sendmail_path' => 'jalur eksekusi',
+ 'mailgun_domain' => 'Nama Domain',
+ 'mailgun_secret' => 'kunci',
+ 'mailgun_endpoint' => 'pelabuhan',
+ 'mail_log' => 'Catatan: Mesin log umumnya digunakan untuk tujuan pengujian! Email tidak akan dikirim ke alamat penerima, dan konten email akan disimpan dalam bentuk log `/storage/logs/laravel.log`',
+ 'express_code_help' => 'angka, huruf, garis bawah',
+
+ 'guest_checkout' => 'Tourist Checkout',
+ 'theme_default' => 'Tema default',
+ 'theme_black' => 'Tema Hitam',
+ 'shipping_address' => 'Alamat pengiriman',
+ 'payment_address' => 'alamat penagihan',
+ 'meta_title' => 'Judul meta',
+ 'meta_description' => 'Deskripsi meta',
+ 'meta_keywords' => 'Kata kunci meta',
+ 'telephone' => 'Nomor kontak',
+ 'email' => 'kotak surat',
+ 'default_address' => 'alamat default',
+ 'default_country_set' => 'Pengaturan negara default',
+ 'default_zone_set' => 'Pengaturan provinsi default',
+ 'default_language' => 'Bahasa default',
+ 'default_currency' => 'Mata uang default',
+ 'default_customer_group' => 'Grup Pelanggan Default',
+ 'admin_name' => 'Direktori belakang panggung',
+ 'admin_name_info' => 'admin kembali direktori, defaultnya adalah admin',
+ 'enable_tax' => 'Aktifkan pajak',
+ 'enable_tax_info' => 'Aktifkan perhitungan pajak',
+ 'tax_address' => 'Alamat pajak',
+ 'tax_address_info' => 'Dengan alamat apa pajak dihitung',
+ 'logo' => 'Logo Situs Web',
+ 'favicon' => 'Favicon',
+ 'favicon_info' => 'Ikon kecil ditampilkan pada tab browser, harus ukuran format PNG: 32*32',
+ 'placeholder_image' => 'placeholder',
+ 'head_code' => 'masukkan kode',
+ 'head_code_info' => 'Kode di kotak input akan dimasukkan ke kepala halaman front-end, yang dapat digunakan untuk menghitung kode atau menambahkan plug-in khusus, dll.',
+ 'rate_api_key' => 'KUNCI API Nilai Tukar',
+ 'multi_filter' => 'Pemfilteran lanjutan',
+ 'please_select' => 'Harap tambahkan',
+ 'multi_filter_helper' => 'Silakan pilih atribut yang perlu ditampilkan dalam modul filter',
+ 'filter_attribute' => 'pemfilteran atribut',
+];
diff --git a/resources/lang/id/admin/tax_class.php b/resources/lang/id/admin/tax_class.php
new file mode 100644
index 00000000..a0677709
--- /dev/null
+++ b/resources/lang/id/admin/tax_class.php
@@ -0,0 +1,22 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => 'pajak',
+ 'rule' => 'aturan',
+ 'based_on' => 'berdasarkan',
+ 'priority' => 'prioritas',
+ 'tax_classes_index' => 'Daftar Pajak',
+ 'tax_classes_create' => 'Buat kelas pajak',
+ 'tax_classes_show' => 'Rincian Pajak',
+ 'tax_classes_update' => 'Perbarui kelas pajak',
+ 'tax_classes_delete' => 'Hapus pajak',
+];
diff --git a/resources/lang/id/admin/tax_rate.php b/resources/lang/id/admin/tax_rate.php
new file mode 100644
index 00000000..8aa0b135
--- /dev/null
+++ b/resources/lang/id/admin/tax_rate.php
@@ -0,0 +1,26 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => 'pengaturan tarif pajak',
+ 'tax_classes_index' => 'Pengaturan pajak',
+ 'tax' => 'pajak',
+ 'tax_rate' => 'tarif pajak',
+ 'type' => 'tipe',
+ 'area' => 'Wilayah',
+ 'percentage' => 'persentase',
+ 'fixed_tax_rate' => 'tarif tetap',
+ 'tax_rates_index' => 'Daftar tarif pajak',
+ 'tax_rates_create' => 'Buat tarif pajak',
+ 'tax_rates_show' => 'Detail Tarif Pajak',
+ 'tax_rates_update' => 'Perbarui tarif pajak',
+ 'tax_rates_delete' => 'Hapus tarif pajak',
+];
diff --git a/resources/lang/id/admin/theme.php b/resources/lang/id/admin/theme.php
new file mode 100644
index 00000000..7f22ab59
--- /dev/null
+++ b/resources/lang/id/admin/theme.php
@@ -0,0 +1,18 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'page_title' => 'Template Saya',
+ 'theme_name' => 'Tema default',
+ 'enabled_text' => 'Saat ini diaktifkan',
+ 'theme_pop_checkbox' => 'Impor data demo',
+ 'theme_pop_text' => 'Jika Anda memeriksa Impor data demo, itu mungkin menimpa tata letak halaman yang dikonfigurasi, kategori, produk, dan data lainnya, harap buat cadangan terlebih dahulu! ',
+];
diff --git a/resources/lang/id/admin/user.php b/resources/lang/id/admin/user.php
new file mode 100644
index 00000000..aeec801a
--- /dev/null
+++ b/resources/lang/id/admin/user.php
@@ -0,0 +1,21 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'admin_users_index' => 'Daftar Pengguna',
+ 'admin_users_create' => 'Buat Pengguna',
+ 'admin_users_show' => 'Detail Pengguna',
+ 'admin_users_update' => 'Perbarui Pengguna',
+ 'admin_users_delete' => 'Hapus pengguna',
+ 'verify_code_expired' => 'Kode verifikasi Anda telah kedaluwarsa (10 menit), silakan dapatkan lagi',
+ 'verify_code_error' => 'Captcha Anda salah',
+ 'account_not_exist' => 'Akun tidak ada',
+];
diff --git a/resources/lang/id/admin/zone.php b/resources/lang/id/admin/zone.php
new file mode 100644
index 00000000..ac910f46
--- /dev/null
+++ b/resources/lang/id/admin/zone.php
@@ -0,0 +1,21 @@
+
+ * @created 2022-08-29 17:21:38
+ * @modified 2022-08-29 17:21:38
+ */
+return [
+ 'zone_name' => 'nama provinsi',
+ 'country_of_origin' => 'Negara',
+
+ 'zones_index' => 'Daftar provinsi',
+ 'zones_create' => 'Buat provinsi',
+ 'zones_update' => 'Perbarui provinsi',
+ 'zones_delete' => 'Hapus provinsi',
+
+ 'error_country' => 'Silakan pilih negara',
+];
diff --git a/resources/lang/id/auth.php b/resources/lang/id/auth.php
new file mode 100644
index 00000000..85042910
--- /dev/null
+++ b/resources/lang/id/auth.php
@@ -0,0 +1,20 @@
+ 'ketidakcocokan kata sandi akun',
+ 'password' => 'Kata sandi salah',
+ 'throttle' => 'Terlalu banyak kegagalan. Tolong :seconds Coba lagi dalam hitungan menit.',
+
+];
diff --git a/resources/lang/id/brand.php b/resources/lang/id/brand.php
new file mode 100644
index 00000000..79455ce9
--- /dev/null
+++ b/resources/lang/id/brand.php
@@ -0,0 +1,16 @@
+
+ * @created 2022-08-26 17:33:32
+ * @modified 2022-08-26 17:33:32
+ */
+
+return [
+ 'name' => 'Nama merek',
+ 'icon' => 'ikon',
+ 'first_letter' => 'inisial',
+];
diff --git a/resources/lang/id/cart.php b/resources/lang/id/cart.php
new file mode 100644
index 00000000..5cc6a1c7
--- /dev/null
+++ b/resources/lang/id/cart.php
@@ -0,0 +1,16 @@
+
+ * @created 2022-08-26 15:25:29
+ * @modified 2022-08-26 15:25:29
+ */
+
+return [
+ 'sku_id' => 'ID SKU',
+ 'quantity' => 'kuantitas yang dibeli',
+ 'stock_out' => 'stok tidak mencukupi',
+];
diff --git a/resources/lang/id/category.php b/resources/lang/id/category.php
new file mode 100644
index 00000000..d9c47a5b
--- /dev/null
+++ b/resources/lang/id/category.php
@@ -0,0 +1,15 @@
+
+ * @created 2022-08-29 20:43:32
+ * @modified 2022-08-29 20:43:32
+ */
+
+return [
+ 'name' => 'nama klasifikasi',
+ 'children' => 'subkategori',
+];
diff --git a/resources/lang/id/common.php b/resources/lang/id/common.php
new file mode 100644
index 00000000..ccb3c2ce
--- /dev/null
+++ b/resources/lang/id/common.php
@@ -0,0 +1,96 @@
+
+ * @created 2022-07-28 17:21:38
+ * @modified 2022-07-28 17:21:38
+ */
+return [
+ 'error_required' => 'Silakan isi :name', // 这个有用别删了,:name 是一个变量
+ 'error_input_required' => 'Bidang input tidak boleh kosong',
+ 'error_form' => 'Harap periksa apakah formulir diisi dengan benar',
+ 'email' => 'kotak surat',
+ 'unauthenticated' => 'Silakan masuk dulu',
+ 'success' => 'Sukses',
+ 'no_data' => 'Tidak ada data~',
+ 'empty_items' => 'Tidak ada data',
+ 'created_success' => 'Berhasil dibuat!',
+ 'deleted_success' => 'Hapus berhasil!',
+ 'restored_success' => 'Pemulihan berhasil!',
+ 'updated_success' => 'Pembaruan berhasil!',
+ 'edit_success' => 'Berhasil dimodifikasi!',
+ 'get_success' => 'Dapatkan!',
+ 'all' => 'Semua',
+ 'status' => 'Status',
+ 'enable' => 'aktifkan',
+ 'disable' => 'Nonaktifkan',
+ 'enabled' => 'aktifkan',
+ 'disabled' => 'Nonaktifkan',
+ 'home' => 'Rumah',
+ 'submit' => 'Kirim',
+ 'title' => 'Judul',
+ 'save' => 'Menyimpan',
+ 'cancel' => 'Batal',
+ 'confirm' => 'OKE',
+ 'no' => 'Tidak',
+ 'yes' => 'Iya',
+ 'delete' => 'hapus',
+ 'delete_all' => 'Hapus semua',
+ 'sign_out' => 'Keluar',
+ 'contact_us' => 'Hubungi Kami',
+ 'input' => 'Masukkan pencarian Anda di sini',
+ 'filter' => 'penyaringan',
+ 'reset' => 'mengatur ulang',
+ 'export' => 'ekspor',
+ 'edit' => 'Sunting',
+ 'action' => 'Operasi',
+ 'add' => 'Tambahkan',
+ 'please_choose' => 'Silakan pilih',
+ 'recommend_size' => 'Ukuran yang disarankan',
+ 'pick_datetime' => 'Pilih waktu',
+ 'confirm_delete' => 'Apakah Anda yakin ingin menghapus?',
+ 'text_hint' => 'Petunjuk',
+ 'restore' => 'Mengembalikan',
+ 'name' => 'Nama',
+ 'image' => 'Gambar',
+ 'data' => 'Data',
+ 'view' => 'Lihat',
+ 'phone' => 'Telepon',
+ 'exit' => 'Keluar',
+ 'return' => 'Kembali',
+ 'language' => 'bahasa',
+ 'select_all' => 'Pilih Semua',
+ 'menu' => 'Menu',
+ 'whether_open' => 'Apakah itu dihidupkan atau tidak',
+ 'default' => 'default',
+ 'to_setting' => 'Pergi untuk mengkonfigurasi',
+ 'low' => 'Rendah',
+ 'high' => 'Tinggi',
+ 'sales' => 'penjualan',
+ 'showing_page' => '1-:per_page biasa :total data',
+ 'text_grid' => 'kisi',
+ 'text_list' => 'Daftar',
+ 'text_form' => 'Dari',
+ 'text_to' => 'untuk',
+ 'batch_setting' => 'Pengaturan batch',
+ 'show_all' => 'Lihat semua',
+
+ 'id' => 'ID',
+ 'created_at' => 'waktu penciptaan',
+ 'updated_at' => 'Waktu Modifikasi',
+ 'sort_order' => 'penyortiran',
+ 'error_page' => 'Data yang Anda akses tidak ada atau telah dihapus~',
+ 'error_page_btn' => 'Kembali ke halaman sebelumnya',
+ 'no_repeat' => 'Jangan tambahkan kembali',
+
+ 'order' => [
+ 'unpaid' => 'Dibayar',
+ 'paid' => 'dibayar',
+ 'shipped' => 'dikirim',
+ 'completed' => 'Selesai',
+ 'cancelled' => 'dibatalkan',
+ ],
+];
diff --git a/resources/lang/id/currency.php b/resources/lang/id/currency.php
new file mode 100644
index 00000000..beac02b3
--- /dev/null
+++ b/resources/lang/id/currency.php
@@ -0,0 +1,23 @@
+
+ * @created 2022-08-29 20:28:59
+ * @modified 2022-08-29 20:28:59
+ */
+
+return [
+ 'decimal_point' => '.',
+ 'thousand_point' => ',',
+ 'name' => 'Nama',
+ 'code' => 'pengkodean',
+ 'icon' => 'ikon',
+ 'symbol_left' => 'simbol kiri',
+ 'symbol_right' => 'simbol kanan',
+ 'value' => 'nilai tukar',
+ 'decimal_place' => 'tempat desimal',
+ 'latest_value' => 'Nilai tukar terbaru',
+];
diff --git a/resources/lang/id/customer.php b/resources/lang/id/customer.php
new file mode 100644
index 00000000..8bba61d8
--- /dev/null
+++ b/resources/lang/id/customer.php
@@ -0,0 +1,17 @@
+
+ * @created 2022-08-26 18:41:07
+ * @modified 2022-08-26 18:41:07
+ */
+
+return [
+ 'name' => 'Nama',
+ 'email' => 'Surel',
+ 'from' => 'Sumber Terdaftar',
+ 'customer_group' => 'Grup Pelanggan',
+];
diff --git a/resources/lang/id/customer_group.php b/resources/lang/id/customer_group.php
new file mode 100644
index 00000000..fce1e2c5
--- /dev/null
+++ b/resources/lang/id/customer_group.php
@@ -0,0 +1,15 @@
+
+ * @created 2022-08-26 18:41:07
+ * @modified 2022-08-26 18:41:07
+ */
+
+return [
+ 'level' => 'Kelas',
+ 'name' => 'Nama Grup Pelanggan',
+];
diff --git a/resources/lang/id/mail.php b/resources/lang/id/mail.php
new file mode 100644
index 00000000..377894e2
--- /dev/null
+++ b/resources/lang/id/mail.php
@@ -0,0 +1,27 @@
+
+ * @created 2022-08-22 18:18:59
+ * @modified 2022-08-22 18:18:59
+ */
+
+return [
+ 'order_success' => 'Pesanan berhasil dikirim',
+ 'order_update' => 'Pembaruan Status Pesanan',
+ 'order_success_info' => 'Pesanan Anda telah berhasil dikirim, berikut adalah detail pesanan',
+ 'not_oneself' => 'Tindakan non-pribadi dapat diabaikan. ',
+ 'customer_name' => 'hormat :name Halo pengguna!',
+ 'sincerely' => 'Hormat kami',
+ 'team' => 'Tim',
+ 'order_update_status' => 'Pesanan Anda :number Status diperbarui menjadi',
+ 'welcome_register' => 'Selamat Datang untuk Mendaftar',
+ 'register_end' => 'Untuk menyelesaikan pendaftaran, silakan klik tombol di bawah ini untuk kembali ke toko. ',
+ 'btn_buy_now' => 'Beli Sekarang',
+ 'retrieve_password_title' => 'Ambil kata sandi',
+ 'retrieve_password_text' => 'Anda memulihkan kata sandi Anda, silakan klik tombol di bawah ini untuk menyelesaikan. ',
+ 'retrieve_password_btn' => 'Klik di sini untuk mengatur ulang kata sandi',
+];
diff --git a/resources/lang/id/order.php b/resources/lang/id/order.php
new file mode 100644
index 00000000..52cacdb0
--- /dev/null
+++ b/resources/lang/id/order.php
@@ -0,0 +1,55 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'id' => 'ID',
+ 'number' => 'Nomor pesanan',
+ 'customer_name' => 'Nama Pelanggan',
+ 'payment_method' => 'Metode Pembayaran',
+ 'email' => 'Surel',
+ 'telephone' => 'Nomor kontak',
+ 'created_at' => 'waktu penciptaan',
+ 'updated_at' => 'Perbarui waktu',
+ 'status' => 'Status',
+ 'status_format' => 'Status',
+ 'total' => 'Total pesanan',
+ 'express_number' => 'nomor pelacakan',
+ 'express_company' => 'kurir',
+
+ 'order_shipments' => 'Informasi Pengiriman',
+
+ 'address_info' => 'Informasi Alamat',
+ 'shipping_address' => 'Alamat pengiriman',
+ 'payment_address' => 'alamat penagihan',
+ 'order_status' => 'Status Pesanan',
+ 'current_status' => 'keadaan saat ini',
+ 'change_to_status' => 'ubah status',
+ 'comment' => 'Informasi Keterangan',
+ 'submit_status' => 'Perbarui Status',
+
+ 'product_info' => 'Informasi Produk',
+ 'product_name' => 'Nama',
+ 'product_price' => 'Harga',
+ 'product_sub_price' => 'Subtotal',
+ 'product_quantity' => 'kuantitas',
+ 'product_sku' => 'SKU',
+
+ 'action_history' => 'log operasi',
+ 'history_status' => 'Status',
+ 'history_comment' => 'Keterangan',
+ 'history_created_at' => 'Tanggal Pembaruan',
+
+ 'unpaid' => 'Dibayar',
+ 'paid' => 'dibayar',
+ 'shipped' => 'dikirim',
+ 'completed' => 'Selesai',
+ 'cancelled' => 'dibatalkan',
+];
diff --git a/resources/lang/id/page.php b/resources/lang/id/page.php
new file mode 100644
index 00000000..c50dcd54
--- /dev/null
+++ b/resources/lang/id/page.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-07-28 20:59:38
+ * @modified 2022-07-28 20:59:38
+ */
+return [
+ 'title' => 'Judul',
+ 'content' => 'Konten',
+];
diff --git a/resources/lang/id/page_category.php b/resources/lang/id/page_category.php
new file mode 100644
index 00000000..c5d7f58d
--- /dev/null
+++ b/resources/lang/id/page_category.php
@@ -0,0 +1,17 @@
+
+ * @created 2022-07-28 20:59:38
+ * @modified 2022-07-28 20:59:38
+ */
+return [
+ 'index' => 'Blog Berita',
+ 'author' => 'Penulis',
+ 'views' => 'Jumlah penayangan',
+ 'created_at' => 'Waktu rilis',
+ 'text_summary' => 'Abstrak',
+];
diff --git a/resources/lang/id/pagination.php b/resources/lang/id/pagination.php
new file mode 100644
index 00000000..6ab8da92
--- /dev/null
+++ b/resources/lang/id/pagination.php
@@ -0,0 +1,19 @@
+ 'Mantan',
+ 'next' => 'Depan',
+
+];
diff --git a/resources/lang/id/passwords.php b/resources/lang/id/passwords.php
new file mode 100644
index 00000000..107c118d
--- /dev/null
+++ b/resources/lang/id/passwords.php
@@ -0,0 +1,22 @@
+ 'Reset kata sandi selesai! ',
+ 'sent' => 'Email pengaturan ulang kata sandi telah dikirim! ',
+ 'throttled' => 'Silakan coba lagi nanti. ',
+ 'token' => 'Kode reset kata sandi salah. ',
+ 'user' => 'Pengguna untuk alamat email ini tidak dapat ditemukan. ',
+
+];
diff --git a/resources/lang/id/product.php b/resources/lang/id/product.php
new file mode 100644
index 00000000..2383d2f5
--- /dev/null
+++ b/resources/lang/id/product.php
@@ -0,0 +1,31 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'name' => 'Nama',
+ 'sku' => 'SKU',
+ 'price' => 'Harga',
+ 'origin_price' => 'Harga asli',
+ 'cost_price' => 'harga biaya',
+ 'brand' => 'merek',
+ 'category' => 'klasifikasi',
+ 'model' => 'Model',
+ 'quantity' => 'inventaris',
+ 'image' => 'Gambar',
+ 'kg' => 'kg',
+ 'g' => 'g',
+ 'oz' => 'ons',
+ 'lb' => 'pound',
+
+ 'active' => 'di rak',
+ 'inactive' => 'penghapusan',
+ 'has_been_inactive' => 'Item telah dihapus',
+];
diff --git a/resources/lang/id/rma.php b/resources/lang/id/rma.php
new file mode 100644
index 00000000..379771b9
--- /dev/null
+++ b/resources/lang/id/rma.php
@@ -0,0 +1,31 @@
+
+ * @created 2022-08-22 19:27:35
+ * @modified 2022-08-22 19:27:35
+ */
+
+return [
+ 'order_id' => 'Pesan',
+ 'order_product_id' => 'Pesan Barang',
+ 'customer_id' => 'Pelanggan',
+ 'quantity' => 'kuantitas',
+ 'opened' => 'Dibongkar',
+ 'rma_reason_id' => 'alasan pengembalian atau penukaran',
+ 'type' => 'jenis layanan purna jual',
+
+ 'status_pending' => 'tertunda',
+ 'status_rejected' => 'ditolak',
+ 'status_approved' => 'Disetujui (menunggu pengembalian barang)',
+ 'status_shipped' => 'dikirim (barang dikembalikan)',
+ 'status_completed' => 'Selesai',
+ 'type_return' => 'Kembali',
+ 'type_exchange' => 'Pertukaran',
+ 'type_repair' => 'Perbaikan',
+ 'type_reissue' => 'Menerbitkan Ulang Barang',
+ 'type_refund' => 'hanya pengembalian dana',
+];
diff --git a/resources/lang/id/role.php b/resources/lang/id/role.php
new file mode 100644
index 00000000..9186a891
--- /dev/null
+++ b/resources/lang/id/role.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-29 20:33:32
+ * @modified 2022-08-29 20:33:32
+ */
+
+return [
+ 'name' => 'Nama peran',
+];
diff --git a/resources/lang/id/shop/account.php b/resources/lang/id/shop/account.php
new file mode 100644
index 00000000..62479074
--- /dev/null
+++ b/resources/lang/id/shop/account.php
@@ -0,0 +1,138 @@
+
+ * @created 2022-08-04 10:59:15
+ * @modified 2022-08-04 10:59:15
+ */
+
+return [
+ 'index' => 'Personal Center',
+ 'revise_info' => 'Modify Information',
+ 'collect' => 'Collection',
+ 'coupon' => 'Coupon',
+ 'my_order' => 'My Orders',
+ 'orders' => 'All Orders',
+ 'pending_payment' => 'pending',
+ 'pending_send' => 'To be shipped',
+ 'pending_receipt' => 'To be received',
+ 'after_sales' => 'After-sales',
+ 'no_order' => 'You do not have an order yet!',
+ 'to_buy' => 'Pergi dan pesan',
+ 'order_number' => 'Nomor pesanan',
+ 'order_time' => 'Waktu pemesanan',
+ 'state' => 'Status',
+ 'amount' => 'jumlah',
+ 'check_details' => 'Lihat Detail',
+ 'all' => 'Umum',
+ 'items' => 'Produk',
+ 'verify_code_expired' => 'Kode verifikasi Anda telah kedaluwarsa (10 menit), silakan dapatkan lagi',
+ 'verify_code_error' => 'Captcha Anda salah',
+ 'account_not_exist' => 'Akun tidak ada',
+
+ 'edit' => [
+ 'index' => 'Koreksi Informasi Pribadi',
+ 'modify_avatar' => 'Ubah avatar',
+ 'suggest' => 'Unggah gambar JPG atau PNG. 300 x 300 direkomendasikan. ',
+ 'name' => 'Nama',
+ 'email' => 'kotak surat',
+ 'crop' => 'pangkas',
+ 'password_edit_success' => 'Kata sandi berhasil diubah',
+ 'origin_password_fail' => 'kesalahan kata sandi asli',
+ ],
+
+ 'wishlist' => [
+ 'index' => 'Koleksi Saya',
+ 'product' => 'Komoditas',
+ 'price' => 'Harga',
+ 'check_details' => 'Lihat Detail',
+ ],
+
+ 'order' => [
+ 'index' => 'Pesanan Saya',
+ 'completed' => 'Tanda terima dikonfirmasi',
+ 'cancelled' => 'Pesanan dibatalkan',
+ 'order_details' => 'Detail pesanan',
+ 'amount' => 'jumlah',
+ 'state' => 'Status',
+ 'order_number' => 'Nomor pesanan',
+ 'check' => 'Lihat',
+
+ 'order_info' => [
+ 'index' => 'Detail pesanan',
+ 'order_details' => 'Detail pesanan',
+ 'to_pay' => 'Pergi bayar',
+ 'cancel' => 'Batalkan Pesanan',
+ 'confirm_receipt' => 'Pengakuan penerimaan',
+ 'order_number' => 'Nomor pesanan',
+ 'order_date' => 'Tanggal Pemesanan',
+ 'state' => 'Status',
+ 'order_amount' => 'Jumlah pesanan',
+ 'order_items' => 'Pesan Barang',
+ 'apply_after_sales' => 'Terapkan untuk purna jual',
+ 'order_total' => 'Total Pesanan',
+ 'logistics_status' => 'Status logistik',
+ 'order_status' => 'Status Pesanan',
+ 'remark' => 'Keterangan',
+ 'update_time' => 'Perbarui waktu',
+ ],
+
+ 'order_success' => [
+ 'order_success' => 'Selamat, pembuatan pesanan berhasil! ',
+ 'order_number' => 'Nomor pesanan',
+ 'amounts_payable' => 'Jumlah yang harus dibayar',
+ 'payment_method' => 'Metode pembayaran',
+ 'view_order' => 'Lihat detail pesanan',
+ 'pay_now' => 'Bayar Sekarang',
+ 'kind_tips' => 'Tips: Pesanan Anda telah berhasil dibuat, harap selesaikan pembayaran sesegera mungkin ~ ',
+ 'also' => 'Kamu juga bisa',
+ 'continue_purchase' => 'Lanjutkan pembelian',
+ 'contact_customer_service' => 'Jika Anda memiliki masalah selama proses pemesanan, Anda selalu dapat menghubungi layanan pelanggan kami',
+ 'emaill' => 'kotak surat',
+ 'service_hotline' => 'Hotline Layanan',
+ ],
+
+ ],
+
+ 'addresses' => [
+ 'index' => 'Alamat Saya',
+ 'add_address' => 'Tambahkan Alamat Baru',
+ 'default_address' => 'alamat default',
+ 'delete' => 'hapus',
+ 'edit' => 'Sunting',
+ 'enter_name' => 'Silakan masukkan nama',
+ 'enter_phone' => 'Silakan masukkan nomor kontak',
+ 'enter_address' => 'Silakan masukkan alamat lengkap 1',
+ 'select_province' => 'Silakan pilih provinsi',
+ 'enter_city' => 'Silakan isi kota',
+ 'confirm_delete' => 'Anda yakin ingin menghapus alamatnya? ',
+ 'hint' => 'Petunjuk',
+ 'check_form' => 'Harap periksa apakah formulir diisi dengan benar',
+ ],
+
+ 'rma' => [
+ 'index' => 'Purna jual saya',
+ 'commodity' => 'Komoditas',
+ 'quantity' => 'kuantitas',
+ 'service_type' => 'jenis layanan',
+ 'return_reason' => 'alasan pengembalian',
+ 'creation_time' => 'waktu penciptaan',
+ 'check' => 'Lihat',
+
+ 'rma_info' => [
+ 'index' => 'Detail purna jual',
+ ],
+
+ 'rma_form' => [
+ 'index' => 'Kirim informasi purna jual',
+ 'service_type' => 'jenis layanan',
+ 'return_quantity' => 'Jumlah pengembalian',
+ 'unpacked' => 'Dibongkar',
+ 'return_reason' => 'alasan pengembalian',
+ 'remark' => 'Keterangan',
+ ],
+ ],
+];
diff --git a/resources/lang/id/shop/brands.php b/resources/lang/id/shop/brands.php
new file mode 100644
index 00000000..11d376c9
--- /dev/null
+++ b/resources/lang/id/shop/brands.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-04 10:59:15
+ * @modified 2022-08-04 10:59:15
+ */
+
+return [
+ 'index' => 'Daftar Merek',
+];
diff --git a/resources/lang/id/shop/carts.php b/resources/lang/id/shop/carts.php
new file mode 100644
index 00000000..cbdfda17
--- /dev/null
+++ b/resources/lang/id/shop/carts.php
@@ -0,0 +1,40 @@
+
+ * @created 2022-08-17 23:10:20
+ * @modified 2022-08-17 23:10:20
+ */
+
+return [
+ 'index' => 'keranjang belanja',
+ 'added_to_cart' => 'Tambahkan ke troli',
+ 'select_all' => 'Pilih Semua',
+ 'commodity' => 'Komoditas',
+ 'quantity' => 'kuantitas',
+ 'subtotal' => 'Subtotal',
+ 'product_total' => 'Total Barang Dagangan',
+ 'customer_discount' => 'Manfaat Anggota',
+ 'order_total' => 'Jumlah total yang harus dibayar',
+ 'shipping_fee' => 'pengiriman',
+ 'all' => 'Semua',
+ 'selected' => 'terpilih',
+ 'to_checkout' => 'Pergi ke checkout',
+ 'cart_empty' => 'Keranjang Anda kosong',
+ 'go_buy' => 'Anda bisa pergi dan melihat apa yang ingin Anda beli',
+ 'go_shopping' => 'Pergi berbelanja',
+ 'must_select' => 'Silakan pilih setidaknya satu produk',
+ 'mini' => 'Keranjang belanja Anda',
+ 'delete' => 'hapus',
+ 'check_cart' => 'Lihat Keranjang',
+
+ 'invalid_customer' => 'Pelanggan keranjang belanja tidak valid',
+ 'empty_selected_products' => 'keranjang item yang dipilih kosong',
+ 'invalid_shipping_address' => 'Alamat pengiriman tidak valid',
+ 'invalid_payment_address' => 'Alamat penagihan tidak valid',
+ 'invalid_shipping_method' => 'metode pengiriman tidak tersedia',
+ 'invalid_payment_method' => 'Metode pembayaran tidak tersedia',
+];
diff --git a/resources/lang/id/shop/checkout.php b/resources/lang/id/shop/checkout.php
new file mode 100644
index 00000000..dfc70aa1
--- /dev/null
+++ b/resources/lang/id/shop/checkout.php
@@ -0,0 +1,41 @@
+
+ * @created 2022-08-17 23:10:20
+ * @modified 2022-08-17 23:10:20
+ */
+
+return [
+ 'index' => 'Checkout',
+ 'address' => 'Alamat pengiriman',
+ 'payment_address' => 'alamat penagihan',
+ 'same_as_shipping_address' => 'alamat penagihan dan alamat pengiriman',
+ 'chosen' => 'terpilih',
+ 'edit' => 'Sunting',
+ 'choose_another_address' => 'Pilih alamat lain',
+ 'add_new_address' => 'Tambahkan Alamat Baru',
+ 'payment_method' => 'Metode Pembayaran',
+ 'delivery_method' => 'metode pengiriman',
+ 'cart_totals' => 'Jumlah total keranjang belanja',
+ 'submit_order' => 'Kirim Pesanan',
+ 'enter_name' => 'Silakan masukkan nama',
+ 'enter_phone' => 'Silakan masukkan nomor kontak',
+ 'enter_address' => 'Silakan masukkan alamat lengkap 1',
+ 'select_province' => 'Silakan pilih provinsi',
+ 'enter_city' => 'Silakan isi kota',
+ 'check_form' => 'Harap periksa apakah formulir diisi dengan benar',
+ 'error_payment_address' => 'Silakan pilih alamat penagihan',
+ 'checkout_success_title' => 'Pesanan berhasil dibayar! ',
+
+ 'payment' => [
+ 'index' => 'Tolong bayar',
+ 'please_pay' => 'Pesanan berhasil dikirim, harap bayar',
+ 'order_number' => 'Nomor pesanan',
+ 'amounts_payable' => 'Jumlah yang harus dibayar',
+ 'payment_method' => 'Metode Pembayaran',
+ ],
+];
diff --git a/resources/lang/id/shop/common.php b/resources/lang/id/shop/common.php
new file mode 100644
index 00000000..a3fdda04
--- /dev/null
+++ b/resources/lang/id/shop/common.php
@@ -0,0 +1,19 @@
+
+ * @created 2022-08-17 23:10:20
+ * @modified 2022-08-17 23:10:20
+ */
+
+return [
+ 'home' => 'Rumah',
+ 'submit' => 'Kirim',
+ 'cancel' => 'Batal',
+ 'confirm' => 'OKE',
+ 'no' => 'Tidak',
+ 'yes' => 'Iya',
+];
diff --git a/resources/lang/id/shop/currency.php b/resources/lang/id/shop/currency.php
new file mode 100644
index 00000000..a4384b6b
--- /dev/null
+++ b/resources/lang/id/shop/currency.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-07-28 17:21:38
+ * @modified 2022-07-28 17:21:38
+ */
+return [
+ 'decimal_point' => '.',
+ 'thousand_point' => ',',
+];
diff --git a/resources/lang/id/shop/file.php b/resources/lang/id/shop/file.php
new file mode 100644
index 00000000..12e2aa91
--- /dev/null
+++ b/resources/lang/id/shop/file.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-30 12:03:19
+ * @modified 2022-08-30 12:03:19
+ */
+
+return [
+ 'uploaded_success' => 'Pengunggahan berhasil',
+];
diff --git a/resources/lang/id/shop/forgotten.php b/resources/lang/id/shop/forgotten.php
new file mode 100644
index 00000000..07bf477c
--- /dev/null
+++ b/resources/lang/id/shop/forgotten.php
@@ -0,0 +1,33 @@
+
+ * @created 2022-07-28 17:21:38
+ * @modified 2022-07-28 17:21:38
+ */
+
+return [
+ 'index' => 'Lupa kata sandi',
+ 'follow_prompt' => 'Ikuti petunjuk untuk mengambil kata sandi Anda',
+ 'email_forCode' => 'Silakan masukkan alamat email Anda untuk mendapatkan kode verifikasi',
+ 'enter_password' => 'Silakan masukkan kata sandi baru',
+ 'email' => 'kotak surat',
+ 'email_address' => 'alamat email',
+ 'verification_code' => 'captcha',
+ 'password' => 'kata sandi',
+ 'confirm_password' => 'Konfirmasi Kata Sandi',
+ 'send_code' => 'Kirim kode verifikasi',
+ 'to_back' => 'Kembali ke langkah sebelumnya',
+ 'enter_password' => 'Silakan masukkan kata sandi',
+ 'enter_email' => 'Silakan masukkan email',
+ 'please_confirm' => 'Harap konfirmasi kata sandi',
+ 'password_err' => 'Kata sandi yang dimasukkan dua kali tidak konsisten!',
+ 'email_err' => 'Silakan masukkan alamat email yang benar!',
+ 'enter_code' => 'Silakan masukkan kode verifikasi',
+ 'verification_code_sent' => 'Captcha telah dikirim, silakan periksa dan masukkan captcha',
+ 'password_updated' => 'Kata sandi diubah',
+];
diff --git a/resources/lang/id/shop/login.php b/resources/lang/id/shop/login.php
new file mode 100644
index 00000000..777b3896
--- /dev/null
+++ b/resources/lang/id/shop/login.php
@@ -0,0 +1,40 @@
+
+ * @created 2022-07-28 17:21:38
+ * @modified 2022-07-28 17:21:38
+ */
+
+return [
+ 'index' => 'Login dan Pendaftaran Pengguna',
+ 'login_and_sign' => 'Login/Registrasi',
+ 'home' => 'Rumah',
+ 'library' => 'Pusat Pribadi',
+ 'login' => 'Masuk',
+ 'already' => 'Sudah menjadi pelanggan kami? ',
+ 'description' => 'Sudah menjadi pelanggan kami? ',
+ 'email' => 'Surat',
+ 'email_address' => 'alamat email',
+ 'password' => 'kata sandi',
+ 'forget_password' => 'Lupa kata sandi',
+ 'new' => 'Akun Baru',
+ 'not_already' => 'Belum menjadi pelanggan terdaftar kami? ',
+ 'confirm_password' => 'Konfirmasi Kata Sandi',
+ 'register' => 'Daftar',
+ 'enter_password' => 'Silakan masukkan kata sandi',
+ 'enter_email' => 'Silakan masukkan email',
+ 'please_confirm' => 'Harap konfirmasi kata sandi',
+ 'password_err' => 'Kata sandi yang dimasukkan dua kali tidak konsisten!',
+ 'email_err' => 'Silakan masukkan alamat email yang benar!',
+ 'check_form' => 'Harap periksa apakah formulir diisi dengan benar',
+ 'email_or_password_error' => 'Email atau kata sandi salah!',
+ 'customer_inactive' => 'Pengguna telah dinonaktifkan',
+ 'login_successfully' => 'Login berhasil',
+ 'register_success' => 'Pendaftaran berhasil',
+ 'third_party_logins' => 'Login Pihak Ketiga',
+];
diff --git a/resources/lang/id/shop/order.php b/resources/lang/id/shop/order.php
new file mode 100644
index 00000000..87c5c7ca
--- /dev/null
+++ b/resources/lang/id/shop/order.php
@@ -0,0 +1,18 @@
+
+ * @created 2022-07-28 17:21:38
+ * @modified 2022-07-28 17:21:38
+ */
+
+return [
+ 'invalid_order' => 'pesanan tidak valid',
+ 'confirm_order' => 'Pengguna mengonfirmasi penerimaan',
+ 'cancel_order' => 'Pengguna membatalkan pesanan',
+ 'order_already_paid' => 'Pesanan dibayar',
+];
diff --git a/resources/lang/id/shop/products.php b/resources/lang/id/shop/products.php
new file mode 100644
index 00000000..9325b815
--- /dev/null
+++ b/resources/lang/id/shop/products.php
@@ -0,0 +1,21 @@
+
+ * @created 2022-08-18 08:31:03
+ * @modified 2022-08-18 08:31:03
+ */
+
+return [
+ 'search' => 'cari',
+ 'add_to_favorites' => 'Tambahkan ke favorit',
+ 'add_to_cart' => 'Tambahkan ke Keranjang',
+ 'buy_now' => 'Beli Sekarang',
+ 'product_details' => 'Detail Produk',
+ 'in_stock' => 'persediaan',
+ 'out_stock' => 'Stok habis',
+ 'model' => 'Model',
+];
diff --git a/resources/lang/id/shop/steps.php b/resources/lang/id/shop/steps.php
new file mode 100644
index 00000000..41ca889a
--- /dev/null
+++ b/resources/lang/id/shop/steps.php
@@ -0,0 +1,18 @@
+
+ * @created 2022-08-18 08:31:03
+ * @modified 2022-08-18 08:31:03
+ */
+
+return [
+ 'index' => 'Langkah',
+ 'cart' => 'keranjang belanja',
+ 'checkout' => 'Checkout',
+ 'submitted_successfully' => 'Pengiriman berhasil',
+ 'payment' => 'Pembayaran',
+];
diff --git a/resources/lang/id/shop/wishlist.php b/resources/lang/id/shop/wishlist.php
new file mode 100644
index 00000000..728b6d0c
--- /dev/null
+++ b/resources/lang/id/shop/wishlist.php
@@ -0,0 +1,15 @@
+
+ * @created 2022-08-22 20:20:37
+ * @modified 2022-08-22 20:20:37
+ */
+
+return [
+ 'add_wishlist_success' => 'Tambahkan ke koleksi berhasil',
+ 'remove_wishlist_success' => 'Koleksi berhasil dihapus',
+];
diff --git a/resources/lang/id/user.php b/resources/lang/id/user.php
new file mode 100644
index 00000000..87e0732e
--- /dev/null
+++ b/resources/lang/id/user.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-29 20:33:32
+ * @modified 2022-08-29 20:33:32
+ */
+
+return [
+ 'email' => 'Email',
+];
diff --git a/resources/lang/id/validation.php b/resources/lang/id/validation.php
new file mode 100644
index 00000000..d5e88a6c
--- /dev/null
+++ b/resources/lang/id/validation.php
@@ -0,0 +1,169 @@
+ ':attribute Harus diterima.',
+ 'accepted_if' => 'sambil:other bagi :value Waktu,:attribute Harus diterima.',
+ 'active_url' => ':attribute Harus berupa URL yang valid.',
+ 'after' => ':attribute Harus :date Tanggal setelah itu.',
+ 'after_or_equal' => ':attribute Harus :date Setelah atau tanggal yang sama.',
+ 'alpha' => ':attribute Hanya dapat berisi huruf.',
+ 'alpha_dash' => ':attribute Hanya dapat berisi huruf, angka, tanda hubung, atau garis bawah.',
+ 'alpha_num' => ':attribute Hanya dapat berisi huruf dan angka.',
+ 'array' => ':attribute Harus berupa array.',
+ 'before' => ':attribute Harus :date Tanggal sebelumnya.',
+ 'before_or_equal' => ':attribute Harus :date Sebelum atau tanggal yang sama.',
+ 'between' => [
+ 'numeric' => ':attribute Harus :min tiba :max Antara.',
+ 'file' => ':attribute Harus :min tiba :max KB Antara.',
+ 'string' => ':attribute Harus :min tiba :max Karakter.',
+ 'array' => ':attribute Harus :min tiba :max antar item.',
+ ],
+ 'boolean' => ':attribute Karakter harus true atau false。',
+ 'confirmed' => ':attribute Konfirmasi kedua tidak cocok.',
+ 'current_password' => 'Kata sandi tidak salah.',
+ 'date' => ':attribute Harus tanggal valid.',
+ 'date_equals' => ':attribute Harus sama dengan :date。',
+ 'date_format' => ':attribute dengan format yang diberikan :format Ketidaksesuaian.',
+ 'declined' => ':attribute Harus ditolak.',
+ 'declined_if' => 'sambil :other bagi :value.Waktu,:attribute Harus ditolak.',
+ 'different' => ':attribute Harus berbeda dari :other。',
+ 'digits' => ':attribute Harus :digits Jumlah digit.',
+ 'digits_between' => ':attribute Harus :min dan :max antar bit.',
+ 'dimensions' => ':attribute Memiliki ukuran gambar yang tidak valid.',
+ 'distinct' => ':attribute Bidang memiliki nilai duplikat.',
+ 'email' => ':attribute Harus alamat email yang valid.',
+ 'ends_with' => ':attribute Harus dimulai dengan :values Berakhirlah.',
+ 'exists' => 'Dipilih :attribute tidak valid.',
+ 'file' => ':attribute Harus berupa file.',
+ 'filled' => ':attribute diperlukan.',
+ 'gt' => [
+ 'numeric' => ':attribute Harus lebih besar dari :value。',
+ 'file' => ':attribute Harus lebih besar dari :value KB。',
+ 'string' => ':attribute Harus melebihi :value Karakter.',
+ 'array' => ':attribute Harus melebihi :value Benda.',
+ ],
+ 'gte' => [
+ 'numeric' => ':attribute Harus lebih besar dari atau sama dengan :value。',
+ 'file' => ':attribute Harus lebih besar dari atau sama dengan :value KB。',
+ 'string' => ':attribute Harus lebih dari atau sama dengan :value Karakter.',
+ 'array' => ':attribute Harus lebih dari atau sama dengan :value Benda.',
+ ],
+ 'image' => ':attribute Harus dalam format gambar.',
+ 'in' => 'Dipilih :attribute tidak valid.',
+ 'in_array' => ':attribute Bidang tidak ada :other。',
+ 'integer' => ':attribute Harus berupa bilangan bulat.',
+ 'ip' => ':attribute Harus alamat IP yang valid.',
+ 'ipv4' => ':attribute Harus alamat IPv4 yang valid.',
+ 'ipv6' => ':attribute Harus alamat IPv6 yang valid.',
+ 'json' => ':attribute Harus berupa string JSON yang valid.',
+ 'lt' => [
+ 'numeric' => ':attribute Harus kurang dari :value。',
+ 'file' => ':attribute Harus kurang dari :value KB。',
+ 'string' => ':attribute Harus kurang dari :value Karakter.',
+ 'array' => ':attribute Harus kurang dari :value Benda.',
+ ],
+ 'lte' => [
+ 'numeric' => ':attribute Harus kurang dari atau sama dengan :value。',
+ 'file' => ':attribute Harus kurang dari atau sama dengan :value KB。',
+ 'string' => ':attribute Harus kurang dari atau sama dengan :value Karakter.',
+ 'array' => ':attribute Harus kurang dari atau sama dengan :value Benda.',
+ ],
+ 'max' => [
+ 'numeric' => ':attribute Panjang maksimum adalah :max Jumlah digit.',
+ 'file' => ':attribute Ukurannya hingga :max KB。',
+ 'string' => ':attribute Panjang maksimum adalah :max Watak.',
+ 'array' => ':attribute Maksimal adalah :max Benda.',
+ ],
+ 'mimes' => ':attribute Jenis file harus :values。',
+ 'mimetypes' => ':attribute Jenis file harus :values。',
+ 'min' => [
+ 'numeric' => ':attribute Panjang minimum adalah :min Jumlah digit.',
+ 'file' => ':attribute Ukurannya setidaknya :min KB。',
+ 'string' => ':attribute Panjang minimum adalah :min Watak.',
+ 'array' => ':attribute Setidaknya :min Benda.',
+ ],
+ 'multiple_of' => ':attribute Harus :value kelipatan .',
+ 'not_in' => 'Dipilih :attribute tidak valid.',
+ 'not_regex' => ':attribute Format tidak valid.',
+ 'numeric' => ':attribute Harus berupa angka.',
+ 'password' => 'Kata sandi salah.',
+ 'present' => ':attribute Bidang harus ada.',
+ 'prohibited' => ':attribute Bidang dilarang.',
+ 'prohibited_if' => ':attribute Bidang dilarang ketika :other bagi :value。',
+ 'prohibited_unless' => ':attribute Bidang dilarang kecuali :other Termasuk :values。',
+ 'prohibits' => ':attribute Bidang dilarang :other。',
+ 'regex' => ':attribute Format tidak valid.',
+ 'required' => ':attribute Bidang ini wajib diisi.',
+ 'required_if' => ':attribute Bidang ini wajib diisi ketika :other ada :value。',
+ 'required_unless' => ':attribute Bidang wajib diisi kecuali :other Ya :values Tengah.',
+ 'required_with' => ':attribute Bidang ini wajib diisi ketika :values Ya ada.',
+ 'required_with_all' => ':attribute Bidang ini wajib diisi ketika :values Ya ada.',
+ 'required_without' => ':attribute Bidang ini wajib diisi ketika :values Tidak ada keberadaan.',
+ 'required_without_all' => ':attribute Bidang ini wajib diisi ketika Tidak satu :values Ya ada.',
+ 'same' => ':attribute dan :other Harus cocok.',
+ 'size' => [
+ 'numeric' => ':attribute Harus :size Jumlah digit.',
+ 'file' => ':attribute Harus :size KB。',
+ 'string' => ':attribute Harus :size Karakter.',
+ 'array' => ':attribute Harus mencakup: :size Benda.',
+ ],
+ 'starts_with' => ':attribute Harus dimulai dengan :values Mulai.',
+ 'string' => ':attribute Harus berupa tali.',
+ 'timezone' => ':attribute Harus zona waktu yang valid.',
+ 'unique' => ':attribute Sudah ada.',
+ 'uploaded' => ':attribute Upload gagal.',
+ 'url' => ':attribute Format tidak valid.',
+ 'uuid' => ':attribute Itu harus menjadi salah satu yang efektif UUID。',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify custom validation messages for attributes using the
+ | convention "attribute.rule" to name the lines. This makes it quick to
+ | specify a specific custom language line for a given attribute rule.
+ |
+ */
+
+ 'custom' => [
+ 'attribute-name' => [
+ 'rule-name' => 'custom-message',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Attributes
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines are used to swap our attribute placeholder
+ | with something more reader friendly such as "E-Mail Address" instead
+ | of "email". This simply helps us make our message more expressive.
+ |
+ */
+
+ 'attributes' => [
+ 'descriptions.en.title' => 'Judul bahasa Inggris',
+ 'descriptions.zh_cn.title' => 'Judul Cina',
+
+ 'tax_rate' => [
+ 'name' => 'Nama pajak',
+ 'type' => 'tipe',
+ 'rate' => 'tarif pajak',
+ ],
+ ],
+
+];
diff --git a/resources/lang/it/admin/common.php b/resources/lang/it/admin/common.php
index 9a64b18b..93cece56 100644
--- a/resources/lang/it/admin/common.php
+++ b/resources/lang/it/admin/common.php
@@ -23,20 +23,20 @@ return [
// header
'home' => 'Gestisci casa',
- 'order' => 'Gestione degli ordini',
- 'rma' => 'Gestione del servizio post vendita',
- 'rma_reason' => 'Gestione del motivo di reso',
- 'product' => 'gestione delle merci',
+ 'order' => 'Degli ordini',
+ 'rma' => 'Del servizio post vendita',
+ 'rma_reason' => 'Del motivo di reso',
+ 'product' => 'Merce',
'brand' => 'gestione del marchio',
'attribute' => 'attribute',
'attribute_group' => 'attribute group',
- 'category' => 'Gestione della classificazione',
- 'customer_group' => 'Gestione del gruppo di clienti',
- 'customer' => 'gestione dei clienti',
- 'page' => 'Gestione dei contenuti',
+ 'category' => 'Della classificazione',
+ 'customer_group' => 'Gruppo di clienti',
+ 'customer' => 'Cliente',
+ 'page' => 'Dei contenuti',
'page_category' => 'Page Category',
- 'setting' => 'Impostazioni di sistema',
- 'plugin' => 'Gestione dei plugin',
+ 'setting' => 'Impostare',
+ 'plugin' => 'Dei plugin',
'admin_user' => 'utente in background',
'admin_role' => 'ruolo utente',
'region' => 'Raggruppamento regionale',
@@ -44,13 +44,13 @@ return [
'tax_class' => 'gestione fiscale',
'currency' => 'gestione del denaro',
'language' => 'gestione della lingua',
- 'zone' => 'Gestione provinciale',
- 'country' => 'Gestione statale',
+ 'zone' => 'Provinciale',
+ 'country' => 'Statale',
'file_manager' => 'gestore di file',
'access_frontend' => 'Visita la reception',
// sidebar
- 'settings_index' => 'Impostazioni di sistema',
+ 'settings_index' => 'Impostare',
'admin_users_index' => 'utente in background',
'plugins_index' => 'Elenco dei plugin',
'regions_index' => 'Raggruppamento regionale',
@@ -69,12 +69,12 @@ return [
'customers_trashed' => 'cestino',
'brands_index' => 'marchio del prodotto',
'orders_index' => 'Lista degli ordini',
- 'rmas_index' => 'Gestione post vendita',
+ 'rmas_index' => 'Post vendita',
'rma_reasons_index' => 'Motivo post vendita',
'customers_index' => 'Elenco clienti',
'customer_groups_index' => 'Gruppo di clienti',
- 'countries_index' => 'Gestione statale',
- 'zones_index' => 'Gestione provinciale',
+ 'countries_index' => 'Statale',
+ 'zones_index' => 'Provinciale',
'update_nav' => 'aggiorna',
'update_title' => 'Trova una nuova versione di BeikeShop, se aggiornare ora',
'update_new_version' => 'ultima versione',
diff --git a/resources/lang/it/admin/dashboard.php b/resources/lang/it/admin/dashboard.php
index b7ce06de..1d1bd78e 100644
--- a/resources/lang/it/admin/dashboard.php
+++ b/resources/lang/it/admin/dashboard.php
@@ -10,6 +10,7 @@
*/
return [
+ 'product_total' => 'Product Total',
'customer_view' => 'visite degli utenti',
'order_total' => 'importo dell\'ordine',
'customer_new' => 'Aggiungi utente',
diff --git a/resources/lang/it/admin/product.php b/resources/lang/it/admin/product.php
index 97e8e01d..f3a1fcbb 100644
--- a/resources/lang/it/admin/product.php
+++ b/resources/lang/it/admin/product.php
@@ -39,6 +39,8 @@ return [
'add_variable_image' => 'Aggiungi immagine specifica',
'default_main_product' => 'prodotto principale predefinito',
'modify_order' => 'Fai doppio clic per modificare, trascina per regolare l\'ordine',
+ 'weight_text' => 'peso',
+ 'weight_class' => 'unità di peso',
'confirm_batch_product' => 'Sei sicuro di voler eliminare i prodotti selezionati in batch?',
'confirm_batch_status' => 'Conferma per modificare lo stato dei prodotti selezionati in batch?',
diff --git a/resources/lang/it/pagination.php b/resources/lang/it/pagination.php
index 445b435e..fda35fc2 100644
--- a/resources/lang/it/pagination.php
+++ b/resources/lang/it/pagination.php
@@ -1,6 +1,6 @@
'Successivo »',
- 'previous' => '« Precedente',
+ 'next' => 'Successivo',
+ 'previous' => 'Precedente',
];
diff --git a/resources/lang/ja/admin/common.php b/resources/lang/ja/admin/common.php
index 14a8f193..42ce151b 100644
--- a/resources/lang/ja/admin/common.php
+++ b/resources/lang/ja/admin/common.php
@@ -10,7 +10,7 @@
*/
return [
- 'admin_panel' => 'バックステージ管理',
+ 'admin_panel' => 'バックステージ',
'edit' => '編集',
'status' => 'ステータス',
'action' => 'アクション',
@@ -22,21 +22,23 @@ return [
'has_no_permission' => 'このページにアクセスする権限がありません。システム管理者に連絡してください。 ',
// header
- 'home' => 'ホームページを管理する',
- 'order' => '注文管理',
- 'rma' => 'アフターサービス管理',
- 'rma_reason' => '返品理由管理',
- 'product' => '製品管理',
- 'brand' => 'ブランド管理',
- 'attribute' => 'attribute',
- 'attribute_group' => 'attribute group',
- 'category' => 'カテゴリ管理',
- 'customer_group' => '顧客グループ管理',
- 'customer' => '顧客管理',
- 'page' => 'コンテンツ管理',
- 'page_category' => 'Page Category',
+ 'home' => '表紙',
+ 'order' => '注文',
+ 'rma' => 'アフターサービス',
+ 'rma_reason' => '返品理由',
+ 'product' => '製品',
+ 'brand' => 'ブランド',
+ 'attribute' => '属性管理',
+ 'attribute_group' => '属性グループ',
+ 'category' => 'カテゴリ',
+ 'customer_group' => '顧客グループ',
+ 'customer' => '顧客',
+ 'page' => 'コンテンツ',
+ 'page_category' => '記事の分類',
'setting' => 'システム設定',
- 'plugin' => 'プラグイン管理',
+ 'plugin' => 'プラグイン',
+ 'design' => 'デザイン',
+ 'marketing' => 'プラグイン市場',
'admin_user' => 'バックエンド ユーザー',
'admin_role' => 'ユーザーの役割',
'region' => '地域のグループ化',
diff --git a/resources/lang/ja/admin/dashboard.php b/resources/lang/ja/admin/dashboard.php
index 1cbb2494..f145a288 100644
--- a/resources/lang/ja/admin/dashboard.php
+++ b/resources/lang/ja/admin/dashboard.php
@@ -10,6 +10,7 @@
*/
return [
+ 'product_total' => 'Product Total',
'customer_view' => 'ユーザーの訪問',
'order_total' => '注文金額',
'customer_new' => 'ユーザーを追加',
diff --git a/resources/lang/ja/admin/product.php b/resources/lang/ja/admin/product.php
index 9a571b1f..9df29d9f 100644
--- a/resources/lang/ja/admin/product.php
+++ b/resources/lang/ja/admin/product.php
@@ -39,6 +39,8 @@ return [
'add_variable_image' => '仕様画像追加',
'default_main_product' => 'デフォルトのメイン製品',
'modify_order' => 'ダブルクリックして変更、ドラッグして順序を調整',
+ 'weight_text' => '重さ',
+ 'weight_class' => '重量単位',
'confirm_batch_product' => '選択した製品をまとめて削除しますか? ',
'confirm_batch_status' => 'バッチで選択した製品のステータスを変更することを確認しますか? ',
diff --git a/resources/lang/ja/pagination.php b/resources/lang/ja/pagination.php
index 0cc478cf..9d3fd814 100644
--- a/resources/lang/ja/pagination.php
+++ b/resources/lang/ja/pagination.php
@@ -1,6 +1,6 @@
'次へ »',
- 'previous' => '« 前へ',
+ 'next' => '次へ',
+ 'previous' => '前へ',
];
diff --git a/resources/lang/ko/address.php b/resources/lang/ko/address.php
new file mode 100644
index 00000000..80ceccae
--- /dev/null
+++ b/resources/lang/ko/address.php
@@ -0,0 +1,25 @@
+
+ * @created 2022-08-22 18:18:59
+ * @modified 2022-08-22 18:18:59
+ */
+
+return [
+ 'index' => '주소 편집',
+ 'name' => '이름',
+ 'phone' => '전화번호',
+ 'country_id' => '국가 ID',
+ 'zone' => '성',
+ 'zone_id' => '성 ID',
+ 'address_1' => '주소1',
+ 'address_2' => '주소2',
+ 'address' => '주소',
+ 'enter_city' => '주소 입력',
+ 'post_code' => '우편번호',
+ 'default' => '기본 주소',
+];
diff --git a/resources/lang/ko/admin/.keep b/resources/lang/ko/admin/.keep
new file mode 100644
index 00000000..e69de29b
diff --git a/resources/lang/ko/admin/admin_roles.php b/resources/lang/ko/admin/admin_roles.php
new file mode 100644
index 00000000..8bb65a0c
--- /dev/null
+++ b/resources/lang/ko/admin/admin_roles.php
@@ -0,0 +1,21 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'select_all' => '모두선택',
+ 'unselect_all' => '선택취소',
+ 'role_name' => '케릭터이름',
+ 'role_management' => '케릭터관리',
+ 'role' => '캐릭터',
+ 'permission' => '시스템권한',
+ 'plugin_permission' => '플러그인 권한',
+ 'error_roles' => '캐릭터 최소 한개 선택',
+];
diff --git a/resources/lang/ko/admin/attribute.php b/resources/lang/ko/admin/attribute.php
new file mode 100644
index 00000000..ab9fd43a
--- /dev/null
+++ b/resources/lang/ko/admin/attribute.php
@@ -0,0 +1,30 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => '속성',
+ 'attribute_info' => '속성정보',
+ 'create_at' => '속성창립',
+ 'attribute_value' => '속성값',
+ 'set_attribute' => '속성배치',
+ 'add_attribute' => '속성값추가',
+ 'before_attribute' => '왼쪽 속성을 먼저 선택하십시오',
+ 'btn_at' => '바로가기',
+ 'btn_later' => '잠시후 가기',
+ 'to_info_values' => '세부 정보 페이지로 이동하여 속성 값을 편집하십시오',
+ 'error_cannot_delete_product_used' => '상품(상품 ID: :product_ids)에서 사용되므로 속성을 삭제할 수 없습니다.',
+
+ 'attributes_index' => '속성표',
+ 'attributes_create' => '속성창립',
+ 'attributes_show' => '속성상세',
+ 'attributes_update' => '속성업데이트',
+ 'attributes_delete' => '속성삭제',
+];
diff --git a/resources/lang/ko/admin/attribute_group.php b/resources/lang/ko/admin/attribute_group.php
new file mode 100644
index 00000000..ef2b6de6
--- /dev/null
+++ b/resources/lang/ko/admin/attribute_group.php
@@ -0,0 +1,23 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => '속성그룹',
+ 'create_at_groups' => '속성그룹창립',
+ 'error_cannot_delete_attribute_used' => '속성 ID: attributes에서 사용하기 때문에 속성 그룹을 삭제할 수 없습니다.',
+ 'error_cannot_delete_default_group' => 'ID가 1인 것은 기본 속성 그룹입니다. 삭제할 수 없습니다',
+
+ 'attribute_groups_index' => '속성 그룹 목록',
+ 'attribute_groups_create' => '속성 그룹 창립',
+ 'attribute_groups_show' => '속성 그룹 상세',
+ 'attribute_groups_update' => '속성 그룹 업데이트',
+ 'attribute_groups_delete' => '속성 그룹 삭제',
+];
diff --git a/resources/lang/ko/admin/base.php b/resources/lang/ko/admin/base.php
new file mode 100644
index 00000000..569478c4
--- /dev/null
+++ b/resources/lang/ko/admin/base.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-04 15:29:49
+ * @modified 2022-08-04 15:29:49
+ */
+
+return [
+ 'name' => '간체 중문',
+];
diff --git a/resources/lang/ko/admin/brand.php b/resources/lang/ko/admin/brand.php
new file mode 100644
index 00000000..0ac2f659
--- /dev/null
+++ b/resources/lang/ko/admin/brand.php
@@ -0,0 +1,21 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => '브랜드',
+
+ 'brands_index' => '브랜드 목록',
+ 'brands_create' => '브랜드 창립',
+ 'brands_show' => '브랜드 상세',
+ 'brands_update' => '브랜드 업데이트',
+ 'brands_delete' => '브랜드 삭제',
+ 'error_upload' => '아이콘 업로드',
+];
diff --git a/resources/lang/ko/admin/builder.php b/resources/lang/ko/admin/builder.php
new file mode 100644
index 00000000..1f0ed530
--- /dev/null
+++ b/resources/lang/ko/admin/builder.php
@@ -0,0 +1,254 @@
+
+ * @created 2022-08-04 15:29:49
+ * @modified 2022-08-04 15:29:49
+ */
+
+return [
+ 'heading_title' => '페이지 편집',
+ 'page_category' => '문장 분류',
+ 'modules_instructions' => '사용 가능한 모듈, 페이지에 추가하기 클릭',
+ 'text_floor_prompt' => '설정(층 구성은 새로 고침 페이지를 저장해야 업데이트됩니다)',
+ 'text_new_page' => '새 페이지 추가',
+ 'text_quit' => '로그아웃',
+ 'text_save' => '저장',
+ 'text_view_page' => '페이지 보기',
+ 'text_module' => '모듈',
+ 'text_module_title' => '모듈',
+ 'text_menu' => '내비게이션',
+ 'text_drag_sort' => '드래그 정렬',
+ 'text_set_up' => '설치',
+ 'text_delete' => '삭제',
+ 'text_floor' => '층',
+ 'text_add_module' => '모듈 추가',
+ 'text_to_menu' => '내비게이션 메뉴 편집',
+ 'text_other' => '기타',
+ 'text_preparing' => '준비 중...',
+ 'text_floor_setting' => '층 설정',
+ 'text_background_color' => '배경컬러',
+ 'text_sure' => '확정',
+ 'text_page_name' => '새 페이지 이름을 입력하십시오.',
+ 'text_is_save' => '현재 페이지 데이터가 저장되었는지 확인하십시오!',
+ 'text_pop_ads' => '팝업광고',
+ 'text_style_setting' => '스타일 설정',
+ 'text_is_save_data' => '페이지 전환 전에 현재 페이지 데이터가 저장되었는지 확인하십시오?',
+ 'text_hint' => '힌트',
+ 'text_cancel' => '취소',
+ 'text_created_success' => '페이지 생성 성공',
+ 'text_html_none' => '모듈 로드 오류, HTML 데이터가 비어 있습니다!',
+ 'text_is_delete' => '삭제하시겠습니까',
+ 'text_enable' => '사용 가능',
+ 'text_set_title' => '설정 제목',
+ 'text_set_subtitle' => '부제목 설정',
+ 'text_suggested_size' => '장 크기(넓이 x 높이): ',
+ 'text_word' => '문자',
+ 'text_add_pictures' => '그림 추가',
+ 'text_refresh_cookie' => '갱신 Cookie',
+ 'text_popup_hint' => '참고: 사용자가 닫기를 누르면 브라우저가 닫히고 다시 열릴 때까지 표시되지 않습니다.로컬 테스트는 "쿠키 새로 고침"을 클릭하여 브라우저를 새로 고치고 팝업창을 다시 시작할 수 있습니다. ',
+ 'text_cookie_refresh_success' => 'Cookie 새로 고침 성공, 브라우저 새로 고침으로 팝업 내용을 볼 수 있습니다.',
+ 'text_add_hot_links' => '실검 링크 추가',
+ 'text_add' => '추가',
+ 'text_margin_top' => '블록 내 여백 - 위',
+ 'text_margin_bottom' => '블록 내 여백 - 아래',
+ 'text_file_manager' => '파일 관리',
+ 'modules_link' => '링크',
+ 'modules_choose_link' => '링크 선택',
+ 'text_select_link' => '점프할 링크 페이지를 선택하십시오.',
+ 'text_no' => '무',
+ 'text_search' => '검색',
+ 'text_is_newpage' => '새 창에서 열 것입니까:',
+ 'text_manage' => '관리',
+ 'text_title_cover' => '제목(아래에서 선택한 링크 이름 덮어쓰기)',
+ 'text_enter_link' => '링크 주소를 입력하세요',
+ 'text_states' => '상태',
+ 'text_disable' => '사용제한',
+ 'text_no_data' => '데이터가 없거나 삭제되었습니다.',
+ 'text_to_add' => '추가하기',
+ 'text_category' => '상품분류',
+ 'text_information' => '특정 페이지',
+ 'text_manufacturer' => '상품 브랜드',
+ 'text_static' => '고정 연결',
+ 'text_custom' => '사용자 정의',
+ 'text_top_text' => '윗글',
+ 'text_edit_page_name' => '페이지 이름 수정',
+ 'text_page_name_no' => '이름 비워서는 안됩니다',
+ 'custom_name' => '사용자 이름',
+ 'move_down' => '아래로 이동',
+ 'move_up' => '위로 이동',
+
+ // 고정연결
+ 'text_static_product_latest' => '최신상품',
+ 'text_static_product_special' => '특가 상품',
+ 'text_static_product_manufacturer' => '브랜드 코너',
+ 'text_static_account_account' => '회원중심',
+ 'text_static_account_order' => '이력주문',
+ 'text_static_account_wishlist' => '즐겨찾기 목록',
+ 'text_static_affiliate_login' => '연맹 회원',
+ 'text_static_account_newsletter' => '구독 상담',
+ 'text_static_information_contact' => '저희에게 연락주세요',
+ 'text_static_information_sitemap' => '사이트 지도',
+ 'text_static_information_faq' => '자주 문의되는 질문',
+ 'text_static_account_voucher' => '상품권',
+ 'text_static_account_login' => '등록',
+ 'text_static_account_register' => '등록',
+ 'text_static_checkout_cart' => '장바구니',
+ 'text_static_blog_home' => '블로그',
+
+ 'text_edit_product' => '상품 상세 편집',
+ 'text_edit_home' => '페이지 편집',
+ 'text_edit_mb_home' => '휴대폰 초기화면 편집',
+ 'text_footer_edit' => '푸터 편집',
+ 'text_header_edit' => '페이지 편집',
+ 'text_save_refresh' => '저장 및 새로 고침',
+ 'text_save_refresh_header' => '저장(페이지 새로 고침)',
+ 'text_service_icon' => '서비스 아이콘',
+ 'text_describe' => '묘사',
+ 'text_add_link' => '링크 추가',
+ 'text_is_btn' => '버튼 보이기 여부',
+ 'text_phone' => '전화',
+ 'text_address' => '주소',
+ 'text_email' => '이메일',
+ 'text_copyright' => '저작권/이미지',
+ 'text_yq_link' => '우정링크',
+ 'text_link_bar' => '링크바',
+ 'text_introduce' => '소개',
+ 'text_up_logo' => '업로드 logo',
+ 'text_hot_keywords' => '실검 키워드',
+ 'text_title' => '제목',
+ 'text_text_notific' => '텍스트 알림',
+ 'text_only_home' => '첫 화면에만 표시',
+ 'text_background_color' => '배경색',
+ 'text_font_color' => '글꼴 색상',
+ 'text_image' => '그림',
+ 'text_show' => '보기',
+ 'text_is_phone' => '연락처 보이기',
+ 'text_half_angle' => '반각 쉼표로 구분',
+ 'text_prompt_words' => '제시 문자',
+ 'text_search_bar' => '검색 막대',
+ 'text_btn_text' => '버튼 텍스트',
+ 'text_banner_ad' => '배너광고',
+ 'text_l_c' => '언어/통화란',
+ 'text_top_color' => '상부 색상',
+ 'text_title_color' => '타이틀 색상',
+ 'text_color' => '색깔',
+ 'text_left_text' => '왼쪽 문자',
+ 'text_right_icon' => '오른쪽 결제 아이콘',
+ 'text_bgi' => '배경도',
+ 'text_btn' => '버튼',
+
+ // page
+ 'page_product_title_size' => '상품 제목 글꼴 크기',
+ 'page_product_title_color' => '상품 제목 색상',
+ 'page_product_price_color' => '상품 가격 색상',
+ 'page_product_thumb_position' => '섬네일 위치',
+ 'page_product_image' => '상품 이미지',
+ 'page_product_bottom' => '바닥',
+ 'page_product_left' => '좌측',
+ 'page_product_magnifying_style' => '확대경 스타일',
+ 'page_product_magnifying_window' => '외부창',
+ 'page_product_magnifying_inner' => '내부 부상',
+ 'page_product_magnifying_lens' => '내부 돋보기',
+ 'page_product_share' => '공유',
+ 'page_product_share_code' => '코드 공유',
+ 'page_product_general_settings' => '일반 설정',
+ 'page_product_font_size' => '문자 크기',
+
+ // ModuleS List
+ 'modules_photo_text' => '그림과 텍스트 혼합',
+ 'modules_video_module' => '비디오 모듈',
+ 'modules_customer_reviews' => '고객 평가',
+ 'modules_images_link' => '멀티그램 링크',
+ 'modules_background_icon_text' => '배경 아이콘 텍스트',
+ 'modules_slideshow_category' => '슬라이드 분류',
+ 'modules_bargain' => '흥정',
+ 'modules_bestseller' => '히트상품',
+ 'modules_blog' => '블로그',
+ 'modules_carousel' => '스윙 아이콘',
+ 'modules_category' => '분류 모듈',
+ 'modules_coupon' => '쿠폰',
+ 'modules_flash_sale' => '상품반짝세일',
+ 'modules_group_buying' => '공동구매',
+ 'modules_html' => '텍스트 리치',
+ 'modules_icon_text' => '아이콘 텍스트',
+ 'modules_image_100' => '단일 블록',
+ 'modules_image_200' => '한 줄 두 그림',
+ 'modules_image_300' => '일행삼도',
+ 'modules_image_301' => '일행삼도-pro',
+ 'modules_image_400' => '한 줄 네 그림',
+ 'modules_image_401' => '한 줄 네 그림-pro',
+ 'modules_latest' => '최신상품',
+ 'modules_manufacturer' => '브랜드 리스트',
+ 'modules_product' => '상품',
+ 'modules_product_tab' => '탭 상품',
+ 'modules_slideshow' => '슬라이드',
+ 'modules_quantity' => '표시수 제한',
+ 'modules_manage_bargain' => '할인상품 관리',
+ 'modules_manage_blog' => '블로그 관리',
+ 'modules_no_blog' => '글이 없으면 먼저 [컨텐츠 관리 -> 블로그 관리] 글 설정해주세요.',
+ 'modules_slides_per_view' => '수량 한 화면 표시',
+ 'modules_enter_content' => '내용을 입력하세요',
+ 'modules_full_screen' => '풀스크린 표시여부',
+ 'modules_content' => '내용',
+ 'modules_edit_content' => '내용 편집',
+ 'modules_select_image' => '그림 선택',
+ 'modules_quantity_line' => '한 줄에 몇 개 표시',
+ 'modules_please_choose' => '선택하세요',
+ 'modules_choose' => '선택',
+ 'modules_add_category' => '분류 추가',
+ 'modules_choose_category' => '구분 선택',
+ 'modules_set_coupon' => '쿠폰 설정',
+ 'modules_no_coupon' => '쿠폰 데이터 없음',
+ 'modules_manage_flash' => '초살 상품 관리',
+ 'modules_manage_group' => '모둠 상품 관리',
+ 'modules_no_state' => '현재 모듈이 켜져 있지 않거나 설정되어 있지 않습니다. 먼저 백그라운드 [모듈 관리]에서 모듈을 구성하십시오.',
+ 'modules_grid_mode' => '메쉬 모드',
+ 'modules_more_link' => '더 많은 링크',
+ 'modules_choose_brand' => '브랜드 선택',
+ 'modules_set_product' => '설정상품',
+ 'modules_keywords_search' => '검색어를 입력하세요',
+ 'modules_test_name' => '테스트 이름',
+ 'modules_please_products' => '상품을 추가해주세요',
+ 'modules_image_size' => '그림 크기',
+ 'modules_height' => '높이',
+ 'modules_width' => '너비',
+ 'modules_category_style' => '분류 표시 스타일',
+ 'modules_down' => '아래',
+ 'modules_left' => '왼쪽',
+ 'modules_category_no' => '분류하지 마라',
+ 'modules_review_name' => '명칭',
+ 'modules_profession' => '직업',
+ 'modules_video_cover' => '비디오 커버',
+ 'modules_video' => '비디오',
+ // mobile
+ 'mobile_search' => '써치',
+ 'mobile_search_normal' => '화면 상단에 고정되지 않음',
+ 'mobile_search_hide' => '맨 위 써치 표시되지 않음',
+ 'mobile_search_fixed' => '화면 맨 위에 고정 (기본값)',
+
+ // Menu
+ 'main_menu' => '메인메뉴',
+ 'please_add_data' => '데이터를 추가해주세요',
+ 'add_main_menu' => '메인 메뉴 추가',
+ 'main_menu_name_link' => '메인 메뉴명/링크',
+ 'main_menu_label' => '메인 메뉴 탭',
+ 'label_background_color' => '태그 배경색',
+ 'label_text_color' => '라벨 문자색',
+ 'submenu_group' => '서브메뉴(그룹)',
+ 'add_menu_group' => '메뉴 그룹 추가',
+ 'full_screen' => '전체 화면인지 여부',
+ 'menu' => '메뉴',
+ 'add_submenu_link' => '서브메뉴 링크 추가',
+ 'type' => '유형',
+
+ // // footer
+ 'footer_edit' => '페이지 끝 편집기',
+ 'sub_title' => '부제목',
+ 'introduction' => '소개',
+ 'copyright_settings' => '저작권 설정',
+];
diff --git a/resources/lang/ko/admin/category.php b/resources/lang/ko/admin/category.php
new file mode 100644
index 00000000..259a80bc
--- /dev/null
+++ b/resources/lang/ko/admin/category.php
@@ -0,0 +1,22 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => '분류',
+ 'edit_category' => '편집 분류',
+ 'parent_category' => '상급 분류',
+
+ 'categories_index' => '분류 목록',
+ 'categories_create' => '구분 만들기',
+ 'categories_show' => '분류상세',
+ 'categories_update' => '업데이트 카테고리',
+ 'categories_delete' => '구분 삭제',
+];
diff --git a/resources/lang/ko/admin/common.php b/resources/lang/ko/admin/common.php
new file mode 100644
index 00000000..cfcf0204
--- /dev/null
+++ b/resources/lang/ko/admin/common.php
@@ -0,0 +1,90 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'admin_panel' => '백그라운드 관리',
+ 'edit' => '편집',
+ 'status' => '상태',
+ 'action' => '조작',
+ 'install' => '설치',
+ 'uninstall' => '지우기',
+
+ // // errors
+ 'forbidden' => '접근금지',
+ 'has_no_permission' => '이 페이지에 액세스할 수 있는 권한이 없습니다. 시스템 관리자에게 문의하십시오.',
+
+ // // header
+ 'home' => '홈페이지 관리',
+ 'order' => '주문관리',
+ 'rma' => 'A/S 관리',
+ 'rma_reason' => '반품교환원인관리',
+ 'product' => '상품관리',
+ 'brand' => '브랜드 관리',
+ 'attribute' => '속성 관리',
+ 'attribute_group' => '속성 그룹 관리',
+ 'category' => '분류관리',
+ 'customer_group' => '고객 그룹 관리',
+ 'customer' => '고객관리',
+ 'page' => '문장관리',
+ 'page_category' => '문장 분류',
+ 'setting' => '시스템 설정',
+ 'plugin' => '플러그인 관리',
+ 'marketing' => '플러그인마켓',
+ 'admin_user' => '백그라운드 사용자',
+ 'admin_role' => '사용자 역할',
+ 'region' => '영역 그룹',
+ 'tax_rate' => '세율관리',
+ 'tax_class' => '세금관리',
+ 'currency' => '화폐관리',
+ 'language' => '언어관리',
+ 'zone' => '성 관리',
+ 'country' => '국가관리',
+ 'file_manager' => '파일 관리자',
+ 'access_frontend' => '프런트 데스크에 액세스',
+
+ // sidebar
+ 'theme_index' => '템플릿 설정',
+ 'attribute_groups_index' => '속성 그룹',
+ 'attributes_index' => '속성',
+ 'settings_index' => '시스템 설정',
+ 'admin_users_index' => '백그라운드 사용자',
+ 'plugins_index' => '플러그인 설정',
+ 'marketing_index' => '플러그인마켓',
+ 'regions_index' => '영역 그룹',
+ 'tax_rates_index' => '세율 설정',
+ 'tax_classes_index' => '세금 카테고리',
+ 'currencies_index' => '화폐 관리',
+ 'languages_index' => '언어 관리',
+ 'design_index' => '홈페이지 인테리어',
+ 'pages_index' => '문장관리',
+ 'page_categories_index' => '문장 분류',
+ 'design_footer_index' => '페이지 끝 인테리어',
+ 'design_menu_index' => '내비게이션 설정',
+ 'categories_index' => '상품분류',
+ 'products_index' => '상품관리',
+ 'products_trashed' => '휴지통',
+ 'customers_trashed' => '휴지통',
+ 'brands_index' => '상품 브랜드',
+ 'orders_index' => '주문 목록',
+ 'rmas_index' => 'A/S 관리',
+ 'rma_reasons_index' => 'A/S 사유',
+ 'customers_index' => '고객 목록',
+ 'customer_groups_index' => '고객 그룹',
+ 'countries_index' => '국가 관리',
+ 'zones_index' => '성 관리',
+ 'update_nav' => '업데이트',
+ 'update_title' => '새로운 BeikeShop 버전을 발견, 즉시 업데이트하시겠습니까?',
+ 'update_new_version' => '최신 버전',
+ 'update_old_version' => '현재 버전',
+ 'update_date' => '업데이트 날짜',
+ 'update_btn' => '다운로드하러 가다',
+ 'expired_at' => '만료 기간',
+];
diff --git a/resources/lang/ko/admin/country.php b/resources/lang/ko/admin/country.php
new file mode 100644
index 00000000..41834455
--- /dev/null
+++ b/resources/lang/ko/admin/country.php
@@ -0,0 +1,18 @@
+
+ * @created 2022-08-29 17:21:38
+ * @modified 2022-08-29 17:21:38
+ */
+return [
+ 'country_name' => '국가 이름',
+
+ 'countries_index' => '국가 목록',
+ 'countries_create' => '국가 만들기',
+ 'countries_update' => '국가 업데이트',
+ 'countries_delete' => '국가 삭제',
+];
diff --git a/resources/lang/ko/admin/currency.php b/resources/lang/ko/admin/currency.php
new file mode 100644
index 00000000..f2c22861
--- /dev/null
+++ b/resources/lang/ko/admin/currency.php
@@ -0,0 +1,19 @@
+
+ * @created 2022-07-28 17:21:38
+ * @modified 2022-07-28 17:21:38
+ */
+return [
+ 'decimal_point' => '.',
+ 'thousand_point' => ',',
+ 'currencies_index' => '화폐 목록',
+ 'currencies_create' => '화폐 창립',
+ 'currencies_show' => '화폐 상세',
+ 'currencies_update' => '화폐 업데이트',
+ 'currencies_delete' => '화폐 삭제',
+];
diff --git a/resources/lang/ko/admin/customer.php b/resources/lang/ko/admin/customer.php
new file mode 100644
index 00000000..cdf5fb0e
--- /dev/null
+++ b/resources/lang/ko/admin/customer.php
@@ -0,0 +1,39 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'customers_index' => '고객 목록',
+ 'customers_create' => '고객 만들기',
+ 'customers_show' => '고객 상세',
+ 'customers_update' => '고객 업데이트',
+ 'customers_delete' => '고객삭제',
+
+ 'user_info' => '사용자 정보',
+ 'address_management' => '주소 관리',
+ 'user_name' => '사용자 이름',
+ 'password_info' => '비우면 원래 비밀번호 그대로 유지',
+ 'add_address' => '주소 추가',
+ 'no_address' => '현재 계정 주소 없음',
+ 'edit_address' => '주소 편집',
+ 'address' => '주소',
+ 'choose_country' => '나라 선택',
+ 'zones' => '성',
+ 'choose_zones' => '성 선택',
+ 'enter_city' => '도시 입력',
+ 'city' => '도시',
+ 'zipcode' => '우편번호',
+ 'address_1' => '상세 주소 1',
+ 'address_2' => '상세 주소 2',
+
+ 'cannot_delete_root' => '루트 계정 삭제 불가',
+ 'error_email' => '정확한 이메일 양식을 입력하세요',
+ 'confirm_delete_address' => '주소를 삭제하시겠습니까?',
+];
diff --git a/resources/lang/ko/admin/customer_group.php b/resources/lang/ko/admin/customer_group.php
new file mode 100644
index 00000000..720d2ce4
--- /dev/null
+++ b/resources/lang/ko/admin/customer_group.php
@@ -0,0 +1,25 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => '고객그룹',
+ 'consumption_limit' => '소비한도',
+ 'discount_rate' => '할인율',
+ 'reward_points_factor' => '보너스 포인트 계수',
+ 'integral_factor' => '적분계수 사용',
+
+ 'customer_groups_index' => '고객 그룹 목록',
+ 'customer_groups_create' => '고객 그룹 만들기',
+ 'customer_groups_show' => '고객 그룹 상세',
+ 'customer_groups_update' => '고객 그룹 업데이트',
+ 'customer_groups_delete' => '고객 그룹 삭제',
+ 'default_cannot_delete' => '기본 고객 그룹은 삭제할 수 없습니다.',
+];
diff --git a/resources/lang/ko/admin/dashboard.php b/resources/lang/ko/admin/dashboard.php
new file mode 100644
index 00000000..32d88b2f
--- /dev/null
+++ b/resources/lang/ko/admin/dashboard.php
@@ -0,0 +1,24 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'customer_view' => '사용자 액세스',
+ 'order_total' => '주문량',
+ 'customer_new' => '신규 사용자',
+ 'order_amount' => '매출액',
+ 'yesterday' => '어제',
+ 'day_before' => '전날보다',
+
+ 'order_report' => '주문통계',
+ 'latest_month' => '한 달',
+ 'latest_week' => '주간',
+ 'latest_year' => '1년',
+];
diff --git a/resources/lang/ko/admin/design_builder.php b/resources/lang/ko/admin/design_builder.php
new file mode 100644
index 00000000..e5ac4009
--- /dev/null
+++ b/resources/lang/ko/admin/design_builder.php
@@ -0,0 +1,21 @@
+
+ * @created 2022-08-30 11:03:19
+ * @modified 2022-08-30 11:03:19
+ */
+
+return [
+ 'module_brand' => '브랜드 모듈',
+ 'module_banner' => '배너 모듈',
+ 'module_four_image_pro' => '한 줄 네 그림 PRO',
+ 'module_slideshow' => '슬라이드 모듈',
+ 'module_tab_products' => '탭 상품',
+ 'module_product' => '상품 모듈',
+ 'module_icons' => '아이콘 모듈',
+ 'module_rich_text' => '텍스트 풍부한 모듈',
+];
diff --git a/resources/lang/ko/admin/file_manager.php b/resources/lang/ko/admin/file_manager.php
new file mode 100644
index 00000000..5a025546
--- /dev/null
+++ b/resources/lang/ko/admin/file_manager.php
@@ -0,0 +1,37 @@
+
+ * @created 2022-08-16 17:22:41
+ * @modified 2022-08-16 17:22:41
+ */
+
+return [
+ 'file_manager_create' => '디렉토리/파일 만들기',
+ 'file_manager_show' => '디렉토리/파일 보기',
+ 'file_manager_update' => '이름 바꾸기',
+ 'file_manager_delete' => '디렉토리/파일 삭제',
+ 'directory_already_exist' => '디렉토리 존재',
+ 'directory_not_empty' => '디렉터리는 비울수 없습니다',
+ 'target_not_exist' => '원본 파일이나 폴더가 존재하지 않습니다.',
+ 'create_folder' => '폴더 만들기',
+ 'rename' => '이름 바꾸기',
+ 'download' => '다운로드',
+ 'upload_files' => '파일 업로드',
+ 'click_upload' => '클릭하여 업로드하거나, 그림을 여기로 끌어오기',
+ 'image_uploading' => '이미지 업로드 중',
+ 'no_file' => '파일 없음',
+ 'picture_space' => '이미지 공간',
+ 'show_pc' => 'PC에서 작업하세요',
+
+ 'confirm_delete_file' => '선택한 파일을 삭제하시겠습니까?',
+ 'confirm_delete_folder' => '폴더 삭제 작업 중이고 폴더 내 모든 파일이 삭제됩니다. 확인하시겠습니까?',
+ 'new_folder' => '새 폴더',
+ 'can_empty' => '비울 수 없음',
+ 'finish' => '완성',
+ 'uploading' => '업로드 중',
+ 'file_manager' => '이미지 관리',
+];
diff --git a/resources/lang/ko/admin/forgotten.php b/resources/lang/ko/admin/forgotten.php
new file mode 100644
index 00000000..b45f5466
--- /dev/null
+++ b/resources/lang/ko/admin/forgotten.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-16 17:22:41
+ * @modified 2022-08-16 17:22:41
+ */
+
+return [
+ 'verify_code_sent' => '인증번호가 발송되었으니 확인하시고 인증번호를 입력해주세요',
+];
diff --git a/resources/lang/ko/admin/language.php b/resources/lang/ko/admin/language.php
new file mode 100644
index 00000000..ab303cb1
--- /dev/null
+++ b/resources/lang/ko/admin/language.php
@@ -0,0 +1,20 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'languages_index' => '언어 목록',
+ 'languages_create' => '언어 만들기',
+ 'languages_show' => '언어상세',
+ 'languages_update' => '언어 업데이트',
+ 'languages_delete' => '언어 삭제',
+ 'error_default_language_cannot_delete' => '기본 언어는 삭제할 수 없습니다!',
+ 'help_install' => '주의: 새로운 언어를 설치하려면 해당 언어의 상품, 분류, 내비게이션, 첫 페이지 모듈, 페이지 끝 등의 내용을 구성해야 합니다. 그렇지 않으면 페이지 표시 이상이 발생할 수 있습니다',
+];
diff --git a/resources/lang/ko/admin/login.php b/resources/lang/ko/admin/login.php
new file mode 100644
index 00000000..7ba4947f
--- /dev/null
+++ b/resources/lang/ko/admin/login.php
@@ -0,0 +1,15 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'plugins_index' => 'BeikeShop 백그라운드로 로그인하기',
+ 'log_in' => '로그인',
+];
diff --git a/resources/lang/ko/admin/marketing.php b/resources/lang/ko/admin/marketing.php
new file mode 100644
index 00000000..ec580419
--- /dev/null
+++ b/resources/lang/ko/admin/marketing.php
@@ -0,0 +1,39 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'marketing_list' => '플러그인마켓',
+ 'marketing_index' => '마켓 초기화면',
+ 'marketing_show' => '플러그인 상세',
+ 'marketing_buy' => '플러그인 구매',
+ 'marketing_download' => '플러그인 다운로드',
+ 'set_token' => 'Token설치',
+ 'get_token_text' => 'BeikeShop 홈페이지 개인센터 로그인 - 도메인 이름 바인딩, 현재 도메인 이름 추가',
+ 'get_token' => 'Token을 클릭하여 획득합니다',
+ 'download_count' => '다운로드 횟수',
+ 'last_update' => '마지막 업데이트',
+ 'text_version' => '버전',
+ 'text_compatibility' => '호환성',
+ 'text_author' => '플러그인 작성자',
+ 'download_plugin' => '플러그인 다운로드',
+ 'download_description' => '플러그인 설명',
+ 'text_free' => '무료',
+ 'btn_buy' => '구매',
+ 'text_pay' => '지급금액',
+ 'select_pay' => '결제수단 선택',
+ 'wxpay' => '위챗 코드 스캔 결제!',
+ 'pay_success_title' => '결제 성공!',
+ 'pay_success_text' => '플러그인 구매 성공, 페이지 새로 고침 확정 클릭',
+ 'ali_pay_success' => '지불완료?',
+ 'ali_pay_text' => '결제가 완료되었으니 페이지를 새로고침해주세요',
+ 'version_compatible_text' => '이 플러그인은 현재 시스템 버전과 호환되지 않습니다 최신 버전 로 업그레이드하십시오.',
+ 'to_update' => '업그레이드하러 가기',
+];
diff --git a/resources/lang/ko/admin/order.php b/resources/lang/ko/admin/order.php
new file mode 100644
index 00000000..68f2ba34
--- /dev/null
+++ b/resources/lang/ko/admin/order.php
@@ -0,0 +1,26 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'list' => '주문 목록',
+
+ 'order_quantity' => '주문 수량',
+ 'order_amount' => '주문금액',
+ 'orders_index' => '주문 목록',
+ 'orders_create' => '주문 작성',
+ 'orders_show' => '주문내역',
+ 'orders_export' => '주문 내보내기',
+ 'orders_update' => '업데이트 오더',
+ 'orders_delete' => '주문 삭제',
+ 'notify' => '알림여부',
+ 'orders_update_status' => '업데이트 상태',
+ 'error_status' => '상태를 선택하세요',
+];
diff --git a/resources/lang/ko/admin/page.php b/resources/lang/ko/admin/page.php
new file mode 100644
index 00000000..705e6b95
--- /dev/null
+++ b/resources/lang/ko/admin/page.php
@@ -0,0 +1,22 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => '문장관리',
+ 'info_title' => '메시지 제목',
+ 'info_content' => '내용',
+
+ 'pages_index' => '글 목록',
+ 'pages_create' => '글 만들기',
+ 'pages_show' => '문장상세',
+ 'pages_update' => '문장 편집',
+ 'pages_delete' => '글 삭제',
+];
diff --git a/resources/lang/ko/admin/page_category.php b/resources/lang/ko/admin/page_category.php
new file mode 100644
index 00000000..03913d4b
--- /dev/null
+++ b/resources/lang/ko/admin/page_category.php
@@ -0,0 +1,22 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => '문장구분',
+ 'info_title' => '분류 제목',
+ 'info_content' => '내용',
+
+ 'page_categories_index' => '분류 목록',
+ 'page_categories_create' => '구분 만들기',
+ 'page_categories_show' => '분류상세',
+ 'page_categories_update' => '분류 편집',
+ 'page_categories_delete' => '구분 삭제',
+];
diff --git a/resources/lang/ko/admin/plugin.php b/resources/lang/ko/admin/plugin.php
new file mode 100644
index 00000000..b19ccbc4
--- /dev/null
+++ b/resources/lang/ko/admin/plugin.php
@@ -0,0 +1,36 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'plugins_index' => '플러그인 설정',
+ 'plugins_import' => '플러그인 업로드',
+ 'plugins_show' => '플러그인 상세',
+ 'plugins_update' => '플러그인 업데이트',
+ 'plugins_update_status' => '업데이트 상태',
+ 'plugins_install' => '설치',
+ 'plugins_uninstall' => '삭제',
+ 'to_enable' => '사용하기',
+ 'uninstall_hint' => '플러그를 제거하면 해당 플러그인의 모든 관련 데이터가 삭제됩니다. 제거하시겠습니까?',
+
+ 'plugin_list' => '플러그인 설정',
+ 'plugin_code' => '플러그인 코드',
+ 'plugin_type' => '플러그인 유형',
+ 'plugin_description' => '플러그인 설명',
+ 'plugin_upload' => '플러그인 업로드(zip 파일만 지원)',
+
+ 'shipping' => '배달방식',
+ 'payment' => '지불방식',
+ 'social' => '소셜 네트워크',
+ 'total' => '주문계산',
+ 'feature' => '기능 모듈',
+ 'language' => '언어번역',
+ 'theme' => '테마 틀',
+];
diff --git a/resources/lang/ko/admin/product.php b/resources/lang/ko/admin/product.php
new file mode 100644
index 00000000..a62117d3
--- /dev/null
+++ b/resources/lang/ko/admin/product.php
@@ -0,0 +1,49 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'products_index' => '상품 목록',
+ 'products_create' => '상품 만들기',
+ 'products_show' => '상품상세',
+ 'products_update' => '업데이트 상품',
+ 'products_delete' => '상품 삭제',
+ 'products_trashed' => '휴지통',
+ 'products_restore' => '휴지통 복구',
+ 'clear_restore' => '휴지통 비우기',
+
+ 'batch_delete' => '대량 삭제',
+ 'batch_active' => '대량 로딩',
+ 'batch_inactive' => '대량 제거',
+
+ 'basic_information' => '기초정보',
+ 'product_details' => '상품상세',
+ 'product_relations' => '관련 상품',
+ 'stocks' => '상품재고',
+ 'model' => '모델',
+ 'price' => '가격',
+ 'origin_price' => '원가',
+ 'cost_price' => '원가',
+ 'quantity' => '수량',
+ 'enable_multi_spec' => '멀티 스펙 사용',
+ 'image_help' => '첫 번째 이미지는 상품 메인 이미지로 여러 장의 이미지를 동시에 업로드 할 수 있도록 지원되며, 여러 장의 이미지 간 위치 조정이 가능합니다',
+ 'add_variable' => '사양 추가',
+ 'add_variable_value' => '사양값 추가',
+ 'add_variable_image' => '사양 이미지 추가',
+ 'default_main_product' => '기본 기본 상품',
+ 'modify_order' => '수정, 드래그 조정 순서 더블 클릭',
+ 'weight_text' => '무게',
+ 'weight_class' => '무게 단위',
+
+ 'confirm_batch_product' => '선택한 상품을 일괄 삭제하시겠습니까?',
+ 'confirm_batch_status' => '선택한 상품의 상태를 일괄 수정하시겠습니까?',
+ 'confirm_batch_restore' => '선택한 상품을 복구하시겠습니까?',
+ 'confirm_delete_restore' => '휴지대를 비우시겠습니까?',
+];
diff --git a/resources/lang/ko/admin/region.php b/resources/lang/ko/admin/region.php
new file mode 100644
index 00000000..d1b6fb54
--- /dev/null
+++ b/resources/lang/ko/admin/region.php
@@ -0,0 +1,23 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => '영역 그룹',
+ 'regions_index' => '영역 그룹 목록',
+ 'regions_create' => '영역 그룹 만들기',
+ 'regions_show' => '섹션 그룹 상세',
+ 'regions_update' => '영역 그룹 업데이트',
+ 'regions_delete' => '영역 그룹 삭제',
+ 'name' => '이름',
+ 'describe' => '설명',
+ 'country' => '국가',
+ 'zone' => '성',
+];
diff --git a/resources/lang/ko/admin/rma.php b/resources/lang/ko/admin/rma.php
new file mode 100644
index 00000000..f0160e69
--- /dev/null
+++ b/resources/lang/ko/admin/rma.php
@@ -0,0 +1,30 @@
+
+ * @created 2022-08-16 17:22:41
+ * @modified 2022-08-16 17:22:41
+ */
+
+return [
+ 'index' => 'A/S 신청',
+
+ 'rmas_index' => 'A/S 목록',
+ 'rmas_show' => 'A/S 상세정보',
+ 'rmas_update' => '업데이트 A/S',
+ 'rmas_delete' => 'A/S 삭제',
+
+ 'customers_name' => '고객 이름',
+ 'quantity' => '수량',
+ 'service_type' => '서비스 유형',
+ 'rma_details' => 'A/S 신청내역',
+ 'reasons_return' => '반품 사유',
+ 'current_state' => '현재 상태',
+ 'modify_status' => '상태 수정',
+ 'remarks' => '메모 정보',
+ 'update_status' => '업데이트 상태',
+ 'operation_history' => '조작 이력',
+];
diff --git a/resources/lang/ko/admin/rma_reason.php b/resources/lang/ko/admin/rma_reason.php
new file mode 100644
index 00000000..cfbcf2f4
--- /dev/null
+++ b/resources/lang/ko/admin/rma_reason.php
@@ -0,0 +1,17 @@
+
+ * @created 2022-08-16 17:22:41
+ * @modified 2022-08-16 17:22:41
+ */
+
+return [
+ 'rma_reasons_index' => '원인 목록',
+ 'rma_reasons_create' => '작성 이유',
+ 'rma_reasons_update' => '업데이트 이유',
+ 'rma_reasons_delete' => '삭제 사유',
+];
diff --git a/resources/lang/ko/admin/role.php b/resources/lang/ko/admin/role.php
new file mode 100644
index 00000000..ee9dab90
--- /dev/null
+++ b/resources/lang/ko/admin/role.php
@@ -0,0 +1,19 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'admin_roles_index' => '캐릭터 목록',
+ 'admin_roles_create' => '캐릭터 만들기',
+ 'admin_roles_show' => '캐릭터 상세',
+ 'admin_roles_update' => '캐릭터 업데이트',
+ 'admin_roles_delete' => '캐릭터 삭제',
+ 'select_one_at_least' => '권한을 비워둘 수 없습니다. 하나 이상의 항목을 선택하십시오.',
+];
diff --git a/resources/lang/ko/admin/setting.php b/resources/lang/ko/admin/setting.php
new file mode 100644
index 00000000..60c3504b
--- /dev/null
+++ b/resources/lang/ko/admin/setting.php
@@ -0,0 +1,76 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => '시스템 설정',
+ 'settings_index' => '시스템 설정 보기',
+ 'settings_update' => '시스템 설정 수정',
+ 'design_index' => '첫 페이지 편집기',
+ 'design_footer_index' => '페이지 끝 편집기',
+ 'design_menu_index' => '내비게이션 편집기',
+ 'product_per_page' => '페이지당 표시 수',
+
+ 'checkout_settings' => '계산 설정',
+ 'basic_settings' => '기본 설정',
+ 'store_settings' => '스토어 설정',
+ 'picture_settings' => '이미지 설정',
+ 'use_queue' => '큐 사용 여부',
+ 'mail_settings' => '메일 설정',
+ 'mail_engine' => '메일 엔진',
+ 'smtp_host' => '호스트',
+ 'smtp_username' => '사용자',
+ 'smtp_encryption' => '암호화 방식',
+ 'smtp_encryption_info' => 'SSL 혹은 TLS',
+ 'smtp_password' => '비밀번호',
+ 'smtp_password_info' => 'SMTP 암호를 설정합니다.Gmail :https://security.google.com/settings/security/apppasswords',
+ 'smtp_port' => '포트',
+ 'smtp_timeout' => '시간 초과',
+ 'sendmail_path' => '실행 경로',
+ 'mailgun_domain' => '도메인 네임',
+ 'mailgun_secret' => '키',
+ 'mailgun_endpoint' => '포트',
+ 'mail_log' => '설명: 로그 엔진은 일반적으로 테스트 목적으로 사용됩니다!메일은 수신처로 실제 발송되지 않으며, 메일 내용은 로그 형식으로 `/storage/logs/laravel.log`에 저장됩니다.',
+ 'express_code_help' => '숫자, 문자, 밑줄',
+
+ 'guest_checkout' => '관광객 계산',
+ 'theme_default' => '기본 테마',
+ 'theme_black' => '블랙 테마',
+ 'shipping_address' => '배송지 주소',
+ 'payment_address' => '계산서 주소',
+ 'meta_title' => 'Meta 제목',
+ 'meta_description' => 'Meta 묘술',
+ 'meta_keywords' => 'Meta 키워드',
+ 'telephone' => '연락처',
+ 'email' => '이메일',
+ 'default_address' => '기본 주소',
+ 'default_country_set' => '기본 국가 설정',
+ 'default_zone_set' => '기본 지방 설정',
+ 'default_language' => '기본 언어',
+ 'default_currency' => '기본 통화',
+ 'default_customer_group' => '기본 고객 그룹',
+ 'admin_name' => '백그라운드 디렉터리',
+ 'admin_name_info' => '백그라운드 디렉토리 관리, 기본값은 admin',
+ 'enable_tax' => '세금 활성화',
+ 'enable_tax_info' => '세금 계산 활성화 여부',
+ 'tax_address' => '세금주소',
+ 'tax_address_info' => '무슨 주소에 따라 세금을 계산합니까',
+ 'logo' => '사이트 Logo',
+ 'favicon' => 'favicon',
+ 'favicon_info' => '브라우저 탭에 표시되는 작은 아이콘은 PNG 형식 크기: 32*32 이어야 합니다.',
+ 'placeholder_image' => '위상도',
+ 'head_code' => '코드 삽입',
+ 'head_code_info' => '입력 상자의 코드를 전면 페이지 head에 삽입하여 코드를 집계하거나 특수 플러그인을 추가하는 데 사용할 수 있습니다',
+ 'rate_api_key' => '환율 API KEY',
+ 'multi_filter' => '고급 선별',
+ 'please_select' => '추가해주세요',
+ 'multi_filter_helper' => '필터 모듈에 표시할 속성을 선택하십시오.',
+ 'filter_attribute' => '속성 선별',
+];
diff --git a/resources/lang/ko/admin/tax_class.php b/resources/lang/ko/admin/tax_class.php
new file mode 100644
index 00000000..2ea58bd5
--- /dev/null
+++ b/resources/lang/ko/admin/tax_class.php
@@ -0,0 +1,22 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => '세류',
+ 'rule' => '규칙',
+ 'based_on' => '기초',
+ 'priority' => '우선순위',
+ 'tax_classes_index' => '세금 목록',
+ 'tax_classes_create' => '세금 클래스 만들기',
+ 'tax_classes_show' => '세금 상세',
+ 'tax_classes_update' => '세금 클래스 업데이트',
+ 'tax_classes_delete' => '세금 삭제',
+];
diff --git a/resources/lang/ko/admin/tax_rate.php b/resources/lang/ko/admin/tax_rate.php
new file mode 100644
index 00000000..dd17166c
--- /dev/null
+++ b/resources/lang/ko/admin/tax_rate.php
@@ -0,0 +1,26 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'index' => '세율 설정',
+ 'tax_classes_index' => '세금 설정',
+ 'tax' => '세금',
+ 'tax_rate' => '세율',
+ 'type' => '유형',
+ 'area' => '구역',
+ 'percentage' => '백분율',
+ 'fixed_tax_rate' => '고정세율',
+ 'tax_rates_index' => '세율 목록',
+ 'tax_rates_create' => '세율 만들기',
+ 'tax_rates_show' => '세율 상세',
+ 'tax_rates_update' => '세율 갱신',
+ 'tax_rates_delete' => '세율 삭제',
+];
diff --git a/resources/lang/ko/admin/theme.php b/resources/lang/ko/admin/theme.php
new file mode 100644
index 00000000..51c36724
--- /dev/null
+++ b/resources/lang/ko/admin/theme.php
@@ -0,0 +1,18 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'page_title' => '나의 틀',
+ 'theme_name' => '기본 테마',
+ 'enabled_text' => '현재 사용',
+ 'theme_pop_checkbox' => '데모 데이터 가져오기',
+ 'theme_pop_text' => '데모 데이터를 가져오면 기존 사양의 페이지 레이아웃, 분류, 상품 등의 데이터를 덮어쓸 수 있으니 먼저 백업하세요!',
+];
diff --git a/resources/lang/ko/admin/user.php b/resources/lang/ko/admin/user.php
new file mode 100644
index 00000000..c1cadc41
--- /dev/null
+++ b/resources/lang/ko/admin/user.php
@@ -0,0 +1,21 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'admin_users_index' => '사용자 목록',
+ 'admin_users_create' => '사용자 만들기',
+ 'admin_users_show' => '사용자 상세',
+ 'admin_users_update' => '사용자 업데이트',
+ 'admin_users_delete' => '사용자 삭제',
+ 'verify_code_expired' => '인증번호가 만료되었습니다(10분). 다시 가져오십시오.',
+ 'verify_code_error' => '인증번호 오류',
+ 'account_not_exist' => '계정 없음',
+];
diff --git a/resources/lang/ko/admin/zone.php b/resources/lang/ko/admin/zone.php
new file mode 100644
index 00000000..c97818e1
--- /dev/null
+++ b/resources/lang/ko/admin/zone.php
@@ -0,0 +1,21 @@
+
+ * @created 2022-08-29 17:21:38
+ * @modified 2022-08-29 17:21:38
+ */
+return [
+ 'zone_name' => '성 이름',
+ 'country_of_origin' => '소속 국가',
+
+ 'zones_index' => '성 목록',
+ 'zones_create' => '성 만들기',
+ 'zones_update' => '갱신된 성',
+ 'zones_delete' => '성 삭제',
+
+ 'error_country' => '나라를 선택하세요',
+];
diff --git a/resources/lang/ko/auth.php b/resources/lang/ko/auth.php
new file mode 100644
index 00000000..9ffd85db
--- /dev/null
+++ b/resources/lang/ko/auth.php
@@ -0,0 +1,20 @@
+ '계정 비밀번호 불일치',
+ 'password' => '비밀번호가 올바르지 않습니다',
+ 'throttle' => '실패가 너무 많습니다. seconds 후 다시 시도하십시오.',
+
+];
diff --git a/resources/lang/ko/brand.php b/resources/lang/ko/brand.php
new file mode 100644
index 00000000..932ca83b
--- /dev/null
+++ b/resources/lang/ko/brand.php
@@ -0,0 +1,16 @@
+
+ * @created 2022-08-26 17:33:32
+ * @modified 2022-08-26 17:33:32
+ */
+
+return [
+ 'name' => '브랜드명',
+ 'icon' => '아이콘',
+ 'first_letter' => '첫글자',
+];
diff --git a/resources/lang/ko/cart.php b/resources/lang/ko/cart.php
new file mode 100644
index 00000000..5e0e72ec
--- /dev/null
+++ b/resources/lang/ko/cart.php
@@ -0,0 +1,16 @@
+
+ * @created 2022-08-26 15:25:29
+ * @modified 2022-08-26 15:25:29
+ */
+
+return [
+ 'sku_id' => 'SKU ID',
+ 'quantity' => '구매수량',
+ 'stock_out' => '재고부족',
+];
diff --git a/resources/lang/ko/category.php b/resources/lang/ko/category.php
new file mode 100644
index 00000000..06976348
--- /dev/null
+++ b/resources/lang/ko/category.php
@@ -0,0 +1,15 @@
+
+ * @created 2022-08-29 20:43:32
+ * @modified 2022-08-29 20:43:32
+ */
+
+return [
+ 'name' => '분류명',
+ 'children' => '하위 분류',
+];
diff --git a/resources/lang/ko/common.php b/resources/lang/ko/common.php
new file mode 100644
index 00000000..59a57ab0
--- /dev/null
+++ b/resources/lang/ko/common.php
@@ -0,0 +1,99 @@
+
+ * @created 2022-07-28 17:21:38
+ * @modified 2022-07-28 17:21:38
+ */
+return [
+ 'error_required' => '입력하세요:name', // 이것은 다른 용도로 사용됩니다. :name은 변수입니다.
+ 'error_input_required' => '입력 상자는 비워 둘 수 없습니다',
+ 'error_form' => '양식이 올바르게 작성되었는지 확인하십시오.',
+ 'email' => '이메일',
+ 'unauthenticated' => '먼저 로그인하세요',
+ 'success' => '성공',
+ 'no_data' => '데이터 없음~',
+ 'empty_items' => '데이터 없음',
+ 'created_success' => '만들기 성공!',
+ 'deleted_success' => '삭제 성공!',
+ 'restored_success' => '복구 성공!',
+ 'updated_success' => '업데이트 성공!',
+ 'edit_success' => '수정 성공!',
+ 'get_success' => '성공!',
+ 'all' => '다',
+ 'status' => '상태',
+ 'enable' => '사용',
+ 'disable' => '사용 안 함',
+ 'enabled' => '사용 가능',
+ 'disabled' => '사용 안 함',
+ 'home' => '첫 화면',
+ 'submit' => '제출',
+ 'title' => '제목',
+ 'save' => '저장',
+ 'cancel' => '취소',
+ 'confirm' => '확정',
+ 'no' => '아니오',
+ 'yes' => '예',
+ 'delete' => '삭제',
+ 'delete_all' => '모두 삭제',
+ 'sign_out' => '로그인 종료',
+ 'contact_us' => '연락해줘',
+ 'input' => '여기 검색 입력',
+ 'filter' => '선별',
+ 'reset' => '리셋',
+ 'export' => '내보내기',
+ 'edit' => '편집',
+ 'action' => '조작',
+ 'add' => '추가',
+ 'please_choose' => '선택해주세요',
+ 'recommend_size' => '제안사이즈',
+ 'pick_datetime' => '시간 선택',
+ 'confirm_delete' => '삭제하시겠습니까?',
+ 'text_hint' => '힌트',
+ 'restore' => '회복',
+ 'name' => '이름',
+ 'image' => '그림',
+ 'data' => '데이터',
+ 'view' => '보기',
+ 'phone' => '전화',
+ 'exit' => '퇴출',
+ 'return' => '돌아가다',
+ 'language' => '언어',
+ 'select_all' => '모두 선택',
+ 'menu' => '메뉴',
+ 'whether_open' => '열지 말지',
+ 'default' => '기본값',
+ 'to_setting' => '설정하러 가다',
+ 'low' => '낮다',
+ 'high' => '높다',
+ 'sales' => '판매량',
+ 'showing_page' => '1-:per_page 총:total 데이터',
+ 'text_grid' => '그리드',
+ 'text_list' => '목록',
+ 'text_form' => '부터',
+ 'text_to' => '까지',
+ 'batch_setting' => '배치 설정',
+ 'show_all' => '모두 보기',
+ 'get_more' => '추가',
+ 'view_more' => '자세히 보기',
+ 'view_details' => '자세히 보기',
+
+ 'id' => 'ID',
+ 'created_at' => '만드는 시간',
+ 'updated_at' => '시간 수정',
+ 'sort_order' => '정렬',
+ 'error_page' => '접속한 데이터가 존재하지 않거나 삭제되었습니다~',
+ 'error_page_btn' => '이전 페이지로 돌아가기',
+ 'no_repeat' => '다시 추가하지 마세요',
+
+ 'order' => [
+ 'unpaid' => '지불할 것',
+ 'paid' => '지불완료',
+ 'shipped' => '발송되었습니다',
+ 'completed' => '완료됨',
+ 'cancelled' => '취소되었습니다',
+ ],
+];
diff --git a/resources/lang/ko/currency.php b/resources/lang/ko/currency.php
new file mode 100644
index 00000000..9a61fe62
--- /dev/null
+++ b/resources/lang/ko/currency.php
@@ -0,0 +1,23 @@
+
+ * @created 2022-08-29 20:28:59
+ * @modified 2022-08-29 20:28:59
+ */
+
+return [
+ 'decimal_point' => '.',
+ 'thousand_point' => ',',
+ 'name' => '이름',
+ 'code' => '코딩',
+ 'icon' => '아이콘',
+ 'symbol_left' => '왼쪽 기호',
+ 'symbol_right' => '오른쪽 기호',
+ 'value' => '환율값',
+ 'decimal_place' => '소수 자리수',
+ 'latest_value' => '최신 환율값',
+];
diff --git a/resources/lang/ko/customer.php b/resources/lang/ko/customer.php
new file mode 100644
index 00000000..3c043b78
--- /dev/null
+++ b/resources/lang/ko/customer.php
@@ -0,0 +1,17 @@
+
+ * @created 2022-08-26 18:41:07
+ * @modified 2022-08-26 18:41:07
+ */
+
+return [
+ 'name' => '이름',
+ 'email' => 'Email',
+ 'from' => '등록출처',
+ 'customer_group' => '고객 그룹',
+];
diff --git a/resources/lang/ko/customer_group.php b/resources/lang/ko/customer_group.php
new file mode 100644
index 00000000..1b3ac03d
--- /dev/null
+++ b/resources/lang/ko/customer_group.php
@@ -0,0 +1,15 @@
+
+ * @created 2022-08-26 18:41:07
+ * @modified 2022-08-26 18:41:07
+ */
+
+return [
+ 'level' => '등급',
+ 'name' => '고객 그룹 명칭',
+];
diff --git a/resources/lang/ko/mail.php b/resources/lang/ko/mail.php
new file mode 100644
index 00000000..f2a8cbbc
--- /dev/null
+++ b/resources/lang/ko/mail.php
@@ -0,0 +1,27 @@
+
+ * @created 2022-08-22 18:18:59
+ * @modified 2022-08-22 18:18:59
+ */
+
+return [
+ 'order_success' => '주문제출 성공',
+ 'order_update' => '주문 상태 업데이트',
+ 'order_success_info' => '당신의 주문은 성공적으로 제출되었으며 아래는 주문 내역입니다',
+ 'not_oneself' => '본인이 아닌 작업은 무시할 수 있습니다.',
+ 'customer_name' => '존경하는:name 사용자, 안녕하세요!',
+ 'sincerely' => '이치',
+ 'team' => '팀',
+ 'order_update_status' => '주문: number 상태 업데이트',
+ 'welcome_register' => '등록을 환영합니다',
+ 'register_end' => '등록을 마쳤으니 아래 버튼을 클릭하여 쇼핑몰로 돌아가십시오.',
+ 'btn_buy_now' => '즉시 구매',
+ 'retrieve_password_title' => '비밀번호 찾기',
+ 'retrieve_password_text' => '비밀번호를 찾고 있습니다. 아래 버튼을 클릭하여 작업을 완료하십시오.',
+ 'retrieve_password_btn' => '비밀번호 재설정하려면 여기를 클릭하십시오.',
+];
diff --git a/resources/lang/ko/order.php b/resources/lang/ko/order.php
new file mode 100644
index 00000000..57484534
--- /dev/null
+++ b/resources/lang/ko/order.php
@@ -0,0 +1,55 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'id' => 'ID',
+ 'number' => '주문번호',
+ 'customer_name' => '고객 이름',
+ 'payment_method' => '지불방식',
+ 'email' => 'Email',
+ 'telephone' => '연락처',
+ 'created_at' => '만드는 시간',
+ 'updated_at' => '업데이트 시간',
+ 'status' => '상태',
+ 'status_format' => '상태',
+ 'total' => '주문 총액',
+ 'express_number' => '송장번호',
+ 'express_company' => '택배회사',
+
+ 'order_shipments' => '배송정보',
+
+ 'address_info' => '주소 정보',
+ 'shipping_address' => '배송지 주소',
+ 'payment_address' => '계산서 주소',
+ 'order_status' => '주문상태',
+ 'current_status' => '현재 상태',
+ 'change_to_status' => '상태 수정',
+ 'comment' => '메모 정보',
+ 'submit_status' => '업데이트 상태',
+
+ 'product_info' => '상품정보',
+ 'product_name' => '이름',
+ 'product_price' => '가격',
+ 'product_sub_price' => '소계',
+ 'product_quantity' => '수량',
+ 'product_sku' => 'SKU',
+
+ 'action_history' => '작업 로그',
+ 'history_status' => '상태',
+ 'history_comment' => '비고',
+ 'history_created_at' => '업데이트 날짜',
+
+ 'unpaid' => '지불대기',
+ 'paid' => '지불완료',
+ 'shipped' => '발송됨',
+ 'completed' => '완료됨',
+ 'cancelled' => '취소됨',
+];
diff --git a/resources/lang/ko/page.php b/resources/lang/ko/page.php
new file mode 100644
index 00000000..4dd97875
--- /dev/null
+++ b/resources/lang/ko/page.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-07-28 20:59:38
+ * @modified 2022-07-28 20:59:38
+ */
+return [
+ 'title' => '제목',
+ 'content' => '내용',
+];
diff --git a/resources/lang/ko/page_category.php b/resources/lang/ko/page_category.php
new file mode 100644
index 00000000..257746ee
--- /dev/null
+++ b/resources/lang/ko/page_category.php
@@ -0,0 +1,17 @@
+
+ * @created 2022-07-28 20:59:38
+ * @modified 2022-07-28 20:59:38
+ */
+return [
+ 'index' => '뉴스블로그',
+ 'author' => '작가',
+ 'views' => '수 보기',
+ 'created_at' => '발표시간',
+ 'text_summary' => '요약',
+];
diff --git a/resources/lang/ko/pagination.php b/resources/lang/ko/pagination.php
new file mode 100644
index 00000000..5f468b54
--- /dev/null
+++ b/resources/lang/ko/pagination.php
@@ -0,0 +1,19 @@
+ '이전 페이지',
+ 'next' => '다음 페이지',
+
+];
diff --git a/resources/lang/ko/passwords.php b/resources/lang/ko/passwords.php
new file mode 100644
index 00000000..526795fb
--- /dev/null
+++ b/resources/lang/ko/passwords.php
@@ -0,0 +1,22 @@
+ 'Your password has been reset!',
+ 'sent' => 'We have emailed your password reset link!',
+ 'throttled' => 'Please wait before retrying.',
+ 'token' => 'This password reset token is invalid.',
+ 'user' => "We can't find a user with that email address.",
+
+];
diff --git a/resources/lang/ko/product.php b/resources/lang/ko/product.php
new file mode 100644
index 00000000..e12bfdf9
--- /dev/null
+++ b/resources/lang/ko/product.php
@@ -0,0 +1,31 @@
+
+ * @created 2022-08-02 14:22:41
+ * @modified 2022-08-02 14:22:41
+ */
+
+return [
+ 'name' => '이름',
+ 'sku' => 'SKU',
+ 'price' => '가격',
+ 'origin_price' => '원가',
+ 'cost_price' => '원가',
+ 'brand' => '브랜드',
+ 'category' => '분류',
+ 'model' => '모델',
+ 'quantity' => '재고',
+ 'image' => '그림',
+ 'kg' => 'kg',
+ 'g' => 'g',
+ 'oz' => '온스',
+ 'lb' => '파운드',
+
+ 'active' => '업로드',
+ 'inactive' => '품절',
+ 'has_been_inactive' => '해당 상품은 판매 종료되었습니다',
+];
diff --git a/resources/lang/ko/rma.php b/resources/lang/ko/rma.php
new file mode 100644
index 00000000..f1c69912
--- /dev/null
+++ b/resources/lang/ko/rma.php
@@ -0,0 +1,31 @@
+
+ * @created 2022-08-22 19:27:35
+ * @modified 2022-08-22 19:27:35
+ */
+
+return [
+ 'order_id' => '주문',
+ 'order_product_id' => '주문상품',
+ 'customer_id' => '고객님',
+ 'quantity' => '수량',
+ 'opened' => '포장 뜯음',
+ 'rma_reason_id' => '반품사유',
+ 'type' => 'A/S 유형',
+
+ 'status_pending' => '처리 대기 중',
+ 'status_rejected' => '거부됨',
+ 'status_approved' => '승인 완료(고객님이 상품을 보내주시면)',
+ 'status_shipped' => '발송(반송)되었습니다',
+ 'status_completed' => '완료됨',
+ 'type_return' => '반품',
+ 'type_exchange' => '교환',
+ 'type_repair' => '수리',
+ 'type_reissue' => '재발급 상품',
+ 'type_refund' => '환불',
+];
diff --git a/resources/lang/ko/role.php b/resources/lang/ko/role.php
new file mode 100644
index 00000000..4d07a9d7
--- /dev/null
+++ b/resources/lang/ko/role.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-29 20:33:32
+ * @modified 2022-08-29 20:33:32
+ */
+
+return [
+ 'name' => '캐릭터 이름',
+];
diff --git a/resources/lang/ko/shop/account.php b/resources/lang/ko/shop/account.php
new file mode 100644
index 00000000..8f83ae6e
--- /dev/null
+++ b/resources/lang/ko/shop/account.php
@@ -0,0 +1,138 @@
+
+ * @created 2022-08-04 10:59:15
+ * @modified 2022-08-04 10:59:15
+ */
+
+return [
+ 'index' => '개인중심',
+ 'revise_info' => '정보 수정',
+ 'collect' => '소장',
+ '쿠폰' => '쿠폰',
+ 'my_order' => '내 주문',
+ 'orders' => '전체주문',
+ 'pending_payment' => '미지급금',
+ 'pending_send' => '출하 대기 중',
+ 'pending_receipt' => '수령대기',
+ 'after_sales' => 'A/S',
+ 'no_order' => '아직 주문이 없습니다!',
+ 'to_buy' => '주문하러 가기',
+ 'order_number' => '주문번호',
+ 'order_time' => '주문시간',
+ 'state' => '상태',
+ 'amount' => '금액',
+ 'check_details' => '상세보기',
+ 'all' => '공',
+ 'items' => '상품',
+ 'verify_code_expired' => '인증번호가 만료되었습니다(10분). 다시 가져오십시오.',
+ 'verify_code_error' => '인증번호 오류',
+ 'account_not_exist' => '계정 없음',
+
+ 'edit' => [
+ 'index' => '개인정보 수정',
+ 'modify_avatar' => '프로필 수정',
+ 'suggest' => 'JPG 또는 PNG 이미지를 업로드합니다.300 x 300을 권장합니다.',
+ 'name' => '이름',
+ 'email' => '이메일',
+ 'crop' => '커팅',
+ 'password_edit_success' => '비밀번호 수정 성공',
+ 'origin_password_fail' => '원래 비밀번호 오류',
+ ],
+
+ 'wishlist' => [
+ 'index' => '나의 컬렉션',
+ 'product' => '상품',
+ 'price' => '가격',
+ 'check_details' => '상세보기',
+ ],
+
+ 'order' => [
+ 'index' => '나의 주문',
+ 'completed' => '수령확인 완료',
+ 'cancelled' => '주문이 취소되었습니다',
+ 'order_details' => '주문내역',
+ 'amount' => '금액',
+ 'state' => '상태',
+ 'order_number' => '주문번호',
+ 'check' => '보기',
+
+ 'order_info' => [
+ 'index' => '주문내역',
+ 'order_details' => '주문내역',
+ 'to_pay' => '지불하러 가다',
+ 'cancel' => '주문취소',
+ 'confirm_receipt' => '수령확인',
+ 'order_number' => '주문번호',
+ 'order_date' => '주문일자',
+ 'state' => '상태',
+ 'order_amount' => '주문금액',
+ 'order_items' => '주문상품',
+ 'apply_after_sales' => 'A/S 신청하기',
+ 'order_total' => '합계주문',
+ 'logistics_status' => '물류 상태',
+ 'order_status' => '주문상태',
+ 'remark' => '비고',
+ 'update_time' => '업데이트 시간',
+ ],
+
+ 'order_success' => [
+ 'order_success' => '축하드립니다, 주문 생성 성공!',
+ 'order_number' => '주문번호',
+ 'amounts_payable' => '미지급금액',
+ 'payment_method' => '지불방식',
+ 'view_order' => '주문내역보기',
+ 'pay_now' => '바로 지불',
+ 'kind_tips' => '따뜻한 힌트:주문 생성 완료, 빠른 결제 부탁드립니다~',
+ 'also' => '괜찮으십니다',
+ 'continue_purchase' => '계속 구매',
+ 'contact_customer_service' => '주문 과정에서 문제가 있으시면 언제든지 저희 고객 서비스 직원에게 연락하시면 됩니다',
+ 'emaill' => '메일함',
+ 'service_hotline' => '서비스 핫라인',
+ ],
+
+ ],
+
+ 'addresses' => [
+ 'index' => '내 주소',
+ 'add_address' => '새 주소 추가',
+ 'default_address' => '기본 주소',
+ 'delete' => '삭제',
+ 'edit' => '편집',
+ 'enter_name' => '이름 입력하세요',
+ 'enter_phone' => '연락처를 입력하세요',
+ 'enter_address' => '상세주소 1을 입력하세요',
+ 'select_province' => '성을 선택하십시오',
+ 'enter_city' => '도시를 적어주세요',
+ 'confirm_delete' => '주소를 삭제하시겠습니까?',
+ 'hint' => '힌트',
+ 'check_form' => '양식이 올바르게 작성되었는지 확인하십시오',
+ ],
+
+ 'rma' => [
+ 'index' => '나의 A/S',
+ 'commodity' => '상품',
+ 'quantity' => '수량',
+ 'service_type' => '서비스 유형',
+ 'return_reason' => '교체 사유',
+ 'creation_time' => '만들기 시간',
+ 'check' => '보기',
+
+ 'rma_info' => [
+ 'index' => 'A/S 내역',
+ ],
+
+ 'rma_form' => [
+ 'index' => 'A/S 정보 제출하기',
+ 'service_type' => '서비스 유형',
+ 'return_quantity' => '반환수량',
+ 'unpacked' => '포장 개봉 완료',
+ 'return_reason' => '교체 사유',
+ 'remark' => '비고',
+ ],
+ ],
+];
diff --git a/resources/lang/ko/shop/brands.php b/resources/lang/ko/shop/brands.php
new file mode 100644
index 00000000..39894632
--- /dev/null
+++ b/resources/lang/ko/shop/brands.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-04 10:59:15
+ * @modified 2022-08-04 10:59:15
+ */
+
+return [
+ 'index' => '브랜드 목록',
+];
diff --git a/resources/lang/ko/shop/carts.php b/resources/lang/ko/shop/carts.php
new file mode 100644
index 00000000..3388552c
--- /dev/null
+++ b/resources/lang/ko/shop/carts.php
@@ -0,0 +1,40 @@
+
+ * @created 2022-08-17 23:10:20
+ * @modified 2022-08-17 23:10:20
+ */
+
+return [
+ 'index' => '장바구니',
+ 'added_to_cart' => '카트 가입 완료',
+ 'select_all' => '모두 선택',
+ 'commodity' => '상품',
+ 'quantity' => '수량',
+ 'subtotal' => '소계',
+ 'product_total' => '상품총계',
+ 'customer_discount' => '멤버십 혜택',
+ 'order_total' => '미지급총액',
+ 'shipping_fee' => '운임',
+ 'all' => '다',
+ 'selected' => '선택됨',
+ 'to_checkout' => '계산하러 가기',
+ 'cart_empty' => '장바구니가 비어 있습니다',
+ 'go_buy' => '사고 싶은 상품 보러 가기',
+ 'go_shopping' => '구경하러 가기',
+ 'must_select' => '적어도 하나의 상품을 선택해주세요',
+ 'mini' => '당신의 장바구니',
+ 'delete' => '삭제',
+ 'check_cart' => '장바구니 보기',
+
+ 'invalid_customer' => '장바구니 고객 무효',
+ 'empty_selected_products' => '장바구니 선택 상품이 비어 있습니다',
+ 'invalid_shipping_address' => '배송지 주소가 유효하지 않습니다.',
+ 'invalid_payment_address' => '청구서 주소가 잘못되었습니다.',
+ 'invalid_shipping_method' => '배송수단 불가',
+ 'invalid_payment_method' => '지불수단 사용불가',
+];
diff --git a/resources/lang/ko/shop/checkout.php b/resources/lang/ko/shop/checkout.php
new file mode 100644
index 00000000..ba16e44a
--- /dev/null
+++ b/resources/lang/ko/shop/checkout.php
@@ -0,0 +1,41 @@
+
+ * @created 2022-08-17 23:10:20
+ * @modified 2022-08-17 23:10:20
+ */
+
+return [
+ 'index' => '계산',
+ 'address' => '배송지 주소',
+ 'payment_address' => '계산서 주소',
+ 'same_as_shipping_address' => '계산서주소와 수취주소',
+ 'chosen' => '선택됨',
+ 'edit' => '편집',
+ 'choose_another_address' => '다른 주소 선택',
+ 'add_new_address' => '새 주소 추가',
+ 'payment_method' => '지불방식',
+ 'delivery_method' => '배달방식',
+ 'cart_totals' => '카트 총수',
+ 'submit_order' => '주문제출',
+ 'enter_name' => '이름 입력하세요',
+ 'enter_phone' => '연락처를 입력하세요',
+ 'enter_address' => '상세주소 1을 입력하세요',
+ 'select_province' => '성을 선택하십시오',
+ 'enter_city' => '도시를 적어주세요',
+ 'check_form' => '양식이 올바르게 작성되었는지 확인하십시오',
+ 'error_payment_address' => '계산서 주소를 선택하세요',
+ 'checkout_success_title' => '주문 결제 완료!',
+
+ 'payment' => [
+ 'index' => '지불하세요',
+ 'please_pay' => '주문 제출 완료, 결제 부탁드립니다',
+ 'order_number' => '주문번호',
+ 'amounts_payable' => '미지급금액',
+ 'payment_method' => '지불방식',
+ ],
+];
diff --git a/resources/lang/ko/shop/common.php b/resources/lang/ko/shop/common.php
new file mode 100644
index 00000000..6ed6a60a
--- /dev/null
+++ b/resources/lang/ko/shop/common.php
@@ -0,0 +1,19 @@
+
+ * @created 2022-08-17 23:10:20
+ * @modified 2022-08-17 23:10:20
+ */
+
+return [
+ 'home' => '첫 화면',
+ 'submit' => '제출',
+ 'cancel' => '취소',
+ 'confirm' => '확정',
+ 'no' => '아니오',
+ 'yes' => '예',
+];
diff --git a/resources/lang/ko/shop/currency.php b/resources/lang/ko/shop/currency.php
new file mode 100644
index 00000000..c940c346
--- /dev/null
+++ b/resources/lang/ko/shop/currency.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-07-28 17:21:38
+ * @modified 2022-07-28 17:21:38
+ */
+return [
+ 'decimal_point' => '.',
+ 'thousand_point' => ',',
+];
diff --git a/resources/lang/ko/shop/file.php b/resources/lang/ko/shop/file.php
new file mode 100644
index 00000000..4a69ceae
--- /dev/null
+++ b/resources/lang/ko/shop/file.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-30 12:03:19
+ * @modified 2022-08-30 12:03:19
+ */
+
+return [
+ 'uploaded_success' => '업로드 성공',
+];
diff --git a/resources/lang/ko/shop/forgotten.php b/resources/lang/ko/shop/forgotten.php
new file mode 100644
index 00000000..8beb1a57
--- /dev/null
+++ b/resources/lang/ko/shop/forgotten.php
@@ -0,0 +1,33 @@
+
+ * @created 2022-07-28 17:21:38
+ * @modified 2022-07-28 17:21:38
+ */
+
+return [
+ 'index' => '비밀번호 잊어버림',
+ 'follow_prompt' => '힌트에 따라 비밀번호를 찾아주세요',
+ 'email_forCode' => '이메일 주소를 입력하여 인증번호를 받으십시오.',
+ 'enter_password' => '새 비밀번호를 입력하세요',
+ 'email' => '이메일',
+ 'email_address' => '이메일 주소',
+ 'verification_code' => '인증 코드',
+ 'password' => '비밀번호',
+ 'confirm_password' => '비밀번호 확인',
+ 'send_code' => '인증번호 보내기',
+ 'to_back' => '뒤로 돌아가기',
+ 'enter_password' => '비밀번호를 입력하세요',
+ 'enter_email' => '이메일을 입력하세요',
+ 'please_confirm' => '비밀번호를 확인하세요',
+ 'password_err' => '두번의 비밀번호 입력 불일치!',
+ 'email_err' => '정확한 이메일 주소를 입력하세요!',
+ 'enter_code' => '인증번호를 입력하세요',
+ 'verification_code_sent' => '인증번호가 발송되었으니 확인하시고 인증번호를 입력해주세요',
+ 'password_updated' => '비밀번호 수정됨',
+];
diff --git a/resources/lang/ko/shop/login.php b/resources/lang/ko/shop/login.php
new file mode 100644
index 00000000..ea899fee
--- /dev/null
+++ b/resources/lang/ko/shop/login.php
@@ -0,0 +1,40 @@
+
+ * @created 2022-07-28 17:21:38
+ * @modified 2022-07-28 17:21:38
+ */
+
+return [
+ 'index' => '사용자 로그인 및 등록',
+ 'login_and_sign' => '로그인/등록',
+ 'home' => '첫 화면',
+ 'library' => '개인중심',
+ 'login' => '로그인',
+ 'already' => '이미 우리 거래처인가요?',
+ 'description' => '이미 우리 고객인가요?',
+ 'email' => '메일',
+ 'email_address' => '메일 주소',
+ 'password' => '비밀번호',
+ 'forget_password' => '비밀번호를 잊어버림',
+ 'new' => '새 계정',
+ 'not_already' => '저희 등록 고객이 아닌가요?',
+ 'confirm_password' => '비밀번호 확인',
+ 'register' => '등록',
+ 'enter_password' => '비밀번호를 입력하세요',
+ 'enter_email' => '이메일을 입력하세요',
+ 'please_confirm' => '비밀번호를 확인하세요',
+ 'password_err' => '두번의 비밀번호 입력 불일치!',
+ 'email_err' => '정확한 이메일 주소를 입력하세요!',
+ 'check_form' => '양식이 올바르게 작성되었는지 확인하십시오',
+ 'email_or_password_error' => '메일 또는 비밀번호 오류!',
+ 'customer_inactive' => '사용자가 비활성화되었습니다.',
+ 'login_successfully' => '로그인 성공',
+ 'register_success' => '등록 성공',
+ 'third_party_logins' => '서드파티 로그인',
+];
diff --git a/resources/lang/ko/shop/order.php b/resources/lang/ko/shop/order.php
new file mode 100644
index 00000000..67790de5
--- /dev/null
+++ b/resources/lang/ko/shop/order.php
@@ -0,0 +1,18 @@
+
+ * @created 2022-07-28 17:21:38
+ * @modified 2022-07-28 17:21:38
+ */
+
+return [
+ 'invalid_order' => '무효 주문',
+ 'confirm_order' => '사용자가 수령 확인',
+ 'cancel_order' => '사용자의 주문 취소',
+ 'order_already_paid' => '주문 결제 완료',
+];
diff --git a/resources/lang/ko/shop/products.php b/resources/lang/ko/shop/products.php
new file mode 100644
index 00000000..7e7475e1
--- /dev/null
+++ b/resources/lang/ko/shop/products.php
@@ -0,0 +1,21 @@
+
+ * @created 2022-08-18 08:31:03
+ * @modified 2022-08-18 08:31:03
+ */
+
+return [
+ 'search' => '검색',
+ 'add_to_favorites' => '즐겨찾기',
+ 'add_to_cart' => '장바구니 넣기',
+ 'buy_now' => '바로 구매하기',
+ 'product_details' => '상품상세',
+ 'in_stock' => '재고 있음',
+ 'out_stock' => '품절',
+ 'model' => '모델',
+];
diff --git a/resources/lang/ko/shop/steps.php b/resources/lang/ko/shop/steps.php
new file mode 100644
index 00000000..4d922956
--- /dev/null
+++ b/resources/lang/ko/shop/steps.php
@@ -0,0 +1,18 @@
+
+ * @created 2022-08-18 08:31:03
+ * @modified 2022-08-18 08:31:03
+ */
+
+return [
+ 'index' => '단계',
+ 'cart' => '장바구니',
+ 'checkout' => '계산',
+ 'submitted_successfully' => '제출 성공',
+ 'payment' => '결제',
+];
diff --git a/resources/lang/ko/shop/wishlist.php b/resources/lang/ko/shop/wishlist.php
new file mode 100644
index 00000000..85c57479
--- /dev/null
+++ b/resources/lang/ko/shop/wishlist.php
@@ -0,0 +1,15 @@
+
+ * @created 2022-08-22 20:20:37
+ * @modified 2022-08-22 20:20:37
+ */
+
+return [
+ 'add_wishlist_success' => '즐겨찾기에 추가됨',
+ 'remove_wishlist_success' => '즐겨찾기 제거 성공',
+];
diff --git a/resources/lang/ko/user.php b/resources/lang/ko/user.php
new file mode 100644
index 00000000..5da69fb6
--- /dev/null
+++ b/resources/lang/ko/user.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-29 20:33:32
+ * @modified 2022-08-29 20:33:32
+ */
+
+return [
+ 'email' => 'Email',
+];
diff --git a/resources/lang/ko/validation.php b/resources/lang/ko/validation.php
new file mode 100644
index 00000000..93e4b57b
--- /dev/null
+++ b/resources/lang/ko/validation.php
@@ -0,0 +1,169 @@
+ ':attribute는 받아들여야 한다.',
+ 'accepted_if' => ':other가:value일 때:attribute는 수락해야 합니다.',
+ 'active_url' => ':attribute는 유효한 URL이어야 합니다.',
+ 'after' => ':attribute는 다음 날짜이어야 합니다.',
+ 'after_or_equal' => ':attribute는 다음과 같은 날짜여야 합니다.',
+ 'alpha' => ':attribute는 알파벳만 포함할 수 있습니다.',
+ 'alpha_dash' => ':attribute는 문자, 숫자, 중간 줄 또는 밑줄만 포함할 수 있습니다.',
+ 'alpha_num' => ':attribute는 문자와 숫자만 포함할 수 있습니다.',
+ 'array' => ':attribute는 배열이어야 합니다.',
+ 'before' => ':attribute는: date 이전 날짜여야 합니다.',
+ 'before_or_equal' => ':attribute는: date 이전 또는 동일한 날짜여야 합니다.',
+ 'between' => [
+ 'numeric' => ':attribute는:min에서:max 사이여야 합니다.',
+ 'file' => ':attribute는:min에서:max KB 사이여야 합니다.',
+ 'string' => ':attribute는:min에서:max 사이에 있어야 합니다.',
+ 'array' => ':attribute는:min에서:max 항목 사이에 있어야 합니다.',
+ ],
+ 'boolean' => ':attribute 문자는 true 또는 false이어야 합니다.',
+ 'confirmed' => ':attribute 2차 확인 불일치.',
+ 'current_password' => '비밀번호가 올바르지 않습니다.',
+ 'date' => ':attribute는 유효한 날짜여야 합니다.',
+ 'date_equals' => ':attribute는:date와 같아야 합니다.',
+ 'date_format' => ':attribute가 주어진 형식:format과 일치하지 않습니다.',
+ 'declined' => ':attribute는 거부되어야 합니다.',
+ 'declined_if' => ':other가:value.일 때:attribute는 거부되어야 합니다.',
+ 'different' => ':attribute는:other.',
+ 'digits' => ':attribute는 반드시: digits 자리수입니다.',
+ 'digits_between' => ':attribute는:min과:max 비트 사이여야 합니다.',
+ 'dimensions' => ':attribute에 잘못된 그림 크기가 있습니다.',
+ 'distinct' => ':attribute 필드에 중복된 값이 있습니다.',
+ 'email' => ':attribute는 유효한 이메일 주소여야 합니다.',
+ 'ends_with' => ':attribute는:values로 끝나야 합니다.',
+ 'exists' => '선택된: attribute는 유효하지 않습니다.',
+ 'file' => ':attribute는 파일이어야 합니다.',
+ 'filled' => ':attribute의 필드는 필수입니다.',
+ 'gt' => [
+ 'numeric' => ':attribute는:value보다 커야 합니다.',
+ 'file' => ':attribute는:value KB보다 커야 합니다.',
+ 'string' => ':attribute:value 를 초과해야 합니다 . ',
+ 'array' => ':attribute는:value 항목을 초과해야 합니다 . ',
+ ],
+ 'gte' => [
+ 'numeric' => ':attribute는:value보다 크거나 같아야 합니다 . ',
+ 'file' => ':attribute는 value KB보다 크거나 같아야 합니다 . ',
+ 'string' => ':attribute는 value 문자보다 크거나 같아야 합니다 . ',
+ 'array' => ':attribute는:value 항목보다 크거나 같아야 합니다 . ',
+ ],
+ 'image' => ':attribute는 이미지 형식이어야 합니다 . ',
+ 'in' => '선택된: attribute는 유효하지 않습니다 . ',
+ 'in_array' => ':attribute 필드가 없습니다:other . ',
+ 'integer' => ':attribute는 정수여야 합니다 . ',
+ 'ip' => ':attribute는 유효한 IP 주소여야 합니다 . ',
+ 'ipv4' => ':attribute는 유효한 IPv4 주소여야 합니다 . ',
+ 'ipv6' => ':attribute는 유효한 IPv6 주소여야 합니다 . ',
+ 'json' => ':attribute는 유효한 JSON 문자열이어야 합니다 . ',
+ 'lt' => [
+ 'numeric' => ':attribute는:value보다 적어야 합니다 . ',
+ 'file' => ':attribute는:value KB보다 작아야 합니다 . ',
+ 'string' => ':attribute는 value보다 작아야 합니다 . ',
+ 'array' => ':attribute는:value 항목보다 작아야 합니다 . ',
+ ],
+ 'lte' => [
+ 'numeric' => ':attribute는:value 보다 적거나 같아야 합니다',
+ 'file' => ':attribute는: value KB보다 적거나 같아야 합니다 . ',
+ 'string' => ':attribute는 value 문자보다 적거나 같아야 합니다 . ',
+ 'array' => ':attribute는:value 항목보다 적거나 같아야 합니다 . ',
+ ],
+ 'max' => [
+ 'numeric' => ':attribute의 최대 길이는:max 자릿수 . ',
+ 'file' => ':attribute의 최대 크기는:max KB . ',
+ 'string' => ':attribute의 최대 길이는:max 문자입니다 . ',
+ 'array' => ':attribute 최대값은:max 항목 . ',
+ ],
+ 'mimes' => ':attribute의 파일 형식은:values . ',
+ 'mimetypes' => ':attribute의 파일 형식은 다음과 같아야 합니다 . values . ',
+ 'min' => [
+ 'numeric' => ':attribute의 최소 길이는:min 자리수 . ',
+ 'file' => ':attribute의 크기는 최소한:min KB . ',
+ 'string' => ':attribute의 최소 길이는:min 문자입니다 . ',
+ 'array' => ':attribute 최소:min 항목 . ',
+ ],
+ 'multiple_of' => ':attribute는 value의 배수여야 합니다 . ',
+ 'not_in' => '선택된: attribute는 유효하지 않습니다 . ',
+ 'not_regex' => ':attribute 형식이 잘못되었습니다 . ',
+ 'numeric' => ':attribute는 숫자여야 합니다 . ',
+ 'password' => '비밀번호 오류 . ',
+ 'present' => ':attribute 필드가 있어야 합니다 . ',
+ 'prohibited' => ':attribute 필드는 금지되어 있습니다 . ',
+ 'prohibited_if' => ':attribute 필드는 금지되어 있습니다:other는:value . ',
+ 'prohibited_unless' => ':attribute 필드는 금지되어 있습니다:other는:values입니다 . ',
+ 'prohibits' => ':attribute 필드는 사용할 수 없습니다:other . ',
+ 'regex' => ':attribute 형식이 잘못되었습니다 . ',
+ 'required' => ':attribute 필드는 필수입니다 . ',
+ 'required_if' => ':attribute 필드 필수:other 예:value . ',
+ 'required_unless' => ': attribute 필드는 필수입니다 .:other가:values에 있어야 합니다 . ',
+ 'required_with' => ':attribute 필드가 필수:values가 존재합니다 . ',
+ 'required_with_all' => ':attribute 필드가 필수:values가 존재합니다 . ',
+ 'required_without' => ':attribute 필드는 필수입니다:values는 존재하지 않습니다 . ',
+ 'required_without_all' => ':attribute 필드는 필수입니다 . values는 존재합니다 . ',
+ 'same' => ':attribute와:other는 일치해야 합니다 . ',
+ 'size' => [
+ 'numeric' => ':attribute는 반드시:size 자리수여야 합니다 . ',
+ 'file' => ':attribute 必须是 :size KB。',
+ 'string' => ':attribute는 반드시:size 글자여야 합니다 . ',
+ 'array' => ':attribute는 다음과 같은 항목을 포함해야 합니다 . ',
+ ],
+ 'starts_with' => ':attribute는:values로 시작해야 합니다 . ',
+ 'string' => ':attribute는 문자열이어야 합니다 . ',
+ 'timezone' => ':attribute는 유효한 시간대여야 합니다 . ',
+ 'unique' => ':attribute가 이미 존재합니다 . ',
+ 'uploaded' => ':attribute 업로드 실패 . ',
+ 'url' => ':attribute 형식이 잘못되었습니다 . ',
+ 'uuid' => ':attribute는 유효한 UUID여야 합니다 . ',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify custom validation messages for attributes using the
+ | convention "attribute.rule" to name the lines. This makes it quick to
+ | specify a specific custom language line for a given attribute rule.
+ |
+ */
+
+ 'custom' => [
+ 'attribute - name' => [
+ 'rule - name' => 'custom - message',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Attributes
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines are used to swap our attribute placeholder
+ | with something more reader friendly such as "E-Mail Address" instead
+ | of "email". This simply helps us make our message more expressive.
+ |
+ */
+
+ 'attributes' => [
+ 'descriptions . en . title' => '영문 제목',
+ 'descriptions . zh_cn . title' => '중국어 제목',
+
+ 'tax_rate' => [
+ 'name' => '세금명',
+ 'type' => '유형',
+ 'rate' => '세율',
+ ],
+ ],
+
+];
diff --git a/resources/lang/ru/admin/common.php b/resources/lang/ru/admin/common.php
index eb054713..511ce2d6 100644
--- a/resources/lang/ru/admin/common.php
+++ b/resources/lang/ru/admin/common.php
@@ -22,44 +22,44 @@ return [
'has_no_permission' => 'У вас нет разрешения на доступ к этой странице, обратитесь к системному администратору.',
// header
- 'home' => 'Управление домашней страницей',
- 'order' => 'управление заказами',
- 'rma' => 'управление послепродажным обслуживанием',
+ 'home' => 'титульная страница',
+ 'order' => 'заказами',
+ 'rma' => 'послепродажным обслуживанием',
'rma_reason' => 'Управление причинами возврата',
- 'product' => 'управление продуктом',
- 'brand' => 'управление брендом',
+ 'product' => 'продуктом',
+ 'brand' => 'брендом',
'attribute' => 'attribute',
'attribute_group' => 'attribute group',
- 'category' => 'управление категориями',
- 'customer_group' => 'управление группой клиентов',
- 'customer' => 'управление клиентами',
- 'page' => 'управление контентом',
+ 'category' => 'категориями',
+ 'customer_group' => 'группой клиентов',
+ 'customer' => 'клиентами',
+ 'page' => 'контентом',
'page_category' => 'Page Category',
- 'setting' => 'системные настройки',
- 'plugin' => 'управление плагинами',
+ 'setting' => 'настраивать',
+ 'plugin' => 'плагинами',
'admin_user' => 'бэкенд-пользователь',
'admin_role' => 'роль пользователя',
'region' => 'группировка регионов',
- 'tax_rate' => 'управление налоговой ставкой',
- 'tax_class' => 'управление налогами',
- 'currency' => 'управление валютой',
- 'language' => 'управление языком',
- 'zone' => 'управление провинциями',
- 'country' => 'управление страной',
+ 'tax_rate' => 'налоговой ставкой',
+ 'tax_class' => 'налогами',
+ 'currency' => 'валютой',
+ 'language' => 'языком',
+ 'zone' => 'провинциями',
+ 'country' => 'страной',
'file_manager' => 'файловый менеджер',
'access_frontend' => 'Доступ к внешнему интерфейсу',
// sidebar
- 'settings_index' => 'системные настройки',
+ 'settings_index' => 'настраивать',
'admin_users_index' => 'фоновый пользователь',
'plugins_index' => 'список плагинов',
'regions_index' => 'группировка регионов',
'tax_rates_index' => 'настройки ставки налога',
'tax_classes_index' => 'налоговая категория',
- 'currencies_index' => 'управление валютой',
- 'languages_index' => 'управление языками',
+ 'currencies_index' => 'валютой',
+ 'languages_index' => 'языками',
'design_index' => 'Украшение дома',
- 'pages_index' => 'управление статьями',
+ 'pages_index' => 'статьями',
'page_categories_index' => 'Классификация статей',
'design_footer_index' => 'украшение нижнего колонтитула',
'design_menu_index' => 'Конфигурация навигации',
diff --git a/resources/lang/ru/admin/dashboard.php b/resources/lang/ru/admin/dashboard.php
index 1e606c73..7b21741b 100644
--- a/resources/lang/ru/admin/dashboard.php
+++ b/resources/lang/ru/admin/dashboard.php
@@ -10,6 +10,7 @@
*/
return [
+ 'product_total' => 'Product Total',
'customer_view' => 'посещения пользователей',
'order_total' => 'сумма заказа',
'customer_new' => 'Добавить пользователя',
diff --git a/resources/lang/ru/admin/product.php b/resources/lang/ru/admin/product.php
index ce69e5e8..aa6a2268 100644
--- a/resources/lang/ru/admin/product.php
+++ b/resources/lang/ru/admin/product.php
@@ -39,6 +39,8 @@ return [
'add_variable_image' => 'Добавить изображение спецификации',
'default_main_product' => 'Основной продукт по умолчанию',
'modify_order' => 'Дважды щелкните, чтобы изменить, перетащите, чтобы настроить порядок',
+ 'weight_text' => 'вес',
+ 'weight_class' => 'единица веса',
'confirm_batch_product' => 'Вы уверены, что хотите удалить выбранные элементы сразу?',
'confirm_batch_status' => 'Вы уверены, что хотите массово изменить статус выбранных элементов?',
diff --git a/resources/lang/ru/pagination.php b/resources/lang/ru/pagination.php
index 31b85aab..a301728f 100644
--- a/resources/lang/ru/pagination.php
+++ b/resources/lang/ru/pagination.php
@@ -1,6 +1,6 @@
'Вперёд »',
- 'previous' => '« Назад',
+ 'next' => 'Вперёд',
+ 'previous' => 'Назад',
];
diff --git a/resources/lang/zh_cn/admin/account.php b/resources/lang/zh_cn/admin/account.php
new file mode 100644
index 00000000..6c496236
--- /dev/null
+++ b/resources/lang/zh_cn/admin/account.php
@@ -0,0 +1,15 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'create_token' => '生成 Token',
+ 'password_text' => '密码留空则不修改',
+];
diff --git a/resources/lang/zh_cn/admin/attribute_group.php b/resources/lang/zh_cn/admin/attribute_group.php
index 92cf70ce..432e0279 100644
--- a/resources/lang/zh_cn/admin/attribute_group.php
+++ b/resources/lang/zh_cn/admin/attribute_group.php
@@ -13,6 +13,7 @@ return [
'index' => '属性组',
'create_at_groups' => '创建属性组',
'error_cannot_delete_attribute_used' => '属性组不能删除,由于该属性组被属性(属性ID: :attributes)使用',
+ 'error_cannot_delete_default_group' => 'ID为1的为默认属性组,不能删除',
'attribute_groups_index' => '属性组列表',
'attribute_groups_create' => '创建属性组',
diff --git a/resources/lang/zh_cn/admin/common.php b/resources/lang/zh_cn/admin/common.php
index 7ad40fc4..dc14bf7e 100644
--- a/resources/lang/zh_cn/admin/common.php
+++ b/resources/lang/zh_cn/admin/common.php
@@ -22,22 +22,24 @@ return [
'has_no_permission' => '您没有权限访问该页面, 请联系系统管理员。',
// header
- 'home' => '管理首页',
- 'order' => '订单管理',
+ 'home' => '首页',
+ 'home_index' => '首页',
+ 'order' => '订单',
'rma' => '售后服务管理',
'rma_reason' => '退换货原因管理',
- 'product' => '商品管理',
+ 'product' => '商品',
'brand' => '品牌管理',
'attribute' => '属性管理',
'attribute_group' => '属性组管理',
'category' => '分类管理',
'customer_group' => '客户组管理',
- 'customer' => '客户管理',
- 'page' => '文章管理',
- 'inquiry' => '询盘管理',
+ 'customer' => '客户',
+ 'page' => '文章',
+ 'inquiry' => '询盘管理',
'page_category' => '文章分类',
- 'setting' => '系统设置',
- 'plugin' => '插件管理',
+ 'setting' => '系统',
+ 'plugin' => '插件',
+ 'design' => '设计',
'marketing' => '插件市场',
'admin_user' => '后台用户',
'admin_role' => '用户角色',
@@ -50,8 +52,16 @@ return [
'country' => '国家管理',
'file_manager' => '文件管理器',
'access_frontend' => '访问前台',
+ 'copyright_buy' => '版权购买',
+ 'recent_view' => '最近访问',
+ 'common_link' => '常用链接',
+ 'header_search_input' => '搜索后台功能',
+ 'header_search_title' => '搜索结果',
+ 'license_services' => '版权与服务',
// sidebar
+ 'account_index' => '个人中心',
+ 'multi_filter_index' => '高级筛选',
'theme_index' => '模板设置',
'attribute_groups_index' => '属性组',
'attributes_index' => '属性',
@@ -66,7 +76,7 @@ return [
'languages_index' => '语言管理',
'design_index' => '首页装修',
'pages_index' => '文章管理',
- 'inquiry_index' => '询盘管理',
+ 'inquiry_index' => '询盘管理',
'page_categories_index' => '文章分类',
'design_footer_index' => '页尾装修',
'design_menu_index' => '导航配置',
diff --git a/resources/lang/zh_cn/admin/currency.php b/resources/lang/zh_cn/admin/currency.php
index 8e84e5b1..3ea75424 100644
--- a/resources/lang/zh_cn/admin/currency.php
+++ b/resources/lang/zh_cn/admin/currency.php
@@ -16,4 +16,6 @@ return [
'currencies_show' => '货币详情',
'currencies_update' => '更新货币',
'currencies_delete' => '删除货币',
+
+ 'order_exist' => '该货币有订单正在使用, 无法删除!',
];
diff --git a/resources/lang/zh_cn/admin/dashboard.php b/resources/lang/zh_cn/admin/dashboard.php
index df39070f..7399a5e9 100644
--- a/resources/lang/zh_cn/admin/dashboard.php
+++ b/resources/lang/zh_cn/admin/dashboard.php
@@ -10,6 +10,7 @@
*/
return [
+ 'product_total' => '商品总数',
'customer_view' => '用户访问量',
'order_total' => '订单量',
'customer_new' => '新增用户',
diff --git a/resources/lang/zh_cn/admin/file_manager.php b/resources/lang/zh_cn/admin/file_manager.php
index 43b71768..bd6f0bd4 100644
--- a/resources/lang/zh_cn/admin/file_manager.php
+++ b/resources/lang/zh_cn/admin/file_manager.php
@@ -10,28 +10,38 @@
*/
return [
- 'file_manager_create' => '创建目录/文件',
- 'file_manager_show' => '查看目录/文件',
- 'file_manager_update' => '重命名',
- 'file_manager_delete' => '删除目录/文件',
- 'directory_already_exist' => '目录已存在',
- 'directory_not_empty' => '该目录不为空',
- 'target_not_exist' => '原始文件或者文件夹不存在',
- 'create_folder' => '创建文件夹',
- 'rename' => '重命名',
- 'download' => '下载',
- 'upload_files' => '上传文件',
- 'click_upload' => '点击上传,或将图片拖到此处',
- 'image_uploading' => '图片上传中',
- 'no_file' => '没有文件',
- 'picture_space' => '图片空间',
- 'show_pc' => '请到PC端操作',
+ 'file_sorting' => '文件排序',
+ 'text_type' => '类型',
+ 'text_created' => '创建时间',
+ 'file_name' => '文件名称',
+ 'to_sort' => '排序',
+ 'text_desc' => '倒序',
+ 'text_asc' => '顺序',
+ 'file_manager_create' => '创建目录/文件',
+ 'file_manager_show' => '查看目录/文件',
+ 'file_manager_update' => '重命名',
+ 'file_manager_delete' => '删除目录/文件',
+ 'directory_already_exist' => '目录已存在',
+ 'directory_not_empty' => '该目录不为空',
+ 'target_not_exist' => '原始文件或者文件夹不存在',
+ 'create_folder' => '创建文件夹',
+ 'rename' => '重命名',
+ 'download' => '下载',
+ 'upload_files' => '上传文件',
+ 'click_upload' => '点击上传,或将图片拖到此处',
+ 'image_uploading' => '图片上传中',
+ 'no_file' => '没有文件',
+ 'picture_space' => '图片空间',
+ 'show_pc' => '请到PC端操作',
+ 'verify_select_image' => '请选择图片',
+ 'verify_select_video' => '请选择视频',
- 'confirm_delete_file' => '是否要删除选中文件',
- 'confirm_delete_folder' => '正在进行删除文件夹操作,文件夹内所有文件都将被删除,是否确认?',
- 'new_folder' => '新建文件夹',
- 'can_empty' => '不能为空',
- 'finish' => '完成',
- 'uploading' => '上传中',
- 'file_manager' => '图片管理器',
+ 'confirm_delete_file' => '是否要删除选中文件',
+ 'confirm_delete_folder' => '正在进行删除文件夹操作,文件夹内所有文件都将被删除,是否确认?',
+ 'new_folder' => '新建文件夹',
+ 'can_empty' => '不能为空',
+ 'finish' => '完成',
+ 'uploading' => '上传中',
+ 'upload_fail' => '上传失败',
+ 'file_manager' => '图片管理器',
];
diff --git a/resources/lang/zh_cn/admin/multi_filter.php b/resources/lang/zh_cn/admin/multi_filter.php
new file mode 100644
index 00000000..34f77da3
--- /dev/null
+++ b/resources/lang/zh_cn/admin/multi_filter.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'price_filter' => '价格筛选',
+];
diff --git a/resources/lang/zh_cn/admin/order.php b/resources/lang/zh_cn/admin/order.php
index a69142de..78a6afdc 100644
--- a/resources/lang/zh_cn/admin/order.php
+++ b/resources/lang/zh_cn/admin/order.php
@@ -12,15 +12,23 @@
return [
'list' => '订单列表',
- 'order_quantity' => '订单数量',
- 'order_amount' => '订单金额',
- 'orders_index' => '订单列表',
- 'orders_create' => '创建订单',
- 'orders_show' => '订单详情',
- 'orders_export' => '导出订单',
- 'orders_update' => '更新订单',
- 'orders_delete' => '删除订单',
- 'notify' => '是否提醒',
- 'orders_update_status' => '更新状态',
- 'error_status' => '请选择状态',
+ 'order_quantity' => '订单数量',
+ 'order_amount' => '订单金额',
+ 'orders_index' => '订单列表',
+ 'orders_create' => '创建订单',
+ 'orders_show' => '订单详情',
+ 'orders_export' => '导出订单',
+ 'orders_update' => '更新订单',
+ 'orders_delete' => '删除订单',
+ 'notify' => '是否提醒',
+ 'orders_update_status' => '更新状态',
+ 'error_status' => '请选择状态',
+ 'payments_history' => '支付信息',
+ 'text_response' => '返回数据',
+ 'text_request' => '请求参数',
+ 'text_callback' => '回调',
+ 'text_receipt' => '凭据',
+ 'order_id' => '订单ID',
+ 'text_transaction_id' => '交易ID',
+ 'text_click_view' => '点击查看',
];
diff --git a/resources/lang/zh_cn/admin/plugin.php b/resources/lang/zh_cn/admin/plugin.php
index e3ce6b7a..d22e92d8 100644
--- a/resources/lang/zh_cn/admin/plugin.php
+++ b/resources/lang/zh_cn/admin/plugin.php
@@ -19,11 +19,12 @@ return [
'plugins_uninstall' => '卸载',
'to_enable' => '去启用',
- 'plugin_list' => '插件设置',
- 'plugin_code' => '插件代码',
- 'plugin_type' => '插件类型',
- 'plugin_description' => '插件描述',
- 'plugin_upload' => '上传插件(仅支持 zip 文件)',
+ 'plugin_list' => '插件设置',
+ 'plugin_code' => '插件代码',
+ 'plugin_type' => '插件类型',
+ 'plugin_version' => '版本号',
+ 'plugin_description' => '插件描述',
+ 'plugin_upload' => '上传插件(仅支持 zip 文件)',
'shipping' => '配送方式',
'payment' => '支付方式',
diff --git a/resources/lang/zh_cn/admin/product.php b/resources/lang/zh_cn/admin/product.php
index a82f8528..a658ab74 100644
--- a/resources/lang/zh_cn/admin/product.php
+++ b/resources/lang/zh_cn/admin/product.php
@@ -11,8 +11,8 @@
return [
'products_index' => '商品列表',
- 'products_name' => '商品名称',
- 'products_img' => '商品图片',
+ 'products_name' => '商品名称',
+ 'products_img' => '商品图片',
'products_create' => '创建商品',
'products_show' => '商品详情',
'products_update' => '更新商品',
@@ -20,6 +20,8 @@ return [
'products_trashed' => '回收站',
'products_restore' => '恢复回收站',
'clear_restore' => '清空回收站',
+ 'products_filter_index' => '查看高级筛选',
+ 'products_filter_update' => '修改高级筛选',
'batch_delete' => '批量删除',
'batch_active' => '批量上架',
@@ -33,14 +35,17 @@ return [
'price' => '价格',
'origin_price' => '原价',
'cost_price' => '成本价',
- 'quantity' => '库存数量',
+ 'quantity' => '数量',
'enable_multi_spec' => '启用多规格',
'image_help' => '第一张图片将作为商品主图,支持同时上传多张图片,多张图片之间可随意调整位置',
+ 'video_help' => '如果提示超出系统大小限制,请修改 php.ini 参数 post_max_size',
'add_variable' => '添加规格',
'add_variable_value' => '添加规格值',
'add_variable_image' => '添加规格图片',
'default_main_product' => '默认主商品',
'modify_order' => '双击修改、拖动调整顺序',
+ 'weight_text' => '重量',
+ 'weight_class' => '重量单位',
'confirm_batch_product' => '确认要批量删除选中的商品吗?',
'confirm_batch_status' => '确认要批量修改选中的商品的状态吗?',
diff --git a/resources/lang/zh_cn/admin/rma.php b/resources/lang/zh_cn/admin/rma.php
index f060f3b9..0a003f6b 100644
--- a/resources/lang/zh_cn/admin/rma.php
+++ b/resources/lang/zh_cn/admin/rma.php
@@ -10,17 +10,18 @@
*/
return [
- 'index' => '售后申请',
+ 'index' => '售后管理',
'rmas_index' => '售后服务列表',
'rmas_show' => '售后服务详情',
'rmas_update' => '更新售后服务',
'rmas_delete' => '删除售后服务',
+ 'rma_list_title' => '售后申请列表',
'customers_name' => '客户姓名',
'quantity' => '数量',
'service_type' => '服务类型',
- 'rma_details' => '售后申请详情',
+ 'rma_details' => '售后管理详情',
'reasons_return' => '退货原因',
'current_state' => '当前状态',
'modify_status' => '修改状态',
diff --git a/resources/lang/zh_cn/admin/setting.php b/resources/lang/zh_cn/admin/setting.php
index 613a5700..ea6a77f8 100644
--- a/resources/lang/zh_cn/admin/setting.php
+++ b/resources/lang/zh_cn/admin/setting.php
@@ -66,7 +66,13 @@ return [
'favicon' => 'favicon',
'favicon_info' => '显示在浏览器选项卡上的小图标,必须为PNG格式大小为:32*32',
'placeholder_image' => '占位图',
+ 'placeholder_image_info' => '没有图片或找不到图片时显示的占位图片,推荐尺寸:500*500',
'head_code' => '插入代码',
'head_code_info' => '会将输入框中的代码插入到前端页面 head 中,可用于统计代码或者添加特殊插件等',
'rate_api_key' => '汇率 API KEY',
+ 'multi_filter' => '高级筛选',
+ 'please_select' => '请添加',
+ 'multi_filter_helper' => '请选择需要在前台商品列表筛选区域显示的属性,留空则显示全部',
+ 'filter_attribute' => '属性筛选',
+ 'license_code' => '授权码',
];
diff --git a/resources/lang/zh_cn/common.php b/resources/lang/zh_cn/common.php
index 3c844907..4e83b3ed 100644
--- a/resources/lang/zh_cn/common.php
+++ b/resources/lang/zh_cn/common.php
@@ -77,6 +77,10 @@ return [
'text_to' => '到',
'batch_setting' => '批量设置',
'show_all' => '查看所有',
+ 'get_more' => '获取更多',
+ 'view_more' => '查看更多',
+ 'view_details' => '查看详情',
+ 'quick_view' => '快速预览',
'id' => 'ID',
'created_at' => '创建时间',
@@ -84,6 +88,7 @@ return [
'sort_order' => '排序',
'error_page' => '您访问的数据不存在或已被删除~',
'error_page_btn' => '返回上一页',
+ 'no_repeat' => '请勿重新添加',
'contacts' => '联系人',
'content' => '内容',
diff --git a/resources/lang/zh_cn/pagination.php b/resources/lang/zh_cn/pagination.php
index f1fc4b5a..c09f4647 100644
--- a/resources/lang/zh_cn/pagination.php
+++ b/resources/lang/zh_cn/pagination.php
@@ -13,7 +13,7 @@ return [
|
*/
- 'previous' => '« 上一页',
- 'next' => '下一页 »',
+ 'previous' => '上一页',
+ 'next' => '下一页',
];
diff --git a/resources/lang/zh_cn/product.php b/resources/lang/zh_cn/product.php
index db6dee1a..60c8f58b 100644
--- a/resources/lang/zh_cn/product.php
+++ b/resources/lang/zh_cn/product.php
@@ -20,6 +20,11 @@ return [
'model' => '型号',
'quantity' => '库存',
'image' => '图片',
+ 'kg' => '千克',
+ 'g' => '克',
+ 'oz' => '盎司',
+ 'lb' => '磅',
+ 'video' => '视频',
'active' => '上架',
'inactive' => '下架',
diff --git a/resources/lang/zh_cn/shop/account.php b/resources/lang/zh_cn/shop/account.php
index b3518e3a..6ef60e53 100644
--- a/resources/lang/zh_cn/shop/account.php
+++ b/resources/lang/zh_cn/shop/account.php
@@ -37,7 +37,7 @@ return [
'index' => '修改个人信息',
'modify_avatar' => '修改头像',
'suggest' => '上传JPG或PNG图片。建议300 x 300。',
- 'name' => '名称',
+ 'name' => '昵称',
'email' => '邮箱',
'crop' => '裁剪',
'password_edit_success' => '密码修改成功',
@@ -48,7 +48,7 @@ return [
'index' => '我的收藏',
'product' => '商品',
'price' => '价格',
- 'check_details' => '查看详情',
+ 'check_details' => '查看',
],
'order' => [
diff --git a/resources/lang/zh_cn/shop/checkout.php b/resources/lang/zh_cn/shop/checkout.php
index d5359aaf..d1f6706e 100644
--- a/resources/lang/zh_cn/shop/checkout.php
+++ b/resources/lang/zh_cn/shop/checkout.php
@@ -29,6 +29,7 @@ return [
'enter_city' => '请填写城市',
'check_form' => '请检查表单是否填写正确',
'error_payment_address' => '请选择账单地址',
+ 'checkout_success_title' => '订单已付款成功!',
'payment' => [
'index' => '请付款',
diff --git a/resources/lang/zh_cn/shop/login.php b/resources/lang/zh_cn/shop/login.php
index 2a00cabd..1e2a49c3 100644
--- a/resources/lang/zh_cn/shop/login.php
+++ b/resources/lang/zh_cn/shop/login.php
@@ -18,8 +18,8 @@ return [
'login' => '登录',
'already' => '已经是我们的客户了?',
'description' => '已经是我们的客户了?',
- 'email' => '邮件',
- 'email_address' => '邮件地址',
+ 'email' => '邮箱',
+ 'email_address' => '邮箱地址',
'password' => '密码',
'forget_password' => '忘记密码',
'new' => '新账号',
diff --git a/resources/lang/zh_cn/validation.php b/resources/lang/zh_cn/validation.php
index d9bd7379..206da3dc 100644
--- a/resources/lang/zh_cn/validation.php
+++ b/resources/lang/zh_cn/validation.php
@@ -158,6 +158,8 @@ return [
'attributes' => [
'descriptions.en.title' => '英文标题',
'descriptions.zh_cn.title' => '中文标题',
+ 'descriptions.en.summary' => '英文副标题',
+ 'descriptions.zh_cn.summary' => '中文副标题',
'tax_rate' => [
'name' => '税种名称',
diff --git a/resources/lang/zh_hk/admin/attribute_group.php b/resources/lang/zh_hk/admin/attribute_group.php
index 4e8527f6..ca693fd5 100644
--- a/resources/lang/zh_hk/admin/attribute_group.php
+++ b/resources/lang/zh_hk/admin/attribute_group.php
@@ -13,6 +13,7 @@ return [
'index' => '屬性組',
'create_at_groups' => '創建屬性組',
'error_cannot_delete_attribute_used' => '屬性組不能刪除,由於該屬性組被屬性(屬性ID: :attributes)使用',
+ 'error_cannot_delete_default_group' => 'ID為1的為默認屬性組,不能刪除',
'attribute_groups_index' => '屬性組列表',
'attribute_groups_create' => '創建屬性組',
diff --git a/resources/lang/zh_hk/admin/common.php b/resources/lang/zh_hk/admin/common.php
index 838a13ce..d11f5b1a 100644
--- a/resources/lang/zh_hk/admin/common.php
+++ b/resources/lang/zh_hk/admin/common.php
@@ -22,21 +22,23 @@ return [
'has_no_permission' => '您沒有權限訪問該頁面, 請聯繫系統管理員。 ',
// header
- 'home' => '管理首頁',
- 'order' => '訂單管理',
+ 'home' => '首頁',
+ 'home_index' => '首頁',
+ 'order' => '訂單',
'rma' => '售後服務管理',
'rma_reason' => '退換貨原因管理',
- 'product' => '商品管理',
+ 'product' => '商品',
'brand' => '品牌管理',
'attribute' => '屬性管理',
'attribute_group' => '屬性組管理',
'category' => '分類管理',
'customer_group' => '客戶組管理',
- 'customer' => '客戶管理',
- 'page' => '文章管理',
+ 'customer' => '客戶',
+ 'page' => '文章',
'page_category' => '文章分類',
- 'setting' => '系統設置',
- 'plugin' => '插件管理',
+ 'setting' => '系統',
+ 'plugin' => '插件',
+ 'design' => '設計',
'marketing' => '插件市場',
'admin_user' => '後台用戶',
'admin_role' => '用戶角色',
@@ -49,8 +51,15 @@ return [
'country' => '國家管理',
'file_manager' => '文件管理器',
'access_frontend' => '訪問前台',
+ 'copyright_buy' => '版權購買',
+ 'recent_view' => '最近訪問',
+ 'common_link' => '常用鏈接',
+ 'header_search_input' => '搜索後台功能',
+ 'header_search_title' => '搜索結果',
// sidebar
+ 'account_index' => '個人中心',
+ 'multi_filter_index' => '高級篩選',
'theme_index' => '模板設置',
'attribute_groups_index' => '屬性組',
'attributes_index' => '屬性',
diff --git a/resources/lang/zh_hk/admin/currency.php b/resources/lang/zh_hk/admin/currency.php
index d78d62f5..1cca19e7 100644
--- a/resources/lang/zh_hk/admin/currency.php
+++ b/resources/lang/zh_hk/admin/currency.php
@@ -16,4 +16,5 @@ return [
'currencies_show' => '貨幣詳情',
'currencies_update' => '更新貨幣',
'currencies_delete' => '刪除貨幣',
+ 'order_exist' => '該貨幣有訂單正在使用,無法删除!',
];
diff --git a/resources/lang/zh_hk/admin/dashboard.php b/resources/lang/zh_hk/admin/dashboard.php
index fa40a6e8..f6fdf522 100644
--- a/resources/lang/zh_hk/admin/dashboard.php
+++ b/resources/lang/zh_hk/admin/dashboard.php
@@ -10,6 +10,7 @@
*/
return [
+ 'product_total' => '產品總數',
'customer_view' => '用戶訪問量',
'order_total' => '訂單量',
'customer_new' => '新增用戶',
diff --git a/resources/lang/zh_hk/admin/file_manager.php b/resources/lang/zh_hk/admin/file_manager.php
index 8d7cd9d0..bb521569 100644
--- a/resources/lang/zh_hk/admin/file_manager.php
+++ b/resources/lang/zh_hk/admin/file_manager.php
@@ -10,6 +10,13 @@
*/
return [
+ 'file_sorting' => '文件排序',
+ 'text_type' => '類型',
+ 'text_created' => '創建時間',
+ 'file_name' => '文件名稱',
+ 'to_sort' => '排序',
+ 'text_desc' => '倒序',
+ 'text_asc' => '順序',
'file_manager_create' => '創建目錄/文件',
'file_manager_show' => '查看目錄/文件',
'file_manager_update' => '重命名',
diff --git a/resources/lang/zh_hk/admin/multi_filter.php b/resources/lang/zh_hk/admin/multi_filter.php
new file mode 100644
index 00000000..53a92d95
--- /dev/null
+++ b/resources/lang/zh_hk/admin/multi_filter.php
@@ -0,0 +1,14 @@
+
+ * @created 2022-08-02 19:03:19
+ * @modified 2022-08-02 19:03:19
+ */
+
+return [
+ 'price_filter' => '價格篩選',
+];
diff --git a/resources/lang/zh_hk/admin/plugin.php b/resources/lang/zh_hk/admin/plugin.php
index 7637e261..4c2f37c7 100644
--- a/resources/lang/zh_hk/admin/plugin.php
+++ b/resources/lang/zh_hk/admin/plugin.php
@@ -22,6 +22,7 @@ return [
'plugin_list' => '插件設置',
'plugin_code' => '插件代碼',
'plugin_type' => '插件類型',
+ 'plugin_version' => '版本號',
'plugin_description' => '插件描述',
'plugin_upload' => '上傳插件(僅支持 zip 文件)',
diff --git a/resources/lang/zh_hk/admin/product.php b/resources/lang/zh_hk/admin/product.php
index e8fffe9c..4f36f53e 100644
--- a/resources/lang/zh_hk/admin/product.php
+++ b/resources/lang/zh_hk/admin/product.php
@@ -39,6 +39,8 @@ return [
'add_variable_image' => '添加規格圖片',
'default_main_product' => '默認主商品',
'modify_order' => '雙擊修改、拖動調整順序',
+ 'weight_text' => '重量',
+ 'weight_class' => '重量單位',
'confirm_batch_product' => '確認要批量刪除選中的商品嗎? ',
'confirm_batch_status' => '確認要批量修改選中的商品的狀態嗎? ',
diff --git a/resources/lang/zh_hk/admin/rma.php b/resources/lang/zh_hk/admin/rma.php
index 720c15f7..db9d5b02 100644
--- a/resources/lang/zh_hk/admin/rma.php
+++ b/resources/lang/zh_hk/admin/rma.php
@@ -17,6 +17,7 @@ return [
'rmas_update' => '更新售後服務',
'rmas_delete' => '刪除售後服務',
+ 'rma_list_title' => '售後申請列表',
'customers_name' => '客戶姓名',
'quantity' => '數量',
'service_type' => '服務類型',
diff --git a/resources/lang/zh_hk/admin/setting.php b/resources/lang/zh_hk/admin/setting.php
index b4b289c9..2be30856 100644
--- a/resources/lang/zh_hk/admin/setting.php
+++ b/resources/lang/zh_hk/admin/setting.php
@@ -70,4 +70,8 @@ return [
'head_code' => '插入代碼',
'head_code_info' => '會將輸入框中的代碼插入到前端頁面 head 中,可用於統計代碼或者添加特殊插件等',
'rate_api_key' => '匯率 API KEY',
+ 'multi_filter' => '高級篩選',
+ 'please_select' => '請添加',
+ 'multi_filter_helper' => '請選擇需要在前台商品列表篩選區域顯示的屬性,留空則顯示全部',
+ 'filter_attribute' => '屬性篩選',
];
diff --git a/resources/lang/zh_hk/common.php b/resources/lang/zh_hk/common.php
index 0dda07e4..4ef90d33 100644
--- a/resources/lang/zh_hk/common.php
+++ b/resources/lang/zh_hk/common.php
@@ -77,6 +77,10 @@ return [
'text_to' => '到',
'batch_setting' => '批量設置',
'show_all' => '查看所有',
+ 'get_more' => '獲取更多',
+ 'view_more' => '查看更多',
+ 'view_details' => '查看詳情',
+ 'quick_view' => '快速預覽',
'id' => 'ID',
'created_at' => '創建時間',
@@ -84,6 +88,7 @@ return [
'sort_order' => '排序',
'error_page' => '您訪問的數據不存在或已被刪除~',
'error_page_btn' => '返回上一頁',
+ 'no_repeat' => '請勿重新添加',
'order' => [
'unpaid' => '待支付',
diff --git a/resources/lang/zh_hk/pagination.php b/resources/lang/zh_hk/pagination.php
index c55a1e03..5b1c2526 100644
--- a/resources/lang/zh_hk/pagination.php
+++ b/resources/lang/zh_hk/pagination.php
@@ -1,6 +1,6 @@
'下一頁 »',
- 'previous' => '« 上一頁',
+ 'next' => '下一頁',
+ 'previous' => '上一頁',
];
diff --git a/resources/lang/zh_hk/product.php b/resources/lang/zh_hk/product.php
index d8005a0f..f7407afc 100644
--- a/resources/lang/zh_hk/product.php
+++ b/resources/lang/zh_hk/product.php
@@ -20,6 +20,10 @@ return [
'model' => '型號',
'quantity' => '庫存',
'image' => '圖片',
+ 'kg' => '千克',
+ 'g' => '克',
+ 'oz' => '盎司',
+ 'lb' => '磅',
'active' => '上架',
'inactive' => '下架',
diff --git a/resources/lang/zh_hk/shop/checkout.php b/resources/lang/zh_hk/shop/checkout.php
index 8861dc4e..b6133830 100644
--- a/resources/lang/zh_hk/shop/checkout.php
+++ b/resources/lang/zh_hk/shop/checkout.php
@@ -29,6 +29,7 @@ return [
'enter_city' => '請填寫城市',
'check_form' => '請檢查表單是否填寫正確',
'error_payment_address' => '請選擇賬單地址',
+ 'checkout_success_title' => '訂單已付款成功!',
'payment' => [
'index' => '請付款',
diff --git a/tests/Browser/ExampleTest.php b/tests/Browser/ExampleTest.php
new file mode 100644
index 00000000..4a1d93ed
--- /dev/null
+++ b/tests/Browser/ExampleTest.php
@@ -0,0 +1,20 @@
+browse(function (Browser $browser) {
+ $browser->visit('/')
+ ->assertSee('BeikeShop');
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/AddCusGroupTest.php b/tests/Browser/Pages/Admin/AddCusGroupTest.php
new file mode 100644
index 00000000..d12a21e4
--- /dev/null
+++ b/tests/Browser/Pages/Admin/AddCusGroupTest.php
@@ -0,0 +1,49 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //2.点击客户管理
+ ->click(AdminPage::TOP['mg_customers'])
+ ->pause(3000)
+ //4.点击客户组
+ ->click(CustomerPage::Left['customer_group'])
+ //5.点击创建客户组
+ ->press(CustomerPage::Customer_Group['cre_cus_group'])
+ //4.填写客户组信息
+ ->type(CustomerPage::Create_Group['ch_group_name'], CusGrounp::Group_Info['ch_group_name'])
+ ->type(CustomerPage::Create_Group['en_group_name'], CusGrounp::Group_Info['en_group_name'])
+ ->type(CustomerPage::Create_Group['ch_description'], CusGrounp::Group_Info['ch_description'])
+ ->type(CustomerPage::Create_Group['en_description'], CusGrounp::Group_Info['en_description'])
+ ->type(CustomerPage::Create_Group['discount'], CusGrounp::Group_Info['discount'])
+
+ //5.点击保存
+ ->press(CustomerPage::Create_Group['save_btn'])
+ ->pause(5000)
+ ->assertSee(CusGrounp::Group_Info['ch_group_name']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/AddCustomerTest.php b/tests/Browser/Pages/Admin/AddCustomerTest.php
new file mode 100644
index 00000000..357c5352
--- /dev/null
+++ b/tests/Browser/Pages/Admin/AddCustomerTest.php
@@ -0,0 +1,45 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //2.点击客户管理
+ ->click(AdminPage::TOP['mg_customers'])
+ //3.点击创建客户
+ ->press(CustomerPage::Group_list['cre_customer'])
+ //4.填写客户信息
+ ->type(CustomerPage::Create['name'], CustomerData::Customer_Info['name'])
+ ->type(CustomerPage::Create['email'], CustomerData::Customer_Info['email'])
+ ->type(CustomerPage::Create['pwd'], CustomerData::Customer_Info['pwd'])
+
+ //5.点击保存
+ ->press(CustomerPage::Create['save_btn'])
+ ->pause(5000)
+ ->assertSee(CustomerData::Customer_Info['email']);
+
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/AddExpressTest.php b/tests/Browser/Pages/Admin/AddExpressTest.php
new file mode 100644
index 00000000..d7c39e98
--- /dev/null
+++ b/tests/Browser/Pages/Admin/AddExpressTest.php
@@ -0,0 +1,49 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ ->pause(2000)
+ //点击系统
+ ->click(AdminPage::TOP['system_set'])
+ //2.点击系统设置
+ ->click(SystemSetPage::System_Left['system_set'])
+ //3.点击快递公司
+ ->click(SystemSetPage::System_Set['express_set'])
+ ->pause(2000)
+ //点击+号
+ ->click(SystemSetPage::System_Express['add_btn'])
+ //填写快递信息
+ ->type(SystemSetPage::System_Express['express_company'], Express::Express['express_company'])
+ ->type(SystemSetPage::System_Express['express_code'], Express::Express['express_code'])
+ ->press(SystemSetPage::System_Express['save_btn'])
+ ->pause(5000)
+
+ ->assertSee(SystemSetPage::Assert['assert_ful'])
+ ->pause(3000);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/AddProductTest.php b/tests/Browser/Pages/Admin/AddProductTest.php
new file mode 100644
index 00000000..6373868d
--- /dev/null
+++ b/tests/Browser/Pages/Admin/AddProductTest.php
@@ -0,0 +1,51 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //2.点击商品
+ ->click(AdminPage::TOP['mg_product'])
+ //2.点击商品管理
+ ->click(ProductPage::Product_Left['product_mg'])
+ //3.点击创建
+ ->press(ProductPage::Product_Top['create_product'])
+ //4.填写商品信息
+ ->type(CreProductPage::Product_Top['ch_name'], CreProduct::Puoduct_Info['ch_name'])
+ ->type(CreProductPage::Product_Top['en_name'], CreProduct::Puoduct_Info['en_name'])
+ ->type(CreProductPage::Product_Top['sku'], CreProduct::Puoduct_Info['sku'])
+ ->type(CreProductPage::Product_Top['price'], CreProduct::Puoduct_Info['price'])
+ ->type(CreProductPage::Product_Top['origin_price'], CreProduct::Puoduct_Info['origin_price'])
+ ->type(CreProductPage::Product_Top['cost_price'], CreProduct::Puoduct_Info['cost_price'])
+ ->type(CreProductPage::Product_Top['quantity'], CreProduct::Puoduct_Info['quantity'])
+ //5.点击保存
+ ->press(CreProductPage::Product_Top['save_btn'])
+ ->assertSee(ProductPage::Assert['cre_ful_assert']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/AdminLoginTest.php b/tests/Browser/Pages/Admin/AdminLoginTest.php
new file mode 100644
index 00000000..d4c66692
--- /dev/null
+++ b/tests/Browser/Pages/Admin/AdminLoginTest.php
@@ -0,0 +1,87 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::False_Data['illegal_email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->assertSee(LoginData::False_Data['illegal_assert']);
+ });
+ }
+
+ //场景2 email不存在
+ public function testEmailFalse()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::False_Data['false_email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->assertSee(LoginData::False_Data['false_assert']);
+ });
+ }
+
+//场景3 密码错误
+ public function testPwdFalse()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::False_Data['false_password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->assertSee(LoginData::False_Data['false_assert']);
+ });
+ }
+
+ //场景4 只输入email
+ public function testOnlyEmail()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->assertSee(LoginData::False_Data['no_pwd']);
+ });
+ }
+
+ //场景5 只输入密码
+ public function testOnlyPwd()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['email'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->assertSee(LoginData::False_Data['no_email']);
+ });
+ }
+
+ //场景6 成功登录
+ public function testLoginFul()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ ->assertSee(LoginData::Ture_Data['assert']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/AdminSignOutTest.php b/tests/Browser/Pages/Admin/AdminSignOutTest.php
new file mode 100644
index 00000000..ef52bd5e
--- /dev/null
+++ b/tests/Browser/Pages/Admin/AdminSignOutTest.php
@@ -0,0 +1,38 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //2.退出
+ ->click(AdminPage::TOP['root'])
+ ->pause(2000)
+ ->click(AdminPage::TOP['sign_out'])
+ ->pause(10000)
+ ->assertSee(AdminLoginPage::Admin_Login['tltle']);
+// ->assertSee(true_login['assert']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/CusEmptyRecycleTest.php b/tests/Browser/Pages/Admin/CusEmptyRecycleTest.php
new file mode 100644
index 00000000..cf171518
--- /dev/null
+++ b/tests/Browser/Pages/Admin/CusEmptyRecycleTest.php
@@ -0,0 +1,43 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //点击客户
+ ->click(AdminPage::TOP['mg_customers'])
+ //2.点击回收站
+ ->click(CustomerPage::Left['re_station'])
+ //3.点击清空回收站
+ ->press(CustomerPage::Empty_Recycle['empty_btn'])
+ ->pause(2000)
+ ->press(CustomerPage::Empty_Recycle['sure_btn'])
+ ->pause(2000)
+ ->assertSee(CustomerPage::Empty_Recycle['assert_text']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/CustomerRecycleTest.php b/tests/Browser/Pages/Admin/CustomerRecycleTest.php
new file mode 100644
index 00000000..f71ca116
--- /dev/null
+++ b/tests/Browser/Pages/Admin/CustomerRecycleTest.php
@@ -0,0 +1,42 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ ->click(AdminPage::TOP['mg_customers'])
+ //2.点击回收站
+ ->click(CustomerPage::Left['re_station']);
+ $customer_text = $browser->text(CustomerPage::Empty_Recycle['customer_text']);
+ echo $customer_text;
+ //3.点击恢复按钮
+ $browser->press(CustomerPage::Empty_Recycle['recycle_btn'])
+ ->pause(2000)
+ //4.点击客户列表
+ ->click(CustomerPage::Left['customer_list'])
+ //验证客户信息是否存在于页面
+ ->assertSee($customer_text);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/DelCusGroupTest.php b/tests/Browser/Pages/Admin/DelCusGroupTest.php
new file mode 100644
index 00000000..8d606ddd
--- /dev/null
+++ b/tests/Browser/Pages/Admin/DelCusGroupTest.php
@@ -0,0 +1,42 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //2.点击客户管理
+ ->click(AdminPage::TOP['mg_customers'])
+ ->pause(3000)
+ //4.点击客户组
+ ->click(CustomerPage::Left['customer_group']);
+
+ $cus_group_text = $browser->text(CustomerPage::Customer_Group['get_assert']);
+ echo $cus_group_text;
+ //5.点击删除按钮
+ $browser->press(CustomerPage::Customer_Group['del_cus_group'])
+ ->pause(2000)
+ ->assertSee($cus_group_text);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/DelCusRecycleTest.php b/tests/Browser/Pages/Admin/DelCusRecycleTest.php
new file mode 100644
index 00000000..9962c6cb
--- /dev/null
+++ b/tests/Browser/Pages/Admin/DelCusRecycleTest.php
@@ -0,0 +1,49 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ ->click(AdminPage::TOP['mg_customers'])
+ //先删除一个客户
+ ->press(CustomerPage::Group_list['del_customer'])
+ ->press(CustomerPage::Group_list['sure_btn'])
+ ->pause(1000)
+ //2.点击回收站
+ ->click(CustomerPage::Left['re_station']);
+ $customer_text = $browser->text(CustomerPage::Empty_Recycle['customer_text']);
+ echo $customer_text;
+ //3.点击删除按钮
+ $browser->press(CustomerPage::Empty_Recycle['recycle_del'])
+ ->pause(2000)
+ ->press(CustomerPage::Empty_Recycle['sure_btn'])
+ //验证客户信息是否存在于页面
+ ->assertSee($customer_text)
+ ->pause(5000);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/DelCustomerTest.php b/tests/Browser/Pages/Admin/DelCustomerTest.php
new file mode 100644
index 00000000..dfe541d7
--- /dev/null
+++ b/tests/Browser/Pages/Admin/DelCustomerTest.php
@@ -0,0 +1,43 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //2.点击客户管理
+ ->click(AdminPage::TOP['mg_customers']);
+ $customer_text = $browser->text(CustomerPage::Group_list['get_assert']);
+ echo $customer_text;
+ $browser->press(CustomerPage::Group_list['del_customer'])
+ //确认
+ ->press(CustomerPage::Group_list['sure_btn']);
+ $browser->pause(2000)
+ ->assertDontSee($customer_text)
+ ->pause(5000);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/DelProductTest.php b/tests/Browser/Pages/Admin/DelProductTest.php
new file mode 100644
index 00000000..088cf8d8
--- /dev/null
+++ b/tests/Browser/Pages/Admin/DelProductTest.php
@@ -0,0 +1,43 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ ->click(AdminPage::TOP['mg_product']);
+ $product1_text = $browser->text(ProductPage::Product_Top['get_name']);
+ echo $product1_text;
+ //2.删除按钮
+ $browser->press(ProductPage::Product_Top['del_product'])
+ //确认
+ ->press(ProductPage::Product_Top['sure_btn']);
+ $browser->pause(2000)
+ ->assertDontSee($product1_text)
+ ->pause(5000);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/EditCusGroupTest.php b/tests/Browser/Pages/Admin/EditCusGroupTest.php
new file mode 100644
index 00000000..3050bc06
--- /dev/null
+++ b/tests/Browser/Pages/Admin/EditCusGroupTest.php
@@ -0,0 +1,48 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //2.点击客户管理
+ ->click(AdminPage::TOP['mg_customers'])
+ ->pause(3000)
+ //4.点击客户组
+ ->click(CustomerPage::Left['customer_group'])
+ //5.点击编辑客户组
+ ->press(CustomerPage::Customer_Group['edit_cus_group'])
+ //4.填写客户组信息
+ ->type(CustomerPage::Create_Group['ch_group_name'], CusGrounp::Group_Info['ch_group_name'])
+ ->type(CustomerPage::Create_Group['en_group_name'], CusGrounp::Group_Info['en_group_name'])
+ ->type(CustomerPage::Create_Group['ch_description'], CusGrounp::Group_Info['ch_description'])
+ ->type(CustomerPage::Create_Group['en_description'], CusGrounp::Group_Info['en_description'])
+ ->type(CustomerPage::Create_Group['discount'], CusGrounp::Group_Info['discount'])
+ //5.点击保存
+ ->press(CustomerPage::Create_Group['save_btn'])
+ ->pause(5000)
+ ->assertSee(CusGrounp::Group_Info['ch_group_name']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/EditCustomerTest.php b/tests/Browser/Pages/Admin/EditCustomerTest.php
new file mode 100644
index 00000000..f273d655
--- /dev/null
+++ b/tests/Browser/Pages/Admin/EditCustomerTest.php
@@ -0,0 +1,43 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //2.点击客户管理
+ ->click(AdminPage::TOP['mg_customers'])
+ //3.点击编辑按钮
+ ->press(CustomerPage::Group_list['edit_customer'])
+ //4.填写客户信息
+ ->type(CustomerPage::Alter['name'], CustomerData::Customer_Info_Alter['name'])
+ ->type(CustomerPage::Alter['email'], CustomerData::Customer_Info_Alter['email'])
+ ->type(CustomerPage::Alter['pwd'], CustomerData::Customer_Info_Alter['pwd'])
+ //5.点击保存
+ ->press(CustomerPage::Alter['save_btn'])
+ ->pause(5000)
+ ->assertSee(CustomerData::Customer_Info_Alter['email']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/EditProductTest.php b/tests/Browser/Pages/Admin/EditProductTest.php
new file mode 100644
index 00000000..730940e9
--- /dev/null
+++ b/tests/Browser/Pages/Admin/EditProductTest.php
@@ -0,0 +1,50 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //2.点击商品管理
+ ->click(AdminPage::TOP['mg_product'])
+ //3.点击编辑商品
+ ->press(ProductPage::Product_Top['edit_product'])
+ //4.填写商品信息
+ ->type(CreProductPage::Product_Top['ch_name'], CreProduct::Puoduct_Info['ch_name'])
+ ->type(CreProductPage::Product_Top['en_name'], CreProduct::Puoduct_Info['en_name'])
+ ->type(CreProductPage::Product_Top['sku'], CreProduct::Puoduct_Info['sku'])
+ ->type(CreProductPage::Product_Top['price'], CreProduct::Puoduct_Info['price'])
+ ->type(CreProductPage::Product_Top['origin_price'], CreProduct::Puoduct_Info['origin_price'])
+ ->type(CreProductPage::Product_Top['cost_price'], CreProduct::Puoduct_Info['cost_price'])
+ ->type(CreProductPage::Product_Top['quantity'], CreProduct::Puoduct_Info['quantity'])
+ //5.点击保存
+ ->press(CreProductPage::Product_Top['save_btn'])
+ ->pause(3000)
+ ->assertSee(ProductPage::Assert['alter_ful_assert']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/GoCatalogTest.php b/tests/Browser/Pages/Admin/GoCatalogTest.php
new file mode 100644
index 00000000..db17ba02
--- /dev/null
+++ b/tests/Browser/Pages/Admin/GoCatalogTest.php
@@ -0,0 +1,39 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //2.去往前台
+ ->click(AdminPage::TOP['root'])
+ ->pause(3000)
+ ->click(AdminPage::TOP['go_catalog'])
+ ->pause(2000)
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
+ $browser->assertPathIs(IndexPage::Index['login_url']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/GoPluginsTest.php b/tests/Browser/Pages/Admin/GoPluginsTest.php
new file mode 100644
index 00000000..702c79ec
--- /dev/null
+++ b/tests/Browser/Pages/Admin/GoPluginsTest.php
@@ -0,0 +1,35 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //2.插件市场
+ ->click(AdminPage::TOP['plugins_market'])
+ ->pause(2000)
+ //3.根据地址获取断言
+ ->assertPathIs(AdminPage::Assert['plugins_assert']);
+
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/GoVipTest.php b/tests/Browser/Pages/Admin/GoVipTest.php
new file mode 100644
index 00000000..893bfc94
--- /dev/null
+++ b/tests/Browser/Pages/Admin/GoVipTest.php
@@ -0,0 +1,35 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //2.点击vip图标
+ ->click(AdminPage::TOP['VIP'])
+ ->pause(2000)
+ //3.切换到第二个窗口并获取断言
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
+ $browser->assertSee(AdminPage::Assert['vip_assert']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/LanguageSwitchTest.php b/tests/Browser/Pages/Admin/LanguageSwitchTest.php
new file mode 100644
index 00000000..7221f8e2
--- /dev/null
+++ b/tests/Browser/Pages/Admin/LanguageSwitchTest.php
@@ -0,0 +1,39 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //2.点击切换语言
+ ->click(AdminPage::TOP['sw_language'])
+ //3.切换为英文
+ ->click(AdminPage::TOP['en_language'])
+ ->pause(4000)
+ ->assertSee(AdminPage::Assert['en_assert'])
+ //切换回中文
+ ->click(AdminPage::TOP['sw_language'])
+ ->click(AdminPage::TOP['ch_language'])
+ ->assertSee(AdminPage::Assert['ch_assert']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Admin/Test.php b/tests/Browser/Pages/Admin/Test.php
new file mode 100644
index 00000000..663b230d
--- /dev/null
+++ b/tests/Browser/Pages/Admin/Test.php
@@ -0,0 +1,29 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::ADMINLOGIN['login_url'])
+ ->type(AdminLoginPage::ADMINLOGIN['login_email'], LoginData::TURE['email'])
+ ->type(AdminLoginPage::ADMINLOGIN['login_pwd'], LoginData::TURE['password'])
+ ->press(AdminLoginPage::ADMINLOGIN['login_btn'])
+ ->pause(7000);
+
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Combine/AlterOrderStationTest.php b/tests/Browser/Pages/Combine/AlterOrderStationTest.php
new file mode 100644
index 00000000..1f4b0525
--- /dev/null
+++ b/tests/Browser/Pages/Combine/AlterOrderStationTest.php
@@ -0,0 +1,134 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //去往前台
+ ->click(AdminPage::TOP['root'])
+ ->pause(3000)
+ ->click(AdminPage::TOP['go_catalog'])
+ ->pause(2000)
+ //切换到前台下单
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
+ //前台用户登录
+ //点击登录图标
+ $browser->click(IndexPage::Index_Login['login_icon'])
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->pause(5000)
+ ->click(AccountPage::Account['go_index'])
+ //3.向下滑动页面直到找到商品
+ ->pause(2000)
+ ->scrollIntoView(IndexPage::Index['product_img'])
+ ->pause(2000)
+ //点击要购买的商品
+ ->press(IndexPage::Index['product_img'])
+ //4.点击购买按钮
+ ->press(ProductOne::Product['product_1'])
+ ->pause(3000)
+ //5.点击确认按钮
+ ->press(CheckoutPage::Checkout['submit'])
+ ->pause(5000);
+ $elements = $browser->elements(CheckoutPage::Checkout['order_num']);
+ $order_num = $elements[18]->getText();
+ //打印订单号
+ echo $order_num;
+ //点击个人中心按钮
+ $browser->click(IndexPage::Index_Login['login_icon'])
+ ->click(AccountPage::Account['go_order'])
+ ->click(AccountPage::Order['check_btn'])
+ ->pause(3000)
+
+// $browser->click(CheckoutPage::Checkout['view_order'])
+ //进入后台,修改订单状态为已支付
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[0]);
+ //点击订单管理按钮
+ $browser->click(AdminPage::TOP['mg_order'])
+ ->pause(3000)
+ //搜索框输入刚下单的订单号
+ ->type(AdminOrderPage::Right['search_order'], $order_num)
+ //点击搜索按钮
+ ->press(AdminOrderPage::Right['search_bth'])
+ ->assertSee($order_num)
+ //点击查看按钮
+ ->press(AdminOrderPage::Right['view_btn'])
+ //点击状态栏下拉按钮
+ ->pause(2000)
+ ->press(AdminOrderPage::Details['pull_btn'])
+ //修改状态为已支付
+ ->pause(2000)
+ ->click(AdminOrderPage::Details['paid'])
+ ->press(AdminOrderPage::Details['alter_btn'])
+ ->pause(3000)
+ //切换到前台
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
+ $browser->pause(3000)
+ //刷新页面
+ ->refresh()
+ ->pause(1000)
+ // 断言是否已支付
+ ->assertSeeIn(OrderPage::Get_Order_Status['status_text'], OrderPage::Order_Status['Paid'])
+ //切换到后台,将状态改为已发货
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[0]);
+ $browser->pause(2000)
+ ->press(AdminOrderPage::Details['pull_btn'])
+ //修改状态为发货
+ ->pause(2000)
+ ->click(AdminOrderPage::Details['Shipped'])
+ ->press(AdminOrderPage::Details['express_btn'])
+ //选择快递并填写订单号
+ ->pause(2000);
+ // 找到所有 class 为 el-scrollbar__view el-select-dropdown__list 的元素
+ $elements = $browser->elements(AdminOrderPage::Details['express_1']);
+ // 获取第二个元素
+ $secondElement = $elements[1];
+ // 找到第一个子元素并点击它
+ $secondElement->findElement(WebDriverBy::xpath('./*[1]'))->click();
+ $browser->type(AdminOrderPage::Details['order_number'], Express::Express['express_code'])
+ ->pause(2000)
+ //向下滑动找到更新按钮
+ ->scrollIntoView(AdminOrderPage::Details['alter_btn'])
+ ->pause(2000)
+ //按下更新按钮
+ ->press(AdminOrderPage::Details['alter_btn'])
+ ->pause(3000)
+ //切换到前台,断言是否已发货
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
+ $browser->pause(3000)
+ ->refresh()
+ ->pause(4000)
+ ->assertSeeIn(OrderPage::Get_Order_Status['status_text'], OrderPage::Order_Status['Shipped'])
+ //切换到后台,修改状态为已完成
+;
+
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Combine/CancelOrderTest.php b/tests/Browser/Pages/Combine/CancelOrderTest.php
new file mode 100644
index 00000000..683476cf
--- /dev/null
+++ b/tests/Browser/Pages/Combine/CancelOrderTest.php
@@ -0,0 +1,98 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //去往前台
+ ->click(AdminPage::TOP['root'])
+ ->pause(3000)
+ ->click(AdminPage::TOP['go_catalog'])
+ ->pause(2000)
+ //切换到前台下单
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
+ //前台用户登录
+ //点击登录图标
+ $browser->click(IndexPage::Index_Login['login_icon'])
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->pause(5000)
+ ->click(AccountPage::Account['go_index'])
+ //3.向下滑动页面直到找到商品
+ ->pause(2000)
+ ->scrollIntoView(IndexPage::Index['product_img'])
+ ->pause(2000)
+ //点击要购买的商品
+ ->press(IndexPage::Index['product_img'])
+ //4.点击购买按钮
+ ->press(ProductOne::Product['product_1'])
+ ->pause(5000)
+ //5.点击确认按钮
+ ->press(CheckoutPage::Checkout['submit'])
+ ->pause(5000);
+ $elements = $browser->elements(CheckoutPage::Checkout['order_num']);
+ $order_num = $elements[18]->getText();
+ //打印订单号
+ echo $order_num;
+ //点击个人中心按钮
+ $browser->click(IndexPage::Index_Login['login_icon'])
+ ->click(AccountPage::Account['go_order'])
+ ->click(AccountPage::Order['check_btn'])
+ ->pause(3000)
+
+ //进入后台,修改订单状态为已取消
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[0]);
+ //点击订单管理按钮
+ $browser->click(AdminPage::TOP['mg_order'])
+ //搜索框输入刚下单的订单号
+ ->type(AdminOrderPage::Right['search_order'], $order_num)
+ //点击搜索按钮
+ ->press(AdminOrderPage::Right['search_bth'])
+ ->assertSee($order_num)
+ //点击查看按钮
+ ->press(AdminOrderPage::Right['view_btn'])
+ //点击状态栏下拉按钮
+ ->pause(2000)
+ ->press(AdminOrderPage::Details['pull_btn'])
+ //修改状态为已取消
+ ->pause(2000)
+ ->click(AdminOrderPage::Details['cancel'])
+ ->press(AdminOrderPage::Details['alter_btn'])
+ ->pause(3000)
+ //切换到前台
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
+ $browser->pause(3000)
+ //刷新页面
+ ->refresh()
+ ->pause(5000)
+ // 断言是否已取消
+ ->assertSeeIn(OrderPage::Get_Order_Status['status_text'], OrderPage::Order_Status['Cancelled']);
+
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Combine/CloseVisiterCheckoutTest.php b/tests/Browser/Pages/Combine/CloseVisiterCheckoutTest.php
new file mode 100644
index 00000000..f3bfa309
--- /dev/null
+++ b/tests/Browser/Pages/Combine/CloseVisiterCheckoutTest.php
@@ -0,0 +1,59 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //点击系统设置
+ ->click(AdminPage::TOP['system_set'])
+ //点击结账设置
+ ->click(SystemSetPage::System_Set['pay_set'])
+ ->pause(2000)
+ //点击结游客结账 禁用
+ ->press(SystemSetPage::System_Set['close_visitor_checkout'])
+ //点击保存
+ ->press(SystemSetPage::Common['save_btn'])
+ ->pause(2000)
+ //去往前台验证
+ ->click(AdminPage::TOP['root'])
+ ->pause(3000)
+ ->click(AdminPage::TOP['go_catalog'])
+ ->pause(2000)
+ //切换到前台下单
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
+ //前台用户登录
+ $browser->pause(2000)
+ //向下滑动页面直到找到商品
+ ->scrollIntoView(IndexPage::Index['product_img'])
+ ->pause(2000)
+ //点击要购买的商品
+ ->press(IndexPage::Index['product_img'])
+ //点击购买按钮
+ ->press(ProductOne::Product['product_1'])
+ ->pause(5000)
+ //断言:出现登录窗体则通过
+ ->assertVisible(LoginPage::Iframe['iframe_name']);
+
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Combine/CreateCategoriesTest.php b/tests/Browser/Pages/Combine/CreateCategoriesTest.php
new file mode 100644
index 00000000..bf0ec0c9
--- /dev/null
+++ b/tests/Browser/Pages/Combine/CreateCategoriesTest.php
@@ -0,0 +1,62 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //点击商品管理
+ ->click(AdminPage::TOP['mg_product'])
+ //点击商品分类
+ ->click(ProductPage::Product_Left['product_cate'])
+ ->pause(5000)
+ //点击创建分类按钮
+ ->press(ProductPage::Cre_class['cre_cate_btn'])
+ //填写分类信息
+ ->type(CreCategoriesPage::Cate_Page['ch_name'], CreCategories::Cate_Data['ch_name'])
+ ->type(CreCategoriesPage::Cate_Page['en_name'], CreCategories::Cate_Data['en_name'])
+ ->type(CreCategoriesPage::Cate_Page['ch_content'], CreCategories::Cate_Data['ch_content'])
+ ->type(CreCategoriesPage::Cate_Page['en_content'], CreCategories::Cate_Data['en_content'])
+ ->select(CreCategoriesPage::Cate_Page['parent_cate'], 2)
+ ->type(CreCategoriesPage::Cate_Page['ch_title'], CreCategories::Cate_Data['ch_title'])
+ ->type(CreCategoriesPage::Cate_Page['en_title'], CreCategories::Cate_Data['en_title'])
+ ->type(CreCategoriesPage::Cate_Page['ch_keywords'], CreCategories::Cate_Data['ch_keywords'])
+ ->type(CreCategoriesPage::Cate_Page['en_keywords'], CreCategories::Cate_Data['en_keywords'])
+ ->type(CreCategoriesPage::Cate_Page['ch_description'], CreCategories::Cate_Data['ch_description'])
+ ->type(CreCategoriesPage::Cate_Page['en_description'], CreCategories::Cate_Data['en_description'])
+ //点击启用
+ ->click(CreCategoriesPage::Cate_Page['status_enable'])
+ //点击保存
+ ->press(CreCategoriesPage::Cate_Page['save_btn'])
+ //跳转到前台并验证
+ ->click(AdminPage::TOP['root'])
+ ->pause(3000)
+ ->click(AdminPage::TOP['go_catalog'])
+ ->pause(2000)
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
+ $browser->click(IndexPage::Index['top_Sports'])
+ ->pause(4000)
+ ->assertSee(CreCategories::Cate_Data['ch_name']);
+
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Combine/CustomerGroupDiscountTest.php b/tests/Browser/Pages/Combine/CustomerGroupDiscountTest.php
new file mode 100644
index 00000000..a06697ea
--- /dev/null
+++ b/tests/Browser/Pages/Combine/CustomerGroupDiscountTest.php
@@ -0,0 +1,118 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //2.点击客户管理
+ ->click(AdminPage::TOP['mg_customers'])
+ ->pause(3000)
+ //4.点击客户组
+ ->click(CustomerPage::Left['customer_group'])
+ //5.点击编辑客户组
+ ->press(CustomerPage::Customer_Group['edit_cus_group'])
+ //4.填写客户组折扣为30
+ ->type(CustomerPage::Create_Group['discount'], CusGrounp::Alter_Group_Info['discount'])
+ //5.点击保存
+ ->press(CustomerPage::Create_Group['save_btn'])
+ ->pause(5000);
+ //前台用户登录
+ //点击登录图标
+ $browser->click(AdminPage::TOP['root'])
+ ->pause(3000)
+ ->click(AdminPage::TOP['go_catalog'])
+ ->pause(2000)
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
+ $browser->click(IndexPage::Index_Login['login_icon'])
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->pause(5000)
+ ->click(AccountPage::Account['go_index'])
+ //3.向下滑动页面直到找到商品
+ ->pause(2000)
+ ->scrollIntoView(IndexPage::Index['product_img'])
+ ->pause(2000)
+ //点击要购买的商品
+ ->press(IndexPage::Index['product_img'])
+ //4.点击购买按钮
+ ->press(ProductOne::Product['product_1'])
+ ->pause(5000);
+ //获取购买商品价格
+ $old_product_price = $browser->element(CheckoutPage::Checkout['product_price']);
+ $text = $old_product_price->getText();
+ $matches = [];
+ preg_match('/[\d\.]+/', $text, $matches);
+ $new_product_price = $matches[0];
+
+ // 获取购买商品的数量
+ $old_quantity = $browser->element(CheckoutPage::Checkout['quantity']);
+ $text = $old_quantity->getText();
+ $matches = [];
+ preg_match('/\d+/', $text, $matches);
+ $new_quantity = $matches[0];
+ //商品总价
+// $old_product_total = $browser->element(CheckoutPage::Checkout['product_total']);
+// $text = $old_product_total->getText();
+// $matches = [];
+// preg_match('/[\d\.]+/', $text, $matches);
+// $new_product_total = $matches[0];
+ //运费
+ $old_shipping_fee = $browser->element(CheckoutPage::Checkout['shipping_fee']);
+ $text = $old_shipping_fee->getText();
+ $matches = [];
+ preg_match('/[\d\.]+/', $text, $matches);
+ $new_shipping_fee = $matches[0];
+ //折扣金额
+// $old_customer_discount = $browser->element(CheckoutPage::Checkout['customer_discount']);
+// $text = $old_customer_discount->getText();
+// $matches = [];
+// preg_match('/[\d\.]+/', $text, $matches);
+// $new_customer_discount = $matches[0];
+// //实际金额
+// $old_order_total = $browser->element(CheckoutPage::Checkout['order_total']);
+// $text = $old_order_total->getText();
+// $matches = [];
+// preg_match('/[\d\.]+/', $text, $matches);
+// $new_order_total = $matches[0];
+ //打印订单号
+// echo $new_product_price;
+// echo $new_quantity;
+// echo $new_product_total;
+// echo $new_shipping_fee;
+// echo $new_customer_discount;
+// echo $new_order_total;
+ $discunt_price = $new_product_price * $new_quantity * (30 / 100);
+// echo $discunt_price;
+ $true_price = $new_product_price * $new_quantity - $discunt_price + $new_shipping_fee;
+ $browser->assertSeeIn(CheckoutPage::Checkout['customer_discount'], $discunt_price)
+ ->assertSeeIn(CheckoutPage::Checkout['order_total'], $true_price);
+ //5.点击确认按钮
+
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Combine/DisableProductTest.php b/tests/Browser/Pages/Combine/DisableProductTest.php
new file mode 100644
index 00000000..ee81f71a
--- /dev/null
+++ b/tests/Browser/Pages/Combine/DisableProductTest.php
@@ -0,0 +1,51 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ ->click(AdminPage::TOP['mg_product']);
+ $product1_text = $browser->text(ProductPage::Product_Top['get_name']);
+ echo $product1_text;
+ //编辑商品
+ $browser->press(ProductPage::Product_Top['edit_product'])
+ //启用商品
+ ->click(CreProductPage::Product_Top['Disable'])
+ //点击保存
+ ->press(CreProductPage::Product_Top['save_btn'])
+ ->pause(3000)
+ //点击商品,跳转前台
+ ->clickLink($product1_text)
+ ->pause(2000)
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
+ //断言是否有下架提示
+ $browser->assertVisible(CreProductPage::Product_Assert['Disable_text'])
+ ->pause(3000);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Combine/EnableProductTest.php b/tests/Browser/Pages/Combine/EnableProductTest.php
new file mode 100644
index 00000000..842bee05
--- /dev/null
+++ b/tests/Browser/Pages/Combine/EnableProductTest.php
@@ -0,0 +1,51 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ ->click(AdminPage::TOP['mg_product']);
+ $product1_text = $browser->text(ProductPage::Product_Top['get_name']);
+ echo $product1_text;
+ //编辑商品
+ $browser->press(ProductPage::Product_Top['edit_product'])
+ //启用商品
+ ->click(CreProductPage::Product_Top['Enable'])
+ //点击保存
+ ->press(CreProductPage::Product_Top['save_btn'])
+ ->pause(3000)
+ //点击商品,跳转前台
+ ->clickLink($product1_text)
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
+ //断言页面是否有购买按钮
+ $browser->assertVisible(ProductOne::Product['product_1'])
+ ->pause(3000);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Combine/OpenVisiterCheckoutTest.php b/tests/Browser/Pages/Combine/OpenVisiterCheckoutTest.php
new file mode 100644
index 00000000..e787c0e2
--- /dev/null
+++ b/tests/Browser/Pages/Combine/OpenVisiterCheckoutTest.php
@@ -0,0 +1,59 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //点击系统设置
+ ->click(AdminPage::TOP['system_set'])
+ //点击结账设置
+ ->click(SystemSetPage::System_Set['pay_set'])
+ ->pause(2000)
+ //点击结游客结账 启用
+ ->press(SystemSetPage::System_Set['open_visitor_checkout'])
+ //点击保存
+ ->press(SystemSetPage::Common['save_btn'])
+ ->pause(2000)
+ //去往前台验证
+ ->click(AdminPage::TOP['root'])
+ ->pause(3000)
+ ->click(AdminPage::TOP['go_catalog'])
+ ->pause(2000)
+ //切换到前台下单
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
+ //前台用户登录
+ $browser->pause(2000)
+ //向下滑动页面直到找到商品
+ ->scrollIntoView(IndexPage::Index['product_img'])
+ ->pause(2000)
+ //点击要购买的商品
+ ->press(IndexPage::Index['product_img'])
+ //点击购买按钮
+ ->press(ProductOne::Product['product_1'])
+ ->pause(5000)
+ //断言:出现登录窗体则通过
+ ->assertPathIs(CheckoutPage::Checkout['url']);
+
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Combine/UnderstockOrderTest.php b/tests/Browser/Pages/Combine/UnderstockOrderTest.php
new file mode 100644
index 00000000..7e4ecbc2
--- /dev/null
+++ b/tests/Browser/Pages/Combine/UnderstockOrderTest.php
@@ -0,0 +1,57 @@
+browse(function (Browser $browser) {
+ $browser->visit(AdminLoginPage::Admin_Login['login_url'])
+ //1.登录
+ ->type(AdminLoginPage::Admin_Login['login_email'], LoginData::Ture_Data['email'])
+ ->type(AdminLoginPage::Admin_Login['login_pwd'], LoginData::Ture_Data['password'])
+ ->press(AdminLoginPage::Admin_Login['login_btn'])
+ ->pause(2000)
+ //修改商品库存为5
+ ->click(AdminPage::TOP['mg_product']);
+ //获取商品名
+ $product1_text = $browser->text(ProductPage::Product_Top['get_name']);
+ echo $product1_text;
+ //点击编辑商品
+ $browser->press(ProductPage::Product_Top['edit_product'])
+ //修改商品库存为5
+ ->type(CreProductPage::Product_Top['quantity'], CreProduct::Alter['low_quantity'])
+ //5.点击保存
+ ->press(CreProductPage::Product_Top['save_btn'])
+ ->pause(3000)
+
+ //去往前台下单
+ ->clickLink($product1_text)
+ ->pause(2000)
+ ->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
+ //输入库存
+ $browser->pause(2000)
+ ->type(ProductOne::Product['quantity'], CreProduct::Alter['low_quantity'])
+ //在库存基础上数量+1 quantity_up
+ ->click(ProductOne::Product['quantity_up'])
+ //4.点击购买按钮
+ ->press(ProductOne::Product['product_1'])
+ ->pause(2000)
+ //断言 understock_assert
+ ->assertVisible(ProductOne::Product['understock_assert']);
+
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Front/AddCartTest.php b/tests/Browser/Pages/Front/AddCartTest.php
new file mode 100644
index 00000000..44188124
--- /dev/null
+++ b/tests/Browser/Pages/Front/AddCartTest.php
@@ -0,0 +1,51 @@
+browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ //1.用户登录
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->pause(5000)
+ //2.点击home跳转到首页
+ ->click(AccountPage::Account['go_index'])
+ //3.向下滑动页面直到找到元素
+ ->scrollIntoView(IndexPage::Index['product_img'])
+// ->mouseover(index['product_img'])
+ ->pause(2000)
+ //2.点击要加入购物车的商品
+ ->press(IndexPage::Index['product_img'])
+ ->pause(2000);
+
+ //3.获取当前产品标题
+ $product_description = $browser->text(ProductOne::Product['product1_name']);
+ $ProductUrl = $browser->driver->getCurrentURL();
+ //4.点击收藏按钮
+ $browser->visit($ProductUrl)
+ //5.点击加入购物车
+
+ ->press(ProductOne::Product['add_cart'])
+ ->pause(3000)
+ //6.点击购物车按钮
+ ->click(IndexPage::Index_Cart['cart_icon'])
+ ->pause(10000);
+ //6.断言购物车内商品是否与先前商品相同
+ $browser->assertSeeIn(IndexPage::Index_Cart['product_text'], $product_description);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Front/AddressTest.php b/tests/Browser/Pages/Front/AddressTest.php
new file mode 100644
index 00000000..26215923
--- /dev/null
+++ b/tests/Browser/Pages/Front/AddressTest.php
@@ -0,0 +1,50 @@
+browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ //1.用户登录
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+
+ ->pause(5000)
+ //2.点击address
+ ->click(AccountPage::Account['go_address'])
+ //3.点击添加地址
+ ->press(AccountPage::Address['add_btn'])
+ ->pause(3000)
+ //3.1 name
+ ->type(AccountPage::Address['add_name'], AccountData::Add_Address['add_name'])
+ //3.2 phone
+// ->type(AccountPage::Address['add_phone'], AccountData::Add_Address['add_phone'])
+ //3.3 address
+ ->type(AccountPage::Address['add_address'], AccountData::Add_Address['add_province'])
+// //3.4 code
+// ->type(AccountPage::Address['add_code'], AccountData::Add_Address['add_code'])
+ //3.5 address1
+ ->type(AccountPage::Address['add_address1'], AccountData::Add_Address['add_address1'])
+// //3.6 address2
+// ->type(AccountPage::Address['add_address2'], AccountData::Add_Address['add_address2'])
+ //3.7 defaule
+ ->press((AccountPage::Address['default']))
+ //3.8 save
+ ->press((AccountPage::Address['save']))
+ ->pause(3000)
+ ->assertSee(AccountPage::Address['assert']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Front/CartCheckoutTest.php b/tests/Browser/Pages/Front/CartCheckoutTest.php
new file mode 100644
index 00000000..1b7ae2b3
--- /dev/null
+++ b/tests/Browser/Pages/Front/CartCheckoutTest.php
@@ -0,0 +1,50 @@
+browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ //1.用户登录
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->pause(2000)
+ //2.点击home跳转到首页
+ ->click(AccountPage::Account['go_index'])
+ //3.向下滑动页面直到找到元素
+ ->scrollIntoView(IndexPage::Index['product_img'])
+ ->pause(2000)
+ //4.点击要加入购物车的商品
+ ->press(IndexPage::Index['product_img'])
+ ->pause(2000)
+ //5.点击加入购物车
+ ->press(ProductOne::Product['add_cart'])
+ ->pause(3000)
+ //6.点击购物车按钮
+ ->click(IndexPage::Index_Cart['cart_icon'])
+ ->pause(3000)
+ //7.点击结账按钮
+ ->press(IndexPage::Index_Cart['cart_Checkout'])
+ ->pause(5000)
+ //8.点击确认按钮
+ ->press(CheckoutPage::Checkout['submit'])
+ ->pause(5000)
+ //9.断言
+ ->assertSee(CheckoutPage::Checkout['assert']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Front/ChangePayMethodTest.php b/tests/Browser/Pages/Front/ChangePayMethodTest.php
new file mode 100644
index 00000000..f380c230
--- /dev/null
+++ b/tests/Browser/Pages/Front/ChangePayMethodTest.php
@@ -0,0 +1,49 @@
+browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ //1.用户登录
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->pause(5000)
+ //当前网址断言
+ ->assertPathIs(AccountPage::Account['url'])
+ //2.点击home跳转到首页
+ ->click(AccountPage::Account['go_index'])
+ //3.向下滑动页面直到找到元素
+ ->scrollIntoView(IndexPage::Index['product_img'])
+ ->pause(2000)
+//点击要购买的商品
+ ->press(IndexPage::Index['product_img'])
+ //4.点击购买按钮
+ ->press(ProductOne::Product['product_1'])
+ ->pause(5000)
+//点击第二种支付方式
+
+ ->elements(CheckoutPage::Checkout['method_pay'])[1]->click();
+ $browser->pause(5000)
+ //5.点击确认按钮
+ ->press(CheckoutPage::Checkout['submit'])
+ ->pause(5000)
+ //6.断言
+ ->assertSee(CheckoutPage::Checkout['assert']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Front/EditUserInfo.php b/tests/Browser/Pages/Front/EditUserInfo.php
new file mode 100644
index 00000000..50884dcb
--- /dev/null
+++ b/tests/Browser/Pages/Front/EditUserInfo.php
@@ -0,0 +1,48 @@
+browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ //1.用户登录
+ ->type(LoginPage::Login['login_email'], RegisterData::True_Register['email'])
+ ->type(LoginPage::Login['login_pwd'], RegisterData::True_Register['password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->pause(2000)
+ //2.点击编辑
+ ->click(AccountPage::Account['go_Edit'])
+ ->pause(1000)
+ //3.点击上传头像按钮
+// ->press(AccountPage::Edit['upload_btn'])
+// ->pause(3000)
+// ->waitFor('#file-input') // 等待文件上传控件出现
+// ->assertVisible('#file-input') // 确保文件上传控件可见
+// ->assertEnabled('#file-input') // 确保文件上传控件可用
+// ->attach(AccountPage::Edit['upload_btn'],realpath('.tests/Browser/dusktest/data/Images/Headpicture/Headpicture.jpeg'))
+// ->press(AccountPage::Edit['Confirm_btn'])
+// ->pause(3000)
+ //3.1 name
+ ->type(AccountPage::Edit['user_name'], AccountData::User_Edit['user_name'])
+ //3.2 phone
+ ->type(AccountPage::Edit['user_email'], AccountData::User_Edit['user_email'])
+ //3.3 save
+ ->press((AccountPage::Edit['Submit']))
+ ->pause(3000)
+ ->assertSee(AccountPage::Edit['assert']);
+ //3.向下滑动页面直到找到元素
+
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Front/LoginTest.php b/tests/Browser/Pages/Front/LoginTest.php
new file mode 100644
index 00000000..4136e4f1
--- /dev/null
+++ b/tests/Browser/Pages/Front/LoginTest.php
@@ -0,0 +1,90 @@
+browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ ->type(LoginPage::Login['login_email'], CataLoginData::False_Login['illegal_email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->assertSee(CataLoginData::False_Login['illegal_assert']);
+ });
+ }
+
+ //场景2 email不存在
+ public function testEmailFalse()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ ->type(LoginPage::Login['login_email'], CataLoginData::False_Login['false_email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->assertSee(CataLoginData::False_Login['false_assert']);
+ });
+ }
+
+//场景3 密码错误
+ public function testPwdFalse()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::False_Login['false_password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->assertSee(CataLoginData::False_Login['false_assert']);
+ });
+ }
+
+ //场景4 只输入账号
+ public function testOnlyEmail()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->press(LoginPage::Login['login_btn'])
+ ->assertSee(CataLoginData::False_Login['false_assert']);
+ });
+ }
+
+ //场景5 只输入密码
+ public function testOnlyPwd()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['email'])
+ ->press(LoginPage::Login['login_btn'])
+ ->assertSee(CataLoginData::False_Login['false_assert']);
+ });
+ }
+
+ //场景6 成功登录
+ public function testLoginFul()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ //1.用户登录
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+
+ ->pause(5000)
+ ->assertPathIs(AccountPage::Account['url']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Front/OrderTest.php b/tests/Browser/Pages/Front/OrderTest.php
new file mode 100644
index 00000000..de43934d
--- /dev/null
+++ b/tests/Browser/Pages/Front/OrderTest.php
@@ -0,0 +1,50 @@
+browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ //1.用户登录
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->pause(5000)
+ //当前网址断言
+ ->assertPathIs(AccountPage::Account['url'])
+//打印查看当前网址
+// $html = $browser->driver->getCurrentURL();
+// print_r($html)
+// ->driver->getCurrentURL()
+ //2.点击home跳转到首页
+ ->click(AccountPage::Account['go_index'])
+ //3.向下滑动页面直到找到元素
+ ->scrollIntoView(IndexPage::Index['product_img'])
+// ->mouseover(index['product_img'])
+ ->pause(2000)
+//点击要购买的商品
+ ->press(IndexPage::Index['product_img'])
+ //4.点击购买按钮
+ ->press(ProductOne::Product['product_1'])
+ ->pause(5000)
+ //5.点击确认按钮
+ ->press(CheckoutPage::Checkout['submit'])
+ ->pause(5000)
+ //6.断言
+ ->assertSee(CheckoutPage::Checkout['assert']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Front/RegisterFirst.php b/tests/Browser/Pages/Front/RegisterFirst.php
new file mode 100644
index 00000000..5a209773
--- /dev/null
+++ b/tests/Browser/Pages/Front/RegisterFirst.php
@@ -0,0 +1,31 @@
+browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ ->type(LoginPage::Register['register_email'], RegisterData::False_Register['exist_email'])
+ ->type(LoginPage::Register['register_pwd'], RegisterData::True_Register['password'])
+ ->type(LoginPage::Register['register_re_pwd'], RegisterData::True_Register['password'])
+ ->pause(2000)
+ ->press(LoginPage::Register['register_btn'])
+ ->pause(6000)
+ ->assertSee(RegisterData::True_Register['assert'])
+ ->pause(2000);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Front/RegisterTest.php b/tests/Browser/Pages/Front/RegisterTest.php
new file mode 100644
index 00000000..267916c9
--- /dev/null
+++ b/tests/Browser/Pages/Front/RegisterTest.php
@@ -0,0 +1,103 @@
+browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ ->type(LoginPage::Register['register_email'], RegisterData::False_Register['exist_email'])
+ ->type(LoginPage::Register['register_pwd'], RegisterData::True_Register['password'])
+ ->type(LoginPage::Register['register_re_pwd'], RegisterData::True_Register['password'])
+ ->press(LoginPage::Register['register_btn'])
+ ->assertSee(RegisterData::False_Register['false_assert']);
+ });
+ }
+
+ //场景2 前后密码输入不一致
+ public function testDiffPwd()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ ->type(LoginPage::Register['register_email'], RegisterData::True_Register['email'])
+ ->type(LoginPage::Register['register_pwd'], RegisterData::True_Register['password'])
+ ->type(LoginPage::Register['register_re_pwd'], RegisterData::False_Register['false_password'])
+ ->press(LoginPage::Register['register_btn'])
+ ->assertSee(RegisterData::False_Register['false_assert']);
+ });
+ }
+
+ //场景3 邮箱格式不合法
+ public function testIllegalEmail()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ ->type(LoginPage::Register['register_email'], RegisterData::False_Register['illegal_email'])
+ ->type(LoginPage::Register['register_pwd'], RegisterData::True_Register['password'])
+ ->type(LoginPage::Register['register_re_pwd'], RegisterData::True_Register['password'])
+ ->press(LoginPage::Register['register_btn'])
+ ->assertSee(RegisterData::False_Register['false_assert']);
+ });
+ }
+
+ //场景4 邮箱为空
+ public function testNoEmail()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ ->type(LoginPage::Register['register_pwd'], RegisterData::True_Register['password'])
+ ->type(LoginPage::Register['register_re_pwd'], RegisterData::True_Register['password'])
+ ->press(LoginPage::Register['register_btn'])
+ ->assertSee(RegisterData::False_Register['false_assert']);
+ });
+ }
+
+ //场景5 密码为空
+ public function testNoPwd()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ ->type(LoginPage::Register['register_email'], RegisterData::True_Register['email'])
+ ->type(LoginPage::Register['register_re_pwd'], RegisterData::True_Register['password'])
+ ->press(LoginPage::Register['register_btn'])
+ ->assertSee(RegisterData::False_Register['false_assert']);
+ });
+ }
+
+ //场景6 第二次密码为空
+ public function testNoRepwd()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ ->type(LoginPage::Register['register_email'], RegisterData::True_Register['email'])
+ ->type(LoginPage::Register['register_pwd'], RegisterData::True_Register['password'])
+ ->press(LoginPage::Register['register_btn'])
+ ->assertSee(RegisterData::False_Register['false_assert']);
+ });
+ }
+
+ //场景7 第二次密码为空
+ public function testRegisterFul()
+ {
+ $this->browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ ->type(LoginPage::Register['register_email'], RegisterData::True_Register['email'])
+ ->type(LoginPage::Register['register_pwd'], RegisterData::True_Register['password'])
+ ->type(LoginPage::Register['register_re_pwd'], RegisterData::True_Register['password'])
+ ->press(LoginPage::Register['register_btn'])
+ ->pause(6000)
+ ->assertSee(RegisterData::True_Register['assert']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Front/RemoveCartTest.php b/tests/Browser/Pages/Front/RemoveCartTest.php
new file mode 100644
index 00000000..cf9c9562
--- /dev/null
+++ b/tests/Browser/Pages/Front/RemoveCartTest.php
@@ -0,0 +1,46 @@
+browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ //1.用户登录
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->pause(2000)
+ //2.点击home跳转到首页
+ ->click(AccountPage::Account['go_index'])
+ //3.向下滑动页面直到找到元素
+ ->scrollIntoView(IndexPage::Index['product_img'])
+ ->pause(2000)
+ //4.点击要加入购物车的商品
+ ->press(IndexPage::Index['product_img'])
+ ->pause(2000)
+ //5.点击加入购物车
+ ->press(ProductOne::Product['add_cart'])
+ ->pause(3000)
+ //6.点击购物车按钮
+ ->click(IndexPage::Index_Cart['cart_icon'])
+ ->pause(3000)
+ //7.点击移除按钮
+ ->click(IndexPage::Index_Cart['Delete_btn'])
+ ->pause(3000)
+ ->assertSeeIn(IndexPage::Index_Cart['product_num'], '0')
+ ->pause(3000);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Front/RemoveWishlistTest.php b/tests/Browser/Pages/Front/RemoveWishlistTest.php
new file mode 100644
index 00000000..1e66ac9c
--- /dev/null
+++ b/tests/Browser/Pages/Front/RemoveWishlistTest.php
@@ -0,0 +1,50 @@
+browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ //1.用户登录
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->pause(3000)
+ //2.点击home跳转到首页
+ ->click(AccountPage::Account['go_index'])
+ ->pause(2000)
+ //3.向下滑动页面直到找到元素
+ ->scrollIntoView(IndexPage::Index['product_img'])
+ ->pause(2000)
+ ->press(IndexPage::Index['product_img'])
+ ->pause(2000);
+ //4.保存当前网址
+ $ProductUrl = $browser->driver->getCurrentURL();
+ //5.点击收藏按钮
+ $browser->visit($ProductUrl)
+ ->press(ProductOne::Product['Wishlist_icon'])
+ ->pause(3000)
+ //6.点击顶部收藏认按钮
+ ->click(IndexPage::Index_Top['wishlist_btn'])
+// ->pause(1000)
+ //7.点击移除按钮
+ ->press(AccountPage::Wishlist['remove_Wishlist'])
+ ->pause(3000)
+ //8.断言
+ ->assertVisible(AccountPage::Wishlist['no_data'])//no_data
+;
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Front/SignOutTest.php b/tests/Browser/Pages/Front/SignOutTest.php
new file mode 100644
index 00000000..4d385108
--- /dev/null
+++ b/tests/Browser/Pages/Front/SignOutTest.php
@@ -0,0 +1,33 @@
+browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ //1.用户登录
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->pause(5000)
+ //2.退出
+ ->click(AccountPage::Account['SignOut'])
+ ->pause(3000)
+ ->assertSee(CataLoginData::False_Login['false_assert']);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/Front/WishlistTest.php b/tests/Browser/Pages/Front/WishlistTest.php
new file mode 100644
index 00000000..eaab6559
--- /dev/null
+++ b/tests/Browser/Pages/Front/WishlistTest.php
@@ -0,0 +1,50 @@
+browse(function (Browser $browser) {
+ $browser->visit(LoginPage::Login['login_url'])
+ //1.用户登录
+ ->type(LoginPage::Login['login_email'], CataLoginData::True_Login['email'])
+ ->type(LoginPage::Login['login_pwd'], CataLoginData::True_Login['password'])
+ ->press(LoginPage::Login['login_btn'])
+ ->pause(2000)
+
+ //2.点击home跳转到首页
+ ->click(AccountPage::Account['go_index'])
+ ->pause(2000)
+ //3.向下滑动页面直到找到元素
+ ->scrollIntoView(IndexPage::Index['product_img'])
+ ->pause(2000)
+ ->press(IndexPage::Index['product_img'])
+ ->pause(2000);
+ //4.保存当前网址
+ $ProductUrl = $browser->driver->getCurrentURL();
+ //5.点击收藏按钮
+ $browser->visit($ProductUrl)
+ ->press(ProductOne::Product['Wishlist_icon'])
+ ->pause(3000)
+ //6.点击顶部收藏认按钮
+ ->click(IndexPage::Index_Top['wishlist_btn'])
+ ->pause(1000)
+ //7.点击查看详情按钮
+ ->click(AccountPage::Wishlist['Check_Details'])
+ ->pause(1000)
+ //8.断言
+ ->assertUrlIs($ProductUrl);
+ });
+ }
+}
diff --git a/tests/Browser/Pages/HomePage.php b/tests/Browser/Pages/HomePage.php
new file mode 100644
index 00000000..65a9405a
--- /dev/null
+++ b/tests/Browser/Pages/HomePage.php
@@ -0,0 +1,36 @@
+
+ */
+ public function elements(): array
+ {
+ return [
+ '@element' => '#selector',
+ ];
+ }
+}
diff --git a/tests/Browser/Pages/Page.php b/tests/Browser/Pages/Page.php
new file mode 100644
index 00000000..eb9a2ded
--- /dev/null
+++ b/tests/Browser/Pages/Page.php
@@ -0,0 +1,20 @@
+
+ */
+ public static function siteElements(): array
+ {
+ return [
+ '@element' => '#selector',
+ ];
+ }
+}
diff --git a/tests/Browser/Pages/RunnerTestCase/Run_Case.php b/tests/Browser/Pages/RunnerTestCase/Run_Case.php
new file mode 100644
index 00000000..cba1f8a2
--- /dev/null
+++ b/tests/Browser/Pages/RunnerTestCase/Run_Case.php
@@ -0,0 +1,65 @@
+addTestFile('.\tests\Browser\Pages\front\RegisterFirst.php'); //先注册一个账户
+ $suite->addTestFile('.\tests\Browser\Pages\front\RegisterTest.php'); //场景注册
+ $suite->addTestFile('.\tests\Browser\Pages\front\LoginTest.php'); //前台登录场景
+ $suite->addTestFile('.\tests\Browser\Pages\front\SignOutTest.php'); //前台退出
+ $suite->addTestFile('.\tests\Browser\Pages\front\AddressTest.php'); //添加地址
+ $suite->addTestFile('.\tests\Browser\Pages\front\AddCartTest.php'); //加入购物车
+ $suite->addTestFile('.\tests\Browser\Pages\front\RemoveCartTest.php'); //移除购物车
+ $suite->addTestFile('.\tests\Browser\Pages\front\RemoveWishlistTest.php'); //移除喜欢
+ $suite->addTestFile('.\tests\Browser\Pages\front\WishlistTest.php'); //加入喜欢
+ $suite->addTestFile('.\tests\Browser\Pages\front\EditUserInfo.php'); //修改个人信息
+ $suite->addTestFile('.\tests\Browser\Pages\front\CartCheckoutTest.php'); //从购物车结账
+ $suite->addTestFile('.\tests\Browser\Pages\front\ChangePayMethodTest.php'); //下单时更改支付方式
+ $suite->addTestFile('.\tests\Browser\Pages\front\OrderTest.php'); //下单
+//后台
+ $suite->addTestFile('.\tests\Browser\Pages\admin\AdminLoginTest.php'); //后台登录
+ $suite->addTestFile('.\tests\Browser\Pages\admin\AdminSignOutTest.php'); //后台退出
+ $suite->addTestFile('.\tests\Browser\Pages\admin\GoCatalogTest.php'); //跳转前台
+ $suite->addTestFile('.\tests\Browser\Pages\admin\GopLuginsTest.php'); //跳转插件市场
+ $suite->addTestFile('.\tests\Browser\Pages\admin\AddProductTest.php'); //添加商品
+ $suite->addTestFile('.\tests\Browser\Pages\admin\EditProductTest.php'); //编辑商品
+ $suite->addTestFile('.\tests\Browser\Pages\admin\DelProductTest.php'); //删除商品
+ $suite->addTestFile('.\tests\Browser\Pages\admin\GoVipTest.php'); //跳转vip界面
+ $suite->addTestFile('.\tests\Browser\Pages\admin\LanguageSwitchTest.php'); //切换语言
+ $suite->addTestFile('.\tests\Browser\Pages\admin\AddExpressTest.php'); //添加快递公司
+
+//前后台联测
+ $suite->addTestFile('.\tests\Browser\Pages\combine\AlterOrderStationTest.php'); //订单状态修改 已支付-已发货-一已完成
+ $suite->addTestFile('.\tests\Browser\Pages\combine\CancelOrderTest.php'); //取消商品订单
+ $suite->addTestFile('.\tests\Browser\Pages\combine\CloseVisiterCheckoutTest.php'); //禁用游客结账
+ $suite->addTestFile('.\tests\Browser\Pages\combine\OpenVisiterCheckoutTest.php'); //开启游客结账
+ $suite->addTestFile('.\tests\Browser\Pages\combine\CreateCategoriesTest.php'); //添加商品分类
+ $suite->addTestFile('.\tests\Browser\Pages\combine\DisableProductTest.php'); //禁用商品
+ $suite->addTestFile('.\tests\Browser\Pages\combine\EnableProductTest.php'); //启用商品
+ $suite->addTestFile('.\tests\Browser\Pages\combine\UnderstockOrderTest.php'); //库存不足下单
+ $suite->addTestFile('.\tests\Browser\Pages\combine\CustomerGroupDiscountTest.php'); //客户组折扣检验
+
+//后台删除用户操作
+ $suite->addTestFile('.\tests\Browser\Pages\admin\AddCustomerTest.php'); //创建用户
+ $suite->addTestFile('.\tests\Browser\Pages\admin\EditCustomerTest.php'); //修改用户信息
+ $suite->addTestFile('.\tests\Browser\Pages\admin\DelCustomerTest.php'); //删除用户
+ $suite->addTestFile('.\tests\Browser\Pages\admin\AddCusGroupTest.php'); //添加用户组
+ $suite->addTestFile('.\tests\Browser\Pages\admin\EditCusGroupTest.php'); //编辑用户组
+ $suite->addTestFile('.\tests\Browser\Pages\admin\DelCusGroupTest.php'); //删除用户组
+ $suite->addTestFile('.\tests\Browser\Pages\admin\CustomerRecycleTest.php'); //恢复客户信息
+ $suite->addTestFile('.\tests\Browser\Pages\admin\DelCustomerTest.php'); //删除用户
+ $suite->addTestFile('.\tests\Browser\Pages\admin\CusEmptyRecycleTest.php'); //清空回收站
+ $suite->addTestFile('.\tests\Browser\Pages\admin\DelCustomerTest.php'); //删除用户
+ $suite->addTestFile('.\tests\Browser\Pages\admin\DelCusRecycleTest.php'); //从回收站删除客户信息
+
+ // 运行测试套件
+ $result = $suite->run();
+ // 输出测试结果
+ $printer = new DefaultResultPrinter();
+ // 输出测试结果
+ $printer->printResult($result);
diff --git a/tests/Browser/console/.gitignore b/tests/Browser/console/.gitignore
new file mode 100644
index 00000000..d6b7ef32
--- /dev/null
+++ b/tests/Browser/console/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/tests/Browser/screenshots/.gitignore b/tests/Browser/screenshots/.gitignore
new file mode 100644
index 00000000..d6b7ef32
--- /dev/null
+++ b/tests/Browser/screenshots/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/tests/Browser/source/.gitignore b/tests/Browser/source/.gitignore
new file mode 100644
index 00000000..d6b7ef32
--- /dev/null
+++ b/tests/Browser/source/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/tests/Data/Admin/AdminLoginPage.php b/tests/Data/Admin/AdminLoginPage.php
new file mode 100644
index 00000000..72a6022b
--- /dev/null
+++ b/tests/Data/Admin/AdminLoginPage.php
@@ -0,0 +1,14 @@
+ '/admin/login',
+ 'tltle' => '登录到 BeikeShop 后台',
+ 'login_email' => '#email-input',
+ 'login_pwd' => '#password-input',
+ 'login_btn' => '.btn.btn-lg.btn-primary', //登录按钮
+];
+}
diff --git a/tests/Data/Admin/AdminOrderPage.php b/tests/Data/Admin/AdminOrderPage.php
new file mode 100644
index 00000000..5dcd6744
--- /dev/null
+++ b/tests/Data/Admin/AdminOrderPage.php
@@ -0,0 +1,37 @@
+ '/Admin/orders',
+ 'search_order' => '#app > form > div:nth-child(1) > div:nth-child(1) > div > div > input', //搜索栏--订单号
+ 'search_bth' => '#app > div > div > button:nth-child(1)', //搜索按钮
+ 'view_btn' => '#customer-app > div > div.table-push > table > tbody > tr > td:nth-child(9) > a', //查看按钮
+];
+
+public const Child = [
+ 'mg_order' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(1)', //订单列表
+ 'mg_sale_after' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(2)', //售后管理
+ 'ca_sale_after' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(3)', //售后原因
+];
+
+public const Details = [//订单详情页
+ 'pull_btn' => '#app > form > div.el-form-item.is-required > div > div > div > span > span > i', //状态栏下拉按钮
+ // "paid"=>".el-select-dropdown__item",//已支付
+ 'paid' => '.el-scrollbar__view.el-select-dropdown__list li:nth-child(1)', //已支付
+ 'cancel' => '.el-scrollbar__view.el-select-dropdown__list li:nth-child(2)', //已取消
+ 'alter_btn' => '.el-button.el-button--primary', //更新状态按钮
+ 'Shipped' => '.el-scrollbar__view.el-select-dropdown__list li:nth-of-type(2)', //已发货
+ 'express_btn' => '#app > form > div:nth-child(3) > div > div > div > span > span > i', //快递下拉按钮
+ 'Completed' => '.el-scrollbar__view.el-select-dropdown__list li:nth-child(1)', //已支付//
+
+ 'express_1' => '.el-scrollbar__view.el-select-dropdown__list', //选择第一个快递
+ 'order_number' => '#app > form > div:nth-child(4) > div > div > input', //订单号
+ 'submit' => '#app > form > div:nth-child(7) > div > button', //提交按钮
+ 'submit_btn2' => '#app > form > div:nth-child(5) > div > button', //提交按钮
+ //#app > form > div:nth-child(5) > div > button
+
+];
+}
diff --git a/tests/Data/Admin/AdminPage.php b/tests/Data/Admin/AdminPage.php
new file mode 100644
index 00000000..9d35f588
--- /dev/null
+++ b/tests/Data/Admin/AdminPage.php
@@ -0,0 +1,36 @@
+ '/admin',
+ 'root' => '.ml-2',
+ 'mg_index' => '.list-unstyled.navbar-nav li:nth-child(1)', //管理首页 .list-unstyled.navbar-nav
+ 'mg_order' => '.list-unstyled.navbar-nav li:nth-child(2)', //管理订单
+ 'mg_product' => '.list-unstyled.navbar-nav li:nth-child(3)', //管理商品
+ 'mg_customers' => '.list-unstyled.navbar-nav li:nth-child(4)', //管理客户
+ 'mg_article' => '.list-unstyled.navbar-nav li:nth-child(5)', //管理文章
+ 'mg_design' => '.list-unstyled.navbar-nav li:nth-child(6)', //设计
+ 'mg_plugin' => '.list-unstyled.navbar-nav li:nth-child(7)', //插件
+ 'system_set' => '.list-unstyled.navbar-nav li:nth-child(8)', //系统设置
+ 'go_catalog' => '.dropdown-menu.dropdown-menu-end.show li:nth-child(1)', //去往前台
+ 'personal_center' => '.dropdown-menu.dropdown-menu-end.show li:nth-child(2)', //个人中心
+ 'sign_out' => '.dropdown-menu.dropdown-menu-end.show li:nth-child(4)', //退出登录
+ 'Alter' => '.navbar.navbar-right li:nth-child(1)', //更新按钮
+ 'VIP' => '.navbar.navbar-right li:nth-child(2)', //vip图标
+ 'buy_copyright' => '.navbar.navbar-right li:nth-child(3)', //版权购买
+ 'plugins_market' => '.navbar.navbar-right li:nth-child(4)', //插件市场
+ 'sw_language' => '.navbar.navbar-right li:nth-child(5)', //切换语言
+ 'en_language' => '.dropdown-menu.dropdown-menu-end.show li:nth-child(2)', //切换英语
+ 'ch_language' => '.dropdown-menu.dropdown-menu-end.show li:nth-child(10)', //切换中文
+ ];
+
+ public const Assert = [
+ 'vip_assert' => '登录购买VIP服务',
+ 'plugins_assert' => '/admin/marketing',
+ 'en_assert' => 'Admin Panel', //切换为中文断言
+ 'ch_assert' => '后台管理', //切换为英文断言
+ ];
+}
diff --git a/tests/Data/Admin/ArticlePage.php b/tests/Data/Admin/ArticlePage.php
new file mode 100644
index 00000000..6789608d
--- /dev/null
+++ b/tests/Data/Admin/ArticlePage.php
@@ -0,0 +1,19 @@
+ '/Admin/pages',
+ 'mg_article' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(1)', //文章管理
+ 'catalog_article' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(2)', //文章分类
+];
+
+public const Common = [
+ 'add_btn' => '#content > div.container-fluid.p-0 > div > div > div.d-flex.justify-content-between.mb-4 > a', //添加按钮
+ 'edit_btn' => '#content > div.container-fluid.p-0 > div > div > div.table-push > table > tbody > tr:nth-child(1) > td.text-end > a', //编辑按钮
+ 'del_btn' => '#content > div.container-fluid.p-0 > div > div > div.table-push > table > tbody > tr:nth-child(1) > td.text-end > button', //删除按钮
+
+];
+}
diff --git a/tests/Data/Admin/CreCategories.php b/tests/Data/Admin/CreCategories.php
new file mode 100644
index 00000000..850d154e
--- /dev/null
+++ b/tests/Data/Admin/CreCategories.php
@@ -0,0 +1,20 @@
+ 'categories_test',
+ 'en_name' => 'categories_test',
+ 'ch_content' => 'categories_content_test',
+ 'en_content' => 'categories_content_test',
+ 'ch_title' => 'categories_title_test',
+ 'en_title' => 'categories_title_test',
+ 'ch_keywords' => 'categories_keywords_test',
+ 'en_keywords' => 'categories_keywords_test',
+ 'ch_description' => 'categories_description_test',
+ 'en_description' => 'categories_description_test',
+
+];
+}
diff --git a/tests/Data/Admin/CreCategoriesPage.php b/tests/Data/Admin/CreCategoriesPage.php
new file mode 100644
index 00000000..0dc1024b
--- /dev/null
+++ b/tests/Data/Admin/CreCategoriesPage.php
@@ -0,0 +1,24 @@
+ 'descriptions[zh_cn][name]',
+ 'en_name' => 'descriptions[en][name]',
+ 'ch_content' => 'descriptions[zh_cn][content]',
+ 'en_content' => 'descriptions[en][content]',
+ 'parent_cate' => 'parent_id',
+ 'ch_title' => 'descriptions[zh_cn][meta_title]',
+ 'en_title' => 'descriptions[en][meta_title]',
+ 'ch_keywords' => 'descriptions[zh_cn][meta_keywords]',
+ 'en_keywords' => 'descriptions[en][meta_keywords]',
+ 'ch_description' => 'descriptions[zh_cn][meta_description]',
+ 'en_description' => 'descriptions[en][meta_description]',
+ 'status_enable' => '#active-1',
+ 'status_disable' => '#active-0',
+ 'save_btn' => '.btn.btn-primary.mt-3',
+
+];
+}
diff --git a/tests/Data/Admin/CreProduct.php b/tests/Data/Admin/CreProduct.php
new file mode 100644
index 00000000..cc782717
--- /dev/null
+++ b/tests/Data/Admin/CreProduct.php
@@ -0,0 +1,27 @@
+ 'test', //中文名称
+ 'en_name' => 'test', //英文名称
+ 'sku' => '123', //sku
+ 'price' => '500', //价格
+ 'origin_price' => '50', //原价
+ 'cost_price' => '5', //成本价
+ 'quantity' => '3', //数量
+];
+
+public const Alter = [
+ 'ch_name' => 'alter_test', //中文名称
+ 'en_name' => 'alter_test', //英文名称
+ 'sku' => '456', //sku
+ 'price' => '5000', //价格
+ 'origin_price' => '500', //原价
+ 'cost_price' => '50', //成本价
+ 'quantity' => '30', //数量
+ 'low_quantity' => '5', //少量商品 ,测试库存不足
+];
+}
diff --git a/tests/Data/Admin/CreProductPage.php b/tests/Data/Admin/CreProductPage.php
new file mode 100644
index 00000000..94578117
--- /dev/null
+++ b/tests/Data/Admin/CreProductPage.php
@@ -0,0 +1,24 @@
+ '/Admin/products/create', //
+ 'ch_name' => 'descriptions[zh_cn][name]', //中文名称
+ 'en_name' => 'descriptions[en][name]', //英文名称
+ 'sku' => 'skus[0][sku]', //sku
+ 'price' => 'skus[0][price]', //价格
+ 'origin_price' => 'skus[0][origin_price]', //原价
+ 'cost_price' => 'skus[0][cost_price]', //成本价
+ 'quantity' => 'skus[0][quantity]', //数量
+ 'Enable' => '#active-1',
+ 'Disable' => '#active-0',
+ 'save_btn' => '.btn.btn-lg.btn-primary.submit-form', //保存
+];
+
+public const Product_Assert = [
+ 'Disable_text' => '.text-danger', //商品禁用后显示的文本class
+];
+}
diff --git a/tests/Data/Admin/CusGrounp.php b/tests/Data/Admin/CusGrounp.php
new file mode 100644
index 00000000..14158881
--- /dev/null
+++ b/tests/Data/Admin/CusGrounp.php
@@ -0,0 +1,22 @@
+ '钻石组',
+ 'en_group_name' => '钻石组',
+ 'ch_description' => '钻石组',
+ 'en_description' => '钻石组',
+ 'discount' => '20',
+];
+
+public const Alter_Group_Info = [
+ 'ch_group_name' => '钻石组alter',
+ 'en_group_name' => '钻石组alter',
+ 'ch_description' => '钻石组alter',
+ 'en_description' => '钻石组alter',
+ 'discount' => '30',
+];
+}
diff --git a/tests/Data/Admin/CustomerData.php b/tests/Data/Admin/CustomerData.php
new file mode 100644
index 00000000..7b9802bb
--- /dev/null
+++ b/tests/Data/Admin/CustomerData.php
@@ -0,0 +1,22 @@
+ 'Admin',
+ 'email' => 'Admin@163.com',
+ 'pwd' => '123456',
+ 'customer_group' => '',
+
+];
+
+public const Customer_Info_Alter = [
+ 'name' => 'test1',
+ 'email' => 'test1@163.com',
+ 'pwd' => '1234567',
+ 'customer_group' => '',
+
+];
+}
diff --git a/tests/Data/Admin/CustomerPage.php b/tests/Data/Admin/CustomerPage.php
new file mode 100644
index 00000000..bf6a2a92
--- /dev/null
+++ b/tests/Data/Admin/CustomerPage.php
@@ -0,0 +1,76 @@
+ '/Admin/customers',
+ 'customer_list' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(1)', //客户列表
+ 'customer_group' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(2)', //客户组
+ 're_station' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(3)', //回收站
+];
+
+public const Create = [
+ 'name' => '#customer-app > div.el-dialog__wrapper > div > div.el-dialog__body > form > div:nth-child(1) > div > div > input',
+ 'email' => '#customer-app > div.el-dialog__wrapper > div > div.el-dialog__body > form > div:nth-child(2) > div > div > input',
+ 'pwd' => '#customer-app > div.el-dialog__wrapper > div > div.el-dialog__body > form > div:nth-child(3) > div > div > input',
+ 'customer_group' => '#customer-app > div.el-dialog__wrapper > div > div.el-dialog__body > form > div:nth-child(4) > div > div > div > span > span > i',
+ 'state' => '#customer-app > div.el-dialog__wrapper > div > div.el-dialog__body > form > div:nth-child(5) > div',
+ 'save_btn' => '#customer-app > div.el-dialog__wrapper > div > div.el-dialog__body > form > div:nth-child(6) > div > button.el-button.el-button--primary',
+];
+
+public const Alter = [
+ 'name' => '#pane-customer > div > div:nth-child(1) > div > div > input',
+ 'email' => '#pane-customer > div > div:nth-child(2) > div > div > input',
+ 'pwd' => '#pane-customer > div > div:nth-child(3) > div > div > input',
+ 'customer_group' => '#pane-customer > div > div:nth-child(4) > div > div > div.el-input.el-input--suffix > span > span > i',
+ 'state' => '#pane-customer > div > div:nth-child(5) > div > div > span',
+ 'save_btn' => '#pane-customer > div > div:nth-child(6) > div > button',
+
+];
+
+public const Group_list = [
+ //创建客户
+ 'cre_customer' => '#customer-app > div.card-body > div.d-flex.justify-content-between.mb-4 > button',
+ //编辑客户
+ 'edit_customer' => '#customer-app > div.card-body > div.table-push > table > tbody > tr:nth-child(1) > td:nth-child(8) > a',
+ //删除客户
+ 'del_customer' => '#customer-app > div.card-body > div.table-push > table > tbody > tr:nth-child(1) > td:nth-child(8) > button',
+ 'get_assert' => '#customer-app > div.card-body > div.table-push > table > tbody > tr:nth-child(1) > td:nth-child(2)',
+ 'sure_btn' => '确定',
+
+];
+
+public const Customer_Group = [
+ //创建客户组
+ 'cre_cus_group' => '#customer-app > div.card-body > div.d-flex.justify-content-between.mb-4 > button',
+ //编辑客户组
+ 'edit_cus_group' => '.btn.btn-outline-secondary.btn-sm',
+ //删除客户组
+ 'del_cus_group' => '.btn.btn-outline-danger.btn-sm.ml-1',
+ 'get_assert' => '#customer-app > div.card-body > div.table-push > table > tbody > tr:nth-child(1) > td:nth-child(2)',
+ 'sure_btn' => '确定',
+
+];
+
+public const Create_Group = [
+ 'ch_group_name' => '#customer-app > div.el-dialog__wrapper > div > div.el-dialog__body > form > div.el-form-item.language-inputs.is-required > div > div:nth-child(1) > div > div > input',
+ 'en_group_name' => '#customer-app > div.el-dialog__wrapper > div > div.el-dialog__body > form > div.el-form-item.language-inputs.is-required > div > div:nth-child(2) > div > div > input',
+ 'ch_description' => '#customer-app > div.el-dialog__wrapper > div > div.el-dialog__body > form > div:nth-child(2) > div > div:nth-child(1) > div > div > input',
+ 'en_description' => '#customer-app > div.el-dialog__wrapper > div > div.el-dialog__body > form > div:nth-child(2) > div > div:nth-child(2) > div > div > input',
+ 'discount' => '#customer-app > div.el-dialog__wrapper > div > div.el-dialog__body > form > div:nth-child(3) > div > div > input',
+ 'save_btn' => '#customer-app > div.el-dialog__wrapper > div > div.el-dialog__body > form > div:nth-child(4) > div > div > button.el-button.el-button--primary',
+];
+
+public const Empty_Recycle = [
+ 'empty_btn' => '#customer-app > div.card-body > div.d-flex.justify-content-between.mb-4 > button', //清空数据按钮
+ 'recycle_btn' => '#customer-app > div.card-body > div.table-push > table > tbody > tr > td:nth-child(8) > a', //恢复按钮
+ 'recycle_del' => '#customer-app > div.card-body > div.table-push > table > tbody > tr > td:nth-child(8) > button', //删除按钮
+ //获取即将被删除的客户email
+ 'customer_text' => '#customer-app > div.card-body > div.table-push > table > tbody > tr > td:nth-child(2)',
+ 'sure_btn' => '确定',
+ 'assert_text' => '暂无数据~',
+
+];
+}
diff --git a/tests/Data/Admin/DesignPage.php b/tests/Data/Admin/DesignPage.php
new file mode 100644
index 00000000..1ba38d15
--- /dev/null
+++ b/tests/Data/Admin/DesignPage.php
@@ -0,0 +1,21 @@
+ '/Admin/themes',
+ 'temp_set' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(1)', //模版设置
+ 'navigate_set' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(2)', //导航设置
+ 'home_decorate' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(3)', //首页装修
+ 'end_decorate' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(4)', //页尾装修
+];
+
+public const Article_Common = [
+ 'add_btn' => '#content > div.container-fluid.p-0 > div > div > div.d-flex.justify-content-between.mb-4 > a', //添加按钮
+ 'edit_btn' => '#content > div.container-fluid.p-0 > div > div > div.table-push > table > tbody > tr:nth-child(1) > td.text-end > a', //编辑按钮
+ 'del_btn' => '#content > div.container-fluid.p-0 > div > div > div.table-push > table > tbody > tr:nth-child(1) > td.text-end > button', //删除按钮
+
+];
+}
diff --git a/tests/Data/Admin/Express.php b/tests/Data/Admin/Express.php
new file mode 100644
index 00000000..aef304dd
--- /dev/null
+++ b/tests/Data/Admin/Express.php
@@ -0,0 +1,12 @@
+ '顺风快递',
+ 'express_code' => '11011',
+ 'order_number' => '110120188',
+];
+}
diff --git a/tests/Data/Admin/LoginData.php b/tests/Data/Admin/LoginData.php
new file mode 100644
index 00000000..b650a55f
--- /dev/null
+++ b/tests/Data/Admin/LoginData.php
@@ -0,0 +1,23 @@
+ 'root@guangda.work',
+ 'password' => '123456',
+ 'assert' => '后台管理',
+
+];
+
+public const False_Data = [
+ 'false_email' => 'test1@163.com',
+ 'illegal_email' => 'test',
+ 'false_password' => '1234567',
+ 'false_assert' => '账号密码不匹配',
+ 'illegal_assert' => 'email 必须是一个有效的电子邮件地址。',
+ 'no_email' => 'email 字段是必须的。',
+ 'no_pwd' => 'password 字段是必须的。',
+];
+}
diff --git a/tests/Data/Admin/ProductPage.php b/tests/Data/Admin/ProductPage.php
new file mode 100644
index 00000000..994039d8
--- /dev/null
+++ b/tests/Data/Admin/ProductPage.php
@@ -0,0 +1,40 @@
+ '/Admin/products',
+ 'create_product' => '#product-app > div > div > div.d-flex.justify-content-between.my-4 > a > button', //创建商品按钮
+ //编辑商品按钮
+ 'edit_product' => '#product-app > div > div > div.table-push > table > tbody > tr:nth-child(1) > td.text-end > a.btn.btn-outline-secondary.btn-sm',
+ //删除按钮
+ 'del_product' => '#product-app > div > div > div.table-push > table > tbody > tr:nth-child(1) > td.text-end > a.btn.btn-outline-danger.btn-sm', //创建商品按钮
+ 'sure_btn' => '确定',
+ 'get_name' => '#product-app > div > div > div.table-push > table > tbody > tr:nth-child(1) > td:nth-child(4) > a',
+];
+
+public const Product_Left = [
+ 'product_mg' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(1)', //商品管理
+ 'product_cate' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(2)', //商品分类
+
+ 'product_brand' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(3)', //商品品牌
+ 'attribute_group' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(4)', //属性组
+ 'attribute' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(5)', //属性
+ 'advanced_filter' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(5)', //高级筛选
+ 'Recy_station' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(7)', //回收站
+];
+
+public const Cre_class = [
+ 'cre_cate_btn' => '#category-app > div > a', //创建分类按钮
+
+];
+
+public const Assert = [
+ 'cre_ful_assert' => '创建成功!',
+ 'alter_ful_assert' => '更新成功!',
+ 'del_ful_assert' => '删除成功!',
+
+];
+}
diff --git a/tests/Data/Admin/SystemSetPage.php b/tests/Data/Admin/SystemSetPage.php
new file mode 100644
index 00000000..7a6b4e97
--- /dev/null
+++ b/tests/Data/Admin/SystemSetPage.php
@@ -0,0 +1,50 @@
+ '.btn.btn-lg.btn-primary.submit-form', //保存按钮
+];
+
+public const System_Left = [
+ 'system_set' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(1)', //系统设置
+ 'personal_center' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(2)', //个人中心
+ 'admin_user' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(3)', //后台用户
+ 'area_group' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(4)', //区域分组
+ 'ta
+ x_rate_set' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(5)', //税率设置
+ 'tax_category' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(6)', //税费类别
+ 'currency_mg' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(7)', //货币管理
+ 'language_mg' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(8)', //语言管理
+ 'state_mg' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(9)', //国家管理
+ 'province_mg' => '.list-unstyled.navbar-nav:nth-child(2) li:nth-child(10)', //省份管理
+];
+
+public const System_Set = [
+ 'basic_set' => '.nav.nav-tabs.nav-bordered.mb-5 li:nth-child(1)', //基础设置
+ 'store_set' => '.nav.nav-tabs.nav-bordered.mb-5 li:nth-child(2)', //商店设置
+ 'pay_set' => '.nav.nav-tabs.nav-bordered.mb-5 li:nth-child(3)', //结账设置
+ 'images_set' => '.nav.nav-tabs.nav-bordered.mb-5 li:nth-child(4)', //图片设置
+ 'express_set' => '.nav.nav-tabs.nav-bordered.mb-5 li:nth-child(5)', //快递公司
+ 'advanced_filter' => '.nav.nav-tabs.nav-bordered.mb-5 li:nth-child(6)', //高级筛选
+ 'email_set' => '.nav.nav-tabs.nav-bordered.mb-5 li:nth-child(7)', //邮件设置
+ 'close_visitor_checkout' => '#tab-checkout > div:nth-child(1) > div > div > div:nth-child(2) > label', //游客结账 禁用
+ 'open_visitor_checkout' => '#guest_checkout-1', //游客结账 启用
+];
+
+public const System_Express
+
+ = [ //快递公司
+ 'add_btn' => '.bi.bi-plus-circle.cursor-pointer.fs-4', //加号
+ 'express_company' => 'input[name="express_company[0][name]"]', //公司名字
+ 'express_code' => 'input[name="express_company[0][code]"]', //code
+ 'save_btn' => '#content > div.page-title-box.py-1.d-flex.align-items-center.justify-content-between > div > button',
+
+ ];
+
+public const Assert = [ //断言信息
+ 'assert_ful' => '更新成功!',
+];
+}
diff --git a/tests/Data/Catalog/AccountData.php b/tests/Data/Catalog/AccountData.php
new file mode 100644
index 00000000..babb53e9
--- /dev/null
+++ b/tests/Data/Catalog/AccountData.php
@@ -0,0 +1,20 @@
+ 'test', //add_name
+ 'add_province' => 'v11012010086', //选择国家
+ 'add_code' => '643203', //add_code
+ 'add_address1' => 'test1', //add_address1
+ 'add_address2' => 'test2', //add_address2
+];
+
+public const User_Edit = [
+ 'upload_images' => '/../../data/Images/Headpicture/Headpicture.jpeg', //上传头像
+ 'user_name' => 'Admin', //修改名字
+ 'user_email' => 'Admin@163.com', //修改emial
+];
+}
diff --git a/tests/Data/Catalog/AccountPage.php b/tests/Data/Catalog/AccountPage.php
new file mode 100644
index 00000000..2bfe17c2
--- /dev/null
+++ b/tests/Data/Catalog/AccountPage.php
@@ -0,0 +1,60 @@
+ '/account',
+ 'go_index' => '.logo', //beikeshop图标
+ 'go_account' => '.list-group-item.d-flex.justify-content-between.align-items-center:nth-child(1)', //
+ 'go_Edit' => '.list-group-item.d-flex.justify-content-between.align-items-center:nth-child(2)', //编辑信息
+ 'go_order' => '.list-group-item.d-flex.justify-content-between.align-items-center:nth-child(3)', //查看订单
+ 'go_address' => '.list-group-item.d-flex.justify-content-between.align-items-center:nth-child(4)', //添加地址
+ 'go_Wishlist' => '.list-group-item.d-flex.justify-content-between.align-items-center:nth-child(5)', //添收藏
+ 'go_rma' => '.list-group-item.d-flex.justify-content-between.align-items-center:nth-child(6)', //售后
+ 'SignOut' => '.list-group-item.d-flex.justify-content-between.align-items-center:nth-child(7)', //sign out
+];
+
+public const Address = [
+ 'login_url' => '/account/addresses',
+ 'add_btn' => '.btn.btn-dark.mb-3', //点击添加地址
+ 'add_name' => '#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(1) > div > div > input', //add_name
+ 'add_phone' => '#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(2) > div > div > input', //add_phone
+ 'add_country' => '#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(3) > div > div > div:nth-child(1) > div > div > div > div.el-input.el-input--suffix > span > span', //选择国家
+ 'add_address' => '#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(2) > div > div > div:nth-child(3) > div > div > div.el-input > input',
+ 'add_province' => '#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(3) > div > div > div:nth-child(2) > div > div > div > div.el-input.el-input--suffix > span > span',
+ 'add_code' => '#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(4) > div > div > input', //add_code
+ //#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(3) > div > div > input
+ 'add_address1' => '#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(3) > div > div > input', //add_address1
+ 'add_address2' => '#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(6) > div > div > input', //add_address2
+ 'default' => '#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(7) > div > div > span', //default
+ 'save' => '#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(8) > div > button.el-button.el-button--primary', //save
+ 'assert' => 'Default',
+ //addresses
+];
+
+public const Edit = [
+ 'login_url' => '/account/edit',
+ 'upload_btn' => '#address-app > div > div.col-12.col-md-9 > div > div.card-body.h-600 > form > div.bg-light.rounded-3.p-4.mb-4 > div > div > label', //上传头像图标
+ 'Confirm_btn' => 'Confirm',
+ 'user_name' => '#address-app > div > div.col-12.col-md-9 > div > div.card-body.h-600 > form > div.row.gx-4.gy-3 > div:nth-child(1) > input', //更改用户名
+ 'user_email' => '#address-app > div > div.col-12.col-md-9 > div > div.card-body.h-600 > form > div.row.gx-4.gy-3 > div:nth-child(2) > input', //更改用户email
+ 'Submit' => '.btn.btn-primary.mt-sm-0', //add_phone
+ 'assert' => 'Modify Success!',
+];
+
+public const Order = [
+ 'check_btn' => '.btn.btn-outline-secondary.btn-sm', //order页面第一个订单的查看详情按钮
+];
+
+public const Wishlist = [
+ 'login_url' => '/account/edit',
+ 'go_Wishlist' => 'Wishlist', //点击Wishlist
+ 'Check_Details' => '.btn.btn-outline-secondary.btn-sm', //查看详情按钮
+ 'remove_Wishlist' => '.btn.btn-outline-danger.btn-sm.remove-wishlist', //移除按钮
+
+ 'no_data' => '.d-flex.flex-column.align-center.align-items-center.mb-4',
+
+];
+}
diff --git a/tests/Data/Catalog/CataLoginData.php b/tests/Data/Catalog/CataLoginData.php
new file mode 100644
index 00000000..50112b4e
--- /dev/null
+++ b/tests/Data/Catalog/CataLoginData.php
@@ -0,0 +1,21 @@
+ 'test@163.com',
+ 'password' => '123456',
+ 'assert' => 'Sign Out',
+];
+
+public const False_Login = [
+ 'false_email' => 'test1@163.com',
+ 'illegal_email' => 'test',
+ 'false_password' => '1234567',
+ 'false_assert' => 'User login and registration',
+ 'illegal_assert' => 'Please enter a valid email address!',
+
+];
+}
diff --git a/tests/Data/Catalog/CheckoutPage.php b/tests/Data/Catalog/CheckoutPage.php
new file mode 100644
index 00000000..74983d1c
--- /dev/null
+++ b/tests/Data/Catalog/CheckoutPage.php
@@ -0,0 +1,24 @@
+ '/checkout', //
+ 'submit' => '#submit-checkout', //提交按钮
+ //订单成功验证信息
+ 'assert' => 'Order placed successfully, please pay',
+ //订单号
+ 'order_num' => '.fw-bold',
+ 'product_price' => '.price.text-end',
+ 'quantity' => '.quantity', //购买商品数量
+ 'product_total' => '.totals li:nth-child(1) span:nth-child(2)', //商品总价
+ 'shipping_fee' => '.totals li:nth-child(2) span:nth-child(2)', //运费
+ 'customer_discount' => '.totals li:nth-child(3) span:nth-child(2)', //折扣金额
+ 'order_total' => '.totals li:nth-child(4) span:nth-child(2)', //实际金额
+ 'view_order' => '.table.table-borderless tbody tr:nth-of-type(2) td:nth-of-type(2) a',
+ 'method_pay' => '.radio-line-item',
+
+];
+}
diff --git a/tests/Data/Catalog/IndexPage.php b/tests/Data/Catalog/IndexPage.php
new file mode 100644
index 00000000..28350c48
--- /dev/null
+++ b/tests/Data/Catalog/IndexPage.php
@@ -0,0 +1,48 @@
+ '/',
+ 'product_img' => '#tab-product-0 > div > div:nth-child(1) > div > div.image > a', //购买商品图标
+ 'buy_btn' => '#product-top > div:nth-child(2) > div > div.quantity-btns > button.btn.btn-dark.ms-3.fw-bold', //购买按钮
+ 'address_btn' => '#checkout-address-app > div.checkout-black > div.addresses-wrap > div > div > div > button', //添加地址
+ 'login_text' => 'Home',
+ 'right_icon' => '.navbar-nav flex-row',
+ 'top_Sports' => '.navbar-nav.mx-auto li:nth-child(1)',
+ 'top_Fashion' => '.navbar-nav.mx-auto li:nth-child(2)',
+ 'top_Digital' => '.navbar-nav.mx-auto li:nth-child(3)',
+ 'top_Hot' => '.navbar-nav.mx-auto li:nth-child(4)',
+ 'top_Brand' => '.navbar-nav.mx-auto li:nth-child(5)',
+ 'top_Latest_Products' => '.navbar-nav.mx-auto li:nth-child(6)',
+];
+
+public const Index_Top = [
+ // "wishlist_btn" => "",//收藏商品图标
+ 'wishlist_btn' => '.navbar-nav.flex-row li:nth-child(2)', //收藏商品图标
+
+ 'buy_btn' => '#product-top > div:nth-child(2) > div > div.quantity-btns > button.btn.btn-dark.ms-3.fw-bold', //购买按钮
+ 'address_btn' => '#checkout-address-app > div.checkout-black > div.addresses-wrap > div > div > div > button', //添加地址
+ 'login_text' => 'Home',
+
+];
+
+public const Index_Cart = [
+ 'cart_product_text' => '#offcanvas-right-cart > div.offcanvas-body.pt-0 > div > div > div.product-info.d-flex.align-items-center > div.right.flex-grow-1 > a',
+ 'cart_icon' => '.nav-link.position-relative', //购物车图标
+ 'product_text' => '#offcanvas-right-cart > div.offcanvas-body.pt-0 > div > div > div.product-info.d-flex.align-items-center > div.right.flex-grow-1 > a', //购物车内商品名字
+ 'Delete_btn' => '#offcanvas-right-cart > div.offcanvas-body.pt-0 > div > div > div.product-info.d-flex.align-items-center > div.right.flex-grow-1 > div.product-bottom.d-flex.justify-content-between.align-items-center > span', //删除按钮
+ 'product_num' => '#offcanvas-right-cart > div.offcanvas-footer > div.d-flex.justify-content-between.align-items-center.mb-2.p-3.bg-light.top-footer > div:nth-child(2) > strong:nth-child(2) > span',
+ 'cart_Checkout' => '#offcanvas-right-cart > div.offcanvas-footer > div.p-4 > a.btn.w-100.fw-bold.btn-dark.to-checkout',
+];
+
+ public const Index_Account = [
+ 'login_icon' => '.navbar-nav.flex-row li:nth-child(3)', //登录图标
+ ];
+
+public const Index_Login = [
+ 'login_icon' => '.navbar-nav.flex-row li:nth-child(3)', //登录图标
+];
+}
diff --git a/tests/Data/Catalog/LoginPage.php b/tests/Data/Catalog/LoginPage.php
new file mode 100644
index 00000000..be118636
--- /dev/null
+++ b/tests/Data/Catalog/LoginPage.php
@@ -0,0 +1,29 @@
+ '/login',
+ // #page-login > div.login-wrap > div:nth-child(1) > form > div.card-body.px-md-2 > div:nth-child(1) > div > div > input
+ 'login_email' => '#page-login > div.login-wrap > div:nth-child(1) > form > div.card-body.px-md-2 > div:nth-child(1) > div > div > input',
+ 'login_pwd' => '#page-login > div.login-wrap > div:nth-child(1) > form > div.card-body.px-md-2 > div:nth-child(2) > div > div > input',
+ 'login_btn' => '.btn.btn-dark.btn-lg.w-100.fw-bold:first-of-type',
+ 'login_text' => 'Home',
+ ];
+
+ public const Register = [
+ // #page-login > div.login-wrap > div:nth-child(3) > div.card-body.px-md-2 > form > div:nth-child(1) > div > div > input
+ 'register_email' => '#page-login > div.login-wrap > div:nth-child(3) > div.card-body.px-md-2 > form > div:nth-child(1) > div > div > input',
+ 'register_pwd' => '#page-login > div.login-wrap > div:nth-child(3) > div.card-body.px-md-2 > form > div:nth-child(2) > div > div > input',
+ 'register_re_pwd' => '#page-login > div.login-wrap > div:nth-child(3) > div.card-body.px-md-2 > form > div:nth-child(3) > div > div > input',
+ // "register_btn"=> ".btn.btn-dark.btn-lg.w-100.fw-bold:nth-child(2)",
+ 'register_btn' => 'Register',
+ 'register_text' => 'Home',
+ ];
+
+ public const Iframe = [
+ 'iframe_name' => '#layui-layer-iframe1',
+ ];
+}
diff --git a/tests/Data/Catalog/OrderPage.php b/tests/Data/Catalog/OrderPage.php
new file mode 100644
index 00000000..b31d89cb
--- /dev/null
+++ b/tests/Data/Catalog/OrderPage.php
@@ -0,0 +1,26 @@
+ '/login',
+ 'product' => '#tab-product-0 > div > div:nth-child(1) > div > div.image > a > div > img', //购买商品
+ 'buy_btn' => '#product-top > div:nth-child(2) > div > div.quantity-btns > button.btn.btn-dark.ms-3.fw-bold', //购买按钮
+ 'address_btn' => '#checkout-address-app > div.checkout-black > div.addresses-wrap > div > div > div > button', //添加地址
+ 'login_text' => 'Home',
+];
+
+public const Order_Status = [
+ 'Unpaid' => 'Unpaid', //待支付
+ 'Paid' => 'Paid', //已支付
+ 'Shipped' => 'Shipped', //已发货
+ 'Completed' => 'Completed', //已完成 Cancelled
+ 'Cancelled' => 'Cancelled', //已完成 Cancelled
+];
+
+public const Get_Order_Status = [
+ 'status_text' => '.table.table-borderless.mb-0 tbody tr:first-child td:nth-child(3)', //获取当前状态
+];
+}
diff --git a/tests/Data/Catalog/ProductOne.php b/tests/Data/Catalog/ProductOne.php
new file mode 100644
index 00000000..5cd06385
--- /dev/null
+++ b/tests/Data/Catalog/ProductOne.php
@@ -0,0 +1,20 @@
+ '/products/1',
+ 'product_1' => '.btn.btn-dark.ms-3.fw-bold', //购买商品
+ 'Wishlist_icon' => '.btn.btn-link.ps-0.text-secondary', //收藏
+ 'add_cart' => '.btn.btn-outline-dark.ms-md-3.add-cart.fw-bold',
+ 'product1_name' => '#product-top > div:nth-child(2) > div > h1', //产品名字
+ 'quantity' => '#product-top > div:nth-child(2) > div > div.quantity-btns > div > input', //购买商品输入框
+ 'quantity_up' => '.bi.bi-chevron-up', //增加数量按钮
+ 'buy_btn' => '#product-top > div:nth-child(2) > div > div.quantity-btns > button.btn.btn-dark.ms-3.fw-bold', //购买按钮
+ 'address_btn' => '#checkout-address-app > div.checkout-black > div.addresses-wrap > div > div > div > button', //添加地址
+ 'login_text' => 'Home',
+ 'understock_assert' => '.layui-layer-content',
+];
+}
diff --git a/tests/Data/Catalog/RegisterData.php b/tests/Data/Catalog/RegisterData.php
new file mode 100644
index 00000000..f275af11
--- /dev/null
+++ b/tests/Data/Catalog/RegisterData.php
@@ -0,0 +1,21 @@
+ 'test2@163.com',
+ 'password' => '123456',
+ 'assert' => 'Sign Out',
+];
+
+public const False_Register = [
+ 'exist_email' => 'test@163.com', //已注册的email
+ 'illegal_email' => 'test',
+ 'false_password' => '1234567',
+ 'false_assert' => 'User login and registration',
+ 'illegal_assert' => 'Please enter a valid email address!',
+
+];
+}
diff --git a/tests/Data/Images/Headpicture/Headpicture.jpeg b/tests/Data/Images/Headpicture/Headpicture.jpeg
new file mode 100644
index 00000000..c8396c4f
Binary files /dev/null and b/tests/Data/Images/Headpicture/Headpicture.jpeg differ
diff --git a/tests/DuskTestCase.php b/tests/DuskTestCase.php
new file mode 100644
index 00000000..db5f52ab
--- /dev/null
+++ b/tests/DuskTestCase.php
@@ -0,0 +1,72 @@
+addArguments(collect([
+ $this->shouldStartMaximized() ? '--start-maximized' : '--window-size=1920,1080',
+ ])->unless($this->hasHeadlessDisabled(), function (Collection $items) {
+ return $items->merge([
+ '--disable-gpu',
+ '--headless=new',
+ ]);
+ })->all());
+
+ return RemoteWebDriver::create(
+ $_ENV['DUSK_DRIVER_URL'] ?? 'http://localhost:9515',
+ DesiredCapabilities::chrome()->setCapability(
+ ChromeOptions::CAPABILITY, $options
+ )
+ );
+ }
+
+ protected function baseUrl()
+ {
+ return 'http://beiketu.test';
+ }
+
+ /**
+ * Determine whether the Dusk command has disabled headless mode.
+ */
+ protected function hasHeadlessDisabled(): bool
+ {
+ return isset($_SERVER['DUSK_HEADLESS_DISABLED']) ||
+ isset($_ENV['DUSK_HEADLESS_DISABLED']);
+ }
+
+ /**
+ * Determine if the browser window should start maximized.
+ */
+ protected function shouldStartMaximized(): bool
+ {
+ return isset($_SERVER['DUSK_START_MAXIMIZED']) ||
+ isset($_ENV['DUSK_START_MAXIMIZED']);
+ }
+}
diff --git a/themes/.gitignore b/themes/.gitignore
index f08ba4da..163a499f 100644
--- a/themes/.gitignore
+++ b/themes/.gitignore
@@ -1,2 +1,2 @@
-*
-!default
+/*
+!/default
diff --git a/themes/default/account/account.blade.php b/themes/default/account/account.blade.php
index 000c52dd..7985b37c 100644
--- a/themes/default/account/account.blade.php
+++ b/themes/default/account/account.blade.php
@@ -3,14 +3,11 @@
@section('body-class', 'page-account')
@section('content')
+
+
-
-
-
-
-
@if (\Session::has('success'))
diff --git a/themes/default/account/address.blade.php b/themes/default/account/address.blade.php
index 4809a45d..96603051 100644
--- a/themes/default/account/address.blade.php
+++ b/themes/default/account/address.blade.php
@@ -4,15 +4,14 @@
@push('header')
-
-
+
+
@endpush
@section('content')
+
+
-
-
-
@@ -20,13 +19,13 @@
-
-
+
{{ __('shop/account.addresses.add_address') }}
+
+
-
+
@{{ address.name }}
@@ -39,8 +38,8 @@
{{ __('shop/account.addresses.default_address') }}
diff --git a/themes/default/account/edit.blade.php b/themes/default/account/edit.blade.php
index 8dba7f14..d518dd34 100644
--- a/themes/default/account/edit.blade.php
+++ b/themes/default/account/edit.blade.php
@@ -8,10 +8,9 @@
@endpush
@section('content')
+
+
-
-
-
@@ -51,6 +50,7 @@
{{ $errors->has('name') ? $errors->first('name') : __('common.error_required', ['name' => __('shop/account.edit.name')]) }}
+ @hookwrapper('account.edit.email')
{{ __('shop/account.edit.email') }}
{{ $errors->has('email') ? $errors->first('email') : __('common.error_required', ['name' => __('shop/account.edit.email')]) }}
+ @endhookwrapper
{{ __('common.submit') }}
diff --git a/themes/default/account/forgotten.blade.php b/themes/default/account/forgotten.blade.php
index a1654d70..0fda26a3 100644
--- a/themes/default/account/forgotten.blade.php
+++ b/themes/default/account/forgotten.blade.php
@@ -4,16 +4,15 @@
@push('header')
-
-
+
+
@endpush
@section('content')
+
+
-
-
-
diff --git a/themes/default/account/login.blade.php b/themes/default/account/login.blade.php
index a5883449..b695bf3d 100644
--- a/themes/default/account/login.blade.php
+++ b/themes/default/account/login.blade.php
@@ -4,15 +4,18 @@
@push('header')
-
-
+
+
@endpush
@section('content')
+ @if (!request('iframe'))
+
+ @endif
+
@if (!request('iframe'))
-
{{ __('shop/login.index') }}
@endif
@@ -155,7 +158,8 @@
password_confirmation: [
{required: true, validator: validatePass2, trigger: 'change'}
]
- }
+ },
+ @stack('login.vue.data')
},
beforeMount () {
@@ -191,7 +195,8 @@
@endif
})
});
- }
+ },
+ @stack('login.vue.method')
}
})
diff --git a/themes/default/account/order.blade.php b/themes/default/account/order.blade.php
index 22ccbcd1..7982e96e 100644
--- a/themes/default/account/order.blade.php
+++ b/themes/default/account/order.blade.php
@@ -3,15 +3,14 @@
@section('body-class', 'page-account-order-list')
@section('content')
+
+
-
-
-
-
+
@@ -43,7 +42,7 @@
-
+
{{ $product->name }}
@@ -54,7 +53,7 @@
@if ($loop->first)
{{ currency_format($order->total, $order->currency_code, $order->currency_value) }}
-
{{ __("common.order.{$order->status}") }}
+
{{$order->status_format}}
{{ __('shop/account.order.check') }}
diff --git a/themes/default/account/order_info.blade.php b/themes/default/account/order_info.blade.php
index 29dba1cc..03423c8d 100644
--- a/themes/default/account/order_info.blade.php
+++ b/themes/default/account/order_info.blade.php
@@ -3,239 +3,15 @@
@section('body-class', 'page-account-order-info')
@section('content')
+
+
-
-
-
-
- @if ($errors->any())
- @foreach ($errors->all() as $error)
-
- @endforeach
- @endif
-
-
-
-
-
-
-
-
- {{ __('shop/account.order.order_info.order_number') }}
- {{ __('shop/account.order.order_info.order_date') }}
- {{ __('shop/account.order.order_info.state') }}
- {{ __('shop/account.order.order_info.order_amount') }}
-
-
-
-
- {{ $order->number }}
- {{ $order->created_at }}
-
- {{ __("common.order.{$order->status}") }}
-
- {{ currency_format($order->total, $order->currency_code, $order->currency_value) }}
-
-
-
-
-
-
-
-
-
-
-
-
- {{ __('order.shipping_address') }}
- {{ __('order.payment_address') }}
-
-
-
-
-
- {{ __('address.name') }}:{{ $order->shipping_customer_name }} ({{ $order->shipping_telephone }})
-
- {{ __('address.address') }}:
- {{ $order->shipping_address_1 }}
- {{ $order->shipping_address_2 }}
- {{ $order->shipping_city }}
- {{ $order->shipping_zone }}
- {{ $order->shipping_country }}
-
- {{ __('address.post_code') }}:{{ $order->shipping_zipcode }}
-
-
- {{ __('address.name') }}:{{ $order->payment_customer_name }} ({{ $order->payment_telephone }})
-
- {{ __('address.address') }}:
- {{ $order->payment_address_1 }}
- {{ $order->payment_address_2 }}
- {{ $order->payment_city }}
- {{ $order->payment_zone }}
- {{ $order->payment_country }}
-
- {{ __('address.post_code') }}:{{ $order->payment_zipcode }}
-
-
-
-
-
-
-
-
-
- @foreach ($order->orderProducts as $product)
-
-
-
-
-
-
- {{ currency_format($product->price, $order->currency_code, $order->currency_value) }}
- x {{ $product->quantity }}
- = {{ currency_format($product->price * $product->quantity, $order->currency_code, $order->currency_value) }}
-
-
-
- @if ($order->status == 'completed')
-
{{ __('shop/account.order.order_info.apply_after_sales') }}
- @endif
-
- @endforeach
-
-
-
-
-
-
-
-
- @foreach (array_chunk($order->orderTotals->all(), 2) as $totals)
-
- @foreach ($totals as $total)
- {{ $total->title }}
- {{ currency_format($total->value, $order->currency_code, $order->currency_value) }}
- @endforeach
-
- @endforeach
-
-
-
-
-
- @foreach ($html_items as $item)
- {!! $item !!}
- @endforeach
-
- @if (0)
-
- @endif
-
- @if ($order->orderShipments->count())
-
-
-
-
-
-
-
- {{ __('order.express_company') }}
- {{ __('order.express_number') }}
- {{ __('order.history_created_at') }}
-
-
-
- @foreach ($order->orderShipments as $ship)
-
- {{ $ship->express_company }}
- {{ $ship->express_number }}
- {{ $ship->created_at }}
-
- @endforeach
-
-
-
-
-
- @endif
-
- @if ($order->orderHistories->count())
-
-
-
-
-
-
- {{ __('shop/account.order.order_info.state') }}
- {{ __('shop/account.order.order_info.remark') }}
- {{ __('shop/account.order.order_info.update_time') }}
-
-
-
- @foreach ($order->orderHistories as $orderHistory)
-
- {{ $orderHistory->status_format }}
- {{ $orderHistory->comment }}
- {{ $orderHistory->created_at }}
-
- @endforeach
-
-
-
-
- @endif
+ @include('shared.order_info')
@endsection
-
-
-@push('add-scripts')
-
-@endpush
diff --git a/themes/default/account/order_success.blade.php b/themes/default/account/order_success.blade.php
deleted file mode 100644
index 967b0655..00000000
--- a/themes/default/account/order_success.blade.php
+++ /dev/null
@@ -1,57 +0,0 @@
-@extends('layout.master')
-
-@section('body-class', 'page-order-success')
-
-@section('content')
-
-
- {{--
--}}
-
-
-
@include('shared.steps', ['steps' => 3])
-
-
-
-
-
-
-
-
-
-
{{ __('shop/account.order.order_success.order_success') }}
-
-
-
{{ __('shop/account.order.order_success.kind_tips') }}
-
-
-
-
-
{{ __('shop/account.order.order_success.contact_customer_service') }}:
-
{{ __('shop/account.order.order_success.emaill') }}: {{ system_setting('base.email', '') }}
-
{{ __('shop/account.order.order_success.service_hotline') }}: {{ system_setting('base.telephone', '') }}
-
-
-
-
-@endsection
-@push('add-scripts')
-
-@endpush
diff --git a/themes/default/account/rmas/form.blade.php b/themes/default/account/rmas/form.blade.php
index 7ea2484e..514f5860 100644
--- a/themes/default/account/rmas/form.blade.php
+++ b/themes/default/account/rmas/form.blade.php
@@ -2,26 +2,13 @@
@section('body-class', 'page-account-rmas')
-@push('header')
- {{-- --}}
-@endpush
@section('content')
+
+
-
-
-
- {{--
-
- Home
- Library
-
- --}}
-
-
@@ -60,21 +61,23 @@
@push('add-scripts')
@endpush
diff --git a/themes/default/brand/info.blade.php b/themes/default/brand/info.blade.php
index 09c353e7..390d136e 100644
--- a/themes/default/brand/info.blade.php
+++ b/themes/default/brand/info.blade.php
@@ -3,18 +3,18 @@
@section('title', $brand->name)
@section('content')
+
+ @if (count($products_format))
+
+ @foreach ($products_format as $product)
+
@include('shared.product')
+ @endforeach
+
+ @else
+
+ @endif
-
-
-
- @foreach ($products_format as $product)
-
@include('shared.product')
- @endforeach
-
-
- {{ $products->links('shared/pagination/bootstrap-4') }}
-
+ {{ $products->links('shared/pagination/bootstrap-4') }}
-
-@endsection
+@endsection
\ No newline at end of file
diff --git a/themes/default/brand/list.blade.php b/themes/default/brand/list.blade.php
index 9650fdd1..f3ef5e75 100644
--- a/themes/default/brand/list.blade.php
+++ b/themes/default/brand/list.blade.php
@@ -2,9 +2,9 @@
@section('body-class', 'page-brands')
@section('content')
-
+
-
+
{{ __('shop/brands.index') }}
diff --git a/themes/default/cart/cart.blade.php b/themes/default/cart/cart.blade.php
index cf0d55e4..5bc0b083 100644
--- a/themes/default/cart/cart.blade.php
+++ b/themes/default/cart/cart.blade.php
@@ -4,16 +4,15 @@
@push('header')
-
+
-
+
@endpush
@section('content')
+
+
-
-
-
@include('shared.steps', ['steps' => 1])
@@ -24,7 +23,7 @@
-
+
{{ __('shop/carts.commodity') }}
@@ -37,8 +36,8 @@
{{ __('shop/carts.select_all') }}
-
{{ __('shop/carts.index') }}
- {{ __('shop/carts.commodity') }}
+ {{ __('shop/carts.commodity') }}
+ {{ __('shop/carts.quantity') }}
{{ __('shop/carts.subtotal') }}
{{ __('common.action') }}