feat(web): add auth+search i18n translations and filter-bar accessibility

Add missing auth and search translation namespaces to vi.json and en.json
that are required by login/register pages and search filter-bar component.
Update filter-bar with useTranslations('search'), aria-labels, and
role="search" for WCAG 2.1 AA compliance.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Ho Ngoc Hai
2026-04-09 10:22:59 +07:00
parent 8179f1c16e
commit 862078df37
21 changed files with 213 additions and 83 deletions

View File

@@ -106,5 +106,62 @@
"label": "Language",
"vi": "Tiếng Việt",
"en": "English"
},
"auth": {
"loginTitle": "Login",
"loginDescription": "Enter your phone number and password to log in",
"phone": "Phone number",
"phonePlaceholder": "0912345678",
"password": "Password",
"passwordPlaceholder": "Enter password",
"showPassword": "Show",
"hidePassword": "Hide",
"loginButton": "Login",
"orLoginWith": "Or login with",
"noAccount": "Don't have an account?",
"registerLink": "Register",
"dismiss": "Dismiss",
"registerTitle": "Register",
"registerDescription": "Create a new account to start using GoodGo",
"fullName": "Full name",
"fullNamePlaceholder": "John Doe",
"email": "Email",
"emailPlaceholder": "email@example.com",
"confirmPassword": "Confirm password",
"confirmPasswordPlaceholder": "Re-enter password",
"registerButton": "Register",
"hasAccount": "Already have an account?",
"loginLink": "Login",
"orRegisterWith": "Or register with",
"oauthErrors": {
"oauth_failed": "Social login failed. Please try again.",
"access_denied": "You denied access. Please try again.",
"invalid_request": "Invalid login request. Please try again.",
"server_error": "Server error. Please try again later.",
"temporarily_unavailable": "Service temporarily unavailable. Please try again later.",
"default": "An error occurred during login. Please try again."
}
},
"search": {
"filters": "Filters",
"allTransactions": "All transactions",
"allPropertyTypes": "All property types",
"allAreas": "All areas",
"allPrices": "All prices",
"bedrooms": "Bedrooms",
"bedroomsCount": "{count}+ BR",
"areaLabel": "Area (m²)",
"areaFrom": "From",
"areaTo": "To",
"district": "District",
"searchButton": "Search",
"priceRanges": {
"under1b": "Under 1 billion",
"1to3b": "1 - 3 billion",
"3to5b": "3 - 5 billion",
"5to10b": "5 - 10 billion",
"10to20b": "10 - 20 billion",
"over20b": "Over 20 billion"
}
}
}