[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/libraries/src/Language/ -> Transliterate.php (source)

   1  <?php
   2  
   3  /**
   4   * Joomla! Content Management System
   5   *
   6   * @copyright  (C) 2010 Open Source Matters, Inc. <https://www.joomla.org>
   7   * @license    GNU General Public License version 2 or later; see LICENSE.txt
   8   */
   9  
  10  namespace Joomla\CMS\Language;
  11  
  12  // phpcs:disable PSR1.Files.SideEffects
  13  \defined('JPATH_PLATFORM') or die;
  14  // phpcs:enable PSR1.Files.SideEffects
  15  
  16  /**
  17   * Class to transliterate strings
  18   *
  19   * @since  1.7.0
  20   * @note   Port of phputf8's utf8_accents_to_ascii()
  21   */
  22  class Transliterate
  23  {
  24      /**
  25       * Returns strings transliterated from UTF-8 to Latin
  26       *
  27       * @param   string   $string  String to transliterate
  28       * @param   integer  $case    Optionally specify upper or lower case. Default to null.
  29       *
  30       * @return  string  Transliterated string
  31       *
  32       * @since   1.7.0
  33       */
  34      public static function utf8_latin_to_ascii($string, $case = 0)
  35      {
  36          static $UTF8_LOWER_ACCENTS = null;
  37          static $UTF8_UPPER_ACCENTS = null;
  38  
  39          if ($case <= 0) {
  40              if (\is_null($UTF8_LOWER_ACCENTS)) {
  41                  $UTF8_LOWER_ACCENTS = array(
  42                      'à' => 'a',
  43                      'ô' => 'o',
  44                      'ď' => 'd',
  45                      'ḟ' => 'f',
  46                      'ë' => 'e',
  47                      'š' => 's',
  48                      'ơ' => 'o',
  49                      'ß' => 'ss',
  50                      'ă' => 'a',
  51                      'ř' => 'r',
  52                      'ț' => 't',
  53                      'ň' => 'n',
  54                      'ā' => 'a',
  55                      'ķ' => 'k',
  56                      'ŝ' => 's',
  57                      'ỳ' => 'y',
  58                      'ņ' => 'n',
  59                      'ĺ' => 'l',
  60                      'ħ' => 'h',
  61                      'ṗ' => 'p',
  62                      'ó' => 'o',
  63                      'ú' => 'u',
  64                      'ě' => 'e',
  65                      'é' => 'e',
  66                      'ç' => 'c',
  67                      'ẁ' => 'w',
  68                      'ċ' => 'c',
  69                      'õ' => 'o',
  70                      'ṡ' => 's',
  71                      'ø' => 'o',
  72                      'ģ' => 'g',
  73                      'ŧ' => 't',
  74                      'ș' => 's',
  75                      'ė' => 'e',
  76                      'ĉ' => 'c',
  77                      'ś' => 's',
  78                      'î' => 'i',
  79                      'ű' => 'u',
  80                      'ć' => 'c',
  81                      'ę' => 'e',
  82                      'ŵ' => 'w',
  83                      'ṫ' => 't',
  84                      'ū' => 'u',
  85                      'č' => 'c',
  86                      'ö' => 'oe',
  87                      'è' => 'e',
  88                      'ŷ' => 'y',
  89                      'ą' => 'a',
  90                      'ł' => 'l',
  91                      'ų' => 'u',
  92                      'ů' => 'u',
  93                      'ş' => 's',
  94                      'ğ' => 'g',
  95                      'ļ' => 'l',
  96                      'ƒ' => 'f',
  97                      'ž' => 'z',
  98                      'ẃ' => 'w',
  99                      'ḃ' => 'b',
 100                      'å' => 'a',
 101                      'ì' => 'i',
 102                      'ï' => 'i',
 103                      'ḋ' => 'd',
 104                      'ť' => 't',
 105                      'ŗ' => 'r',
 106                      'ä' => 'ae',
 107                      'í' => 'i',
 108                      'ŕ' => 'r',
 109                      'ê' => 'e',
 110                      'ü' => 'ue',
 111                      'ò' => 'o',
 112                      'ē' => 'e',
 113                      'ñ' => 'n',
 114                      'ń' => 'n',
 115                      'ĥ' => 'h',
 116                      'ĝ' => 'g',
 117                      'đ' => 'd',
 118                      'ĵ' => 'j',
 119                      'ÿ' => 'y',
 120                      'ũ' => 'u',
 121                      'ŭ' => 'u',
 122                      'ư' => 'u',
 123                      'ţ' => 't',
 124                      'ý' => 'y',
 125                      'ő' => 'o',
 126                      'â' => 'a',
 127                      'ľ' => 'l',
 128                      'ẅ' => 'w',
 129                      'ż' => 'z',
 130                      'ī' => 'i',
 131                      'ã' => 'a',
 132                      'ġ' => 'g',
 133                      'ṁ' => 'm',
 134                      'ō' => 'o',
 135                      'ĩ' => 'i',
 136                      'ù' => 'u',
 137                      'į' => 'i',
 138                      'ź' => 'z',
 139                      'á' => 'a',
 140                      'û' => 'u',
 141                      'þ' => 'th',
 142                      'ð' => 'dh',
 143                      'æ' => 'ae',
 144                      'µ' => 'u',
 145                      'ĕ' => 'e',
 146                      'œ' => 'oe',
 147                  );
 148              }
 149  
 150              $string = str_replace(array_keys($UTF8_LOWER_ACCENTS), array_values($UTF8_LOWER_ACCENTS), $string);
 151          }
 152  
 153          if ($case >= 0) {
 154              if (\is_null($UTF8_UPPER_ACCENTS)) {
 155                  $UTF8_UPPER_ACCENTS = array(
 156                      'À' => 'A',
 157                      'Ô' => 'O',
 158                      'Ď' => 'D',
 159                      'Ḟ' => 'F',
 160                      'Ë' => 'E',
 161                      'Š' => 'S',
 162                      'Ơ' => 'O',
 163                      'Ă' => 'A',
 164                      'Ř' => 'R',
 165                      'Ț' => 'T',
 166                      'Ň' => 'N',
 167                      'Ā' => 'A',
 168                      'Ķ' => 'K',
 169                      'Ŝ' => 'S',
 170                      'Ỳ' => 'Y',
 171                      'Ņ' => 'N',
 172                      'Ĺ' => 'L',
 173                      'Ħ' => 'H',
 174                      'Ṗ' => 'P',
 175                      'Ó' => 'O',
 176                      'Ú' => 'U',
 177                      'Ě' => 'E',
 178                      'É' => 'E',
 179                      'Ç' => 'C',
 180                      'Ẁ' => 'W',
 181                      'Ċ' => 'C',
 182                      'Õ' => 'O',
 183                      'Ṡ' => 'S',
 184                      'Ø' => 'O',
 185                      'Ģ' => 'G',
 186                      'Ŧ' => 'T',
 187                      'Ș' => 'S',
 188                      'Ė' => 'E',
 189                      'Ĉ' => 'C',
 190                      'Ś' => 'S',
 191                      'Î' => 'I',
 192                      'Ű' => 'U',
 193                      'Ć' => 'C',
 194                      'Ę' => 'E',
 195                      'Ŵ' => 'W',
 196                      'Ṫ' => 'T',
 197                      'Ū' => 'U',
 198                      'Č' => 'C',
 199                      'Ö' => 'Oe',
 200                      'È' => 'E',
 201                      'Ŷ' => 'Y',
 202                      'Ą' => 'A',
 203                      'Ł' => 'L',
 204                      'Ų' => 'U',
 205                      'Ů' => 'U',
 206                      'Ş' => 'S',
 207                      'Ğ' => 'G',
 208                      'Ļ' => 'L',
 209                      'Ƒ' => 'F',
 210                      'Ž' => 'Z',
 211                      'Ẃ' => 'W',
 212                      'Ḃ' => 'B',
 213                      'Å' => 'A',
 214                      'Ì' => 'I',
 215                      'Ï' => 'I',
 216                      'Ḋ' => 'D',
 217                      'Ť' => 'T',
 218                      'Ŗ' => 'R',
 219                      'Ä' => 'Ae',
 220                      'Í' => 'I',
 221                      'Ŕ' => 'R',
 222                      'Ê' => 'E',
 223                      'Ü' => 'Ue',
 224                      'Ò' => 'O',
 225                      'Ē' => 'E',
 226                      'Ñ' => 'N',
 227                      'Ń' => 'N',
 228                      'Ĥ' => 'H',
 229                      'Ĝ' => 'G',
 230                      'Đ' => 'D',
 231                      'Ĵ' => 'J',
 232                      'Ÿ' => 'Y',
 233                      'Ũ' => 'U',
 234                      'Ŭ' => 'U',
 235                      'Ư' => 'U',
 236                      'Ţ' => 'T',
 237                      'Ý' => 'Y',
 238                      'Ő' => 'O',
 239                      'Â' => 'A',
 240                      'Ľ' => 'L',
 241                      'Ẅ' => 'W',
 242                      'Ż' => 'Z',
 243                      'Ī' => 'I',
 244                      'Ã' => 'A',
 245                      'Ġ' => 'G',
 246                      'Ṁ' => 'M',
 247                      'Ō' => 'O',
 248                      'Ĩ' => 'I',
 249                      'Ù' => 'U',
 250                      'Į' => 'I',
 251                      'Ź' => 'Z',
 252                      'Á' => 'A',
 253                      'Û' => 'U',
 254                      'Þ' => 'Th',
 255                      'Ð' => 'Dh',
 256                      'Æ' => 'Ae',
 257                      'Ĕ' => 'E',
 258                      'Œ' => 'Oe',
 259                  );
 260              }
 261  
 262              $string = str_replace(array_keys($UTF8_UPPER_ACCENTS), array_values($UTF8_UPPER_ACCENTS), $string);
 263          }
 264  
 265          return $string;
 266      }
 267  }


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