Sometimes translators use a wrong sprintf argument name, which then leads to error messages.
Since the error messages do not occur until the string is used (for example a specific tooltips),
the errors go unnoticed until someone notices by coincidence.
For example here https://wildfiregames.com/forum/index.php?/topic/25067-hotkey-does-not-exist/&tab=comments but this wasn't the first time it happened.
This script catches all these errors, but also has one false positive as the entire sprintf syntax is not replicated here.
sk.public-gui-other.po: The sprintf argument %(trained)s used by the translation “Štatistika jednotiek (%(trained)s / %(killed)s / %(captured)s / %(lost)s)” isn't a present in the template string “Siege” “”
zh.public-gui-other.po: The sprintf argument %(hotkey)s used by the translation “%(hotkey)s: 切换至历史” isn't a present in the template string “Add another worker to speed up the repairs by %(second)s second.” “Add another worker to speed up the repairs by %(second)s seconds.”
lv.public-gui-other.po: The sprintf argument %(fps)s used by the translation “KS: %(fps)s” isn't a present in the template string “FPS: %(fps)4s” “”
zh_TW.public-gui-other.po: The sprintf argument %(endWarning)s used by the translation “ %(endWarning)s 您似乎正使用非著色器(shader 一種特定功能)的顯示晶片。這個選項將會在未來的 0 A.D. 版本中移除以便啟用更多的進階圖形特色。我們建議您盡速升級您的顯示卡到較新、相容著色器語言的。” isn't a present in the template string “%(warning)s You appear to be using non-shader (fixed function) graphics. This option will be removed in a future 0 A.D. release, to allow for more advanced graphics features. We advise upgrading your graphics card to a more recent, shader-compatible model.” “”
ar.public-gui-other.po: The sprintf argument %(civ)s used by the translation “%(civ)s :الانتقال لشجرة البنية” isn't a present in the template string “%(hotkey)s: Switch to Structure Tree.” “”