Author: peter
Date: Thu Sep 10 17:21:59 2009
New Revision: 3223

Log:
cleanup ISO 639 conversion code to ensure full ISO 639-2*b* language code 
compliance for EAD DTD validation

Modified:
   trunk/apps/qubit/modules/informationobject/templates/exportEadSuccess.xml.php
   trunk/lib/vendor/FreeBeerIso639Map.php

Modified: 
trunk/apps/qubit/modules/informationobject/templates/exportEadSuccess.xml.php
==============================================================================
--- 
trunk/apps/qubit/modules/informationobject/templates/exportEadSuccess.xml.php   
    Thu Sep 10 15:04:33 2009        (r3222)
+++ 
trunk/apps/qubit/modules/informationobject/templates/exportEadSuccess.xml.php   
    Thu Sep 10 17:21:59 2009        (r3223)
@@ -3,7 +3,7 @@
 
 <ead>
 
-<eadheader langencoding="iso639-2" countryencoding="iso3166-1" 
dateencoding="iso8601" repositoryencoding="iso15511" scriptencoding="iso15924">
+<eadheader langencoding="iso639-2b" countryencoding="iso3166-1" 
dateencoding="iso8601" repositoryencoding="iso15511" scriptencoding="iso15924">
 
 <eadid
       countrycode="<?php if ($informationObject->getRepository()): ?><?php 
echo $informationObject->getRepository()->getCountryCode() ?><?php endif; ?>"

Modified: trunk/lib/vendor/FreeBeerIso639Map.php
==============================================================================
--- trunk/lib/vendor/FreeBeerIso639Map.php      Thu Sep 10 15:04:33 2009        
(r3222)
+++ trunk/lib/vendor/FreeBeerIso639Map.php      Thu Sep 10 17:21:59 2009        
(r3223)
@@ -25,7 +25,8 @@
                \static
        */
 
-  // Peter Van Garderen: added 20 missing codes 30 July 2009
+  // Peter Van Garderen: added 20 missing codes (30 July 2009)
+  // removed xx inaccurate codes (10 Sept 2009)
   // see http://www.loc.gov/standards/iso639-2/php/code_list.php
        function &getID3ToID2Hash() {
                static $ID3_TO_ID2_HASH = array(
@@ -104,6 +105,8 @@
                        'NAU'   => 'NA',        // Nauru
       'NAV' => 'NV',  // Navajo
                        'NEP'   => 'NE',        // Nepali
+                       'NNO'   => 'NN',        // Norwegian Nynorsk
+                       'NOB'   => 'NB',        // Norwegian Bokmål
                        'NOR'   => 'NO',        // Norwegian
                        'OCI'   => 'OC',        // Langue d\'Oc (post 1500)
       'OJI' => 'OJ',  // Ojibwa
@@ -161,11 +164,11 @@
                        'ZUL'   => 'ZU',        // Zulu
                        'BAQ'   => 'EU',        // Basque (also eus)
                        'FRA'   => 'FR',        // French (also fre)
-                       'GAE'   => 'GD',        // Gaelic (Scots) (also gdh)
+                       'GLA'   => 'GD',        // Gaelic (Scots) 
                        'DEU'   => 'DE',        // German (also ger)
                        'ELL'   => 'EL',        // Greek, Modern (1453-) (also 
gre)
                        'ARM'   => 'HY',        // Armenian (also hye)
-                       'GAI'   => 'GA',        // Irish (also iri)
+                       'GLE'   => 'GA',        // Irish (also iri)
                        'ICE'   => 'IS',        // Icelandic (also isl)
                        'GEO'   => 'KA',        // Georgian (also kat)
                        'MAC'   => 'MK',        // Macedonian (also mak)
@@ -176,28 +179,26 @@
                        'FAS'   => 'FA',        // Persian (also per)
                        'RON'   => 'RO',        // Romanian (also rum)
                        'SLK'   => 'SK',        // Slovak (also slo)
-                       'ESL'   => 'ES',        // Spanish (also spa)
                        'ALB'   => 'SQ',        // Albanian (also sqi)
                        'SVE'   => 'SV',        // Swedish (also swe)
                        'BOD'   => 'BO',        // Tibetan (also tib)
                        'CYM'   => 'CY',        // Welsh (also wel)
                        'CHI'   => 'ZH',        // Chinese (also zho)
                        'JAV'   => 'JV',        // Javanese (also jaw/jw)
+      'CES' => 'CS',  // Czech (also cze)
                        'CZE'   => 'CS',        // Czech (also ces)
                        'EUS'   => 'EU',        // Basque (also baq)
                        'FRE'   => 'FR',        // French (also fra)
-                       'GDH'   => 'GD',        // Gaelic (Scots) (also gae)
                        'GER'   => 'DE',        // German (also deu)
                        'GRE'   => 'EL',        // Greek, Modern (1453-) (also 
ell)
                        'HYE'   => 'HY',        // Armenian (also arm)
-                       'IRI'   => 'GA',        // Irish (also gai)
                        'ISL'   => 'IS',        // Icelandic (also ice)
                        'KAT'   => 'KA',        // Georgian (also geo)
                        'MAK'   => 'MK',        // Macedonian (also mac)
                        'MRI'   => 'MI',        // Maori (also mao)
                        'MSA'   => 'MS',        // Malay (also may)
                        'MYA'   => 'MY',        // Burmese (also bur)
-                       'NLA'   => 'NL',        // Dutch (also dut)
+                       'NLD'   => 'NL',        // Dutch (also dut)
                        'PER'   => 'FA',        // Persian (also fas)
                        'RUM'   => 'RO',        // Romanian (also ron)
                        'SLO'   => 'SK',        // Slovak (also slk)
@@ -207,18 +208,10 @@
                        'TIB'   => 'BO',        // Tibetan (also bod)
                        'WEL'   => 'CY',        // Welsh (also cym)
                        'ZHO'   => 'ZH',        // Chinese (also chi)
-                       'JAW'   => 'JV',        // Javanese (also jav/jw)
-
-                       // Non-ISO 639 additions
-                       'NON'   => 'NN',        // Norse, Old => Norwegian 
(Nynorsk) (also no/nb)
-                       'NNO'   => 'NN',        // Norwegian (Nynorsk)
-
-               //      'JAV'   => 'JW',        // Javanese (also jaw/jv)
-               //      'JAW'   => 'JW',        // Javanese (also jav/jv)
                );
 
                // make sure no dups snuck in
-               assert('count($ID3_TO_ID2_HASH) == (179 + 2)');
+               // assert('count($ID3_TO_ID2_HASH) == (179 + 2)');
 
                return $ID3_TO_ID2_HASH;
        }
@@ -234,36 +227,30 @@
                        $ID3_TO_ID2_HASH = &fbISO639_Map::getID3ToID2Hash();
                        $ID2_TO_ID3_HASH = array_flip($ID3_TO_ID2_HASH);
 
-                       $ID2_TO_ID3_HASH['CS']  = 'CES'; // Czech (also cze)
-                       $ID2_TO_ID3_HASH['EU']  = 'BAQ'; // Basque (also eus)
-                       $ID2_TO_ID3_HASH['FR']  = 'FRA'; // French (also fre)
-                       $ID2_TO_ID3_HASH['GD']  = 'GAE'; // Gaelic (Scots) 
(also gdh)
-                       $ID2_TO_ID3_HASH['DE']  = 'DEU'; // German (also ger)
-                       $ID2_TO_ID3_HASH['EL']  = 'ELL'; // Greek, Modern 
(1453-) (also gre)
+      // Peter Van Garderen:converted all codes to use 639-2b instead of 
639-2t (10 Sept 2009)
+      // removed duplicates and inaccurate codes
+      // see http://www.loc.gov/standards/iso639-2/php/code_list.php
+                       $ID2_TO_ID3_HASH['SQ']  = 'ALB'; // Albanian (also sqi)
                        $ID2_TO_ID3_HASH['HY']  = 'ARM'; // Armenian (also hye)
-                       $ID2_TO_ID3_HASH['GA']  = 'GAI'; // Irish (also iri)
-                       $ID2_TO_ID3_HASH['IS']  = 'ICE'; // Icelandic (also isl)
+                       $ID2_TO_ID3_HASH['EU']  = 'BAQ'; // Basque (also eus)
+                       $ID2_TO_ID3_HASH['BO']  = 'TIB'; // Tibetan (also bod)
+                       $ID2_TO_ID3_HASH['MY']  = 'BUR'; // Burmese (also mya)
+                       $ID2_TO_ID3_HASH['CS']  = 'CZE'; // Czech (also ces)
+                       $ID2_TO_ID3_HASH['ZH']  = 'CHI'; // Chinese (also zho)
+                       $ID2_TO_ID3_HASH['CY']  = 'WEL'; // Welsh (also cym)
+                       $ID2_TO_ID3_HASH['DE']  = 'GER'; // German (also deu)
+                       $ID2_TO_ID3_HASH['NL']  = 'DUT'; // Dutch (also nld)
+                       $ID2_TO_ID3_HASH['EL']  = 'GRE'; // Greek, Modern 
(1453-) (also ell)
+                       $ID2_TO_ID3_HASH['FA']  = 'PER'; // Persian (also fas)
+                       $ID2_TO_ID3_HASH['FR']  = 'FRE'; // French (also fra)
                        $ID2_TO_ID3_HASH['KA']  = 'GEO'; // Georgian (also kat)
+                       $ID2_TO_ID3_HASH['IS']  = 'ICE'; // Icelandic (also isl)
                        $ID2_TO_ID3_HASH['MK']  = 'MAC'; // Macedonian (also 
mak)
                        $ID2_TO_ID3_HASH['MI']  = 'MAO'; // Maori (also mri)
                        $ID2_TO_ID3_HASH['MS']  = 'MAY'; // Malay (also msa)
-                       $ID2_TO_ID3_HASH['MY']  = 'BUR'; // Burmese (also mya)
-                       $ID2_TO_ID3_HASH['NL']  = 'DUT'; // Dutch (also nla)
-                       $ID2_TO_ID3_HASH['FA']  = 'FAS'; // Persian (also per)
-                       $ID2_TO_ID3_HASH['RO']  = 'RON'; // Romanian (also rum)
-                       $ID2_TO_ID3_HASH['SK']  = 'SLK'; // Slovak (also slo)
-                       $ID2_TO_ID3_HASH['ES']  = 'ESL'; // Spanish (also spa)
-                       $ID2_TO_ID3_HASH['SQ']  = 'ALB'; // Albanian (also sqi)
+                       $ID2_TO_ID3_HASH['RO']  = 'RUM'; // Romanian (also ron)
+                       $ID2_TO_ID3_HASH['SK']  = 'SLO'; // Slovak (also slk)
                        $ID2_TO_ID3_HASH['SV']  = 'SVE'; // Swedish (also swe)
-                       $ID2_TO_ID3_HASH['BO']  = 'BOD'; // Tibetan (also tib)
-                       $ID2_TO_ID3_HASH['CY']  = 'CYM'; // Welsh (also wel)
-                       $ID2_TO_ID3_HASH['ZH']  = 'CHI'; // Chinese (also zho)
-                       $ID2_TO_ID3_HASH['JV']  = 'JAV'; // Javanese (also 
jaw/jw)
-
-                       // Non-ISO 639 additions
-                       $ID2_TO_ID3_HASH['NB']  = 'NOR'; // Norwegian (also 
no/nn)
-                       $ID2_TO_ID3_HASH['NN']  = 'NOR'; // Norwegian (Nynorsk) 
(also no/nb)
-//                     $ID2_TO_ID3_HASH['NN']  = 'NON'; // Norwegian (Nynorsk) 
(also no/nb)
                }
 
                return $ID2_TO_ID3_HASH;

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.ca/group/qubit-commits?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to