ASP.NET Core MVC / Razor Pages UI: JavaScript Localization API

Localization API allows you to reuse the server side localization resources in the client side.

This document only explains the JavaScript API. See the localization document to understand the ABP localization system.

Basic Usage

abp.localization.getResource(...) function is used to get a localization resource:

var testResource = abp.localization.getResource('Test');

Then you can localize a string based on this resource:

var str = testResource('HelloWorld');

abp.localization.localize(...) function is a shortcut where you can both specify the text name and the resource name:

var str = abp.localization.localize('HelloWorld', 'Test');

HelloWorld is the text to localize, where Test is the localization resource name here.

Fallback Logic

If given texts was not localized, localization method returns the given key as the localization result.

Default Localization Resource

If you don't specify the localization resource name, it uses the default localization resource defined on the AbpLocalizationOptions (see the localization document).

Example: Using the default localization resource

var str = abp.localization.localize('HelloWorld'); //uses the default resource

Format Arguments

If your localized string contains arguments, like Hello {0}, welcome!, you can pass arguments to the localization methods. Examples:

var testSource = abp.localization.getResource('Test');
var str1 = testSource('HelloWelcomeMessage', 'John');
var str2 = abp.localization.localize('HelloWelcomeMessage', 'Test', 'John');

Assuming the HelloWelcomeMessage is localized as Hello {0}, welcome!, both of the samples above produce the output Hello John, welcome!.

Other Properties & Methods

abp.localization.values

abp.localization.values property stores all the localization resources, keys and their values.

abp.localization.isLocalized

Returns a boolean indicating that if the given text was localized or not.

Example

abp.localization.isLocalized('ProductName', 'MyResource');

Returns true if the ProductName text was localized for the MyResource resource. Otherwise, returns false. You can leave the resource name empty to use the default localization resource.

abp.localization.defaultResourceName

abp.localization.defaultResourceName can be set to change the default localization resource. You normally don't set this since the ABP Framework automatically sets is based on the server side configuration.

abp.localization.currentCulture

abp.localization.currentCulture returns an object to get information about the currently selected language.

An example value of this object is shown below:

{
  "displayName": "English",
  "englishName": "English",
  "threeLetterIsoLanguageName": "eng",
  "twoLetterIsoLanguageName": "en",
  "isRightToLeft": false,
  "cultureName": "en",
  "name": "en",
  "nativeName": "English",
  "dateTimeFormat": {
    "calendarAlgorithmType": "SolarCalendar",
    "dateTimeFormatLong": "dddd, MMMM d, yyyy",
    "shortDatePattern": "M/d/yyyy",
    "fullDateTimePattern": "dddd, MMMM d, yyyy h:mm:ss tt",
    "dateSeparator": "/",
    "shortTimePattern": "h:mm tt",
    "longTimePattern": "h:mm:ss tt"
  }
}

abp.localization.languages

Used to get list of all available languages in the application. An example value of this object is shown below:

[
  {
    "cultureName": "en",
    "uiCultureName": "en",
    "displayName": "English",
    "flagIcon": null
  },
  {
    "cultureName": "fr",
    "uiCultureName": "fr",
    "displayName": "Français",
    "flagIcon": null
  },
  {
    "cultureName": "pt-BR",
    "uiCultureName": "pt-BR",
    "displayName": "Português",
    "flagIcon": null
  },
  {
    "cultureName": "tr",
    "uiCultureName": "tr",
    "displayName": "Türkçe",
    "flagIcon": null
  },
  {
    "cultureName": "zh-Hans",
    "uiCultureName": "zh-Hans",
    "displayName": "简体中文",
    "flagIcon": null
  }
]
In this document