# How Google Skills Handles Different Locales and Languages: A Technical Deep Dive

> Discover how Google Skills manages diverse locales and languages using the Gemini Live API and BCP-47 language codes for multilingual text-to-speech. Explore the technical details.

- Repository: [Google/skills](https://github.com/google/skills)
- Tags: deep-dive
- Published: 2026-08-16

---

**Google Skills supports multilingual interactions through the Gemini Live API skill, which uses a BCP-47 `language_code` field to configure output language for text-to-speech responses.**

The `google/skills` repository provides a framework for building AI-powered skills, with locale and language support implemented primarily in the **Gemini Live API** skill. This article examines the technical implementation of language handling, from protobuf definitions to practical request configuration.

## How Language Selection Works in the Gemini Live API

The Gemini Live API skill is the central mechanism for locale-aware responses in Google Skills. Unlike other skills that operate on prompt content alone, this skill provides explicit language configuration through a standardized code system.

### The BCP-47 Language Code Standard

The `language_code` field follows **BCP-47** (Best Current Practice 47), the IETF standard for language tags. Common examples include:

- `en-US` – English (United States)
- `de-DE` – German (Germany)
- `ja-JP` – Japanese (Japan)

This standard ensures compatibility across speech recognition and text-to-speech systems.

### SpeechConfig Message Definition

In `skills/cloud/gemini-live-api/references/client_server_messages.proto`, the `SpeechConfig` message defines the language configuration:

```proto
// skills/cloud/gemini-live-api/references/client_server_messages.proto
message SpeechConfig {
  // BCP‑47 (e.g. "en-US"). Output TTS language.
  string language_code = 2;
}

```

The comment explicitly notes this field controls **output TTS language**—the spoken response language, not necessarily the input processing language.

## Supported Languages and Model Behavior

The Gemini Live API maintains specific requirements based on model capabilities and language support.

### 24 Supported BCP-47 Languages

The documentation in [`client_server_messages.md`](https://github.com/google/skills/blob/main/client_server_messages.md) lists **24 supported BCP-47 languages** for `speechConfig.languageCode`. When configuring requests, you must verify your target language appears in this supported set.

### Native Audio vs. Non-Native Audio Models

Model selection affects language handling requirements:

- **Non-native audio models**: The `languageCode` field is **required** and must be explicitly set
- **Native audio models**: Support **auto-detection** of input language, making explicit configuration optional

This distinction matters for developers choosing between model implementations based on their multilingual needs.

## Practical Implementation: Configuring Language in Requests

Here's a complete example showing German language configuration:

```json
// Example request payload for Gemini Live API
{
  "speechConfig": {
    "languageCode": "de-DE"
  },
  "input": {
    "text": "Wie ist das Wetter heute?"
  }
}

```

When this request processes, the Live API generates a German-language audio response—provided the underlying model supports that locale.

## Locale Handling in Other Google Skills

Not all skills in the repository implement explicit locale configuration. Skills accepting natural-language prompts—including **BigQuery**, **Cloud Run**, and **Cloud Monitoring** skills—operate on **prompt content** rather than a separate locale setting.

This design means:

- The model processes input language from the prompt text itself
- Output language typically matches input language or follows model defaults
- No granular control over regional variants (e.g., `en-US` vs. `en-GB`)

For applications requiring precise language control, the Gemini Live API skill provides the more robust solution.

## Key Source Files for Locale Implementation

| File | Location | Purpose |
|------|----------|---------|
| `client_server_messages.proto` | `skills/cloud/gemini-live-api/references/` | Defines `language_code` field in `SpeechConfig` message |
| [`client_server_messages.md`](https://github.com/google/skills/blob/main/client_server_messages.md) | `skills/cloud/gemini-live-api/references/` | Documents `languageCode` format and supported languages list |
| [`SKILL.md`](https://github.com/google/skills/blob/main/SKILL.md) | `skills/cloud/gemini-live-api/` | Overview of default implementation language and configuration options |

## Summary

- **Primary mechanism**: Gemini Live API skill uses BCP-47 `language_code` in `SpeechConfig`
- **Standard format**: BCP-47 tags like `en-US`, `de-DE`, `ja-JP`
- **Supported count**: 24 languages officially supported
- **Model dependency**: Non-native models require explicit setting; native models auto-detect
- **Other skills**: Rely on prompt content without separate locale configuration
- **Source authority**: Implementation defined in `client_server_messages.proto`

## Frequently Asked Questions

### What language standard does Google Skills use for locale codes?

Google Skills uses **BCP-47**, the IETF standard for language tags. This is implemented in the `language_code` field of the `SpeechConfig` message, accepting values like `en-US`, `fr-FR`, or `zh-CN`. The standard ensures consistent interoperability between speech recognition and text-to-speech components.

### Is the language_code field required for all Gemini Live API requests?

The `languageCode` field is **required for non-native audio models**. Native audio models can automatically detect the input language, making explicit configuration optional. Check your model implementation type to determine whether you must include this field.

### How many languages does the Gemini Live API support?

The Gemini Live API explicitly supports **24 BCP-47 languages** for the `speechConfig.languageCode` field. The complete list is documented in [`client_server_messages.md`](https://github.com/google/skills/blob/main/client_server_messages.md) within the Gemini Live API skill directory. Always verify your target language appears in this supported set before implementation.

### Do other Google Skills besides Gemini Live API support locale configuration?

Most other skills—including BigQuery, Cloud Run, and Cloud Monitoring—do **not** implement explicit locale configuration. These skills process natural language based on **prompt content alone** rather than a separate language setting, offering less granular control compared to the Gemini Live API's explicit `language_code` mechanism.