+function buildLanguages () {
+ const iso639 = require('iso-639-3')
+
+ const languages: { [ id: string ]: string } = {}
+
+ const signLanguages = [
+ 'sgn', // Sign languages (macro language)
+ 'ase', // American
+ 'sdl', // Arabian
+ 'bfi', // British
+ 'bzs', // Brazilian
+ 'csl', // Chinese
+ 'cse', // Czech
+ 'dsl', // Danish
+ 'fsl', // French
+ 'gsg', // German
+ 'pks', // Pakistan
+ 'jsl', // Japanese
+ 'sfs', // South African
+ 'swl', // Swedish
+ 'rsl' // Russian
+ ]
+
+ // Only add ISO639-1 languages and some sign languages (ISO639-3)
+ iso639
+ .filter(l => {
+ return (l.iso6391 !== null && l.type === 'living') ||
+ signLanguages.indexOf(l.iso6393) !== -1
+ })
+ .forEach(l => languages[l.iso6391 || l.iso6393] = l.name)
+
+ return languages
+}
+