টেক্সট কেস রূপান্তর হল একটি স্ট্রিংয়ের অক্ষরের বড়-ছোট বা শব্দ-বিভাজনের ধরন পরিবর্তন করার প্রক্রিয়া। একটি কেস রূপান্তরকারী "hello world"-এর মতো ইনপুট নিয়ে সেটিকে UPPERCASE, lowercase, Title Case, camelCase, snake_case, kebab-case বা অন্যান্য নামকরণ রীতিতে রূপান্তরিত করে। সাধারণ ASCII টেক্সটের জন্য রূপান্তরটি সহজ, কিন্তু সংক্ষেপ ("XMLParser"), লোকেল-নির্দিষ্ট নিয়ম (তুর্কি ডটযুক্ত I) এবং মিশ্র-লিপির স্ট্রিংয়ে জটিল পরিস্থিতি তৈরি হয়।
প্রোগ্রামিং ভাষা, ফাইল সিস্টেম এবং স্টাইল গাইড প্রত্যেকে নিজস্ব নামকরণ রীতি প্রয়োগ করে। JavaScript ভেরিয়েবলে সাধারণত camelCase ব্যবহার হয়। Python ফাংশন ও ভেরিয়েবল PEP 8 অনুযায়ী snake_case অনুসরণ করে। CSS ক্লাস নামে kebab-case ব্যবহার হয়। ডেটাবেস কলাম দলভেদে ভিন্ন হয়, তবে PostgreSQL ও MySQL-এ snake_case প্রাধান্য পায়। এই রীতিগুলোর মধ্যে হাতে হাতে পরিবর্তন করা ধীর এবং ত্রুটিপ্রবণ, বিশেষত ডজন ডজন ফাইলে নাম পরিবর্তন করার সময়।
কোডের বাইরেও কেস রীতি গুরুত্বপূর্ণ। Title Case শিকাগো ম্যানুয়াল অব স্টাইল ও APA-র মতো স্টাইল গাইডের নিয়ম অনুসরণ করে, যেখানে নিবন্ধ ও ছোট পূর্বসর্গ ছোট হাতে থাকে যদি না সেগুলো বাক্যের শুরুতে থাকে। Sentence case কেবল প্রথম শব্দ ও নামবাচক বিশেষ্য বড় হাতে লেখে। আমেরিকান ইংরেজি প্রকাশনায় শিরোনামে Title Case প্রচলিত; বেশিরভাগ ইউরোপীয় ও প্রযুক্তি ডকুমেন্টেশনে Sentence case ব্যবহার হয়।
কেন এই কেস রূপান্তরকারী ব্যবহার করবেন?
যেকোনো টেক্সট পেস্ট করুন এবং VS Code এক্সটেনশন ইনস্টল বা কোনো স্ক্রিপ্ট না লিখেই তাৎক্ষণিকভাবে নয়টি কেস ফরম্যাটে রূপান্তর করুন।
⚡
তাৎক্ষণিক রূপান্তর
একটি কেস ফরম্যাট বেছে নিন এবং সঙ্গে সঙ্গে ফলাফল দেখুন। সার্ভারে কোনো অনুরোধ নেই, কোনো অপেক্ষা নেই। পাশাপাশি আউটপুট তুলনা করতে ফরম্যাটের মধ্যে সুইচ করুন।
🔒
গোপনীয়তা নিরাপদ
সমস্ত রূপান্তর আপনার ব্রাউজারে JavaScript ব্যবহার করে সম্পন্ন হয়। আপনার টেক্সট আপনার ডিভাইসে থাকে। কোনো সার্ভারে কিছু পাঠানো বা কোথাও সংরক্ষণ করা হয় না।
🔄
একটি টুলে নয়টি ফরম্যাট
UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case এবং CONSTANT_CASE। একটি ইনপুটে প্রতিটি প্রচলিত রীতি পাওয়া যায়।
🌍
কোনো অ্যাকাউন্ট প্রয়োজন নেই
পেজ খুলুন এবং রূপান্তর শুরু করুন। কোনো নিবন্ধন নেই, কোনো ব্রাউজার এক্সটেনশন নেই, কোনো ডেস্কটপ ইনস্টল নেই। যেকোনো আধুনিক ব্রাউজারযুক্ত ডিভাইসে কাজ করে।
কেস রূপান্তরকারীর ব্যবহারের ক্ষেত্র
ফ্রন্টএন্ড ডেভেলপমেন্ট
snake_case API প্রতিক্রিয়া থেকে JavaScript অবজেক্টের জন্য কম্পোনেন্ট প্রপ নামগুলো camelCase-এ রূপান্তর করুন। BEM বা ইউটিলিটি-ফার্স্ট নামকরণ পদ্ধতিতে স্থানান্তরের সময় CSS ক্লাস camelCase থেকে kebab-case-এ নামান্তর করুন।
ব্যাকএন্ড API ডিজাইন
ডেটাবেস কলাম (snake_case) থেকে JSON প্রতিক্রিয়া কী (camelCase)-এ ম্যাপিং করার সময় ফিল্ড নামগুলো রীতির মধ্যে অনুবাদ করুন। সিরিয়ালাইজেশন স্তরগুলো প্রত্যাশিত আউটপুট ফরম্যাট তৈরি করছে কিনা যাচাই করুন।
DevOps ও ইনফ্রাস্ট্রাকচার
বর্ণনামূলক বাক্যাংশ থেকে CONSTANT_CASE পরিবেশ ভেরিয়েবল নাম তৈরি করুন। দলের স্টাইল গাইডের সাথে সামঞ্জস্য রাখার সময় snake_case ও kebab-case-এর মধ্যে Terraform রিসোর্স নাম রূপান্তর করুন।
QA ও টেস্ট অটোমেশন
সঠিক কেসযুক্ত ফিল্ড নামসহ টেস্ট ফিক্সচার ডেটা প্রস্তুত করুন। API চুক্তি ও ক্লায়েন্টের প্রত্যাশার মধ্যে কেস অমিল প্রোডাকশনে পৌঁছানোর আগেই শনাক্ত করুন।
ডেটা ইঞ্জিনিয়ারিং
CSV বা Excel ফাইল ডেটাবেসে আমদানির সময় কলাম হেডার স্বাভাবিক করুন। সামঞ্জস্যপূর্ণ স্কিমা ডিজাইনের জন্য "First Name"-এর মতো মিশ্র-কেস হেডার "first_name"-এর মতো snake_case কলামে রূপান্তর করুন।
প্রযুক্তিগত লেখা ও ডকুমেন্টেশন
ডকুমেন্টেশনে কোড রেফারেন্স সঠিক কেসে ফরম্যাট করুন। প্রযুক্তিগত স্পেসিফিকেশনে সামঞ্জস্যের জন্য সাধারণ ইংরেজি বিবরণ থেকে PascalCase ক্লাস নাম বা kebab-case URL স্লাগ তৈরি করুন।
কেস রীতির রেফারেন্স
প্রতিটি নামকরণ রীতির বড়-ছোট হাতে লেখা ও শব্দ বিভাজনের নির্দিষ্ট নিয়ম রয়েছে। নিচের সারণিতে এই টুল সমর্থিত নয়টি ফরম্যাট দেখানো হয়েছে, রেফারেন্স হিসেবে "the quick brown fox" ইনপুট বাক্যাংশ ব্যবহার করা হয়েছে।
কেস
নিয়ম
উদাহরণ
UPPERCASE
Every letter capitalized
THE QUICK BROWN FOX
lowercase
Every letter lowercased
the quick brown fox
Title Case
First letter of each word capitalized
The Quick Brown Fox
Sentence case
First letter of each sentence capitalized
The quick brown fox
camelCase
No separators, first word lowercase
theQuickBrownFox
PascalCase
No separators, every word capitalized
TheQuickBrownFox
snake_case
Words joined by underscores, all lowercase
the_quick_brown_fox
kebab-case
Words joined by hyphens, all lowercase
the-quick-brown-fox
CONSTANT_CASE
Words joined by underscores, all uppercase
THE_QUICK_BROWN_FOX
camelCase বনাম snake_case বনাম kebab-case
সফ্টওয়্যার ডেভেলপমেন্টে এই তিনটি রীতি প্রাধান্য পায়, কিন্তু প্রতিটি ভিন্ন পরিবেশে ব্যবহার হয়। ভুল রীতি বেছে নিলে লিন্টার ভাঙে, API চুক্তি লঙ্ঘন হয়, বা কোডবেস অসামঞ্জস্যপূর্ণ হয়।
camelCase
JavaScript ও TypeScript ভেরিয়েবল, ফাংশন নাম ও অবজেক্ট কীর মানক। Java ও C# লোকাল ভেরিয়েবল ও মেথড প্যারামিটারেও এটি ব্যবহার করে। JavaScript ক্লায়েন্টের জন্য তৈরি JSON API সাধারণত camelCase কী ব্যবহার করে। প্রথম শব্দ ছোট হাতে; পরবর্তী প্রতিটি শব্দ বড় হাতে শুরু হয়।
snake_case
Python (PEP 8), Ruby, Rust এবং বেশিরভাগ SQL ডেটাবেসের প্রচলিত রীতি। C স্ট্যান্ডার্ড লাইব্রেরি ফাংশনও এই ধরন অনুসরণ করে। শব্দগুলো আন্ডারস্কোর দিয়ে আলাদা করা হয়, সব ছোট হাতে। CONSTANT_CASE (সব বড় হাতে আন্ডারস্কোরসহ) হল কনস্ট্যান্ট ও পরিবেশ ভেরিয়েবলের জন্য ব্যবহৃত রূপভেদ।
kebab-case
CSS ক্লাস নাম, HTML অ্যাট্রিবিউট, URL স্লাগ এবং CLI ফ্ল্যাগ নামের (--output-dir) মানক। Lisp ও Clojure-এ প্রচলিত। শব্দগুলো হাইফেন দিয়ে আলাদা করা হয়, সব ছোট হাতে। বেশিরভাগ প্রোগ্রামিং ভাষায় শনাক্তকারীতে হাইফেন ব্যবহার করা যায় না, তাই kebab-case স্ট্রিং, ফাইল নাম ও মার্কআপের মধ্যে সীমাবদ্ধ।
কোড উদাহরণ
প্রোগ্রামগতভাবে কেস রীতির মধ্যে রূপান্তর করার পদ্ধতি। প্রতিটি উদাহরণ সবচেয়ে প্রচলিত রূপান্তর কভার করে: camelCase থেকে snake_case, snake_case থেকে camelCase, এবং মৌলিক upper/lower/title রূপান্তর।
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"
camelCase ছোট হাতের অক্ষর দিয়ে শুরু হয় (myVariable), আর PascalCase বড় হাতের অক্ষর দিয়ে শুরু হয় (MyVariable)। JavaScript-এ camelCase ভেরিয়েবল ও ফাংশনের জন্য ব্যবহার হয়; PascalCase ক্লাস নাম ও React কম্পোনেন্ট নামের জন্য ব্যবহার হয়। C#-এ পাবলিক মেথড ও প্রপার্টিতে PascalCase ব্যবহার হয়। একমাত্র পার্থক্য হলো প্রথম অক্ষর।
JavaScript-এ camelCase থেকে snake_case-এ কীভাবে রূপান্তর করব?
regex ব্যবহার করে প্রতিটি বড় হাতের অক্ষরের আগে আন্ডারস্কোর যোগ করুন, তারপর ফলাফল ছোট হাতে করুন: str.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase()। এটি স্ট্যান্ডার্ড camelCase পরিচালনা করে। "XMLParser"-এর মতো পরপর বড় হাতের অক্ষরযুক্ত স্ট্রিংয়ের জন্য বড় হাতের ক্রম সঠিকভাবে ভাগ করতে একটি অতিরিক্ত regex পাস প্রয়োজন।
Python কেন camelCase-এর পরিবর্তে snake_case ব্যবহার করে?
২০০১ সালে প্রকাশিত Python-এর অফিসিয়াল স্টাইল গাইড PEP 8, ফাংশন ও ভেরিয়েবলের জন্য snake_case বেছে নিয়েছিল কারণ Guido van Rossum ও মূল দল এটিকে এক নজরে বেশি পাঠযোগ্য মনে করেছিলেন। Binkley et al. (2009)-এর মতো গবেষণায় দেখা গেছে যে কিছু পড়ার কাজে প্রোগ্রামাররা camelCase-এর চেয়ে snake_case শনাক্তকারী দ্রুত চিনতে পারেন। এই রীতি flake8 ও pylint-এর মতো লিন্টার দ্বারা প্রয়োগ করা হয়।
Title Case মানে কি প্রতিটি শব্দ বড় হাতে লেখা?
সাধারণ Title Case প্রতিটি শব্দের প্রথম অক্ষর বড় হাতে করে, এবং এই টুলটি তাই করে। আনুষ্ঠানিক Title Case (AP, Chicago, APA)-এর অতিরিক্ত নিয়ম রয়েছে: নিবন্ধ (a, an, the), ছোট সংযোজন (and, but, or) এবং ছোট পূর্বসর্গ (in, on, at) ছোট হাতে থাকে যদি না সেগুলো প্রথম বা শেষ শব্দ হয়। আনুষ্ঠানিক টাইটেল কেসিংয়ের জন্য অভিধান অনুসন্ধান প্রয়োজন, শুধু অক্ষর-স্তরের রূপান্তর নয়।
এই টুলটি কি Unicode ও অ-লাতিন লিপি পরিচালনা করতে পারে?
টুলটি JavaScript-এর অন্তর্নির্মিত toUpperCase() ও toLowerCase() মেথড ব্যবহার করে, যা Unicode Standard (অধ্যায় ৩, বিভাগ ৩.১৩)-এ সংজ্ঞায়িত Unicode কেসিং নিয়ম অনুসরণ করে। এটি উচ্চারণযুক্ত অক্ষর (é থেকে É), জার্মান এসজেট (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। REST API JSON কী: আপনার ফ্রন্টএন্ড ভাষার সাথে মিলিয়ে নিন (JS ক্লায়েন্টের জন্য camelCase, Python ক্লায়েন্টের জন্য snake_case)। সন্দেহ হলে আপনার প্রকল্পের রুটে লিন্টার কনফিগারেশন বা .editorconfig দেখুন।