如何包括我的软件的翻译?

我开发C ++软件,并希望提供翻译。为此,我的想法是将所有文本消息都存储在Messages.cpp中,然后通过分配给每个字符串的键从那里从正确的语言文件中读取所有字符串。

例: Messages.cpp

std::string test = get_file_entry("de-DE.txt", "key-that-identifies-a-string");

de-DE.txt

key-that-identifies-a-string: This is a text message that I want to access in my software.

有更好的方法吗?例如,在Arch Linux安装过程中需要使用“ locale-gen”生成的语言环境如何?我可以根据操作系统的语言环境在示例中选择适当的语言文件吗?专业人士如何看待视频游戏中的语言设置?如果无论操作系统语言环境如何,我都想更改语言该怎么办?

如何实现翻译?我在网上搜索,没有找到有用的信息。

PS:我对语言区域不了解更多,因为它们是针对特定文化特征(语言,数字,时间等)的一套规则。不要以为我对它们了解太多,因为我从未在软件中使用过类似的东西。