next-safe-i18n 0.0.3 → 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.
package/README.md CHANGED
@@ -1,3 +1,53 @@
1
1
  # Next Safe I18n
2
2
 
3
3
  Safe and modern i18n for Next.js
4
+
5
+ ## Installation
6
+
7
+ ```sh
8
+ npm install next-safe-i18n
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ Create an i18n file like this.
14
+
15
+ ```typescript
16
+ import { createI18n } from 'next-safe-i18n/i18n'
17
+ import en from './en.json'
18
+ import 'server-only'
19
+
20
+ const dictionaries = {
21
+ en: import('./en.json'),
22
+ 'zh-cn': import('./zh-cn.json'),
23
+ 'zh-tw': import('./zh-tw.json'),
24
+ }
25
+
26
+ export type Locale = keyof typeof dictionaries
27
+
28
+ export type Dictionary = typeof en
29
+
30
+ const i18n = createI18n<Locale, Dictionary>({
31
+ defaultLocale: 'en',
32
+ locales: ['en', 'zh-cn', 'zh-tw'],
33
+ dictionaries
34
+ })
35
+
36
+ export default i18n
37
+ ```
38
+
39
+ Add this to your proxy file.
40
+
41
+ ```typescript
42
+ import i18n from "./i18n"
43
+
44
+ export const proxy = i18n.createProxy()
45
+
46
+ export const config = {
47
+ // Matcher ignoring `/_next/` and `/api/`
48
+ matcher: ["/((?!api|_next/static|_next/image|favicon|apple-touch|images).*)"],
49
+ }
50
+
51
+ ```
52
+
53
+ In your `page.tsx`, add this:
package/dist/i18n.d.ts CHANGED
@@ -11,5 +11,8 @@ export type I18n<Locale extends string, Dictionary> = {
11
11
  export type Params<Locale> = Promise<{
12
12
  lang: Locale;
13
13
  }>;
14
+ export type Props<Locale> = {
15
+ params: Params<Locale>;
16
+ };
14
17
  export declare function createI18n<Locale extends string, Dictionary>(config: I18NConfig<Locale, Dictionary>): I18n<Locale, Dictionary>;
15
18
  //# sourceMappingURL=i18n.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAIvD,OAAO,UAAU,MAAM,UAAU,CAAA;AAEjC,MAAM,MAAM,IAAI,CAAC,MAAM,SAAS,MAAM,EAAE,UAAU,IAAI;IACpD,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,SAAS,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,YAAY,CAAA;IAC7H,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE,CAAC,CAAA;CACtG,CAAA;AAED,MAAM,MAAM,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC;IACnC,IAAI,EAAE,MAAM,CAAA;CACb,CAAC,CAAA;AAEF,wBAAgB,UAAU,CAAC,MAAM,SAAS,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CA0C9H"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAIvD,OAAO,UAAU,MAAM,UAAU,CAAA;AAEjC,MAAM,MAAM,IAAI,CAAC,MAAM,SAAS,MAAM,EAAE,UAAU,IAAI;IACpD,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,SAAS,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,YAAY,CAAA;IAC7H,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE,CAAC,CAAA;CACtG,CAAA;AAED,MAAM,MAAM,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC;IACnC,IAAI,EAAE,MAAM,CAAA;CACb,CAAC,CAAA;AAEF,MAAM,MAAM,KAAK,CAAC,MAAM,IAAI;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;CACvB,CAAA;AAED,wBAAgB,UAAU,CAAC,MAAM,SAAS,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CA0C9H"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next-safe-i18n",
3
- "version": "0.0.3",
3
+ "version": "0.1.0",
4
4
  "description": "Safe and modern i18n for Next.js",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",