Skip to content

Commit 90b6cb1

Browse files
author
Sam Gammon
committed
Enable overridding Content-Language per-response
1 parent 49fe539 commit 90b6cb1

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

java/gust/backend/AppController.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,11 @@ protected AppController(@Nonnull PageContextManager context) {
113113
protected @Nonnull <T> MutableHttpResponse<T> affixHeaders(@Nonnull MutableHttpResponse<T> response,
114114
@Nonnull DynamicServingConfiguration config) {
115115
// first up: content language
116-
if (config.language().isPresent()) {
116+
if (this.context.language().isPresent()) {
117+
var lang = this.context.language().get();
118+
logging.debug(format("Affixing `Content-Language` header from context: '%s'.", lang));
119+
response.setAttribute("language", lang);
120+
} else if (config.language().isPresent()) {
117121
logging.debug(format("Affixing `Content-Language` header from config: '%s'.", config.language().get()));
118122
response.setAttribute("language", config.language().get());
119123
this.context.language(config.language());

java/gust/backend/PageContextManager.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1494,6 +1494,19 @@ public boolean translate() {
14941494
return this;
14951495
}
14961496

1497+
/**
1498+
* Return the language value set for the current render routine - i.e. bound to the current request cycle. This is
1499+
* often driven by the user's browser settings.
1500+
*
1501+
* @return Current language for this request cycle.
1502+
*/
1503+
public @Nonnull Optional<String> language() {
1504+
if (this.context.getLanguage().length() > 0) {
1505+
return Optional.of(this.context.getLanguage());
1506+
}
1507+
return Optional.empty();
1508+
}
1509+
14971510
/**
14981511
* Append an HTTP request header considered as part of the {@code Vary} header in the response. These values are de-
14991512
* duplicated before joining and affixing.

0 commit comments

Comments
 (0)