-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
48 lines (42 loc) · 1.17 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/**
* Gives a class to menage language.
*
* @link https://github.com/gabryellcorrea/shared-lang
* @file This file exports Translator class.
* @author Gabryell Corrêa.
*/
import en from './en' // { ... }
import es from './es' // { ... }
import nl from './nl' // { ... }
import pt from './pt' // { ... }
/**
* @exports Translator
*/
export default class Translator {
/**
* Menage system translation.
*
* Receive the language and the libraries object, return the language library.
*
* @access public
*
* @class
* @augments Translator
*
* @param { string } [lang = 'en-US']
* @param { object } [libraries = undefined]
*
* @return { object }
*/
constructor(lang = 'en-US', libraries = undefined) {
lang = lang.split('-'); // ['en', 'US']
lang = lang[0]; // en
switch (lang) {
case 'en': return libraries ? libraries.en : en; // { ... }
case 'es': return libraries ? libraries.es : es; // { ... }
case 'nl': return libraries ? libraries.nl : nl; // { ... }
case 'pt': return libraries ? libraries.pt : pt; // { ... }
default: return libraries ? libraries.en : en; // { ... }
}
}
}