こんにちわ高崎です。
androidで多言語対応のソフトを作る場合
いちいちvalues_jaなどにxmlファイルを入れなければなりません。
それで作ったのが以下のperlスクリプト
# /bin/perl
$header='<?xml version="1.0" encoding="utf-8"?>'."\n".'<resources>'."\n";
$footer='</resources>';
open (IN, 'langage.csv');
@data = <IN>;
close (IN);
@firstline=split(/\,/,$data[0]);
for($k=1;$k<@data;$k++){
@line=split(/\,/,$data[$k]);
if(!-d $line[0]){mkdir $line[0];}
$output=$header;
for($i=1;$i<@firstline;$i++){
$output.='<string name="'.$firstline[$i].'">'.$line[$i]."</string>\n";
}
$output.=$footer;
open(OUT, ">/".$line[0]."/strings.xml");
print OUT $output;
close(OUT);
}
exit;
やりかたとしてはlangage.csvに
フォルダ名,項目1,項目2
values_ja,項目1の値,項目2の値
values_en,one_val,two_val
みたいなCSVを作ればOK。
すでに多言語アプリケーションを作ってる人は
似たようなことをやっていると思いますが・・・。
こんにちわ。サーバー管理の109です。
たまには技術的なお話でも、だらだらと書いてみようかと思いますw
皆さんご存知の無線LAN、実際に使用されている方も多いと思います。
それともうひとつ、Bluetooth(ブルートゥース)。
聞きなれない方もいるかと思いますが、
プレイステーション3のコントローラーや、最近は携帯電話でも対応している機種が出ていますね。
どちらも、ケーブルを配線する事なく使用できるとても便利な技術です。
これらは、目に見えない電波を飛ばして情報のやりとりをしていますが、
無線LANの使用している電波とBluetoothの使用している電波の周波数が近い為、
干渉してしまう事があります。
無線LANはいくつか種類がありますが、2.4GHzの周波数帯を使用している
IEEE802.11b、IEEE802.11gと言われる規格の物が多く使われています。
ところが、2.4GHzの周波数帯はBluetoothも使用しており、干渉してしまう事があります。
無線LANやBluetoothは、2.4GHz帯の電波をいくつかに分けて共存しています。
この分けられた1つ1つをチャンネルと言いますが、このチャンネルが重なってしまうと干渉し合い、
Bluetoothマウスの反応が悪くなったり、無線LANの速度が低下したりします。
一応Bluetoothのバージョン1.2から、干渉対策を施されたようですが、
全く干渉しなくなったわけではないようです。
実は、以前ciscoルーターの無線LANを使用する機会があったのですが、
私愛用のBluetoothマウスが見事に干渉し、動かなかった事があります^^;
さらに、実はこの2.4GHz帯は他にも様々な機器が使用しており、
コートレス電話や無線方式のテレビリモコンとも干渉する事があります。
干渉を回避する手の1つとしては、チャンネル変更があります。
これは、無線LANが使用するチャンネルを変更し、他の機器のチャンネルと重ならない様にする事です。
しかしチャンネルは無限ではないので、限界があります。
最近は、無線LANを使用している家庭も増えており、隣の家の無線と干渉するなんて事もあるかも知れません。
そこでもうひとつの回避策は、無線LANの使用している規格を別の物に変える事です。
IEEE802.11a、IEEE802.11nという規格がありますが、これらは5GHzの周波数帯を使用しているので、
2.4GHz帯を使用している機器と干渉する事はありません。
しかし各無線機器が11a、11nに対応していないと使用できませんので、購入する際に気をつけて下さい。
また、11aや11n対応機器は11bや11gより新しい規格で、対応機器も若干高いです。
その点も購入する際にはお気を付けください。
なぜ、このように2.4GHz帯を色々な機器が使用しているかは電波法が関わっているのですが、
それはまた次の機会にでも・・・。