Using the useTranslation Hook
Replace hardcoded strings with t() calls and organise translation JSON files.
Using the useTranslation Hook is a free React Academy lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the React Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Welcome
The useTranslation Hook
import { useTranslation } from 'react-i18next';
function Header() {
const { t } = useTranslation('common');
return <h1>{t('app_title')}</h1>;
}Basic Translation Keys
// public/locales/en/common.json
{
"app_title": "My App",
"nav": {
"home": "Home",
"about": "About"
}
}Dot-Notation Keys
const { t } = useTranslation('common');
return <a href="/">{t('nav.home')}</a>;Default Namespace
i18n.init({ defaultNS: 'common', ... });
// No namespace argument needed
const { t } = useTranslation();
t('app_title'); // resolves in 'common'Accessing Multiple Namespaces
const { t } = useTranslation(['common', 'auth']);
t('common:app_title');
t('auth:login');Trans Component for JSX Content
import { Trans } from 'react-i18next';
// JSON: "tos": "Read our <1>Terms</1>"
<Trans i18nKey="tos">
Read our <a href="/terms">Terms</a>
</Trans>Translation File Structure
public/
locales/
en/
common.json
auth.json
dashboard.json
tr/
common.json
auth.jsonChanging Language at Runtime
const { i18n } = useTranslation();
<button onClick={() => i18n.changeLanguage('tr')}>Turkish</button>Detecting the Active Language
const { i18n } = useTranslation();
return <p>Current lang: {i18n.language}</p>;Quick Check
Recap
Up Next
Frequently asked questions
Is the “Using the useTranslation Hook” lesson free?
Yes — the full text of “Using the useTranslation Hook” is free to read here on the web, and the React Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the React Academy course, upgrade to CoddyKit PRO.
What will I learn in “Using the useTranslation Hook”?
Replace hardcoded strings with t() calls and organise translation JSON files. You practise React Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start React Academy?
No prior experience is required. React Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Using the useTranslation Hook” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this React Academy lesson?
Yes. Every React Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Setting Up react-i18next
- Using the useTranslation Hook
- Pluralisation & Interpolation
- Language Switcher & Lazy-Loading Translations