Option to capitalize localized month names (e.g., PT-PT)

I’d like to request a small but important localization feature.

In Portuguese (Portugal) (pt-PT), Metabase correctly localizes month names, but they are displayed in lowercase by default (e.g., “mai”, “jun”). This follows the regional convention, however in many reporting contexts (dashboards, executive PDFs, slide exports) we need months to appear capitalized or uppercased (e.g., “Mai”, “Jun” / “Maio”, “Junho”) for consistency with our organization’s style guidelines.

Today, the only workaround is to format months as text in SQL (e.g., using UPPER(TO_CHAR(...))) or create additional model/view fields. This adds repetitive logic, reduces portability across databases, and is inconvenient for non-SQL users.

Requested feature

  • Add a native option to control capitalization of localized month names in the UI, ideally scoped per instance and/or per question/dashboard.

    • Examples:

      • “Month name case: default (locale) / Sentence case / Title case / UPPERCASE”

      • A setting that applies to date formatting used in grouping, axes labels, and table rendering.

Where it would help

  • “Group by month” results in tables and charts

  • X-axis labels and legend labels in visualizations

  • Subtotals/labels in dashboards and PDF exports

Thanks for considering this—this would make localized reporting much more flexible without forcing SQL-level workarounds.

I hope I’m remembering this correctly, someone please check me on the facts.

Dates and times in Metabase derive their representations from the locale system in use. In most cases in the Metabase UI, this comes from the browser. If anything is formatted in the backend Clojure code, then it would use the Java locale providers. Any strings generated by the database would use its locale settings.

The exact source of the locale data depends on the software package, but it likely sources from the Unicode Common Locale Data Repository (CLDR), a project to harmonize locale representations across software systems. The specifications in CLDR are developed in coordination with experts in the cultures expressed therein.

In the pt locale in the current version of CLDR, month names are expressed in lower case.

I did not find any specification that allows overriding the case of months via locale extensions. It’s possible to revert to the pre-Java 1.9 locale providers by way of a system property, but there’s no guarantee this will propagate to the Metabase frontend.

Implementing this means anywhere dates are formatted will have to go through an additional transform step.

Thanks for the quick and detailed response.

We’ll try to workaround with native SQL.