Bladeren bron

Merge remote-tracking branch 'origin/wl_dev' into lyz_dev

# Conflicts:
#	src/locales/en.json
#	src/locales/ru.json
#	src/locales/sr.json
#	src/locales/zh.json
suwenjiang 1 week geleden
bovenliggende
commit
32d3d025da

+ 74 - 60
src/locales/en.json

@@ -512,8 +512,8 @@
     "singleSpecification": "Single Specification",
     "multipleSpecifications": "Multiple Specifications",
     "shelfStatus": "Shelf Status",
-    "putOnShelf":"Put On Shelf",
-    "removeFromShelf": "Remove From Shelf",
+    "putOnShelf":"On Shelf",
+    "removeFromShelf": "Off Shelf",
     "stockStatus": "Stock Status",
     "inStock": "In Stock",
     "outOfStock": "Out of Stock",
@@ -570,66 +570,80 @@
     "priceGreaterThanZero": "The product price must be greater than 0!",
     "linePriceGreaterThanZero": "The product line price must be greater than or equal to 0!",
     "weightGreaterThanZero": "The product weight must be greater than or equal to 0!",
-    "stockGreaterThanZero": "The product stock must be greater than or equal to 0!"
+    "stockGreaterThanZero": "The product stock must be greater than or equal to 0!",
+    "onlyImage": "Only image files are allowed!",
+    "sizeLimit": "The image size must not exceed 20MB!",
+    "submitProductInfo": "Please submit the basic product information first",
+    "skuLength": "The SKU code length must be greater than 1, please check carefully!",
+    "inventory": "The product inventory must be greater than or equal to 0, please check carefully!",
+    "priceList": "The product price must be greater than or equal to 0, please check carefully!",
+    "deleteConfirm": "Are you sure you want to delete the product \"{name}\"?",
+    "statusChangeConfirm": "Are you sure you want to {text} \"{name}\"?",
+    "statusChangeSuccess": "{text} successful",
+    "removeSkuConfirm": "Are you sure you want to delete this specification value?",
+    "removeSkuRowConfirm": "Are you sure you want to delete this specification?",
+    "deleteGoods": "Are you sure you want to delete the item \"{name}\"?",
+    "confirmGoods": "Are you sure you want to {text} \"{name}\"?",
+    "success": "{text} successfully"
   },
   "盼达点餐管理系统": "Panda ordering system",
   "Dashboard":"Dashboard",
   "订单管理": "Order Management",
-    "订单列表": "Order List",
-    "订单发货": "Order Shipment",
-    "发起结算": "Initiate Settlement",
-    "结算确认": "Settlement Confirmation",
-    "订单修改": "Order Modification",
-    "订单删除": "Order Deletion",
-    "处理售后": "Handle After-sales Service",
-    "订单详情": "Order Details",
-    "商品管理": "Product Management",
-    "商品分类": "Product Classification",
-    "商品列表": "Product List",
-    "添加商品": "Add Product",
-    "编辑商品": "Edit Product",
-    "货币管理": "Currency Management",
-    "货币列表": "Currency List",
-    "编辑": "Edit",
-    "新增": "Add New",
-    "数据统计": "Data Statistics",
-    "收益管理": "Revenue Management",
-    "店铺管理": "Store Management",
-    "商户管理": "Merchant Management",
-    "店铺列表": "Store List",
-    "新增店铺": "Add New Store",
-    "员工管理": "Employee Management",
-    "桌码管理": "Table Code Management",
-    "个人中心": "Personal Center",
-    "账号管理": "Account Management",
-    "收银管理": "Cashier Management",
-    "核销订单": "Write-off Order",
-    "收银设置": "Cashier Settings",
-    "收银台": "Cashier Desk",
-    "系统管理": "System Management",
-    "后台日志": "Backend Log",
-    "后台菜单": "Backend Menu",
-    "新增菜单": "Add New Menu",
-    "修改菜单": "Edit Menu",
-    "删除菜单": "Delete Menu",
-    "后台角色": "Backend Role",
-    "新增角色": "Add New Role",
-    "删除角色": "Delete Role",
-    "修改角色": "Edit Role",
-    "生成代码": "Generate Code",
-    "删除生成代码": "Delete Generated Code",
-    "新增生成代码": "Add New Generated Code",
-    "确定生成代码": "Confirm Generate Code",
-    "后台管理员": "Backend Administrator",
-    "删除用户": "Delete User",
-    "新增用户": "Add New User",
-    "修改用户": "Edit User",
-    "待支付": "Pending Payment",
-    "已支付": "Paid",
-    "已取消": "Cancelled",
-    "待发货": "Pending Shipment",
-    "已发货": "Shipped",
-    "已收货": "Received",
-    "已删除": "Deleted",
-    "已退款": "Refunded"
+  "订单列表": "Order List",
+  "订单发货": "Order Shipment",
+  "发起结算": "Initiate Settlement",
+  "结算确认": "Settlement Confirmation",
+  "订单修改": "Order Modification",
+  "订单删除": "Order Deletion",
+  "处理售后": "Handle After-sales Service",
+  "订单详情": "Order Details",
+  "商品管理": "Product Management",
+  "商品分类": "Product Classification",
+  "商品列表": "Product List",
+  "添加商品": "Add Product",
+  "编辑商品": "Edit Product",
+  "货币管理": "Currency Management",
+  "货币列表": "Currency List",
+  "编辑": "Edit",
+  "新增": "Add New",
+  "数据统计": "Data Statistics",
+  "收益管理": "Revenue Management",
+  "店铺管理": "Store Management",
+  "商户管理": "Merchant Management",
+  "店铺列表": "Store List",
+  "新增店铺": "Add New Store",
+  "员工管理": "Employee Management",
+  "桌码管理": "Table Code Management",
+  "个人中心": "Personal Center",
+  "账号管理": "Account Management",
+  "收银管理": "Cashier Management",
+  "核销订单": "Write-off Order",
+  "收银设置": "Cashier Settings",
+  "收银台": "Cashier Desk",
+  "系统管理": "System Management",
+  "后台日志": "Backend Log",
+  "后台菜单": "Backend Menu",
+  "新增菜单": "Add New Menu",
+  "修改菜单": "Edit Menu",
+  "删除菜单": "Delete Menu",
+  "后台角色": "Backend Role",
+  "新增角色": "Add New Role",
+  "删除角色": "Delete Role",
+  "修改角色": "Edit Role",
+  "生成代码": "Generate Code",
+  "删除生成代码": "Delete Generated Code",
+  "新增生成代码": "Add New Generated Code",
+  "确定生成代码": "Confirm Generate Code",
+  "后台管理员": "Backend Administrator",
+  "删除用户": "Delete User",
+  "新增用户": "Add New User",
+  "修改用户": "Edit User",
+  "待支付": "Pending Payment",
+  "已支付": "Paid",
+  "已取消": "Cancelled",
+  "待发货": "Pending Shipment",
+  "已发货": "Shipped",
+  "已收货": "Received",
+  "已删除": "Deleted",
+  "已退款": "Refunded"
 }

+ 627 - 65
src/locales/ru.json

@@ -1,70 +1,632 @@
 {
     "lang":"русский язык",
-
     "nav.setLayout": "Set Layout",
     "nav.logout": "Logout",
-    
-    "welcome": "Welcome",
-    "greeting": "Hello, {name}!",
     "盼达点餐管理系统": "Система управления заказами Panda",
-    "Dashboard":"Дашборд ",
-    "订单管理": "Управление заказами",
-    "订单列表": "Список заказов",
-    "订单发货": "Отгрузка заказов",
-    "发起结算": "Начать расчет",
-    "结算确认": "Подтверждение расчета",
-    "订单修改": "Изменение заказа",
-    "订单删除": "Удаление заказа",
-    "处理售后": "Обработка售后服务",
-    "订单详情": "Детали заказа",
-    "商品管理": "Управление товарами",
-    "商品分类": "Классификация товаров",
-    "商品列表": "Список товаров",
-    "添加商品": "Добавить товар",
-    "编辑商品": "Редактировать товар",
-    "货币管理": "Управление валютами",
-    "货币列表": "Список валют",
-    "编辑": "Редактировать",
-    "新增": "Добавить новый",
-    "数据统计": "Статистика данных",
-    "收益管理": "Управление доходами",
-    "店铺管理": "Управление магазином",
-    "商户管理": "Управление-Merчантами",
-    "店铺列表": "Список магазинов",
-    "新增店铺": "Добавить новый магазин",
-    "员工管理": "Управление сотрудниками",
-    "桌码管理": "Управление номерами столиков",
-    "个人中心": "Персональный центр",
-    "账号管理": "Управление учетными записями",
-    "收银管理": "Управление кассиром",
-    "核销订单": "Анулировать заказ",
-    "收银设置": "Настройки кассира",
-    "收银台": "Кассовая стойка",
-    "系统管理": "Управление системой",
-    "后台日志": "Журнал бэкенда",
-    "后台菜单": "Меню бэкенда",
-    "新增菜单": "Добавить новый меню",
-    "修改菜单": "Редактировать меню",
-    "删除菜单": "Удалить меню",
-    "后台角色": "Роль бэкенда",
-    "新增角色": "Добавить новую роль",
-    "删除角色": "Удалить роль",
-    "修改角色": "Редактировать роль",
-    "生成代码": "Генерировать код",
-    "删除生成代码": "Удалить сгенерированный код",
-    "新增生成代码": "Добавить новый сгенерированный код",
-    "确定生成代码": "Подтвердить генерацию кода",
-    "后台管理员": "Администратор бэкенда",
-    "删除用户": "Удалить пользователя",
-    "新增用户": "Добавить нового пользователя",
-    "修改用户": "Редактировать пользователя",
-    "待支付": "Ожидается оплата",
-    "已支付": "Оплачен",
-    "已取消": "Отменено",
-    "待发货": "Ожидается отгрузка",
-    "已发货": "Отгружен",
-    "已收货": "Получено",
-    "已删除": "Удалено",
-    "已退款": "Возврат денег",
-    "home":"Домашняя страница"
-  }
+
+    "nav": {
+      "setLayout": "Настройки макета",
+      "logout": "Выйти из системы",
+      "confirmLogoutMessage": "Вы уверены, что хотите выйти из системы?",
+      "prompt": "Подсказка",
+      "confirm": "Подтвердить",
+      "cancel": "Отмена"
+    },
+
+    "login": {
+      "welcomeMessage": "Добро пожаловать в {systemName}, ваш маленький помощник по маркетингу для карт лояльности, карт с балансом и карт для посещений!",
+      "usernamePlaceholder": "Логин",
+      "passwordPlaceholder": "Пароль",
+      "captchaPlaceholder": "Введите код с картинки",
+      "rememberPassword": "Запомнить пароль",
+      "loginNow": "Войти сейчас",
+      "loggingIn": "Вход в систему...",
+      "copyrightMessage": "Copyright © {startYear}-{endYear} <a class=\"link\" href=\"{url}\">{url}</a> Все права защищены.",
+      "usernameRequired": "Пожалуйста, введите ваш логин",
+      "passwordRequired": "Пожалуйста, введите ваш пароль",
+      "captchaRequired": "Пожалуйста, введите код с картинки"
+    },
+
+    "operational": {
+      "overview": "Обзор операционной деятельности",
+      "totalTransactionAmount": "Общая сумма транзакций (Юани)",
+      "commonFunctions": "Основные функции",
+      "orderManagement": "Управление заказами",
+      "goodsManagement": "Управление товарами",
+      "reportStatistics": "Статистика отчетов",
+      "lastSevenDaysOrderCount": "Количество заказов за последние семь дней",
+      "orderStatistics": "Статистика заказов",
+      "incomeComparisonAmount": "Сравнение доходов",
+      "income": "Доход",
+      "startTimePlaceholder": "Время начала",
+      "endTimePlaceholder": "Время окончания",
+      "reset": "Сбросить",
+      "query": "Запрос",
+      "lastThreeDays": "Последние 3 дня",
+      "lastSevenDays": "Последние 7 дней",
+      "lastFifteenDays": "Последние 15 дней",
+      "lastThirtyDays": "Последние 30 дней",
+      "dataOverview": "Обзор данных",
+      "orderCount": "Количество заказов (шт.)",
+      "transactionAmount": "Сумма транзакций (Юани)",
+      "totalPayAmount": "Общая сумма платежей (Юани)",
+      "totalOrderCount": "Общее количество заказов (шт.)",
+      "totalPayUserCount": "Общее количество пользователей, совершивших оплату",
+      "operationTrend": "Тренд операционной деятельности",
+      "dataRanking": "Рейтинг данных",
+      "goodsSalesRanking": "Рейтинг продаж товаров",
+      "userConsumptionRanking": "Рейтинг потребительских расходов пользователей",
+      "id": "ID",
+      "goodsName": "Название товара",
+      "salesVolume": "Объем продаж",
+      "salesAmount": "Сумма продаж (Юани)",
+      "userName": "Имя пользователя",
+      "memberNumber": "Номер участника",
+      "consumptionAmount": "Сумма потребительских расходов (Юани)",
+      "chart1Title": "Количество заказов за последние семь дней",
+      "chart1Header": "Статистика заказов",
+      "chart2Title": "Сравнение доходов",
+      "chart2Header": "Доход",
+      "lastSevenDaysOrderCount": "Количество заказов за последние семь дней",
+      "orderStatistics": "Статистика заказов",
+      "incomeTrendChart": "График доходов",
+      "memberStatistics": "Статистика участников"
+    },
+
+    "operational.overview": "Обзор операционной деятельности",
+    "today.revenue": "Сегодняшний доход",
+    "welcome": "Добро пожаловать",
+    "greeting": "Привет, {name}!",
+
+    "orderList":{
+        "orderNumber": "Номер заказа",
+        "pleaseEnterOrderNumber": "Пожалуйста, введите номер заказа",
+        "tableCode": "Код стола",
+        "pleaseEnterTableCode": "Пожалуйста, введите код стола",
+        "orderStatus": "Статус заказа",
+        "pleaseSelectOrderStatus": "Пожалуйста, выберите статус заказа",
+        "paymentStatus": "Статус оплаты",
+        "orderTime": "Время заказа",
+        "startTime": "Время начала",
+        "endTime": "Время окончания",
+        "query": "Запрос",
+        "export": "Экспорт",
+        "reset": "Сбросить",
+        "orderID": "ID заказа",
+        "storeName": "Название магазина",
+        "totalAmount": "Общая сумма",
+        "paymentAmount": "Сумма оплаты",
+        "staffName": "Сотрудник",
+        "updateTime": "Время обновления",
+        "operation": "Операция",
+        "modify": "Изменить",
+        "viewDetails": "Посмотреть детали",
+        "totalOrderAmount": "Общая сумма заказа",
+        "pleaseEnterTotalOrderAmount": "Пожалуйста, введите общую сумму заказа",
+        "discountAmount": "Сумма скидки",
+        "pleaseEnterDiscountAmount": "Пожалуйста, введите сумму скидки",
+        "orderRemark": "Комментарий к заказу",
+        "pleaseEnterOrderRemark": "Пожалуйста, введите комментарий к заказу",
+        "confirm": "Подтвердить",
+        "cancel": "Отмена",
+        "verifyOrder": "Подтвердить заказ",
+        "verificationCode": "Код подтверждения",
+        "pleaseEnterVerificationCode": "Пожалуйста, введите код подтверждения заказа, который можно получить в деталях заказа на клиентской стороне",
+        "confirmVerification": "Подтвердить подтверждение",
+        "fillLogisticsInfo": "Заполнить информацию о логистике",
+        "logisticsCompany": "Логистическая компания",
+        "pleaseEnterLogisticsCompany": "Пожалуйста, введите логистическую компанию",
+        "logisticsTrackingNumber": "Номер отслеживания логистики",
+        "pleaseEnterLogisticsTrackingNumber": "Пожалуйста, введите номер отслеживания",
+        "submitLogisticsInfo": "Отправить информацию о логистике",
+        "orderRefund": "Возврат заказа",
+        "paymentMethod": "Метод оплаты",
+        "actualPaymentAmount": "Фактическая сумма оплаты",
+        "actualPaymentAmountForOrder": "Фактическая сумма оплаты за заказ",
+        "refundAmount": "Сумма возврата",
+        "pleaseEnterRefundAmount": "Пожалуйста, введите сумму возврата",
+        "tipUnitYuan": "( Подсказка: единица — юань )",
+        "refundRemark": "Комментарий к возврату",
+        "pleaseEnterRefundRemark": "Пожалуйста, введите комментарий к возврату",
+        "totalAmountRequired": "Общая сумма не может быть пустой",
+        "verifyCodeRequired": "Код подтверждения не может быть пустым",
+        "expressCompanyRequired": "Логистическая компания не может быть пустой",
+        "expressNoRequired": "Номер отслеживания не может быть пустым",
+        "refundAmountRequired": "Сумма возврата не может быть пустой",
+        "correctRefundAmount": "Пожалуйста, введите правильную сумму возврата",
+        "enable": "Включить",
+        "disable": "Отключить",
+        "confirmChangeOrderStatus": "Вы уверены, что хотите {action} заказ с номером «{orderSn}»?",
+        "statusChangeSuccess": "{action} успешно",
+        "verifySuccess": "Подтверждение успешно!",
+        "modifySuccess": "Изменение успешно!",
+        "modifyError": "Ошибка при изменении",
+        "modifyOrder": "Изменить заказ",
+        "requestProcessing": "Запрос в обработке...",
+        "submitExpressSuccess": "Информация о логистике успешно отправлена!",
+        "refundAmountExceed": "Сумма возврата не может быть больше общей суммы заказа!",
+        "submitRefundSuccess": "Возврат успешно отправлен!",
+        "confirmDeleteOrder": "Вы уверены, что хотите удалить элемент с номером заказа «{orderSn}»?",
+        "deleteSuccess": "Удаление успешно",
+        "printSendSuccess": "Печать и отправка успешны!",
+        "printSendFail": "Ошибка при печати и отправке!",
+
+        "detail":{
+          "basicInfo": "Основная информация",
+          "orderNumber": "Номер заказа",
+          "totalAmount": "Общая сумма",
+          "orderStatus": "Статус заказа",
+          "orderTime": "Время заказа",
+          "tableCodeForOrder": "Код стола для заказа",
+          "remarkInfo": "Информация о примечаниях",
+          "paymentInfo": "Информация об оплате",
+          "paymentAmount": "Сумма оплаты",
+          "paymentStatus": "Статус оплаты",
+          "deductionAmount": "Сумма скидки",
+          "paymentMethod": "Метод оплаты",
+          "paymentTime": "Время оплаты",
+          "usedCoupon": "Использованный купон",
+          "goodsInfo": "Информация о товаре",
+          "goodsID": "ID товара",
+          "image": "Изображение",
+          "name": "Название",
+          "specification": "Спецификация",
+          "price": "Цена",
+          "discountAmountForGoods": "Сумма скидки на товар",
+          "quantity": "Количество"
+        }
+      },
+
+      "currency":{
+        "currency": "Валюта",
+        "pleaseEnterCurrencyNameOrSymbol": "Пожалуйста, введите название или символ валюты",
+        "search": "Поиск",
+        "reset": "Сбросить",
+        "addNewCurrency": "Добавить новую валюту",
+        "ID": "ID",
+        "currencyName": "Название валюты",
+        "currencySymbol": "Символ валюты",
+        "createTime": "Время создания",
+        "operation": "Операция",
+        "modify": "Изменить",
+        "pleaseEnterCurrencyName": "Пожалуйста, введите название валюты",
+        "pleaseEnterCurrencySymbol": "Пожалуйста, введите символ валюты",
+        "confirm": "Подтвердить",
+        "cancel": "Отмена",
+        "currencyNameRequired": "Название валюты не может быть пустым",
+        "currencySymbolRequired": "Символ валюты не может быть пустым",
+        "enable": "Включить",
+        "disable": "Отключить",
+        "confirmChangeStatus": "Вы уверены, что хотите {action} магазин «{name}»?",
+        "statusChangeSuccess": "{action} успешно",
+        "modifySuccess": "Изменение прошло успешно",
+        "addSuccess": "Добавление прошло успешно",
+        "editCurrency": "Редактировать валюту"
+      },
+
+      "merchant": {
+        "merchantNumber": "Номер торговца",
+        "pleaseEnterMerchantNumber": "Пожалуйста, введите номер торговца",
+        "merchantName": "Название торговца",
+        "pleaseEnterMerchantName": "Пожалуйста, введите название торговца",
+        "status": "Статус",
+        "enabledKey": "A",
+        "enabled": "Включено",
+        "disabledKey": "N",
+        "disabled": "Отключено",
+        "search": "Поиск",
+        "reset": "Сбросить",
+        "addNewMerchant": "Добавить нового торговца",
+        "ID": "ID",
+        "contactPerson": "Контактное лицо",
+        "phoneNumber": "Номер телефона",
+        "address": "Адрес",
+        "createTime": "Время создания",
+        "operation": "Операция",
+        "modify": "Изменить",
+        "delete": "Удалить",
+        "pleaseEnterMerchantNumberTip": "Пожалуйста, введите номер торговца (5-30 символов), если не введен, будет сгенерирован автоматически",
+        "merchantType": "Тип торговца",
+        "pleaseSelectMerchantType": "Пожалуйста, выберите тип торговца",
+        "selectSuitableIndustryTip": "Подсказка: выберите подходящую отрасль",
+        "merchantLogo": "Логотип торговца",
+        "clickToModifyLogoTip": "Подсказка: кликните на изображение для изменения",
+        "pleaseEnterContactPersonName": "Пожалуйста, введите имя контактного лица",
+        "contactPhone": "Телефон для связи",
+        "pleaseEnterContactPhone": "Пожалуйста, введите телефон для связи",
+        "contactAddress": "Адрес для связи",
+        "pleaseEnterContactAddress": "Пожалуйста, введите адрес для связи",
+        "wxMiniAppId": "AppId мини-программы WeChat",
+        "pleaseEnterWxMiniAppIdTip": "Пожалуйста, введите AppId мини-программы WeChat (30-50 символов)",
+        "wxMiniAppSecret": "AppSecret мини-программы WeChat",
+        "pleaseEnterWxMiniAppSecretTip": "Пожалуйста, введите AppSecret мини-программы WeChat (30-50 символов)",
+        "wxOfficialAppId": "AppId официального аккаунта WeChat",
+        "wxOfficialAppSecret": "AppSecret официального аккаунта WeChat",
+        "remarkInfo": "Примечания",
+        "pleaseEnterContent": "Пожалуйста, введите содержание",
+        "enabledLabel": "A",
+        "disabledLabel": "N",
+        "confirm": "Подтвердить",
+        "cancel": "Отмена",
+        "merchantNumberRequired": "Номер торговца не может быть пустым",
+        "merchantNumberLengthRange": "Длина номера торговца должна быть от 5 до 30 символов",
+        "merchantNameRequired": "Название торговца не может быть пустым",
+        "merchantNameLengthRange": "Длина названия торговца должна быть от 2 до 50 символов",
+        "enable": "Включить",
+        "disable": "Отключить",
+        "confirmChangeStatus": "Вы уверены, что хотите {action} торговца «{name}»?",
+        "statusChangeSuccess": "{action} успешно",
+        "addNewMerchant": "Добавить нового торговца",
+        "modifySuccess": "Изменения успешно сохранены",
+        "addSuccess": "Успешно добавлено",
+        "editMerchant": "Редактировать торговца",
+        "confirmDelete": "Вы уверены, что хотите удалить элемент данных «{name}»?",
+        "deleteSuccess": "Удаление прошло успешно"
+      },
+
+      "storeList": {
+        "list": {
+          "storeName": "Название магазина",
+          "pleaseEnterStoreName": "Пожалуйста, введите название магазина",
+          "status": "Статус",
+          "enabledKey": "A",
+          "enabled": "Включено",
+          "disabledKey": "N",
+          "disabled": "Отключено",
+          "search": "Поиск",
+          "reset": "Сбросить",
+          "addNewStore": "Добавить новый магазин",
+          "ID": "ID",
+          "belongingMerchant": "Принадлежащий торговец",
+          "contactPerson": "Контактное лицо",
+          "phoneNumber": "Номер телефона",
+          "address": "Адрес",
+          "createTime": "Время создания",
+          "operation": "Операция",
+          "modify": "Изменить",
+          "delete": "Удалить",
+          "pleaseEnterStoreName": "Пожалуйста, введите название магазина",
+          "merchantLogo": "Логотип торговца",
+          "clickToModifyTip": "Подсказка: кликните на изображение для изменения",
+          "pleaseSelectBelongingMerchant": "Пожалуйста, выберите принадлежащего торговца",
+          "selectCurrency": "Выберите валюту",
+          "pleaseSelectCurrency": "Пожалуйста, выберите валюту",
+          "contactPersonName": "Имя контактного лица",
+          "pleaseEnterContactPersonName": "Пожалуйста, введите имя контактного лица",
+          "contactPersonPhone": "Телефон контактного лица",
+          "pleaseEnterContactPersonPhone": "Пожалуйста, введите телефон контактного лица",
+          "storeDetailedAddress": "Подробный адрес магазина",
+          "pleaseEnterStoreDetailedAddress": "Пожалуйста, введите подробный адрес магазина",
+          "businessHours": "Часы работы",
+          "pleaseEnterBusinessHours": "Пожалуйста, введите часы работы магазина",
+          "remarkInfo": "Примечания",
+          "pleaseEnterRemarkInfo": "Пожалуйста, введите содержание примечаний",
+          "enabledLabel": "A",
+          "disabledLabel": "N",
+          "confirm": "Подтвердить",
+          "cancel": "Отмена",
+          "storeNameRequired": "Название магазина не может быть пустым",
+          "storeNameLengthRange": "Длина названия магазина должна быть от 2 до 30 символов",
+          "belongingMerchantRequired": "Принадлежащий торговец не может быть пустым",
+          "contactPersonNameRequired": "Имя контактного лица не может быть пустым",
+          "contactPersonNameLengthRange": "Длина имени контактного лица должна быть от 2 до 30 символов",
+          "contactPersonPhoneRequired": "Телефон контактного лица не может быть пустым",
+          "contactPersonPhoneLengthRange": "Длина телефона контактного лица должна быть от 6 до 30 символов",
+          "currencyRequired": "Валюта не может быть пустой",
+          "enabled": "Включить",
+          "disabled": "Отключить",
+          "confirmChangeStatus": "Вы уверены, что хотите {action} магазин «{storeName}»?",
+          "statusChangeSuccess": "{action} успешно",
+          "addNewStore": "Добавить новый магазин",
+          "modifySuccess": "Изменения успешно сохранены",
+          "addSuccess": "Магазин успешно добавлен",
+          "editStore": "Редактировать магазин",
+          "confirmDelete": "Вы уверены, что хотите удалить элемент данных «{name}»?",
+          "deleteSuccess": "Удаление прошло успешно"
+        },
+        "info": {}
+      },
+
+      "tableManagement": {
+          "tableCode": "Код стола",
+          "pleaseEnterTableCode": "Пожалуйста, введите код стола",
+          "status": "Статус",
+          "enabledKey": "A",
+          "enabled": "Включено",
+          "disabledKey": "N",
+          "disabled": "Отключено",
+          "search": "Поиск",
+          "reset": "Сброс",
+          "addNewTableCode": "Добавить новый код стола",
+          "ID": "ID",
+          "tableEncoding": "Код стола",
+          "belongingStore": "Принадлежащий магазин",
+          "publicOwnership": "Общая собственность",
+          "createTime": "Время создания",
+          "operation": "Операция",
+          "modify": "Изменить",
+          "delete": "Удалить",
+          "pleaseEnterTableEncoding": "Пожалуйста, введите код стола, например: A01",
+          "pleaseSelectBelongingStore": "Пожалуйста, выберите принадлежащий магазин",
+          "remarkInfo": "Информация о замечаниях",
+          "pleaseEnterRemarkInfo": "Пожалуйста, введите содержание информации о замечаниях",
+          "sort": "Сортировка",
+          "sortTip": "Подсказка: чем меньше число, тем выше в рейтинге",
+          "enabledLabel": "A",
+          "disabledLabel": "N",
+          "confirm": "Подтвердить",
+          "cancel": "Отмена",
+          "tableCodeRequired": "Код стола не может быть пустым",
+          "tableCodeLengthRange": "Длина кода стола должна быть от 2 до 30 символов",
+          "belongingStoreRequired": "Принадлежащий магазин не может быть пустым",
+          "enable": "Включить",
+          "disable": "Отключить",
+          "confirmChangeTableStatus": "Вы уверены, что хотите {action} код стола “{tableCode}”?",
+          "statusChangeSuccess": "{action} успешно",
+          "addNewTableCode": "Добавить новый код стола",
+          "modifySuccess": "Изменения успешны",
+          "addSuccess": "Добавление успешно",
+          "editTableCode": "Редактировать код стола",
+          "confirmDeleteTableCode": "Вы уверены, что хотите удалить элемент данных “{tableCode}”?",
+          "deleteSuccess": "Удаление успешно"
+      },
+
+      "employee": {
+          "employeeCategory": "Категория сотрудника",
+          "selectEmployeeCategory": "Пожалуйста, выберите категорию сотрудника",
+          "name": "Имя",
+          "inputName": "Пожалуйста, введите имя",
+          "mobilePhone": "Мобильный телефон",
+          "inputMobilePhone": "Пожалуйста, введите мобильный телефон",
+          "status": "Статус",
+          "enabled": "Включено",
+          "disabled": "Отключено",
+          "search": "Поиск",
+          "reset": "Сброс",
+          "addEmployee": "Добавить сотрудника",
+          "id": "ID",
+          "category": "Категория",
+          "associatedMemberId": "Связанный ID члена",
+          "belongingStore": "Принадлежащий магазин",
+          "none": "Нет",
+          "createTime": "Время создания",
+          "updateTime": "Время обновления",
+          "operation": "Операция",
+          "modify": "Изменить",
+          "delete": "Удалить",
+          "selectBelongingStore": "Пожалуйста, выберите принадлежащий магазин",
+          "allStores": "Все магазины",
+          "remark": "Информация о замечаниях",
+          "inputContent": "Пожалуйста, введите содержание",
+          "confirm": "Подтвердить",
+          "cancel": "Отмена",
+          "nameRequired": "Имя не может быть пустым",
+          "nameLengthLimit": "Длина имени должна быть от 2 до 30 символов",
+          "mobileRequired": "Мобильный телефон не может быть пустым",
+          "mobileLengthLimit": "Длина мобильного телефона должна быть 11 символов",
+          "storeIdRequired": "Пожалуйста, выберите принадлежащий магазин",
+          "confirmStatusChange": "Вы уверены, что хотите {status} \"{name}\"?",
+          "statusChangeSuccess": "{status} успешно",
+          "addSuccess": "Добавление успешно",
+          "modifySuccess": "Изменения успешны",
+          "editEmployeeInfo": "Редактировать информацию о сотруднике",
+          "confirmDelete": "Вы уверены, что хотите удалить элемент данных \"{name}\"?",
+          "deleteSuccess": "Удаление успешно"
+      },
+
+      "ImageUpload": {
+        "pleaseUpload": "Пожалуйста, загрузите",
+        "fileSizeNotExceed": "Размер не должен превышать",
+        "fileFormat": "Формат",
+        "ofFile": "файла",
+        "fileFormatError": "Неверный формат файла, пожалуйста, загрузите",
+        "imageFormatFile": "файл изображения!",
+        "fileSizeExceed": "Размер загружаемого изображения не должен превышать",
+        "mb": "МБ!",
+        "uploadingImage": "Загрузка изображения, пожалуйста, подождите...",
+        "fileNumberExceed": "Количество загружаемых файлов не может превышать",
+        "ge": "шт!",
+        "uploadImageFailed": "Не удалось загрузить изображение, пожалуйста, повторите попытку"
+      },
+
+      "account": {
+        "basicInfo": "Основная информация",
+        "edit": "Редактировать",
+        "account": "Аккаунт",
+        "password": "Пароль",
+        "avatar": "Аватар",
+        "userInfo": "Информация о пользователе",
+        "save": "Сохранить",
+        "close": "Закрыть",
+        "pleaseInputPassword": "Пожалуйста, введите пароль",
+        "passwordFormat": "Пароль должен содержать минимум 6 символов или цифр",
+        "passwordChangeSuccess": "Пароль успешно изменен"
+      },
+
+      "goodList": {
+        "categoryName": "Название категории",
+        "pleaseEnterCategoryName": "Пожалуйста, введите название категории",
+        "belongingShop": "Принадлежащий магазин",
+        "publicCategory": "Публичная категория",
+        "categoryId": "ID категории",
+        "Name": "Название",
+        "image": "Изображение",
+        "creationTime": "Дата создания",
+        "updateTime": "Дата обновления",
+        "actions": "Действия",
+        "sortOrder": "Порядок сортировки",
+        "remarks": "Примечания",
+        "enable": "Включить",
+        "disable": "Отключить",
+        "tipOrder": "Подсказка: Чем меньше значение, тем выше в рейтинге",
+        "tipImage": "Подсказка: Нажмите на изображение для редактирования, рекомендуемый размер 128 x 128",
+        "publicAll": "Публичное все",
+        "enterRemarkContent": "Пожалуйста, введите содержание примечания",
+        "addProductCategory": "Добавить новую категорию товара",
+        "editProductCategory": "Редактировать категорию товара",
+        "confirmDelete": "Вы уверены, что хотите удалить?",
+        "onlyImageAllowed": "Можно загрузить только изображения!",
+        "imageSizeLimit": "Размер изображения не должен превышать 20 МБ!",
+        "addSuccess": "Добавлено успешно",
+        "modificationSuccess": "Изменено успешно",
+        "SaveSuccessful": "Сохранено успешно!",
+        "deleteSuccess": "Удалено успешно",
+        "confirm": "Подтвердить",
+        "cancel": "Отмена",
+        "modify": "Изменить",
+        "delete": "Удалить",
+        "status": "Статус",
+        "search": "Поиск",
+        "reset": "Сбросить",
+        "addNew": "Добавить новый",
+        "edit": "Редактировать",
+        "productName": "Название товара",
+        "productNamePlaceholder": "Пожалуйста, введите название товара",
+        "store": "Магазин",
+        "PublicGoods": "Публичные товары",
+        "productCategory": "Категория товара",
+        "selectCategory": "Пожалуйста, выберите категорию товара",
+        "productType": "Тип товара",
+        "selectProductType": "Пожалуйста, выберите тип товара",
+        "specificationType": "Тип спецификации",
+        "singleSpecification": "Одна спецификация",
+        "multipleSpecifications": "Несколько спецификаций",
+        "shelfStatus": "Статус на полке",
+        "putOnShelf": "Выставить на полку",
+        "removeFromShelf": "Снять с полки",
+        "stockStatus": "Статус наличия на складе",
+        "inStock": "Есть в наличии",
+        "outOfStock": "Нет в наличии",
+        "id": "ID",
+        "storeName": "Название магазина",
+        "mainImage": "Основное изображение",
+        "remainingStock": "Оставшийся запас",
+        "category": "Категория",
+        "price": "Цена",
+        "ProductStatus": "Статус товара",
+        "ProductImage": "Изображение товара",
+        "displaySorting": "Сортировка отображения",
+        "hintSmallerValueHigherRank": "Подсказка: Чем меньше значение, тем выше в рейтинге",
+        "basicInfo": "Основная информация",
+        "extendedInfo": "Дополнительная информация",
+        "productDescription": "Описание товара",
+        "ProductSpecifications": "Спецификации товара",
+        "InventoryQuantity": "Количество на складе",
+        "quantity": "Пожалуйста, введите количество на складе",
+        "commodityPrice": "Цена товара",
+        "goodsPrice": "Пожалуйста, введите цену товара",
+        "UnitYuan": "Единица: Юань",
+        "ProductWeight": "Вес товара",
+        "serviceDuration": "Продолжительность услуги",
+        "enterServiceDuration": "Пожалуйста, введите продолжительность услуги, единица: минута",
+        "serviceDurationTip": "Подсказка: Введите число, единица: минута",
+        "couponId": "ID купона",
+        "enterCouponId": "Пожалуйста, введите ID купонов для покупки, разделённые запятой, например: 1000,1001,1002",
+        "couponIdTip": "Подсказка: ID купонов для покупки, разделённые запятой",
+        "Batch": "Пакетная настройка",
+        "skuNo": "SKU код",
+        "randomGenerate": "Случайная генерация",
+        "linePrice": "Перечеркнутая цена",
+        "goodStock": "Запас товара",
+        "goodsWeight": "Вес товара",
+        "confirmSetting": "Подтвердить настройку",
+        "index": "Индекс",
+        "specifications": "Спецификации",
+        "skuCode": "SKU код",
+        "salesPrice": "Цена продажи (Юань)",
+        "originalPrice": "Перечеркнутая цена (Юань)",
+        "stock": "Запас товара",
+        "weight": "Вес (кг)",
+        "addSpec": "Добавить спецификацию",
+        "specName": "Название спецификации",
+        "specValue": "Значение спецификации",
+        "add": "Добавить",
+        "deleteSpec": "Удалить спецификацию",
+        "enterSpecName": "Пожалуйста, введите название спецификации",
+        "specNameRequired": "Название спецификации не может быть пустым",
+        "enterSpecValue": "Пожалуйста, введите значение спецификации",
+        "addSpecValue": "Добавить значение спецификации",
+        "specValueRequired": "Значение спецификации не может быть пустым",
+        "priceGreaterThanZero": "Цена товара должна быть больше 0!",
+        "linePriceGreaterThanZero": "Перечеркнутая цена товара должна быть больше или равна 0!",
+        "weightGreaterThanZero": "Вес товара должен быть больше или равен 0!",
+        "stockGreaterThanZero": "Запас товара должен быть больше или равен 0!",
+        "onlyImage": "Можно загружать только изображения!",
+        "sizeLimit": "Размер изображения не должен превышать 20 МБ!",
+        "submitProductInfo": "Пожалуйста, сначала отправьте основную информацию о товаре",
+        "skuLength": "Длина SKU кода товара должна быть больше 1, пожалуйста, внимательно проверьте!",
+        "inventory": "Запас товара должен быть больше или равен 0, пожалуйста, внимательно проверьте!",
+        "priceList": "Цена товара должна быть больше или равна 0, пожалуйста, внимательно проверьте!",
+        "deleteConfirm": "Вы уверены, что хотите удалить товар \"{name}\"?",
+        "statusChangeConfirm": "Вы уверены, что хотите изменить статус на {text} для \"{name}\"?",
+        "statusChangeSuccess": "{text} успешно",
+        "removeSkuConfirm": "Вы уверены, что хотите удалить это значение спецификации?",
+        "removeSkuRowConfirm": "Вы уверены, что хотите удалить эту спецификацию?",
+        "deleteGoods": "Вы уверены, что хотите удалить данные товара \"{name}\"?",
+        "confirmGoods": "Вы уверены, что хотите {text} товар \"{name}\"?",
+        "success": "{text} успешно"
+      },
+  "welcome": "Welcome",
+  "greeting": "Hello, {name}!",
+  "盼达点餐管理系统": "Система управления заказами Panda",
+  "Dashboard":"Дашборд ",
+  "订单管理": "Управление заказами",
+  "订单列表": "Список заказов",
+  "订单发货": "Отгрузка заказов",
+  "发起结算": "Начать расчет",
+  "结算确认": "Подтверждение расчета",
+  "订单修改": "Изменение заказа",
+  "订单删除": "Удаление заказа",
+  "处理售后": "Обработка售后服务",
+  "订单详情": "Детали заказа",
+  "商品管理": "Управление товарами",
+  "商品分类": "Классификация товаров",
+  "商品列表": "Список товаров",
+  "添加商品": "Добавить товар",
+  "编辑商品": "Редактировать товар",
+  "货币管理": "Управление валютами",
+  "货币列表": "Список валют",
+  "编辑": "Редактировать",
+  "新增": "Добавить новый",
+  "数据统计": "Статистика данных",
+  "收益管理": "Управление доходами",
+  "店铺管理": "Управление магазином",
+  "商户管理": "Управление-Merчантами",
+  "店铺列表": "Список магазинов",
+  "新增店铺": "Добавить новый магазин",
+  "员工管理": "Управление сотрудниками",
+  "桌码管理": "Управление номерами столиков",
+  "个人中心": "Персональный центр",
+  "账号管理": "Управление учетными записями",
+  "收银管理": "Управление кассиром",
+  "核销订单": "Анулировать заказ",
+  "收银设置": "Настройки кассира",
+  "收银台": "Кассовая стойка",
+  "系统管理": "Управление системой",
+  "后台日志": "Журнал бэкенда",
+  "后台菜单": "Меню бэкенда",
+  "新增菜单": "Добавить новый меню",
+  "修改菜单": "Редактировать меню",
+  "删除菜单": "Удалить меню",
+  "后台角色": "Роль бэкенда",
+  "新增角色": "Добавить новую роль",
+  "删除角色": "Удалить роль",
+  "修改角色": "Редактировать роль",
+  "生成代码": "Генерировать код",
+  "删除生成代码": "Удалить сгенерированный код",
+  "新增生成代码": "Добавить новый сгенерированный код",
+  "确定生成代码": "Подтвердить генерацию кода",
+  "后台管理员": "Администратор бэкенда",
+  "删除用户": "Удалить пользователя",
+  "新增用户": "Добавить нового пользователя",
+  "修改用户": "Редактировать пользователя",
+  "待支付": "Ожидается оплата",
+  "已支付": "Оплачен",
+  "已取消": "Отменено",
+  "待发货": "Ожидается отгрузка",
+  "已发货": "Отгружен",
+  "已收货": "Получено",
+  "已删除": "Удалено",
+  "已退款": "Возврат денег",
+  "home":"Домашняя страница"
+  }

+ 648 - 58
src/locales/sr.json

@@ -1,63 +1,653 @@
 {
+  "lang": "Кинези",
   "盼达点餐管理系统": "Система управљања нараштанима Panda",
   "Dashboard":"Дашборд ",
   "home":"Почетна страница",
   "订单管理": "Управљање нара什њима",
-    "订单列表": "Списак нара什њима",
-    "订单发货": "Иsporука нара什њима",
-    "发起结算": "Почећи саračун",
-    "结算确认": "Потврда сарачуна",
-    "订单修改": "Измена нара什њима",
-    "订单删除": "Брисање нара什њима",
-    "处理售后": "Решавanje послеprodажни сервис",
-    "订单详情": "Детаљи нара什њима",
-    "商品管理": "Управљање производима",
-    "商品分类": "Класификација производима",
-    "商品列表": "Списак производима",
-    "添加商品": "Додати производ",
-    "编辑商品": "Изменити производ",
-    "货币管理": "Управљање валутама",
-    "货币列表": "Списак валута",
-    "编辑": "Изменити",
-    "新增": "Додати нови",
-    "数据统计": "Статистика података",
-    "收益管理": "Управљање приходима",
-    "店铺管理": "Управљање магазином",
-    "商户管理": "Управљање тређим лICYностима",
-    "店铺列表": "Списак магазина",
-    "新增店铺": "Додати нови магазин",
-    "员工管理": "Управљање запосленим",
-    "桌码管理": "Управљање кодовима столика",
-    "个人中心": "Личен центар",
-    "账号管理": "Управљање рачунима",
-    "收银管理": "Управљање касером",
-    "核销订单": "Отказивати нара什њима",
-    "收银设置": "Поставке касера",
-    "收银台": "Касерска стола",
-    "系统管理": "Управљање системом",
-    "后台日志": "Журнал бекенда",
-    "后台菜单": "Меню бекенда",
-    "新增菜单": "Додати нови мени",
-    "修改菜单": "Изменити мени",
-    "删除菜单": "Брисање мени",
-    "后台角色": "Рола бекенда",
-    "新增角色": "Додати нови ролу",
-    "删除角色": "Брисање роле",
-    "修改角色": "Изменити ролу",
-    "生成代码": "Генерисати код",
-    "删除生成代码": "Брисање генератираног кода",
-    "新增生成代码": "Додати нови генератиран код",
-    "确定生成代码": "Потврдити генерацију кода",
-    "后台管理员": "Администратор бекенда",
-    "删除用户": "Брисање корисника",
-    "新增用户": "Додати нови корисник",
-    "修改用户": "Изменити корисника",
-    "待支付": "Очекује се плаћање",
-    "已支付": "Плаћено",
-    "已取消": "Отменjeno",
-    "待发货": "Очекује се испорука",
-    "已发货": "Испоручено",
-    "已收货": "Примиjeno",
-    "已删除": "Обрисано",
-    "已退款": "Враћено новца"
-}
+  "订单列表": "Списак нара什њима",
+  "订单发货": "Иsporука нара什њима",
+  "发起结算": "Почећи саračун",
+  "结算确认": "Потврда сарачуна",
+  "订单修改": "Измена нара什њима",
+  "订单删除": "Брисање нара什њима",
+  "处理售后": "Решавanje послеprodажни сервис",
+  "订单详情": "Детаљи нара什њима",
+  "商品管理": "Управљање производима",
+  "商品分类": "Класификација производима",
+  "商品列表": "Списак производима",
+  "添加商品": "Додати производ",
+  "编辑商品": "Изменити производ",
+  "货币管理": "Управљање валутама",
+  "货币列表": "Списак валута",
+  "编辑": "Изменити",
+  "新增": "Додати нови",
+  "数据统计": "Статистика података",
+  "收益管理": "Управљање приходима",
+  "店铺管理": "Управљање магазином",
+  "商户管理": "Управљање тређим лICYностима",
+  "店铺列表": "Списак магазина",
+  "新增店铺": "Додати нови магазин",
+  "员工管理": "Управљање запосленим",
+  "桌码管理": "Управљање кодовима столика",
+  "个人中心": "Личен центар",
+  "账号管理": "Управљање рачунима",
+  "收银管理": "Управљање касером",
+  "核销订单": "Отказивати нара什њима",
+  "收银设置": "Поставке касера",
+  "收银台": "Касерска стола",
+  "系统管理": "Управљање системом",
+  "后台日志": "Журнал бекенда",
+  "后台菜单": "Меню бекенда",
+  "新增菜单": "Додати нови мени",
+  "修改菜单": "Изменити мени",
+  "删除菜单": "Брисање мени",
+  "后台角色": "Рола бекенда",
+  "新增角色": "Додати нови ролу",
+  "删除角色": "Брисање роле",
+  "修改角色": "Изменити ролу",
+  "生成代码": "Генерисати код",
+  "删除生成代码": "Брисање генератираног кода",
+  "新增生成代码": "Додати нови генератиран код",
+  "确定生成代码": "Потврдити генерацију кода",
+  "后台管理员": "Администратор бекенда",
+  "删除用户": "Брисање корисника",
+  "新增用户": "Додати нови корисник",
+  "修改用户": "Изменити корисника",
+  "待支付": "Очекује се плаћање",
+  "已支付": "Плаћено",
+  "已取消": "Отменjeno",
+  "待发货": "Очекује се испорука",
+  "已发货": "Испоручено",
+  "已收货": "Примиjeno",
+  "已删除": "Обрисано",
+  "已退款": "Враћено новца",
+  "curency": "Renminbi",
+  "operational.overview": "Pregled operacija",
+  "today.revenue": "Dnevni prihod",
+  "welcome": "Dobrodošli",
+  "greeting": "Zdravo, {name}!",
+
+  "nav": {
+    "setLayout": "Postavke izgleda",
+    "logout": "Izloguj se",
+    "confirmLogoutMessage": "Da li ste sigurni da želite da se odjavite i izađete iz sistema?",
+    "prompt": "Obaveštenje",
+    "confirm": "Potvrdi",
+    "cancel": "Otkaži"
+  },
+
+  "login": {
+    "welcomeMessage": "Dobrodošli u {systemName}, vašeg malog pomoćnika za članove, uključujući kartice, prepaid kartice, kartice za posete i druge marketinške usluge!",
+    "usernamePlaceholder": "Korisničko ime",
+    "passwordPlaceholder": "Lozinka",
+    "captchaPlaceholder": "Unesite kod za verifikaciju",
+    "rememberPassword": "Zapamti lozinku",
+    "loginNow": "Prijavite se odmah",
+    "loggingIn": "Prijavljivanje...",
+    "copyrightMessage": "Copyright © {startYear}-{endYear} <a class=\"link\" href=\"{url}\">{url}</a> Sva prava zadržana.",
+    "usernameRequired": "Molimo unesite vaše korisničko ime",
+    "passwordRequired": "Molimo unesite vašu lozinku",
+    "captchaRequired": "Molimo unesite kod za verifikaciju"
+  },
+
+  "operational": {
+    "overview": "Pregled operacija",
+    "totalTransactionAmount": "Ukupna transakcijska suma (RMB)",
+    "commonFunctions": "Česte funkcije",
+    "orderManagement": "Upravljanje narudžbinama",
+    "goodsManagement": "Upravljanje robom",
+    "reportStatistics": "Statistika izveštaja",
+    "lastSevenDaysOrderCount": "Broj narudžbina u poslednjih 7 dana",
+    "orderStatistics": "Statistika narudžbina",
+    "incomeComparisonAmount": "Iznos poređenja prihoda",
+    "income": "Prihod",
+    "startTimePlaceholder": "Početno vreme",
+    "endTimePlaceholder": "Krajnje vreme",
+    "reset": "Resetuj",
+    "query": "Pretraga",
+    "lastThreeDays": "Poslednja 3 dana",
+    "lastSevenDays": "Poslednjih 7 dana",
+    "lastFifteenDays": "Poslednjih 15 dana",
+    "lastThirtyDays": "Poslednjih 30 dana",
+    "dataOverview": "Pregled podataka",
+    "orderCount": "Broj narudžbina",
+    "transactionAmount": "Transakcijska suma (RMB)",
+    "totalPayAmount": "Ukupna plaćena suma (RMB)",
+    "totalOrderCount": "Ukupni broj narudžbina",
+    "totalPayUserCount": "Ukupan broj korisnika koji su platili",
+    "operationTrend": "Trend operacija",
+    "dataRanking": "Rangiranje podataka",
+    "goodsSalesRanking": "Rangiranje prodaje proizvoda",
+    "userConsumptionRanking": "Rangiranje potrošnje korisnika",
+    "id": "ID",
+    "goodsName": "Naziv proizvoda",
+    "salesVolume": "Prodajna količina",
+    "salesAmount": "Iznos prodaje (RMB)",
+    "userName": "Korisničko ime",
+    "memberNumber": "Broj člana",
+    "consumptionAmount": "Iznos potrošnje (RMB)",
+    "chart1Title": "Broj narudžbina u poslednjih 7 dana",
+    "chart1Header": "Statistika narudžbina",
+    "chart2Title": "Izbor prihoda",
+    "chart2Header": "Prihod",
+    "lastSevenDaysOrderCount": "Broj narudžbina u poslednjih 7 dana",
+    "orderStatistics": "Statistika narudžbina",
+    "incomeTrendChart": "Grafikon trenda prihoda",
+    "memberStatistics": "Statistika članova"
+  },
+
+  "orderList":{
+     "orderNumber": "Broj narudžbine",
+      "pleaseEnterOrderNumber": "Unesite broj narudžbine",
+      "tableCode": "Kod stola",
+      "pleaseEnterTableCode": "Unesite kod stola",
+      "orderStatus": "Status narudžbine",
+      "pleaseSelectOrderStatus": "Molimo odaberite status narudžbine",
+      "paymentStatus": "Status plaćanja",
+      "orderTime": "Vreme narudžbine",
+      "startTime": "Početno vreme",
+      "endTime": "Završno vreme",
+      "query": "Pretraga",
+      "export": "Izvoz",
+      "reset": "Resetuj",
+      "orderID": "ID narudžbine",
+      "storeName": "Ime prodavnice",
+      "totalAmount": "Ukupni iznos",
+      "paymentAmount": "Iznos plaćanja",
+      "staffName": "Ime zaposlenog",
+      "updateTime": "Vreme ažuriranja",
+      "operation": "Operacija",
+      "modify": "Izmeni",
+      "viewDetails": "Pogledaj detalje",
+      "totalOrderAmount": "Ukupni iznos narudžbine",
+      "pleaseEnterTotalOrderAmount": "Unesite ukupni iznos narudžbine",
+      "discountAmount": "Iznos popusta",
+      "pleaseEnterDiscountAmount": "Unesite iznos popusta",
+      "orderRemark": "Napomena za narudžbinu",
+      "pleaseEnterOrderRemark": "Unesite napomenu za narudžbinu",
+      "confirm": "Potvrdi",
+      "cancel": "Otkaži",
+      "verifyOrder": "Verifikuj narudžbinu",
+      "verificationCode": "Kod verifikacije",
+      "pleaseEnterVerificationCode": "Unesite kod verifikacije narudžbine, dobijen iz detalja narudžbine sa korisničkog kraja",
+      "confirmVerification": "Potvrdi verifikaciju",
+      "fillLogisticsInfo": "Popunite informacije o logistici",
+      "logisticsCompany": "Logistička kompanija",
+      "pleaseEnterLogisticsCompany": "Unesite logističku kompaniju",
+      "logisticsTrackingNumber": "Broj praćenja pošiljke",
+      "pleaseEnterLogisticsTrackingNumber": "Unesite broj praćenja pošiljke",
+      "submitLogisticsInfo": "Pošaljite informacije o logistici",
+      "orderRefund": "Povrat novca za narudžbinu",
+      "paymentMethod": "Metoda plaćanja",
+      "actualPaymentAmount": "Stvarni iznos plaćanja",
+      "actualPaymentAmountForOrder": "Stvarni iznos plaćanja za narudžbinu",
+      "refundAmount": "Iznos povrata",
+      "pleaseEnterRefundAmount": "Unesite iznos povrata",
+      "tipUnitYuan": "(Napomena: Jedinica je u juanima)",
+      "refundRemark": "Napomena za povrat novca",
+      "pleaseEnterRefundRemark": "Unesite napomenu za povrat novca",
+      "totalAmountRequired": "Ukupni iznos je obavezan",
+      "verifyCodeRequired": "Kod verifikacije je obavezan",
+      "expressCompanyRequired": "Logistička kompanija je obavezna",
+      "expressNoRequired": "Broj pošiljke je obavezan",
+      "refundAmountRequired": "Iznos povrata je obavezan",
+      "correctRefundAmount": "Unesite ispravan iznos povrata",
+      "enable": "Omogući",
+      "disable": "Onemogući",
+      "confirmChangeOrderStatus": "Da li ste sigurni da želite da {action} narudžbinu sa brojem \"{orderSn}\"?",
+      "statusChangeSuccess": "{action} uspešno",
+      "verifySuccess": "Verifikacija uspešna!",
+      "modifySuccess": "Izmena uspešna!",
+      "modifyError": "Greška pri izmeni",
+      "modifyOrder": "Izmeni narudžbinu",
+      "requestProcessing": "Obrada zahteva...",
+      "submitExpressSuccess": "Uspešno poslata logistička informacija!",
+      "refundAmountExceed": "Iznos povrata ne može biti veći od ukupnog iznosa narudžbine!",
+      "submitRefundSuccess": "Uspešno poslat zahtev za povrat!",
+      "confirmDeleteOrder": "Da li ste sigurni da želite da obrišete podatke narudžbine sa brojem \"{orderSn}\"?",
+      "deleteSuccess": "Uspešno obrisano",
+      "printSendSuccess": "Uspešno poslata za štampanje!",
+      "printSendFail": "Greška pri slanju za štampanje!",
+
+      "detail": {
+        "basicInfo": "Osnovne informacije",
+        "orderNumber": "Broj narudžbine",
+        "totalAmount": "Ukupni iznos",
+        "orderStatus": "Status narudžbine",
+        "orderTime": "Vreme narudžbine",
+        "tableCodeForOrder": "Kod stola za narudžbinu",
+        "remarkInfo": "Informacije o napomenama",
+        "paymentInfo": "Informacije o plaćanju",
+        "paymentAmount": "Iznos plaćanja",
+        "paymentStatus": "Status plaćanja",
+        "deductionAmount": "Iznos popusta",
+        "paymentMethod": "Metoda plaćanja",
+        "paymentTime": "Vreme plaćanja",
+        "usedCoupon": "Korišćenje kupona",
+        "goodsInfo": "Informacije o proizvodima",
+        "goodsID": "ID proizvoda",
+        "image": "Slika",
+        "name": "Naziv",
+        "specification": "Specifikacija",
+        "price": "Cena",
+        "discountAmountForGoods": "Iznos popusta za proizvod",
+        "quantity": "Količina"
+      }
+
+  },
+
+  "currency": {
+    "currency": "Valuta",
+    "pleaseEnterCurrencyNameOrSymbol": "Unesite ime simbola/valute",
+    "search": "Pretraga",
+    "reset": "Resetuj",
+    "addNewCurrency": "Dodaj novu valutu",
+    "ID": "ID",
+    "currencyName": "Ime valute",
+    "currencySymbol": "Simbol valute",
+    "createTime": "Vreme kreiranja",
+    "operation": "Operacija",
+    "modify": "Izmeni",
+    "pleaseEnterCurrencyName": "Unesite ime valute",
+    "pleaseEnterCurrencySymbol": "Unesite simbol valute",
+    "confirm": "Potvrdi",
+    "cancel": "Otkaži",
+    "currencyNameRequired": "Ime valute ne može biti prazno",
+    "currencySymbolRequired": "Simbol valute ne može biti prazan",
+    "enable": "Omogući",
+    "disable": "Onemogući",
+    "confirmChangeStatus": "Da li ste sigurni da želite da {action} prodavnicu „{name}“?",
+    "statusChangeSuccess": "{action} uspešno",
+    "addNewCurrency": "Dodaj novu valutu",
+    "modifySuccess": "Izmena uspešna",
+    "addSuccess": "Dodavanje uspešno",
+    "editCurrency": "Izmeni valutu"
+  },
+
+  "merchant": {
+    "merchantNumber": "Broj trgovca",
+    "pleaseEnterMerchantNumber": "Unesite broj trgovca",
+    "merchantName": "Ime trgovca",
+    "pleaseEnterMerchantName": "Unesite ime trgovca",
+    "status": "Status",
+    "enabledKey": "A",
+    "enabled": "Omogući",
+    "disabledKey": "N",
+    "disabled": "Onemogući",
+    "search": "Pretraga",
+    "reset": "Resetuj",
+    "addNewMerchant": "Dodaj novog trgovca",
+    "ID": "ID",
+    "contactPerson": "Kontakt osoba",
+    "phoneNumber": "Broj telefona",
+    "address": "Adresa",
+    "createTime": "Vreme kreiranja",
+    "operation": "Operacija",
+    "modify": "Izmeni",
+    "delete": "Obriši",
+    "merchantNumber": "Broj trgovca",
+    "pleaseEnterMerchantNumberTip": "Unesite broj trgovca, 5 - 30 karaktera, ako nije uneto, sistem će automatski generisati",
+    "merchantType": "Tip trgovca",
+    "pleaseSelectMerchantType": "Izaberite tip trgovca",
+    "selectSuitableIndustryTip": "Napomena: izaberite odgovarajuću industriju",
+    "merchantName": "Ime trgovca",
+    "pleaseEnterMerchantName": "Unesite ime trgovca",
+    "merchantLogo": "Logo trgovca",
+    "clickToModifyLogoTip": "(Napomena: kliknite na sliku da biste izmenili)",
+    "contactPerson": "Kontakt osoba",
+    "pleaseEnterContactPersonName": "Unesite ime kontakt osobe",
+    "contactPhone": "Kontakt telefon",
+    "pleaseEnterContactPhone": "Unesite kontakt telefon",
+    "contactAddress": "Kontakt adresa",
+    "pleaseEnterContactAddress": "Unesite kontakt adresu",
+    "wxMiniAppId": "WeChat mini program appId",
+    "pleaseEnterWxMiniAppIdTip": "Unesite WeChat mini program appId, 30 - 50 karaktera",
+    "wxMiniAppSecret": "WeChat mini program appSecret",
+    "pleaseEnterWxMiniAppSecretTip": "Unesite WeChat mini program appSecret, 30 - 50 karaktera",
+    "wxOfficialAppId": "WeChat zvanični appId",
+    "wxOfficialAppSecret": "WeChat zvanični appSecret",
+    "remarkInfo": "Napomena",
+    "pleaseEnterContent": "Unesite sadržaj",
+    "status": "Status",
+    "enabledKey": "A",
+    "enabledLabel": "A",
+    "enabled": "Omogući",
+    "disabledKey": "N",
+    "disabledLabel": "N",
+    "disabled": "Onemogući",
+    "confirm": "Potvrdi",
+    "cancel": "Otkaži",
+    "merchantNumberRequired": "Broj trgovca ne može biti prazan",
+    "merchantNumberLengthRange": "Dužina broja trgovca mora biti između 5 i 30 karaktera",
+    "merchantNameRequired": "Ime trgovca ne može biti prazno",
+    "merchantNameLengthRange": "Dužina imena trgovca mora biti između 2 i 50 karaktera",
+    "enable": "Omogući",
+    "disable": "Onemogući",
+    "confirmChangeStatus": "Da li ste sigurni da želite {action} trgovca „{name}“?",
+    "statusChangeSuccess": "{action} uspešno",
+    "addNewMerchant": "Dodaj novog trgovca",
+    "modifySuccess": "Izmena uspešna",
+    "addSuccess": "Dodavanje uspešno",
+    "editMerchant": "Izmeni trgovca",
+    "confirmDelete": "Da li ste sigurni da želite da obrišete stavku „{name}“?",
+    "deleteSuccess": "Brisanje uspešno"
+  },
+
+  "storeList": {
+    "list": {
+      "storeName": "Ime prodavnice",
+      "pleaseEnterStoreName": "Unesite ime prodavnice",
+      "status": "Status",
+      "enabledKey": "A",
+      "enabled": "Omogući",
+      "disabledKey": "N",
+      "disabled": "Onemogući",
+      "search": "Pretraga",
+      "reset": "Resetuj",
+      "addNewStore": "Dodaj novu prodavnicu",
+      "ID": "ID",
+      "belongingMerchant": "Pripadajući trgovac",
+      "contactPerson": "Kontakt osoba",
+      "phoneNumber": "Broj telefona",
+      "address": "Adresa",
+      "createTime": "Vreme kreiranja",
+      "operation": "Operacija",
+      "modify": "Izmeni",
+      "delete": "Obriši",
+      "storeName": "Ime prodavnice",
+      "pleaseEnterStoreName": "Unesite ime prodavnice",
+      "merchantLogo": "Logo trgovca",
+      "clickToModifyTip": "(Napomena: kliknite na sliku da biste izmenili)",
+      "belongingMerchant": "Pripadajući trgovac",
+      "pleaseSelectBelongingMerchant": "Izaberite pripadajućeg trgovca",
+      "selectCurrency": "Izaberite valutu",
+      "pleaseSelectCurrency": "Izaberite valutu",
+      "contactPersonName": "Ime kontakt osobe",
+      "pleaseEnterContactPersonName": "Unesite ime kontakt osobe",
+      "contactPersonPhone": "Telefon kontakt osobe",
+      "pleaseEnterContactPersonPhone": "Unesite telefon kontakt osobe",
+      "storeDetailedAddress": "Detaljna adresa prodavnice",
+      "pleaseEnterStoreDetailedAddress": "Unesite detaljnu adresu prodavnice",
+      "businessHours": "Radno vreme",
+      "pleaseEnterBusinessHours": "Unesite radno vreme prodavnice",
+      "remarkInfo": "Napomena",
+      "pleaseEnterRemarkInfo": "Unesite sadržaj napomene",
+      "status": "Status",
+      "enabledKey": "A",
+      "enabledLabel": "A",
+      "enabled": "Omogući",
+      "disabledKey": "N",
+      "disabledLabel": "N",
+      "disabled": "Onemogući",
+      "confirm": "Potvrdi",
+      "cancel": "Otkaži",
+      "storeNameRequired": "Ime prodavnice ne može biti prazno",
+      "storeNameLengthRange": "Dužina imena prodavnice mora biti između 2 i 30 karaktera",
+      "belongingMerchantRequired": "Pripadajući trgovac ne može biti prazan",
+      "contactPersonNameRequired": "Ime kontakt osobe ne može biti prazno",
+      "contactPersonNameLengthRange": "Dužina imena kontakt osobe mora biti između 2 i 30 karaktera",
+      "contactPersonPhoneRequired": "Telefon kontakt osobe ne može biti prazan",
+      "contactPersonPhoneLengthRange": "Dužina telefona kontakt osobe mora biti između 6 i 30 karaktera",
+      "currencyRequired": "Valuta ne može biti prazna",
+      "enabled": "Omogući",
+      "disabled": "Onemogući",
+      "confirmChangeStatus": "Da li ste sigurni da želite {action} prodavnicu „{storeName}“?",
+      "statusChangeSuccess": "{action} uspešno",
+      "addNewStore": "Dodaj novu prodavnicu",
+      "modifySuccess": "Izmena uspešna",
+      "addSuccess": "Dodavanje uspešno",
+      "editStore": "Izmeni prodavnicu",
+      "confirmDelete": "Da li ste sigurni da želite da obrišete stavku „{name}“?",
+      "deleteSuccess": "Brisanje uspešno"
+    },
+    "info": {}
+  },
+
+  "tableManagement": {
+    "tableCode": "Kod stola",
+    "pleaseEnterTableCode": "Unesite kod stola",
+    "status": "Status",
+    "enabledKey": "A",
+    "enabled": "Omogući",
+    "disabledKey": "N",
+    "disabled": "Onemogući",
+    "search": "Pretraga",
+    "reset": "Resetuj",
+    "addNewTableCode": "Dodaj novi kod stola",
+    "ID": "ID",
+    "tableEncoding": "Kod stola",
+    "belongingStore": "Pripadajuća prodavnica",
+    "publicOwnership": "Javna svojina",
+    "createTime": "Vreme kreiranja",
+    "operation": "Operacija",
+    "modify": "Izmeni",
+    "delete": "Obriši",
+    "tableEncoding": "Kod stola",
+    "pleaseEnterTableEncoding": "Unesite kod stola, npr: A01",
+    "belongingStore": "Pripadajuća prodavnica",
+    "pleaseSelectBelongingStore": "Izaberite pripadajuću prodavnicu",
+    "remarkInfo": "Napomena",
+    "pleaseEnterRemarkInfo": "Unesite sadržaj napomene",
+    "sort": "Sortiranje",
+    "sortTip": "Napomena: što je manja vrednost, veća pozicija na listi",
+    "status": "Status",
+    "enabledKey": "A",
+    "enabledLabel": "A",
+    "enabled": "Omogući",
+    "disabledKey": "N",
+    "disabledLabel": "N",
+    "disabled": "Onemogući",
+    "confirm": "Potvrdi",
+    "cancel": "Otkaži",
+    "tableCodeRequired": "Kod stola ne može biti prazan",
+    "tableCodeLengthRange": "Dužina koda stola mora biti između 2 i 30 karaktera",
+    "belongingStoreRequired": "Pripadajuća prodavnica ne može biti prazna",
+    "enable": "Omogući",
+    "disable": "Onemogući",
+    "confirmChangeTableStatus": "Da li ste sigurni da želite da {action} kod stola „{tableCode}”?",
+    "statusChangeSuccess": "{action} uspešno",
+    "addNewTableCode": "Dodaj novi kod stola",
+    "modifySuccess": "Izmena uspešna",
+    "addSuccess": "Dodavanje uspešno",
+    "editTableCode": "Izmeni kod stola",
+    "confirmDeleteTableCode": "Da li ste sigurni da želite da obrišete stavku „{tableCode}”?",
+    "deleteSuccess": "Brisanje uspešno"
+  },
+
+  "employee": {
+    "employeeCategory": "Kategorija zaposlenog",
+    "selectEmployeeCategory": "Izaberite kategoriju zaposlenog",
+    "name": "Ime",
+    "inputName": "Unesite ime",
+    "mobilePhone": "Mobilni telefon",
+    "inputMobilePhone": "Unesite mobilni telefon",
+    "status": "Status",
+    "enabled": "Omogući",
+    "disabled": "Onemogući",
+    "search": "Pretraga",
+    "reset": "Resetuj",
+    "addEmployee": "Dodaj zaposlenog",
+    "id": "ID",
+    "category": "Kategorija",
+    "associatedMemberId": "Povezani član ID",
+    "belongingStore": "Pripadajuća prodavnica",
+    "none": "Nema",
+    "createTime": "Vreme kreiranja",
+    "updateTime": "Vreme ažuriranja",
+    "operation": "Operacija",
+    "modify": "Izmeni",
+    "delete": "Obriši",
+    "selectBelongingStore": "Izaberite pripadajuću prodavnicu",
+    "allStores": "Sve prodavnice",
+    "remark": "Napomena",
+    "inputContent": "Unesite sadržaj",
+    "confirm": "Potvrdi",
+    "cancel": "Otkaži",
+    "nameRequired": "Ime ne može biti prazno",
+    "nameLengthLimit": "Dužina imena mora biti između 2 i 30 karaktera",
+    "mobileRequired": "Mobilni telefon ne može biti prazan",
+    "mobileLengthLimit": "Dužina mobilnog telefona mora biti 11 karaktera",
+    "storeIdRequired": "Izaberite pripadajuću prodavnicu",
+    "confirmStatusChange": "Da li ste sigurni da želite da {status} \"{name}\"?",
+    "statusChangeSuccess": "{status} uspešno",
+    "addSuccess": "Dodavanje uspešno",
+    "modifySuccess": "Izmena uspešna",
+    "editEmployeeInfo": "Izmeni podatke o zaposlenom",
+    "confirmDelete": "Da li ste sigurni da želite da obrišete stavku \"{name}\"?",
+    "deleteSuccess": "Brisanje uspešno"
+  },
+
+  "ImageUpload": {
+    "pleaseUpload": "Molimo vas da otpremite",
+    "fileSizeNotExceed": "Veličina ne sme da prelazi",
+    "fileFormat": "Format treba da bude",
+    "ofFile": "fajl",
+    "fileFormatError": "Format fajla nije ispravan, molimo vas da otpremite",
+    "imageFormatFile": "sliku u formatu!",
+    "fileSizeExceed": "Veličina otpremljene slike ne sme da prelazi",
+    "mb": "MB!",
+    "uploadingImage": "Slika se otprema, molimo sačekajte...",
+    "fileNumberExceed": "Broj otpremljenih fajlova ne sme da prelazi",
+    "ge": "kom!",
+    "uploadImageFailed": "Otprema slike nije uspela, molimo pokušajte ponovo"
+  },
+
+  "account": {
+    "basicInfo": "Osnovne informacije",
+    "edit": "Izmeni",
+    "account": "Nalog",
+    "password": "Lozinka",
+    "avatar": "Avatar",
+    "userInfo": "Korisničke informacije",
+    "save": "Spasi",
+    "close": "Zatvori",
+    "pleaseInputPassword": "Unesite lozinku",
+    "passwordFormat": "Lozinka mora sadržati najmanje 6 slova ili brojeva",
+    "passwordChangeSuccess": "Lozinka je uspešno promenjena"
+  },
+
+  "goodList": {
+    "categoryName": "Naziv kategorije",
+    "pleaseEnterCategoryName": "Unesite naziv kategorije",
+    "belongingShop": "Pripadajuća prodavnica",
+    "publicCategory": "Javna kategorija",
+    "categoryId": "ID kategorije",
+    "Name": "Naziv",
+    "image": "Slika",
+    "creationTime": "Vreme kreiranja",
+    "updateTime": "Vreme ažuriranja",
+    "actions": "Akcije",
+    "sortOrder": "Redosled sortiranja",
+    "remarks": "Napomene",
+    "enable": "Omogući",
+    "disable": "Onemogući",
+    "tipOrder": "Napomena: Što je manja vrednost, to je rang viši",
+    "tipImage": "Napomena: Kliknite na sliku da biste je izmenili, preporučene dimenzije: 128 x 128",
+    "publicAll": "Javno sve",
+    "enterRemarkContent": "Unesite sadržaj napomene",
+    "addProductCategory": "Dodaj novu kategoriju proizvoda",
+    "editProductCategory": "Izmeni kategoriju proizvoda",
+    "confirmDelete": "Da li ste sigurni da želite da obrišete?",
+    "onlyImageAllowed": "Podaci mogu sadržavati samo slike!",
+    "imageSizeLimit": "Veličina slike ne sme biti veća od 20MB!",
+    "addSuccess": "Uspešno dodato",
+    "modificationSuccess": "Uspešno izmenjeno",
+    "SaveSuccessful": "Uspešno sačuvano!",
+    "deleteSuccess": "Uspešno obrisano",
+    "confirm": "Potvrdi",
+    "cancel": "Otkaži",
+    "modify": "Izmeni",
+    "delete": "Obriši",
+    "status": "Status",
+    "search": "Pretraži",
+    "reset": "Resetuj",
+    "addNew": "Dodaj novo",
+    "edit": "Izmeni",
+    "productName": "Naziv proizvoda",
+    "productNamePlaceholder": "Unesite naziv proizvoda",
+    "store": "Pripadajuća prodavnica",
+    "PublicGoods": "Javni proizvodi",
+    "productCategory": "Kategorija proizvoda",
+    "selectCategory": "Izaberite kategoriju proizvoda",
+    "productType": "Tip proizvoda",
+    "selectProductType": "Izaberite tip proizvoda",
+    "specificationType": "Tip specifikacije",
+    "singleSpecification": "Jedna specifikacija",
+    "multipleSpecifications": "Više specifikacija",
+    "shelfStatus": "Status na polici",
+    "putOnShelf": "Stavi na policu",
+    "removeFromShelf": "Ukloni sa police",
+    "stockStatus": "Status zaliha",
+    "inStock": "Na skladištu",
+    "outOfStock": "Nema na skladištu",
+    "id": "ID",
+    "storeName": "Naziv prodavnice",
+    "mainImage": "Glavna slika",
+    "remainingStock": "Preostale zalihe",
+    "category": "Kategorija",
+    "price": "Cena",
+    "ProductStatus": "Status proizvoda",
+    "ProductImage": "Slika proizvoda",
+    "displaySorting": "Prikazivanje sortiranosti",
+    "hintSmallerValueHigherRank": "Napomena: Što je manja vrednost, to je rang viši",
+    "basicInfo": "Osnovne informacije",
+    "extendedInfo": "Proširene informacije",
+    "productDescription": "Opis proizvoda",
+    "ProductSpecifications": "Specifikacije proizvoda",
+    "InventoryQuantity": "Količina u skladištu",
+    "quantity": "Unesite količinu u skladištu",
+    "commodityPrice": "Cena proizvoda",
+    "goodsPrice": "Unesite cenu proizvoda",
+    "UnitYuan": "Jedinca: Yuan",
+    "ProductWeight": "Težina proizvoda",
+    "serviceDuration": "Trajanje usluge",
+    "enterServiceDuration": "Unesite trajanje usluge, u minutima",
+    "serviceDurationTip": "Napomena: Unesite broj, jedinica: minut",
+    "couponId": "ID kupona",
+    "enterCouponId": "Unesite ID kupona koji ste kupili, odvojite sa zapetama, npr: 1000,1001,1002",
+    "couponIdTip": "Napomena: ID kupona, odvojite sa zapetama",
+    "Batch": "Serijsko podešavanje",
+    "skuNo": "SKU kod",
+    "randomGenerate": "Generiši nasumično",
+    "linePrice": "Precrtana cena",
+    "goodStock": "Zalihe proizvoda",
+    "goodsWeight": "Težina proizvoda",
+    "confirmSetting": "Potvrdi podešavanja",
+    "index": "Redni broj",
+    "specifications": "Specifikacije",
+    "skuCode": "SKU kod",
+    "salesPrice": "Cena prodaje (Yuan)",
+    "originalPrice": "Originalna cena (Yuan)",
+    "stock": "Zalihe proizvoda",
+    "weight": "Težina (kilogrami)",
+    "addSpec": "Dodaj specifikaciju",
+    "specName": "Naziv specifikacije",
+    "specValue": "Vrednost specifikacije",
+    "add": "Dodaj",
+    "deleteSpec": "Obriši specifikaciju",
+    "enterSpecName": "Unesite naziv specifikacije",
+    "specNameRequired": "Naziv specifikacije je obavezan",
+    "enterSpecValue": "Unesite vrednost specifikacije",
+    "addSpecValue": "Dodaj vrednost specifikacije",
+    "specValueRequired": "Vrednost specifikacije je obavezna",
+    "priceGreaterThanZero": "Cena proizvoda mora biti veća od 0!",
+    "linePriceGreaterThanZero": "Precrtana cena mora biti veća ili jednaka 0!",
+    "weightGreaterThanZero": "Težina proizvoda mora biti veća ili jednaka 0!",
+    "stockGreaterThanZero": "Zalihe proizvoda moraju biti veće ili jednake 0!",
+    "onlyImage": "Moguće je postaviti samo slike!",
+    "sizeLimit": "Veličina slike ne sme biti veća od 20MB!",
+    "submitProductInfo": "Prvo pošaljite osnovne informacije o proizvodu",
+    "skuLength": "Dužina SKU koda proizvoda mora biti veća od 1, proverite ponovo!",
+    "inventory": "Zalihe proizvoda moraju biti veće ili jednake 0, proverite ponovo!",
+    "priceList": "Cena proizvoda mora biti veća ili jednaka 0, proverite ponovo!",
+    "deleteConfirm": "Da li ste sigurni da želite da obrišete proizvod \"{name}\"?",
+    "statusChangeConfirm": "Da li ste sigurni da želite da {text}\"{name}\"?",
+    "statusChangeSuccess": "{text} uspešno",
+    "removeSkuConfirm": "Da li ste sigurni da želite da obrišete ovu vrednost specifikacije?",
+    "removeSkuRowConfirm": "Da li ste sigurni da želite da obrišete ovu specifikaciju?",
+    "deleteGoods": "Da li ste sigurni da želite da obrišete podatke o proizvodu \"{name}\"?",
+    "confirmGoods": "Da li ste sigurni da želite da {text}\"{name}\"?",
+    "success": "{text} uspešno"
+  }
+
+}

+ 126 - 0
src/locales/zh.json

@@ -3,6 +3,7 @@
   "curency": "人民币",
   "home":"首页",
   "盼达点餐管理系统": "盼达点餐管理系统",
+
   "nav":{
     "setLayout": "布局设置",
     "logout": "退出登录",
@@ -466,6 +467,131 @@
     "passwordFormat": "密码至少由6个字母或数字",
     "passwordChangeSuccess": "密码修改成功"
   },
+
+  "goodList":{
+    "categoryName": "分类名称",
+    "pleaseEnterCategoryName": "请输入分类名称",
+    "belongingShop": "所属店铺",
+    "publicCategory": "公共分类",
+    "categoryId": "分类ID",
+    "Name": "名称",
+    "image": "图片",
+    "creationTime": "创建时间",
+    "updateTime": "更新时间",
+    "actions": "操作",
+    "sortOrder": "排序",
+    "remarks": "备注信息",
+    "enable": "启用",
+    "disable": "禁用",
+    "tipOrder": "提示:数值越小,排行越靠前",
+    "tipImage": "提示:点击图片修改,建议尺寸,128 x 128",
+    "publicAll": "公共所有",
+    "enterRemarkContent": "请输入备注内容",
+    "addProductCategory": "新增商品分类",
+    "editProductCategory": "编辑商品分类",
+    "confirmDelete": "是否确认删除",
+    "onlyImageAllowed": "数据项 只能上传图片文件!",
+    "imageSizeLimit": "上传图片大小不能超过 20MB!",
+    "addSuccess": "新增成功",
+    "modificationSuccess": "修改成功",
+    "SaveSuccessful":"保存成功!",
+    "deleteSuccess": "删除成功",
+    "confirm": "确定",
+    "cancel": "取消",
+    "modify": "修改",
+    "delete": "删除",
+    "status": "状态",
+    "search": "搜索",
+    "reset": "重置",
+    "addNew": "新增",
+    "edit":"编辑",
+    "productName": "商品名称",
+    "productNamePlaceholder": "请输入商品名称",
+    "store": "所属店铺",
+    "PublicGoods": "公共商品",
+    "productCategory": "商品分类",
+    "selectCategory": "请选择商品分类",
+    "productType": "商品类型",
+    "selectProductType": "请选择商品类型",
+    "specificationType": "规格类型",
+    "singleSpecification": "单规格",
+    "multipleSpecifications": "多规格",
+    "shelfStatus": "上架状态",
+    "putOnShelf":"上架",
+    "removeFromShelf": "下架",
+    "stockStatus": "库存状态",
+    "inStock": "有库存",
+    "outOfStock": "无库存",
+    "id": "ID",
+    "storeName": "所属店铺",
+    "mainImage": "主图",
+    "remainingStock": "剩余库存",
+    "category": "所属分类",
+    "price": "价格",
+    "ProductStatus":"商品状态",
+    "ProductImage":"商品图片",
+    "displaySorting": "显示排序",
+    "hintSmallerValueHigherRank":"提示:数值越小,排行越靠前",
+    "basicInfo": "基础信息",
+    "extendedInfo": "扩展信息",
+    "productDescription": "商品介绍",
+    "ProductSpecifications":"商品规格",
+    "InventoryQuantity":"库存数量",
+    "quantity":"请输入库存数量",
+    "commodityPrice":"商品价格",
+    "goodsPrice":"请输入商品价格",
+    "UnitYuan":"单位:元",
+    "ProductWeight":"商品重量",
+    "serviceDuration": "服务时长",
+    "enterServiceDuration": "请输入服务时长,单位:分钟",
+    "serviceDurationTip": "提示:输入数字,单位:分钟",
+    "couponId": "卡券ID",
+    "enterCouponId": "请输入购买的卡券ID,英文逗号分隔,如:1000,1001,1002",
+    "couponIdTip": "提示:购买的卡券ID,英文逗号分隔",
+    "Batch": "批量设置",
+    "skuNo": "SKU编码",
+    "randomGenerate": "随机生成",
+    "linePrice": "划线价格",
+    "goodStock": "商品库存",
+    "goodsWeight": "商品重量",
+    "confirmSetting": "确认设置",
+    "index": "序号",
+    "specifications": "规格",
+    "skuCode": "SKU编码",
+    "salesPrice": "销售价格(元)",
+    "originalPrice": "划线价格(元)",
+    "stock": "商品库存",
+    "weight": "重量(千克)",
+
+    "addSpec": "添加规格",
+    "specName": "规格名",
+    "specValue": "规格值",
+    "add": "添加",
+    "deleteSpec": "删除规格",
+    "enterSpecName": "请输入规格名称",
+    "specNameRequired": "规格名称不能为空",
+    "enterSpecValue": "请输入规格值",
+    "addSpecValue": "添加规格值",
+    "specValueRequired": "规格值不能为空",
+    "priceGreaterThanZero": "商品价格须大于0!",
+    "linePriceGreaterThanZero": "商品划线价格须大于等于0!",
+    "weightGreaterThanZero": "商品重量须大于等于0!",
+    "stockGreaterThanZero": "商品库存须大于等于0!",
+    "onlyImage": "只能上传图片文件!",
+    "sizeLimit": "上传图片大小不能超过 20MB!",
+    "submitProductInfo": "请先提交商品基础信息",
+    "skuLength": "商品sku编码长度需大于1,请仔细核对!",
+    "inventory": "商品库存须大于等于0,请仔细核对!",
+    "priceList": "商品价格须大于等于0,请仔细核对!",
+    "deleteConfirm": "是否确认删除商品\"{name}\"?",
+    "statusChangeConfirm": "确认要{text}\"{name}\"吗?",
+    "statusChangeSuccess": "{text}成功",
+    "removeSkuConfirm": "确认删除该规格值吗?",
+    "removeSkuRowConfirm": "确认删除该规格吗?",
+    "deleteGoods": "是否确认删除\"{name}\"的数据项?",
+    "confirmGoods": "确认要{text}\"{name}\"吗?",
+    "success": "{text}成功"
+  },
   "Dashboard":"系统首页",
   "订单管理": "订单管理",
   "订单列表": "订单列表",

+ 4 - 4
src/views/goods/cate/index.vue

@@ -363,14 +363,14 @@ export default {
     },
     // 状态修改
     handleStatusChange(row) {
-      let text = row.status == 'A' ? '启用' : '禁用'
+      let text = row.status == 'A' ? this.$t('goodList.enable') : this.$t('goodList.disable')
       this.$modal
-        .confirm('确认要' + text + '"' + row.name + '"吗?')
+        .confirm(this.$t('goodList.confirmGoods', { text: text, name: row.name }))  
         .then(function () {
           return updateGoodsCateStatus(row.id, row.status)
         })
         .then(() => {
-          this.$modal.msgSuccess(text + '成功')
+          this.$modal.msgSuccess(this.$t('goodList.success', { text: text }))  
         })
         .catch(function () {
           row.status = row.status === 'N' ? 'A' : 'N'
@@ -450,7 +450,7 @@ export default {
     handleDelete(row) {
       const name = row.name
       this.$modal
-        .confirm('是否确认删除"' + name + '"的数据项?')
+        .confirm(this.$t('goodList.deleteGoods', { name: name }))
         .then(function () {
           return updateGoodsCateStatus(row.id, 'D')
         })

+ 6 - 6
src/views/goods/components/Sku.vue

@@ -206,7 +206,7 @@ export default {
     // 删除规格行
     removeSkuRow(i) {
       const app = this
-      app.$modal.confirm('确认删除该规格吗?').then(function() {
+      app.$modal.confirm(this.$t('skuList.removeSkuRowConfirm')).then(function() {
           deleteSpec({ goodsId: app.goodsId, specName: app.skuData.attrList[i].name }).then(response => {
               app.skuData.attrList.splice(i, 1);
               app.$emit("skuChange", app.skuData);
@@ -216,7 +216,7 @@ export default {
     // 删除规格属性值
     removeSkuAttr(a, b) {
       const app = this
-      app.$modal.confirm('确认删除该规格值吗?').then(function() {
+      app.$modal.confirm(this.$t('skuList.removeSkuConfirm')).then(function() {
           deleteSpecValue({ id: app.skuData.attrList[a].child[b].id }).then(response => {
               app.skuData.attrList[a].child.splice(b, 1);
               app.$emit("skuChange", app.skuData);
@@ -253,7 +253,7 @@ export default {
              if (app.batch.price > 0) {
                  skuInfo.price = app.batch.price;
              } else {
-                 app.$modal.alert("商品价格须大于0!");
+              app.$modal.alert(this.$t('goodList.priceGreaterThanZero'));
                  return false;
              }
          }
@@ -261,7 +261,7 @@ export default {
              if (app.batch.linePrice >= 0) {
                  skuInfo.linePrice = app.batch.linePrice;
              } else {
-                 app.$modal.alert("商品划线价格须大于等于0!");
+              app.$modal.alert(this.$t('goodList.linePriceGreaterThanZero'));
                  return false;
              }
          }
@@ -269,7 +269,7 @@ export default {
              if (app.batch.weight >= 0) {
                  skuInfo.weight = app.batch.weight;
              } else {
-                 app.$modal.alert("商品重量须大于等于0!");
+                 app.$modal.alert(this.$t('goodList.weightGreaterThanZero'));
                  return false;
              }
          }
@@ -277,7 +277,7 @@ export default {
              if (app.batch.stock >= 0) {
                  skuInfo.stock = app.batch.stock;
              } else {
-                 app.$modal.alert("商品库存须大于等于0!");
+                 app.$modal.alert(this.$t('goodList.stockGreaterThanZero'));
                  return false;
              }
          }

+ 7 - 7
src/views/goods/goods/goodsForm.vue

@@ -489,7 +489,7 @@ export default {
         })
       } else if (app.activeTab == 'extend') {
         if (!app.extendForm.goodsId) {
-          app.$modal.msgError('请先提交商品基础信息')
+          app.$modal.msgError(this.$t('goodList.submitProductInfo'))
           app.activeTab = 'base'
           return false
         }
@@ -510,15 +510,15 @@ export default {
             }
           })
           if (!isValid1) {
-            app.$modal.alert('商品sku编码长度需大于1,请仔细核对!')
+            app.$modal.alert(this.$t('goodList.skuLength'))  
             return false
           }
           if (!isValid1) {
-            app.$modal.alert('商品库存须大于等于0,请仔细核对!')
+            app.$modal.alert(this.$t('goodList.inventory'))  
             return false
           }
           if (!isValid2) {
-            app.$modal.alert('商品价格须大于等于0,请仔细核对!')
+            app.$modal.alert(this.$t('goodList.price'))  
             return false
           }
         }
@@ -535,7 +535,7 @@ export default {
         })
       } else {
         if (!app.detailForm.goodsId) {
-          app.$modal.msgError('请先提交商品基础信息')
+          app.$modal.msgError(this.$t('goodList.submitProductInfo'))
           app.activeTab = 'base'
           return false
         }
@@ -558,11 +558,11 @@ export default {
       console.log(file.size)
 
       if (!isImage) {
-        this.$message.error('只能上传图片文件!')
+        this.$message.error(this.$t('goodList.onlyImage'))
       }
 
       if (!isLt2M) {
-        this.$message.error('上传图片大小不能超过 20MB!')
+        this.$message.error(this.$t('goodList.sizeLimit'))
       }
 
       return isImage && isLt2M // 返回 true 则允许上传,返回 false 则阻止上传

+ 6 - 4
src/views/goods/goods/index.vue

@@ -329,14 +329,16 @@ export default {
     },
     // 状态修改
     handleStatusChange(row) {
-      let text = row.status == 'A' ? '上架' : '下架'
+      let text = row.status == 'A' ? this.$t('goodList.putOnShelf') : this.$t('goodList.removeFromShelf')
       this.$modal
-        .confirm('确认要' + text + '"' + row.name + '"吗?')
+        // .confirm('确认要' + text + '"' + row.name + '"吗?')
+        .confirm(this.$t('goodList.statusChangeConfirm', { text: text, name: row.name }))
         .then(function () {
           return updateGoodsStatus(row.id, row.status)
         })
         .then(() => {
-          this.$modal.msgSuccess(text + '成功')
+          // this.$modal.msgSuccess(text + '成功')
+          this.$modal.msgSuccess(this.$t('goodList.statusChangeSuccess', { text: text }))  
         })
         .catch(function () {
           row.status = row.status === 'N' ? 'A' : 'N'
@@ -365,7 +367,7 @@ export default {
     handleDelete(row) {
       const name = row.name
       this.$modal
-        .confirm('是否确认删除商品"' + name + '"?')
+        .confirm(this.$t('goodList.deleteConfirm', { name: name }))
         .then(function () {
           return updateGoodsStatus(row.id, 'D')
         })