Find one letter on the sign that only one language uses, and the country follows from it. If nothing on the sign is unique, read the word for street or pharmacy instead, because those differ even between languages that share every single letter.
This page covers Latin script only. For Cyrillic, Greek, Arabic, Devanagari, Thai, Chinese, Japanese or Korean, start with how to tell scripts apart. For the rest of the photo, work from how to guess a country from a photo.
Start here: letters only one language uses
Scan for these first. Each is a giveaway among the languages compared here.
| Letter or pattern | Language | Points to |
|---|---|---|
| ß | German | Germany, Austria (Swiss and Liechtenstein German write ss instead) |
| þ | Icelandic | Iceland |
| ð with no þ anywhere | Faroese | Faroe Islands |
| ə | Azerbaijani | Azerbaijan |
| ł and ź | Polish | Poland |
| ř and ů | Czech | Czech Republic |
| ľ, ĺ, ŕ, ô | Slovak | Slovakia |
| ő and ű (double acute) | Hungarian | Hungary |
| ș and ț (comma below) with ă | Romanian | Romania, Moldova |
| ħ, ġ, ċ | Maltese | Malta |
| ơ and ư (horned vowels) | Vietnamese | Vietnam |
| ŵ and ŷ | Welsh | Wales |
| ė | Lithuanian | Lithuania |
| ģ, ķ, ļ, ņ | Latvian | Latvia |
| l·l (raised dot between two l) | Catalan | Catalonia, Valencia, the Balearics, Andorra |
| œ | French | France, Belgium, Switzerland, Quebec |
| ¿ and ¡ opening a sentence | Spanish | Spain and Spanish America |
| oʻ and gʻ | Uzbek | Uzbekistan |
| ä, ň, ý and ž all on one sign | Turkmen | Turkmenistan |
| g̃ | Guarani | Paraguay |
| ij written and capitalised as one unit | Dutch | Netherlands, Flanders |
Letters that look decisive but are not
Most diacritics are shared. Treat these as narrowing the field, never as closing it.
| Letter | Shared by | What splits them |
|---|---|---|
| ç | French, Portuguese, Catalan, Albanian, Turkish, Azerbaijani, Turkmen | look for ã õ (Portuguese), ı ş ğ (Turkish), ë (Albanian), l·l (Catalan) |
| ö and ü | German, Turkish, Hungarian, Estonian, Azerbaijani, Turkmen, Icelandic (ö only) | ß means German, ı means Turkish or Azerbaijani, ő means Hungarian, õ means Estonian, þ means Icelandic |
| ä | German, Swedish, Finnish, Estonian, Slovak, Turkmen | å (Swedish), õ (Estonian), ô ľ (Slovak) |
| å | Danish, Norwegian, Swedish | æ ø means Danish or Norwegian, ä ö means Swedish |
| š, ž, č | Czech, Slovak, Slovene, Croatian, Bosnian, Serbian, Latvian, Lithuanian, Estonian, Turkmen | the unique letters in the table above |
| ć | Polish, Croatian, Bosnian, Serbian, Montenegrin | ł and ę mean Polish |
| đ | Croatian, Bosnian, Serbian, Montenegrin, Vietnamese | tone marks stacked on vowels mean Vietnamese |
| ñ | Spanish, Galician, Basque, Asturian, Filipino, Guarani | ¿ ¡ mean Spanish, ng and mostly English signage mean Filipino |
| ë | Albanian, French, Dutch | Albanian puts ë at the end of ordinary words, the others use it only inside a handful of them |
| õ | Estonian, Portuguese, Vietnamese | ä ö ü with it means Estonian |
| ı (dotless) and İ | Turkish, Azerbaijani, Kazakh Latin | ə means Azerbaijani |

Iberian and Romance
Spanish is the easiest to confirm: ñ plus an opening ¿ or ¡. Those opening marks are near enough exclusive, though Asturian and a few other languages with Spanish cultural ties use them, and casual signage often drops them.
Portuguese is the one with tildes on vowels: ã and õ, and above all the ending -ção. Portuguese never uses ñ. Both languages use ç, so ç alone does not separate Portugal from France or Catalonia.
Catalan adds two things nothing else here has: the raised dot in l·l, and both grave and acute accents on the same vowel set (à è é í ò ó ú). French gives itself away with œ in cœur and sœur, with the -eau ending, and with è and ê carrying most of the accent load.
Italian is identifiable by absence. The native alphabet has 21 letters, so j, k, w, x and y appear only in brands and loanwords, accents fall almost only on a final stressed vowel (città, caffè, perché), and doubled consonants are everywhere.
Romanian is the outlier: ă, â and î, plus ș and ț. Those last two take a comma below, not a cedilla, but older signs and older fonts still show ş and ţ with cedillas, so a cedilla is not evidence against Romanian.
| Language | Street word | Pharmacy |
|---|---|---|
| Spanish | calle | farmacia |
| Portuguese | rua | farmácia |
| Catalan | carrer | farmàcia |
| French | rue | pharmacie |
| Italian | via | farmacia |
| Romanian | stradă | farmacie |
Germanic and Nordic
German is settled by ß, used in no other current language, and replaced by ss in Switzerland and Liechtenstein. So ß means Germany or Austria; a German sign without ß tells you nothing about which of the three it is.
Dutch has no unique diacritic, so use ij, which behaves as a single unit and capitalises as IJ at the start of a word (IJsselmeer). Doubled vowels in aa, ee and oo are the second tell. Afrikaans writes y where Dutch writes ij, so ij rules Afrikaans out.
The Nordic split is a two-step. æ and ø means Denmark, Norway or the Faroes. ä and ö with å means Sweden. ä and ö with no å in ordinary words means Finland: Finnish keeps å only for Swedish names, and packs length into doubled letters (kauppa, tie, Suomi). Finnish is not Germanic, but it belongs in this comparison because its sign letters overlap with Swedish ones so heavily.
Icelandic is the only one here with þ. Faroese has ð but never þ, and ð never starts a Faroese word.

| Language | Street | Road | Closed |
|---|---|---|---|
| Danish | gade | vej | lukket |
| Norwegian (Bokmål) | gate | vei | stengt |
| Swedish | gata | väg | stängt |
| Icelandic | gata, stræti | vegur | |
| Finnish | katu | tie | kiinni |
| German | Straße | Straße | geschlossen |
| Dutch | straat | weg | gesloten |
Finnic and Baltic
Estonian is Finnic like Finnish, but it has õ, which Finnish does not, alongside ä, ö and ü. All four on one sign means Estonian. It doubles letters for length too, so aa, ee and uu are common.
Latvian and Lithuanian look similar from a distance and share nothing important. Latvian marks long vowels with macrons (ā, ē, ī, ū) and palatalisation with a comma below (ģ, ķ, ļ, ņ). Lithuanian has no macron except ū, and uses ogoneks instead: ą, ę, į, ų, plus ė, which no other language here uses. Lithuanian uses y as a full vowel; Latvian has no y at all.
| Language | Street | Pharmacy | Open, closed |
|---|---|---|---|
| Estonian | tänav | apteek | avatud, suletud |
| Latvian | iela | aptieka | |
| Lithuanian | gatvė | vaistinė | |
| Finnish | katu | apteekki | auki, kiinni |
Central and Eastern Europe
Polish is unmistakable: ł, ą, ę, ż, ź, ś, ć, ń and ó together. If only one is visible, ł and ź are the safest, because ą and ę are shared with Lithuanian and ć with Croatian and Serbian.
Czech and Slovak are the classic confusion. Czech has ř, ě and ů; Slovak has none of the three. Slovak has ľ, ĺ, ŕ, ô and ä; Czech has none of those five. Everything else (č, š, ž, ň, ť, á, í, ý) is shared, so hunt specifically for one of those eight letters.
Hungarian is settled by the double acute on ő and ű, backed by the digraphs gy, sz, cs, zs, ny and ty, and by utca on almost every corner.
Croatian, Bosnian, Serbian and Montenegrin share one Latin alphabet: č, ć, đ, š, ž plus dž, lj and nj. Slovene uses the same script minus ć and đ, so a Slovene sign shows only č, š and ž. Serbia also uses Cyrillic officially, so either script is normal there.
Albanian has exactly two diacritic letters, ë and ç, and a long list of digraphs including xh, which no other language here uses. Word-final ë (rrugë, shtëpi) is the fastest tell.

| Language | Street | Pharmacy | Closed |
|---|---|---|---|
| Polish | ulica | apteka | zamknięte |
| Czech | ulice | lékárna | zavřeno |
| Slovak | ulica | lekáreň | zatvorené |
| Hungarian | utca | gyógyszertár, patika | zárva |
| Croatian | ulica | ljekarna | zatvoreno |
| Slovene | ulica | lekarna | zaprto |
| Albanian | rrugë | farmaci, barnatore |
Turkic
Turkey is easy once you spot the dotless ı and the dotted capital İ, together with ç, ğ, ö, ş and ü. Turkish has no q, w or x in native words. The pharmacy word eczane is a one-word confirmation, and street signs use cadde for an avenue and sokak for a smaller street.
Azerbaijani uses the same alphabet plus three letters Turkish lacks: ə, x and q. The schwa ə is common enough that any sign longer than a few words should show one. Azerbaijani also writes pharmacy as aptek, not eczane.
Uzbek Latin uses no diacritics. Instead it has oʻ and gʻ, an o and a g followed by a raised turned comma, plus the digraphs sh, ch and ng. Cyrillic is still widely visible in Uzbekistan, and a planned reform would replace the apostrophe forms with accented letters, so expect more than one style for years.
Turkmen Latin combines ä, ň, ý and ž, a set no other language here uses together, though Cyrillic remains common in Turkmenistan.
Kazakhstan is the trap. A Latin alphabet was approved in 2021, but the target has slipped to 2031 and Cyrillic is still the everyday script, so treat Latin Kazakh as unlikely unless the sign is very new.
Beyond Europe
Vietnamese is the most visually distinctive Latin orthography anywhere: ơ, ư and đ, plus five tone marks that stack on vowels already carrying a mark (nhất, tiếng). The street word is đường, often shortened to Đ. Vietnamese does not use f, j, w or z.
Indonesian and Malay are the hardest pair here, because neither uses diacritics and both write jalan for street. Use vocabulary: Indonesian writes rumah sakit for hospital and kantor pos for post office, while Malaysian Malay writes hospital and pejabat pos. Shops are toko in Indonesia, kedai in Malaysia. Pharmacy is apotek against farmasi. Company names carry PT before the name in Indonesia and Sdn Bhd after it in Malaysia. Malaysian signs often carry Jawi, an Arabic-script version of Malay, alongside the Latin one; Indonesian signs do not.
Filipino uses ñ and the digraph ng in an otherwise English-looking alphabet, with tindahan for shop and kalye or daan for street, though much Philippine signage is simply in English.
Swahili uses no diacritics and no q or x, with the digraphs ch, sh, ny and ngʼ. Look for duka (shop), barabara (road) and the noun prefixes ki-, vi-, wa- and m-. It is official in Tanzania, Kenya, Uganda and Rwanda.
Maltese is the only Latin alphabet with ħ, paired with ġ, ċ and ż plus the digraph għ. Street is triq, shop is ħanut.
Welsh has the circumflex on ŵ and ŷ, the digraphs ll, dd, ff and rh, and no native k, q, v, x or z; street is stryd or heol. Irish uses the fada on á, é, í, ó and ú, the lenition digraphs bh, mh, ch and th, and sráid for street, with none of j, k, q, v, w, x, y or z.
Hawaiian has 13 letters, the okina ʻ as a consonant and macrons for long vowels. Māori uses the same macrons but no okina, plus the digraphs wh and ng. Guarani, co-official in Paraguay, is the only language here with g̃, alongside ñ and the nasal vowels ã ẽ ĩ õ ũ ỹ.

Common mix-ups
Denmark vs Norway. Identical alphabets, so use words. Danish keeps soft b, d and g where Norwegian Bokmål has p, t and k: gade, mad and bog against gate, mat and bok. Danish writes ej where Norwegian writes ei: vej against vei. On a shop door, lukket against stengt.
Czech vs Slovak. Look for ř, ě or ů (Czech) against ľ, ĺ, ŕ, ô or ä (Slovak). The pharmacy word also splits them cleanly: lékárna against lekáreň.
Spanish vs Portuguese. ñ and the opening ¿ or ¡ mean Spanish; ã, õ and -ção mean Portuguese. Spanish calle against Portuguese rua.
Latvian vs Lithuanian. Macrons and commas below (ā, ģ) mean Latvian; ogoneks and ė (ą, ė) mean Lithuanian. Latvian iela against Lithuanian gatvė.
Croatian vs Slovene. ć or đ means Croatian, Bosnian, Serbian or Montenegrin; only č, š and ž means Slovene. Pharmacy is ljekarna against lekarna.
Turkish vs Azerbaijani. ə, x or q means Azerbaijani. Without them, assume Turkish.
Indonesian vs Malay. Jawi script alongside the Latin, hospital, pejabat and kedai mean Malaysia; rumah sakit, kantor and toko mean Indonesia.
When letters lie
Brand names, imported packaging and restaurant signs use whatever letters they like, so one shopfront reading Café or Straße proves nothing. Near borders you will often see two languages on the same pole, and the smaller one may be the local one. Loanwords import foreign letters into alphabets that otherwise reject them, old signs predate spelling reforms, and fonts substitute lookalike characters, especially the Romanian comma below.
Read a long sentence of ordinary words rather than a stylised logo. Then confirm with something non-textual: the countries that drive on the left list settles a large part of the map in one glance.

Practice
Open a free guest round at /try and give yourself one job per photo: find the text, then find the one letter only one language uses. If there is no unique letter, fall back to the street word. Every country page also has its own round, for example Poland, Turkey or Vietnam, which is the quickest way to drill a single alphabet until its letters are automatic.