From: C. Scott Ananian Date: Mon, 2 Apr 2018 03:50:58 +0000 (-0400) Subject: LanguageConverter tweaks to Pig Latin converter X-Git-Tag: 1.31.0-rc.0~223^2 X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/banques/%22%24lasturl/%7B%24admin_url%7Dmembres/cotisations/gestion/%40%20%27info_date_publication_anterieure%27%20=%3E%20%27Previously%20published%20on:%27%2C%20%27info_date_referencement%27%20=%3E%20%27THIS%20SITE%20REFERENCED%20ON:%27%2C%20%27info_derniere_etape%27%20=%3E%20%27Done%21%27%2C-%27info_derniers_articles_publies%27%20=%3E%20%27Your%20most%20recently%20published%20articles%27%2C-%27info_desactiver_messagerie_personnelle%27%20=%3E%20%27You%20can%20enable%20or%20disable%20your%20personal%20messaging%20on%20this%20site.%27%2C%20%27info_descriptif%27%20=%3E%20%27Description:%27%2C%20%27info_desinstaller_plugin%27%20=%3E%20%27%20deactivates%20the%20plugin%20and%20deletes%20the%20data%27%2C%20%27info_discussion_cours%27%20=%3E%20%27Current%20discussions%27%2C%40%40%20-332%2C7%20%20284%2C6%20%40%40%20Do%20not%20submit%20this%20import%20request.%3Cp%3EFor%20more%20information%2C%20please%20see%20%3Ca%20href=?a=commitdiff_plain;h=2e7018e22c852e0710d42b10aedcd1a44c558876;p=lhc%2Fweb%2Fwiklou.git LanguageConverter tweaks to Pig Latin converter Add apostrophe to the set of valid word characters for the en-x-piglatin converter, so that "don't" and "can't" are properly converted to Pig Latin (eg, to "on'tday" and "an'tcay"). Add an optional `s` before `qu` so that "squish" is properly converted to "ishsquay". Change-Id: Ibc5cf2c007a42d9447688b857aa75f9a3d8ae152 --- diff --git a/languages/classes/LanguageEn.php b/languages/classes/LanguageEn.php index 709ce1bacf..6d603f591b 100644 --- a/languages/classes/LanguageEn.php +++ b/languages/classes/LanguageEn.php @@ -47,12 +47,12 @@ class EnConverter extends LanguageConverter { // Only process words composed of standard English alphabet, leave the rest unchanged. // This skips some English words like 'naïve' or 'résumé', but we can live with that. // Ignore single letters and words which aren't lowercase or uppercase-first. - return preg_replace_callback( '/[A-Za-z][a-z]+/', function ( $matches ) { + return preg_replace_callback( '/[A-Za-z][a-z\']+/', function ( $matches ) { $word = $matches[0]; if ( preg_match( '/^[aeiou]/i', $word ) ) { return $word . 'way'; } else { - return preg_replace_callback( '/^(qu|[^aeiou][^aeiouy]*)(.*)$/i', function ( $m ) { + return preg_replace_callback( '/^(s?qu|[^aeiou][^aeiouy]*)(.*)$/i', function ( $m ) { $ucfirst = strtoupper( $m[1][0] ) === $m[1][0]; if ( $ucfirst ) { return ucfirst( $m[2] ) . lcfirst( $m[1] ) . 'ay';