我试图用Java读取.qm翻译文件。 .qm文件是二进制文件。我无法访问.ts文件。 而且我没有找到关于这些.qm文件的更多信息。 他们是如何构建的? 的问候,
答案 0 :(得分:0)
我所知道的文档没有,但如果你查看QTranslator::load
,你应该能够遵循QM文件的格式。
您可能需要在Java中重新实现<If><Else>
,因为您不仅需要加载文件,还需要以Qt方式提取和应用翻译。
答案 1 :(得分:0)
根据OP的要求:
您可以使用Qt库和JNI来使用这些文件。通过在c ++ dll中使用翻译器,您可以轻松地翻译字符串。但是,您无法提取文件或列出包含的翻译。但如果你需要的只是实际翻译,那么这个解决方案应该可行。
我不能给出一个真实的例子,因为我现在才在理论上如何运作,我没有尝试过,因为它并非无足轻重。但如果你渴望尝试一下,那么一般的想法就是:
重要:强>
首先,我不知道java如何处理dll依赖项。如果在加载dll时遇到错误,可能是因为你的dll的依赖项不存在。其次,对于大多数操作,Qt通常需要在主线程中运行QCoreApplication
。我在没有这样的应用程序的情况下测试了翻译器,并且它有效。显然对于翻译而言,不需要应用程序。但是,根据你在dll中所做的事情,我认为这一点很重要。
如果您需要更多详细信息,请随时提出。