Localization
The Meetings API supports localization for the UI of a meeting, allowing you to change the language used. This can be controlled in two ways:
- Predefined in the API Call - this allows the language to be predefined for all participants in the meeting via an option in the API call.
- Selection from the UI - this adds a language selection option to the UI allowing each participant in the meeting to select their preferred language.
Apply a language to all participants
This option allows the language to be pre-set in the API call; the selected language will be applied to all participants in the meeting. This is done by adding "ui_settings": {"language":"XX"} to the API call where you create your meeting, where XX is the language code of your selected language (see Available Languages below for a list of currently supported languages).
For example, this API call will create a room where the language is set to Spanish for all participants:
const credentials = new Auth({
privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH,
applicationId: VONAGE_APPLICATION_ID,
});
const options = {};
const meetingsClient = new Meetings(credentials, options);
await meetingsClient.createRoom({
type: MeetingType.INSTANT,
displayName: "New Meeting Room",
uiSettings: {
language: RoomLanguage.ES,
},
});
var client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();
var room = MeetingRoom.builder("New Meeting Room")
.uiSettings(UISettings.builder()
.language(RoomLanguage.ES)
.build()
)
.build();
client.getMeetingsClient().createRoom(room);
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = CreateRoomRequest.Build()
.WithDisplayName("New Meeting Room")
.WithUserInterfaceSettings(new UiSettings(UiSettings.UserInterfaceLanguage.Es))
.Create();
var response = await client.MeetingsClient.CreateRoomAsync(request);
$keypair = new Vonage\Client\Keypair(
VONAGE_APPLICATION_PRIVATE_KEY_PATH
VONAGE_APPLICATION_ID,
);
$client = new Vonage\Client($keypair);
$room = (new Vonage\Meetings\Room())->fromArray([
'display_name' => 'New Meeting Room',
'ui_settings' => [
'language' => 'es'
]
]);
$createdRoom = $client->meetings()->createRoom($room);
client = vonage.Client(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
)
response = client.meetings.create_room({
'display_name': 'New Meeting Room',
'ui_settings': {'language': 'es'},
})
If no language is selected in the API call, English is selected by default.
Available Languages
| Language | Language Code |
|---|---|
| Arabic | AR |
| Brazilian Portuguese | PT-BR |
| Catalan | CA |
| Chinese (Taiwan) | ZH-TW |
| Chinese (Mainland) | ZH-CN |
| English | EN |
| French | FR |
| German | DE |
| Hebrew | HE |
| Italian | IT |
| Spanish | ES |
Individual selection from the UI
This option will display a language setting in the UI, allowing each participant to choose what language they want. This is done by adding "is_locale_switcher_available": true to your API call within the available_features object:
const credentials = new Auth({
privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH,
applicationId: VONAGE_APPLICATION_ID,
});
const options = {};
const meetingsClient = new Meetings(credentials, options);
await meetingsClient.createRoom({
type: MeetingType.INSTANT,
displayName: "New Meeting Room",
availableFeatures: {
isLocaleSwitcherAvailable: true,
},
});
var client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();
var room = MeetingRoom.builder("New Meeting Room")
.availableFeatures(AvailableFeatures.builder()
.isLocaleSwitcherAvailable(true)
.build()
)
.build();
client.getMeetingsClient().createRoom(room);
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = CreateRoomRequest.Build()
.WithDisplayName("New Meeting Room")
.WithFeatures(new Room.Features {IsLocaleSwitcherAvailable = true})
.Create();
var response = await client.MeetingsClient.CreateRoomAsync(request);
$keypair = new Vonage\Client\Keypair(
VONAGE_APPLICATION_PRIVATE_KEY_PATH
VONAGE_APPLICATION_ID,
);
$client = new Vonage\Client($keypair);
$room = (new Vonage\Meetings\Room())->fromArray([
'display_name' => 'New Meeting Room',
'available_features' => [
'is_locale_switcher_available' => true
]
]);
$createdRoom = $client->meetings()->createRoom($room);
client = vonage.Client(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
)
response = client.meetings.create_room({
'display_name': 'New Meeting Room',
'available_features': {
'is_locale_switcher_available': True,
},
})
With this option enabled, the participants will be able to see a globe icon in the top right toolbar within the meeting:

Clicking on the globe will then present the user with a list of options to change the language of the UI:
