@@ -15,21 +15,27 @@ const FormRow: FC<FormRowProps> = ({ form }) => {
15
15
useEffect ( ( ) => {
16
16
if ( form . Title === '' ) return ;
17
17
if ( isJson ( form . Title ) ) {
18
- const ts = JSON . parse ( form . Title ) ;
19
- setTitles ( ts ) ;
18
+ setTitles ( JSON . parse ( form . Title ) ) ;
20
19
} else {
21
- const t = { en : form . Title , fr : form . TitleFr , de : form . TitleDe } ;
22
- setTitles ( t ) ;
20
+ setTitles ( { en : form . Title , fr : form . TitleFr , de : form . TitleDe } ) ;
23
21
}
24
22
} , [ form ] ) ;
23
+ // let i18next handle choosing the appropriate language
24
+ const formRowI18n = i18n . createInstance ( ) ;
25
+ formRowI18n . init ( ) ;
26
+ // get current language
27
+ formRowI18n . changeLanguage ( i18n . language ) ;
28
+ Object . entries ( titles ) . forEach ( ( [ lang , title ] : [ string , string | undefined ] ) => {
29
+ if ( title ) {
30
+ formRowI18n . addResource ( lang , 'form' , 'title' , title ) ;
31
+ }
32
+ } ) ;
25
33
return (
26
34
< tr className = "bg-white border-b hover:bg-gray-50 " >
27
35
< td className = "px-1.5 sm:px-6 py-4 font-medium text-gray-900 whitespace-nowrap truncate" >
28
36
< Link className = "text-gray-700 hover:text-indigo-500" to = { `/forms/${ form . FormID } ` } >
29
37
< div className = "max-w-[20vw] truncate" >
30
- { i18n . language === 'en' && titles . en }
31
- { i18n . language === 'fr' && titles . fr }
32
- { i18n . language === 'de' && titles . de }
38
+ { formRowI18n . t ( 'title' , { ns : 'form' , fallbackLng : 'en' } ) }
33
39
</ div >
34
40
</ Link >
35
41
</ td >
0 commit comments