افزونه‌ی اصلاح زبان کیبورد

افزونه‌ای برای فایرفاکس که متن تایپ‌شده با زبان اشتباه کیبورد را با یک راست‌کلیک درست می‌کند؛ «sghl» می‌شود «سلام»، بدون پاک کردن و تایپ دوباره.
افزونه‌ی فایرفاکس برای اصلاح متنی که با زبان اشتباه کیبورد تایپ شده

برای هر کسی که هم فارسی تایپ می‌کند و هم انگلیسی، این صحنه آشناست: یک جمله‌ی کامل را با سرعت تایپ می‌کنید، سرتان را بالا می‌آورید و می‌بینید به جای «سلام خوبی» نوشته‌اید «sghl o,fd»؛ چون زبان کیبورد عوض نشده بود. راه معمول پاک کردن همه‌چیز، عوض کردن زبان و تایپ دوباره است. این افزونه را برای فایرفاکس و اج ساختم تا همین کار با یک راست‌کلیک انجام شود. اگر نمی‌خواهید چیزی نصب کنید، همین‌جا هم می‌توانید متنتان را درست کنید.

تبدیل آنلاین متن انگلیسی به فارسی

متنی را که با زبان اشتباه تایپ کرده‌اید در کادر زیر بچسبانید تا نسخه‌ی درستش را ببینید. تبدیل در هر دو جهت کار می‌کند: «sghl» می‌شود «سلام» و «اثممخ» می‌شود «hello».

<!-- CONVERTER: put the HTML card here -->

نصب افزونه

چه کار می‌کند

  • اصلاح با راست‌کلیک: روی هر کادر متنی در هر سایتی راست‌کلیک کنید و گزینه‌ی «Fix keyboard layout (EN ⇄ FA)» را بزنید؛ متن همان‌جا درست می‌شود.
  • تشخیص خودکار جهت: لازم نیست بگویید متن به کدام زبان باید برگردد. اگر بیشتر حروف متن انگلیسی باشد، به فارسی تبدیل می‌شود («sghl» ← «سلام») و اگر بیشتر حروف فارسی باشد، به انگلیسی («اثممخ» ← «hello»).
  • فقط بخش انتخاب‌شده یا کل متن: اگر بخشی از متن را انتخاب کرده باشید فقط همان بخش اصلاح می‌شود، و اگر چیزی انتخاب نشده باشد کل متن کادر.
  • پشتیبانی از هر دو چیدمان ویندوز: «فارسی» و «فارسی استاندارد». چیدمان خودتان را در تنظیمات افزونه یا پنجره‌ی افزونه انتخاب کنید.
  • کار در ویرایشگرهای پیشرفته: علاوه بر کادرهای معمولی، در ویرایشگرهایی مثل جیمیل، واتس‌اپ وب و تلگرام وب هم کار می‌کند.
  • پنجره‌ی تبدیل سریع: با کلیک روی آیکون افزونه پنجره‌ای کوچک باز می‌شود؛ متن اشتباه را در آن بچسبانید، نسخه‌ی درست را همان لحظه ببینید و با یک دکمه کپی کنید. برای جاهایی که راست‌کلیک در دسترس نیست، مثل متنی که در یک برنامه‌ی دیگر تایپ کرده‌اید.
  • بدون جمع‌آوری داده: همه‌ی تبدیل‌ها روی مرورگر خودتان انجام می‌شود. افزونه هیچ متنی را جایی نمی‌فرستد، هیچ داده‌ای جمع نمی‌کند و فقط وقتی خودتان روی گزینه‌اش کلیک کنید به صفحه دسترسی پیدا می‌کند.

چرا ساختمش

چون خودم روزی چند بار گرفتارش می‌شدم. جابه‌جا شدن زبان کیبورد اشتباه کوچکی است، ولی هر بار چند ثانیه وقت و کمی حوصله می‌گیرد، و هرچه متن بلندتر باشد بیشتر. می‌خواستم ابزاری داشته باشم که همان جایی که اشتباه پیش آمده، یعنی داخل خود کادر متن، درستش کند، بدون این‌که لازم باشد متن را جایی کپی کنم یا به چیزی جز راست‌کلیک فکر کنم.

چطور ساختمش

افزونه با جاوااسکریپت ساده و API افزونه‌های مرورگر نوشته شده، بدون هیچ کتابخانه‌ی جانبی؛ کل کد آن حدود دویست خط است.

  • نگاشت کلید به کلید: هر کلید کیبورد انگلیسی (US) به حرفی نگاشت شده که همان کلید در چیدمان فارسی انتخاب‌شده تایپ می‌کند؛ مثلاً s به «س» و ; به «ک». دو جدول جدا برای «فارسی» و «فارسی استاندارد» وجود دارد، چون بعضی کلیدها در این دو چیدمان فرق دارند؛ مثلاً «پ» در یکی روی کلید \ است و در دیگری روی m. نگاشت برعکس هم از روی همین جدول‌ها ساخته می‌شود. «ی» و «ک» عربی هم هنگام تبدیل به انگلیسی شناخته می‌شوند، و عددها به رقم‌های فارسی تبدیل می‌شوند.
  • تشخیص جهت: حروف فارسی و لاتین متن شمرده می‌شوند و هر کدام بیشتر بود، مشخص می‌کند متن به کدام سمت باید تبدیل شود.
  • دسترسی حداقلی: افزونه فقط به منوی راست‌کلیک، دسترسی موقت به همان زبانه‌ای که در آن کلیک کرده‌اید، و ذخیره‌ی یک تنظیم (چیدمان کیبورد) نیاز دارد. کد اصلاح فقط در لحظه‌ی کلیک به صفحه تزریق می‌شود و در بقیه‌ی زمان هیچ کاری با صفحه‌ها ندارد.
  • سازگار با سایت‌های امروزی: بعد از تغییر متن، همان رویدادهایی ارسال می‌شود که هنگام تایپ عادی رخ می‌دهد، تا سایت‌هایی که با React و فریم‌ورک‌های مشابه ساخته شده‌اند تغییر را ببینند و متن اصلاح‌شده را واقعاً ثبت کنند. در ویرایشگرهای پیشرفته هم متن از همان مسیری جایگزین می‌شود که خود مرورگر برای تایپ استفاده می‌کند، تا قالب‌بندی و تاریخچه‌ی واگرد (Ctrl+Z) ویرایشگر به هم نریزد.

پرسش‌های رایج

چرا وقتی فارسی تایپ می‌کنم انگلیسی نوشته می‌شود؟ چون زبان کیبورد روی انگلیسی مانده است. در ویندوز با Alt+Shift یا Win+Space زبان را عوض کنید، و برای متنی که تا الان تایپ شده از تبدیل‌گر بالا یا افزونه استفاده کنید.

کدام چیدمان را انتخاب کنم: «فارسی» یا «فارسی استاندارد»؟ در ویندوز به Settings ← Time & language ← Language بروید، روی Persian کلیک کنید و ببینید کدام کیبورد نصب است. ساده‌ترین راه آزمایش هم این است: اگر کلید m برای شما «پ» تایپ می‌کند، چیدمانتان «فارسی استاندارد» است.

آیا متنی که تبدیل می‌کنم جایی ذخیره یا ارسال می‌شود؟ خیر. چه در تبدیل‌گر همین صفحه و چه در افزونه، همه‌چیز روی دستگاه خودتان انجام می‌شود و متن به هیچ سروری فرستاده نمی‌شود.

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


اگر پیشنهادی برای بهتر شدن افزونه دارید یا ایرادی در آن دیدید، با من در تماس باشید.