+ const LINK_GROUP = 'group';
+
+ // List of all available postal formattings.
+ private static $formattings = array('FRANCE' => 'FR');
+
+ // Abbreviations to be used to format French postal addresses.
+ private static $streetAbbreviations = array(
+ 'ALLEE' => 'ALL',
+ 'AVENUE' => 'AV',
+ 'BOULEVARD' => 'BD',
+ 'CENTRE' => 'CTRE',
+ 'CENTRE COMMERCIAL' => 'CCAL',
+ 'IMMEUBLE' => 'IMM',
+ 'IMMEUBLES' => 'IMM',
+ 'IMPASSE' => 'IMP',
+ 'LIEU-DIT' => 'LD',
+ 'LOTISSEMENT' => 'LOT',
+ 'PASSAGE' => 'PAS',
+ 'PLACE' => 'PL',
+ 'RESIDENCE' => 'RES',
+ 'ROND-POINT' => 'RPT',
+ 'ROUTE' => 'RTE',
+ 'SQUARE' => 'SQ',
+ 'VILLAGE' => 'VLGE',
+ 'ZONE D\'ACTIVITE' => 'ZA',
+ 'ZONE D\'AMENAGEMENT CONCERTE' => 'ZAC',
+ 'ZONE D\'AMENAGEMENT DIFFERE' => 'ZAD',
+ 'ZONE INDUSTRIELLE' => 'ZI'
+ );
+ private static $otherAbbreviations = array(
+ 'ADJUDANT' => 'ADJ',
+ 'AERODROME' => 'AERD',
+ 'AEROGARE' => 'AERG',
+ 'AERONAUTIQUE' => 'AERN',
+ 'AEROPORT' => 'AERP',
+ 'AGENCE' => 'AGCE',
+ 'AGRICOLE' => 'AGRIC',
+ 'ANCIEN' => 'ANC',
+ 'ANCIENNEMENT' => 'ANC',
+ 'APPARTEMENT' => 'APP',
+ 'APPARTEMENTS' => 'APP',
+ 'ARMEMENT' => 'ARMT',
+ 'ARRONDISSEMENT' => 'ARR',
+ 'ASPIRANT' => 'ASP',
+ 'ASSOCIATION' => 'ASSOC',
+ 'ASSURANCE' => 'ASSUR',
+ 'ATELIER' => 'AT',
+ 'BARAQUEMENT' => 'BRQ',
+ 'BAS' => 'BAS',
+ 'BASSE' => 'BAS',
+ 'BASSES' => 'BAS',
+ 'BATAILLON' => 'BTN',
+ 'BATAILLONS' => 'BTN',
+ 'BATIMENT' => 'BAT',
+ 'BATIMENTS' => 'BAT',
+ 'BIS' => 'B',
+ 'BOITE POSTALE' => 'BP',
+ 'CABINET' => 'CAB',
+ 'CANTON' => 'CANT',
+ 'CARDINAL' => 'CDL',
+ 'CASE POSTALE' => 'CP',
+ 'CHAMBRE' => 'CHBR',
+ 'CITADELLE' => 'CTD',
+ 'COLLEGE' => 'COLL',
+ 'COLONEL' => 'CNL',
+ 'COLONIE' => 'COLO',
+ 'COMITE' => 'CTE',
+ 'COMMANDANT' => 'CDT',
+ 'COMMERCIAL' => 'CIAL',
+ 'COMMUNE' => 'COM',
+ 'COMMUNAL' => 'COM',
+ 'COMMUNAUX' => 'COM',
+ 'COMPAGNIE' => 'CIE',
+ 'COMPAGNON' => 'COMP',
+ 'COMPAGNONS' => 'COMP',
+ 'COOPERATIVE' => 'COOP',
+ 'COURSE SPECIALE' => 'CS',
+ 'CROIX' => 'CRX',
+ 'DELEGATION' => 'DELEG',
+ 'DEPARTEMENTAL' => 'DEP',
+ 'DEPARTEMENTAUX' => 'DEP',
+ 'DIRECTEUR' => 'DIR',
+ 'DIRECTECTION' => 'DIR',
+ 'DIVISION' => 'DIV',
+ 'DOCTEUR' => 'DR',
+ 'ECONOMIE' => 'ECO',
+ 'ECONOMIQUE' => 'ECO',
+ 'ECRIVAIN' => 'ECRIV',
+ 'ECRIVAINS' => 'ECRIV',
+ 'ENSEIGNEMENT' => 'ENST',
+ 'ENSEMBLE' => 'ENS',
+ 'ENTREE' => 'ENT',
+ 'ENTREES' => 'ENT',
+ 'ENTREPRISE' => 'ENTR',
+ 'EPOUX' => 'EP',
+ 'EPOUSE' => 'EP',
+ 'ETABLISSEMENT' => 'ETS',
+ 'ETAGE' => 'ETG',
+ 'ETAT MAJOR' => 'EM',
+ 'EVEQUE' => 'EVQ',
+ 'FACULTE' => 'FAC',
+ 'FORET' => 'FOR',
+ 'FORESTIER' => 'FOR',
+ 'FRANCAIS' => 'FR',
+ 'FRANCAISE' => 'FR',
+ 'FUSILIER' => 'FUS',
+ 'GENDARMERIE' => 'GEND',
+ 'GENERAL' => 'GAL',
+ 'GOUVERNEMENTAL' => 'GOUV',
+ 'GOUVERNEUR' => 'GOU',
+ 'GRAND' => 'GD',
+ 'GRANDE' => 'GDE',
+ 'GRANDES' => 'GDES',
+ 'GRANDS' => 'GDS',
+ 'HAUT' => 'HT',
+ 'HAUTE' => 'HTE',
+ 'HAUTES' => 'HTES',
+ 'HAUTS' => 'HTS',
+ 'HOPITAL' => 'HOP',
+ 'HOPITAUX' => 'HOP',
+ 'HOSPICE' => 'HOSP',
+ 'HOSPITALIER' => 'HOSP',
+ 'HOTEL' => 'HOT',
+ 'INFANTERIE' => 'INFANT',
+ 'INFERIEUR' => 'INF',
+ 'INFERIEUR' => 'INF',
+ 'INGENIEUR' => 'ING',
+ 'INSPECTEUR' => 'INSP',
+ 'INSTITUT' => 'INST',
+ 'INTERNATIONAL' => 'INTERN',
+ 'INTERNATIONALE' => 'INTERN',
+ 'LABORATOIRE' => 'LABO',
+ 'LIEUTENANT' => 'LT',
+ 'LIEUTENANT DE VAISSEAU' => 'LTDV',
+ 'MADAME' => 'MME',
+ 'MADEMOISELLE' => 'MLLE',
+ 'MAGASIN' => 'MAG',
+ 'MAISON' => 'MAIS',
+ 'MAITRE' => 'ME',
+ 'MARECHAL' => 'MAL',
+ 'MARITIME' => 'MAR',
+ 'MEDECIN' => 'MED',
+ 'MEDICAL' => 'MED',
+ 'MESDAMES' => 'MMES',
+ 'MESDEMOISELLES' => 'MLLES',
+ 'MESSIEURS' => 'MM',
+ 'MILITAIRE' => 'MIL',
+ 'MINISTERE' => 'MIN',
+ 'MONSEIGNEUR' => 'MGR',
+ 'MONSIEUR' => 'M',
+ 'MUNICIPAL' => 'MUN',
+ 'MUTUEL' => 'MUT',
+ 'NATIONAL' => 'NAL',
+ 'NOTRE DAME' => 'ND',
+ 'NOUVEAU' => 'NOUV',
+ 'NOUVEL' => 'NOUV',
+ 'NOUVELLE' => 'NOUV',
+ 'OBSERVATOIRE' => 'OBS',
+ 'PASTEUR' => 'PAST',
+ 'PETIT' => 'PT',
+ 'PETITE' => 'PTE',
+ 'PETITES' => 'PTES',
+ 'PETITS' => 'PTS',
+ 'POLICE' => 'POL',
+ 'PREFET' => 'PREF',
+ 'PREFECTURE' => 'PREF',
+ 'PRESIDENT' => 'PDT',
+ 'PROFESSEUR' => 'PR',
+ 'PROFESSIONNEL' => 'PROF',
+ 'PROFESSIONNELE' => 'PROF',
+ 'PROLONGE' => 'PROL',
+ 'PROLONGEE' => 'PROL',
+ 'PROPRIETE' => 'PROP',
+ 'QUATER' => 'Q',
+ 'QUINQUIES' => 'C',
+ 'RECTEUR' => 'RECT',
+ 'REGIMENT' => 'RGT',
+ 'REGION' => 'REG',
+ 'REGIONAL' => 'REG',
+ 'REGIONALE' => 'REG',
+ 'REPUBLIQUE' => 'REP',
+ 'RESTAURANT' => 'REST',
+ 'SAINT' => 'ST',
+ 'SAINTE' => 'STE',
+ 'SAINTES' => 'STES',
+ 'SAINTS' => 'STS',
+ 'SANATORIUM' => 'SANA',
+ 'SERGENT' => 'SGT',
+ 'SERVICE' => 'SCE',
+ 'SOCIETE' => 'SOC',
+ 'SOUS COUVERT' => 'SC',
+ 'SOUS-PREFET' => 'SPREF',
+ 'SUPERIEUR' => 'SUP',
+ 'SUPERIEURE' => 'SUP',
+ 'SYNDICAT' => 'SYND',
+ 'TECHNICIEN' => 'TECH',
+ 'TECHNICIENNE' => 'TECH',
+ 'TECHNICIQUE' => 'TECH',
+ 'TER' => 'T',
+ 'TRI SERVICE ARRIVEE' => 'TSA',
+ 'TUNNEL' => 'TUN',
+ 'UNIVERSITAIRE' => 'UNVT',
+ 'UNIVERSITE' => 'UNIV',
+ 'VELODROME' => 'VELOD',
+ 'VEUVE' => 'VVE',
+ 'VIEILLE' => 'VIEL',
+ 'VIEILLES' => 'VIEL',
+ 'VIEUX' => 'VX'
+ );
+ private static $entrepriseAbbreviations = array(
+ 'COOPERATIVE D\'UTILISATION DE MATERIEL AGRICOLE EN COMMUN' => 'CUMA',
+ 'ETABLISSEMENT PUBLIC A CARACTERE INDUSTRIEL ET COMMERCIAL' => 'EPIC',
+ 'ETABLISSEMENT PUBLIC ADMINISTRATIF' => 'EPA',
+ 'GROUPEMENT AGRICOLE D\'EXPLOITATION EN COMMUN' => 'GAEC',
+ 'GROUPEMENT D\'INTERET ECONOMIQUE' => 'GIE',
+ 'GROUPEMENT D\'INTERET PUBLIC' => 'GIP',
+ 'GROUPEMENT EUROPEEN D\'INTERET ECONOMIQUE' => 'GEIE',
+ 'OFFICE PUBLIC D\'HABITATION A LOYER MODERE' => 'OPHLM',
+ 'SOCIETE A RESPONSABILITE LIMITEE' => 'SARL',
+ 'SOCIETE ANONYME' => 'SA',
+ 'SOCIETE CIVILE DE PLACEMENT COLLECTIF IMMOBILIER' => 'SCPI',
+ 'SOCIETE CIVILE PROFESSIONNELLE' => 'SCP',
+ 'SOCIETE COOPERATIVE OUVRIERE DE PRODUCTION ET DE CREDIT' => 'SCOP',
+ 'SOCIETE D\'AMENAGEMENT FONCIER ET D\'EQUIPEMENT RURAL' => 'SAFER',
+ 'SOCIETE D\'ECONOMIE MIXTE' => 'SEM',
+ 'SOCIETE D\'INTERET COLLECTIF AGRICOLE' => 'SICA',
+ 'SOCIETE D\'INVESTISSEMENT A CAPITAL VARIABLE' => 'SICAV',
+ 'SOCIETE EN NOM COLLECTIF' => 'SNC',
+ 'SOCIETE IMMOBILIERE POUR LE COMMERCE ET L\'INDUSTRIE' => 'SICOMI',
+ 'SOCIETE MIXTE D\'INTERET AGRICOLE' => 'SMIA',
+ 'SYNDICAT INTERCOMMUNAL A VOCATION MULTIPLE' => 'SIVOM',
+ 'SYNDICAT INTERCOMMUNAL A VOCATION UNIQUE' => 'SIVU'
+ );