A lot of people tend to equate language and race. There is certainly a rather strong positive correlation between both but certainly not an equivalence. For example Hungarians are racially very different from Finns despite speaking a related language. One can also look at the Irish who switched from being Celtic speakers to being Germanic speakers during the 19th century without a racial switch happening in the meantime.

There are two main phenomena explaining a linguistic switch:
(1) Conquest by a migratory people. When the migratory people isn't numerous enough then it's the conquerors who are assimilated by the conquered and the linguistic switch doesn't occur (see France and Normandy).
(2) Assimilation by a pre-existing civilized country.

(1) does alter the racial composition of the conquered people, (2) only marginally alters it.
(1) is the main phenomenon explaining linguistic switches during the Antiquity whereas (2) is the main phenomenon respecting the modern period.
(1) replaces most of the pre-existing toponyms with toponyms in the new language whereas (2) does not.

--------------------------------------- The example of Alsace and Northeastern France.

Alsace - like the rest of France - was inhabited by the Celtic speaking Gauls before it was conquered by the Roman Empire. At the fall of the Roman Empire, the Germanic people expanded into Alsace, Western Germany and Flanders through conquest and migration. I made a map of toponyms of Northeastern France.



We can see that: 1. in Alsace the Celtic toponyms disappeared and 2. in the rest of Northeastern France the Celtic toponyms survived and in fact they're still the majority among county capitals. This is I think because Northeastern France was romanized through (2) whereas Alsace was germanized through (1).