Part 12: International Support OfferingSubmitted by Matthew Turland on Thu, 09/24/2009 - 07:10
Note: All references to the user guide in this post refer to the public user guide available on the Magento wiki, as opposed to the user guide book for the Enterprise Edition of Magento.
The admin area and demo store theme support multiple languages, though Magento documentation doesn't make it obvious as to how this feature works. This blog post helped me to figure it out. With a default installation, you can change the locale by going to System - Configuration - General - General - Locale options - Locale. However, this alone will result in minimal translation.
In order for all language used by Magento to be translated, you must install a translation pack. These are available as extensions from the Magento Connect repository. This wiki article describes how it works. Basically, go to the Magento Connect web site, view the page for the translation pack you want, get its extension key, then go to System - Magento Connect - Magento Connect Manager and specify that extension key to download and install it.
Even once the translation pack is installed and the Locale setting is updated, the change does not take effect immediately. You have to log out and log back in to see it applied through the admin area.
Support for Multiple Currencies
There's a screencast for this feature. Navigation has changed a bit from how it's shown in that screencast: you now go to System - Configuration - General - Currency Setup - Currency Options and Scheduled Import Settings. Webservicex now has a section specific to it for specifying a timeout. System - Manage Currency is now System - Manage Currency Rates. The user guide also has a section on this feature.
Magento allows for the selection of a Base currency (in which all transactions will be processed), Default display currency (in which prices are presented to customers — this can vary per store), and Allowed currencies (to which customers can switch if they don't like the default currency). Note that both the Base and Default display currencies must be explicitly selected in the list of Allowed currencies; otherwise, an error message is displayed and configuration changes are not saved.
Tax Rate Support
This feature is covered well in the user guide. Tax rates can be managed individually from Sales - Tax - Manage Tax Zones & Rates or imported and exported in bulk from Sales - Tax - Import/Export Tax Rates.
Tax classes are used to collectively apply tax rates to customers and products. They are assigned to customers via customer groups (Customers - Customer Groups to manage these; Customers - Manage Customers, add/edit a customer, Account Information tab - Customer Group field to place an individual customer in one) and assigned to products individually (Catalog - Manage Products, add/edit a product, Prices tab - Tax Class field). Tax classes can be managed from Sales - Tax - Customer Tax Classes and Product Tax Classes.
Once rates and classes are created, rules can be created to determine which rates are used for which customers and products. To manage rules, go to Sales - Tax - Manage Tax Rules. Each rule can be applied to multiple tax classes for both customers and products.
Support for fixed taxes at the product level were added in Magento 1.2, allowing taxes such as the State Environmental Fee in the USA and WEEE/DEEE in EU. I wasn't able to find any real documentation on this addition aside from API docs for the Mage_Weee component. Neither that nor the source are very helpful in discerning how the component works or how it's intended to be used.
From the Wikipedia article on the subject, localization (often abbreviated L10n) is defined as "the process of adapting internationalized software for a specific region or language by adding locale-specific components and translating text." The "minimal translation" mentioned earlier in the section on Multi-Lingual support applies to, among other things, dates and currency, the types of locale-specific variations that localization is intended to handle. This is covered in a bit more depth in the user guide.
Configurable List of Allowed Countries
This list can be found under System - Configuration - General - General - Countries options. It is used to filter available options in menus for user account registration, shipping destination addresses (per shipping method), and billing addresses (per payment method).
Menus that pull from this list appear to be displayed even if only one country is allowed. If that country is selected as the default country, it's selected automatically in such cases. Those menus generally contain a blank option, but are required, so little harm comes from them being displayed. If you'd rather they be hidden from the customer, see this forum thread for tips on how to implement that change.
Internationalization and localization are areas in which I still have a lot to learn as a developer. That said, Magento appears to cover its bases where features related to those areas are concerned. Lack of documentation that specifically covers those features seems to be the biggest potential point of improvement. Tax rate support is a good example of the level at which documentation for other areas needs to be, as it seems to be fairly comprehensive.
What are your experiences with Magento's international support?