Menu
العربية

محوّل حالة الأحرف

حوّل النص بين camelCase و snake_case و kebab-case والمزيد.

Last updated

الإدخال4 كلمة
المخرجانقر على أي قيمة لنسخها
  • camelCasehelloWorldFromCoddy
  • PascalCaseHelloWorldFromCoddy
  • snake_casehello_world_from_coddy
  • CONSTANT_CASEHELLO_WORLD_FROM_CODDY
  • kebab-casehello-world-from-coddy
  • Train-CaseHello-World-From-Coddy
  • dot.casehello.world.from.coddy
  • path/casehello/world/from/coddy
  • حالة الجملةHello world from coddy
  • حالة العنوانHello World From Coddy
  • أحرف كبيرةHELLO WORLD FROM CODDY
  • أحرف صغيرةhello world from coddy

ما هو محوّل حالة الأحرف؟

محوّل حالة الأحرف يأخذ عبارة أو معرّفًا ويعيد كتابته بكل أنماط التسمية الشائعة: camelCase وPascalCase وsnake_case وkebab-case وCONSTANT_CASE وTitle Case وSentence case وغيرها. المطورون يستخدمونه باستمرار: عند إعادة هيكلة أسماء المتغيرات، وتوليد أسماء أعمدة قاعدة البيانات، وكتابة أسماء حقول API بما يتوافق مع دليل الأسلوب، وتحويل النص الذي يدخله المستخدم إلى slug للروابط.

كل بيئة تفضّل نمطًا مختلفًا. JavaScript وJava يميلان إلى camelCase، أمّا Python وRuby فيستخدمان snake_case، وكلاسات CSS وعناوين URL تستعمل kebab-case، بينما تكتب متغيرات البيئة والثوابت بـ CONSTANT_CASE. المحوّل يتيح لك قلب أي عبارة إلى النمط المناسب دون أن تعدّ الأحرف يدويًا في رأسك.

الجزء الصعب ليس إعادة الكتابة، بل *التقطيع إلى رموز* (tokenizing). على المحوّل أن يفكّك مدخلات مختلطة مثل XMLHttpRequest أو iOSDevice أو read_HTML5Tags إلى الكلمات الصحيحة أولًا، ثم يعيد دمجها بالنمط المختار. المحوّلات الذكية تتعامل مع الاختصارات (XML, iOS) والأرقام بشكل سليم.

ماذا ستتعلّم أثناء تحويل حالات الأحرف

  • كل مجتمع لغوي له النمط المفضّل عنده. اتّبع الاتفاقية المعتمدة في الكود الذي تعمل عليه.
  • التقطيع يفصل المدخلات المختلطة عند الأحرف الكبيرة، وعند الفواصل (_ - .)، وعند حدود الأرقام، قبل إعادة الدمج.
  • الاختصارات تجعل التحويل ملتبسًا: هل يجب أن يصبح XMLParser هو xmlParser أم xMLParser؟ اختر اتفاقية واحدة لمشروعك والتزم بها.

كيف تحوّل حالة النص خطوة بخطوة

  1. ألصق نصك

    أدخل عبارة واحدة، أو معرّفًا، أو حتى قائمة كاملة. لا مشكلة إن كان المدخل مختلطًا (camelCase وsnake_case ومسافات معًا).

  2. اقرأ كل الصيغ دفعة واحدة

    يعرض المحوّل المدخل بأكثر من 10 صيغ مختلفة. اختر الصيغة المستخدمة في مشروعك.

  3. اضبط الحالات الخاصة

    فعّل أو عطّل خيارات معالجة الاختصارات والأرقام والرموز الخاصة إذا كان دليل الأسلوب لديك يفرض قواعد محدّدة.

  4. انقر للنسخ

    اضغط على أي صيغة لنسخها مباشرةً إلى الحافظة. مفيد جدًا عند إعادة الهيكلة عبر عدة ملفات أو عند تعبئة مواصفات OpenAPI.

مرجع سريع لأنماط التسمية

هكذا تظهر العبارة نفسها بأكثر اتفاقيات التسمية شيوعًا.

النمطمثالأين يُستخدم
camelCaseuserNameمتغيرات JavaScript ودوال Java
PascalCaseUserNameأسماء الكلاسات في معظم اللغات، ومكونات React
snake_caseuser_namePython وRuby وأعمدة قواعد البيانات
SCREAMING_SNAKE_CASEUSER_NAMEالثوابت ومتغيرات البيئة
kebab-caseuser-nameالروابط، كلاسات CSS، خيارات الأوامر في الطرفية
Title CaseUser Nameالعناوين والتسميات
Sentence caseUser nameنصوص الواجهات والفقرات
Train-CaseUser-Nameترويسات HTTP (X-Request-Id)
dot.caseuser.nameمفاتيح الإعدادات والإعدادات بنطاقات
flatcaseusernameأسماء النطاقات وslug الحزم

أمثلة عملية للتحويل بين الحالات

تحويل عبارة بسيطة

المدخل

user profile photo

الصيغ الناتجة

camelCase: userProfilePhoto · PascalCase: UserProfilePhoto · snake_case: user_profile_photo · kebab-case: user-profile-photo · CONSTANT_CASE: USER_PROFILE_PHOTO

نفس الكلمات بخمسة أنماط مختلفة. اختر النمط الذي يناسب الملف الذي تعدّله.

تحويل متغيّر JS إلى Python

JavaScript
const accessTokenExpiresAt = ...;
Python
access_token_expires_at = ...

أغلب الفرق تحتفظ باسم موحّد في نموذج المجال، ثم تترجمه عند الحدود بين اللغات أو بين طبقات الـ API.

تحويل عنوان إلى slug للرابط

العنوان

10 Best Practices for REST APIs

Slug

10-best-practices-for-rest-apis

الـ slug هو kebab-case + أحرف صغيرة + رموز آمنة فقط. يصلح كجزء من الرابط وكاسم كلاس CSS في الوقت ذاته.

أخطاء شائعة عند تحويل الحالات

  • خلط أكثر من نمط داخل نفس الملف أو نفس الطبقة (userName وuser_name في نفس الموديول). اختر نمطًا واحدًا واجعل الـ linter يفرضه.
  • كتابة الاختصارات بشكل غير متّسق (XmlParser مقابل XMLParser). اتّخذ قرارًا واحدًا لكل مشروع والتزم به.
  • نسيان أن معرّفات قواعد البيانات تخضع أحيانًا لطيّ الحالة (case-folding) — فـ userName وusername قد يكونان نفس العمود في PostgreSQL لكن مختلفين في MySQL.

أسئلة شائعة حول محوّل الحالات

ما هو camelCase؟
camelCase يجعل الحرف الأول من كل كلمة كبيرًا باستثناء الكلمة الأولى، ويدمجها كلها بدون فواصل (accessTokenExpiresAt). هو النمط السائد للمتغيرات والدوال في JavaScript وJava.
ما هو snake_case؟
snake_case يجعل كل الحروف صغيرة ويفصل بين الكلمات بشرطة سفلية (access_token_expires_at). هو النمط المعتاد في Python وRuby وفي معظم أسماء أعمدة قواعد البيانات العلائقية.
ما الفرق بين PascalCase وcamelCase؟
كلاهما يجعل الحرف الأول من كل كلمة لاحقة كبيرًا. الفرق في الحرف الأول من العبارة: PascalCase يجعله كبيرًا (UserProfile)، أمّا camelCase فيتركه صغيرًا (userProfile). PascalCase مخصّص لأسماء الكلاسات ومكونات React في معظم البيئات.
كيف أحوّل نصًا إلى slug صالح للرابط؟
اجعل الحروف صغيرة، استبدل المسافات والشرَط السفلية بشرَط عادية (-)، أزل التشكيل واللهجات (ée)، واحذف أي رمز غير الحروف والأرقام والشُرَط. معظم محوّلات الحالات توفّر وضع slugify يقوم بكل هذا في خطوة واحدة.
هل أستخدم camelCase أم snake_case في مشروعي؟
اتّبع اللغة: camelCase لـ JavaScript وJava وSwift، وsnake_case لـ Python وRuby وRust. داخل المشروع الواحد، الالتزام بنمط ثابت أهم من الاختيار نفسه — وأي linter (ESLint أو Pylint أو Rubocop) قادر على فرضه عليك.

اعرف المزيد

أدوات مطورين أخرى

تعلّم البرمجة مع Coddy

ابدأ الآن