Согласно документа по интернационализации Grails, i18n выполняется одним из следующих способов:
- Установка заголовка
Accept-Language
в запросе; или - Добавление параметра строки запроса
lang
Я выбираю первое, потому что оно более совместимо с HTTP и, честно говоря, мне просто не нравится добавлять его в качестве параметра запроса.
Но как мне установить Accept-Language
в первую очередь?!?
Я хочу, чтобы языковой стандарт моего приложения определялся запрошенным TLD. Таким образом, запрос http://myapp.example.com
вернет en_US
версию моего приложения, потому что *.com
традиционно ассоциируется с английским / американским языком. Если был запрошен http://myapp.example.fr
, то Grails должен обслуживать fr_FR
версию моего приложения. И т.п.
Итак, мой настоящий вопрос:
Как я могу сопоставить запрошенный URL / TLD с переменной, которую Grails может установить на сервере, а затем внедрить в GSP, чтобы запросы на стороне клиента всегда имели совпадающий заголовок Accept-Language
для данного URL / TLD? сильный>
Обновлять
Я хочу подтвердить здесь поведение браузера / Grails: можно ли предположить, что когда пользователь настраивает свой браузер, браузер соответствующим образом корректирует заголовок Accept-Language
? Если да, могу ли я также предположить, что если Accept-Language
не отправлено, а lang
не указан в качестве параметра запроса, то Grails использует en_US
по умолчанию?