Implement internationalization for account settings and search components. Added translation support for various UI elements, including billing, notifications, and user dropdowns. Refactored search suggestions and no result messages to utilize localized text. Enhanced user experience by ensuring all relevant components display text based on selected language.

This commit is contained in:
2026-02-19 17:41:37 +03:30
parent 0844100613
commit 25344a8738
14 changed files with 646 additions and 415 deletions
@@ -2,6 +2,7 @@
// React Imports
import { useState } from 'react'
import { useTranslations } from 'next-intl'
// MUI Imports
import Grid from '@mui/material/Grid2'
@@ -16,32 +17,35 @@ import InputAdornment from '@mui/material/InputAdornment'
import CustomTextField from '@core/components/mui/TextField'
const Address = () => {
const t = useTranslations('accountSettings')
const tBilling = useTranslations('accountSettings.billing')
// States
const [state, setState] = useState('')
return (
<Card>
<CardHeader title='Billing Address' />
<CardHeader title={tBilling('billingAddress')} />
<CardContent>
<form>
<Grid container spacing={6}>
<Grid size={{ xs: 12, sm: 6 }}>
<CustomTextField fullWidth label='Company Name' variant='outlined' placeholder='Pixinvent' />
<CustomTextField fullWidth label={tBilling('companyName')} variant='outlined' placeholder='Pixinvent' />
</Grid>
<Grid size={{ xs: 12, sm: 6 }}>
<CustomTextField fullWidth label='Billing Email' variant='outlined' placeholder='john.doe@example.com' />
<CustomTextField fullWidth label={tBilling('billingEmail')} variant='outlined' placeholder='john.doe@example.com' />
</Grid>
<Grid size={{ xs: 12, sm: 6 }}>
<CustomTextField fullWidth label='TAX ID' variant='outlined' placeholder='Enter TAX ID' />
<CustomTextField fullWidth label={tBilling('taxId')} variant='outlined' placeholder='Enter TAX ID' />
</Grid>
<Grid size={{ xs: 12, sm: 6 }}>
<CustomTextField fullWidth label='VAT Number' variant='outlined' placeholder='Enter VAT Number' />
<CustomTextField fullWidth label={tBilling('vatNumber')} variant='outlined' placeholder='Enter VAT Number' />
</Grid>
<Grid size={{ xs: 12, sm: 6 }}>
<CustomTextField
fullWidth
type='number'
label='Mobile Number'
label={tBilling('mobileNumber')}
placeholder='202 555 0111'
slotProps={{
input: {
@@ -51,28 +55,28 @@ const Address = () => {
/>
</Grid>
<Grid size={{ xs: 12, sm: 6 }}>
<CustomTextField select fullWidth label='Country' value={state} onChange={e => setState(e.target.value)}>
<MenuItem value=''>Select Country</MenuItem>
<MenuItem value='australia'>Australia</MenuItem>
<MenuItem value='canada'>Canada</MenuItem>
<MenuItem value='france'>France</MenuItem>
<MenuItem value='united-kingdom'>United Kingdom</MenuItem>
<MenuItem value='united-states'>United States</MenuItem>
<CustomTextField select fullWidth label={tBilling('country')} value={state} onChange={e => setState(e.target.value)}>
<MenuItem value=''>{tBilling('selectCountry')}</MenuItem>
<MenuItem value='australia'>{tBilling('australia')}</MenuItem>
<MenuItem value='canada'>{tBilling('canada')}</MenuItem>
<MenuItem value='france'>{tBilling('france')}</MenuItem>
<MenuItem value='united-kingdom'>{tBilling('unitedKingdom')}</MenuItem>
<MenuItem value='united-states'>{tBilling('unitedStates')}</MenuItem>
</CustomTextField>
</Grid>
<Grid size={{ xs: 12 }}>
<CustomTextField fullWidth label='Billing Address' variant='outlined' placeholder='Billing Address' />
<CustomTextField fullWidth label={tBilling('billingAddress')} variant='outlined' placeholder={tBilling('billingAddress')} />
</Grid>
<Grid size={{ xs: 12, sm: 6 }}>
<CustomTextField fullWidth label='State' variant='outlined' placeholder='California' />
<CustomTextField fullWidth label={tBilling('state')} variant='outlined' placeholder='California' />
</Grid>
<Grid size={{ xs: 12, sm: 6 }}>
<CustomTextField fullWidth type='number' label='Zip Code' variant='outlined' placeholder='231465' />
<CustomTextField fullWidth type='number' label={tBilling('zipCode')} variant='outlined' placeholder='231465' />
</Grid>
<Grid size={{ xs: 12 }} className='flex gap-4 flex-wrap'>
<Button variant='contained'>Save Changes</Button>
<Button variant='contained'>{t('saveChanges')}</Button>
<Button variant='tonal' type='reset' color='secondary' onClick={() => setState('')}>
Discard
{tBilling('discard')}
</Button>
</Grid>
</Grid>