如何将 Weblate 与仅是 ID 的源字符串一起使用?

How to use Weblate with source strings that are merely IDs?

我在 .json 文件中有我的项目本地化,这是一个英文示例:

{
  "AreYouSure" : "Are you sure?",
  "DescriptionText" : "This is a very long description text, used to aid the user.",
}

如示例所示,我的源字符串只是 ID 而不是句子本身,这给我带来了很多问题,例如:

我理想的解决方案是将英语定义为一种基本语言,通过这种语言,英语翻译将被视为清单比较、机器翻译等的来源。

那么我的问题是,这可能吗?我该如何处理这个问题?

是的,这是可能的,并且涵盖在 Weblate documentation:

... monolingual formats identify the string by ID and each language file contains only mapping of those to given language (typically Android string resources). Some file formats are used in both variants, see detailed description below.

For correct use of monolingual files, Weblate requires access to file containing complete list of strings to translate with their source - this file is called "Monolingual base language file" within Weblate, though the naming might vary in your application.

所以只需将英文文件设置为“单语基础语言文件”即可。

为了进一步参考,我通过在导入项目时指定“--base-file-template”来实现这一点:

./manage.py import_project --base-file-template=en-GB/%s.json --file-format=json {project_name} {git_url} {git_branch} *-*/**.json

使用 "Monolingual base language file" 选项时,我们所有的密钥都已更改为英文翻译。

示例:

STRING001:"Hello World!" 变成了 "Hello World!":"Hello World!"

并且 "Base file template" 不会对这些检查做任何事情。

由于密钥和源翻译(英文翻译)之间的差异,我们在检查方面仍然存在问题。

设置:

en/file.csv(来源)

STRING001:"Hello world!"

sv/file.csv

STRING001:"Hej världen!"

警告:

Trailing exclamation