Put locale in compliance portal URLs

Path-segment locales make each language crawlable with self
canonical and hreflang, while identity.locale persists an
explicit choice without client storage or cookie banners.

Signed-off-by: Émile Ré <emile@probo.com>
This commit is contained in:
Émile Ré
2026-07-21 11:02:44 +02:00
parent 2a250ab7d4
commit c223873e96
52 changed files with 1306 additions and 105 deletions

View File

@@ -1,6 +1,8 @@
extend type Mutation {
updateFullName(input: UpdateFullNameInput!): UpdateFullNamePayload
@authentication(required: PRESENT) @sessionOnly
updateLocale(input: UpdateLocaleInput!): UpdateLocalePayload
@authentication(required: PRESENT) @sessionOnly
signOut: SignOutPayload! @authentication(required: PRESENT) @sessionOnly
}
@@ -12,6 +14,15 @@ type UpdateFullNamePayload {
success: Boolean!
}
input UpdateLocaleInput {
# Short URL locale tag (en, fr, de, …).
locale: String!
}
type UpdateLocalePayload {
identity: Identity!
}
type SignOutPayload {
success: Boolean!
}

View File

@@ -54,6 +54,9 @@ type Identity implements Node {
email: EmailAddr!
fullName: String!
emailVerified: Boolean!
# Preferred UI locale as a short URL tag (en, fr, de, …). Null until the
# viewer explicitly chooses a language in the portal.
locale: String
createdAt: Datetime!
updatedAt: Datetime!
}