In answering this question: Change language by clicking a button. It was necessary to obtain a list of languages for which translations were available (i.e. their po/mo files were present in wp-content/languages
).
So how can you obtain that list?
Clearly by ‘available’ we can only mean that their po/mo
files are present – and it’s not a concern if every plug-in also provides a translation for that language (interesting to see how you might do this though).
The list was originally intended for us in a drop-down, whereby a user could select from a list of (available) languages. So the human readable form of the language as well would be a bonus. But I think this is probably not possible.
View the question linked to above for demonstration of the current method used.
You can get a list of available languages with
get_available_languages( $dir )
. It returns an array with all.mo
files where the names does not start with'continents-cities'
,'ms-'
oradmin-
.To get a readable name for the file use
format_code_lang( $code )
.If you scan a directory for language files and get an array like
array( 'de_DE', 'tr_TR' )
this function will buildtranslatednames for the languages:German
andTurkish
.