Let me first explore all the files that contain user-facing text to understand the full scope.
Now let me read the remaining pages and components that have user-facing text:
Now let me read the remaining components:
Now I have a complete picture. I'll build a proper i18n system with a React context provider and translation dictionaries. Let me also check the progress bar and vote-button for any remaining text:
Now I have the complete picture. I'll create a lightweight i18n system with:
useTranslation hookLet me start building:
Now let me update the layout to wrap the app in the I18nProvider and update the nav header and footer:
Now update the globals.css to include Noto Sans Thai in the font stack:
Now update the nav-header with language toggle and i18n:
Now let me update the landing page and community pages:
Now update the community pages and components:
Now update the community pages:
Now let me move to the match pages and candidates:
Now update the match page and results page:
Now update the candidate-card component and candidates page:
Thai language support has been added across the entire application. I created a lightweight i18n system with an I18nProvider context, comprehensive EN/TH translation dictionaries covering all UI text (nav, landing page, community, match quiz, results, and candidates pages), and a useTranslation hook. A globe icon language toggle button in the nav header lets users switch between English and Thai, with the preference persisted in localStorage. The Noto Sans Thai font was also added to the font stack for proper Thai rendering.
You can send messages while the preview loads