i18n.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. }