X-Git-Url: https://git.rapsys.eu/.gitweb.cgi/packbundle/blobdiff_plain/9d0a8f506d7b005236a693838ffefc655df2e39f..4004f8f347547b5efa2817ca087c82ee7cc2229e:/Util/SluggerUtil.php?ds=inline

diff --git a/Util/SluggerUtil.php b/Util/SluggerUtil.php
index 8dc50df..fc3f462 100644
--- a/Util/SluggerUtil.php
+++ b/Util/SluggerUtil.php
@@ -198,6 +198,31 @@ class SluggerUtil {
 		return trim(preg_replace('/[\/_|+ -]+/', '-', strtolower(preg_replace('/[^a-zA-Z0-9\/_|+ -]/', '', str_replace(['\'', '"'], ' ', iconv('UTF-8', 'ASCII//TRANSLIT', $data))))), '-');
 	}
 
+	/**
+	 * Convert string to latin
+	 *
+	 * @param string $data The data string
+	 * @return ?string The slugged data
+	 */
+	function latin(?string $data): ?string {
+		//With null
+		if ($data === null) {
+			//Return null
+			return $data;
+		}
+
+		//Use Transliterator if available
+		if (class_exists('Transliterator')) {
+			//Convert from any to latin, then to ascii and lowercase
+			$trans = \Transliterator::create('Any-Latin; Latin-ASCII');
+			//Replace every non alphanumeric character by dash then trim dash
+			return trim($trans->transliterate($data));
+		}
+
+		//Convert from utf-8 to ascii
+		return trim(iconv('UTF-8', 'ASCII//TRANSLIT', $data));
+	}
+
 	/**
 	 * Unshort then unserialize
 	 *