2007年12月03日

ダイアログボックスの日本語表記

ダイアログボックスの日本語表記なのですが、、


list text =
[
llUnescapeURL("エンコード"), "0", "1","2"
];
integer Handle;

・(中略)



で、実行しようとしたのですが、、通りませんでした。。
日本語を使用した、ダイヤルログがあるので、、他の書き方があるのでしょうか?


同じカテゴリー(スクリプト関連)の記事画像
オブジェクトのリンクとタッチで開く扉
自動チャットを止めたい
テレポートするとアニメーションが解除される
同じカテゴリー(スクリプト関連)の記事
 テクスチェンジのHUDについて (2015-07-01 04:51)
 モール用のプリムカウンターを探しています (2014-11-29 20:09)
 連続するアニメーションの処理 (2014-08-24 03:23)
 オブジェクトの上にフローティングテキストを出す。 (2014-08-22 16:46)
 チャットログの盗聴について (2014-02-03 03:43)
 椅子に座った後で位置調整できるスクリプト (2013-03-24 16:37)

Posted by sadayuki1667  at 17:07 │Comments(5)スクリプト関連

この記事へのコメント
先日まったく同じところで詰まっていました。

こちらのセカンドライフJAPANさんで日本語表示にする為のコードに変換できますよ。
http://secondlife.chu.jp/lsl01.html#02
Posted by 通りすがり at 2007年12月03日 17:25
ありがとうございます

コード変換については、わかっていて
他の日本語表示は、できているのですが、、

ダイヤルログの表示で同じ表記をしたところ、エラーがでてしまったため

ご相談に書き込ませていただきました。

ダイアログボックスの日本語表記なのですが、、

説明がたりなくて申し訳ありません。。
Posted by sada at 2007年12月03日 18:41
Url Escape を使用していませんが、以下の私のブログが参考になるかもしれません。ご参考まで。

http://mydiary.slmame.com/e66136.html
Posted by Whitfield-In-World at 2007年12月03日 22:53
Whitfield-In-World さん
ブログをたどって色々試してみました。

やはり、、このスクリプトの組み方だと
どのエンコード形式を使っても、ダメみたいでした。。。

他のダイアログのスクリプトで表示することで
なんとか解決仕様と思います。

皆様、ありがとうございました。
Posted by u10s at 2007年12月04日 16:23
えっと、、ほんとうに最初にお書きになられているコードだと、、、だめです。
そもそも 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);
}
}
Posted by Whitfield-In-WorldWhitfield-In-World at 2007年12月04日 22:40
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。