flux:x-lang 是 Flux Pro Max 提供的语言切换器组件,用于在多语言网站中展示和选择语言。支持下拉菜单展示,每行显示国旗 emoji 和语言名称,点击后自动切换应用语言并刷新页面。
当前文档站点只支持中文简体,组件默认支持中文简体和英文两种语言。当用户选择非这两种语言时,组件将默认展示英文界面。
如需支持更多语言,您可以:
使用 flux:x-lang 组件需要传入语言列表。
@php
$languages = [
['code' => 'en', 'name' => 'English (US)', 'native_name' => 'English (US)', 'flag' => '🇺🇸'],
['code' => 'zh_CN', 'name' => 'Chinese (Simplified)', 'native_name' => '中文(简体)', 'flag' => '🇨🇳'],
['code' => 'ja', 'name' => 'Japanese', 'native_name' => '日本語', 'flag' => '🇯🇵'],
];
@endphp
<flux:x-lang :languages="$languages" />
通过 languages 属性传入语言数组,每个语言对象包含代码、名称、本地名称和国旗。
@php
$languages = [
[
'code' => 'en',
'name' => 'English (US)',
'native_name' => 'English (US)',
'flag' => '🇺🇸',
],
[
'code' => 'zh_CN',
'name' => 'Chinese (Simplified)',
'native_name' => '中文(简体)',
'flag' => '🇨🇳',
],
[
'code' => 'ja',
'name' => 'Japanese',
'native_name' => '日本語',
'flag' => '🇯🇵',
],
];
@endphp
<flux:x-lang :languages="$languages" />
语言对象的属性说明:
|
属性
|
类型
|
说明
|
|---|---|---|
| code | string | 语言代码(如 en、zh_CN、ja) |
| name | string | 英文名称 |
| native_name | string | 本地语言名称 |
| flag | string | 国旗 emoji(如 🇺🇸、🇨🇳、🇯🇵) |
通过 position 和 align 属性控制下拉菜单的显示位置。
<flux:x-lang
:languages="$languages"
align="start"
/>
<flux:x-lang
:languages="$languages"
align="center"
/>
通过 showFlag、showNativeName 和 showEnglishName 属性控制显示内容。
<flux:x-lang
:languages="$languages"
:show-flag="false"
:show-english-name="false"
/>
<flux:x-lang
:languages="$languages"
:show-english-name="true"
/>
以下是一些实际应用场景的完整示例。
<flux:navbar>
<flux:navbar.item href="/" current>首页</flux:navbar.item>
<flux:navbar.item href="/about">关于</flux:navbar.item>
{{-- 语言切换器 --}}
<flux:x-lang :languages="$languages" />
</flux:navbar>
<flux:card>
<flux:heading>语言设置</flux:heading>
<flux:text class="mb-4">选择您的首选语言</flux:text>
<flux:x-lang
:languages="$languages"
variant="primary"
/>
</flux:card>
以下是 flux:x-lang 组件的所有可用属性。
|
属性
|
类型
|
默认值
|
说明
|
|---|---|---|---|
| languages | array | null | 语言数组(必需) |
| current | string | null | 当前语言代码。不传则自动从 session 读取当前语言(推荐) |
| position | string | bottom | 下拉菜单位置:top 或 bottom |
| align | string | end | 对齐方式:start、end 或 center |
| showFlag | boolean | true | 是否显示国旗 |
| showNativeName | boolean | true | 是否显示本地语言名称 |
| showEnglishName | boolean | false | 是否显示英文名称 |
| switchRoute | string | language.switch | 语言切换路由名称 |
| variant | string | outline | 按钮样式变体 |
| size | string | base | 按钮尺寸 |