The german language can be tricky. Also when it comes to naming beerstyles. You named the style “Doppelbock” right - the name of the style is one word, composed of the parts ‘doppel’ and ‘Bock’. However, you made a mistake. You named a beerstyle “Weizen Bock”, even though it should be named “Weizenbock”.
“Heller Bock” is a beerstyle that is named correctly. It is made up of an adjective and a noun which are never combined in the German language. However, in the case of weizen and Bock, they should be combined, and a single new word should be created, if you want to be faithful to German grammar - as you were in the case of “Doppelbock”.
We should definitely debate this for weeks and go round and round with purists saying combining words is just a fad of the German language, while thousands of brewers make one word weizenbocks, and people who simply don’t like words longer than 7 letters try to prevent its creation, only for nothing to be done anyways.
both English and French do not have flexion of the adjective in this case, and they also do not merge nouns with specifying words, so I suppose “double bock” and “bock double” are the respective translations. In this case, the “double” is indeed an adjective, but the German adjective would be “doppelt”, not “doppel”. “doppel” only makes sense when merged with a noun.