i18n.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. module.exports = {
  2. t(key){
  3. console.log('i18n',this);
  4. if(this.locales[key]){
  5. if(this.lang){
  6. if(this.locales[key][this.lang]){
  7. return this.locales[key][this.lang];
  8. }else{
  9. this.log(`Key "${key}" does not exists for language ${this.lang}`);
  10. }
  11. }else if(this.locales[key][this.fallback]){
  12. return this.locales[key][this.fallback];
  13. }else{
  14. this.log(`Key "${key}" does not exists for fallback language ${this.fallback}`);
  15. }
  16. }else{
  17. this.log(`Key "${key}" does not exists.`);
  18. }
  19. // if(this.lang){
  20. // if(this.locales[key][this.lang]){
  21. // // key exists in current language
  22. // return this.locales[key][this.lang];
  23. // }else{
  24. // console.log('Key ${key} does not exists for language ${this.lang}');
  25. // }
  26. // }else if(this.locales[key][this.fallback]){
  27. // // key exists in fallback language
  28. // return this.locales[key][this.fallback];
  29. // }
  30. return key;
  31. },
  32. setLang(l){
  33. this.lang = l
  34. },
  35. log(msg){
  36. console.log(`i18n : ${msg}`);
  37. },
  38. fallback:'en',
  39. lang: null,
  40. locales:{
  41. 'Parts':{
  42. 'en':'Parts',
  43. 'fr':'Parties',
  44. 'bra':'Peças',
  45. 'lat':'Pars'
  46. },
  47. 'Mode':{
  48. 'en':'Mode',
  49. 'fr':'Mode',
  50. 'bra':'Modo',
  51. 'lat':'Modus'
  52. },
  53. 'Language':{
  54. 'en':'Language',
  55. 'fr':'Langue',
  56. 'bra':'Língua',
  57. 'lat':'Lingua'
  58. },
  59. 'Text':{
  60. 'en':'Text',
  61. 'fr':'Texte',
  62. 'bra':'Texto',
  63. 'lat':'Illud'
  64. },
  65. 'Conexions':{
  66. 'en':'Conexions',
  67. 'fr':'Connections',
  68. 'bra':'Conexões',
  69. 'lat':'Hospites'
  70. },
  71. }
  72. }