1

我使用 django.middleware.locale.LocaleMiddleware 来获取 i18n'ed 网站并通过set_language redirect制作语言“切换器” 。

我只是无法理解几件事:

  1. 为什么它在 process_responce 期间调用translation.deactivategithub 上的源代码)?

  2. 这是否意味着我不能使用这个中间件?(它只显示一次不同语言的页面,然后切换回来。)

4

1 回答 1

2

translation.deactivate被调用是因为当前语言存储在全局(线程本地)变量中。它在请求进入时设置,并且在该请求完成时必须取消设置,以防止它“泄漏”到下一个请求中(例如,假设一个线程处理一个必须本地化为葡萄牙语的请求,然后另一个请求在未设置本地化。如果未禁用葡萄牙语本地化,则下一个请求也将本地化为葡萄牙语)。

于 2012-06-09T15:49:08.560 回答