PEAK XOOPS - EMLHを導入すると  %Sの引数を表示できない。 in englishin japanese

EMLHを導入すると  %Sの引数を表示できない。

  • You cannot open a new topic into this forum
  • Guests cannot post into this forum
Previous post - Next post | Parent - Children.1 | Posted on 2005/6/13 17:26
H3H  企霹始   Posts: 8
はじめまして、今回EMLHを導入しようとしているのですが、困ったことに  s #12288;などの英文の中で、引数がからむと、エラー表示が出てくることが、判明しました。これを解決する方法をご存知の方がいらっしゃいましたらご教授お願いいたします。(ちなみに、日本文のほうは、問題ありませんでした。おそらく、英文と同化していて、%sを引数と判断できないような気がします。)


例)
The key word that the number of the letters is less than a half size %s character, a full size %s character is ignored.


エラー文
Warning [PHP]: sprintf(): Too few arguments in file modules/search/include/searchform.php line 73

宜しくお願いいたします。
Votes:0 Average:0.00
Previous post - Next post | Parent - Children.1 | Posted on 2005/6/15 6:18
GIJOE  黎扦烦菱   Posts: 4110
文字も化けていて意味が良く判らないのですが、そのWarningは、XOOPSsearchモジュールが吐いています。

単に、XOOPS searchのenglishの言語ファイルにミスがあるだけじゃないでしょうか。

EMLHはそんな部分に影響しないと思います。

ともあれ、化けるような内容でしたら、日本公式で尋ねてください。
Votes:0 Average:0.00
Previous post - Next post | Parent - Children.1 .2 | Posted on 2005/6/15 14:33
H3H  企霹始   Posts: 8
Gijoeさん、ご返信ありがとうございます。

文字化けの所は、%Sです。
その後、わかったことなのですが、
[jp]半角 %S 字 全角 %S 字[jp][en]half size %S character full size %S character [en]

上記の文章ではエラー表示されるのですが、
下記の文章ではエラー表示されませんでした。
[jp]半角 %S 字 全角 %S 字[jp][en]half size character full size character [en]

2つ目まで、つまり、日本文内では問題なかったのですが、英文内の3つ目でエラー表示されました。

そこで、日本文章内に %S を下記のように、3つ導入しました。
[jp]半角 %S 字 全角 %S 字 %S[jp]

すると、エラー表示になりました。

結果的に、英文内の最初の %S を3つ目の%S とプログラムは判断しエラー表示をしているようにおもわれるのですが、
これを回避する方法はないのでしょうか。

初心者なものでどのようにすればよいかわかりません。
申し訳ありませんが、どのようにすればよいのか、ご教授お願いいたします。



Votes:0 Average:0.00
Previous post - Next post | Parent - Children.1 | Posted on 2005/6/15 16:23
H3H  企霹始   Posts: 8
引き続き、テストをやってみたのですが、どうやら、searchだけではなく、他のmyalbumなどでも同じような結果になってしまいました。

例)
("_ALBM_MOREPHOTOS","[ja]%S さんの画像をもっと![ja][en]More Photos from %S[en]");

一つ目の%Sだけだと問題ないのですが、英文の%Sを入れるとエラー表示になりました。

前回と同じように英文内の%Sを2つ目の%Sと認識し、エラーとなりました。
Votes:0 Average:0.00
Previous post - Next post | Parent - Children.1 | Posted on 2005/6/15 17:27
GIJOE  黎扦烦菱   Posts: 4110
なるほど。どんな勘違いをしているかは判りました。

EMLHの処理は、出力の最終段階で行われるので、その途中の文字列生成部分で、%s の数を変更したらおかしくなるのは当然です。

言語定数の定義部分で、

[ja]半角[/ja][en]half-size[/en]%s[ja]文字[/ja][en]characters[/en]

などとする必要があるでしょう。

Votes:0 Average:0.00
Previous post - Next post | Parent - No child | Posted on 2005/6/15 18:18
H3H  企霹始   Posts: 8
Gijoeさん、ありがとうございます。

単純なことだったのですね。
迷惑をかけてしまいました。

どうしようかと本当に悩みました!
本当にありがとうございました!
Votes:0 Average:0.00
Previous post - Next post | Parent - Children.1 | Posted on 2005/6/16 8:53
okuhiki  膏墓   Posts: 47
もう解決済みで必要無いかも知れませんが、
'%1\$s' 形式で設定されても、良いと思います。

%1:%に続く数字は、引数の順番を示す数字
$s:引数を文字列として取り扱う指定

詳しくは、phpのマニュアル「sprintf」の引数の交換などを参照されてはいかがでしょうか。
Votes:0 Average:0.00
Previous post - Next post | Parent - Children.1 | Posted on 2005/6/16 9:48
GIJOE  黎扦烦菱   Posts: 4110
okuhikiさん、こんにちは。
今動作確認をして、ちょっとビックリしてます。

引数の「交換」に使えるのは知ってましたが(pical_constants.phtmlとか)、「複製」という使い方があることには、まったく気付いていませんでした。

だったら話は簡単ですね。
[ja]半角 %1$s バイト[/ja][en]%1$s characters[/en]
みたいなパターンでOKです。
言語定数をくくる時に、シングルクオーテーション''でくくることをお忘れ無く。
( ダブルクオーテーション"" でくくると、$が展開されてしまう)

勉強になりました
Votes:0 Average:0.00
Previous post - Next post | Parent - No child | Posted on 2005/6/17 17:17
H3H  企霹始   Posts: 8
okuhikiさん GIJOEさん
さすがですね!
すごいです!この方法だと、とても簡単に設定ができ、
表示後のことを気にしながら、文章を分解したりする必要がなくなり、手間がとても省けました!最高です!
すごい!さすが!
シングルクオーテションも忘れません!






Votes:0 Average:0.00

  Advanced search


Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!