<p>A further requirement came up to change the Italian output (symbol moved to <em>after</em> the price rather than <em>before</em>) so I opted for a simple Twig extension:</p>

<pre><code>/**
 * Wrapper for Craft's NumberFormatter-&gt;formatCurrency
 * Changes formats for French and Italian display
 *
 * @param        $value
 * @param string $currency
 *
 * @return string
 */
public function currencyDisplay ($value, $currency = 'GBP')
{
    $value = craft()-&gt;numberFormatter-&gt;formatCurrency($value, $currency);
    $localeId = craft()-&gt;locale-&gt;id;

    if ($localeId == 'fr')
    {
        $value = str_replace('£UK', '£', $value); // remove UK
    }
    else if ($localeId == 'it')
    {
        $value = str_replace('£ ', '', $value) . ' £'; // relocate sterling symbol
    }

    return $value;
}
</code></pre>

CC BY-SA 3.0
2016-02-24T20:27:16.070Z
2016-02-24T20:27:16.070Z
Russ Back
<p>A plugin like you mention is an option, but you should be able to use <a href="https://craftcms.com/support/static-translations" rel="nofollow">static translations</a> for this, too.  Only downside is that it would replace <em>all</em> instances of <code>£UK</code> with <code>£</code>, which may or may not be a problem.</p>

CC BY-SA 3.0
2016-02-24T19:05:01.197Z
2016-02-24T19:05:01.197Z
Brad Bell
<p>I don't think you can override that, but I'm not 100% sure. But, there's always the option to run the <code>replace</code>filter on the output from <code>currency</code>:</p>

<pre><code>{{ 344552.32 | currency('GBP') | replace('£UK', '£') }}
</code></pre>

CC BY-SA 3.0
2016-02-24T18:50:40.510Z
2016-02-24T18:50:40.510Z
André Elvan
<p>We are using the Craft's currency filter to display localised prices <code>344552.32 | currency('GBP')</code> which works great in most instances. </p>

<p>However the currency symbol for UK Sterling in the French locale file is <code>£UK</code> and the translation company we are working with are saying that we just need to output <code>£</code>.</p>

<p>This is defined in the <code>currencySymbols</code> array of <code>craft/app/framework/i18n/data.fr.php</code>.</p>

<p>Is there a way we can affect that at a configuration level or at runtime? If not I guess we would have to create our own filter function that wraps the core functionality and does a string replace on the output.</p>

<localization><configuration>
Is there a way to override locale data?
# Is there a way to override locale data?

(Asked by: username_0 on 2016-02-24)

We are using the Craft's currency filter to display localised prices `344552.32 | currency('GBP')` which works great in most instances.

However the currency symbol for UK Sterling in the French locale file is `£UK` and the translation company we are working with are saying that we just need to output `£`.

This is defined in the `currencySymbols` array of `craft/app/framework/i18n/data.fr.php`.

Is there a way we can affect that at a configuration level or at runtime? If not I guess we would have to create our own filter function that wraps the core functionality and does a string replace on the output.

**Tags:** localization, configuration

---

## 3 answers

### Answer by username_0 on 2016-02-24. Score: 1

A further requirement came up to change the Italian output (symbol moved to after the price rather than before) so I opted for a simple Twig extension:
/**
 * Wrapper for Craft's NumberFormatter->formatCurrency
 * Changes formats for French and Italian display
 *
 * @param        $value
 * @param string $currency
 *
 * @return string
 */
public function currencyDisplay ($value, $currency = 'GBP')
{
    $value = craft()->numberFormatter->formatCurrency($value, $currency);
    $localeId = craft()->locale->id;

    if ($localeId == 'fr')
    {
        $value = str_replace('£UK', '£', $value); // remove UK
    }
    else if ($localeId == 'it')
    {
        $value = str_replace('£ ', '', $value) . ' £'; // relocate sterling symbol
    }

    return $value;
}


---

### Answer by username_1 on 2016-02-24. Score: 0

A plugin like you mention is an option, but you should be able to use [static translations](https://craftcms.com/support/static-translations) for this, too. Only downside is that it would replace *all* instances of `£UK` with `£`, which may or may not be a problem.


---

### Answer by username_2 on 2016-02-24. Score: 0

I don't think you can override that, but I'm not 100% sure. But, there's always the option to run the replacefilter on the output from currency:
{{ 344552.32 | currency('GBP') | replace('£UK', '£') }}


---

