Skip to main content
Version: 3.0.0

Release Notes

v3.0.0

February 2026

Breaking Changes

Route Names Changes

  • eLanguageManagementRouteNames.Administration removed - Use eThemeSharedRouteNames.Administration from @abpjs/theme-shared instead.
  • eLanguageManagementRouteNames.Languages value changed - From 'LanguageManagement::Menu:Languages' to 'LanguageManagement::Languages'
  • eLanguageManagementRouteNames.LanguageManagement added - New key for parent route ('LanguageManagement::LanguageManagement')
// Before (v2.9.0)
import { eLanguageManagementRouteNames } from '@abpjs/language-management';
const admin = eLanguageManagementRouteNames.Administration; // ❌ Removed

// After (v3.0.0)
import { eThemeSharedRouteNames } from '@abpjs/theme-shared';
const admin = eThemeSharedRouteNames.Administration; // ✅ Use this instead

Removed Methods

  • getLanguagesTotalCount() removed from LanguageManagementStateService - Use the totalCount property from the language response directly:
// Before (v2.9.0)
const total = stateService.getLanguagesTotalCount();

// After (v3.0.0)
const languages = stateService.getLanguages();
// Access totalCount from the response if needed

New Features

Route Providers

New route configuration system using RoutesService from @abpjs/core:

import { initializeLanguageManagementRoutes, configureRoutes } from '@abpjs/language-management';

// Option 1: Use the global RoutesService
const addRoutes = initializeLanguageManagementRoutes();
addRoutes();

// Option 2: Use a custom RoutesService instance
import { getRoutesService } from '@abpjs/core';
const routes = getRoutesService();
const addRoutes = configureRoutes(routes);
addRoutes();

Also available as a provider object:

import { LANGUAGE_MANAGEMENT_ROUTE_PROVIDERS } from '@abpjs/language-management';

LANGUAGE_MANAGEMENT_ROUTE_PROVIDERS.configureRoutes(routes);

Policy Names

New constants for permission checking:

import { eLanguageManagementPolicyNames } from '@abpjs/language-management';

// Available policies:
// eLanguageManagementPolicyNames.LanguageManagement = 'LanguageManagement.Languages || LanguageManagement.LanguageTexts'
// eLanguageManagementPolicyNames.Languages = 'LanguageManagement.Languages'
// eLanguageManagementPolicyNames.LanguageTexts = 'LanguageManagement.LanguageTexts'

Extensions System

New extension tokens and defaults for customizing language management components:

Entity Actions - Row-level actions in grids:

import {
EntityAction,
DEFAULT_LANGUAGES_ENTITY_ACTIONS,
DEFAULT_LANGUAGE_TEXTS_ENTITY_ACTIONS,
LANGUAGE_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS,
} from '@abpjs/language-management';

Toolbar Actions - Grid toolbar buttons:

import {
ToolbarAction,
DEFAULT_LANGUAGES_TOOLBAR_ACTIONS,
LANGUAGE_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,
} from '@abpjs/language-management';

Entity Props - Grid column definitions:

import {
EntityProp,
DEFAULT_LANGUAGES_ENTITY_PROPS,
LANGUAGE_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,
} from '@abpjs/language-management';

Form Props - Create/Edit form fields:

import {
FormProp,
DEFAULT_LANGUAGES_CREATE_FORM_PROPS,
DEFAULT_LANGUAGES_EDIT_FORM_PROPS,
LANGUAGE_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS,
LANGUAGE_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS,
} from '@abpjs/language-management';

Extensions Guard

New guard for loading extensions before route activation:

import {
languageManagementExtensionsGuard,
useLanguageManagementExtensionsGuard,
LanguageManagementExtensionsGuard,
} from '@abpjs/language-management';

// Function-based guard
await languageManagementExtensionsGuard();

// React hook
function LanguageManagementLayout() {
const { isLoaded, loading } = useLanguageManagementExtensionsGuard();

if (loading) return <Loading />;
return <Outlet />;
}

New Exports

Config Subpackage:

  • eLanguageManagementPolicyNames - Policy name constants
  • LanguageManagementPolicyNameKey - Type for policy name values
  • configureRoutes() - Configure routes with custom RoutesService
  • initializeLanguageManagementRoutes() - Initialize routes with global RoutesService
  • LANGUAGE_MANAGEMENT_ROUTE_PROVIDERS - Route providers object

Tokens Subpackage:

  • EntityAction<T>, ToolbarAction<T>, EntityProp<T>, FormProp<T> - Extension interfaces
  • DEFAULT_LANGUAGES_ENTITY_ACTIONS, DEFAULT_LANGUAGE_TEXTS_ENTITY_ACTIONS
  • DEFAULT_LANGUAGES_TOOLBAR_ACTIONS, DEFAULT_LANGUAGE_TEXTS_TOOLBAR_ACTIONS
  • DEFAULT_LANGUAGES_ENTITY_PROPS
  • DEFAULT_LANGUAGES_CREATE_FORM_PROPS, DEFAULT_LANGUAGES_EDIT_FORM_PROPS
  • DEFAULT_LANGUAGE_MANAGEMENT_ENTITY_ACTIONS, DEFAULT_LANGUAGE_MANAGEMENT_TOOLBAR_ACTIONS
  • DEFAULT_LANGUAGE_MANAGEMENT_ENTITY_PROPS, DEFAULT_LANGUAGE_MANAGEMENT_CREATE_FORM_PROPS, DEFAULT_LANGUAGE_MANAGEMENT_EDIT_FORM_PROPS
  • Contributor callback types: EntityActionContributorCallback<T>, ToolbarActionContributorCallback<T>, etc.
  • Contributor type definitions: LanguageManagementEntityActionContributors, LanguageManagementToolbarActionContributors, etc.
  • Token symbols: LANGUAGE_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, LANGUAGE_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, etc.

Guards Subpackage:

  • languageManagementExtensionsGuard() - Async guard function
  • useLanguageManagementExtensionsGuard() - React hook
  • LanguageManagementExtensionsGuard - Class-based guard (deprecated)

v2.9.0

February 2026

  • Version alignment with @abpjs/core

v2.7.0

February 2026

New Features

Route Names

New constants for language management route names (localization keys):

import { eLanguageManagementRouteNames } from '@abpjs/language-management';

// Available route names:
// eLanguageManagementRouteNames.Languages = 'LanguageManagement::Menu:Languages'
// eLanguageManagementRouteNames.LanguageTexts = 'LanguageManagement::LanguageTexts'

Note: Administration was removed in v3.0.0. Use eThemeSharedRouteNames.Administration from @abpjs/theme-shared instead.

API Changes

  • eLanguageManagementComponents - Changed from TypeScript enum to const object for better tree-shaking and type inference:

    // Before (v2.4.0)
    enum eLanguageManagementComponents {
    Languages = 'LanguageManagement.LanguagesComponent',
    // ...
    }

    // After (v2.7.0)
    const eLanguageManagementComponents = {
    Languages: 'LanguageManagement.LanguagesComponent',
    // ...
    } as const;

New Exports

  • eLanguageManagementRouteNames - Constants for route names (localization keys)
  • LanguageManagementRouteNameKey - Type for language management route name values
  • LanguageManagementComponentKey - Type for language management component key values

v2.4.0

February 2026

New Features

  • LanguageManagementService.apiName property - New property for REST API configuration. Defaults to 'default'.

  • eLanguageManagementComponents enum - New enum for component identifiers, useful for component registration and customization:

    import { eLanguageManagementComponents } from '@abpjs/language-management';

    // Available components:
    // eLanguageManagementComponents.Languages = 'LanguageManagement.LanguagesComponent'
    // eLanguageManagementComponents.LanguageTexts = 'LanguageManagement.LanguageTextsComponent'

v2.2.0

February 2026

  • Version alignment with @abpjs/core

v2.1.1

February 2026

  • Version alignment with @abpjs/core

v2.0.0

January 2026

New Features

  • LanguageManagementStateService - New state service for programmatic language management operations:

    Language Operations:

    • dispatchGetLanguages(params?) - Fetch languages and update internal state
    • dispatchGetLanguageById(id) - Fetch a single language by ID
    • dispatchCreateUpdateLanguage(body, id?) - Create or update a language
    • dispatchDeleteLanguage(id) - Delete a language
    • dispatchSetAsDefaultLanguage(id) - Set a language as the default

    Language Text Operations:

    • dispatchGetLanguageTexts(params) - Fetch language texts with filters
    • dispatchUpdateLanguageTextByName(params) - Update a language text translation
    • dispatchRestoreLanguageTextByName(params) - Restore a language text to its default value

    Culture & Resource Operations:

    • dispatchGetLanguageCultures() - Fetch available cultures
    • dispatchGetLanguageResources() - Fetch available localization resources

    State Getter Methods:

    • getLanguages() - Access cached languages
    • getLanguageTexts() / getLanguageTextsTotalCount() - Access cached language texts
    • getCultures() - Access cached cultures
    • getResources() - Access cached resources

Note: getLanguagesTotalCount() was removed in v3.0.0.

Example

import { LanguageManagementStateService } from '@abpjs/language-management';
import { RestService } from '@abpjs/core';

const restService = new RestService();
const stateService = new LanguageManagementStateService(restService);

// Fetch languages
await stateService.dispatchGetLanguages({ maxResultCount: 10 });
const languages = stateService.getLanguages();
console.log(`Found ${languages.length} languages`);

// Create a new language
await stateService.dispatchCreateUpdateLanguage({
cultureName: 'fr',
uiCultureName: 'fr',
displayName: 'French',
isEnabled: true,
});

// Fetch language texts
await stateService.dispatchGetLanguageTexts({
resourceName: 'AbpAccount',
baseCultureName: 'en',
targetCultureName: 'fr',
});
const texts = stateService.getLanguageTexts();

// Fetch cultures and resources
await stateService.dispatchGetLanguageCultures();
const cultures = stateService.getCultures();

v1.0.0

January 2026

  • Version alignment with @abpjs/core v1.0.0

v0.7.2 (Initial Release)

Components

  • LanguagesComponent - Full language management UI with CRUD operations, culture selection, flag icons, and default language setting
  • LanguageTextsComponent - Localization string management with filtering by resource, culture comparison, and inline editing

Hooks

  • useLanguages - State management for languages with:

    • fetchLanguages() - Get paginated languages
    • fetchCultures() - Get available cultures
    • createLanguage() - Create new language
    • updateLanguage() - Update existing language
    • deleteLanguage() - Delete language
    • setAsDefaultLanguage() - Set default language
  • useLanguageTexts - State management for localization strings with:

    • fetchLanguageTexts() - Get texts with culture filtering
    • fetchResources() - Get localization resources
    • updateLanguageTextByName() - Update translation
    • restoreLanguageTextByName() - Restore to default value

Services

  • LanguageManagementService with methods for:
    • Language CRUD operations
    • Culture and resource listing
    • Language text queries and updates
    • Restore translations to defaults

Constants

  • LANGUAGE_MANAGEMENT_ROUTES - Pre-configured route definitions

TypeScript

  • LanguageManagement namespace with all types:
    • Language, LanguageResponse
    • CreateLanguageInput, UpdateLanguageInput
    • LanguageText, LanguageTextResponse
    • LanguageTextQueryParams, LanguageTextRequestByNameParams, LanguageTextUpdateByNameParams
    • Culture, Resource
    • State interface for state management