Блогчетање

[ Home | RSS 2.0 | ATOM 1.0 ]

Sun, 12 Dec 2004

Accept-language and PHP

Rodney, below is a function I use to test if visitor prefers Croatian (hr) over Serbian (sr) when she visits Prevod.org web pages to provide Latin transcription of the pages.

function header_language_compare($default = 'sr', $comparewith = 'hr') {
  $languages=split(',',$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
  $qdefault=0;
  $qcompare=0;
  foreach ($languages as $lang) {
    if (ereg("^$default$",$lang,$regs)) {
      $qdefault=1;
    } elseif (ereg("^$comparewith$",$lang,$regs)) {
      $qcompare=1;
    } elseif (ereg("^$default;[ ]*q=([0-9.]+)$",$lang,$regs)) {
      $qdefault=$regs[1];
    } elseif (ereg("^$comparewith;[ ]*q=([0-9.]+)$",$lang,$regs)) {
      $qcompare=$regs[1];
    }
  }

  if ($qcompare>$qdefault) return 1;
  else return 0;
}

If "hr" is more desireable than "sr" (i.e. there's no "sr" at all, or it has lower "quality" than "hr") according to "Accept-Language" header, this function will return 1, otherwise 0. You might want to use something similar to compare 'en' and 'sq', letting most people default to 'en' for your blog.

posted at: 13:50 | path: /razvoj | permanent link to this entry

Made with PyBlosxom