محوّل الحالة

حوّل النص بين الأحرف الكبيرة والصغيرة وحالة العنوان و camelCase و snake_case والمزيد

جرب مثالاً

الإدخال

الناتج

يعمل محليًا · آمن للصق الأسرار
سيظهر النص المحوّل هنا…

ما هو تحويل حالة النص؟

تحويل حالة النص هو عملية تغيير نمط كتابة الأحرف أو فصل الكلمات في سلسلة نصية. يأخذ محوّل الحالة نصاً مثل "hello world" ويحوّله إلى UPPERCASE أو lowercase أو Title Case أو camelCase أو snake_case أو kebab-case أو اصطلاحات أخرى. التحويل مباشر مع النصوص البسيطة في ASCII، لكن حالات استثنائية تظهر مع الاختصارات ("XMLParser")، والقواعد الخاصة بالإعدادات المحلية (حرف I التركي بالنقطة)، والنصوص المختلطة.

تفرض لغات البرمجة وأنظمة الملفات وأدلة الأسلوب كلٌّ منها اصطلاحات تسمية خاصة بها. متغيرات JavaScript تستخدم عادةً camelCase. دوال Python ومتغيراتها تتبع snake_case وفق PEP 8. أسماء فئات CSS تستخدم kebab-case. أعمدة قواعد البيانات تتفاوت من فريق لآخر، لكن snake_case يسود في PostgreSQL وMySQL. التبديل يدوياً بين هذه الاصطلاحات بطيء وعرضة للأخطاء، خاصةً عند إعادة التسمية عبر عشرات الملفات.

اصطلاحات الحالة مهمة أيضاً خارج نطاق الكود. تتبع Title Case قواعد محددة في أدلة الأسلوب كـChicago Manual of Style وAPA، حيث تبقى الأدوات والحروف الجارة القصيرة بأحرف صغيرة ما لم تكن في بداية الجملة. أما Sentence case فتكتب الحرف الأول من الجملة والأسماء العلم فقط بأحرف كبيرة. تُفضّل الكتابة باللغة الإنجليزية الأمريكية استخدام Title Case في العناوين؛ بينما تستخدم معظم الوثائق الأوروبية والتقنية Sentence case.

لماذا تستخدم محوّل الحالة هذا؟

الصق أي نص وحوّله فوراً بين تسعة تنسيقات للحالة، دون تثبيت امتداد VS Code أو كتابة سكريبت مخصص.

تحويل فوري
اختر تنسيق الحالة وشاهد النتيجة فوراً. لا انتظار للخادم، لا تأخير. بدّل بين التنسيقات لمقارنة المخرجات جنباً إلى جنب.
🔒
معالجة تحافظ على الخصوصية
تعمل جميع التحويلات في متصفحك باستخدام JavaScript. نصك يبقى على جهازك. لا شيء يُرسل إلى خادم أو يُخزّن في أي مكان.
🔄
تسعة تنسيقات في أداة واحدة
UPPERCASE وlowercase وTitle Case وSentence case وcamelCase وPascalCase وsnake_case وkebab-case وCONSTANT_CASE. إدخال واحد يغطي كل اصطلاح شائع.
🌍
لا حساب مطلوب
افتح الصفحة وابدأ التحويل. لا تسجيل، لا امتداد متصفح، لا تثبيت على سطح المكتب. يعمل على أي جهاز بمتصفح حديث.

حالات استخدام محوّل الحالة

تطوير الواجهة الأمامية
حوّل أسماء خصائص المكوّنات من استجابات API بصيغة snake_case إلى camelCase لكائنات JavaScript. أعد تسمية فئات CSS من camelCase إلى kebab-case عند الانتقال إلى نظام تسمية BEM أو utility-first.
تصميم واجهة برمجة التطبيقات الخلفية
ترجم أسماء الحقول بين الاصطلاحات عند تعيين أعمدة قواعد البيانات (snake_case) إلى مفاتيح استجابة JSON (camelCase). تحقق من أن طبقات التسلسل تُنتج تنسيق المخرجات المتوقع.
DevOps والبنية التحتية
أنشئ أسماء متغيرات البيئة بصيغة CONSTANT_CASE من العبارات الوصفية. حوّل أسماء موارد Terraform بين snake_case وkebab-case عند التوافق مع أدلة أسلوب الفريق.
ضمان الجودة وأتمتة الاختبار
جهّز بيانات اختبار ثابتة بأسماء حقول بحالة صحيحة. اكتشف تعارضات الحالة بين عقود API وتوقعات العميل قبل وصولها إلى الإنتاج.
هندسة البيانات
طبّع رؤوس الأعمدة عند استيراد ملفات CSV أو Excel إلى قاعدة بيانات. حوّل الرؤوس المختلطة مثل "First Name" إلى أعمدة snake_case مثل "first_name" لتصميم مخطط بيانات متسق.
الكتابة التقنية والتوثيق
نسّق مراجع الكود في التوثيق بحالة صحيحة. حوّل الأوصاف بالإنجليزية العادية إلى أسماء فئات PascalCase أو مسارات URL بصيغة kebab-case للاتساق في المواصفات التقنية.

مرجع اصطلاحات الحالة

لكل اصطلاح تسمية قواعد محددة للكتابة بالأحرف الكبيرة وفصل الكلمات. يعرض الجدول أدناه التسعة تنسيقات التي تدعمها هذه الأداة، مع العبارة "the quick brown fox" كمرجع.

الحالةالقاعدةمثال
UPPERCASEEvery letter capitalizedTHE QUICK BROWN FOX
lowercaseEvery letter lowercasedthe quick brown fox
Title CaseFirst letter of each word capitalizedThe Quick Brown Fox
Sentence caseFirst letter of each sentence capitalizedThe quick brown fox
camelCaseNo separators, first word lowercasetheQuickBrownFox
PascalCaseNo separators, every word capitalizedTheQuickBrownFox
snake_caseWords joined by underscores, all lowercasethe_quick_brown_fox
kebab-caseWords joined by hyphens, all lowercasethe-quick-brown-fox
CONSTANT_CASEWords joined by underscores, all uppercaseTHE_QUICK_BROWN_FOX

camelCase مقابل snake_case مقابل kebab-case

تسود هذه الاصطلاحات الثلاثة في تطوير البرمجيات، لكن كلاً منها ينتمي إلى بيئة مختلفة. اختيار الاصطلاح الخاطئ يُعطّل أدوات الفحص، يُخل بعقود API، أو ينتج قواعد كود غير متسقة.

camelCase
المعيار لمتغيرات JavaScript وTypeScript وأسماء الدوال ومفاتيح الكائنات. تستخدمه Java وC# للمتغيرات المحلية ومعامِلات الدوال. واجهات برمجة التطبيقات JSON المبنية لعملاء JavaScript تستخدم عادةً مفاتيح camelCase. الكلمة الأولى بأحرف صغيرة؛ كل كلمة تالية تبدأ بحرف كبير.
snake_case
الافتراضي في Python (PEP 8) وRuby وRust ومعظم قواعد بيانات SQL. دوال مكتبة C القياسية تتبع هذا النمط أيضاً. تُفصل الكلمات بشرطات سفلية، كلها بأحرف صغيرة. CONSTANT_CASE (كل أحرف كبيرة مع شرطات سفلية) هو المتغير المستخدم للثوابت ومتغيرات البيئة.
kebab-case
المعيار لأسماء فئات CSS وسمات HTML ومسارات URL وأسماء خيارات سطر الأوامر (--output-dir). شائع في Lisp وClojure. تُفصل الكلمات بواصلات، كلها بأحرف صغيرة. معظم لغات البرمجة لا تسمح بالواصلات في المعرّفات، لذا يقتصر kebab-case على السلاسل النصية وأسماء الملفات والترميز.

أمثلة برمجية

كيفية التحويل بين اصطلاحات الحالة برمجياً. يغطي كل مثال أكثر التحويلات شيوعاً: من camelCase إلى snake_case، ومن snake_case إلى camelCase، والتحويلات الأساسية للأحرف الكبيرة والصغيرة وحالة العنوان.

JavaScript
// camelCase → snake_case
function toSnakeCase(str) {
  return str
    .replace(/([a-z])([A-Z])/g, '$1_$2')
    .replace(/[\s-]+/g, '_')
    .toLowerCase()
}
toSnakeCase('myVariableName')  // → "my_variable_name"
toSnakeCase('kebab-case-str')  // → "kebab_case_str"

// snake_case → camelCase
function toCamelCase(str) {
  return str
    .toLowerCase()
    .replace(/[_-](\w)/g, (_, c) => c.toUpperCase())
}
toCamelCase('my_variable_name')  // → "myVariableName"

// Title Case
function toTitleCase(str) {
  return str.replace(/\w\S*/g, w =>
    w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()
  )
}
toTitleCase('the quick brown fox')  // → "The Quick Brown Fox"
Python
import re

text = "the quick brown fox"

# UPPERCASE / lowercase
text.upper()  # → "THE QUICK BROWN FOX"
text.lower()  # → "the quick brown fox"

# Title Case
text.title()  # → "The Quick Brown Fox"

# camelCase
def to_camel(s):
    words = re.split(r'[\s_-]+', s)
    return words[0].lower() + ''.join(w.capitalize() for w in words[1:])

to_camel("my_variable_name")  # → "myVariableName"

# snake_case from camelCase
def to_snake(s):
    return re.sub(r'([a-z])([A-Z])', r'\1_\2', s).lower()

to_snake("myVariableName")  # → "my_variable_name"

# kebab-case
def to_kebab(s):
    return re.sub(r'([a-z])([A-Z])', r'\1-\2', s).replace('_', '-').lower()

to_kebab("myVariableName")  # → "my-variable-name"
Go
package main

import (
	"fmt"
	"regexp"
	"strings"
)

// camelCase → snake_case
func toSnake(s string) string {
	re := regexp.MustCompile("([a-z])([A-Z])")
	snake := re.ReplaceAllString(s, "${1}_${2}")
	return strings.ToLower(snake)
}

// snake_case → camelCase
func toCamel(s string) string {
	parts := strings.Split(strings.ToLower(s), "_")
	for i := 1; i < len(parts); i++ {
		parts[i] = strings.Title(parts[i])
	}
	return strings.Join(parts, "")
}

func main() {
	fmt.Println(toSnake("myVariableName"))  // → my_variable_name
	fmt.Println(toCamel("my_variable_name")) // → myVariableName
	fmt.Println(strings.ToUpper("hello"))    // → HELLO
	fmt.Println(strings.ToUpper("hello world")) // → HELLO WORLD
}
CLI (bash / sed)
# UPPERCASE
echo "hello world" | tr '[:lower:]' '[:upper:]'
# → HELLO WORLD

# lowercase
echo "HELLO WORLD" | tr '[:upper:]' '[:lower:]'
# → hello world

# camelCase → snake_case (using sed)
echo "myVariableName" | sed 's/\([a-z]\)\([A-Z]\)/\1_\2/g' | tr '[:upper:]' '[:lower:]'
# → my_variable_name

# snake_case → kebab-case
echo "my_variable_name" | tr '_' '-'
# → my-variable-name

أسئلة شائعة

ما الفرق بين camelCase وPascalCase؟
يبدأ camelCase بحرف صغير (myVariable)، بينما يبدأ PascalCase بحرف كبير (MyVariable). في JavaScript، يُستخدم camelCase للمتغيرات والدوال؛ وPascalCase لأسماء الفئات ومكوّنات React. في C# يُستخدم PascalCase للدوال والخصائص العامة. الفرق الهيكلي الوحيد هو الحرف الأول.
كيف أحوّل camelCase إلى snake_case في JavaScript؟
أدخل شرطة سفلية قبل كل حرف كبير باستخدام تعبير نمطي، ثم حوّل الناتج إلى أحرف صغيرة: str.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase(). هذا يُعالج camelCase القياسي. للسلاسل ذات الأحرف الكبيرة المتتالية مثل "XMLParser"، تحتاج إلى تمرير إضافي بتعبير نمطي آخر لتقسيم مجموعات الأحرف الكبيرة بشكل صحيح.
لماذا يستخدم Python snake_case بدلاً من camelCase؟
اختار PEP 8، دليل الأسلوب الرسمي لـPython الصادر عام 2001، snake_case للدوال والمتغيرات لأن Guido van Rossum وفريق المطوّرين الأساسيين رأوا أنه أسهل قراءةً للوهلة الأولى. وجدت دراسات كدراسة Binkley وآخرين (2009) أن المعرّفات بصيغة snake_case تُعرَّف بسرعة أكبر من قِبل المبرمجين مقارنةً بـcamelCase في مهام القراءة المعينة. يُطبّق هذا الاصطلاح أدواتُ الفحص مثل flake8 وpylint.
هل Title Case هو نفسه كتابة كل كلمة بحرف كبير؟
تكتب Title Case البسيطة الحرف الأول من كل كلمة بحرف كبير، وهذا ما تفعله هذه الأداة. أما Title Case الرسمية (وفق AP وChicago وAPA) فلها قواعد إضافية: تبقى أدوات التعريف (a, an, the) وحروف الربط القصيرة (and, but, or) والحروف الجارة القصيرة (in, on, at) بأحرف صغيرة ما لم تكن الكلمة الأولى أو الأخيرة. تطبيق Title Case الرسمي يتطلب بحثاً في قاموس، وليس مجرد تحويلاً على مستوى الأحرف.
هل تدعم هذه الأداة Unicode والنصوص غير اللاتينية؟
تستخدم الأداة الدوال المدمجة في JavaScript وهي toUpperCase() وtoLowerCase() التي تتبع قواعد الحالة في معيار Unicode (الفصل 3، القسم 3.13). يُعالج هذا بشكل صحيح الأحرف المشكّلة (e إلى E) والحرف الألماني eszett (ss إلى SS) والحروف اليونانية. غير أن القواعد الخاصة بالإعدادات المحلية كالحالة التركية (حيث يجب أن يُحوّل حرف i الصغير إلى İ بنقطة، لا I) تعتمد على إعداد اللغة في المتصفح، لا على الأداة نفسها.
ما استخدام CONSTANT_CASE؟
يُستخدم CONSTANT_CASE (المعروف أيضاً بـSCREAMING_SNAKE_CASE) للثوابت ومتغيرات البيئة. في JavaScript: const MAX_RETRIES = 3. في Python: MAX_RETRIES = 3 (بالاتفاق، إذ لا ثوابت حقيقية في Python). في سكريبتات الشل: export DATABASE_URL=.... يُشير الأسلوب بالأحرف الكبيرة الكاملة إلى أن القيمة لا ينبغي إعادة تعيينها بعد التهيئة.
كيف أختار اصطلاح الحالة المناسب لمشروعي؟
اتّبع الاصطلاح السائد للغتك وإطار عملك. JavaScript/TypeScript: camelCase للمتغيرات، وPascalCase للفئات والمكوّنات. Python: snake_case للدوال والمتغيرات، وPascalCase للفئات. CSS: kebab-case. SQL: snake_case للأعمدة والجداول. مفاتيح JSON لواجهات REST: طابق لغة الواجهة الأمامية (camelCase لعملاء JS، وsnake_case لعملاء Python). عند الشك، تحقق من إعدادات أداة الفحص أو ملف .editorconfig في جذر مشروعك.