翻訳方法

szmCt 説明書 | | | 目次/総目次 | 連絡先

szmCt は wxWidgets を介して GNU gettext の仕組みによる翻訳ができるようになっています。また HTML を用意できればそちらも szmCt から参照できるように作られています。

現状、翻訳作業を楽にするものがまだ用意されていません。HTML ファイルに関しては tools フォルダに create_stub_for_new_language.py および replace_html_footer.py の二つがありますが python プログラミングの知識があることが前提になっています。

下記では目的言語コード例を xx としていますが、二字に限られているわけではなく、xx_yy@zzzz という形が一般的に使えます。_yy や @zzzz でより特定の地域や文化を指すと考えればよいでしょう。xx の部分が ISO 639-1 の二文字、またもしあれば yy の部分が ISO 3166-1 alpha-2 の二文字に該当する場合は、その言語で OS が動いているときに自動選択の対象になるでしょう。手動選択が前提ならこの縛りはなく、非英語も含め自由にフォルダ名を付けられます。

翻訳作業は別のフォルダでやっても構いませんが、szmCt.po に記されている翻訳元文章の場所を直接参照できなくなってしまいます。この場合でも翻訳と .mo ファイルの出力は可能です。

poEdit の場合ちょっとわかりにくいのですが、原語と翻訳の一覧で右クリックすると、翻訳元を参照するためのポップアップメニューが出てきます。

固有名詞や記号しか並んでいないようなところは、翻訳せず放置で構いません。未訳の部分は未訳のままになるだけです。

下記いずれかの作業が完了すると、szmCt を起動した環境の使用言語が xx だった場合は自動的にその翻訳が使われるようになります。そうでないならメニューから手動で指定することになります。

ソースコードからビルドする場合

  1. 目的言語のコードを xx とします。ソースコードの i18n/szmCt.pot を複製し、 i18n/xx.po を作ってください。
  2. poEdit などを使って翻訳してください。xx.po を更新するだけでよく、.mo ファイルへの変換は不要です(ビルド中に自動生成するため)。
  3. CMakeLists.txt 内で i18n/ja.po と記述している部分の直後に、空白を開けるか新しい空行を作ってi18n/xx.po と記述してください。
  4. 3rdparty/wxWidgets/locale/xx.po がありましたら、同様に CMakeLists.txt 内で ${szmCt_abspath_to_wxWidgets_src}/locale/ja.po の次の行に ${szmCt_abspath_to_wxWidgets_src}/locale/xx.po を挿入してください。
  5. 可能であれば doc/xxdoc/ja と同じ構造・ファイル名の HTML ファイルをご用意ください。また doc/index.html から doc/xx/index.html へのリンクも作るとよいでしょう。

以上でビルドすると xx 用の翻訳が使えるようになります。

設置済みの szmCt 周辺に配置する場合

基本的には Windows と macOS 上でのみできる方法です。Linux ではいちいち管理者権限が必要になるので、こちらの手段は可能であっても非常に煩わしいものになるでしょう。

  1. 目的言語のコードを xx とします。ソースコードの i18n/szmCt.pot を複製し、 i18n/xx.po を作ってください。
  2. poEdit などを使って翻訳し、i18n/xx.mo ファイルを作ってください。
  3. szmCt が使う i18n の中に xx フォルダを新しく作ってください。
  4. 新しく作ったフォルダに xx.mo を複製し、szmCt.mo改名してください。つまり i18n/xx/szmCt.mo がある状態にしてください。
  5. 3rdparty/wxWidgets/locale/xx.po がありましたら、これに対する xx.mo も作り、同じように複製し、今度は wxstd.mo に改名してください。
  6. 可能であれば doc/xx に、doc/ja と同じ構造・ファイル名のHTML ファイルをご用意ください。また doc/index.html から doc/xx/index.html へのリンクも作るとよいでしょう。

以上で szmCt から xx 用の翻訳が使えるようになります。