Bar*_*nau 14 c++ multilingual qt
我有一个多语言Qt应用程序,我有以下问题
我能以什么方式实现这一目标?我发现的所有示例都涉及翻译整个应用程序,但在我的情况下,我需要两个独立的翻译(尽管可能使用相同的语言).
我是否需要复制QApplication::translate自己的后备机制并QTranslator::translate直接使用,还是有更方便的方法?
假设您需要为整个应用程序翻译一个,而另一个用于对话框.您需要做的是创建两个qm文件:一个包含除此对话框之外的所有内容的翻译,另一个包含仅用于此对话框的翻译.现在您可以单独加载/卸载此qm文件.
我想你知道如何动态地改变翻译.
评论更新:
要创建单独的qm文件,您可以将所有主要源放在一个目录中,并将所有对话源放入另一个并调用lupdate -no-obsolete -recursive ../src/Form -ts Form_ru.ts,其中../src/Form是dialogs目录.甚至可以调用lupdate -no-obsolete ../src/Form.ui ../src/Form.cpp ../src/Form.h -ts Form_ru.ts文件.
结果脚本将是这样的:
lupdate -no-obsolete -recursive ../test.pro -ts test_ru.ts
lupdate -no-obsolete ../Form.ui ../Form.cpp ../Form.h -ts Form_ru.ts
Run Code Online (Sandbox Code Playgroud)