Does anyone have any guidance as to how to clean up old language files. I have come to this after I tried to use a Window-based IDE and started seeing some queer behaviour with files apparently changing - but not. It derived from a filename collision between language files. Here is a small example:
In a Linux filesystem, fr_FR.lang.ext.php is not the same as fr_fr.lang.ext.php. But in Windows filesystem, they are the same file. I have the same for ru_ru vs. ru_RU & nl_nl vs. nl_NL. My IDE doesn’t handle it very well.
I don’t have any language packs installed so these files are from previous versions of SuiteCRM which have been upgraded version after version. Some come from the paid version of Security Suite.
I had a long battle to remove those languages from SuiteCRM install package.
When I find a language file I ask for its removal at github but they keep creating new ones so ther is never a clean install.
Nobody should have languages files around if they don’t have language packs installed. Its a wast of space, size and time when quick repair or backup.
On my computer I always make a clean suite pack by searching (using the language code as wild cards) and removing files.
Tedious I know… but it works!
I keep that clean pack for later file diffs with new versions.
You can also install and remove a language pack (or create a fake one, just manifest, no files).
Uninstall that language pack and all files with that language code will be uninstalled (also tedious!)
Thanks @horus68. This seems to be a major pastime for you. Although I use en_us, I applaud your efforts for the wider SuiteCRM community because it helps focus minds on cleaning up SuiteCRM generally.
Are there any guidelines for module writers? It might be a good idea to post something on Sugar Outfitters who provide a load if extensions and Security Suite in particular.
I am concerned about case sensitivity for language specs in the light of my own problem and the fact that Windows is case-preserving but case-insensitive. There is scope for filename collisions as I have. Where in SuiteCRM is the selected language specified? and are the language files read in as case-sensitive or case-insensitive?
I can remove unwanted languages for all modules but what is the plan for add-on modules in other languages which I’ll also remove with the command below:.
I also did asked before for some guidelines on SuiteCRM case but there are not!
It also affects non language files (I can remember 1 image file in templates and last version brings 2 more in modules maps) .
When unzipping in windows system they are overwritten!
You can also see that folder names do not have any rule, some start by capital letter others don’t. This causes issues when ordering folders by name!
I hope that those little issues could be solved in a near future by moving away of SugarCRM core and bring some clean rules for a new suiteCRM
On the actual language packs:
Language packs created via Crowdin they are using name specs as xx_XX but that was a decision of mine making it accordingly language codes specs.
de_AT – German for Austria
de_DE = German for Germany
Note the standardized use of the underscore and the style of capitalization in the examples:
lower case letters to indicate language (ISO 639) followed by underscore followed by upper case letters to indicate the country code (from ISO 3166).