Django

Django Internationalization

i18n, gettext, translation strings, locale middleware, language detection, translation files

20 interview questions·
Senior
1

Which function should be used to mark a string as translatable in Django?

Answer

The gettext function, commonly imported with the _ (underscore) alias, is the standard method for marking translatable strings in Django. It looks up the translation of the string in the message catalog corresponding to the active language and returns the translated version if available.

2

What is the difference between gettext() and gettext_lazy() in Django?

Answer

gettext_lazy() returns a proxy object that is only evaluated when converted to a string, which is essential for translations defined at module level (like in models or forms). gettext() immediately evaluates the translation at call time, which is problematic if the language isn't determined yet.

3

Which Django middleware is responsible for activating the language for each request?

Answer

LocaleMiddleware examines the request to determine the user's preferred language by checking multiple sources: URL prefix, cookies, browser's Accept-Language header, and the LANGUAGE_CODE setting. It then activates the corresponding language for the entire request duration.

4

Which Django command extracts translatable strings from the source code?

5

Which command compiles .po translation files into binary .mo files?

+17 interview questions

Master Django for your next interview

Access all questions, flashcards, technical tests, code review exercises and interview simulators.

Start for free