كتبت جملة كاملة بلغة خاطئة! فصنعت أداة تصلحها بضغطة واحدة

يحدث هذا أكثر مما أريد الاعتراف به.

أكون في منتصف فكرة، أكتب بسرعة، وفجأة أنتبه أن كل ما كتبته يبدو هكذا:

ه مخرث غخع

بدلاً من:

i love you

السبب بسيط: لوحة المفاتيح كانت على العربية وأنا أريد الإنجليزية، أو العكس. والحل المعتاد هو الحذف وإعادة الكتابة من الصفر — وهو أمر مزعج بما يكفي لدفعي إلى صنع بديل.


ما الذي يحدث فعلاً؟

لوحة المفاتيح العربية والإنجليزية تتشاركان نفس المفاتيح الفيزيائية، لكن كل ضغطة تُنتج حرفاً مختلفاً بحسب اللغة المحددة. عندما تضغط i وأنت على العربية، يُكتب ه. وعندما تضغط ه وأنت على الإنجليزية… لا يُكتب شيء منطقي.

هذا يعني أن النص الخاطئ ليس عشوائياً — بل هو ترجمة حرفية مقلوبة يمكن عكسها بدقة تامة.


الحل: خريطة تحويل بسيطة

الفكرة الجوهرية لا تتجاوز سطرين من المنطق: لكل حرف عربي يقابله حرف إنجليزي في نفس موضع المفتاح، والعكس صحيح. نبني جدولاً لهذه المقابلات، ثم نمر على النص حرفاً حرفاً ونستبدل كل منه بمقابله.

AR_TO_EN = {
    'ض':'q', 'ص':'w', 'ث':'e', 'ق':'r', 'ف':'t',
    'غ':'y', 'ع':'u', 'ه':'i', 'خ':'o', 'ح':'p',
    'ش':'a', 'س':'s', 'ي':'d', 'ب':'f', 'ل':'g',
    'ا':'h', 'ت':'j', 'ن':'k', 'م':'l', 'و':'m',
    # ... وبقية الحروف
}

def convert(text):
    return ''.join(AR_TO_EN.get(ch, ch) for ch in text)

جملة ه مخرث غخع تمر على هذا الجدول فيتحول كل حرف إلى مقابله الإنجليزي وتخرج i love you.

كيف يكتشف السكريبت اللغة تلقائياً؟

لا داعي لأن تحدد يدوياً أي اتجاه تريد. السكريبت يعد الحروف العربية والإنجليزية في النص، وأيهما أكثر يحدد اتجاه التحويل:

def detect_direction(text):
    arabic = sum(1 for ch in text if '\u0600' <= ch <= '\u06ff')
    latin  = sum(1 for ch in text if ch.isascii() and ch.isalpha())
    return 'ar2en' if arabic >= latin else 'en2ar'

كيف يستبدل النص في مكانه؟

هنا الجزء العملي. السكريبت لا يفتح نافذة منفصلة — بل يتصرف كأنك أنت من يحرر النص:

  1. يحفظ محتوى الحافظة الحالية حتى لا يضيعها عليك
  2. يُرسل Ctrl+C لنسخ ما حددته
  3. يحوّل النص ويضعه في الحافظة
  4. يُرسل Ctrl+V لإلصاقه في مكان النص القديم
  5. يُعيد محتوى الحافظة الأصلي

كل هذا يحدث في أقل من ثانية.


التثبيت

صنعت نسختين: واحدة لـ Windows وأخرى لـ Linux.

Windows — AutoHotkey

قم بتحميل الملف keyboard_converter.ahk، ثم ثبّت AutoHotkey v2 وانقر مزدوجاً على الملف لتشغيله. لتشغيله تلقائياً مع بدء الويندوز، ضعه في مجلد shell:startup.

الاختصارات:

الاختصارالوظيحة
Ctrl+Shift+Qتحويل تلقائي — يكتشف اللغة بنفسه
Ctrl+Shift+Aعربي ← إنجليزي دائماً
Ctrl+Shift+Eإنجليزي ← عربي دائماً

Linux — Python

# تثبيت المتطلبات
sudo apt install xdotool xclip python3   # Ubuntu/Debian
sudo pacman -S xdotool xclip python      # Arch

# جعل السكريبت قابلاً للتنفيذ
chmod +x keyboard_converter.py

ثم أضف اختصاراً مخصصاً في إعدادات النظام يشير إلى:

python3 /المسار/keyboard_converter.py --auto

تحميل الملفات

استبدل # بالروابط الفعلية بعد رفع الملفات


المشكلة كانت صغيرة لكنها متكررة، والحل أصغر منها — بضعة أسطر من الكود وجدول مقابلات. هذا النوع من الأدوات هو ما يجعل العمل أمام لوحة المفاتيح أقل احتكاكاً.

Leave a Reply

Your email address will not be published. Required fields are marked *