---
createdAt: 2025-11-16
updatedAt: 2025-11-16
title: توثيق دالة getPrefix | intlayer
description: تعرف على كيفية استخدام دالة getPrefix لحزمة intlayer
keywords:
  - getPrefix
  - prefix
  - Intlayer
  - intlayer
  - التدويل
  - التوثيق
  - Next.js
  - JavaScript
  - React
slugs:
  - doc
  - packages
  - intlayer
  - getPrefix
history:
  - version: 7.1.0
    date: 2025-11-16
    changes: "التوثيق الأولي"
---

# التوثيق: دالة `getPrefix` في `intlayer`

## الوصف

تقوم دالة `getPrefix` بتحديد بادئة URL للغة معينة بناءً على إعدادات وضع التوجيه. تقارن اللغة مع اللغة الافتراضية وتعيد كائن يحتوي على ثلاثة تنسيقات مختلفة للبادئة لتوفير مرونة في بناء عناوين URL.

**الميزات الرئيسية:**

- تأخذ اللغة كمعامل أول (مطلوب)
- كائن `options` اختياري يحتوي على `defaultLocale` و `mode`
- تعيد كائن يحتوي على خصائص `prefix` و `localePrefix`
- تدعم جميع أوضاع التوجيه: `prefix-no-default`، `prefix-all`، `no-prefix`، و `search-params`
- أداة خفيفة لتحديد متى يجب إضافة بادئات اللغة

---

## توقيع الدالة

```typescript
getPrefix(
  locale: Locales,               // مطلوب
  options?: {                    // اختياري
    defaultLocale?: Locales;
    mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params';
  }
): GetPrefixResult

type GetPrefixResult = {
  prefix: string;   // مثال: 'fr/' أو ''
  localePrefix?: Locale; // مثال: 'fr' أو undefined
}
```

---

## المعاملات

- `locale: Locales`
  - **الوصف**: اللغة التي سيتم توليد البادئة لها. إذا كانت القيمة خاطئة (undefined، null، سلسلة فارغة)، تُرجع الدالة سلسلة فارغة.
  - **النوع**: `Locales`
  - **مطلوب**: نعم

- `options?: object`
  - **الوصف**: كائن التهيئة لتحديد البادئة.
  - **النوع**: `object`
  - **مطلوب**: لا (اختياري)

  - `options.defaultLocale?: Locales`
    - **الوصف**: اللغة الافتراضية للتطبيق. إذا لم يتم توفيرها، يتم استخدام اللغة الافتراضية المهيأة في تكوين المشروع الخاص بك.
    - **النوع**: `Locales`
    - **الافتراضي**: [`تكوين المشروع`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/configuration.md#middleware)

  - `options.mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
    - **الوصف**: وضع توجيه URL لمعالجة اللغة. إذا لم يتم توفيره، يستخدم الوضع المهيأ في تكوين المشروع الخاص بك.
    - **النوع**: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
    - **الافتراضي**: [`تكوين المشروع`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/configuration.md#middleware)
    - **الأوضاع**:
      - `prefix-no-default`: يعيد سلاسل فارغة عندما تتطابق اللغة مع اللغة الافتراضية
      - `prefix-all`: يعيد بادئة لجميع اللغات بما في ذلك الافتراضية
      - `no-prefix`: يعيد سلاسل فارغة (لا توجد بادئة في عناوين URL)
      - `search-params`: يعيد سلاسل فارغة (اللغة في معلمات الاستعلام)

### Returns

- **النوع**: `GetPrefixResult`
- **الوصف**: كائن يحتوي على ثلاثة تنسيقات مختلفة للبادئة:
  - `prefix`: بادئة المسار مع شرطة مائلة في النهاية (مثال: `'fr/'`، `''`)
  - `localePrefix`: معرف اللغة بدون شرطات مائلة (مثال: `'fr'`، `undefined`)

---

## مثال على الاستخدام

### الاستخدام الأساسي

```typescript codeFormat={["typescript", "esm"]}
import { getPrefix, Locales } from "intlayer";

// تحقق من البادئة للغة الإنجليزية
getPrefix(Locales.ENGLISH, {
  defaultLocale: Locales.ENGLISH,
  mode: "prefix-all",
});
// يعيد: { prefix: 'en/', localePrefix: 'en' }

// تحقق من البادئة للغة الفرنسية
getPrefix(Locales.FRENCH, {
  defaultLocale: Locales.ENGLISH,
  mode: "prefix-no-default",
});
// يعيد: { prefix: 'fr/', localePrefix: 'fr' }
```

### أوضاع التوجيه المختلفة

```typescript
import { getPrefix, Locales } from "intlayer";

// prefix-all: يعيد البادئة دائمًا
getPrefix(Locales.ENGLISH, {
  mode: "prefix-all",
  defaultLocale: Locales.ENGLISH,
});
// يعيد: { prefix: '/en', localePrefix: 'en' }

// prefix-no-default: لا يعيد بادئة عندما تتطابق اللغة مع الافتراضية
getPrefix(Locales.ENGLISH, {
  mode: "prefix-no-default",
  defaultLocale: Locales.ENGLISH,
});
// يعيد: { prefix: '', localePrefix: undefined }

// prefix-no-default: يعيد البادئة عندما تختلف اللغة عن اللغة الافتراضية
getPrefix(Locales.FRENCH, {
  mode: "prefix-no-default",
  defaultLocale: Locales.ENGLISH,
});
// يعيد: { prefix: 'fr/', localePrefix: 'fr' }

// no-prefix & search-params: لا يعيد البادئة أبدًا
getPrefix(Locales.ENGLISH, { mode: "no-prefix" });
// يعيد: { prefix: '', localePrefix: undefined }

getPrefix(Locales.ENGLISH, { mode: "search-params" });
// يعيد: { prefix: '', localePrefix: undefined }
```

### مثال عملي

```typescript
import { getPrefix, Locales } from "intlayer";

// بناء عناوين URL مع البادئة المناسبة للغة معينة
const locale = Locales.FRENCH;
const { prefix, localePrefix } = getPrefix(locale, {
  defaultLocale: Locales.ENGLISH,
  mode: "prefix-no-default",
});

// استخدام البادئة لبناء المسار
const url1 = `/${prefix}about`.replace(/\/+/g, "/");
// النتيجة: "/fr/about"

// استخدام localePrefix لتحديد اللغة
console.log(`Current locale: ${localePrefix}`);
// المخرجات: "Current locale: fr"
```

---

## الدوال المرتبطة

- [`getLocalizedUrl`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/intlayer/getLocalizedUrl.md): ينشئ عنوان URL محلي للغة معينة
- [`getMultilingualUrls`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/intlayer/getMultilingualUrls.md): ينشئ عناوين URL لجميع اللغات المكونة

---

## TypeScript

```typescript
type GetPrefixResult = {
  prefix: string; // بادئة المسار مع الشرطة المائلة النهائية (مثلاً 'fr/' أو '')
  localePrefix?: Locale; // معرف اللغة بدون شرطات مائلة (مثلاً 'fr' أو غير معرف)
};

function getPrefix(
  locale: Locales,
  options?: {
    defaultLocale?: Locales;
    mode?: "prefix-no-default" | "prefix-all" | "no-prefix" | "search-params";
  }
): GetPrefixResult;
```
