Weblate 组件发现 API 不起作用

Posted

技术标签:

【中文标题】Weblate 组件发现 API 不起作用【英文标题】:Weblate component Discovery API not Works 【发布时间】:2022-01-23 15:01:10 【问题描述】:

当我使用 REST API 创建一个 weblate 插件(组件发现)时,

**'curl -X POST -H "Content-Type: application/json" ' +
'-H "Authorization: Token **************" ' +
'-k -d "' +
'\\"name\\":\\"weblate.discovery.discovery\\",' +
'\\"configuration\\":' +
'\\"match\\":\\"locales/(?P^<language^>[^^/]*)/(?P^<component^>(?!__TEMPLATE__) ([^^/])*)\\\\.json\\",' +
'\\"file_format\\":\\"i18next\\",' +
'\\"name_template\\":\\" component _fr\\",' +
'\\"base_file_template\\":\\"locales/fr/component.json\\",' +
'\\"new_base_template\\":\\"locales/fr/component.json\\",' +
'\\"language_regex\\":\\"^^[^^.]+$\\",' +
'\\"copy_addons\\":true,' +
'\\"remove\\":false,' +
'\\"confirm\\":true,' +
'\\"preview\\":true,' +
'\\"url\\":\\"\\"' +
'" http://127.0.0.1/api/components/repositoryname/__template__fr/addons/'**

weblate 不会自动获取我在git 存储库中推送的文件。

要让它工作,我首先需要手动

    在网络浏览器中转到发现插件网页, 在网络浏览器中保存插件 在网络浏览器中接受与模板匹配的文件列表。

一旦完成一次,我在git 存储库中推送的所有文件都会被weblate 正确发现。

但是,我们希望使用 REST API 自动执行 1)、2) 和 3) 步骤。

我尝试将 CURL 请求的确认和预览字段设置为 false,但它不起作用。

有没有办法配置CURL 请求,以便weblate 无需任何手动步骤即可发现文件?

热烈的问候。

【问题讨论】:

【参考方案1】:

它应该工作。我已经 just added 测试将其覆盖到我们的测试套件中。

我的猜测是 JSON 请求中有问题 - 可能没有正确转义或转义太多?

curl 请求以什么结尾?您使用什么 Weblate 版本?

PS:版本信息是posted here。您需要升级,这已在b9646f23174 中修复。

【讨论】:

感谢您的回答。我已将 weblate 升级到最新版本,现在它可以工作了。谢谢。

以上是关于Weblate 组件发现 API 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

组件中的多个 useEffect 不起作用

Vue 3 Composition API 提供/注入在单个文件组件中不起作用

v16.6.0 或更高版本的上下文 API 在提供上下文的组件中使用子组件时不起作用

引导类在 ReactJS 组件中不起作用

从 axios 请求触发时,反应组件中的异步功能不起作用

vue 样式加scoped不起作用