-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ハンドブックをまるまる翻訳する仕組みを考える #24
Comments
要件
|
個人的に考えた仕様は以下
|
以下communityのハンドブックのREST API |
あるページを翻訳し始めて、それが終わるまでにそのページのオリジナルが更新されたことをキャッチできへんかなと思ったけど、jekyll用のメタデータをマークダウンに変換するときにつけとけばいいかも。例えばオリジナルの記事の最終更新日とか。 |
翻訳するときはフォークしたらあかん。 |
メニューがカスタムメニューなのか固定ページをそのまま使ってるのか、チームによって違ったりするのか聞かないかんな。 |
下層のハンドブックページ (例: https://make.wordpress.org/community/handbook/meetup-organizer/welcome/) はカスタム投稿タイプみたいなので、API 提供されてないかも。 |
取り急ぎ簡単な翻訳の仕組みを考えました。
|
ハンドブックのREST-APIにバグ見つけたので、できる範囲で相談します。 |
|
今やってみてるんですが、これって、原文は行ずつとかでしょうか?あと何故か |
はい。マークダウンでは行、HTML でいうと
GitHub で |
翻訳後のオリジナルの更新をREST-APIでトラッキングできる気がするのでチケット立てた。 |
ありがとうございます! |
metaチームのミーティングで催促した。 |
みやさんのチケットマージされて、Handbook が REST API 経由でアクセスできるようになってたので、お試し程度にテーマレビューの日本語訳のやつで原文追跡できるようにしてみました https://github.com/mirucon/required-ja 原文を追跡するだけなら簡単にできそうなんですが、それを訳の中のコメントアウトされてる方に反映させる方法させる方法についてはもう少し考えてみないといけなさそうですね…。 |
@mirucon おー、ナイスですね。僕もTravis CIでREST-APIのレスポンスをキャッシュしてゴニョゴニョというイメージで考えていました。 あとは、翻訳したマークダウンファイルに翻訳の日付及びスラッグをメタデータとして保存しておくとJSで「この記事の翻訳はオリジナルに対して古い可能性があります。」と表示できるのではないかなと考えています。 メタデータの保存の仕方は以下のような感じ。
|
の部分がメタデータで、YAMLフォーマットが使えた気がします。 |
この場合、オリジナルの本文のどの行が古いのかを取得するところまでは解決できていないのですが、現時点ではあとまわしでいいかなと思っています。 |
@mirucon 以下どう思いますか?
メニュー用のJSONには各ハンドブックのページを以下のようなスキーマで配列で放り込む感じ。
このJSONをAjaxで読み込んで未翻訳のページや翻訳が古いページを検出する感じ。 |
@miya0001 素晴らしいと思います ! Handbook 自体かなり数あるので、流用できるようにするのは良い仕組みですねー |
@mirucon ではまかせた! |
@miya0001 丸投げかよ ! w まあやるけども |
@miya0001 ひとまず雰囲気掴める程度に |
ありがとうございます!
すべての翻訳をするわけではないので、一発で全部取る必要はないかなと思いますので今の路線で行きましょう。
デフォルトではマルチサイト用のAPIは特にないのですが、子サイトのURLがわかればオートディスカバリをつかって、どんなAPIがあるかをとることはできます。
まあまとめて取る場合はこういうことも考えないといけないですが、今回のユースケースではひとつずつ取ればいいんじゃないかと思います。 |
@miya0001 とりあえずコマンドの方は大丈夫だと思うので、これ前に進めましょう。 |
って感じかなと。 |
ああなるほど、なんとなく掴めました。そうするとメニューを生成する部分はどうやって管理するかって決めてますか ? GitHub Pages あたりでデプロイする感じなのかなと思いますが、テンプレ用意してそれをレポジトリ毎にインストールして使ってもらう感じですかね。 |
Travis CIのCronでハンドブックのREST-APIを蹴っ飛ばしてそれをもとに上でコメントしたメニュー用のJSONを生成してそれでメニューを表示する感じかな。 |
あ、ええっと、聞きたいのはメニューを表示する部分の Jekyll とかのテンプレートをどういう風にするのかです。その部分はどの Handbook であっても共通の部分なので、コマンドと同じようにそれ単体で GitHub のレポジトリに置いてテンプレートを管理するという認識であってますか ? それを各 Handbook 翻訳のレポジトリの gh-pages ブランチにクローンしてコマンドで生成された JSON ファイルを元にメニューを生成、という感じなのかなと。Jekyll を使ったことがないのでテンプレート部分がいまいち想像つきにくいのです。 |
Jekyllのテーマを配るイメージで行けるかなーと思ってるのですが、やってみないとわかんないですね。 |
ちなみに Jekyll にこだわる意味ってありますか ? VuePress だったら僕やりたいなあと思うんですけど、Jekyll のがベターですかね。 あ、でも VuePress だとテーマ配れるかわからないや、ちょい検証します |
@mirucon Jekyll だと Github Pages でやる場合は、勝手にビルドとかしてくれるので楽ってのはあります。ただ、どうせ API から取ってきて CI 回して・・・ってことをやるのであればどっちにしろビルドは必要な気がするのでやりやすいもので良いのかなと。 |
どっちにしろTravisに依存するのでなんでもいいんじゃないですかね。Jekyllにこだわらないですよ。 |
了解です、なんか適当に良いのないかちょっと見てみます |
VuePress 試してみましたが、サイドバーを多重ネスト構造にできないのでだめでした。静的サイトジェネレータで有名なのって何があるのかあんまりわからない…。 |
じゃあ、すなおにJekyllにしましょうか。とりあえず適当なテーマで意図通りのことができるか試してみます。 |
ハンドブックの翻訳って結局 GitHub Pages で行くんですか? |
とりあえずそういう仕組を作ろうかなーと。 |
No description provided.
The text was updated successfully, but these errors were encountered: