[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/libraries/vendor/wamania/php-stemmer/src/ -> StemmerFactory.php (source)

   1  <?php
   2  
   3  namespace Wamania\Snowball;
   4  
   5  use voku\helper\UTF8;
   6  use Wamania\Snowball\Stemmer\Catalan;
   7  use Wamania\Snowball\Stemmer\Danish;
   8  use Wamania\Snowball\Stemmer\Dutch;
   9  use Wamania\Snowball\Stemmer\English;
  10  use Wamania\Snowball\Stemmer\Finnish;
  11  use Wamania\Snowball\Stemmer\French;
  12  use Wamania\Snowball\Stemmer\German;
  13  use Wamania\Snowball\Stemmer\Italian;
  14  use Wamania\Snowball\Stemmer\Norwegian;
  15  use Wamania\Snowball\Stemmer\Portuguese;
  16  use Wamania\Snowball\Stemmer\Romanian;
  17  use Wamania\Snowball\Stemmer\Russian;
  18  use Wamania\Snowball\Stemmer\Spanish;
  19  use Wamania\Snowball\Stemmer\Stemmer;
  20  use Wamania\Snowball\Stemmer\Swedish;
  21  
  22  class StemmerFactory
  23  {
  24      const LANGS = [
  25          Catalan::class    => ['ca', 'cat', 'catalan'],
  26          Danish::class     => ['da', 'dan', 'danish'],
  27          Dutch::class      => ['nl', 'dut', 'nld', 'dutch'],
  28          English::class    => ['en', 'eng', 'english'],
  29          Finnish::class    => ['fi', 'fin', 'finnish'],
  30          French::class     => ['fr', 'fre', 'fra', 'french'],
  31          German::class     => ['de', 'deu', 'ger', 'german'],
  32          Italian::class    => ['it', 'ita', 'italian'],
  33          Norwegian::class  => ['no', 'nor', 'norwegian'],
  34          Portuguese::class => ['pt', 'por', 'portuguese'],
  35          Romanian::class   => ['ro', 'rum', 'ron', 'romanian'],
  36          Russian::class    => ['ru', 'rus', 'russian'],
  37          Spanish::class    => ['es', 'spa', 'spanish'],
  38          Swedish::class    => ['sv', 'swe', 'swedish']
  39      ];
  40  
  41      /**
  42       * @throws NotFoundException
  43       */
  44      public static function create(string $code): Stemmer
  45      {
  46          $code = UTF8::strtolower($code);
  47  
  48          foreach (self::LANGS as $classname => $isoCodes) {
  49              if (in_array($code, $isoCodes)) {
  50                  return new $classname;
  51              }
  52          }
  53  
  54          throw new NotFoundException(sprintf('Stemmer not found for %s', $code));
  55      }
  56  }


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer