Translator.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. * Defines the localization helper infrastructure of the library.
  4. */
  5. namespace PhpMyAdmin\SqlParser;
  6. class Translator
  7. {
  8. /**
  9. * The MoTranslator loader object.
  10. *
  11. * @var \PhpMyAdmin\MoTranslator\Loader
  12. */
  13. private static $loader;
  14. /**
  15. * The MoTranslator translator object.
  16. *
  17. * @var \PhpMyAdmin\MoTranslator\Translator
  18. */
  19. private static $translator;
  20. /**
  21. * Loads transator.
  22. */
  23. public static function load()
  24. {
  25. if (is_null(self::$loader)) {
  26. // Create loader object
  27. self::$loader = new \PhpMyAdmin\MoTranslator\Loader();
  28. // Set locale
  29. self::$loader->setlocale(
  30. self::$loader->detectlocale()
  31. );
  32. // Set default text domain
  33. self::$loader->textdomain('sqlparser');
  34. // Set path where to look for a domain
  35. self::$loader->bindtextdomain('sqlparser', __DIR__ . '/../locale/');
  36. }
  37. if (is_null(self::$translator)) {
  38. // Get translator
  39. self::$translator = self::$loader->getTranslator();
  40. }
  41. }
  42. /**
  43. * Translates a string.
  44. *
  45. * @param string $msgid String to be translated
  46. *
  47. * @return string translated string (or original, if not found)
  48. */
  49. public static function gettext($msgid)
  50. {
  51. if (!class_exists('\PhpMyAdmin\MoTranslator\Loader', true)) {
  52. return $msgid;
  53. }
  54. self::load();
  55. return self::$translator->gettext($msgid);
  56. }
  57. }