Keep on moving

あんまりまとまってないことを書きますよ

Play20 翻訳の方針(preview版)

このページは絶賛更新中です version:2011/12/10

Play!の翻訳用に id:garbagetown 先生がplayframework-jaを作成してくれました。
お忙しい中、作業いただきありがとうございました。

さて、翻訳を進めていくにあたり、ある程度のガイドラインが必要だと思うので
ひとまずここにまとめておきます。ご意見とか、「もっといい方法あるよー」、「こうやってるよ」っていうのがあったら教えていただけると助かります。
ある程度まとまったら 翻訳Wikiにページを追加します!

changelog

version:2012/03/05 :origin-masterブランチの取得方法
version:2011/12/14 : 文字化けするためソースコメントの翻訳はやめました。
version:2011/12/12 : 「fork時点での日付を各wikiページに含む」を追加

Play!20の翻訳方針(preview版)

  • 翻訳を始めたい方は id:garbagetown 先生 or 翻訳メンバーにメンバー追加してもらう方針にする。
    • 現状翻訳wikiは playframework-jaの translators_play20のメンバーでないと編集不可です。
  • 翻訳はPlay 2.0 ドキュメント · playframework-ja/Play20 Wiki · GitHubで行う
  • 各Wikiページを翻訳する前にIssues · playframework-ja/Play20 · GitHubで対応するissueを自分にassignしてください。翻訳かぶりを防ぐためです。
  • 元ドキュメントはすぐにアップデートしますので、2011/12/10fork分をまずは翻訳する方針にしたいと思います。以後1ヶ月に一回くらいのペースでアップデートしていくといいかと。*1
  • Wikiは直接編集してもいいんですが、できたらばhttps://github.com/playframework-ja/Play20/wiki/_accessからgit cloneして翻訳後にpushいただく方針にしたい

翻訳は基本的にこのやりかたの真似をしようと思います
Jxck's OutPut - Github でフォークした gh-pages と wiki の翻訳フロー

wiki の翻訳方針

  1. master から origin-master というブランチを切ってあります。これが本家との同期用です。
  2. masterブランチの各ページを訳す。原文はコメントアウト。
  3. 翻訳ブランチの日付を書いておく(上の方がいいかな。今回は "version:2011/12/10")
  4. git push する。翻訳の内容が公開されます。
  5. 本家の wiki が更新されたら、フォークしたリポジトリの wiki の origin-master に pull する。(ここで競合はおこらないはず)
  6. 最後に訳したタグとHEADまでのdiff を出して、master の該当箇所を訳す。
  7. origin-master に新しくタグを付ける。


現状のブランチ

$ git branch -r
  origin/HEAD -> origin/master
  origin/master
  origin/origin-master
origin-masterブランチの取得方法
$ git checkout -b origin-master origin/origin-master


参考
remote に branch を push し、remote から clone したリポジトリの branch を変更して push する - basyura’s blog

こんな感じ

翻訳規則(基本まるまるコメントアウト) + versionをつける


原文

# Play 2.0 current status

Play 2.0 beta is a preview of the next major version of Play framework, which integrates a brand new build system and awesome asynchronous architecture all with native Java and Scala support.


翻訳

<!--
# Play 2.0 current status
-->

# Play 2.0 の現在のステータス

version: 2011/12/10

<!--
Play 2.0 beta is a preview of the next major version of Play framework, which integrates a brand new build system and awesome asynchronous architecture all with native Java and Scala support.
-->
Play2.0 beta は Play framework の次のメジャーバージョンのプレビュー版です。
新しいビルドシステムと非同期アーキテクチャをJava,Scalaに統合します。
ソースの場合は原文のまま

現状githubのwikiはマルチバイトへの対応がされていないので、ソースハイライト時に日本語が文字化けします。
この問題へのpull requestは存在しますので、取り込まれるまでは原文のままにしましょう。参照


原文

```properties
# Default database configuration
db.default.driver=org.h2.Driver
db.default.url=jdbc:h2:mem:play
```

いろいろ書いてる意図

翻訳の是非はおいといて、翻訳に時間を割いていただけるのは非常にありがたいことであると私は思っています。
そのため、なるべくストレスを感じることなしに作業をしていただけるのが一番いいと思います。
また、Play!2.0の開発速度を考えれば追随して翻訳していくのはわりと大変です。
そのため、新規に入ってくれる人には多少でも早く翻訳になれていただくためにこのような
文章をまとめました。もっとこうすればわかりやすいのにと思ったら是非ご意見を下さい。

最後に

この方針はまだまだpreview版なのでご意見お願いします。 

*1:ここら辺はきちんと決めておくべき

Play! Advent Calendar 2011 4日目 - Play! の情報源(英語編)+Tips

本エントリは Play! framework Advent Calendar 2011 jp #play_ja : ATND の4日目です。
前日の @ さんからバトンを受け取りました。
好きなPlay!のモジュールはcoberturaCRUDです。皆さんよろしくお願いします。

本日のテーマは「Play!で開発するときの情報の集め方」です。
Play!の公式ドキュメントは非常に整っていてチュートリアル、各機能の説明などがきちんと書かれています。*1
実際にWebアプリケーションを作成する際に、どう実装するかの情報が欲しくなります。
本日は私がよく使っている英語の情報源を紹介しておきます。

Playの情報源

1.X
2.0

まとめ

実は今日、Peter HiltonのMLへの投稿がありまして急遽ドキュメントの話題に変えました。
ここでドキュメントのドットが抜けてるのを指摘したことがありまして感謝をしていただいて非常に恐縮したことがあります。
ドキュメントの整備などもOSSへの貢献になりますのでOSS活動をしたい方は是非forkしてみるといいと思います。

ドキュメントの紹介だけなのもなんなので2つほどTipsを紹介しておきます。

[1.2.X]HTTPリクエストとJavaコードのバインディング

Play!で一番好きな機能です。
controlerでHTTPリクエストをJavaコードに簡単に変換することができます。
この機能は1.2.4で全面的に書き直されていますので、より柔軟な書き方ができるようになりました。
@Asアノテーションで変換方法を記述しておくと、受け取りたい型に変換してくれます。詳しくはcontrollerのドキュメントを参照してください。

archives?from=2011/12/04
public static void tasksSince(@As("yyyy/MM/dd") Date from) {
    List<Task> tasks = Task.findBy("date >= ?", from);
    render(tasks);
}
ScalaテンプレートでmoreStyle,moreScript相当の処理を入れる

Play! Javaのテンプレートでは、簡単にテンプレートごとにCSS,JSを追加できるのです*2が、
現状の1.2.X+Scalaモジュール/2.0ではこれに相当する機能がありません。

以下のようにすると同じようなことができます。詳しくはドキュメント,MLを参照してください。このコードは1.2.X+Scalaモジュール用ですが、使うAPIを2.0用に変更すれば2.0でも使えると思います。

app/views/main.scala.html

@(title:String = "")(body: => Html)(moreScript: => Html = Html(""))
<!DOCTYPE html>
<html>
    <head>
        <title>@title</title>
        <link rel="stylesheet" media="screen" href="@asset("public/stylesheets/main.css")">
        <link rel="shortcut icon" type="image/png" href="@asset("public/images/favicon.png")">
        <script src="@asset("public/javascripts/jquery-1.6.4.min.js")" type="text/javascript"></script>
        @moreScript
    </head>
    <body>
        @body
    </body>
</html>

app/views/tags/script.scala.html

@(src:String, stype:String="text/javascript")
<script src="@asset("public/javascripts/" + src)" type="@stype"></script>

app/views/Application/index.scala.html

@(title:String)
@import views.tags.html._
@main(title) {
  <p>hello</p>
}{
  @script("hello.js")
}
明日は

明日 (12/5) は @ さんです。 明日もお楽しみに!

*1:一部間違いがあったりしますが、コメント欄での指摘にあわせて頻繁に更新されています

*2:[http://playdocja.appspot.com/documentation/1.2.3/templates:title=template]

Play! 2.0がbetaに、そして来年TypeSafe Stackに追加されることになりました

取り急ぎ記事にしておきます

該当するMLはこちら
http://groups.google.com/group/play-framework/browse_thread/thread/6d5783e28efb6931?hl=ja

TypeSafeのブログ記事はこちら
http://typesafe.com/company/news/15856

Play 2.0 がbetaに

http://www.playframework.org/2.0

module機構がなかったり、IDEサポートがなかったりだけど、beta.
多分authentication 用のsecurityとかCRUDモジュールもまだないんじゃないかな。
そのうち、調べとく。

Play framework作者 Gillaume BortがTypeSafeのadvisorに

TypeSafeはScalaの作者がいる会社。

Play 2.0 with Scalaの本もでるらしい


今日はここまで

Play! 2.0の「現在のステータス」を翻訳

気分転換にPlay!20の「現在のステータス」ページを翻訳してみました。

https://github.com/masahitojp/Play20/wiki/Status

github上で"beta"になったとかいてあったけど、まだ実装されてる機能が少ない感じです。
あくまでpreviewとして動くようになってきたって感じみたいですね。まだ時間か借りそう。Play! framework使いたい人は1.x系をJavaで使うのがおすすめ。残念ながらScala moduleは 近頃githubで開発が進んでないしね。

別の考え方

開発途上ということはforkして、パッチを送ることであなたのほしい機能をまだまだ追加してもらえるかもしれません。
腕に自信のある方、OSSにかかわりたい方はチャンスですよ。
Stack Over flowではアーリーアダプター達がすでに動かし方などの議論を始めています。最先端を行くチャンスでもありますよ!!

参考

githubのwikiでの翻訳は id:Jxck さんのやり方を使わせてもらいました。Thanks!

最後に

ゆるゆると2.0系も翻訳する予定ですが、どれくらいやる気が続くかはわかりません。
協力してくださる方、既に翻訳してる方連絡をよろしくお願いします。
主導権を握って翻訳してくださる方も大歓迎です、私が翻訳した分はお渡ししますよ。