Curl Global Community
hlmessage をローカル表示するには? - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: hlmessage をローカル表示するには? (/showthread.php?tid=1038)



hlmessage をローカル表示するには? - umemura - 02-12-2014

Curlには、複数言語対応のAPIとして、lmessage、hlmessage があり、
オープンコントロールのソースを見る限り、
「コピー」という文字列は、{hlmessage Copy} として定義されている、という認識です。

では、実際に、自分のアプレットの中で、"Copy"という文字列を、
「コピー」という日本語として画面に表示するには、
具体的にはどう記述すればよいのでしょうか。

下記のソースで確認したのですが、いずれも Copy と、そのまま表示されてしまいます。
なお、 applet宣言のなかで、resource-directory 属性と translations-file 属性の指定は何もしていません。
また、{get-host-locale} で取得した値は「ja」です。

Code:
{curl 8.0 applet}
{value {host-localize "Copy"}}
{value {message Copy}}
{value  {hlmessage Copy}}
{value {lmessage Copy}}
{value {hlmessage locale = {get-host-locale}, Copy}}

どなたか、教えてください。


RE: hlmessage をローカル表示するには? - 500 - 02-14-2014

アプレットの宣言シグネチャを追加します。
Code:
{curl 8.0 applet}
{applet
resource-directory = "resources",
translations-file = "messages.xml",
locale = "en" || working localeをenにします。 host-localeはjaにしています。
}
{value {host-localize "Copy"}}
{value {message Copy}}
{value {hlmessage Copy}}
{value {lmessage Copy}}
{value {hlmessage locale = {get-host-locale}, Copy}}
resourcesフォルダを作成してその配下にjaフォルダを作成します。
jaフォルダにmessages.xmlを作成し、変換規則を記述します。
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<translation-dictionary version="2">
<string>
<original>Copy</original>
<translation>コピー</translation>
</string>
</translation-dictionary>
これを実行すれば、
「コピー Copy コピー Copy コピー」
が表示されます。
なお、localeに関わらず変換したい場合は、jaフォルダをdefaultフォルダに変更すれば、必ず変換されます。







RE: hlmessage をローカル表示するには? - umemura - 02-14-2014

ご回答ありがとうございます。

これは、個別のアプレットで文字列を翻訳する場合には、
必ず、独自に作成した message.xml が必要、ということでしょうか。

私の認識では、CurlのコアなAPIの中でメッセージを利用する場合、{hlmessage}を使って記述されており、
これが、各環境で実行される際に、RTEに組み込まれた翻訳ファイルと照らし合わせて、
翻訳されて表示されるものだと思っていました。

そのため、hlmesssage で定義された文字列を、組み込まれている翻訳ファイルを利用して
翻訳する方法があれば、それを知りたいと思い、質問させていただきました。

(もしかすると、hlmesssage は、翻訳ファイルを作成する際のマークアップとしてしか利用されないのでしょうか?)

そもそもの目的をご説明しておらず、申し訳なかったのですが、
私は、オープンコントロール(C:\Program Files\Curl Corporation\Surge\9\ide\gui\controls)を取り込んで、
利用したいと思っています。

このオープンコントロールで定義されている RecordGrid を表示すると、
右クリックメニューは、すべて英語で表示されます。
これを、通常のRecordGrid の日本語右クリックメニューと同じ内容に翻訳して表示するには、
日本語用RTEで利用して翻訳ファイルが必要になると思います。

あくまでも message.xml が必要、ということであれば、
Curlが、日本語用RTEで利用している翻訳ファイルは、どうすれば手に入るのでしょうか。

もし、ご存知でしたら、教えてください。