svelte-intlayer 7.1.9 → 7.2.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.
package/README.md CHANGED
@@ -188,6 +188,7 @@ Explore our comprehensive documentation to get started with Intlayer and learn h
188
188
  <li><a href="https://intlayer.org/doc/environment/react-native-and-expo" rel=''>React Native</a></li>
189
189
  <li><a href="https://intlayer.org/doc/environment/lynx-and-react" rel=''>Lynx + React</a></li>
190
190
  <li><a href="https://intlayer.org/doc/environment/vite-and-svelte" rel=''>Vite + Svelte</a></li>
191
+ <li><a href="https://intlayer.org/doc/environment/sveltekit" rel=''>SvelteKit</a></li>
191
192
  <li><a href="https://intlayer.org/doc/environment/vite-and-preact" rel=''>Vite + Preact</a></li>
192
193
  <li><a href="https://intlayer.org/doc/environment/vite-and-vue" rel=''>Vite + Vue</a></li>
193
194
  <li><a href="https://intlayer.org/doc/environment/vite-and-nuxt" rel=''>Vite + Nuxt</a></li>
@@ -2,6 +2,7 @@ export { getBrowserLocale } from './getBrowserLocale';
2
2
  export { getIntlayerContext, setIntlayerContext } from './intlayerContext';
3
3
  export type { IntlayerStoreType } from './intlayerStore';
4
4
  export { intlayerStore } from './intlayerStore';
5
+ export { setupIntlayer } from './setupIntlayer';
5
6
  export { useDictionary } from './useDictionary';
6
7
  export { useDictionaryAsync } from './useDictionaryAsync';
7
8
  export { useDictionaryDynamic } from './useDictionaryDynamic';
@@ -1,10 +1,7 @@
1
- // Export all client-side functionality for Svelte applications
2
- // Locale management
3
1
  export { getBrowserLocale } from './getBrowserLocale';
4
- // Context and providers
5
2
  export { getIntlayerContext, setIntlayerContext } from './intlayerContext';
6
3
  export { intlayerStore } from './intlayerStore';
7
- // Core hooks
4
+ export { setupIntlayer } from './setupIntlayer';
8
5
  export { useDictionary } from './useDictionary';
9
6
  export { useDictionaryAsync } from './useDictionaryAsync';
10
7
  export { useDictionaryDynamic } from './useDictionaryDynamic';
@@ -0,0 +1,5 @@
1
+ import type { LocalesValues } from '@intlayer/types';
2
+ export declare const setupIntlayer: (initialLocale: LocalesValues) => {
3
+ readonly locale: LocalesValues;
4
+ setLocale: (newLocale: LocalesValues) => void;
5
+ };
@@ -0,0 +1,32 @@
1
+ import { createCommunicator } from '../editor/communicator';
2
+ import { createEditorEnabledClient } from '../editor/editorEnabled';
3
+ import { createFocusDictionaryClient } from '../editor/focusDictionary';
4
+ import { useEditor } from '../editor/useEditor';
5
+ // Assuming setIntlayerContext exports a specific key or symbol
6
+ import { setIntlayerContext } from './intlayerContext';
7
+ export const setupIntlayer = (initialLocale) => {
8
+ // 1. Initialize your side effects
9
+ // Note: If these need to run only in the browser, wrap them in $effect or onMount
10
+ // inside your side-effect logic if they aren't already safe.
11
+ createCommunicator();
12
+ createEditorEnabledClient();
13
+ createFocusDictionaryClient();
14
+ useEditor();
15
+ // 2. Create Reactive State (Svelte 5)
16
+ // We make the locale a "rune" so updates propagate
17
+ let locale = $state(initialLocale);
18
+ // 3. Define the Context Object
19
+ const contextValue = {
20
+ get locale() {
21
+ return locale;
22
+ },
23
+ setLocale: (newLocale) => {
24
+ locale = newLocale;
25
+ },
26
+ };
27
+ // 4. Set the Context
28
+ // setIntlayerContext internal logic usually wraps setContext(KEY, value)
29
+ setIntlayerContext(contextValue);
30
+ // Return the state if you need it immediately in the layout
31
+ return contextValue;
32
+ };
@@ -26,7 +26,11 @@ export const useLocale = ({ isCookieEnabled, onLocaleChange, } = {}) => {
26
26
  // Fallback to global store
27
27
  return {
28
28
  locale: intlayerStore.getLocale(),
29
- setLocale: intlayerStore.setLocale,
29
+ setLocale: (locale) => {
30
+ intlayerStore.setLocale(locale);
31
+ setLocaleInStorage(locale, isCookieEnabled ?? true);
32
+ onLocaleChange?.(locale);
33
+ },
30
34
  defaultLocale,
31
35
  availableLocales,
32
36
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelte-intlayer",
3
- "version": "7.1.9",
3
+ "version": "7.2.0",
4
4
  "description": "Easily internationalize i18n your Svelte applications with type-safe multilingual content management.",
5
5
  "keywords": [
6
6
  "intlayer",
@@ -67,12 +67,12 @@
67
67
  "typecheck": "tsc --noEmit --project tsconfig.types.json"
68
68
  },
69
69
  "dependencies": {
70
- "@intlayer/api": "7.1.9",
71
- "@intlayer/config": "7.1.9",
72
- "@intlayer/core": "7.1.9",
73
- "@intlayer/editor": "7.1.9",
74
- "@intlayer/types": "7.1.9",
75
- "@intlayer/unmerged-dictionaries-entry": "7.1.9"
70
+ "@intlayer/api": "7.2.0",
71
+ "@intlayer/config": "7.2.0",
72
+ "@intlayer/core": "7.2.0",
73
+ "@intlayer/editor": "7.2.0",
74
+ "@intlayer/types": "7.2.0",
75
+ "@intlayer/unmerged-dictionaries-entry": "7.2.0"
76
76
  },
77
77
  "devDependencies": {
78
78
  "@sveltejs/package": "^2.5.4",
@@ -1,24 +0,0 @@
1
- <script lang="ts">
2
- import type { LocalesValues } from '@intlayer/types';
3
- import { createCommunicator } from '../editor/communicator';
4
- import { createEditorEnabledClient } from '../editor/editorEnabled';
5
- import { createFocusDictionaryClient } from '../editor/focusDictionary';
6
- import { useEditor } from '../editor/useEditor';
7
- import { setIntlayerContext } from './intlayerContext';
8
-
9
- export let locale: LocalesValues;
10
-
11
- createCommunicator();
12
- createEditorEnabledClient();
13
- createFocusDictionaryClient();
14
-
15
- useEditor();
16
-
17
- setIntlayerContext({
18
- locale,
19
- setLocale: () => {},
20
- });
21
- </script>
22
-
23
- <slot />
24
-
@@ -1,30 +0,0 @@
1
- import type { LocalesValues } from '@intlayer/types';
2
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
- $$bindings?: Bindings;
5
- } & Exports;
6
- (internal: unknown, props: Props & {
7
- $$events?: Events;
8
- $$slots?: Slots;
9
- }): Exports & {
10
- $set?: any;
11
- $on?: any;
12
- };
13
- z_$$bindings?: Bindings;
14
- }
15
- type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
16
- default: any;
17
- } ? Props extends Record<string, never> ? any : {
18
- children?: any;
19
- } : {});
20
- declare const IntlayerProvider: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
21
- locale: LocalesValues;
22
- }, {
23
- default: {};
24
- }>, {
25
- [evt: string]: CustomEvent<any>;
26
- }, {
27
- default: {};
28
- }, {}, string>;
29
- type IntlayerProvider = InstanceType<typeof IntlayerProvider>;
30
- export default IntlayerProvider;