Golang翻译与搜索

时间:2018-03-10 20:57:32

标签: go token translation

我有一个可重复使用的软件包,但也需要翻译。 对于第一个使用它的二进制文件,一切都很好 - 对于第二个我可能会忘记一些需要翻译的标记。随后,这会导致文本无法翻译。

因此,我正在寻找一种翻译方法,使编译器(或其他东西)能够找到任何待编译包中使用的所有翻译令牌。

我想过可能使用go:generate。 这会使翻译看起来像这样:

//go:generate collectTranslation "TOKEN_FOR_TEXT" "Default text"
translator.Translate("TOKEN_FOR_TEXT", "Default text")

然而,这种方法有两个问题:

问题1)冗余 - 我必须记住添加一个go:生成我使用翻译的所有地方。我真的更喜欢一种更能抵御人为错误的方式。

问题2)go generate不会自动取消引用依赖项。我需要使用go list -f '{{ .Deps }}'来获取依赖项,然后为那些运行go generate。 (显然我不是手工完成,而是自动化。)

无论如何,我在工作时的解决方案感觉就像问题的补丁一样。 有更清洁的解决方案吗?

0 个答案:

没有答案