Yahoo! Pipesで実際に英語RSSを日本語に翻訳するWebサービスを作成してみます。
- 左のUser inputsからURL Inputをドラッグ

Name:クエリになるので簡潔に。
Prompt:Pipesのページを開いたときにここの文言が表示される。
(ユーザーへの入力を促すタイトル)
Position:たぶんクエリの順番かも?
(入力しなくても大丈夫)
Default:既に入力済の値を設定するかどうか
(URLならいらないから空白)
Debug:デバッグ出力のための実際に使えるRSSリンクを入力。
- また左からSourcesのFetch Feedをドラッグ
はじめのURL Inputの下の○からパイプをドラッグしてInput Box右の小さな○につなぐ
- DeprecatedのBabelFishをドラッグ
翻訳したい言語に設定(今回はEnglish To Japanese)し、2.のFetch Feed下部の○とBabel Fish上部の○をパイプでつなぐ
- OperatorsからRenameをドラッグ
ここでデータをマッピングします。
item:y:title:これはたぶん翻訳していない元のタイトル。(事実そうなってる)
item:link:ここにはリンクが入っていますがCopy Asを選択し、適当な名前でコピーします。
これはただのフラグとして使用するだけなのでマッピングできるものならどれでもいいと思いますが・・・。
このフラグを使ってGoogleのWEB翻訳リンクとするか、しないかを分岐します。
そしてパイプで接続。
- OperatorsからRegexをドラッグ
これは正規表現で置き換えをしてくれるモジュールです。
左のものを真ん中の条件で右と置き換えるってな具合に。
今回は4つのルールを作成しています。
-
- item.translatelink -> ^(.*)$ ->
- item.translatelink -> ^1$ -> グーグルのWEB翻訳してくれるURL
- item.translatelink -> ^0$ -> なにもなし
- item.link ->^(.*)$ -> ${translatelink}$1
それからパイプを接続。今回は最後の出力(Pipe Output)にも接続しましょう。
次はUser Inputから Text Inputをドラッグして5のRegexの隣くらいに置く
Name:tlink(これもクエリになるので簡潔な名前に)
Promt:URL Inputに同じなのでわかりやすく。
Position:URL Inputに同じ。
Default:1 これはリンクをGoogle WEB翻訳へのリンクにするかどうかのフラグです。今回は英語から日本語なので最初から1を入力済としています。
Debug:1 Windowの下部にデバッグ出力を見ることができます。そのための値です。実際のこの値を参照してデバッグ出力されます。
そしてパイプを接続するのですが、今回は先に作成したRegexの1番目の真ん中では無く右のInput Box右の小さな○に接続します。
ここでRegexからText Inputのデータの流れを解説
Regexに来た時点ですでにRSSはすべてタイトルを除いて翻訳済です。Regexでは次の作業を行っています。
-
- translatelinkを初期化します。(ユーザー入力値に置き換える。)
- ユーザー入力値に置き換えられたtranslatelinkの値を参照して"1"ならtranslatelinkをGoogleのWEB翻訳リンクに置き換えます。
- 再度ユーザー入力値(translatelink)を参照して"0"ならtranslatelinkを空にします。
- item.linkの前にtranslatelinkの値を足します。(空なら空を、Google WEB翻訳リンクならそのリンクを足します。)
以上で作業は完了です。
上のメニューからSaveをクリックし、Back to My Pipesから元の画面に戻ります。すると先ほど作成されたPipesが表示されていますのでクリックしするとURL入力欄とtlink入力欄に1が入力済で表示されているはずです。試しに何かの英語RSSリンクを入力して実行してみてください。
最後に・・・My Pipesの画面から作成したPipesの上にマウスカーソルをのせるとPublish他のメニューが出ますのでPublishをクリックして公開します。これで誰でも利用可能なWEBサービスが完成しました。