از تمامبزرگ به حالت جمله
حالت جمله را انتخاب کنید. هر حرف کوچک میشود، سپس حرف اول هر جمله دوباره بزرگ میشود و ضمیر I هر جا ظاهر شود حرف بزرگش را نگه میدارد. مرزهای جمله از قطعهبند یونیکد خود مرورگر میآیند، همراه با فهرست کوتاهی از اختصاراتی که جمله را تمام نمیکنند، بنابراین نقطهٔ بعد از Dr یا e.g. حرف بزرگ سرگردانی تولید نمیکند.
خطبهخط
| ۱ | WE HAVE MOVED THE MEETING TO THE MORNING. I HOPE THAT WORKS. LET ME KNOW IF IT DOESN'T. | We have moved the meeting to the morning. I hope that works. Let me know if it doesn't. |
در خطی که سراسر با حروف بزرگ نوشته شده، گزینهٔ سرواژهها نادیده گرفته میشود، چون هیچ چیز USA را از واژههای دیگر آن خط متمایز نمیکند.
اسمهای خاص قابل بازیابی نیستند. هیچ چیز در SEE YOU IN PARIS نمیگوید Paris یک شهر است، بنابراین بهصورت paris برمیگردد و باید با دست درست شود.
ضمیر I تنها استثنایی است که خودکار بازگردانده میشود، همراه با I'm، I've، I'll و I'd، چون به شکلی که یک نام نیست، بیابهام است.
چگونگی کار
مراحل انجام کار
- پایان خطوط ویندوز و مک کلاسیک را به یک خطنوی واحد تبدیل کنید، سپس متن را به خطوط تقسیم کنید. هر خط جداگانه تبدیل میشود، بنابراین فهرستی از عنوانها یا نام ستونها در یک نوبت انجام میشود.
- تشخیص دهید که آیا خط «فریادی» است یا نه، یعنی حروف بزرگ دارد و هیچ حرف کوچکی ندارد. در چنین خطی گزینهٔ دستنخورده گذاشتن واژههای تمامبزرگ نادیده گرفته میشود، چون در آنجا هیچ چیز یک واژه را بهعنوان سرواژه متمایز نمیکند.
- برای حروف بزرگ و کوچک، نگاشتهای پیشفرض یونیکد را روی کل خط اعمال کنید و همینجا متوقف شوید. این نگاشتها مستقل از زبان محلیاند، بنابراین ß آلمانی به SS تبدیل میشود و پاسخ روی هر دستگاهی یکسان است.
- برای حالت عنوان، واژهها را پیدا کنید — رشتههایی از حرف و رقم که ممکن است در میانشان آپاستروف باشد. خط تیره بخشی از واژه نیست، بنابراین هر جزء یک ترکیب خطتیرهدار جداگانه داوری میشود.
- واژهٔ اول، واژهٔ آخر و اولین واژه پس از دونقطه را بزرگ کنید. هر واژهٔ دیگری را که در فهرست سبک انتخابشده است کوچک کنید. باقی را بزرگ کنید. واژهای که بلافاصله پس از خط تیره میآید از قاعدهٔ اولوآخر معاف است.
- برای حالت جمله، همهٔ واژهها را کوچک کنید، ضمیر I را برگردانید، سپس حرف اول هر جمله را بزرگ کنید. مرزهای جمله از قطعهبند یونیکد مرورگر میآیند که روی نسخهای از خط با حروف یکسانشده اجرا میشود.
- هرگاه جملهای به یک حرف تنها یا به یکی از بیست اختصار فهرستشده ختم شود، آن را به جملهٔ بعدی بچسبانید، تا نقطهٔ بعد از «e.g.» یا «Mr.» حرف بزرگ سرگردانی تولید نکند.
- برای camelCase، snake_case و kebab-case همان واژهها را بردارید، آپاستروفهایشان را حذف کنید و هر کدام را در نقطهٔ تغییر بزرگی حروف بشکنید — یک حرف کوچک یا رقم که پس از آن حرف بزرگ میآید، و رشتهای از حروف بزرگ که پس از آن حرف کوچک میآید.
- اجزا را به هم بچسبانید. برای snake و kebab سراسر حروف کوچک؛ برای camel، جزء اول کوچک و هر جزء بعدی با حرف بزرگ.
فرضها
- هر خط جداگانه تبدیل میشود. واژهٔ اول و آخر یک عنوان، واژهٔ اول و آخر همان خط است، هیچ جملهای از شکست خط عبور نمیکند و بیست سرستون در بیست خط، بیست شناسه میشوند نه یک شناسهٔ بلند.
- حالت عنوان یک فهرست واژه است، نه یک دستور زبان. شیکاگو حروف اضافه را با جستوجو در فهرست کوچک میکند، بنابراین حرف اضافهای که نقش قید دارد در جایی که شیکاگو بزرگش میکند کوچک میشود — «Look up the Answer» بهجای «Look Up the Answer». درست کردن این مورد به یک برچسبزن اجزای کلام نیاز دارد که چیزی بسیار بزرگتر و بسیار کمتر پیشبینیپذیر از یک فهرست است.
- واژهٔ اول و آخر یک خط، همراه با اولین واژه پس از دونقطه، همیشه بزرگ میشوند. واژهای که بلافاصله پس از خط تیره میآید از این قاعده معاف است، و همین است که «Run-in with the Law» را بهجای «Run-In with the Law» تولید میکند.
- در خطی که سراسر حروف بزرگ است، دستنخورده گذاشتن واژههای تمامبزرگ نادیده گرفته میشود. سرواژه یعنی واژهای با حروف بزرگ میان واژههایی که بزرگ نیستند، و یک خط فریادی چنین تضادی ندارد؛ بنابراین رعایت این گزینه در آنجا، یک اشتباه caps-lock را به خودش تبدیل میکرد.
- حالت جمله نمیتواند اسم خاص را بازگرداند. هیچ چیز در «we met in paris» نمیگوید Paris یک شهر است، بنابراین کوچک برمیگردد. ضمیر I تنها استثناست، چون به شکلی که یک نام نیست، بیابهام است.
- حالت عنوان و حالت جمله باقی هر واژه را کوچک میکنند، بنابراین واژهای که عمداً حروف مخلوط دارد صاف میشود — «parseHTMLDoc» به «Parsehtmldoc» تبدیل میشود. camelCase، snake_case و kebab-case تبدیلهایی هستند که یک شناسهٔ موجود را میفهمند.
- سرواژهها در camelCase، snake_case و kebab-case، صرفنظر از گزینه، کوچک میشوند. «Customer ID» به customer_id تبدیل میشود، چون نام snake_case با حروف بزرگ نه snake_case است و نه خواناتر.
- حروف بزرگ و کوچک از نگاشتهای پیشفرض یونیکد بدون زبان محلی استفاده میکنند. ß آلمانی به SS تبدیل میشود که درست است، و به ß برنمیگردد، یعنی این تغییر برگشتپذیر نیست. i بینقطهٔ ترکی با قواعد پیشفرض تبدیل میشود، نه با قواعد ترکی.
- واژهای که با رقم شروع میشود همانطور که هست میماند، چون رقم آغازین حرف پس از خود را بزرگ نمیکند و شمارهٔ ترتیبی انگلیسی با حروف کوچکش میماند.
- نویسهها بهصورت خوشههای نویسهای (grapheme) شمرده میشوند. یک حرف آکساندار که با دو نقطهٔ کد نوشته شده، یا ایموجیای با اصلاحگر رنگ پوست که با چهار نقطهٔ کد نوشته شده، یکی شمرده میشود.
پرسشهای رایج
آیا نامها و مکانهایی را که با حروف بزرگ تایپ شدهاند درست میکند؟
خیر، و هیچ چیز نمیتواند این کار را بهطور قابلاعتماد انجام دهد. `JOHN` و `MARCH` از روی واژهنامه قابل بازیابیاند. `SMITH`، `READING` و `MAY` هم واژهٔ معمولیاند و هم نام، بنابراین ابزاری که حدس بزند اشتباه میکند و به هر حال باید بازبینیاش کنید. همه چیز کوچک میشود و فقط آغاز جملهها بزرگ میشود، که آنچه را نیاز به اصلاح دارد آشکار میکند.
چرا واژهٔ بعد از نقطه بزرگ میشود اما واژهٔ بعد از دونقطه نه؟
چون در انگلیسی دونقطه جمله را تمام نمیکند و نقطهویرگول هم همینطور. اینجا فقط نقطه، علامت سؤال و علامت تعجب جملهٔ تازهای را آغاز میکنند. برخی سبکنامههای آمریکایی وقتی یک جملهٔ کامل پس از دونقطه بیاید آن را بزرگ میکنند؛ آن مورد را با دست اصلاح کنید.
منابع
روش کامل، مثال محاسبهشده و همهٔ فرضهای این نتیجه در این صفحه آمده است: مبدل حالت حروف.