Neutral runs in Arabic text — where a mark is actually required =============================================================== Each case below is given twice: WITHOUT the mark (how the string usually arrives from a translator) and WITH it (what renders correctly). The two lines differ by exactly one invisible character, so a diff tool that ignores them will show them as identical. 1. A trailing Latin identifier followed by Arabic punctuation without: تم رفع الملف report-2026.pdf. with: تم رفع الملف ⁨report-2026.pdf⁩. why: the full stop is neutral and sits between an LTR run and the RTL paragraph, so without the isolate it can attach to the wrong side and render at the far left of the line. 2. A phone number inside an Arabic sentence without: اتصل على 555-0143 للحصول على المساعدة. with: اتصل على ؜555-0143؜ للحصول على المساعدة. why: the hyphen between two European digit runs is neutral; ALM pins the whole number so the segments do not swap and render as 0143-555. 3. A version range without: الإصدارات 2.4 - 3.1 مدعومة. with: الإصدارات ⁦2.4 - 3.1⁩ مدعومة. why: the spaces and the hyphen are all neutral, and the two numbers reorder without the isolate. 4. A file path with a mixed-script component without: احفظ في C:\Users\رنا\Documents with: احفظ في ⁦C:\Users\⁨رنا⁩\Documents⁩ why: nested isolates — an RTL name inside an LTR path inside an RTL sentence. FSI is used for the name because its direction comes from the data, not from the template. 5. A percentage and a currency amount without: تم استخدام 87% من 12,345.60 EGP with: تم استخدام ؜87%؜ من ؜12,345.60 EGP؜ why: the percent sign and the comma are neutral; ALM keeps each measurement together. 6. A bracketed LTR insertion, showing bracket MIRRORING without: راجع الدليل (Novus File Manager) قبل المتابعة. with: راجع الدليل (⁨Novus File Manager⁩) قبل المتابعة. why: in an RTL paragraph the glyph U+0028 LEFT PARENTHESIS is drawn as ")" — mirroring is a RENDERING property, so the stored code point never changes and a byte test must not expect it to. Assert on: (a) the "with" strings still contain their marks after a JSON/PO/XLIFF round trip, (b) a bidi implementation produces the same visual order for the "with" strings under both paragraph directions, and (c) stripping the marks turns each "with" line into its "without" twin.