<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>クレコ &#187; Google</title>
	<atom:link href="http://creco.net/tag/google/feed/" rel="self" type="application/rss+xml" />
	<link>http://creco.net</link>
	<description>East or west, home is best.</description>
	<lastBuildDate>Fri, 27 Nov 2009 13:26:56 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://creco.net/tag/google/feed/" />
		<item>
		<title>投稿スラッグをGoogle AJAX Language APIで英訳するWordPressのプラグインを作った</title>
		<link>http://creco.net/2009/06/14/made_a_wordpress_plugin_that_translate_post-slug_with_google_ajax_language_api/</link>
		<comments>http://creco.net/2009/06/14/made_a_wordpress_plugin_that_translate_post-slug_with_google_ajax_language_api/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 17:54:58 +0000</pubDate>
		<dc:creator>inagaki</dc:creator>
				<category><![CDATA[作ってみた]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://creco.net/?p=553</guid>
		<description><![CDATA[ 
それは、どういうものですか？
WordPressのURLとして使われる投稿スラッグ。これは、標準だと投稿タイトルをURLエンコードしたものが自動的に使われて、やけに長くなるしかっこ悪い。
んで、ぼくは投稿タイトルを逐 [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="投稿スラッグをGoogle AJAX Language APIで英訳するWordPressのプラグインを作った" border="0" alt="投稿スラッグをGoogle AJAX Language APIで英訳するWordPressのプラグインを作った" src="http://creco.net/wp-content/uploads/Ci090614030747.jpg" width="440" height="257" /> </p>
<h4>それは、どういうものですか？</h4>
<p>WordPressのURLとして使われる<strong>投稿スラッグ</strong>。これは、標準だと投稿タイトルをURLエンコードしたものが自動的に使われて、やけに長くなるしかっこ悪い。</p>
<p>んで、ぼくは投稿タイトルを逐一英訳して投稿スラッグとして入力しているんだけど、ボキャ貧なので通じるかどうかわからない怪しげな英語になってしまう ＞＜</p>
<p>そこで、自動的に投稿タイトルを英訳してくれて、それが投稿スラッグになってくれると素敵だなと思い、WordPressのプラグインを作ってみました。</p>
<p> <span id="more-553"></span><br />
<h4>インストール方法と使い方</h4>
<pre class="csharpcode">&lt;?php
<span class="rem">/*</span>
<span class="rem">Plugin Name: Slug translate J to E </span>
<span class="rem">Plugin URI: http://creco.net/</span>
<span class="rem">Description: 投稿タイトルの日本語をそのまま投稿スラッグにするのではなく、Google AJAX Language APIで英訳したものを投稿スラッグにします</span>
<span class="rem">Author: Shintaro Inagaki</span>
<span class="rem">Version: 1.0</span>
<span class="rem">Author URI: http://creco.net/</span>
<span class="rem">*/</span>

function slug_translate_j_to_e($title) {

    $translateApiUrl = <span class="str">'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&amp;q='</span>.urlencode($title).<span class="str">'&amp;langpair=ja%7Cen'</span>;
    $response = file_get_contents($translateApiUrl);  

    $parsedJson = json_decode($response);

    <span class="kwrd">if</span>(isset($parsedJson-&gt;responseData-&gt;translatedText)) {
        $title = $parsedJson-&gt;responseData-&gt;translatedText;
    }
    $title = strtolower($title);
    $title = str_replace(<span class="str">' '</span>, <span class="str">'_'</span>, $title);
    $title = preg_replace(<span class="str">'/[^%a-z0-9_-]/'</span>, <span class="str">''</span>, $title);

    <span class="kwrd">return</span> $title;
}

add_filter(<span class="str">'sanitize_title'</span>, <span class="str">'slug_translate_j_to_e'</span>, 9);

?&gt;</pre>
<p>上のコードを適当なファイルに保存（ slug-translate-j-to-e.php とか適当な名前つけてね）して、WordPressのプラグインフォルダ（ /wp-content/plugins/ 以下）にアップロードすれば、プラグイン管理画面から「使用する」が選べるようになります。</p>
<p>後は、普通に投稿すれば自動的に投稿タイトルを翻訳したものが投稿スラッグとして使われてると思います。</p>
<p>翻訳を確認したいという場合は、「下書きとして保存」とし、その後に投稿スラッグを編集すれば、半手動で利用できるかと。</p>
<h4>やっていること<br />
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
</h4>
<p><a href="http://code.google.com/intl/ja/apis/ajaxlanguage/documentation/reference.html">Translation API のクラス リファレンス &#8211; Google AJAX Language API &#8211; Google Code</a> をRESTで使用しています。</p>
<p>タイトルをAPIに投げて、JSONで帰ってきたものを処理。</p>
<p>処理は、上から順番に、大文字を小文字にする → スペースをアンダースコアに変換する → 小文字英数字とハイフン、アンダースコア以外の文字を削除する といった内容。</p>
<h4>注意点</h4>
<p>Google の翻訳は期待しないほうがいい。</p>
]]></content:encoded>
			<wfw:commentRss>http://creco.net/2009/06/14/made_a_wordpress_plugin_that_translate_post-slug_with_google_ajax_language_api/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://creco.net/2009/06/14/made_a_wordpress_plugin_that_translate_post-slug_with_google_ajax_language_api/" />
	</item>
	</channel>
</rss>
