ShareXを日本語化するためのリソースファイルを作ります。 バージョン12.1.0までのリソースファイルはnotmeさんが作ってくれています。これを参考にして最新のv13のリソースファイルを作成して、本家のGithubに寄贈します。
この記事は新しいサイトに移動しました
screencapture.fun
リソースファイルと翻訳
ShareXはC#で開発されています。ここを読むと、C#のLocalization(多言語化)はResx Resource Managerというソフトウェアを使えと書いてあります。 https://getsharex.com/docs/translation
Resx Resource Managerは、Visual Studio版とスタンドアローン版がありましたがGitHubからスタンドアローン版をダウンロードしてきてインストールしました。 各国言語を横並びににして翻訳作業ができます。これは便利。
普段、C#を使わないのでローカライゼーションには慣れていないのですけど、ここにある手順に従います。
Githubの操作
あまりGit(およびGithub)の操作に慣れていないですが、ネットで調べながら恐る恐る作業してみることにします。
まずはfork
githubにホストされているプロダクトは、githubを使って修正したものを貢献することができます。 自分のアカウントでログインをし、ShareXのURLまでいき右上のforkボタンを押す
自分のアカウント側にソースが一式コピーされます。
cloneしてブランチ作る
自分のアカウントにforkしたリポジトリーからcloneして作業できる状態にします。とりあえずc:\tmp\
にディレクトリ作って落としてきます。
4行目のURLは自分のものに変えましょう。
mkdir c:\tmp\sharex-jp cd c:\tmp\sharex-jp #自分のものに変える git clone https://github.com/kanaxx/ShareX.git Cloning into 'ShareX'... remote: Enumerating objects: 131, done. remote: Counting objects: 100% (131/131), done. remote: Compressing objects: 100% (48/48), done. remote: Total 67048 (delta 90), reused 102 (delta 83), pack-reused 66917 Receiving objects: 100% (67048/67048), 51.23 MiB | 11.91 MiB/s, done. Resolving deltas: 100% (57117/57117), done. Checking out files: 100% (2897/2897), done.
forkしてcloneしたリポジトリにブランチを作ります。l10n_japaneseで枝分かれさせます
git checkout -b l10n_japanese
Resource Managerで編集
その後にResx Resource Managerを起動して、左上アイコンの下あたり(矢印あたり)をクリックしてフォルダ設定をします。ソースをcloneしたディレクトリに合わせます。
その後、Choose columnsとAdd new languageを使って、英語と日本語(コメントも表示すると4カラム)が出ている状態に整えます。
ここまでできたら、あとは青で囲った部分に日本語の訳を入れていく作業です。
そのワードがShareXの画面のどの部分で使われているか見つけながら進めます。単純に英語を日本語に変換するだけだとちんぷんかんぷんな訳になるので、画面で確認しながら(必要に応じてアプリケーション設定の英語と日本語の切り替えをしながら)進めます。結構、骨の折れる作業です。この先はこつこつと頑張る作業です。 (ちなみにコメントは入れなくても平気です。)
commit & push
翻訳が終わったら、作成した*.ja-JP.resxファイルをforkしたリポジトリ(自分のアカウントのほう)にpushします。
cd c:\tmp\sharex-jp\ShareX git add . git commit -m "コミットコメントをいれる" git push origin l10n_japanese
今回は、本家のリポジトリ内に日本語のリソースファイルがない状態だったので、*.ja-JP.resxファイルを新しく作る形になりました。このコミットとプルリクエストが取り込まれた後は、cloneしたときに*.ja-JP.resxも手に入るので、差分の編集だけで済むはずです。
Githubのウェブで変更内容の確認
赤枠でブランチを切り替えて、コミットが来てるか確認
このメッセージが出ていますが、3つコミットができているのでOKです。
This branch is 3 commits ahead, 13 commits behind ShareX:master. このブランチには、独自に行われた3個のコミットがあって、13個のコミットがfork元から遅れている(ずれている)
forkしたときからオリジナルのほうが13回ほど改修されて、コードの不一致がおきているということですね。日本語化で修正した内容には影響がない部分なので、取り込まなくても大丈夫です。今回は放置で進めます。
プルリクエストを出す
fork元のリポジトリ(本家)に対して、プルリクエストをだします。
自分のリポジトリのPull requestリンクを押し
プルリクエストの画面へ行きます。
画面の下のほうでは、このプルリクエストに含まれる修正内容が確認できます。
自分のリポジトリの修正したブランチからShareXのリポジトリに向かっていることを確認して、コメントを入れて「Create pull request」を押します。
あとは、取り込まれることを祈るだけです。
https://github.com/ShareX/ShareX/pull/5069
その後
あっという間にmergeされました😃
次のバージョンで日本語がサポートされるのではないかな。。
最後にまとめ
今回はC#の日本語化の方法をまとめました。
Visual Studioをインストールして日本語訳を確認するのをやるべきだと思いましたが、C#に不慣れすぎてできませんでした。もっといいやり方があるような気もしますが、今回はここまで。
これが、人生初のOSSへのプルリクエストでした。初コントリビュート。
参考にしたページ
notmeさんが作ったOSDNに上がっている日本語リソースを参考にさせていただきました。これが無かったら途中で折れていたかもしれません。この場を借りてお礼をお伝えします。
ShareX日本語リソース配布サイト
https://osdn.net/users/notme/pf/sharex_ja/wiki/FrontPage
その後
バージョン13.2.2の開発中バージョンで、日本語が言語切り替えの選択肢に出てくるようになりました。
翻訳者にも載ったし!