スクショを極めるブログ

たかがスクショ、されどスクショ。スクショを極めることで生産性をぶち上げていきます!

ShareXの日本語リソースファイルを本家のGithub Repositoryにプルリクエストを出すまで

ShareXを日本語化するためのリソースファイルを作ります。 バージョン12.1.0までのリソースファイルはnotmeさんが作ってくれています。これを参考にして最新のv13のリソースファイルを作成して、本家のGithubに寄贈します。

リソースファイルと翻訳

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ボタンを押す

f:id:kanaxx43:20200921142544p:plain

自分のアカウント側にソースが一式コピーされます。 f:id:kanaxx43:20200921144243p:plain

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したディレクトリに合わせます。
f:id:kanaxx43:20200921222031p:plain

その後、Choose columnsAdd new languageを使って、英語と日本語(コメントも表示すると4カラム)が出ている状態に整えます。 f:id:kanaxx43:20200924140111p:plain
f:id:kanaxx43:20200924140114p:plain

ここまでできたら、あとは青で囲った部分に日本語の訳を入れていく作業です。
f:id:kanaxx43:20200922000319p:plain

そのワードが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のウェブで変更内容の確認

赤枠でブランチを切り替えて、コミットが来てるか確認
f:id:kanaxx43:20200924094824p:plain

このメッセージが出ていますが、3つコミットができているのでOKです。

This branch is 3 commits ahead, 13 commits behind ShareX:master. このブランチには、独自に行われた3個のコミットがあって、13個のコミットがfork元から遅れている(ずれている)

forkしたときからオリジナルのほうが13回ほど改修されて、コードの不一致がおきているということですね。日本語化で修正した内容には影響がない部分なので、取り込まなくても大丈夫です。今回は放置で進めます。

プルリクエストを出す

fork元のリポジトリ(本家)に対して、プルリクエストをだします。

自分のリポジトリのPull requestリンクを押し f:id:kanaxx43:20200924110818p:plain

プルリクエストの画面へ行きます。 f:id:kanaxx43:20200924140939p:plain

画面の下のほうでは、このプルリクエストに含まれる修正内容が確認できます。 f:id:kanaxx43:20200924140642p:plain

自分のリポジトリの修正したブランチからShareXのリポジトリに向かっていることを確認して、コメントを入れて「Create pull request」を押します。

あとは、取り込まれることを祈るだけです。
https://github.com/ShareX/ShareX/pull/5069

その後

あっという間にmergeされました😃 f:id:kanaxx43:20200925074317p:plain

次のバージョンで日本語がサポートされるのではないかな。。

最後にまとめ

今回はC#の日本語化の方法をまとめました。
Visual Studioをインストールして日本語訳を確認するのをやるべきだと思いましたが、C#に不慣れすぎてできませんでした。もっといいやり方があるような気もしますが、今回はここまで。

これが、人生初のOSSへのプルリクエストでした。初コントリビュート。

参考にしたページ

notmeさんが作ったOSDNに上がっている日本語リソースを参考にさせていただきました。これが無かったら途中で折れていたかもしれません。この場を借りてお礼をお伝えします。

ShareX日本語リソース配布サイト
https://osdn.net/users/notme/pf/sharex_ja/wiki/FrontPage

その後

バージョン13.2.2の開発中バージョンで、日本語が言語切り替えの選択肢に出てくるようになりました。
f:id:kanaxx43:20201014225904p:plain

翻訳者にも載ったし!
f:id:kanaxx43:20201014230006p:plain