自定义 WPML语言切换器 – 放置位置、样式和行为
自定义 WPML语言切换器:选择它在您的 WordPress 网站上的显示位置、外观、每种语言的标记方式、当缺少翻译时会发生什么、在切换语言时是否保留 URL 参数,以及是否缓存渲染的模板。每个多语言网站都至少需要一个可见的语言切换器;而 WPML 几乎可以将它放置在任何位置。
WPML语言切换器的功能
开箱即用,WPML 生成的语言切换器可以:
- 按照您选择的顺序显示网站上的所有活动语言。
- 以本族语名称(Deutsch、Français)或当前网站语言(German、French)标记每种语言 – 由您选择。
- 可选择显示旗帜(随主题缩放的精灵图)。
- 优雅地处理缺失的翻译:跳过该语言,或链接到该语言的主页。
- 可放置在任何 WordPress 菜单、任何小工具区域、页脚中,或内嵌在文章的上方和下方。
- 提供适用于任何页面构建器布局的 Gutenberg 区块。
- 可以在会造成干扰的特定页面(404、结账、帐户)上隐藏。
- 缓存其渲染的 HTML 以加快页面加载速度。
大多数网站使用内置的放置位置和默认设置。需要更多控制权的主题开发者可以使用 WPML 的 API 在代码中构建自定义切换器。
设置所在位置
打开 WPML设置语言切换器。该页面按问题分组,而不是按 UI 选项卡分组。选择与您要更改的内容相匹配的部分。
显示的语言及其顺序
语言切换器选项卡片有一个拖放区域,列出了所有活动语言。此处的顺序决定了网站上每个切换器中的顺序。向上或向下拖动语言并保存。
在同一卡片中,选择:
- 本族语与当前语言标记。显示 Deutsch(本族语)或 German(当前语言)。本族语对该语言的使用者更具吸引力;而当前语言对首次访问的访客更清晰。
- 开启或关闭旗帜,以及旗帜格式。
当缺少翻译时会发生什么
并非每个页面都被翻译成所有语言。如何处理未翻译的语言选项决定了当当前页面没有某种语言的翻译时,切换器的行为:
- 跳过语言(默认)。该语言会从此页面的切换器中消失。最简洁的用户体验;访客只会看到他们实际能阅读的语言。
- 链接到缺失翻译语言的主页。切换器条目将显示该语言的主页。当您希望每种语言始终可从每个页面访问时,这很有用,但访客可能会进入他们意料之外的内容。
这个选择会对用户体验产生影响,值得仔细考虑。
切换器的显示位置
五个放置位置,每个位置都可以在同一个“设置”页面上独立切换:
- 菜单语言切换器。将切换器放入任何 WordPress 菜单(页眉、页脚、侧边栏,或您的主题分配菜单的任何位置)。如果您希望每个菜单有不同的放置位置,可以添加多个。每个菜单切换器都有自己的预览行,显示其所在位置。
- 小部件语言切换器。将切换器添加到您的主题注册的任何小工具区域:侧边栏、页眉区域、页脚列。
- 页脚语言切换器。一个全局开关,可在每个页面底部自动渲染切换器。
- 文章翻译的内联链接。一个复选框,可在每篇文章的上方或下方显示“本文有 X 版本”链接。
- 自定义切换器。当内置的放置位置不够用时,主题开发者可以从任何模板文件调用 WPML 的切换器 API。“设置”页面提供了一个自定义按钮用于渲染选项。
在特定页面上隐藏切换器
某些页面不需要切换器:您的 404 页面、帐户屏幕、结账页面。WPML 的条件显示规则允许您按页面隐藏切换器,而无须在您的主题中使用 display:none CSS。
您可以在同一个“设置”>“语言切换器”页面上设置每页规则。选择您想要隐藏切换器的页面;该规则将同时应用于每个切换器放置位置。
保留 URL 参数
当访客点击切换器时,WPML 会为目标语言重新构建 URL。默认情况下,查询字符串参数(?utm_source=newsletter、过滤器参数等)会被丢弃。这会破坏分析活动和过滤后的列表。
保留 URL 参数字段列出了您希望在切换时保留的查询键。您在此处输入的任何内容(每行一个)都会随访客一起传递到翻译后的 URL。
切换器的自定义 CSS
额外的 CSS 下的单个文本区域可同时将样式应用于网站上的每个切换器。这对于使切换器与您的主题相匹配而无须修改主题文件非常有用。
缓存切换器模板
WPML 会缓存每个切换器放置位置渲染的 HTML,从而加快繁忙网站的页面加载速度。从 WPML 5.0 开始,没有针对它的设置:只要 WPML 的缓存目录可写,缓存就会开启。
需要注意的地方:当您更改了切换器选项,但没有在前端看到更改反映出来时,首先应该检查缓存。在 WPML支持上运行清除缓存,然后重新加载。
主题代码中的自定义切换器
对于不适合使用内置放置位置的网站(页面标题内特定位置的切换器、由您的主题渲染的自定义下拉菜单、WordPress 菜单或小工具区域之外的任何内容),WPML 提供了一个 API,让主题开发者可以构建自定义切换器。
自定义语言切换器卡片有一个启用开关和一个自定义按钮。启用后,主题模板代码可以使用 WPML 记录在案的 PHP API 在任何位置渲染切换器。