This site runs in four languages including Arabic, so I have had to take this decision seriously rather than theoretically.
The trade-off
Angular’s built-in i18n compiles a separate application per locale. Each bundle contains only its own strings, which is optimal for delivery, and it means a deployment per language and a full rebuild for a typo. Runtime translation ships every string to everyone and lets a user switch language without a page load, which matters when your audience is genuinely multilingual rather than segmented by country.
What tipped it for me
- Users who switch. A Dutch-speaking Arabic reader may want the interface in English and the article in Arabic, and build-time locales make that a navigation rather than a toggle.
- Content, not just interface. Article bodies live in data, so they are runtime regardless — having the interface work differently adds a second mechanism for no gain.
- Right-to-left is a layout concern rather than a translation one. It needs
diron the document, logical CSS properties throughout, and mirrored icons — and it must work whichever approach you pick.
Use logical properties from the start. Retrofitting margin-inline-start across a mature stylesheet is a genuinely tedious week.
Tags:
2 Comments
Leave a comment
Sign in to leave a comment.
Signing in is unavailable right now.







Yara Mansour
January 20, 2026الخصائص المنطقية نصيحة ممتازة. أضفنا العربية بعد سنتين واستغرق تعديل الأنماط وقتاً أطول من الترجمة نفسها.
Muhammed Senussi
AuthorJanuary 20, 2026هذا هو النمط المعتاد: الترجمة تُقدَّر جيداً، والتخطيط لا يُقدَّر إطلاقاً. أنصح دائماً ببناء الواجهة بالخصائص المنطقية حتى لو لم تكن هناك خطة للعربية، فالكلفة صفر عند البداية وباهظة لاحقاً.