i18n.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. // Functions for internationalization
  3. // I18N support information here
  4. putenv("LANGUAGE=" . detect_user_language());
  5. setlocale(LC_ALL, "C.UTF-8");
  6. $domain = "hestiacp";
  7. $localedir = "/usr/local/hestia/web/locale";
  8. bindtextdomain($domain, $localedir);
  9. textdomain($domain);
  10. /**
  11. * Detects user language from Accept-Language HTTP header.
  12. * @param string Fallback language (default: 'en')
  13. * @return string Language code (such as 'en' and 'ja')
  14. */
  15. function detect_user_language() {
  16. if (!empty($_SESSION["language"])) {
  17. return $_SESSION["language"];
  18. } elseif (!empty($_SESSION["LANGUAGE"])) {
  19. return $_SESSION["LANGUAGE"];
  20. } else {
  21. return "en";
  22. }
  23. }
  24. /**
  25. * Translate ISO2 to "Language"
  26. * nl = Dutch, de = German
  27. * @param string iso2 code
  28. * @return string Language
  29. */
  30. function translate_json($string) {
  31. $json = file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/locale/languages.json");
  32. $json_a = json_decode($json, true);
  33. return $json_a[$string][0] . " (" . $json_a[$string . "_locale"][0] . ")";
  34. }
  35. /**
  36. * Detects user language .
  37. * @param string Fallback language (default: 'en')
  38. * @return string Language code (such as 'en' and 'ja')
  39. */
  40. function detect_login_language() {
  41. }