From f46b85bc856b06996f347cb86b86a19e5d462391 Mon Sep 17 00:00:00 2001 From: rvelices Date: Sun, 23 Mar 2014 05:38:05 +0000 Subject: bug 3056: quick search - added inflectors for english and french languages - current quick search is kept in the quick search input box - small fixes git-svn-id: http://piwigo.org/svn/trunk@27884 68402e56-0260-453c-a942-63ccdbb3a9ee --- include/inflectors/fr.php | 96 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 include/inflectors/fr.php (limited to 'include/inflectors/fr.php') diff --git a/include/inflectors/fr.php b/include/inflectors/fr.php new file mode 100644 index 000000000..f634d2a65 --- /dev/null +++ b/include/inflectors/fr.php @@ -0,0 +1,96 @@ + 'messieurs', + 'madame' => 'mesdames', + 'mademoiselle' => 'mesdemoiselles', + ); + + $this->exceptions = $tmp; + foreach ($tmp as $k => $v) + $this->exceptions[$v] = $k; + + $this->pluralizers = array_reverse(array( '/$/' => 's', + '/(bijou|caillou|chou|genou|hibou|joujou|pou|au|eu|eau)$/' => '\1x', + '/(bleu|émeu|landau|lieu|pneu|sarrau)$/' => '\1s', + '/al$/' => 'aux', + '/ail$/' => 'ails', + '/(b|cor|ém|gemm|soupir|trav|vant|vitr)ail$/' => '\1aux', + '/(s|x|z)$/' => '\1', + )); + + $this->singularizers = array_reverse(array( + '/s$/' => '', + '/(bijou|caillou|chou|genou|hibou|joujou|pou|au|eu|eau)x$/' => '\1', + '/(journ|chev)aux$/' => '\1al', + '/ails$/' => 'ail', + '/(b|cor|ém|gemm|soupir|trav|vant|vitr)aux$/' => '\1ail', + )); + } + + function get_variants($word) + { + $res = array(); + + $word = strtolower($word); + + $rc = @$this->exceptions[$word]; + if ( isset($rc) ) + { + if (!empty($rc)) + $res[] = $rc; + return $res; + } + + foreach ($this->pluralizers as $rule => $replacement) + { + $rc = preg_replace($rule, $replacement, $word, -1, $count); + if ($count) + { + $res[] = $rc; + break; + } + } + + foreach ($this->singularizers as $rule => $replacement) + { + $rc = preg_replace($rule, $replacement, $word, -1, $count); + if ($count) + { + $res[] = $rc; + break; + } + } + + return $res; + } +} +?> \ No newline at end of file -- cgit v1.2.3