---
title: Multilingual Dates in ExpressionEngine
date: 2013-11-19T19:00:00-05:00
author: cc_admin
canonical_url: "https://caffeinecreations.ca/blog/multilingual-dates-in-expressionengine/"
section: Blog
---
![Code](https://caffeinecreations.ca/uploads/blog/_1920x660_crop_center-center_none_ns/code.jpg)

- [Web Development](https://caffeinecreations.ca/blog/category/web-development/), [Code](https://caffeinecreations.ca/blog/category/code/), [ExpressionEngine](https://caffeinecreations.ca/blog/category/expressionengine/), [EE Tips](https://caffeinecreations.ca/blog/category/expressionengine/ee-tips/), [EE Tutorials](https://caffeinecreations.ca/blog/category/expressionengine/ee-tutorials/)

# Multilingual Dates in ExpressionEngine

I've built about 15 multilanguage sites and have a good process for building them out using [Transcribe](http://eeharbor.com/transcribe/), which I really enjoy using. Today I ran into something new for the first time. The site I'm working on needs to display entry dates, however there is no built in way with Transcribe or ExpressionEngine to translate the dates.

I've built about 15 multilanguage sites and have a good process for building them out using [Transcribe](http://eeharbor.com/transcribe/), which I really enjoy using. Today I ran into something new for the first time. The site I'm working on needs to display entry dates, however there is no built in way with Transcribe or ExpressionEngine to translate the dates.

A quick search on Devot:ee later and I found [Date/Time Language Converter](http://devot-ee.com/add-ons/date-time-language-converter) by Carl Crawley. This little plugin is super easy to use. Below is my code to get a French/English site to display the dates in both languages. The key to notice is that the entry date tag that is wrapped by the datetime\_convert tags has no formatting parameter.

```
<button class="absolute z-10 flex items-center justify-center w-8 h-8 -translate-y-1/2  -right-4 -top-4" clipboard="" title="Copy to Clipboard" to="" type="button" x-clipboard.raw="{if "{transcribe:language_abbreviation}" == "en"}
	November 06th 2013
{if:else}
	{exp:datetime_convert language="fr_FR" format="%B %e %Y"}1383751020{/exp:datetime_convert}
{/if}" x-data="">
	<svg class="h-5 w-5" viewbox="0 0 64 64" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
  <rect fill="#f3f4f6" height="53" rx="3" width="41" x="7" y="2"></rect>
  <rect fill="#f3f4f6" height="51" rx="3" width="39" x="19" y="11"></rect>
  <path d="M53.98 9.143h-3.97c-.082 0-.155.028-.232.047V5.023C49.778 2.253 47.473 0 44.64 0H10.217C7.384 0 5.08 2.253 5.08 5.023v46.843c0 2.77 2.305 5.023 5.138 5.023h6.037v2.268c0 2.67 2.216 4.843 4.941 4.843H53.98c2.725 0 4.942-2.173 4.942-4.843v-45.17c0-2.671-2.217-4.844-4.942-4.844zM7.11 51.866V5.023c0-1.649 1.394-2.991 3.106-2.991H44.64c1.712 0 3.106 1.342 3.106 2.99v46.844c0 1.649-1.394 2.991-3.106 2.991H10.217c-1.712 0-3.106-1.342-3.106-2.99zm49.778 7.29c0 1.551-1.306 2.812-2.91 2.812H21.195c-1.604 0-2.91-1.26-2.91-2.811v-2.268H44.64c2.833 0 5.138-2.253 5.138-5.023V11.128c.077.018.15.047.233.047h3.968c1.604 0 2.91 1.26 2.91 2.811v45.17z"></path>
  <path d="M38.603 13.206H16.254a1.015 1.015 0 1 0 0 2.032h22.35a1.015 1.015 0 1 0 0-2.032zM38.603 21.333H16.254a1.015 1.015 0 1 0 0 2.032h22.35a1.015 1.015 0 1 0 0-2.032zM38.603 29.46H16.254a1.015 1.015 0 1 0 0 2.032h22.35a1.015 1.015 0 1 0 0-2.032zM28.444 37.587h-12.19a1.015 1.015 0 1 0 0 2.032h12.19a1.015 1.015 0 1 0 0-2.032z"></path>
</svg>
<div class="sr-only">Copy to clipboard</div></button>```html
{if "{transcribe:language_abbreviation}" == "en"}
	November 06th 2013
{if:else}
	{exp:datetime_convert language="fr_FR" format="%B %e %Y"}1383751020{/exp:datetime_convert}
{/if}
```
```

Updated with alternate method

Jelle Dijkstra said:

> what i did on a site with &gt;5 languages was to create transcribe variables for the “fr\_FR” and the desired formatting and display the formatted date like this:
> 
> 
> 
> ##### Yogi Bear

```
<button class="absolute z-10 flex items-center justify-center w-8 h-8 -translate-y-1/2  -right-4 -top-4" clipboard="" title="Copy to Clipboard" to="" type="button" x-clipboard.raw="{exp:datetime_convert language=’{transcribe:language_abbreviation}_{exp:transcribe:replace name=“lang_iso”}’ format=’{exp:transcribe:replace name=“date_formatting”}’ parse=“inward”}{entry_date}{/exp:datetime_convert}" x-data="">
	<svg class="h-5 w-5" viewbox="0 0 64 64" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
  <rect fill="#f3f4f6" height="53" rx="3" width="41" x="7" y="2"></rect>
  <rect fill="#f3f4f6" height="51" rx="3" width="39" x="19" y="11"></rect>
  <path d="M53.98 9.143h-3.97c-.082 0-.155.028-.232.047V5.023C49.778 2.253 47.473 0 44.64 0H10.217C7.384 0 5.08 2.253 5.08 5.023v46.843c0 2.77 2.305 5.023 5.138 5.023h6.037v2.268c0 2.67 2.216 4.843 4.941 4.843H53.98c2.725 0 4.942-2.173 4.942-4.843v-45.17c0-2.671-2.217-4.844-4.942-4.844zM7.11 51.866V5.023c0-1.649 1.394-2.991 3.106-2.991H44.64c1.712 0 3.106 1.342 3.106 2.99v46.844c0 1.649-1.394 2.991-3.106 2.991H10.217c-1.712 0-3.106-1.342-3.106-2.99zm49.778 7.29c0 1.551-1.306 2.812-2.91 2.812H21.195c-1.604 0-2.91-1.26-2.91-2.811v-2.268H44.64c2.833 0 5.138-2.253 5.138-5.023V11.128c.077.018.15.047.233.047h3.968c1.604 0 2.91 1.26 2.91 2.811v45.17z"></path>
  <path d="M38.603 13.206H16.254a1.015 1.015 0 1 0 0 2.032h22.35a1.015 1.015 0 1 0 0-2.032zM38.603 21.333H16.254a1.015 1.015 0 1 0 0 2.032h22.35a1.015 1.015 0 1 0 0-2.032zM38.603 29.46H16.254a1.015 1.015 0 1 0 0 2.032h22.35a1.015 1.015 0 1 0 0-2.032zM28.444 37.587h-12.19a1.015 1.015 0 1 0 0 2.032h12.19a1.015 1.015 0 1 0 0-2.032z"></path>
</svg>
<div class="sr-only">Copy to clipboard</div></button>```html
{exp:datetime_convert language=’{transcribe:language_abbreviation}_{exp:transcribe:replace name=“lang_iso”}’ format=’{exp:transcribe:replace name=“date_formatting”}’ parse=“inward”}{entry_date}{/exp:datetime_convert}
```
```

> another benefit is that it’s easy to localise things like validationengine error messages etc
