見出し画像

Grayskyに奔走した話

始めに

どうも、Bluesky使ってますか?
要招待制でしたが、招待不要で登録が可能になりました。ミーハーな事をしてしまう自分はその流れでアカウントを登録しました。某サービスがイーロンの手に渡る前の如く詐欺な広告もなく、有料有りきな事もなく、変なユーザーを一気に除外、フィードで関連アカウントをTLでまとめて閲覧、アプリパスワードによるアプリの使用(そのパスワードを使えばアカウントの安全性が高まる)と上位互換になれるであろう存在になりつつあります。
そして、クライアントアプリも色々と増えてきているサービスです。


Grayskyとの出会い

「やはりSNSはクライアントアプリを使いたいな」と思った自分でした。ですが、Bluesky公式クライアントのUIは個人的に好みではありませんでした。そこで国産でPWAなクライアント、TOKIMEKIを使う事にしました。様子は国産なだけに「日本人のユーザーに対して優しい感じのUIだな」と思って使っていましたが、ここで言うのは酷なものの「PWA故にWebページでやってるな」という感じが拭えないのでした。(Store版もリリースはされているがやはり合わない感じだった)
「ネイティブなアプリで使える奴ないんかな…」と思いながらネットを彷徨ったところ、Grayskyの存在を知りました。このクライアントは、初のサードパーティーな物でありiOS向けにリリースされていましたが、Android版のリリースもされています。使ってみたら流石はネイティブ、動作はかなり軽快かつUIの面でも公式側が霞むレベルでした。
しかし、そんな優秀に感じたGrayskyに気になる事がありました。

Grayskyがマルチランゲージ(多言語)に対応していない

表示できる言語が英語だけでした。
日本語化を常日頃にやっている自分は英語でも苦ではないのですが、「サービスは日本語対応してるけど、このクライアントは英語だけかー」と惜しい気持ちが過りました。今後は色々なユーザーが増えるであろうサービスなので様々な人がこれを使う事になるだろうと感じたのです。

だったら自分でやってみる?

GrayskyにはGitHubのリポジトリが存在します。機能の要望やバグの報告もそちらで行なわれており、頻繁にソースが更新されています。「ソースあるなら自分でどうにかできるんじゃね?」と思った自分は個人的に翻訳をしてみる事にしました。GrayskyはReactで作られているのでファイルを弄れば文字列を変更できます。最初は「どこにStrings(文字列)あるんだよ…」と頭を抱えていましたがどうにか発見し、編集を始めます。

翻訳の量は半端じゃなかった

「iOSやAndroid向けだからやろうと思えばできるでしょ?」と思っていましたが、甘くはありませんでした。

  • Blueskyを始めたばかりなのでそれの専門用語の知識が未熟

  • Reactを触れるのは意外にも初だった

  • Stringsの箇所どこ?

  • 無駄な努力になるのでは?という疑問

これが頭に巡っている状態で愛用しているテキストエディタである、秀丸を使ってのPCの画面とGrayskyを開いたスマホの画面とで睨めっこをしていました。目が痛かった…

Grayskyの日本語訳のソースが完成

自信は皆無ですが、完成にこぎ着けました。
自分がやったダーティーなソースコードはこれです。

「このソースを使ってビルドをやるか?」と思いましたが、開発者であるmozzius.devダメ元でDraft Pull Request(仮だけどこんな風にしてみたよと提出する事)をしました。

まさかの進展

Draft Pull Requestを行なっておよそ2日後にGitHubに動きがある事を確認しました。それは、mozzius.devがマルチランゲージに対応させる動きをしていた事でした。彼から「日本語対応やるやで!」と言う事でGrayskyのリポジトリのアクセスの招待が届いていました。すぐに招待を了承して裏で日本語訳をやる流れとなりました。

日本語訳はどうなったのか

日本語訳は、自分が訳したソースからmoファイルに移植を行なって対応させる流れとなりました。リポジトリの裏でmoファイルが公開されていたので翻訳のプラットフォームである、Crowdinを使ってひっそりとWeb上で編集を行なう事にしました。Crowdinで編集をしているmoファイルの写真をBlueskyにアップしたところ、mozzius.devが興味深そうな反応をしていたので「Crowdinを使って編集をやってるよ」と教えました。それがどのような物なのか(複数人での翻訳や修正、追加分のチェック、進捗の可視化がやれる)とGitHubとの統合がやれる情報を彼に教えた結果、公式なGrayskyの翻訳環境として採用されました。GitHubやCrowdinの様子を見て「彼は行動力の化身なのか?」と衝撃を受けたのであった。

日本語訳とAlpha版

Graysky公式が日本語のサポートを始めましたと投稿していたので「マジで進んでるんだな」と自分の周りに緊張感が漂いました。Androidだけでなく、iOSにも使われる物なのでマジでミスは許せないなと思ったが故です。自分は少しでもこの進捗をどうにかしないといけないと焦っていました。Crowdinの日本語を確認してみたところ、自分以外に翻訳の作業に参加している人が数名確認できました。「これは有り難い」と思いながら残りを翻訳、翻訳済みの箇所をUpvoteとDownvote(翻訳の評価)を行なって翻訳の状態に磨きをかけました。その一方、iOSのユーザーはTestFlightにて途中まで日本訳をやった物が追加されたテストビルドをリリースしていました。そのときはまだUIの翻訳が未熟だったのでミスや未翻訳の箇所が残っていました。極力UIに関しての問題がないよう、mozzius.devにAndroid版のAlphaをビルドしてもらいながら違和感や間違いなどがないかひたすら確認をしました。

リリースに至った

数日間で正式なリリースに至りました。
「これ、リリース後に絶対批判来るよな?」と恐怖心を過らせつつ、Grayskyのエゴサをしましたが色々なユーザーが「日本語対応された!」「日本語なったから友人に紹介する価値が出た」「何を考えているんだい?からの気圧で頭が痛い」と反応の数々を見てほっとしました。

日本語対応の最中でmozzius.devとGraysky公式、Crowdinの参加者とGitHubのユーザー、そして日本語の対応を喜ぶユーザーに救われました。

最後に

SNSかつマルチプラットフォームなアプリを翻訳するのは、意外にも初めてでした。勢いでやってしまえーと行動した結果、協力的な人が色々いたので世の中捨てた物じゃないんだなと再確認ができました。mozzius.devから「ロンドン(彼の住んでいる場所)に来たら声かけてください!」と反応されたり、公式からも反応されたり、「Post Anyway」の日本語訳である「とにかく投稿」のとにかくって箇所が好きという反応を見かけたりと過去のTwitterみたいだなと懐かしさを感じました。

「無駄だろうな」と思ったDraft Pull Requestからの日本語対応や翻訳作業などの奔走で疲れたけれど、悔いのない結果で良かった事と今後Grayskyを愛用してくれるユーザーがもっと増えてくれる事を願っています。
因みにGrayskyの開発に貢献したので、貢献者の項目に自分のアカウント名が入りました。良かったら自由にフォローしてください。(無言フォロー失礼しますとか気にする事も全くない)

Grayskyの翻訳を行なっていたときに思い出した曲を添えて、この話を終わりにしようと思います。

Thx! Graysky Dev Team.

いいなと思ったら応援しよう!