@intlayer/docs 7.5.10 → 7.5.12
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/intlayer_with_i18next.md +0 -2
- package/blog/ar/intlayer_with_next-i18next.md +0 -2
- package/blog/ar/intlayer_with_react-i18next.md +0 -2
- package/blog/de/intlayer_with_i18next.md +0 -45
- package/blog/de/intlayer_with_next-i18next.md +0 -46
- package/blog/de/intlayer_with_react-i18next.md +0 -2
- package/blog/en/intlayer_with_i18next.md +0 -46
- package/blog/en/intlayer_with_next-i18next.md +0 -48
- package/blog/en/intlayer_with_next-intl.md +0 -44
- package/blog/en/intlayer_with_react-i18next.md +0 -44
- package/blog/en/intlayer_with_react-intl.md +0 -42
- package/blog/en/intlayer_with_vue-i18n.md +0 -44
- package/blog/en-GB/intlayer_with_i18next.md +0 -45
- package/blog/en-GB/intlayer_with_next-i18next.md +0 -47
- package/blog/en-GB/intlayer_with_next-intl.md +0 -42
- package/blog/en-GB/intlayer_with_react-i18next.md +0 -43
- package/blog/en-GB/intlayer_with_react-intl.md +0 -42
- package/blog/en-GB/intlayer_with_vue-i18n.md +0 -46
- package/blog/es/intlayer_with_i18next.md +0 -45
- package/blog/es/intlayer_with_next-i18next.md +0 -47
- package/blog/es/intlayer_with_next-intl.md +0 -42
- package/blog/es/intlayer_with_react-i18next.md +0 -43
- package/blog/es/intlayer_with_react-intl.md +0 -42
- package/blog/es/intlayer_with_vue-i18n.md +0 -46
- package/blog/fr/intlayer_with_i18next.md +0 -45
- package/blog/fr/intlayer_with_next-i18next.md +0 -47
- package/blog/fr/intlayer_with_next-intl.md +0 -42
- package/blog/fr/intlayer_with_react-i18next.md +0 -43
- package/blog/fr/intlayer_with_react-intl.md +0 -42
- package/blog/fr/intlayer_with_vue-i18n.md +0 -46
- package/blog/hi/intlayer_with_i18next.md +0 -2
- package/blog/hi/intlayer_with_next-i18next.md +0 -2
- package/blog/hi/intlayer_with_react-i18next.md +0 -2
- package/blog/id/intlayer_with_i18next.md +0 -2
- package/blog/id/intlayer_with_next-i18next.md +0 -2
- package/blog/id/intlayer_with_react-i18next.md +0 -2
- package/blog/it/intlayer_with_i18next.md +0 -2
- package/blog/it/intlayer_with_next-i18next.md +0 -2
- package/blog/it/intlayer_with_react-i18next.md +0 -2
- package/blog/ja/intlayer_with_i18next.md +0 -45
- package/blog/ja/intlayer_with_next-i18next.md +0 -46
- package/blog/ja/intlayer_with_next-intl.md +0 -42
- package/blog/ja/intlayer_with_react-i18next.md +0 -42
- package/blog/ja/intlayer_with_react-intl.md +0 -42
- package/blog/ja/intlayer_with_vue-i18n.md +0 -46
- package/blog/ko/intlayer_with_i18next.md +0 -2
- package/blog/ko/intlayer_with_next-i18next.md +0 -2
- package/blog/ko/intlayer_with_react-i18next.md +0 -1
- package/blog/pl/intlayer_with_i18next.md +0 -45
- package/blog/pl/intlayer_with_next-i18next.md +0 -46
- package/blog/pl/intlayer_with_next-intl.md +0 -42
- package/blog/pl/intlayer_with_react-i18next.md +0 -43
- package/blog/pl/intlayer_with_react-intl.md +0 -42
- package/blog/pl/intlayer_with_vue-i18n.md +0 -46
- package/blog/pt/intlayer_with_i18next.md +0 -2
- package/blog/pt/intlayer_with_next-i18next.md +0 -2
- package/blog/pt/intlayer_with_react-i18next.md +0 -2
- package/blog/ru/intlayer_with_i18next.md +0 -45
- package/blog/ru/intlayer_with_next-i18next.md +0 -47
- package/blog/ru/intlayer_with_next-intl.md +0 -42
- package/blog/ru/intlayer_with_react-i18next.md +0 -43
- package/blog/ru/intlayer_with_react-intl.md +0 -42
- package/blog/ru/intlayer_with_vue-i18n.md +0 -46
- package/blog/tr/intlayer_with_i18next.md +0 -2
- package/blog/tr/intlayer_with_next-i18next.md +0 -1
- package/blog/tr/intlayer_with_react-i18next.md +0 -2
- package/blog/vi/intlayer_with_i18next.md +0 -2
- package/blog/vi/intlayer_with_next-i18next.md +0 -2
- package/blog/vi/intlayer_with_react-i18next.md +0 -2
- package/blog/zh/intlayer_with_i18next.md +0 -2
- package/blog/zh/intlayer_with_next-i18next.md +0 -2
- package/blog/zh/intlayer_with_react-i18next.md +0 -2
- package/blog/zh/intlayer_with_vue-i18n.md +0 -46
- package/dist/cjs/generated/blog.entry.cjs +58 -29
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +254 -97
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +30 -15
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +4 -2
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +58 -29
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +254 -97
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +30 -15
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +4 -2
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +3 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/dist/types/generated/legal.entry.d.ts.map +1 -1
- package/docs/ar/cli/ci.md +137 -0
- package/docs/ar/cli/index.md +7 -1
- package/docs/ar/cli/list.md +39 -2
- package/docs/ar/cli/list_projects.md +131 -0
- package/docs/ar/intlayer_CMS.md +20 -0
- package/docs/ar/intlayer_with_next-i18next.md +0 -1
- package/docs/ar/intlayer_with_nextjs_14.md +28 -0
- package/docs/ar/intlayer_with_nextjs_15.md +28 -0
- package/docs/ar/intlayer_with_nextjs_16.md +28 -0
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +1159 -0
- package/docs/ar/plugins/sync-json.md +6 -2
- package/docs/de/cli/ci.md +137 -0
- package/docs/de/cli/index.md +7 -1
- package/docs/de/cli/list.md +39 -2
- package/docs/de/cli/list_projects.md +130 -0
- package/docs/de/intlayer_CMS.md +20 -0
- package/docs/de/intlayer_with_next-i18next.md +0 -1
- package/docs/de/intlayer_with_nextjs_14.md +28 -0
- package/docs/de/intlayer_with_nextjs_15.md +28 -0
- package/docs/de/intlayer_with_nextjs_16.md +28 -0
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +1152 -0
- package/docs/de/plugins/sync-json.md +6 -2
- package/docs/en/cli/ci.md +137 -0
- package/docs/en/cli/index.md +14 -1
- package/docs/en/cli/list.md +39 -2
- package/docs/en/cli/list_projects.md +128 -0
- package/docs/en/interest_of_intlayer.md +1 -1
- package/docs/en/intlayer_CMS.md +20 -0
- package/docs/en/intlayer_with_next-i18next.md +0 -1
- package/docs/en/intlayer_with_nextjs_14.md +28 -0
- package/docs/en/intlayer_with_nextjs_15.md +28 -0
- package/docs/en/intlayer_with_nextjs_16.md +31 -1
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +1132 -0
- package/docs/en/plugins/sync-json.md +6 -2
- package/docs/en-GB/cli/ci.md +137 -0
- package/docs/en-GB/cli/index.md +7 -1
- package/docs/en-GB/cli/list.md +39 -2
- package/docs/en-GB/cli/list_projects.md +130 -0
- package/docs/en-GB/intlayer_CMS.md +20 -0
- package/docs/en-GB/intlayer_with_next-i18next.md +0 -1
- package/docs/en-GB/intlayer_with_nextjs_14.md +28 -0
- package/docs/en-GB/intlayer_with_nextjs_15.md +28 -0
- package/docs/en-GB/intlayer_with_nextjs_16.md +28 -0
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +1154 -0
- package/docs/en-GB/plugins/sync-json.md +6 -2
- package/docs/es/cli/ci.md +137 -0
- package/docs/es/cli/index.md +7 -1
- package/docs/es/cli/list.md +39 -2
- package/docs/es/cli/list_projects.md +130 -0
- package/docs/es/intlayer_CMS.md +20 -0
- package/docs/es/intlayer_with_next-i18next.md +0 -1
- package/docs/es/intlayer_with_nextjs_14.md +28 -0
- package/docs/es/intlayer_with_nextjs_15.md +28 -0
- package/docs/es/intlayer_with_nextjs_16.md +28 -0
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +1143 -0
- package/docs/es/plugins/sync-json.md +6 -2
- package/docs/fr/cli/ci.md +137 -0
- package/docs/fr/cli/index.md +7 -1
- package/docs/fr/cli/list.md +39 -2
- package/docs/fr/cli/list_projects.md +131 -0
- package/docs/fr/intlayer_CMS.md +20 -0
- package/docs/fr/intlayer_with_next-i18next.md +0 -1
- package/docs/fr/intlayer_with_nextjs_14.md +28 -0
- package/docs/fr/intlayer_with_nextjs_15.md +28 -0
- package/docs/fr/intlayer_with_nextjs_16.md +28 -0
- package/docs/fr/intlayer_with_nextjs_no_locale_path.md +1174 -0
- package/docs/fr/plugins/sync-json.md +9 -5
- package/docs/hi/cli/ci.md +137 -0
- package/docs/hi/cli/index.md +7 -1
- package/docs/hi/cli/list.md +38 -1
- package/docs/hi/cli/list_projects.md +130 -0
- package/docs/hi/intlayer_CMS.md +20 -0
- package/docs/hi/intlayer_with_next-i18next.md +0 -1
- package/docs/hi/intlayer_with_nextjs_14.md +28 -0
- package/docs/hi/intlayer_with_nextjs_15.md +28 -0
- package/docs/hi/intlayer_with_nextjs_16.md +28 -0
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +1151 -0
- package/docs/hi/plugins/sync-json.md +6 -2
- package/docs/id/cli/ci.md +137 -0
- package/docs/id/cli/index.md +7 -1
- package/docs/id/cli/list.md +38 -1
- package/docs/id/cli/list_projects.md +128 -0
- package/docs/id/intlayer_CMS.md +20 -0
- package/docs/id/intlayer_with_next-i18next.md +0 -1
- package/docs/id/intlayer_with_nextjs_14.md +28 -0
- package/docs/id/intlayer_with_nextjs_15.md +28 -0
- package/docs/id/intlayer_with_nextjs_16.md +28 -0
- package/docs/id/intlayer_with_nextjs_no_locale_path.md +1154 -0
- package/docs/id/plugins/sync-json.md +6 -2
- package/docs/it/cli/ci.md +137 -0
- package/docs/it/cli/index.md +7 -1
- package/docs/it/cli/list.md +39 -2
- package/docs/it/cli/list_projects.md +130 -0
- package/docs/it/intlayer_CMS.md +20 -0
- package/docs/it/intlayer_with_next-i18next.md +0 -1
- package/docs/it/intlayer_with_nextjs_14.md +28 -0
- package/docs/it/intlayer_with_nextjs_15.md +28 -0
- package/docs/it/intlayer_with_nextjs_16.md +28 -0
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +1148 -0
- package/docs/it/plugins/sync-json.md +6 -2
- package/docs/ja/cli/ci.md +137 -0
- package/docs/ja/cli/index.md +7 -1
- package/docs/ja/cli/list.md +38 -1
- package/docs/ja/cli/list_projects.md +136 -0
- package/docs/ja/intlayer_CMS.md +20 -0
- package/docs/ja/intlayer_with_next-i18next.md +0 -1
- package/docs/ja/intlayer_with_nextjs_14.md +28 -0
- package/docs/ja/intlayer_with_nextjs_15.md +28 -0
- package/docs/ja/intlayer_with_nextjs_16.md +28 -0
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +1222 -0
- package/docs/ja/plugins/sync-json.md +6 -2
- package/docs/ko/cli/ci.md +137 -0
- package/docs/ko/cli/index.md +7 -1
- package/docs/ko/cli/list.md +38 -1
- package/docs/ko/cli/list_projects.md +128 -0
- package/docs/ko/intlayer_CMS.md +20 -0
- package/docs/ko/intlayer_with_next-i18next.md +0 -1
- package/docs/ko/intlayer_with_nextjs_14.md +28 -0
- package/docs/ko/intlayer_with_nextjs_15.md +28 -0
- package/docs/ko/intlayer_with_nextjs_16.md +28 -0
- package/docs/ko/intlayer_with_nextjs_no_locale_path.md +1205 -0
- package/docs/ko/plugins/sync-json.md +6 -2
- package/docs/pl/cli/ci.md +137 -0
- package/docs/pl/cli/index.md +7 -1
- package/docs/pl/cli/list.md +39 -2
- package/docs/pl/cli/list_projects.md +130 -0
- package/docs/pl/intlayer_CMS.md +20 -0
- package/docs/pl/intlayer_with_next-i18next.md +0 -1
- package/docs/pl/intlayer_with_nextjs_14.md +28 -0
- package/docs/pl/intlayer_with_nextjs_15.md +28 -0
- package/docs/pl/intlayer_with_nextjs_16.md +28 -0
- package/docs/pl/intlayer_with_nextjs_no_locale_path.md +1149 -0
- package/docs/pl/plugins/sync-json.md +6 -2
- package/docs/pt/cli/ci.md +137 -0
- package/docs/pt/cli/index.md +7 -1
- package/docs/pt/cli/list.md +39 -2
- package/docs/pt/cli/list_projects.md +134 -0
- package/docs/pt/intlayer_CMS.md +20 -0
- package/docs/pt/intlayer_with_next-i18next.md +0 -1
- package/docs/pt/intlayer_with_nextjs_14.md +28 -0
- package/docs/pt/intlayer_with_nextjs_15.md +28 -0
- package/docs/pt/intlayer_with_nextjs_16.md +28 -0
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +1152 -0
- package/docs/pt/plugins/sync-json.md +6 -2
- package/docs/ru/cli/ci.md +137 -0
- package/docs/ru/cli/index.md +7 -1
- package/docs/ru/cli/list.md +39 -2
- package/docs/ru/cli/list_projects.md +130 -0
- package/docs/ru/intlayer_CMS.md +20 -0
- package/docs/ru/intlayer_with_next-i18next.md +0 -1
- package/docs/ru/intlayer_with_nextjs_14.md +28 -0
- package/docs/ru/intlayer_with_nextjs_15.md +28 -0
- package/docs/ru/intlayer_with_nextjs_16.md +28 -0
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +1204 -0
- package/docs/ru/plugins/sync-json.md +6 -2
- package/docs/tr/cli/ci.md +137 -0
- package/docs/tr/cli/index.md +7 -1
- package/docs/tr/cli/list.md +39 -2
- package/docs/tr/cli/list_projects.md +134 -0
- package/docs/tr/intlayer_CMS.md +20 -0
- package/docs/tr/intlayer_with_next-i18next.md +0 -1
- package/docs/tr/intlayer_with_nextjs_14.md +28 -0
- package/docs/tr/intlayer_with_nextjs_15.md +28 -0
- package/docs/tr/intlayer_with_nextjs_16.md +28 -0
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +1159 -0
- package/docs/tr/plugins/sync-json.md +6 -2
- package/docs/uk/compiler.md +133 -0
- package/docs/uk/component_i18n.md +194 -0
- package/docs/uk/intlayer_with_nextjs_14.md +1646 -0
- package/docs/uk/intlayer_with_nextjs_15.md +1910 -0
- package/docs/uk/intlayer_with_nextjs_16.md +1763 -0
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +1159 -0
- package/docs/uk/intlayer_with_react_native+expo.md +715 -0
- package/docs/uk/packages/intlayer/getConfiguration.md +145 -0
- package/docs/uk/vs_code_extension.md +133 -0
- package/docs/vi/cli/ci.md +137 -0
- package/docs/vi/cli/index.md +7 -1
- package/docs/vi/cli/list.md +38 -1
- package/docs/vi/cli/list_projects.md +130 -0
- package/docs/vi/intlayer_CMS.md +20 -0
- package/docs/vi/intlayer_with_next-i18next.md +0 -1
- package/docs/vi/intlayer_with_nextjs_14.md +28 -0
- package/docs/vi/intlayer_with_nextjs_15.md +28 -0
- package/docs/vi/intlayer_with_nextjs_16.md +28 -0
- package/docs/vi/intlayer_with_nextjs_no_locale_path.md +1151 -0
- package/docs/vi/plugins/sync-json.md +6 -2
- package/docs/zh/cli/ci.md +137 -0
- package/docs/zh/cli/index.md +7 -1
- package/docs/zh/cli/list.md +38 -1
- package/docs/zh/cli/list_projects.md +130 -0
- package/docs/zh/intlayer_CMS.md +20 -0
- package/docs/zh/intlayer_with_next-i18next.md +0 -1
- package/docs/zh/intlayer_with_nextjs_14.md +28 -0
- package/docs/zh/intlayer_with_nextjs_15.md +28 -0
- package/docs/zh/intlayer_with_nextjs_16.md +28 -0
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +1206 -0
- package/docs/zh/plugins/sync-json.md +9 -5
- package/frequent_questions/ar/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/de/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/en/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/en-GB/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/es/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/fr/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/hi/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/id/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/it/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/ja/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/ko/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/pl/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/pt/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/ru/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/tr/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/vi/SSR_Next_no_[locale].md +1 -1
- package/frequent_questions/zh/SSR_Next_no_[locale].md +1 -1
- package/package.json +6 -6
- package/src/generated/blog.entry.ts +29 -0
- package/src/generated/docs.entry.ts +157 -0
- package/src/generated/frequentQuestions.entry.ts +15 -0
- package/src/generated/legal.entry.ts +2 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-01-06
|
|
3
|
+
updatedAt: 2026-01-06
|
|
4
|
+
title: أمر CI
|
|
5
|
+
description: تعلم كيفية استخدام أمر Intlayer CI لتشغيل أوامر Intlayer مع بيانات الاعتماد المحقونة تلقائياً في خطوط أنابيب CI/CD والمستودعات الأحادية.
|
|
6
|
+
keywords:
|
|
7
|
+
- CI
|
|
8
|
+
- CI/CD
|
|
9
|
+
- الأتمتة
|
|
10
|
+
- المستودع الأحادي
|
|
11
|
+
- بيانات الاعتماد
|
|
12
|
+
- CLI
|
|
13
|
+
- Intlayer
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- concept
|
|
17
|
+
- cli
|
|
18
|
+
- ci
|
|
19
|
+
history:
|
|
20
|
+
- version: 7.5.11
|
|
21
|
+
date: 2026-01-06
|
|
22
|
+
changes: إضافة أمر CI
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# أمر CI
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npx intlayer ci <command...>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
تم تصميم أمر CI للأتمتة وخطوط أنابيب CI/CD. يقوم بحقن بيانات الاعتماد تلقائياً من متغير البيئة `INTLAYER_PROJECT_CREDENTIALS` ويمكنه تشغيل أوامر Intlayer عبر مشاريع متعددة في مستودع أحادي.
|
|
32
|
+
|
|
33
|
+
## كيفية العمل
|
|
34
|
+
|
|
35
|
+
يعمل أمر CI في وضعين:
|
|
36
|
+
|
|
37
|
+
1. **وضع المشروع الواحد**: إذا كان الدليل الحالي يطابق أحد مسارات المشاريع في `INTLAYER_PROJECT_CREDENTIALS`، فإنه يشغل الأمر فقط لهذا المشروع المحدد.
|
|
38
|
+
|
|
39
|
+
2. **وضع التكرار**: إذا لم يتم اكتشاف سياق مشروع محدد، فإنه يتكرر عبر جميع المشاريع المُكوّنة ويشغل الأمر لكل واحد منها.
|
|
40
|
+
|
|
41
|
+
## متغير البيئة
|
|
42
|
+
|
|
43
|
+
يتطلب الأمر تعيين متغير البيئة `INTLAYER_PROJECT_CREDENTIALS`. يجب أن يحتوي هذا المتغير على كائن JSON يقوم بتعيين مسارات المشاريع إلى بيانات اعتمادها:
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"packages/app": {
|
|
48
|
+
"clientId": "your-client-id-1",
|
|
49
|
+
"clientSecret": "your-client-secret-1"
|
|
50
|
+
},
|
|
51
|
+
"packages/admin": {
|
|
52
|
+
"clientId": "your-client-id-2",
|
|
53
|
+
"clientSecret": "your-client-secret-2"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## اكتشاف مدير الحزم
|
|
59
|
+
|
|
60
|
+
يكتشف أمر CI تلقائياً مدير الحزم المستخدم (npm أو yarn أو pnpm أو bun) بناءً على متغير البيئة `npm_config_user_agent` ويستخدم الأمر المناسب لتنفيذ Intlayer.
|
|
61
|
+
|
|
62
|
+
## الوسائط
|
|
63
|
+
|
|
64
|
+
- **`<command...>`**: أمر Intlayer المراد تنفيذه (على سبيل المثال، `fill` أو `push` أو `build`). يمكنك تمرير أي أمر Intlayer ووسائطه.
|
|
65
|
+
|
|
66
|
+
> مثال: `npx intlayer ci fill --verbose`
|
|
67
|
+
>
|
|
68
|
+
> مثال: `npx intlayer ci push`
|
|
69
|
+
>
|
|
70
|
+
> مثال: `npx intlayer ci build`
|
|
71
|
+
|
|
72
|
+
## أمثلة
|
|
73
|
+
|
|
74
|
+
### تشغيل أمر في وضع المشروع الواحد
|
|
75
|
+
|
|
76
|
+
إذا كنت في دليل مشروع يطابق أحد المسارات في `INTLAYER_PROJECT_CREDENTIALS`:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
cd packages/app
|
|
80
|
+
npx intlayer ci fill
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
سيقوم هذا بتشغيل أمر `fill` مع حقن بيانات الاعتماد تلقائياً لمشروع `packages/app`.
|
|
84
|
+
|
|
85
|
+
### تشغيل أمر عبر جميع المشاريع
|
|
86
|
+
|
|
87
|
+
إذا كنت في دليل لا يطابق أي مسار مشروع، سيتكرر الأمر عبر جميع المشاريع المُكوّنة:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
cd /path/to/monorepo
|
|
91
|
+
npx intlayer ci push
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
سيقوم هذا بتشغيل أمر `push` لكل مشروع مُكوّن في `INTLAYER_PROJECT_CREDENTIALS`.
|
|
95
|
+
|
|
96
|
+
### تمرير علامات إضافية
|
|
97
|
+
|
|
98
|
+
يمكنك تمرير أي علامات إلى أمر Intlayer الأساسي:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
npx intlayer ci fill --verbose --mode complete
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### الاستخدام في خطوط أنابيب CI/CD
|
|
105
|
+
|
|
106
|
+
في تكوين CI/CD الخاص بك (على سبيل المثال، GitHub Actions أو GitLab CI)، قم بتعيين `INTLAYER_PROJECT_CREDENTIALS` كسر:
|
|
107
|
+
|
|
108
|
+
```yaml
|
|
109
|
+
# مثال GitHub Actions
|
|
110
|
+
env:
|
|
111
|
+
INTLAYER_PROJECT_CREDENTIALS: ${{ secrets.INTLAYER_PROJECT_CREDENTIALS }}
|
|
112
|
+
|
|
113
|
+
steps:
|
|
114
|
+
- name: ملء القواميس
|
|
115
|
+
run: npx intlayer ci fill
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## معالجة الأخطاء
|
|
119
|
+
|
|
120
|
+
- إذا لم يتم تعيين `INTLAYER_PROJECT_CREDENTIALS`، فسيخرج الأمر مع خطأ.
|
|
121
|
+
- إذا لم يكن `INTLAYER_PROJECT_CREDENTIALS` JSON صالحاً، فسيخرج الأمر مع خطأ.
|
|
122
|
+
- إذا لم يكن مسار المشروع موجوداً، فسيتم تخطيه مع تحذير.
|
|
123
|
+
- إذا فشل أي مشروع، فسيخرج الأمر برمز حالة غير صفري.
|
|
124
|
+
|
|
125
|
+
## حالات الاستخدام
|
|
126
|
+
|
|
127
|
+
- **أتمتة المستودع الأحادي**: تشغيل أوامر Intlayer عبر مشاريع متعددة في مستودع أحادي
|
|
128
|
+
- **خطوط أنابيب CI/CD**: أتمتة إدارة القواميس في سير عمل التكامل المستمر
|
|
129
|
+
- **العمليات المجمعة**: تنفيذ نفس العملية على مشاريع Intlayer متعددة في وقت واحد
|
|
130
|
+
- **إدارة الأسرار**: إدارة بيانات الاعتماد بشكل آمن لعدة مشاريع باستخدام متغيرات البيئة
|
|
131
|
+
|
|
132
|
+
## أفضل ممارسات الأمان
|
|
133
|
+
|
|
134
|
+
- قم بتخزين `INTLAYER_PROJECT_CREDENTIALS` كأسرار مشفرة في منصة CI/CD الخاصة بك
|
|
135
|
+
- لا تقم أبداً بإيداع بيانات الاعتماد في التحكم بالإصدارات
|
|
136
|
+
- استخدم بيانات اعتماد خاصة بالبيئة لبيئات النشر المختلفة
|
|
137
|
+
- قم بتدوير بيانات الاعتماد بانتظام
|
package/docs/ar/cli/index.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-11
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-01-06
|
|
4
4
|
title: CLI
|
|
5
5
|
description: اكتشف كيفية استخدام واجهة الأوامر Intlayer CLI لإدارة موقعك متعدد اللغات. اتبع الخطوات في هذه الوثائق الإلكترونية لإعداد مشروعك في دقائق قليلة.
|
|
6
6
|
keywords:
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
- concept
|
|
18
18
|
- cli
|
|
19
19
|
history:
|
|
20
|
+
- version: 7.5.11
|
|
21
|
+
date: 2026-01-06
|
|
22
|
+
changes: إضافة أمر projects list
|
|
20
23
|
- version: 7.5.9
|
|
21
24
|
date: 2025-12-30
|
|
22
25
|
changes: إضافة أمر init
|
|
@@ -119,6 +122,7 @@ bun add intlayer-cli -g
|
|
|
119
122
|
- **[بناء القواميس](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/build.md)** - بناء قواميسك من ملفات إعلان المحتوى
|
|
120
123
|
- **[مراقبة القواميس](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/watch.md)** - مراقبة التغييرات وبناء القواميس تلقائيًا
|
|
121
124
|
- **[التحقق من إصدار CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/version.md)** - التحقق من إصدار Intlayer CLI المثبت
|
|
125
|
+
- **[قائمة المشاريع](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/list_projects.md)** - قائمة بجميع مشاريع Intlayer في دليل أو مستودع git
|
|
122
126
|
|
|
123
127
|
### إدارة القواميس
|
|
124
128
|
|
|
@@ -166,6 +170,7 @@ bun add intlayer-cli -g
|
|
|
166
170
|
"intlayer:list": "npx intlayer content list",
|
|
167
171
|
"intlayer:test": "npx intlayer content test",
|
|
168
172
|
"intlayer:transform": "npx intlayer transform",
|
|
173
|
+
"intlayer:projects": "npx intlayer projects list",
|
|
169
174
|
"intlayer:doc:translate": "npx intlayer doc translate",
|
|
170
175
|
"intlayer:doc:review": "npx intlayer doc review"
|
|
171
176
|
}
|
|
@@ -175,3 +180,4 @@ bun add intlayer-cli -g
|
|
|
175
180
|
>
|
|
176
181
|
> - `npx intlayer list` بدلاً من `npx intlayer content list`
|
|
177
182
|
> - `npx intlayer test` بدلاً من `npx intlayer content test`
|
|
183
|
+
> - `npx intlayer projects-list` أو `npx intlayer pl` بدلاً من `npx intlayer projects list`
|
package/docs/ar/cli/list.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-11
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-01-06
|
|
4
4
|
title: قائمة ملفات إعلان المحتوى
|
|
5
5
|
description: تعلّم كيفية سرد جميع ملفات إعلان المحتوى في مشروعك.
|
|
6
6
|
keywords:
|
|
@@ -13,6 +13,13 @@ slugs:
|
|
|
13
13
|
- concept
|
|
14
14
|
- cli
|
|
15
15
|
- list
|
|
16
|
+
history:
|
|
17
|
+
- version: 7.5.12
|
|
18
|
+
date: 2026-01-06
|
|
19
|
+
changes: إضافة خيار الإخراج المطلق لأمر القائمة
|
|
20
|
+
- version: 7.5.11
|
|
21
|
+
date: 2026-01-06
|
|
22
|
+
changes: إضافة خيار إخراج JSON لأمر القائمة
|
|
16
23
|
---
|
|
17
24
|
|
|
18
25
|
# قائمة ملفات إعلان المحتوى
|
|
@@ -27,14 +34,36 @@ npx intlayer content list
|
|
|
27
34
|
|
|
28
35
|
يعرض هذا الأمر جميع ملفات إعلان المحتوى في مشروعك، مع عرض مفاتيح القاموس الخاصة بها ومسارات الملفات. وهو مفيد للحصول على نظرة عامة على جميع ملفات المحتوى الخاصة بك والتحقق من اكتشافها بشكل صحيح بواسطة Intlayer.
|
|
29
36
|
|
|
30
|
-
##
|
|
37
|
+
## الوسائط:
|
|
38
|
+
|
|
39
|
+
- **`--json`**: إخراج النتائج بتنسيق JSON بدلاً من النص المنسق. مفيد للبرمجة النصية والوصول البرمجي.
|
|
40
|
+
|
|
41
|
+
> مثال: `npx intlayer content list --json`
|
|
42
|
+
|
|
43
|
+
## أمثلة:
|
|
44
|
+
|
|
45
|
+
### سرد ملفات إعلان المحتوى:
|
|
31
46
|
|
|
32
47
|
```bash
|
|
33
48
|
npx intlayer content list
|
|
34
49
|
```
|
|
35
50
|
|
|
51
|
+
### الإخراج بتنسيق JSON:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npx intlayer content list --json
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### الإخراج كمسارات مطلقة:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npx intlayer content list --absolute
|
|
61
|
+
```
|
|
62
|
+
|
|
36
63
|
## مثال على الإخراج:
|
|
37
64
|
|
|
65
|
+
### الإخراج المنسق:
|
|
66
|
+
|
|
38
67
|
```bash
|
|
39
68
|
npx intlayer content list
|
|
40
69
|
Content declaration files:
|
|
@@ -45,6 +74,14 @@ Content declaration files:
|
|
|
45
74
|
إجمالي ملفات إعلان المحتوى: 3
|
|
46
75
|
```
|
|
47
76
|
|
|
77
|
+
### إخراج JSON:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
$ npx intlayer content list --json
|
|
81
|
+
|
|
82
|
+
[{"key":"home-page","path":"src/components/HomePage/homePage.content.ts"},{"key":"server-component","path":"src/components/ServerComponent/serverComponent.content.ts"},{"key":"client-component","path":"src/components/ClientComponent/clientComponent.content.ts"}]
|
|
83
|
+
```
|
|
84
|
+
|
|
48
85
|
سيقوم هذا الأمر بإخراج:
|
|
49
86
|
|
|
50
87
|
- قائمة منسقة بجميع ملفات إعلان المحتوى مع مفاتيحها ومسارات الملفات النسبية
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-12-30
|
|
3
|
+
updatedAt: 2026-01-06
|
|
4
|
+
title: قائمة مشاريع Intlayer
|
|
5
|
+
description: تعرّف كيف تُدرَج جميع مشاريع Intlayer في دليل أو مستودع git.
|
|
6
|
+
keywords:
|
|
7
|
+
- قائمة
|
|
8
|
+
- مشاريع
|
|
9
|
+
- CLI
|
|
10
|
+
- Intlayer
|
|
11
|
+
- Git
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- concept
|
|
15
|
+
- cli
|
|
16
|
+
- list-projects
|
|
17
|
+
history:
|
|
18
|
+
- version: 7.5.12
|
|
19
|
+
date: 2026-01-06
|
|
20
|
+
changes: إضافة خيار الإخراج المطلق إلى أمر list projects
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# قائمة مشاريع Intlayer
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx intlayer projects list
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
يبحث هذا الأمر عن جميع مشاريع Intlayer ويسردها عن طريق العثور على الأدلة التي تحتوي على ملفات تكوين Intlayer. يكون هذا مفيدًا لاكتشاف جميع مشاريع Intlayer في monorepo أو workspace أو مستودع git.
|
|
30
|
+
|
|
31
|
+
## الاختصارات:
|
|
32
|
+
|
|
33
|
+
- `npx intlayer projects-list`
|
|
34
|
+
- `npx intlayer pl`
|
|
35
|
+
|
|
36
|
+
## الوسائط:
|
|
37
|
+
|
|
38
|
+
- **`--base-dir [path]`**: حدد الدليل الأساسي للبحث منه. الافتراضي هو دليل العمل الحالي.
|
|
39
|
+
|
|
40
|
+
> مثال: `npx intlayer projects list --base-dir /path/to/workspace`
|
|
41
|
+
|
|
42
|
+
> مثال: `npx intlayer projects list --base-dir /path/to/workspace`
|
|
43
|
+
|
|
44
|
+
- **`--git-root`**: البحث من جذر git بدلاً من الدليل الأساسي. هذا مفيد للعثور على جميع مشاريع Intlayer في monorepo أو مستودع git.
|
|
45
|
+
|
|
46
|
+
> مثال: `npx intlayer projects list --git-root`
|
|
47
|
+
|
|
48
|
+
- **`--json`**: إخراج النتائج بتنسيق JSON بدلاً من النص المنسق. مفيد للبرمجة النصية والوصول البرمجي.
|
|
49
|
+
|
|
50
|
+
> مثال: `npx intlayer projects list --json`
|
|
51
|
+
|
|
52
|
+
- **`--absolute`**: إخراج النتائج كمسارات مطلقة بدلاً من المسارات النسبية.
|
|
53
|
+
|
|
54
|
+
> مثال: `npx intlayer projects list --absolute`
|
|
55
|
+
|
|
56
|
+
## كيف يعمل:
|
|
57
|
+
|
|
58
|
+
يبحث الأمر عن ملفات تكوين Intlayer في الدليل المحدد (أو جذر git إذا تم استخدام `--git-root`). يبحث عن أنماط ملفات التكوين التالية:
|
|
59
|
+
|
|
60
|
+
- `intlayer.config.ts`
|
|
61
|
+
- `intlayer.config.js`
|
|
62
|
+
- `intlayer.config.json`
|
|
63
|
+
- `intlayer.config.cjs`
|
|
64
|
+
- `intlayer.config.mjs`
|
|
65
|
+
- `.intlayerrc`
|
|
66
|
+
|
|
67
|
+
يُعتبر كل دليل يحتوي على أحد هذه الملفات مشروع Intlayer وسيتم إدراجه في الناتج.
|
|
68
|
+
|
|
69
|
+
## أمثلة:
|
|
70
|
+
|
|
71
|
+
### سرد المشاريع في الدليل الحالي:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npx intlayer projects list
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### قائمة المشاريع في دليل محدد:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npx intlayer projects list --base-dir ./packages
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### قائمة جميع المشاريع في مستودع git:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
npx intlayer projects list --git-root
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### باستخدام الاسم المختصر:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
npx intlayer pl --git-root
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### الإخراج بتنسيق JSON:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
npx intlayer projects list --json
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## مثال على المخرجات:
|
|
102
|
+
|
|
103
|
+
### الإخراج المنسق:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
$ npx intlayer projects list --git-root
|
|
107
|
+
|
|
108
|
+
Found 3 Intlayer project(s):
|
|
109
|
+
|
|
110
|
+
- /Users/user/workspace/packages/app
|
|
111
|
+
- /Users/user/workspace/packages/admin
|
|
112
|
+
- /Users/user/workspace/packages/shared
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### إخراج JSON:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
$ npx intlayer projects list --json
|
|
119
|
+
|
|
120
|
+
["/Users/user/workspace/packages/app","/Users/user/workspace/packages/admin","/Users/user/workspace/packages/shared"]
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## حالات الاستخدام:
|
|
124
|
+
|
|
125
|
+
- **إدارة Monorepo**: اكتشاف جميع مشاريع Intlayer في هيكلية monorepo
|
|
126
|
+
- **اكتشاف المشاريع**: العثور على جميع المشاريع المدعومة بواسطة Intlayer في مساحة العمل
|
|
127
|
+
- **CI/CD**: التحقق من مشاريع Intlayer في سير عمل مؤتمت
|
|
128
|
+
- **التوثيق**: توليد توثيق يسرد جميع المشاريع التي تستخدم Intlayer
|
|
129
|
+
- **التوثيق**: إنشاء توثيق يسرد جميع المشاريع التي تستخدم Intlayer
|
|
130
|
+
|
|
131
|
+
تُرجع المخرجات مسارات مطلقة لكل دليل مشروع، مما يسهل التنقل إليها أو تشغيل عمليات نصية (scripting) على عدة مشاريع Intlayer.
|
package/docs/ar/intlayer_CMS.md
CHANGED
|
@@ -71,6 +71,26 @@ history:
|
|
|
71
71
|
|
|
72
72
|
## التهيئة
|
|
73
73
|
|
|
74
|
+
قم بتشغيل الأمر التالي لتسجيل الدخول إلى Intlayer CMS:
|
|
75
|
+
|
|
76
|
+
```bash packageManager="npm"
|
|
77
|
+
npx intlayer login
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
```bash packageManager="yarn"
|
|
81
|
+
yarn intlayer login
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
```bash packageManager="pnpm"
|
|
85
|
+
pnpm intlayer login
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```bash packageManager="bun"
|
|
89
|
+
bunx intlayer login
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
سيؤدي هذا إلى فتح المتصفح الافتراضي الخاص بك لإكمال عملية المصادقة والحصول على بيانات الاعتماد اللازمة (معرف العميل وسر العميل) لاستخدام خدمات Intlayer.
|
|
93
|
+
|
|
74
94
|
في ملف تهيئة Intlayer الخاص بك، يمكنك تخصيص إعدادات نظام إدارة المحتوى:
|
|
75
95
|
|
|
76
96
|
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
@@ -74,6 +74,34 @@ bunx intlayer init
|
|
|
74
74
|
|
|
75
75
|
### الخطوة 2: تكوين مشروعك
|
|
76
76
|
|
|
77
|
+
Here is the final structure that we will make:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
.
|
|
81
|
+
├── src
|
|
82
|
+
│ ├── app
|
|
83
|
+
│ │ ├── [locale]
|
|
84
|
+
│ │ │ ├── layout.tsx # Locale layout for the Intlayer provider
|
|
85
|
+
│ │ │ ├── page.content.ts
|
|
86
|
+
│ │ │ └── page.tsx
|
|
87
|
+
│ │ └── layout.tsx # Root layout for style and global providers
|
|
88
|
+
│ ├── components
|
|
89
|
+
│ │ ├── client-component-example.content.ts
|
|
90
|
+
│ │ ├── ClientComponentExample.tsx
|
|
91
|
+
│ │ ├── LocaleSwitcher
|
|
92
|
+
│ │ │ ├── localeSwitcher.content.ts
|
|
93
|
+
│ │ │ └── LocaleSwitcher.tsx
|
|
94
|
+
│ │ ├── server-component-example.content.ts
|
|
95
|
+
│ │ └── ServerComponentExample.tsx
|
|
96
|
+
│ └── middleware.ts
|
|
97
|
+
├── intlayer.config.ts
|
|
98
|
+
├── next.config.ts
|
|
99
|
+
├── package.json
|
|
100
|
+
└── tsconfig.json
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
> If you don't want locale routing, intlayer can be used as a simple provider / hook. See [this guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_no_locale_path.md) for more details.
|
|
104
|
+
|
|
77
105
|
قم بإنشاء ملف تكوين لتحديد لغات تطبيقك:
|
|
78
106
|
|
|
79
107
|
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
@@ -84,6 +84,34 @@ bunx intlayer init
|
|
|
84
84
|
|
|
85
85
|
### الخطوة 2: تكوين مشروعك
|
|
86
86
|
|
|
87
|
+
Here is the final structure that we will make:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
.
|
|
91
|
+
├── src
|
|
92
|
+
│ ├── app
|
|
93
|
+
│ │ ├── [locale]
|
|
94
|
+
│ │ │ ├── layout.tsx # Locale layout for the Intlayer provider
|
|
95
|
+
│ │ │ ├── page.content.ts
|
|
96
|
+
│ │ │ └── page.tsx
|
|
97
|
+
│ │ └── layout.tsx # Root layout for style and global providers
|
|
98
|
+
│ ├── components
|
|
99
|
+
│ │ ├── client-component-example.content.ts
|
|
100
|
+
│ │ ├── ClientComponentExample.tsx
|
|
101
|
+
│ │ ├── LocaleSwitcher
|
|
102
|
+
│ │ │ ├── localeSwitcher.content.ts
|
|
103
|
+
│ │ │ └── LocaleSwitcher.tsx
|
|
104
|
+
│ │ ├── server-component-example.content.ts
|
|
105
|
+
│ │ └── ServerComponentExample.tsx
|
|
106
|
+
│ └── middleware.ts
|
|
107
|
+
├── intlayer.config.ts
|
|
108
|
+
├── next.config.ts
|
|
109
|
+
├── package.json
|
|
110
|
+
└── tsconfig.json
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
> If you don't want locale routing, intlayer can be used as a simple provider / hook. See [this guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_no_locale_path.md) for more details.
|
|
114
|
+
|
|
87
115
|
أنشئ ملف تكوين لتكوين لغات تطبيقك:
|
|
88
116
|
|
|
89
117
|
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
@@ -104,6 +104,34 @@ bunx intlayer init
|
|
|
104
104
|
|
|
105
105
|
### الخطوة 2: تكوين مشروعك
|
|
106
106
|
|
|
107
|
+
Here is the final structure that we will make:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
.
|
|
111
|
+
├── src
|
|
112
|
+
│ ├── app
|
|
113
|
+
│ │ ├── [locale]
|
|
114
|
+
│ │ │ ├── layout.tsx # Locale layout for the Intlayer provider
|
|
115
|
+
│ │ │ ├── page.content.ts
|
|
116
|
+
│ │ │ └── page.tsx
|
|
117
|
+
│ │ └── layout.tsx # Root layout for style and global providers
|
|
118
|
+
│ ├── components
|
|
119
|
+
│ │ ├── client-component-example.content.ts
|
|
120
|
+
│ │ ├── ClientComponentExample.tsx
|
|
121
|
+
│ │ ├── LocaleSwitcher
|
|
122
|
+
│ │ │ ├── localeSwitcher.content.ts
|
|
123
|
+
│ │ │ └── LocaleSwitcher.tsx
|
|
124
|
+
│ │ ├── server-component-example.content.ts
|
|
125
|
+
│ │ └── ServerComponentExample.tsx
|
|
126
|
+
│ └── proxy.ts
|
|
127
|
+
├── intlayer.config.ts
|
|
128
|
+
├── next.config.ts
|
|
129
|
+
├── package.json
|
|
130
|
+
└── tsconfig.json
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
> If you don't want locale routing, intlayer can be used as a simple provider / hook. See [this guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_no_locale_path.md) for more details.
|
|
134
|
+
|
|
107
135
|
أنشئ ملف تكوين لتحديد لغات تطبيقك:
|
|
108
136
|
|
|
109
137
|
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|