Is there a suggested, single location to place the currency symbol every time for any given locale?

For example, always on the left with a space before the amount like this:

R 10.00
$ 10.00
€ 10.00
¥ 10.00

Is this acceptable even in instances when the currency symbol is usually placed to the right of the amount, or should you keep track of the placement per locale?

Also, what is the best way to handle currencies with odd unicode characters when you plan on targeting devices that don't support the displaying of these characters? Do you default to using the three letter international code? If you do then do you still obey left-or-right placement or can you place all on the left?

+1 very good question. Sometimes currency symbols are not the best choice but ISO currency codes are. Think of US $ vs. Canada $, or even a foreign exchange case between the two :-)
–
greenforestJun 18 '12 at 17:21

4 Answers
4

If you're going to bother localizing your interface, you might as well do it fully and respect the language or region's common practices.

As you mention localization, I assume this means that you will change the placement of the currency symbol based on the locale setting of the user's interface, rather than the locale of the currency symbol used.

Take French1, example:

French places the currency symbol after the amount (to maintain uniformity with the rest of the metric measures, 2 $ as 2 km).

Similarly, French uses , as a decimal and space as a thousands separator (1 000,59 $)

So, if you're localizing the interface for a French user, you would display 10,00 ¥; 10,00 R; 10,00 €.

I don't know about French Canadians, but the European French will in some circumstances insert the unit in place of the decimal separator, eg. 2€50. It is true that 2,50€ will also be understood, but the former is more prevalent in my experience. This was also true when the currency was the franc (F).
–
PhongJun 20 '12 at 17:49

1

@Phong +1 Great observation! fr_CA does not do that, but it's a great example of a pitfall of looking only to a language when localizing (as you also have to adapt to the environment in which the language is used).
–
msanfordJun 20 '12 at 19:07

@msanford Just as a side note: For Yen (JPY; ¥) there are no fractions/decimals of a ¥
–
greenforestNov 30 '12 at 16:39

There is little point in localizing just a part of a currency presentation and using non-localized or wrongly localization notations otherwise. It may confuse, and it gives the impression of half-hearted localization efforts. The CLDR database contains information about the placement of currency denotations, too. They would not have included it if they thought such things can be left unlocalized.

If you can successfully localize some user interface or some presentation of some data, the odds are that currency symbols used in a locale are available. This has changed to some extent in recent years, since symbols like the new character for Turkish lira and the Indian rupee symbol are new and generally not supported in fonts, and they may cause other problems as well.

So it may be better, in some cases at least, use currency abbreviations or names, especially since symbols like “$”, “£”, and “¥” do not unambiguously indicate a single currency. The CLDR data contains localized abbreviations and names for currencies.

The three-letter codes are meant for international banking business and for data interchange between computers, not for normal human consumption. In a user interface for common people, they should not be used, except perhaps as the last resort when everything else fails. But there’s not much reason why things should fail. If used, these codes follow the normal language-dependent placement rules (e.g., 10,00 EUR in French).

This isn't what I would call a best practice, just what I've learned from my experiences and what I've seen.

You're right by putting them all to the left, there needs to be uniformity. It looks odd looking at a list where some symbols are to the right and others are to the left. Think of an unordered list with check marks used to define the different lis. Some going to the left, and some going to the right. That wouldn't look to good.

Also, yes you should use the three letter international code for them. It is your safest bet for when considering how your users will be presented with the information to insure they are fully aware of where their local currency is being listed. Sites like Amazon do this too.