# Language Management Module (Pro) > You must have an ABP Team or a higher license to use this module. This module implements the Language management system of an application; * Manage **languages** in the system. * Translate texts in the UI. * Enable/disable **languages**. * Select **default language** in the UI. See [the module description page](https://abp.io/modules/Volo.LanguageManagement) for an overview of the module features. ## How to Install The language management module is pre-installed in [the startup templates](../solution-templates). So, no need to manually install it. ## Packages This module follows the [module development best practices guide](../framework/architecture/best-practices) and consists of several NuGet and NPM packages. Please look at the guide if you want to understand the packages and the relations between them. You can visit [Language Management module package list page](https://abp.io/packages?moduleName=Volo.LanguageManagement) to see the list of packages related to this module. ## User Interface ### Menu Items The language management module adds the following items to the "Main" menu, under the "Administration" menu item: * **Languages**: Language management page. * **Language Texts**: Language text management page. `LanguageManagementMenuNames` class has the constants for the menu item names. ### Pages #### Languages The languages page is used to manage languages in the system.  You can create a new language or edit an existing language in this page:  * **Enabled** languages can be selected as the system language. #### Language Texts The language texts page is used to manage texts in different languages.  You can translate a text for a language or edit the already existing translation in this page.  ## Data Seed This module adds some initial data (see [the data seed system](../framework/infrastructure/data-seeding.md)) to the database when you run the `.DbMigrator` application: * Creates language records configured using `AbpLocalizationOptions`. If you want to change the seeded language list, see the next section. ## Internals ### Domain Layer #### Aggregates This module follows the [Entity Best Practices & Conventions](../framework/architecture/best-practices/entities.md) guide. ##### Language * `Language` (aggregate root): Represents a language in the system. * `LanguageText` (aggregate root): Represents a language text in the system. #### Repositories This module follows the [Repository Best Practices & Conventions](../framework/architecture/best-practices/repositories.md) guide. Following custom repositories are defined for this module: * `ILanguageRepository` * `ILanguageTextRepository` #### Domain Services This module doesn't define any domain service. ### Settings This module doesn't define any setting. ### Application Layer #### Application Services * `LanguageAppService` (implements `ILanguageAppService`): Implements the use cases of the language management UI. * `LanguageTextAppService` (implements `ILanguageTextAppService`): Implements the use cases of the language texts management UI. ### Database Providers #### Common ##### Table/Collection Prefix & Schema All tables/collections use the `Abp` prefix by default. Set static properties on the `LanguageManagementDbProperties` class if you need to change the table prefix or set a schema name (if supported by your database provider). ##### Connection String This module uses `AbpLanguageManagement` for the connection string name. If you don't define a connection string with this name, it fallbacks to the `Default` connection string. See the [connection strings](../framework/fundamentals/connection-strings.md) documentation for details. #### Entity Framework Core ##### Tables * **AbpLanguages** * **AbpLanguageTexts** #### MongoDB ##### Collections * **AbpLanguages** * **AbpLanguageTexts** ### Permissions See the `LanguageManagementPermissions` class members for all permissions defined for this module. ### Angular UI #### Installation To configure the application to use the `LanguageManagementModule`, you first need to import `LanguageManagementConfigModule` from `@volo/abp.ng.language-management/config` to root module. `LanguageManagementConfigModule` has a static `forRoot` method which you should call for a proper configuration. ```js // app.module.ts import { LanguageManagementConfigModule } from '@volo/abp.ng.language-management/config'; @NgModule({ imports: [ // other imports LanguageManagementConfigModule.forRoot(), // other imports ], // ... }) export class AppModule {} ``` The `LanguageManagementModule` should be imported and lazy-loaded in your routing module. It has a static `forLazy` method for configuration. Available options are listed below. It is available for import from `@volo/abp.ng.language-management`. ```js // app-routing.module.ts const routes: Routes = [ // other route definitions { path: 'language-management', loadChildren: () => import('@volo/abp.ng.language-management').then(m => m.LanguageManagementModule.forLazy(/* options here */)), }, ]; @NgModule(/* AppRoutingModule metadata */) export class AppRoutingModule {} ``` > If you have generated your project via the startup template, you do not have to do anything because it already has both `LanguageManagementConfigModule` and `LanguageManagementModule`.