# Language API

> For the complete documentation index, see [llms.txt](https://doc.ibexa.co/en/5.0/llms.txt).

You can add languages to the system and get information about existing languages via the PHP API.

You can manage languages configured in the system with PHP API by using [`LanguageService`](https://doc.ibexa.co/en/5.0/api/php_api/php_api_reference/classes/Ibexa-Contracts-Core-Repository-LanguageService.html).

## Getting language information

To get a list of all languages in the system use [`LanguageService::loadLanguages`:](https://doc.ibexa.co/en/5.0/api/php_api/php_api_reference/classes/Ibexa-Contracts-Core-Repository-LanguageService.html#method_loadLanguage)

```php
$languageList = $this->languageService->loadLanguages();

foreach ($languageList as $language) {
    $output->writeln($language->languageCode . ': ' . $language->name);
}
```

## Creating a language

To create a new language, you need to create a [`LanguageCreateStruct`](https://doc.ibexa.co/en/5.0/api/php_api/php_api_reference/classes/Ibexa-Contracts-Core-Repository-Values-Content-LanguageCreateStruct.html) and provide it with the language code and language name. Then, use [`LanguageService::createLanguage`](https://doc.ibexa.co/en/5.0/api/php_api/php_api_reference/classes/Ibexa-Contracts-Core-Repository-LanguageService.html#method_createLanguage) and pass the `LanguageCreateStruct` to it:

```php
$languageCreateStruct = $this->languageService->newLanguageCreateStruct();
$languageCreateStruct->languageCode = 'pol-PL';
$languageCreateStruct->name = 'Polish';
$this->languageService->createLanguage($languageCreateStruct);
$output->writeln('Added language Polish with language code pol-PL.');
```
