Saying Happy Birthday Across Borders
When I run localization batches for international teams, one of the most common requests I get is simply how to say "Happy Birthday" in various languages. It sounds trivial until you actually have to fill out a spreadsheet with twenty languages and someone checks your work. Most people assume it's straightforward translation. It isn't always. The core issue isn't vocabulary — it's that several languages have formal and informal registers, gender agreement, and in some cases, completely different phrasing depending on who's speaking to whom. If you just drop a phrase through a free translator and copy-paste it into a system, you'll get embarrassing results about half the time.
Happy Birthday In Different Languages — A Practical Guide
Here's the working list I keep on hand. Not a full linguistic survey, but the ones I actually need. Spanish (Spain): Feliz cumpleaños
Spanish (Mexico): Feliz cumpleaños
French: Joyeux anniversaire
German: Alles Gute zum Geburtstag
Italian: Buon compleanno
Portuguese (Brazil): Feliz aniversário
Portuguese (Portugal): Feliz aniversário
Dutch: Gefeliciteerd / Veel geluk met je verjaardag
Swedish: Grattis på födelsedagen
Norwegian: Gratulerer med dagen
Danish: Tillykke med fødselsdagen
Polish: Wszystkiego najlepszego z okazji urodzin
Japanese: (Otanjoubi omedetou)
Korean: (Saengil chukhaheyo)
Mandarin Chinese: (Shēngrì kuàilè)
Arabic: (Eid milad sa'eed)
Hindi: (Janamdin ki shubhkamnayein)
Turkish: Doğum günün kutlu olsun
Greek: (Chronia polla) — note: this means "many years," not a literal birthday phrase
Russian: (S dnyom rozhdeniya)
Thai: (Suk san wan koet)
Vietnamese: Chúc mng sinh nht
Hungarian: Sokáig éljen!
Czech: Všechno nejlepší k narozeninám
Hebrew: (Yom huledet sameach) That last entry — Greek — is where I learned to slow down. I once shipped a localized email campaign with "Happy Birthday" translated as "Chronia Polla" across all Slavic and Southern European contacts, assuming it covered everything. The Greek team corrected me. Not because the phrase was wrong — it's the standard birthday greeting — but because my system also applied it to Serbian and Croatian contacts where it was completely unintelligible. Those languages use their own variants, and I had a single fallback string mapped to Greek for six languages. Patched it in under ten minutes after I stopped assuming one translation could cover a region.
Here are the things people miss: Formal vs informal matters more than you think. In Japanese, "Otanjoubi omedetou gozaimasu" is the polite form. The casual version drops "gozaimasu." Use the polite form with anyone you don't know well. In Korean, the same distinction exists with "-yo" endings. If your product serves both B2C and B2B, you'll need two localization strings, not one. Some languages don't literally say "birthday." Turkish says "May your birthday be blessed." Hungarian uses "Live many years!" instead of any birthday-specific word. Greek literally means "many years." These aren't quirks — they're standard. Don't try to force a literal translation where the culture doesn't use one.
Get the Full Details

Gender agreement breaks things. In French, "Joyeux anniversaire" is technically masculine. For a female recipient, some localization guides recommend "Joyeuse anniversaire," though in practice most French speakers use the same phrase regardless. Still, if you're building a system that targets formal French-speaking markets, having both variants available is the safe play. For practical use, I keep a JSON file with language codes as keys and the greeting as values. Something like: {"es": "Feliz cumpleaños", "fr": "Joyeux anniversaire", "de": "Alles Gute zum Geburtstag", ...}
I pull from there instead of hardcoding. When a new language request comes in, I add the key-value pair and update the UI. Done. Takes about three minutes per language if the string is simple. One more thing worth noting: date format localization. Some of these greetings only make sense when the date itself is localized. A German "Alles Gute zum Geburtstag" paired with an American MM/DD/YYYY date looks sloppy. Match the date format to the locale, not the greeting. If you need a downloadable reference, I've uploaded the JSON to my public repo. Search for "birthday-greetings-i18n" on my profile. The file updates occasionally when someone submits a correction or a variant I hadn't accounted for.
The list above covers the languages I actually deal with. If you need something niche — Icelandic, Georgian, Khmer — those require separate verification. Machine-translated birthday greetings in low-resource languages tend to produce phrases that are grammatically correct but culturally off. I've seen "Happy Day of Birth" used in a few contexts where the natural phrasing would have been entirely different. Verify before you ship.
