---
# System prepended metadata

title: 'i18n cont. - Fri 30th Oct, 2020'
tags: [C+, translationlocalisation, programmingjournal, '2020', i18next]

---

# i18n cont. - Fri 30th Oct, 2020

Finished i18 translation / localisation work today.

It was mostly straightforward, but a few gotchas:

I had to initiate `i18n` outside of the component, then use an effect to change the language based on the locale:

```typescript=
import React, { useEffect } from 'react'
import { I18nextProvider } from 'react-i18next'

import { useCurrentUser } from '../hooks/useCurrentUser/useCurrentUser'

import { i18n } from './i18n'

export const I18nProvider: React.FC = ({ children }) => {
    const { data } = useCurrentUser()

    useEffect(() => {
        if (data.locale?.lang) {
            i18n.changeLanguage(data?.locale?.lang)
        }
    }, [data])

    return (
        <I18nextProvider i18n={i18n}>
            <>{children}</>
        </I18nextProvider>
    )
}
```

Remember also to translate the accessibility props.

###### tags: `programmingjournal` `2020` `C+` `i18next` `translationlocalisation`