LC_ALL/LANG/LANGUAGE = en_US.UTF-8 适用于非英语网站吗?

自从我开始设置新的 Discourse 实例以来,我一直在想:discourse-setup 不会询问新站点的区域设置,而是生成一个 app.yml 文件,其中包含 LC_ALL/LANG/LANGUAGE = en_US.UTF-8

这是正确的吗?如果是,那么在安装说明中提及这一点可能会有帮助。如果不是,那么 discourse-setup 应该询问这些设置,或者至少不要立即启动容器,以便我可以在首次启动之前进行调整。

我主要问这个问题是因为对于一个现有的站点,我在从 Postgres 13 升级到 15 时遇到了区域设置问题(它们仅在初始容器创建后才被调整为 de_DE.UTF-8),我通过重置为 en_US.UTF-8 来修复了这个问题。但另一方面,这意味着 Postgres 数据库将使用排序规则 en_US 创建,这在使用德语的变音符号(例如)进行搜索时可能会导致一些问题。

这个旧的 PR (FEATURE: Ask for default language in discourse-setup by caugner · Pull Request #319 · discourse/discourse_docker · GitHub) 链接自 2016 年的一次讨论 (Default categories/topics in English despite German as default language in setup wizard - #3 by claas) 似乎表明 Discourse 现在会在后台处理所有内容。但最好能得到确认,并且如上所述,可能在安装说明中添加一个小注释。

1 个赞

建议(对我而言)您创建一个具有 DE 设置的新服务器,然后将数据库恢复到那里。

如果您不喜欢在破坏旧站点之前确保新站点正常工作的安全性,并且在旧操作系统可能接近寿命终点时迁移到新操作系统,您也可以进行备份,删除 postgres 文件,更改区域设置,重建以创建新数据库,然后恢复备份。

编辑:我只会说英语,并且不是区域设置错综复杂方面的专家,但您对搜索能否正常工作的担忧对我来说似乎是切中要害的。

所以总的来说是的,我会保持旧服务器运行,直到一切都准备就绪。

我想知道的是:虽然我认为我可以手动调整数据库区域设置,但我不确定是否应该这样做。但如果真是这样,那么我认为 discourse-setup 在这方面能让我的生活更轻松会比较好。

抱歉打扰,但在设置新网站(默认语言将是德语)之前,在此获得一些指导将非常有帮助。
Gerhard 在 GitHub pull request 中的评论听起来像是 Discourse 可能已经在内部/按列处理语言设置,但我很难验证这是否已实施,因此我不确定 app.yml 中的默认区域设置为 en_US.UTF-8 是否适用于德语网站。

2 个赞