Muhammed Senussi
Muhammed Senussi
  • Muhammed Senussi
Angular Internationalisation: Build-Time or Runtime?Angular

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 dir on 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.

2 Comments

  • Yara Mansour

    January 20, 2026

    الخصائص المنطقية نصيحة ممتازة. أضفنا العربية بعد سنتين واستغرق تعديل الأنماط وقتاً أطول من الترجمة نفسها.

    • Muhammed Senussi

      Muhammed Senussi

      AuthorJanuary 20, 2026

      هذا هو النمط المعتاد: الترجمة تُقدَّر جيداً، والتخطيط لا يُقدَّر إطلاقاً. أنصح دائماً ببناء الواجهة بالخصائص المنطقية حتى لو لم تكن هناك خطة للعربية، فالكلفة صفر عند البداية وباهظة لاحقاً.

Leave a comment