[open-ils-commits] r13500 - in trunk/build/i18n: scripts tests/data (dbs)

svn at svn.open-ils.org svn at svn.open-ils.org
Sun Jul 5 01:28:43 EDT 2009


Author: dbs
Date: 2009-07-05 01:28:40 -0400 (Sun, 05 Jul 2009)
New Revision: 13500

Modified:
   trunk/build/i18n/scripts/db-seed-i18n.py
   trunk/build/i18n/tests/data/po2sql.sql
   trunk/build/i18n/tests/data/sql2pot.pot
   trunk/build/i18n/tests/data/sqlsource.po
   trunk/build/i18n/tests/data/sqlsource.sql
Log:
Fix SQL translation script and associated unit tests

It looks like polib became stricter about forcing the line number portion of 
filename:line occurrences in the PO to actually be an integer, with the result
of simply concatenating the text "line numbers" that we had been using to
store ID values to the table names.

Now we're using specially formatted translator comments to hold the ID values,
and using the filename:line occurence entries to actually hold the source filename
and line number for occurrences. Fancy that!


Modified: trunk/build/i18n/scripts/db-seed-i18n.py
===================================================================
--- trunk/build/i18n/scripts/db-seed-i18n.py	2009-07-04 19:01:35 UTC (rev 13499)
+++ trunk/build/i18n/scripts/db-seed-i18n.py	2009-07-05 05:28:40 UTC (rev 13500)
@@ -22,6 +22,7 @@
 import polib
 import re
 import sys
+import os.path
 
 class SQL(basel10n.BaseL10N):
     """
@@ -80,14 +81,16 @@
                     occurid = re.compile(r':').sub("%3A", fi18n.group('id'))
 
                     if (msgid in serts):
-                        serts[msgid].occurrences.append((fq_field, occurid))
+                        serts[msgid].occurrences.append((os.path.basename(source), num))
+                        serts[msgid].tcomment = ' '.join((serts[msgid].tcomment, 'id::%s__%s' % (fq_field, occurid)))
                     else:
                         poe = polib.POEntry()
-                        poe.occurrences = [(fq_field, occurid)]
+                        poe.tcomment = 'id::%s__%s' % (fq_field, occurid)
+                        poe.occurrences = [(os.path.basename(source), num)]
                         poe.msgid = msgid
                         serts[msgid] = poe
-            except:
-                print "Error in line %d of SQL source file" % (num) 
+            except Exception as exc:
+                print "Error in line %d of SQL source file: %s" % (num, exc) 
 
         for poe in serts.values():
             self.pot.append(poe)
@@ -100,18 +103,22 @@
 
         insert = "INSERT INTO config.i18n_core (fq_field, identity_value," \
             " translation, string) VALUES ('%s', '%s', '%s', '%s');"
+        idregex = re.compile(r'^id::(?P<class>.*?)__(?P<id>.*?)$')
         for entry in self.pot:
-            for fq_field in entry.occurrences:
+            for id_value in entry.tcomment.split():
                 # Escape SQL single-quotes to avoid b0rkage
                 msgstr = re.compile(r'\'').sub("''", entry.msgstr)
 
+                identifier = idregex.search(id_value)
+                if identifier is None:
+                    continue
                 # And unescape any colons in the occurence ID
-                occurid = re.compile(r'%3A').sub(':', fq_field[1])
+                occurid = re.compile(r'%3A').sub(':', identifier.group('id'))
 
                 if msgstr == '':
                     # Don't generate a stmt for an untranslated string
                     break
-                self.sql.append(insert % (fq_field[0], occurid, locale, msgstr))
+                self.sql.append(insert % (identifier.group('class'), occurid, locale, msgstr))
 
 def main():
     """

Modified: trunk/build/i18n/tests/data/po2sql.sql
===================================================================
--- trunk/build/i18n/tests/data/po2sql.sql	2009-07-04 19:01:35 UTC (rev 13499)
+++ trunk/build/i18n/tests/data/po2sql.sql	2009-07-05 05:28:40 UTC (rev 13500)
@@ -1,14 +1,30 @@
-INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('config.bib_source', 'oclc', 'zz-ZZ', 'OCLC');
-INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('config.bib_source', 'System Local', 'zz-ZZ', 'Lorem ipsum');
-INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('config.bib_source', 'Project Gutenberg', 'zz-ZZ', 'Projekt Runeberg');
-INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('config.standing', 'Good', 'zz-ZZ', 'Gut');
-INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('config.standing', 'Barred', 'zz-ZZ', 'största');
-INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('config.audience_map', 'Preschool', 'zz-ZZ', 'årligen');
-INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('config.audience_map', 'Primary', 'zz-ZZ', 'bläddra');
-INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('config.audience_map', 'Pre-adolescent', 'zz-ZZ', 'hjälp');
-INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('config.audience_map', 'Adolescent', 'zz-ZZ', 'utgåvor');
-INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('config.audience_map', 'Adult', 'zz-ZZ', 'öppet');
-INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('config.audience_map', 'Specialized', 'zz-ZZ', 'datorföreningen');
-INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('config.audience_map', 'General', 'zz-ZZ', 'skapa');
-INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('config.audience_map', 'Juvenile', 'zz-ZZ', 'klassisk');
-INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('asset.copy_location', 'Stacks', 'zz-ZZ', 'Linköping');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cbs.source', '2', 'zz-ZZ', 'Système local');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('crcd.name', '4', 'zz-ZZ', '3_jours_1_renouvellement');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cit.name', '3', 'zz-ZZ', 'Autre');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('i18n_l.name', 'fr-CA', 'zz-ZZ', 'Français (Canada)');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cbs.source', '1', 'zz-ZZ', 'oclc');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('ccpbt.label', 'staff_client', 'zz-ZZ', 'Lorem Ipsum');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cbrebt.label', 'staff_client', 'zz-ZZ', 'Lorem Ipsum');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cblvl.value', 'd', 'zz-ZZ', 'Sous-unité');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cblvl.value', 'b', 'zz-ZZ', 'Élément de collections');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cbs.source', '3', 'zz-ZZ', 'Project Gutenberg');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('i18n_l.name', 'en-US', 'zz-ZZ', 'Anglais (États-Unis)');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cblvl.value', 'c', 'zz-ZZ', 'Collection');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cblvl.value', 'i', 'zz-ZZ', 'Ressource intégrée');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('vqbrad.description', '4', 'zz-ZZ', 'Pagination');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cnct.name', '1', 'zz-ZZ', 'Livre de poche');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('i18n_l.description', 'es-US', 'zz-ZZ', 'Espagnol américain');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('i18n_l.name', 'en-CA', 'zz-ZZ', 'Anglais (Canada)');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('i18n_l.name', 'es-US', 'zz-ZZ', 'Espagnol (États-Unis)');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('i18n_l.description', 'en-CA', 'zz-ZZ', 'Anglais canadien');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cst.value', '2', 'zz-ZZ', 'Barré');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cst.value', '1', 'zz-ZZ', 'Bien');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('vqbrad.description', '3', 'zz-ZZ', 'Langue de l''oeuvre');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('acpl.name', '1', 'zz-ZZ', 'Piles');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('i18n_l.description', 'en-US', 'zz-ZZ', 'Anglais américain');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cblvl.value', 'm', 'zz-ZZ', 'Monographie ou article');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cit.name', '1', 'zz-ZZ', 'Permis de conduire');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('vqbrad.description', '1', 'zz-ZZ', 'Auteur de l''oeuvre');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('i18n_l.description', 'fr-CA', 'zz-ZZ', 'Français canadien');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('vqbrad.description', '1', 'zz-ZZ', 'Titre de l''oeuvre');
+INSERT INTO config.i18n_core (fq_field, identity_value, translation, string) VALUES ('cblvl.value', 's', 'zz-ZZ', 'Collections');

Modified: trunk/build/i18n/tests/data/sql2pot.pot
===================================================================
--- trunk/build/i18n/tests/data/sql2pot.pot	2009-07-04 19:01:35 UTC (rev 13499)
+++ trunk/build/i18n/tests/data/sql2pot.pot	2009-07-05 05:28:40 UTC (rev 13500)
@@ -11,62 +11,187 @@
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-#: config.bib_source:3
+# id::cbs.source__2
+#: sqlsource.sql:5
+msgid "System Local"
+msgstr ""
+
+# id::crcd.name__4
+#: sqlsource.sql:63
+msgid "3_days_1_renew"
+msgstr ""
+
+# id::cit.name__3
+#: sqlsource.sql:53
+msgid "Other"
+msgstr ""
+
+# id::i18n_l.name__fr-CA
+#: sqlsource.sql:95
+msgid "French (Canada)"
+msgstr ""
+
+# id::cbs.source__1
+#: sqlsource.sql:3
 msgid "oclc"
 msgstr ""
 
-#: config.bib_source:4
-msgid "System Local"
+# id::ccpbt.label__staff_client id::cbrebt.label__staff_client
+#: sqlsource.sql:102 sqlsource.sql:105
+msgid "General Staff Client container"
 msgstr ""
 
-#: config.bib_source:5
+# id::cblvl.value__d
+#: sqlsource.sql:82
+msgid "Subunit"
+msgstr ""
+
+# id::cblvl.value__b
+#: sqlsource.sql:80
+msgid "Serial component part"
+msgstr ""
+
+# id::crcd.name__2
+#: sqlsource.sql:59
+msgid "28_days_2_renew"
+msgstr ""
+
+# id::crcd.name__6
+#: sqlsource.sql:67
+msgid "35_days_1_renew"
+msgstr ""
+
+# id::cbs.source__3
+#: sqlsource.sql:7
 msgid "Project Gutenberg"
 msgstr ""
 
-#: config.standing:7
-msgid "Good"
+# id::crcd.name__1
+#: sqlsource.sql:57
+msgid "7_days_0_renew"
 msgstr ""
 
-#: config.standing:8
-msgid "Barred"
+# id::i18n_l.name__en-US
+#: sqlsource.sql:89
+msgid "English (US)"
 msgstr ""
 
-#: config.audience_map:31
-msgid "Unknown or unspecified"
+# id::ccpbt.label__misc id::ccnbt.label__misc id::cbrebt.label__misc
+#: sqlsource.sql:101 sqlsource.sql:103 sqlsource.sql:104
+msgid "Miscellaneous"
 msgstr ""
 
-#: config.audience_map:32
-msgid "Preschool"
+# id::cblvl.value__c
+#: sqlsource.sql:81
+msgid "Collection"
 msgstr ""
 
-#: config.audience_map:33
-msgid "Primary"
+# id::cblvl.value__i
+#: sqlsource.sql:83
+msgid "Integrating resource"
 msgstr ""
 
-#: config.audience_map:34
-msgid "Pre-adolescent"
+# id::vqbrad.description__4
+#: sqlsource.sql:78
+msgid "Pagination"
 msgstr ""
 
-#: config.audience_map:35
-msgid "Adolescent"
+# id::cnct.name__1
+#: sqlsource.sql:45
+msgid "Paperback Book"
 msgstr ""
 
-#: config.audience_map:36
-msgid "Adult"
+# id::i18n_l.description__es-US
+#: sqlsource.sql:99
+msgid "American Spanish"
 msgstr ""
 
-#: config.audience_map:37
-msgid "Specialized"
+# id::i18n_l.name__en-CA
+#: sqlsource.sql:92
+msgid "English (Canada)"
 msgstr ""
 
-#: config.audience_map:38
-msgid "General"
+# id::i18n_l.name__es-US
+#: sqlsource.sql:98
+msgid "Spanish (US)"
 msgstr ""
 
-#: config.audience_map:39
-msgid "Juvenile"
+# id::i18n_l.description__en-CA
+#: sqlsource.sql:93
+msgid "Canadian English"
 msgstr ""
 
-#: asset.copy_location:48
+# id::crcd.name__3
+#: sqlsource.sql:61
+msgid "3_months_0_renew"
+msgstr ""
+
+# id::cst.value__2
+#: sqlsource.sql:10
+msgid "Barred"
+msgstr ""
+
+# id::cst.value__1
+#: sqlsource.sql:9
+msgid "Good"
+msgstr ""
+
+# id::vqbrad.description__3
+#: sqlsource.sql:77
+msgid "Language of work"
+msgstr ""
+
+# id::acpl.name__1
+#: sqlsource.sql:72
 msgid "Stacks"
 msgstr ""
+
+# id::i18n_l.description__en-US
+#: sqlsource.sql:90
+msgid "American English"
+msgstr ""
+
+# id::crcd.name__7
+#: sqlsource.sql:69
+msgid "7_days_2_renew"
+msgstr ""
+
+# id::cblvl.value__m
+#: sqlsource.sql:84
+msgid "Monograph/Item"
+msgstr ""
+
+# id::cit.name__1
+#: sqlsource.sql:49
+msgid "Drivers License"
+msgstr ""
+
+# id::vqbrad.description__1
+#: sqlsource.sql:76
+msgid "Author of work"
+msgstr ""
+
+# id::i18n_l.description__fr-CA
+#: sqlsource.sql:96
+msgid "Canadian French"
+msgstr ""
+
+# id::vqbrad.description__1
+#: sqlsource.sql:75
+msgid "Title of work"
+msgstr ""
+
+# id::cit.name__2
+#: sqlsource.sql:51
+msgid "SSN"
+msgstr ""
+
+# id::cblvl.value__s
+#: sqlsource.sql:85
+msgid "Serial"
+msgstr ""
+
+# id::crcd.name__5
+#: sqlsource.sql:65
+msgid "2_months_2_renew"
+msgstr ""

Modified: trunk/build/i18n/tests/data/sqlsource.po
===================================================================
--- trunk/build/i18n/tests/data/sqlsource.po	2009-07-04 19:01:35 UTC (rev 13499)
+++ trunk/build/i18n/tests/data/sqlsource.po	2009-07-05 05:28:40 UTC (rev 13500)
@@ -3,7 +3,7 @@
 msgstr ""
 "Project-Id-Version: Evergreen 1.4\n"
 "Report-Msgid-Bugs-To: open-ils-dev at list.georgialibraries.org\n"
-"POT-Creation-Date: 1999-12-31 23:59:59 -0400\n"
+"POT-Creation-Date: 
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -11,62 +11,187 @@
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-#: config.bib_source:3
+# id::cbs.source__2
+#: sqlsource.sql:5
+msgid "System Local"
+msgstr "Système local"
+
+# id::crcd.name__4
+#: sqlsource.sql:63
+msgid "3_days_1_renew"
+msgstr "3_jours_1_renouvellement"
+
+# id::cit.name__3
+#: sqlsource.sql:53
+msgid "Other"
+msgstr "Autre"
+
+# id::i18n_l.name__fr-CA
+#: sqlsource.sql:95
+msgid "French (Canada)"
+msgstr "Français (Canada)"
+
+# id::cbs.source__1
+#: sqlsource.sql:3
 msgid "oclc"
-msgstr "OCLC"
+msgstr "oclc"
 
-#: config.bib_source:4
-msgid "System Local"
-msgstr "Lorem ipsum"
+# id::ccpbt.label__staff_client id::cbrebt.label__staff_client
+#: sqlsource.sql:102 sqlsource.sql:105
+msgid "General Staff Client container"
+msgstr "Lorem Ipsum"
 
-#: config.bib_source:5
+# id::cblvl.value__d
+#: sqlsource.sql:82
+msgid "Subunit"
+msgstr "Sous-unité"
+
+# id::cblvl.value__b
+#: sqlsource.sql:80
+msgid "Serial component part"
+msgstr "Élément de collections"
+
+# id::crcd.name__2
+#: sqlsource.sql:59
+msgid "28_days_2_renew"
+msgstr ""
+
+# id::crcd.name__6
+#: sqlsource.sql:67
+msgid "35_days_1_renew"
+msgstr ""
+
+# id::cbs.source__3
+#: sqlsource.sql:7
 msgid "Project Gutenberg"
-msgstr "Projekt Runeberg"
+msgstr "Project Gutenberg"
 
-#: config.standing:7
-msgid "Good"
-msgstr "Gut"
+# id::crcd.name__1
+#: sqlsource.sql:57
+msgid "7_days_0_renew"
+msgstr ""
 
-#: config.standing:8
-msgid "Barred"
-msgstr "största"
+# id::i18n_l.name__en-US
+#: sqlsource.sql:89
+msgid "English (US)"
+msgstr "Anglais (États-Unis)"
 
-#: config.audience_map:31
-msgid "Unknown or unspecified"
+# id::ccpbt.label__misc id::ccnbt.label__misc id::cbrebt.label__misc
+#: sqlsource.sql:101 sqlsource.sql:103 sqlsource.sql:104
+msgid "Miscellaneous"
 msgstr ""
 
-#: config.audience_map:32
-msgid "Preschool"
-msgstr "årligen"
+# id::cblvl.value__c
+#: sqlsource.sql:81
+msgid "Collection"
+msgstr "Collection"
 
-#: config.audience_map:33
-msgid "Primary"
-msgstr "bläddra"
+# id::cblvl.value__i
+#: sqlsource.sql:83
+msgid "Integrating resource"
+msgstr "Ressource intégrée"
 
-#: config.audience_map:34
-msgid "Pre-adolescent"
-msgstr "hjälp"
+# id::vqbrad.description__4
+#: sqlsource.sql:78
+msgid "Pagination"
+msgstr "Pagination"
 
-#: config.audience_map:35
-msgid "Adolescent"
-msgstr "utgåvor"
+# id::cnct.name__1
+#: sqlsource.sql:45
+msgid "Paperback Book"
+msgstr "Livre de poche"
 
-#: config.audience_map:36
-msgid "Adult"
-msgstr "öppet"
+# id::i18n_l.description__es-US
+#: sqlsource.sql:99
+msgid "American Spanish"
+msgstr "Espagnol américain"
 
-#: config.audience_map:37
-msgid "Specialized"
-msgstr "datorföreningen"
+# id::i18n_l.name__en-CA
+#: sqlsource.sql:92
+msgid "English (Canada)"
+msgstr "Anglais (Canada)"
 
-#: config.audience_map:38
-msgid "General"
-msgstr "skapa"
+# id::i18n_l.name__es-US
+#: sqlsource.sql:98
+msgid "Spanish (US)"
+msgstr "Espagnol (États-Unis)"
 
-#: config.audience_map:39
-msgid "Juvenile"
-msgstr "klassisk"
+# id::i18n_l.description__en-CA
+#: sqlsource.sql:93
+msgid "Canadian English"
+msgstr "Anglais canadien"
 
-#: asset.copy_location:48
+# id::crcd.name__3
+#: sqlsource.sql:61
+msgid "3_months_0_renew"
+msgstr ""
+
+# id::cst.value__2
+#: sqlsource.sql:10
+msgid "Barred"
+msgstr "Barré"
+
+# id::cst.value__1
+#: sqlsource.sql:9
+msgid "Good"
+msgstr "Bien"
+
+# id::vqbrad.description__3
+#: sqlsource.sql:77
+msgid "Language of work"
+msgstr "Langue de l'oeuvre"
+
+# id::acpl.name__1
+#: sqlsource.sql:72
 msgid "Stacks"
-msgstr "Linköping"
+msgstr "Piles"
+
+# id::i18n_l.description__en-US
+#: sqlsource.sql:90
+msgid "American English"
+msgstr "Anglais américain"
+
+# id::crcd.name__7
+#: sqlsource.sql:69
+msgid "7_days_2_renew"
+msgstr ""
+
+# id::cblvl.value__m
+#: sqlsource.sql:84
+msgid "Monograph/Item"
+msgstr "Monographie ou article"
+
+# id::cit.name__1
+#: sqlsource.sql:49
+msgid "Drivers License"
+msgstr "Permis de conduire"
+
+# id::vqbrad.description__1
+#: sqlsource.sql:76
+msgid "Author of work"
+msgstr "Auteur de l'oeuvre"
+
+# id::i18n_l.description__fr-CA
+#: sqlsource.sql:96
+msgid "Canadian French"
+msgstr "Français canadien"
+
+# id::vqbrad.description__1
+#: sqlsource.sql:75
+msgid "Title of work"
+msgstr "Titre de l'oeuvre"
+
+# id::cit.name__2
+#: sqlsource.sql:51
+msgid "SSN"
+msgstr ""
+
+# id::cblvl.value__s
+#: sqlsource.sql:85
+msgid "Serial"
+msgstr "Collections"
+
+# id::crcd.name__5
+#: sqlsource.sql:65
+msgid "2_months_2_renew"
+msgstr ""

Modified: trunk/build/i18n/tests/data/sqlsource.sql
===================================================================
--- trunk/build/i18n/tests/data/sqlsource.sql	2009-07-04 19:01:35 UTC (rev 13499)
+++ trunk/build/i18n/tests/data/sqlsource.sql	2009-07-05 05:28:40 UTC (rev 13500)
@@ -1,49 +1,105 @@
 --002.schema.config.sql:
-INSERT INTO config.bib_source (quality, source, transcendant) VALUES 
-    (90, oils_i18n_gettext('oclc'), FALSE),
-    (10, oils_i18n_gettext('System Local'), FALSE),
-    (1, oils_i18n_gettext('Project Gutenberg'), TRUE);
+INSERT INTO config.bib_source (id, quality, source, transcendant) VALUES 
+    (1, 90, oils_i18n_gettext(1, 'oclc', 'cbs', 'source'), FALSE);
+INSERT INTO config.bib_source (id, quality, source, transcendant) VALUES 
+    (2, 10, oils_i18n_gettext(2, 'System Local', 'cbs', 'source'), FALSE);
+INSERT INTO config.bib_source (id, quality, source, transcendant) VALUES 
+    (3, 1, oils_i18n_gettext(3, 'Project Gutenberg', 'cbs', 'source'), TRUE);
 
-INSERT INTO config.standing (value) VALUES (oils_i18n_gettext('Good'));
-INSERT INTO config.standing (value) VALUES (oils_i18n_gettext('Barred'));
+INSERT INTO config.standing (id, value) VALUES (1, oils_i18n_gettext(1, 'Good', 'cst', 'value'));
+INSERT INTO config.standing (id, value) VALUES (2, oils_i18n_gettext(2, 'Barred', 'cst', 'value'));
 
-INSERT INTO config.xml_transform VALUES ( 'marcxml', 'http://www.loc.gov/MARC21/slim', 'marc', '---' );
-INSERT INTO config.xml_transform VALUES ( 'mods', 'http://www.loc.gov/mods/', 'mods', '/home/miker/MARC21slim2MODS.xsl' );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'series', 'seriestitle', 'mods32', $$//mods32:mods/mods32:relatedItem[@type="series"]/mods32:titleInfo$$ );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'title', 'abbreviated', 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='abbreviated')]$$ );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'title', 'translated', 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='translated')]$$ );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'title', 'alternative', 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='alternative')]$$ );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'title', 'uniform', 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='uniform')]$$ );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'title', 'proper', 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and not (@type)]$$ );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'author', 'corporate', 'mods32', $$//mods32:mods/mods32:name[@type='corporate']/mods32:namePart[../mods32:role/mods32:roleTerm[text()='creator']]$$ );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'author', 'personal', 'mods32', $$//mods32:mods/mods32:name[@type='personal']/mods32:namePart[../mods32:role/mods32:roleTerm[text()='creator']]$$ );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'author', 'conference', 'mods32', $$//mods32:mods/mods32:name[@type='conference']/mods32:namePart[../mods32:role/mods32:roleTerm[text()='creator']]$$ );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'author', 'other', 'mods32', $$//mods32:mods/mods32:name[@type='personal']/mods32:namePart[not(../mods32:role)]$$ );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'subject', 'geographic', 'mods32', $$//mods32:mods/mods32:subject/mods32:geographic$$ );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'subject', 'name', 'mods32', $$//mods32:mods/mods32:subject/mods32:name$$ );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'subject', 'temporal', 'mods32', $$//mods32:mods/mods32:subject/mods32:temporal$$ );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'subject', 'topic', 'mods32', $$//mods32:mods/mods32:subject/mods32:topic$$ );
+--INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+--  ( field_class, name, xpath ) VALUES ( 'subject', 'genre', 'mods32', $$//mods32:mods/mods32:genre$$ );
+INSERT INTO config.metabib_field ( field_class, name, format, xpath ) VALUES 
+    ( 'keyword', 'keyword', 'mods32', $$//mods32:mods/*[not(local-name()='originInfo')]$$ ); -- /* to fool vim */;
 
-INSERT INTO config.metabib_field ( field_class, name, xpath ) VALUES 
-    ( 'series', 'seriestitle', $$//mods:mods/mods:relatedItem[@type="series"]/mods:titleInfo$$ ),
-    ( 'title', 'abbreviated', $$//mods:mods/mods:titleInfo[mods:title and (@type='abbreviated')]$$ ),
-    ( 'title', 'translated', $$//mods:mods/mods:titleInfo[mods:title and (@type='translated')]$$ ),
-    ( 'title', 'uniform', $$//mods:mods/mods:titleInfo[mods:title and (@type='uniform')]$$ ),
-    ( 'title', 'proper', $$//mods:mods/mods:titleInfo[mods:title and not (@type)]$$ ),
-    ( 'author', 'corporate', $$//mods:mods/mods:name[@type='corporate']/mods:namePart[../mods:role/mods:text[text()='creator']]$$ ),
-    ( 'author', 'personal', $$//mods:mods/mods:name[@type='personal']/mods:namePart[../mods:role/mods:text[text()='creator']]$$ ),
-    ( 'author', 'conference', $$//mods:mods/mods:name[@type='conference']/mods:namePart[../mods:role/mods:text[text()='creator']]$$ ),
-    ( 'author', 'other', $$//mods:mods/mods:name[@type='personal']/mods:namePart[not(../mods:role)]$$ ),
-    ( 'subject', 'geographic', $$//mods:mods/mods:subject/mods:geographic$$ ),
-    ( 'subject', 'name', $$//mods:mods/mods:subject/mods:name$$ ),
-    ( 'subject', 'temporal', $$//mods:mods/mods:subject/mods:temporal$$ ),
-    ( 'subject', 'topic', $$//mods:mods/mods:subject/mods:topic$$ ),
---  ( field_class, name, xpath ) VALUES ( 'subject', 'genre', $$//mods:mods/mods:genre$$ ),
-    ( 'keyword', 'keyword', $$//mods:mods/*[not(local-name()='originInfo')]$$ ); -- /* to fool vim */
+INSERT INTO config.non_cataloged_type ( id, owning_lib, name ) VALUES ( 1, 1, oils_i18n_gettext(1, 'Paperback Book', 'cnct', 'name') );
+SELECT SETVAL('config.non_cataloged_type_id_seq'::TEXT, 100);
 
-INSERT INTO config.audience_map (code, value, description) VALUES 
-    ('', oils_i18n_gettext('Unknown or unspecified'), oils_i18n_gettext('The target audience for the item not known or not specified.')),
-    ('a', oils_i18n_gettext('Preschool'), oils_i18n_gettext('The item is intended for children, approximate ages 0-5 years.')),
-    ('b', oils_i18n_gettext('Primary'), oils_i18n_gettext('The item is intended for children, approximate ages 6-8 years.')),
-    ('c', oils_i18n_gettext('Pre-adolescent'), oils_i18n_gettext('The item is intended for young people, approximate ages 9-13 years.')),
-    ('d', oils_i18n_gettext('Adolescent'), oils_i18n_gettext('The item is intended for young people, approximate ages 14-17 years.')),
-    ('e', oils_i18n_gettext('Adult'), oils_i18n_gettext('The item is intended for adults.')),
-    ('f', oils_i18n_gettext('Specialized'), oils_i18n_gettext('The item is aimed at a particular audience and the nature of the presentation makes the item of little interest to another audience.')),
-    ('g', oils_i18n_gettext('General'), oils_i18n_gettext('The item is of general interest and not aimed at an audience of a particular intellectual level.')),
-    ('j', oils_i18n_gettext('Juvenile'), oils_i18n_gettext('The item is intended for children and young people, approximate ages 0-15 years.'));
+INSERT INTO config.identification_type ( id, name ) VALUES 
+    ( 1, oils_i18n_gettext(1, 'Drivers License', 'cit', 'name') );
+INSERT INTO config.identification_type ( id, name ) VALUES 
+    ( 2, oils_i18n_gettext(2, 'SSN', 'cit', 'name') );
+INSERT INTO config.identification_type ( id, name ) VALUES 
+    ( 3, oils_i18n_gettext(3, 'Other', 'cit', 'name') );
+SELECT SETVAL('config.identification_type_id_seq'::TEXT, 100);
 
--- Admin user
-INSERT INTO permission.usr_perm_map (usr,perm,depth) VALUES (1,-1,0);
+INSERT INTO config.rule_circ_duration VALUES 
+    (1, oils_i18n_gettext(1, '7_days_0_renew', 'crcd', 'name'), '7 days', '7 days', '7 days', 0);
+INSERT INTO config.rule_circ_duration VALUES 
+    (2, oils_i18n_gettext(2, '28_days_2_renew', 'crcd', 'name'), '28 days', '28 days', '28 days', 2);
+INSERT INTO config.rule_circ_duration VALUES 
+    (3, oils_i18n_gettext(3, '3_months_0_renew', 'crcd', 'name'), '3 months', '3 months', '3 months', 0);
+INSERT INTO config.rule_circ_duration VALUES 
+    (4, oils_i18n_gettext(4, '3_days_1_renew', 'crcd', 'name'), '3 days', '3 days', '3 days', 1);
+INSERT INTO config.rule_circ_duration VALUES 
+    (5, oils_i18n_gettext(5, '2_months_2_renew', 'crcd', 'name'), '2 months', '2 months', '2 months', 2);
+INSERT INTO config.rule_circ_duration VALUES 
+    (6, oils_i18n_gettext(6, '35_days_1_renew', 'crcd', 'name'), '35 days', '35 days', '35 days', 1);
+INSERT INTO config.rule_circ_duration VALUES 
+    (7, oils_i18n_gettext(7, '7_days_2_renew', 'crcd', 'name'), '7 days', '7 days', '7 days', 2);
 
---010.schema.biblio.sql:
-INSERT INTO biblio.record_entry VALUES (-1,1,1,1,-1,NOW(),NOW(),FALSE,FALSE,'','AUTOGEN','-1','','FOO');
+--040.schema.asset.sql:
+INSERT INTO asset.copy_location (id, name,owning_lib) VALUES (1, oils_i18n_gettext(1, 'Stacks', 'acpl', 'name'),1);
 
---040.schema.asset.sql:
-INSERT INTO asset.copy_location (name,owning_lib) VALUES (oils_i18n_gettext('Stacks'),1);
-INSERT INTO asset.call_number VALUES (-1,1,NOW(),1,NOW(),-1,1,'UNCATALOGED');
+-- Vandelay (for importing and exporting records) 012.schema.vandelay.sql 
+INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath ) VALUES (1, 'title', oils_i18n_gettext(1, 'Title of work', 'vqbrad', 'description'),'//*[@tag="245"]/*[contains("abcmnopr", at code)]');
+INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath ) VALUES (2, 'author', oils_i18n_gettext(1, 'Author of work', 'vqbrad', 'description'),'//*[@tag="100" or @tag="110" or @tag="113"]/*[contains("ad", at code)]');
+INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath ) VALUES (3, 'language', oils_i18n_gettext(3, 'Language of work', 'vqbrad', 'description'),'//*[@tag="240"]/*[@code="l"][1]');
+INSERT INTO vandelay.bib_attr_definition ( id, code, description, xpath ) VALUES (4, 'pagination', oils_i18n_gettext(4, 'Pagination', 'vqbrad', 'description'),'//*[@tag="300"]/*[@code="a"][1]');
+
+INSERT INTO config.bib_level_map (code, value) VALUES ('b', oils_i18n_gettext('b', 'Serial component part', 'cblvl', 'value'));
+INSERT INTO config.bib_level_map (code, value) VALUES ('c', oils_i18n_gettext('c', 'Collection', 'cblvl', 'value'));
+INSERT INTO config.bib_level_map (code, value) VALUES ('d', oils_i18n_gettext('d', 'Subunit', 'cblvl', 'value'));
+INSERT INTO config.bib_level_map (code, value) VALUES ('i', oils_i18n_gettext('i', 'Integrating resource', 'cblvl', 'value'));
+INSERT INTO config.bib_level_map (code, value) VALUES ('m', oils_i18n_gettext('m', 'Monograph/Item', 'cblvl', 'value'));
+INSERT INTO config.bib_level_map (code, value) VALUES ('s', oils_i18n_gettext('s', 'Serial', 'cblvl', 'value'));
+
+-- available locales
+INSERT INTO config.i18n_locale (code,marc_code,name,description)
+    VALUES ('en-US', 'eng', oils_i18n_gettext('en-US', 'English (US)', 'i18n_l', 'name'),
+	oils_i18n_gettext('en-US', 'American English', 'i18n_l', 'description'));
+INSERT INTO config.i18n_locale (code,marc_code,name,description)
+    VALUES ('en-CA', 'eng', oils_i18n_gettext('en-CA', 'English (Canada)', 'i18n_l', 'name'),
+	oils_i18n_gettext('en-CA', 'Canadian English', 'i18n_l', 'description'));
+INSERT INTO config.i18n_locale (code,marc_code,name,description)
+    VALUES ('fr-CA', 'fre', oils_i18n_gettext('fr-CA', 'French (Canada)', 'i18n_l', 'name'),
+	oils_i18n_gettext('fr-CA', 'Canadian French', 'i18n_l', 'description'));
+INSERT INTO config.i18n_locale (code,marc_code,name,description)
+    VALUES ('es-US', 'spa', oils_i18n_gettext('es-US', 'Spanish (US)', 'i18n_l', 'name'),
+	oils_i18n_gettext('es-US', 'American Spanish', 'i18n_l', 'description'));
+
+INSERT INTO container.copy_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'ccpbt', 'label'));
+INSERT INTO container.copy_bucket_type (code,label) VALUES ('staff_client', oils_i18n_gettext('staff_client', 'General Staff Client container', 'ccpbt', 'label'));
+INSERT INTO container.call_number_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'ccnbt', 'label'));
+INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('misc', oils_i18n_gettext('misc', 'Miscellaneous', 'cbrebt', 'label'));
+INSERT INTO container.biblio_record_entry_bucket_type (code,label) VALUES ('staff_client', oils_i18n_gettext('staff_client', 'General Staff Client container', 'cbrebt', 'label'));



More information about the open-ils-commits mailing list