内联翻译不适用于magento

时间:2013-04-13 06:23:36

标签: php ajax magento

magento中的

内联转换不适用于从ajax加载的数据。

我用过以下安装:       http://blog.chapagain.com.np/magento-language-translation-for-custom-module-step-by-step-guide/

我创建了以下模板文件,用于显示我的产品详细信息。

magento\app\design\frontend\default\default\template\catalog\product\view.phtml

它有以下代码:

<?php $_helper = $this->helper('catalog/output'); ?>
<?php $_product = $this->getProduct(); ?>
<?php echo $this->__('desired word') ?>

我已经为内联翻译创建了一个自定义模块,以便为我的所有自定义模块加载csv文件。   \magento\app\code\local\Translations\Inline\etc\config.xml

<?xml version="1.0"?>
<config>
  <modules>
    <Translations_Inline>
      <version>0.1.0</version>
    </Translations_Inline>
  </modules>
   <frontend>
        <translate>
            <modules>
                <translations>
                    <files>
                        <default>Translations.csv</default>
                    </files>
                 </translations>
            </modules>
        </translate>
    </frontend>
    <adminhtml>
        <translate>
            <modules>
               <translations>
                    <files>
                        <default>Translations.csv</default>
                    </files>
                </translations>
            </modules>
        </translate>
    </adminhtml>
  <global>
    <helpers>
      <inline>
        <class>Translations_Inline_Helper</class>
      </inline>
     </helpers>
  </global>
</config> 

要激活模块,     \ Magento的\应用\等\模块\ Translations_Inline.xml

<?xml version="1.0"?>
  <config>
     <modules>
        <Translations_Inline>
          <active>true</active>
          <codePool>local</codePool>
          <version>0.1.0</version>
        </Translations_Inline>
      </modules>
 </config>

我在以下文件夹中添加了Translation.csv:

\ Magento的\应用\区域\ EN_US

\ Magento的\应用\区域\了zh_HK

所以,在从管理端启用英文和中文storeview的内联翻译之后,它运行良好,但我的问题是如果我的数据在view.hmtl是从ajax加载而不是像      __(&#39;所需的单词&#39;);?&gt;

fox exmaple如果view.phtml如下:

 <script type="text/javascript">
var url_magento = '<?php echo        Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); ?>';    

  var j = jQuery.noConflict();
  j(document).ready(function()
  {
getcontent();

 });
 function getcontent()
 {

jQuery.ajax({
    url:url_magento+'hi.php',
    type:'POST',
    beforeSend: function(){
                jQuery('#product_app').html('loading');
                },      
    ajaxError : function() {                
                jQuery('#product_app').html('Error: Can not load page');
            },
    success: function(data){
                //alert(data);
                jQuery('#product_app').html(data);          
            }
        }); 

    }
</script>
<div id='product_app'></div>

现在hi.php如下:

 <?php  
   echo "hi.This is the page that gives product's detail";
 ?>

所以,我希望内联翻译也能为这些数据工作。或者还有其他任何方式以echo的形式在php中加载ajax的数据。   您可以自由地询问更多详细信息。我尝试添加大部分所需数据以配置内联translation.hoping以获得答案asap.thank提前

1 个答案:

答案 0 :(得分:1)

如果您专门谈论内联翻译,那么您认为此代码不可翻译是正确的。这是因为Magento尚未在hi.php内初始化 - 您只是输出文本。您需要做的是设置一个控制器来处理您的AJAX调用,然后 将Mage初始化,因此您将可以访问整个Magento框架。

请注意,我也不会对大多数内容使用内联翻译,而是在主题的translate.csv文件中定义翻译。

有关创建控制器的教程,请参阅this之类的教程,或者还有很多其他教程。