\documentclass[12pt]article \usepackagefontspec \usepackagepolyglossia \setmainlanguagearabic \setotherlanguageenglish \newfontfamily\arabicfont[Script=Arabic]Noto Sans Arabic \newfontfamily\englishfontLatin Modern Roman
# Restore code blocks for key, block in placeholders.items(): translated = translated.replace(key, block)
% Code blocks (left‑to‑right) \usepackagelistings \lstset basicstyle=\ttfamily\small, language=, breaklines=true, frame=single, numbers=left, numberstyle=\tiny, xleftmargin=0.5cm, xrightmargin=0.5cm, columns=fullflexible, keepspaces=true, escapeinside=(*@@*)
$body$
% RTL support \usepackagebidi \setlength\parindent0pt \setlength\parskip6pt
protected, placeholders = protect_blocks(text) translated = translator.translate(protected)
dst.write_text(translated, encoding='utf-8') print('✅ Translation saved to', dst) PY Run the script on sections (e.g., one chapter at a time) to avoid hitting API limits and to make post‑editing easier. 2.4.2 Post‑Editing Checklist | Item | What to look for | |------|------------------| | Technical terminology | Verify against your glossary. | | Numbers & units | Keep Arabic numerals ( ١٢٣ ) or Western ( 123 ) consistently (choose one). | | Directionality | Ensure bullet lists, tables, and headings flow RTL. | | Code snippets | Keep them as‑is (English) – wrap them in a left‑to‑right block. | | Figures & screenshots | Add Arabic captions ( \caption... ) and, if needed, mirror UI screenshots. | 2.5 Polish the Arabic Document 2.5.1 Create a Pandoc Template (Arabic‑Ready) Save this as templates/arabic.tex : ktab my system mtrjm llrbyt pdf
# Preserve code fences & markdown syntax by not translating them def protect_blocks(txt): # replace code fences with placeholders blocks = {} def repl(m): key = f"__CODE_len(blocks)__" blocks[key] = m.group(0) return key txt = re.sub(r'```[\s\S]*?```', repl, txt) # triple backticks txt = re.sub(r'`[^`\n]+`', repl, txt) # inline code return txt, blocks
\newenvironmentRTL\beginR\endR \begindocument \beginRTL $if(title)$ \section*$title$ $endif$
# Simple script to translate a Markdown file python - <<'PY' from deep_translator import DeepLTranslator import pathlib, sys, re | | Directionality | Ensure bullet lists, tables,
pdftotext output/system_xyz_ar.pdf - | grep -q "[\x0600-\x06FF]" && echo "✅ Arabic text detected" | Channel | Recommended format | |---------|--------------------| | Email / intranet | PDF (max 10 MB, compressed). | | Web download | PDF + an HTML version (run pandoc -t html5 ). | | Printed manual | Use the same PDF; print with a printer that supports RTL (most modern printers do). |
# macOS (Homebrew) brew install pandoc brew install --cask mactex-no-gui # includes XeLaTeX