フロントエンド言語の訪問者側選択化
-
投稿者投稿
-
2011年2月9日 5:17 AM #50248ren参加者
はじめての投稿失礼します
Welcartの提供に感謝しています。
さて昨年末から二ヶ国語サイトを開発していて、Welcartのフロントエンド言語を訪問者が切り替える用にはできると思います。
WidgetなどでそのSessionデータでのスイッチ操作が一番手っ取り早いと思います。
すでにかなりのところまでWelcartを改造していて、ヒントや注意点頂ければありがたいです。
nanbuさんのWelcartとは直接関係はないですが。。。
xLanguageを使用してて、最終的にはそれを改造して連動させたいです。
「商品名」及び「SKU表示名」の切り替えを目指しています^^
よろしくお願いします
2011年2月10日 3:32 AM #61450nanbuキーマスターこんにちは。
Welcartのフロントエンド言語はバックエンドとは別のものにしたい時のみ、主にラベル等の表示を切り替えるためのものです。「商品名」や「SKU表示名」を切り替える事はできません。残念ながらそう言った機能を付ける予定はございません。よろしくお願いいたします。
2011年2月10日 4:04 AM #61451ren参加者ご返答ありがとうございます。
少し残念な気がします。
フロントエンド・バックエンド、双方のより正確な英語訳も用意してあるため続けてフロントエンド言語設定をデータベースから切り離してのSession化作業にチャレンジします。
2011年2月14日 7:24 AM #61452ren参加者なん箇所の修正が必要なコードを発見しています。
場所:functions/utility.php
修正対象部分: を入力してください ・ を選択してください (などです)
(数箇所ありますのでラインナンバー提示より「を」で検索が早いでしょう)
$settlement と絡んでいるところもありますがほとんどはメンバー登録やカートチェックアウトの際にFront Endが英語にも関わらず日本語として出てしまいます
以下の様に po mo に持ってきて修正すれば言語違いでもとりあえず英語では語尾として上手く行きます。
msgid “has not been entered” (未入力です、という意味合い)
msgstr “を入力してください”
msgid “has not been selected” (未選択です、という意味合い)
msgstr “を選択してください”
Please enter $name がより自然かもしりませんが切り替えの際文法が大変になります。
なので語尾に “has not been…”, “must be….”, “needs to be…” などがベストでは。
将来的にはジェネリックなエラーメッセージとスタイルシートの切り替えて未記入箇所のハイライトは手間が省けるのではと考えられます。
また住所を入力するフォームには「住所」があったりなかったりのばらつきがあります。
こちらでは以上のマイナーバグを修正していますがご報告まで・・・
訪問者による完全なフロントエンド言語切り替えはほぼ完成しています。
当方はネイティブですので、元の英文も数箇所修正していて、協力できたらいいのですが・・・
ちなみにxLanguageの開発が終わっているのか、一旦止まっているのかが不明ですがすでに600日以上経過しています。開発者のHPも空白状態です。
2011年2月15日 1:48 AM #61453nanbuキーマスターいろいろありがとうございます。
utility.php の決済情報に関する翻訳ですね。
実はまだここはローカライズが済んでおりません。おいおいちゃんとi18n していくつもりです。この辺の翻訳はsprintf() を使用しなくてはいけないのでちょっと厄介ですね。
よろしければren さんのutility.php を見せていただいても構いませんか?よろしければ下記宛にお送りください。
nanbuアットusconsort.com(アットは@)
今後Welcart はフロントの言語(翻訳ファイルが用意されている言語のみ)、通貨、ターゲットの国を指定できるようになります。フロント言語の自動切換えは各機能間の影響をチェックしながら判断して行きたいと思います。
ところで、Welcart はマルチ言語プラグインとの相性が非常に悪いのです。これは多くのマルチ言語プラグインが翻訳記事を別post で持とうとするのが原因です。ren さんの所ではxLanguage が問題なく動いているのですか?
2011年2月15日 3:14 PM #61454ren参加者ご返答ありがとうございます。
xLanguage の個人的に素晴らしいと思っているところは同じポスト内に下記の様書き込めます
タイトル: 日本語タイトル | English Title
本文: [lang_jp]いろは[/lang_jp][lang_en]abc[/lang_en]
あとはところどころでwelcartのコードの中で
apply_filters(‘language’, [welcartコード] );
で対応しています(例えばSKU表示名など)
マルチにも対応していますが下記の例、本文は問題ないはずがタイトルが気になります(まだ不要なのでチェックしていません)
タイトル: 日本語タイトル | English Title | Bonjourno
本文: [lang_jp]いろは[/lang_jp][lang_en]abc[/lang_en][lang_it]pizza[/lang_it]
一番引っかかったのは会計formの選択系、custom_field等の選択(radio buttonなど)でした。そのままapply_filtersをかけるとだめですね。
welcart functionのなかでoption/selectタグ作製の際に表示させる言語をlabelへ、裏で動くoptionタグ等を振り分けてそのままvalueへとやらないとデータベースに書き込まれる注文情報が一致しなくなって、管理画面情報のselectedだったはずが当然selectedにならず。
省略していますが解決方法はこんな風になります
(英語表示の場合)
<input value=”[lang_jp]銀行振り込み[/lang_jp][lang_en]Bank Furikomi[/lang_en]” type=”radio”>Bank Furikomi</label>
最後のlabel直前の英文はapply_filtersの出力でvalueはpayment methodに書き込まれているままの情報。
管理場面は[lang_jp]銀行振り込み[/lang_jp][lang_en]Bank Furikomi[/lang_en]とでますが後に対応していけばよいかと思いますがしばらくはフロントエンド重視で動いています。
一応フロントエンドの言語切り替えはxlanguageのcookieを拾って行っていますが場面によって切り替えがワンクリック遅れています。
一段落したところでutility.phpを送ります
2011年2月16日 12:39 AM #61455nanbuキーマスターありがとうございます。
qTranslate と良く似た仕組みですね。
マルチ言語を必要としない方のためにも、フックなどで対応できるようになるのがベストだと思います。できるだけ協力させて頂きますのでよろしくお願いいたします。
2011年2月21日 2:07 PM #61456ren参加者おかげ様で先日サイトオープンしました。
まだ時間に余裕がありませんが、落ち着いたところで xLanguage との統合の工夫点についてメールを送りたいと思います(プログラマーの腕はそんなにないのであくまでもご参考までとのこと)。
GNU General Public License によって改造・配布ができることと2年以上放置されていていることを考えると Welcart との統合は有利な話ではあると思います。
サイトを動かして気づいた点、もとからの要望を含めて別のスレッドを立てたいと思います。
よろしくお願いいたします
-
投稿者投稿
- このトピックに返信するにはログインが必要です。