
Django Internationalization
i18n, gettext, translation strings, locale middleware, language detection, translation files
1Which function should be used to mark a string as translatable in Django?
Which function should be used to mark a string as translatable in Django?
답변
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.
2What is the difference between gettext() and gettext_lazy() in Django?
What is the difference between gettext() and gettext_lazy() in Django?
답변
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.
3Which Django middleware is responsible for activating the language for each request?
Which Django middleware is responsible for activating the language for each request?
답변
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.
Which Django command extracts translatable strings from the source code?
Which command compiles .po translation files into binary .mo files?
+17 면접 질문