Skip to content

Administration

Languages

The client speaks English (en-US, the base), German (de-DE) and Arabic (ar-SA), which reads from right to left. The server renders the few texts it writes itself, emails, the room's notices and the explanations of the HTTP API's problems, in the same languages.

Choosing the language

The client picks the visitor's language once, before it shows anything:

  1. the language the visitor chose in the account menu (language-select), kept on the device as vws.language;
  2. else the browser's languages in their order, each matched exactly and then by its language alone, so de-AT finds de-DE;
  3. else the default language of the host's tenant, the locale setting of Tenancy, which arrives with the site a moment later;
  4. else English.

The page's lang and dir follow the language. Choosing another one changes the page at once, without a reload; a language other than English loads its catalogue the first time it is needed, so the bundle carries English only. The language reaches the server with every request as Accept-Language, and with the realtime connection as Hello.locale, which holds for the session. Map scripts read it as world.player.language (Scripting API).

What the server writes

The server renders a text itself only where no client is there to word it, and only in the languages it has catalogues for, falling back to English:

  • The sign-in link is written in the language of the request that asked for it.
  • World invites and meeting links are written in the language of the world, its locale setting, else the tenant's, as the invitee's language is unknown. Dates in emails are written with numbers, in UTC.
  • The room's notices, such as a changed map, a deleted room or a second tab, are written in each player's session language.
  • Problem details of the HTTP API, which forms show when the server explains a refused value, the messages of map package issues and the page of a sign-in that cannot go on are written in the language of the request (HTTP API). The OAuth errors and the partner API's stay English.
  • The names of the built-in catalogues, the avatar parts and their collection (Avatars) and the prefabs, their colours and collections (Entities), are written in the language of the request. The client fetches both catalogues again when the visitor picks another language.

Everything else the client words itself from codes: refusals of a room, error screens, the answers to invitations, desk claims, edits of the map and chat writes. Some texts stay as they come:

  • Names that people give, of a tenant's textures and prefabs, and the names, descriptions and texts that maps, tenants and scripts write, stay as their authors wrote them.
  • The layout's schema gives the map editor its field names and help texts; the catalogues name the fields, behaviours and choices they know, and the help texts stay English.

Right to left

Arabic mirrors the page: Tailwind's logical utilities (start-, end-, ms-, me-, ps-, pe-, text-start, border-s) place what sits at a side, flex rows follow the direction by themselves, and fills that grow from a side turn with rtl:. What shows the world keeps its sides: the map, the arrows that tell which way a prefab faces, mirrored cameras, and the positions scripts give their overlays and dialogs, which name the screen's sides.

Found a mistake? Tell us.