Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions apps/web/src/content/ar/docs/gitmoji/emojis.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: مرجع الرموز التعبيرية
description: قائمة كاملة من gitmojis
---
نستخدم [gitmoji](https://gitmoji.dev) لتصنيف الالتزامات الخاصة بنا. إليك القائمة الكاملة من الرموز التعبيرية، ورمزها ووصفها:

<GitmojiList />

<Callout type="info" title="الأدوات">
استخدم [gitmoji-cli](https://github.com/carloscuesta/gitmoji-cli) أو [إضافة VS Code](https://marketplace.visualstudio.com/items?itemName=seatonjiang.gitmoji-vscode) لتجربة التزام تفاعلية.
</Callout>
91 changes: 91 additions & 0 deletions apps/web/src/content/ar/docs/gitmoji/getting-started.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---
title: البدء
description: تعلم قاعدة الالتزام لدينا
---
نحب أن يكون لدينا تاريخ مشروع نظيف. تقليدنا في الكومِيت هو مستوحى من [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0) لكنه مخصص بـ [gitmoji](https://gitmoji.dev) لجعله أكثر وضوحًا ومتعة.

## الهيكل

يجب أن تكون رسالة الكومِيت منظمة كالتالي و **بالحروف الصغيرة**:

```
<gitmoji> <type> <description> [(#<issue number>)]

[optional body]

[optional footer(s)]
```

### مثال

```bash
📝 تحديث المساهمين في الوثائق

- إضافة @jerembdn كمساهم
- إضافة @younesbessa كمساهم

Co-authored-by: Younes Bessa <younes@onruntime.com>
```

معظم الوقت، سطر واحد بسيط يكفي:

```bash
📝 تحديث المساهمين في الوثائق
```

## الأنواع

نستخدم أنواع الكومِيت التالية:

| النوع | الوصف |
| --- | --- |
| `add` | إضافة ميزة جديدة |
| `fix` | إصلاح خطأ |
| `improve` | تحسين شيء ما |
| `update` | تحديث شيء ما |
| `remove` | إزالة شيء ما |
| `refactor` | إعادة هيكلة شيء ما |
| `rename` | إعادة تسمية شيء ما |
| `move` | نقل ملف أو مجلد |
| `upgrade` | ترقية التبعيات |
| `downgrade` | تقليل التبعيات |

## الوصف

اكتب الأوصاف في **صيغة الأمر** و **بالحروف الصغيرة**:

```bash
# جيد
📝 تحديث المساهمين في الوثائق

# سيء
📝 تم تحديث المساهمين في الوثائق

# سيء
📝 تحديث المساهمين في الوثائق
```

## رقم القضية

اربط الكومِيت بالقضايا بإضافة رقم القضية:

```bash
📝 تحديث المساهمين في الوثائق (#123)
```

## المتن

استخدم المتن للسياق والدافع:

```bash
📝 تحديث المساهمين في الوثائق

- إضافة @jerembdn كمساهم
- إضافة @younesbessa كمساهم

Co-authored-by: Younes Bessa <younes@onruntime.com>
```

<Callout type="info" title="كومِيت واحد، هدف واحد">
يجب أن يمثل كل كومِيت تغييرًا منطقيًا واحدًا. لا تخلط بين التغييرات غير ذات الصلة.
</Callout>
63 changes: 63 additions & 0 deletions apps/web/src/content/ar/docs/gitmoji/with-ai.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
title: مع الذكاء الاصطناعي
description: استخدم gitmoji مع Claude Code
---
قم بتثبيت ملحق gitmoji الخاص بنا لـ [Claude Code](https://claude.ai/code) لإنشاء التزامات تتبع الاتفاق.

## تثبيت الملحق

أضف سوق onRuntime وثبّت الملحق:

```bash
# أضف سوق onRuntime
/plugin marketplace add https://onruntime.com/plugins

# ثبّت ملحق gitmoji
/plugin install gitmoji@onruntime
```

أو قم بالتثبيت مباشرة من القائمة:

1. قم بتشغيل `/plugin` في Claude Code
2. انتقل إلى علامة التبويب **Discover**
3. أضف السوق: `https://onruntime.com/plugins`
4. ابحث عن "gitmoji" وقم بالتثبيت

## الاستخدام

قم بتشغيل أمر `/commit` لإنشاء التزام:

```
/commit
```

```
/commit fix the login bug
```

سيقوم Claude Code بتحليل التغييرات الخاصة بك وإنشاء التزام يتبع اتفاق gitmoji.

<Callout type="info" title="أمر الملحق">
أمر `/commit` يسترجع تلقائياً حالة جيت الخاصة بك و diff لإنشاء رسالة الالتزام المناسبة.
</Callout>

## بديل: CLAUDE.md

إذا كنت تفضل عدم تثبيت الملحق، أضف هذا إلى `CLAUDE.md` الخاص بمشروعك:

```markdown
## اتفاق الالتزام

استخدم التزامات gitmoji التقليدية:

\`\`\`
<gitmoji> <type> <description>
\`\`\`

الأنواع: add, fix, improve, update, remove, refactor, rename, move, upgrade, downgrade

القواعد:
- اكتب بأحرف صغيرة
- استخدم صيغة الأمر ("add" وليس "added")
- تغيير منطقي واحد لكل التزام
```
169 changes: 169 additions & 0 deletions apps/web/src/content/ar/docs/next-sitemap/api.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
---
title: مرجع واجهة برمجة التطبيقات
description: وثائق كاملة لواجهة برمجة التطبيقات لـ @onruntime/next-sitemap
---
## generateSitemap

ينشئ خريطة موقع لتطبيق Next.js الخاص بك.

```tsx
import { generateSitemap } from "@onruntime/next-sitemap/app";

const sitemap = await generateSitemap(options);
```

### Options

| الخيار | النوع | مطلوب | الوصف |
|--------|------|----------|-------------|
| `baseUrl` | `string` | نعم | عنوان URL الأساسي لموقعك |
| `additionalPaths` | `SitemapEntry[]` | لا | عناوين URL إضافية للإدراج |
| `exclude` | `string[]` | لا | أنماط Glob للاستبعاد |
| `defaults` | `SitemapDefaults` | لا | القيم الافتراضية لجميع الإدخالات |
| `locales` | `string[]` | لا | اللغات المدعومة |
| `defaultLocale` | `string` | لا | اللغة الافتراضية |

### SitemapEntry

| الخاصية | النوع | الوصف |
|----------|------|-------------|
| `url` | `string` | عنوان URL للصفحة (نسبي أو مطلق) |
| `lastModified` | `Date \| string` | تاريخ آخر تعديل |
| `changeFrequency` | `ChangeFrequency` | مدى تكرار تغيير الصفحة |
| `priority` | `number` | الأولوية (0.0 - 1.0) |

### ChangeFrequency

```tsx
type ChangeFrequency =
| "always"
| "hourly"
| "daily"
| "weekly"
| "monthly"
| "yearly"
| "never";
```

### Example

```tsx
import { generateSitemap } from "@onruntime/next-sitemap/app";

export default async function sitemap() {
const blogPosts = await fetchPosts();

return generateSitemap({
baseUrl: "https://example.com",
defaults: {
changeFrequency: "weekly",
priority: 0.7,
},
additionalPaths: blogPosts.map((post) => ({
url: `/blog/${post.slug}`,
lastModified: post.updatedAt,
priority: 0.8,
})),
exclude: ["/admin/*", "/api/*"],
});
}
```

## generateRobots

ينشئ ملف robots.txt.

```tsx
import { generateRobots } from "@onruntime/next-sitemap/app";

const robots = generateRobots(options);
```

### Options

| الخيار | النوع | مطلوب | الوصف |
|--------|------|----------|-------------|
| `baseUrl` | `string` | نعم | عنوان URL الأساسي لموقعك |
| `rules` | `RobotsRule[]` | لا | قواعد الروبوتات المخصصة |
| `sitemap` | `string \| boolean` | لا | عنوان URL لخريطة الموقع أو `false` للاستبعاد |

### RobotsRule

| الخاصية | النوع | الوصف |
|----------|------|-------------|
| `userAgent` | `string` | عميل المستخدم المستهدف |
| `allow` | `string \| string[]` | المسارات المسموح بها |
| `disallow` | `string \| string[]` | المسارات الممنوعة |
| `crawlDelay` | `number` | تأخير الزحف بالثواني |

### Example

```tsx
import { generateRobots } from "@onruntime/next-sitemap/app";

export default function robots() {
return generateRobots({
baseUrl: "https://example.com",
rules: [
{
userAgent: "*",
allow: "/",
disallow: ["/admin/", "/private/"],
},
{
userAgent: "Googlebot",
allow: "/",
crawlDelay: 1,
},
],
});
}
```

## generateSitemapIndex

ينشئ فهرس خريطة الموقع للمواقع الكبيرة.

```tsx
import { generateSitemapIndex } from "@onruntime/next-sitemap/app";

const index = await generateSitemapIndex(options);
```

### Options

| الخيار | النوع | مطلوب | الوصف |
|--------|------|----------|-------------|
| `baseUrl` | `string` | نعم | عنوان URL الأساسي لموقعك |
| `sitemapsPerFile` | `number` | لا | عناوين URL لكل خريطة موقع (افتراضي: 5000) |

### Example

```tsx
import { generateSitemapIndex } from "@onruntime/next-sitemap/app";

export default async function sitemap() {
return generateSitemapIndex({
baseUrl: "https://example.com",
sitemapsPerFile: 10000,
});
}
```

## Type Exports

الحزمة تصدر أنواع TypeScript للراحة:

```tsx
import type {
SitemapEntry,
SitemapOptions,
RobotsOptions,
RobotsRule,
ChangeFrequency,
} from "@onruntime/next-sitemap";
```

<Callout type="info" title="TypeScript Support">
جميع الدوال والخيارات مهيأة بالكامل. سيوفر لك IDE الخاص بك الإكمال التلقائي والتحقق من الأنواع.
</Callout>
Loading