@workos-inc/widgets-i18n 0.1.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 (110) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +21 -0
  3. package/README.md +219 -0
  4. package/dist/cjs/index.cjs +38 -0
  5. package/dist/cjs/index.cjs.map +1 -0
  6. package/dist/cjs/index.d.cts +4 -0
  7. package/dist/cjs/lib/dictionaries.cjs +178 -0
  8. package/dist/cjs/lib/dictionaries.cjs.map +1 -0
  9. package/dist/cjs/lib/dictionaries.d.cts +24924 -0
  10. package/dist/cjs/lib/locale-provider.cjs +92 -0
  11. package/dist/cjs/lib/locale-provider.cjs.map +1 -0
  12. package/dist/cjs/lib/locale-provider.d.cts +12 -0
  13. package/dist/cjs/lib/types/react.d.cjs +3 -0
  14. package/dist/cjs/lib/types/react.d.cjs.map +1 -0
  15. package/dist/cjs/lib/types/react.d.d.cts +5 -0
  16. package/dist/esm/index.d.ts +4 -0
  17. package/dist/esm/index.js +15 -0
  18. package/dist/esm/index.js.map +1 -0
  19. package/dist/esm/lib/dictionaries.d.ts +24924 -0
  20. package/dist/esm/lib/dictionaries.js +140 -0
  21. package/dist/esm/lib/dictionaries.js.map +1 -0
  22. package/dist/esm/lib/locale-provider.d.ts +12 -0
  23. package/dist/esm/lib/locale-provider.js +64 -0
  24. package/dist/esm/lib/locale-provider.js.map +1 -0
  25. package/dist/esm/lib/types/react.d.d.ts +5 -0
  26. package/dist/esm/lib/types/react.d.js +2 -0
  27. package/dist/esm/lib/types/react.d.js.map +1 -0
  28. package/dist/lang/translations/af.json +281 -0
  29. package/dist/lang/translations/am.json +281 -0
  30. package/dist/lang/translations/ar.json +281 -0
  31. package/dist/lang/translations/bg.json +281 -0
  32. package/dist/lang/translations/bn.json +281 -0
  33. package/dist/lang/translations/bs.json +281 -0
  34. package/dist/lang/translations/ca.json +281 -0
  35. package/dist/lang/translations/cs.json +281 -0
  36. package/dist/lang/translations/da.json +281 -0
  37. package/dist/lang/translations/de.json +284 -0
  38. package/dist/lang/translations/el.json +281 -0
  39. package/dist/lang/translations/en-AU.json +281 -0
  40. package/dist/lang/translations/en-CA.json +281 -0
  41. package/dist/lang/translations/en-GB.json +281 -0
  42. package/dist/lang/translations/en-US.json +280 -0
  43. package/dist/lang/translations/es-419.json +281 -0
  44. package/dist/lang/translations/es-US.json +281 -0
  45. package/dist/lang/translations/es.json +281 -0
  46. package/dist/lang/translations/et.json +281 -0
  47. package/dist/lang/translations/fa.json +281 -0
  48. package/dist/lang/translations/fi.json +281 -0
  49. package/dist/lang/translations/fil.json +281 -0
  50. package/dist/lang/translations/fr-BE.json +281 -0
  51. package/dist/lang/translations/fr-CA.json +281 -0
  52. package/dist/lang/translations/fr.json +281 -0
  53. package/dist/lang/translations/fy.json +281 -0
  54. package/dist/lang/translations/gl.json +281 -0
  55. package/dist/lang/translations/gu.json +281 -0
  56. package/dist/lang/translations/ha.json +281 -0
  57. package/dist/lang/translations/he.json +281 -0
  58. package/dist/lang/translations/hi.json +281 -0
  59. package/dist/lang/translations/hr.json +281 -0
  60. package/dist/lang/translations/hu.json +281 -0
  61. package/dist/lang/translations/hy.json +281 -0
  62. package/dist/lang/translations/id.json +281 -0
  63. package/dist/lang/translations/is.json +281 -0
  64. package/dist/lang/translations/it.json +281 -0
  65. package/dist/lang/translations/ja.json +281 -0
  66. package/dist/lang/translations/jv.json +281 -0
  67. package/dist/lang/translations/ka.json +281 -0
  68. package/dist/lang/translations/kk.json +281 -0
  69. package/dist/lang/translations/km.json +281 -0
  70. package/dist/lang/translations/kn.json +281 -0
  71. package/dist/lang/translations/ko.json +281 -0
  72. package/dist/lang/translations/lt.json +280 -0
  73. package/dist/lang/translations/lv.json +281 -0
  74. package/dist/lang/translations/mk.json +281 -0
  75. package/dist/lang/translations/ml.json +281 -0
  76. package/dist/lang/translations/mn.json +281 -0
  77. package/dist/lang/translations/mr.json +281 -0
  78. package/dist/lang/translations/ms.json +281 -0
  79. package/dist/lang/translations/my.json +281 -0
  80. package/dist/lang/translations/nb.json +281 -0
  81. package/dist/lang/translations/ne.json +281 -0
  82. package/dist/lang/translations/nl-BE.json +281 -0
  83. package/dist/lang/translations/nl.json +281 -0
  84. package/dist/lang/translations/nn.json +281 -0
  85. package/dist/lang/translations/no.json +281 -0
  86. package/dist/lang/translations/pa.json +281 -0
  87. package/dist/lang/translations/pl.json +281 -0
  88. package/dist/lang/translations/pt-BR.json +281 -0
  89. package/dist/lang/translations/pt.json +281 -0
  90. package/dist/lang/translations/ro.json +281 -0
  91. package/dist/lang/translations/ru.json +281 -0
  92. package/dist/lang/translations/sk.json +281 -0
  93. package/dist/lang/translations/sl.json +281 -0
  94. package/dist/lang/translations/sq.json +281 -0
  95. package/dist/lang/translations/sr.json +281 -0
  96. package/dist/lang/translations/sv.json +281 -0
  97. package/dist/lang/translations/sw.json +281 -0
  98. package/dist/lang/translations/ta.json +281 -0
  99. package/dist/lang/translations/te.json +281 -0
  100. package/dist/lang/translations/th.json +281 -0
  101. package/dist/lang/translations/tr.json +281 -0
  102. package/dist/lang/translations/uk.json +281 -0
  103. package/dist/lang/translations/ur.json +281 -0
  104. package/dist/lang/translations/uz.json +281 -0
  105. package/dist/lang/translations/vi.json +281 -0
  106. package/dist/lang/translations/zh-CN.json +280 -0
  107. package/dist/lang/translations/zh-HK.json +281 -0
  108. package/dist/lang/translations/zh-TW.json +281 -0
  109. package/dist/lang/translations/zu.json +281 -0
  110. package/package.json +63 -0
@@ -0,0 +1,140 @@
1
+ const DEFAULT_LOCALE = "en-US";
2
+ const enUS = Promise.resolve({});
3
+ const importMap = {
4
+ af: () => import("../../lang/translations/af.json"),
5
+ am: () => import("../../lang/translations/am.json"),
6
+ ar: () => import("../../lang/translations/ar.json"),
7
+ bg: () => import("../../lang/translations/bg.json"),
8
+ bn: () => import("../../lang/translations/bn.json"),
9
+ bs: () => import("../../lang/translations/bs.json"),
10
+ ca: () => import("../../lang/translations/ca.json"),
11
+ cs: () => import("../../lang/translations/cs.json"),
12
+ da: () => import("../../lang/translations/da.json"),
13
+ de: () => import("../../lang/translations/de.json"),
14
+ "de-DE": () => import("../../lang/translations/de.json"),
15
+ el: () => import("../../lang/translations/el.json"),
16
+ en: async () => ({ default: {} }),
17
+ "en-AU": () => import("../../lang/translations/en-AU.json"),
18
+ "en-CA": () => import("../../lang/translations/en-CA.json"),
19
+ "en-GB": () => import("../../lang/translations/en-GB.json"),
20
+ "en-US": async () => ({ default: {} }),
21
+ es: () => import("../../lang/translations/es.json"),
22
+ "es-419": () => import("../../lang/translations/es-419.json"),
23
+ "es-ES": () => import("../../lang/translations/es.json"),
24
+ "es-US": () => import("../../lang/translations/es-US.json"),
25
+ et: () => import("../../lang/translations/et.json"),
26
+ fa: () => import("../../lang/translations/fa.json"),
27
+ fi: () => import("../../lang/translations/fi.json"),
28
+ fil: () => import("../../lang/translations/fil.json"),
29
+ fr: () => import("../../lang/translations/fr.json"),
30
+ "fr-BE": () => import("../../lang/translations/fr-BE.json"),
31
+ "fr-CA": () => import("../../lang/translations/fr-CA.json"),
32
+ "fr-FR": () => import("../../lang/translations/fr.json"),
33
+ fy: () => import("../../lang/translations/fy.json"),
34
+ gl: () => import("../../lang/translations/gl.json"),
35
+ gu: () => import("../../lang/translations/gu.json"),
36
+ ha: () => import("../../lang/translations/ha.json"),
37
+ he: () => import("../../lang/translations/he.json"),
38
+ hi: () => import("../../lang/translations/hi.json"),
39
+ hr: () => import("../../lang/translations/hr.json"),
40
+ hu: () => import("../../lang/translations/hu.json"),
41
+ hy: () => import("../../lang/translations/hy.json"),
42
+ id: () => import("../../lang/translations/id.json"),
43
+ is: () => import("../../lang/translations/is.json"),
44
+ it: () => import("../../lang/translations/it.json"),
45
+ "it-IT": () => import("../../lang/translations/it.json"),
46
+ ja: () => import("../../lang/translations/ja.json"),
47
+ jv: () => import("../../lang/translations/jv.json"),
48
+ ka: () => import("../../lang/translations/ka.json"),
49
+ kk: () => import("../../lang/translations/kk.json"),
50
+ km: () => import("../../lang/translations/km.json"),
51
+ kn: () => import("../../lang/translations/kn.json"),
52
+ ko: () => import("../../lang/translations/ko.json"),
53
+ lt: () => import("../../lang/translations/lt.json"),
54
+ lv: () => import("../../lang/translations/lv.json"),
55
+ mk: () => import("../../lang/translations/mk.json"),
56
+ ml: () => import("../../lang/translations/ml.json"),
57
+ mn: () => import("../../lang/translations/mn.json"),
58
+ mr: () => import("../../lang/translations/mr.json"),
59
+ ms: () => import("../../lang/translations/ms.json"),
60
+ my: () => import("../../lang/translations/my.json"),
61
+ nb: () => import("../../lang/translations/nb.json"),
62
+ ne: () => import("../../lang/translations/ne.json"),
63
+ nl: () => import("../../lang/translations/nl.json"),
64
+ "nl-BE": () => import("../../lang/translations/nl-BE.json"),
65
+ "nl-NL": () => import("../../lang/translations/nl.json"),
66
+ nn: () => import("../../lang/translations/nn.json"),
67
+ no: () => import("../../lang/translations/no.json"),
68
+ pa: () => import("../../lang/translations/pa.json"),
69
+ pl: () => import("../../lang/translations/pl.json"),
70
+ pt: () => import("../../lang/translations/pt.json"),
71
+ "pt-BR": () => import("../../lang/translations/pt-BR.json"),
72
+ "pt-PT": () => import("../../lang/translations/pt.json"),
73
+ ro: () => import("../../lang/translations/ro.json"),
74
+ ru: () => import("../../lang/translations/ru.json"),
75
+ sk: () => import("../../lang/translations/sk.json"),
76
+ sl: () => import("../../lang/translations/sl.json"),
77
+ sq: () => import("../../lang/translations/sq.json"),
78
+ sr: () => import("../../lang/translations/sr.json"),
79
+ sv: () => import("../../lang/translations/sv.json"),
80
+ sw: () => import("../../lang/translations/sw.json"),
81
+ ta: () => import("../../lang/translations/ta.json"),
82
+ te: () => import("../../lang/translations/te.json"),
83
+ th: () => import("../../lang/translations/th.json"),
84
+ tr: () => import("../../lang/translations/tr.json"),
85
+ uk: () => import("../../lang/translations/uk.json"),
86
+ ur: () => import("../../lang/translations/ur.json"),
87
+ uz: () => import("../../lang/translations/uz.json"),
88
+ vi: () => import("../../lang/translations/vi.json"),
89
+ zh: () => import("../../lang/translations/zh-CN.json"),
90
+ "zh-CN": () => import("../../lang/translations/zh-CN.json"),
91
+ "zh-HK": () => import("../../lang/translations/zh-HK.json"),
92
+ "zh-TW": () => import("../../lang/translations/zh-TW.json"),
93
+ zu: () => import("../../lang/translations/zu.json")
94
+ };
95
+ let localeCodesCache;
96
+ function getLocaleCodes() {
97
+ if (localeCodesCache) {
98
+ return new Set(localeCodesCache);
99
+ }
100
+ localeCodesCache = new Set(Object.keys(importMap));
101
+ return localeCodesCache;
102
+ }
103
+ async function loadDictionary(localeCode) {
104
+ const asyncImport = importMap[localeCode];
105
+ if (!asyncImport) {
106
+ return enUS;
107
+ }
108
+ const dictionary = await asyncImport();
109
+ return dictionary.default || enUS;
110
+ }
111
+ const promiseCache = /* @__PURE__ */ new Map();
112
+ const isValidLocale = (locale) => typeof locale === "string" && (localeCodesCache || getLocaleCodes()).has(locale);
113
+ const RTL_LOCALES = /* @__PURE__ */ new Set(["ar", "fa", "he", "ur"]);
114
+ const getDir = (locale) => RTL_LOCALES.has(locale) ? "rtl" : "ltr";
115
+ function getDictionary(localeCode) {
116
+ if (!isValidLocale(localeCode)) {
117
+ console.warn(
118
+ `@workos-inc/widgets-i18n: locale ${localeCode} is invalid, falling back to ${DEFAULT_LOCALE}`
119
+ );
120
+ return enUS;
121
+ }
122
+ const cached = promiseCache.get(localeCode);
123
+ if (cached) {
124
+ return cached;
125
+ }
126
+ const promise = loadDictionary(localeCode);
127
+ promiseCache.set(localeCode, promise);
128
+ promise.catch(() => {
129
+ promiseCache.delete(localeCode);
130
+ });
131
+ return promise;
132
+ }
133
+ export {
134
+ DEFAULT_LOCALE,
135
+ getDictionary,
136
+ getDir,
137
+ getLocaleCodes,
138
+ isValidLocale
139
+ };
140
+ //# sourceMappingURL=dictionaries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/dictionaries.ts"],"sourcesContent":["export const DEFAULT_LOCALE = \"en-US\";\nconst enUS = Promise.resolve({});\n\nexport type Dictionary = Record<string, string>;\n\n// The import path must be a string literal (not a variable) so that webpack can\n// do static analysis and create individual bundles for each JSON file\nconst importMap = {\n af: () => import(\"../../lang/translations/af.json\"),\n am: () => import(\"../../lang/translations/am.json\"),\n ar: () => import(\"../../lang/translations/ar.json\"),\n bg: () => import(\"../../lang/translations/bg.json\"),\n bn: () => import(\"../../lang/translations/bn.json\"),\n bs: () => import(\"../../lang/translations/bs.json\"),\n ca: () => import(\"../../lang/translations/ca.json\"),\n cs: () => import(\"../../lang/translations/cs.json\"),\n da: () => import(\"../../lang/translations/da.json\"),\n de: () => import(\"../../lang/translations/de.json\"),\n \"de-DE\": () => import(\"../../lang/translations/de.json\"),\n el: () => import(\"../../lang/translations/el.json\"),\n en: async () => ({ default: {} }),\n \"en-AU\": () => import(\"../../lang/translations/en-AU.json\"),\n \"en-CA\": () => import(\"../../lang/translations/en-CA.json\"),\n \"en-GB\": () => import(\"../../lang/translations/en-GB.json\"),\n \"en-US\": async () => ({ default: {} }),\n es: () => import(\"../../lang/translations/es.json\"),\n \"es-419\": () => import(\"../../lang/translations/es-419.json\"),\n \"es-ES\": () => import(\"../../lang/translations/es.json\"),\n \"es-US\": () => import(\"../../lang/translations/es-US.json\"),\n et: () => import(\"../../lang/translations/et.json\"),\n fa: () => import(\"../../lang/translations/fa.json\"),\n fi: () => import(\"../../lang/translations/fi.json\"),\n fil: () => import(\"../../lang/translations/fil.json\"),\n fr: () => import(\"../../lang/translations/fr.json\"),\n \"fr-BE\": () => import(\"../../lang/translations/fr-BE.json\"),\n \"fr-CA\": () => import(\"../../lang/translations/fr-CA.json\"),\n \"fr-FR\": () => import(\"../../lang/translations/fr.json\"),\n fy: () => import(\"../../lang/translations/fy.json\"),\n gl: () => import(\"../../lang/translations/gl.json\"),\n gu: () => import(\"../../lang/translations/gu.json\"),\n ha: () => import(\"../../lang/translations/ha.json\"),\n he: () => import(\"../../lang/translations/he.json\"),\n hi: () => import(\"../../lang/translations/hi.json\"),\n hr: () => import(\"../../lang/translations/hr.json\"),\n hu: () => import(\"../../lang/translations/hu.json\"),\n hy: () => import(\"../../lang/translations/hy.json\"),\n id: () => import(\"../../lang/translations/id.json\"),\n is: () => import(\"../../lang/translations/is.json\"),\n it: () => import(\"../../lang/translations/it.json\"),\n \"it-IT\": () => import(\"../../lang/translations/it.json\"),\n ja: () => import(\"../../lang/translations/ja.json\"),\n jv: () => import(\"../../lang/translations/jv.json\"),\n ka: () => import(\"../../lang/translations/ka.json\"),\n kk: () => import(\"../../lang/translations/kk.json\"),\n km: () => import(\"../../lang/translations/km.json\"),\n kn: () => import(\"../../lang/translations/kn.json\"),\n ko: () => import(\"../../lang/translations/ko.json\"),\n lt: () => import(\"../../lang/translations/lt.json\"),\n lv: () => import(\"../../lang/translations/lv.json\"),\n mk: () => import(\"../../lang/translations/mk.json\"),\n ml: () => import(\"../../lang/translations/ml.json\"),\n mn: () => import(\"../../lang/translations/mn.json\"),\n mr: () => import(\"../../lang/translations/mr.json\"),\n ms: () => import(\"../../lang/translations/ms.json\"),\n my: () => import(\"../../lang/translations/my.json\"),\n nb: () => import(\"../../lang/translations/nb.json\"),\n ne: () => import(\"../../lang/translations/ne.json\"),\n nl: () => import(\"../../lang/translations/nl.json\"),\n \"nl-BE\": () => import(\"../../lang/translations/nl-BE.json\"),\n \"nl-NL\": () => import(\"../../lang/translations/nl.json\"),\n nn: () => import(\"../../lang/translations/nn.json\"),\n no: () => import(\"../../lang/translations/no.json\"),\n pa: () => import(\"../../lang/translations/pa.json\"),\n pl: () => import(\"../../lang/translations/pl.json\"),\n pt: () => import(\"../../lang/translations/pt.json\"),\n \"pt-BR\": () => import(\"../../lang/translations/pt-BR.json\"),\n \"pt-PT\": () => import(\"../../lang/translations/pt.json\"),\n ro: () => import(\"../../lang/translations/ro.json\"),\n ru: () => import(\"../../lang/translations/ru.json\"),\n sk: () => import(\"../../lang/translations/sk.json\"),\n sl: () => import(\"../../lang/translations/sl.json\"),\n sq: () => import(\"../../lang/translations/sq.json\"),\n sr: () => import(\"../../lang/translations/sr.json\"),\n sv: () => import(\"../../lang/translations/sv.json\"),\n sw: () => import(\"../../lang/translations/sw.json\"),\n ta: () => import(\"../../lang/translations/ta.json\"),\n te: () => import(\"../../lang/translations/te.json\"),\n th: () => import(\"../../lang/translations/th.json\"),\n tr: () => import(\"../../lang/translations/tr.json\"),\n uk: () => import(\"../../lang/translations/uk.json\"),\n ur: () => import(\"../../lang/translations/ur.json\"),\n uz: () => import(\"../../lang/translations/uz.json\"),\n vi: () => import(\"../../lang/translations/vi.json\"),\n zh: () => import(\"../../lang/translations/zh-CN.json\"),\n \"zh-CN\": () => import(\"../../lang/translations/zh-CN.json\"),\n \"zh-HK\": () => import(\"../../lang/translations/zh-HK.json\"),\n \"zh-TW\": () => import(\"../../lang/translations/zh-TW.json\"),\n zu: () => import(\"../../lang/translations/zu.json\"),\n} satisfies Record<string, () => Promise<{ default: Dictionary }>>;\n\nexport type LocaleCode = keyof typeof importMap;\n\nlet localeCodesCache: Set<LocaleCode> | undefined;\n\nexport function getLocaleCodes(): Set<LocaleCode> {\n if (localeCodesCache) {\n return new Set(localeCodesCache);\n }\n localeCodesCache = new Set(Object.keys(importMap) as LocaleCode[]);\n return localeCodesCache;\n}\n\nasync function loadDictionary(localeCode: LocaleCode): Promise<Dictionary> {\n const asyncImport = importMap[localeCode];\n if (!asyncImport) {\n return enUS;\n }\n\n const dictionary = await asyncImport();\n return dictionary.default || enUS;\n}\n\n// Cache for storing promises by locale code\n// This ensures React Suspense receives the same promise instance for the same locale\nconst promiseCache = new Map<LocaleCode, Promise<Dictionary>>();\n\nexport const isValidLocale = (locale: unknown): locale is LocaleCode =>\n typeof locale === \"string\" &&\n (localeCodesCache || getLocaleCodes()).has(locale as LocaleCode);\n\n// Arabic, Farsi (Persian), Hebrew, and Urdu are RTL\nconst RTL_LOCALES = new Set([\"ar\", \"fa\", \"he\", \"ur\"]);\nexport const getDir = (locale: LocaleCode): \"ltr\" | \"rtl\" =>\n RTL_LOCALES.has(locale) ? \"rtl\" : \"ltr\";\n\nexport function getDictionary(localeCode: string): Promise<Dictionary> {\n if (!isValidLocale(localeCode)) {\n // en-US is imported normally and used as a fallback\n console.warn(\n `@workos-inc/widgets-i18n: locale ${localeCode} is invalid, falling back to ${DEFAULT_LOCALE}`,\n );\n return enUS;\n }\n\n const cached = promiseCache.get(localeCode);\n if (cached) {\n return cached;\n }\n\n const promise = loadDictionary(localeCode);\n promiseCache.set(localeCode, promise);\n\n // If the promise fails, remove it from cache so it can be retried\n promise.catch(() => {\n promiseCache.delete(localeCode);\n });\n\n return promise;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,12 @@
1
+ import { LocaleCode, Dictionary } from './dictionaries.js';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+ import * as React from 'react';
4
+
5
+ interface WorkOsLocaleProviderProps {
6
+ children: React.ReactNode;
7
+ locale: LocaleCode;
8
+ initialMessages?: Dictionary;
9
+ }
10
+ declare function WorkOsLocaleProvider({ children, locale, initialMessages, }: WorkOsLocaleProviderProps): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
11
+
12
+ export { WorkOsLocaleProvider, type WorkOsLocaleProviderProps };
@@ -0,0 +1,64 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import {
5
+ IntlProvider as ReactIntlProvider,
6
+ useIntl as useReactIntl
7
+ } from "react-intl";
8
+ import {
9
+ DEFAULT_LOCALE,
10
+ getDictionary
11
+ } from "./dictionaries.js";
12
+ import { internal_IntlContext as IntlContext } from "@workos-inc/widgets";
13
+ function IntlContextProvider({ children }) {
14
+ const intl = useReactIntl();
15
+ return /* @__PURE__ */ jsx(
16
+ IntlContext.Provider,
17
+ {
18
+ value: {
19
+ locale: intl.locale,
20
+ formatMessage: React.useCallback(
21
+ (...args) => intl.formatMessage(...args),
22
+ [intl]
23
+ )
24
+ },
25
+ children
26
+ }
27
+ );
28
+ }
29
+ function WorkOsLocaleProvider({
30
+ children,
31
+ locale,
32
+ initialMessages
33
+ }) {
34
+ const [messages, setMessages] = React.useState(
35
+ initialMessages ?? null
36
+ );
37
+ React.useEffect(() => {
38
+ let isCurrent = true;
39
+ getDictionary(locale).then((messages2) => {
40
+ if (isCurrent) {
41
+ setMessages(messages2);
42
+ }
43
+ });
44
+ return () => {
45
+ isCurrent = false;
46
+ };
47
+ }, [locale]);
48
+ if (!messages) {
49
+ return children;
50
+ }
51
+ return /* @__PURE__ */ jsx(
52
+ ReactIntlProvider,
53
+ {
54
+ defaultLocale: DEFAULT_LOCALE,
55
+ locale,
56
+ messages,
57
+ children: /* @__PURE__ */ jsx(IntlContextProvider, { children })
58
+ }
59
+ );
60
+ }
61
+ export {
62
+ WorkOsLocaleProvider
63
+ };
64
+ //# sourceMappingURL=locale-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/locale-provider.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n IntlProvider as ReactIntlProvider,\n useIntl as useReactIntl,\n} from \"react-intl\";\nimport {\n DEFAULT_LOCALE,\n getDictionary,\n type LocaleCode,\n type Dictionary,\n} from \"./dictionaries.js\";\nimport { internal_IntlContext as IntlContext } from \"@workos-inc/widgets\";\n\nfunction IntlContextProvider({ children }: { children: React.ReactNode }) {\n const intl = useReactIntl();\n return (\n <IntlContext.Provider\n value={{\n locale: intl.locale,\n formatMessage: React.useCallback(\n (...args) => intl.formatMessage(...args),\n [intl],\n ),\n }}\n >\n {children}\n </IntlContext.Provider>\n );\n}\n\nexport interface WorkOsLocaleProviderProps {\n children: React.ReactNode;\n locale: LocaleCode;\n initialMessages?: Dictionary;\n}\n\nexport function WorkOsLocaleProvider({\n children,\n locale,\n initialMessages,\n}: WorkOsLocaleProviderProps) {\n // TODO: When we decide we want to force a dependency on React 19, we can\n // remove the state and effect here and unwrap the promise via React.use +\n // Suspense. In the meantime we will do this client-side via useEffect, but\n // for users on React 19 who want to handle this on the server, we expose an\n // `initialMessages` prop and export the `getDictionary` function. So they can\n // do this themselves and get the same optimized behavior (minus the minor\n // overhead of `useEffect`). Example:\n //\n // import { getDictionary, WorkOsLocaleProvider } from \"@workos-inc/widgets-i18n\";\n // function UserApp ({ children }) {\n // const messages = React.use(getDictionary('fr-FR'));\n // return (\n // <React.Suspense fallback={<Loading />}>\n // <WorkOsLocaleProvider locale={locale}>\n // {children}\n // </WorkOsLocaleProvider>\n // </React.Suspense>\n // );\n //}\n\n const [messages, setMessages] = React.useState<Dictionary | null>(\n initialMessages ?? null,\n );\n\n React.useEffect(() => {\n let isCurrent = true;\n getDictionary(locale).then((messages) => {\n if (isCurrent) {\n setMessages(messages);\n }\n });\n return () => {\n isCurrent = false;\n };\n }, [locale]);\n\n if (!messages) {\n return children;\n }\n\n return (\n <ReactIntlProvider\n defaultLocale={DEFAULT_LOCALE}\n locale={locale}\n messages={messages}\n >\n <IntlContextProvider>{children}</IntlContextProvider>\n </ReactIntlProvider>\n );\n}\n"],"mappings":";AAkBI;AAhBJ,YAAY,WAAW;AACvB;AAAA,EACE,gBAAgB;AAAA,EAChB,WAAW;AAAA,OACN;AACP;AAAA,EACE;AAAA,EACA;AAAA,OAGK;AACP,SAAS,wBAAwB,mBAAmB;AAEpD,SAAS,oBAAoB,EAAE,SAAS,GAAkC;AACxE,QAAM,OAAO,aAAa;AAC1B,SACE;AAAA,IAAC,YAAY;AAAA,IAAZ;AAAA,MACC,OAAO;AAAA,QACL,QAAQ,KAAK;AAAA,QACb,eAAe,MAAM;AAAA,UACnB,IAAI,SAAS,KAAK,cAAc,GAAG,IAAI;AAAA,UACvC,CAAC,IAAI;AAAA,QACP;AAAA,MACF;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;AAQO,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AACF,GAA8B;AAqB5B,QAAM,CAAC,UAAU,WAAW,IAAI,MAAM;AAAA,IACpC,mBAAmB;AAAA,EACrB;AAEA,QAAM,UAAU,MAAM;AACpB,QAAI,YAAY;AAChB,kBAAc,MAAM,EAAE,KAAK,CAACA,cAAa;AACvC,UAAI,WAAW;AACb,oBAAYA,SAAQ;AAAA,MACtB;AAAA,IACF,CAAC;AACD,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAEX,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAe;AAAA,MACf;AAAA,MACA;AAAA,MAEA,8BAAC,uBAAqB,UAAS;AAAA;AAAA,EACjC;AAEJ;","names":["messages"]}
@@ -0,0 +1,5 @@
1
+ declare module "react" {
2
+ interface CSSProperties {
3
+ [key: `--${string}`]: string | number;
4
+ }
5
+ }
@@ -0,0 +1,2 @@
1
+ import "react";
2
+ //# sourceMappingURL=react.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/types/react.d.ts"],"sourcesContent":["import \"react\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n [key: `--${string}`]: string | number;\n }\n}\n"],"mappings":"AAAA,OAAO;","names":[]}
@@ -0,0 +1,281 @@
1
+ {
2
+ "+0sQaN": "Verval",
3
+ "+2kQs5": "Voer asseblief 'n nuwe wagwoord in",
4
+ "+7UnNu": "Die ligging",
5
+ "+p4qwy": "Kanselleer",
6
+ "/4YwoE": "Sluit",
7
+ "/CNKkm": "Nuwe gebruikers sal uitgenooi word met die {roleName} rol, aangesien dit die enigste beskikbare een is.",
8
+ "/UCweF": "Tipe",
9
+ "/ZV6cj": "Verander",
10
+ "/aCgMQ": "Bekyk DNS-rekord",
11
+ "/fEPAD": "Herroep uitnodiging?",
12
+ "090qDK": "Daar was 'n fout met die stuur van die uitnodiging. Probeer asseblief weer.",
13
+ "0E29F1": "Hermagtig",
14
+ "0Ie4dM": "Herroep uitnodiging",
15
+ "0LyBVd": "'n Fout het voorgekom tydens die skep van die API-sleutel.",
16
+ "0VMIWs": "Kies 'n rol",
17
+ "0beebz": "Ken 'n rol toe",
18
+ "0duvF4": "Nooit",
19
+ "0p/a72": "Verifieerder-app",
20
+ "0stiTP": "Verwyder domein",
21
+ "0ulARV": "Voer 'n e-posadres in",
22
+ "16WmG0": "Koppel",
23
+ "1Fb48o": "Teken uit",
24
+ "1Htc3a": "Rol",
25
+ "1fzoWe": "Stuur uitnodiging weer",
26
+ "1kRd2b": "Kry verifikasiekode",
27
+ "1nsmNS": "Gebruikersaksies",
28
+ "1uF9ve": "Pyp aksies",
29
+ "24huc/": "Die afskakel van MFA sal die bykomende sekuriteitslaag op jou rekening verwyder.",
30
+ "3dQ5E+": "Geen gebruikers gevind vir soektog \"{query}\"",
31
+ "3dgA5f": "Die SAML-respons ondertekeningsertifikaat verval binnekort. Wanneer dit verval, sal gebruikers nie kan aanmeld nie.",
32
+ "4/66bS": "Voer die 6-syfer wagkode van jou verifiëring-app in.",
33
+ "46jEJT": "Is jy seker jy wil die uitnodiging na {email} herstuur?",
34
+ "4SH+qg": "Ons sal nie vir bykomende verifikasie vra tydens aanmelding nie.",
35
+ "4flMgv": "Deaktiveer",
36
+ "4ymFUc": "Stel Nuwe Wagwoord",
37
+ "4zDwGl": "Is jy seker jy wil {email} verwyder? Hierdie aksie is onmiddellik en kan nie ongedaan gemaak word nie.",
38
+ "5QzKdW": "Fout met data ophaal",
39
+ "5bhXUz": "Wysig",
40
+ "5tX19v": "Die SAML-respons ondertekeningsertifikaat het verval. Gebruikers sal nie in staat wees om by die toepassing aan te meld nie totdat die sertifikaat hernuwe word.",
41
+ "5uMNqG": "Uitnodiging gestuur",
42
+ "6+aYFi": "Nooi gebruiker uit",
43
+ "6/cdcS": "Kan jy nie die kode skandeer nie?",
44
+ "63f7SY": "Ontkies alles",
45
+ "63rRud": "'n Fout het voorgekom. Jy sal dalk CORS in die WorkOS Dashboard moet opstel.",
46
+ "6GcWa2": "Volledige naam",
47
+ "6YN1wO": "Toestemmings",
48
+ "7+lT5Q": "Die domein {domain} sal outomaties geverifieer word sodra die volgende DNS-rekord opgespoor word.",
49
+ "74JScV": "Bekyk DNS-rekord",
50
+ "75F+g5": "E-posadres",
51
+ "7enwzK": "Vee soektog uit",
52
+ "7tGCOh": "Verifieer jou identiteit",
53
+ "84pAvU": "Kanselleer",
54
+ "8GDtZu": "Verander wagwoord",
55
+ "8S+Cyw": "Gekoppel",
56
+ "8TuDfA": "Verbind",
57
+ "8d23GS": "Nuwe wagwoord",
58
+ "8xwdwI": "Gebruik 'n verifikasie-app soos {onep}, {google}, {authy}, of {microsoft} om die QR-kode hieronder te skandeer.",
59
+ "910Q6b": "Vorige",
60
+ "9ABlCr": "Ontkoppel rekening",
61
+ "A1DuWM": "Rolle",
62
+ "ABfT4E": "Nuwe wagwoord",
63
+ "ACNqhk": "E-posadres",
64
+ "APksY2": "Voeg domein by",
65
+ "AW/A69": "Gekoppelde rekeninge",
66
+ "AyVAAW": "Kanselleer",
67
+ "BBh86k": "Gebruiker",
68
+ "BWvbwY": "Status: Uitnodiging ",
69
+ "CVOVB0": "Geen rolle toegeken nie",
70
+ "CXHhXd": "Geskep",
71
+ "Cf+uSR": "Verwyder domein",
72
+ "DAYdcg": "Voornaam",
73
+ "DJXWAJ": "Verwyder",
74
+ "DtZ2fb": "Bygevoeg {timeAgo}",
75
+ "E2o/+H": "Status: ",
76
+ "E46t3O": "Laas gebruik",
77
+ "EFAK/K": "Jy sal nie weer toegang tot die sleutel hê nie. Kopieer dit asseblief nou.",
78
+ "EKf0ES": "Kanselleer",
79
+ "ER1Vmv": "Jy",
80
+ "ESS/aT": "Sluit",
81
+ "Ecig7v": "Kanselleer",
82
+ "EmYENK": "Bevestig",
83
+ "Eu+kuO": "Stel 'n verifieerder-app op",
84
+ "EyjGir": "Kopieer en sluit",
85
+ "FK7mP4": "Rol",
86
+ "FTUSRM": "Om voort te gaan, moet ons jou identiteit bevestig. Ons sal 'n tydelike verifikasiekode na {email} stuur.",
87
+ "FqU9hv": "Geen toestemmings gekies nie",
88
+ "GC8aGI": "Soek volgens naam",
89
+ "GLPUiU": "Hierdie API-sleutel sal onmiddellik gedeaktiveer word. API-versoeke wat hierdie sleutel gebruik sal verwerp word, wat kan veroorsaak dat enige stelsels wat steeds daarop staatmaak, kan breek.",
90
+ "GftsX9": "Jy sal uitgeteken word van alle ander aktiewe sessies op ander toestelle, behalwe hierdie een.",
91
+ "Gy8eW0": "Jou van",
92
+ "H5k7GB": "Geheime sleutel",
93
+ "HFxrbY": "Gaan voort met opstelling",
94
+ "HPEjJe": "Gebruikers met die e-posdomein {domain} sal nie meer as geverifieerd beskou word nie. Hierdie aksie is onmiddellik en kan nie ongedaan gemaak word nie.",
95
+ "HnuClZ": "Waarde",
96
+ "IBozK6": "Vee soektog uit",
97
+ "IicELr": "'n Uitnodiging sal na hierdie e-posadres gestuur word met 'n skakel om hul rekening te voltooi.",
98
+ "IwcAMv": "Van",
99
+ "JIQROV": "Nooi uit",
100
+ "Jic5nB": "Teken uit van toestel?",
101
+ "Jqn+r+": "Laas gebruik {time}",
102
+ "Jv4Vps": "Versteek wagwoord",
103
+ "K83lBn": "Bevestig jou nuwe wagwoord",
104
+ "KDs1Ib": "Jy het nog nie Enkele Teken-Aan opgestel nie.",
105
+ "KSosDD": "Herroep sleutel",
106
+ "KYv5vS": "Stel 'n nuwe wagwoord vir jou rekening in",
107
+ "KZIJPP": "Herroep sleutel",
108
+ "KjY2RX": "Kanselleer",
109
+ "L2EBxV": "Volgende",
110
+ "L4yLAf": "Voer asseblief jou nuwe wagwoord in",
111
+ "LleqNP": "Jou opstelsleutel",
112
+ "LsD5BK": "Verwyder toegang van alle toestelle behalwe hierdie een",
113
+ "MQ+LoA": "Geen gebruikers gevind nie",
114
+ "MQR5mR": "Opstelling aan die gang",
115
+ "MaYH9g": "Waarde",
116
+ "Mixw+w": "Sluit",
117
+ "MtkNQO": "Stel SSO op",
118
+ "N8aD60": "Verwyder gebruiker",
119
+ "NBXpRj": "Nooi gebruiker uit",
120
+ "NJqcnW": "Wysig rol",
121
+ "NNBv+r": "Herroep",
122
+ "Nkz6Xi": "Herroep",
123
+ "O2vxRJ": "Domeinnaam",
124
+ "O79vjp": "Bevestig nuwe wagwoord",
125
+ "OHDxyL": "Voer 'n nuwe wagwoord in",
126
+ "OdCEs1": "Kanselleer",
127
+ "OkjVyP": "Verwyder domein",
128
+ "P2oB4G": "Huidige wagwoord",
129
+ "PTbRJT": "Hierdie aksie kan nie ongedaan gemaak word nie.",
130
+ "Pnmy4H": "Kanselleer",
131
+ "QKO3st": "Voer asseblief jou huidige wagwoord in",
132
+ "R5rXuR": "Verander jou rekening wagwoord",
133
+ "RIBfYe": "API-sleutel aksies",
134
+ "RT8KNi": "Stoor",
135
+ "RvLqCQ": "Profielfoto",
136
+ "SEsXx0": "Wysig die besonderhede van {email}",
137
+ "T1VKzP": "Bestuur",
138
+ "T7rpHw": "Geverifieer",
139
+ "UIfBSd": "Wys wagwoord",
140
+ "UUigrK": "Onbekend",
141
+ "Ue7G8Y": "Wysig rol",
142
+ "UlAY08": "Volgende",
143
+ "VBESVz": "Soek volgens naam",
144
+ "VGKbbj": "Bekyk besonderhede",
145
+ "VH4IKy": "Soek volgens naam of e-pos",
146
+ "VJVs4m": "Kanselleer",
147
+ "VQ1Avr": "Wysig rolle",
148
+ "VYbVXN": "Naam",
149
+ "ViYtvQ": "Kopieer en sluit",
150
+ "VouLgT": "1 toestemming gekies",
151
+ "WHthZi": "Bevestig",
152
+ "WRjyrh": "Wagwoord moet ten minste 8 karakters wees",
153
+ "Wz8T8u": "Hierdie toestel",
154
+ "XLp48i": "Jy kan nie die rol vir hierdie gebruiker opdateer nie aangesien daar slegs een rol beskikbaar is.",
155
+ "XsTeXJ": "Stuur verifikasiekode",
156
+ "Xv3fVI": "Vee soektog uit",
157
+ "Yo2vHC": "Vereis aksie",
158
+ "YrMs63": "Vee soektog uit",
159
+ "Z6coCJ": "Ons sal slegs vir jou wagwoord vra tydens aanmelding.",
160
+ "ZJYAji": "Herbegin verifikasie",
161
+ "ZL90DI": "{count} toestemmings gekies",
162
+ "Zdq2Hr": "Die nuwe wagwoorde wat jy ingevoer het stem nie ooreen nie.",
163
+ "a4wDlZ": "Deaktiveer multi-faktor-verifikasie?",
164
+ "ayYwQx": "Die wagwoorde wat jy ingevoer het stem nie ooreen nie.",
165
+ "b/+TBS": "Voer jou nuwe wagwoord in",
166
+ "byIkUu": "Genooi",
167
+ "cKitHb": "Geen API-sleutels stem ooreen met jou soektog nie",
168
+ "cO5+D2": "Verwyder domein",
169
+ "cbbwqK": "Verifikasie het misluk",
170
+ "cubpBN": "Bevestig nuwe wagwoord",
171
+ "d4BNWL": "Skep API-sleutel",
172
+ "d7mvgq": "Jy het waarskynlik vergeet om 'n magtigingstoken aan die widget te verskaf.",
173
+ "dFmPj3": "Verkeerde toestemmings",
174
+ "daFXTP": "(huidige)",
175
+ "diFnRK": "Jy sal afgemeld word van {device}.",
176
+ "dqU4kt": "API-sleutel besonderhede",
177
+ "dqczQS": "Vereis hermagtiging",
178
+ "dx3Cso": "Gasheer / Naam",
179
+ "e18ZsK": "Herroep API-sleutel?",
180
+ "eEXeqP": "Is jy seker jy wil jou {integrationName} rekening ontkoppel?",
181
+ "eSQSjC": "Herbegin verifikasie",
182
+ "eTEzjH": "Skep API-sleutel",
183
+ "eUFRNS": "Skep API-sleutel",
184
+ "edrdLd": "'n Fout het voorgekom tydens die herroeping van die API-sleutel.",
185
+ "elg/zm": "Laas gebruik",
186
+ "esZQrd": "Ontkoppel rekening",
187
+ "f3uhhm": "Multi-faktor-verifikasie",
188
+ "f7TUj0": "Vorige",
189
+ "fTSp5u": "Skandeer die QR-kode",
190
+ "fXZhqG": "Bevestig asseblief jou nuwe wagwoord",
191
+ "fb2S3+": "Die uitnodiging-e-pos is weer gestuur na {email}",
192
+ "fxVS34": "Magtig toegang om jou rekening te koppel.",
193
+ "g+n4aY": "Jy sal herlei word om aan te meld met {integrationName}.",
194
+ "g11OOu": "Google Drive",
195
+ "gF+kUw": "Laas gesien {timeAgo}",
196
+ "gM3bot": "Jou geloofsbriewe bly veilig.",
197
+ "gUTpgG": "Jou voornaam",
198
+ "gc1yge": "Verifikasie hangende",
199
+ "gjqw+H": "E-posadres",
200
+ "h3R6gY": "Laas gebruik {time}",
201
+ "h9d9dv": "Kopieer na knipbord",
202
+ "hHNj31": "Kanselleer",
203
+ "hd/Llp": "Gaan na dat die korrekte toestemmings toegeken is.",
204
+ "hd2+kk": "Nie aktief nie",
205
+ "i0XUeg": "Toestemmings",
206
+ "i4vzAY": "Nie gestel nie",
207
+ "i6Hxoz": "Gekoppel",
208
+ "ig3G/s": "Is jy seker jy wil die domein {domain} verwyder? Hierdie aksie is onmiddellik en kan nie ongedaan gemaak word nie.",
209
+ "iyNcly": "Soek",
210
+ "jLzoYu": "Iets het verkeerd geloop. Probeer asseblief weer.",
211
+ "jSfqX/": "Stel wagwoord",
212
+ "jTupOW": "Vee soektog uit",
213
+ "jWl49/": "Kies die rol om aan {displayName} toe te ken",
214
+ "k9X2ru": "Herbegin verifikasie",
215
+ "kAYx7z": "Verander Wagwoord",
216
+ "kC9Fwe": "WorkOS sien nooit jou geloofsbriewe nie.",
217
+ "kkBScm": "Volledige naam",
218
+ "kvxE0S": "'n Verifikasiekode is na {email} gestuur. Voer dit asseblief hieronder in.",
219
+ "l/Do9/": "Almal",
220
+ "l1mz5q": "Domeinaksies",
221
+ "lWAmRC": "{count} rolle",
222
+ "lb/AsC": "Jou verifikasie-token het verval",
223
+ "leodiT": "Stel 'n wagwoord in om toegang tot jou rekening te kry",
224
+ "lzPOKv": "Gebruikersoektog",
225
+ "mEkhOO": "Jy kan nie jou huidige wagwoord hergebruik nie",
226
+ "mjZ9vq": "Fout met data ophaal",
227
+ "moyvr4": "'n Beskrywende naam vir die API-sleutel",
228
+ "nLk5pa": "E-posadres",
229
+ "nQbe+Y": "Rol",
230
+ "nc7fru": "Volledige naam",
231
+ "oF9d2V": "Die naam is vereist",
232
+ "oKQ0rm": "Teken uit",
233
+ "oLNIQv": "Stel verifieerder-app op",
234
+ "oOwLGt": "Laas aktief",
235
+ "oSINc8": "Uitnodiging weer stuur?",
236
+ "onTqlA": "Kies alles",
237
+ "pcK9ly": "Wysig naam",
238
+ "q2VEtG": "Aktiveer slegs die minimum toestemmings wat vir jou gebruiksgeval benodig word.",
239
+ "q3eZjH": "Bekyk opstelsleutel",
240
+ "qGSR1P": "Verwyder gebruiker",
241
+ "qKBKF7": "'n Fout het voorgekom terwyl jou rekening ontkoppel is. Verfris asseblief die bladsy en probeer weer.",
242
+ "quvdFp": "Koppel",
243
+ "rzvafM": "Jy kan nie die rol vir hierdie gebruiker opdateer nie aangesien daar slegs een rol beskikbaar is.",
244
+ "s/dQVI": "Magtigingsfout",
245
+ "sT1L78": "Teken uit",
246
+ "sfkEFa": "Teken uit van alle ander toestelle",
247
+ "sy+2x7": "Stoor asseblief hierdie API-sleutel op 'n veilige plek. As jy dit verloor, sal jy 'n nuwe een moet genereer.",
248
+ "t+CDVJ": "'n Onverwagte fout het voorgekom. Kontroleer jou netwerkverbinding of probeer om die bladsy te herlaai.",
249
+ "t/D0Sf": "Jy het nog geen geverifieerde domeine bygevoeg nie.",
250
+ "t73qag": "Stuur weer",
251
+ "tRJt/S": "Teken uit",
252
+ "tuCHkH": "Naam",
253
+ "ujRDBH": "{appName} gebruik WorkOS om te koppel aan {integrationName}.",
254
+ "uqn8py": "Voer jou huidige wagwoord in",
255
+ "uvxVJM": "Deaktiveer",
256
+ "v0VmRy": "Naam",
257
+ "vMVXQh": "Ontkoppel",
258
+ "vfwqWf": "Bevestig asseblief jou nuwe wagwoord",
259
+ "vmTW/h": "Die SAML-respons ondertekeningsertifikaat het op {expiryDate} verval. Gebruikers sal nie by die toepassing kan aanmeld nie totdat die sertifikaat hernuwe word.",
260
+ "vq5724": "Skep API-sleutel",
261
+ "w3A6MN": "Onlangs bygevoeg",
262
+ "wFFCij": "Stoor jou sleutel",
263
+ "wjt0K3": "Klaar",
264
+ "wpbqFJ": "Skandeer hierdie QR-kode om in te skryf",
265
+ "wrEZ8+": "Geen gebruikers gevind vir soektog '{query}'",
266
+ "wt2qe9": "Is jy seker jy wil die uitnodiging na {email} herroep? Hierdie aksie is onmiddellik en kan nie ongedaan gemaak word nie.",
267
+ "x//BWg": "Teken uit van alle ander toestelle?",
268
+ "xT9Exy": "Die SAML-respons ondertekeningsertifikaat sal op {expiryDate} verval. Wanneer dit verval het, sal gebruikers nie kan aanmeld nie.",
269
+ "xZFdkq": "Beveilig jou rekening met 'n ekstra verifikasiestap",
270
+ "xgUx3Z": "Gekopieer",
271
+ "xjqT9f": "Geen toestemmings pas by jou soektog nie",
272
+ "yN72Gc": "Laaste sessie {relativeTime}",
273
+ "yXCbRa": "Nooit",
274
+ "yjbD6m": "Wysig rolle",
275
+ "yk7ScH": "Die domein {domain} sal outomaties geverifieer word sodra die volgende DNS-rekord opgespoor word. Gebruik 'n hulpmiddel soos {dnsChecker} om die domein se rekord vir enige foute na te gaan.",
276
+ "yyM/+B": "Kies die rolle om aan {displayName} toe te ken",
277
+ "z19aZa": "Wagwoord",
278
+ "zG7XDc": "Daar was 'n fout met die herroeping van die uitnodiging. Probeer asseblief weer.",
279
+ "zokPvK": "Stel 'n wagwoord",
280
+ "zx2oPb": "Die verwydering van {domain} sal die DNS-rekord verifikasieproses kanselleer. Hierdie aksie is onmiddellik en kan nie ongedaan gemaak word nie."
281
+ }