diff --git a/includes/commerce.currency.inc b/includes/commerce.currency.inc
index b4f48525..2f7b07ba 100644
--- a/includes/commerce.currency.inc
+++ b/includes/commerce.currency.inc
@@ -11,1314 +11,1281 @@
  */
 function commerce_commerce_currency_info() {
   return array(
-    'AED' => array(
-      'code' => 'AED',
-      'symbol' => 'د.إ',
-      'name' => t('United Arab Emirates Dirham'),
-      'numeric_code' => '784',
-      'code_placement' => 'before',
-      'minor_unit' => t('Fils'),
-      'major_unit' => t('Dirham'),
-    ),
     'AFN' => array(
       'code' => 'AFN',
-      'symbol' => 'Af',
-      'name' => t('Afghan Afghani'),
-      'decimals' => 0,
       'numeric_code' => '971',
-      'minor_unit' => t('Pul'),
-      'major_unit' => t('Afghani'),
+      'symbol' => '؋',
+      'name' => t('Afghan Afghani'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
+    ),
+    'ALL' => array(
+      'code' => 'ALL',
+      'numeric_code' => '008',
+      'symbol' => 'Lekë',
+      'name' => t('Albanian Lek'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
-    'ANG' => array(
-      'code' => 'ANG',
-      'symbol' => 'NAf.',
-      'name' => t('Netherlands Antillean Guilder'),
-      'numeric_code' => '532',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Guilder'),
+    'DZD' => array(
+      'code' => 'DZD',
+      'numeric_code' => '012',
+      'symbol' => 'DZD',
+      'name' => t('Algerian Dinar'),
+      'symbol_placement' => 'before',
     ),
     'AOA' => array(
       'code' => 'AOA',
+      'numeric_code' => '973',
       'symbol' => 'Kz',
       'name' => t('Angolan Kwanza'),
-      'numeric_code' => '973',
-      'minor_unit' => t('Cêntimo'),
-      'major_unit' => t('Kwanza'),
-    ),
-    'ARM' => array(
-      'code' => 'ARM',
-      'symbol' => 'm$n',
-      'name' => t('Argentine Peso Moneda Nacional'),
-      'minor_unit' => t('Centavos'),
-      'major_unit' => t('Peso'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
     'ARS' => array(
       'code' => 'ARS',
-      'symbol' => 'AR$',
-      'name' => t('Argentine Peso'),
       'numeric_code' => '032',
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Peso'),
-    ),
-    'AUD' => array(
-      'code' => 'AUD',
       'symbol' => '$',
-      'name' => t('Australian Dollar'),
-      'numeric_code' => '036',
+      'name' => t('Argentine Peso'),
+      'symbol_placement' => 'before',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
+    ),
+    'AMD' => array(
+      'code' => 'AMD',
+      'numeric_code' => '051',
+      'symbol' => '֏',
+      'name' => t('Armenian Dram'),
       'symbol_placement' => 'before',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+      'decimals' => '0',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
     'AWG' => array(
       'code' => 'AWG',
+      'numeric_code' => '533',
       'symbol' => 'Afl.',
       'name' => t('Aruban Florin'),
-      'numeric_code' => '533',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Guilder'),
+      'symbol_placement' => 'before',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
+    ),
+    'AUD' => array(
+      'code' => 'AUD',
+      'numeric_code' => '036',
+      'symbol' => '$',
+      'name' => t('Australian Dollar'),
+      'symbol_placement' => 'before',
     ),
     'AZN' => array(
       'code' => 'AZN',
-      'symbol' => 'man.',
-      'name' => t('Azerbaijanian Manat'),
-      'minor_unit' => t('Qəpik'),
-      'major_unit' => t('New Manat'),
+      'numeric_code' => '944',
+      'symbol' => '₼',
+      'name' => t('Azerbaijani Manat'),
+      'symbol_placement' => 'before',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
     ),
-    'BAM' => array(
-      'code' => 'BAM',
-      'symbol' => 'KM',
-      'name' => t('Bosnia-Herzegovina Convertible Mark'),
-      'numeric_code' => '977',
-      'minor_unit' => t('Fening'),
-      'major_unit' => t('Convertible Marka'),
+    'BSD' => array(
+      'code' => 'BSD',
+      'numeric_code' => '044',
+      'symbol' => '$',
+      'name' => t('Bahamian Dollar'),
+      'symbol_placement' => 'before',
     ),
-    'BBD' => array(
-      'code' => 'BBD',
-      'symbol' => 'Bds$',
-      'name' => t('Barbadian Dollar'),
-      'numeric_code' => '052',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+    'BHD' => array(
+      'code' => 'BHD',
+      'numeric_code' => '048',
+      'symbol' => 'د.ب.‏',
+      'name' => t('Bahraini Dinar'),
+      'symbol_placement' => 'after',
+      'decimals' => '3',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
     ),
     'BDT' => array(
       'code' => 'BDT',
-      'symbol' => 'Tk',
-      'name' => t('Bangladeshi Taka'),
       'numeric_code' => '050',
-      'minor_unit' => t('Paisa'),
-      'major_unit' => t('Taka'),
-    ),
-   'BGN' => array(
-     'code' => 'BGN',
-     'symbol' => 'лв',
-     'name' => t('Bulgarian lev'),
-     'thousands_separator' => ' ',
-     'decimal_separator' => ',',
-     'symbol_placement' => 'after',
-     'code_placement' => 'hidden',
-     'numeric_code' => '975',
-     'minor_unit' => t('Stotinka'),
-     'major_unit' => t('Lev'),
+      'symbol' => '৳',
+      'name' => t('Bangladeshi Taka'),
+      'symbol_placement' => 'after',
     ),
-    'BHD' => array(
-      'code' => 'BHD',
-      'symbol' => 'BD',
-      'name' => t('Bahraini Dinar'),
-      'decimals' => 3,
-      'numeric_code' => '048',
-      'minor_unit' => t('Fils'),
-      'major_unit' => t('Dinar'),
+    'BBD' => array(
+      'code' => 'BBD',
+      'numeric_code' => '052',
+      'symbol' => '$',
+      'name' => t('Barbadian Dollar'),
+      'symbol_placement' => 'before',
     ),
-    'BIF' => array(
-      'code' => 'BIF',
-      'symbol' => 'FBu',
-      'name' => t('Burundian Franc'),
-      'decimals' => 0,
-      'numeric_code' => '108',
-      'minor_unit' => t('Centime'),
-      'major_unit' => t('Franc'),
+    'BYN' => array(
+      'code' => 'BYN',
+      'numeric_code' => '933',
+      'symbol' => 'Br',
+      'name' => t('Belarusian Ruble'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
+    ),
+    'BZD' => array(
+      'code' => 'BZD',
+      'numeric_code' => '084',
+      'symbol' => '$',
+      'name' => t('Belize Dollar'),
+      'symbol_placement' => 'before',
     ),
     'BMD' => array(
       'code' => 'BMD',
-      'symbol' => 'BD$',
-      'name' => t('Bermudan Dollar'),
       'numeric_code' => '060',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+      'symbol' => '$',
+      'name' => t('Bermudan Dollar'),
+      'symbol_placement' => 'before',
     ),
-    'BND' => array(
-      'code' => 'BND',
-      'symbol' => 'BN$',
-      'name' => t('Brunei Dollar'),
-      'numeric_code' => '096',
-      'minor_unit' => t('Sen'),
-      'major_unit' => t('Dollar'),
+    'BTN' => array(
+      'code' => 'BTN',
+      'numeric_code' => '064',
+      'symbol' => 'Nu.',
+      'name' => t('Bhutanese Ngultrum'),
+      'symbol_placement' => 'before',
     ),
     'BOB' => array(
       'code' => 'BOB',
+      'numeric_code' => '068',
       'symbol' => 'Bs',
       'name' => t('Bolivian Boliviano'),
-      'numeric_code' => '068',
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Bolivianos'),
+      'symbol_placement' => 'before',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
+    ),
+    'BAM' => array(
+      'code' => 'BAM',
+      'numeric_code' => '977',
+      'symbol' => 'KM',
+      'name' => t('Bosnia-Herzegovina Convertible Mark'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
+    ),
+    'BWP' => array(
+      'code' => 'BWP',
+      'numeric_code' => '072',
+      'symbol' => 'P',
+      'name' => t('Botswanan Pula'),
+      'symbol_placement' => 'before',
     ),
     'BRL' => array(
       'code' => 'BRL',
+      'numeric_code' => '986',
       'symbol' => 'R$',
       'name' => t('Brazilian Real'),
-      'numeric_code' => '986',
       'symbol_placement' => 'before',
-      'code_placement' => 'hidden',
       'thousands_separator' => '.',
       'decimal_separator' => ',',
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Reais'),
     ),
-    'BSD' => array(
-      'code' => 'BSD',
-      'symbol' => 'BS$',
-      'name' => t('Bahamian Dollar'),
-      'numeric_code' => '044',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+    'GBP' => array(
+      'code' => 'GBP',
+      'numeric_code' => '826',
+      'symbol' => '£',
+      'name' => t('British Pound'),
+      'symbol_placement' => 'before',
     ),
-    'BTN' => array(
-      'code' => 'BTN',
-      'symbol' => 'Nu.',
-      'name' => t('Bhutanese Ngultrum'),
-      'numeric_code' => '064',
-      'minor_unit' => t('Chetrum'),
-      'major_unit' => t('Ngultrum'),
+    'BND' => array(
+      'code' => 'BND',
+      'numeric_code' => '096',
+      'symbol' => '$',
+      'name' => t('Brunei Dollar'),
+      'symbol_placement' => 'before',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
     ),
-    'BWP' => array(
-      'code' => 'BWP',
-      'symbol' => 'BWP',
-      'name' => t('Botswanan Pula'),
-      'numeric_code' => '072',
-      'minor_unit' => t('Thebe'),
-      'major_unit' => t('Pulas'),
-    ),
-    'BYR' => array(
-      'code' => 'BYR',
-      'symbol' => 'руб.',
-      'name' => t('Belarusian ruble'),
-      'numeric_code' => '974',
+    'BGN' => array(
+      'code' => 'BGN',
+      'numeric_code' => '975',
+      'symbol' => 'лв.',
+      'name' => t('Bulgarian Lev'),
       'symbol_placement' => 'after',
-      'code_placement' => 'hidden',
-      'decimals' => 0,
-      'thousands_separator' => ' ',
-      'major_unit' => t('Ruble'),
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
-    'BZD' => array(
-      'code' => 'BZD',
-      'symbol' => 'BZ$',
-      'name' => t('Belize Dollar'),
-      'numeric_code' => '084',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+    'BIF' => array(
+      'code' => 'BIF',
+      'numeric_code' => '108',
+      'symbol' => 'FBu',
+      'name' => t('Burundian Franc'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
+    ),
+    'KHR' => array(
+      'code' => 'KHR',
+      'numeric_code' => '116',
+      'symbol' => '៛',
+      'name' => t('Cambodian Riel'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
     ),
     'CAD' => array(
       'code' => 'CAD',
+      'numeric_code' => '124',
       'symbol' => '$',
       'name' => t('Canadian Dollar'),
-      'numeric_code' => '124',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+      'symbol_placement' => 'before',
     ),
-    'CDF' => array(
-      'code' => 'CDF',
-      'symbol' => 'CDF',
-      'name' => t('Congolese Franc'),
-      'numeric_code' => '976',
-      'minor_unit' => t('Centime'),
-      'major_unit' => t('Franc'),
+    'CVE' => array(
+      'code' => 'CVE',
+      'numeric_code' => '132',
+      'symbol' => '​',
+      'name' => t('Cape Verdean Escudo'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
-    'CHF' => array(
-      'code' => 'CHF',
-      'symbol' => 'Fr.',
-      'name' => t('Swiss Franc'),
-      'rounding_step' => '0.05',
-      'numeric_code' => '756',
-      'thousands_separator' => "'",
-      'minor_unit' => t('Rappen'),
-      'major_unit' => t('Franc'),
+    'KYD' => array(
+      'code' => 'KYD',
+      'numeric_code' => '136',
+      'symbol' => '$',
+      'name' => t('Cayman Islands Dollar'),
+      'symbol_placement' => 'before',
+    ),
+    'XAF' => array(
+      'code' => 'XAF',
+      'numeric_code' => '950',
+      'symbol' => 'FCFA',
+      'name' => t('Central African CFA Franc'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
+    ),
+    'XPF' => array(
+      'code' => 'XPF',
+      'numeric_code' => '953',
+      'symbol' => 'FCFP',
+      'name' => t('CFP Franc'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
     'CLP' => array(
       'code' => 'CLP',
-      'symbol' => 'CL$',
-      'name' => t('Chilean Peso'),
-      'decimals' => 0,
       'numeric_code' => '152',
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Peso'),
+      'symbol' => '$',
+      'name' => t('Chilean Peso'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
     ),
     'CNY' => array(
       'code' => 'CNY',
-      'symbol' => '¥',
-      'name' => t('Chinese Yuan Renminbi'),
       'numeric_code' => '156',
+      'symbol' => '￥',
+      'name' => t('Chinese Yuan'),
       'symbol_placement' => 'before',
-      'code_placement' => 'hidden',
-      'thousands_separator' => '',
-      'minor_unit' => t('Fen'),
-      'major_unit' => t('Yuan'),
     ),
     'COP' => array(
       'code' => 'COP',
+      'numeric_code' => '170',
       'symbol' => '$',
       'name' => t('Colombian Peso'),
-      'decimals' => 0,
-      'numeric_code' => '170',
       'symbol_placement' => 'before',
-      'code_placement' => 'hidden',
+      'decimals' => '0',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
+    ),
+    'KMF' => array(
+      'code' => 'KMF',
+      'numeric_code' => '174',
+      'symbol' => 'ف.ج.ق.‏',
+      'name' => t('Comorian Franc'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
+    ),
+    'CDF' => array(
+      'code' => 'CDF',
+      'numeric_code' => '976',
+      'symbol' => 'FC',
+      'name' => t('Congolese Franc'),
+      'symbol_placement' => 'before',
       'thousands_separator' => '.',
       'decimal_separator' => ',',
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Peso'),
     ),
     'CRC' => array(
       'code' => 'CRC',
-      'symbol' => '¢',
-      'name' => t('Costa Rican Colón'),
-      'decimals' => 0,
       'numeric_code' => '188',
-      'minor_unit' => t('Céntimo'),
-      'major_unit' => t('Colón'),
+      'symbol' => '₡',
+      'name' => t('Costa Rican Colón'),
+      'symbol_placement' => 'before',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
+    ),
+    'HRK' => array(
+      'code' => 'HRK',
+      'numeric_code' => '191',
+      'symbol' => 'HRK',
+      'name' => t('Croatian Kuna'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
     ),
     'CUC' => array(
       'code' => 'CUC',
-      'symbol' => 'CUC$',
+      'numeric_code' => '931',
+      'symbol' => 'CUC',
       'name' => t('Cuban Convertible Peso'),
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Peso'),
+      'symbol_placement' => 'before',
     ),
     'CUP' => array(
       'code' => 'CUP',
-      'symbol' => 'CU$',
-      'name' => t('Cuban Peso'),
       'numeric_code' => '192',
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Peso'),
-    ),
-    'CVE' => array(
-      'code' => 'CVE',
-      'symbol' => 'CV$',
-      'name' => t('Cape Verdean Escudo'),
-      'numeric_code' => '132',
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Escudo'),
+      'symbol' => '$',
+      'name' => t('Cuban Peso'),
+      'symbol_placement' => 'before',
     ),
     'CZK' => array(
       'code' => 'CZK',
-      'symbol' => 'Kč',
-      'name' => t('Czech Republic Koruna'),
       'numeric_code' => '203',
-      'thousands_separator' => ' ',
-      'decimal_separator' => ',',
+      'symbol' => 'Kč',
+      'name' => t('Czech Koruna'),
       'symbol_placement' => 'after',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Haléř'),
-      'major_unit' => t('Koruna'),
-    ),
-    'DJF' => array(
-      'code' => 'DJF',
-      'symbol' => 'Fdj',
-      'name' => t('Djiboutian Franc'),
-      'numeric_code' => '262',
-      'decimals' => 0,
-      'minor_unit' => t('Centime'),
-      'major_unit' => t('Franc'),
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
     'DKK' => array(
       'code' => 'DKK',
+      'numeric_code' => '208',
       'symbol' => 'kr.',
       'name' => t('Danish Krone'),
-      'numeric_code' => '208',
-      'thousands_separator' => ' ',
-      'decimal_separator' => ',',
       'symbol_placement' => 'after',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Øre'),
-      'major_unit' => t('Kroner'),
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
+    ),
+    'DJF' => array(
+      'code' => 'DJF',
+      'numeric_code' => '262',
+      'symbol' => 'DJF',
+      'name' => t('Djiboutian Franc'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
     ),
     'DOP' => array(
       'code' => 'DOP',
+      'numeric_code' => '214',
       'symbol' => 'RD$',
       'name' => t('Dominican Peso'),
-      'numeric_code' => '214',
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Peso'),
+      'symbol_placement' => 'before',
     ),
-    'DZD' => array(
-      'code' => 'DZD',
-      'symbol' => 'DA',
-      'name' => t('Algerian Dinar'),
-      'numeric_code' => '012',
-      'minor_unit' => t('Santeem'),
-      'major_unit' => t('Dinar'),
-    ),
-    'EEK' => array(
-      'code' => 'EEK',
-      'symbol' => 'Ekr',
-      'name' => t('Estonian Kroon'),
-      'thousands_separator' => ' ',
-      'decimal_separator' => ',',
-      'numeric_code' => '233',
-      'minor_unit' => t('Sent'),
-      'major_unit' => t('Krooni'),
+    'XCD' => array(
+      'code' => 'XCD',
+      'numeric_code' => '951',
+      'symbol' => '$',
+      'name' => t('East Caribbean Dollar'),
+      'symbol_placement' => 'before',
     ),
     'EGP' => array(
       'code' => 'EGP',
-      'symbol' => 'EG£',
-      'name' => t('Egyptian Pound'),
       'numeric_code' => '818',
-      'minor_unit' => t('Piastr'),
-      'major_unit' => t('Pound'),
+      'symbol' => 'ج.م.‏',
+      'name' => t('Egyptian Pound'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
     ),
     'ERN' => array(
       'code' => 'ERN',
+      'numeric_code' => '232',
       'symbol' => 'Nfk',
       'name' => t('Eritrean Nakfa'),
-      'numeric_code' => '232',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Nakfa'),
+      'symbol_placement' => 'before',
     ),
     'ETB' => array(
       'code' => 'ETB',
-      'symbol' => 'Br',
-      'name' => t('Ethiopian Birr'),
       'numeric_code' => '230',
-      'minor_unit' => t('Santim'),
-      'major_unit' => t('Birr'),
+      'symbol' => 'ETB',
+      'name' => t('Ethiopian Birr'),
+      'symbol_placement' => 'before',
     ),
     'EUR' => array(
       'code' => 'EUR',
+      'numeric_code' => '978',
       'symbol' => '€',
       'name' => t('Euro'),
-      'thousands_separator' => ' ',
-      'decimal_separator' => ',',
       'symbol_placement' => 'after',
-      'code_placement' => 'hidden',
-      'numeric_code' => '978',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Euro'),
-    ),
-    'FJD' => array(
-      'code' => 'FJD',
-      'symbol' => 'FJ$',
-      'name' => t('Fijian Dollar'),
-      'numeric_code' => '242',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
     'FKP' => array(
       'code' => 'FKP',
-      'symbol' => 'FK£',
-      'name' => t('Falkland Islands Pound'),
       'numeric_code' => '238',
-      'minor_unit' => t('Penny'),
-      'major_unit' => t('Pound'),
-    ),
-    'GBP' => array(
-      'code' => 'GBP',
       'symbol' => '£',
-      'name' => t('British Pound Sterling'),
-      'numeric_code' => '826',
+      'name' => t('Falkland Islands Pound'),
+      'symbol_placement' => 'before',
+    ),
+    'FJD' => array(
+      'code' => 'FJD',
+      'numeric_code' => '242',
+      'symbol' => '$',
+      'name' => t('Fijian Dollar'),
+      'symbol_placement' => 'before',
+    ),
+    'GMD' => array(
+      'code' => 'GMD',
+      'numeric_code' => '270',
+      'symbol' => 'D',
+      'name' => t('Gambian Dalasi'),
       'symbol_placement' => 'before',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Penny'),
-      'major_unit' => t('Pound'),
+    ),
+    'GEL' => array(
+      'code' => 'GEL',
+      'numeric_code' => '981',
+      'symbol' => '₾',
+      'name' => t('Georgian Lari'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
     'GHS' => array(
       'code' => 'GHS',
+      'numeric_code' => '936',
       'symbol' => 'GH₵',
       'name' => t('Ghanaian Cedi'),
-      'minor_unit' => t('Pesewa'),
-      'major_unit' => t('Cedi'),
+      'symbol_placement' => 'before',
     ),
     'GIP' => array(
       'code' => 'GIP',
-      'symbol' => 'GI£',
-      'name' => t('Gibraltar Pound'),
       'numeric_code' => '292',
-      'minor_unit' => t('Penny'),
-      'major_unit' => t('Pound'),
+      'symbol' => '£',
+      'name' => t('Gibraltar Pound'),
+      'symbol_placement' => 'before',
     ),
-    'GMD' => array(
-      'code' => 'GMD',
-      'symbol' => 'GMD',
-      'name' => t('Gambian Dalasi'),
-      'numeric_code' => '270',
-      'minor_unit' => t('Butut'),
-      'major_unit' => t('Dalasis'),
+    'GTQ' => array(
+      'code' => 'GTQ',
+      'numeric_code' => '320',
+      'symbol' => 'Q',
+      'name' => t('Guatemalan Quetzal'),
+      'symbol_placement' => 'before',
     ),
     'GNF' => array(
       'code' => 'GNF',
+      'numeric_code' => '324',
       'symbol' => 'FG',
       'name' => t('Guinean Franc'),
-      'decimals' => 0,
-      'numeric_code' => '324',
-      'minor_unit' => t('Centime'),
-      'major_unit' => t('Franc'),
-    ),
-    'GTQ' => array(
-      'code' => 'GTQ',
-      'symbol' => 'GTQ',
-      'name' => t('Guatemalan Quetzal'),
-      'numeric_code' => '320',
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Quetzales'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
     'GYD' => array(
       'code' => 'GYD',
-      'symbol' => 'GY$',
-      'name' => t('Guyanaese Dollar'),
-      'decimals' => 0,
       'numeric_code' => '328',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+      'symbol' => '$',
+      'name' => t('Guyanaese Dollar'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
     ),
-    'HKD' => array(
-      'code' => 'HKD',
-      'symbol' => 'HK$',
-      'name' => t('Hong Kong Dollar'),
-      'numeric_code' => '344',
+    'HTG' => array(
+      'code' => 'HTG',
+      'numeric_code' => '332',
+      'symbol' => 'HTG',
+      'name' => t('Haitian Gourde'),
       'symbol_placement' => 'before',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
     ),
     'HNL' => array(
       'code' => 'HNL',
-      'symbol' => 'HNL',
-      'name' => t('Honduran Lempira'),
       'numeric_code' => '340',
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Lempiras'),
-    ),
-    'HRK' => array(
-      'code' => 'HRK',
-      'symbol' => 'kn',
-      'name' => t('Croatian Kuna'),
-      'numeric_code' => '191',
-      'minor_unit' => t('Lipa'),
-      'major_unit' => t('Kuna'),
+      'symbol' => 'L',
+      'name' => t('Honduran Lempira'),
+      'symbol_placement' => 'before',
     ),
-    'HTG' => array(
-      'code' => 'HTG',
-      'symbol' => 'HTG',
-      'name' => t('Haitian Gourde'),
-      'numeric_code' => '332',
-      'minor_unit' => t('Centime'),
-      'major_unit' => t('Gourde'),
+    'HKD' => array(
+      'code' => 'HKD',
+      'numeric_code' => '344',
+      'symbol' => 'HK$',
+      'name' => t('Hong Kong Dollar'),
+      'symbol_placement' => 'before',
     ),
     'HUF' => array(
       'code' => 'HUF',
+      'numeric_code' => '348',
       'symbol' => 'Ft',
       'name' => t('Hungarian Forint'),
-      'numeric_code' => '348',
+      'symbol_placement' => 'after',
+      'thousands_separator' => ' ',
       'decimal_separator' => ',',
-      'thousands_separator' => ' ',
-      'decimals' => 0,
+    ),
+    'ISK' => array(
+      'code' => 'ISK',
+      'numeric_code' => '352',
+      'symbol' => 'ISK',
+      'name' => t('Icelandic Króna'),
       'symbol_placement' => 'after',
-      'code_placement' => 'hidden',
-      'major_unit' => t('Forint'),
+      'decimals' => '0',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
+    ),
+    'INR' => array(
+      'code' => 'INR',
+      'numeric_code' => '356',
+      'symbol' => '₹',
+      'name' => t('Indian Rupee'),
+      'symbol_placement' => 'before',
     ),
     'IDR' => array(
       'code' => 'IDR',
+      'numeric_code' => '360',
       'symbol' => 'Rp',
       'name' => t('Indonesian Rupiah'),
-      'decimals' => 0,
-      'numeric_code' => '360',
-      'minor_unit' => t('Sen'),
-      'major_unit' => t('Rupiahs'),
-    ),
-    'ILS' => array(
-      'code' => 'ILS',
-      'symbol' => '₪',
-      'name' => t('Israeli New Shekel'),
-      'numeric_code' => '376',
       'symbol_placement' => 'before',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Agora'),
-      'major_unit' => t('New Shekels'),
-    ),
-    'INR' => array(
-      'code' => 'INR',
-      'symbol' => 'Rs',
-      'name' => t('Indian Rupee'),
-      'numeric_code' => '356',
-      'minor_unit' => t('Paisa'),
-      'major_unit' => t('Rupee'),
+      'decimals' => '0',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
     ),
     'IRR' => array(
       'code' => 'IRR',
+      'numeric_code' => '364',
       'symbol' => 'ریال',
       'name' => t('Iranian Rial'),
-      'decimals' => 0,
-      'numeric_code' => '364',
       'symbol_placement' => 'after',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Rial'),
-      'major_unit' => t('Toman'),
+      'decimals' => '0',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
+    ),
+    'IQD' => array(
+      'code' => 'IQD',
+      'numeric_code' => '368',
+      'symbol' => 'د.ع.‏',
+      'name' => t('Iraqi Dinar'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
     ),
-    'ISK' => array(
-      'code' => 'ISK',
-      'symbol' => 'Ikr',
-      'name' => t('Icelandic Króna'),
-      'decimals' => 0,
-      'thousands_separator' => ' ',
-      'numeric_code' => '352',
-      'minor_unit' => t('Eyrir'),
-      'major_unit' => t('Kronur'),
+    'ILS' => array(
+      'code' => 'ILS',
+      'numeric_code' => '376',
+      'symbol' => '₪',
+      'name' => t('Israeli New Shekel'),
+      'symbol_placement' => 'after',
     ),
     'JMD' => array(
       'code' => 'JMD',
-      'symbol' => 'J$',
-      'name' => t('Jamaican Dollar'),
       'numeric_code' => '388',
+      'symbol' => '$',
+      'name' => t('Jamaican Dollar'),
       'symbol_placement' => 'before',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
-    ),
-    'JOD' => array(
-      'code' => 'JOD',
-      'symbol' => 'JD',
-      'name' => t('Jordanian Dinar'),
-      'decimals' => 3,
-      'numeric_code' => '400',
-      'minor_unit' => t('Piastr'),
-      'major_unit' => t('Dinar'),
     ),
     'JPY' => array(
       'code' => 'JPY',
-      'symbol' => '¥',
-      'name' => t('Japanese Yen'),
-      'decimals' => 0,
       'numeric_code' => '392',
+      'symbol' => '￥',
+      'name' => t('Japanese Yen'),
       'symbol_placement' => 'before',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Sen'),
-      'major_unit' => t('Yen'),
+      'decimals' => '0',
+    ),
+    'JOD' => array(
+      'code' => 'JOD',
+      'numeric_code' => '400',
+      'symbol' => 'د.أ.‏',
+      'name' => t('Jordanian Dinar'),
+      'symbol_placement' => 'after',
+      'decimals' => '3',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
+    ),
+    'KZT' => array(
+      'code' => 'KZT',
+      'numeric_code' => '398',
+      'symbol' => '₸',
+      'name' => t('Kazakhstani Tenge'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
     'KES' => array(
       'code' => 'KES',
+      'numeric_code' => '404',
       'symbol' => 'Ksh',
       'name' => t('Kenyan Shilling'),
-      'numeric_code' => '404',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Shilling'),
-    ),
-    'KGS' => array(
-      'code' => 'KGS',
-      'code_placement' => 'hidden',
-      'symbol' => 'сом',
-      'symbol_placement' => 'after',
-      'name' => t('Kyrgyzstani Som'),
-      'numeric_code' => '417',
-      'thousands_separator' => '',
-      'major_unit' => t('Som'),
-      'minor_unit' => t('Tyiyn'),
-    ),
-    'KMF' => array(
-      'code' => 'KMF',
-      'symbol' => 'CF',
-      'name' => t('Comorian Franc'),
-      'decimals' => 0,
-      'numeric_code' => '174',
-      'minor_unit' => t('Centime'),
-      'major_unit' => t('Franc'),
-    ),
-    'KRW' => array(
-      'code' => 'KRW',
-      'symbol' => '₩',
-      'name' => t('South Korean Won'),
-      'decimals' => 0,
-      'numeric_code' => '410',
-      'minor_unit' => t('Jeon'),
-      'major_unit' => t('Won'),
+      'symbol_placement' => 'before',
     ),
     'KWD' => array(
       'code' => 'KWD',
-      'symbol' => 'KD',
-      'name' => t('Kuwaiti Dinar'),
-      'decimals' => 3,
       'numeric_code' => '414',
-      'minor_unit' => t('Fils'),
-      'major_unit' => t('Dinar'),
-    ),
-    'KYD' => array(
-      'code' => 'KYD',
-      'symbol' => 'KY$',
-      'name' => t('Cayman Islands Dollar'),
-      'numeric_code' => '136',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+      'symbol' => 'د.ك.‏',
+      'name' => t('Kuwaiti Dinar'),
+      'symbol_placement' => 'after',
+      'decimals' => '3',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
     ),
-    'KZT' => array(
-      'code' => 'KZT',
-      'symbol' => 'тг.',
-      'name' => t('Kazakhstani tenge'),
-      'numeric_code' => '398',
-      'thousands_separator' => ' ',
-      'decimal_separator' => ',',
+    'KGS' => array(
+      'code' => 'KGS',
+      'numeric_code' => '417',
+      'symbol' => 'сом',
+      'name' => t('Kyrgystani Som'),
       'symbol_placement' => 'after',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Tiyn'),
-      'major_unit' => t('Tenge'),
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
     'LAK' => array(
       'code' => 'LAK',
-      'symbol' => '₭N',
-      'name' => t('Laotian Kip'),
-      'decimals' => 0,
       'numeric_code' => '418',
-      'minor_unit' => t('Att'),
-      'major_unit' => t('Kips'),
+      'symbol' => '₭',
+      'name' => t('Laotian Kip'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
     ),
     'LBP' => array(
       'code' => 'LBP',
-      'symbol' => 'LB£',
-      'name' => t('Lebanese Pound'),
-      'decimals' => 0,
       'numeric_code' => '422',
-      'minor_unit' => t('Piastre'),
-      'major_unit' => t('Pound'),
-    ),
-    'LKR' => array(
-      'code' => 'LKR',
-      'symbol' => 'SLRs',
-      'name' => t('Sri Lanka Rupee'),
-      'numeric_code' => '144',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Rupee'),
-    ),
-    'LRD' => array(
-      'code' => 'LRD',
-      'symbol' => 'L$',
-      'name' => t('Liberian Dollar'),
-      'numeric_code' => '430',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+      'symbol' => 'ل.ل.‏',
+      'name' => t('Lebanese Pound'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
     ),
     'LSL' => array(
       'code' => 'LSL',
+      'numeric_code' => '426',
       'symbol' => 'LSL',
       'name' => t('Lesotho Loti'),
-      'numeric_code' => '426',
-      'minor_unit' => t('Sente'),
-      'major_unit' => t('Loti'),
-    ),
-    'LTL' => array(
-      'code' => 'LTL',
-      'symbol' => 'Lt',
-      'name' => t('Lithuanian Litas'),
-      'numeric_code' => '440',
-      'minor_unit' => t('Centas'),
-      'major_unit' => t('Litai'),
-    ),
-    'LVL' => array(
-      'code' => 'LVL',
-      'symbol' => 'Ls',
-      'name' => t('Latvian Lats'),
-      'numeric_code' => '428',
-      'minor_unit' => t('Santims'),
-      'major_unit' => t('Lati'),
+      'symbol_placement' => 'before',
+    ),
+    'LRD' => array(
+      'code' => 'LRD',
+      'numeric_code' => '430',
+      'symbol' => '$',
+      'name' => t('Liberian Dollar'),
+      'symbol_placement' => 'before',
     ),
     'LYD' => array(
       'code' => 'LYD',
-      'symbol' => 'LD',
-      'name' => t('Libyan Dinar'),
-      'decimals' => 3,
       'numeric_code' => '434',
-      'minor_unit' => t('Dirham'),
-      'major_unit' => t('Dinar'),
-    ),
-    'MAD' => array(
-      'code' => 'MAD',
-      'symbol' => ' Dhs',
-      'name' => t('Moroccan Dirham'),
-      'numeric_code' => '504',
-      'symbol_placement' => 'after',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Santimat'),
-      'major_unit' => t('Dirhams'),
+      'symbol' => 'د.ل.‏',
+      'name' => t('Libyan Dinar'),
+      'symbol_placement' => 'before',
+      'decimals' => '3',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
     ),
-    'MDL' => array(
-      'code' => 'MDL',
-      'symbol' => 'MDL',
-      'name' => t('Moldovan leu'),
-      'symbol_placement' => 'after',
-      'numeric_code' => '498',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('bani'),
-      'major_unit' => t('Lei'),
+    'MOP' => array(
+      'code' => 'MOP',
+      'numeric_code' => '446',
+      'symbol' => 'MOP$',
+      'name' => t('Macanese Pataca'),
+      'symbol_placement' => 'before',
     ),
     'MKD' => array(
       'code' => 'MKD',
+      'numeric_code' => '807',
       'symbol' => 'ден',
-      'name' => t('Macedonian denar'),
+      'name' => t('Macedonian Denar'),
       'symbol_placement' => 'after',
-      'numeric_code' => '807',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Deni'),
-      'major_unit' => t('Denari'),
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
     ),
-    'MMK' => array(
-      'code' => 'MMK',
-      'symbol' => 'MMK',
-      'name' => t('Myanma Kyat'),
-      'decimals' => 0,
-      'numeric_code' => '104',
-      'minor_unit' => t('Pya'),
-      'major_unit' => t('Kyat'),
+    'MGA' => array(
+      'code' => 'MGA',
+      'numeric_code' => '969',
+      'symbol' => 'Ar',
+      'name' => t('Malagasy Ariary'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
     ),
-    'MNT' => array(
-      'code' => 'MNT',
-      'symbol' => '₮',
-      'name' => t('Mongolian Tugrik'),
-      'decimals' => 0,
-      'numeric_code' => '496',
-      'minor_unit' => t('Möngö'),
-      'major_unit' => t('Tugriks'),
+    'MWK' => array(
+      'code' => 'MWK',
+      'numeric_code' => '454',
+      'symbol' => 'MK',
+      'name' => t('Malawian Kwacha'),
+      'symbol_placement' => 'before',
     ),
-    'MOP' => array(
-      'code' => 'MOP',
-      'symbol' => 'MOP$',
-      'name' => t('Macanese Pataca'),
-      'numeric_code' => '446',
-      'minor_unit' => t('Avo'),
-      'major_unit' => t('Pataca'),
+    'MYR' => array(
+      'code' => 'MYR',
+      'numeric_code' => '458',
+      'symbol' => 'RM',
+      'name' => t('Malaysian Ringgit'),
+      'symbol_placement' => 'before',
+    ),
+    'MVR' => array(
+      'code' => 'MVR',
+      'numeric_code' => '462',
+      'symbol' => 'MVR',
+      'name' => t('Maldivian Rufiyaa'),
+      'symbol_placement' => 'before',
     ),
     'MRO' => array(
       'code' => 'MRO',
-      'symbol' => 'UM',
-      'name' => t('Mauritanian Ouguiya'),
-      'decimals' => 0,
       'numeric_code' => '478',
-      'minor_unit' => t('Khoums'),
-      'major_unit' => t('Ouguiya'),
-    ),
-    'MTP' => array(
-      'code' => 'MTP',
-      'symbol' => 'MT£',
-      'name' => t('Maltese Pound'),
-      'minor_unit' => t('Shilling'),
-      'major_unit' => t('Pound'),
+      'symbol' => 'أ.م.‏',
+      'name' => t('Mauritanian Ouguiya'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
     ),
     'MUR' => array(
       'code' => 'MUR',
-      'symbol' => 'MURs',
-      'name' => t('Mauritian Rupee'),
-      'decimals' => 0,
       'numeric_code' => '480',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Rupee'),
+      'symbol' => 'Rs',
+      'name' => t('Mauritian Rupee'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
+      'thousands_separator' => ' ',
     ),
     'MXN' => array(
       'code' => 'MXN',
+      'numeric_code' => '484',
       'symbol' => '$',
       'name' => t('Mexican Peso'),
-      'numeric_code' => '484',
       'symbol_placement' => 'before',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Peso'),
     ),
-    'MYR' => array(
-      'code' => 'MYR',
-      'symbol' => 'RM',
-      'name' => t('Malaysian Ringgit'),
-      'numeric_code' => '458',
+    'MDL' => array(
+      'code' => 'MDL',
+      'numeric_code' => '498',
+      'symbol' => 'L',
+      'name' => t('Moldovan Leu'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
+    ),
+    'MNT' => array(
+      'code' => 'MNT',
+      'numeric_code' => '496',
+      'symbol' => '₮',
+      'name' => t('Mongolian Tugrik'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
+    ),
+    'MAD' => array(
+      'code' => 'MAD',
+      'numeric_code' => '504',
+      'symbol' => 'د.م.‏',
+      'name' => t('Moroccan Dirham'),
       'symbol_placement' => 'before',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Sen'),
-      'major_unit' => t('Ringgits'),
     ),
     'MZN' => array(
       'code' => 'MZN',
+      'numeric_code' => '943',
       'symbol' => 'MTn',
       'name' => t('Mozambican Metical'),
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Metical'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
+    ),
+    'MMK' => array(
+      'code' => 'MMK',
+      'numeric_code' => '104',
+      'symbol' => 'K',
+      'name' => t('Myanmar Kyat'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
     ),
     'NAD' => array(
       'code' => 'NAD',
-      'symbol' => 'N$',
-      'name' => t('Namibian Dollar'),
       'numeric_code' => '516',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+      'symbol' => '$',
+      'name' => t('Namibian Dollar'),
+      'symbol_placement' => 'before',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
+    ),
+    'NPR' => array(
+      'code' => 'NPR',
+      'numeric_code' => '524',
+      'symbol' => 'नेरू',
+      'name' => t('Nepalese Rupee'),
+      'symbol_placement' => 'before',
+    ),
+    'ANG' => array(
+      'code' => 'ANG',
+      'numeric_code' => '532',
+      'symbol' => 'ANG',
+      'name' => t('Netherlands Antillean Guilder'),
+      'symbol_placement' => 'before',
+    ),
+    'TWD' => array(
+      'code' => 'TWD',
+      'numeric_code' => '901',
+      'symbol' => '$',
+      'name' => t('New Taiwan Dollar'),
+      'symbol_placement' => 'before',
+    ),
+    'NZD' => array(
+      'code' => 'NZD',
+      'numeric_code' => '554',
+      'symbol' => '$',
+      'name' => t('New Zealand Dollar'),
+      'symbol_placement' => 'before',
+    ),
+    'NIO' => array(
+      'code' => 'NIO',
+      'numeric_code' => '558',
+      'symbol' => 'C$',
+      'name' => t('Nicaraguan Córdoba'),
+      'symbol_placement' => 'before',
     ),
     'NGN' => array(
       'code' => 'NGN',
+      'numeric_code' => '566',
       'symbol' => '₦',
       'name' => t('Nigerian Naira'),
-      'numeric_code' => '566',
-      'minor_unit' => t('Kobo'),
-      'major_unit' => t('Naira'),
+      'symbol_placement' => 'before',
     ),
-    'NIO' => array(
-      'code' => 'NIO',
-      'symbol' => 'C$',
-      'name' => t('Nicaraguan Cordoba Oro'),
-      'numeric_code' => '558',
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Cordoba'),
+    'KPW' => array(
+      'code' => 'KPW',
+      'numeric_code' => '408',
+      'symbol' => 'KPW',
+      'name' => t('North Korean Won'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
     ),
     'NOK' => array(
       'code' => 'NOK',
-      'symbol' => 'Nkr',
-      'name' => t('Norwegian Krone'),
-      'thousands_separator' => ' ',
-      'decimal_separator' => ',',
       'numeric_code' => '578',
-      'minor_unit' => t('Øre'),
-      'major_unit' => t('Krone'),
+      'symbol' => 'NOK',
+      'name' => t('Norwegian Krone'),
+      'symbol_placement' => 'before',
     ),
-    'NPR' => array(
-      'code' => 'NPR',
-      'symbol' => 'NPRs',
-      'name' => t('Nepalese Rupee'),
-      'numeric_code' => '524',
-      'minor_unit' => t('Paisa'),
-      'major_unit' => t('Rupee'),
+    'OMR' => array(
+      'code' => 'OMR',
+      'numeric_code' => '512',
+      'symbol' => 'ر.ع.‏',
+      'name' => t('Omani Rial'),
+      'symbol_placement' => 'after',
+      'decimals' => '3',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
     ),
-    'NZD' => array(
-      'code' => 'NZD',
-      'symbol' => '$',
-      'name' => t('New Zealand Dollar'),
+    'PKR' => array(
+      'code' => 'PKR',
+      'numeric_code' => '586',
+      'symbol' => 'Rs',
+      'name' => t('Pakistani Rupee'),
       'symbol_placement' => 'before',
-      'code_placement' => 'hidden',
-      'numeric_code' => '554',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+      'decimals' => '0',
     ),
     'PAB' => array(
       'code' => 'PAB',
+      'numeric_code' => '590',
       'symbol' => 'B/.',
       'name' => t('Panamanian Balboa'),
-      'numeric_code' => '590',
-      'minor_unit' => t('Centésimo'),
-      'major_unit' => t('Balboa'),
-    ),
-    'PEN' => array(
-      'code' => 'PEN',
-      'symbol' => 'S/.',
-      'name' => t('Peruvian Nuevo Sol'),
-      'numeric_code' => '604',
       'symbol_placement' => 'before',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Céntimo'),
-      'major_unit' => t('Nuevos Sole'),
     ),
     'PGK' => array(
       'code' => 'PGK',
+      'numeric_code' => '598',
       'symbol' => 'PGK',
       'name' => t('Papua New Guinean Kina'),
-      'numeric_code' => '598',
-      'minor_unit' => t('Toea'),
-      'major_unit' => t('Kina '),
+      'symbol_placement' => 'before',
+    ),
+    'PYG' => array(
+      'code' => 'PYG',
+      'numeric_code' => '600',
+      'symbol' => 'PYG',
+      'name' => t('Paraguayan Guarani'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
+    ),
+    'PEN' => array(
+      'code' => 'PEN',
+      'numeric_code' => '604',
+      'symbol' => 'S/',
+      'name' => t('Peruvian Sol'),
+      'symbol_placement' => 'before',
     ),
     'PHP' => array(
       'code' => 'PHP',
+      'numeric_code' => '608',
       'symbol' => '₱',
       'name' => t('Philippine Peso'),
-      'numeric_code' => '608',
-      'minor_unit' => t('Centavo'),
-      'major_unit' => t('Peso'),
-    ),
-    'PKR' => array(
-      'code' => 'PKR',
-      'symbol' => 'PKRs',
-      'name' => t('Pakistani Rupee'),
-      'decimals' => 0,
-      'numeric_code' => '586',
-      'minor_unit' => t('Paisa'),
-      'major_unit' => t('Rupee'),
+      'symbol_placement' => 'before',
     ),
     'PLN' => array(
       'code' => 'PLN',
-      'symbol' => 'zł',
-      'name' => t('Polish Złoty'),
-      'decimal_separator' => ',',
-      'thousands_separator' => ' ',
       'numeric_code' => '985',
+      'symbol' => 'zł',
+      'name' => t('Polish Zloty'),
       'symbol_placement' => 'after',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Grosz'),
-      'major_unit' => t('Złotych'),
-    ),
-    'PYG' => array(
-      'code' => 'PYG',
-      'symbol' => '₲',
-      'name' => t('Paraguayan Guarani'),
-      'decimals' => 0,
-      'numeric_code' => '600',
-      'minor_unit' => t('Céntimo'),
-      'major_unit' => t('Guarani'),
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
     'QAR' => array(
       'code' => 'QAR',
-      'symbol' => 'QR',
-      'name' => t('Qatari Rial'),
       'numeric_code' => '634',
-      'minor_unit' => t('Dirham'),
-      'major_unit' => t('Rial'),
-    ),
-    'RHD' => array(
-      'code' => 'RHD',
-      'symbol' => 'RH$',
-      'name' => t('Rhodesian Dollar'),
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+      'symbol' => 'ر.ق.‏',
+      'name' => t('Qatari Rial'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
     ),
     'RON' => array(
       'code' => 'RON',
+      'numeric_code' => '946',
       'symbol' => 'RON',
       'name' => t('Romanian Leu'),
-      'minor_unit' => t('Ban'),
-      'major_unit' => t('Leu'),
-    ),
-    'RSD' => array(
-      'code' => 'RSD',
-      'symbol' => 'din.',
-      'name' => t('Serbian Dinar'),
-      'decimals' => 0,
-      'minor_unit' => t('Para'),
-      'major_unit' => t('Dinars'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
     ),
     'RUB' => array(
       'code' => 'RUB',
-      'symbol' => 'руб.',
-      'name' => t('Russian Ruble'),
-      'thousands_separator' => ' ',
-      'decimal_separator' => ',',
       'numeric_code' => '643',
+      'symbol' => '₽',
+      'name' => t('Russian Ruble'),
       'symbol_placement' => 'after',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Kopek'),
-      'major_unit' => t('Ruble'),
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
+    ),
+    'RWF' => array(
+      'code' => 'RWF',
+      'numeric_code' => '646',
+      'symbol' => 'RF',
+      'name' => t('Rwandan Franc'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
+    ),
+    'WST' => array(
+      'code' => 'WST',
+      'numeric_code' => '882',
+      'symbol' => 'WST',
+      'name' => t('Samoan Tala'),
+      'symbol_placement' => 'before',
     ),
     'SAR' => array(
       'code' => 'SAR',
-      'symbol' => 'SR',
-      'name' => t('Saudi Riyal'),
       'numeric_code' => '682',
-      'minor_unit' => t('Hallallah'),
-      'major_unit' => t('Riyals'),
+      'symbol' => 'ر.س.‏',
+      'name' => t('Saudi Riyal'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
     ),
-    'SBD' => array(
-      'code' => 'SBD',
-      'symbol' => 'SI$',
-      'name' => t('Solomon Islands Dollar'),
-      'numeric_code' => '090',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+    'RSD' => array(
+      'code' => 'RSD',
+      'numeric_code' => '941',
+      'symbol' => 'RSD',
+      'name' => t('Serbian Dinar'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
     ),
     'SCR' => array(
       'code' => 'SCR',
-      'symbol' => 'SRe',
-      'name' => t('Seychellois Rupee'),
       'numeric_code' => '690',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Rupee'),
-    ),
-    'SDD' => array(
-      'code' => 'SDD',
-      'symbol' => 'LSd',
-      'name' => t('Old Sudanese Dinar'),
-      'numeric_code' => '736',
-      'minor_unit' => t('None'),
-      'major_unit' => t('Dinar'),
+      'symbol' => 'SCR',
+      'name' => t('Seychellois Rupee'),
+      'symbol_placement' => 'before',
     ),
-    'SEK' => array(
-      'code' => 'SEK',
-      'symbol' => 'kr',
-      'name' => t('Swedish Krona'),
-      'numeric_code' => '752',
-      'thousands_separator' => ' ',
-      'decimal_separator' => ',',
-      'symbol_placement' => 'after',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Öre'),
-      'major_unit' => t('Kronor'),
+    'SLL' => array(
+      'code' => 'SLL',
+      'numeric_code' => '694',
+      'symbol' => 'SLL',
+      'name' => t('Sierra Leonean Leone'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
     ),
     'SGD' => array(
       'code' => 'SGD',
-      'symbol' => 'S$',
-      'name' => t('Singapore Dollar'),
       'numeric_code' => '702',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
-    ),
-    'SHP' => array(
-      'code' => 'SHP',
-      'symbol' => 'SH£',
-      'name' => t('Saint Helena Pound'),
-      'numeric_code' => '654',
-      'minor_unit' => t('Penny'),
-      'major_unit' => t('Pound'),
+      'symbol' => '$',
+      'name' => t('Singapore Dollar'),
+      'symbol_placement' => 'before',
     ),
-    'SLL' => array(
-      'code' => 'SLL',
-      'symbol' => 'Le',
-      'name' => t('Sierra Leonean Leone'),
-      'decimals' => 0,
-      'numeric_code' => '694',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Leone'),
+    'SBD' => array(
+      'code' => 'SBD',
+      'numeric_code' => '090',
+      'symbol' => '$',
+      'name' => t('Solomon Islands Dollar'),
+      'symbol_placement' => 'before',
     ),
     'SOS' => array(
       'code' => 'SOS',
-      'symbol' => 'Ssh',
-      'name' => t('Somali Shilling'),
-      'decimals' => 0,
       'numeric_code' => '706',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Shilling'),
+      'symbol' => 'S',
+      'name' => t('Somali Shilling'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
+    ),
+    'ZAR' => array(
+      'code' => 'ZAR',
+      'numeric_code' => '710',
+      'symbol' => 'ZAR',
+      'name' => t('South African Rand'),
+      'symbol_placement' => 'before',
+    ),
+    'KRW' => array(
+      'code' => 'KRW',
+      'numeric_code' => '410',
+      'symbol' => '₩',
+      'name' => t('South Korean Won'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
+    ),
+    'SSP' => array(
+      'code' => 'SSP',
+      'numeric_code' => '728',
+      'symbol' => '£',
+      'name' => t('South Sudanese Pound'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
+    ),
+    'LKR' => array(
+      'code' => 'LKR',
+      'numeric_code' => '144',
+      'symbol' => 'රු.',
+      'name' => t('Sri Lankan Rupee'),
+      'symbol_placement' => 'before',
+    ),
+    'SHP' => array(
+      'code' => 'SHP',
+      'numeric_code' => '654',
+      'symbol' => 'SHP',
+      'name' => t('St. Helena Pound'),
+      'symbol_placement' => 'before',
+    ),
+    'SDG' => array(
+      'code' => 'SDG',
+      'numeric_code' => '938',
+      'symbol' => 'ج.س.',
+      'name' => t('Sudanese Pound'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
     ),
     'SRD' => array(
       'code' => 'SRD',
-      'symbol' => 'SR$',
+      'numeric_code' => '968',
+      'symbol' => '$',
       'name' => t('Surinamese Dollar'),
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+      'symbol_placement' => 'before',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
     ),
-    'SRG' => array(
-      'code' => 'SRG',
-      'symbol' => 'Sf',
-      'name' => t('Suriname Guilder'),
-      'numeric_code' => '740',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Guilder'),
+    'SZL' => array(
+      'code' => 'SZL',
+      'numeric_code' => '748',
+      'symbol' => 'E',
+      'name' => t('Swazi Lilangeni'),
+      'symbol_placement' => 'before',
     ),
-    'STD' => array(
-      'code' => 'STD',
-      'symbol' => 'Db',
-      'name' => t('São Tomé and Príncipe Dobra'),
-      'decimals' => 0,
-      'numeric_code' => '678',
-      'minor_unit' => t('Cêntimo'),
-      'major_unit' => t('Dobra'),
+    'SEK' => array(
+      'code' => 'SEK',
+      'numeric_code' => '752',
+      'symbol' => 'kr',
+      'name' => t('Swedish Krona'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
+    ),
+    'CHF' => array(
+      'code' => 'CHF',
+      'numeric_code' => '756',
+      'symbol' => 'CHF',
+      'name' => t('Swiss Franc'),
+      'symbol_placement' => 'before',
+      'thousands_separator' => '’',
     ),
     'SYP' => array(
       'code' => 'SYP',
-      'symbol' => 'SY£',
-      'name' => t('Syrian Pound'),
-      'decimals' => 0,
       'numeric_code' => '760',
-      'minor_unit' => t('Piastre'),
-      'major_unit' => t('Pound'),
+      'symbol' => 'ل.س.‏',
+      'name' => t('Syrian Pound'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
     ),
-    'SZL' => array(
-      'code' => 'SZL',
-      'symbol' => 'SZL',
-      'name' => t('Swazi Lilangeni'),
-      'numeric_code' => '748',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Lilangeni'),
+    'STD' => array(
+      'code' => 'STD',
+      'numeric_code' => '678',
+      'symbol' => 'Db',
+      'name' => t('São Tomé & Príncipe Dobra'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
+    ),
+    'TJS' => array(
+      'code' => 'TJS',
+      'numeric_code' => '972',
+      'symbol' => 'TJS',
+      'name' => t('Tajikistani Somoni'),
+      'symbol_placement' => 'before',
+    ),
+    'TZS' => array(
+      'code' => 'TZS',
+      'numeric_code' => '834',
+      'symbol' => 'TSh',
+      'name' => t('Tanzanian Shilling'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
     ),
     'THB' => array(
       'code' => 'THB',
-      'symbol' => '฿',
-      'name' => t('Thai Baht'),
       'numeric_code' => '764',
-      'minor_unit' => t('Satang'),
-      'major_unit' => t('Baht'),
-    ),
-    'TND' => array(
-      'code' => 'TND',
-      'symbol' => 'DT',
-      'name' => t('Tunisian Dinar'),
-      'decimals' => 3,
-      'numeric_code' => '788',
-      'minor_unit' => t('Millime'),
-      'major_unit' => t('Dinar'),
+      'symbol' => 'THB',
+      'name' => t('Thai Baht'),
+      'symbol_placement' => 'before',
     ),
     'TOP' => array(
       'code' => 'TOP',
+      'numeric_code' => '776',
       'symbol' => 'T$',
       'name' => t('Tongan Paʻanga'),
-      'numeric_code' => '776',
-      'minor_unit' => t('Senit'),
-      'major_unit' => t('Paʻanga'),
+      'symbol_placement' => 'before',
+    ),
+    'TTD' => array(
+      'code' => 'TTD',
+      'numeric_code' => '780',
+      'symbol' => '$',
+      'name' => t('Trinidad & Tobago Dollar'),
+      'symbol_placement' => 'before',
+    ),
+    'TND' => array(
+      'code' => 'TND',
+      'numeric_code' => '788',
+      'symbol' => 'TND',
+      'name' => t('Tunisian Dinar'),
+      'symbol_placement' => 'before',
+      'decimals' => '3',
     ),
     'TRY' => array(
       'code' => 'TRY',
+      'numeric_code' => '949',
       'symbol' => '₺',
       'name' => t('Turkish Lira'),
-      'numeric_code' => '949',
+      'symbol_placement' => 'before',
       'thousands_separator' => '.',
       'decimal_separator' => ',',
-      'symbol_placement' => 'before',
-      'code_placement' => '',
-      'minor_unit' => t('Kurus'),
-      'major_unit' => t('Lira'),
-    ),
-    'TTD' => array(
-      'code' => 'TTD',
-      'symbol' => 'TT$',
-      'name' => t('Trinidad and Tobago Dollar'),
-      'numeric_code' => '780',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
     ),
-    'TWD' => array(
-      'code' => 'TWD',
-      'symbol' => 'NT$',
-      'name' => t('New Taiwan Dollar'),
-      'numeric_code' => '901',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('New Dollar'),
+    'TMT' => array(
+      'code' => 'TMT',
+      'numeric_code' => '934',
+      'symbol' => 'TMT',
+      'name' => t('Turkmenistani Manat'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
-    'TZS' => array(
-      'code' => 'TZS',
-      'symbol' => 'TSh',
-      'name' => t('Tanzanian Shilling'),
-      'decimals' => 0,
-      'numeric_code' => '834',
-      'minor_unit' => t('Senti'),
-      'major_unit' => t('Shilling'),
+    'UGX' => array(
+      'code' => 'UGX',
+      'numeric_code' => '800',
+      'symbol' => 'USh',
+      'name' => t('Ugandan Shilling'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
     ),
     'UAH' => array(
       'code' => 'UAH',
-      'symbol' => 'грн.',
-      'name' => t('Ukrainian Hryvnia'),
       'numeric_code' => '980',
-      'thousands_separator' => '',
-      'decimal_separator' => '.',
+      'symbol' => '₴',
+      'name' => t('Ukrainian Hryvnia'),
       'symbol_placement' => 'after',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Kopiyka'),
-      'major_unit' => t('Hryvnia'),
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
     ),
-    'UGX' => array(
-      'code' => 'UGX',
-      'symbol' => 'USh',
-      'name' => t('Ugandan Shilling'),
-      'decimals' => 0,
-      'numeric_code' => '800',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Shilling'),
+    'AED' => array(
+      'code' => 'AED',
+      'numeric_code' => '784',
+      'symbol' => 'د.إ.‏',
+      'name' => t('United Arab Emirates Dirham'),
+      'symbol_placement' => 'after',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
+    ),
+    'UYU' => array(
+      'code' => 'UYU',
+      'numeric_code' => '858',
+      'symbol' => '$',
+      'name' => t('Uruguayan Peso'),
+      'symbol_placement' => 'before',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
     ),
     'USD' => array(
       'code' => 'USD',
-      'symbol' => '$',
-      'name' => t('United States Dollar'),
       'numeric_code' => '840',
+      'symbol' => '$',
+      'name' => t('US Dollar'),
       'symbol_placement' => 'before',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
     ),
-    'UYU' => array(
-      'code' => 'UYU',
-      'symbol' => '$U',
-      'name' => t('Uruguayan Peso'),
-      'numeric_code' => '858',
-      'minor_unit' => t('Centésimo'),
-      'major_unit' => t('Peso'),
+    'UZS' => array(
+      'code' => 'UZS',
+      'numeric_code' => '860',
+      'symbol' => 'soʻm',
+      'name' => t('Uzbekistani Som'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
+      'thousands_separator' => ' ',
+      'decimal_separator' => ',',
+    ),
+    'VUV' => array(
+      'code' => 'VUV',
+      'numeric_code' => '548',
+      'symbol' => 'VUV',
+      'name' => t('Vanuatu Vatu'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
     ),
     'VEF' => array(
       'code' => 'VEF',
-      'symbol' => 'Bs.F.',
-      'name' => t('Venezuelan Bolívar Fuerte'),
-      'minor_unit' => t('Céntimo'),
-      'major_unit' => t('Bolivares Fuerte'),
+      'numeric_code' => '937',
+      'symbol' => 'Bs.',
+      'name' => t('Venezuelan Bolívar'),
+      'symbol_placement' => 'before',
+      'thousands_separator' => '.',
+      'decimal_separator' => ',',
     ),
     'VND' => array(
       'code' => 'VND',
-      'symbol' => 'đ',
+      'numeric_code' => '704',
+      'symbol' => '₫',
       'name' => t('Vietnamese Dong'),
-      'decimals' => 0,
+      'symbol_placement' => 'before',
+      'decimals' => '0',
       'thousands_separator' => '.',
-      'symbol_placement' => 'after',
-      'symbol_spacer' => '',
-      'code_placement' => 'hidden',
-      'numeric_code' => '704',
-      'minor_unit' => t('Hà'),
-      'major_unit' => t('Dong'),
-    ),
-    'VUV' => array(
-      'code' => 'VUV',
-      'symbol' => 'VT',
-      'name' => t('Vanuatu Vatu'),
-      'decimals' => 0,
-      'numeric_code' => '548',
-      'major_unit' => t('Vatu'),
-    ),
-    'WST' => array(
-      'code' => 'WST',
-      'symbol' => 'WS$',
-      'name' => t('Samoan Tala'),
-      'numeric_code' => '882',
-      'minor_unit' => t('Sene'),
-      'major_unit' => t('Tala'),
-    ),
-    'XAF' => array(
-      'code' => 'XAF',
-      'symbol' => 'FCFA',
-      'name' => t('CFA Franc BEAC'),
-      'decimals' => 0,
-      'numeric_code' => '950',
-      'minor_unit' => t('Centime'),
-      'major_unit' => t('Franc'),
-    ),
-    'XCD' => array(
-      'code' => 'XCD',
-      'symbol' => 'EC$',
-      'name' => t('East Caribbean Dollar'),
-      'numeric_code' => '951',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Dollar'),
+      'decimal_separator' => ',',
     ),
     'XOF' => array(
       'code' => 'XOF',
-      'symbol' => 'CFA',
-      'name' => t('CFA Franc BCEAO'),
-      'decimals' => 0,
       'numeric_code' => '952',
-      'minor_unit' => t('Centime'),
-      'major_unit' => t('Franc'),
-    ),
-    'XPF' => array(
-      'code' => 'XPF',
-      'symbol' => 'CFPF',
-      'name' => t('CFP Franc'),
-      'decimals' => 0,
-      'numeric_code' => '953',
-      'minor_unit' => t('Centime'),
-      'major_unit' => t('Franc'),
+      'symbol' => 'CFA',
+      'name' => t('West African CFA Franc'),
+      'symbol_placement' => 'before',
+      'decimals' => '0',
     ),
     'YER' => array(
       'code' => 'YER',
-      'symbol' => 'YR',
-      'name' => t('Yemeni Rial'),
-      'decimals' => 0,
       'numeric_code' => '886',
-      'minor_unit' => t('Fils'),
-      'major_unit' => t('Rial'),
-    ),
-    'ZAR' => array(
-      'code' => 'ZAR',
-      'symbol' => 'R',
-      'name' => t('South African Rand'),
-      'numeric_code' => '710',
-      'symbol_placement' => 'before',
-      'code_placement' => 'hidden',
-      'minor_unit' => t('Cent'),
-      'major_unit' => t('Rand'),
-    ),
-    'ZMK' => array(
-      'code' => 'ZMK',
-      'symbol' => 'ZK',
+      'symbol' => 'ر.ي.‏',
+      'name' => t('Yemeni Rial'),
+      'symbol_placement' => 'after',
+      'decimals' => '0',
+      'thousands_separator' => '٬',
+      'decimal_separator' => '٫',
+    ),
+    'ZMW' => array(
+      'code' => 'ZMW',
+      'numeric_code' => '967',
+      'symbol' => 'K',
       'name' => t('Zambian Kwacha'),
-      'decimals' => 0,
-      'numeric_code' => '894',
-      'minor_unit' => t('Ngwee'),
-      'major_unit' => t('Kwacha'),
+      'symbol_placement' => 'before',
     ),
   );
 }
