Release Notes
v3.1.0
February 2026
- Version alignment with @abpjs/core
v3.0.0
February 2026
Breaking Changes
Route Names Changes
eLanguageManagementRouteNames.Administrationremoved - UseeThemeSharedRouteNames.Administrationfrom@abpjs/theme-sharedinstead.eLanguageManagementRouteNames.Languagesvalue changed - From'LanguageManagement::Menu:Languages'to'LanguageManagement::Languages'eLanguageManagementRouteNames.LanguageManagementadded - 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 fromLanguageManagementStateService- Use thetotalCountproperty 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 constantsLanguageManagementPolicyNameKey- Type for policy name valuesconfigureRoutes()- Configure routes with custom RoutesServiceinitializeLanguageManagementRoutes()- Initialize routes with global RoutesServiceLANGUAGE_MANAGEMENT_ROUTE_PROVIDERS- Route providers object
Tokens Subpackage:
EntityAction<T>,ToolbarAction<T>,EntityProp<T>,FormProp<T>- Extension interfacesDEFAULT_LANGUAGES_ENTITY_ACTIONS,DEFAULT_LANGUAGE_TEXTS_ENTITY_ACTIONSDEFAULT_LANGUAGES_TOOLBAR_ACTIONS,DEFAULT_LANGUAGE_TEXTS_TOOLBAR_ACTIONSDEFAULT_LANGUAGES_ENTITY_PROPSDEFAULT_LANGUAGES_CREATE_FORM_PROPS,DEFAULT_LANGUAGES_EDIT_FORM_PROPSDEFAULT_LANGUAGE_MANAGEMENT_ENTITY_ACTIONS,DEFAULT_LANGUAGE_MANAGEMENT_TOOLBAR_ACTIONSDEFAULT_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 functionuseLanguageManagementExtensionsGuard()- React hookLanguageManagementExtensionsGuard- 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:
Administrationwas removed in v3.0.0. UseeThemeSharedRouteNames.Administrationfrom@abpjs/theme-sharedinstead.
API Changes
-
eLanguageManagementComponents- Changed from TypeScriptenumtoconstobject 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 valuesLanguageManagementComponentKey- Type for language management component key values
v2.4.0
February 2026
New Features
-
LanguageManagementService.apiNameproperty - New property for REST API configuration. Defaults to'default'. -
eLanguageManagementComponentsenum - 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 statedispatchGetLanguageById(id)- Fetch a single language by IDdispatchCreateUpdateLanguage(body, id?)- Create or update a languagedispatchDeleteLanguage(id)- Delete a languagedispatchSetAsDefaultLanguage(id)- Set a language as the default
Language Text Operations:
dispatchGetLanguageTexts(params)- Fetch language texts with filtersdispatchUpdateLanguageTextByName(params)- Update a language text translationdispatchRestoreLanguageTextByName(params)- Restore a language text to its default value
Culture & Resource Operations:
dispatchGetLanguageCultures()- Fetch available culturesdispatchGetLanguageResources()- Fetch available localization resources
State Getter Methods:
getLanguages()- Access cached languagesgetLanguageTexts()/getLanguageTextsTotalCount()- Access cached language textsgetCultures()- Access cached culturesgetResources()- 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 languagesfetchCultures()- Get available culturescreateLanguage()- Create new languageupdateLanguage()- Update existing languagedeleteLanguage()- Delete languagesetAsDefaultLanguage()- Set default language
-
useLanguageTexts - State management for localization strings with:
fetchLanguageTexts()- Get texts with culture filteringfetchResources()- Get localization resourcesupdateLanguageTextByName()- Update translationrestoreLanguageTextByName()- 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,LanguageResponseCreateLanguageInput,UpdateLanguageInputLanguageText,LanguageTextResponseLanguageTextQueryParams,LanguageTextRequestByNameParams,LanguageTextUpdateByNameParamsCulture,ResourceStateinterface for state management