Localization
The Mobiscroll Connect pages — where the user selects a calendar provider, signs in, and approves the consent screen — are localized. You choose the language by passing the lng parameter when you start the authorization flow, so the pages render in the same language as the application that sent the user there.
Localization applies to the user-facing Connect pages only. API JSON responses and webhook payloads always remain in English.
Supported languages
| Code | Language | Direction |
|---|---|---|
en | English | Left-to-right |
es | Spanish | Left-to-right |
fr | French | Left-to-right |
de | German | Left-to-right |
it | Italian | Left-to-right |
pt-PT | Portuguese (European) | Left-to-right |
pt-BR | Portuguese (Brazilian) | Left-to-right |
ar | Arabic | Right-to-left |
Region-qualified codes
lng accepts region-qualified codes in the xx-YY form. European and Brazilian Portuguese are separate languages here, not one shared Portuguese — they differ in vocabulary, grammar and how the progressive is formed, so pick the one that matches your users.
Codes are written with a hyphen, as in pt-BR. Matching is case-insensitive, and an underscore is accepted in place of the hyphen, so pt-BR, pt-br, PT-BR and pt_BR all select Brazilian Portuguese.
When a code does not match a language in the table exactly, Connect falls back in this order:
- A region variant we ship —
?lng=pt-BRuses Brazilian Portuguese. - The bare language, if we ship it —
?lng=de-CHand?lng=es-MXuse German and Spanish. - The language's default variant — a bare
?lng=pt, or a Portuguese region we do not ship separately such aspt-AO, uses European Portuguese. - English.
Setting the language
The language is selected with the lng query parameter on the authorize URL — the same URL that opens the Connect pages. This is the recommended way for a calling application to pass a locale.
When you use one of the SDKs, pass lng to the auth-URL builder instead of constructing the query string by hand.
- REST
- Node.js SDK
- Python SDK
- PHP SDK
- .NET SDK
- Java SDK
- Go SDK
- Ruby SDK
GET /authorize?client_id=proj-123&user_id=user-456&response_type=code&lng=es
const authUrl = client.auth.generateAuthUrl({ userId: 'user-456', lng: 'es' });
auth_url = client.auth.generate_auth_url(user_id='user-456', lng='es')
$authUrl = $client->auth()->generateAuthUrl(userId: 'user-456', lng: 'es');
var authUrl = client.Auth.GenerateAuthUrl(new AuthorizeParams { UserId = "user-456", Lng = "es" });
String authUrl = client.auth().generateAuthUrl(
AuthUrlParams.builder().userId("user-456").lng("es").build());
authURL := client.Auth().GenerateAuthURL(&mobiscroll.AuthURLParams{UserID: "user-456", Lng: "es"})
auth_url = client.auth.generate_auth_url(user_id: 'user-456', lng: 'es')
See the lng request parameter on the Authorize endpoint for the full API reference, and your SDK's integration guide for the exact syntax.
Language fallback
If lng is not provided, Connect resolves the language in the following order:
- The
lngquery parameter, when present. - The user's browser
Accept-Languageheader. - English (
en) as the final default.
Accept-Language is matched the same way as lng, so a browser sending pt-BR,pt;q=0.9 gets Brazilian Portuguese and one sending pt-PT gets European Portuguese. See Region-qualified codes for the order Connect tries.
Existing integrations that do not pass lng continue to work without changes — users whose browser language is supported now see the Connect pages in that language automatically. To force English regardless of the browser, pass lng=en explicitly.
Right-to-left (RTL)
Arabic (ar) is the first right-to-left locale. When ar is active, the Connect UI direction switches to right-to-left automatically — no extra configuration is required.
The localized pages are the provider selection (authorize), the iCloud and CalDAV login pages, and the error page. Anything your application consumes programmatically — API responses and webhook notifications — stays in English regardless of lng.
- Authorize API reference — the
lngparameter and the full authorization request. - Scopes & Permissions — the other core concept that shapes the authorization request.