Index: /main/waeup.ikoba/branches/uli-payments/src/waeup/ikoba/payments/currencies.py
===================================================================
--- /main/waeup.ikoba/branches/uli-payments/src/waeup/ikoba/payments/currencies.py	(revision 12293)
+++ /main/waeup.ikoba/branches/uli-payments/src/waeup/ikoba/payments/currencies.py	(revision 12294)
@@ -1,4 +1,7 @@
 """Currencies
 """
+from waeup.ikoba.interfaces import MessageFactory as _
+from waeup.ikoba.interfaces import SimpleIkobaVocabulary
+
 #: Currencies according to ISO 4217
 #:
@@ -18,185 +21,194 @@
 #:
 ISO_4217_CURRENCIES = {
-    'AED': ('UNITED ARAB EMIRATES', 'UAE Dirham', 2, '784'),
-    'AFN': ('AFGHANISTAN', 'Afghani', 2, '971'),
-    'ALL': ('ALBANIA', 'Lek', 2, '008'),
-    'AMD': ('ARMENIA', 'Armenian Dram', 2, '051'),
+    'AED': ('UNITED ARAB EMIRATES', _('UAE Dirham'), 2, '784'),
+    'AFN': ('AFGHANISTAN', _('Afghani'), 2, '971'),
+    'ALL': ('ALBANIA', _('Lek'), 2, '008'),
+    'AMD': ('ARMENIA', _('Armenian Dram'), 2, '051'),
     'ANG': ('SINT MAARTEN (DUTCH PART)',
-            'Netherlands Antillean Guilder',
+            _('Netherlands Antillean Guilder'),
             2,
             '532'),
-    'AOA': ('ANGOLA', 'Kwanza', 2, '973'),
-    'ARS': ('ARGENTINA', 'Argentine Peso', 2, '032'),
-    'AUD': ('TUVALU', 'Australian Dollar', 2, '036'),
-    'AWG': ('ARUBA', 'Aruban Florin', 2, '533'),
-    'AZN': ('AZERBAIJAN', 'Azerbaijanian Manat', 2, '944'),
-    'BAM': ('BOSNIA AND HERZEGOVINA', 'Convertible Mark', 2, '977'),
-    'BBD': ('BARBADOS', 'Barbados Dollar', 2, '052'),
-    'BDT': ('BANGLADESH', 'Taka', 2, '050'),
-    'BGN': ('BULGARIA', 'Bulgarian Lev', 2, '975'),
-    'BHD': ('BAHRAIN', 'Bahraini Dinar', 3, '048'),
-    'BIF': ('BURUNDI', 'Burundi Franc', 0, '108'),
-    'BMD': ('BERMUDA', 'Bermudian Dollar', 2, '060'),
-    'BND': ('BRUNEI DARUSSALAM', 'Brunei Dollar', 2, '096'),
-    'BOB': ('BOLIVIA, PLURINATIONAL STATE OF', 'Boliviano', 2, '068'),
-    'BOV': ('BOLIVIA, PLURINATIONAL STATE OF', 'Mvdol', 2, '984'),
-    'BRL': ('BRAZIL', 'Brazilian Real', 2, '986'),
-    'BSD': ('BAHAMAS', 'Bahamian Dollar', 2, '044'),
-    'BTN': ('BHUTAN', 'Ngultrum', 2, '064'),
-    'BWP': ('BOTSWANA', 'Pula', 2, '072'),
-    'BYR': ('BELARUS', 'Belarussian Ruble', 0, '974'),
-    'BZD': ('BELIZE', 'Belize Dollar', 2, '084'),
-    'CAD': ('CANADA', 'Canadian Dollar', 2, '124'),
-    'CDF': ('CONGO, DEMOCRATIC REPUBLIC OF THE ', 'Congolese Franc', 2, '976'),
-    'CHE': ('SWITZERLAND', 'WIR Euro', 2, '947'),
-    'CHF': ('SWITZERLAND', 'Swiss Franc', 2, '756'),
-    'CHW': ('SWITZERLAND', 'WIR Franc', 2, '948'),
-    'CLF': ('CHILE', 'Unidad de Fomento', 4, '990'),
-    'CLP': ('CHILE', 'Chilean Peso', 0, '152'),
-    'CNY': ('CHINA', 'Yuan Renminbi', 2, '156'),
-    'COP': ('COLOMBIA', 'Colombian Peso', 2, '170'),
-    'COU': ('COLOMBIA', 'Unidad de Valor Real', 2, '970'),
-    'CRC': ('COSTA RICA', 'Costa Rican Colon', 2, '188'),
-    'CUC': ('CUBA', 'Peso Convertible', 2, '931'),
-    'CUP': ('CUBA', 'Cuban Peso', 2, '192'),
-    'CVE': ('CABO VERDE', 'Cabo Verde Escudo', 2, '132'),
-    'CZK': ('CZECH REPUBLIC', 'Czech Koruna', 2, '203'),
-    'DJF': ('DJIBOUTI', 'Djibouti Franc', 0, '262'),
-    'DKK': ('GREENLAND', 'Danish Krone', 2, '208'),
-    'DOP': ('DOMINICAN REPUBLIC', 'Dominican Peso', 2, '214'),
-    'DZD': ('ALGERIA', 'Algerian Dinar', 2, '012'),
-    'EGP': ('EGYPT', 'Egyptian Pound', 2, '818'),
-    'ERN': ('ERITREA', 'Nakfa', 2, '232'),
-    'ETB': ('ETHIOPIA', 'Ethiopian Birr', 2, '230'),
-    'EUR': ('SPAIN', 'Euro', 2, '978'),
-    'FJD': ('FIJI', 'Fiji Dollar', 2, '242'),
-    'FKP': ('FALKLAND ISLANDS (MALVINAS)', 'Falkland Islands Pound', 2, '238'),
-    'GBP': ('UNITED KINGDOM', 'Pound Sterling', 2, '826'),
-    'GEL': ('GEORGIA', 'Lari', 2, '981'),
-    'GHS': ('GHANA', 'Ghana Cedi', 2, '936'),
-    'GIP': ('GIBRALTAR', 'Gibraltar Pound', 2, '292'),
-    'GMD': ('GAMBIA', 'Dalasi', 2, '270'),
-    'GNF': ('GUINEA', 'Guinea Franc', 0, '324'),
-    'GTQ': ('GUATEMALA', 'Quetzal', 2, '320'),
-    'GYD': ('GUYANA', 'Guyana Dollar', 2, '328'),
-    'HKD': ('HONG KONG', 'Hong Kong Dollar', 2, '344'),
-    'HNL': ('HONDURAS', 'Lempira', 2, '340'),
-    'HRK': ('CROATIA', 'Croatian Kuna', 2, '191'),
-    'HTG': ('HAITI', 'Gourde', 2, '332'),
-    'HUF': ('HUNGARY', 'Forint', 2, '348'),
-    'IDR': ('INDONESIA', 'Rupiah', 2, '360'),
-    'ILS': ('ISRAEL', 'New Israeli Sheqel', 2, '376'),
-    'INR': ('INDIA', 'Indian Rupee', 2, '356'),
-    'IQD': ('IRAQ', 'Iraqi Dinar', 3, '368'),
-    'IRR': ('IRAN, ISLAMIC REPUBLIC OF', 'Iranian Rial', 2, '364'),
-    'ISK': ('ICELAND', 'Iceland Krona', 0, '352'),
-    'JMD': ('JAMAICA', 'Jamaican Dollar', 2, '388'),
-    'JOD': ('JORDAN', 'Jordanian Dinar', 3, '400'),
-    'JPY': ('JAPAN', 'Yen', 0, '392'),
-    'KES': ('KENYA', 'Kenyan Shilling', 2, '404'),
-    'KGS': ('KYRGYZSTAN', 'Som', 2, '417'),
-    'KHR': ('CAMBODIA', 'Riel', 2, '116'),
-    'KMF': ('COMOROS', 'Comoro Franc', 0, '174'),
+    'AOA': ('ANGOLA', _('Kwanza'), 2, '973'),
+    'ARS': ('ARGENTINA', _('Argentine Peso'), 2, '032'),
+    'AUD': ('TUVALU', _('Australian Dollar'), 2, '036'),
+    'AWG': ('ARUBA', _('Aruban Florin'), 2, '533'),
+    'AZN': ('AZERBAIJAN', _('Azerbaijanian Manat'), 2, '944'),
+    'BAM': ('BOSNIA AND HERZEGOVINA', _('Convertible Mark'), 2, '977'),
+    'BBD': ('BARBADOS', _('Barbados Dollar'), 2, '052'),
+    'BDT': ('BANGLADESH', _('Taka'), 2, '050'),
+    'BGN': ('BULGARIA', _('Bulgarian Lev'), 2, '975'),
+    'BHD': ('BAHRAIN', _('Bahraini Dinar'), 3, '048'),
+    'BIF': ('BURUNDI', _('Burundi Franc'), 0, '108'),
+    'BMD': ('BERMUDA', _('Bermudian Dollar'), 2, '060'),
+    'BND': ('BRUNEI DARUSSALAM', _('Brunei Dollar'), 2, '096'),
+    'BOB': ('BOLIVIA, PLURINATIONAL STATE OF', _('Boliviano'), 2, '068'),
+    'BOV': ('BOLIVIA, PLURINATIONAL STATE OF', _('Mvdol'), 2, '984'),
+    'BRL': ('BRAZIL', _('Brazilian Real'), 2, '986'),
+    'BSD': ('BAHAMAS', _('Bahamian Dollar'), 2, '044'),
+    'BTN': ('BHUTAN', _('Ngultrum'), 2, '064'),
+    'BWP': ('BOTSWANA', _('Pula'), 2, '072'),
+    'BYR': ('BELARUS', _('Belarussian Ruble'), 0, '974'),
+    'BZD': ('BELIZE', _('Belize Dollar'), 2, '084'),
+    'CAD': ('CANADA', _('Canadian Dollar'), 2, '124'),
+    'CDF': ('CONGO, DEMOCRATIC REPUBLIC OF THE ',
+            _('Congolese Franc'),
+            2,
+            '976'),
+    'CHE': ('SWITZERLAND', _('WIR Euro'), 2, '947'),
+    'CHF': ('SWITZERLAND', _('Swiss Franc'), 2, '756'),
+    'CHW': ('SWITZERLAND', _('WIR Franc'), 2, '948'),
+    'CLF': ('CHILE', _('Unidad de Fomento'), 4, '990'),
+    'CLP': ('CHILE', _('Chilean Peso'), 0, '152'),
+    'CNY': ('CHINA', _('Yuan Renminbi'), 2, '156'),
+    'COP': ('COLOMBIA', _('Colombian Peso'), 2, '170'),
+    'COU': ('COLOMBIA', _('Unidad de Valor Real'), 2, '970'),
+    'CRC': ('COSTA RICA', _('Costa Rican Colon'), 2, '188'),
+    'CUC': ('CUBA', _('Peso Convertible'), 2, '931'),
+    'CUP': ('CUBA', _('Cuban Peso'), 2, '192'),
+    'CVE': ('CABO VERDE', _('Cabo Verde Escudo'), 2, '132'),
+    'CZK': ('CZECH REPUBLIC', _('Czech Koruna'), 2, '203'),
+    'DJF': ('DJIBOUTI', _('Djibouti Franc'), 0, '262'),
+    'DKK': ('GREENLAND', _('Danish Krone'), 2, '208'),
+    'DOP': ('DOMINICAN REPUBLIC', _('Dominican Peso'), 2, '214'),
+    'DZD': ('ALGERIA', _('Algerian Dinar'), 2, '012'),
+    'EGP': ('EGYPT', _('Egyptian Pound'), 2, '818'),
+    'ERN': ('ERITREA', _('-Nakfa'), 2, '232'),
+    'ETB': ('ETHIOPIA', _('Ethiopian Birr'), 2, '230'),
+    'EUR': ('SPAIN', _('Euro'), 2, '978'),
+    'FJD': ('FIJI', _('Fiji Dollar'), 2, '242'),
+    'FKP': ('FALKLAND ISLANDS (MALVINAS)',
+            _('Falkland Islands Pound'),
+            2,
+            '238'),
+    'GBP': ('UNITED KINGDOM', _('Pound Sterling'), 2, '826'),
+    'GEL': ('GEORGIA', _('Lari'), 2, '981'),
+    'GHS': ('GHANA', _('Ghana Cedi'), 2, '936'),
+    'GIP': ('GIBRALTAR', _('Gibraltar Pound'), 2, '292'),
+    'GMD': ('GAMBIA', _('Dalasi'), 2, '270'),
+    'GNF': ('GUINEA', _('Guinea Franc'), 0, '324'),
+    'GTQ': ('GUATEMALA', _('Quetzal'), 2, '320'),
+    'GYD': ('GUYANA', _('Guyana Dollar'), 2, '328'),
+    'HKD': ('HONG KONG', _('Hong Kong Dollar'), 2, '344'),
+    'HNL': ('HONDURAS', _('Lempira'), 2, '340'),
+    'HRK': ('CROATIA', _('Croatian Kuna'), 2, '191'),
+    'HTG': ('HAITI', _('Gourde'), 2, '332'),
+    'HUF': ('HUNGARY', _('Forint'), 2, '348'),
+    'IDR': ('INDONESIA', _('Rupiah'), 2, '360'),
+    'ILS': ('ISRAEL', _('New Israeli Sheqel'), 2, '376'),
+    'INR': ('INDIA', _('Indian Rupee'), 2, '356'),
+    'IQD': ('IRAQ', _('Iraqi Dinar'), 3, '368'),
+    'IRR': ('IRAN, ISLAMIC REPUBLIC OF', _('Iranian Rial'), 2, '364'),
+    'ISK': ('ICELAND', _('Iceland Krona'), 0, '352'),
+    'JMD': ('JAMAICA', _('Jamaican Dollar'), 2, '388'),
+    'JOD': ('JORDAN', _('Jordanian Dinar'), 3, '400'),
+    'JPY': ('JAPAN', _('Yen'), 0, '392'),
+    'KES': ('KENYA', _('Kenyan Shilling'), 2, '404'),
+    'KGS': ('KYRGYZSTAN', _('Som'), 2, '417'),
+    'KHR': ('CAMBODIA', _('Riel'), 2, '116'),
+    'KMF': ('COMOROS', _('Comoro Franc'), 0, '174'),
     'KPW': (u"KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF",
-            'North Korean Won',
+            _('North Korean Won'),
             2,
             '408'),
-    'KRW': ('KOREA, REPUBLIC OF', 'Won', 0, '410'),
-    'KWD': ('KUWAIT', 'Kuwaiti Dinar', 3, '414'),
-    'KYD': ('CAYMAN ISLANDS', 'Cayman Islands Dollar', 2, '136'),
-    'KZT': ('KAZAKHSTAN', 'Tenge', 2, '398'),
-    'LAK': (u"LAO PEOPLE'S DEMOCRATIC REPUBLIC", 'Kip', 2, '418'),
-    'LBP': ('LEBANON', 'Lebanese Pound', 2, '422'),
-    'LKR': ('SRI LANKA', 'Sri Lanka Rupee', 2, '144'),
-    'LRD': ('LIBERIA', 'Liberian Dollar', 2, '430'),
-    'LSL': ('LESOTHO', 'Loti', 2, '426'),
-    'LTL': ('LITHUANIA', 'Lithuanian Litas', 2, '440'),
-    'LYD': ('LIBYA', 'Libyan Dinar', 3, '434'),
-    'MAD': ('WESTERN SAHARA', 'Moroccan Dirham', 2, '504'),
-    'MDL': ('MOLDOVA, REPUBLIC OF', 'Moldovan Leu', 2, '498'),
-    'MGA': ('MADAGASCAR', 'Malagasy Ariary', 2, '969'),
-    'MKD': ('MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF', 'Denar', 2, '807'),
-    'MMK': ('MYANMAR', 'Kyat', 2, '104'),
-    'MNT': ('MONGOLIA', 'Tugrik', 2, '496'),
-    'MOP': ('MACAO', 'Pataca', 2, '446'),
-    'MRO': ('MAURITANIA', 'Ouguiya', 2, '478'),
-    'MUR': ('MAURITIUS', 'Mauritius Rupee', 2, '480'),
-    'MVR': ('MALDIVES', 'Rufiyaa', 2, '462'),
-    'MWK': ('MALAWI', 'Kwacha', 2, '454'),
-    'MXN': ('MEXICO', 'Mexican Peso', 2, '484'),
-    'MXV': ('MEXICO', 'Mexican Unidad de Inversion (UDI)', 2, '979'),
-    'MYR': ('MALAYSIA', 'Malaysian Ringgit', 2, '458'),
-    'MZN': ('MOZAMBIQUE', 'Mozambique Metical', 2, '943'),
-    'NAD': ('NAMIBIA', 'Namibia Dollar', 2, '516'),
-    'NGN': ('NIGERIA', 'Naira', 2, '566'),
-    'NIO': ('NICARAGUA', 'Cordoba Oro', 2, '558'),
-    'NOK': ('SVALBARD AND JAN MAYEN', 'Norwegian Krone', 2, '578'),
-    'NPR': ('NEPAL', 'Nepalese Rupee', 2, '524'),
-    'NZD': ('TOKELAU', 'New Zealand Dollar', 2, '554'),
-    'OMR': ('OMAN', 'Rial Omani', 3, '512'),
-    'PAB': ('PANAMA', 'Balboa', 2, '590'),
-    'PEN': ('PERU', 'Nuevo Sol', 2, '604'),
-    'PGK': ('PAPUA NEW GUINEA', 'Kina', 2, '598'),
-    'PHP': ('PHILIPPINES', 'Philippine Peso', 2, '608'),
-    'PKR': ('PAKISTAN', 'Pakistan Rupee', 2, '586'),
-    'PLN': ('POLAND', 'Zloty', 2, '985'),
-    'PYG': ('PARAGUAY', 'Guarani', 0, '600'),
-    'QAR': ('QATAR', 'Qatari Rial', 2, '634'),
-    'RON': ('ROMANIA', 'New Romanian Leu', 2, '946'),
-    'RSD': ('SERBIA', 'Serbian Dinar', 2, '941'),
-    'RUB': ('RUSSIAN FEDERATION', 'Russian Ruble', 2, '643'),
-    'RWF': ('RWANDA', 'Rwanda Franc', 0, '646'),
-    'SAR': ('SAUDI ARABIA', 'Saudi Riyal', 2, '682'),
-    'SBD': ('SOLOMON ISLANDS', 'Solomon Islands Dollar', 2, '090'),
-    'SCR': ('SEYCHELLES', 'Seychelles Rupee', 2, '690'),
-    'SDG': ('SUDAN', 'Sudanese Pound', 2, '938'),
-    'SEK': ('SWEDEN', 'Swedish Krona', 2, '752'),
-    'SGD': ('SINGAPORE', 'Singapore Dollar', 2, '702'),
+    'KRW': ('KOREA, REPUBLIC OF', _('Won'), 0, '410'),
+    'KWD': ('KUWAIT', _('Kuwaiti Dinar'), 3, '414'),
+    'KYD': ('CAYMAN ISLANDS', _('Cayman Islands Dollar'), 2, '136'),
+    'KZT': ('KAZAKHSTAN', _('Tenge'), 2, '398'),
+    'LAK': (u"LAO PEOPLE'S DEMOCRATIC REPUBLIC", _('Kip'), 2, '418'),
+    'LBP': ('LEBANON', _('Lebanese Pound'), 2, '422'),
+    'LKR': ('SRI LANKA', _('Sri Lanka Rupee'), 2, '144'),
+    'LRD': ('LIBERIA', _('Liberian Dollar'), 2, '430'),
+    'LSL': ('LESOTHO', _('Loti'), 2, '426'),
+    'LTL': ('LITHUANIA', _('Lithuanian Litas'), 2, '440'),
+    'LYD': ('LIBYA', _('Libyan Dinar'), 3, '434'),
+    'MAD': ('WESTERN SAHARA', _('Moroccan Dirham'), 2, '504'),
+    'MDL': ('MOLDOVA, REPUBLIC OF', _('Moldovan Leu'), 2, '498'),
+    'MGA': ('MADAGASCAR', _('Malagasy Ariary'), 2, '969'),
+    'MKD': ('MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF',
+            _('Denar'),
+            2,
+            '807'),
+    'MMK': ('MYANMAR', _('Kyat'), 2, '104'),
+    'MNT': ('MONGOLIA', _('Tugrik'), 2, '496'),
+    'MOP': ('MACAO', _('Pataca'), 2, '446'),
+    'MRO': ('MAURITANIA', _('Ouguiya'), 2, '478'),
+    'MUR': ('MAURITIUS', _('Mauritius Rupee'), 2, '480'),
+    'MVR': ('MALDIVES', _('Rufiyaa'), 2, '462'),
+    'MWK': ('MALAWI', _('Kwacha'), 2, '454'),
+    'MXN': ('MEXICO', _('Mexican Peso'), 2, '484'),
+    'MXV': ('MEXICO', _('Mexican Unidad de Inversion (UDI)'), 2, '979'),
+    'MYR': ('MALAYSIA', _('Malaysian Ringgit'), 2, '458'),
+    'MZN': ('MOZAMBIQUE', _('Mozambique Metical'), 2, '943'),
+    'NAD': ('NAMIBIA', _('Namibia Dollar'), 2, '516'),
+    'NGN': ('NIGERIA', _('Naira'), 2, '566'),
+    'NIO': ('NICARAGUA', _('Cordoba Oro'), 2, '558'),
+    'NOK': ('SVALBARD AND JAN MAYEN', _('Norwegian Krone'), 2, '578'),
+    'NPR': ('NEPAL', _('Nepalese Rupee'), 2, '524'),
+    'NZD': ('TOKELAU', _('New Zealand Dollar'), 2, '554'),
+    'OMR': ('OMAN', _('Rial Omani'), 3, '512'),
+    'PAB': ('PANAMA', _('Balboa'), 2, '590'),
+    'PEN': ('PERU', _('Nuevo Sol'), 2, '604'),
+    'PGK': ('PAPUA NEW GUINEA', _('Kina'), 2, '598'),
+    'PHP': ('PHILIPPINES', _('Philippine Peso'), 2, '608'),
+    'PKR': ('PAKISTAN', _('Pakistan Rupee'), 2, '586'),
+    'PLN': ('POLAND', _('Zloty'), 2, '985'),
+    'PYG': ('PARAGUAY', _('Guarani'), 0, '600'),
+    'QAR': ('QATAR', _('Qatari Rial'), 2, '634'),
+    'RON': ('ROMANIA', _('New Romanian Leu'), 2, '946'),
+    'RSD': ('SERBIA', _('Serbian Dinar'), 2, '941'),
+    'RUB': ('RUSSIAN FEDERATION', _('Russian Ruble'), 2, '643'),
+    'RWF': ('RWANDA', _('Rwanda Franc'), 0, '646'),
+    'SAR': ('SAUDI ARABIA', _('Saudi Riyal'), 2, '682'),
+    'SBD': ('SOLOMON ISLANDS', _('Solomon Islands Dollar'), 2, '090'),
+    'SCR': ('SEYCHELLES', _('Seychelles Rupee'), 2, '690'),
+    'SDG': ('SUDAN', _('Sudanese Pound'), 2, '938'),
+    'SEK': ('SWEDEN', _('Swedish Krona'), 2, '752'),
+    'SGD': ('SINGAPORE', _('Singapore Dollar'), 2, '702'),
     'SHP': ('SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA',
-            'Saint Helena Pound',
+            _('Saint Helena Pound'),
             2,
             '654'),
-    'SLL': ('SIERRA LEONE', 'Leone', 2, '694'),
-    'SOS': ('SOMALIA', 'Somali Shilling', 2, '706'),
-    'SRD': ('SURINAME', 'Surinam Dollar', 2, '968'),
-    'SSP': ('SOUTH SUDAN', 'South Sudanese Pound', 2, '728'),
-    'STD': ('SAO TOME AND PRINCIPE', 'Dobra', 2, '678'),
-    'SVC': ('EL SALVADOR', 'El Salvador Colon', 2, '222'),
-    'SYP': ('SYRIAN ARAB REPUBLIC', 'Syrian Pound', 2, '760'),
-    'SZL': ('SWAZILAND', 'Lilangeni', 2, '748'),
-    'THB': ('THAILAND', 'Baht', 2, '764'),
-    'TJS': ('TAJIKISTAN', 'Somoni', 2, '972'),
-    'TMT': ('TURKMENISTAN', 'Turkmenistan New Manat', 2, '934'),
-    'TND': ('TUNISIA', 'Tunisian Dinar', 3, '788'),
-    'TOP': ('TONGA', u"Pa'anga", 2, '776'),
-    'TRY': ('TURKEY', 'Turkish Lira', 2, '949'),
-    'TTD': ('TRINIDAD AND TOBAGO', 'Trinidad and Tobago Dollar', 2, '780'),
-    'TWD': ('TAIWAN, PROVINCE OF CHINA', 'New Taiwan Dollar', 2, '901'),
-    'TZS': ('TANZANIA, UNITED REPUBLIC OF', 'Tanzanian Shilling', 2, '834'),
-    'UAH': ('UKRAINE', 'Hryvnia', 2, '980'),
-    'UGX': ('UGANDA', 'Uganda Shilling', 0, '800'),
-    'USD': ('VIRGIN ISLANDS (U.S.)', 'US Dollar', 2, '840'),
-    'USN': ('UNITED STATES', 'US Dollar (Next day)', 2, '997'),
+    'SLL': ('SIERRA LEONE', _('Leone'), 2, '694'),
+    'SOS': ('SOMALIA', _('Somali Shilling'), 2, '706'),
+    'SRD': ('SURINAME', _('Surinam Dollar'), 2, '968'),
+    'SSP': ('SOUTH SUDAN', _('South Sudanese Pound'), 2, '728'),
+    'STD': ('SAO TOME AND PRINCIPE', _('Dobra'), 2, '678'),
+    'SVC': ('EL SALVADOR', _('El Salvador Colon'), 2, '222'),
+    'SYP': ('SYRIAN ARAB REPUBLIC', _('Syrian Pound'), 2, '760'),
+    'SZL': ('SWAZILAND', _('Lilangeni'), 2, '748'),
+    'THB': ('THAILAND', _('Baht'), 2, '764'),
+    'TJS': ('TAJIKISTAN', _('Somoni'), 2, '972'),
+    'TMT': ('TURKMENISTAN', _('Turkmenistan New Manat'), 2, '934'),
+    'TND': ('TUNISIA', _('Tunisian Dinar'), 3, '788'),
+    'TOP': ('TONGA', _(u"Pa'anga"), 2, '776'),
+    'TRY': ('TURKEY', _('Turkish Lira'), 2, '949'),
+    'TTD': ('TRINIDAD AND TOBAGO', _('Trinidad and Tobago Dollar'), 2, '780'),
+    'TWD': ('TAIWAN, PROVINCE OF CHINA', _('New Taiwan Dollar'), 2, '901'),
+    'TZS': ('TANZANIA, UNITED REPUBLIC OF', _('Tanzanian Shilling'), 2, '834'),
+    'UAH': ('UKRAINE', _('Hryvnia'), 2, '980'),
+    'UGX': ('UGANDA', _('Uganda Shilling'), 0, '800'),
+    'USD': ('VIRGIN ISLANDS (U.S.)', _('US Dollar'), 2, '840'),
+    'USN': ('UNITED STATES', _('US Dollar (Next day)'), 2, '997'),
     'UYI': ('URUGUAY',
-            'Uruguay Peso en Unidades Indexadas (URUIURUI)',
+            _('Uruguay Peso en Unidades Indexadas (URUIURUI)'),
             0,
             '940'),
-    'UYU': ('URUGUAY', 'Peso Uruguayo', 2, '858'),
-    'UZS': ('UZBEKISTAN', 'Uzbekistan Sum', 2, '860'),
-    'VEF': ('VENEZUELA, BOLIVARIAN REPUBLIC OF', 'Bolivar', 2, '937'),
-    'VND': ('VIET NAM', 'Dong', 0, '704'),
-    'VUV': ('VANUATU', 'Vatu', 0, '548'),
-    'WST': ('SAMOA', 'Tala', 2, '882'),
-    'XAF': ('GABON', 'CFA Franc BEAC', 0, '950'),
+    'UYU': ('URUGUAY', _('Peso Uruguayo'), 2, '858'),
+    'UZS': ('UZBEKISTAN', _('Uzbekistan Sum'), 2, '860'),
+    'VEF': ('VENEZUELA, BOLIVARIAN REPUBLIC OF', _('Bolivar'), 2, '937'),
+    'VND': ('VIET NAM', _('Dong'), 0, '704'),
+    'VUV': ('VANUATU', _('Vatu'), 0, '548'),
+    'WST': ('SAMOA', _('Tala'), 2, '882'),
+    'XAF': ('GABON', _('CFA Franc BEAC'), 0, '950'),
     'XCD': ('SAINT VINCENT AND THE GRENADINES',
-            'East Caribbean Dollar',
+            _('East Caribbean Dollar'),
             2,
             '951'),
-    'XOF': ('TOGO', 'CFA Franc BCEAO', 0, '952'),
-    'XPF': ('WALLIS AND FUTUNA', 'CFP Franc', 0, '953'),
-    'YER': ('YEMEN', 'Yemeni Rial', 2, '886'),
-    'ZAR': ('SOUTH AFRICA', 'Rand', 2, '710'),
-    'ZMW': ('ZAMBIA', 'Zambian Kwacha', 2, '967'),
-    'ZWL': ('ZIMBABWE', 'Zimbabwe Dollar', 2, '932')
+    'XOF': ('TOGO', _('CFA Franc BCEAO'), 0, '952'),
+    'XPF': ('WALLIS AND FUTUNA', _('CFP Franc'), 0, '953'),
+    'YER': ('YEMEN', _('Yemeni Rial'), 2, '886'),
+    'ZAR': ('SOUTH AFRICA', _('Rand'), 2, '710'),
+    'ZMW': ('ZAMBIA', _('Zambian Kwacha'), 2, '967'),
+    'ZWL': ('ZIMBABWE', _('Zimbabwe Dollar'), 2, '932')
     }
 
@@ -208,2 +220,7 @@
     """
     return ISO_4217_CURRENCIES[currency_code][2]
+
+
+#: A vocabulary of ISO 4217 currencies
+ISO_4217_CURRENCIES_VOCAB = SimpleIkobaVocabulary(
+    *[(val[1], key) for key, val in ISO_4217_CURRENCIES.items()])
Index: /main/waeup.ikoba/branches/uli-payments/src/waeup/ikoba/payments/tests/test_currencies.py
===================================================================
--- /main/waeup.ikoba/branches/uli-payments/src/waeup/ikoba/payments/tests/test_currencies.py	(revision 12293)
+++ /main/waeup.ikoba/branches/uli-payments/src/waeup/ikoba/payments/tests/test_currencies.py	(revision 12294)
@@ -1,5 +1,8 @@
 import unittest
+from zope.i18nmessageid.message import Message as i18nMessage
+from zope.interface.verify import verifyObject
+from zope.schema.interfaces import IVocabularyTokenized, ITerm
 from waeup.ikoba.payments.currencies import (
-    get_decimal_units, ISO_4217_CURRENCIES,
+    get_decimal_units, ISO_4217_CURRENCIES, ISO_4217_CURRENCIES_VOCAB,
     )
 
@@ -10,4 +13,5 @@
         # we can get the number of decimals for a currency code
         assert get_decimal_units('USD') == 2
+        assert get_decimal_units('JPY') == 0
 
     def test_iso_currencies_no_linebreak(self):
@@ -17,2 +21,29 @@
             assert '\n' not in value[0]
             assert '\n' not in value[1]
+
+    def test_iso_currencies_types(self):
+        # sanity check: make sure we have the correct types in all tuples
+        for key, value in ISO_4217_CURRENCIES.items():
+            assert isinstance(value[1], i18nMessage)
+            assert isinstance(value[2], int)
+            assert isinstance(value[3], str)
+
+    def test_currencies_vocab_tokenized(self):
+        # we can get ISO currencies as a source suitable for forms etc.
+        verifyObject(IVocabularyTokenized, ISO_4217_CURRENCIES_VOCAB)
+
+    def test_currencies_vocab_i18nized(self):
+        # vocab titles are i18nized
+        result = ISO_4217_CURRENCIES_VOCAB.getTerm('USD')
+        assert ITerm.providedBy(result)
+        self.assertEqual(result.title, u'US Dollar')
+        assert isinstance(result.title, i18nMessage)
+
+    def test_currencies_vocab_tokens_are_string(self):
+        # vocab tokens are simple strings
+        result = ISO_4217_CURRENCIES_VOCAB.getTerm('USD')
+        assert ITerm.providedBy(result)
+        assert result.token == result.value
+        assert result.value == 'USD'
+        assert isinstance(result.token, str)
+        assert isinstance(result.value, str)
