SymptomsProvider created Service Plan being logged in PBA-E with English locale, they filled all needed fields like Plan name, short and long descriptions in English. Then Provider delegated Service Plan to the Reseller who use locale different to Provider's one, let it be French locale.
When the Reseller logs into their control panel with French locale they see empty name of delegated Service Plan as well as short and long description. Also, name of Service Plan in the reseller Online Store is empty as well if a customer choose French language in the Store.
If Provider logs into PBA-E control panel with French locale they also see empty name and descriptions of Service Plan they created.
The problem does affect not only Service Plans, many other objects have empty names in PBA-E if Provider logs into control panel under non-default locale they used when they created these objects in PBA-E:
- Service Plan rates
- countries and country unions
- Service Templates
- Online Store categories, screens and templates
- fraud screening rules
- and many others
CauseThere are quite a lot of fields in PBA-E interface which may be entered in different languages. For example, name, short and long descriptions of Service Plan are localizable. This means that it is possible to specify different names for the same Service Plan in different languages. To enter name of an object (such as Service Plan or Online Store category) in non-default language one needs to log into PBA-E with needed locale. In current PBA-E implementation it is not possible to enter name of Service Plan in French language being logged with English locale.
Localized names are stored in separate fields in PBA-E database, so if Provider created Service Plan being logged in PBA-E control panel with English language, then only English name and descriptions will be stored in PBA-E database, corresponding fields for another languages will be still empty.
That is why reseller see empty name of Service Plan when they log into PBA-E control panel with French language, PBA-E just does not have name of Service Plan in French language to display. The same is true for Provider.
ResolutionTo solve the problem with empty names of objects one needs to log into PBA-S control panel with needed locale and enter desired names of all objects which need to be corrected.
The proposed procedure might require much time to be completed if many objects were created in PBA-E. To rectify the problem Provider may use special script /usr/local/bm/tools/localize.pl which will copy values of localizable fields from a
specified locale ('en' by default) to all other locales only if the value for another locale is not yet specified.
To copy values of all known localizable fields from one language to all other ones you may run the script and point needed source language as the parameter:
# /usr/local/bm/tools/localize.pl en
As it was said above existing localized fields will not be overwritten. For example, if you created Service Plan 'Silver Hosting' under English (en) locale, then logged in PBA-E CP under French (fr) locale and specified correct French name for this plan and then run the script '/usr/local/bm/tools/localize.pl fr' to copy all names from French locale then French name of the Service Plan will not be be copied to the field in database where English name is stored, thus previously explicitly defined name of Service Plan in English language will not be affected.
Of course, the script '/usr/local/bm/tools/localize.pl' will not automatically translate all localizable fields to needed languages, it will just copy content filled in one language to all other languages, thus problem with empty names will be solved.
If Provider creates Service Plans, Service Templates or resellers often, then it might be even recommended to put the script 'localize.pl' in cron task to run it periodically.
The article is actual for PBA-E 4.x for Linux server only.
The script localize.pl is shipped with PBA-E starting from 4.4.4, Provider who is using previous version of PBA-E may download the script from this location - http://download.pa.parallels.com/pba/internal/localize.pl
In future versions of PBA-E it will be possible to enter names of any localizable object in all desired languages in more convenient way, it will be possible to enter name of object in any language without need to log into PBA-S control panel under needed locale, all existing languages will be available for editing on the single screen.