如果存在正确的“ Accept-Language”标头,DRF会自动翻译某些语言的响应消息。它按预期执行此操作西班牙语('es')和法语('fr'),但显然不适合荷兰语('nl'),即使所有必要的翻译都是available。
DRF提供了一种前往add new translations的方式。但是,由于翻译已经完成,所以这没有必要。
Django设置(无语言设置):
MIDDLEWARE = [
...
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
其他语言的行为:
http http://localhost:8000/api/auth/password/reset/ Accept-Language:es
...
Content-Language: es
...
{
"detail": "Método \"GET\" no permitido."
}
荷兰人的行为
http http://localhost:8000/api/auth/password/reset/ Accept-Language:nl
...
Content-Language: nl
...
{
"detail": "Method \"GET\" not allowed."
}
荷兰语(source)的预期行为:
http http://localhost:8000/api/auth/password/reset/ Accept-Language:nl
...
Content-Language: nl
...
{
"detail": "Methode \"GET\" niet toegestaan."
}
django版本:2.1
djangorestframework版本:3.8.0