- 实现用户登录注册功能并添加路由守卫 - 将Element UI菜单替换为自定义导航菜单样式 - 添加多语言用户相关文本资源 - 重构订单确认页面货币转换逻辑 - 实现支付成功/取消页面返回商品详情功能 - 在商品管理页面添加用户信息入口 - 调整API请求添加ERP接口认证机制 - 优化移动端导航菜单适配样式
1361 lines
55 KiB
JavaScript
1361 lines
55 KiB
JavaScript
/**
|
||
* 静态翻译文本(不依赖后端API)
|
||
* 根据国家/货币代码预定义的翻译文本
|
||
*/
|
||
|
||
// 中文(默认)
|
||
const zh = {
|
||
// 订单创建页
|
||
order: {
|
||
fillOrderInfo: '填写订单信息',
|
||
productInfo: '商品信息',
|
||
customerInfo: '客户信息',
|
||
shippingAddress: '收货地址',
|
||
customerName: '客户姓名',
|
||
customerPhone: '客户电话',
|
||
customerEmail: '客户邮箱',
|
||
shippingName: '收货人姓名',
|
||
shippingPhone: '收货人电话',
|
||
shippingCountry: '收货国家',
|
||
addressLine1: '详细地址1',
|
||
addressLine2: '详细地址2',
|
||
state: '州/省',
|
||
city: '城市',
|
||
cityTown: '城市/城镇',
|
||
postcode: '邮编',
|
||
postcodeHint: '邮编为{0}位数字',
|
||
remark: '订单备注',
|
||
submit: '提交订单',
|
||
back: '返回',
|
||
pleaseEnter: '请输入',
|
||
optional: '可选',
|
||
required: '必填',
|
||
addressFormat: '地址格式',
|
||
phoneCode: '国际区号',
|
||
mustMatchId: '需与证件一致,支持当地语言+英文',
|
||
subtotal: '小计',
|
||
// 验证错误消息
|
||
validationRequired: '请输入{0}',
|
||
validationInvalidPhone: '请输入有效的电话号码',
|
||
validationInvalidEmail: '请输入有效的邮箱地址',
|
||
validationSelectCountry: '请选择收货国家',
|
||
validationPostcodeFormat: '邮编格式不正确,应为{0}位数字',
|
||
validationFillComplete: '请填写完整信息',
|
||
validationProductMissing: '商品信息缺失,请重新选择商品',
|
||
validationOrderCreateFailed: '创建订单失败',
|
||
validationOrderCreateRetry: '创建订单失败,请稍后重试',
|
||
validationProductParseFailed: '商品信息解析失败',
|
||
validationProductInfoMissing: '缺少商品信息',
|
||
validationOrderCreateSuccess: '订单创建成功',
|
||
// 特殊地址字段
|
||
blockNumber: '组屋号',
|
||
unitNumber: '单元号',
|
||
barangay: '社区编号',
|
||
addressThai: '泰文地址',
|
||
province: '省',
|
||
district: '市/郡',
|
||
ward: '区/坊',
|
||
stateMalaysia: '州属',
|
||
administrativeArea: '区(Tambon)',
|
||
floorUnit: '楼层/单元/代收点',
|
||
street: '街道地址',
|
||
// 占位符文本
|
||
placeholderAddressLine1: '请输入门牌号、街道、楼栋',
|
||
placeholderAddressLine2: '请输入楼层、单元号(可选)',
|
||
placeholderBlockNumber: '例如:Blk 123',
|
||
placeholderUnitNumber: '例如:#01-234',
|
||
placeholderBarangay: '请输入社区编号',
|
||
placeholderAddressThai: '请输入泰文地址(支持双语)',
|
||
placeholderProvince: '请输入省',
|
||
placeholderDistrict: '请输入市/郡',
|
||
placeholderWard: '请输入区/坊',
|
||
placeholderStateMalaysia: '例如:Selangor(雪兰莪)',
|
||
placeholderAdministrativeArea: '请输入区(Tambon)',
|
||
placeholderFloorUnit: '楼层、单元号或代收点信息(可选)',
|
||
placeholderStreet: '请输入详细街道地址',
|
||
placeholderCity: '请输入城市/城镇',
|
||
placeholderPostcode: '请输入邮编',
|
||
placeholderRemark: '请输入订单备注(可选)',
|
||
// 国家特定占位符
|
||
placeholderCityTH: '请输入县 (Amphoe)',
|
||
placeholderStateTH: '府 (Changwat)',
|
||
placeholderStatePH: '省 (Province)',
|
||
placeholderStateOptional: '州/省(可选)',
|
||
placeholderProvinceVN: '请输入省 (Tỉnh)',
|
||
placeholderDistrictVN: '请输入市/郡 (Thành phố/Huyện)',
|
||
placeholderWardVN: '请输入区/坊 (Quận/Phường)'
|
||
},
|
||
// 商品详情页
|
||
product: {
|
||
selectCurrency: '选择货币和语言',
|
||
selectSku: '选择商品规格(SKU)',
|
||
currentPrice: '现价',
|
||
quantity: '数量',
|
||
stock: '库存',
|
||
buyNow: '立即购买',
|
||
productDetails: '商品详情',
|
||
specifications: '规格参数',
|
||
outOfStock: '缺货',
|
||
confirmPurchase: '确认购买',
|
||
cancel: '取消',
|
||
unitPrice: '单价',
|
||
total: '总计',
|
||
confirmPurchaseInfo: '确认购买信息',
|
||
sku: 'SKU',
|
||
noSkuAvailable: '暂无可用SKU',
|
||
selectSkuForPrice: '请选择SKU查看价格',
|
||
selectSku: '请选择SKU',
|
||
sevenDayReturn: '7天无理由退货',
|
||
authenticGuarantee: '正品保证',
|
||
expeditedShipping: '极速发货',
|
||
imageLoadFailed: '图片加载失败',
|
||
noProductDetails: '暂无商品详情',
|
||
selectSkuForSpecs: '请先选择SKU查看规格参数',
|
||
skuCode: 'SKU编码',
|
||
price: '价格',
|
||
weight: '重量',
|
||
size: '尺寸'
|
||
},
|
||
// 订单确认页
|
||
confirm: {
|
||
orderInfo: '订单信息',
|
||
orderNo: '订单号',
|
||
orderStatus: '订单状态',
|
||
paymentStatus: '支付状态',
|
||
payNow: '立即支付',
|
||
orderAmount: '订单金额',
|
||
productName: '商品名称',
|
||
skuName: 'SKU名称',
|
||
quantity: '购买数量',
|
||
unitPrice: '单价',
|
||
createTime: '创建时间',
|
||
recipient: '收货人',
|
||
recipientPhone: '收货电话',
|
||
shippingAddress: '收货地址',
|
||
orderRemark: '订单备注',
|
||
back: '返回',
|
||
orderNotFound: '订单不存在',
|
||
notFilled: '未填写',
|
||
addressLine1: '详细地址1',
|
||
addressLine2: '详细地址2',
|
||
addressIncomplete: '地址信息不完整',
|
||
postcodeLabel: '邮编',
|
||
// 货币转换提示
|
||
willPayIn: '您将以{0}支付',
|
||
actualCost: '实际费用',
|
||
approximately: '约',
|
||
exchangeRate: '汇率',
|
||
rateLockedAt: '汇率锁定时间',
|
||
// 订单状态文本
|
||
statusPending: '待支付',
|
||
statusPaid: '已支付',
|
||
statusShipped: '已发货',
|
||
statusCompleted: '已完成',
|
||
statusCancelled: '已取消',
|
||
// 货币名称
|
||
currencyUSD: '美元',
|
||
currencyEUR: '欧元',
|
||
currencyGBP: '英镑',
|
||
currencyCNY: '人民币',
|
||
currencyMYR: '马来西亚林吉特',
|
||
currencyVND: '越南盾',
|
||
currencyJPY: '日元',
|
||
currencyKRW: '韩元',
|
||
currencyTHB: '泰铢',
|
||
currencySGD: '新加坡元',
|
||
currencyHKD: '港币',
|
||
currencyPHP: '菲律宾比索'
|
||
},
|
||
// 用户相关
|
||
user: {
|
||
login: '登录',
|
||
register: '注册',
|
||
logout: '退出登录',
|
||
username: '账号',
|
||
password: '密码',
|
||
nickName: '用户名称',
|
||
phone: '手机号',
|
||
email: '邮箱',
|
||
storeCode: '店铺号',
|
||
loginTitle: '用户登录',
|
||
registerTitle: '用户注册',
|
||
loginSuccess: '登录成功',
|
||
registerSuccess: '注册成功',
|
||
logoutSuccess: '退出登录成功',
|
||
usernameRequired: '请输入账号',
|
||
passwordRequired: '请输入密码',
|
||
storeCodeRequired: '请输入店铺号',
|
||
usernamePlaceholder: '请输入账号(3-50个字符)',
|
||
passwordPlaceholder: '请输入密码(6-20个字符)',
|
||
nickNamePlaceholder: '请输入用户名称(可选)',
|
||
phonePlaceholder: '请输入手机号(可选)',
|
||
emailPlaceholder: '请输入邮箱(可选)',
|
||
storeCodePlaceholder: '请输入店铺号',
|
||
usernameInvalid: '账号只能包含字母、数字和下划线',
|
||
passwordInvalid: '密码长度必须在6-20个字符之间',
|
||
phoneInvalid: '手机号格式不正确',
|
||
emailInvalid: '邮箱格式不正确',
|
||
noAccount: '还没有账号?',
|
||
hasAccount: '已有账号?',
|
||
goRegister: '立即注册',
|
||
goLogin: '立即登录',
|
||
rememberMe: '记住我',
|
||
forgotPassword: '忘记密码?',
|
||
userInfo: '用户信息',
|
||
welcome: '欢迎',
|
||
lastLoginTime: '最后登录时间',
|
||
lastLoginIp: '最后登录IP'
|
||
}
|
||
}
|
||
|
||
// 英语
|
||
const en = {
|
||
order: {
|
||
fillOrderInfo: 'Fill Order Information',
|
||
productInfo: 'Product Information',
|
||
customerInfo: 'Customer Information',
|
||
shippingAddress: 'Shipping Address',
|
||
customerName: 'Customer Name',
|
||
customerPhone: 'Customer Phone',
|
||
customerEmail: 'Customer Email',
|
||
shippingName: 'Recipient Name',
|
||
shippingPhone: 'Recipient Phone',
|
||
shippingCountry: 'Shipping Country',
|
||
addressLine1: 'Address Line 1',
|
||
addressLine2: 'Address Line 2',
|
||
state: 'State/Province',
|
||
city: 'City',
|
||
cityTown: 'City/Town',
|
||
postcode: 'Postal Code',
|
||
postcodeHint: 'Postal code is {0} digits',
|
||
remark: 'Order Remarks',
|
||
submit: 'Submit Order',
|
||
back: 'Back',
|
||
pleaseEnter: 'Please enter',
|
||
optional: 'Optional',
|
||
required: 'Required',
|
||
addressFormat: 'Address Format',
|
||
phoneCode: 'Phone Code',
|
||
mustMatchId: 'Must match ID, supports local language + English',
|
||
// 特殊地址字段
|
||
blockNumber: 'Block Number',
|
||
unitNumber: 'Unit Number',
|
||
barangay: 'Barangay',
|
||
addressThai: 'Thai Address',
|
||
province: 'Province',
|
||
district: 'District',
|
||
ward: 'Ward',
|
||
stateMalaysia: 'State',
|
||
administrativeArea: 'Administrative Area (Tambon)',
|
||
floorUnit: 'Floor/Unit/Collection Point',
|
||
street: 'Street Address',
|
||
// 占位符文本
|
||
placeholderAddressLine1: 'Please enter house number, street, building',
|
||
placeholderAddressLine2: 'Please enter floor, unit number (optional)',
|
||
placeholderBlockNumber: 'e.g.: Blk 123',
|
||
placeholderUnitNumber: 'e.g.: #01-234',
|
||
placeholderBarangay: 'Please enter Barangay',
|
||
placeholderAddressThai: 'Please enter Thai address (bilingual supported)',
|
||
placeholderProvince: 'Please enter province',
|
||
placeholderDistrict: 'Please enter district',
|
||
placeholderWard: 'Please enter ward',
|
||
placeholderStateMalaysia: 'e.g.: Selangor',
|
||
placeholderAdministrativeArea: 'Please enter administrative area (Tambon)',
|
||
placeholderFloorUnit: 'Floor, unit number or collection point information (optional)',
|
||
placeholderStreet: 'Please enter detailed street address',
|
||
placeholderCity: 'Please enter city/town',
|
||
placeholderPostcode: 'Please enter postal code',
|
||
placeholderRemark: 'Please enter order remarks (optional)',
|
||
// 国家特定占位符
|
||
placeholderCityTH: 'Please enter district (Amphoe)',
|
||
placeholderStateTH: 'Province (Changwat)',
|
||
placeholderStatePH: 'Province',
|
||
placeholderStateOptional: 'State/Province (optional)',
|
||
placeholderProvinceVN: 'Please enter province (Tỉnh)',
|
||
placeholderDistrictVN: 'Please enter city/district (Thành phố/Huyện)',
|
||
placeholderWardVN: 'Please enter ward (Quận/Phường)',
|
||
subtotal: 'Subtotal',
|
||
// 验证错误消息
|
||
validationRequired: 'Please enter {0}',
|
||
validationInvalidPhone: 'Please enter a valid phone number',
|
||
validationInvalidEmail: 'Please enter a valid email address',
|
||
validationSelectCountry: 'Please select shipping country',
|
||
validationPostcodeFormat: 'Postcode format is incorrect, should be {0} digits',
|
||
validationFillComplete: 'Please fill in complete information',
|
||
validationProductMissing: 'Product information is missing, please reselect product',
|
||
validationOrderCreateFailed: 'Failed to create order',
|
||
validationOrderCreateRetry: 'Failed to create order, please try again later',
|
||
validationProductParseFailed: 'Failed to parse product information',
|
||
validationProductInfoMissing: 'Product information is missing',
|
||
validationOrderCreateSuccess: 'Order created successfully'
|
||
},
|
||
product: {
|
||
selectCurrency: 'Select Currency and Language',
|
||
selectSku: 'Select Product Specification (SKU)',
|
||
currentPrice: 'Current Price',
|
||
quantity: 'Quantity',
|
||
stock: 'Stock',
|
||
buyNow: 'Buy Now',
|
||
productDetails: 'Product Details',
|
||
specifications: 'Specifications',
|
||
outOfStock: 'Out of Stock',
|
||
confirmPurchase: 'Confirm Purchase',
|
||
cancel: 'Cancel',
|
||
unitPrice: 'Unit Price',
|
||
total: 'Total',
|
||
confirmPurchaseInfo: 'Confirm Purchase Information',
|
||
sku: 'SKU',
|
||
noSkuAvailable: 'No SKU Available',
|
||
selectSkuForPrice: 'Please select SKU to view price',
|
||
selectSku: 'Please select SKU',
|
||
sevenDayReturn: '7-Day Return Policy',
|
||
authenticGuarantee: 'Authentic Guarantee',
|
||
expeditedShipping: 'Fast Shipping',
|
||
imageLoadFailed: 'Image Load Failed',
|
||
noProductDetails: 'No Product Details',
|
||
selectSkuForSpecs: 'Please select SKU to view specifications',
|
||
skuCode: 'SKU Code',
|
||
price: 'Price',
|
||
weight: 'Weight',
|
||
size: 'Size'
|
||
},
|
||
confirm: {
|
||
orderInfo: 'Order Information',
|
||
orderNo: 'Order Number',
|
||
orderStatus: 'Order Status',
|
||
paymentStatus: 'Payment Status',
|
||
payNow: 'Pay Now',
|
||
orderAmount: 'Order Amount',
|
||
productName: 'Product Name',
|
||
skuName: 'SKU Name',
|
||
quantity: 'Quantity',
|
||
unitPrice: 'Unit Price',
|
||
createTime: 'Creation Time',
|
||
recipient: 'Recipient',
|
||
recipientPhone: 'Recipient Phone',
|
||
shippingAddress: 'Shipping Address',
|
||
orderRemark: 'Order Remarks',
|
||
back: 'Back',
|
||
orderNotFound: 'Order not found',
|
||
notFilled: 'Not filled',
|
||
addressLine1: 'Address Line 1',
|
||
addressLine2: 'Address Line 2',
|
||
addressIncomplete: 'Address information incomplete',
|
||
postcodeLabel: 'Postcode',
|
||
// 货币转换提示
|
||
willPayIn: 'You will pay in {0}',
|
||
actualCost: 'Actual Cost',
|
||
approximately: 'Approximately',
|
||
exchangeRate: 'Exchange Rate',
|
||
rateLockedAt: 'Rate Locked At',
|
||
// 订单状态文本
|
||
statusPending: 'Pending Payment',
|
||
statusPaid: 'Paid',
|
||
statusShipped: 'Shipped',
|
||
statusCompleted: 'Completed',
|
||
statusCancelled: 'Cancelled',
|
||
// 货币名称
|
||
currencyUSD: 'US Dollar',
|
||
currencyEUR: 'Euro',
|
||
currencyGBP: 'British Pound',
|
||
currencyCNY: 'Chinese Yuan',
|
||
currencyMYR: 'Malaysian Ringgit',
|
||
currencyVND: 'Vietnamese Dong',
|
||
currencyJPY: 'Japanese Yen',
|
||
currencyKRW: 'South Korean Won',
|
||
currencyTHB: 'Thai Baht',
|
||
currencySGD: 'Singapore Dollar',
|
||
currencyHKD: 'Hong Kong Dollar',
|
||
currencyPHP: 'Philippine Peso'
|
||
},
|
||
// 用户相关
|
||
user: {
|
||
login: 'Login',
|
||
register: 'Register',
|
||
logout: 'Logout',
|
||
username: 'Username',
|
||
password: 'Password',
|
||
nickName: 'Nick Name',
|
||
phone: 'Phone',
|
||
email: 'Email',
|
||
storeCode: 'Store Code',
|
||
loginTitle: 'User Login',
|
||
registerTitle: 'User Register',
|
||
loginSuccess: 'Login successful',
|
||
registerSuccess: 'Registration successful',
|
||
logoutSuccess: 'Logout successful',
|
||
usernameRequired: 'Please enter username',
|
||
passwordRequired: 'Please enter password',
|
||
storeCodeRequired: 'Please enter store code',
|
||
usernamePlaceholder: 'Please enter username (3-50 characters)',
|
||
passwordPlaceholder: 'Please enter password (6-20 characters)',
|
||
nickNamePlaceholder: 'Please enter nick name (optional)',
|
||
phonePlaceholder: 'Please enter phone number (optional)',
|
||
emailPlaceholder: 'Please enter email (optional)',
|
||
storeCodePlaceholder: 'Please enter store code',
|
||
usernameInvalid: 'Username can only contain letters, numbers and underscores',
|
||
passwordInvalid: 'Password length must be between 6-20 characters',
|
||
phoneInvalid: 'Invalid phone number format',
|
||
emailInvalid: 'Invalid email format',
|
||
noAccount: 'No account yet?',
|
||
hasAccount: 'Already have an account?',
|
||
goRegister: 'Register now',
|
||
goLogin: 'Login now',
|
||
rememberMe: 'Remember me',
|
||
forgotPassword: 'Forgot password?',
|
||
userInfo: 'User Information',
|
||
welcome: 'Welcome',
|
||
lastLoginTime: 'Last Login Time',
|
||
lastLoginIp: 'Last Login IP'
|
||
}
|
||
}
|
||
|
||
// 马来语(马来西亚)
|
||
const may = {
|
||
order: {
|
||
fillOrderInfo: 'Isi Maklumat Pesanan',
|
||
productInfo: 'Maklumat Produk',
|
||
customerInfo: 'Maklumat Pelanggan',
|
||
shippingAddress: 'Alamat Penghantaran',
|
||
customerName: 'Nama Pelanggan',
|
||
customerPhone: 'Telefon Pelanggan',
|
||
customerEmail: 'E-mel Pelanggan',
|
||
shippingName: 'Nama Penerima',
|
||
shippingPhone: 'Telefon Penerima',
|
||
shippingCountry: 'Negara Penghantaran',
|
||
addressLine1: 'Alamat Baris 1',
|
||
addressLine2: 'Alamat Baris 2',
|
||
state: 'Negeri',
|
||
city: 'Bandar',
|
||
cityTown: 'Bandar/Pekan',
|
||
postcode: 'Poskod',
|
||
postcodeHint: 'Poskod adalah {0} digit',
|
||
remark: 'Catatan Pesanan',
|
||
submit: 'Hantar Pesanan',
|
||
back: 'Kembali',
|
||
pleaseEnter: 'Sila masukkan',
|
||
optional: 'Pilihan',
|
||
required: 'Diperlukan',
|
||
addressFormat: 'Format Alamat',
|
||
phoneCode: 'Kod Telefon',
|
||
mustMatchId: 'Mesti sepadan dengan ID, menyokong bahasa tempatan + Inggeris',
|
||
// 特殊地址字段
|
||
blockNumber: 'Nombor Blok',
|
||
unitNumber: 'Nombor Unit',
|
||
barangay: 'Barangay',
|
||
addressThai: 'Alamat Thai',
|
||
province: 'Wilayah',
|
||
district: 'Daerah',
|
||
ward: 'Ward',
|
||
stateMalaysia: 'Negeri',
|
||
administrativeArea: 'Kawasan Pentadbiran (Tambon)',
|
||
floorUnit: 'Tingkat/Unit/Titik Kumpulan',
|
||
street: 'Alamat Jalan',
|
||
// 占位符文本
|
||
placeholderAddressLine1: 'Sila masukkan nombor rumah, jalan, bangunan',
|
||
placeholderAddressLine2: 'Sila masukkan tingkat, nombor unit (pilihan)',
|
||
placeholderBlockNumber: 'Contoh: Blk 123',
|
||
placeholderUnitNumber: 'Contoh: #01-234',
|
||
placeholderBarangay: 'Sila masukkan Barangay',
|
||
placeholderAddressThai: 'Sila masukkan alamat Thai (dua bahasa disokong)',
|
||
placeholderProvince: 'Sila masukkan wilayah',
|
||
placeholderDistrict: 'Sila masukkan daerah',
|
||
placeholderWard: 'Sila masukkan ward',
|
||
placeholderStateMalaysia: 'Contoh: Selangor',
|
||
placeholderAdministrativeArea: 'Sila masukkan kawasan pentadbiran (Tambon)',
|
||
placeholderFloorUnit: 'Maklumat tingkat, nombor unit atau titik kumpulan (pilihan)',
|
||
placeholderStreet: 'Sila masukkan alamat jalan terperinci',
|
||
placeholderCity: 'Sila masukkan bandar/pekan',
|
||
placeholderPostcode: 'Sila masukkan poskod',
|
||
placeholderRemark: 'Sila masukkan catatan pesanan (pilihan)',
|
||
// 国家特定占位符
|
||
placeholderCityTH: 'Sila masukkan daerah (Amphoe)',
|
||
placeholderStateTH: 'Wilayah (Changwat)',
|
||
placeholderStatePH: 'Wilayah',
|
||
placeholderStateOptional: 'Negeri/Wilayah (pilihan)',
|
||
placeholderProvinceVN: 'Sila masukkan wilayah (Tỉnh)',
|
||
placeholderDistrictVN: 'Sila masukkan bandar/daerah (Thành phố/Huyện)',
|
||
placeholderWardVN: 'Sila masukkan ward (Quận/Phường)',
|
||
subtotal: 'Jumlah Kecil',
|
||
// 验证错误消息
|
||
validationRequired: 'Sila masukkan {0}',
|
||
validationInvalidPhone: 'Sila masukkan nombor telefon yang sah',
|
||
validationInvalidEmail: 'Sila masukkan alamat e-mel yang sah',
|
||
validationSelectCountry: 'Sila pilih negara penghantaran',
|
||
validationPostcodeFormat: 'Format poskod tidak betul, mestilah {0} digit',
|
||
validationFillComplete: 'Sila isi maklumat lengkap',
|
||
validationProductMissing: 'Maklumat produk hilang, sila pilih semula produk',
|
||
validationOrderCreateFailed: 'Gagal membuat pesanan',
|
||
validationOrderCreateRetry: 'Gagal membuat pesanan, sila cuba lagi kemudian',
|
||
validationProductParseFailed: 'Gagal menguraikan maklumat produk',
|
||
validationProductInfoMissing: 'Maklumat produk hilang',
|
||
validationOrderCreateSuccess: 'Pesanan berjaya dibuat'
|
||
},
|
||
product: {
|
||
selectCurrency: 'Pilih Mata Wang dan Bahasa',
|
||
selectSku: 'Pilih Spesifikasi Produk (SKU)',
|
||
currentPrice: 'Harga Semasa',
|
||
quantity: 'Kuantiti',
|
||
stock: 'Stok',
|
||
buyNow: 'Beli Sekarang',
|
||
productDetails: 'Butiran Produk',
|
||
specifications: 'Spesifikasi',
|
||
outOfStock: 'Kehabisan Stok',
|
||
confirmPurchase: 'Sahkan Pembelian',
|
||
cancel: 'Batal',
|
||
unitPrice: 'Harga Unit',
|
||
total: 'Jumlah',
|
||
confirmPurchaseInfo: 'Sahkan Maklumat Pembelian',
|
||
sku: 'SKU',
|
||
noSkuAvailable: 'Tiada SKU Tersedia',
|
||
selectSkuForPrice: 'Sila pilih SKU untuk melihat harga',
|
||
selectSku: 'Sila pilih SKU',
|
||
sevenDayReturn: 'Polisi Pulangan 7 Hari',
|
||
authenticGuarantee: 'Jaminan Asli',
|
||
expeditedShipping: 'Penghantaran Pantas',
|
||
imageLoadFailed: 'Gagal Memuatkan Imej',
|
||
noProductDetails: 'Tiada Butiran Produk',
|
||
selectSkuForSpecs: 'Sila pilih SKU untuk melihat spesifikasi',
|
||
skuCode: 'Kod SKU',
|
||
price: 'Harga',
|
||
weight: 'Berat',
|
||
size: 'Saiz'
|
||
},
|
||
confirm: {
|
||
orderInfo: 'Maklumat Pesanan',
|
||
orderNo: 'Nombor Pesanan',
|
||
orderStatus: 'Status Pesanan',
|
||
paymentStatus: 'Status Pembayaran',
|
||
payNow: 'Bayar Sekarang',
|
||
orderAmount: 'Jumlah Pesanan',
|
||
productName: 'Nama Produk',
|
||
skuName: 'Nama SKU',
|
||
quantity: 'Kuantiti',
|
||
unitPrice: 'Harga Unit',
|
||
createTime: 'Masa Penciptaan',
|
||
recipient: 'Penerima',
|
||
recipientPhone: 'Telefon Penerima',
|
||
shippingAddress: 'Alamat Penghantaran',
|
||
orderRemark: 'Catatan Pesanan',
|
||
back: 'Kembali',
|
||
orderNotFound: 'Pesanan tidak dijumpai',
|
||
notFilled: 'Tidak diisi',
|
||
addressLine1: 'Alamat Baris 1',
|
||
addressLine2: 'Alamat Baris 2',
|
||
addressIncomplete: 'Maklumat alamat tidak lengkap',
|
||
postcodeLabel: 'Poskod',
|
||
willPayIn: 'Anda akan membayar dalam {0}',
|
||
actualCost: 'Kos Sebenar',
|
||
approximately: 'Kira-kira',
|
||
exchangeRate: 'Kadar Pertukaran',
|
||
rateLockedAt: 'Masa Kadar Dikunci',
|
||
statusPending: 'Menunggu Pembayaran',
|
||
statusPaid: 'Dibayar',
|
||
statusShipped: 'Dihantar',
|
||
statusCompleted: 'Selesai',
|
||
statusCancelled: 'Dibatalkan',
|
||
currencyUSD: 'Dolar AS',
|
||
currencyEUR: 'Euro',
|
||
currencyGBP: 'Pound British',
|
||
currencyCNY: 'Yuan China',
|
||
currencyMYR: 'Ringgit Malaysia',
|
||
currencyVND: 'Dong Vietnam',
|
||
currencyJPY: 'Yen Jepun',
|
||
currencyKRW: 'Won Korea Selatan',
|
||
currencyTHB: 'Baht Thailand',
|
||
currencySGD: 'Dolar Singapura',
|
||
currencyHKD: 'Dolar Hong Kong',
|
||
currencyPHP: 'Peso Filipina'
|
||
},
|
||
// 用户相关
|
||
user: {
|
||
login: 'Log Masuk',
|
||
register: 'Daftar',
|
||
logout: 'Log Keluar',
|
||
username: 'Nama Pengguna',
|
||
password: 'Kata Laluan',
|
||
nickName: 'Nama Panggilan',
|
||
phone: 'Telefon',
|
||
email: 'E-mel',
|
||
storeCode: 'Kod Kedai',
|
||
loginTitle: 'Log Masuk Pengguna',
|
||
registerTitle: 'Pendaftaran Pengguna',
|
||
loginSuccess: 'Log masuk berjaya',
|
||
registerSuccess: 'Pendaftaran berjaya',
|
||
logoutSuccess: 'Log keluar berjaya',
|
||
usernameRequired: 'Sila masukkan nama pengguna',
|
||
passwordRequired: 'Sila masukkan kata laluan',
|
||
storeCodeRequired: 'Sila masukkan kod kedai',
|
||
usernamePlaceholder: 'Sila masukkan nama pengguna (3-50 aksara)',
|
||
passwordPlaceholder: 'Sila masukkan kata laluan (6-20 aksara)',
|
||
nickNamePlaceholder: 'Sila masukkan nama panggilan (pilihan)',
|
||
phonePlaceholder: 'Sila masukkan nombor telefon (pilihan)',
|
||
emailPlaceholder: 'Sila masukkan e-mel (pilihan)',
|
||
storeCodePlaceholder: 'Sila masukkan kod kedai',
|
||
usernameInvalid: 'Nama pengguna hanya boleh mengandungi huruf, nombor dan garis bawah',
|
||
passwordInvalid: 'Panjang kata laluan mestilah antara 6-20 aksara',
|
||
phoneInvalid: 'Format nombor telefon tidak sah',
|
||
emailInvalid: 'Format e-mel tidak sah',
|
||
noAccount: 'Belum ada akaun?',
|
||
hasAccount: 'Sudah ada akaun?',
|
||
goRegister: 'Daftar sekarang',
|
||
goLogin: 'Log masuk sekarang',
|
||
rememberMe: 'Ingat saya',
|
||
forgotPassword: 'Lupa kata laluan?',
|
||
userInfo: 'Maklumat Pengguna',
|
||
welcome: 'Selamat datang',
|
||
lastLoginTime: 'Masa Log Masuk Terakhir',
|
||
lastLoginIp: 'IP Log Masuk Terakhir'
|
||
}
|
||
}
|
||
|
||
// 菲律宾语
|
||
const fil = {
|
||
order: {
|
||
fillOrderInfo: 'Punan ang Impormasyon ng Order',
|
||
productInfo: 'Impormasyon ng Produkto',
|
||
customerInfo: 'Impormasyon ng Customer',
|
||
shippingAddress: 'Address ng Pagpapadala',
|
||
customerName: 'Pangalan ng Customer',
|
||
customerPhone: 'Telepono ng Customer',
|
||
customerEmail: 'Email ng Customer',
|
||
shippingName: 'Pangalan ng Tatanggap',
|
||
shippingPhone: 'Telepono ng Tatanggap',
|
||
shippingCountry: 'Bansa ng Pagpapadala',
|
||
addressLine1: 'Address Line 1',
|
||
addressLine2: 'Address Line 2',
|
||
state: 'Estado/Probinsya',
|
||
city: 'Lungsod',
|
||
postcode: 'Postal Code',
|
||
remark: 'Tandaan',
|
||
submit: 'Ipasa ang Order',
|
||
back: 'Bumalik',
|
||
pleaseEnter: 'Mangyaring ipasok',
|
||
optional: 'Opsiyonal',
|
||
required: 'Kinakailangan',
|
||
addressFormat: 'Format ng Address',
|
||
phoneCode: 'Phone Code',
|
||
mustMatchId: 'Dapat tumugma sa ID, sumusuporta sa lokal na wika + Ingles'
|
||
},
|
||
product: {
|
||
selectCurrency: 'Pumili ng Currency at Wika',
|
||
selectSku: 'Pumili ng Product Specification (SKU)',
|
||
currentPrice: 'Kasalukuyang Presyo',
|
||
quantity: 'Dami',
|
||
stock: 'Stock',
|
||
buyNow: 'Bumili Ngayon',
|
||
productDetails: 'Mga Detalye ng Produkto',
|
||
specifications: 'Mga Specification',
|
||
outOfStock: 'Walang Stock',
|
||
confirmPurchase: 'Kumpirmahin ang Pagbili',
|
||
cancel: 'Kanselahin',
|
||
unitPrice: 'Presyo ng Unit',
|
||
total: 'Kabuuan',
|
||
confirmPurchaseInfo: 'Kumpirmahin ang Impormasyon ng Pagbili',
|
||
sku: 'SKU',
|
||
noSkuAvailable: 'Walang Available na SKU',
|
||
selectSkuForPrice: 'Mangyaring pumili ng SKU para makita ang presyo',
|
||
selectSku: 'Mangyaring pumili ng SKU',
|
||
sevenDayReturn: '7-Araw na Return Policy',
|
||
authenticGuarantee: 'Authentic Guarantee',
|
||
expeditedShipping: 'Mabilis na Pagpapadala',
|
||
imageLoadFailed: 'Nabigo ang Pag-load ng Larawan',
|
||
noProductDetails: 'Walang Detalye ng Produkto',
|
||
selectSkuForSpecs: 'Mangyaring pumili ng SKU para makita ang mga specification',
|
||
skuCode: 'SKU Code',
|
||
price: 'Presyo',
|
||
weight: 'Timbang',
|
||
size: 'Sukat'
|
||
},
|
||
confirm: {
|
||
orderInfo: 'Impormasyon ng Order',
|
||
orderNo: 'Numero ng Order',
|
||
orderStatus: 'Status ng Order',
|
||
paymentStatus: 'Status ng Pagbabayad',
|
||
payNow: 'Magbayad Ngayon',
|
||
orderAmount: 'Halaga ng Order',
|
||
productName: 'Pangalan ng Produkto',
|
||
skuName: 'Pangalan ng SKU',
|
||
quantity: 'Dami',
|
||
unitPrice: 'Presyo ng Unit',
|
||
createTime: 'Oras ng Paglikha',
|
||
recipient: 'Tatanggap',
|
||
recipientPhone: 'Telepono ng Tatanggap',
|
||
shippingAddress: 'Address ng Pagpapadala',
|
||
orderRemark: 'Tandaan ng Order',
|
||
back: 'Bumalik',
|
||
orderNotFound: 'Hindi natagpuan ang order',
|
||
notFilled: 'Hindi napunan',
|
||
addressLine1: 'Address Line 1',
|
||
addressLine2: 'Address Line 2',
|
||
addressIncomplete: 'Hindi kumpleto ang impormasyon ng address',
|
||
postcodeLabel: 'Postal Code',
|
||
willPayIn: 'Magbabayad ka sa {0}',
|
||
actualCost: 'Tunay na Gastos',
|
||
approximately: 'Humigit-kumulang',
|
||
exchangeRate: 'Rate ng Palitan',
|
||
rateLockedAt: 'Oras na Na-lock ang Rate',
|
||
statusPending: 'Naghihintay ng Pagbabayad',
|
||
statusPaid: 'Bayad na',
|
||
statusShipped: 'Naipadala na',
|
||
statusCompleted: 'Natapos na',
|
||
statusCancelled: 'Nakansela',
|
||
currencyUSD: 'US Dollar',
|
||
currencyEUR: 'Euro',
|
||
currencyGBP: 'British Pound',
|
||
currencyCNY: 'Chinese Yuan',
|
||
currencyMYR: 'Malaysian Ringgit',
|
||
currencyVND: 'Vietnamese Dong',
|
||
currencyJPY: 'Japanese Yen',
|
||
currencyKRW: 'South Korean Won',
|
||
currencyTHB: 'Thai Baht',
|
||
currencySGD: 'Singapore Dollar',
|
||
currencyHKD: 'Hong Kong Dollar',
|
||
currencyPHP: 'Philippine Peso'
|
||
},
|
||
// 用户相关
|
||
user: {
|
||
login: 'Mag-login',
|
||
register: 'Magrehistro',
|
||
logout: 'Mag-logout',
|
||
username: 'Username',
|
||
password: 'Password',
|
||
nickName: 'Palayaw',
|
||
phone: 'Telepono',
|
||
email: 'Email',
|
||
storeCode: 'Store Code',
|
||
loginTitle: 'User Login',
|
||
registerTitle: 'User Register',
|
||
loginSuccess: 'Matagumpay na pag-login',
|
||
registerSuccess: 'Matagumpay na pagrehistro',
|
||
logoutSuccess: 'Matagumpay na pag-logout',
|
||
usernameRequired: 'Mangyaring maglagay ng username',
|
||
passwordRequired: 'Mangyaring maglagay ng password',
|
||
storeCodeRequired: 'Mangyaring maglagay ng store code',
|
||
usernamePlaceholder: 'Mangyaring maglagay ng username (3-50 characters)',
|
||
passwordPlaceholder: 'Mangyaring maglagay ng password (6-20 characters)',
|
||
nickNamePlaceholder: 'Mangyaring maglagay ng palayaw (opsyonal)',
|
||
phonePlaceholder: 'Mangyaring maglagay ng numero ng telepono (opsyonal)',
|
||
emailPlaceholder: 'Mangyaring maglagay ng email (opsyonal)',
|
||
storeCodePlaceholder: 'Mangyaring maglagay ng store code',
|
||
usernameInvalid: 'Ang username ay maaari lamang maglaman ng mga titik, numero at underscore',
|
||
passwordInvalid: 'Ang haba ng password ay dapat nasa pagitan ng 6-20 characters',
|
||
phoneInvalid: 'Hindi wasto ang format ng numero ng telepono',
|
||
emailInvalid: 'Hindi wasto ang format ng email',
|
||
noAccount: 'Wala pang account?',
|
||
hasAccount: 'Mayroon nang account?',
|
||
goRegister: 'Magrehistro ngayon',
|
||
goLogin: 'Mag-login ngayon',
|
||
rememberMe: 'Tandaan ako',
|
||
forgotPassword: 'Nakalimutan ang password?',
|
||
userInfo: 'Impormasyon ng User',
|
||
welcome: 'Maligayang pagdating',
|
||
lastLoginTime: 'Huling Oras ng Login',
|
||
lastLoginIp: 'Huling IP ng Login'
|
||
}
|
||
}
|
||
|
||
// 泰语
|
||
const th = {
|
||
order: {
|
||
fillOrderInfo: 'กรอกข้อมูลคำสั่งซื้อ',
|
||
productInfo: 'ข้อมูลสินค้า',
|
||
customerInfo: 'ข้อมูลลูกค้า',
|
||
shippingAddress: 'ที่อยู่จัดส่ง',
|
||
customerName: 'ชื่อลูกค้า',
|
||
customerPhone: 'เบอร์โทรลูกค้า',
|
||
customerEmail: 'อีเมลลูกค้า',
|
||
shippingName: 'ชื่อผู้รับ',
|
||
shippingPhone: 'เบอร์โทรผู้รับ',
|
||
shippingCountry: 'ประเทศจัดส่ง',
|
||
addressLine1: 'ที่อยู่บรรทัด 1',
|
||
addressLine2: 'ที่อยู่บรรทัด 2',
|
||
state: 'จังหวัด',
|
||
city: 'เมือง',
|
||
postcode: 'รหัสไปรษณีย์',
|
||
remark: 'หมายเหตุ',
|
||
submit: 'ส่งคำสั่งซื้อ',
|
||
back: 'กลับ',
|
||
pleaseEnter: 'กรุณากรอก',
|
||
optional: 'ไม่บังคับ',
|
||
required: 'จำเป็น',
|
||
addressFormat: 'รูปแบบที่อยู่',
|
||
phoneCode: 'รหัสโทรศัพท์',
|
||
mustMatchId: 'ต้องตรงกับบัตรประชาชน รองรับภาษาท้องถิ่น + อังกฤษ',
|
||
// 补充缺失字段
|
||
cityTown: 'เมือง/อำเภอ',
|
||
postcodeHint: 'รหัสไปรษณีย์คือ {0} หลัก',
|
||
blockNumber: 'หมายเลขบล็อก',
|
||
unitNumber: 'หมายเลขหน่วย',
|
||
barangay: 'Barangay',
|
||
addressThai: 'ที่อยู่ภาษาไทย',
|
||
province: 'จังหวัด',
|
||
district: 'อำเภอ/เขต',
|
||
ward: 'แขวง/ตำบล',
|
||
stateMalaysia: 'รัฐ',
|
||
administrativeArea: 'พื้นที่บริหาร (Tambon)',
|
||
floorUnit: 'ชั้น/หน่วย/จุดรับ',
|
||
street: 'ที่อยู่ถนน',
|
||
subtotal: 'ยอดรวมย่อย',
|
||
// 占位符文本
|
||
placeholderAddressLine1: 'กรุณากรอกเลขที่บ้าน ถนน อาคาร',
|
||
placeholderAddressLine2: 'กรุณากรอกชั้น หมายเลขหน่วย (ไม่บังคับ)',
|
||
placeholderBlockNumber: 'เช่น: Blk 123',
|
||
placeholderUnitNumber: 'เช่น: #01-234',
|
||
placeholderBarangay: 'กรุณากรอก Barangay',
|
||
placeholderAddressThai: 'กรุณากรอกที่อยู่ภาษาไทย (รองรับสองภาษา)',
|
||
placeholderProvince: 'กรุณากรอกจังหวัด',
|
||
placeholderDistrict: 'กรุณากรอกอำเภอ/เขต',
|
||
placeholderWard: 'กรุณากรอกแขวง/ตำบล',
|
||
placeholderStateMalaysia: 'เช่น: Selangor',
|
||
placeholderAdministrativeArea: 'กรุณากรอกพื้นที่บริหาร (Tambon)',
|
||
placeholderFloorUnit: 'ข้อมูลชั้น หมายเลขหน่วย หรือจุดรับ (ไม่บังคับ)',
|
||
placeholderStreet: 'กรุณากรอกที่อยู่ถนนโดยละเอียด',
|
||
placeholderCity: 'กรุณากรอกเมือง/อำเภอ',
|
||
placeholderPostcode: 'กรุณากรอกรหัสไปรษณีย์',
|
||
placeholderRemark: 'กรุณากรอกหมายเหตุคำสั่งซื้อ (ไม่บังคับ)',
|
||
placeholderCityTH: 'กรุณากรอกอำเภอ (Amphoe)',
|
||
placeholderStateTH: 'จังหวัด (Changwat)',
|
||
placeholderStatePH: 'จังหวัด',
|
||
placeholderStateOptional: 'รัฐ/จังหวัด (ไม่บังคับ)',
|
||
placeholderProvinceVN: 'กรุณากรอกจังหวัด (Tỉnh)',
|
||
placeholderDistrictVN: 'กรุณากรอกเมือง/อำเภอ (Thành phố/Huyện)',
|
||
placeholderWardVN: 'กรุณากรอกแขวง/ตำบล (Quận/Phường)',
|
||
// 验证错误消息
|
||
validationRequired: 'กรุณากรอก {0}',
|
||
validationInvalidPhone: 'กรุณากรอกหมายเลขโทรศัพท์ที่ถูกต้อง',
|
||
validationInvalidEmail: 'กรุณากรอกอีเมลที่ถูกต้อง',
|
||
validationSelectCountry: 'กรุณาเลือกประเทศจัดส่ง',
|
||
validationPostcodeFormat: 'รูปแบบรหัสไปรษณีย์ไม่ถูกต้อง ควรเป็น {0} หลัก',
|
||
validationFillComplete: 'กรุณากรอกข้อมูลให้ครบถ้วน',
|
||
validationProductMissing: 'ข้อมูลสินค้าหายไป กรุณาเลือกสินค้าใหม่',
|
||
validationOrderCreateFailed: 'สร้างคำสั่งซื้อล้มเหลว',
|
||
validationOrderCreateRetry: 'สร้างคำสั่งซื้อล้มเหลว กรุณาลองใหม่อีกครั้งในภายหลัง',
|
||
validationProductParseFailed: 'แยกวิเคราะห์ข้อมูลสินค้าล้มเหลว',
|
||
validationProductInfoMissing: 'ข้อมูลสินค้าหายไป',
|
||
validationOrderCreateSuccess: 'สร้างคำสั่งซื้อสำเร็จ'
|
||
},
|
||
product: {
|
||
selectCurrency: 'เลือกสกุลเงินและภาษา',
|
||
selectSku: 'เลือกรายละเอียดสินค้า (SKU)',
|
||
currentPrice: 'ราคาปัจจุบัน',
|
||
quantity: 'จำนวน',
|
||
stock: 'สต็อก',
|
||
buyNow: 'ซื้อทันที',
|
||
productDetails: 'รายละเอียดสินค้า',
|
||
specifications: 'ข้อมูลจำเพาะ',
|
||
outOfStock: 'หมดสต็อก',
|
||
confirmPurchase: 'ยืนยันการซื้อ',
|
||
cancel: 'ยกเลิก',
|
||
unitPrice: 'ราคาต่อหน่วย',
|
||
total: 'รวม',
|
||
confirmPurchaseInfo: 'ยืนยันข้อมูลการซื้อ',
|
||
sku: 'SKU',
|
||
noSkuAvailable: 'ไม่มี SKU ที่ใช้ได้',
|
||
selectSkuForPrice: 'กรุณาเลือก SKU เพื่อดูราคา',
|
||
selectSku: 'กรุณาเลือก SKU',
|
||
sevenDayReturn: 'นโยบายคืนสินค้า 7 วัน',
|
||
authenticGuarantee: 'การรับประกันของแท้',
|
||
expeditedShipping: 'จัดส่งด่วน',
|
||
imageLoadFailed: 'โหลดรูปภาพล้มเหลว',
|
||
noProductDetails: 'ไม่มีรายละเอียดสินค้า',
|
||
selectSkuForSpecs: 'กรุณาเลือก SKU เพื่อดูข้อมูลจำเพาะ',
|
||
skuCode: 'รหัส SKU',
|
||
price: 'ราคา',
|
||
weight: 'น้ำหนัก',
|
||
size: 'ขนาด'
|
||
},
|
||
confirm: {
|
||
orderInfo: 'ข้อมูลคำสั่งซื้อ',
|
||
orderNo: 'หมายเลขคำสั่งซื้อ',
|
||
orderStatus: 'สถานะคำสั่งซื้อ',
|
||
paymentStatus: 'สถานะการชำระเงิน',
|
||
payNow: 'ชำระเงินทันที',
|
||
orderAmount: 'จำนวนเงินคำสั่งซื้อ',
|
||
productName: 'ชื่อสินค้า',
|
||
skuName: 'ชื่อ SKU',
|
||
quantity: 'จำนวน',
|
||
unitPrice: 'ราคาต่อหน่วย',
|
||
createTime: 'เวลาสร้าง',
|
||
recipient: 'ผู้รับ',
|
||
recipientPhone: 'เบอร์โทรผู้รับ',
|
||
shippingAddress: 'ที่อยู่จัดส่ง',
|
||
orderRemark: 'หมายเหตุคำสั่งซื้อ',
|
||
back: 'กลับ',
|
||
orderNotFound: 'ไม่พบคำสั่งซื้อ',
|
||
notFilled: 'ไม่ได้กรอก',
|
||
addressLine1: 'ที่อยู่บรรทัด 1',
|
||
addressLine2: 'ที่อยู่บรรทัด 2',
|
||
addressIncomplete: 'ข้อมูลที่อยู่ไม่ครบถ้วน',
|
||
postcodeLabel: 'รหัสไปรษณีย์',
|
||
willPayIn: 'คุณจะชำระด้วย {0}',
|
||
actualCost: 'ค่าใช้จ่ายจริง',
|
||
approximately: 'ประมาณ',
|
||
exchangeRate: 'อัตราแลกเปลี่ยน',
|
||
rateLockedAt: 'เวลาล็อกอัตรา',
|
||
statusPending: 'รอการชำระเงิน',
|
||
statusPaid: 'ชำระแล้ว',
|
||
statusShipped: 'จัดส่งแล้ว',
|
||
statusCompleted: 'เสร็จสมบูรณ์',
|
||
statusCancelled: 'ยกเลิก',
|
||
currencyUSD: 'ดอลลาร์สหรัฐ',
|
||
currencyEUR: 'ยูโร',
|
||
currencyGBP: 'ปอนด์อังกฤษ',
|
||
currencyCNY: 'หยวนจีน',
|
||
currencyMYR: 'ริงกิตมาเลเซีย',
|
||
currencyVND: 'ดองเวียดนาม',
|
||
currencyJPY: 'เยนญี่ปุ่น',
|
||
currencyKRW: 'วอนเกาหลีใต้',
|
||
currencyTHB: 'บาทไทย',
|
||
currencySGD: 'ดอลลาร์สิงคโปร์',
|
||
currencyHKD: 'ดอลลาร์ฮ่องกง',
|
||
currencyPHP: 'เปโซฟิลิปปินส์'
|
||
},
|
||
// 用户相关
|
||
user: {
|
||
login: 'เข้าสู่ระบบ',
|
||
register: 'ลงทะเบียน',
|
||
logout: 'ออกจากระบบ',
|
||
username: 'ชื่อผู้ใช้',
|
||
password: 'รหัสผ่าน',
|
||
nickName: 'ชื่อเล่น',
|
||
phone: 'เบอร์โทรศัพท์',
|
||
email: 'อีเมล',
|
||
storeCode: 'รหัสร้านค้า',
|
||
loginTitle: 'เข้าสู่ระบบผู้ใช้',
|
||
registerTitle: 'ลงทะเบียนผู้ใช้',
|
||
loginSuccess: 'เข้าสู่ระบบสำเร็จ',
|
||
registerSuccess: 'ลงทะเบียนสำเร็จ',
|
||
logoutSuccess: 'ออกจากระบบสำเร็จ',
|
||
usernameRequired: 'กรุณากรอกชื่อผู้ใช้',
|
||
passwordRequired: 'กรุณากรอกรหัสผ่าน',
|
||
storeCodeRequired: 'กรุณากรอกรหัสร้านค้า',
|
||
usernamePlaceholder: 'กรุณากรอกชื่อผู้ใช้ (3-50 ตัวอักษร)',
|
||
passwordPlaceholder: 'กรุณากรอกรหัสผ่าน (6-20 ตัวอักษร)',
|
||
nickNamePlaceholder: 'กรุณากรอกชื่อเล่น (ไม่บังคับ)',
|
||
phonePlaceholder: 'กรุณากรอกเบอร์โทรศัพท์ (ไม่บังคับ)',
|
||
emailPlaceholder: 'กรุณากรอกอีเมล (ไม่บังคับ)',
|
||
storeCodePlaceholder: 'กรุณากรอกรหัสร้านค้า',
|
||
usernameInvalid: 'ชื่อผู้ใช้สามารถมีได้เฉพาะตัวอักษร ตัวเลข และขีดล่าง',
|
||
passwordInvalid: 'ความยาวรหัสผ่านต้องอยู่ระหว่าง 6-20 ตัวอักษร',
|
||
phoneInvalid: 'รูปแบบเบอร์โทรศัพท์ไม่ถูกต้อง',
|
||
emailInvalid: 'รูปแบบอีเมลไม่ถูกต้อง',
|
||
noAccount: 'ยังไม่มีบัญชี?',
|
||
hasAccount: 'มีบัญชีแล้ว?',
|
||
goRegister: 'ลงทะเบียนตอนนี้',
|
||
goLogin: 'เข้าสู่ระบบตอนนี้',
|
||
rememberMe: 'จำฉันไว้',
|
||
forgotPassword: 'ลืมรหัสผ่าน?',
|
||
userInfo: 'ข้อมูลผู้ใช้',
|
||
welcome: 'ยินดีต้อนรับ',
|
||
lastLoginTime: 'เวลาเข้าสู่ระบบล่าสุด',
|
||
lastLoginIp: 'IP เข้าสู่ระบบล่าสุด'
|
||
}
|
||
}
|
||
|
||
// 越南语
|
||
const vie = {
|
||
order: {
|
||
fillOrderInfo: 'Điền Thông Tin Đơn Hàng',
|
||
productInfo: 'Thông Tin Sản Phẩm',
|
||
customerInfo: 'Thông Tin Khách Hàng',
|
||
shippingAddress: 'Địa Chỉ Giao Hàng',
|
||
customerName: 'Tên Khách Hàng',
|
||
customerPhone: 'Số Điện Thoại Khách Hàng',
|
||
customerEmail: 'Email Khách Hàng',
|
||
shippingName: 'Tên Người Nhận',
|
||
shippingPhone: 'Số Điện Thoại Người Nhận',
|
||
shippingCountry: 'Quốc Gia Giao Hàng',
|
||
addressLine1: 'Địa Chỉ Dòng 1',
|
||
addressLine2: 'Địa Chỉ Dòng 2',
|
||
state: 'Tỉnh/Thành Phố',
|
||
city: 'Thành Phố',
|
||
cityTown: 'Thành Phố/Thị Trấn',
|
||
postcode: 'Mã Bưu Điện',
|
||
postcodeHint: 'Mã bưu điện là {0} chữ số',
|
||
remark: 'Ghi Chú',
|
||
submit: 'Gửi Đơn Hàng',
|
||
back: 'Quay Lại',
|
||
pleaseEnter: 'Vui lòng nhập',
|
||
optional: 'Tùy chọn',
|
||
required: 'Bắt buộc',
|
||
addressFormat: 'Định Dạng Địa Chỉ',
|
||
phoneCode: 'Mã Điện Thoại',
|
||
mustMatchId: 'Phải khớp với ID, hỗ trợ ngôn ngữ địa phương + tiếng Anh',
|
||
// 特殊地址字段
|
||
blockNumber: 'Số Block',
|
||
unitNumber: 'Số Đơn Vị',
|
||
barangay: 'Barangay',
|
||
addressThai: 'Địa Chỉ Tiếng Thái',
|
||
province: 'Tỉnh',
|
||
district: 'Thành Phố/Huyện',
|
||
ward: 'Quận/Phường',
|
||
stateMalaysia: 'Bang',
|
||
administrativeArea: 'Khu Vực Hành Chính (Tambon)',
|
||
floorUnit: 'Tầng/Đơn Vị/Điểm Thu Gom',
|
||
street: 'Địa Chỉ Đường',
|
||
subtotal: 'Tổng Phụ',
|
||
// 占位符文本
|
||
placeholderAddressLine1: 'Vui lòng nhập số nhà, đường, tòa nhà',
|
||
placeholderAddressLine2: 'Vui lòng nhập tầng, số đơn vị (tùy chọn)',
|
||
placeholderBlockNumber: 'Ví dụ: Blk 123',
|
||
placeholderUnitNumber: 'Ví dụ: #01-234',
|
||
placeholderBarangay: 'Vui lòng nhập Barangay',
|
||
placeholderAddressThai: 'Vui lòng nhập địa chỉ tiếng Thái (hỗ trợ song ngữ)',
|
||
placeholderProvince: 'Vui lòng nhập tỉnh',
|
||
placeholderDistrict: 'Vui lòng nhập thành phố/huyện',
|
||
placeholderWard: 'Vui lòng nhập quận/phường',
|
||
placeholderStateMalaysia: 'Ví dụ: Selangor',
|
||
placeholderAdministrativeArea: 'Vui lòng nhập khu vực hành chính (Tambon)',
|
||
placeholderFloorUnit: 'Thông tin tầng, số đơn vị hoặc điểm thu gom (tùy chọn)',
|
||
placeholderStreet: 'Vui lòng nhập địa chỉ đường chi tiết',
|
||
placeholderCity: 'Vui lòng nhập thành phố/thị trấn',
|
||
placeholderPostcode: 'Vui lòng nhập mã bưu điện',
|
||
placeholderRemark: 'Vui lòng nhập ghi chú đơn hàng (tùy chọn)',
|
||
// 国家特定占位符
|
||
placeholderCityTH: 'Vui lòng nhập huyện (Amphoe)',
|
||
placeholderStateTH: 'Tỉnh (Changwat)',
|
||
placeholderStatePH: 'Tỉnh',
|
||
placeholderStateOptional: 'Tỉnh/Thành Phố (tùy chọn)',
|
||
placeholderProvinceVN: 'Vui lòng nhập tỉnh (Tỉnh)',
|
||
placeholderDistrictVN: 'Vui lòng nhập thành phố/huyện (Thành phố/Huyện)',
|
||
placeholderWardVN: 'Vui lòng nhập quận/phường (Quận/Phường)',
|
||
// 验证错误消息
|
||
validationRequired: 'Vui lòng nhập {0}',
|
||
validationInvalidPhone: 'Vui lòng nhập số điện thoại hợp lệ',
|
||
validationInvalidEmail: 'Vui lòng nhập địa chỉ email hợp lệ',
|
||
validationSelectCountry: 'Vui lòng chọn quốc gia giao hàng',
|
||
validationPostcodeFormat: 'Định dạng mã bưu điện không đúng, phải là {0} chữ số',
|
||
validationFillComplete: 'Vui lòng điền đầy đủ thông tin',
|
||
validationProductMissing: 'Thiếu thông tin sản phẩm, vui lòng chọn lại sản phẩm',
|
||
validationOrderCreateFailed: 'Tạo đơn hàng thất bại',
|
||
validationOrderCreateRetry: 'Tạo đơn hàng thất bại, vui lòng thử lại sau',
|
||
validationProductParseFailed: 'Phân tích thông tin sản phẩm thất bại',
|
||
validationProductInfoMissing: 'Thiếu thông tin sản phẩm',
|
||
validationOrderCreateSuccess: 'Tạo đơn hàng thành công'
|
||
},
|
||
product: {
|
||
selectCurrency: 'Chọn Tiền Tệ và Ngôn Ngữ',
|
||
selectSku: 'Chọn Thông Số Sản Phẩm (SKU)',
|
||
currentPrice: 'Giá Hiện Tại',
|
||
quantity: 'Số Lượng',
|
||
stock: 'Tồn Kho',
|
||
buyNow: 'Mua Ngay',
|
||
productDetails: 'Chi Tiết Sản Phẩm',
|
||
specifications: 'Thông Số Kỹ Thuật',
|
||
outOfStock: 'Hết Hàng',
|
||
confirmPurchase: 'Xác Nhận Mua',
|
||
cancel: 'Hủy',
|
||
unitPrice: 'Đơn Giá',
|
||
total: 'Tổng',
|
||
confirmPurchaseInfo: 'Xác Nhận Thông Tin Mua',
|
||
sku: 'SKU',
|
||
noSkuAvailable: 'Không có SKU khả dụng',
|
||
selectSkuForPrice: 'Vui lòng chọn SKU để xem giá',
|
||
selectSku: 'Vui lòng chọn SKU',
|
||
sevenDayReturn: 'Chính sách đổi trả 7 ngày',
|
||
authenticGuarantee: 'Đảm bảo chính hãng',
|
||
expeditedShipping: 'Giao hàng nhanh',
|
||
imageLoadFailed: 'Tải hình ảnh thất bại',
|
||
noProductDetails: 'Không có chi tiết sản phẩm',
|
||
selectSkuForSpecs: 'Vui lòng chọn SKU để xem thông số kỹ thuật',
|
||
skuCode: 'Mã SKU',
|
||
price: 'Giá',
|
||
weight: 'Trọng lượng',
|
||
size: 'Kích thước'
|
||
},
|
||
confirm: {
|
||
orderInfo: 'Thông Tin Đơn Hàng',
|
||
orderNo: 'Số Đơn Hàng',
|
||
orderStatus: 'Trạng Thái Đơn Hàng',
|
||
paymentStatus: 'Trạng Thái Thanh Toán',
|
||
payNow: 'Thanh Toán Ngay',
|
||
orderAmount: 'Số Tiền Đơn Hàng',
|
||
productName: 'Tên Sản Phẩm',
|
||
skuName: 'Tên SKU',
|
||
quantity: 'Số Lượng',
|
||
unitPrice: 'Đơn Giá',
|
||
createTime: 'Thời Gian Tạo',
|
||
recipient: 'Người Nhận',
|
||
recipientPhone: 'Số Điện Thoại Người Nhận',
|
||
shippingAddress: 'Địa Chỉ Giao Hàng',
|
||
orderRemark: 'Ghi Chú Đơn Hàng',
|
||
back: 'Quay Lại',
|
||
orderNotFound: 'Không tìm thấy đơn hàng',
|
||
notFilled: 'Chưa điền',
|
||
addressLine1: 'Địa Chỉ Dòng 1',
|
||
addressLine2: 'Địa Chỉ Dòng 2',
|
||
addressIncomplete: 'Thông tin địa chỉ không đầy đủ',
|
||
postcodeLabel: 'Mã Bưu Điện',
|
||
willPayIn: 'Bạn sẽ thanh toán bằng {0}',
|
||
actualCost: 'Chi Phí Thực Tế',
|
||
approximately: 'Khoảng',
|
||
exchangeRate: 'Tỷ Giá',
|
||
rateLockedAt: 'Thời Gian Khóa Tỷ Giá',
|
||
statusPending: 'Chờ Thanh Toán',
|
||
statusPaid: 'Đã Thanh Toán',
|
||
statusShipped: 'Đã Giao Hàng',
|
||
statusCompleted: 'Hoàn Thành',
|
||
statusCancelled: 'Đã Hủy',
|
||
currencyUSD: 'Đô La Mỹ',
|
||
currencyEUR: 'Euro',
|
||
currencyGBP: 'Bảng Anh',
|
||
currencyCNY: 'Nhân Dân Tệ',
|
||
currencyMYR: 'Ringgit Malaysia',
|
||
currencyVND: 'Đồng Việt Nam',
|
||
currencyJPY: 'Yên Nhật',
|
||
currencyKRW: 'Won Hàn Quốc',
|
||
currencyTHB: 'Bạt Thái',
|
||
currencySGD: 'Đô La Singapore',
|
||
currencyHKD: 'Đô La Hồng Kông',
|
||
currencyPHP: 'Peso Philippines'
|
||
},
|
||
// 用户相关
|
||
user: {
|
||
login: 'Đăng nhập',
|
||
register: 'Đăng ký',
|
||
logout: 'Đăng xuất',
|
||
username: 'Tên đăng nhập',
|
||
password: 'Mật khẩu',
|
||
nickName: 'Tên hiển thị',
|
||
phone: 'Số điện thoại',
|
||
email: 'Email',
|
||
storeCode: 'Mã cửa hàng',
|
||
loginTitle: 'Đăng nhập người dùng',
|
||
registerTitle: 'Đăng ký người dùng',
|
||
loginSuccess: 'Đăng nhập thành công',
|
||
registerSuccess: 'Đăng ký thành công',
|
||
logoutSuccess: 'Đăng xuất thành công',
|
||
usernameRequired: 'Vui lòng nhập tên đăng nhập',
|
||
passwordRequired: 'Vui lòng nhập mật khẩu',
|
||
storeCodeRequired: 'Vui lòng nhập mã cửa hàng',
|
||
usernamePlaceholder: 'Vui lòng nhập tên đăng nhập (3-50 ký tự)',
|
||
passwordPlaceholder: 'Vui lòng nhập mật khẩu (6-20 ký tự)',
|
||
nickNamePlaceholder: 'Vui lòng nhập tên hiển thị (tùy chọn)',
|
||
phonePlaceholder: 'Vui lòng nhập số điện thoại (tùy chọn)',
|
||
emailPlaceholder: 'Vui lòng nhập email (tùy chọn)',
|
||
storeCodePlaceholder: 'Vui lòng nhập mã cửa hàng',
|
||
usernameInvalid: 'Tên đăng nhập chỉ có thể chứa chữ cái, số và dấu gạch dưới',
|
||
passwordInvalid: 'Độ dài mật khẩu phải từ 6-20 ký tự',
|
||
phoneInvalid: 'Định dạng số điện thoại không hợp lệ',
|
||
emailInvalid: 'Định dạng email không hợp lệ',
|
||
noAccount: 'Chưa có tài khoản?',
|
||
hasAccount: 'Đã có tài khoản?',
|
||
goRegister: 'Đăng ký ngay',
|
||
goLogin: 'Đăng nhập ngay',
|
||
rememberMe: 'Ghi nhớ đăng nhập',
|
||
forgotPassword: 'Quên mật khẩu?',
|
||
userInfo: 'Thông tin người dùng',
|
||
welcome: 'Chào mừng',
|
||
lastLoginTime: 'Thời gian đăng nhập cuối',
|
||
lastLoginIp: 'IP đăng nhập cuối'
|
||
}
|
||
}
|
||
|
||
// 印尼语
|
||
const id = {
|
||
order: {
|
||
fillOrderInfo: 'Isi Informasi Pesanan',
|
||
productInfo: 'Informasi Produk',
|
||
customerInfo: 'Informasi Pelanggan',
|
||
shippingAddress: 'Alamat Pengiriman',
|
||
customerName: 'Nama Pelanggan',
|
||
customerPhone: 'Telepon Pelanggan',
|
||
customerEmail: 'Email Pelanggan',
|
||
shippingName: 'Nama Penerima',
|
||
shippingPhone: 'Telepon Penerima',
|
||
shippingCountry: 'Negara Pengiriman',
|
||
addressLine1: 'Alamat Baris 1',
|
||
addressLine2: 'Alamat Baris 2',
|
||
state: 'Provinsi',
|
||
city: 'Kota',
|
||
postcode: 'Kode Pos',
|
||
remark: 'Catatan',
|
||
submit: 'Kirim Pesanan',
|
||
back: 'Kembali',
|
||
pleaseEnter: 'Silakan masukkan',
|
||
optional: 'Opsional',
|
||
required: 'Diperlukan',
|
||
addressFormat: 'Format Alamat',
|
||
phoneCode: 'Kode Telepon',
|
||
mustMatchId: 'Harus sesuai dengan ID, mendukung bahasa lokal + Inggris'
|
||
},
|
||
product: {
|
||
selectCurrency: 'Pilih Mata Uang dan Bahasa',
|
||
selectSku: 'Pilih Spesifikasi Produk (SKU)',
|
||
currentPrice: 'Harga Saat Ini',
|
||
quantity: 'Jumlah',
|
||
stock: 'Stok',
|
||
buyNow: 'Beli Sekarang',
|
||
productDetails: 'Detail Produk',
|
||
specifications: 'Spesifikasi',
|
||
outOfStock: 'Kehabisan Stok',
|
||
confirmPurchase: 'Konfirmasi Pembelian',
|
||
cancel: 'Batal',
|
||
unitPrice: 'Harga Satuan',
|
||
total: 'Total',
|
||
confirmPurchaseInfo: 'Konfirmasi Informasi Pembelian',
|
||
sku: 'SKU',
|
||
noSkuAvailable: 'Tidak Ada SKU Tersedia',
|
||
selectSkuForPrice: 'Silakan pilih SKU untuk melihat harga',
|
||
selectSku: 'Silakan pilih SKU',
|
||
sevenDayReturn: 'Kebijakan Pengembalian 7 Hari',
|
||
authenticGuarantee: 'Jaminan Asli',
|
||
expeditedShipping: 'Pengiriman Cepat',
|
||
imageLoadFailed: 'Gagal Memuat Gambar',
|
||
noProductDetails: 'Tidak Ada Detail Produk',
|
||
selectSkuForSpecs: 'Silakan pilih SKU untuk melihat spesifikasi',
|
||
skuCode: 'Kode SKU',
|
||
price: 'Harga',
|
||
weight: 'Berat',
|
||
size: 'Ukuran'
|
||
},
|
||
confirm: {
|
||
orderInfo: 'Informasi Pesanan',
|
||
orderNo: 'Nomor Pesanan',
|
||
orderStatus: 'Status Pesanan',
|
||
paymentStatus: 'Status Pembayaran',
|
||
payNow: 'Bayar Sekarang',
|
||
orderAmount: 'Jumlah Pesanan',
|
||
productName: 'Nama Produk',
|
||
skuName: 'Nama SKU',
|
||
quantity: 'Jumlah',
|
||
unitPrice: 'Harga Satuan',
|
||
createTime: 'Waktu Pembuatan',
|
||
recipient: 'Penerima',
|
||
recipientPhone: 'Telepon Penerima',
|
||
shippingAddress: 'Alamat Pengiriman',
|
||
orderRemark: 'Catatan Pesanan',
|
||
back: 'Kembali',
|
||
orderNotFound: 'Pesanan tidak ditemukan',
|
||
notFilled: 'Tidak diisi',
|
||
addressLine1: 'Alamat Baris 1',
|
||
addressLine2: 'Alamat Baris 2',
|
||
addressIncomplete: 'Informasi alamat tidak lengkap',
|
||
postcodeLabel: 'Kode Pos',
|
||
willPayIn: 'Anda akan membayar dengan {0}',
|
||
actualCost: 'Biaya Aktual',
|
||
approximately: 'Sekitar',
|
||
exchangeRate: 'Nilai Tukar',
|
||
rateLockedAt: 'Waktu Penguncian Nilai Tukar',
|
||
statusPending: 'Menunggu Pembayaran',
|
||
statusPaid: 'Dibayar',
|
||
statusShipped: 'Terkirim',
|
||
statusCompleted: 'Selesai',
|
||
statusCancelled: 'Dibatalkan',
|
||
currencyUSD: 'Dolar AS',
|
||
currencyEUR: 'Euro',
|
||
currencyGBP: 'Pound Inggris',
|
||
currencyCNY: 'Yuan China',
|
||
currencyMYR: 'Ringgit Malaysia',
|
||
currencyVND: 'Dong Vietnam',
|
||
currencyJPY: 'Yen Jepang',
|
||
currencyKRW: 'Won Korea Selatan',
|
||
currencyTHB: 'Baht Thailand',
|
||
currencySGD: 'Dolar Singapura',
|
||
currencyHKD: 'Dolar Hong Kong',
|
||
currencyPHP: 'Peso Filipina'
|
||
},
|
||
// 用户相关
|
||
user: {
|
||
login: 'Masuk',
|
||
register: 'Daftar',
|
||
logout: 'Keluar',
|
||
username: 'Nama Pengguna',
|
||
password: 'Kata Sandi',
|
||
nickName: 'Nama Panggilan',
|
||
phone: 'Telepon',
|
||
email: 'Email',
|
||
storeCode: 'Kode Toko',
|
||
loginTitle: 'Masuk Pengguna',
|
||
registerTitle: 'Pendaftaran Pengguna',
|
||
loginSuccess: 'Berhasil masuk',
|
||
registerSuccess: 'Pendaftaran berhasil',
|
||
logoutSuccess: 'Berhasil keluar',
|
||
usernameRequired: 'Silakan masukkan nama pengguna',
|
||
passwordRequired: 'Silakan masukkan kata sandi',
|
||
storeCodeRequired: 'Silakan masukkan kode toko',
|
||
usernamePlaceholder: 'Silakan masukkan nama pengguna (3-50 karakter)',
|
||
passwordPlaceholder: 'Silakan masukkan kata sandi (6-20 karakter)',
|
||
nickNamePlaceholder: 'Silakan masukkan nama panggilan (opsional)',
|
||
phonePlaceholder: 'Silakan masukkan nomor telepon (opsional)',
|
||
emailPlaceholder: 'Silakan masukkan email (opsional)',
|
||
storeCodePlaceholder: 'Silakan masukkan kode toko',
|
||
usernameInvalid: 'Nama pengguna hanya dapat berisi huruf, angka dan garis bawah',
|
||
passwordInvalid: 'Panjang kata sandi harus antara 6-20 karakter',
|
||
phoneInvalid: 'Format nomor telepon tidak valid',
|
||
emailInvalid: 'Format email tidak valid',
|
||
noAccount: 'Belum punya akun?',
|
||
hasAccount: 'Sudah punya akun?',
|
||
goRegister: 'Daftar sekarang',
|
||
goLogin: 'Masuk sekarang',
|
||
rememberMe: 'Ingat saya',
|
||
forgotPassword: 'Lupa kata sandi?',
|
||
userInfo: 'Informasi Pengguna',
|
||
welcome: 'Selamat datang',
|
||
lastLoginTime: 'Waktu Masuk Terakhir',
|
||
lastLoginIp: 'IP Masuk Terakhir'
|
||
}
|
||
}
|
||
|
||
// 货币代码到语言代码的映射
|
||
const currencyToLanguage = {
|
||
'USD': 'en',
|
||
'SGD': 'en',
|
||
'CNY': 'zh',
|
||
'MYR': 'may',
|
||
'PHP': 'fil',
|
||
'THB': 'th',
|
||
'VND': 'vie',
|
||
'IDR': 'id'
|
||
}
|
||
|
||
// 语言代码到翻译文本的映射
|
||
const languageMap = {
|
||
'zh': zh,
|
||
'en': en,
|
||
'may': may,
|
||
'fil': fil,
|
||
'th': th,
|
||
'vie': vie,
|
||
'id': id
|
||
}
|
||
|
||
/**
|
||
* 根据货币代码获取语言代码
|
||
*/
|
||
export function getLanguageByCurrency(currency) {
|
||
return currencyToLanguage[currency?.toUpperCase()] || 'en'
|
||
}
|
||
|
||
/**
|
||
* 根据语言代码获取翻译文本
|
||
*/
|
||
export function getTranslations(language) {
|
||
return languageMap[language] || en
|
||
}
|
||
|
||
/**
|
||
* 根据货币代码获取翻译文本
|
||
*/
|
||
export function getTranslationsByCurrency(currency) {
|
||
const language = getLanguageByCurrency(currency)
|
||
return getTranslations(language)
|
||
}
|
||
|
||
export default {
|
||
zh,
|
||
en,
|
||
may,
|
||
fil,
|
||
th,
|
||
vie,
|
||
id,
|
||
currencyToLanguage,
|
||
languageMap,
|
||
getLanguageByCurrency,
|
||
getTranslations,
|
||
getTranslationsByCurrency
|
||
}
|
||
|