feat(14.2.1-01): add optional surf LocaleResolver seam

Look up a backpack-published resolver so a compiled translate plugin can
strip an enabled URL prefix and write a validated locale onto context.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jakub Zych
2026-10-06 11:54:00 +02:00
parent bd0a27f59f
commit b2ce986604
7 changed files with 134 additions and 15 deletions

View File

@@ -0,0 +1,15 @@
package surf
import "net/http"
// LocaleResolver is an optional backpack-published service that selects a
// validated locale code for a request. When none is published, surf keeps
// writing the raw Accept-Language header onto the request context.
type LocaleResolver interface {
// Resolve returns a validated locale code for r. It may set cookies on w
// and must not store request locale on a process-wide variable.
Resolve(w http.ResponseWriter, r *http.Request) string
// Rewrite returns a request whose URL has a valid enabled locale prefix
// stripped so routing sees the unprefixed path, or r unchanged.
Rewrite(r *http.Request) *http.Request
}