§

টেক্সট পেস্ট করুন

§

সকল কেস

text
  • camelCase
  • PascalCase
  • snake_case
  • CONSTANT_CASE
  • kebab-case
  • dot.case
  • path/case
  • Title Case
  • Sentence case
  • lower case
  • UPPER CASE

বাংলাদেশ ও পশ্চিমবঙ্গের ডেভেলপাররা JavaScript প্রজেক্টে camelCase, Python ব্যাকএন্ডে snake_case এবং REST API রুটে kebab-case ব্যবহার করেন। এক কোডবেস থেকে অন্যটিতে কাজ করার সময় বা JSON পেলোড থেকে Python ডিকশনারি কী রূপান্তর করার সময় এই টুল প্রতিটি কেস একসাথে দেখায় — একটি পেস্টেই সব।

টেক্সট কেস রূপান্তর কী?

টেক্সট কেস রূপান্তর একটি ইনপুট স্ট্রিং নিয়ে একই শব্দগুলোকে ভিন্ন অক্ষর-কেস কনভেনশনে রেন্ডার করে। সবচেয়ে সাধারণ লক্ষ্যগুলো হলো camelCase এবং PascalCase (বেশিরভাগ কার্লি-ব্রেস ভাষায় আইডেন্টিফায়ারের জন্য), snake_case এবং CONSTANT_CASE (Python, Ruby, Rust, C ম্যাক্রো), kebab-case (URL, CSS ক্লাস নাম, HTML অ্যাট্রিবিউট, npm প্যাকেজ নাম), dot.case (কনফিগারেশন কী, JavaScript অবজেক্ট পাথ), path/case (ফাইলসিস্টেম-স্টাইল আইডেন্টিফায়ার), Title Case এবং Sentence case (হেডলাইন এবং প্রোজ), এছাড়া পূর্ণ lower case এবং UPPER CASE। এই কনভার্টার আপনার ইনপুটে প্রাকৃতিক শব্দ সীমানা শনাক্ত করে — হোয়াইটস্পেস, হাইফেন, আন্ডারস্কোর, ডট, স্ল্যাশ এবং helloWorld-স্টাইল আইডেন্টিফায়ার চিহ্নিত করে লোয়ারকেস→আপারকেস ট্রানজিশন — এবং প্রতিটি টার্গেট কেসের প্রয়োজনীয় বিভাজক ও ক্যাপিটালাইজেশন প্যাটার্ন দিয়ে পুনর্মিলন করে।

কেস রূপান্তর কীভাবে কাজ করে?

আপনার ইনপুট একটি ছোট ভ্যানিলা-JavaScript টোকেনাইজার এবং এগারোটি কেস ফরম্যাটার ব্যবহার করে সম্পূর্ণ আপনার ব্রাউজারে প্রক্রিয়া করা হয়। উচ্চ-স্তরের ধাপগুলো হলো:

  1. আপনার ইনপুট textarea থেকে হুবহু পড়া হয় — আপনি যে প্রতিটি বাইট পেস্ট করেছেন তা স্থানীয়ভাবে মেমরিতে রাখা হয়।
  2. একটি টোকেনাইজার ইনপুটকে হোয়াইটস্পেস, আন্ডারস্কোর, হাইফেন, ডট এবং স্ল্যাশে বিভক্ত করে, তারপর প্রতিটি অংশকে লোয়ারকেস→আপারকেস সীমানায় আরও বিভক্ত করে (তাই helloWorld হয় ["hello", "World"]) এবং অক্ষর↔সংখ্যা সীমানায় (তাই v2API হয় ["v", "2", "API"])।
  3. খালি টোকেন ফিল্টার করা হয় এবং বাকি টোকেনগুলো String.prototype.toLocaleLowerCase ব্যবহার করে লোয়ারকেস করা হয় যাতে তুর্কি, জার্মান এবং অন্যান্য লোকেলের Unicode অক্ষর সঠিকভাবে সংরক্ষিত হয়।
  4. এগারোটি ফরম্যাটার তখন টোকেনগুলোকে প্রতিটি টার্গেট কেসে একত্রিত করে — camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case, path/case, Title Case (একটি ছোট-শব্দ তালিকা সহ যাতে and, the, of ইত্যাদি প্রথম বা শেষ শব্দ ছাড়া লোয়ারকেস থাকে), Sentence case, পূর্ণ lower case এবং পূর্ণ UPPER CASE।
  5. ফলাফল গ্রিডে প্রতিটি কেসের জন্য একটি সারিতে আউটপুট লেখা হয়; প্রতিটি সারিতে নিজস্ব কপি বাটন রয়েছে যা পুরনো ব্রাউজারের জন্য সমকালীন document.execCommand('copy') ফলব্যাক সহ অ্যাসিঙ্ক্রোনাস Clipboard API ব্যবহার করে।

কেন কেস কনভার্টার ব্যবহার করবেন?

  • আইডেন্টিফায়ার রিফ্যাক্টর করুন: একটি JavaScript ভেরিয়েবল user_id থেকে userId-এ, একটি Python ফাংশন helloWorld থেকে hello_world-এ, বা একটি Rust কনস্ট্যান্ট maxBuffer থেকে MAX_BUFFER-এ একটি করে অক্ষর সম্পাদনা না করে রিনেম করুন।
  • কনফিগারেশন কী রূপান্তর করুন: একটি JSON কনফিগের সব camelCase কী একটি Python সার্ভিসের জন্য snake_case YAML-এ বা একটি Helm চার্টের জন্য kebab-case-এ একটি পেস্টেই ফ্লিপ করুন।
  • হেডলাইন লিখুন: একটি ড্রাফট হেডলাইন পেস্ট করুন এবং Title Case ফর্ম (Chicago Manual of Style ছোট-শব্দ ব্যতিক্রম সহ) Sentence case ফর্মের পাশে (AP Stylebook) পড়ুন — আপনার প্রকাশনা যেটি ব্যবহার করে সেটি বেছে নিন।
  • URL স্লাগ তৈরি করুন: একটি ব্লগ পোস্টের শিরোনাম পেস্ট করুন এবং kebab-case ফর্মটি সরাসরি আপনার CMS-এর স্লাগ ফিল্ডে কপি করুন — টোকেনাইজার বিভাজক না রেখে বিরাম চিহ্ন ও বহু-শব্দের বাক্যাংশ পরিচালনা করে।

কেস রূপান্তরের সাধারণ প্রয়োগ কী কী?

অক্ষর-কেস কনভেনশনের মধ্যে পরিবর্তন সফটওয়্যার ইঞ্জিনিয়ারিং, কন্টেন্ট অথরিং এবং ডেটা ইঞ্জিনিয়ারিং জুড়ে দেখা যায়:

  • কোড রিফ্যাক্টরিং: স্টাইল গাইড পরিবর্তন হলে কোডবেস জুড়ে আইডেন্টিফায়ার রিনেম করুন (যেমন ব্যাকএন্ড রিরাইটের সময় JavaScript camelCase → Python snake_case) টাইপো ছাড়াই।
  • API পেলোড পুনর্গঠন: camelCase JSON কী Ruby on Rails বা Django ব্যাকএন্ডে পাঠানোর আগে snake_case-এ রূপান্তর করুন, বা CSS-in-JS ক্লাস নামের জন্য kebab-case-এ।
  • হেডলাইন ও স্লাগ অথরিং: একই উৎস হেডলাইন থেকে এক ধাপে Title Case পেজ শিরোনাম, Sentence case মেটা বিবরণ এবং kebab-case URL স্লাগ তৈরি করুন।

কেস রূপান্তরের উদাহরণ কেমন দেখায়?

ইনপুটে Hello World API পেস্ট করুন। ফলাফল গ্রিড একসাথে এগারোটি সারি রেন্ডার করে: helloWorldApi (camelCase), HelloWorldApi (PascalCase), hello_world_api (snake_case), HELLO_WORLD_API (CONSTANT_CASE), hello-world-api (kebab-case), hello.world.api (dot.case), hello/world/api (path/case), Hello World Api (Title Case), Hello world api (Sentence case), hello world api (lower case) এবং HELLO WORLD API (UPPER CASE)। helloWorldAPI হিসেবে পেস্ট করা একই ইনপুট একই তিনটি শব্দে টোকেনাইজ হয় — লোয়ারকেস→আপারকেস বাউন্ডারি ডিটেক্টর সেই আকৃতিও পরিচালনা করে।

এটি কি আমার ব্রাউজারে চলে?

হ্যাঁ। টোকেনাইজার এবং এগারোটি কেস ফরম্যাটার প্রায় ১২০ লাইনের ভ্যানিলা JavaScript যা ব্রাউজার ট্যাবের ভেতরে চলে। কিছুই আপলোড হয় না, কোনো সার্ভিস ওয়ার্কার আপনার ইনপুট প্রক্সি করে না এবং রূপান্তর ধাপে পেজ শূন্য নেটওয়ার্ক অনুরোধ করে। একমাত্র আউটবাউন্ড ট্রাফিক হলো স্ট্যান্ডার্ড পেজ-লোড অ্যাসেট (CSS, ফন্ট, অ্যানালিটিক্স) — আপনার টেক্সট কখনও Ultim8Soft-এ পৌঁছায় না।

ভেরিয়েবল নামের জন্য কোন কেস ফরম্যাট ব্যবহার করব?

এটি ভাষা এবং দলের স্টাইল গাইডের উপর নির্ভর করে। JavaScript এবং TypeScript কোডবেস ভেরিয়েবল ও ফাংশনের জন্য camelCase, ক্লাস ও React কম্পোনেন্টের জন্য PascalCase এবং এনভায়রনমেন্ট-ভেরিয়েবল নাম ও মডিউল-স্তরের কনস্ট্যান্টের জন্য CONSTANT_CASE ব্যবহার করে — Google JavaScript স্টাইল গাইড এবং Airbnb স্টাইল গাইড উভয়ই সেই পছন্দগুলো নির্ধারণ করে। Python (PEP 8), Ruby এবং Rust ভেরিয়েবল ও ফাংশনের জন্য snake_case, ক্লাসের জন্য PascalCase এবং মডিউল-স্তরের কনস্ট্যান্টের জন্য CONSTANT_CASE পছন্দ করে। C এবং C++ কোডবেস ফাংশনের জন্য snake_case এবং প্রিপ্রসেসর ম্যাক্রোর জন্য CONSTANT_CASE-এ ঝোঁকে। সন্দেহ থাকলে আপনার দলের লিন্টার বা ফরম্যাটার চালান — এটি আপনাকে বলবে কোন কনভেনশন প্রয়োগ করা হয়েছে।

ইনপুট কীভাবে টোকেনাইজ হয়?

টোকেনাইজার প্রথমে ইনপুটকে যেকোনো হোয়াইটস্পেস, আন্ডারস্কোর (_), হাইফেন (-), ডট (.) বা স্ল্যাশ (/)-এর রানে বিভক্ত করে। প্রতিটি ফলাফল অংশ তারপর লোয়ারকেস→আপারকেস সীমানায় আবার বিভক্ত হয় (তাই helloWorld হয় ["hello", "World"]) এবং অক্ষর↔সংখ্যা সীমানায় (তাই v2API হয় ["v", "2", "API"])। খালি টোকেন ফিল্টার করা হয় এবং বাকি টোকেনগুলো String.prototype.toLocaleLowerCase দিয়ে লোয়ারকেস করা হয়। ফরম্যাটাররা তখন টোকেনগুলো পুনরায় ক্যাপিটালাইজ করে এবং প্রতিটি টার্গেট কেসের প্রয়োজনীয় বিভাজক দিয়ে পুনর্মিলন করে। কৌশলটি সব ছয়টি সাধারণ আইডেন্টিফায়ার আকৃতি — camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE এবং সাধারণ স্পেস-বিভক্ত প্রোজ — বাক্সের বাইরে পরিচালনা করে।

Unicode / non-ASCII অক্ষর সম্পর্কে কী?

Unicode অক্ষর রাউন্ড ট্রিপে টিকে থাকে। টোকেনাইজার String.prototype.toLocaleLowerCase এবং toLocaleUpperCase ব্যবহার করে, যা লোকেল-নির্দিষ্ট কেসিং নিয়ম মান্য করে — তুর্কি ডটেড বনাম ডটলেস i, জার্মান ß আপার-কেসিং SS-এ, ফরাসি ও স্প্যানিশে অ্যাকসেন্টেড ল্যাটিন অক্ষর ইত্যাদি। বিভাজক সেটে (হোয়াইটস্পেস, _, -, ., /) নেই এমন নন-লেটার অক্ষর — যেমন সংখ্যা, অ্যাকসেন্টেড অক্ষর বা CJK অক্ষর — যে টোকেনে আছে সেখানেই থাকে এবং কেস ফরম্যাটাররা সেগুলো হুবহু পুনরায় নির্গত করে। অর্থাৎ nœud_principal ইনপুট ["nœud", "principal"]-এ টোকেনাইজ হয় এবং nœudPrincipal (camelCase) বা NœudPrincipal (PascalCase)-এ পরিষ্কারভাবে রূপান্তরিত হয়।

এই কেস কনভার্টার একটি একক স্ট্যাটিক পেজ যা টোকেনাইজার এবং এগারোটি ফরম্যাটার সম্পূর্ণ আপনার ব্রাউজারে চালায় — কোনো ভেন্ডর লাইব্রেরি নেই, রূপান্তর প্রতি নেটওয়ার্ক কল নেই, কোনো অ্যাকাউন্ট নেই। উপরে যেকোনো টেক্সট পেস্ট করুন, এগারোটি কেস আউটপুট পাশাপাশি দেখুন এবং যেটি দরকার সেটি কপি করুন।