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>
16 lines
662 B
Go
16 lines
662 B
Go
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
|
|
}
|