我阅读到,唯一能够获取所有需要替换文本的方法是使用站点文本设置,然后逐一替换。我试图更改措辞:
Topics → 话题
Categories → 版块
Subcategories → 子版块
因为这样更符合我对留言板的理解。我能够用站点文本更改很多内容,但这是一种非常低效的方法。还有其他方法吗?
(另外,由于它只返回前50条结果,我实际上也无法用站点文本全部更改。)
我阅读到,唯一能够获取所有需要替换文本的方法是使用站点文本设置,然后逐一替换。我试图更改措辞:
Topics → 话题
Categories → 版块
Subcategories → 子版块
因为这样更符合我对留言板的理解。我能够用站点文本更改很多内容,但这是一种非常低效的方法。还有其他方法吗?
(另外,由于它只返回前50条结果,我实际上也无法用站点文本全部更改。)
如果你想坚持这一点(而且你在这里提问时,是会用你的语言还是我们的语言?),你可以查看 discourse/config/locales/client.en.yml at main · discourse/discourse · GitHub 并查看所有这些。
这是否能派上用场,取决于您是否可以使用第三方插件?
哈哈,我会用你的语言让事情保持理智!关于这个文件,我可以只更改它的内容,然后在本地安装中更改的内容会在整个网站上生效吗?
哦,谢谢你的分享。我担心会根据评论破坏界面元素……
这主要是让你看看它们都是什么。
你可以编辑那个文件,然后想办法将你的版本复制到容器中的那个文件里面。
你还可以编辑它,然后试图通过API更新数据库中的内容。或者你也可以在Rails中操作。实际上,让一些AI写一个脚本来执行这些更新可能并不太难。
我真的不推荐这样做,但这可能挺有趣的。
所以你的意思是,这个文件是应用程序用来填充数据库的实际值的?也就是说,这是系统读取的"默认值"?
不,我不这么认为。
这不会命中数据库(我认为这会太慢)。
我相信大部分本地化内容都是在内存中处理以提高速度的,使用 Redis 作为缓存(如果我说错了,请纠正我)。
唯一存储在数据库中的是您的修改(在 translation_overrides 表中),当您初始化应用程序时会读取这些修改,或者在您在线进行单个修改时会逐个读取。
我只想指出几点:
另请参阅:
这暗示每个 Category 都有自己的管理员、URL、设置、目的……例如,Meta 是一个论坛。它不是由几个论坛组成的……我真的不确定你怎么争辩?但离题了。
不。
是的。
所以如果你想改变它们,这是一个糟糕的主意,你可以编辑那个文件,把它放在 /var/discourse/shared/standalone/whatever
然后将一个 exec 添加到 app.yml 中,将它从 /shared/whatever 复制到 /var/www/discourse/config/locales/
但你还需要关注提交,看看它是否曾被更改过,以便你可以添加任何被更改的内容。
所以,通过 API 或 rails 的方式将值放入数据库可能更好。
恭敬地说,你们不了解我的用例。说它是一个“糟糕的想法”或者我可能会损害用户体验,而不知道为什么我要这样做,假设我是出于无知。我不想就分类法或用户体验进行辩论。对于我的用例和受众,Discourse用来描述其内容类型的术语没有意义。
所以总结一下:
谢谢。
这是一种方法。您需要编辑您的 app.yml 以便在每次构建新容器时都这样做。
如果您按我上面描述的方式操作,您的版本将覆盖当前版本随附的版本。 locales 目录中的版本是我认为您所说的“独立版本”。所以,如果您这样做,该文件最终会缺少东西,除非您留意它何时发生变化。不过,最糟糕的情况是,您只会看到缺失内容的名称,所以也许您不在乎。它不会崩溃,只会看起来令人困惑。
我说这是一个坏主意,因为这些东西如果您不理解可能会引起问题,所以当它最终变成一场灾难时,我已记录在案,我并不推荐我告诉您如何做的那些更改。
你可以在 app.yml 中发出一堆 sed 命令来自动化更新。
这样你可能会更“容错”一些。
如果你只更改大约20个条目,那就在管理员在线操作吧!
有趣的挑战!
谢谢你的提示!
看起来我通过网站文本获取了大部分(如果不是全部的话)面向公众的引用。但如果我开发出更全面的方法,我会记住这一点。
说得好!这肯定比我建议的覆盖整个文件要好……只要那些 sed 操作不改变文本的名称!
是的,需要仔细查看差异!![]()