Implement useLanguage
note: If your app only supports one language, you can skip this step
If you have language related state in your app, we recommend removing it, and use useLanguage from
@equinor/mad-core instead.
const { language } = useLanguage();
This hook will give you information about which language the app is currently using.
One way to implement this, is to create a useDictionary hook, to select which json file to read
static text from.
import { useLanguage } from "@equinor/mad-core";
import * as no from "../resources/language/no.json";
import * as en from "../resources/language/en.json";
export const useDictionary = () => {
const { language } = useLanguage();
switch (language.code) {
case "no":
return no;
default:
return en;
}
};
const Example = () => {
const dictionary = useDictionary();
return <Typography>{dictionary.example}</Typography>;
};
While @equinor/mad-core should handle language selection for you, you can always add code to
select language by using setSelectedLanguage from @equinor/mad-core. You also have access to
getLanguage and getIsLanguageSelected, if you need access to those methods in contexts where the
useLanguage hook cannot be used.