@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 @@ Intlayerを使用すると、以下が可能です:
|
|
|
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 @@ Intlayerを使用すると、以下が可能です:
|
|
|
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**
|
|
@@ -513,13 +516,7 @@ module.exports = App;
|
|
|
513
516
|
> `alt`、`title`、`href`、`aria-label`などの`string`属性でコンテンツを使用する場合、関数の値を呼び出す必要があります:
|
|
514
517
|
|
|
515
518
|
> ```jsx
|
|
516
|
-
>
|
|
517
|
-
> ```
|
|
518
|
-
|
|
519
519
|
> <img src={content.image.src.value} alt={content.image.value} />
|
|
520
|
-
|
|
521
|
-
> ```
|
|
522
|
-
>
|
|
523
520
|
> ```
|
|
524
521
|
|
|
525
522
|
> 注: Preactでは、`className`は通常`class`として記述されます。
|
|
@@ -1174,23 +1171,15 @@ module.exports = LocaleSwitcher;
|
|
|
1174
1171
|
```
|
|
1175
1172
|
|
|
1176
1173
|
> ドキュメント参照:
|
|
1177
|
-
|
|
1174
|
+
>
|
|
1178
1175
|
> - [`useLocale`フック](https://github.com/aymericzip/intlayer/blob/main/docs/ja/packages/react-intlayer/useLocale.md) (`preact-intlayer`のAPIも類似)
|
|
1179
|
-
|
|
1180
1176
|
> - [`getLocaleName`フック](https://github.com/aymericzip/intlayer/blob/main/docs/ja/packages/intlayer/getLocaleName.md)
|
|
1181
|
-
|
|
1182
1177
|
> - [`getLocalizedUrl`フック](https://github.com/aymericzip/intlayer/blob/main/docs/ja/packages/intlayer/getLocalizedUrl.md)
|
|
1183
|
-
|
|
1184
1178
|
> - [`getHTMLTextDir`フック](https://github.com/aymericzip/intlayer/blob/main/docs/ja/packages/intlayer/getHTMLTextDir.md)
|
|
1185
|
-
|
|
1186
1179
|
> - [`hreflang`属性](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=ja)
|
|
1187
|
-
|
|
1188
1180
|
> - [`lang`属性](https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/lang)
|
|
1189
|
-
|
|
1190
1181
|
> - [`dir`属性](https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/dir)
|
|
1191
|
-
|
|
1192
1182
|
> - [`aria-current`属性](https://developer.mozilla.org/ja/docs/Web/Accessibility/ARIA/Attributes/aria-current)
|
|
1193
|
-
|
|
1194
1183
|
> - [Popover API](https://developer.mozilla.org/ja/docs/Web/API/Popover_API)
|
|
1195
1184
|
|
|
1196
1185
|
以下は、説明を追加し、コード例を改良した**ステップ9**です:
|
|
@@ -24,15 +24,18 @@ Intlayerを使用すると、以下のことが可能です:
|
|
|
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
|
> `alt`、`title`、`href`、`aria-label` などの `string` 属性でコンテンツを使用する場合、関数の値を呼び出す必要があります。例えば:
|
|
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/ja/packages/react-intlayer/useIntlayer.md)を参照してください。
|
|
@@ -1204,21 +1201,14 @@ const LocaleSwitcher = () => {
|
|
|
1204
1201
|
```
|
|
1205
1202
|
|
|
1206
1203
|
> ドキュメント参照:
|
|
1207
|
-
|
|
1204
|
+
>
|
|
1208
1205
|
> - [`useLocale` フック](https://github.com/aymericzip/intlayer/blob/main/docs/ja/packages/react-intlayer/useLocale.md)
|
|
1209
|
-
|
|
1210
1206
|
> - [`getLocaleName` フック](https://github.com/aymericzip/intlayer/blob/main/docs/ja/packages/intlayer/getLocaleName.md)
|
|
1211
|
-
|
|
1212
1207
|
> - [`getLocalizedUrl` フック](https://github.com/aymericzip/intlayer/blob/main/docs/ja/packages/intlayer/getLocalizedUrl.md)
|
|
1213
|
-
|
|
1214
1208
|
> - [`getHTMLTextDir` フック](https://github.com/aymericzip/intlayer/blob/main/docs/ja/packages/intlayer/getHTMLTextDir.md)
|
|
1215
|
-
|
|
1216
1209
|
> - [`hrefLang` 属性](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
|
|
1217
|
-
|
|
1218
1210
|
> - [`lang` 属性](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang)
|
|
1219
|
-
|
|
1220
1211
|
> - [`dir` 属性](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir)
|
|
1221
|
-
|
|
1222
1212
|
> - [`aria-current` 属性](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)
|
|
1223
1213
|
|
|
1224
1214
|
---
|
|
@@ -24,15 +24,18 @@ Intlayerを使用すると、以下が可能です:
|
|
|
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/helloWorld.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
|
+
ja: "カウントは ",
|
|
274
|
+
en: "count is ",
|
|
275
|
+
fr: "le compte est ",
|
|
276
|
+
es: "el recuento es ",
|
|
277
|
+
}),
|
|
278
|
+
edit: t({
|
|
279
|
+
ja: "<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
|
+
ja: "チェックアウト ",
|
|
286
|
+
en: "Check out ",
|
|
287
|
+
fr: "Vérifiez ",
|
|
288
|
+
es: "Compruebe ",
|
|
289
|
+
}),
|
|
290
|
+
officialStarter: t({
|
|
291
|
+
ja: "公式の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
|
+
ja: "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
|
+
ja: "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
|
+
ja: "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,23 +455,20 @@ const count = ref(0);
|
|
|
444
455
|
</template>
|
|
445
456
|
```
|
|
446
457
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
> ```html
|
|
450
|
-
>
|
|
451
|
-
> ```
|
|
452
|
-
|
|
453
|
-
> <img src="./logo.svg" :alt="content.image.value" />
|
|
458
|
+
#### Intlayerでのコンテンツへのアクセス
|
|
454
459
|
|
|
455
|
-
|
|
456
|
-
>
|
|
457
|
-
> ```
|
|
460
|
+
Intlayerは、コンテンツにアクセスするためのさまざまなAPIを提供しています。
|
|
458
461
|
|
|
459
|
-
|
|
462
|
+
- **コンポーネントベースの構文**(推奨): `<myContent />`または`<Component :is="myContent" />`構文を使用して、コンテンツをIntlayerノードとしてレンダリングします。これは[ビジュアルエディタ](https://github.com/aymericzip/intlayer/blob/main/docs/ja/intlayer_visual_editor.md)および[CMS](https://github.com/aymericzip/intlayer/blob/main/docs/ja/intlayer_CMS.md)とシームレスに統合されます。
|
|
460
463
|
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
+
- **文字列ベースの構文**: `{{ myContent }}`を使用して、ビジュアルエディタをサポートせずにコンテンツをプレーンテキストとしてレンダリングします。
|
|
465
|
+
- **生のHTML構文**: `<div v-html="myContent" />`を使用して、ビジュアルエディタをサポートせずにコンテンツを生のHTMLとしてレンダリングします。
|
|
466
|
+
- **分割代入構文**:
|
|
467
|
+
`useIntlayer`コンポーザブルは、コンテンツとともにプロキシを返します。このプロキシは、リアクティビティを維持しながらコンテンツにアクセスするために分割代入できます。
|
|
468
|
+
- `const content = useIntlayer("myContent");`と`{{ content.myContent }}` / `<content.myContent />`を使用します。 - または、`const { myContent } = useIntlayer("myContent");`と`{{ myContent }}` / `<myContent />`を使用してコンテンツを分割代入します。 ### (任意) ステップ6:
|
|
469
|
+
コンテンツの言語を変更する
|
|
470
|
+
コンテンツの言語を変更するには、`useLocale`コンポーザブルが提供する`setLocale`関数を使用できます。この関数を使用すると、アプリケーションのロケールを設定し、それに応じてコンテンツを更新できます。
|
|
471
|
+
言語を切り替えるコンポーネントを作成します:
|
|
464
472
|
|
|
465
473
|
```vue fileName="src/components/LocaleSwitcher.vue"
|
|
466
474
|
<template>
|
|
@@ -531,18 +539,15 @@ Vueアプリケーションでローカライズされたルーティングを
|
|
|
531
539
|
|
|
532
540
|
```plaintext
|
|
533
541
|
- https://example.com/about
|
|
534
|
-
```
|
|
535
|
-
|
|
536
542
|
- https://example.com/ja/about
|
|
537
543
|
- https://example.com/fr/about
|
|
538
|
-
|
|
539
|
-
````
|
|
544
|
+
```
|
|
540
545
|
|
|
541
546
|
まず、Vue Routerをインストールします:
|
|
542
547
|
|
|
543
548
|
```bash packageManager="npm"
|
|
544
549
|
npm install intlayer vue-router
|
|
545
|
-
|
|
550
|
+
```
|
|
546
551
|
|
|
547
552
|
```bash packageManager="pnpm"
|
|
548
553
|
pnpm add intlayer vue-router
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
**Intlayer**は、JavaScript開発者向けに特別に設計されたパッケージスイートです。Vue、Vue、Express.jsなどのフレームワークと互換性があります。
|
|
2
|
+
|
|
3
|
+
**`nuxt-intlayer`パッケージ**は、Vueアプリケーションを国際化するためのものです。Vueの国際化のためのコンテキストプロバイダーとフックを提供します。
|
|
4
|
+
|
|
5
|
+
## なぜVueアプリケーションを国際化するのか?
|
|
6
|
+
|
|
7
|
+
Vueアプリケーションを国際化することは、グローバルなオーディエンスに効果的に対応するために不可欠です。これにより、アプリケーションは各ユーザーの好みの言語でコンテンツやメッセージを提供できます。この機能はユーザーエクスペリエンスを向上させ、異なる言語背景を持つ人々にとってよりアクセスしやすく、関連性のあるものにすることで、アプリケーションのリーチを広げます。
|
|
8
|
+
|
|
9
|
+
## なぜIntlayerを統合するのか?
|
|
10
|
+
|
|
11
|
+
- **JavaScript駆動のコンテンツ管理**: JavaScriptの柔軟性を活用して、コンテンツを効率的に定義および管理。
|
|
12
|
+
- **型安全な環境**: TypeScriptを活用して、すべてのコンテンツ定義を正確かつエラーのないものに。
|
|
13
|
+
- **統合されたコンテンツファイル**: 翻訳をそれぞれのコンポーネントに近い場所に保持し、保守性と明確さを向上。
|
|
14
|
+
|
|
15
|
+
## インストール
|
|
16
|
+
|
|
17
|
+
お好みのパッケージマネージャーを使用して必要なパッケージをインストールしてください:
|
|
18
|
+
|
|
19
|
+
```bash packageManager="npm"
|
|
20
|
+
npm install nuxt-intlayer
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
```bash packageManager="yarn"
|
|
24
|
+
yarn add nuxt-intlayer
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
```bash packageManager="pnpm"
|
|
28
|
+
pnpm add nuxt-intlayer
|
|
29
|
+
```
|
package/ja/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/ja/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/ja/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/ja/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/ja/dictionary/condition.md)
|
|
46
46
|
|
|
47
47
|
### 5. コンテンツ宣言フォーマット
|
|
@@ -86,7 +86,7 @@ Intlayerは、コンテンツ宣言に**TypeScript**(およびJavaScript)と
|
|
|
86
86
|
- 新しいNext.js Turbopackおよび従来のWebpackと完全互換。
|
|
87
87
|
|
|
88
88
|
> リソース:
|
|
89
|
-
|
|
89
|
+
>
|
|
90
90
|
> - [Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/ja/intlayer_with_nextjs_15.md)
|
|
91
91
|
|
|
92
92
|
### 2. Vite
|
|
@@ -94,7 +94,7 @@ Intlayerは、コンテンツ宣言に**TypeScript**(およびJavaScript)と
|
|
|
94
94
|
- Next.jsと同様に、IntlayerをViteと統合し、**ミドルウェア**を使用してユーザーを好みの言語に基づいたコンテンツにリダイレクト可能。
|
|
95
95
|
|
|
96
96
|
> リソース:
|
|
97
|
-
|
|
97
|
+
>
|
|
98
98
|
> - [Vite](https://github.com/aymericzip/intlayer/blob/main/docs/ja/intlayer_with_vite+react.md)
|
|
99
99
|
|
|
100
100
|
### 3. Express
|
|
@@ -103,7 +103,7 @@ Intlayerは、コンテンツ宣言に**TypeScript**(およびJavaScript)と
|
|
|
103
103
|
- ローカライズされたテキストでメール、エラーメッセージ、プッシュ通知などをパーソナライズ。
|
|
104
104
|
|
|
105
105
|
> リソース:
|
|
106
|
-
|
|
106
|
+
>
|
|
107
107
|
> - [Express](https://github.com/aymericzip/intlayer/blob/main/docs/ja/intlayer_with_express.md)
|
|
108
108
|
|
|
109
109
|
---
|
|
@@ -120,7 +120,7 @@ Intlayerは、コンテンツ宣言に**TypeScript**(およびJavaScript)と
|
|
|
120
120
|
- ローカルでホストするか、リモートサーバーにデプロイ可能。
|
|
121
121
|
|
|
122
122
|
> リソース:
|
|
123
|
-
|
|
123
|
+
>
|
|
124
124
|
> - [ビジュアルエディタ](https://github.com/aymericzip/intlayer/blob/main/docs/ja/intlayer_visual_editor.md)
|
|
125
125
|
|
|
126
126
|
### 2. Intlayer CMS(リモート)
|
|
@@ -130,7 +130,7 @@ Intlayerは、コンテンツ宣言に**TypeScript**(およびJavaScript)と
|
|
|
130
130
|
- ライブアプリケーションインターフェースを介してコンテンツと対話。
|
|
131
131
|
|
|
132
132
|
> リソース:
|
|
133
|
-
|
|
133
|
+
>
|
|
134
134
|
> - [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/ja/intlayer_CMS.md)
|
|
135
135
|
|
|
136
136
|
---
|
|
@@ -142,7 +142,7 @@ Intlayerは、コンテンツ宣言に**TypeScript**(およびJavaScript)と
|
|
|
142
142
|
- **CI/CDパイプライン**に役立ち、コンテンツが常にコードと同期していることを保証。
|
|
143
143
|
|
|
144
144
|
> リソース:
|
|
145
|
-
|
|
145
|
+
>
|
|
146
146
|
> - [CLI](https://github.com/aymericzip/intlayer/blob/main/docs/ja/intlayer_cli.md)
|
|
147
147
|
|
|
148
148
|
---
|
|
@@ -159,7 +159,7 @@ Intlayerは、コンテンツ宣言に**TypeScript**(およびJavaScript)と
|
|
|
159
159
|
- リモート辞書とIntlayer CMSを使用する場合、アプリケーションのコンテンツを**即座に更新**可能で、再デプロイは不要。
|
|
160
160
|
|
|
161
161
|
> リソース:
|
|
162
|
-
|
|
162
|
+
>
|
|
163
163
|
> - [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/ja/intlayer_CMS.md)
|
|
164
164
|
|
|
165
165
|
---
|
package/ko/autoFill.md
CHANGED
|
@@ -67,9 +67,8 @@ src/components/example/example.filled.content.ts
|
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
> `.js`, `.ts` 등의 파일 생성은 다음과 같이 작동합니다:
|
|
70
|
-
|
|
70
|
+
>
|
|
71
71
|
> - 파일이 이미 존재하는 경우, Intlayer는 AST(추상 구문 트리)를 사용하여 각 필드를 찾고 누락된 번역을 삽입합니다.
|
|
72
|
-
|
|
73
72
|
> - 파일이 존재하지 않는 경우, Intlayer는 콘텐츠 선언 파일의 기본 템플릿을 사용하여 생성합니다.
|
|
74
73
|
|
|
75
74
|
## 절대 경로
|
package/ko/how_works_intlayer.md
CHANGED
|
@@ -322,13 +322,7 @@ const App = () => (
|
|
|
322
322
|
> 참고: `alt`, `title`, `href`, `aria-label` 등과 같은 `string` 속성에서 콘텐츠를 사용하려면, 함수의 값을 호출해야 합니다. 예를 들어:
|
|
323
323
|
|
|
324
324
|
> ```jsx
|
|
325
|
-
>
|
|
326
|
-
> ```
|
|
327
|
-
|
|
328
325
|
> <img src={content.image.src.value} alt={content.image.value} />
|
|
329
|
-
|
|
330
|
-
> ```
|
|
331
|
-
>
|
|
332
326
|
> ```
|
|
333
327
|
|
|
334
328
|
> `useIntlayer` 훅에 대해 더 알아보려면 [문서](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/react-intlayer/useIntlayer.md)를 참조하세요.
|
|
@@ -968,21 +962,14 @@ const LocaleSwitcher = () => {
|
|
|
968
962
|
```
|
|
969
963
|
|
|
970
964
|
> 문서 참조:
|
|
971
|
-
|
|
965
|
+
>
|
|
972
966
|
> - [`useLocale` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/react-intlayer/useLocale.md)
|
|
973
|
-
|
|
974
967
|
> - [`getLocaleName` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getLocaleName.md)
|
|
975
|
-
|
|
976
968
|
> - [`getLocalizedUrl` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getLocalizedUrl.md)
|
|
977
|
-
|
|
978
969
|
> - [`getHTMLTextDir` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getHTMLTextDir.md)
|
|
979
|
-
|
|
980
970
|
> - [`hrefLang` 속성](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
|
|
981
|
-
|
|
982
971
|
> - [`lang` 속성](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang)
|
|
983
|
-
|
|
984
972
|
> - [`dir` 속성](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir)
|
|
985
|
-
|
|
986
973
|
> - [`aria-current` 속성](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)
|
|
987
974
|
|
|
988
975
|
### (선택 사항) 단계 9: HTML 언어 및 방향 속성 전환
|
|
@@ -571,13 +571,7 @@ const ServerComponentExample = () => {
|
|
|
571
571
|
> `alt`, `title`, `href`, `aria-label` 등과 같은 `string` 속성에서 콘텐츠를 사용하려면 함수의 값을 호출해야 합니다:
|
|
572
572
|
|
|
573
573
|
> ```jsx
|
|
574
|
-
>
|
|
575
|
-
> ```
|
|
576
|
-
|
|
577
574
|
> <img src={content.image.src.value} alt={content.image.value} />
|
|
578
|
-
|
|
579
|
-
> ```
|
|
580
|
-
>
|
|
581
575
|
> ```
|
|
582
576
|
|
|
583
577
|
> `useIntlayer` 훅에 대해 자세히 알아보려면 [문서](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/next-intlayer/useIntlayer.md)를 참조하세요.
|
|
@@ -1051,21 +1045,14 @@ const LocaleSwitcher = () => {
|
|
|
1051
1045
|
```
|
|
1052
1046
|
|
|
1053
1047
|
> 문서 참조:
|
|
1054
|
-
|
|
1048
|
+
>
|
|
1055
1049
|
> - [`useLocale` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/next-intlayer/useLocale.md)
|
|
1056
|
-
|
|
1057
1050
|
> - [`getLocaleName` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getLocaleName.md)
|
|
1058
|
-
|
|
1059
1051
|
> - [`getLocalizedUrl` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getLocalizedUrl.md)
|
|
1060
|
-
|
|
1061
1052
|
> - [`getHTMLTextDir` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getHTMLTextDir.md)
|
|
1062
|
-
|
|
1063
1053
|
> - [`hrefLang` 속성](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=ko)
|
|
1064
|
-
|
|
1065
1054
|
> - [`lang` 속성](https://developer.mozilla.org/ko/docs/Web/HTML/Global_attributes/lang)
|
|
1066
|
-
|
|
1067
1055
|
> - [`dir` 속성](https://developer.mozilla.org/ko/docs/Web/HTML/Global_attributes/dir)
|
|
1068
|
-
|
|
1069
1056
|
> - [`aria-current` 속성](https://developer.mozilla.org/ko/docs/Web/Accessibility/ARIA/Attributes/aria-current)
|
|
1070
1057
|
|
|
1071
1058
|
### (선택 사항) 11단계: 로컬라이즈된 링크 컴포넌트 생성
|
|
@@ -587,13 +587,7 @@ const ServerComponentExample = () => {
|
|
|
587
587
|
> `alt`, `title`, `href`, `aria-label` 등과 같은 `string` 속성에서 콘텐츠를 사용하려면 함수의 값을 호출해야 합니다:
|
|
588
588
|
|
|
589
589
|
> ```jsx
|
|
590
|
-
>
|
|
591
|
-
> ```
|
|
592
|
-
|
|
593
590
|
> <img src={content.image.src.value} alt={content.image.value} />
|
|
594
|
-
|
|
595
|
-
> ```
|
|
596
|
-
>
|
|
597
591
|
> ```
|
|
598
592
|
|
|
599
593
|
> `useIntlayer` 훅에 대한 자세한 내용은 [문서](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/next-intlayer/useIntlayer.md)를 참조하세요.
|
|
@@ -1108,21 +1102,14 @@ export const LocaleSwitcher = () => {
|
|
|
1108
1102
|
```
|
|
1109
1103
|
|
|
1110
1104
|
> 문서 참조:
|
|
1111
|
-
|
|
1105
|
+
>
|
|
1112
1106
|
> - [`useLocale` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/next-intlayer/useLocale.md)
|
|
1113
|
-
|
|
1114
1107
|
> - [`getLocaleName` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getLocaleName.md)
|
|
1115
|
-
|
|
1116
1108
|
> - [`getLocalizedUrl` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getLocalizedUrl.md)
|
|
1117
|
-
|
|
1118
1109
|
> - [`getHTMLTextDir` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getHTMLTextDir.md)
|
|
1119
|
-
|
|
1120
1110
|
> - [`hrefLang` 속성](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
|
|
1121
|
-
|
|
1122
1111
|
> - [`lang` 속성](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang)
|
|
1123
|
-
|
|
1124
1112
|
> - [`dir` 속성](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir)
|
|
1125
|
-
|
|
1126
1113
|
> - [`aria-current` 속성](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)
|
|
1127
1114
|
|
|
1128
1115
|
### (선택 사항) 11단계: 로컬화된 링크 컴포넌트 생성
|
|
@@ -533,13 +533,7 @@ const ComponentExample = () => {
|
|
|
533
533
|
> `string` 속성(예: `alt`, `title`, `href`, `aria-label`)에서 번역을 사용할 때는 다음과 같이 함수 값을 호출하세요:
|
|
534
534
|
|
|
535
535
|
> ```jsx
|
|
536
|
-
>
|
|
537
|
-
> ```
|
|
538
|
-
|
|
539
536
|
> <img src={content.image.src.value} alt={content.image.value} />
|
|
540
|
-
|
|
541
|
-
> ```
|
|
542
|
-
>
|
|
543
537
|
> ```
|
|
544
538
|
|
|
545
539
|
> `useIntlayer` 훅에 대해 자세히 알아보려면 [문서](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/next-intlayer/useIntlayer.md)를 참조하세요.
|
|
@@ -875,19 +869,13 @@ const LocaleSwitcher = () => {
|
|
|
875
869
|
> `useLocalePageRouter` API는 `useLocale`과 동일합니다. `useLocale` 훅에 대해 자세히 알아보려면 [문서](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/next-intlayer/useLocale.md)를 참조하세요.
|
|
876
870
|
|
|
877
871
|
> 문서 참조:
|
|
878
|
-
|
|
872
|
+
>
|
|
879
873
|
> - [`getLocaleName` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getLocaleName.md)
|
|
880
|
-
|
|
881
874
|
> - [`getLocalizedUrl` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getLocalizedUrl.md)
|
|
882
|
-
|
|
883
875
|
> - [`getHTMLTextDir` 훅](https://github.com/aymericzip/intlayer/blob/main/docs/ko/packages/intlayer/getHTMLTextDir.md)
|
|
884
|
-
|
|
885
876
|
> - [`hrefLang` 속성](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
|
|
886
|
-
|
|
887
877
|
> - [`lang` 속성](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang)
|
|
888
|
-
|
|
889
878
|
> - [`dir` 속성](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir)
|
|
890
|
-
|
|
891
879
|
> - [`aria-current` 속성](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)
|
|
892
880
|
|
|
893
881
|
### (선택 사항) 10단계: 로컬라이즈된 링크 컴포넌트 생성
|