Chromeのバグをインライン翻訳しますか?


7

多分それは私だけかもしれませんが、Chromeブラウザではインライン変換は機能しません。赤いボックスが表示され、マウスをホバーするとブックアイコンが表示されますが、クリックしても何も起こりません。別のサーバーでも同じ問題が発生しました。

FirefoxやIEなどの他のブラウザで問題ありません。

これのバグ修正はありますか?


「機能しない」とはどういう意味ですか?表示されません、保存されません、jsエラーが発生しますか?
マリウス

回答:


11

はい、Google Chromeのインライン翻訳機能は壊れています。もともとインライン翻訳機能が開発されたとき、Magento translateはDOM要素の非標準属性を利用して、翻訳可能なテキストにフラグを立てました。

それ以来、Google Chromeには、translateJavaScriptで使用可能なすべてのDOMノードに(簡略化より)デフォルトプロパティが追加される機能があります。

これは、変換機能の実装に使用されるMagentoのPrototypeJS xpathコードを妨害します。詳しくはこちら

if (!$(target).match('*[translate]')) {
    target = target.up('*[translate]');
}

昨年私が思いついた解決策は、インライン翻訳がアクティブなときに、次の少しのJavaScriptをすべてのページに追加することでした。

if(Object.__defineGetter__)
{
    var hasTranslateAttribute = function(){
        return $(this).hasAttribute("translate");
    };
    document.observe("dom:loaded", function() {
        $$('*').each(function(theElement){
             theElement.__defineGetter__("translate", hasTranslateAttribute);
        });
    });
}

それはまだ問題です。しかし、問題の行はそれから数行下にあり、私はそれを次のように変更しました:// if(target && $(target).match( '* [translate]')){if(target && $(target)。 readAttribute( 'translate')){
phazei

5

エンタープライズのお客様には、弊社でテストして動作したMagentoコアパッチ(SUPEE-1373)があります。

基本的に、コード全体ですべてのtranslateプロパティを置き換えdata-translateます。


それは私だけなのか、それともこの「SUPEE-1373」パッチがインターネットから消えたのか。google.com/...
7ochem

@ 7ochem:パッチはMagento Enterpriseサポート経由でのみ入手できます。残念ながら、CE 1.9のリリース前にパッチが利用可能であったとしても、CE 1.9では修正されませんでした
Alex

私はEEテクニカルリソースのファイルリスト全体を調べましたが、見つかりません...
7ochem

サポートリクエストを開き、パッチを要求してください。
Alex

-1

Alan Stormが提供するソリューションが機能します。サイト全体で機能するようにするには、スニペットを/app/code/core/Mage/Core/Model/Translate/Inline.phpの直後に追加します

<script type="text/javascript">
new TranslateInline('translate-inline-trig', '<?php echo $ajaxUrl ?>', '<?php
    echo Mage::getDesign()->getArea() ?>');

それは1.7の278行目です。


3
本当に?コア変更?少なくとも、ユーザーにMagentoのリライトを使用することをお勧めします。書き直さずにこの変更を行う他の方法があります。
ベンマークス2013

テンプレートのjavascriptファイルに追加しました。
PiTheNumber 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.