diff --git a/services/course-material/src/components/layout/Layout.tsx b/services/course-material/src/components/layout/Layout.tsx index 0ed2a1197189..9f5576859b9b 100644 --- a/services/course-material/src/components/layout/Layout.tsx +++ b/services/course-material/src/components/layout/Layout.tsx @@ -26,6 +26,7 @@ import { NavItem, NavItems, } from "@/shared-module/common/components/Navigation/NavBar" +import { getDir } from "@/shared-module/common/hooks/useLanguage" import ietfLanguageTagToHumanReadableName from "@/shared-module/common/utils/ietfLanguageTagToHumanReadableName" import withNoSsr from "@/shared-module/common/utils/withNoSsr" @@ -86,9 +87,22 @@ const Layout: React.FC> = ({ children }) => }, [changedLanguageUrl, router]) useEffect(() => { - if (currentLanguageCode && i18n.language !== currentLanguageCode) { + if (!currentLanguageCode) { + return + } + if (i18n.language !== currentLanguageCode) { i18n.changeLanguage(currentLanguageCode) } + const htmlElement = document.querySelector("html") + if (!htmlElement || !currentLanguageCode) { + return + } + setTimeout(() => { + // eslint-disable-next-line i18next/no-literal-string + htmlElement.setAttribute("lang", currentLanguageCode) + // eslint-disable-next-line i18next/no-literal-string + htmlElement.setAttribute("dir", getDir(currentLanguageCode)) + }, 100) }, [currentLanguageCode, i18n]) const layoutContextValue = useMemo(() => {