Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Magento :: Translate text from javascript files

Magento uses a system for translating text in the template files using:

$this->__('text to be translated.');

or

Mage::helper('modulename')->__('text to be translated.');.

This works quite well. But when I add text to a javascript file I can't use these two methods.

Is there a way I could do a similar thing with the translations for javascript files?

like image 856
Chris Avatar asked Oct 13 '11 08:10

Chris


1 Answers

You can do it in a template file yourfile.phtml. The JavaScript js/mage/translate.js file must be included in your HTML header (Magento does it by default).

<script type="text/javascript">
    Translator.add('You should take care of this confirmation message!','<?php echo Mage::helper('yourmodule')->__('You should take care of this confirmation message!')?>');
</script>

Since Magento 1.7, you can add a file jstranslator.xml into your module under the etc/ folder and set the following string like that:

<jstranslator>
    <!-- validation.js -->
    <validate-no-html-tags translate="message" module="core">
        <message>HTML tags are not allowed</message>
    </validate-no-html-tags>
    <validate-select translate="message" module="core">
        <message>Please select an option.</message>
    </validate-select>
</jstranslator>

Then translate the string as you do it for PHP thanks to the CSV file. This will add the translation to the JavaScript code like the following var Translator = new Translate(...).

like image 109
Sylvain Rayé Avatar answered Oct 25 '22 01:10

Sylvain Rayé