lots of testing and bugfixing from database conversion right up to unit

tests, conversion, and HTML generation, all due to i18n changes that
have accumulated.
This commit is contained in:
david 2002-05-20 19:50:54 +00:00
parent 1b2bc5dbcd
commit 7e558620e0
14 changed files with 446 additions and 221 deletions

View File

@ -1,137 +1,293 @@
INSERT INTO language(isocode, language_name) values ('AA', 'Afar');
INSERT INTO language(isocode, language_name) values ('AB', 'Abkhazian');
INSERT INTO language(isocode, language_name) values ('AF', 'Afrikaans');
INSERT INTO language(isocode, language_name) values ('AM', 'Amharic');
INSERT INTO language(isocode, language_name) values ('AR', 'Arabic');
INSERT INTO language(isocode, language_name) values ('AS', 'Assamese');
INSERT INTO language(isocode, language_name) values ('AY', 'Aymara');
INSERT INTO language(isocode, language_name) values ('AZ', 'Azerbaijani');
INSERT INTO language(isocode, language_name) values ('BA', 'Bashkir');
INSERT INTO language(isocode, language_name) values ('BE', 'Byelorussian');
INSERT INTO language(isocode, language_name) values ('BG', 'Bulgarian');
INSERT INTO language(isocode, language_name) values ('BH', 'Bihari');
INSERT INTO language(isocode, language_name) values ('BI', 'Bislama');
INSERT INTO language(isocode, language_name) values ('BN', 'Bengali');
INSERT INTO language(isocode, language_name) values ('BO', 'Tibetan');
INSERT INTO language(isocode, language_name) values ('BR', 'Breton');
INSERT INTO language(isocode, language_name) values ('CA', 'Catalan');
INSERT INTO language(isocode, language_name) values ('CO', 'Corsican');
INSERT INTO language(isocode, language_name) values ('CS', 'Czech');
INSERT INTO language(isocode, language_name) values ('CY', 'Welsh');
INSERT INTO language(isocode, language_name) values ('DA', 'Danish');
INSERT INTO language(isocode, language_name) values ('DE', 'German');
INSERT INTO language(isocode, language_name) values ('DZ', 'Bhutani');
INSERT INTO language(isocode, language_name) values ('EL', 'Greek');
INSERT INTO language(isocode, language_name) values ('EN', 'English');
INSERT INTO language(isocode, language_name) values ('EO', 'Esperanto');
INSERT INTO language(isocode, language_name) values ('ES', 'Spanish');
INSERT INTO language(isocode, language_name) values ('ET', 'Estonian');
INSERT INTO language(isocode, language_name) values ('EU', 'Basque');
INSERT INTO language(isocode, language_name) values ('FA', 'Persian');
INSERT INTO language(isocode, language_name) values ('FI', 'Finnish');
INSERT INTO language(isocode, language_name) values ('FJ', 'Fiji');
INSERT INTO language(isocode, language_name) values ('FO', 'Faeroese');
INSERT INTO language(isocode, language_name) values ('FR', 'French');
INSERT INTO language(isocode, language_name) values ('FY', 'Frisian');
INSERT INTO language(isocode, language_name) values ('GA', 'Irish');
INSERT INTO language(isocode, language_name) values ('GD', 'Gaelic (Scots Gaelic)');
INSERT INTO language(isocode, language_name) values ('GL', 'Galician');
INSERT INTO language(isocode, language_name) values ('GN', 'Guarani');
INSERT INTO language(isocode, language_name) values ('GU', 'Gujarati');
INSERT INTO language(isocode, language_name) values ('HA', 'Hausa');
INSERT INTO language(isocode, language_name) values ('HI', 'Hindi');
INSERT INTO language(isocode, language_name) values ('HR', 'Croatian');
INSERT INTO language(isocode, language_name) values ('HU', 'Hungarian');
INSERT INTO language(isocode, language_name) values ('HY', 'Armenian');
INSERT INTO language(isocode, language_name) values ('IA', 'Interlingua');
INSERT INTO language(isocode, language_name) values ('IE', 'Interlingue');
INSERT INTO language(isocode, language_name) values ('IK', 'Inupiak');
INSERT INTO language(isocode, language_name) values ('IN', 'Indonesian');
INSERT INTO language(isocode, language_name) values ('IS', 'Icelandic');
INSERT INTO language(isocode, language_name) values ('IT', 'Italian');
INSERT INTO language(isocode, language_name) values ('IW', 'Hebrew');
INSERT INTO language(isocode, language_name) values ('JA', 'Japanese');
INSERT INTO language(isocode, language_name) values ('JI', 'Yiddish');
INSERT INTO language(isocode, language_name) values ('JW', 'Javanese');
INSERT INTO language(isocode, language_name) values ('KA', 'Georgian');
INSERT INTO language(isocode, language_name) values ('KK', 'Kazakh');
INSERT INTO language(isocode, language_name) values ('KL', 'Greenlandic');
INSERT INTO language(isocode, language_name) values ('KM', 'Cambodian');
INSERT INTO language(isocode, language_name) values ('KN', 'Kannada');
INSERT INTO language(isocode, language_name) values ('KO', 'Korean');
INSERT INTO language(isocode, language_name) values ('KS', 'Kashmiri');
INSERT INTO language(isocode, language_name) values ('KU', 'Kurdish');
INSERT INTO language(isocode, language_name) values ('KY', 'Kirghiz');
INSERT INTO language(isocode, language_name) values ('LA', 'Latin');
INSERT INTO language(isocode, language_name) values ('LN', 'Lingala');
INSERT INTO language(isocode, language_name) values ('LO', 'Laothian');
INSERT INTO language(isocode, language_name) values ('LT', 'Lithuanian');
INSERT INTO language(isocode, language_name) values ('LV', 'Latvian (Lettish)');
INSERT INTO language(isocode, language_name) values ('MG', 'Malagasy');
INSERT INTO language(isocode, language_name) values ('MI', 'Maori');
INSERT INTO language(isocode, language_name) values ('MK', 'Macedonian');
INSERT INTO language(isocode, language_name) values ('ML', 'Malayalam');
INSERT INTO language(isocode, language_name) values ('MN', 'Mongolian');
INSERT INTO language(isocode, language_name) values ('MO', 'Moldavian');
INSERT INTO language(isocode, language_name) values ('MR', 'Marathi');
INSERT INTO language(isocode, language_name) values ('MS', 'Malay');
INSERT INTO language(isocode, language_name) values ('MT', 'Maltese');
INSERT INTO language(isocode, language_name) values ('MY', 'Burmese');
INSERT INTO language(isocode, language_name) values ('NA', 'Nauru');
INSERT INTO language(isocode, language_name) values ('NE', 'Nepali');
INSERT INTO language(isocode, language_name) values ('NL', 'Dutch');
INSERT INTO language(isocode, language_name) values ('NO', 'Norwegian');
INSERT INTO language(isocode, language_name) values ('OC', 'Occitan');
INSERT INTO language(isocode, language_name) values ('OM', 'Oromo (Afan)');
INSERT INTO language(isocode, language_name) values ('OR', 'Oriya');
INSERT INTO language(isocode, language_name) values ('PA', 'Punjabi');
INSERT INTO language(isocode, language_name) values ('PL', 'Polish');
INSERT INTO language(isocode, language_name) values ('PS', 'Pashto (Pushto)');
INSERT INTO language(isocode, language_name) values ('PT', 'Portuguese');
INSERT INTO language(isocode, language_name) values ('QU', 'Quechua');
INSERT INTO language(isocode, language_name) values ('RM', 'Rhaeto-Romance');
INSERT INTO language(isocode, language_name) values ('RN', 'Kirundi');
INSERT INTO language(isocode, language_name) values ('RO', 'Romanian');
INSERT INTO language(isocode, language_name) values ('RU', 'Russian');
INSERT INTO language(isocode, language_name) values ('RW', 'Kinyarwanda');
INSERT INTO language(isocode, language_name) values ('SA', 'Sanskrit');
INSERT INTO language(isocode, language_name) values ('SD', 'Sindhi');
INSERT INTO language(isocode, language_name) values ('SG', 'Sangro');
INSERT INTO language(isocode, language_name) values ('SH', 'Serbo-Croatian');
INSERT INTO language(isocode, language_name) values ('SI', 'Singhalese');
INSERT INTO language(isocode, language_name) values ('SK', 'Slovak');
INSERT INTO language(isocode, language_name) values ('SL', 'Slovenian');
INSERT INTO language(isocode, language_name) values ('SM', 'Samoan');
INSERT INTO language(isocode, language_name) values ('SN', 'Shona');
INSERT INTO language(isocode, language_name) values ('SO', 'Somali');
INSERT INTO language(isocode, language_name) values ('SQ', 'Albanian');
INSERT INTO language(isocode, language_name) values ('SR', 'Serbian');
INSERT INTO language(isocode, language_name) values ('SS', 'Siswati');
INSERT INTO language(isocode, language_name) values ('ST', 'Sesotho');
INSERT INTO language(isocode, language_name) values ('SU', 'Sudanese');
INSERT INTO language(isocode, language_name) values ('SV', 'Swedish');
INSERT INTO language(isocode, language_name) values ('SW', 'Swahili');
INSERT INTO language(isocode, language_name) values ('TA', 'Tamil');
INSERT INTO language(isocode, language_name) values ('TE', 'Tegulu');
INSERT INTO language(isocode, language_name) values ('TG', 'Tajik');
INSERT INTO language(isocode, language_name) values ('TH', 'Thai');
INSERT INTO language(isocode, language_name) values ('TI', 'Tigrinya');
INSERT INTO language(isocode, language_name) values ('TK', 'Turkmen');
INSERT INTO language(isocode, language_name) values ('TL', 'Tagalog');
INSERT INTO language(isocode, language_name) values ('TN', 'Setswana');
INSERT INTO language(isocode, language_name) values ('TO', 'Tonga');
INSERT INTO language(isocode, language_name) values ('TR', 'Turkish');
INSERT INTO language(isocode, language_name) values ('TS', 'Tsonga');
INSERT INTO language(isocode, language_name) values ('TT', 'Tatar');
INSERT INTO language(isocode, language_name) values ('TW', 'Twi');
INSERT INTO language(isocode, language_name) values ('UK', 'Ukrainian');
INSERT INTO language(isocode, language_name) values ('UR', 'Urdu');
INSERT INTO language(isocode, language_name) values ('UZ', 'Uzbek');
INSERT INTO language(isocode, language_name) values ('VI', 'Vietnamese');
INSERT INTO language(isocode, language_name) values ('VO', 'Volapuk');
INSERT INTO language(isocode, language_name) values ('WO', 'Wolof');
INSERT INTO language(isocode, language_name) values ('XH', 'Xhosa');
INSERT INTO language(isocode, language_name) values ('YO', 'Yoruba');
INSERT INTO language(isocode, language_name) values ('ZH', 'Chinese');
INSERT INTO language(isocode, language_name) values ('ZU', 'Zulu');
DELETE FROM language_i18n;
DELETE FROM language;
DELETE FROM string_i18n;
DELETE FROM string;
INSERT INTO language(isocode) values ('AA');
INSERT INTO language(isocode) values ('AB');
INSERT INTO language(isocode) values ('AF');
INSERT INTO language(isocode) values ('AM');
INSERT INTO language(isocode) values ('AR');
INSERT INTO language(isocode) values ('AS');
INSERT INTO language(isocode) values ('AY');
INSERT INTO language(isocode) values ('AZ');
INSERT INTO language(isocode) values ('BA');
INSERT INTO language(isocode) values ('BE');
INSERT INTO language(isocode) values ('BG');
INSERT INTO language(isocode) values ('BH');
INSERT INTO language(isocode) values ('BI');
INSERT INTO language(isocode) values ('BN');
INSERT INTO language(isocode) values ('BO');
INSERT INTO language(isocode) values ('BR');
INSERT INTO language(isocode) values ('CA');
INSERT INTO language(isocode) values ('CO');
INSERT INTO language(isocode) values ('CS');
INSERT INTO language(isocode) values ('CY');
INSERT INTO language(isocode) values ('DA');
INSERT INTO language(isocode) values ('DE');
INSERT INTO language(isocode) values ('DZ');
INSERT INTO language(isocode) values ('EL');
INSERT INTO language(isocode) values ('EN');
INSERT INTO language(isocode) values ('EO');
INSERT INTO language(isocode) values ('ES');
INSERT INTO language(isocode) values ('ET');
INSERT INTO language(isocode) values ('EU');
INSERT INTO language(isocode) values ('FA');
INSERT INTO language(isocode) values ('FI');
INSERT INTO language(isocode) values ('FJ');
INSERT INTO language(isocode) values ('FO');
INSERT INTO language(isocode) values ('FR');
INSERT INTO language(isocode) values ('FY');
INSERT INTO language(isocode) values ('GA');
INSERT INTO language(isocode) values ('GD');
INSERT INTO language(isocode) values ('GL');
INSERT INTO language(isocode) values ('GN');
INSERT INTO language(isocode) values ('GU');
INSERT INTO language(isocode) values ('HA');
INSERT INTO language(isocode) values ('HI');
INSERT INTO language(isocode) values ('HR');
INSERT INTO language(isocode) values ('HU');
INSERT INTO language(isocode) values ('HY');
INSERT INTO language(isocode) values ('IA');
INSERT INTO language(isocode) values ('IE');
INSERT INTO language(isocode) values ('IK');
INSERT INTO language(isocode) values ('IN');
INSERT INTO language(isocode) values ('IS');
INSERT INTO language(isocode) values ('IT');
INSERT INTO language(isocode) values ('IW');
INSERT INTO language(isocode) values ('JA');
INSERT INTO language(isocode) values ('JI');
INSERT INTO language(isocode) values ('JW');
INSERT INTO language(isocode) values ('KA');
INSERT INTO language(isocode) values ('KK');
INSERT INTO language(isocode) values ('KL');
INSERT INTO language(isocode) values ('KM');
INSERT INTO language(isocode) values ('KN');
INSERT INTO language(isocode) values ('KO');
INSERT INTO language(isocode) values ('KS');
INSERT INTO language(isocode) values ('KU');
INSERT INTO language(isocode) values ('KY');
INSERT INTO language(isocode) values ('LA');
INSERT INTO language(isocode) values ('LN');
INSERT INTO language(isocode) values ('LO');
INSERT INTO language(isocode) values ('LT');
INSERT INTO language(isocode) values ('LV');
INSERT INTO language(isocode) values ('MG');
INSERT INTO language(isocode) values ('MI');
INSERT INTO language(isocode) values ('MK');
INSERT INTO language(isocode) values ('ML');
INSERT INTO language(isocode) values ('MN');
INSERT INTO language(isocode) values ('MO');
INSERT INTO language(isocode) values ('MR');
INSERT INTO language(isocode) values ('MS');
INSERT INTO language(isocode) values ('MT');
INSERT INTO language(isocode) values ('MY');
INSERT INTO language(isocode) values ('NA');
INSERT INTO language(isocode) values ('NE');
INSERT INTO language(isocode) values ('NL');
INSERT INTO language(isocode) values ('NO');
INSERT INTO language(isocode) values ('OC');
INSERT INTO language(isocode) values ('OM');
INSERT INTO language(isocode) values ('OR');
INSERT INTO language(isocode) values ('PA');
INSERT INTO language(isocode) values ('PL');
INSERT INTO language(isocode) values ('PS');
INSERT INTO language(isocode) values ('PT');
INSERT INTO language(isocode) values ('QU');
INSERT INTO language(isocode) values ('RM');
INSERT INTO language(isocode) values ('RN');
INSERT INTO language(isocode) values ('RO');
INSERT INTO language(isocode) values ('RU');
INSERT INTO language(isocode) values ('RW');
INSERT INTO language(isocode) values ('SA');
INSERT INTO language(isocode) values ('SD');
INSERT INTO language(isocode) values ('SG');
INSERT INTO language(isocode) values ('SH');
INSERT INTO language(isocode) values ('SI');
INSERT INTO language(isocode) values ('SK');
INSERT INTO language(isocode) values ('SL');
INSERT INTO language(isocode) values ('SM');
INSERT INTO language(isocode) values ('SN');
INSERT INTO language(isocode) values ('SO');
INSERT INTO language(isocode) values ('SQ');
INSERT INTO language(isocode) values ('SR');
INSERT INTO language(isocode) values ('SS');
INSERT INTO language(isocode) values ('ST');
INSERT INTO language(isocode) values ('SU');
INSERT INTO language(isocode) values ('SV');
INSERT INTO language(isocode) values ('SW');
INSERT INTO language(isocode) values ('TA');
INSERT INTO language(isocode) values ('TE');
INSERT INTO language(isocode) values ('TG');
INSERT INTO language(isocode) values ('TH');
INSERT INTO language(isocode) values ('TI');
INSERT INTO language(isocode) values ('TK');
INSERT INTO language(isocode) values ('TL');
INSERT INTO language(isocode) values ('TN');
INSERT INTO language(isocode) values ('TO');
INSERT INTO language(isocode) values ('TR');
INSERT INTO language(isocode) values ('TS');
INSERT INTO language(isocode) values ('TT');
INSERT INTO language(isocode) values ('TW');
INSERT INTO language(isocode) values ('UK');
INSERT INTO language(isocode) values ('UR');
INSERT INTO language(isocode) values ('UZ');
INSERT INTO language(isocode) values ('VI');
INSERT INTO language(isocode) values ('VO');
INSERT INTO language(isocode) values ('WO');
INSERT INTO language(isocode) values ('XH');
INSERT INTO language(isocode) values ('YO');
INSERT INTO language(isocode) values ('ZH');
INSERT INTO language(isocode) values ('ZU');
INSERT INTO language_i18n(isocode, lang, language_name) values ('AA', 'EN', 'Afar');
INSERT INTO language_i18n(isocode, lang, language_name) values ('AB', 'EN', 'Abkhazian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('AF', 'EN', 'Afrikaans');
INSERT INTO language_i18n(isocode, lang, language_name) values ('AM', 'EN', 'Amharic');
INSERT INTO language_i18n(isocode, lang, language_name) values ('AR', 'EN', 'Arabic');
INSERT INTO language_i18n(isocode, lang, language_name) values ('AS', 'EN', 'Assamese');
INSERT INTO language_i18n(isocode, lang, language_name) values ('AY', 'EN', 'Aymara');
INSERT INTO language_i18n(isocode, lang, language_name) values ('AZ', 'EN', 'Azerbaijani');
INSERT INTO language_i18n(isocode, lang, language_name) values ('BA', 'EN', 'Bashkir');
INSERT INTO language_i18n(isocode, lang, language_name) values ('BE', 'EN', 'Byelorussian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('BG', 'EN', 'Bulgarian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('BH', 'EN', 'Bihari');
INSERT INTO language_i18n(isocode, lang, language_name) values ('BI', 'EN', 'Bislama');
INSERT INTO language_i18n(isocode, lang, language_name) values ('BN', 'EN', 'Bengali');
INSERT INTO language_i18n(isocode, lang, language_name) values ('BO', 'EN', 'Tibetan');
INSERT INTO language_i18n(isocode, lang, language_name) values ('BR', 'EN', 'Breton');
INSERT INTO language_i18n(isocode, lang, language_name) values ('CA', 'EN', 'Catalan');
INSERT INTO language_i18n(isocode, lang, language_name) values ('CO', 'EN', 'Corsican');
INSERT INTO language_i18n(isocode, lang, language_name) values ('CS', 'EN', 'Czech');
INSERT INTO language_i18n(isocode, lang, language_name) values ('CY', 'EN', 'Welsh');
INSERT INTO language_i18n(isocode, lang, language_name) values ('DA', 'EN', 'Danish');
INSERT INTO language_i18n(isocode, lang, language_name) values ('DE', 'EN', 'German');
INSERT INTO language_i18n(isocode, lang, language_name) values ('DZ', 'EN', 'Bhutani');
INSERT INTO language_i18n(isocode, lang, language_name) values ('EL', 'EN', 'Greek');
INSERT INTO language_i18n(isocode, lang, language_name) values ('EN', 'EN', 'English');
INSERT INTO language_i18n(isocode, lang, language_name) values ('EO', 'EN', 'Esperanto');
INSERT INTO language_i18n(isocode, lang, language_name) values ('ES', 'EN', 'Spanish');
INSERT INTO language_i18n(isocode, lang, language_name) values ('ET', 'EN', 'Estonian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('EU', 'EN', 'Basque');
INSERT INTO language_i18n(isocode, lang, language_name) values ('FA', 'EN', 'Persian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('FI', 'EN', 'Finnish');
INSERT INTO language_i18n(isocode, lang, language_name) values ('FJ', 'EN', 'Fiji');
INSERT INTO language_i18n(isocode, lang, language_name) values ('FO', 'EN', 'Faeroese');
INSERT INTO language_i18n(isocode, lang, language_name) values ('FR', 'EN', 'French');
INSERT INTO language_i18n(isocode, lang, language_name) values ('FY', 'EN', 'Frisian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('GA', 'EN', 'Irish');
INSERT INTO language_i18n(isocode, lang, language_name) values ('GD', 'EN', 'Gaelic (Scots Gaelic)');
INSERT INTO language_i18n(isocode, lang, language_name) values ('GL', 'EN', 'Galician');
INSERT INTO language_i18n(isocode, lang, language_name) values ('GN', 'EN', 'Guarani');
INSERT INTO language_i18n(isocode, lang, language_name) values ('GU', 'EN', 'Gujarati');
INSERT INTO language_i18n(isocode, lang, language_name) values ('HA', 'EN', 'Hausa');
INSERT INTO language_i18n(isocode, lang, language_name) values ('HI', 'EN', 'Hindi');
INSERT INTO language_i18n(isocode, lang, language_name) values ('HR', 'EN', 'Croatian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('HU', 'EN', 'Hungarian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('HY', 'EN', 'Armenian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('IA', 'EN', 'Interlingua');
INSERT INTO language_i18n(isocode, lang, language_name) values ('IE', 'EN', 'Interlingue');
INSERT INTO language_i18n(isocode, lang, language_name) values ('IK', 'EN', 'Inupiak');
INSERT INTO language_i18n(isocode, lang, language_name) values ('IN', 'EN', 'Indonesian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('IS', 'EN', 'Icelandic');
INSERT INTO language_i18n(isocode, lang, language_name) values ('IT', 'EN', 'Italian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('IW', 'EN', 'Hebrew');
INSERT INTO language_i18n(isocode, lang, language_name) values ('JA', 'EN', 'Japanese');
INSERT INTO language_i18n(isocode, lang, language_name) values ('JI', 'EN', 'Yiddish');
INSERT INTO language_i18n(isocode, lang, language_name) values ('JW', 'EN', 'Javanese');
INSERT INTO language_i18n(isocode, lang, language_name) values ('KA', 'EN', 'Georgian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('KK', 'EN', 'Kazakh');
INSERT INTO language_i18n(isocode, lang, language_name) values ('KL', 'EN', 'Greenlandic');
INSERT INTO language_i18n(isocode, lang, language_name) values ('KM', 'EN', 'Cambodian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('KN', 'EN', 'Kannada');
INSERT INTO language_i18n(isocode, lang, language_name) values ('KO', 'EN', 'Korean');
INSERT INTO language_i18n(isocode, lang, language_name) values ('KS', 'EN', 'Kashmiri');
INSERT INTO language_i18n(isocode, lang, language_name) values ('KU', 'EN', 'Kurdish');
INSERT INTO language_i18n(isocode, lang, language_name) values ('KY', 'EN', 'Kirghiz');
INSERT INTO language_i18n(isocode, lang, language_name) values ('LA', 'EN', 'Latin');
INSERT INTO language_i18n(isocode, lang, language_name) values ('LN', 'EN', 'Lingala');
INSERT INTO language_i18n(isocode, lang, language_name) values ('LO', 'EN', 'Laothian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('LT', 'EN', 'Lithuanian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('LV', 'EN', 'Latvian (Lettish)');
INSERT INTO language_i18n(isocode, lang, language_name) values ('MG', 'EN', 'Malagasy');
INSERT INTO language_i18n(isocode, lang, language_name) values ('MI', 'EN', 'Maori');
INSERT INTO language_i18n(isocode, lang, language_name) values ('MK', 'EN', 'Macedonian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('ML', 'EN', 'Malayalam');
INSERT INTO language_i18n(isocode, lang, language_name) values ('MN', 'EN', 'Mongolian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('MO', 'EN', 'Moldavian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('MR', 'EN', 'Marathi');
INSERT INTO language_i18n(isocode, lang, language_name) values ('MS', 'EN', 'Malay');
INSERT INTO language_i18n(isocode, lang, language_name) values ('MT', 'EN', 'Maltese');
INSERT INTO language_i18n(isocode, lang, language_name) values ('MY', 'EN', 'Burmese');
INSERT INTO language_i18n(isocode, lang, language_name) values ('NA', 'EN', 'Nauru');
INSERT INTO language_i18n(isocode, lang, language_name) values ('NE', 'EN', 'Nepali');
INSERT INTO language_i18n(isocode, lang, language_name) values ('NL', 'EN', 'Dutch');
INSERT INTO language_i18n(isocode, lang, language_name) values ('NO', 'EN', 'Norwegian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('OC', 'EN', 'Occitan');
INSERT INTO language_i18n(isocode, lang, language_name) values ('OM', 'EN', 'Oromo (Afan)');
INSERT INTO language_i18n(isocode, lang, language_name) values ('OR', 'EN', 'Oriya');
INSERT INTO language_i18n(isocode, lang, language_name) values ('PA', 'EN', 'Punjabi');
INSERT INTO language_i18n(isocode, lang, language_name) values ('PL', 'EN', 'Polish');
INSERT INTO language_i18n(isocode, lang, language_name) values ('PS', 'EN', 'Pashto (Pushto)');
INSERT INTO language_i18n(isocode, lang, language_name) values ('PT', 'EN', 'Portuguese');
INSERT INTO language_i18n(isocode, lang, language_name) values ('QU', 'EN', 'Quechua');
INSERT INTO language_i18n(isocode, lang, language_name) values ('RM', 'EN', 'Rhaeto-Romance');
INSERT INTO language_i18n(isocode, lang, language_name) values ('RN', 'EN', 'Kirundi');
INSERT INTO language_i18n(isocode, lang, language_name) values ('RO', 'EN', 'Romanian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('RU', 'EN', 'Russian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('RW', 'EN', 'Kinyarwanda');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SA', 'EN', 'Sanskrit');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SD', 'EN', 'Sindhi');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SG', 'EN', 'Sangro');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SH', 'EN', 'Serbo-Croatian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SI', 'EN', 'Singhalese');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SK', 'EN', 'Slovak');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SL', 'EN', 'Slovenian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SM', 'EN', 'Samoan');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SN', 'EN', 'Shona');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SO', 'EN', 'Somali');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SQ', 'EN', 'Albanian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SR', 'EN', 'Serbian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SS', 'EN', 'Siswati');
INSERT INTO language_i18n(isocode, lang, language_name) values ('ST', 'EN', 'Sesotho');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SU', 'EN', 'Sudanese');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SV', 'EN', 'Swedish');
INSERT INTO language_i18n(isocode, lang, language_name) values ('SW', 'EN', 'Swahili');
INSERT INTO language_i18n(isocode, lang, language_name) values ('TA', 'EN', 'Tamil');
INSERT INTO language_i18n(isocode, lang, language_name) values ('TE', 'EN', 'Tegulu');
INSERT INTO language_i18n(isocode, lang, language_name) values ('TG', 'EN', 'Tajik');
INSERT INTO language_i18n(isocode, lang, language_name) values ('TH', 'EN', 'Thai');
INSERT INTO language_i18n(isocode, lang, language_name) values ('TI', 'EN', 'Tigrinya');
INSERT INTO language_i18n(isocode, lang, language_name) values ('TK', 'EN', 'Turkmen');
INSERT INTO language_i18n(isocode, lang, language_name) values ('TL', 'EN', 'Tagalog');
INSERT INTO language_i18n(isocode, lang, language_name) values ('TN', 'EN', 'Setswana');
INSERT INTO language_i18n(isocode, lang, language_name) values ('TO', 'EN', 'Tonga');
INSERT INTO language_i18n(isocode, lang, language_name) values ('TR', 'EN', 'Turkish');
INSERT INTO language_i18n(isocode, lang, language_name) values ('TS', 'EN', 'Tsonga');
INSERT INTO language_i18n(isocode, lang, language_name) values ('TT', 'EN', 'Tatar');
INSERT INTO language_i18n(isocode, lang, language_name) values ('TW', 'EN', 'Twi');
INSERT INTO language_i18n(isocode, lang, language_name) values ('UK', 'EN', 'Ukrainian');
INSERT INTO language_i18n(isocode, lang, language_name) values ('UR', 'EN', 'Urdu');
INSERT INTO language_i18n(isocode, lang, language_name) values ('UZ', 'EN', 'Uzbek');
INSERT INTO language_i18n(isocode, lang, language_name) values ('VI', 'EN', 'Vietnamese');
INSERT INTO language_i18n(isocode, lang, language_name) values ('VO', 'EN', 'Volapuk');
INSERT INTO language_i18n(isocode, lang, language_name) values ('WO', 'EN', 'Wolof');
INSERT INTO language_i18n(isocode, lang, language_name) values ('XH', 'EN', 'Xhosa');
INSERT INTO language_i18n(isocode, lang, language_name) values ('YO', 'EN', 'Yoruba');
INSERT INTO language_i18n(isocode, lang, language_name) values ('ZH', 'EN', 'Chinese');
INSERT INTO language_i18n(isocode, lang, language_name) values ('ZU', 'EN', 'Zulu');
INSERT INTO string(string_id) VALUES (1);
INSERT INTO string(string_id) VALUES (2);
INSERT INTO string(string_id) VALUES (3);
INSERT INTO string(string_id) VALUES (1000);
INSERT INTO string(string_id) VALUES (2000);
INSERT INTO string_i18n(string_id, lang, string) VALUES (1, 'EN', 'Test Text');
INSERT INTO string_i18n(string_id, lang, string) VALUES (2, 'EN', '<h1><center>Lampadas Header</center></h1>');
INSERT INTO string_i18n(string_id, lang, string) VALUES (3, 'EN', '<h1><center>Lampadas Footer</center></h1>');
INSERT INTO string_i18n(string_id, lang, string) VALUES (1000, 'EN', '|header| |body| |footer|');
INSERT INTO string_i18n(string_id, lang, string) VALUES (2000, 'EN', 'Hi, this page will be about Lampadas.');

View File

@ -5,7 +5,7 @@ CREATE TABLE document
doc_id INT4 NOT NULL,
title TEXT NOT NULL,
class_id INT4,
format CHAR(12),
format_id INT4,
dtd CHAR(12),
dtd_version CHAR(12),
version CHAR(12),

View File

@ -4,7 +4,7 @@ CREATE TABLE document_file
(
doc_id INT4 NOT NULL,
filename TEXT NOT NULL,
format CHAR(12),
format_id INT4,
PRIMARY KEY (doc_id, filename)
);

View File

@ -2,7 +2,7 @@ DROP TABLE format;
CREATE TABLE format
(
format CHAR(12) NOT NULL,
format_id INT4 NOT NULL,
PRIMARY KEY (format)
PRIMARY KEY (format_id)
);

View File

@ -2,9 +2,10 @@ DROP TABLE format_i18n;
CREATE TABLE format_i18n
(
format CHAR(12) NOT NULL,
format_id INT4 NOT NULL,
lang CHAR(2) NOT NULL,
format_name TEXT NOT NULL,
format_desc TEXT,
PRIMARY KEY (format, lang)
PRIMARY KEY (format_id, lang)
);

View File

@ -1,7 +1,7 @@
ALTER TABLE class_i18n ADD CONSTRAINT class_id_fk FOREIGN KEY (class_id) REFERENCES class(class_id);
ALTER TABLE class_i18n ADD CONSTRAINT class_lang_fk FOREIGN KEY (lang) REFERENCES language(isocode);
ALTER TABLE document ADD CONSTRAINT class_id_fk FOREIGN KEY (class_id) REFERENCES class(class_id);
ALTER TABLE document ADD CONSTRAINT format_fk FOREIGN KEY (format) REFERENCES format(format);
ALTER TABLE document ADD CONSTRAINT format_id_fk FOREIGN KEY (format_id) REFERENCES format(format_id);
ALTER TABLE document ADD CONSTRAINT dtd_fk FOREIGN KEY (dtd) REFERENCES dtd(dtd);
ALTER TABLE document ADD CONSTRAINT pub_status_fk FOREIGN KEY (pub_status) REFERENCES pub_status(pub_status);
ALTER TABLE document ADD CONSTRAINT review_status_fk FOREIGN KEY (review_status) REFERENCES review_status(review_status);
@ -10,7 +10,7 @@ ALTER TABLE document ADD CONSTRAINT license_fk FOREIGN KEY (license) REFEREN
ALTER TABLE document ADD CONSTRAINT language_fk FOREIGN KEY (lang) REFERENCES language(isocode);
ALTER TABLE document_error ADD CONSTRAINT doc_id_fk FOREIGN KEY (doc_id) REFERENCES document(doc_id);
ALTER TABLE document_file ADD CONSTRAINT doc_id_fk FOREIGN KEY (doc_id) REFERENCES document(doc_id);
ALTER TABLE document_file ADD CONSTRAINT format_fk FOREIGN KEY (format) REFERENCES format(format);
ALTER TABLE document_file ADD CONSTRAINT format_id_fk FOREIGN KEY (format_id) REFERENCES format(format_id);
ALTER TABLE document_rev ADD CONSTRAINT doc_id_fk FOREIGN KEY (doc_id) REFERENCES document(doc_id);
ALTER TABLE document_topic ADD CONSTRAINT doc_id_fk FOREIGN KEY (doc_id) REFERENCES document(doc_id);
ALTER TABLE document_topic ADD CONSTRAINT topic_num_fk FOREIGN KEY (topic_num) REFERENCES topic(topic_num);
@ -23,15 +23,15 @@ ALTER TABLE doc_vote ADD CONSTRAINT doc_id_fk FOREIGN KEY (doc_id) REFERENCE
ALTER TABLE doc_vote ADD CONSTRAINT user_id_fk FOREIGN KEY (user_id) REFERENCES username(user_id);
ALTER TABLE error_i18n ADD CONSTRAINT err_id_fk FOREIGN KEY (err_id) REFERENCES error(err_id);
ALTER TABLE error_i18n ADD CONSTRAINT lang_fk FOREIGN KEY (lang) REFERENCES language(isocode);
ALTER TABLE format_i18n ADD CONSTRAINT format_fk FOREIGN KEY (format) REFERENCES format(format);
ALTER TABLE format_i18n ADD CONSTRAINT format_id_fk FOREIGN KEY (format_id) REFERENCES format(format_id);
ALTER TABLE format_i18n ADD CONSTRAINT format_lang_fk FOREIGN KEY (lang) REFERENCES language(isocode);
ALTER TABLE language_i18n ADD CONSTRAINT language_fk FOREIGN KEY (language) REFERENCES language(isocode);
ALTER TABLE language_i18n ADD CONSTRAINT language_fk FOREIGN KEY (isocode) REFERENCES language(isocode);
ALTER TABLE language_i18n ADD CONSTRAINT language_lang_fk FOREIGN KEY (lang) REFERENCES language(isocode);
ALTER TABLE notes ADD CONSTRAINT doc_id_fk FOREIGN KEY (doc_id) REFERENCES document(doc_id);
ALTER TABLE notes ADD CONSTRAINT creator_id_fk FOREIGN KEY (creator_id) REFERENCES username(user_id);
ALTER TABLE pub_status_i18n ADD CONSTRAINT pub_status_fk FOREIGN KEY (pub_status) REFERENCES pub_status(pub_status);
ALTER TABLE pub_status_i18n ADD CONSTRAINT pub_status_lang_fk FOREIGN KEY (lang) REFERENCES language(isocode);
ALTER TABLE string_i18n ADD CONSTRAINT string_code_fk FOREIGN KEY (string_code) REFERENCES string(string_code);
ALTER TABLE string_i18n ADD CONSTRAINT string_id_fk FOREIGN KEY (string_id) REFERENCES string(string_id);
ALTER TABLE string_i18n ADD CONSTRAINT string_lang_fk FOREIGN KEY (lang) REFERENCES language(isocode);
ALTER TABLE subtopic ADD CONSTRAINT topic_num_fk FOREIGN KEY (topic_num) REFERENCES topic(topic_num);
ALTER TABLE topic_i18n ADD CONSTRAINT topic_num_fk FOREIGN KEY (topic_num) REFERENCES topic(topic_num);

View File

@ -2,7 +2,7 @@ DROP TABLE string;
CREATE TABLE string
(
string_code CHAR(20) NOT NULL,
string_id INT4 NOT NULL,
PRIMARY KEY (string_code)
PRIMARY KEY (string_id)
);

View File

@ -2,9 +2,9 @@ DROP TABLE string_i18n;
CREATE TABLE string_i18n
(
string_code CHAR(20) NOT NULL,
string_id INT4 NOT NULL,
lang CHAR(2) NOT NULL,
string TEXT NOT NULL,
PRIMARY KEY (string_code, lang)
PRIMARY KEY (string_id, lang)
);

View File

@ -3,7 +3,7 @@ DROP TABLE topic_i18n;
CREATE TABLE topic_i18n
(
topic_num INT4 NOT NULL,
lang CHAR(2) NOT NULL
lang CHAR(2) NOT NULL,
topic_name TEXT NOT NULL,
topic_description TEXT,

View File

@ -294,30 +294,38 @@ while (@row = $result->fetchrow) {
$class = $row[0];
$class_name = $row[1];
$class_id++;
$sql = "INSERT INTO class_new (class_id) VALUES ($class_id)";
$conn->exec($sql);
$sql = "INSERT INTO class_i18n(class_id, lang, class_name, class_description) VALUES ($class_id, 'EN', " . wsq($class) . ", " . wsq($class_name) . ")";
$conn->exec($sql);
$conn->exec("INSERT INTO class_new (class_id) VALUES ($class_id)");
$conn->exec("INSERT INTO class_i18n(class_id, lang, class_name, class_description) VALUES ($class_id, 'EN', " . wsq($class) . ", " . wsq($class_name) . ")");
}
# i18n support in format table
#
$conn->exec("CREATE TABLE format_new (format CHAR(12) NOT NULL, PRIMARY KEY (format))");
$conn->exec("CREATE TABLE format_i18n (format CHAR(12) NOT NULL, lang CHAR(2) NOT NULL, format_name CHAR(20) NOT NULL, PRIMARY KEY (format, lang))");
$conn->exec("INSERT INTO format_i18n SELECT format, 'EN' as lang, format_name FROM format");
$conn->exec("INSERT INTO format_new SELECT format FROM format");
$conn->exec("CREATE TABLE format_new (format_id INT4 NOT NULL, PRIMARY KEY (format_id))");
$conn->exec("DROP TABLE format_i18n");
$conn->exec("CREATE TABLE format_i18n (format_id INT4 NOT NULL, lang CHAR(2) NOT NULL, format_name CHAR(20) NOT NULL, format_desc TEXT, PRIMARY KEY (format_id, lang))");
$result = $conn->exec("SELECT format, format_name FROM format");
$format_id = 0;
while (@row = $result->fetchrow) {
$format_id++;
$format_name = $row[0];
$format_desc = $row[1];
$conn->exec("INSERT INTO format_new (format_id) VALUES ($format_id)");
$conn->exec("INSERT INTO format_i18n (format_id, lang, format_name, format_desc) VALUES ($format_id, 'EN' as lang, " . wsq($format_name) . ", " . wsq($format_desc) . ")");
}
# i18n support in pub_status table
#
$conn->exec("DROP TABLE pub_status_new");
$conn->exec("CREATE TABLE pub_status_new (pub_status CHAR(1) NOT NULL, PRIMARY KEY (pub_status))");
$conn->exec("CREATE TABLE pub_status_i18n (pub_status CHAR(1) NOT NULL, lang CHAR(2) NOT NULL, pub_status_name TEXT NOT NULL, pub_status_description TEXT NOT NULL, PRIMARY KEY (pub_status, lang))");
$conn->exec("INSERT INTO pub_status_i18n SELECT pub_status, 'EN' as lang, pub_status_name, pub_status_description FROM pub_status");
$conn->exec("DROP TABLE pub_status_i18n");
$conn->exec("CREATE TABLE pub_status_i18n (pub_status CHAR(1) NOT NULL, lang CHAR(2) NOT NULL, pub_status_name TEXT NOT NULL, pub_status_desc TEXT NOT NULL, PRIMARY KEY (pub_status, lang))");
$conn->exec("INSERT INTO pub_status_i18n SELECT pub_status, 'EN' as lang, pub_status_name, pub_status_desc FROM pub_status");
$conn->exec("INSERT INTO pub_status_new SELECT pub_status FROM pub_status");
# i18n support in topic table
#
$conn->exec("CREATE TABLE topic_new (topic_num INT4 NOT NULL, PRIMARY KEY (topic_num)");
$conn->exec("CREATE TABLE topic_i18n (topic_num INT4 NOT NULL, lang CHAR(2) NOT NULL, topic_name TEXT NOT NULL, topic_description TEXT, PRIMARY KEY(topic_num, lang)");
$conn->exec("CREATE TABLE topic_new (topic_num INT4 NOT NULL, PRIMARY KEY (topic_num))");
$conn->exec("CREATE TABLE topic_i18n (topic_num INT4 NOT NULL, lang CHAR(2) NOT NULL, topic_name TEXT NOT NULL, topic_description TEXT, PRIMARY KEY(topic_num, lang))");
$conn->exec("INSERT INTO topic_new SELECT topic_num FROM topic");
$conn->exec("INSERT INTO topic_i18n SELECT topic_num, 'EN' as lang, topic_name, topic_description FROM topic");
@ -325,8 +333,8 @@ $conn->exec("INSERT INTO topic_i18n SELECT topic_num, 'EN' as lang, topic_name,
# Convert class to class_id
#
$conn->exec("DROP TABLE document_new");
$conn->exec("CREATE TABLE document_new (doc_id INT4 NOT NULL, title TEXT NOT NULL, class_id INT4, format CHAR(12), dtd CHAR(12), dtd_version CHAR(12), version CHAR(12), last_update DATE, URL TEXT, ISBN TEXT, pub_status CHAR, review_status CHAR, tickle_date DATE, pub_date DATE, ref_url TEXT, tech_review_status CHAR, maintained BOOLEAN DEFAULT False, license CHAR(12), abstract TEXT, rating REAL, lang CHAR(2), PRIMARY KEY (doc_id))");
$conn->exec("INSERT INTO document_new SELECT doc_id, title, class_id, format, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, maintained, license, abstract, rating FROM document d, class_i18n c WHERE d.class=c.class_name");
$conn->exec("CREATE TABLE document_new (doc_id INT4 NOT NULL, title TEXT NOT NULL, class_id INT4, format_id INT4, dtd CHAR(12), dtd_version CHAR(12), version CHAR(12), last_update DATE, URL TEXT, ISBN TEXT, pub_status CHAR, review_status CHAR, tickle_date DATE, pub_date DATE, ref_url TEXT, tech_review_status CHAR, maintained BOOLEAN DEFAULT False, license CHAR(12), abstract TEXT, rating REAL, lang CHAR(2), PRIMARY KEY (doc_id))");
$conn->exec("INSERT INTO document_new SELECT doc_id, title, class_id, format_id, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, maintained, license, abstract, rating FROM document d, class_i18n c, format_i18n f WHERE d.class=c.class_name AND d.format=f.format_name");
$conn->exec("UPDATE document_new SET lang='EN'");
# Add document sk_seriesid values
@ -377,7 +385,7 @@ $conn->exec("UPDATE document SET filename='howto/' || filename where class='TEMP
# Create document_file table
#
$conn->exec("DROP TABLE document_file");
$conn->exec("CREATE TABLE document_file(doc_id INT4 NOT NULL, filename TEXT NOT NULL, format CHAR(12), PRIMARY KEY (doc_id, filename))");
$conn->exec("CREATE TABLE document_file(doc_id INT4 NOT NULL, filename TEXT NOT NULL, format_id INT4, PRIMARY KEY (doc_id, filename))");
$conn->exec("INSERT INTO document_file(doc_id, filename) SELECT doc_id, filename FROM document WHERE filename<>''");
# Create document_error table
@ -385,13 +393,17 @@ $conn->exec("INSERT INTO document_file(doc_id, filename) SELECT doc_id, filename
$conn->exec("DROP TABLE document_error");
$conn->exec("CREATE TABLE document_error(doc_id INT4 NOT NULL, err_id INT4 NOT NULL)");
# Create language table
#
$conn->exec("DROP TABLE language");
$conn->exec("CREATE TABLE language(isocode CHAR(2) NOT NULL, PRIMARY KEY (isocode))");
$conn->exec("DROP TABLE language_i18n");
$conn->exec("CREATE TABLE language_i18n(isocode CHAR(2) NOT NULL, lang CHAR(2), language_name TEXT NOT NULL, PRIMARY KEY (isocode, lang))");
# Create string table
#
$conn->exec("DROP TABLE string");
$conn->exec("CREATE TABLE string (string_id INT4 NOT NULL, PRIMARY KEY (string_id))");
# Create string_i18n table
#
$conn->exec("DROP TABLE string_i18n");
$conn->exec("CREATE TABLE string_i18n (string_id INT4 NOT NULL, lang CHAR(2) NOT NULL, string TEXT NOT NULL, PRIMARY KEY (string_id, lang))");
@ -401,7 +413,7 @@ $conn->exec("DROP TABLE error");
$conn->exec("CREATE TABLE error (err_id INT4 NOT NULL, PRIMARY KEY (err_id))");
$conn->exec("DROP TABLE error_i18n");
$conn->exec("CREATE TABLE error_i18n (err_id INT4 NOT NULL, err_name TEXT NOT NULL, err_desc TEXT PRIMARY KEY (err_id))");
$conn->exec("CREATE TABLE error_i18n (err_id INT4 NOT NULL, err_name TEXT NOT NULL, err_desc TEXT, PRIMARY KEY (err_id))");
# Copy the new tables over to replace the old ones
@ -418,6 +430,7 @@ $conn->exec("DROP TABLE format");
$conn->exec("DROP TABLE maintainer");
$conn->exec("DROP TABLE maintainer_notes");
$conn->exec("DROP TABLE notes");
$conn->exec("DROP TABLE pub_status");
$conn->exec("DROP TABLE role");
$conn->exec("DROP TABLE topic");
$conn->exec("DROP TABLE username");
@ -428,6 +441,7 @@ $conn->exec("ALTER TABLE document_wiki_new RENAME TO document_wiki");
$conn->exec("ALTER TABLE doc_vote_new RENAME TO doc_vote");
$conn->exec("ALTER TABLE format_new RENAME TO format");
$conn->exec("ALTER TABLE notes_new RENAME TO notes");
$conn->exec("ALTER TABLE pub_status_new RENAME TO pub_status");
$conn->exec("ALTER TABLE role_new RENAME TO role");
$conn->exec("ALTER TABLE topic_new RENAME TO topic");
$conn->exec("ALTER TABLE username_new RENAME TO username");

View File

@ -21,15 +21,15 @@ import commands
class Converter:
def ConvertSGMLFile(self, filename, format):
if format == 'XML' or format == 'SGML':
def ConvertSGMLFile(self, Filename, Format):
if Format == 'XML' or Format == 'SGML':
command = 'xsltproc '
if format == 'SGML':
if Format == 'SGML':
command = command + '--docbook '
command = command + '/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/docbook.xsl ' + filename
command = command + '/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/docbook.xsl ' + Filename
result = commands.getoutput(command)
else:
return "FORMAT NOT YET SUPPORTED"
return 'FORMAT ' + Format + ' NOT YET SUPPORTED'
return result

View File

@ -196,7 +196,7 @@ class Docs(LampadasCollection):
"""
def Load(self):
self.sql = "SELECT doc_id, title, class_id, format, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, maintained, license, abstract, rating, lang, sk_seriesid FROM document"
self.sql = "SELECT doc_id, title, class_id, format_id, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, maintained, license, abstract, rating, lang, sk_seriesid FROM document"
self.cursor = DB.Select(self.sql)
while (1):
self.row = self.cursor.fetchone()
@ -205,9 +205,9 @@ class Docs(LampadasCollection):
newDoc.Load(self.row)
self[newDoc.ID] = newDoc
def Add(self, Title, ClassID, Format, DTD, DTDVersion, Version, LastUpdate, URL, ISBN, PubStatus, ReviewStatus, TickleDate, PubDate, HomeURL, TechReviewStatus, License, Abstract, LanguageCode, SeriesID):
def Add(self, Title, ClassID, FormatID, DTD, DTDVersion, Version, LastUpdate, URL, ISBN, PubStatus, ReviewStatus, TickleDate, PubDate, HomeURL, TechReviewStatus, License, Abstract, LanguageCode, SeriesID):
self.id = DB.Value('SELECT max(doc_id) from document') + 1
self.sql = "INSERT INTO document(doc_id, title, class_id, format, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, license, abstract, lang, sk_seriesid) VALUES (" + str(self.id) + ", " + wsq(Title) + ", " + str(ClassID) + ", " + wsq(Format) + ", " + wsq(DTD) + ", " + wsq(DTDVersion) + ", " + wsq(Version) + ", " + wsq(LastUpdate) + ", " + wsq(URL) + ", " + wsq(ISBN) + ", " + wsq(PubStatus) + ", " + wsq(ReviewStatus) + ", " + wsq(TickleDate) + ", " + wsq(PubDate) + ", " + wsq(HomeURL) + ", " + wsq(TechReviewStatus) + ", " + wsq(License) + ", " + wsq(Abstract) + ", " + wsq(LanguageCode) + ", " + wsq(SeriesID) + ")"
self.sql = "INSERT INTO document(doc_id, title, class_id, format_id, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, license, abstract, lang, sk_seriesid) VALUES (" + str(self.id) + ", " + wsq(Title) + ", " + str(ClassID) + ", " + dbint(FormatID) + ", " + wsq(DTD) + ", " + wsq(DTDVersion) + ", " + wsq(Version) + ", " + wsq(LastUpdate) + ", " + wsq(URL) + ", " + wsq(ISBN) + ", " + wsq(PubStatus) + ", " + wsq(ReviewStatus) + ", " + wsq(TickleDate) + ", " + wsq(PubDate) + ", " + wsq(HomeURL) + ", " + wsq(TechReviewStatus) + ", " + wsq(License) + ", " + wsq(Abstract) + ", " + wsq(LanguageCode) + ", " + wsq(SeriesID) + ")"
assert DB.Exec(self.sql) == 1
DB.Commit()
self.NewID = DB.Value('SELECT MAX(doc_id) from document')
@ -228,7 +228,7 @@ class Doc:
def __init__(self, id=None):
if id == None: return
self.sql = "SELECT doc_id, title, class_id, format, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, maintained, license, abstract, rating, lang, sk_seriesid FROM document WHERE doc_id=" + str(id)
self.sql = "SELECT doc_id, title, class_id, format_id, dtd, dtd_version, version, last_update, url, isbn, pub_status, review_status, tickle_date, pub_date, ref_url, tech_review_status, maintained, license, abstract, rating, lang, sk_seriesid FROM document WHERE doc_id=" + str(id)
self.cursor = DB.Select(self.sql)
self.row = self.cursor.fetchone()
self.Load(self.row)
@ -237,7 +237,7 @@ class Doc:
self.ID = row[0]
self.Title = trim(row[1])
self.ClassID = row[2]
self.Format = trim(row[3])
self.FormatID = row[3]
self.DTD = trim(row[4])
self.DTDVersion = trim(row[5])
self.Version = trim(row[6])
@ -264,7 +264,7 @@ class Doc:
self.Versions = DocVersions(self.ID)
def Save(self):
self.sql = "UPDATE document SET title=" + wsq(self.Title) + ", class_id=" + str(self.ClassID) + ", format=" + wsq(self.Format) + ", dtd=" + wsq(self.DTD) + ", dtd_version=" + wsq(self.DTDVersion) + ", version=" + wsq(self.Version) + ", last_update=" + wsq(self.LastUpdate) + ", url=" + wsq(self.URL) + ", isbn=" + wsq(self.ISBN) + ", pub_status=" + wsq(self.PubStatus) + ", review_status=" + wsq(self.ReviewStatus) + ", tickle_date=" + wsq(self.TickleDate) + ", pub_date=" + wsq(self.PubDate) + ", ref_url=" + wsq(self.HomeURL) + ", tech_review_status=" + wsq(self.TechReviewStatus) + ", maintained=" + wsq(bool2tf(self.Maintained)) + ", license=" + wsq(self.License) + ", abstract=" + wsq(self.Abstract) + ", rating=" + dbint(self.Rating) + ", lang=" + wsq(self.LanguageCode) + ", sk_seriesid=" + wsq(self.SeriesID) + " WHERE doc_id=" + str(self.ID)
self.sql = "UPDATE document SET title=" + wsq(self.Title) + ", class_id=" + str(self.ClassID) + ", format_id=" + dbint(self.FormatID) + ", dtd=" + wsq(self.DTD) + ", dtd_version=" + wsq(self.DTDVersion) + ", version=" + wsq(self.Version) + ", last_update=" + wsq(self.LastUpdate) + ", url=" + wsq(self.URL) + ", isbn=" + wsq(self.ISBN) + ", pub_status=" + wsq(self.PubStatus) + ", review_status=" + wsq(self.ReviewStatus) + ", tickle_date=" + wsq(self.TickleDate) + ", pub_date=" + wsq(self.PubDate) + ", ref_url=" + wsq(self.HomeURL) + ", tech_review_status=" + wsq(self.TechReviewStatus) + ", maintained=" + wsq(bool2tf(self.Maintained)) + ", license=" + wsq(self.License) + ", abstract=" + wsq(self.Abstract) + ", rating=" + dbint(self.Rating) + ", lang=" + wsq(self.LanguageCode) + ", sk_seriesid=" + wsq(self.SeriesID) + " WHERE doc_id=" + str(self.ID)
DB.Exec(self.sql)
DB.Commit()
@ -326,7 +326,7 @@ class DocFiles(LampadasCollection):
self.data = {}
assert not DocID == None
self.DocID = DocID
self.sql = "SELECT filename, format FROM document_file WHERE doc_id=" + str(DocID)
self.sql = "SELECT filename, format_id FROM document_file WHERE doc_id=" + str(DocID)
self.cursor = DB.Select(self.sql)
while (1):
row = self.cursor.fetchone()
@ -345,10 +345,10 @@ class DocFile:
assert not row == None
self.DocID = DocID
self.Filename = trim(row[0])
self.Format = trim(row[1])
self.FormatID = row[1]
def Save(self):
self.sql = "UPDATE document_file SET format=" + wsq(self.Format) + " WHERE doc_id=" + str(self.DocID) + " AND filename=" + wsq(self.Filename)
self.sql = "UPDATE document_file SET format_id=" + str(self.FormatID) + " WHERE doc_id=" + str(self.DocID) + " AND filename=" + wsq(self.Filename)
assert DB.Exec(self.sql) == 1
DB.Commit()
@ -554,25 +554,25 @@ class Formats(LampadasCollection):
def __init__(self):
self.data = {}
self.sql = "SELECT format FROM format"
self.sql = "SELECT format_id FROM format"
self.cursor = DB.Select(self.sql)
while (1):
row = self.cursor.fetchone()
if row == None: break
newFormat = Format()
newFormat.Load(row)
self.data[newFormat.Format] = newFormat
self.data[newFormat.ID] = newFormat
class Format:
def __init__(self, Format=None):
def __init__(self, FormatID=None):
self.I18n = {}
if Format==None: return
self.Code = Format
if FormatID==None: return
self.ID = FormatID
def Load(self, row):
self.Format = trim(row[0])
self.sql = "SELECT lang, format_name FROM format_i18n WHERE format=" + wsq(self.Format)
self.ID = row[0]
self.sql = "SELECT lang, format_name, format_desc FROM format_i18n WHERE format_id=" + str(self.ID)
self.cursor = DB.Select(self.sql)
while (1):
self.row = self.cursor.fetchone()
@ -588,6 +588,7 @@ class FormatI18n:
def Load(self, row):
self.Lang = row[0]
self.Name = trim(row[1])
self.Description = trim(row[2])
# Languages
@ -599,7 +600,7 @@ class Languages(LampadasCollection):
def __init__(self):
self.data = {}
self.sql = "SELECT isocode, language_name FROM language"
self.sql = "SELECT isocode FROM language"
self.cursor = DB.Select(self.sql)
while (1):
row = self.cursor.fetchone()
@ -693,25 +694,25 @@ class Strings(LampadasCollection):
def __init__(self):
self.data = {}
self.sql = "SELECT string_code FROM string"
self.sql = "SELECT string_id FROM string"
self.cursor = DB.Select(self.sql)
while (1):
row = self.cursor.fetchone()
if row == None: break
newString = String()
newString.Load(row)
self.data[newString.Code] = newString
self.data[newString.ID] = newString
class String:
def __init__(self, StringCode=None):
def __init__(self, StringID=None):
self.I18n = {}
if StringCode==None: return
self.Code = StringCode
if StringID==None: return
self.ID = StringID
def Load(self, row):
self.Code = trim(row[0])
self.sql = "SELECT lang, string FROM string_i18n WHERE string_code=" + wsq(self.Code)
self.ID = row[0]
self.sql = "SELECT lang, string FROM string_i18n WHERE string_id=" + str(self.ID)
self.cursor = DB.Select(self.sql)
while (1):
self.row = self.cursor.fetchone()

View File

@ -12,10 +12,18 @@ to the Lampadas system.
import DataLayer
import Converter
import commands
from types import *
# Constants
# These are string_id values for looking up strings in the string table
#
PG_HEADER = 2
PG_FOOTER = 3
TPL_DEFAULT = 1000
PG_ABOUT = 2000
# Globals
@ -38,23 +46,24 @@ class HTMLFactory:
class PageFactory:
def __call__(self, key, lang):
if key[:4] == 'doc/':
if type(key) is IntType:
return self.Page(key, lang)
elif key[:4] == 'doc/':
DocID = int(key[4:])
return self.DocPage(DocID, lang)
else:
return self.Page(key, lang)
def Page(self, key, lang):
page = L.Strings['tpl-default'].I18n[lang].Text
page = page.replace('|header|', L.Strings['header'].I18n[lang].Text)
page = page.replace('|footer|', L.Strings['footer'].I18n[lang].Text)
page = L.Strings[TPL_DEFAULT].I18n[lang].Text
page = page.replace('|header|', L.Strings[PG_HEADER].I18n[lang].Text)
page = page.replace('|footer|', L.Strings[PG_FOOTER].I18n[lang].Text)
page = page.replace('|body|', L.Strings[key].I18n[lang].Text)
return page
def DocPage(self, DocID, lang):
Doc = L.Docs[DocID]
assert not Doc == None
if Doc.Format=='SGML' or Doc.Format == 'XML':
docformat = L.Formats[Doc.FormatID].I18n['EN'].Name
if docformat=='SGML' or docformat=='XML':
Files = Doc.Files
if Files.Count() == 0:
page = 'No file to process'
@ -64,9 +73,9 @@ class PageFactory:
keys = Files.keys()
for key in keys:
File = Files[key]
page = C.ConvertSGMLFile(cvs_root + File.Filename, File.Format)
page = C.ConvertSGMLFile(cvs_root + File.Filename, docformat)
else:
page = 'FORMAT NOT YET SUPPORTED'
page = 'FORMAT ' + docformat + ' NOT YET SUPPORTED'
return page
@ -106,20 +115,59 @@ class ComboFactory:
self.combo = self.combo + "</select>"
return self.combo
def DTDs(self, value, lang=None):
self.combo = "<select name='dtd'>\n"
keys = L.DTDs.keys()
for key in keys:
dtd = L.DTDs[key]
if dtd == None: break
# if dtd.LanguageCode == lang or lang == None:
self.combo = self.combo + "<option "
if dtd.DTD == value:
self.combo = self.combo + "selected "
self.combo = self.combo + "value='" + dtd.DTD + "'>"
self.combo = self.combo + dtd.DTD
self.combo = self.combo + "</option>\n"
self.combo = self.combo + "</select>"
return self.combo
def Formats(self, value, lang=None):
self.combo = "<select name='format'>\n"
keys = L.Formats.keys()
for key in keys:
format = L.Formats[key]
if format == None: break
self.combo = self.combo + "<option "
if format.ID == value:
self.combo = self.combo + "selected "
self.combo = self.combo + "value='" + str(format.ID) + "'>"
self.combo = self.combo + format.I18n[lang].Name
self.combo = self.combo + "</option>\n"
self.combo = self.combo + "</select>"
return self.combo
Factory = HTMLFactory()
# Sample low-level ComboBox, Classes
#output = Factory.Combo.Classes(2,'EN')
#print output
output = Factory.Combo.Classes(2, 'EN')
print output
# Sample low-level ComboBox, DTDs
output = Factory.Combo.DTDs(1, 'EN')
print output
# Sample low-level ComboBox, Formats
output = Factory.Combo.Formats(1, 'EN')
print output
# Sample i18n page, About Lampadas
#output = Factory.Page('pg-about', 'EN')
#print output
output = Factory.Page(PG_ABOUT, 'EN')
print output
# Sample SGML processing, LDP Reviewer HOWTO
#output = Factory.Page('doc/419', 'EN')
#print output
output = Factory.Page('doc/419', 'EN')
print output
# Sample XML processing, Finnish HOWTO
output = Factory.Page('doc/68', 'EN')

View File

@ -65,7 +65,7 @@ class testDocs(unittest.TestCase):
DB.Commit()
self.OldID = DB.Value('SELECT max(doc_id) from document')
self.NewID = L.Docs.Add('testharness', 1, 'XML', 'DocBook', '4.1.2', '1.0', '2002-04-04', 'http://www.example.com/HOWTO.html', 'ISBN', 'N', 'N', '2002-04-05', '2002-04-10', 'http://www.home.com', 'N', 'GFDL', 'This is a document.', 'EN', 'fooseries')
self.NewID = L.Docs.Add('testharness', 1, 1, 'DocBook', '4.1.2', '1.0', '2002-04-04', 'http://www.example.com/HOWTO.html', 'ISBN', 'N', 'N', '2002-04-05', '2002-04-10', 'http://www.home.com', 'N', 'GFDL', 'This is a document.', 'EN', 'fooseries')
assert self.NewID > 0
assert self.OldID + 1 == self.NewID
@ -73,6 +73,7 @@ class testDocs(unittest.TestCase):
assert not self.Doc == None
assert self.Doc.ID == self.NewID
assert self.Doc.Title == 'testharness'
assert self.Doc.FormatID == 1
L.Docs.Del(self.NewID)
self.NewID = DB.Value('SELECT MAX(doc_id) from document')
@ -198,7 +199,11 @@ class testFormats(unittest.TestCase):
def testFormats(self):
assert L.Formats.Count() > 0
assert not L.Formats['XML'] == None
assert not L.Formats[1] == None
assert not L.Formats[1].I18n == None
assert not L.Formats[1].I18n['EN'] == None
assert L.Formats[1].I18n['EN'].Name > ''
assert L.Formats[1].I18n['EN'].Description > ''
class testLanguages(unittest.TestCase):
@ -223,8 +228,8 @@ class testStrings(unittest.TestCase):
def testStrings(self):
assert not L.Strings == None
assert L.Strings.Count() > 0
assert not L.Strings['header'] == None
assert L.Strings['test'].I18n['EN'].Text == 'Test Text'
assert not L.Strings[1] == None
assert L.Strings[1].I18n['EN'].Text == 'Test Text'
class testTopics(unittest.TestCase):
@ -264,7 +269,7 @@ class testUsers(unittest.TestCase):
class testUserDocs(unittest.TestCase):
def setUp(self):
self.User = L.User(1)
self.User = L.User(11)
assert len(self.User.Docs) > 0
assert self.User.Docs.Count() > 0