Documentation: getLocalizedUrl Function in intlayer
Description
تقوم دالة getLocalizedUrl بإنشاء عنوان URL محلي عن طريق إضافة بادئة اللغة المحددة. فهي تعالج كل من عناوين URL المطلقة والنسبية، مع ضمان تطبيق بادئة اللغة الصحيحة بناءً على التكوين.
Parameters
url: string
- Description: سلسلة عنوان URL الأصلية التي سيتم إضافة بادئة اللغة إليها.
- Type: string
currentLocale: Locales
- Description: اللغة الحالية التي يتم تخصيص عنوان URL لها.
- Type: Locales
locales: Locales[]
- Description: مصفوفة اختيارية من اللغات المدعومة. بشكل افتراضي، يتم توفير اللغات المكونة في المشروع.
- Type: Locales[]
- Default: Project Configuration
defaultLocale: Locales
- Description: اللغة الافتراضية للتطبيق. بشكل افتراضي، يتم توفير اللغة الافتراضية المكونة في المشروع.
- Type: Locales
- Default: Project Configuration
prefixDefault: boolean
- Description: ما إذا كان يجب إضافة بادئة للغة الافتراضية. بشكل افتراضي، يتم توفير القيمة المكونة في المشروع.
- Type: boolean
- Default: Project Configuration
Returns
- Type: string
- Description: عنوان URL المحلي للغة المحددة.
Example Usage
Relative URLs
import { getLocalizedUrl, Locales } from "intlayer";getLocalizedUrl( "/about", Locales.FRENCH, [Locales.ENGLISH, Locales.FRENCH], Locales.ENGLISH, false);// Output: "/fr/about" للغة الفرنسية// Output: "/about" للغة الافتراضية (الإنجليزية)
Absolute URLs
getLocalizedUrl( "https://example.com/about", Locales.FRENCH, // اللغة الحالية [Locales.ENGLISH, Locales.FRENCH], // اللغات المدعومة Locales.ENGLISH, // اللغة الافتراضية false // بادئة اللغة الافتراضية); // Output: "https://example.com/fr/about" للغة الفرنسيةgetLocalizedUrl( "https://example.com/about", Locales.ENGLISH, // اللغة الحالية [Locales.ENGLISH, Locales.FRENCH], // اللغات المدعومة Locales.ENGLISH, // اللغة الافتراضية false // بادئة اللغة الافتراضية); // Output: "https://example.com/about" للغة الإنجليزيةgetLocalizedUrl( "https://example.com/about", Locales.ENGLISH, // اللغة الحالية [Locales.ENGLISH, Locales.FRENCH], // اللغات المدعومة Locales.ENGLISH, // اللغة الافتراضية true // بادئة اللغة الافتراضية); // Output: "https://example.com/en/about" للغة الإنجليزية
Unsupported Locale
getLocalizedUrl( "/about", Locales.ITALIAN, // اللغة الحالية [Locales.ENGLISH, Locales.FRENCH], // اللغات المدعومة Locales.ENGLISH // اللغة الافتراضية); // Output: "/about" (لا توجد بادئة مضافة للغة غير المدعومة)
Edge Cases
No Locale Segment:
- إذا لم يحتوي عنوان URL على أي جزء من اللغة، تقوم الدالة بإضافة بادئة اللغة المناسبة بأمان.
Default Locale:
- عندما تكون prefixDefault تساوي false، لا تضيف الدالة بادئة إلى عنوان URL للغة الافتراضية.
Unsupported Locales:
- بالنسبة للغات التي لا ترد في locales، لا تضيف الدالة أي بادئة.
Usage in Applications
في تطبيق متعدد اللغات، يعتبر تكوين إعدادات التدويل باستخدام locales و defaultLocale أمرًا حاسمًا لضمان عرض اللغة الصحيحة. أدناه مثال على كيفية استخدام getLocalizedUrl في إعداد التطبيق:
import { Locales, type IntlayerConfig } from "intlayer";// تكوين اللغات المدعومة واللغة الافتراضيةexport default { internationalization: { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, },} satisfies IntlayerConfig;export default config;
تضمن الإعدادات أعلاه أن يتعرف التطبيق على ENGLISH و FRENCH و SPANISH كلغات مدعومة ويستخدم ENGLISH كلغة بديلة.
باستخدام هذا الإعداد، يمكن لدالة getLocalizedUrl إنشاء عناوين URL محلية ديناميكيًا بناءً على تفضيل لغة المستخدم:
getLocalizedUrl("/about", Locales.FRENCH); // Output: "/fr/about"getLocalizedUrl("/about", Locales.SPANISH); // Output: "/es/about"getLocalizedUrl("/about", Locales.ENGLISH); // Output: "/about"
من خلال دمج getLocalizedUrl، يمكن للمطورين الحفاظ على هياكل عناوين URL متسقة عبر عدة لغات، مما يعزز تجربة المستخدم وتحسين SEO.
إذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.
رابط GitHub للتوثيق