Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /***
- * 2017-09-17
- */
- function pluralize( $name ){
- $irregular = array(
- 'abdomen' => 'abdomens',
- 'alemão' => 'alemães',
- 'artesã' => 'artesãos',
- 'ás' => 'áses',
- 'bencão' => 'bencãos',
- 'cão' => 'cães',
- 'campus' => 'campi',
- 'capelão' => 'capelães',
- 'capitão' => 'capitães',
- 'chão' => 'chãos',
- 'charlatão' => 'charlatães',
- 'cidadão' => 'cidadãos',
- 'consul' => 'consules',
- 'cristão' => 'cristãos',
- 'difícil' => 'difíceis',
- 'email' => 'emails',
- 'escrivão' => 'escrivães',
- 'fóssil' => 'fósseis',
- 'germen' => 'germens',
- 'grão' => 'grãos',
- 'hífen' => 'hífens',
- 'irmão' => 'irmãos',
- 'liquens' => 'liquen',
- 'mal' => 'males',
- 'mão' => 'mãos',
- 'orfão' => 'orfãos',
- 'país' => 'países',
- 'pai' => 'pais',
- 'pão' => 'pães',
- 'projétil' => 'projéteis',
- 'réptil' => 'répteis',
- 'sacristão' => 'sacristães',
- 'sotão' => 'sotãos',
- 'tabelião' => 'tabeliães',
- 'gás' => 'gases',
- 'álcool' => 'álcoois'
- );
- if( isset( $irregular[ $name ] ) ){
- return $irregular[ $name ];
- }
- // não aplicaveis
- $not_applicable = explode( ' ', 'atlas lapis onibus pires virus status' );
- if( in_array( $name, $not_applicable ) ){
- return $name;
- }
- // already plural
- if( substr( $name, -1 ) == 's' ){
- return $name;
- }
- // default plural
- $plural = array(
- '/^(.*)ão$/i' => '\1ões',
- '/^(.*)(r|s|z)$/i' => '\1\2es',
- '/^(.*)(a|e|o|u)l$/i' => '\1\2is',
- '/^(.*)il$/i' =>'\1\2is',
- '/^(.*)(m|n)$/i' => '\1ns',
- '/^(.*)$/i' => '\1s',
- );
- foreach( $plural as $reg => $rep ){
- if( preg_match( $reg, $name ) ){
- $name = preg_replace( $reg, $rep, $name );
- break;
- }
- }
- return $name;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement