Skip to main content
Daily Prebuilt supports over a dozen languages. The language can be set at multiple levels — from a domain-wide default down to a per-participant override — using the lang property.

Supported language values

ValueLanguage
"da"Danish
"de"German
"en"English (default)
"es"Spanish
"fi"Finnish
"fr"French
"it"Italian
"jp"Japanese
"ka"Georgian
"nl"Dutch
"no"Norwegian
"pt"Portuguese (Portugal)
"pt-BR"Portuguese (Brazil)
"pl"Polish
"ru"Russian
"sv"Swedish
"tr"Turkish
"user"Matches the participant’s browser language (falls back to English if unsupported)
"no" (Norwegian) and "ru" (Russian) are only available in the current Daily Prebuilt UI.

Setting the language

There are four ways to set the language, listed here from lowest to highest priority.

1. Domain level (lowest priority)

Set a default language for all rooms on your domain via the domain configuration API:
curl --request POST \
  --url https://api.daily.co/v1/ \
  --header 'Authorization: Bearer $DAILY_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{"properties": {"lang": "fr"}}'

2. Room level

Override the domain default for a specific room:
curl --request POST \
  --url https://api.daily.co/v1/rooms/my-room \
  --header 'Authorization: Bearer $DAILY_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{"properties": {"lang": "de"}}'
You can also select a language when creating a room in the Daily dashboard.

3. Meeting token level

Set a per-participant language by including lang in meeting token properties:
curl --request POST \
  --url https://api.daily.co/v1/meeting-tokens \
  --header 'Authorization: Bearer $DAILY_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{"properties": {"room_name": "my-room", "lang": "jp"}}'

4. setDailyLang() (highest priority)

Call setDailyLang() at runtime to change the language dynamically. This overrides all other settings and is useful for building in-call language selectors:
call.setDailyLang('es');
You can also pass lang directly to createFrame():
const call = Daily.createFrame({ lang: 'nl' });

Priority order

When multiple levels are configured, the highest-priority setting wins:
  1. setDailyLang() — highest
  2. Meeting token lang
  3. createFrame() property
  4. Room-level lang
  5. Domain-level lang — lowest