مقال
الكلمات والأحرف وحالة الأحرف: كيف يعمل عد النصوص فعليًا
يبدو عد النصوص وكأنه المهمة الوحيدة التي لا يمكن أن يخطئ فيها الحاسوب، ومع ذلك قد تعطي أداتان رقمين مختلفين لنفس الفقرة دون تردد، وقد يكلفك رمز تعبيري واحد 70 حرفًا من رصيد الرسالة النصية، و"280 حرفًا" في X لا تعني ما يبدو عليه ظاهريًا. خلف المهام اليومية مثل الكتابة ضمن حد معين، أو إعادة تسمية المتغيرات، أو ملء نموذج تصميمي، تكمن بضع قواعد تستحق المعرفة. يستعرض هذا المقال هذه القواعد، مستخدمًا أدوات النصوص الصغيرة على هذا الموقع كأمثلة عملية.
ما الذي يُحسب كلمة
تُعرّف معظم أدوات العد، بما فيها أداتنا، الكلمة بالطريقة نفسها التي كان يعتمدها الطابعون: سلسلة من الأحرف المرئية بين المسافات أو فواصل الأسطر. هذه القاعدة وحدها تفسر معظم أوجه الاختلاف. هل "وبالتالي" كلمة واحدة أم كلمتان؟ واو العطف هنا ملتصقة بما بعدها دون مسافة، فيُحسب اللفظان كلمة واحدة عند الفصل حسب المسافات فقط. الأرقام وعناوين URL وعناوين البريد الإلكتروني تُحسب أيضًا كل واحدة منها كلمة واحدة. هذا العرف لا يصلح للغات التي تُكتب دون مسافات: في العربية تفصل المسافات بين معظم الكلمات كما في الإنجليزية، لكن في الصينية أو اليابانية لا توجد مسافات يمكن الفصل عندها، لذا فإن "عدد الكلمات" لا يحمل معنى كبيرًا هناك ويُفضَّل الاعتماد على عدد الأحرف بدلًا من ذلك. أما تقدير وقت القراءة فيضيف عرفًا آخر فوق ذلك: تقسم أداة عد الكلمات لدينا عدد الكلمات على 200 كلمة في الدقيقة، وهو متوسط شائع للقراءة الصامتة لدى البالغين، لذا يجب التعامل مع النتيجة كرقم تخطيطي لا كوعد دقيق.
الحرف الواحد ليس دائمًا رمزًا واحدًا
عد الأحرف أكثر غموضًا، لأن نص Unicode له طبقات. ما تدركه على أنه حرف واحد (غرافيم) قد يكون مبنيًا في الواقع من عدة نقاط ترميز (code points)، وكل نقطة ترميز تشغل واحدة أو اثنتين من الوحدات ذات الـ16 بت التي تحسبها خاصية length في JavaScript. الرمز التعبيري لوجه مبتسم يُعد غرافيمًا واحدًا لكنه وحدتان من تلك الوحدات، لذا فإن أداة عد بسيطة ستقول 2. الرمز التعبيري للعائلة، المُركّب من عدة رموز تعبيرية لأشخاص، هو غرافيم واحد وخمس نقاط ترميز وثماني وحدات. حتى النص العادي يواجه هذه المشكلة: يمكن تخزين "café" مع é كنقطة ترميز واحدة أو كحرف e متبوع بعلامة تشكيل تركيبية، متطابقان على الشاشة لكن مختلفان في العد. هذا هو سبب اختلاف أداتي عد: فهما تقيسان طبقتين مختلفتين. قواعد تجميع نقاط الترميز في أحرف كما يدركها المستخدم موحدة في ملحق تجزئة النصوص الخاص بيونيكود (UAX #29)، وأدوات العد المصممة بشكل صحيح تتبع هذه القواعد.

الحدود التي تحسب من أجلها فعلًا
حدود الأحرف هي حيث يتحول العد إلى مال. تحمل الرسالة النصية الواحدة 160 حرفًا في أبجدية GSM-7 المضغوطة، لكن حرفًا واحدًا خارج هذه الأبجدية (رمز تعبيري، أو حرف لا تحويه الأبجدية) يحوّل الرسالة بأكملها إلى ترميز UCS-2 فينخفض الحد إلى 70؛ وتُقسَّم الرسائل الطويلة إلى أجزاء من 153 أو 67 حرفًا، تُحتسب كل واحدة منها بشكل منفصل. يسمح X بـ280 حرفًا لكل منشور، لكنه يزن هذه الأحرف: يُحسب كل رابط كـ23 حرفًا بغض النظر عن طوله الفعلي، ويُحسب معظم الرموز التعبيرية وأحرف CJK (الصينية واليابانية والكورية) كحرفين. أما مقتطفات نتائج البحث فلها حدود مرنة: تقتطع Google العناوين والأوصاف حسب العرض بالبكسل، لذا فإن الأرقام المألوفة، 60 حرفًا للعنوان و155 حرفًا للوصف، هي أعراف عملية لا ضمانات. عندما يكون الحد مهمًا فعلًا، احسب وفق نفس القواعد التي تستخدمها المنصة، واترك هامشًا احتياطيًا.
حالة الأحرف عرف اصطلاحي، ولكل نمط مكانه
يبدو تغيير حالة الأحرف أمرًا تافهًا حتى تصادف الأعراف المتراكمة فوقه، وهي أعراف تخص النصوص المكتوبة بالحروف اللاتينية، مثل معرّفات الشيفرة أو العناوين الإنجليزية؛ فالعربية نفسها لا تعرف تمييز الأحرف الكبيرة والصغيرة. في النثر اللاتيني هناك Title Case، الذي تفضله العناوين الأمريكية، وsentence case، الذي تفضله معظم أدلة الأسلوب الأوروبية. أما الشيفرة البرمجية فلها عائلاتها الخاصة: camelCase للمتغيرات في JavaScript وJava، وPascalCase لأسماء الأصناف والمكونات، وsnake_case في Python وقواعد البيانات، وSCREAMING_SNAKE_CASE للثوابت، وkebab-case لأصناف CSS وأسماء الملفات ومسارات URL، حيث تتجنب الأحرف الصغيرة الفخ الكلاسيكي المتمثل في روابط لا تختلف إلا في حالة الأحرف. تحويل عدد قليل من المعرّفات يدويًا أمر مقبول؛ أما تحويل قائمة من ثمانين عنصرًا فهو الطريقة المضمونة لظهور الأخطاء الإملائية. تطبّق أداة تحويل حالة الأحرف هذا التحويل بشكل آلي، بما في ذلك التفاصيل الدقيقة مثل كيفية التعامل مع الاختصارات والفواصل الموجودة مسبقًا.

نص حشو، وملفات يرفض هاتفك فتحها
تكمّل مهمتان أخريان هذه المجموعة. تُقيَّم التخطيطات بنص نائب لأن الجمل الحقيقية تجذب الانتباه إلى معناها؛ ويعمل lorem ipsum تحديدًا لأنه لاتينية شبه مقروءة لكنها ليست مقروءة تمامًا. تُنتج أداتنا هذا النص فقرة أو جملة أو كلمة، بحيث يمكن ملء نموذج التصميم بأطوال واقعية بدل تكرار كتلة واحدة ملصقة. وعندما يرسل أحدهم ملف .md أو .json أو .csv أو .log يرفض الهاتف فتحه، يعرض عارض النصوص العامل في المتصفح محتواه دون تثبيت محرر أو إرسال الملف إلى موقع تحويل ما. كل ما سبق، بما في ذلك العد، يعمل بالكامل داخل متصفحك: النص لا يغادر جهازك أبدًا، وهذا أمر أهم من المعتاد عندما يكون ما تقيسه مسودة أو عقدًا أو سجلًا مليئًا بمسارات داخلية.
الأدوات المذكورة في هذا المقال
- عدّاد الكلماتعدّ الكلمات والحروف والجمل والفقرات وقدّر وقت القراءة. مباشر، بدون تحميل.
- محوِّل حالة النصحوِّل النص بين camelCase وsnake_case وkebab-case وTitle Case وغيرها. دون رفع.
- مولّد Lorem Ipsumتوليد نص عشوائي Lorem ipsum بالفقرات أو الجمل أو الكلمات. نسخ بنقرة واحدة. بدون تحميل.
- عارض النصوص / الكودافتح ملفات النصوص والكود التي يرفض هاتفك فتحها, Markdown، HTML، JSON، CSV، XML والمزيد.
الأسئلة الشائعة
كم كلمة تتسع في الصفحة الواحدة؟
تشير أعراف النشر إلى نحو 500 كلمة للصفحة ذات التباعد المفرد ونحو 250 كلمة للصفحة ذات التباعد المزدوج، بافتراض استخدام خط قياسي بحجم 12 نقطة على ورق A4 أو letter. تحيد المستندات الفعلية عن هذه الأرقام مع كل تغيير في الخط أو الهوامش أو العناوين، ولهذا تحدد الواجبات والمشاركات المقدمة بشكل متزايد عدد الكلمات بدلًا من عدد الصفحات. إذا كان النص متوفرًا لديك، فاعدّه مباشرة وتجاوز التقدير؛ فأعراف الصفحات مفيدة فقط قبل أن يكون النص موجودًا.
ما المعنى الفعلي لـlorem ipsum؟
إنها لاتينية مُعاد ترتيبها، وليست كلامًا عشوائيًا بلا معنى. المقطع القياسي مُقتطع ومُعاد ترتيبه من كتاب De finibus bonorum et malorum لشيشرون، وهو نص فلسفي يعود إلى عام 45 قبل الميلاد؛ ويعني المقطع "dolorem ipsum" حرفيًا "الألم ذاته". إعادة الترتيب هذه هي بيت القصيد: يبدو النص كلغة طبيعية، بأطوال كلمات وإيقاع جمل معقول، لكنه يقاوم أن يُقرأ فعليًا، بحيث يحكم المشاهدون على التخطيط لا على المحتوى. يُنسب انتشاره الحديث عادة إلى ورقات النقل بالحرارة Letraset في ستينيات القرن الماضي وبرامج النشر المكتبي في ثمانينياته.
لماذا تحسب المنصة أحرفًا أقل مما تحسبه أداتي؟
لأن المنصات تحسب وفق أوزانها الخاصة. يبدأ X من 280 لكنه يحتسب كل رابط كـ23 حرفًا ومعظم الرموز التعبيرية وأحرف CJK كحرفين لكل رمز. تحوّل بوابات الرسائل النصية الرسالة بأكملها من أبجدية GSM-7 ذات الـ160 حرفًا إلى وضع UCS-2 ذي الـ70 حرفًا بمجرد أن يتطلب ذلك حرف واحد فقط. وقد تحسب أي منصة وحدات الترميز بدل الغرافيمات، بحيث يمكن لرمز تعبيري واحد للعائلة أن يستهلك 8 أحرف من الحد المسموح. عندما يختلف الرقم الظاهر على الزر عن أداتك، تفوز قواعد المنصة؛ فاكتب مع ترك هامش احتياطي أو تحقق من العدد باستخدام أداة العد الخاصة بالمنصة نفسها قبل الإرسال.