@intlayer/docs 5.5.8 → 5.5.10
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/ar/autoFill.md +1 -2
- package/ar/intlayer_with_create_react_app.md +1 -14
- package/ar/intlayer_with_nextjs_14.md +1 -14
- package/ar/intlayer_with_nextjs_15.md +1 -14
- package/ar/intlayer_with_nextjs_page_router.md +1 -13
- package/ar/intlayer_with_nuxt.md +792 -0
- package/ar/intlayer_with_react_native+expo.md +6 -3
- package/ar/intlayer_with_vite+preact.md +7 -18
- package/ar/intlayer_with_vite+react.md +7 -17
- package/ar/intlayer_with_vite+vue.md +25 -5
- package/ar/packages/nuxt-intlayer/index.md +29 -0
- package/ar/roadmap.md +11 -11
- package/de/autoFill.md +1 -2
- package/de/how_works_intlayer.md +1 -1
- package/de/intlayer_with_create_react_app.md +1 -14
- package/de/intlayer_with_nextjs_14.md +1 -14
- package/de/intlayer_with_nextjs_15.md +1 -14
- package/de/intlayer_with_nextjs_page_router.md +1 -13
- package/de/intlayer_with_nuxt.md +791 -0
- package/de/intlayer_with_react_native+expo.md +6 -3
- package/de/intlayer_with_vite+preact.md +7 -18
- package/de/intlayer_with_vite+react.md +7 -17
- package/de/intlayer_with_vite+vue.md +84 -62
- package/de/packages/nuxt-intlayer/index.md +29 -0
- package/de/roadmap.md +11 -11
- package/en/autoFill.md +1 -2
- package/en/how_works_intlayer.md +17 -3
- package/en/intlayer_with_angular.md +535 -6
- package/en/intlayer_with_create_react_app.md +1 -14
- package/en/intlayer_with_nextjs_14.md +193 -59
- package/en/intlayer_with_nextjs_15.md +192 -61
- package/en/intlayer_with_nextjs_page_router.md +396 -61
- package/en/intlayer_with_nuxt.md +737 -0
- package/en/intlayer_with_react_native+expo.md +6 -3
- package/en/intlayer_with_vite+preact.md +8 -27
- package/en/intlayer_with_vite+react.md +7 -17
- package/en/intlayer_with_vite+solid.md +6 -3
- package/en/intlayer_with_vite+svelte.md +6 -3
- package/en/intlayer_with_vite+vue.md +17 -6
- package/en/packages/nuxt-intlayer/index.md +31 -0
- package/en/roadmap.md +13 -13
- package/en/t.md +5 -5
- package/en-GB/how_works_intlayer.md +16 -4
- package/en-GB/intlayer_with_create_react_app.md +1 -14
- package/en-GB/intlayer_with_nextjs_14.md +1 -14
- package/en-GB/intlayer_with_nextjs_15.md +1 -14
- package/en-GB/intlayer_with_nextjs_page_router.md +1 -13
- package/en-GB/intlayer_with_nuxt.md +795 -0
- package/en-GB/intlayer_with_react_native+expo.md +6 -3
- package/en-GB/intlayer_with_vite+preact.md +7 -18
- package/en-GB/intlayer_with_vite+react.md +6 -9
- package/en-GB/intlayer_with_vite+vue.md +65 -59
- package/en-GB/packages/nuxt-intlayer/index.md +31 -0
- package/en-GB/roadmap.md +11 -11
- package/es/autoFill.md +1 -2
- package/es/how_works_intlayer.md +1 -1
- package/es/intlayer_with_create_react_app.md +1 -14
- package/es/intlayer_with_nextjs_14.md +1 -14
- package/es/intlayer_with_nextjs_15.md +1 -14
- package/es/intlayer_with_nextjs_page_router.md +1 -13
- package/es/intlayer_with_nuxt.md +731 -0
- package/es/intlayer_with_react_native+expo.md +6 -3
- package/es/intlayer_with_vite+preact.md +7 -18
- package/es/intlayer_with_vite+react.md +7 -17
- package/es/intlayer_with_vite+vue.md +64 -51
- package/es/packages/nuxt-intlayer/index.md +29 -0
- package/fr/autoFill.md +1 -2
- package/fr/how_works_intlayer.md +1 -1
- package/fr/intlayer_with_create_react_app.md +1 -14
- package/fr/intlayer_with_nextjs_14.md +1 -14
- package/fr/intlayer_with_nextjs_15.md +1 -14
- package/fr/intlayer_with_nextjs_page_router.md +1 -13
- package/fr/intlayer_with_nuxt.md +731 -0
- package/fr/intlayer_with_react_native+expo.md +6 -3
- package/fr/intlayer_with_vite+preact.md +7 -18
- package/fr/intlayer_with_vite+react.md +7 -17
- package/fr/intlayer_with_vite+vue.md +30 -15
- package/fr/packages/nuxt-intlayer/index.md +29 -0
- package/fr/roadmap.md +11 -11
- package/hi/autoFill.md +1 -2
- package/hi/how_works_intlayer.md +1 -1
- package/hi/intlayer_with_create_react_app.md +1 -14
- package/hi/intlayer_with_nextjs_14.md +1 -14
- package/hi/intlayer_with_nextjs_15.md +1 -14
- package/hi/intlayer_with_nextjs_page_router.md +1 -13
- package/hi/intlayer_with_nuxt.md +784 -0
- package/hi/intlayer_with_react_native+expo.md +6 -3
- package/hi/intlayer_with_vite+preact.md +7 -18
- package/hi/intlayer_with_vite+react.md +7 -17
- package/hi/intlayer_with_vite+vue.md +59 -47
- package/hi/packages/nuxt-intlayer/index.md +29 -0
- package/hi/roadmap.md +11 -11
- package/index.cjs +30 -0
- package/index.d.ts +2 -0
- package/it/autoFill.md +1 -2
- package/it/how_works_intlayer.md +1 -1
- package/it/intlayer_with_create_react_app.md +0 -6
- package/it/intlayer_with_nextjs_14.md +1 -14
- package/it/intlayer_with_nextjs_15.md +1 -14
- package/it/intlayer_with_nextjs_page_router.md +1 -13
- package/it/intlayer_with_nuxt.md +793 -0
- package/it/intlayer_with_react_native+expo.md +6 -3
- package/it/intlayer_with_vite+preact.md +7 -18
- package/it/intlayer_with_vite+react.md +7 -17
- package/it/intlayer_with_vite+vue.md +26 -17
- package/it/packages/nuxt-intlayer/index.md +29 -0
- package/it/roadmap.md +11 -11
- package/ja/autoFill.md +1 -2
- package/ja/how_works_intlayer.md +1 -1
- package/ja/intlayer_with_create_react_app.md +1 -14
- package/ja/intlayer_with_nextjs_14.md +1 -14
- package/ja/intlayer_with_nextjs_15.md +1 -14
- package/ja/intlayer_with_nextjs_page_router.md +1 -13
- package/ja/intlayer_with_nuxt.md +792 -0
- package/ja/intlayer_with_react_native+expo.md +6 -3
- package/ja/intlayer_with_vite+preact.md +7 -18
- package/ja/intlayer_with_vite+react.md +7 -17
- package/ja/intlayer_with_vite+vue.md +68 -63
- package/ja/packages/nuxt-intlayer/index.md +29 -0
- package/ja/roadmap.md +11 -11
- package/ko/autoFill.md +1 -2
- package/ko/how_works_intlayer.md +1 -1
- package/ko/intlayer_with_create_react_app.md +1 -14
- package/ko/intlayer_with_nextjs_14.md +1 -14
- package/ko/intlayer_with_nextjs_15.md +1 -14
- package/ko/intlayer_with_nextjs_page_router.md +1 -13
- package/ko/intlayer_with_nuxt.md +784 -0
- package/ko/intlayer_with_react_native+expo.md +6 -3
- package/ko/intlayer_with_vite+preact.md +7 -18
- package/ko/intlayer_with_vite+react.md +7 -17
- package/ko/intlayer_with_vite+vue.md +69 -59
- package/ko/packages/nuxt-intlayer/index.md +31 -0
- package/ko/roadmap.md +11 -11
- package/package.json +4 -4
- package/pt/autoFill.md +1 -2
- package/pt/how_works_intlayer.md +1 -1
- package/pt/intlayer_with_create_react_app.md +1 -14
- package/pt/intlayer_with_nextjs_14.md +1 -14
- package/pt/intlayer_with_nextjs_15.md +1 -14
- package/pt/intlayer_with_nextjs_page_router.md +1 -13
- package/pt/intlayer_with_nuxt.md +792 -0
- package/pt/intlayer_with_react_native+expo.md +6 -3
- package/pt/intlayer_with_vite+preact.md +7 -18
- package/pt/intlayer_with_vite+react.md +7 -17
- package/pt/intlayer_with_vite+vue.md +23 -19
- package/pt/packages/nuxt-intlayer/index.md +29 -0
- package/pt/roadmap.md +11 -11
- package/ru/autoFill.md +1 -2
- package/ru/how_works_intlayer.md +1 -1
- package/ru/intlayer_with_create_react_app.md +1 -14
- package/ru/intlayer_with_nextjs_14.md +1 -14
- package/ru/intlayer_with_nextjs_15.md +1 -14
- package/ru/intlayer_with_nextjs_page_router.md +1 -13
- package/ru/intlayer_with_nuxt.md +792 -0
- package/ru/intlayer_with_react_native+expo.md +6 -3
- package/ru/intlayer_with_vite+preact.md +7 -18
- package/ru/intlayer_with_vite+react.md +7 -17
- package/ru/intlayer_with_vite+vue.md +25 -17
- package/ru/packages/nuxt-intlayer/index.md +31 -0
- package/ru/roadmap.md +11 -11
- package/zh/autoFill.md +1 -2
- package/zh/intlayer_with_create_react_app.md +1 -14
- package/zh/intlayer_with_nextjs_14.md +1 -14
- package/zh/intlayer_with_nextjs_15.md +1 -14
- package/zh/intlayer_with_nextjs_page_router.md +1 -13
- package/zh/intlayer_with_nuxt.md +784 -0
- package/zh/intlayer_with_react_native+expo.md +6 -3
- package/zh/intlayer_with_vite+preact.md +7 -18
- package/zh/intlayer_with_vite+react.md +7 -17
- package/zh/intlayer_with_vite+vue.md +68 -57
- package/zh/packages/nuxt-intlayer/index.md +31 -0
- package/zh/roadmap.md +11 -11
|
@@ -20,15 +20,18 @@
|
|
|
20
20
|
在您的 React Native 项目中,安装以下包:
|
|
21
21
|
|
|
22
22
|
```bash packageManager="npm"
|
|
23
|
-
npm install intlayer react-intlayer
|
|
23
|
+
npm install intlayer react-intlayer
|
|
24
|
+
npm install --save-dev react-native-intlayer
|
|
24
25
|
```
|
|
25
26
|
|
|
26
27
|
```bash packageManager="pnpm"
|
|
27
|
-
pnpm add intlayer react-intlayer
|
|
28
|
+
pnpm add intlayer react-intlayer
|
|
29
|
+
pnpm add --save-dev react-native-intlayer
|
|
28
30
|
```
|
|
29
31
|
|
|
30
32
|
```bash packageManager="yarn"
|
|
31
|
-
yarn add intlayer react-intlayer
|
|
33
|
+
yarn add intlayer react-intlayer
|
|
34
|
+
yarn add --save-dev react-native-intlayer
|
|
32
35
|
```
|
|
33
36
|
|
|
34
37
|
### 包说明
|
|
@@ -24,15 +24,18 @@
|
|
|
24
24
|
使用 npm 安装必要的软件包:
|
|
25
25
|
|
|
26
26
|
```bash packageManager="npm"
|
|
27
|
-
npm install intlayer preact-intlayer
|
|
27
|
+
npm install intlayer preact-intlayer
|
|
28
|
+
npm install --save-dev vite-intlayer
|
|
28
29
|
```
|
|
29
30
|
|
|
30
31
|
```bash packageManager="pnpm"
|
|
31
|
-
pnpm add intlayer preact-intlayer
|
|
32
|
+
pnpm add intlayer preact-intlayer
|
|
33
|
+
pnpm add --save-dev vite-intlayer
|
|
32
34
|
```
|
|
33
35
|
|
|
34
36
|
```bash packageManager="yarn"
|
|
35
|
-
yarn add intlayer preact-intlayer
|
|
37
|
+
yarn add intlayer preact-intlayer
|
|
38
|
+
yarn add --save-dev vite-intlayer
|
|
36
39
|
```
|
|
37
40
|
|
|
38
41
|
- **intlayer**
|
|
@@ -510,13 +513,7 @@ module.exports = App;
|
|
|
510
513
|
> 如果您希望在 `string` 属性中使用您的内容,例如 `alt`、`title`、`href`、`aria-label` 等,您必须调用函数的值,例如:
|
|
511
514
|
|
|
512
515
|
> ```jsx
|
|
513
|
-
>
|
|
514
|
-
> ```
|
|
515
|
-
|
|
516
516
|
> <img src={content.image.src.value} alt={content.image.value} />
|
|
517
|
-
|
|
518
|
-
> ```
|
|
519
|
-
>
|
|
520
517
|
> ```
|
|
521
518
|
|
|
522
519
|
> 注意:在 Preact 中,`className` 通常写作 `class`。
|
|
@@ -1255,23 +1252,15 @@ module.exports = LocaleSwitcher;
|
|
|
1255
1252
|
```
|
|
1256
1253
|
|
|
1257
1254
|
> 文档参考:
|
|
1258
|
-
|
|
1255
|
+
>
|
|
1259
1256
|
> - [`useLocale` 钩子](https://github.com/aymericzip/intlayer/blob/main/docs/zh/packages/react-intlayer/useLocale.md)(`preact-intlayer` 的 API 类似)
|
|
1260
|
-
|
|
1261
1257
|
> - [`getLocaleName` 钩子](https://github.com/aymericzip/intlayer/blob/main/docs/zh/packages/intlayer/getLocaleName.md)
|
|
1262
|
-
|
|
1263
1258
|
> - [`getLocalizedUrl` 钩子](https://github.com/aymericzip/intlayer/blob/main/docs/zh/packages/intlayer/getLocalizedUrl.md)
|
|
1264
|
-
|
|
1265
1259
|
> - [`getHTMLTextDir` 钩子](https://github.com/aymericzip/intlayer/blob/main/docs/zh/packages/intlayer/getHTMLTextDir.md)
|
|
1266
|
-
|
|
1267
1260
|
> - [`hreflang` 属性](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=zh)
|
|
1268
|
-
|
|
1269
1261
|
> - [`lang` 属性](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Global_attributes/lang)
|
|
1270
|
-
|
|
1271
1262
|
> - [`dir` 属性](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Global_attributes/dir)
|
|
1272
|
-
|
|
1273
1263
|
> - [`aria-current` 属性](https://developer.mozilla.org/zh-CN/docs/Web/Accessibility/ARIA/Attributes/aria-current)
|
|
1274
|
-
|
|
1275
1264
|
> - [Popover API](https://developer.mozilla.org/zh-CN/docs/Web/API/Popover_API)
|
|
1276
1265
|
|
|
1277
1266
|
以下是更新的 **步骤 9**,包含详细说明和优化的代码示例:
|
|
@@ -24,15 +24,18 @@
|
|
|
24
24
|
使用 npm 安装必要的包:
|
|
25
25
|
|
|
26
26
|
```bash packageManager="npm"
|
|
27
|
-
npm install intlayer react-intlayer
|
|
27
|
+
npm install intlayer react-intlayer
|
|
28
|
+
npm install --save-dev vite-intlayer
|
|
28
29
|
```
|
|
29
30
|
|
|
30
31
|
```bash packageManager="pnpm"
|
|
31
|
-
pnpm add intlayer react-intlayer
|
|
32
|
+
pnpm add intlayer react-intlayer
|
|
33
|
+
pnpm add --save-dev vite-intlayer
|
|
32
34
|
```
|
|
33
35
|
|
|
34
36
|
```bash packageManager="yarn"
|
|
35
|
-
yarn add intlayer react-intlayer
|
|
37
|
+
yarn add intlayer react-intlayer
|
|
38
|
+
yarn add --save-dev vite-intlayer
|
|
36
39
|
```
|
|
37
40
|
|
|
38
41
|
- **intlayer**
|
|
@@ -526,13 +529,7 @@ module.exports = App;
|
|
|
526
529
|
> 如果您想在 `string` 属性中使用您的内容,例如 `alt`、`title`、`href`、`aria-label` 等,您必须调用函数的值,例如:
|
|
527
530
|
|
|
528
531
|
> ```jsx
|
|
529
|
-
>
|
|
530
|
-
> ```
|
|
531
|
-
|
|
532
532
|
> <img src={content.image.src.value} alt={content.image.value} />
|
|
533
|
-
|
|
534
|
-
> ```
|
|
535
|
-
>
|
|
536
533
|
> ```
|
|
537
534
|
|
|
538
535
|
> 要了解有关 `useIntlayer` 钩子的更多信息,请参阅[文档](https://github.com/aymericzip/intlayer/blob/main/docs/zh/packages/react-intlayer/useIntlayer.md)。
|
|
@@ -1207,21 +1204,14 @@ const LocaleSwitcher = () => {
|
|
|
1207
1204
|
```
|
|
1208
1205
|
|
|
1209
1206
|
> 文档参考:
|
|
1210
|
-
|
|
1207
|
+
>
|
|
1211
1208
|
> - [`useLocale` 钩子](https://github.com/aymericzip/intlayer/blob/main/docs/zh/packages/react-intlayer/useLocale.md)
|
|
1212
|
-
|
|
1213
1209
|
> - [`getLocaleName` 钩子](https://github.com/aymericzip/intlayer/blob/main/docs/zh/packages/intlayer/getLocaleName.md)
|
|
1214
|
-
|
|
1215
1210
|
> - [`getLocalizedUrl` 钩子](https://github.com/aymericzip/intlayer/blob/main/docs/zh/packages/intlayer/getLocalizedUrl.md)
|
|
1216
|
-
|
|
1217
1211
|
> - [`getHTMLTextDir` 钩子](https://github.com/aymericzip/intlayer/blob/main/docs/zh/packages/intlayer/getHTMLTextDir.md)
|
|
1218
|
-
|
|
1219
1212
|
> - [`hrefLang` 属性](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
|
|
1220
|
-
|
|
1221
1213
|
> - [`lang` 属性](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang)
|
|
1222
|
-
|
|
1223
1214
|
> - [`dir` 属性](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir)
|
|
1224
|
-
|
|
1225
1215
|
> - [`aria-current` 属性](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)
|
|
1226
1216
|
|
|
1227
1217
|
---
|
|
@@ -24,15 +24,18 @@
|
|
|
24
24
|
使用 npm 安装必要的软件包:
|
|
25
25
|
|
|
26
26
|
```bash packageManager="npm"
|
|
27
|
-
npm install intlayer vue-intlayer
|
|
27
|
+
npm install intlayer vue-intlayer
|
|
28
|
+
npm install --save-dev vite-intlayer
|
|
28
29
|
```
|
|
29
30
|
|
|
30
31
|
```bash packageManager="pnpm"
|
|
31
|
-
pnpm add intlayer vue-intlayer
|
|
32
|
+
pnpm add intlayer vue-intlayer
|
|
33
|
+
pnpm add --save-dev vite-intlayer
|
|
32
34
|
```
|
|
33
35
|
|
|
34
36
|
```bash packageManager="yarn"
|
|
35
|
-
yarn add intlayer vue-intlayer
|
|
37
|
+
yarn add intlayer vue-intlayer
|
|
38
|
+
yarn add --save-dev vite-intlayer
|
|
36
39
|
```
|
|
37
40
|
|
|
38
41
|
- **intlayer**
|
|
@@ -259,52 +262,60 @@ const helloWorldContent = {
|
|
|
259
262
|
export default helloWorldContent;
|
|
260
263
|
```
|
|
261
264
|
|
|
262
|
-
|
|
263
|
-
|
|
265
|
+
```javascript fileName="src/app.content.cjs" contentDeclarationFormat="commonjs"
|
|
264
266
|
const { t } = require("intlayer");
|
|
265
267
|
|
|
266
|
-
|
|
268
|
+
/** @type {import('intlayer').Dictionary} */
|
|
267
269
|
const appContent = {
|
|
268
|
-
key: "helloworld",
|
|
269
|
-
content: {
|
|
270
|
-
count: t({
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
270
|
+
key: "helloworld",
|
|
271
|
+
content: {
|
|
272
|
+
count: t({
|
|
273
|
+
zh: "计数是 ",
|
|
274
|
+
en: "count is ",
|
|
275
|
+
fr: "le compte est ",
|
|
276
|
+
es: "el recuento es ",
|
|
277
|
+
}),
|
|
278
|
+
edit: t({
|
|
279
|
+
zh: "编辑 <code>components/HelloWorld.vue</code> 并保存以测试 HMR",
|
|
280
|
+
en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
281
|
+
fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
|
|
282
|
+
es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
|
|
283
|
+
}),
|
|
284
|
+
checkOut: t({
|
|
285
|
+
zh: "查看 ",
|
|
286
|
+
en: "Check out ",
|
|
287
|
+
fr: "Vérifiez ",
|
|
288
|
+
es: "Compruebe ",
|
|
289
|
+
}),
|
|
290
|
+
officialStarter: t({
|
|
291
|
+
zh: "官方 Vue + Vite 启动器",
|
|
292
|
+
en: "the official Vue + Vite starter",
|
|
293
|
+
fr: "le starter officiel Vue + Vite",
|
|
294
|
+
es: "el starter oficial Vue + Vite",
|
|
295
|
+
}),
|
|
296
|
+
learnMore: t({
|
|
297
|
+
zh: "在以下内容中了解更多关于 Vue 的 IDE 支持",
|
|
298
|
+
en: "Learn more about IDE Support for Vue in the ",
|
|
299
|
+
fr: "En savoir plus sur le support IDE pour Vue dans le ",
|
|
300
|
+
es: "Aprenda más sobre el soporte IDE para Vue en el ",
|
|
301
|
+
}),
|
|
302
|
+
vueDocs: t({
|
|
303
|
+
zh: "Vue 文档扩展指南",
|
|
304
|
+
en: "Vue Docs Scaling up Guide",
|
|
305
|
+
fr: "Vue Docs Scaling up Guide",
|
|
306
|
+
es: "Vue Docs Scaling up Guide",
|
|
307
|
+
}),
|
|
308
|
+
readTheDocs: t({
|
|
309
|
+
zh: "点击 Vite 和 Vue 的标志以了解更多信息",
|
|
310
|
+
en: "Click on the Vite and Vue logos to learn more",
|
|
311
|
+
fr: "Cliquez sur les logos Vite et Vue pour en savoir plus",
|
|
312
|
+
es: "Haga clic en los logotipos de Vite y Vue para obtener más información",
|
|
313
|
+
}),
|
|
314
|
+
},
|
|
303
315
|
};
|
|
304
316
|
|
|
305
317
|
module.exports = appContent;
|
|
306
|
-
|
|
307
|
-
````
|
|
318
|
+
```
|
|
308
319
|
|
|
309
320
|
```json fileName="src/helloWorld.content.json" contentDeclarationFormat="json"
|
|
310
321
|
{
|
|
@@ -376,7 +387,7 @@ module.exports = appContent;
|
|
|
376
387
|
}
|
|
377
388
|
}
|
|
378
389
|
}
|
|
379
|
-
|
|
390
|
+
```
|
|
380
391
|
|
|
381
392
|
> 您的内容声明可以在应用程序中的任何位置定义,只要它们包含在 `contentDir` 目录中(默认情况下为 `./src`)。并匹配内容声明文件扩展名(默认情况下为 `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`)。
|
|
382
393
|
|
|
@@ -444,22 +455,23 @@ const count = ref(0);
|
|
|
444
455
|
</template>
|
|
445
456
|
```
|
|
446
457
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
> ```html
|
|
450
|
-
>
|
|
451
|
-
> ```
|
|
458
|
+
#### 在 Intlayer 中访问内容 Intlayer 提供了不同的 API 来访问您的内容: -
|
|
452
459
|
|
|
453
|
-
|
|
460
|
+
**基于组件的语法**(推荐): 使用 `<myContent />` 或 `<Component :is="myContent" />` 语法将内容呈现为 Intlayer
|
|
454
461
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
> ```
|
|
462
|
+
节点。这与[可视化编辑器](https://github.com/aymericzip/intlayer/blob/main/docs/zh/intlayer_visual_editor.md)和 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/zh/intlayer_CMS.md)
|
|
463
|
+
无缝集成。
|
|
458
464
|
|
|
459
|
-
|
|
465
|
+
- **基于字符串的语法**: 使用 `{{ myContent }}` 将内容呈现为纯文本,不支持可视化编辑器。
|
|
466
|
+
- **原始 HTML 语法**: 使用 `<div v-html="myContent" />` 将内容呈现为原始 HTML,不支持可视化编辑器。
|
|
467
|
+
- **解构语法**: `useIntlayer` 可组合函数返回一个包含内容的代理。可以解构此代理以访问内容,同时保持反应性。
|
|
468
|
+
- 使用 `const content = useIntlayer("myContent");` 和 `{{ content.myContent }}` /
|
|
469
|
+
`<content.myContent />`。
|
|
470
|
+
- 或使用 `const { myContent } = useIntlayer("myContent");` 和 `{{ myContent }}` / `<myContent />` 来解构内容。
|
|
460
471
|
|
|
461
|
-
|
|
472
|
+
### (可选) 第6步:更改内容的语言
|
|
462
473
|
|
|
474
|
+
要更改内容的语言,您可以使用 `useLocale` 可组合函数提供的 `setLocale` 函数。此函数允许您设置应用程序的区域设置并相应地更新内容。
|
|
463
475
|
创建一个组件以在语言之间切换:
|
|
464
476
|
|
|
465
477
|
```vue fileName="src/components/LocaleSwitcher.vue"
|
|
@@ -531,7 +543,6 @@ const content = useIntlayer("app"); // 创建相关的 intlayer 声明文件
|
|
|
531
543
|
|
|
532
544
|
```plaintext
|
|
533
545
|
- https://example.com/about
|
|
534
|
-
|
|
535
546
|
- https://example.com/zh/about
|
|
536
547
|
- https://example.com/fr/about
|
|
537
548
|
```
|
|
@@ -838,7 +849,7 @@ useI18nHTMLAttributes();
|
|
|
838
849
|
|
|
839
850
|
### (可选)步骤 10:创建一个本地化链接组件
|
|
840
851
|
|
|
841
|
-
为了确保您的应用程序导航符合当前语言环境,您可以创建一个自定义的 `Link` 组件。此组件会自动为内部 URL
|
|
852
|
+
为了确保您的应用程序导航符合当前语言环境,您可以创建一个自定义的 `Link` 组件。此组件会自动为内部 URL 添加当前语言的前缀。例如,当法语用户点击"关于"页面的链接时,他们会被重定向到 `/fr/about` 而不是 `/about`。
|
|
842
853
|
|
|
843
854
|
此行为的好处包括:
|
|
844
855
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# nuxt-intlayer: 用于国际化 (i18n) Vue 应用的 NPM 包
|
|
2
|
+
|
|
3
|
+
**Intlayer** 是专为 JavaScript 开发者设计的一套工具包。它兼容 Vue、Vue 和 Express.js 等框架。
|
|
4
|
+
|
|
5
|
+
**`nuxt-intlayer` 包** 允许您对 Vue 应用进行国际化。它提供了用于 Vue 国际化的上下文提供者和钩子。
|
|
6
|
+
|
|
7
|
+
## 为什么要对您的 Vue 应用进行国际化?
|
|
8
|
+
|
|
9
|
+
对您的 Vue 应用进行国际化对于有效服务全球用户至关重要。它使您的应用能够以每个用户偏好的语言传递内容和消息。这种能力提升了用户体验,并通过使您的应用对不同语言背景的人更具可访问性和相关性,从而扩大了应用的覆盖范围。
|
|
10
|
+
|
|
11
|
+
## 为什么要集成 Intlayer?
|
|
12
|
+
|
|
13
|
+
- **JavaScript 驱动的内容管理**:利用 JavaScript 的灵活性高效地定义和管理您的内容。
|
|
14
|
+
- **类型安全的环境**:利用 TypeScript 确保所有内容定义都精确且无错误。
|
|
15
|
+
- **集成的内容文件**:将翻译与其相关组件紧密结合,增强可维护性和清晰度。
|
|
16
|
+
|
|
17
|
+
## 安装
|
|
18
|
+
|
|
19
|
+
使用您喜欢的包管理器安装必要的包:
|
|
20
|
+
|
|
21
|
+
```bash packageManager="npm"
|
|
22
|
+
npm install nuxt-intlayer
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
```bash packageManager="yarn"
|
|
26
|
+
yarn add nuxt-intlayer
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```bash packageManager="pnpm"
|
|
30
|
+
pnpm add nuxt-intlayer
|
|
31
|
+
```
|
package/zh/roadmap.md
CHANGED
|
@@ -14,7 +14,7 @@ Intlayer 是一种内容管理和国际化解决方案,旨在简化您在应
|
|
|
14
14
|
- **分布式**:或者,将内容拆分到组件或功能级别的单独文件中,以提高可维护性。这使您的内容与相关代码(组件、测试、Storybook 等)保持紧密联系。移除组件时,相关内容也会被移除,防止遗留数据使代码库变得混乱。
|
|
15
15
|
|
|
16
16
|
> 资源:
|
|
17
|
-
|
|
17
|
+
>
|
|
18
18
|
> - [内容声明](https://github.com/aymericzip/intlayer/blob/main/docs/zh/dictionary/get_started.md)
|
|
19
19
|
|
|
20
20
|
### 2. 国际化
|
|
@@ -23,7 +23,7 @@ Intlayer 是一种内容管理和国际化解决方案,旨在简化您在应
|
|
|
23
23
|
- 可以轻松地从一个地方管理所有这些语言的翻译。
|
|
24
24
|
|
|
25
25
|
> 资源:
|
|
26
|
-
|
|
26
|
+
>
|
|
27
27
|
> - [国际化](https://github.com/aymericzip/intlayer/blob/main/docs/zh/dictionary/translation.md)
|
|
28
28
|
|
|
29
29
|
### 3. Markdown 支持
|
|
@@ -32,7 +32,7 @@ Intlayer 是一种内容管理和国际化解决方案,旨在简化您在应
|
|
|
32
32
|
- 非常适合博客文章、文档页面或任何需要丰富文本格式的场景。
|
|
33
33
|
|
|
34
34
|
> 资源:
|
|
35
|
-
|
|
35
|
+
>
|
|
36
36
|
> - [Markdown](https://github.com/aymericzip/intlayer/blob/main/docs/zh/dictionary/markdown.md)
|
|
37
37
|
|
|
38
38
|
### 4. 条件渲染
|
|
@@ -41,7 +41,7 @@ Intlayer 是一种内容管理和国际化解决方案,旨在简化您在应
|
|
|
41
41
|
- 帮助定制个性化体验,而无需在多个文件中重复内容。
|
|
42
42
|
|
|
43
43
|
> 资源:
|
|
44
|
-
|
|
44
|
+
>
|
|
45
45
|
> - [条件渲染](https://github.com/aymericzip/intlayer/blob/main/docs/zh/dictionary/condition.md)
|
|
46
46
|
|
|
47
47
|
### 5. 内容声明格式
|
|
@@ -86,7 +86,7 @@ Intlayer 支持使用 **TypeScript**(也支持 JavaScript)和 **JSON** 声
|
|
|
86
86
|
- 完全兼容新的 Next.js Turbopack 以及传统的 Webpack。
|
|
87
87
|
|
|
88
88
|
> 资源:
|
|
89
|
-
|
|
89
|
+
>
|
|
90
90
|
> - [Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/zh/intlayer_with_nextjs_15.md)
|
|
91
91
|
|
|
92
92
|
### 2. Vite
|
|
@@ -94,7 +94,7 @@ Intlayer 支持使用 **TypeScript**(也支持 JavaScript)和 **JSON** 声
|
|
|
94
94
|
- 类似于 Next.js,您可以将 Intlayer 与 Vite 集成,并使用 **中间件** 根据用户的首选语言重定向到相应内容。
|
|
95
95
|
|
|
96
96
|
> 资源:
|
|
97
|
-
|
|
97
|
+
>
|
|
98
98
|
> - [Vite](https://github.com/aymericzip/intlayer/blob/main/docs/zh/intlayer_with_vite+react.md)
|
|
99
99
|
|
|
100
100
|
### 3. Express
|
|
@@ -103,7 +103,7 @@ Intlayer 支持使用 **TypeScript**(也支持 JavaScript)和 **JSON** 声
|
|
|
103
103
|
- 使用本地化文本个性化电子邮件、错误消息、推送通知等。
|
|
104
104
|
|
|
105
105
|
> 资源:
|
|
106
|
-
|
|
106
|
+
>
|
|
107
107
|
> - [Express](https://github.com/aymericzip/intlayer/blob/main/docs/zh/intlayer_with_express.md)
|
|
108
108
|
|
|
109
109
|
---
|
|
@@ -120,7 +120,7 @@ Intlayer 支持使用 **TypeScript**(也支持 JavaScript)和 **JSON** 声
|
|
|
120
120
|
- 可以本地托管或部署在远程服务器上。
|
|
121
121
|
|
|
122
122
|
> 资源:
|
|
123
|
-
|
|
123
|
+
>
|
|
124
124
|
> - [可视化编辑器](https://github.com/aymericzip/intlayer/blob/main/docs/zh/intlayer_visual_editor.md)
|
|
125
125
|
|
|
126
126
|
### 2. Intlayer CMS(远程)
|
|
@@ -130,7 +130,7 @@ Intlayer 支持使用 **TypeScript**(也支持 JavaScript)和 **JSON** 声
|
|
|
130
130
|
- 通过您的实时应用程序界面与内容交互。
|
|
131
131
|
|
|
132
132
|
> 资源:
|
|
133
|
-
|
|
133
|
+
>
|
|
134
134
|
> - [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/zh/intlayer_CMS.md)
|
|
135
135
|
|
|
136
136
|
---
|
|
@@ -142,7 +142,7 @@ Intlayer 支持使用 **TypeScript**(也支持 JavaScript)和 **JSON** 声
|
|
|
142
142
|
- 对于 **CI/CD 管道** 非常有用,确保您的内容始终与代码同步。
|
|
143
143
|
|
|
144
144
|
> 资源:
|
|
145
|
-
|
|
145
|
+
>
|
|
146
146
|
> - [CLI](https://github.com/aymericzip/intlayer/blob/main/docs/zh/intlayer_cli.md)
|
|
147
147
|
|
|
148
148
|
---
|
|
@@ -159,7 +159,7 @@ Intlayer 支持使用 **TypeScript**(也支持 JavaScript)和 **JSON** 声
|
|
|
159
159
|
- 使用远程字典和 Intlayer CMS 时,您可以 **实时更新应用程序的内容**,无需重新部署。
|
|
160
160
|
|
|
161
161
|
> 资源:
|
|
162
|
-
|
|
162
|
+
>
|
|
163
163
|
> - [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/zh/intlayer_CMS.md)
|
|
164
164
|
|
|
165
165
|
---
|