惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
小众软件
小众软件
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
博客园 - 三生石上(FineUI控件)
博客园_首页
N
Netflix TechBlog - Medium
IT之家
IT之家
H
Help Net Security
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
罗磊的独立博客
T
Tailwind CSS Blog
F
Fortinet All Blogs
Hugging Face - Blog
Hugging Face - Blog
MongoDB | Blog
MongoDB | Blog
V
V2EX
量子位
云风的 BLOG
云风的 BLOG
爱范儿
爱范儿
博客园 - 司徒正美
The Cloudflare Blog
Engineering at Meta
Engineering at Meta

mephisto.cc

修复rime-ice无法弹出候选框的问题 开机滚动字体显示优化 个人网站安全防护 树莓派上部署Vaultwarden 使用goaccess实时分析Caddy日志 个人网站监控 Hugo全站AVIF记 Linux下尝试使用Godot开发小游戏 Arch linux dae 透明代理 Airflow接管galler-dl下载任务 如何使用gallery-dl批量下载图像 Arch核显下如何愉快玩Dota2和CS2 Arch/labwc 环境网络相关设置 Rime添加dota2词库 Arch 重装记录 Supertuxkart iOS版终于发布了 打造自己的流媒体音乐服务 剪切板管理工具clipcat推荐 MangoHud性能监控 微信小程序开发记 Rofi试用 解决Arch下VSCode无法输入中文的问题 独立窗口管理器下无法录屏问题处理 上海市二手房成交数据监控 OpenLDAP监控 Arch linux如何顺畅连接蓝牙设备 使用Git和Ansible管理配置文件 Arch Linux SSL VPN 客户端配置 简单获取celery任务实时结果 Arch linux下iNode客户端的安装和使用方法
Hugo根据语种展示不同内容
2024-01-10 · via mephisto.cc

本站开启了多语言支持,主要提供简体中文、繁体中文和英语,不同语言服务不同地区的用户。由于最近开通了微信公众号,并做了简单的公众号开发工作,能提供一些文本问答服务,后续逐步添加功能。

于是我想把公众号信息图放在文末,并只告知简体中文读者(毕竟其它地区的人使用微信不多),好做进一步交流。

这样问题就来了,在 hugo 下怎么面对不同语种的用户提供不同内容呢?

下面是我的简单解决方式:

1. 确定内容放在哪里

我看了文章页布局,放在 "落款" 和 "版权申明" 中间,也即内容末尾比较合适。

hugo theme 的相关文件 layouts/_default/single.html 改动如下图所示

wechat location

不同皮肤,读者需要根据自己情况修改。

2. 根据不同语种判断展示特定内容

这一步就是核心,判断当前语种为简体中文 zh-cn,则展示微信公众号图片。

wechat pic

layouts/partials/wechat.html 代码如下:

1{{ if eq .Site.Language.Locale "zh-cn" }}
2    <img src="/logos/qr_wechat.webp" class="" />
3    <small> 简体中文读者欢迎关注微信公众号留言交流</small>
4{{ end }}

如果当前页面是中文,变量.Site.Language.Locale返回字符串(string)就等于 zh-cn,具体信息查看 Hugo官方文档

如果你写成 .Site.Language 返回的是要个对象,对象和字符串并不相等,逻辑错了就不会走到正确分支。

.Site.Language

Returns the language object for the given site.

{{ .Site.Language }} 在模板上是可以直接渲染成 zh-cn,但是不能用在 if 判定中 😮‍💨,没注意这些细节的话会让人迷惑,我踩过坑,调试了一段时间才搞清楚的。

读者可以在本站的文末切换语言试试看,只有切换到简体中文的时候,才会展示对应图片,功能简单,但是真的有效。

理解原理后,可以根据情况针对不同语种用户,展示不同内容。

特别说明,一般情况下,本站针对所有语种用户提供一样的内容,平等公开。但这和因地制宜,入乡随俗并不冲突,毕竟世界是多彩的。