[iPhone App]touch mouseについてまとめ

久しぶりのブログですね。

昨年の秋からiPhoneユーザになりました。

でも秋田県ではWifiスポットが余り無いので、出先ではもっぱら3G通信になります。

最近模様替えをして、書斎のアーム付きモニタをダイニングに移設しました!長年の夢ついに!

我が家のライフスタイルではダイニングでPCを使いたい環境が多くて、ダイニング用のPCが欲しいと思っていましたが、用途が用途(息子のためにDVDみせるとか、おくさんがレシピ検索するとか、食事中に映像を見るとか、家族で勉強するとかetc)なので、新調するほど費用を掛けたくなくて・・・

で。

おくさんのMacBookをクラムシェルモードで外部モニタ出力し、それをリモコン操作みたくする。

ということができないか調べていました。

そこで見つけたのが、タイトルにあるtouch mouseです。

http://itunes.apple.com/jp/app/touch-mouse/id338237450?mt=8

ロジテックのものだということで安心して使用できると思いました。

パソコン側にはサーバアプリを入れて、iPhoneにはクライアントアプリを入れて、iPhoneからトラックパッドやキーボードとかを利用できるのです。もはやリモコンです!

MacBookはMac OS X 10.6.7 (Snow Leopard)、iPhoneはiOS4.3.3です。

使ってみてわかったこと。

CommandとかOption、Shiftなどのキーを一度使用すると、使用を解除できなくなる。

常に右クリックみたくなって嫌でした。

というわけで、現在はHippoというユーティリティを使っています。

http://itunes.apple.com/jp/app/hipporemote-lite-wireless/id357348996?mt=8

[jquery-ui][cakephp]SortableでSerializeできないのは設定のミスではないか?

jQueryのSortableでハマったのでメモ。

http://stackoverflow.com/questions/965083/jquery-sortable-list-wont-serialize-why

$("#foo").sortable("serialize");

でシリアライズした値が取得できなかったのですが、これは各ドラッグしたい項目ごとにidに_(アンダースコア)付きの名称を設定しないといけないんだそうです。

例:tableタグのtr(行)単位でsortableを使いたい場合

<tr id="category_<?php e($category['Category']['id']);?>">

のようにしておく。

 
jQuery:

<script type="text/javascript">
$(function() {
$("#sortable").sortable({
update : function () { 
var order = $('#sortable').sortable("serialize");
$.post(url,order,function(theResponse){$('#sortable').html(theResponse);});
});
$("#sortable").disableSelection();
});
</script>

php:
foreach($this->params['form']['category'] as $position => $id):
$this->Category->id = $id;
$this->Category->saveField('sort_order',$position);
endforeach;

な感じでアップデートできます。
 
#やっぱり、QAサイトってニーズ大きいですね。。。

[cakephp]多言語展開CMS

グローバル化の影響なのか、多言語展開CMSの需要が伸びています。

n-style;でも複数の事例を扱うようになってきました。CakePHPはけっこう前からi18n対応していました。php4で動作しかつi18n対応のフレームワークは、数年前はCakePHPしかなかったように思います。

手順としては、

  1. アプリケーションを普通に作成。メッセージは
    __(‘english message’);
    のようにしておき、英語で記述すること。
    動的に変化させる必要のある部分はsprintfなどを用いて記述するとよい。
  2. コンソールから
    cake i18n -app /path/to/your/app
    とコマンドを叩いて、 英語のメッセージ文を抽出する。
  3. poeditを使って翻訳する。
  4. 翻訳後、書き出しを行う。
  5. 日本語の翻訳ファイルを
    /app/locale/jpn/LC_MESSAGES/default.po
    に配置する。

ざっと上記のような感じになります。

プログラマーとしては、メッセージの作り方、UIの作り方に注意すればよいと思います。

テンプレートの読み込み分けとか、画像ファイルの読み込み分けなども必要になってきますよね。

意外と、画像の中にテキストが含まれるもの—例えば、ボタンのグラフィック、スローガン入りバナーなど—を「多言語仕様」で作るのを忘れる、なんていうことが起きます。
別途デザイナーさんがいらっしゃるようなプロジェクトでは要検討事項になるでしょう。

Webアプリケーションの多言語展開をお考えでしたら、どうぞn-style;にご用命ください。