Skip to main content

Magento js validation message translation




Magento includes the translator library to translate the js messages that appear on our site.
The translator js is already included at the head.
To translate our messages, we just need to add the text to transator.
For eg:
This translator code needs to be added on our phtml file.
 Translator.add('Select a color.', "<?php echo $this->__('Select a color.');?>");

Then we need to add the text to translate at locale file i.e translate.csv at the locale folder.

However, this will not work for prototype js validation messages that appear on checkout pages.
e.g. "This is a required field." etc.

To translate these validation messages, we need to we’ll override Magento’s validate method.
For that, we need to create an external js file and place it under js folder.

For eg: js/lib/translatejs.js

Validation.addAllThese([
    ['validate-no-html-tags', Translator.translate('HTML tags are not allowed'), function(v) {
return !/<(\/)?\w+/.test(v);
}],
['validate-select', Translator.translate('Please select an option.'), function(v) {
                return ((v != "none") && (v != null) && (v.length != 0));
            }],
    ['required-entry', Translator.translate('This is a required field.'), function(v) {
                return !Validation.get('IsEmpty').test(v);
            }],
    ['validate-number', 'Please enter a valid number in this field.', function(v) {
                return Validation.get('IsEmpty').test(v)
                    || (!isNaN(parseNumber(v)) && /^\s*-?\d*(\.\d*)?\s*$/.test(v));
            }]
]);


For translation to work, we need to add the translations at header.phtml file.

Translator.add('This is a required field.', $this->__('This is a required field.'));
Translator.add('Please select an option.', $this->__('Please select an option.'));

These text should be in our translate csv file.


Finally, the translatejs.js file should be included. I have included it at footer.phtml because the translator should be initialized first.

<script type="text/javascript" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS);?>lib/translatejs.js"></script>

We can also modify the messages using the above method.






Comments

Popular posts from this blog

Magento webservice

Magento provides webservice with the ability to manage your eCommerce stores by providing calls for working with resources such as customers, categories, products, and sales orders. It also allows you to manage shopping carts and inventory. A SOAP v2 API version has been available since Magento 1.3, and a WS-I compliant version has been available since Magento 1.6. The Magento API supports SOAP and XML-RPC, where SOAP is the default protocol. With SOAP api, To connect to Magento SOAP web services, load the WSDL into your SOAP client from either of these URLs: http://hostname/api/soap/?wsdl where hostname  is the domain for your Magento host As of v1.3, you may also use the following URL to access the Magento API v2, which has been added to improve compatibility with Java and .NET: http://magentohost/api/v2_soap?wsdl=1 The following PHP example shows how to make SOAP calls to the Magento API v1: require_once('app/Mage.php'); Mage::app(); try { $client = n

Error on payment method when placing order "No Such Entity With Cart ID"

No Such Entity With Cart ID Error on payment method when placing order. If you receive the error message " No such entity. ", " No such entity with " or "No such entity with  customerId,OrderId " in Magento 2, the issue usually occurred when you try to load not existing object via Magento 2 Repository Class. To debug this issue, please open the file vendor/magento/framework/Exception/NoSuchEntityException.php and at the beginning of the  __construct  method temporary add debug backtrace code: foreach ( debug_backtrace () as $_stack ) { echo ( $_stack [ "file" ] ? $_stack [ "file" ] : '' ) . ':' . ( $_stack [ "line" ] ? $_stack [ "line" ] : '' ) . ' - ' . ( $_stack [ "function" ] ? $_stack [ "function" ] : '' ); } exit (); example: public function __construct ( Phrase $phrase = null , \

Prestashop Add canonical and hreflang for multi-language website

The cannonical and hreflang tags are useful if our store is multi-language. It avoids duplication of url for each store and helps the site SEO by mentioning the url of different languages. This will indicate to the google crawlers which is the alternative link for each languages and / or geographical areas where the online store and the canonical url of the product are available, category, manufacturer list, which in many cases will be very useful. We can add the cannonical and hreflang tags on prestashop at the header.tpl template file. The template files are under theme/yourthemename folder. The following code needs to be added inside the head section: { if $ page_name == 'category' } <link rel = "canonical" href = "{$ link-> getCategoryLink ($ smarty.get.id_category, null, $ id_lang, null, null)}" />  { if $ languages | @ count > 1 } { foreach $ languages as $ lang } <link rel = "alternate" hreflang = "{$ lang.iso_