<?php
/*
Plugin Name: Abbreviation Replacer
Version: 1.1
Plugin URI: http://www.bueltge.de/wp-abbreviation-replacer-plugin/100/
Description: Abbreviation Replacer is a Wordpress plugin which automatically adds abbr tags to your blog content. Basis Script and idea is from <a href="http://www.HuddledMasses.org">Joel Bennett</a> and his plugin adds acronym tags to the content.
Author: Frank Bueltge
Author URI: http://www.bueltge.de
*/

function abbreviations($text)	{
	global	$abbr_abbr;

	if( empty($abbr_abbr) ) {
		$abbr_abbr = array(
			"Abk. " => "Abkürzung",
			"afrik. " => "afrikanisch",
			"Akk. " => "Akkusativ",
			"allg. " => "allgemein",
			"altdt. " => "altdeutsch",
			"alttest. " => "alttestamentlich",
			"amerik. " => "amerikanisch",
			"Amtsspr. " => "Amtssprache",
			"angels. " => "angelsächsisch",
			"Anm. " => "Anmerkung",
			"Anthropol. " => "Anthropologie",
			"aram. " => "aramäisch",
			"Archit. " => "Architektur",
			"astron. " => "astronomisch",
			"Astron. " => "Astronomie",
			"Ausspr. " => "Aussprache",
			"austr. " => "australisch",
			"Bankw. " => "Bankwesen",
			"Bauw. " => "Bauwesen",
			"Bed. " => "Bedeutung",
			"Bergmannsspr. " => "Bergmannssprache",
			"Berufsbez. " => "Berufsbezeichnung",
			"bes. " => "besonders",
			"Bez. " => "Bezeichnung",
			"bild. " => "bildende",
			"Biol. " => "Biologie",
			"Bot. " => "Botanik",
			"bras. " => "brasilianisch",
			"bret. " => "bretonisch",
			"Buchw. " => "Buchwesen",
			"byzant" => "byzantinisch",
			"bzw. " => "beziehungsweise",
			"chin. " => "chinesisch",
			"cm. " => "Zentimeter",
			"Dat. " => "Dativ",
			"dm. " => "Dezimeter",
			"Druckerspr. " => "Druckersprache",
			"Druckw. " => "Druckwesen",
			"dt. " => "deutsch",
			"ehem. " => "ehemals, ehemalig",
			"Eigenn. " => "Eigenname",
			"eigtl. " => "eigentlich",
			"Eisenb. " => "Eisenbahnwesen",
			"eskim. " => "eskimoisch",
			"etw. " => "etwas",
			"europ. " => "europäisch",
			"evang. " => "evangelisch",
			"fachspr. " => "fachsprachlich",
			"fam. " => "familiär",
			"Familienn. " => "Familienname",
			"Fernspr. " => "Fernsprechwesen",
			"Finanzw. " => "Finanzwesen",
			"Fliegerspr. " => "Fliegersprache",
			"Flugw. " => "Flugwesen",
			"Forstw. " => "Forstwirtschaft",
			"fotogr. " => "fotografisch",
			"Fotogr. " => "Fotografie",
			"franz. " => "französisch",
			"Gastron. " => "Gastronomie",
			"Gaunerspr. " => "Gaunersprache",
			"gebr. " => "gebräuchlich",
			"geh" => "gehoben",
			"gen. " => "genannt",
			"Gen. " => "Genitiv",
			"Geogr. " => "Geographie",
			"Geol. " => "Geologie",
			"germ. " => "germanisch",
			"Ggs. " => "Gegensatz",
			"Handw. " => "Handwerk",
			"hebr. " => "hebräisch",
			"hist. " => "historisch",
			"Hochschulw. " => "Hochschulwesen",
			"Hptst. " => "Hauptstadt",
			"Hüttenw. " => "Hüttenwesen",
			"idg. " => "indogermanisch",
			"ital. " => "italienisch",
			"Jägerspr. " => "Jägersprache",
			"jap. " => "japanisch",
			"jmd. " => "jemand",
			"jmdm. " => "jemandem",
			"jmdn. " => "jemanden",
			"jmds. " => "jemandes",
			"Jugendspr. " => "Jugendsprache",
			"kath. " => "katholisch",
			"Kaufmannsspr. " => ",Kaufmannssprache",
			"Kinderspr. " => "Kindersprache",
			"Konj. " => "Konjunktion",
			"Kunstw. " => "Kunstwissenschaft",
			"Kurzw. " => "Kurzwort",
			"landsch. " => "landschaftlich",
			"andw. " => "landwirtschaftlich",
			"Landw. " => "Landwirtschaft",
			"lat. " => "lateinisch",
			"ldt. " => "litauisch",
			"Literaturw. " => "Literaturwissenschaft",
			"män. " => "männlich",
			"Math. " => "Mathematik",
			"mdal. " => "mundartlich",
			"med. " => "medizinisch",
			"Med. " => "Medizin",
			"Meteor. " => "Meteorologie",
			"mexik. " => "mexikanisch",
			"milit. " => "militärisch",
			"Milit. " => "Militärwesen",
			"mitteld. " => "mitteldeutsch",
			"mittelhochd. " => "mittelhochdeutsch",
			"mlat. " => "mittellateinisch",
			"mong. " => "mongolisch",
			"Münzw. " => "Münzwesen",
			"Mythol. " => "Mythologie",
			"nationalsoz. " => "nationalsozialistisch",
			"neutest. " => "neutestamentlich",
			"ngriech. " => "neugriechisch",
			"niederl. " => "niederländisch",
			"nlat. " => "neulateinisch",
			"Nom,. " => "Nominativ",
			"nordamerik. " => "nordamerikanisch",
			"nordd. " => "norddeutsch",
			"nordgerm. " => "nordgermanisch",
			"norw. " => "norwegisch",
			"O.Ä. " => "oder Ähnliches",  
			"offz. " => "offiziell",
			"ökum. " => "ökumenisch",
			"Ortsn. " => "Ortsname",
			"ostd. " => "ostdeutsch",
			"österr. " => "österreichisch",
			"Österr. " => "Österreich",
			"ostmitteld. " => "ostmitteldeutsch",
			"Päd. " => "Pädagogik",
			"palästin. " => "Pharmazie",
			"Pharm. " => "palästinensisch",
			"philos. " => "philosophisch",
			"Philos. " => "Philosophie",
			"Physiol. " => "Physiologie",
			"Plur. " => "Plural",
			"port. " => "portugiesisch",
			"Postw. " => "Postwesen",
			"Präp. " => "Präposition",
			"Psych. " => "Psychologie",
			"Rechtsspr. " => "Rechtssprache",
			"Rechtsw. " => "Rechtswesen",
			"Rel. " => "Religionswissenschaft",
			"Rhet. " => "Rhetorik",
			"Rundf. " => "Rundfunk",
			"sanskr. " => "sanskritisch",
			"scherzh. " => "scherzhaft",
			"Schülerspr. " => "Schülersprache",
			"Schulw. " => "Schulwesen",
			"Schweiz. " => "schweizerisch",
			"Seemannsspr. " => ",Seemannssprache",
			"Seew. " => "Seewesen",
			"Sing. " => "Singular",
			"singhal. " => "singhalesisch",
			"skand. " => "skandinavisch",
			"Soldatenspr. " => "Soldatensprache",
			"Soziol. " => "Soziologie",
			"Sportspr. " => "Sportsprache",
			"Sprachw. " => "Sprachwissenschaft",
			"Stilk. " => "Stilkunde",
			"stud. " => "studentisch",
			"Studentenspr. " => "Studentensprache",
			"südd. " => "süddeutsch",
			"südwestd. " => "südwestdeutsch",
			"svw. " => "so viel wie",
			"Textilw. " => "Textilwesen",
			"Theol. " => "Theologie",
			"Tiermed. " => "Tiermedizin",
			"Trenn. " => "Trennung",
			"turkotat. " => "turkotatarisch",
			"u.a. " => "und andere",
			"U.Ä. " => "und Ähnliches",
			"übertr. " => "übertragen",
			"ugs. " => "umgangssprachlich",
			"ung. " => "ungarisch",
			"urspr. " => "ursprünglich",
			"verkehrsw. " => "Verkehrswesen",
			"versicherungsw. " => "Versicherungswesen",
			"vgl. " => "vergleiche",
			"völkerk. " => "Völkerkunde",
			"vorn. " => "Vorname",
			"weibl. " => "weiblich",
			"westmitteld. " => "westmitteldeutsch",
			"Zahnmed. " => "Zahnmedizin",
			"z.B. " => "zum Beispiel",
			"Zollw. " => "Zollwesen",
			"Zool. " => "Zoologie",
			"Zus. " => "Zusammensetzung"
		);
	}

	$text = " $text ";
	foreach($abbr_abbr as $abbr => $description) {
		$text = preg_replace("|(?!<[^<>]*?)(?<![?./&])\b$abbr\b(?!:)(?![^<>]*?>)|imsU","<abbr	title=\"$description\">$abbr</abbr>" , $text); 
		$text = preg_replace("|[$]<abbr	title=\"$description\">$abbr</abbr>[$]|imsU" , "$abbr" , $text);
	}
	return	trim(	$text	);
}

add_filter('the_content', 'abbreviations', 18);
add_filter('comment_text', 'abbreviations', 18);
?>
