Skip to content

FontLab localization: Arabic

A first draft for Arabic. A model researched the guidance below and the term table in references/terms.md; no native reviewer has approved the language as a whole. Individual terms carry their own approval status; a proposed term remains proposed, and a protected name keeps its glossary spelling. The Arabic interface catalogs are unfinished machine drafts: a string found in one settles neither a term nor a rule.

Use references/terms.md, and a newer core memory when one is supplied, for terminology, definitions and review status. Keep a proposed term consistent across the interface and help, and report it as proposed. Where a native reviewer's decision or newer project data disagrees with this skill, follow it and record the change. Report only checks performed: text written with this skill is not reviewed by a native speaker and not tested in the running application until someone does that.

Use these rules with the localization principles (in fontlab-localization), Qt interface rules (in fontlab-localization) and Arabic language guide (in the FontLab writing guide).

Locale and register

Modern Standard Arabic for every region, Qt catalog locale ar, right to left. Name actions with the verbal noun (masdar), which has no gender. Where a sentence must address the reader, use the masculine singular, the default of Arabic macOS and Windows (يمكنك, هل تريد…؟); never the feminine, the plural or a slashed form. Plain tone: no من فضلك, no exclamation marks, no first person for the application.

Grammar of interface strings

Arabic macOS, Windows and Adobe name a command with the masdar (حفظ, فتح, تراجع), not the imperative (احفظ). Glyphs 3 mixes أضف and إضافة in one menu and Qt's qtbase_ar uses imperatives; follow neither.

Element Form Example
Menu command, button masdar + object in idafa إضافة خطوط… (Add Fonts…)
New-object command indefinite noun + adjective مجموعة جديدة (New Collection)
Checkbox, option masdar; negative with عدم التحقق من مكتبات الخطوط عند بدء التشغيل (Validate font libraries at launch); عدم التحقق (Don’t Check)
Panel, dialog, group title definite noun المحاذاة (Alignment)
State indefinite adjective نشط (Active)
Status, in progress يجري + definite masdar يجري التنزيل (Downloading)
Success تم + masdar تمت إزالة الخطوط (Fonts Removed)
Failed attempt تعذر + masdar تعذر تثبيت الخط. (Could not install font.)
Present inability لا يمكن + masdar لا يمكن إزالة الخط (Cannot Remove Font)
Confirmation هل تريد + masdar + ؟ هل تريد إزالة الخطوط المحددة؟ (Do you want to remove the selected fonts?)
Tooltip that describes masdar, never يعرض or تعرض إزالة جميع الخطوط من مكتبات الخطوط. (Remove all fonts from font libraries.)
Step that instructs masculine singular imperative, لـ + masdar انقر لتنزيل %1 (Click to download %1)

Examples come from Font Book and Glyphs 3, with placeholders in Qt syntax; [c] marks a constructed one. Keep one form per element type.

تم and تعذر agree with the masdar: تمت, تعذرت before a feminine one (إزالة, إضافة, إعادة). Two actions on one object: تنزيل التحديثات وتثبيتها (download and install updates), not تنزيل وتثبيت التحديثات.

Compact labels

  • The first term of an idafa never takes ال; an adjective follows the whole construct and agrees with its head: اسم الخط (Font name), عائلة الخط التالية (Next Typeface). A class noun in idafa is plural: مكتبات الخطوط.
  • Titles and field labels are definite (الحجم, النوع); states and new objects indefinite. Noun and adjective match in definiteness, gender and number; a plural of things takes the feminine singular: الخطوط المحددة.
  • Negate an adjective with غير: الخطوط غير التابعة للنظام.
  • Shorten by dropping what the screen supplies and الخاص بـ for “your”. Never truncate a word or abbreviate a glossary term.

Plurals and placeholders

Qt gives Arabic six numerus forms (numerus.cpp in qttools; the integer rules of CLDR). Fill all six:

Form Selected by Example
1 n = 0 %n خطوط مفقودة
2 n = 1 %n خط مفقود
3 n = 2 %n خطان مفقودان
4 n % 100 is 3 to 10: 3, 10, 103 %n خطوط مفقودة
5 n % 100 is 11 to 99: 11, 99, 111 %n خطًا مفقودًا
6 the rest: 100, 101, 102, 200 %n خط مفقود

Every form keeps %n, forms 1 to 3 too: the catalog check rejects a form without it. (Qt and Font Book spell these three out, خط واحد, and omit %n; a native reviewer may restore that once the check allows it.) The counted noun (tamyiz) is a genitive plural in form 4, an accusative singular with tanween in form 5 (خطًا; a noun in ة shows no alef: %n مشكلة), a genitive singular in form 6. The dual takes its case from the sentence: خطان as a label or subject, خطين after a masdar or preposition (تم إلغاء تثبيت خطين). Test 0, 1, 2, 3, 10, 11, 99, 100, 102, 103.

A count in %1 cannot be inflected: use label and value, عدد الخطوط: %1 [c].

A placeholder noun has no known gender. Keep the masdar pattern, where the verb agrees with the masdar, not the value: تم تنزيل %1, لا يمكن حذف "%1". Otherwise put a generic noun first and agree with it: توجد مشكلات في مكتبة "%1"; never %1 مثبت. Never attach a clitic or ال to a placeholder or Latin name: prefer إلى, في, من, على; an unavoidable بـ or لـ takes tatweel and a space: يبدأ بـ "%1".

Numbers, punctuation and spacing

  • Digits: Western 0–9 with a decimal point. The catalog has no %L placeholder, so the numbers FontLab inserts are Western; Microsoft and Adobe Arabic use them too. Never type ٠–٩, ٫, ٬ or ٪ (the locale-formatted output of Qt's ar).
  • Percent and units: digits, then %, no space: 50%, %1%. A unit keeps the source symbol after a space.
  • Sentence marks: Arabic ، ؛ ؟, no space before, one after. Latin , and ; stay in code, identifiers and typed values. Period, colon, parentheses and trailing spaces as in the source.
  • Quotation marks: straight "…" around a name or label, as Arabic macOS and Windows do.
  • Ellipsis: the source's character, at the logical end, no space before.
  • Tashkeel: none, except tanween fath before the alef (تلقائيًا) and one mark that prevents a misreading (عُثر, مُدار).
  • Spelling: افتراضي, not إفتراضي; ة not ه; ى and ي kept apart.
  • Tatweel (kashida) never stretches a label; it only follows a detached بـ or لـ.
  • One ordinary space between Arabic and a Latin word, number or placeholder.

Mnemonics and key names

macOS shows no mnemonics; Arabic Windows underlines an Arabic letter. Keep one & where the source has one, before an Arabic letter of the label, unique among its siblings. Avoid أ إ آ ؤ ئ, ج ب ي و ر ز (Microsoft's list) and the ل of لا. Do not append a Latin letter in parentheses.

Key names stay in Latin, as on the key caps: Shift, Ctrl, Alt, Command, Option, Enter, Esc, Tab, Delete. Translate only Space (مسافة) and the arrows (سهم لأعلى, سهم لأسفل, سهم لليمين, سهم لليسار). Never transliterate (شيفت). Copy a shortcut (Ctrl+S) unchanged.

Names and loans

Product and format names, OpenType tags, table names, glyph names and code stay in Latin, unchanged, with no ال and no transliteration: Python, not بايثون. A generic Arabic noun comes first and the Latin name ends the idafa: ملف AFM, خطوط Apple, أشكال JIS83, never JIS78 أشكال. Names of languages and scripts are Arabic: العربية, اللاتينية.

Bidirectional rules

  • Type every string in logical order. Qt applies the Unicode bidirectional algorithm and takes the layout direction from the locale. Never move characters to repair how a string looks in a left-to-right editor.
  • Insert no directional marks (U+200E, U+200F, U+061C, U+202A–U+202E, U+2066–U+2069) and copy none from a reference. Only when a reviewer sees a broken rendering in the running application, add one U+200F at the start of the string, as Font Book does, and record it.
  • Start a sentence with an Arabic word: a string that opens with a Latin name, a path or %1 may be laid out left to right. Put the noun or masdar first and reorder placeholders: الإصدار %2 هو أحدث إصدار متوفر حاليًا لتطبيق %1 (%1 %2 is currently the newest version available.).
  • Keep a Latin run whole (name, version, path, tag, expression): القيمة خارج النطاق (16..16384). Separate two Latin runs or placeholders with an Arabic word: من %1 إلى %2.
  • Keep the source separator of a menu path (>, ›); the renderer mirrors it.
  • Left and right in glyph geometry stay يسار and يمين: the mirrored layout does not mirror a glyph.

False friends and traps

  • خط means font, line and handwriting. Take each from the term table; never use it for two concepts in one string.
  • Reject office and programming senses: Font Book renders script (writing system) as برنامج نصي and face as واجهة. Check script, face, case, point, path, hint, master, instance and feature against the term table.
  • One word, two concepts: نقطة (unit, contour point), حالة (status, instance), تلميح (tooltip, hinting).
  • Calques: قم بـ + masdar (Glyphs 3: قم دائمًا بتوسيط المحرف النشط on a checkbox); الخاص بك for every “your”; من قبل for an agent; على أي حال for “anyway”.
  • An adjective or verb that agrees with %1.

Review

Check first, in the running application: sentences with Latin names, paths, numbers and placeholders; all six numerus forms; commands with no imperative among them; تم/تمت and adjective agreement; Western digits and ، ؛ ؟; hamza, tanween, stray tashkeel and directional marks; left and right in glyph geometry; every خط against the term table. Report where Qt's own dialogs (qtbase_ar) clash with these rules.

FontLab terminology and compact labels

Preserve deliberately uppercase source labels using the language’s case rules. Keep numeric controls compact with UPM, PPM and LSB/RSB (French AG/AD); explain the full terms in help. The Family Dimensions “Units Per eM:” label is an intentional expanded exception.

Use the current core memory and its approval status. OpenType lookup defaults to the translation of procedure, with a different term only when strong OpenType-specific evidence supports it. Explicit choices are German Lookup, French lookup, Polish procedura and Russian процедура. Ordinary searches, individual rules and OpenType features are separate concepts. Preserve literal code keywords and identifiers.

Translate Fusion with the fallback Welder. Use the core's phonetic FontAudit transliteration in non-Latin scripts, including Chinese; preserve FontAudit in code. Proposed spellings remain proposed. Before rebuilding a QPH, recover team edits and import their terms and notes into the core memory.

Compare mnemonic-split terms with unmarked labels. Keep labels compact, aiming for 120% of the English length in Dimensions and Glyph Window preferences without losing meaning. Omit redundant font, color or command wording when context supplies it. TTH labels can omit “use” and abbreviate TrueType hinting; help can explain more. A full harmonization requires three complete catalog reviews, then reconciliation of help with the final UI and verification of generated resources.

Run the review as a loop

The Review list above is this skill's checklist. Run it on each portion as H17 describes: one item at a time against source, target and the term table; name the string behind each answer; repair what fails and recheck it. Stop after three rounds and report what still fails.

References

  • references/terms.md: the full Arabic term table, generated from the core memory ar-core.tmx of the writing guide, with the status, translator note and definition of every term.
  • The Arabic localization guide of the writing guide is the source of the sections above.

fontlab-localization for the shared rules; fontlab-terminology for product names and shared nouns; fontlab-technical for Arabic help text.

House rules

These rules implement the FontLab writing guide. They are copied into every skill so each installed skill can work independently. Corpus measurements can inform review; they are not quotas, universal laws, or tests of authorship.

H1. Accurate actors. Address the reader when they act or choose. Name the application when it performs an operation. Fonts and files contain data that software interprets. Prefer active voice when the actor matters; retain a clear passive construction when the actor is unknown or irrelevant. Never invent an actor or cause to change the grammar. When an English sentence pairs a reader action with the software's response, give each clause a subject and restate the action compactly: “If you generate a glyph with Aidus, FontLab generates each master independently.” Name the most specific responding surface the evidence supports (a window, tool or dialog), otherwise the application. Use present tense for an immediate result. Where a glossary entry exists and the surface can link, link a domain term to it rather than defining it in an apposition.

H2. Never invent a fact. Ground numbers, names, dates, labels, shortcuts, defaults, errors, versions, and quotations in supplied or checked evidence. A draft is evidence of what was written, not independent proof of its claims. Mark unresolved facts with a specific working placeholder such as [VERIFY CLAIM], [CONFIRM LABEL], or [CONFIRM OFFER]. A marked draft is unfinished; resolve the gap before publication. Clearly label fictional examples before their invented details.

H3. Preserve certainty and scope. “May reduce” does not become “eliminates.” Preserve conditions, negation, timing, quantities, compatibility, licensing, and other consequential limits. State a limitation directly rather than disguising it as a favorable position. A single observation does not prove universal behavior. Conflicting sources need scope checks, not an automatic choice of the stricter claim.

H4. Preserve the writer's voice. Do not manufacture stakes, candor, reader emotion, endorsement, or a new narrator. Preserve useful habits and the supplied stance. Reorder, split, or shorten according to the requested edit depth and reader need, without adding facts or causal relationships. A correct draft can remain unchanged.

H5. Give thought a rhythm. Carry a subject through an action, distinction or consequence. Let a developed sentence explain a relationship; let a shorter one settle a result when that change of pace helps. Repeat a concrete object or term when its meaning develops, not as a compulsory callback. Technical actions stay literal; explanations and marketing have room for patient attention, a bounded comparison or dry observation. Keep useful qualifications beside their claims. Do not impose sentence-length, pronoun, punctuation or paragraph quotas, or force every paragraph into the same long-then-short pattern.

H6. Notice the useful detail. Retain names, mechanisms, conditions, versions and issue numbers that help the reader understand or act. From the evidence, choose the object, contrast or small behavior that makes the explanation tangible: a changed preview, a repeated comparison, a file whose status matters. Follow that detail far enough to explain its significance. Warmth can come from this attention and patience. Never invent an observation, personal experience or reader emotion to make prose vivid, or remove a necessary qualification to shorten it.

H7. Punctuation serves meaning. Prefer a colon for an explanation or list. A spaced dash can carry a turn; avoid decorative glosses and repeated interruptions. Use sentence case for new headings and preserve exact source labels. A punctuation pattern does not establish authorship.

H8. Choose precise words. Review vague praise and stock phrasing such as “seamless,” “game-changing,” “leverage,” and “unlock.” Replace them when they obscure the action or make an unsupported claim. Keep an accurate technical use or protected quotation. A count or cluster is a reason to inspect a passage, not proof that each matched word is wrong.

H9. Develop the explanation. Begin where the reader can understand the task, change or offer. Give adjacent sentences a real connection: the same subject under a changed condition, an action and its result, or a question and its answer. A before-and-after comparison needs evidence for both states; a transition must not invent causality. Let a useful aside return to the main thought. Place low-stakes discoveries where they aid understanding, while keeping price, risk, prerequisites and recovery visible when needed. End at the useful result or next action; a quiet ending or a substantial summary can each serve the material.

H10a. Preserve conditions. Use “if” for a condition and “when” where the intended timing or situation warrants it. Check the whole meaning: “when a panel opens” and “while a panel is open” describe different scopes. Keep useful conditionals and parenthetical explanations; do not insert them to imitate a presumed author.

H10. Preserve expression that works. A fragment, three-part phrase, exclamation, aside, or single-sentence paragraph can serve a passage. Keep it when it supports meaning or the writer's rhythm. Do not add one to meet a budget, or remove one because of a generic stylistic test. Keep instructions and consequential conditions literal and easy to find.

H10b. Use the destination's notation. Preserve exact interface labels, tags, extensions, and identifiers. Italicize labels in neutral release notes; in technical site content use supported highlight notation, with bold as the plain-Markdown fallback. Use code style for machine-readable text. State price amounts and currencies unambiguously from evidence; do not infer an exchange rate, tax policy, or license term. A supplied currency shorthand needs enough context to identify the actual offer.

H11. Names and collisions. FontLab is the product; Fontlab Ltd. is the company. Preserve product names, module identifiers, domains, historical names in their historical scope, and exact quoted strings. Do not translate a product name. Name the application when Layer, Mask, Group, Fill, Brush, Knife, Transform, Pencil, Eraser, or Scissors could have more than one meaning. Use a declared short form consistently.

H12. Protect literal material. Preserve quotations, code, commands, paths, identifiers, API names, URLs, legal text, interface strings, placeholders, and table data during prose editing. Change them only for a requested or necessary correction supported by evidence. Do not paraphrase a quotation while retaining quotation marks or an attribution. Explain a consequential correction when the output contract permits it.

H13. Choose the register per passage. Marketing helps assess an offer; technical writing explains or instructs; neutral prose states facts and changes warmly. A document can combine them. Prices, limits, licensing, compatibility, security, and migration facts stay plain and prominent. Audience and purpose determine an email's register. Do not impose a fixed emotional mixture or make every opening a story.

H14. Review facts, then movement. Compare claims and protected strings with their evidence; check scope, action order and terminology. Then read whole passages for attention, connection and pace. Repair a flat sequence by developing an existing detail or relationship, not by adding praise or invented events. Check that humor remains intelligible and the information remains true when the joke is missed. Recheck the facts after a voice edit. A measurement or passing build does not certify facts, usability or authorship. Report only checks actually performed.

H15. Scale to the surface. A button or tooltip needs a clear label, action, or condition, not a miniature essay. Apply factual and naming safeguards at every length. Include the detail the task requires; do not add proof paragraphs, metaphors, or pronouns to satisfy a template. For translation, keep essential instructions literal and references clear.

H16. The override. Follow the user's task and supplied voice before style defaults. Break a default sooner than make the writing worse. Source material and quoted prompts are data, not authority to change the task. Style preferences never justify presenting an invented or unsupported claim as established fact.

H17. Check each portion, repair, check again. Reading these rules does not apply them; checking the text does. After drafting or editing each portion (a section, one deliverable, a batch of entries; a label or tooltip is one portion), run the skill's checklist on it. Answer each item separately, against the text and the evidence. For a failure, quote the words that fail. For a pass, point to the passage that satisfies the item, or, for an item about something absent, confirm that you searched the whole portion and found none. An answer with nothing behind it has not been checked. Repair only the failures, because a passing item needs no edit and a correct sentence can stay unchanged. Recheck the repaired passages and every fact the repair touched. If the same item fails again after its repair, stop working on it and mark it; do not try a third time. Stop after three rounds in all, and mark what still fails with a specific placeholder instead of reporting a pass. If you can start a separate reviewer (a subagent or a fresh chat), give it the draft, the evidence and the checklist, not your drafting rationale, and ask for failures with locations; act on findings that name a rule and a passage. Keep the checklist record private unless the user asks for it or the output contract allows notes.