feat:新增多语言

This commit is contained in:
JiaJun
2026-04-14 17:27:52 +08:00
parent 8fcf0355b3
commit b2c7c8d362
31 changed files with 1952 additions and 378 deletions

View File

@@ -1,37 +1,29 @@
import type {AddAddressForm} from '@/types'
import i18n from '@/lib/i18n'
type AddressValidationResult =
| { valid: true }
| { valid: false; message: string }
export function validateAddressFormSubmission(addressForm: AddAddressForm): AddressValidationResult {
const normalizedRegion = addressForm.region.filter((value) => value.trim())
if (!addressForm.name.trim()) {
return {
valid: false,
message: 'Please enter the receiver name.',
message: i18n.t('validation.pleaseEnterReceiverName'),
}
}
if (!addressForm.phone.trim()) {
return {
valid: false,
message: 'Please enter a reachable mobile number.',
}
}
if (normalizedRegion.length === 0) {
return {
valid: false,
message: 'Please select a region.',
message: i18n.t('validation.pleaseEnterReachablePhone'),
}
}
if (!addressForm.detailedAddress.trim()) {
return {
valid: false,
message: 'Please enter the detailed address.',
message: i18n.t('validation.pleaseEnterDetailedAddress'),
}
}

View File

@@ -16,7 +16,6 @@ type UseAddressBookOptions = {
const emptyAddressForm: AddAddressForm = {
name: '',
phone: '',
region: [],
detailedAddress: '',
isDefault: false,
}
@@ -40,7 +39,6 @@ export function mapAddressToForm(item: AddressListItem): AddAddressForm {
return {
name: item.receiver_name,
phone: item.phone,
region: item.region.map((part) => part.trim()).filter(Boolean).slice(0, 3),
detailedAddress: item.detail_address,
isDefault: item.default_setting === 1,
}
@@ -66,7 +64,7 @@ export function useAddressBook(options?: UseAddressBookOptions) {
session_id: sessionId!,
receiver_name: addressForm.name.trim(),
phone: addressForm.phone.trim(),
region: addressForm.region.join(', '),
region: editingAddress ? editingAddress.region.map((part) => part.trim()).filter(Boolean).join(', ') : '',
detail_address: addressForm.detailedAddress.trim(),
default_setting: addressForm.isDefault ? '1' : '0',
} as const