i18n-engine.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. function i18n(identifier) {
  2. if (!i18n.db[i18n.locale]) {
  3. if (!i18n.db['en'][identifier]) {
  4. return "{MISSING_I18N_IDENTIFIER}";
  5. }
  6. return i18n.db['en'][identifier];
  7. }
  8. if (!i18n.db[i18n.locale][identifier]) {
  9. return "{MISSING_I18N_IDENTIFIER}";
  10. }
  11. return i18n.db[i18n.locale][identifier];
  12. }
  13. i18n.set = function(locale, identifier, translate) {
  14. if (!i18n.db[locale]) {
  15. i18n.db[locale] = {};
  16. }
  17. i18n.db[locale][identifier] = translate;
  18. }
  19. i18n.updateLocale = function(new_locale) {
  20. i18n.locale = new_locale;
  21. $( "data.i18n" ).each(function( index ) {
  22. $( this ).text(i18n($( this ).val()));
  23. });
  24. }
  25. if (iLMparameters.lang) {
  26. i18n.locale = iLMparameters.lang;
  27. } else {
  28. i18n.locale = 'en';
  29. }
  30. i18n.db = {};
  31. $.ajaxSetup({
  32. async: false
  33. });
  34. $.getJSON('i18n/i18n-database.json', function(data) {
  35. for (x in data) {
  36. l = data[x];
  37. i18n.set('en', x, l.en);
  38. i18n.set('es', x, l.es);
  39. i18n.set('pt', x, l.pt);
  40. }
  41. });
  42. $.ajaxSetup({
  43. async: true
  44. });
  45. $( document ).ready(function() {
  46. $( "data.i18n" ).each(function( index ) {
  47. $( this ).text(i18n($( this ).val()));
  48. });
  49. });