-
-
-
-
-
-
- {props.children}
-
-
+ return (
+
+
+
+
+
- );
+
{props.children}
+
+
+ );
};
export default Mainframe;
diff --git a/src/modules/frame/models/JwtToken.ts b/src/modules/frame/models/JwtToken.ts
index 3a8ba4e..073b8c9 100644
--- a/src/modules/frame/models/JwtToken.ts
+++ b/src/modules/frame/models/JwtToken.ts
@@ -1,8 +1,9 @@
export default interface JwtToken {
- expiry: Date;
- primarysid: bigint;
- name: string;
- email: string;
- domainid: bigint;
- securityPrivileges: [];
+ expiry: Date;
+ primarysid: bigint;
+ name: string;
+ email: string;
+ domainid: bigint;
+ securityPrivileges: [];
+ language?: string;
}
diff --git a/src/modules/frame/services/lanugageService.ts b/src/modules/frame/services/lanugageService.ts
new file mode 100644
index 0000000..c4090a8
--- /dev/null
+++ b/src/modules/frame/services/lanugageService.ts
@@ -0,0 +1,21 @@
+import { getCurrentUser } from "./authenticationService";
+
+export function determineInitialLanguage() {
+ // 1. JWT preference
+ const currentUser = getCurrentUser();
+ if (currentUser !== null) {
+ const jwtLang = currentUser.language || null;
+ if (jwtLang) return jwtLang;
+ }
+
+ // 2. LocalStorage
+ //const storedLang = localStorage.getItem("appLanguage");
+ //if (storedLang) return storedLang;
+
+ // 3. Browser
+ const browserLang = navigator.language?.split("-")[0];
+ if (browserLang) return browserLang;
+
+ // 4. Default
+ return "en";
+}
diff --git a/tsconfig.json b/tsconfig.json
index ed38e30..8cfde08 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,11 +1,7 @@
{
"compilerOptions": {
"target": "es5",
- "lib": [
- "dom",
- "dom.iterable",
- "esnext"
- ],
+ "lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
@@ -20,8 +16,5 @@
"noEmit": true,
"jsx": "preserve"
},
- "include": [
- "src",
- "src/types"
- ]
+ "include": ["src", "src/types", "i18next-parser.config.js"]
}