Manually delete unused languages from macOS

Yes, I know there are apps like Monolingual, Mackeeper, iCleanLanguage etc. that can do that for me but I would feel more comfortable doing it myself if it is not too much of a hassle. How can I do that?

Also if there are other files I can manually delete to free up space - please let me know.


Solution 1:

The language files for each application are stored in

APPL.app/Contents/Resources/LANG.lproj

Removing them for non-standard applications is easy (especially from Terminal), for standard applications you need to disable SIP first.

The space gained by removing them may be small though, they use about 1.3 GB in my Applications folder with about 350 applications installed. Also you need to redo this with every upgrade. You probably gain more by removing a few unused non-standard applications.

Solution 2:

Like @Tom & @patrix said, doing this manually is both easy and tedious, especially when doing it with Finder.

Using Monolingual is quite safe in my opinion and much easier than doing it 'yourself'.

However, if you want to attempt this with a commandline:

sudo find / \( -name *.lproj -and \! \( -name English.lproj -or -name en.lproj -or -name en_AU.lproj -or -name en_CA.lproj -or -name en_GB.lproj \) \) -exec rm -rf {} \;

That should work, if you do not re-type it, but copy and paste it. But it is only an example: it might thoroughly break your system since some parts of applications may be non standard, have these parts code-signed also etc. It might be a good idea to modify the example to star the search not at the root level but only in /Applications.

Using a specialised application usually avoids breakage on that level, since most better applications for that action employ blacklists that avoid touching known problem parts. Monolingual never gave me any problems and gained significant space.

Keep in mind that this requires more so than other actions that you have a backup ready; and in operating systems >10.10 Yosemite that SIP is disabled. Since it crawls all over your filesystems it will be a wise move to unmount all other volumes before hitting return on that one.

Let me warn you once again: a specialised application for this task will be much easier on your mind: If something does go wrong you know who to blame: the developer and yourself.

While removing the language files is one step to take on a space constrained filesystem, there are other steps to take, maybe preferentially. Increasing HFScompression is one, deleting seldom used applications the other possibiliy to look at.