【问题标题】:Why doesn't weblate recognize my pot file?为什么 weblate 不能识别我的 pot 文件?
【发布时间】:2020-11-25 09:24:38
【问题描述】:

我正在使用托管的 weblate。

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


翻译文件

  • 文件格式:gettext PO 文件
  • 文件掩码:src/translations/*.po
  • 语言过滤器:^[^.]+$

单语翻译

  • 所有字段为空
  • 已选中编辑基础文件

添加新语言

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

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

我 100% 确定分支 weblate 上存在的 pot 文件已配置为使用,并且也在 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 ""

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

【问题讨论】:

    标签: weblate


    【解决方案1】:

    文件的标题似乎被剥离了。至少您应该在前面加上以下内容以使其在语法上有效:

    msgid ""
    msgstr ""
    

    查看https://github.com/WeblateOrg/weblate/blob/master/weblate/locale/django.pot 了解现实生活中的 POT 文件

    【讨论】:

    • 这是我的错,我编写了一个脚本来删除这些,因为我坚持认为这是一个错误。你知道为什么它需要在顶部有这些空定义吗?
    • 空的 msgid 包含标头,其中包含有关翻译的元数据。你可以删除它,但你必须完全包括所有值,你保留了 msgstr 值的最后一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 2011-03-23
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多