@intlayer/docs 8.0.4 → 8.0.5
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/dist/cjs/blog.cjs +1 -0
- package/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs +1 -0
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/doc.cjs +1 -0
- package/dist/cjs/doc.cjs.map +1 -1
- package/dist/cjs/frequentQuestions.cjs +1 -0
- package/dist/cjs/frequentQuestions.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +1 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +21 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +1 -0
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +1 -0
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/legal.cjs +1 -0
- package/dist/cjs/legal.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +20 -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/cli/doc-translate.md +1 -0
- package/docs/ar/cli/fill.md +1 -0
- package/docs/ar/configuration.md +10 -0
- package/docs/ar/intlayer_with_analog.md +371 -0
- package/docs/ar/intlayer_with_angular.md +12 -14
- package/docs/ar/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/de/agent_skills.md +53 -0
- package/docs/de/cli/doc-translate.md +1 -0
- package/docs/de/cli/fill.md +1 -0
- package/docs/de/configuration.md +10 -0
- package/docs/de/intlayer_with_analog.md +369 -0
- package/docs/de/intlayer_with_angular.md +11 -16
- package/docs/de/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/en/agent_skills.md +53 -0
- package/docs/en/cli/doc-translate.md +1 -0
- package/docs/en/cli/fill.md +1 -0
- package/docs/en/configuration.md +21 -1
- package/docs/en/intlayer_with_analog.md +4 -12
- package/docs/en/intlayer_with_angular.md +13 -15
- package/docs/en/packages/react-intlayer/useIntlayer.md +1 -1
- package/docs/en/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/en-GB/cli/doc-translate.md +1 -0
- package/docs/en-GB/cli/fill.md +1 -0
- package/docs/en-GB/configuration.md +10 -0
- package/docs/en-GB/intlayer_with_analog.md +369 -0
- package/docs/en-GB/intlayer_with_angular.md +12 -14
- package/docs/en-GB/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/es/agent_skills.md +53 -0
- package/docs/es/cli/doc-translate.md +1 -0
- package/docs/es/cli/fill.md +1 -0
- package/docs/es/configuration.md +10 -0
- package/docs/es/intlayer_with_analog.md +369 -0
- package/docs/es/intlayer_with_angular.md +11 -16
- package/docs/es/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/fr/agent_skills.md +53 -0
- package/docs/fr/cli/doc-translate.md +1 -0
- package/docs/fr/cli/fill.md +1 -0
- package/docs/fr/configuration.md +10 -0
- package/docs/fr/intlayer_with_analog.md +369 -0
- package/docs/fr/intlayer_with_angular.md +11 -16
- package/docs/fr/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/hi/cli/doc-translate.md +1 -0
- package/docs/hi/cli/fill.md +1 -0
- package/docs/hi/configuration.md +10 -0
- package/docs/hi/intlayer_with_analog.md +371 -0
- package/docs/hi/intlayer_with_angular.md +12 -14
- package/docs/hi/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/id/cli/doc-translate.md +1 -0
- package/docs/id/cli/fill.md +1 -0
- package/docs/id/configuration.md +10 -0
- package/docs/id/intlayer_with_analog.md +371 -0
- package/docs/id/intlayer_with_angular.md +12 -14
- package/docs/id/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/it/agent_skills.md +53 -0
- package/docs/it/cli/doc-translate.md +1 -0
- package/docs/it/cli/fill.md +1 -0
- package/docs/it/configuration.md +10 -0
- package/docs/it/intlayer_with_analog.md +371 -0
- package/docs/it/intlayer_with_angular.md +12 -14
- package/docs/it/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/ja/agent_skills.md +53 -0
- package/docs/ja/cli/doc-translate.md +1 -0
- package/docs/ja/cli/fill.md +1 -0
- package/docs/ja/configuration.md +10 -0
- package/docs/ja/intlayer_with_analog.md +365 -0
- package/docs/ja/intlayer_with_angular.md +12 -14
- package/docs/ja/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/ko/agent_skills.md +53 -0
- package/docs/ko/cli/doc-translate.md +1 -0
- package/docs/ko/cli/fill.md +1 -0
- package/docs/ko/configuration.md +10 -0
- package/docs/ko/intlayer_with_analog.md +365 -0
- package/docs/ko/intlayer_with_angular.md +12 -14
- package/docs/ko/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/pl/cli/doc-translate.md +1 -0
- package/docs/pl/cli/fill.md +1 -0
- package/docs/pl/configuration.md +10 -0
- package/docs/pl/intlayer_with_analog.md +371 -0
- package/docs/pl/intlayer_with_angular.md +12 -14
- package/docs/pl/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/pt/agent_skills.md +53 -0
- package/docs/pt/cli/doc-translate.md +1 -0
- package/docs/pt/cli/fill.md +1 -0
- package/docs/pt/configuration.md +10 -0
- package/docs/pt/intlayer_with_analog.md +371 -0
- package/docs/pt/intlayer_with_angular.md +12 -14
- package/docs/pt/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/ru/cli/doc-translate.md +1 -0
- package/docs/ru/cli/fill.md +1 -0
- package/docs/ru/configuration.md +18 -0
- package/docs/ru/intlayer_with_analog.md +371 -0
- package/docs/ru/intlayer_with_angular.md +12 -14
- package/docs/ru/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/tr/cli/doc-translate.md +1 -0
- package/docs/tr/cli/fill.md +1 -0
- package/docs/tr/configuration.md +10 -0
- package/docs/tr/intlayer_with_analog.md +365 -0
- package/docs/tr/intlayer_with_angular.md +12 -14
- package/docs/tr/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/uk/cli/doc-translate.md +1 -0
- package/docs/uk/cli/fill.md +1 -0
- package/docs/uk/configuration.md +10 -0
- package/docs/uk/intlayer_with_analog.md +365 -0
- package/docs/uk/intlayer_with_angular.md +12 -14
- package/docs/uk/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/vi/configuration.md +10 -0
- package/docs/vi/intlayer_with_analog.md +365 -0
- package/docs/vi/intlayer_with_angular.md +12 -14
- package/docs/vi/packages/solid-intlayer/useIntlayer.md +1 -1
- package/docs/zh/agent_skills.md +53 -0
- package/docs/zh/configuration.md +10 -0
- package/docs/zh/intlayer_with_analog.md +365 -0
- package/docs/zh/intlayer_with_angular.md +12 -14
- package/docs/zh/packages/solid-intlayer/useIntlayer.md +1 -1
- package/package.json +8 -8
- package/src/generated/docs.entry.ts +20 -0
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-04-18
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Analog i18n - Analogアプリの翻訳方法 – 2026年ガイド
|
|
5
|
+
description: Analogアプリを多言語化する方法をご紹介します。ドキュメントに従って、国際化(i18n)と翻訳を実装してください。
|
|
6
|
+
keywords:
|
|
7
|
+
- 国際化
|
|
8
|
+
- ドキュメント
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Analog
|
|
11
|
+
- Angular
|
|
12
|
+
- JavaScript
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- environment
|
|
16
|
+
- analog
|
|
17
|
+
applicationTemplate: https://github.com/aymericzip/intlayer/tree/main/examples/analog-app-template
|
|
18
|
+
history:
|
|
19
|
+
- version: 8.0.4
|
|
20
|
+
date: 2026-01-26
|
|
21
|
+
changes: 履歴の初期化
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Intlayerを使用したAnalog (Angular) アプリの翻訳 | 国際化 (i18n)
|
|
25
|
+
|
|
26
|
+
## 目次
|
|
27
|
+
|
|
28
|
+
<TOC/>
|
|
29
|
+
|
|
30
|
+
## Intlayerとは?
|
|
31
|
+
|
|
32
|
+
**Intlayer**は、現代的なWebアプリケーションにおける多言語サポートを簡素化するために設計された、革新的でオープンソースな国際化(i18n)ライブラリです。
|
|
33
|
+
|
|
34
|
+
With Intlayer, you can:
|
|
35
|
+
|
|
36
|
+
- **翻訳の簡単な管理**: コンポーネントレベルで宣言的な辞書を使用します。
|
|
37
|
+
- **メタデータ、ルート、コンテンツの動的なローカライズ**。
|
|
38
|
+
- **TypeScriptサポートの確保**: 自動生成された型により、オートコンプリートとエラー検出が向上します。
|
|
39
|
+
- **高度な機能の活用**: 動的なロケール検出や切り替えなど。
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## AnalogアプリケーションへのIntlayerセットアップ手順
|
|
44
|
+
|
|
45
|
+
<Tabs defaultTab="code">
|
|
46
|
+
<Tab label="コード" value="code">
|
|
47
|
+
|
|
48
|
+
<iframe
|
|
49
|
+
src="https://stackblitz.com/github/aymericzip/intlayer/tree/main/examples/vite-analog-app?embed=1&ctl=1&file=intlayer.config.ts"
|
|
50
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
51
|
+
title="Demo CodeSandbox - How to Internationalize your application using Intlayer"
|
|
52
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
53
|
+
loading="lazy"
|
|
54
|
+
/>
|
|
55
|
+
|
|
56
|
+
</Tab>
|
|
57
|
+
</Tabs>
|
|
58
|
+
|
|
59
|
+
GitHubで[アプリケーションテンプレート](https://github.com/aymericzip/intlayer/tree/main/examples/analog-app-template)を確認する。
|
|
60
|
+
|
|
61
|
+
### ステップ1: 依存関係のインストール
|
|
62
|
+
|
|
63
|
+
npmを使用して必要なパッケージをインストールします:
|
|
64
|
+
|
|
65
|
+
```bash packageManager="npm"
|
|
66
|
+
npm install intlayer angular-intlayer vite-intlayer
|
|
67
|
+
npx intlayer init
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
```bash packageManager="pnpm"
|
|
71
|
+
pnpm add intlayer angular-intlayer vite-intlayer
|
|
72
|
+
pnpm intlayer init
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
```bash packageManager="yarn"
|
|
76
|
+
yarn add intlayer angular-intlayer vite-intlayer
|
|
77
|
+
yarn intlayer init
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
```bash packageManager="bun"
|
|
81
|
+
bun add intlayer angular-intlayer vite-intlayer
|
|
82
|
+
bunx intlayer init
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
- **intlayer**
|
|
86
|
+
|
|
87
|
+
設定管理、翻訳、[コンテンツ宣言](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md)、トランスパイル、および[CLIコマンド](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md)のための国際化ツールを提供するコアパッケージ。
|
|
88
|
+
|
|
89
|
+
- **angular-intlayer**
|
|
90
|
+
IntlayerをAngularアプリケーションと統合するパッケージ。Angularの国際化のためのコンテキストプロバイダーとフックを提供します。
|
|
91
|
+
|
|
92
|
+
- **vite-intlayer**
|
|
93
|
+
IntlayerをViteと統合するパッケージ。コンテンツ宣言ファイルを処理するプラグインを提供し、最適なパフォーマンスのためのエイリアスを設定します。
|
|
94
|
+
|
|
95
|
+
### ステップ2: プロジェクトの設定
|
|
96
|
+
|
|
97
|
+
アプリケーションの言語を設定するための設定ファイルを作成します:
|
|
98
|
+
|
|
99
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
100
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
101
|
+
|
|
102
|
+
const config: IntlayerConfig = {
|
|
103
|
+
internationalization: {
|
|
104
|
+
locales: [
|
|
105
|
+
Locales.ENGLISH,
|
|
106
|
+
Locales.FRENCH,
|
|
107
|
+
Locales.SPANISH,
|
|
108
|
+
// その他のロケール
|
|
109
|
+
],
|
|
110
|
+
defaultLocale: Locales.ENGLISH,
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export default config;
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
118
|
+
import { Locales } from "intlayer";
|
|
119
|
+
|
|
120
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
121
|
+
const config = {
|
|
122
|
+
internationalization: {
|
|
123
|
+
locales: [
|
|
124
|
+
Locales.ENGLISH,
|
|
125
|
+
Locales.FRENCH,
|
|
126
|
+
Locales.SPANISH,
|
|
127
|
+
// その他のロケール
|
|
128
|
+
],
|
|
129
|
+
defaultLocale: Locales.ENGLISH,
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export default config;
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
137
|
+
const { Locales } = require("intlayer");
|
|
138
|
+
|
|
139
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
140
|
+
const config = {
|
|
141
|
+
internationalization: {
|
|
142
|
+
locales: [
|
|
143
|
+
Locales.ENGLISH,
|
|
144
|
+
Locales.FRENCH,
|
|
145
|
+
Locales.SPANISH,
|
|
146
|
+
// その他のロケール
|
|
147
|
+
],
|
|
148
|
+
defaultLocale: Locales.ENGLISH,
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
module.exports = config;
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
> この設定ファイルを通じて、ローカライズされたURL、ミドルウェアのリダイレクト、クッキー名、コンテンツ宣言の場所と拡張子の設定、コンソールでのIntlayerログの無効化などが可能です。利用可能なパラメータの全リストについては、[設定ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)を参照してください。
|
|
156
|
+
|
|
157
|
+
### ステップ3: Vite設定へのIntlayerの統合
|
|
158
|
+
|
|
159
|
+
AnalogとIntlayerを統合するには、`vite-intlayer`プラグインを使用する必要があります。
|
|
160
|
+
|
|
161
|
+
`vite.config.ts`ファイルを修正します:
|
|
162
|
+
|
|
163
|
+
```typescript fileName="vite.config.ts"
|
|
164
|
+
import { defineConfig } from "vite";
|
|
165
|
+
import { intlayer } from "vite-intlayer";
|
|
166
|
+
import analog from "@analogjs/platform";
|
|
167
|
+
|
|
168
|
+
// https://vitejs.dev/config/
|
|
169
|
+
export default defineConfig(() => ({
|
|
170
|
+
plugins: [
|
|
171
|
+
analog(),
|
|
172
|
+
intlayer(), // Intlayerプラグインを追加
|
|
173
|
+
],
|
|
174
|
+
}));
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
> `intlayer()`プラグインは、Intlayerを使用してViteを設定します。コンテンツ宣言ファイルを処理し、最適なパフォーマンスのためのエイリアスを設定します。
|
|
178
|
+
|
|
179
|
+
### ステップ4: コンテンツの宣言
|
|
180
|
+
|
|
181
|
+
翻訳を保存するためのコンテンツ宣言を作成・管理します:
|
|
182
|
+
|
|
183
|
+
```tsx fileName="src/app/app.content.ts" contentDeclarationFormat="typescript"
|
|
184
|
+
import { t, type Dictionary } from "intlayer";
|
|
185
|
+
|
|
186
|
+
const appContent = {
|
|
187
|
+
key: "app",
|
|
188
|
+
content: {
|
|
189
|
+
title: t({
|
|
190
|
+
en: "Hello",
|
|
191
|
+
fr: "Bonjour",
|
|
192
|
+
es: "Hola",
|
|
193
|
+
ja: "こんにちは",
|
|
194
|
+
}),
|
|
195
|
+
congratulations: t({
|
|
196
|
+
en: "Congratulations! Your app is running. 🎉",
|
|
197
|
+
fr: "Félicitations! Votre application est en cours d'exécution. 🎉",
|
|
198
|
+
es: "¡Felicidades! Tu aplicación está en ejecución. 🎉",
|
|
199
|
+
ja: "おめでとうございます!アプリが起動しました。 🎉",
|
|
200
|
+
}),
|
|
201
|
+
},
|
|
202
|
+
} satisfies Dictionary;
|
|
203
|
+
|
|
204
|
+
export default appContent;
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
> コンテンツ宣言は、`contentDir`ディレクトリ(デフォルトは`./src`)に含まれている限り、アプリケーション内のどこにでも定義できます。また、コンテンツ宣言ファイルの拡張子(デフォルトは`.content.{json,ts,tsx,js,jsx,mjs,cjs}`)と一致させる必要があります。
|
|
208
|
+
|
|
209
|
+
> 詳細については、[コンテンツ宣言のドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md)を参照してください。
|
|
210
|
+
|
|
211
|
+
### ステップ5: コード内でのIntlayerの利用
|
|
212
|
+
|
|
213
|
+
Analogアプリケーション全体でIntlayerの国際化機能を利用するには、アプリケーション設定でIntlayerを提供する必要があります。
|
|
214
|
+
|
|
215
|
+
```typescript fileName="src/app/app.config.ts"
|
|
216
|
+
import { ApplicationConfig } from "@angular/core";
|
|
217
|
+
import { provideIntlayer } from "angular-intlayer";
|
|
218
|
+
|
|
219
|
+
export const appConfig: ApplicationConfig = {
|
|
220
|
+
providers: [
|
|
221
|
+
provideIntlayer(), // ここにIntlayerプロバイダーを追加
|
|
222
|
+
],
|
|
223
|
+
};
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
その後、任意のコンポーネント内で`useIntlayer`関数を使用できます。
|
|
227
|
+
|
|
228
|
+
```typescript fileName="src/app/pages/index.page.ts"
|
|
229
|
+
import { Component } from "@angular/core";
|
|
230
|
+
import { useIntlayer } from "angular-intlayer";
|
|
231
|
+
|
|
232
|
+
@Component({
|
|
233
|
+
selector: "app-home",
|
|
234
|
+
standalone: true,
|
|
235
|
+
template: `
|
|
236
|
+
<div class="content">
|
|
237
|
+
<h1>{{ content().title }}</h1>
|
|
238
|
+
<p>{{ content().congratulations }}</p>
|
|
239
|
+
</div>
|
|
240
|
+
`,
|
|
241
|
+
})
|
|
242
|
+
export default class HomeComponent {
|
|
243
|
+
content = useIntlayer("app");
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Intlayerのコンテンツは`Signal`として返されるため、シグナルを呼び出すことで値にアクセスします:`content().title`。
|
|
248
|
+
|
|
249
|
+
### (オプション) ステップ6: コンテンツの言語を変更する
|
|
250
|
+
|
|
251
|
+
コンテンツの言語を変更するには、`useLocale`関数によって提供される`setLocale`関数を使用できます。これにより、アプリケーションのロケールを設定し、それに応じてコンテンツを更新できます。
|
|
252
|
+
|
|
253
|
+
言語を切り替えるためのコンポーネントを作成します:
|
|
254
|
+
|
|
255
|
+
```typescript fileName="src/app/locale-switcher.component.ts"
|
|
256
|
+
import { Component } from "@angular/core";
|
|
257
|
+
import { CommonModule } from "@angular/common";
|
|
258
|
+
import { useLocale } from "angular-intlayer";
|
|
259
|
+
|
|
260
|
+
@Component({
|
|
261
|
+
selector: "app-locale-switcher",
|
|
262
|
+
standalone: true,
|
|
263
|
+
imports: [CommonModule],
|
|
264
|
+
template: `
|
|
265
|
+
<div class="locale-switcher">
|
|
266
|
+
<select
|
|
267
|
+
[value]="locale()"
|
|
268
|
+
(change)="setLocale($any($event.target).value)"
|
|
269
|
+
>
|
|
270
|
+
@for (loc of availableLocales; track loc) {
|
|
271
|
+
<option [value]="loc">{{ loc }}</option>
|
|
272
|
+
}
|
|
273
|
+
</select>
|
|
274
|
+
</div>
|
|
275
|
+
`,
|
|
276
|
+
styles: [
|
|
277
|
+
`
|
|
278
|
+
.locale-switcher {
|
|
279
|
+
margin: 1rem;
|
|
280
|
+
padding: 0.5rem;
|
|
281
|
+
border: 1px solid #ccc;
|
|
282
|
+
border-radius: 4px;
|
|
283
|
+
width: fit-content;
|
|
284
|
+
}
|
|
285
|
+
`,
|
|
286
|
+
],
|
|
287
|
+
})
|
|
288
|
+
export class LocaleSwitcherComponent {
|
|
289
|
+
localeCtx = useLocale();
|
|
290
|
+
|
|
291
|
+
locale = this.localeCtx.locale;
|
|
292
|
+
availableLocales = this.localeCtx.availableLocales;
|
|
293
|
+
setLocale = this.localeCtx.setLocale;
|
|
294
|
+
}
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
次に、このコンポーネントをページで使用します:
|
|
298
|
+
|
|
299
|
+
```typescript fileName="src/app/pages/index.page.ts"
|
|
300
|
+
import { Component } from "@angular/core";
|
|
301
|
+
import { useIntlayer } from "angular-intlayer";
|
|
302
|
+
import { LocaleSwitcherComponent } from "../locale-switcher.component";
|
|
303
|
+
|
|
304
|
+
@Component({
|
|
305
|
+
selector: "app-home",
|
|
306
|
+
standalone: true,
|
|
307
|
+
imports: [LocaleSwitcherComponent],
|
|
308
|
+
template: `
|
|
309
|
+
<app-locale-switcher></app-locale-switcher>
|
|
310
|
+
<div class="content">
|
|
311
|
+
<h1>{{ content().title }}</h1>
|
|
312
|
+
<p>{{ content().congratulations }}</p>
|
|
313
|
+
</div>
|
|
314
|
+
`,
|
|
315
|
+
})
|
|
316
|
+
export default class HomeComponent {
|
|
317
|
+
content = useIntlayer("app");
|
|
318
|
+
}
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### TypeScriptの設定
|
|
322
|
+
|
|
323
|
+
Intlayerは、TypeScriptの利点を活かしてコードベースを強力にするためにモジュール拡張を使用します。
|
|
324
|
+
|
|
325
|
+

|
|
326
|
+
|
|
327
|
+

|
|
328
|
+
|
|
329
|
+
TypeScriptの設定に自動生成された型が含まれていることを確認してください。
|
|
330
|
+
|
|
331
|
+
```json5 fileName="tsconfig.json"
|
|
332
|
+
{
|
|
333
|
+
// ... 既存のTypeScript設定
|
|
334
|
+
"include": [
|
|
335
|
+
// ... 既存のTypeScript設定
|
|
336
|
+
".intlayer/**/*.ts", // 自動生成された型を含める
|
|
337
|
+
],
|
|
338
|
+
}
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### Gitの設定
|
|
342
|
+
|
|
343
|
+
Intlayerによって生成されたファイルは無視することをお勧めします。これにより、Gitリポジトリへのコミットを避けることができます。
|
|
344
|
+
|
|
345
|
+
これを行うには、`.gitignore`ファイルに以下の指示を追加してください:
|
|
346
|
+
|
|
347
|
+
```plaintext
|
|
348
|
+
# Intlayerによって生成されたファイルを無視
|
|
349
|
+
.intlayer
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### VS Code拡張機能
|
|
353
|
+
|
|
354
|
+
Intlayerでの開発体験を向上させるために、公式の**Intlayer VS Code Extension**をインストールできます。
|
|
355
|
+
|
|
356
|
+
[VS Code Marketplaceからインストール](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
357
|
+
|
|
358
|
+
この拡張機能は以下を提供します:
|
|
359
|
+
|
|
360
|
+
- 翻訳キーの**オートコンプリート**。
|
|
361
|
+
- 翻訳漏れの**リアルタイムエラー検出**。
|
|
362
|
+
- 翻訳されたコンテンツの**インラインプレビュー**。
|
|
363
|
+
- 翻訳を簡単に作成・更新するための**クイックアクション**。
|
|
364
|
+
|
|
365
|
+
拡張機能の使用方法の詳細については、[Intlayer VS Code Extensionのドキュメント](https://intlayer.org/doc/vs-code-extension)を参照してください。
|
|
@@ -166,30 +166,28 @@ IntlayerをAngular CLIと統合するには、カスタムビルダーを使用
|
|
|
166
166
|
|
|
167
167
|
まず、カスタムWebpackビルダーを使用するように `angular.json` を変更します。`build` および `serve` の構成を更新します:
|
|
168
168
|
|
|
169
|
-
```
|
|
169
|
+
```json5 fileName="angular.json"
|
|
170
170
|
{
|
|
171
171
|
"projects": {
|
|
172
172
|
"your-app-name": {
|
|
173
173
|
"architect": {
|
|
174
174
|
"build": {
|
|
175
|
-
"builder": "@angular-builders/custom-webpack:browser",
|
|
175
|
+
"builder": "@angular-builders/custom-webpack:browser", // replace "@angular-devkit/build-angular:application",
|
|
176
176
|
"options": {
|
|
177
177
|
"customWebpackConfig": {
|
|
178
|
-
"path": "./webpack.config.ts"
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
"path": "./webpack.config.ts",
|
|
179
|
+
"mergeStrategies": { "module.rules": "prepend" },
|
|
180
|
+
},
|
|
181
|
+
"main": "src/main.ts", // replace "browser": "src/main.ts",
|
|
182
|
+
// ...
|
|
183
|
+
},
|
|
181
184
|
},
|
|
182
185
|
"serve": {
|
|
183
186
|
"builder": "@angular-builders/custom-webpack:dev-server",
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
},
|
|
193
191
|
}
|
|
194
192
|
```
|
|
195
193
|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-02-09
|
|
3
|
+
updatedAt: 2026-02-09
|
|
4
|
+
title: 에이전트 스킬
|
|
5
|
+
description: Intlayer 에이전트 스킬을 사용하여 AI 에이전트의 프로젝트 이해도를 높이는 방법을 배워보세요.
|
|
6
|
+
keywords:
|
|
7
|
+
- Intlayer
|
|
8
|
+
- 에이전트 스킬
|
|
9
|
+
- AI 에이전트
|
|
10
|
+
- 국제화
|
|
11
|
+
- 문서
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- agent_skills
|
|
15
|
+
history:
|
|
16
|
+
- version: 8.0.4
|
|
17
|
+
date: 2026-02-09
|
|
18
|
+
changes: 내역 초기화
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## `intlayer init skills` 명령어
|
|
22
|
+
|
|
23
|
+
`intlayer init skills` 명령어는 프로젝트에 에이전트 스킬을 설정하는 가장 쉬운 방법입니다. 사용자 환경을 감지하고 선호하는 플랫폼에 필요한 구성 파일을 설치합니다.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx intlayer init skills
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
이 명령어를 실행하면 다음과 같은 작업이 수행됩니다:
|
|
30
|
+
|
|
31
|
+
1. 사용 중인 프레임워크(예: Next.js, React, Vite)를 감지합니다.
|
|
32
|
+
2. 어떤 플랫폼(Cursor, VS Code, OpenCode, Claude Code 등)에 대한 스킬을 설치할지 묻습니다.
|
|
33
|
+
3. 필요한 구성 파일(`.cursor/mcp.json`, `.vscode/mcp.json`, 또는 `.intlayer/skills/*.md` 등)을 생성합니다.
|
|
34
|
+
|
|
35
|
+
## 지원되는 플랫폼
|
|
36
|
+
|
|
37
|
+
Intlayer는 다음 플랫폼과의 통합을 지원합니다:
|
|
38
|
+
|
|
39
|
+
### 1. Cursor
|
|
40
|
+
|
|
41
|
+
Cursor는 MCP(Model Context Protocol) 서버를 지원합니다. `intlayer init skills`를 실행하면 Cursor가 Intlayer MCP 서버와 통신할 수 있도록 하는 `.cursor/mcp.json` 파일이 생성됩니다.
|
|
42
|
+
|
|
43
|
+
### 2. VS Code
|
|
44
|
+
|
|
45
|
+
VS Code 사용자, 특히 GitHub Copilot 또는 기타 MCP 호환 확장 프로그램을 사용하는 사용자를 위해 이 명령어는 `.vscode/mcp.json` 구성을 생성합니다.
|
|
46
|
+
|
|
47
|
+
### 3. OpenCode
|
|
48
|
+
|
|
49
|
+
OpenCode는 소프트웨어 엔지니어링 작업을 위해 설계된 대화형 CLI 에이전트입니다. Intlayer는 OpenCode가 국제화 작업을 지원할 수 있도록 특정 스킬을 제공합니다.
|
|
50
|
+
|
|
51
|
+
### 4. Claude Code
|
|
52
|
+
|
|
53
|
+
Claude Code는 생성된 구성을 데스크톱 또는 CLI 설정에 추가하여 Intlayer 스킬을 사용하도록 구성할 수 있습니다.
|
|
@@ -86,6 +86,7 @@ npx intlayer doc translate
|
|
|
86
86
|
- **`--temperature [temperature]`**: AI 모델의 온도 설정.
|
|
87
87
|
- **`--api-key [apiKey]`**: AI 서비스에 사용할 API 키를 제공합니다.
|
|
88
88
|
- **`--application-context [applicationContext]`**: AI 번역에 추가 컨텍스트를 제공합니다.
|
|
89
|
+
- **`--data-serialization [dataSerialization]`**: Intlayer의 AI 기능에 사용할 데이터 직렬화 형식. 옵션: `json` (표준, 신뢰할 수 있음), `toon` (토큰 적음, 일관성 낮음).
|
|
89
90
|
- **`--custom-prompt [prompt]`**: 번역에 사용되는 기본 프롬프트를 사용자 정의합니다. (참고: 대부분의 사용 사례에서는 번역 동작을 더 잘 제어할 수 있는 `--custom-instructions` 옵션을 사용하는 것이 권장됩니다.)
|
|
90
91
|
|
|
91
92
|
> 예시: `npx intlayer doc translate --model deepseek-chat --provider deepseek --temperature 0.5 --api-key sk-1234567890 --application-context "My application is a cat store"`
|
package/docs/ko/cli/fill.md
CHANGED
|
@@ -126,6 +126,7 @@ Affected dictionary keys for processing: app, comp-test, hello-world, lang-switc
|
|
|
126
126
|
- **`--api-key [apiKey]`**: AI 서비스에 사용할 API 키 제공.
|
|
127
127
|
- **`--custom-prompt [prompt]`**: 번역 지침을 위한 커스텀 프롬프트 제공.
|
|
128
128
|
- **`--application-context [applicationContext]`**: AI 번역에 추가 컨텍스트 제공.
|
|
129
|
+
- **`--data-serialization [dataSerialization]`**: Intlayer의 AI 기능에 사용할 데이터 직렬화 형식. 옵션: `json` (표준, 신뢰할 수 있음), `toon` (토큰 적음, 일관성 낮음).
|
|
129
130
|
|
|
130
131
|
> 예시: `npx intlayer fill --model gpt-3.5-turbo --provider openai --temperature 0.5 --api-key sk-1234567890 --application-context "My application is a cat store"`
|
|
131
132
|
|
package/docs/ko/configuration.md
CHANGED
|
@@ -14,6 +14,9 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 8.0.5
|
|
18
|
+
date: 2026-02-06
|
|
19
|
+
changes: AI 구성에 `dataSerialization` 추가
|
|
17
20
|
- version: 8.0.0
|
|
18
21
|
date: 2026-01-22
|
|
19
22
|
changes: Move `importMode` build configuration to `dictionary` configuration.
|
|
@@ -883,6 +886,13 @@ Intlayer는 향상된 유연성과 선택권을 위해 여러 AI 공급자를
|
|
|
883
886
|
- _예시_: `'https://api.openai.com/v1'`
|
|
884
887
|
- _참고_: 로컬 또는 사용자 정의 AI API 엔드포인트를 가리키는 데 사용할 수 있습니다.
|
|
885
888
|
|
|
889
|
+
- **dataSerialization**:
|
|
890
|
+
- _타입_: `'json' | 'toon'`
|
|
891
|
+
- _기본값_: `'json'`
|
|
892
|
+
- _설명_: Intlayer의 AI 기능에 사용할 데이터 직렬화 형식.
|
|
893
|
+
- _예시_: `'toon'`
|
|
894
|
+
- _참고_: `json`: 표준적이고 신뢰할 수 있음; 더 많은 토큰을 사용함. `toon`: 토큰이 적게 들지만 JSON보다 일관성이 떨어짐.
|
|
895
|
+
|
|
886
896
|
### 빌드 구성
|
|
887
897
|
|
|
888
898
|
Intlayer가 애플리케이션의 국제화를 최적화하고 빌드하는 방식을 제어하는 설정입니다.
|