Blog

  • Theme وTemplate في واجهات ووردبريس العربية: كيف نتجنب الغموض الدلالي؟

    بصفتي مهندس تعريب (L10n Engineer) متخصص في اللغة العربية، وأستهدف بخطابي المهني أسواقاً خليجية رائدة مثل المملكة العربية السعودية والإمارات العربية المتحدة، أؤكد أن توطين واجهات المستخدم (UI Localization) يتجاوز بكثير الاستبدال الحرفي للكلمات، بل يستلزم وضوحاً سياقياً (Contextual Clarity) صارماً. في مجال توطين البرمجيات (Software Localization – L10n)، نادراً ما يثير أي تحدٍ جدلاً واسعاً مثلما تثيره المصطلحات المصدرية التي تُترجم إلى كلمة واحدة متطابقة في قاعدة المصطلحات (Glossary) العربية الافتراضية. والمثال الكلاسيكي على ذلك يبرز في أنظمة إدارة المحتوى (CMS) عند التمييز بين “Theme” و “Template”.

    في اللغة الإنجليزية، يحمل المصطلحان أدواراً تقنية متمايزة:

    • Theme: الهوية البصرية الشاملة، ولوحة الألوان، وإعدادات الخطوط المسبقة، وطبقة التنسيق المرئي.
    • Template: التخطيط الهيكلي، أو الهيكل الأساسي للصفحة (Page Skeleton)، أو المخطط الذي يحدد مواقع مكونات المحتوى.

    ومع ذلك، تُسند قواعد المصطلحات العربية (Arabic Glossaries) غالباً كلمة “قالب” لكلا المفهومين. وبينما يصف مصطلح “قالب” بدقة الهيكل الإنشائي، فإن استخدامه لكلا المصطلحين في نص واجهة واحد يخلق تعارضاً دلالياً حاداً (Severe Semantic Collision).

    التعارض الدلالي على أرض الواقع (كما يظهر في الصورة المرفقة)

    خذ بعين الاعتبار نص رسالة الخطأ الموضحة في الصورة:

    “No theme is defined for this template.”

    إذا تمت ترجمتها حرفياً باستخدام “قالب” لكلا المصطلحين، فستكون النتيجة:

    “لم يتم تحديد قالب لهذا القالب.”

    هذه الصياغة غامضة منطقياً وتقوض تجربة المستخدم (User Experience – UX)، وتترك المطورين ومسؤولي المواقع والمستخدمين النهائيين في حيرة حول ما إذا كان النظام يفتقر إلى نظام تصميم (Design System) أم إلى تخطيط هيكلي للصفحة.

    حل الغموض باعتماد مصطلح “مظهر”

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

    “لم يتم تحديد مظهر لهذا القالب.”

    من خلال حصر استخدام “قالب” بشكل صارم لمصطلح Template (الهيكل)، وتبني مصطلح “مظهر” (أو “سمة”) لمصطلح Theme (المظهر البصري/التنسيق)، فإننا نحقق إنجازات متعددة في هندسة التعريب (L10n Milestones):

    1. الدقة والوضوح الوظيفي (Precision & Functional Clarity): يدرك المستخدمون فوراً أن “مظهر” يشير إلى قواعد التصميم المرئي أو التنسيق النشط المطبق على المخطط الهيكلي الأساسي (القالب). لقد اخترنا هذا المصطلح تحديداً للتركيز على المظهر البصري (Focusing on Visual Appearance)، مما يمنع أي لبس وظيفي.
    2. تناسق قاعدة المصطلحات (Glossary Harmony): يؤدي تمييز هذه المصطلحات إلى منع تعارض مدخلات ذاكرة الترجمة (Translation Memory – TM) وتجنب الغموض المصطلحي (Terminological Ambiguity) عبر مشاريع التعريب متعددة المطورين.
    3. الاتساق عبر المنظومات التقنية (Consistency Across Ecosystems): يضمن توحيد المصطلحات عبر نواة ووردبريس (WordPress Core)، وإضافات البلوكات (Block Plugins)، وسير عمل تحرير الموقع الكامل (Full Site Editing – FSE) حفاظ الواجهات المعربة على وضوح مؤسسي راسخ.

    في توطين البرمجيات (Software Localization)، تؤثر الدقة اللغوية تأثيراً مباشراً على سهولة الاستخدام (Usability). وعندما تُدمج قواعد المصطلحات المستهدفة (Target Glossaries) مفاهيم تقنية متمايزة في مصطلح واحد، فإن تبني نهج سياقي سلطوي (Authoritative Context-First Approach) لتحسين المصطلحات يضمن بقاء الواجهة بديهية واحترافية، وهو ما يرقى لتطلعات المستخدمين في أسواقنا المستهدفة.

  • Faster l10n with GPaste

    Make Your Software Localization Workflow Faster with GPaste

    If you work in software localization, your day is all about precision, context switching, and consistency. You translate string resource files, JSON objects, PO files—and you keep repeating the same technical patterns and terms. On Linux, GPaste is a clipboard manager that can save you a lot of keystrokes and speed up your translation pipeline.

    Why Localization Pros Need a Clipboard Manager

    Localization isn’t just about translating words. You also have to preserve structure across languages. Every time you move between a TMS, a code editor, and reference glossaries, you’re copying and pasting the same kinds of snippets. A clipboard history tool lets you capture them once and pull them up whenever you need them.

    What GPaste Helps With

    • Reusing placeholders fast: Technical tokens and format specifiers like (%s) stay within reach—no retyping.
    • Keeping terminology consistent: Common UI labels, navigation items, search components, metadata tags, and localized terms stay in your history sidebar.
    • Editing across multiple files: Jump between string files and paste specialized strings, technical components, or script references like JavaScript without losing your place.

    Getting More Efficient on Linux

    Adding a clipboard history manager to your routine removes the small friction points that slow you down. It helps you stay focused on what really matters: writing natural, context-aware translations for users around the world.


  • Precision Over Simplicity in l10n

    Why Secure Custom Field Should Translate “Render” as تَصْيير, Not عرض

    Screenshot 1: Current Arabic translation using “لعرض”

    Screenshot 2: Suggested Arabic translation using “لتَصْيير”

    As an Arabic General Translation Editor (GTE), I am committed to high-impact community work for community projects. That means every string I review is not just a word choice—it is a decision that affects thousands of Arabic-speaking developers, site builders, and contributors. Recently, while localizing Secure Custom Field (SCF), I encountered a string that perfectly illustrates the tension between technical precision and user-friendly simplicity:

    “Specify the style used to render the clone field.”

    The current Arabic translation uses لعرض (“to display”). A suggested alternative uses لتَصْيير (“to render”). Both are defensible in isolation. But for SCF, the better choice is clear: تَصْيير.

    Render Is a Process, Not Just a Result

    In software engineering, “render” has a specific meaning. It describes the computational process of generating a visual output—an image, a UI element, a DOM node, a template—from code, data, or a model. تَصْيير is the technically precise Arabic term for that process. It maps directly to browser rendering, template rendering, and field rendering.

    عرض, by contrast, translates closer to “display,” “show,” or “presentation.” It focuses on the result, not the mechanism. For a general user interface, that simplification is often ideal. The average user does not need to know how the backend builds the page; they just want to know how a field will appear on the front end.

    But Secure Custom Field is not a general user interface. It is a developer tool.

    SCF Is Generally Used by Developers

    Secure Custom Field is used by developers, agencies, and technical site builders. They create custom fields, configure clone fields, write PHP, register field groups, and integrate SCF into custom themes and plugins. Even a settings label like “Specify the style used to render the clone field” is read by someone who understands the difference between rendering and displaying.

    If we translate “render” as عرض, we flatten that distinction. A developer reading the Arabic string may wonder: Is this about CSS display? Is it about front-end presentation? Or is it about the actual rendering process of the clone field? تَصْيير removes that ambiguity. It tells the developer exactly what is being configured.

    Consistency Is Community Infrastructure

    As a GTE, my responsibility goes beyond one string. I am building a glossary that will be reused across SCF and other community projects. If we translate “render” as عرض here, what happens when the next string says “render template,” “render callback,” or “render field”? Do we translate all of them as عرض? That would erase the technical meaning. Do we switch to تَصْيير later? That would create inconsistency.

    A strong glossary says: render = تَصْيير, display = عرض. This distinction helps translators, developers, and users. It is high-impact community work because it scales. One good decision today prevents hundreds of inconsistent strings tomorrow.

    The User-Friendly Argument Has Limits

    A recent analysis of this string noted that عرض is highly natural for an average user. That is true—for average users. But SCF’s primary audience is not average users. It is developers. The argument for عرض assumes a non-technical audience that does not care about backend rendering. In SCF, that assumption is wrong.

    Yes, تَصْيير may feel slightly heavier or more academic. But in a developer-facing context, that heaviness is a feature, not a bug. It signals precision. It matches the mental model of the person configuring the field. Arabic developers deserve terminology that respects their expertise.

    RTL Readability and Technical Clarity

    Some may argue that “حدد التنسيق المستخدم لتصيير حقل النسخ” is less fluid than “حدد التنسيق المستخدم لعرض حقل النسخ.” RTL readability matters, but it should not override technical accuracy. The suggested translation is perfectly readable. It is slightly more formal, but SCF is a technical product. Formal precision is appropriate.

    Moreover, Arabic technical communities have increasingly adopted تَصْيير for rendering in development contexts. Using it in SCF aligns Arabic localization with modern technical Arabic, rather than forcing a generic UI term onto a developer tool.

    The Verdict: Use تَصْيير for SCF

    For Secure Custom Field, the better translation is:

    حدد التنسيق المستخدم لتصيير حقل النسخ

    This choice preserves the technical meaning of “render,” supports glossary consistency, and respects SCF’s developer audience. عرض remains an excellent choice for user-facing strings where “display” or “show” is the intended meaning. But SCF is not that context.

    As an Arabic GTE committed to high-impact community work, I recommend changing the current translation from لعرض to لتَصْيير. It is not about being purist. It is about being precise for the people who actually use the product. When we get terminology right for developers, we strengthen the entire Arabic WordPress ecosystem. That is community work worth doing.

  • Goal-Focused Attention

    Look Where You Want to Go: How Goal-Focused Attention Fuels Deliberate Practice and Real Achievement

    You have probably heard the advice given to new drivers and motorcycle riders: “Don’t look at the wall. Your car goes where your eyes go.” In racing, this phenomenon is called target fixation. If a driver stares at the barrier they are afraid of hitting, their hands unconsciously steer toward it. If they force their eyes to look at the open track, the gap, or the finish line, the body follows.

    Life works the same way. Whether in your career, your relationships, or your personal growth, the thing you stare at becomes the thing you move toward. If you fixate on obstacles, you will hit them. If you focus on the goal, you give yourself a fighting chance to reach it.

    But there is a deeper reason this matters—one that goes beyond motivation. Focusing on goals rather than obstacles is not just about feeling better. It is the engine behind deliberate practice, the scientifically proven method for achieving mastery. When you shift your attention from problems to outcomes, you stop merely reacting and start training with intention. That is how real achievement happens.

    This article explores why goal-focused attention matters—drawing on the wisdom of trainers and coaches, modern psychology, and literature—and how it directly enhances deliberate practice and measurable achievement. I’ll also share why I believe writing is one of the most powerful tools for locking in this focus.


    1. The Trainer’s Lens: Your Eyes Steer the Vehicle—and the Rep

    Coaches and athletes understand a simple physiological truth: the body follows the eyes. In sports, hesitation comes from looking at what you fear. A basketball player who stares at the defender instead of the hoop is more likely to miss. A public speaker who focuses on the audience’s frowns instead of their message loses their flow.

    The legendary hockey player Wayne Gretzky put it perfectly: “Skate to where the puck is going, not where it has been.” That is a goal-focused mindset. The puck’s current position—the obstacle, the chaos, the noise—is irrelevant. What matters is where you want it to go next.

    Another common coaching phrase is: “Obstacles are what you see when you take your eyes off the goal.” This reframes obstacles not as physical walls blocking you, but as distractions caused by a loss of focus. When you are deeply locked onto a desired outcome—whether it is landing a new client, finishing a marathon, or rebuilding trust in a relationship—the obstacles do not disappear, but they stop dominating your mental screen.

    Why this boosts deliberate practice: Deliberate practice, as defined by researcher Anders Ericsson, requires you to work on specific weaknesses just beyond your current ability. But if you focus on how far you are from perfection—how many mistakes you make, how slow you are, how awkward you feel—you become paralyzed. You practice the fear, not the skill. Goal-focused attention shifts your practice from avoidance to progression. Instead of thinking, “I keep messing up this presentation,” you think, “I am building a clear, confident opening.” You then practice the opening with full attention because your eyes are on the target behavior, not the error.

    When a coach says, “Aim for the bushes” (from the film The Other Guys), the humor hides a truth: if you aim low, you will definitely fail. If you aim high, you might clear the gap. In deliberate practice, that means setting a specific, challenging goal for each session—not just “don’t mess up,” but “deliver the first three lines without filler words.” That is a target you can hit.


    2. The Psychology Lens: What You Focus On Grows—and So Does Your Skill

    Modern psychology and performance science support what coaches have known for decades. The brain has a filtering system called the Reticular Activating System (RAS). It decides what information is important based on what you repeatedly tell it is important. If you constantly think about problems, risks, and failures, your brain will find more evidence of them. If you focus on goals, solutions, and opportunities, your brain will start spotting resources you previously ignored.

    The popular psychological principle “Where attention goes, energy flows” is not just motivational fluff. It reflects how neural pathways strengthen through repeated focus. The more you dwell on a problem, the larger it feels. The more you visualize and articulate a solution, the more your brain works on finding a way forward.

    Carl Jung warned, “What you resist, persists.” In other words, focusing on avoiding a bad outcome still keeps your attention glued to that bad outcome. If your goal is to “not fail,” your brain is still obsessed with failure. But if your goal is to “learn, adapt, and deliver value,” your brain engages creativity instead of fear.

    Psychologist Walter Anderson said, “Focus on the solution, not the problem.” That does not mean ignoring reality. It means giving the majority of your mental energy to what you can build rather than what you fear.

    Why this boosts deliberate practice and achievement: Deliberate practice is hard. It involves failing repeatedly in small ways. If your focus is on the obstacle—“I am not good at this yet, I keep making mistakes, I will never get it”—you will quit. But if your focus is on the goal—“I am one rep closer to mastery, I am improving my form, I am building a skill that will serve me”—you persist through the discomfort. Achievement is rarely about talent. It is about consistent effort over time. Goal-focused attention is what keeps you consistent because it makes the effort feel meaningful instead of punishing.

    In your professional life, solution-focused thinking makes you more valuable in meetings, more resilient in setbacks, and more likely to spot opportunities others miss. In your personal life, it reduces anxiety and rumination. You stop rehearsing worst-case scenarios and start rehearsing your next move. That mental space is where growth happens.


    3. The Literature and Philosophy Lens: The Story You Tell Yourself Becomes the Skill You Build

    Writers and philosophers have long understood that attention shapes identity. The German philosopher Friedrich Nietzsche wrote: “If you gaze long into an abyss, the abyss gazes also into you.” If you stare into darkness, problems, and despair, you eventually become consumed by them. You must look at the stars—the vision, the meaning, the goal—to remain whole.

    Earl Nightingale, a pioneer of personal development, simplified this idea: “You become what you think about most of the time.” That is both a warning and a promise. If your internal narrative is, “I am stuck, I am blocked, the economy is bad, my boss doesn’t like me,” you become the character who is defeated by obstacles. But if your narrative is, “I am moving toward a meaningful goal, and obstacles are just plot twists,” you become the character who grows.

    The French playwright Molière wrote, “The greater the obstacle, the more glory in overcoming it.” This is a subtle but powerful reframe. The obstacle is not a stop sign; it is the raw material of the goal. The challenge is not separate from the achievement—it is what makes the achievement meaningful.

    Why this matters for deliberate practice: Deliberate practice requires you to see yourself as a work in progress, not a finished product. If your story is “I am not talented, I am not disciplined, I always fail,” you will avoid practice because every session feels like evidence of your inadequacy. But if your story is “I am becoming someone who can do this,” every practice session becomes a chapter in a growth arc. You start to see obstacles as plot points, not endings. You keep practicing because you are invested in the character you are becoming.


    Why Writing Helps Lock In This Focus—and Accelerate Achievement

    I agree strongly that writing is one of the most effective ways to train your mind to focus on goals rather than obstacles. Writing forces you to externalize your thoughts. When fears and obstacles stay inside your head, they feel huge, vague, and overwhelming. The moment you write them down, they become concrete—and often smaller than you imagined. You can then intentionally redirect your attention.

    Here are four writing practices that help build positive mental space and fuel deliberate practice:

    1. The Brain Dump and Redirection: Write down every obstacle, worry, and fear you have. Get it out of your head. Then, on the next page, write down three goals and the first small step for each. You have just moved your attention from the wall to the open track.
    2. Pre-Practice Scripting: Before a deliberate practice session, write down the specific skill you are working on and the exact outcome you want. For example, “Today I am practicing the first five minutes of my presentation. By the end, I will deliver the opening without filler words.” This focuses your practice on the goal, not the general fear of public speaking.
    3. Post-Practice Reflection: After the session, write down what improved and what you will work on next. This trains your brain to see progress, which is essential for staying motivated through the hard parts of deliberate practice.
    4. The Obstacle Reframe: When you hit a wall, write it down, then answer this question: “What is this obstacle asking me to learn, change, or become?” That keeps your eyes on the destination while still respecting the journey.

    Writing gives you distance. It turns a messy mental storm into a clear map. It helps you see that the obstacle is not the whole picture—it is just one item on the page, while the goal is still there waiting. More importantly, writing makes your practice deliberate. You stop going through the motions and start training with intention. That is where achievement lives.


    For this reason, I always carry with me a notebook—as shown in the attached image—to write and ponder about actionable tasks.

    Writing bridges the gap between passive intention and deliberate execution. When goals and obstacles remain locked inside your head, they feel overwhelming and abstract. Putting pen to paper externalizes those thoughts, transforming vague worries into concrete, manageable problems.

    This notebook serves as a physical steering wheel for the mind. Instead of staring at the barriers mentioned in the article, jotting down actionable tasks allows you to:

    • Isolate the target: Strip away emotional noise and define the exact skill, metric, or outcome you are aiming for in your next practice session.
    • Break down the friction: Convert a daunting overarching goal into small, sequential steps that prevent paralysis and invite immediate action.
    • Maintain forward momentum: Use daily written reflections to shift your focus away from past mistakes and directly onto the open track ahead.

    Carrying a notebook ensures that goal-focused attention is not just a theoretical concept you read about, but a daily, tactile habit that actively fuels deliberate practice and real achievement.


    Conclusion

    You cannot always control the obstacles that appear in your path. But you can always control where you point your attention. Trainers show us that the body follows the eyes. Psychology shows us that the brain follows our dominant thoughts. Literature shows us that the story we tell ourselves becomes the life we live.

    When you focus on goals rather than obstacles, you do more than feel better. You practice better. You persist longer. You achieve more. Deliberate practice is not about ignoring your weaknesses; it is about shifting your focus from what is wrong to what you are building. That shift creates the mental space needed to improve.

    If you want more positive mental space and greater achievement—both personally and professionally—stop staring at the wall. Look at the gap. Look at the finish line. Look at the person you want to become.

    And if you struggle to do that, start writing. Put the fear on paper, then turn the page and write the goal. The simple act of writing may be the steering wheel you need to get your mind back on the road.

  • Ellipsis in WordPress

    The Ellipsis in WordPress: Why … Beats ... Every Time

    If you’ve spent any time developing for WordPress, you’ve probably encountered this seemingly trivial question: should you use three dots (...) or the proper ellipsis character (…) in your user-facing strings?

    It might look like a minor stylistic choice, but in the WordPress ecosystem, this decision has real implications for code quality, localization, and professional polish. The WordPress core team has made their position clear—and here’s why you should follow their lead.


    The Problem with Three Dots

    Three periods might be the quickest thing to type, but they’re a typographic compromise. They’re the plain-text fallback, not the real thing.

    WordPress does have a built-in function called wptexturize() that automatically converts three periods into a proper ellipsis in post content. However, you should never rely on this for translatable strings. Here’s why:

    • Inconsistent application: wptexturize() isn’t guaranteed to run in every context—JavaScript strings, HTML attributes, or certain admin screens may bypass it entirely.
    • Unpredictable results: What works in one context might break in another, leading to visual inconsistencies across your plugin or theme.

    The WordPress Core Standard

    The WordPress core team has been systematically replacing three dots with proper ellipses for years.

    In Changeset 24207 (May 2013), core contributor SergeyBiryukov made a sweeping update across multiple files with the message: “Use ellipsis instead of three dots”. This changeset touched 16 different files, removing instances of ... from translatable strings throughout the admin.

    Then came Changeset 33939 (September 2015), with the explicit message: “Round 2 of: We should use ellipses … / … instead of three dots/periods … e.g Loading… not Loading…”.

    The message is clear: WordPress core developers actively prefer the proper ellipsis character.


    The Best Practice: Use … in Translatable Strings

    For WordPress localization (l10n), the recommended approach is to use the actual ellipsis character directly in your translatable strings:

    // ✅ Recommended
    __( 'Loading…', 'my-text-domain' );
    __( 'Continue reading…', 'my-text-domain' );
    
    // ❌ Avoid
    __( 'Loading...', 'my-text-domain' );
    __( 'Continue reading...', 'my-text-domain' );

    Why This Matters for Localization

    1. Translators need full control

    Different languages have different conventions for ellipses. Some languages use different characters, some add spaces, and some have specific rules about when and how to use them. By including the ellipsis as part of the translatable string, you give translators complete control over how it appears in their language.

    2. Context is everything

    An ellipsis on a button (“Save As…”) serves a different purpose than one indicating truncated text (“Read more…”). Keeping the ellipsis with its specific string allows translators to handle these nuances appropriately.

    3. Avoids fragmented strings

    Hard-coding punctuation outside of translatable strings can lead to awkward phrasing in other languages where word order differs.


    … vs … vs …

    You have three options for representing an ellipsis:

    OptionExampleBest Used For
    Unicode character…Translatable strings (recommended)
    HTML entity (named)…HTML templates where character encoding might be unclear
    HTML entity (numeric)…RSS feeds or contexts where named entities may break

    For translatable strings, the actual Unicode character … is the clear winner. It’s simple for translators to see and work with, and it aligns with WordPress core practices.


    What About Escaping?

    A common concern is whether esc_html() or similar escaping functions will handle the ellipsis character correctly.

    Good news: esc_html() passes the ellipsis character through unchanged because it’s not a character that needs escaping for HTML. It’s completely safe.

    However, if you use the HTML entity … inside a translatable string and then apply esc_html(), you might end up with literal … displayed to users if the string is double-escaped or used in certain contexts.


    Summary: The Bottom Line

    PracticeVerdict
    __( 'Loading...' )❌ Avoid—three dots are a typographic compromise
    __( 'Loading…' )⚠️ Risky—may break with escaping or in certain contexts
    __( 'Loading…' )✅ Best practice—clean, translatable, and core-approved

    References for Further Reading


    Final Word

    Using the proper ellipsis character … in your WordPress translatable strings isn’t just about looking professional—it’s about following core conventions, respecting translators, and writing more robust code.

    The WordPress core team has done the heavy lifting of standardizing this practice. All that’s left is for you to adopt it.

    Next time you type ... in a translatable string, stop and use … instead. Your users—and your translators—will thank you.


    Have thoughts on this? Drop a comment below or reach out on Twitter. And if you found this helpful, consider sharing it with your fellow WordPress developers.