| 摘要 | 此插件允许您全局替换翻译中的某些单词 | |
| 存储库链接 | https://github.com/Lhcfl/replace-translations-global | |
| 安装指南 | 如何在 Discourse 中安装插件 |
功能
字面上地将一个单词的所有出现替换为另一个单词
例如,将“Topic”替换为“Nya”:
配置
我相信它的设置是不言自明的 ![]()
请注意,翻译会被缓存,更改它们需要时间。您可以执行此操作来强制更新:
sudo ./launcher enter app
rm -rf tmp
| 摘要 | 此插件允许您全局替换翻译中的某些单词 | |
| 存储库链接 | https://github.com/Lhcfl/replace-translations-global | |
| 安装指南 | 如何在 Discourse 中安装插件 |
字面上地将一个单词的所有出现替换为另一个单词
例如,将“Topic”替换为“Nya”:
我相信它的设置是不言自明的 ![]()
请注意,翻译会被缓存,更改它们需要时间。您可以执行此操作来强制更新:
sudo ./launcher enter app
rm -rf tmp
这个插件就是用来批量替换翻译的啊。只不过由于缓存原因,你替换完可能还得要rebuild才能生效
我的意思是没有discourse官方提供的批量修改方法吗?
例如导出yaml文件,通过vscode来替换?
没有这样的方法,只能一个个改
那您的工具确实是非常棒的!
每一次更改都需要./launcher rebuild app
手动重建吗?
sudo ./launcher enter app
rm -rf tmp
我没有发现作用
先试试(删了tmp后) ./launcher restart app?
我是在开发环境下删的tmp,可能这里自动应用了
不行就rebuild。可能语言文件是预先编译好的,这个插件原理是干预了读语言yml的函数,它只会在第一次加载的时候跑一遍
提醒一下,包含英文翻译能让其他人更容易理解,![]()
刚刚尝试了一下,会oops,还是重建吧比较稳定
如果使用此项来替换“category”一词,请注意,此插件还会替换模板中的单词,例如“{category}”,从而导致 UI 错误。为避免这种情况,我在插件设置中使用了正则表达式 en:(?<!\{)category(?!=\})=\chapter,但也许应该调整插件以仅针对面向用户的内容。
@Lhc_fl 有这方面的计划吗?您的插件似乎正是我需要用来为我的法语社区修复一些术语的,但我担心会像上面 tomtjes 的帖子中所描述的那样破坏某些东西。
(这是 Globally replace translations 插件)
也许你需要使用 => 而不是单独的 = 和 > 符号?你截图中显示的箭头看起来不正确。
符号使用确实是没有问题的,是单独的=和>符号,只是显示的问题导致看着是连在一起了
明白了,无论如何,这应该移到该插件的主题下,因为它不是#官方内容。
好的 明白,谢谢告知。(为什么要凑20个字符才可以回复)
如果我的理解正确,该插件使用 JsLocaleHelper 来替换前端使用的文本(即 client.*.yml 的内容)。而 server.*.yml(例如包含站点设置描述的文本)则保持不变。
“azy videos”只是您想使用该插件的一个示例吗?该插件旨在替换大量文本中的特定术语。由于这段文本在论坛中仅出现一次,您可以直接编辑该文本,而无需使用插件。有关如何操作的指南如下:Customize text in Discourse
这些是设置项的名称。我已在 有没有比较好的中文插件 - #2 by Moin 中解释了它们为何不可翻译。
您无法在管理界面中自定义那些不可翻译的文本。
顺便提一下,如果我在该插件是否也能修改后端文本这一点上有所疏忽,我仍然相当确定它仅会替换可翻译的文本,而不会更改界面中的其他文本。它的作用是在文本中替换词语,而不是让不可翻译的文本变得可翻译。