"Frank" is a nickname for "Francis", which is the English translation of "Franz".
Technically, the most correct way to refer to him in English is "Francis Kafka". "Frank Kafka", while not ideal, is still better than leaving "Franz", which is very easily translatable, untranslated.
It's really a shame that Anglicization, and localization of names in general, has become less common. "King John Charles" just sounds better and more natural in English than "King Juan Carlos".
Heck, I still say "Nicholas Machiavell", "James Chirac", "Henry Dandolo", "Joseph Garibald", "Peking", "Leghorn", "Bombay", "Cambay", "Dacca", "Calcutta", "Cawnpore", "Pampeluna", "Lyons" (1), "Koenigsberg" (2), "Porto Rico", "Lapps", "Gypsies" "Thaddeus Cosciusco", and "Rhodesia", instead of "Niccolò Machiavelli", "Jacques Chirac", "Enrico Dandolo", "Giuseppe Garibaldi", "Beijing", "Livorno", "Mumbai", "Khambhat", "Dhaka", "Kolkata", "Kanpur", "Pamplona", "Lyon", "Kaliningrad", "Puerto Rico", "Sami", "Romany" "Tadeusz Kościuszko", and "Zimbabwe".
All of the names that I prefer sound and look better and less out of place in English than their foreign counterparts.
And yes, if I ever visit a Spanish-speaking country, I will introduce myself as Roberto.
I hold the same principle when it comes to immigrants. If you are Polish, and named "Ryszard Kościuszko", you should change your name to "Richard Cosciusco" if you move to the USA.
Same for a Mexican named "José Pablo García". If they come to the US, they should become "Joseph Paul Garcia".
A German named "Heinrich Wilhelm Nonnenmacher" should become "Henry William Nunemaker" if he ever moves to the USA.
A Dutchman called "Johan Frederik Bruyn" should become "John Frederick Brown" in America, and "Juan Federico Brun" in Mexico.
Yes, I recognize that some surnames don't have Anglicizations. I in general don't like just literally translating surnames "Kowalski" to "Smith" for example.
Some surnames, however, do have established Anglicizations. Some of these are direct translations. ("Bruyn" to "Brown" or "Schmidt" to "Smith") Some are phonetic. ("Nonnenmacher", which literally means "castrator of pigs" to "Nunemaker", or "Mac Gabhann", which literally means "son of the smith" to McGowan) If your foreign surname has a conventional Anglicization, the Anglicization should be used in English. If not, a form without any foreign letters or diacritics should be used.
These same principles should apply to all languages.
It just makes more sense to translate given names like any other word.