Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Japanese
  4. ActiveQt COM DLLの日本語化について
Qt 6.11 is out! See what's new in the release blog

ActiveQt COM DLLの日本語化について

Scheduled Pinned Locked Moved Japanese
3 Posts 2 Posters 2.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Y Offline
    Y Offline
    yebi
    wrote on last edited by
    #1

    初めまして。yebiといいます。

    ActiveQtのドキュメントを見ても、Webを検索しても関連情報が見つかりませんでしたので投稿することにしました。

    QAxFactoryを使って、COM DLLを作成しています。
    COM DLL自体は問題なく作成でき、利用できています。

    質問は、COM DLLを、QTranslatorを使って日本語化がてきるかどうか、ということです。

    QTranslatorのドキュメントには下記の注記が書いてあります。
    Note that the translator must be created before the application's widgets.

    COM DLLを呼び出すときにはwidgetが生成されてしまっているので、QTranslatorは働かないように思えます。
    試しに、クラスのコンストラクタの中でQTranslatorを呼び出してみましたが、やはり効力はありませんでした。

    QTranslatorが使えないのならば、ソースコードに日本語を埋め込むしかなくなります。

    何か情報がありましたら教えていただきたく。

    よろしくお願いいたします。

    1 Reply Last reply
    0
    • T Offline
      T Offline
      takumiasaki
      wrote on last edited by
      #2

      UIはどのように作成していますか。

      • Qt Designerでuiファイルを作成している。
      • コードで作成している。

      どちらの場合でもtr()の呼び出しを行う前に installTranslator() を実行すれば問題は無いはずです。uiファイルを使用している場合はsetupUi()の呼び出し前にinstallTranslator()を実行してください。

      また、WidgetをDynamic Translationに対応させておく方法もあります。この場合、installTranslator()を実行した際にLanguageChangeイベントが発生するのでそれに対応して文字列を設定します。

      詳しくは
      http://qt-project.org/doc/qt-5/internationalization.html#dynamic-translation
      を参照してください。

      uiファイルを作成している場合はDesignerのオプションでこれに対応するコードを作成することが出来ます。Qt CreatorではオプションのDesignerのところにあります。

      1 Reply Last reply
      0
      • Y Offline
        Y Offline
        yebi
        wrote on last edited by
        #3

        うまくいきました。
        ありがとうございました。

        UIはコードで作成しています。

        tr()の前、というのが肝だったのですね。
        自分のコードを見直したところ、installTranslator()の前に一つだけtr()が呼び出されていました。
        順序を変えたところうまくいきました。

        1 Reply Last reply
        0

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved