Thread Rating:
  • 226 Vote(s) - 2.86 Average
  • 1
  • 2
  • 3
  • 4
  • 5
hlmessage をローカル表示するには?
02-12-2014, 11:56 AM, (This post was last modified: 02-12-2014, 12:38 PM by umemura.)
#1
hlmessage をローカル表示するには?
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}}

どなたか、教えてください。
Reply
02-14-2014, 09:41 AM,
#2
RE: hlmessage をローカル表示するには?
アプレットの宣言シグネチャを追加します。
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フォルダに変更すれば、必ず変換されます。




Reply
02-14-2014, 01:07 PM, (This post was last modified: 02-14-2014, 01:08 PM by umemura.)
#3
RE: hlmessage をローカル表示するには?
ご回答ありがとうございます。

これは、個別のアプレットで文字列を翻訳する場合には、
必ず、独自に作成した 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で利用している翻訳ファイルは、どうすれば手に入るのでしょうか。

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

Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('1038')