You need to enable JavaScript to run this app. 如何更改Streamlit应用中date_input widget的日历显示语言
优惠活动
大模型
产品
解决方案
定价
更多

如何更改Streamlit应用中date_input widget的日历显示语言

Streamlit date_input 日历控件语言切换实现方法

st.date_input目前没有提供直接设置日历显示语言的内置配置项,本质原因是该组件默认渲染的是浏览器原生<input type="date">元素,控件的月份、星期文案默认遵循访客端的浏览器系统语言规则,不存在通过参数直接强制改语言的内置入口。

可行落地方法

低代码成本方案:强制设置页面HTML语言属性

浏览器原生日期控件的语言判定优先级为:页面<html>标签声明的lang属性 > 访客的浏览器系统语言。你可以通过往页面注入轻量JS脚本的方式,强制指定页面的全局语言,即可让日期控件切换为对应语言的显示:

import streamlit as st

# 在所有日期组件渲染前,注入脚本修改根节点语言配置
st.markdown(
    """
    <script>
    // 替换为你需要的标准语言编码,比如zh-CN、en-US、ja-JP等
    document.documentElement.lang = "zh-CN";
    </script>
    """,
    unsafe_allow_html=True
)

# 正常调用date_input组件即可
st.date_input("请选择日期")

使用注意事项:

  • 语言编码需符合ISO 639-1标准,否则浏览器无法识别对应的语言包。
  • 脚本必须写在所有date_input组件的渲染逻辑之前,避免页面首次加载时出现语言闪烁的问题。
  • 该方案不需要额外引入第三方组件,适配所有当前Streamlit稳定版本。

高可控性方案:替换为自定义多语言日历组件

如果你需要完全跳过浏览器原生控件的逻辑,不受访客端环境影响固定日历显示语言,可以通过Streamlit自定义组件机制,嵌入内置多语言支持的轻量日期选择控件,手动加载对应语言包即可实现完全自定义的本地化效果。

  • 优势:可以自由控制日历的样式、交互、显示语言,不会因为访客浏览器环境不同出现显示差异。
  • 劣势:需要额外实现组件和Streamlit会话状态的绑定逻辑,开发成本比低代码方案高。

常见误区提醒:不要指望通过调整部署服务器的系统语言让日期控件切换,原生日期控件的渲染完全发生在访客端浏览器,和服务器环境没有任何关联。

内容的提问来源于stack exchange,提问作者rodwulf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.30 04:24:01