How to Install a language pack
Installation of a language pack is usually as simple as dropping the new language folder into the 'catalog/language' and 'admin/language' directories on your sites ftp. You may find that a language pack designed for an earlier version of OpenCart might be missing a few translations here and there, but they can be easily added later.
But aside from just the new language files, there are also needs to add some database-based language changes. Currently, opencart uses the current language selection as part of the database query. This is unfortunately implemented poorly because if you don't add a reference to the new language in your categories, products, etc, then they don't show up for those languages.
So for now, you need to be sure that for each language you install, that you also update all the locations that will refer to that language when selected.
- All categories need to be edited to get the name and description translations.
- All products need to be edited to get the name and description translations.
Also, if the language pack didn't already include them, you will have to add the translations to the following sections:
- Default Order Statuses
- Default Payment Modules
- Default Shipping Modules
How to Create a language pack
Using "farsi" language as my example
STEP 1: Clone the original language file structure
CLONE:
catalog/language/english
admin/language/english
TO:
catalog/language/farsi
admin/language/farsi
STEP 2: Change all the values within those files to the tranlated language
For example, english.php has:
Code: Select all
.....
// Buttons
$_['button_continue'] = 'Continue';
$_['button_back'] = 'Back';
$_['button_add_to_cart'] = 'Add to Cart';
.....
Code: Select all
.....
// Buttons
$_['button_continue'] = 'ادامه دادن, دنبال كردن ';
$_['button_back'] = 'عقبى, گذشته, بدهى پس افتاده, پشت';
$_['button_add_to_cart'] = 'افزودن, اضافه كردن, زياد كردن,';
.....
STEP 3: Create a sql script to install the new language. Or manually enter the steps for admin insertion if you'd prefer not to use the sql file
SQL Method:
The sql code will need to be run via phpmyadmin, usually found in your cpanel of your webhost.
Example for farsi language:
Code: Select all
INSERT INTO `language` (`language_id`, `name`, `code`, `image`, `directory`, `filename`, `sort_order`) VALUES (NULL, 'Farsi', 'fa', 'fa.png', 'farsi', 'farsi.php', '1');
Add this information to your readme. This explains how to manually add the new language to the system via the admin panel
1. Goto Admin->Configuration->Localisation->Language
2. Click on Insert
3. Enter the following:
Language Name: Farsi
Code: fa
Flag Image: fa.png
Directory: farsi
Main Filename: farsi.php
Sort Order: 1
STEP 4: include a famfamfam icon flag for the matching country. Name it xx.png (match the language code) into the catalog/template/default/image folder
Example for farsi language: fa.png http://www.gallery.insect.cz/templates/ ... -farsi.png[/img] in the catalog\template\default\image folder
STEP 5 (OPTIONAL): There are also references in the database that need to have updated language values as well
- Default Order Statuses
- Default Payment Modules
- Default Shipping Modules
You could create the sql for all of those to have a version in the new language. Or just leave it up to the store owner to manually update them.