@intlayer/docs 6.1.5 → 6.1.6-canary.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/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +404 -173
- package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +262 -113
- package/blog/en/intlayer_with_next-i18next.mdx +431 -0
- package/blog/en/intlayer_with_next-intl.mdx +335 -0
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +403 -140
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +38 -28
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +185 -71
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +38 -28
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +38 -28
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +38 -28
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +38 -28
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +38 -28
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +36 -28
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +38 -28
- package/dist/cjs/generated/docs.entry.cjs +16 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +16 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/component_i18n.md +186 -0
- package/docs/ar/vs_code_extension.md +48 -109
- package/docs/de/component_i18n.md +186 -0
- package/docs/de/vs_code_extension.md +46 -107
- package/docs/en/component_i18n.md +186 -0
- package/docs/en/intlayer_with_nextjs_14.md +18 -1
- package/docs/en/intlayer_with_nextjs_15.md +18 -1
- package/docs/en/vs_code_extension.md +24 -114
- package/docs/en-GB/component_i18n.md +186 -0
- package/docs/en-GB/vs_code_extension.md +42 -103
- package/docs/es/component_i18n.md +182 -0
- package/docs/es/vs_code_extension.md +53 -114
- package/docs/fr/component_i18n.md +186 -0
- package/docs/fr/vs_code_extension.md +50 -111
- package/docs/hi/component_i18n.md +186 -0
- package/docs/hi/vs_code_extension.md +49 -110
- package/docs/it/component_i18n.md +186 -0
- package/docs/it/vs_code_extension.md +50 -111
- package/docs/ja/component_i18n.md +186 -0
- package/docs/ja/vs_code_extension.md +50 -111
- package/docs/ko/component_i18n.md +186 -0
- package/docs/ko/vs_code_extension.md +48 -109
- package/docs/pt/component_i18n.md +186 -0
- package/docs/pt/vs_code_extension.md +46 -107
- package/docs/ru/component_i18n.md +186 -0
- package/docs/ru/vs_code_extension.md +48 -109
- package/docs/tr/component_i18n.md +186 -0
- package/docs/tr/vs_code_extension.md +54 -115
- package/docs/zh/component_i18n.md +186 -0
- package/docs/zh/vs_code_extension.md +51 -105
- package/package.json +11 -11
- package/src/generated/docs.entry.ts +16 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-03-17
|
|
3
|
-
updatedAt: 2025-09-
|
|
3
|
+
updatedAt: 2025-09-30
|
|
4
4
|
title: Estensione Ufficiale per VS Code
|
|
5
|
-
description: Scopri come utilizzare l'estensione Intlayer in VS Code per migliorare il tuo flusso di lavoro di sviluppo. Naviga rapidamente tra contenuti localizzati e gestisci i tuoi dizionari in modo efficiente.
|
|
5
|
+
description: Scopri come utilizzare l'estensione Intlayer in VS Code per migliorare il tuo flusso di lavoro di sviluppo. Naviga rapidamente tra i contenuti localizzati e gestisci i tuoi dizionari in modo efficiente.
|
|
6
6
|
keywords:
|
|
7
7
|
- Estensione VS Code
|
|
8
8
|
- Intlayer
|
|
@@ -23,96 +23,40 @@ slugs:
|
|
|
23
23
|
|
|
24
24
|
[**Intlayer**](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) è l'estensione ufficiale di Visual Studio Code per **Intlayer**, progettata per migliorare l'esperienza dello sviluppatore quando si lavora con contenuti localizzati nei tuoi progetti.
|
|
25
25
|
|
|
26
|
-

|
|
26
|
+

|
|
27
27
|
|
|
28
28
|
Link all'estensione: [https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension)
|
|
29
29
|
|
|
30
30
|
## Funzionalità
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+

|
|
33
33
|
|
|
34
|
-
**
|
|
35
|
-
**
|
|
36
|
-
**Supporto Multilingue** – Supporta contenuti localizzati in diverse lingue.
|
|
37
|
-
**Integrazione con VS Code** – Si integra fluidamente con la navigazione e la palette dei comandi di VS Code.
|
|
34
|
+
- **Navigazione Istantanea** – Passa rapidamente al file di contenuto corretto cliccando su una chiave `useIntlayer`.
|
|
35
|
+
- **Riempi Dizionari** – Riempi i dizionari con i contenuti del tuo progetto.
|
|
38
36
|
|
|
39
|
-
|
|
37
|
+

|
|
40
38
|
|
|
41
|
-
|
|
39
|
+
- **Accesso facile ai comandi Intlayer** – Costruisci, invia, scarica, riempi, testa i dizionari di contenuti con facilità.
|
|
42
40
|
|
|
43
|
-
|
|
44
|
-
- **Carica Dizionari** – Carica l'ultimo contenuto del dizionario nel tuo repository.
|
|
45
|
-
- **Scarica Dizionari** – Sincronizza l'ultimo contenuto del dizionario dal tuo repository al tuo ambiente locale.
|
|
46
|
-
- **Riempi Dizionari** – Popola i dizionari con contenuti dal tuo progetto.
|
|
47
|
-
- **Testa Dizionari** – Identifica traduzioni mancanti o incomplete.
|
|
41
|
+

|
|
48
42
|
|
|
49
|
-
|
|
43
|
+
- **Generatore di dichiarazioni di contenuto** – Crea file di contenuto del dizionario in vari formati (`.ts`, `.esm`, `.cjs`, `.json`).
|
|
50
44
|
|
|
51
|
-
|
|
45
|
+

|
|
52
46
|
|
|
53
|
-
|
|
47
|
+
- **Test dizionari** – Testa i dizionari per traduzioni mancanti.
|
|
54
48
|
|
|
55
|
-
|
|
49
|
+

|
|
56
50
|
|
|
57
|
-
|
|
58
|
-
const MyComponent = () => {
|
|
59
|
-
const { myTranslatedContent } = useIntlayer("my-component");
|
|
51
|
+
- **Mantieni i tuoi dizionari aggiornati** – Mantieni i tuoi dizionari aggiornati con i contenuti più recenti del tuo progetto.
|
|
60
52
|
|
|
61
|
-
|
|
62
|
-
};
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
File generato in formato TypeScript:
|
|
66
|
-
|
|
67
|
-
```tsx fileName="src/components/MyComponent/index.content.ts"
|
|
68
|
-
import { t, type Dictionary } from "intlayer";
|
|
69
|
-
|
|
70
|
-
const componentContent = {
|
|
71
|
-
key: "my-component",
|
|
72
|
-
content: {
|
|
73
|
-
myTranslatedContent: t({
|
|
74
|
-
en: "Hello World",
|
|
75
|
-
es: "Hola Mundo",
|
|
76
|
-
fr: "Bonjour le monde",
|
|
77
|
-
}),
|
|
78
|
-
},
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
export default componentContent;
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
Formati disponibili:
|
|
85
|
-
|
|
86
|
-
- **TypeScript (`.ts`)**
|
|
87
|
-
- **Modulo ES (`.esm`)**
|
|
88
|
-
- **CommonJS (`.cjs`)**
|
|
89
|
-
- **JSON (`.json`)**
|
|
90
|
-
|
|
91
|
-
### Scheda Intlayer (Barra delle Attività)
|
|
53
|
+

|
|
92
54
|
|
|
93
|
-
|
|
55
|
+
- **Scheda Intlayer (Barra attività)** – Naviga e cerca nei dizionari da una scheda laterale dedicata con barra degli strumenti e azioni contestuali (Costruisci, Scarica, Invia, Riempi, Aggiorna, Testa, Crea file).
|
|
94
56
|
|
|
95
|
-
|
|
96
|
-
- **Dizionari**: Una vista ad albero dei tuoi ambienti/progetti, delle chiavi del dizionario e dei file che contribuiscono con voci. Puoi:
|
|
97
|
-
- Cliccare su un file per aprirlo nell'editor.
|
|
98
|
-
- Usare la barra degli strumenti per eseguire azioni: Build, Pull, Push, Fill, Refresh, Test e Create Dictionary File.
|
|
99
|
-
- Usare il menu contestuale per azioni specifiche dell'elemento:
|
|
100
|
-
- Su un dizionario: Pull o Push
|
|
101
|
-
- Su un file: Fill Dictionary
|
|
102
|
-
- Quando cambi editor, l'albero rivelerà il file corrispondente se appartiene a un dizionario.
|
|
57
|
+
## Uso
|
|
103
58
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
Puoi installare **Intlayer** direttamente dal Marketplace di VS Code:
|
|
107
|
-
|
|
108
|
-
1. Apri **VS Code**.
|
|
109
|
-
2. Vai al **Marketplace delle Estensioni**.
|
|
110
|
-
3. Cerca **"Intlayer"**.
|
|
111
|
-
4. Clicca su **Installa**.
|
|
112
|
-
|
|
113
|
-
## Utilizzo
|
|
114
|
-
|
|
115
|
-
### Navigazione Rapida
|
|
59
|
+
### Navigazione rapida
|
|
116
60
|
|
|
117
61
|
1. Apri un progetto che utilizza **react-intlayer**.
|
|
118
62
|
2. Individua una chiamata a `useIntlayer()`, come:
|
|
@@ -122,62 +66,57 @@ Puoi installare **Intlayer** direttamente dal Marketplace di VS Code:
|
|
|
122
66
|
```
|
|
123
67
|
|
|
124
68
|
3. **Command-click** (`⌘+Click` su macOS) o **Ctrl+Click** (su Windows/Linux) sulla chiave (ad esempio, `"app"`).
|
|
125
|
-
4. VS Code aprirà automaticamente il file
|
|
126
|
-
|
|
127
|
-
### Gestione dei Dizionari di Contenuto
|
|
69
|
+
4. VS Code aprirà automaticamente il file dizionario corrispondente, ad esempio, `src/app.content.ts`.
|
|
128
70
|
|
|
129
|
-
### Scheda Intlayer (Barra
|
|
71
|
+
### Scheda Intlayer (Barra attività)
|
|
130
72
|
|
|
131
73
|
Usa la scheda laterale per navigare e gestire i dizionari:
|
|
132
74
|
|
|
133
|
-
- Apri l'icona Intlayer nella Barra
|
|
134
|
-
- In **
|
|
135
|
-
- In **Dizionari**, esplora ambienti, dizionari e file. Usa la barra degli strumenti per
|
|
75
|
+
- Apri l'icona Intlayer nella Barra attività.
|
|
76
|
+
- In **Cerca**, digita per filtrare dizionari e voci in tempo reale.
|
|
77
|
+
- In **Dizionari**, esplora ambienti, dizionari e file. Usa la barra degli strumenti per Costruisci, Scarica, Invia, Riempi, Aggiorna, Testa e Crea file dizionario. Clic destro per azioni contestuali (Scarica/Invia sui dizionari, Riempi sui file). Il file attualmente aperto nell'editor si evidenzia automaticamente nell'albero quando applicabile.
|
|
136
78
|
|
|
137
|
-
|
|
79
|
+
### Accesso ai comandi
|
|
138
80
|
|
|
139
|
-
|
|
81
|
+
Puoi accedere ai comandi dalla **Command Palette**.
|
|
140
82
|
|
|
141
83
|
```sh
|
|
142
84
|
Cmd + Shift + P (macOS) / Ctrl + Shift + P (Windows/Linux)
|
|
143
85
|
```
|
|
144
86
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
1. Apri la **Palette dei Comandi**.
|
|
152
|
-
2. Cerca **Carica Dizionari**.
|
|
153
|
-
3. Seleziona i dizionari da caricare e conferma.
|
|
154
|
-
|
|
155
|
-
#### Scaricare Dizionari
|
|
87
|
+
- **Costruisci Dizionari**
|
|
88
|
+
- **Invia Dizionari**
|
|
89
|
+
- **Scarica Dizionari**
|
|
90
|
+
- **Riempi Dizionari**
|
|
91
|
+
- **Testa Dizionari**
|
|
92
|
+
- **Crea File Dizionario**
|
|
156
93
|
|
|
157
|
-
|
|
94
|
+
### Caricamento delle Variabili d'Ambiente
|
|
158
95
|
|
|
159
|
-
|
|
160
|
-
2. Cerca **Scarica Dizionari**.
|
|
161
|
-
3. Scegli i dizionari da scaricare.
|
|
96
|
+
Intlayer consiglia di memorizzare le chiavi API AI, così come l'ID client e il segreto di Intlayer, nelle variabili d'ambiente.
|
|
162
97
|
|
|
163
|
-
|
|
98
|
+
L'estensione può caricare le variabili d'ambiente dal tuo workspace per eseguire i comandi Intlayer con il contesto corretto.
|
|
164
99
|
|
|
165
|
-
|
|
100
|
+
- **Ordine di caricamento (per priorità)**: `.env.<env>.local` → `.env.<env>` → `.env.local` → `.env`
|
|
101
|
+
- **Non distruttivo**: i valori esistenti in `process.env` non vengono sovrascritti.
|
|
102
|
+
- **Ambito**: i file vengono risolti dalla directory base configurata (predefinita alla radice del workspace).
|
|
166
103
|
|
|
167
|
-
|
|
168
|
-
2. Cerca **Riempi Dizionari**.
|
|
169
|
-
3. Esegui il comando per popolare i dizionari.
|
|
104
|
+
#### Selezione dell'ambiente attivo
|
|
170
105
|
|
|
171
|
-
|
|
106
|
+
- **Palette dei Comandi**: apri la palette ed esegui `Intlayer: Select Environment`, quindi scegli l'ambiente (ad esempio, `development`, `staging`, `production`). L'estensione tenterà di caricare il primo file disponibile nella lista di priorità sopra indicata e mostrerà una notifica come “Caricato env da .env.<env>.local”.
|
|
107
|
+
- **Impostazioni**: vai su `Impostazioni → Estensioni → Intlayer`, e imposta:
|
|
108
|
+
- **Ambiente**: il nome dell'ambiente usato per risolvere i file `.env.<env>*`.
|
|
109
|
+
- (Opzionale) **File Env**: un percorso esplicito a un file `.env`. Quando fornito, ha la precedenza sulla lista dedotta.
|
|
172
110
|
|
|
173
|
-
|
|
111
|
+
#### Monorepo e directory personalizzate
|
|
174
112
|
|
|
175
|
-
|
|
176
|
-
2. Cerca **Testa Dizionari**.
|
|
177
|
-
3. Rivedi i problemi segnalati e correggili se necessario.
|
|
113
|
+
Se i tuoi file `.env` si trovano al di fuori della radice dello spazio di lavoro, imposta la **Directory Base** in `Impostazioni → Estensioni → Intlayer`. Il loader cercherà i file `.env` relativi a quella directory.
|
|
178
114
|
|
|
179
115
|
## Cronologia Documentazione
|
|
180
116
|
|
|
181
|
-
| Versione | Data | Modifiche
|
|
182
|
-
| -------- | ---------- |
|
|
183
|
-
|
|
|
117
|
+
| Versione | Data | Modifiche |
|
|
118
|
+
| -------- | ---------- | ----------------------------------- |
|
|
119
|
+
| 6.1.5 | 2025-09-30 | Aggiunta gif demo |
|
|
120
|
+
| 6.1.0 | 2025-09-24 | Aggiunta sezione selezione ambiente |
|
|
121
|
+
| 6.0.0 | 2025-09-22 | Comandi Intlayer Tab / Fill & Test |
|
|
122
|
+
| 5.5.10 | 2025-06-29 | Inizializzazione cronologia |
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2024-03-07
|
|
3
|
+
updatedAt: 2025-09-30
|
|
4
|
+
title: React と Next.js でコンポーネントを多言語対応(i18n)にする方法
|
|
5
|
+
description: Intlayer を使って多言語対応の React または Next.js コンポーネントを作成するために、ローカライズされたコンテンツの宣言と取得方法を学びます。
|
|
6
|
+
keywords:
|
|
7
|
+
- i18n
|
|
8
|
+
- コンポーネント
|
|
9
|
+
- react
|
|
10
|
+
- 多言語対応
|
|
11
|
+
- next.js
|
|
12
|
+
- intlayer
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- component
|
|
16
|
+
- i18n
|
|
17
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
|
|
18
|
+
youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Intlayer でコンポーネントを多言語対応(i18n)にする方法
|
|
22
|
+
|
|
23
|
+
このガイドでは、2つの一般的なセットアップで UI コンポーネントを多言語対応にするための最小限の手順を示します:
|
|
24
|
+
|
|
25
|
+
- React (Vite/SPA)
|
|
26
|
+
- Next.js (App Router)
|
|
27
|
+
|
|
28
|
+
まずコンテンツを宣言し、その後コンポーネント内で取得します。
|
|
29
|
+
|
|
30
|
+
## 1) コンテンツを宣言する(React と Next.js 共通)
|
|
31
|
+
|
|
32
|
+
コンポーネントの近くにコンテンツ宣言ファイルを作成します。これにより、翻訳が使用される場所に近くなり、型安全性も確保されます。
|
|
33
|
+
|
|
34
|
+
```ts fileName="component.content.ts"
|
|
35
|
+
import { t, type Dictionary } from "intlayer";
|
|
36
|
+
|
|
37
|
+
const componentContent = {
|
|
38
|
+
key: "component-example",
|
|
39
|
+
content: {
|
|
40
|
+
title: t({
|
|
41
|
+
en: "Hello",
|
|
42
|
+
fr: "Bonjour",
|
|
43
|
+
es: "Hola",
|
|
44
|
+
}),
|
|
45
|
+
description: t({
|
|
46
|
+
en: "A multilingual React component",
|
|
47
|
+
fr: "Un composant React multilingue",
|
|
48
|
+
es: "Un componente React multilingüe",
|
|
49
|
+
}),
|
|
50
|
+
},
|
|
51
|
+
} satisfies Dictionary;
|
|
52
|
+
|
|
53
|
+
export default componentContent;
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
設定ファイルとして JSON を使いたい場合もサポートされています。
|
|
57
|
+
|
|
58
|
+
```json fileName="component.content.json"
|
|
59
|
+
{
|
|
60
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
61
|
+
"key": "component-example",
|
|
62
|
+
"content": {
|
|
63
|
+
"title": {
|
|
64
|
+
"nodeType": "translation",
|
|
65
|
+
"translation": { "en": "Hello", "fr": "Bonjour", "es": "Hola" }
|
|
66
|
+
},
|
|
67
|
+
"description": {
|
|
68
|
+
"nodeType": "translation",
|
|
69
|
+
"translation": {
|
|
70
|
+
"en": "多言語対応のReactコンポーネント",
|
|
71
|
+
"fr": "Un composant React multilingue",
|
|
72
|
+
"es": "Un componente React multilingüe"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## 2) コンテンツの取得
|
|
80
|
+
|
|
81
|
+
### ケースA — Reactアプリ(Vite/SPA)
|
|
82
|
+
|
|
83
|
+
デフォルトの方法:キーで取得するために `useIntlayer` を使用します。これによりコンポーネントはシンプルかつ型安全に保たれます。
|
|
84
|
+
|
|
85
|
+
```tsx fileName="ComponentExample.tsx"
|
|
86
|
+
import { useIntlayer } from "react-intlayer";
|
|
87
|
+
|
|
88
|
+
export function ComponentExample() {
|
|
89
|
+
const content = useIntlayer("component-example");
|
|
90
|
+
return (
|
|
91
|
+
<div>
|
|
92
|
+
<h1>{content.title}</h1>
|
|
93
|
+
<p>{content.description}</p>
|
|
94
|
+
</div>
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
サーバーサイドレンダリングやプロバイダー外での使用:`react-intlayer/server` を使用し、必要に応じて明示的に `locale` を渡します。
|
|
100
|
+
|
|
101
|
+
```tsx fileName="ServerRenderedExample.tsx"
|
|
102
|
+
import { useIntlayer } from "react-intlayer/server";
|
|
103
|
+
|
|
104
|
+
export function ServerRenderedExample({ locale }: { locale: string }) {
|
|
105
|
+
const content = useIntlayer("component-example", locale);
|
|
106
|
+
return (
|
|
107
|
+
<>
|
|
108
|
+
<h1>{content.title}</h1>
|
|
109
|
+
<p>{content.description}</p>
|
|
110
|
+
</>
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
代替案:呼び出し元で構造をまとめておきたい場合は、`useDictionary` を使って宣言済みのオブジェクト全体を読み取ることができます。
|
|
116
|
+
|
|
117
|
+
```tsx fileName="ComponentWithDictionary.tsx"
|
|
118
|
+
import { useDictionary } from "react-intlayer";
|
|
119
|
+
import componentContent from "./component.content";
|
|
120
|
+
|
|
121
|
+
export function ComponentWithDictionary() {
|
|
122
|
+
const { title, description } = useDictionary(componentContent);
|
|
123
|
+
return (
|
|
124
|
+
<div>
|
|
125
|
+
<h1>{title}</h1>
|
|
126
|
+
<p>{description}</p>
|
|
127
|
+
</div>
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### ケースB — Next.js(App Router)
|
|
133
|
+
|
|
134
|
+
データの安全性とパフォーマンスのためにサーバーコンポーネントを優先してください。サーバーファイルでは `next-intlayer/server` から `useIntlayer` を使用し、クライアントコンポーネントでは `next-intlayer` から `useIntlayer` を使用します。
|
|
135
|
+
|
|
136
|
+
```tsx fileName="app/[locale]/example/ServerComponent.tsx"
|
|
137
|
+
import { useIntlayer } from "next-intlayer/server";
|
|
138
|
+
|
|
139
|
+
export default function ServerComponent() {
|
|
140
|
+
const content = useIntlayer("component-example");
|
|
141
|
+
return (
|
|
142
|
+
<>
|
|
143
|
+
<h1>{content.title}</h1>
|
|
144
|
+
<p>{content.description}</p>
|
|
145
|
+
</>
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
```tsx fileName="app/[locale]/example/ClientComponent.tsx"
|
|
151
|
+
"use client";
|
|
152
|
+
|
|
153
|
+
import { useIntlayer } from "next-intlayer";
|
|
154
|
+
|
|
155
|
+
export function ClientComponent() {
|
|
156
|
+
const content = useIntlayer("component-example");
|
|
157
|
+
return (
|
|
158
|
+
<div>
|
|
159
|
+
<h1>{content.title}</h1>
|
|
160
|
+
<p>{content.description}</p>
|
|
161
|
+
</div>
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
ヒント: ページのメタデータやSEOのために、`getIntlayer` を使用してコンテンツを取得し、`getMultilingualUrls` を使って多言語URLを生成することもできます。
|
|
167
|
+
|
|
168
|
+
## なぜIntlayerのコンポーネントアプローチが最適なのか
|
|
169
|
+
|
|
170
|
+
- **コロケーション**: コンテンツの宣言がコンポーネントの近くに存在するため、ズレが減り、デザインシステム全体での再利用が向上します。
|
|
171
|
+
- **型安全性**: キーや構造が強く型付けされており、翻訳の欠落は実行時ではなくビルド時に検出されます。
|
|
172
|
+
- **サーバーファースト**: サーバーコンポーネントでネイティブに動作し、セキュリティとパフォーマンスを向上させます。クライアントフックは引き続き使いやすいままです。
|
|
173
|
+
- **ツリーシェイキング**: コンポーネントで使用されるコンテンツのみがバンドルされるため、大規模アプリでもペイロードを小さく保てます。
|
|
174
|
+
- **DX(開発者体験)&ツール**: 組み込みのミドルウェア、SEOヘルパー、オプションのビジュアルエディター/AI翻訳が日々の作業を効率化します。
|
|
175
|
+
|
|
176
|
+
Next.jsに特化した比較とパターンのまとめはこちらをご覧ください: https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
|
|
177
|
+
|
|
178
|
+
## 関連ガイドと参考資料
|
|
179
|
+
|
|
180
|
+
- Reactセットアップ(Vite): https://intlayer.org/doc/environment/vite-and-react
|
|
181
|
+
- React Router v7: https://intlayer.org/doc/environment/vite-and-react/react-router-v7
|
|
182
|
+
- TanStackスタート: https://intlayer.org/doc/environment/vite-and-react/tanstack-start
|
|
183
|
+
- Next.js セットアップ: https://intlayer.org/doc/environment/nextjs
|
|
184
|
+
- なぜ Intlayer を選ぶのか vs. next-intl vs. next-i18next: https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
|
|
185
|
+
|
|
186
|
+
これらのページには、エンドツーエンドのセットアップ、プロバイダー、ルーティング、および SEO ヘルパーが含まれています。
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-03-17
|
|
3
|
-
updatedAt: 2025-09-
|
|
3
|
+
updatedAt: 2025-09-30
|
|
4
4
|
title: 公式 VS Code 拡張機能
|
|
5
|
-
description: VS Code で Intlayer
|
|
5
|
+
description: VS Code で Intlayer 拡張機能を使用して開発ワークフローを強化する方法を学びます。ローカライズされたコンテンツ間を素早く移動し、辞書を効率的に管理できます。
|
|
6
6
|
keywords:
|
|
7
7
|
- VS Code 拡張機能
|
|
8
8
|
- Intlayer
|
|
@@ -23,161 +23,100 @@ slugs:
|
|
|
23
23
|
|
|
24
24
|
[**Intlayer**](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) は、プロジェクト内のローカライズされたコンテンツを扱う際の開発者体験を向上させるために設計された、**Intlayer** の公式 Visual Studio Code 拡張機能です。
|
|
25
25
|
|
|
26
|
-

|
|
26
|
+

|
|
27
27
|
|
|
28
28
|
拡張機能リンク: [https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension)
|
|
29
29
|
|
|
30
30
|
## 機能
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+

|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
**シームレスな統合** – **react-intlayer** および **next-intlayer** プロジェクトとスムーズに連携します。
|
|
36
|
-
**多言語サポート** – 複数の言語にわたるローカライズされたコンテンツをサポートします。
|
|
37
|
-
**VS Code 統合** – VS Code のナビゲーションおよびコマンドパレットとスムーズに統合されます。
|
|
38
|
-
|
|
39
|
-
### 辞書管理コマンド
|
|
40
|
-
|
|
41
|
-
VS Code から直接コンテンツ辞書を管理します:
|
|
42
|
-
|
|
43
|
-
- **辞書のビルド** – プロジェクト構造に基づいてコンテンツファイルを生成します。
|
|
44
|
-
- **辞書のプッシュ** – 最新の辞書コンテンツをリポジトリにアップロードします。
|
|
45
|
-
- **辞書のプル** – リポジトリから最新の辞書コンテンツをローカル環境に同期します。
|
|
34
|
+
- **インスタントナビゲーション** – `useIntlayer` キーをクリックすると、正しいコンテンツファイルに素早くジャンプします。
|
|
46
35
|
- **辞書の埋め込み** – プロジェクトのコンテンツで辞書を埋めます。
|
|
47
|
-
- **辞書のテスト** – 欠落または不完全な翻訳を特定します。
|
|
48
|
-
|
|
49
|
-
### コンテンツ宣言ジェネレーター
|
|
50
|
-
|
|
51
|
-
異なるフォーマットで構造化された辞書ファイルを簡単に生成します:
|
|
52
|
-
|
|
53
|
-
現在コンポーネントを作業している場合、そのコンポーネント用の `.content.{ts,tsx,js,jsx,mjs,cjs,json}` ファイルを生成します。
|
|
54
|
-
|
|
55
|
-
コンポーネントの例:
|
|
56
|
-
|
|
57
|
-
```tsx fileName="src/components/MyComponent/index.tsx"
|
|
58
|
-
const MyComponent = () => {
|
|
59
|
-
const { myTranslatedContent } = useIntlayer("my-component");
|
|
60
|
-
|
|
61
|
-
return <span>{myTranslatedContent}</span>;
|
|
62
|
-
};
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
TypeScript形式で生成されたファイル:
|
|
66
36
|
|
|
67
|
-
|
|
68
|
-
import { t, type Dictionary } from "intlayer";
|
|
37
|
+

|
|
69
38
|
|
|
70
|
-
|
|
71
|
-
key: "my-component",
|
|
72
|
-
content: {
|
|
73
|
-
myTranslatedContent: t({
|
|
74
|
-
en: "Hello World",
|
|
75
|
-
es: "Hola Mundo",
|
|
76
|
-
fr: "Bonjour le monde",
|
|
77
|
-
}),
|
|
78
|
-
},
|
|
79
|
-
};
|
|
39
|
+
- **Intlayerコマンドへの簡単アクセス** – コンテンツ辞書のビルド、プッシュ、プル、埋め込み、テストを簡単に行えます。
|
|
80
40
|
|
|
81
|
-
|
|
82
|
-
```
|
|
41
|
+

|
|
83
42
|
|
|
84
|
-
|
|
43
|
+
- **コンテンツ宣言ジェネレーター** – さまざまな形式(`.ts`、`.esm`、`.cjs`、`.json`)で辞書コンテンツファイルを作成します。
|
|
85
44
|
|
|
86
|
-
-
|
|
87
|
-
- **ESモジュール (`.esm`)**
|
|
88
|
-
- **CommonJS (`.cjs`)**
|
|
89
|
-
- **JSON (`.json`)**
|
|
45
|
+

|
|
90
46
|
|
|
91
|
-
|
|
47
|
+
- **辞書のテスト** – 翻訳漏れがないか辞書をテストします。
|
|
92
48
|
|
|
93
|
-
|
|
49
|
+

|
|
94
50
|
|
|
95
|
-
-
|
|
96
|
-
- **辞書**:環境やプロジェクト、辞書キー、エントリを含むファイルのツリービュー。以下の操作が可能です:
|
|
97
|
-
- ファイルをクリックしてエディタで開く。
|
|
98
|
-
- ツールバーを使って以下のアクションを実行:ビルド、プル、プッシュ、フィル、リフレッシュ、テスト、辞書ファイルの作成。
|
|
99
|
-
- コンテキストメニューでアイテム固有のアクションを実行:
|
|
100
|
-
- 辞書上で:プルまたはプッシュ
|
|
101
|
-
- ファイル上で:辞書のフィル
|
|
102
|
-
- エディタを切り替えると、そのファイルが辞書に属している場合はツリーが該当ファイルを表示します。
|
|
51
|
+
- **辞書を最新の状態に保つ** – プロジェクトの最新コンテンツで辞書を常に最新の状態に保ちます。
|
|
103
52
|
|
|
104
|
-
|
|
53
|
+

|
|
105
54
|
|
|
106
|
-
**Intlayer
|
|
107
|
-
|
|
108
|
-
1. **VS Code**を開きます。
|
|
109
|
-
2. **拡張機能マーケットプレイス**に移動します。
|
|
110
|
-
3. **「Intlayer」**を検索します。
|
|
111
|
-
4. **インストール**をクリックします。
|
|
55
|
+
- **Intlayer タブ(アクティビティバー)** – 専用のサイドタブからツールバーやコンテキストアクション(ビルド、プル、プッシュ、フィル、リフレッシュ、テスト、ファイル作成)を使って辞書を閲覧・検索できます。
|
|
112
56
|
|
|
113
57
|
## 使い方
|
|
114
58
|
|
|
115
59
|
### クイックナビゲーション
|
|
116
60
|
|
|
117
|
-
1. **react-intlayer
|
|
118
|
-
2. `useIntlayer()
|
|
61
|
+
1. **react-intlayer** を使用しているプロジェクトを開きます。
|
|
62
|
+
2. 次のような `useIntlayer()` の呼び出しを見つけます。
|
|
119
63
|
|
|
120
64
|
```tsx
|
|
121
65
|
const content = useIntlayer("app");
|
|
122
66
|
```
|
|
123
67
|
|
|
124
|
-
3. キー(例: `"app"
|
|
125
|
-
4. VS Code
|
|
126
|
-
|
|
127
|
-
### コンテンツ辞書の管理
|
|
68
|
+
3. キー(例: `"app"`)を **Command-click**(macOSでは `⌘+Click`)、または **Ctrl+Click**(Windows/Linuxの場合)します。
|
|
69
|
+
4. VS Code は対応する辞書ファイル(例: `src/app.content.ts`)を自動的に開きます。
|
|
128
70
|
|
|
129
|
-
### Intlayerタブ(アクティビティバー)
|
|
71
|
+
### Intlayer タブ(アクティビティバー)
|
|
130
72
|
|
|
131
73
|
サイドタブを使って辞書を閲覧・管理します:
|
|
132
74
|
|
|
133
|
-
- アクティビティバーのIntlayerアイコンを開きます。
|
|
134
|
-
- **検索**
|
|
135
|
-
- **辞書**
|
|
75
|
+
- アクティビティバーの Intlayer アイコンを開きます。
|
|
76
|
+
- **検索** でリアルタイムに辞書やエントリをフィルタリングします。
|
|
77
|
+
- **辞書** では環境、辞書、ファイルを閲覧します。ツールバーからはビルド、プル、プッシュ、フィル、リフレッシュ、テスト、辞書ファイルの作成が可能です。右クリックでコンテキストアクション(辞書のプル/プッシュ、ファイルのフィル)を利用できます。現在のエディタファイルは該当する場合、ツリー内で自動的に表示されます。
|
|
136
78
|
|
|
137
|
-
|
|
79
|
+
### コマンドへのアクセス
|
|
138
80
|
|
|
139
|
-
|
|
81
|
+
コマンドは **コマンドパレット** からアクセスできます。
|
|
140
82
|
|
|
141
83
|
```sh
|
|
142
84
|
Cmd + Shift + P (macOS) / Ctrl + Shift + P (Windows/Linux)
|
|
143
85
|
```
|
|
144
86
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
1. **コマンドパレット** を開きます。
|
|
152
|
-
2. **Push Dictionaries** を検索します。
|
|
153
|
-
3. プッシュする辞書を選択して確認します。
|
|
154
|
-
|
|
155
|
-
#### 辞書のプル
|
|
87
|
+
- **辞書をビルド**
|
|
88
|
+
- **辞書をプッシュ**
|
|
89
|
+
- **辞書をプル**
|
|
90
|
+
- **辞書を埋める**
|
|
91
|
+
- **辞書をテスト**
|
|
92
|
+
- **辞書ファイルを作成**
|
|
156
93
|
|
|
157
|
-
|
|
94
|
+
### 環境変数の読み込み
|
|
158
95
|
|
|
159
|
-
|
|
160
|
-
2. **Pull Dictionaries** を検索します。
|
|
161
|
-
3. プルする辞書を選択します。
|
|
96
|
+
Intlayer は、AI APIキーや Intlayer クライアントIDおよびシークレットを環境変数に保存することを推奨します。
|
|
162
97
|
|
|
163
|
-
|
|
98
|
+
拡張機能は、ワークスペースから環境変数を読み込み、適切なコンテキストで Intlayer コマンドを実行できます。
|
|
164
99
|
|
|
165
|
-
|
|
100
|
+
- **読み込み順(優先度順)**: `.env.<env>.local` → `.env.<env>` → `.env.local` → `.env`
|
|
101
|
+
- **非破壊的**: 既存の `process.env` の値は上書きされません。
|
|
102
|
+
- **スコープ**: ファイルは設定されたベースディレクトリ(デフォルトはワークスペースのルート)から解決されます。
|
|
166
103
|
|
|
167
|
-
|
|
168
|
-
2. **Fill Dictionaries** を検索します。
|
|
169
|
-
3. コマンドを実行して辞書を埋めます。
|
|
104
|
+
#### アクティブ環境の選択
|
|
170
105
|
|
|
171
|
-
|
|
106
|
+
- **コマンドパレット**: パレットを開き、`Intlayer: Select Environment` を実行して環境(例:`development`、`staging`、`production`)を選択します。拡張機能は上記の優先リストで最初に見つかったファイルを読み込み、「Loaded env from .env.<env>.local」のような通知を表示します。
|
|
107
|
+
- **設定**: `設定 → 拡張機能 → Intlayer` に移動し、以下を設定します:
|
|
108
|
+
- **Environment**: `.env.<env>*` ファイルを解決するために使用される環境名。
|
|
109
|
+
- (オプション)**Env File**: 明示的な `.env` ファイルへのパス。指定された場合、推測されたリストより優先されます。
|
|
172
110
|
|
|
173
|
-
|
|
111
|
+
#### モノレポおよびカスタムディレクトリ
|
|
174
112
|
|
|
175
|
-
|
|
176
|
-
2. **Test Dictionaries** を検索します。
|
|
177
|
-
3. 報告された問題を確認し、必要に応じて修正します。
|
|
113
|
+
ワークスペースのルート外に `.env` ファイルがある場合は、`設定 → 拡張機能 → Intlayer` で **ベースディレクトリ** を設定してください。ローダーはそのディレクトリを基準に `.env` ファイルを探します。
|
|
178
114
|
|
|
179
115
|
## ドキュメント履歴
|
|
180
116
|
|
|
181
|
-
| バージョン | 日付 | 変更内容
|
|
182
|
-
| ---------- | ---------- |
|
|
183
|
-
|
|
|
117
|
+
| バージョン | 日付 | 変更内容 |
|
|
118
|
+
| ---------- | ---------- | -------------------------------------- |
|
|
119
|
+
| 6.1.5 | 2025-09-30 | デモGIFを追加 |
|
|
120
|
+
| 6.1.0 | 2025-09-24 | 環境選択セクションを追加 |
|
|
121
|
+
| 6.0.0 | 2025-09-22 | Intlayerタブ / Fill & Testコマンド追加 |
|
|
122
|
+
| 5.5.10 | 2025-06-29 | 履歴を初期化 |
|