Internationalization and Localization¶
Vinyl has limited support for internationalization and localization. Specifically, Vinyl can render dates and numeric values in a region-specific format. For instance, Vinyl can render the date 2023-05-16 as 5/16/2023 to a user in a US English locale (en-US) or 16.05.2023 to a user in a German locale (de-DE).
Culture¶
Vinyl's localization support is based on Microsoft .NET's concept of culture. A culture provides date and numeric formatting rules for a specific region. Cultures are mapped to IETF language tags.
How is the User's Culture Determined?¶
Vinyl can determine the user's preferred culture in one of the following ways:
- Vinyl will attempt to determine the user's culture automatically. Vinyl will analyze the Accept-Language header provided by the browser. The value is matched to a Vinyl culture.
- The culture may be explicitly set on the Vinyl user account. This can be done by an administrator or by users themselves if self-servicing has been enabled.
- The user agent can set the culture by appending
$culture={language-tag}
to the the URL query string. - If the culture cannot otherwise be determined, the default system culture is used.
Culture and Background Jobs¶
When executing background jobs, the effective culture depends on how the job is queued.
- If the job is scheduled by a user (i.e., by clicking a button), the user's preferred culture is used.
- If the job is queued by a schedule, then the service user account's culture is used.
Extensibility¶
Cultures are defined by the runtime environment. Developers cannot register new cultures. However, developers can retrieve a list of existing cultures by querying the Culture public data object.
How to Review and Edit Language, Locale & Time Zones¶
- Go to the Action Drawer menu
- Click on the menu entry that displays the current Language value. For example: English (United States)
-
The resultant Localization popup screen contains tabs for Language and Local & Time Zones
- Click the appropriate tab to review and make any edits
- If updating Language, you will need to refresh the browser window to see the updated information
Known Issues and Limitations¶
Accept-Language
Quality Values¶
The Accept-Language
header allows user agents to weight language preferences by assigning a "quality value". Vinyl does not honor the quality value. Instead, Vinyl uses the first language tag.
Calendars¶
Vinyl only supports the Gregorian calendar.