Posting in this forum of maximum visibility.
Over the past few days, I've had an alarming increase in broken sites I needed to fix because of faulty language packs bought from the market. Rather than invoice developers for my time, I'm going to make this easier on everybody in the long run by introducing some new market requirements.
1. Keep system and module keys separate (not in the same file!).
I've seen this happen in at least two different packs now. What happens because of this is two-fold. First, the new translations are lost from all modules as soon as the languages are recompiled. And second, modules with a translation can't be installed due to all the database errors about duplicate key entries. These files seem to be created by using Dolphin's export tool - this is not how new languages should be created or distributed!
For system keys, make a copy of /install/langs-en.php and modify it for your needs. Change the file name, edit the language information at the top of the file, and then translate the keys. For modules, do the same for en.php under each module's /install/langs directory. Each module needs to have its own language file (that Dolphin will call as needed) to avoid issues.
2. Do not use hard-coded SQL statements.
This is primarily focused on packs that include translations for the email templates. Make sure not to hard-code the LangID, as this can quickly result in somebody's Russian messages being sent in Portuguese! If you include an install SQL file for users to upload, please also include an uninstall SQL file in case they remove the language from their site. Do not simply export the sys_email_templates table and use that, or else a lot of junk data could be imported.
The best way to package translations is as a module. It's not required, but it's strongly recommended. This keeps everything tightly integrated and easy to install and uninstall as needed (including email templates). For more information on how this is done, please look at the included Russian module by BoonEx. You'll also see that each default module has a ru.php in their /langs directory. When the Russian module is installed, it tells Dolphin to recompile module languages. Dolphin then pulls in the individual ru.php files for each module that's installed, and adds the keys to the database as needed.
If one or both of these problems apply to your language pack, please make the needed changes and release an update as soon as possible. Packs that don't follow these requirements will not be allowed in the market.
Thread locked. Please PM me if you have any questions or concerns about these changes. Have a nice day.