Skip to Content

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).


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:

  1. 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.
  2. 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.
  3. The user agent can set the culture by appending $culture={language-tag} to the the URL query string.
  4. 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.


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

  1. Go to the Action Drawer menu
  2. Click on the menu entry that displays the current Language value. For example: English (United States)
  3. 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.


Vinyl only supports the Gregorian calendar.