# Language administration (IRPCLanguagesAdmin)

Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Administration API](https://developer.m-files.com/APIs/gRPC-API/admin/index.md)

HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLanguagesAdmin/

Adds, modifies and removes the languages of a vault, and reads and writes the translations of
its metadata structure names.

Use this interface to add, modify and delete languages in a vault.

- **gRPC service:** `MFiles.IRPCLanguagesAdmin`
- **Book and level:** [Administration API](https://developer.m-files.com/APIs/gRPC-API/admin/index.md), specialized
- **Methods:** 5
- **Proto file:** [`mfiles/IRPCLanguagesAdmin.proto`](https://developer.m-files.com/APIs/gRPC-API/downloads/proto/mfiles/IRPCLanguagesAdmin.proto)

<a id="overview"></a>

## Overview

A vault has a default language (ID 0) and can have additional languages. The names of the
metadata structure (classes, property definitions, value lists, views, workflows, named ACLs,
...) can be translated to each language; users see the names in their session language. M-Files
Admin uses this service to manage the languages and translations of a vault.

- **Session and rights.** Requires a vault session with the vault rights
  `change_metadata_structure` and `license_allows_modifications`
  ([VaultAccess](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.VaultAccess/index.md)). Reading and writing translations also needs
  `see_all_objects`.
- **License.** Adding and modifying languages and applying translations fail when the server's
  license does not include the languages feature.
- **List the languages** with [GetLanguages](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLanguages/GetLanguages/index.md); this
  service has no read method for them.
- **Translate the vault:** [GetTranslations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLanguagesAdmin/GetTranslations/index.md)
  with the default language as source and the target language, fill in `target_string` and
  set `state` to `TRANSLATION_STATE_TRANSLATED`, then
  [ApplyTranslations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLanguagesAdmin/ApplyTranslations/index.md).

<a id="methods"></a>

## Methods

| Method | Summary | Facts |
|---|---|---|
| [AddLanguage](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLanguagesAdmin/AddLanguage/index.md) | Adds a language to the vault. | `admin` `session` |
| [ApplyTranslations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLanguagesAdmin/ApplyTranslations/index.md) | Stores translated names in a target language. | `admin` `session` `idempotent` |
| [GetTranslations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLanguagesAdmin/GetTranslations/index.md) | Gets the translatable names of the vault's metadata structure, with their texts in a source and a target language. | `admin` `session` `idempotent` |
| [ModifyLanguage](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLanguagesAdmin/ModifyLanguage/index.md) | Changes the name or language code of a language. | `admin` `session` `idempotent` |
| [RemoveLanguage](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLanguagesAdmin/RemoveLanguage/index.md) | Removes an additional language from the vault. | `admin` `session` |
