The Language Component displays a list of available languages and provides access to the currently selected language.
It is typically used for language switchers in navigation bars, headers, or footers.
The component automatically generates URLs for the translated version of the current page, making it ideal for multilingual websites.
Component Options
All options are added as HTML attributes using the data-v-* syntax.
| Option | Attribute | Description | Default |
|---|---|---|---|
| start | data-v-start |
Starting offset for pagination | 1 |
| limit | data-v-limit |
Number of languages to display | 1000 |
| status | data-v-status |
1 = show only active languages, 0 = show all |
1 |
| site_only | data-v-site_only |
Show only languages enabled for the current site | true |
| default | data-v-default |
Preselect a specific language; if not set, uses site default | null |
These options allow you to control which languages appear and how they are filtered.
Component Properties
Current Language Properties
The currently selected language is exposed through data-v-language-info-* attributes:
| Property | Attribute | Description |
|---|---|---|
| name | data-v-language-name |
Language name (e.g., English) |
| slug | data-v-language-slug |
Language slug (e.g., en) |
| code | data-v-language-code |
Language code (e.g., en_US) |
| language_id | data-v-language-language_id |
Internal language ID |
| img | data-v-language-img |
Language flag/icon |
These are useful for showing the currently active language in a dropdown or header.
Available Languages (Repeatable)
Languages are listed inside a data-v-language container.
Each language exposes:
| Property | Attribute | Description |
|---|---|---|
| name | data-v-language-name |
Language name |
| slug | data-v-language-slug |
URL slug |
| code | data-v-language-code |
Language code |
| language_id | data-v-language-language_id |
Internal ID |
| img | data-v-language-img |
Language flag/icon |
| sort_order | data-v-language-sort_order |
Display order |
| status | data-v-language-status |
1 = active, 0 = inactive |
| default | data-v-language-default |
1 if default language |
| url | data-v-language-url |
URL to the translated version of the current page |
The url property is especially important:
- On category/product/post pages, it links to the translated version of that item
- On pages without translations, it links to the language homepage
Example Usage
<div class="dropdown" data-v-component-language>
<form method="post" enctype="multipart/form-data" id="form-language">
<a class="dropdown-toggle nav-link"
data-bs-toggle="dropdown"
role="button"
title="Language"
aria-expanded="false">
<span data-v-language-info-name></span>
</a>
<div class="dropdown-menu">
<div data-v-language>
<button class="dropdown-item"
type="submit"
name="language"
data-v-language-code>
<img loading="lazy"
class="me-1"
data-v-language-img>
<span data-v-language-name></span>
</button>
</div>
</div>
</form>
</div>
This example creates a dropdown language selector that:
- Shows the current language
- Lists all available languages
- Displays flags and names
- Submits the selected language code
- Automatically links to the translated version of the current page