The purpose to create this page was to seek help in identification of the first two keyboards shown here, but it will hopefully develop into a collection of all international C128 keyboards ever released. Just a good picture of the Swedish/Finnish version seems to be missing now!
About the history of the two keyboards: I aquired both as Spanish keyboards from TKS-Computer, and I believe this is true for one of them. The other one looks like a French keyboard, but according to Martijn van Buul, a real French keyboard has the AZERTY layout, and not the QZERTY one as found here. The existence of the "Í" character seems to indicate that it is an Italian keyboard. This has been confirmed by Guiseppe Liuzzo, who owns an Italian C128D with such a keyboard.
Most of the language specific firmware can be found in the Funet archive. Each keyboard layout needs the proper Kernal ROM chip to produce the correct codes, and a character ROM that contains the character images. It turned out that the Italian and French/Belgian localizations use the same character ROM, but a different keyboard layout and Kernal ROM. Each localized ROM set exists in two versions, the original version from 1985 and the updated version from 1986 (this date is displayed on the C128 start screen). The 1985 version is usually found in C128 and plastic C128D computers, while the updated version came preinstalled in the metal C128DCR computer. If you own a computer with a ROM set that is not available for download yet, please contact me if you want to contribute these to the archive. Of course you need a way to transfer the files you saved on your machine to me via email. Here are instructions how to create a file with all the necessary data.
One last note about the pictures: Most were taken by simply putting the keyboard onto a flatbed scanner, therefore the function key and numeric keypad area is missing, but it is the same on all keyboards anyways.
So here is the Spanish keyboard: (click to enlarge)
And here the Italian one: (click to enlarge)
The most recent addition is the Norwegian keyboard, owned by Erlend Pettersen, who also kindly sent me this picture:
Here is a German keyboard, owned by myself. I have plenty of them :-)
US Keyboard. It is from my own NTSC C128 machine.
Belgian/French keyboard: This picture was sent to me by Raf Hofmans from Belgium. Thank you very much!
And as a last minute addition, here is a link to Peter Karlsson's C128DCR
picture page. There is a good close-up picture of a Swedish
keyboard.
He kindly allowed me to include his pictures on my page. Thanks Peter!
Here is something that I never thought would exist: A Swiss-German
keyboard for the C128D! The pictures were taken from a plastic 128D by
Klaus Mandelatz. Some people might remember his name, because he
designed IEEE488 interfaces for the C64 and C128. His articles with
plans got published in German c't and 64'er magazines. Actually I
ordered one of those PCBs back in 1986 :-)

more pictures: keyboard complete view
(300kB) C128D inside view (288kB)
One file method:
Enter the built in machine language monitor with the MONITOR
command.
Now press the CAPS LOCK (or ASCII/DIN, ASCII/CC) key on your keyboard
to
activate the language specific character set and save the whole ROM
with
this command (use a string with up to 12 characters instead of NAME to
describe your machine, e.g. SPAIN1985):
S"ROM.NAME",08,E4000,EFFFF
and then exit the monitor with the X command.
Separate file method:
Enter the built in machine language monitor with the MONITOR
command.
Now press the CAPS LOCK (or ASCII/DIN, ASCII/CC) key on your keyboard
to
activate the language specific character set and save the ROM parts
with
these commands:
S"BAS.NAME",08,E4000,EC000
S"EDT.NAME",08,EC000,ED000
S"CHR.NAME",08,ED000,EE000
S"KRN.NAME",08,EE000,EFFFF
and then exit the monitor with the X command.
Both methods have one drawback in common: They will not save the last byte of the kernal, which contains the high byte of the interrupt vector. But since this is the same on all C128 versions ($FF), I can add it easily when preparing the files for upload to funet. The BASIC part is actually not language specific, but it makes it easy for me to verify if the version is from 1985 or 1986. If you want to open up your machine, I'd be very interested in the part numbers that are written on the ROM chips (U18, U32-U35 in the C128/C128D, the C128DCR doesn't have U33 and U34).