Case Converter

Case Converter

هر رشته را به‌صورت هم‌زمان به ۱۱ قرارداد نام‌گذاری تبدیل کنید — camelCase، PascalCase، snake_case، kebab-case و بیشتر. به‌علاوهٔ حالت دسته‌ای کلیدهای JSON که هر کلید را به‌صورت بازگشتی بازنویسی می‌کند. همه در مرورگر شما.

Case Converter — TL;DR

هر رشته را به‌صورت هم‌زمان به ۱۱ قرارداد نام‌گذاری تبدیل کنید — camelCase، PascalCase، snake_case، kebab-case و بیشتر. به‌علاوهٔ حالت دسته‌ای کلیدهای JSON که هر کلید را به‌صورت بازگشتی بازنویسی می‌کند. همه در مرورگر شما.

همه راه‌هایی برای نوشتن شناسه‌های چندکلمه‌ای (یا نام فایل، URL، کلاس CSS) بدون فاصله هستند. camelCase هر کلمه پس از اولی را با حرف بزرگ شروع می‌کند (`userFirstName`)، در JavaScript، Java، Swift استفاده می‌شود. snake_case همه را به حروف کوچک تبدیل و با خط زیر متصل می‌کند (`user_first_name`)، در Python، Ruby، SQL استفاده می‌شود. kebab-case از خط تیره استفاده می‌کند (`user-first-name`)، در CSS، HTML، slug های URL، پرچم‌های خط فرمان به کار می‌رود. PascalCase همان camelCase است که حرف اول هم بزرگ است (`UserFirstName`)، برای نام کلاس / نوع در بسیاری از زبان‌ها.

توکن‌ساز از دو قاعدهٔ مرز استفاده می‌کند: کوچک‌به‌بزرگ (`a` پس از `B` = تقسیم) و بزرگ‌سپس‌Title (یک رشته از حروف بزرگ که حرف کوچکی پس از آن می‌آید، پیش از آخرین حرف بزرگ تقسیم می‌شود). بنابراین `XMLHttpRequest` به `[XML, Http, Request]` → `xml_http_request` / `xmlHttpRequest` / `XmlHttpRequest` تبدیل می‌شود. `userIDToken` به `[user, ID, Token]` → `user_id_token` تبدیل می‌شود. این مطابق توصیهٔ بیشتر راهنماهای سبک زبان‌هاست.

شناسه‌ها و JSON هرگز از دستگاه شما خارج نمی‌شوند. DevTools → Network را باز کنید و در حین تبدیل یا کپی صفر درخواست خروجی خواهید دید.

یازده قرارداد نام‌گذاری، با یک جای‌گذاری

از camelCase / snake_case کلاسیک تا dot.case / path/case — به‌علاوهٔ حالت دسته‌ای کلیدهای JSON برای تغییر نام هر کلید در یک شیء تو در تو.

۱۱ سبک حالت، همه با هم

camelCase، PascalCase، snake_case، CONSTANT_CASE، kebab-case، COBOL-CASE، dot.case، path/case، Title Case، Sentence case، UPPERCASE، lowercase. یک‌بار جای‌گذاری کنید، همهٔ خروجی‌ها را در یک لحظه ببینید.

توکن‌سازی هوشمند

شناسه‌ها را در همهٔ سبک‌های ورودی به‌درستی تقسیم می‌کند — `XMLHttpRequest` → `xml_http_request`، `userIDToken` → `user_id_token`. مخفف‌ها، رقم‌ها و جداکننده‌های ترکیبی (_، -، .، /) را بدون اشتباه مدیریت می‌کند.

حالت دسته‌ای کلیدهای JSON

یک شیء JSON تو در تو را جای‌گذاری کنید و هر کلید را در سبک انتخابی شما — به‌صورت بازگشتی — بازنویسی کنید. به‌اختیار مقادیر رشته‌ای را نیز تبدیل کنید. آرایه‌ها، انواع و ساختار حفظ می‌شوند.

کپی با یک کلیک

هر ردیف خروجی دکمهٔ کپی مخصوص خود را دارد — کلیک کنید و مقدار در کلیپ‌بورد شماست. تأیید بصری؛ بدون انبوه پیام.

حریم خصوصی در طراحی

هر تبدیل با JavaScript روی دستگاه شما اجرا می‌شود. هیچ شناسه، JSON یا فعالیت کلیپ‌بوردی هرگز ارسال نمی‌شود. DevTools → Network را باز کنید و صفر درخواست خروجی را راستی‌آزمایی کنید.

کوچک + سریع

JavaScript خالص، بدون runtime فریم‌ورک. بارگذاری اولیه زیر ۲۵ کیلوبایت gzip شده. هر ۱۱ تبدیل برای هر رشته در کمتر از ۱ میلی‌ثانیه تمام می‌شود.

چگونه از تبدیل‌گر استفاده کنیم

دو حالت — رشتهٔ تکی و دسته‌ای کلیدهای JSON.

  1. 1

    حالت را انتخاب کنید

    رشتهٔ تکی برای یک شناسه یا عبارت — یک‌بار تایپ / جای‌گذاری کنید، هر ۱۱ خروجی حالت را ببینید. کلیدهای JSON (دسته‌ای) هنگامی که نیاز دارید هر کلید در یک پاسخ API تو در تو یا فایل پیکربندی را تبدیل کنید.

  2. 2

    ورودی خود را جای‌گذاری کنید

    حالت رشتهٔ تکی هر ورودی را می‌پذیرد — `userFirstName`، `user_first_name`، `user-first-name`، `USER FIRST NAME`، حتی `XMLHttpRequest`. توکن‌ساز آن را به‌درستی تقسیم می‌کند و برای هر سبک خروجی دوباره به هم می‌چسباند. حالت JSON هر شیء JSON معتبر را می‌پذیرد — عمق آن مهم نیست.

  3. 3

    یک سبک هدف انتخاب کنید

    در حالت رشتهٔ تکی، هر ۱۱ خروجی هم‌زمان ظاهر می‌شوند — هر کدام را که نیاز دارید بردارید. در حالت JSON، یک حالت هدف از فهرست کشویی انتخاب کنید؛ هر کلید در شیء در آن سبک بازنویسی می‌شود.

  4. 4

    کپی و جای‌گذاری

    روی آیکون کپی کنار هر ردیف خروجی کلیک کنید تا به کلیپ‌بورد ارسال شود. برای خروجی JSON، کل بلوک نتیجه را کپی کنید — مستقیماً در کدبیس یا کلاینت API خود قرار دهید.

ساخته‌شده برای code review، refactor و pipe کردن API

چهار سناریوی رایج که در آن‌ها یک‌بار جای‌گذاری و دریافت همهٔ سبک‌ها بهتر از تغییر نام دستی است.

مرز Backend ↔ Frontend

Backend به شما `user_first_name` می‌دهد؛ frontend `userFirstName` می‌خواهد. جای‌گذاری، کپی، جای‌گذاری — تمام. از حالت دسته‌ای JSON برای تبدیل هر کلید در یک پاسخ نمونهٔ API در یک گام استفاده کنید (سپس قالب codegen را بر اساس نتیجه بنویسید).

Refactor بین زبان‌ها

در حال انتقال یک کتابخانهٔ Python به JavaScript هستید؟ شناسه‌های snake_case منبع Python را برگیرید و آن‌ها را از خروجی camelCase عبور دهید. نتیجه را در port JS خود قرار دهید. توکن‌ساز هوشمند `__double_underscore` و رقم‌های انتهایی را بدون شکستن مدیریت می‌کند.

متغیرهای ENV ↔ پیکربندی runtime

یک `MY_AWESOME_FEATURE_FLAG` (قرارداد متغیر env) را به `myAwesomeFeatureFlag` (متغیر JS) یا `my_awesome_feature_flag` (Python) تبدیل کنید. رفت‌وبرگشت CONSTANT_CASE / camelCase / snake_case دقیق است.

نام‌گذاری CSS / فایل

BEM به kebab-case نیاز دارد: `.user-card__avatar--large`. یک نام متغیر JS از یک طراح گرفته‌اید (`userCardAvatarLarge`)؟ در یک گام تبدیل کنید. برای ابزارهای Tailwind، نام‌های پکیج npm، slug های URL و نام‌های پرچم CLI مفید است — همگی kebab-case را ترجیح می‌دهند.

۱۰۰٪ خصوصی — در مرورگر شما اجرا می‌شود

شناسه‌ها و JSON هرگز از دستگاه شما خارج نمی‌شوند. DevTools → Network را باز کنید و در حین تبدیل یا کپی صفر درخواست خروجی خواهید دید.

  • تمام توکن‌سازی، تبدیل حالت و پیمایش JSON به‌صورت JavaScript روی دستگاه شما اجرا می‌شود — در سورس صفحه قابل مشاهده است.
  • نوشتن در کلیپ‌بورد از API استاندارد navigator.clipboard.writeText استفاده می‌کند؛ هیچ چیز log نمی‌شود.
  • بدون ورود، بدون telemetry روی مقادیر شناسه، بدون API شخص ثالث. ما فقط از یک cookie برای وضعیت رضایت کوکی و یکی برای ترجیح زبان استفاده می‌کنیم.

راهنماهای مرتبط

مطالب دست‌چین‌شده دربارهٔ قراردادهای نام‌گذاری، طراحی API و refactor.

پرسش‌های پرتکرار

تفاوت camelCase، snake_case و kebab-case چیست؟

همه راه‌هایی برای نوشتن شناسه‌های چندکلمه‌ای (یا نام فایل، URL، کلاس CSS) بدون فاصله هستند. camelCase هر کلمه پس از اولی را با حرف بزرگ شروع می‌کند (`userFirstName`)، در JavaScript، Java، Swift استفاده می‌شود. snake_case همه را به حروف کوچک تبدیل و با خط زیر متصل می‌کند (`user_first_name`)، در Python، Ruby، SQL استفاده می‌شود. kebab-case از خط تیره استفاده می‌کند (`user-first-name`)، در CSS، HTML، slug های URL، پرچم‌های خط فرمان به کار می‌رود. PascalCase همان camelCase است که حرف اول هم بزرگ است (`UserFirstName`)، برای نام کلاس / نوع در بسیاری از زبان‌ها.

توکن‌ساز هوشمند چگونه با مخفف‌ها برخورد می‌کند؟

توکن‌ساز از دو قاعدهٔ مرز استفاده می‌کند: کوچک‌به‌بزرگ (`a` پس از `B` = تقسیم) و بزرگ‌سپس‌Title (یک رشته از حروف بزرگ که حرف کوچکی پس از آن می‌آید، پیش از آخرین حرف بزرگ تقسیم می‌شود). بنابراین `XMLHttpRequest` به `[XML, Http, Request]` → `xml_http_request` / `xmlHttpRequest` / `XmlHttpRequest` تبدیل می‌شود. `userIDToken` به `[user, ID, Token]` → `user_id_token` تبدیل می‌شود. این مطابق توصیهٔ بیشتر راهنماهای سبک زبان‌هاست.

حالت دسته‌ای کلیدهای JSON چه می‌کند؟

یک شیء JSON — حتی به‌شدت تو در تو — را جای‌گذاری کنید و یک سبک حالت هدف را انتخاب کنید. این ابزار کل درخت را به‌صورت عمق‌اول می‌پیماید، هر کلید (از جمله کلیدهای داخل آرایه‌ها) را تبدیل می‌کند و JSON بازسازی‌شده را خروجی می‌دهد. آرایه‌ها، انواع (number / boolean / null) و ساختار دقیقاً حفظ می‌شوند. گزینهٔ «تبدیل مقادیر رشته‌ای نیز» را فعال کنید تا محتوای هر فیلد رشته‌ای نیز از طریق همان توکن‌ساز بازنویسی شود.

برای پروژه‌ام از کدام قرارداد استفاده کنم؟

ابتدا از قرارداد غالب زبان خود پیروی کنید، سپس از تیم. به‌طور پیش‌فرض: camelCase برای JS / Java / Swift / Kotlin / Go (نام‌های صادرشده از PascalCase استفاده می‌کنند)، snake_case برای Python / Ruby / Rust / ستون‌های SQL، kebab-case برای کلاس‌های CSS / ویژگی‌های HTML / مسیرهای URL / پکیج‌های npm / پرچم‌های CLI، SCREAMING_SNAKE_CASE برای متغیرهای محیطی و ثابت‌های زبان. هنگام تبدیل بین لایه‌ها (snake_case API → camelCase frontend)، یک مرز مشخص انتخاب کنید و بقیهٔ سیستم را یکدست نگه دارید.

آیا چیزی به سرور شما ارسال می‌شود؟

خیر. توکن‌سازی، هر تبدیل و حالت دسته‌ای کلیدهای JSON همگی به‌صورت JavaScript در مرورگر شما اجرا می‌شوند. DevTools → Network را باز کنید و در حین استفاده صفر درخواست خروجی خواهید دید. ما از یک cookie برای وضعیت رضایت کوکی و یکی برای ترجیح زبان استفاده می‌کنیم، همین.