rust-by-example-ja icon indicating copy to clipboard operation
rust-by-example-ja copied to clipboard

Rust By Example本家へのマージ

Open dalance opened this issue 1 year ago • 8 comments

https://github.com/rust-lang/rust-by-example/pull/1760 にて本家で翻訳版を取り込む準備ができました。 これは mdbook-i18n-helpers というmdbookプラグインを用いた翻訳管理になります。 (実際の使用例は Comprehensive Rust を見てみてください。右上のボタンから言語切り替え可能です)

このIssueでは現在の訳文を本家にマージすることの是非・方法などについて議論できればと思います。

メリットとデメリット

本家にマージすることのメリットとしては以下が考えられます。

  • 公式サイト https://www.rust-lang.org から直接リンクされる
  • 本家の変更がすぐに反映される
    • 未訳部分は英語のままとなりますが、現状と同等です

また、翻訳管理にmdbook-i18n-helperを用いることで、ソースコードのコメント部を直接翻訳できるようになります。 (現状のように英語原文を残しておく必要がなくなる) ソースコードの多いRust By Exampleにおいてはかなりメリットがあると思います。

デメリットとしては

  • マージにより時間がかかるようになる
    • 現状のrust-lang-jaメンバーによる翻訳のレビューに加え、最終的には本家の管理者によるマージ待ちが発生します

が考えられます。

権利関係

現在の訳文はMIT/Apacheでライセンスされているので、翻訳者が分かる形で本家にコミットすれば問題ないと思われます。これを実現するために以下の2点を考えています。

  • 翻訳ファイルの訳者記入欄に現時点の全コントリビューターをリストアップする
  • 本家にマージする際のコミットメッセージに現在のリポジトリと元になったリビジョンを記載する

方法

rust-lang-jaにrust-by-exampleをフォークし、そこで作業します。 また、初回のマージ以降も継続的に翻訳が必要となりますが、日本語のレビューに関しては引き続きrust-lang-ja/rust-by-exampleで行い、レビュー完了したところで本家に上げるのが良いと思います。 (このあたりGitHubのワークフローに詳しくないのでうまくいくかどうかまだよく分かりません)

--

最後に、本件についてこれまでの翻訳者の方々のご意見を頂きたいので、全コントリビューターにメンションさせていただきます。 @joemphilips @kdnakt @tatsuya6502 @a2not @h1g0 @swnakamura @todays-mitsui @sei0o @TAKOYAKING8 @etoal83 @furon-kuina @KANIYONIKA @baseballyama @ohno418 @kotet @eldesh @botamochi0x12 @hnakai0909 @4geru @shiomiyan @tos-kamiya @H1Gdev @yoichi @kazu728 @KisaragiEffective @kishiguro @kakubin @sadnessOjisan @takahiro-itazuri @isudzumi @naoty @tomoyuki-nakabayashi @r6eve @stny @KeenS @akiradeveloper

dalance avatar Dec 14 '23 01:12 dalance

良いと思います。

KisaragiEffective avatar Dec 14 '23 01:12 KisaragiEffective

良いと思います

kdnakt avatar Dec 14 '23 04:12 kdnakt

翻訳の移行作業を一通り行いました。

  • 訳文の移植
  • 表記ゆれ・文体の統一
  • 未訳部分の(簡単な)翻訳

また、ワークフローとしては以下のようにできそうです。

  • コントリビューターは https://github.com/rust-lang/rust-by-example をクローンし、ブランチで作業する
  • 完了したら https://github.com/rust-lang-ja/rust-by-example にPRを出す
    • このリポジトリはデフォルトブランチをjaにしてあるので自動的にjaブランチに対するPRとなります
  • rust-lang-jaメンバーがレビューし、jaブランチにマージ
  • rust-lang-jaメンバーが https://github.com/rust-lang/rust-by-example にPRを出す
  • rust-by-example管理者がマージ、公開される

このあたりは 日本語版向けの翻訳ガイド(TRANSLATING_JA.mdのようなファイル)に書いて本家に入れてもらうのがいいかと思います。

翻訳ファイルの訳者記入欄に現時点の全コントリビューターをリストアップする

この点ですが、訳者記入欄は Last-Translator であり複数人書くことを想定していないようでした。 単なる文字列なので列挙可能ではありますが、あまり望ましくはなさそうなのでここは最後に作業した人の名前にしておくのが良さそうです。 その代わりとして

  • Language-Teamを https://github.com/rust-lang-ja/rust-by-example リポジトリにする
  • 本家へのPRに全員をリストアップする

ということにしたいと思います。

現在以下のPRで作業中です。 細かい訳はおいおい修正していってもいいと思うので、翻訳ガイドあたりまで追加したところで本家へのPR作成予定です。

https://github.com/rust-lang-ja/rust-by-example/pull/1

dalance avatar Dec 27 '23 04:12 dalance

本家へのPRを作成しました。 https://github.com/rust-lang/rust-by-example/pull/1794

dalance avatar Jan 05 '24 14:01 dalance

本家へのPRはマージされたようです。 この後

  • rust-lang/rust のサブモジュールアップデート
    • 2週間おきなので次のタイミングは 2/27 あたり
  • doc.rust-lang.orgの更新
    • stableリリース時のようなので 1.77.0 公開の 3/21

といったスケジュールになるようです。

dalance avatar Feb 20 '24 02:02 dalance

結局「rust-lang/rust のサブモジュールアップデート」はbeta相当だったようで doc.rust-lang.orgへは本日の1.78.0で反映され、日本語版へのリンクはできました。 ですが翻訳版のページ生成に失敗していてその先が404になっています。 rust本体のビルドプロセスに変更が必要そうですのでもうしばらくかかりそうです。

dalance avatar May 02 '24 13:05 dalance

rust本体のビルドプロセス変更PR https://github.com/rust-lang/rust/pull/124731 がアクセプトされました。 これで

明日?: https://doc.rust-lang.org/nightly/rust-by-example/ に反映 1.79.0 (6/13): https://doc.rust-lang.org/beta/rust-by-example/ に反映 1.80.0 (7/25) : https://doc.rust-lang.org/rust-by-example/ に反映

となる見込みです。

dalance avatar Jun 06 '24 00:06 dalance

Rust 1.80.0 がリリースされたので https://doc.rust-lang.org/rust-by-example/ja/ に反映されました。 トップページに未訳があるのは mdbook-i18n-helpers のバグによるもので、 すでに修正済みですが反映されるのは1.81.0になる見込みです。

あとは既存のRBE日本語版から公式に誘導するようにした方がいいかもしれません。

  • https://doc.rust-jp.rs にある https://doc.rust-jp.rs/rust-by-example-ja/ へのリンクを変更する (https://github.com/rust-lang-ja/rust-lang-ja.github.io/pull/12)
  • https://doc.rust-jp.rs/rust-by-example-ja/ から公式に誘導するような注釈を付ける

dalance avatar Jul 26 '24 02:07 dalance