@asafarim/shared-i18n 0.6.6 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/demo/dist/Icon Dropdown_Limited Languages.png +0 -0
  2. package/demo/dist/Select Dropdown_Text Only.png +0 -0
  3. package/demo/dist/assets/favicon-BZYZvBLo.svg +4 -0
  4. package/demo/dist/assets/index-BdjqKw_N.css +1 -0
  5. package/demo/dist/assets/index-C1Tq1uEr.js +191 -0
  6. package/demo/dist/favicon.svg +4 -0
  7. package/demo/dist/index.html +27 -0
  8. package/demo/dist/logo.svg +24 -0
  9. package/demo/node_modules/.bin/browserslist +21 -0
  10. package/demo/node_modules/.bin/browserslist.CMD +12 -0
  11. package/demo/node_modules/.bin/browserslist.ps1 +41 -0
  12. package/demo/node_modules/.bin/tsc +4 -4
  13. package/demo/node_modules/.bin/tsc.CMD +12 -0
  14. package/demo/node_modules/.bin/tsc.ps1 +41 -0
  15. package/demo/node_modules/.bin/tsserver +4 -4
  16. package/demo/node_modules/.bin/tsserver.CMD +12 -0
  17. package/demo/node_modules/.bin/tsserver.ps1 +41 -0
  18. package/demo/node_modules/.bin/vite +4 -4
  19. package/demo/node_modules/.bin/vite.CMD +12 -0
  20. package/demo/node_modules/.bin/vite.ps1 +41 -0
  21. package/demo/node_modules/.vite/deps/@asafarim_country-language-selector.js +848 -0
  22. package/demo/node_modules/.vite/deps/@asafarim_country-language-selector.js.map +7 -0
  23. package/demo/node_modules/.vite/deps/_metadata.json +76 -0
  24. package/demo/node_modules/.vite/deps/chunk-5WRI5ZAA.js +30 -0
  25. package/demo/node_modules/.vite/deps/chunk-5WRI5ZAA.js.map +7 -0
  26. package/demo/node_modules/.vite/deps/chunk-B3AHR5EX.js +1004 -0
  27. package/demo/node_modules/.vite/deps/chunk-B3AHR5EX.js.map +7 -0
  28. package/demo/node_modules/.vite/deps/chunk-E6BG6WAU.js +292 -0
  29. package/demo/node_modules/.vite/deps/chunk-E6BG6WAU.js.map +7 -0
  30. package/demo/node_modules/.vite/deps/chunk-MVARZQEG.js +280 -0
  31. package/demo/node_modules/.vite/deps/chunk-MVARZQEG.js.map +7 -0
  32. package/demo/node_modules/.vite/deps/i18next-browser-languagedetector.js +400 -0
  33. package/demo/node_modules/.vite/deps/i18next-browser-languagedetector.js.map +7 -0
  34. package/demo/node_modules/.vite/deps/i18next.js +2392 -0
  35. package/demo/node_modules/.vite/deps/i18next.js.map +7 -0
  36. package/demo/node_modules/.vite/deps/package.json +3 -0
  37. package/demo/node_modules/.vite/deps/react-dom.js +6 -0
  38. package/demo/node_modules/.vite/deps/react-dom.js.map +7 -0
  39. package/demo/node_modules/.vite/deps/react-dom_client.js +20217 -0
  40. package/demo/node_modules/.vite/deps/react-dom_client.js.map +7 -0
  41. package/demo/node_modules/.vite/deps/react-i18next.js +869 -0
  42. package/demo/node_modules/.vite/deps/react-i18next.js.map +7 -0
  43. package/demo/node_modules/.vite/deps/react.js +5 -0
  44. package/demo/node_modules/.vite/deps/react.js.map +7 -0
  45. package/demo/node_modules/.vite/deps/react_jsx-dev-runtime.js +278 -0
  46. package/demo/node_modules/.vite/deps/react_jsx-dev-runtime.js.map +7 -0
  47. package/demo/node_modules/.vite/deps/react_jsx-runtime.js +6 -0
  48. package/demo/node_modules/.vite/deps/react_jsx-runtime.js.map +7 -0
  49. package/demo/package.json +27 -24
  50. package/demo/public/favicon.svg +4 -4
  51. package/demo/public/logo.svg +24 -24
  52. package/demo/src/App.tsx +129 -116
  53. package/demo/src/components/CountryLanguageDemo.tsx +140 -0
  54. package/demo/src/components/GetStartedSection.tsx +56 -56
  55. package/demo/src/components/KeyTable.tsx +29 -29
  56. package/demo/src/components/LanguageBar.tsx +102 -18
  57. package/demo/src/components/LanguageSwitcherDemo.module.css +114 -113
  58. package/demo/src/components/LanguageSwitcherDemo.tsx +256 -202
  59. package/demo/src/components/Logo.tsx +6 -6
  60. package/demo/src/components/OverviewSection.tsx +43 -43
  61. package/demo/src/components/Panel.tsx +15 -15
  62. package/demo/src/components/StatusCard.tsx +109 -109
  63. package/demo/src/index.css +644 -605
  64. package/demo/src/locales/de/demo.json +85 -0
  65. package/demo/src/locales/en/demo.json +85 -85
  66. package/demo/src/locales/fr/demo.json +85 -85
  67. package/demo/src/locales/it/demo.json +85 -0
  68. package/demo/src/locales/nl/demo.json +85 -85
  69. package/demo/src/main.tsx +29 -24
  70. package/demo/tsconfig.json +18 -18
  71. package/demo/tsconfig.node.json +10 -10
  72. package/demo/tsconfig.tsbuildinfo +1 -1
  73. package/demo/vite-env.d.ts +7 -7
  74. package/demo/vite.config.d.ts +2 -2
  75. package/demo/vite.config.js +10 -10
  76. package/dist/components/LanguageSwitcher.module.css +303 -303
  77. package/dist/locales/de/common.json +68 -0
  78. package/dist/locales/it/common.json +68 -0
  79. package/dist/tsconfig.tsbuildinfo +1 -1
  80. package/package.json +85 -84
@@ -1,85 +1,85 @@
1
- {
2
- "title": "Shared i18n demo",
3
- "subtitle": "Een lichtgewicht React i18next wrapper met cookie persistentie.",
4
- "cta": "Taal wisselen",
5
- "overview": {
6
- "heading": "Overzicht",
7
- "description": "@asafarim/shared-i18n is een production-grade internationalisatie (i18n) pakket voor React-applicaties.",
8
- "features": {
9
- "title": "Belangrijkste Functies",
10
- "items": [
11
- "Ondersteuning voor meerdere talen met cookie persistentie",
12
- "Ingebouwde taaldetectie en fallback",
13
- "TypeScript-ondersteuning met volledige type veiligheid",
14
- "Vooraf geconfigureerde common en identity-portal naamruimten",
15
- "Naadloze integratie met react-i18next",
16
- "Synchronisatie van taalvoorkeur met backend",
17
- "SSR-veilige hulpprogramma's voor server-side rendering"
18
- ]
19
- },
20
- "useCases": {
21
- "title": "Ideaal Voor",
22
- "items": [
23
- "Globale applicaties die ondersteuning voor meerdere talen vereisen",
24
- "Enterprise-platforms met taalvoorkeuren van gebruikers",
25
- "Identiteits- en verificatiesystemen",
26
- "Content management systemen met lokalisatie",
27
- "SaaS-applicaties die internationale gebruikers bedienen"
28
- ]
29
- }
30
- },
31
- "getStarted": {
32
- "heading": "Aan de Slag",
33
- "intro": "Leer hoe je @asafarim/shared-i18n in minuten in je React-applicatie integreert.",
34
- "steps": [
35
- {
36
- "title": "1. Installeer het Pakket",
37
- "description": "Voeg het pakket toe aan je projectafhankelijkheden.",
38
- "code": "pnpm add @asafarim/shared-i18n"
39
- },
40
- {
41
- "title": "2. Initialiseer i18n in Je App",
42
- "description": "Roep initI18n aan bij het opstarten van de applicatie om taalinstellingen te configureren.",
43
- "code": "import { initI18n } from '@asafarim/shared-i18n';\n\ninitI18n({\n defaultNS: 'common',\n ns: ['common', 'identityPortal'],\n resources: { /* je vertalingen */ }\n});"
44
- },
45
- {
46
- "title": "3. Gebruik de useLanguage Hook",
47
- "description": "Krijg toegang tot taalwisseling en huidige taaltoestand in je componenten.",
48
- "code": "const { changeLanguage, isChanging } = useLanguage();\n\n<button onClick={() => changeLanguage('en')}>\n Naar Engels\n</button>"
49
- },
50
- {
51
- "title": "4. Vertaal met useTranslation",
52
- "description": "Gebruik de useTranslation hook om toegang te krijgen tot vertaalde strings.",
53
- "code": "const { t } = useTranslation('common');\n\n<h1>{t('welcome')}</h1>"
54
- },
55
- {
56
- "title": "5. Maak Gebruik van Cookie Persistentie",
57
- "description": "Taalvoorkeuren van gebruikers worden automatisch opgeslagen en hersteld.",
58
- "code": "// Automatisch opgeslagen via cookies\n// Geen extra setup vereist!"
59
- },
60
- {
61
- "title": "6. Synchroniseer met Backend (Optioneel)",
62
- "description": "Werk taalvoorkeuren van gebruikers bij op je backend.",
63
- "code": "import { updateUserLanguagePreference } from '@asafarim/shared-i18n';\n\nawait updateUserLanguagePreference('nl');"
64
- }
65
- ],
66
- "tips": {
67
- "title": "Pro Tips",
68
- "items": [
69
- "Gebruik naamruimten om vertalingen per functie in te delen",
70
- "Maak gebruik van de Trans-component voor complexe vertalingen met variabelen",
71
- "Stel VITE_IDENTITY_API_URL in voor backend-synchronisatie",
72
- "Controleer browsertaldetectie met getInitialLanguage()",
73
- "Combineer met design tokens voor consistent thema's in alle talen"
74
- ]
75
- }
76
- },
77
- "status": {
78
- "heading": "Live status",
79
- "cookie": "Cookie",
80
- "backend": "Backend",
81
- "simulate": "Backend synchronisatie simuleren",
82
- "resultOk": "Backend synchronisatie geslaagd",
83
- "resultFail": "Backend synchronisatie mislukt"
84
- }
85
- }
1
+ {
2
+ "title": "Shared i18n demo",
3
+ "subtitle": "Een lichtgewicht React i18next wrapper met cookie persistentie.",
4
+ "cta": "Taal wisselen",
5
+ "overview": {
6
+ "heading": "Overzicht",
7
+ "description": "@asafarim/shared-i18n is een production-grade internationalisatie (i18n) pakket voor React-applicaties.",
8
+ "features": {
9
+ "title": "Belangrijkste Functies",
10
+ "items": [
11
+ "Ondersteuning voor meerdere talen met cookie persistentie",
12
+ "Ingebouwde taaldetectie en fallback",
13
+ "TypeScript-ondersteuning met volledige type veiligheid",
14
+ "Vooraf geconfigureerde common en identity-portal naamruimten",
15
+ "Naadloze integratie met react-i18next",
16
+ "Synchronisatie van taalvoorkeur met backend",
17
+ "SSR-veilige hulpprogramma's voor server-side rendering"
18
+ ]
19
+ },
20
+ "useCases": {
21
+ "title": "Ideaal Voor",
22
+ "items": [
23
+ "Globale applicaties die ondersteuning voor meerdere talen vereisen",
24
+ "Enterprise-platforms met taalvoorkeuren van gebruikers",
25
+ "Identiteits- en verificatiesystemen",
26
+ "Content management systemen met lokalisatie",
27
+ "SaaS-applicaties die internationale gebruikers bedienen"
28
+ ]
29
+ }
30
+ },
31
+ "getStarted": {
32
+ "heading": "Aan de Slag",
33
+ "intro": "Leer hoe je @asafarim/shared-i18n in minuten in je React-applicatie integreert.",
34
+ "steps": [
35
+ {
36
+ "title": "1. Installeer het Pakket",
37
+ "description": "Voeg het pakket toe aan je projectafhankelijkheden.",
38
+ "code": "pnpm add @asafarim/shared-i18n"
39
+ },
40
+ {
41
+ "title": "2. Initialiseer i18n in Je App",
42
+ "description": "Roep initI18n aan bij het opstarten van de applicatie om taalinstellingen te configureren.",
43
+ "code": "import { initI18n } from '@asafarim/shared-i18n';\n\ninitI18n({\n defaultNS: 'common',\n ns: ['common', 'identityPortal'],\n resources: { /* je vertalingen */ }\n});"
44
+ },
45
+ {
46
+ "title": "3. Gebruik de useLanguage Hook",
47
+ "description": "Krijg toegang tot taalwisseling en huidige taaltoestand in je componenten.",
48
+ "code": "const { changeLanguage, isChanging } = useLanguage();\n\n<button onClick={() => changeLanguage('en')}>\n Naar Engels\n</button>"
49
+ },
50
+ {
51
+ "title": "4. Vertaal met useTranslation",
52
+ "description": "Gebruik de useTranslation hook om toegang te krijgen tot vertaalde strings.",
53
+ "code": "const { t } = useTranslation('common');\n\n<h1>{t('welcome')}</h1>"
54
+ },
55
+ {
56
+ "title": "5. Maak Gebruik van Cookie Persistentie",
57
+ "description": "Taalvoorkeuren van gebruikers worden automatisch opgeslagen en hersteld.",
58
+ "code": "// Automatisch opgeslagen via cookies\n// Geen extra setup vereist!"
59
+ },
60
+ {
61
+ "title": "6. Synchroniseer met Backend (Optioneel)",
62
+ "description": "Werk taalvoorkeuren van gebruikers bij op je backend.",
63
+ "code": "import { updateUserLanguagePreference } from '@asafarim/shared-i18n';\n\nawait updateUserLanguagePreference('nl');"
64
+ }
65
+ ],
66
+ "tips": {
67
+ "title": "Pro Tips",
68
+ "items": [
69
+ "Gebruik naamruimten om vertalingen per functie in te delen",
70
+ "Maak gebruik van de Trans-component voor complexe vertalingen met variabelen",
71
+ "Stel VITE_IDENTITY_API_URL in voor backend-synchronisatie",
72
+ "Controleer browsertaldetectie met getInitialLanguage()",
73
+ "Combineer met design tokens voor consistent thema's in alle talen"
74
+ ]
75
+ }
76
+ },
77
+ "status": {
78
+ "heading": "Live status",
79
+ "cookie": "Cookie",
80
+ "backend": "Backend",
81
+ "simulate": "Backend synchronisatie simuleren",
82
+ "resultOk": "Backend synchronisatie geslaagd",
83
+ "resultFail": "Backend synchronisatie mislukt"
84
+ }
85
+ }
package/demo/src/main.tsx CHANGED
@@ -1,24 +1,29 @@
1
- import React from 'react'
2
- import ReactDOM from 'react-dom/client'
3
- import { initI18n } from '@asafarim/shared-i18n'
4
- import App from './App'
5
- import './index.css'
6
- import enDemo from './locales/en/demo.json'
7
- import nlDemo from './locales/nl/demo.json'
8
- import frDemo from './locales/fr/demo.json'
9
-
10
- initI18n({
11
- defaultNS: 'common',
12
- ns: ['common', 'demo'],
13
- resources: {
14
- en: { demo: enDemo },
15
- nl: { demo: nlDemo },
16
- fr: { demo: frDemo }
17
- }
18
- })
19
-
20
- ReactDOM.createRoot(document.getElementById('root')!).render(
21
- <React.StrictMode>
22
- <App />
23
- </React.StrictMode>,
24
- )
1
+ import React from 'react'
2
+ import ReactDOM from 'react-dom/client'
3
+ import { initI18n } from '@asafarim/shared-i18n'
4
+ import '@asafarim/country-language-selector/styles.css'
5
+ import App from './App'
6
+ import './index.css'
7
+ import enDemo from './locales/en/demo.json'
8
+ import nlDemo from './locales/nl/demo.json'
9
+ import frDemo from './locales/fr/demo.json'
10
+ import itDemo from './locales/it/demo.json'
11
+ import deDemo from './locales/de/demo.json'
12
+
13
+ initI18n({
14
+ defaultNS: 'common',
15
+ ns: ['common', 'demo'],
16
+ resources: {
17
+ en: { demo: enDemo },
18
+ nl: { demo: nlDemo },
19
+ fr: { demo: frDemo },
20
+ it: { demo: itDemo },
21
+ de: { demo: deDemo }
22
+ }
23
+ })
24
+
25
+ ReactDOM.createRoot(document.getElementById('root')!).render(
26
+ <React.StrictMode>
27
+ <App />
28
+ </React.StrictMode>,
29
+ )
@@ -1,18 +1,18 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2020",
4
- "useDefineForClassFields": true,
5
- "lib": ["ES2020", "DOM", "DOM.Iterable"],
6
- "module": "ESNext",
7
- "skipLibCheck": true,
8
- "strict": true,
9
- "esModuleInterop": true,
10
- "resolveJsonModule": true,
11
- "moduleResolution": "bundler",
12
- "allowImportingTsExtensions": true,
13
- "noEmit": true,
14
- "jsx": "react-jsx"
15
- },
16
- "include": ["src", "../src/types", "./vite-env.d.ts"],
17
- "references": [{ "path": "./tsconfig.node.json" }, { "path": "../tsconfig.json" }]
18
- }
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "useDefineForClassFields": true,
5
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
6
+ "module": "ESNext",
7
+ "skipLibCheck": true,
8
+ "strict": true,
9
+ "esModuleInterop": true,
10
+ "resolveJsonModule": true,
11
+ "moduleResolution": "bundler",
12
+ "allowImportingTsExtensions": true,
13
+ "noEmit": true,
14
+ "jsx": "react-jsx"
15
+ },
16
+ "include": ["src", "../src/types", "./vite-env.d.ts"],
17
+ "references": [{ "path": "./tsconfig.node.json" }, { "path": "../tsconfig.json" }]
18
+ }
@@ -1,10 +1,10 @@
1
- {
2
- "compilerOptions": {
3
- "composite": true,
4
- "skipLibCheck": true,
5
- "module": "ESNext",
6
- "moduleResolution": "bundler",
7
- "allowSyntheticDefaultImports": true
8
- },
9
- "include": ["vite.config.ts"]
10
- }
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "skipLibCheck": true,
5
+ "module": "ESNext",
6
+ "moduleResolution": "bundler",
7
+ "allowSyntheticDefaultImports": true
8
+ },
9
+ "include": ["vite.config.ts"]
10
+ }
@@ -1 +1 @@
1
- {"root":["./src/app.tsx","./src/main.tsx","./src/components/getstartedsection.tsx","./src/components/keytable.tsx","./src/components/languagebar.tsx","./src/components/languageswitcherdemo.tsx","./src/components/overviewsection.tsx","./src/components/panel.tsx","./src/components/statuscard.tsx","../src/types/css.d.ts","../vite-env.d.ts"],"version":"5.8.3"}
1
+ {"root":["./src/app.tsx","./src/main.tsx","./src/components/countrylanguagedemo.tsx","./src/components/getstartedsection.tsx","./src/components/keytable.tsx","./src/components/languagebar.tsx","./src/components/languageswitcherdemo.tsx","./src/components/logo.tsx","./src/components/overviewsection.tsx","./src/components/panel.tsx","./src/components/statuscard.tsx","../src/types/css.d.ts","./vite-env.d.ts"],"version":"5.8.3"}
@@ -1,8 +1,8 @@
1
- /// <reference types="vite/client" />
2
-
3
- declare module 'vite/client' {
4
- interface ImportMetaEnv {
5
- readonly BASE_URL: string
6
- readonly VITE_IDENTITY_API_URL?: string
7
- }
1
+ /// <reference types="vite/client" />
2
+
3
+ declare module 'vite/client' {
4
+ interface ImportMetaEnv {
5
+ readonly BASE_URL: string
6
+ readonly VITE_IDENTITY_API_URL?: string
7
+ }
8
8
  }
@@ -1,2 +1,2 @@
1
- declare const _default: import("vite").UserConfig;
2
- export default _default;
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
@@ -1,10 +1,10 @@
1
- import { defineConfig } from 'vite';
2
- import react from '@vitejs/plugin-react';
3
- export default defineConfig({
4
- plugins: [react()],
5
- base: process.env.BASE_PATH || '/shared-i18n/',
6
- server: {
7
- port: 5173,
8
- open: true
9
- }
10
- });
1
+ import { defineConfig } from 'vite';
2
+ import react from '@vitejs/plugin-react';
3
+ export default defineConfig({
4
+ plugins: [react()],
5
+ base: process.env.BASE_PATH || '/shared-i18n/',
6
+ server: {
7
+ port: 5173,
8
+ open: true
9
+ }
10
+ });