为什么';weblate没认出我的pot文件吗?

为什么';weblate没认出我的pot文件吗?,weblate,Weblate,我正在使用托管的weblate 我在组件配置的“文件”部分。 下面是我的设置 翻译文件: 文件格式:gettext PO文件 文件掩码:src/translations/*.po 语言筛选器:^[^.]+$ 单语翻译: 所有字段均为空 已选中编辑基础文件 添加新语言: 新翻译的模板:src/translations/Template.pot 添加新翻译:创建新语言文件 语言代码样式:基于文件格式的默认值 我无法验证这些设置,我在“新翻译模板”和“添加新翻译”字段下面出现错误: 错

我正在使用托管的weblate

我在组件配置的“文件”部分。 下面是我的设置


翻译文件

  • 文件格式:gettext PO文件
  • 文件掩码:src/translations/*.po
  • 语言筛选器:^[^.]+$
单语翻译

  • 所有字段均为空
  • 已选中编辑基础文件
添加新语言

  • 新翻译的模板:src/translations/Template.pot
  • 添加新翻译:创建新语言文件
  • 语言代码样式:基于文件格式的默认值

我无法验证这些设置,我在“新翻译模板”和“添加新翻译”字段下面出现错误: 错误为“无法识别新翻译的基本文件”

我百分之百确定pot文件存在于分支weblate上,并且配置为使用,也存在于master上,并且路径正确

以下是pot文件的前几行:

"Content-Type: text/plain; charset=UTF-8\n"

#: src/screens/CardList/CardList.texts.js:9
msgctxt "CardList"
msgid "hello"
msgstr ""

#: src/screens/CardList/CardList.texts.js:11
msgctxt "CardList"
msgid "cards"
msgstr ""

我不明白发生了什么,我做错什么了吗?

文件头似乎被剥去了。至少您应该预先添加以下内容以使其在语法上有效:

msgid ""
msgstr ""

请参阅现实生活中的POT文件

这是我的错,我制作了一个脚本来删除这些文件,因为我认为这是一个bug。您知道为什么它需要在顶部有这些空定义吗?空的msgid包含包含有关翻译的元数据的标题。您可以删除它,但必须完全删除所有值,您保留了msgstr值的最后一部分。