---
title: "TYPO3: All Countries in Any Language, Integrated Seamlessly"
url: "https://b13.com/knowledge/unlocking-a-world-of-country-information"
description: "TYPO3 simplifies working with country lists by including a comprehensive Country API out-of-the-box, sourced from authoritative UN data. Say goodbye to third-party extensions and enjoy up-to-date, localized country lists in any language.
"
image: "https://b13.com/fileadmin/_processed_/d/7/csm_CountryDropdownViewHelper_Sharing_f29f8aced6.png"
date: 2025-03-21
modified: 2026-08-19
lastUpdated: 2026-08-19
---

# TYPO3: All Countries in Any Language, Integrated Seamlessly

[ TYPO3 ](https://b13.com/knowledge/typo3) [ Open Source ](https://b13.com/knowledge/open-source) [ Core-Development ](https://b13.com/knowledge/core-development) [ TYPO3 v12 ](https://b13.com/knowledge/typo3-v12)

 Unlocking a world of country information
==========================================

 Effortless integration of multilingual country lists into your TYPO3 project

![](https://b13.com/fileadmin/_processed_/c/6/csm_benni_5e519221c4.jpg)Benni Mack

  21 March 2025

 [ RSS Feed ](https://b13.com/rss.xml)

Since the early days of TYPO3, creating a simple list of countries has been an ever-present use case—most commonly for designing contact forms, or extension authors building out a user registration process.

Including a list of countries in any kind of frontend form required an integration to TYPO3’s own form framework (covered via the extension [Form Country Select](https://extensions.typo3.org/extension/form_country_select)), or an integration to the powermail extension ([Powermail Country Viewhelper](https://extensions.typo3.org/extension/reint_powermail_country)).

Before TYPO3 v12, a useful extension called “[Static Info Tables](https://extensions.typo3.org/extension/static_info_tables)“ was available. This extension provides a statically available database table containing a list of all countries and other static information, such as a list of all languages or currencies. This extension has been around for about 20 years and has always been compatible with the latest version of TYPO3.

  Unfortunately, the extension has a few downsides:

- Information was only available with the English name (for example, “Switzerland” and not “Schweiz” as for the Suisse users)
- The data was stored in a database, so a database query was needed every time a user selected a country from a form.

The first obstacle has been overcome with additions to the extension, usually with a suffix such as “*static\_info\_tables\_da*“ for the Danish translations of this list. However, those additions were not always as up-to-date as the main extension.

The second point was related to the conceptual functionality of the system and was based on historical reasons. The list of installed extension data was not subject to any changes, so there was no need to keep the database busy with such information. After all, there are more elegant ways to retrieve this data.

TYPO3 v12 addressed all of these issues by including this functionality in Core, using the [Country API](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Country/Index.html#country-api) to retrieve a full list of up-to-date countries.

  To learn more about the latest version of TYPO3 and how to upgrade your installation, contact us.

 [ Contact Us ](https://b13.com/services/typo3-upgrade)

   How TYPO3 retrieves the list of countries
-------------------------------------------

TYPO3 Core contributors have made an effort to analyze various existing open-source solutions on where to find the “official list” of countries. It is not such a simple task because country names themselves aren’t static. For example, [the country of Turkey changed its official English name to Türkiye](https://en.wikipedia.org/wiki/Turkey#Name) in 2022.

The widely known Debian Linux open-source project provides an [up-to-date list of all countries](https://salsa.debian.org/iso-codes-team/iso-codes), their full names, and their official English names as defined by the United Nations and the [ISO standard ISO 31–664](https://www.iso.org/iso-3166-country-codes.html). Fortunately, this list is also available in JSON format and provided by a PHP wrapper as a Composer package called “[sokil/php-isocodes-db-i18n](https://packagist.org/packages/sokil/php-isocodes-db-i18n)“. In addition, this package ships not just the English version but also all names and official names in various languages—including all the officially supported languages (50+) of TYPO3 Core.

Instead of shipping this JSON format package for every project, TYPO3 only requires this package in the mono-repository, and transforms the JSON file into a complete PHP class—which is thus optimized by PHP’s runtime and can be cached natively by PHP. All translations are then added as XLF files, so TYPO3’s regular behavior for translating strings is taken into account. Functionality, such as overriding XLF files (just like any other XLF file), can be applied, and the correct translation is connected to the selected Site Language in TYPO3’s frontend or the backend users‘ selected language in TYPO3’s backend.

A continuous integration job checks for updates of this package regularly, so **TYPO3 Core always ships with the full list of all countries as defined by the United Nations**.

   How to use the Country API in extensions
------------------------------------------

For extension authors, the[ Country API](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Country/Index.html#country-api) is as simple as it can get.

There is a single entry point:

  ```
1<br></br>2<br></br>3<br></br>4<br></br>5<br></br>6<br></br>7<br></br>8<br></br>9<br></br>10<br></br>11<br></br>12<br></br>13<br></br>14<br></br>
```

```
$provider = <span class="hljs-keyword">new</span> \TYPO3\CMS\Core\Country\CountryProvider();<br></br><br></br><span class="hljs-comment">// get a list of all countries</span><br></br>$allCountries = $provider->getAll();<br></br><br></br><span class="hljs-comment">// get information about a specific country</span><br></br>$switzerland = $provider->getByIsoCode(<span class="hljs-string">'CH'</span>);<br></br>$switzerland->getName(); <span class="hljs-comment">// Switzerland</span><br></br>$switzerland->getOfficialName(); <span class="hljs-comment">// Swiss Confederation</span><br></br><br></br><span class="hljs-comment">// And use the LanguageService to use a localized version</span><br></br>$languageService = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Localization\LanguageServiceFactory::class)->create(<span class="hljs-string">'de-CH'</span>);<br></br>$languageService->sL($switzerland->getLocalizedNameLabel()); <span class="hljs-comment">// Schweiz</span><br></br><br></br>
```

  There are ways to filter the full list down to only a specific selection, which is handy for creating your country dropdowns, but we will get to that differently.

**But note**: Make sure the language and country codes are copied correctly when adding them to TYPO3.

   A native Fluid ViewHelper
---------------------------

Most use cases are on a Fluid-level in Extbase extensions. A new ViewHelper `<f:form.countrySelect>` has been added:

  ```
1<br></br>2<br></br>3<br></br>4<br></br>5<br></br>6<br></br>7<br></br>
```

```
<f:form.countrySelect<br></br>    <span class="hljs-attribute">name</span>=<span class="hljs-string">"country"</span><br></br>    <span class="hljs-attribute">value</span>=<span class="hljs-string">"CH"</span><br></br>    <span class="hljs-attribute">sortByOptionLabel</span>=<span class="hljs-string">"true"</span><br></br>    <span class="hljs-attribute">prioritizedCountries</span>=<span class="hljs-string">"{0: 'DE', 1: 'AT', 2: 'CH'}"</span><br></br>    <span class="hljs-attribute">excludeCountries</span>=<span class="hljs-string">"{0: 'IR'}"</span>       <br></br>/><br></br>
```

  This ViewHelper uses the Country API and provides a `<select>` HTML element with a list of all countries but shows Germany, Austria, and Switzerland on the very top, with Switzerland being preselected. A list of countries can also be removed from the selection. The label within the select options for each country is automatically localized in the currently used site language.

   Form Framework: Country Select
--------------------------------

The [Form Framework](https://docs.typo3.org/c/typo3/cms-form/main/en-us/) ships with a new Country Select element, which editors can now use to create a dropdown with the same options as the ViewHelper.

  ![Screenshot of "New Element Wizard" for Form Framework highlighting the "Country Select" option](https://b13.com/fileadmin/_processed_/c/2/csm_screenshot-form-new-element-wizard_35c198d274.webp)  Using the "Country Select" element within TYPO3's Form Framework

  ![Screenshot showing the configuration options for a Country Select element.](https://b13.com/fileadmin/_processed_/1/1/csm_configuration-for-country-select-in-form-framework_5a7b04ff09.webp)  Configuring the Country Select element.

   TYPO3: An easier way for recurring challenges
-----------------------------------------------

Instead of dealing with an infinite amount of additional extensions for a simple selection of countries, TYPO3 offers this functionality out-of-the-box, in a standardized and robust way, without any compromises to performance—by just using PHP and the XLF translation files.

Of course, some existing extensions for country lists, such as “[static\_info\_tables](https://extensions.typo3.org/extension/static_info_tables),“ are not rendered obsolete because they offer flexibility and lists of static data that cater to some use cases. But TYPO3 now makes life a bit easier—for new projects or when estimating an upgrade to avoid many third-party extensions.

  Want to know more about the latest TYPO3 version? Need help while upgrading? Contact us!

 [ Contact us! ](https://b13.com/lets-connect)

  ####  Additional resources:

- Changelog v12.2 Feature #99618 - [List of countries in the world and their localized names](https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/12.2/Feature-99618-ListOfCountriesInTheWorldAndTheirLocalizedNames.html)
- Changelog v12.3 Feature #99735 - [New Country Select form element](https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/12.3/Feature-99735-NewCountrySelectFormElement.html)

  ###  Written by:

 ![Bild von Benni Mack](https://b13.com/fileadmin/_processed_/c/6/csm_benni_66cce9a81f.webp)

b13 co-founder and TYPO3 CMS Core Development Lead, Benni Mack, heads our technical practices, setup and maintenance of our technical infrastructure, and coordinates our open-source contribution. His essential tool: TYPO3

 Benni Mack  CTO

 [ more from Benni Mack ](https://b13.com/team/benni-mack)

  Related Articles
------------------

- ![A purple graphic featuring a smartphone icon with three horizontal bars, surrounded by illustrations of vintage telephones.](https://b13.com/fileadmin/_processed_/2/5/csm_EXTphonenumber_Headerbild_93d5de1696.webp)

    ###  Clean Phone Numbers in TYPO3: Why We Built EXT:phone\_number

     11 August 2026 | David Steeb

     TYPO3 stores phone numbers as tel: links, but doesn’t format them for output. Meet EXT:phone\_number, a Fluid ViewHelper for clean, consistent numbers.

     [ Read more: Clean Phone Numbers in TYPO3: Why We Built EXT:phone\_number ](https://b13.com/knowledge/clean-phone-numbers-in-typo3)
- ![Cartoon trophy character surrounded by hands giving thumbs up and a heart gesture, set against a gear-patterned background.](https://b13.com/fileadmin/_processed_/f/7/csm_T3ppy_Design_Kit_Headerbild_b51eb9dc31.webp)

    ###  T3ppy Gives TYPO3 a Friendly Face

     06 August 2026 | Florian “Flix” Keitgen

     TYPO3 is powerful—but it doesn’t have to feel impersonal. Meet T3ppy, our friendly companion for the backend.

     [ Read more: T3ppy Gives TYPO3 a Friendly Face ](https://b13.com/knowledge/t3ppy-design-kit)
- ![Gavel labeled "AI" on a circuit-patterned background with yellow stars, symbolizing regulation or legislation related to artificial intelligence in the EU.](https://b13.com/fileadmin/_processed_/1/0/csm_EUAIAct_Headerbild_510724b3de.webp)

    ###  AI Content in TYPO3: Labelling Needs Accountability

     02 August 2026 | Benni Mack

     The EU AI Act brings the origins of AI-generated content into focus. AI Label marks AI-generated and AI-edited content in TYPO3 and records who signed off the published version—for…

     [ Read more: AI Content in TYPO3: Labelling Needs Accountability ](https://b13.com/knowledge/ai-content-in-typo3-labelling-needs-accountability)
- ![Hands holding puzzle pieces are positioned around a partially completed puzzle depicting a computer interface.](https://b13.com/fileadmin/_processed_/d/7/csm_StopBuyingPlatforms_Headerbild_8a41a82f8a.webp)

    ###  Stop Buying Platforms. Start Building Ecosystems.

     09 June 2026 | David Steeb

     The first TYPO3 Summit North America opened with a keynote that reframes how enterprise teams should think about content management—from platforms to ecosystems, from vendor…

     [ Read more: Stop Buying Platforms. Start Building Ecosystems. ](https://b13.com/knowledge/stop-buying-platforms-start-building-ecosystems)
- ![Colorful fish illustrations surround a central logo that reads "TYPO3 Summit.](https://b13.com/fileadmin/_processed_/4/3/csm_NorthAmericaSummit_Headerbild_5fbbbbb529.webp)

    ###  Notes from Atlanta—What the First TYPO3 Summit North America Says About the Next Decade of Enterprise CMS

     22 May 2026 | David Steeb

     Field report from the first TYPO3 Summit North America in Atlanta. On governance that can’t be acquired, predictable seven-year lifecycles, the FAIR distribution layer, and why the…

     [ Read more: Notes from Atlanta—What the First TYPO3 Summit North America Says About the Next Decade of Enterprise CMS ](https://b13.com/knowledge/atlanta-typo3-summit-north-america-enterprise-cms)
- ![A series of stylized figures in various poses, each with a distinctive orange hat, depict a progression from walking to standing still while looking at a phone, set against a purple grid background.](https://b13.com/fileadmin/_processed_/d/7/csm_QueuesDDEV_Headerbild_f640931350.webp)

    ###  Better scalability with decoupled queues: How to set up RabbitMQ with TYPO3

     10 April 2024 | Jochen Roth

     When built-in message transports hit their limits, RabbitMQ can provide TYPO3 with a scalable, robust message queue.

     [ Read more: Better scalability with decoupled queues: How to set up RabbitMQ with TYPO3 ](https://b13.com/knowledge/better-scalability-with-decoupled-queues-how-to-set-up-rabbitmq-with-typo3)
- ![A rocket labeled "V14" launches into the sky, surrounded by a group of people celebrating with raised arms.](https://b13.com/fileadmin/_processed_/3/d/csm_v14_Celebration_Headerbild_3d4170fdc5.webp)

    ###  Happy Release Day TYPO3 v14: Why This Release Shows the True Strength of Open Source

     21 April 2026 | Florian “Flix” Keitgen

     TYPO3 v14 improves workflows for editors, marketing teams, and developers—and shows how community-driven open source creates real impact.

     [ Read more: Happy Release Day TYPO3 v14: Why This Release Shows the True Strength of Open Source ](https://b13.com/knowledge/happy-release-day-typo3-v14-why-this-release-shows-the-true-strength-of-open-source)
- ![Hands holding puzzle pieces with QR codes surround a large QR code under a magnifying glass, suggesting a collaborative activity.](https://b13.com/fileadmin/_processed_/3/b/csm_QRcodeManagement2_Headerbild_85c3ff55b5.webp)

    ###  QR Codes in TYPO3 v14: Built-in Link Management That Just Works for Editors

     17 April 2026 | David Steeb

     TYPO3 v14 adds QR code generation to Link Management. Create codes before URLs are final, track scans via redirect stats, update targets anytime, and avoid third-party tools. Ideal…

     [ Read more: QR Codes in TYPO3 v14: Built-in Link Management That Just Works for Editors ](https://b13.com/qr-codes-in-typo3-v14-built-in-link-management-that-just-works-for-editors)
- ![A cartoon character resembling a shield gives a thumbs up in front of a computer interface with various menu options.](https://b13.com/fileadmin/_processed_/e/6/csm_Header_cda1f80173.webp)

    ###  Meet T3ppy: A New Era for Editorial Work in TYPO3

     01 April 2026 | Florian “Flix” Keitgen

     T3ppy and the AiM extension bring AI directly into the TYPO3 backend—enhancing SEO, content quality, and workflows with centralized control.

     [ Read more: Meet T3ppy: A New Era for Editorial Work in TYPO3 ](https://b13.com/knowledge/meet-t3ppy-a-new-era-for-editorial-work-in-typo3)
- ![Four file folders displaying a bar graph with orange bars, set against a light blue background with abstract document outlines.](https://b13.com/fileadmin/_processed_/7/2/csm_PageInfoTabs_Headerbild_1e3eda44e5.webp)

    ###  Taming the Page Module Header—Why We Built EXT:page\_info\_tabs

     31 March 2026 | David Steeb

     When multiple TYPO3 extensions add content to the page module header, things quickly become messy. EXT:page\_info\_tabs structures everything into clean Bootstrap tabs, with zero…

     [ Read more: Taming the Page Module Header—Why We Built EXT:page\_info\_tabs ](https://b13.com/knowledge/taming-the-page-module-header-why-we-built-extpage-info-tabs)