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 だった場合は自動的にその翻訳が使われるようになります。そうでないならメニューから手動で指定することになります。
xx とします。ソースコードの i18n/szmCt.pot を複製し、 i18n/xx.po を作ってください。xx.po を更新するだけでよく、.mo ファイルへの変換は不要です(ビルド中に自動生成するため)。CMakeLists.txt 内で i18n/ja.po と記述している部分の直後に、空白を開けるか新しい空行を作ってi18n/xx.po と記述してください。3rdparty/wxWidgets/locale/xx.po がありましたら、同様に CMakeLists.txt 内で ${szmCt_abspath_to_wxWidgets_src}/locale/ja.po の次の行に ${szmCt_abspath_to_wxWidgets_src}/locale/xx.po を挿入してください。doc/xx に doc/ja と同じ構造・ファイル名の HTML ファイルをご用意ください。また doc/index.html から doc/xx/index.html へのリンクも作るとよいでしょう。
CMakeLists.txt を操作する必要はありませんが、将来何かしらの作業を必要とするよう変えるかもしれません。以上でビルドすると xx 用の翻訳が使えるようになります。
基本的には Windows と macOS 上でのみできる方法です。Linux ではいちいち管理者権限が必要になるので、こちらの手段は可能であっても非常に煩わしいものになるでしょう。
xx とします。ソースコードの i18n/szmCt.pot を複製し、 i18n/xx.po を作ってください。i18n/xx.mo ファイルを作ってください。i18n の中に xx フォルダを新しく作ってください。
SZMCT_I18N_DIR の設定値が参照先になります。xx.mo を複製し、szmCt.mo に改名してください。つまり i18n/xx/szmCt.mo がある状態にしてください。3rdparty/wxWidgets/locale/xx.po がありましたら、これに対する xx.mo も作り、同じように複製し、今度は wxstd.mo に改名してください。doc/xx に、doc/ja と同じ構造・ファイル名のHTML ファイルをご用意ください。また doc/index.html から doc/xx/index.html へのリンクも作るとよいでしょう。
SZMCT_DOC_DIR の設定値が参照先になります。以上で szmCt から xx 用の翻訳が使えるようになります。