2007年12月03日
ダイアログボックスの日本語表記
ダイアログボックスの日本語表記なのですが、、
list text =
[
llUnescapeURL("エンコード"), "0", "1","2"
];
integer Handle;
・
・(中略)
・
で、実行しようとしたのですが、、通りませんでした。。
日本語を使用した、ダイヤルログがあるので、、他の書き方があるのでしょうか?
list text =
[
llUnescapeURL("エンコード"), "0", "1","2"
];
integer Handle;
・
・(中略)
・
で、実行しようとしたのですが、、通りませんでした。。
日本語を使用した、ダイヤルログがあるので、、他の書き方があるのでしょうか?
テクスチェンジのHUDについて
モール用のプリムカウンターを探しています
連続するアニメーションの処理
オブジェクトの上にフローティングテキストを出す。
チャットログの盗聴について
椅子に座った後で位置調整できるスクリプト
モール用のプリムカウンターを探しています
連続するアニメーションの処理
オブジェクトの上にフローティングテキストを出す。
チャットログの盗聴について
椅子に座った後で位置調整できるスクリプト
こちらのセカンドライフJAPANさんで日本語表示にする為のコードに変換できますよ。
http://secondlife.chu.jp/lsl01.html#02
コード変換については、わかっていて
他の日本語表示は、できているのですが、、
ダイヤルログの表示で同じ表記をしたところ、エラーがでてしまったため
ご相談に書き込ませていただきました。
ダイアログボックスの日本語表記なのですが、、
説明がたりなくて申し訳ありません。。
http://mydiary.slmame.com/e66136.html
ブログをたどって色々試してみました。
やはり、、このスクリプトの組み方だと
どのエンコード形式を使っても、ダメみたいでした。。。
他のダイアログのスクリプトで表示することで
なんとか解決仕様と思います。
皆様、ありがとうございました。
そもそも LSL のスクリプトの中で日本語を扱うことができないのでエンコードをしているからです。なので、"エンコード"という文字列は、Url Encode をされた文字列である、%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89 という ASCII 文字が入らなければなりません。この ASCII 文字列を llUnescapeURL という関数で「日本語」に変換しているんです。
参考までに、、動作確認のものを。。。
string msg1 = "%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89";
string msg2 = "Url%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89%E6%97%A5%E6%9C%AC%E8%AA%9E%E4%BD%BF%E7%94%A8%E3%83%86%E3%82%B9%E3%83%88";
string msg3 = "%E3%81%8C%E6%8A%BC%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82";
integer dHandle;
default
{
state_entry()
{
llSay(0, "Hello, Avatar!");
}
touch_start(integer total_number)
{
list text = [llUnescapeURL(msg1),"0","1","2"];
dHandle = llListen(300,"",llDetectedKey(0),"");
llListenControl(dHandle,TRUE);
llDialog(llDetectedKey(0),llUnescapeURL(msg2),text,300);
llSetTimerEvent(15.0);
}
listen(integer chan, string name, key id, string msg) {
llInstantMessage(id,msg +" "+llUnescapeURL(msg3));
llListenControl(dHandle,FALSE);
}
timer() {
llListenControl(dHandle,FALSE);
}
}