How to translate Webasyst into other languages

The default Webasyst package includes only two languages for displaying various text strings in the user interface: English and Russian. Should you need to add other languages, follow the instructions provided in this article.

  1. Ensure that you have the appropriate locale for the new language installed on the web server. For example, in Linux-based operating systems you can view the list of installed locales by executing the following command:
    locale -a
    If you cannot see the desired locale in the list, do install it before proceeding to the next step.
  2. Edit configuration file wa-config/<strong>locale.php</strong> by adding the locale id of the new language as usually required in POSIX-compatible operating systems; e.g.:
    <?php
    
    return array(
        'en_US',
        'ru_RU',
        <strong>'fr_FR',</strong> /* adding French language locale */
    );
  3. Create a configuration file for the new locale in directory wa-system/locale/data/; e.g., wa-system/locale/data/<strong>fr_FR</strong>.php for French. Look at the contents of other locale configs to understand how to create your own.
  4. Create the system localization file for the new language at wa-system/webasyst/locale/<strong>fr_FR</strong>/LC_MESSAGES/webasyst.po (path example for French). An easy way to do so is to copy a subdirectory with localization files of an existing locale and rename the subdirectory using the new locale id. In the localization file with .po name extension, in field Plural-Forms specify the plural form detection condition for the new language. Examples of such conditions for various languages are available at http://docs.translatehouse.org/projects/localization-guide/en/latest/l10n/pluralforms.html Below is an example for the French language:
    "Plural-Forms: <strong>nplurals=2; plural=(n > 1);</strong>\n"
    In field Language in the same file specify the locale id; e.g.:
    "Language: <strong>fr_FR</strong>\n"
    Translate all necessary strings in the localization file by using a special editor with the support for .po files; e.g., Poedit, and use the same editor to generate a localization file with the .mo name extension: wa-system/webasyst/locale/<strong>fr_FR</strong>/LC_MESSAGES/webasyst.mo. For all apps availabe in your Webasyst backend, create similar copies of localization files at the paths of the form wa-apps/<em>[app_id]</em>/locale/<em>[locale]</em>/LC_MESSAGES/<em>[app_id]</em>.po and wa-apps/<em>[app_id]</em>/locale/<em>[locale]</em>/LC_MESSAGES/<em>[app_id]</em>.mo.
    After you complete the translation, you may need to restart the web server to get the translated strings applied.
  5. Create date selection localization file wa-content/js/jquery-ui/i18n/jquery.ui.datepicker-en_US.js with the new locale ID instead of en_US in this example. Translate localization strings in the created copy into the new language.
  6. jQuery(function($){
    	$.datepicker.regional['en'] = {
    		closeText: 'Close',
    		prevText: '<Prev',
    		nextText: 'Next>',
    		currentText: 'Today
    		monthNames: ['January','February','March','April','May','June',
    		'July','August','September','October','November','December'],
    		monthNamesShort: ['Jan','Feb','Mar','Apr','May','Jun',
    		'Jul','Aug','Sep','Oct','Nov','Dec'],
    		dayNames: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
    		dayNamesShort: ['sun','mon','tue','wed','thu','fri','sat'],
    		dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
    		weekHeader: 'Week',
    		dateFormat: 'mm/dd/yy',
    		firstDay: 0,
    		isRTL: false,
    		showMonthAfterYear: false,
    		yearSuffix: ''};
    	$.datepicker.setDefaults($.datepicker.regional['en']);
    });
  7. Clear cache in Installer.
  8. Select the newly added language in the contact properties of the users who need to view Webasyst backend in that language.

4 comments

  • +1
    Peter Macsanszky Peter Macsanszky January 13, 2015 15:30 #

    In directory wa-config simply do not exist file locale.php. What should I do?

  • +1
    Cosette M Cosette M January 22, 2015 10:15 #

    Mike, to manage the translation of Webasyst, you could use the localization app https://poeditor.com/

    It is more efficient than poedit, offering a common & friendly workspace for translators.

  • +1
    Ben Morice Ben Morice September 15, 2015 11:45 #

    Hi, how about translating product description?

    Add comment

    To add a comment please sign up or login