La toponymie de la Belgique ne peut être séparée de celle de la Flandre française, des Pays-Bas, de la Rhénanie, de l'Alsace et de la Suisse, c'est-à-dire de l'extrémité nord-ouest des zones de peuplement germaniques.. Cette zone est caractérisée par un substrat celtique, voire préceltique, des formations latines assez rares et un important apport germanique. Cependant, dans la Belgique romane, la plupart des toponymes ont une base latine, même s'ils n'ont pas été formés à l'époque romaineJean Germain et Jean-Marie Pierret, « Onomastique », dans Daniel Blampain et al. (dir.), Le Français en Belgique, Duculot, Bruxelles, 1997, .. Les noms de lieux au sud-est (domaine wallon) et sud-ouest (domaine picard) de la Belgique ne peuvent être distingués clairement de ceux de la Champagne-Ardenne et de la Picardie, qui sont basés sur un substrat celto-latin important et des formations romanes fortement influencées par la syntaxe germanique.

Substrat pré-indo-européen Certains éléments semblent remonter à une époque antérieure à l'arrivée des porteurs des langues indo-européennes sur le territoire de la Belgique actuelle. Le nom de la Meuse (latin Mosa), dont l'étymologie est inconnue. Sam-ara (la Sambre), Sam-ia (la Samme), Som-ena (la Somme). Thila (la Dyle) et Viltis (le Wiltz), basés sur une alternance de la consonne initiale (*t-il/w-il). La racine *kal-/kar- « roche, pente rocheuse, montagne » a donné Challes (Stavelot), Chaleux (Hulsonniaux) et Cherain. La racine *turn- « hauteur (?) » a donné la racine de Tournai. .

Substrat indo-européen non celtique On identifie dans la toponymie belge des éléments apportés par des populations de langue indo-européenne, mais non celtique. Certains éléments sont associés avec l’alteuropäisch identifié par Hans Krahe. D'autres ont été associés par Hans Kuhn à une langue indo-européenne disparue (théorie du bloc du Nord-Ouest). Jean Loicq y voit par contre une forme particulièrement archaïque du celtique, qu'il nomme « paléo-rhénan ». La racine *-ap(p)- « eau » a donné Oteppe (racine hydronymique *al(t)-), Wiseppe (racine *w(e)is-), Genappe, la Gileppe, la Galoppe. Élargie à *ap-s, cette même racine a probablement donné l'Aisne. La racine *emb(h)- « eau, vapeur » a donné l'Amblève et l'Emmels. La racine *wer- « verser, couler vivement » a donné la Warche, la Warchenne, Waremme, l'(Eau d')Heure, l'Ourthe, l'Our, affluent de la Sûre, et l'Our, affluent de la Lesse, l'Orcq, le Viroin, Virelles, etc. La racine *w(e)is- a donné la Vesdre, Wiseppe. La racine *is- a donné l'Oise, l'Yser. La racine *rod- a donné le Roannay et le Rhosnes.

Substrat celtique

Plusieurs noms sont liés au nom celtique du castor (bebro-) : la Biesme, Bièvre, Breuvanne (Tintigny), Buvrinnes, Bévercé (Malmedy); et en néerlandais: (Strombeek-)Bever et au moins quatre rien que dans les deux Flandres, sans parler des nombreux toponymes et hydronymes (s) situés en France entre la Belgique et la Seine.

Quelques toponymes dérivent d'un mot celtique signifiant « pur » : le Glan, le Glain, Glain. L'Ardenne porte également un nom celtique, qui signifie « l'élevée » (*ard-uo-). Ardenelle à Sombreffe a la même étymologie. Andenne viendrait d'‍ana « marais ».

Des localités importantes, et d'autres plus petites, portent des noms celtiques :

Ainsi Tournai peut être considéré comme gaulois, même si l'élément *turn ne l'est peut-être pas. En effet, cet élément est largement adopté dans des toponymes à composantes celtiques (cf. ci-dessus), notamment en France, où l'on trouve même un homonyme vrai Tournai-sur-Dive, ainsi que divers Tournay, Tornac, , etc. Le terme est attesté en celtique insulaire, en breton, sous la forme torn, dans torn-aot, hauteur du rivage, falaise. Quant au suffixe -acum, il se vérifie ici qu'il avait également une valeur topographique.

, jadis Lotusa, remonte peut-être à un primitif *Lutosā sur luto-, marais (cf. vieil irlandais loth « marais » et latin lŭtum « boue »).

Glons (*Glan·dūnum) « fortification sur la rive »

Verviers contient un élément -viers reconnaissable dans plusieurs noms de lieux du nord de la France (Grand-Laviers, Louviers, Reviers)François de Beaurepaire, Les Noms des communes et anciennes paroisses de l'Eure, éditions Picard 1981. et qui remonte possiblement à l'indo-européen *wer « eau, rivière » (cf. ci-dessus) largement acclimaté en gaulois et que l'on trouve aussi sous la forme *war (uer- et uar- chez Xavier DelamarreDictionnaire de la langue gauloise, éditions Errance, 2003. qui compare les sanskrit var, vari « eau »; le nordique vari, le louvite war-). Sous une forme simple, il a donné les noms du Var, de la Vire ou de la Vière.

Formations celto-latines On trouve une pléthore de noms en -acum qui selon le domaine linguistique ont pu évoluer en -eke (flamand), mais surtout en zone romane en -y / -ay.

La formation la plus caractéristique de la toponymie belge de langue romane est l'extension particulière du suffixe -iacas qui a abouti à -ies, type de formation dérivé du précédent, mais dont l'utilisation s'est prolongée longtemps dans la Gaule franque. Seuls le nord de la France et la Picardie (avec quelques exemples en Normandie) connaissent ce type de formation, dont le premier élément (comme pour les formations tardives en i-acum) est souvent un anthroponyme germaniqueFrançois de Beaurepaire, Les Noms des communes et anciennes paroisses de l'Eure, éditions Picard 1981. Introduction ..

Apports germaniques On distingue essentiellement deux types d'apports germaniques : un apport que l'on considère comme « francique », que l'on authentifie dans les toponymes romanisés de Wallonie et dans ceux de Flandre sous une forme néerlandaise, qu'il est parfois difficile de séparer des apports proprement flamands.

Éléments non flamands Les toponymes germaniques romanisés que l'on rencontre en Wallonie correspondent souvent à des archétypes qui se sont diffusés dans la nord de la Gaule, on en retrouve certains logiquement en Flandres sous une forme flamande.

par exemple est la forme néerlandaise commune du type *Husid-inja- « abri pour les bêtes et les gens » selon la reconstruction proposée par Maurits Gysseling. Cette explication a été contestée et certains y voient un composé celto-germanique Husidun (Gamillscheg) « maison sur la hauteur ». Le terme dune, qui n'apparaît qu'au en français, est probablement un emprunt au néerlandais, dont l'ancienne forme dūne est similaire à celle du vieil anglais dūn, colline. Ce mot n'est attesté que dans les dialectes bas-allemands et il s'agit peut-être d'un emprunt au gaulois dūnonAlbert Dauzat, Jean Dubois et Henri Mitterand, Nouveau dictionnaire étymologique et historique, éditions Larousse 1971..

Heusden, Limbourg, est mentionnée sous la forme in Husdinio au et Heusden, Gand, sous la forme Husdine au . Parallèlement, il existe les formes Hoosden et Huisduinen dans l'ère de diffusion du néerlandais. Mais encore, on retrouve cet archétype en zone romane dans Houdeng-Gœgnies, Houdeng-Aimeries et Hosdent. Ce composé toponymique est également répandu dans le Nord-Pas-de-Calais, en Picardie, en Normandie, jusqu'au nord de la région parisienne, où on note les formes Hesdin, Hodeng (exemple : Hodeng-au-Bosc, Hosdinium au , Hosdingum ), Hodenc (ex : Hodenc-en-Bray), Hodent, Houdan, Houdain, toute issues de Husdinium. Apparemment les formes romanes ont subi l'attraction du suffixe d'origine germanique -ing.

Même chose pour le composé romano-germanique Steenput, Brabant flamand, « puits de pierre ». Le vieux bas-francique *putti (cf. vieux haut allemand putti, emprunté lui-même au latin puteusAlfred Jolivet et Fernand Mossé, Manuel de l'allemand du Moyen Âge, des origines au , Aubier Montaigne 1972.) est peut-être aussi l'unique étymon de l'appellatif put et partiellement celui du français puits. On pourrait penser qu'il s'agit une formation d'origine néerlandaise et qu'Estaimpuis en constitue l'adaptation romane, mais le toponyme Étaimpuis (Estanpuiz 1137) en Normandie, loin de toute pénétration de la langue flamande, montre que sa diffusion est bien antérieure.

Plus répandu que les précédents est l'appellatif *baki, rivière, ruisseau. Au Moyen Âge, il est noté dans des textes sous les formes latinisées bacis, bacium, bacum, etc. De même, ces attestations dans la toponymie belge sont extraordinairement diverses.

La forme la plus courante prise par cet appellatif dans les régions romanes est -bais, parfois graphié -baix. Ainsi note-t-on Brombais à Incourt (Brabant wallon, Brombais 1036, Brumbays 1073); Bierbais à Hévilliers (Brabant wallon, Birbais , Bierbais 1155), Corbais, Thorembais, Opprebais, etc.

On trouve aussi Rebaix (Hainaut, Rosbais 1119) qui procède de l'archétype *Rauzbaki « ruisseau aux roseaux », de rauz > ros, roseau (du diminutif rosel) en ancien français. Il s'est répandu en Belgique romane et germanique, ainsi qu'en France du nord. Il a pour homonyme Rebais (Île-de-France, Resbaci 635); Roubaix (Nord, Villa Rusbaci ); Rebets (Normandie, Rosbacium 854), etc. On le voit bien, ce toponyme s'est diffusé au-delà de la zone des parlers germaniques proprement dite.

Dans la zone de fluctuation et de recul du parler flamand, l'élément *baki n'a pas évolué de la même manière, puisque la forme néerlandaise est (anciennement Rosbeke), aussi ne trouve-t-on qu'une graphie et une phonétique partiellement romanisée, comme en témoigne Rebecq (Brabant wallon, Rosbacem 877), homonyme de Rebecques (Nord-Pas-de-Calais, Resbeca 1084). On découvre en outre, de nombreux toponymes contenant l'élément -becq : Hellebecq, Gibecq ou Wisbecq, comparables aux -becque(s) du Nord de la France dans l'ancienne zone des parlers flamands.

François de Beaurepaire signale un autre type toponymiqueLes noms des communes et anciennes paroisses de la Manche, éditions Picard 1986.: *Hambakia (forme féminine, cf. nom en -baise) qu'on retrouve en Belgique Hembeke (Zwalm, Heembeke 858), Hembise (Cambron-Saint-Vincent) et à diverses reprises en France sous les formes Hambais (Maine) et Hambye (Normandie, Hambeya 1027).

L'origine de la variante -bise (cf. Tubize, Thobacem 877 ou Jurbise), est controverséeBernard Roobaert, hydronymes et toponymes dérivés de la Région d'Enghien à Tubize, in Annales du cercle d'histoire Enghien Brabant t. 1 1999 - 2000.. Louis GuinetLes emprunts gallo-roman au germanique du Ier à la fin du , Klincksieck 1982. y voit dans certains cas une évolution à partir de la forme frisonne *bitzi. Quant à l'élément ham, il peut vouloir dire dans certains cas « courbe », « méandre d'une rivière », d'où « pâturage au bord d'un ruisseau », terme germanique parallèle au celtique cambo [?], que l'on retrouve dans de nombreux toponymes. Ce sens correspondrait bien à son association au terme *baki. Un composé romano-germanique existe à partir de ce même appellatif *Baki-ivu(m) > Bacivum, dérivé analogique inspiré du latin rivu(m) et qui a donné Baisieux (Basiu 1189) et Baisy (Basciu 1018), homonymes des Baisieux, Bajus, Bézu du Nord de la France.

Les ruisseaux étaient jadis des limites entre des propriétés, des provinces ou des pagi, ainsi la Marcq (du germanique *marka, limite, marche) est-elle un cours d'eau qui a donné son nom au village, tout en conservant son hydronyme d'origine, ce qui n'est pas toujours le cas. Parfois, seul un toponyme conserve le nom ancien d'une rivière (cf. Hambye, France, cf. ci-dessus. À noter la présence du château de Marcambye sur la même commune de *Marka *hambaki).

Schoten (province d'Anvers, Scote 868) a pour homonyme Schoten une ancienne commune des Pays-Bas et remonterait selon GysselingToponymisch woordenboek van Belgie, Nederlands, Luxemburg, Noord Frankrijk en West Duitsland (voor 1226), Tongres 1960., au germanique skauti, hauteur, terme également représenté au Luxembourg Schoos, en Normandie : Écots (Calvados, Escotum ) ou Écos (Eure, Scoht; Scoz 1060), etc.

Éléments flamands kerk « église » -zele « maison » double suffixe -ing-hem