Commit 725227e1 authored by Frank Bergmann's avatar Frank Bergmann

- OpenACS 5.6

parent 9ea2e38d
......@@ -2,34 +2,26 @@
<!-- Generated by the OpenACS Package Manager -->
<package key="ref-language" url="http://www.mayuli.com/acs-repository/apm/packages/ref-language" type="apm_service">
<license>GPL V2.0 or any later version</license>
<package-name>Reference Data - Language</package-name>
<pretty-plural>Reference Data - Languages</pretty-plural>
<initial-install-p>f</initial-install-p>
<initial-install-p>t</initial-install-p>
<singleton-p>t</singleton-p>
<version name="0.1d" url="http://www.mayuli.com/acs-repository/download/apm/ref-language-0.1d.apm">
<database-support>
<database>oracle</database>
<database>postgresql</database>
</database-support>
<version name="5.6.0" url="http://www.mayuli.com/acs-repository/download/apm/ref-language-5.6.0.apm">
<owner url="mailto:jon@jongriffin.com">Jon Griffin</owner>
<summary>ISO 639-1 language reference data for acs-reference.</summary>
<vendor url="http://www.mayuli.com">Mayuli Enterprises, LLC</vendor>
<description format="text/plain">This is the ISO 639-1 language reference data (with languages names in English).</description>
<provides url="ref-language" version="0.1d"/>
<requires url="acs-kernel" version="4.6.2"/>
<requires url="acs-reference" version="0.1d"/>
<provides url="ref-language" version="5.6.0"/>
<requires url="acs-kernel" version="5.6.0"/>
<requires url="acs-reference" version="5.6.0"/>
<callbacks>
<callback type="after-install" proc="ref_language::apm::after_install"/>
<callback type="after-upgrade" proc="ref_language::apm::after_upgrade"/>
</callbacks>
<files>
<file type="package_spec" path="ref-language.info"/>
<file type="data_model" db_type="oracle" path="sql/common/ref-language-data.sql"/>
<file type="data_model_create" db_type="oracle" path="sql/oracle/ref-language-create.sql"/>
<file type="data_model_drop" db_type="oracle" path="sql/oracle/ref-language-drop.sql"/>
<file type="data_model_create" db_type="postgresql" path="sql/postgresql/ref-language-create.sql"/>
<file type="data_model_drop" db_type="postgresql" path="sql/postgresql/ref-language-drop.sql"/>
</files>
<parameters>
<!-- No version parameters -->
</parameters>
......
aa|Afar
ab|Abkhazian
ae|Avestan
af|Afrikaans
ak|Akan
am|Amharic
an|Aragonese
ar|Arabic
as|Assamese
av|Avaric
ay|Aymara
az|Azerbaijani
ba|Bashkir
be|Belarusian
bg|Bulgarian
bh|Bihari
bi|Bislama
bm|Bambara
bn|Bengali
bo|Tibetan
br|Breton
bs|Bosnian
ca|Catalan; Valencian
ce|Chechen
ch|Chamorro
co|Corsican
cr|Cree
cs|Czech
cu|Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic
cv|Chuvash
cy|Welsh
da|Danish
de|German
dv|Divehi; Dhivehi; Maldivian
dz|Dzongkha
ee|Ewe
el|Greek, Modern (1453-)
en|English
eo|Esperanto
es|Spanish; Castilian
et|Estonian
eu|Basque
fa|Persian
ff|Fulah
fi|Finnish
fj|Fijian
fo|Faroese
fr|French
fy|Western Frisian
ga|Irish
gd|Gaelic; Scottish Gaelic
gl|Galician
gn|Guarani
gu|Gujarati
gv|Manx
ha|Hausa
he|Hebrew
hi|Hindi
ho|Hiri Motu
hr|Croatian
ht|Haitian; Haitian Creole
hu|Hungarian
hy|Armenian
hz|Herero
ia|Interlingua (International Auxiliary Language Association)
id|Indonesian
ie|Interlingue; Occidental
ig|Igbo
ii|Sichuan Yi; Nuosu
ik|Inupiaq
io|Ido
is|Icelandic
it|Italian
iu|Inuktitut
ja|Japanese
jv|Javanese
ka|Georgian
kg|Kongo
ki|Kikuyu; Gikuyu
kj|Kuanyama; Kwanyama
kk|Kazakh
kl|Kalaallisut; Greenlandic
km|Central Khmer
kn|Kannada
ko|Korean
kr|Kanuri
ks|Kashmiri
ku|Kurdish
kv|Komi
kw|Cornish
ky|Kirghiz; Kyrgyz
la|Latin
lb|Luxembourgish; Letzeburgesch
lg|Ganda
li|Limburgan; Limburger; Limburgish
ln|Lingala
lo|Lao
lt|Lithuanian
lu|Luba-Katanga
lv|Latvian
mg|Malagasy
mh|Marshallese
mi|Maori
mk|Macedonian
ml|Malayalam
mn|Mongolian
mr|Marathi
ms|Malay
mt|Maltese
my|Burmese
na|Nauru
nb|Bokmål, Norwegian; Norwegian Bokmål
nd|Ndebele, North; North Ndebele
ne|Nepali
ng|Ndonga
nl|Dutch; Flemish
nn|Norwegian Nynorsk; Nynorsk, Norwegian
no|Norwegian
nr|Ndebele, South; South Ndebele
nv|Navajo; Navaho
ny|Chichewa; Chewa; Nyanja
oc|Occitan (post 1500); Provençal
oj|Ojibwa
om|Oromo
or|Oriya
os|Ossetian; Ossetic
pa|Panjabi; Punjabi
pi|Pali
pl|Polish
ps|Pushto; Pashto
pt|Portuguese
qu|Quechua
rm|Romansh
rn|Rundi
ro|Romanian; Moldavian; Moldovan
ru|Russian
rw|Kinyarwanda
sa|Sanskrit
sc|Sardinian
sd|Sindhi
se|Northern Sami
sg|Sango
si|Sinhala; Sinhalese
sk|Slovak
sl|Slovenian
sm|Samoan
sn|Shona
so|Somali
sq|Albanian
sr|Serbian
ss|Swati
st|Sotho, Southern
su|Sundanese
sv|Swedish
sw|Swahili
ta|Tamil
te|Telugu
tg|Tajik
th|Thai
ti|Tigrinya
tk|Turkmen
tl|Tagalog
tn|Tswana
to|Tonga (Tonga Islands)
tr|Turkish
ts|Tsonga
tt|Tatar
tw|Twi
ty|Tahitian
ug|Uighur; Uyghur
uk|Ukrainian
ur|Urdu
uz|Uzbek
ve|Venda
vi|Vietnamese
vo|Volapük
wa|Walloon
wo|Wolof
xh|Xhosa
yi|Yiddish
yo|Yoruba
za|Zhuang; Chuang
zh|Chinese
zu|Zulu
aar||aa|Afar
abk||ab|Abkhazian
ace|||Achinese
ach|||Acoli
ada|||Adangme
ady|||Adyghe; Adygei
afa|||Afro-Asiatic languages
afh|||Afrihili
afr||af|Afrikaans
ain|||Ainu
aka||ak|Akan
akk|||Akkadian
alb|sqi|sq|Albanian
ale|||Aleut
alg|||Algonquian languages
alt|||Southern Altai
amh||am|Amharic
ang|||English, Old (ca.450-1100)
anp|||Angika
apa|||Apache languages
ara||ar|Arabic
arc|||Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)
arg||an|Aragonese
arm|hye|hy|Armenian
arn|||Mapudungun; Mapuche
arp|||Arapaho
art|||Artificial languages
arw|||Arawak
asm||as|Assamese
ast|||Asturian; Bable; Leonese; Asturleonese
ath|||Athapascan languages
aus|||Australian languages
ava||av|Avaric
ave||ae|Avestan
awa|||Awadhi
aym||ay|Aymara
aze||az|Azerbaijani
bad|||Banda languages
bai|||Bamileke languages
bak||ba|Bashkir
bal|||Baluchi
bam||bm|Bambara
ban|||Balinese
baq|eus|eu|Basque
bas|||Basa
bat|||Baltic languages
bej|||Beja; Bedawiyet
bel||be|Belarusian
bem|||Bemba
ben||bn|Bengali
ber|||Berber languages
bho|||Bhojpuri
bih||bh|Bihari
bik|||Bikol
bin|||Bini; Edo
bis||bi|Bislama
bla|||Siksika
bnt|||Bantu (Other)
bos||bs|Bosnian
bra|||Braj
bre||br|Breton
btk|||Batak languages
bua|||Buriat
bug|||Buginese
bul||bg|Bulgarian
bur|mya|my|Burmese
byn|||Blin; Bilin
cad|||Caddo
cai|||Central American Indian languages
car|||Galibi Carib
cat||ca|Catalan; Valencian
cau|||Caucasian languages
ceb|||Cebuano
cel|||Celtic languages
cha||ch|Chamorro
chb|||Chibcha
che||ce|Chechen
chg|||Chagatai
chi|zho|zh|Chinese
chk|||Chuukese
chm|||Mari
chn|||Chinook jargon
cho|||Choctaw
chp|||Chipewyan; Dene Suline
chr|||Cherokee
chu||cu|Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic
chv||cv|Chuvash
chy|||Cheyenne
cmc|||Chamic languages
cop|||Coptic
cor||kw|Cornish
cos||co|Corsican
cpe|||Creoles and pidgins, English based
cpf|||Creoles and pidgins, French-based
cpp|||Creoles and pidgins, Portuguese-based
cre||cr|Cree
crh|||Crimean Tatar; Crimean Turkish
crp|||Creoles and pidgins
csb|||Kashubian
cus|||Cushitic languages
cze|ces|cs|Czech
dak|||Dakota
dan||da|Danish
dar|||Dargwa
day|||Land Dayak languages
del|||Delaware
den|||Slave (Athapascan)
dgr|||Dogrib
din|||Dinka
div||dv|Divehi; Dhivehi; Maldivian
doi|||Dogri
dra|||Dravidian languages
dsb|||Lower Sorbian
dua|||Duala
dum|||Dutch, Middle (ca.1050-1350)
dut|nld|nl|Dutch; Flemish
dyu|||Dyula
dzo||dz|Dzongkha
efi|||Efik
egy|||Egyptian (Ancient)
eka|||Ekajuk
elx|||Elamite
eng||en|English
enm|||English, Middle (1100-1500)
epo||eo|Esperanto
est||et|Estonian
ewe||ee|Ewe
ewo|||Ewondo
fan|||Fang
fao||fo|Faroese
fat|||Fanti
fij||fj|Fijian
fil|||Filipino; Pilipino
fin||fi|Finnish
fiu|||Finno-Ugrian languages
fon|||Fon
fre|fra|fr|French
frm|||French, Middle (ca.1400-1600)
fro|||French, Old (842-ca.1400)
frr|||Northern Frisian
frs|||Eastern Frisian
fry||fy|Western Frisian
ful||ff|Fulah
fur|||Friulian
gaa|||Ga
gay|||Gayo
gba|||Gbaya
gem|||Germanic languages
geo|kat|ka|Georgian
ger|deu|de|German
gez|||Geez
gil|||Gilbertese
gla||gd|Gaelic; Scottish Gaelic
gle||ga|Irish
glg||gl|Galician
glv||gv|Manx
gmh|||German, Middle High (ca.1050-1500)
goh|||German, Old High (ca.750-1050)
gon|||Gondi
gor|||Gorontalo
got|||Gothic
grb|||Grebo
grc|||Greek, Ancient (to 1453)
gre|ell|el|Greek, Modern (1453-)
grn||gn|Guarani
gsw|||Swiss German; Alemannic; Alsatian
guj||gu|Gujarati
gwi|||Gwich'in
hai|||Haida
hat||ht|Haitian; Haitian Creole
hau||ha|Hausa
haw|||Hawaiian
heb||he|Hebrew
her||hz|Herero
hil|||Hiligaynon
him|||Himachali
hin||hi|Hindi
hit|||Hittite
hmn|||Hmong
hmo||ho|Hiri Motu
hrv||hr|Croatian
hsb|||Upper Sorbian
hun||hu|Hungarian
hup|||Hupa
iba|||Iban
ibo||ig|Igbo
ice|isl|is|Icelandic
ido||io|Ido
iii||ii|Sichuan Yi; Nuosu
ijo|||Ijo languages
iku||iu|Inuktitut
ile||ie|Interlingue; Occidental
ilo|||Iloko
ina||ia|Interlingua (International Auxiliary Language Association)
inc|||Indic languages
ind||id|Indonesian
ine|||Indo-European languages
inh|||Ingush
ipk||ik|Inupiaq
ira|||Iranian languages
iro|||Iroquoian languages
ita||it|Italian
jav||jv|Javanese
jbo|||Lojban
jpn||ja|Japanese
jpr|||Judeo-Persian
jrb|||Judeo-Arabic
kaa|||Kara-Kalpak
kab|||Kabyle
kac|||Kachin; Jingpho
kal||kl|Kalaallisut; Greenlandic
kam|||Kamba
kan||kn|Kannada
kar|||Karen languages
kas||ks|Kashmiri
kau||kr|Kanuri
kaw|||Kawi
kaz||kk|Kazakh
kbd|||Kabardian
kha|||Khasi
khi|||Khoisan languages
khm||km|Central Khmer
kho|||Khotanese; Sakan
kik||ki|Kikuyu; Gikuyu
kin||rw|Kinyarwanda
kir||ky|Kirghiz; Kyrgyz
kmb|||Kimbundu
kok|||Konkani
kom||kv|Komi
kon||kg|Kongo
kor||ko|Korean
kos|||Kosraean
kpe|||Kpelle
krc|||Karachay-Balkar
krl|||Karelian
kro|||Kru languages
kru|||Kurukh
kua||kj|Kuanyama; Kwanyama
kum|||Kumyk
kur||ku|Kurdish
kut|||Kutenai
lad|||Ladino
lah|||Lahnda
lam|||Lamba
lao||lo|Lao
lat||la|Latin
lav||lv|Latvian
lez|||Lezghian
lim||li|Limburgan; Limburger; Limburgish
lin||ln|Lingala
lit||lt|Lithuanian
lol|||Mongo
loz|||Lozi
ltz||lb|Luxembourgish; Letzeburgesch
lua|||Luba-Lulua
lub||lu|Luba-Katanga
lug||lg|Ganda
lui|||Luiseno
lun|||Lunda
luo|||Luo (Kenya and Tanzania)
lus|||Lushai
mac|mkd|mk|Macedonian
mad|||Madurese
mag|||Magahi
mah||mh|Marshallese
mai|||Maithili
mak|||Makasar
mal||ml|Malayalam
man|||Mandingo
mao|mri|mi|Maori
map|||Austronesian languages
mar||mr|Marathi
mas|||Masai
may|msa|ms|Malay
mdf|||Moksha
mdr|||Mandar
men|||Mende
mga|||Irish, Middle (900-1200)
mic|||Mi'kmaq; Micmac
min|||Minangkabau
mis|||Uncoded languages
mkh|||Mon-Khmer languages
mlg||mg|Malagasy
mlt||mt|Maltese
mnc|||Manchu
mni|||Manipuri
mno|||Manobo languages
moh|||Mohawk
mon||mn|Mongolian
mos|||Mossi
mul|||Multiple languages
mun|||Munda languages
mus|||Creek
mwl|||Mirandese
mwr|||Marwari
myn|||Mayan languages
myv|||Erzya
nah|||Nahuatl languages
nai|||North American Indian languages
nap|||Neapolitan
nau||na|Nauru
nav||nv|Navajo; Navaho
nbl||nr|Ndebele, South; South Ndebele
nde||nd|Ndebele, North; North Ndebele
ndo||ng|Ndonga
nds|||Low German; Low Saxon; German, Low; Saxon, Low
nep||ne|Nepali
new|||Nepal Bhasa; Newari
nia|||Nias
nic|||Niger-Kordofanian languages
niu|||Niuean
nno||nn|Norwegian Nynorsk; Nynorsk, Norwegian
nob||nb|Bokmål, Norwegian; Norwegian Bokmål
nog|||Nogai
non|||Norse, Old
nor||no|Norwegian
nqo|||N'Ko
nso|||Pedi; Sepedi; Northern Sotho
nub|||Nubian languages
nwc|||Classical Newari; Old Newari; Classical Nepal Bhasa
nya||ny|Chichewa; Chewa; Nyanja
nym|||Nyamwezi
nyn|||Nyankole
nyo|||Nyoro
nzi|||Nzima
oci||oc|Occitan (post 1500); Provençal
oji||oj|Ojibwa
ori||or|Oriya
orm||om|Oromo
osa|||Osage
oss||os|Ossetian; Ossetic
ota|||Turkish, Ottoman (1500-1928)
oto|||Otomian languages
paa|||Papuan languages
pag|||Pangasinan
pal|||Pahlavi
pam|||Pampanga; Kapampangan
pan||pa|Panjabi; Punjabi
pap|||Papiamento
pau|||Palauan
peo|||Persian, Old (ca.600-400 B.C.)
per|fas|fa|Persian
phi|||Philippine languages
phn|||Phoenician
pli||pi|Pali
pol||pl|Polish
pon|||Pohnpeian
por||pt|Portuguese
pra|||Prakrit languages
pro|||Provençal, Old (to 1500)
pus||ps|Pushto; Pashto
que||qu|Quechua
raj|||Rajasthani
rap|||Rapanui
rar|||Rarotongan; Cook Islands Maori
roa|||Romance languages
roh||rm|Romansh
rom|||Romany
rum|ron|ro|Romanian; Moldavian; Moldovan
run||rn|Rundi
rup|||Aromanian; Arumanian; Macedo-Romanian
rus||ru|Russian
sad|||Sandawe
sag||sg|Sango
sah|||Yakut
sai|||South American Indian (Other)
sal|||Salishan languages
sam|||Samaritan Aramaic
san||sa|Sanskrit
sas|||Sasak
sat|||Santali
scn|||Sicilian
sco|||Scots
sel|||Selkup
sem|||Semitic languages
sga|||Irish, Old (to 900)
sgn|||Sign Languages
shn|||Shan
sid|||Sidamo
sin||si|Sinhala; Sinhalese
sio|||Siouan languages
sit|||Sino-Tibetan languages
sla|||Slavic languages
slo|slk|sk|Slovak
slv||sl|Slovenian
sma|||Southern Sami
sme||se|Northern Sami
smi|||Sami languages
smj|||Lule Sami
smn|||Inari Sami
smo||sm|Samoan
sms|||Skolt Sami
sna||sn|Shona
snd||sd|Sindhi
snk|||Soninke
sog|||Sogdian
som||so|Somali
son|||Songhai languages
sot||st|Sotho, Southern
spa||es|Spanish; Castilian
srd||sc|Sardinian
srn|||Sranan Tongo
srp||sr|Serbian
srr|||Serer
ssa|||Nilo-Saharan languages
ssw||ss|Swati
suk|||Sukuma
sun||su|Sundanese
sus|||Susu
sux|||Sumerian
swa||sw|Swahili
swe||sv|Swedish
syc|||Classical Syriac
syr|||Syriac
tah||ty|Tahitian
tai|||Tai languages
tam||ta|Tamil
tat||tt|Tatar
tel||te|Telugu
tem|||Timne
ter|||Tereno
tet|||Tetum
tgk||tg|Tajik
tgl||tl|Tagalog
tha||th|Thai
tib|bod|bo|Tibetan
tig|||Tigre
tir||ti|Tigrinya
tiv|||Tiv
tkl|||Tokelau
tlh|||Klingon; tlhIngan-Hol
tli|||Tlingit
tmh|||Tamashek
tog|||Tonga (Nyasa)
ton||to|Tonga (Tonga Islands)
tpi|||Tok Pisin
tsi|||Tsimshian
tsn||tn|Tswana
tso||ts|Tsonga
tuk||tk|Turkmen
tum|||Tumbuka
tup|||Tupi languages
tur||tr|Turkish
tut|||Altaic languages
tvl|||Tuvalu
twi||tw|Twi
tyv|||Tuvinian
udm|||Udmurt
uga|||Ugaritic
uig||ug|Uighur; Uyghur
ukr||uk|Ukrainian
umb|||Umbundu
und|||Undetermined
urd||ur|Urdu
uzb||uz|Uzbek
vai|||Vai
ven||ve|Venda
vie||vi|Vietnamese
vol||vo|Volapük
vot|||Votic
wak|||Wakashan languages
wal|||Walamo
war|||Waray
was|||Washo
wel|cym|cy|Welsh
wen|||Sorbian languages
wln||wa|Walloon
wol||wo|Wolof
xal|||Kalmyk; Oirat
xho||xh|Xhosa
yao|||Yao
yap|||Yapese
yid||yi|Yiddish
yor||yo|Yoruba
ypk|||Yupik languages
zap|||Zapotec
zbl|||Blissymbols; Blissymbolics; Bliss
zen|||Zenaga
zha||za|Zhuang; Chuang
znd|||Zande languages
zul||zu|Zulu
zun|||Zuni
zxx|||No linguistic content; Not applicable
zza|||Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki
load data infile '[acs_root_dir]/packages/ref-language/sql/common/languages.dat'
load data infile '[acs_root_dir]/packages/ref-language/sql/common/iso-639-1.dat'
into table language_codes
replace
fields terminated by "," optionally enclosed by "'"
fields terminated by "|" optionally enclosed by "'"
(language_id,name)
......@@ -6,29 +6,26 @@
--
-- ISO 639
-- ISO 639-1
create table language_codes (
language_id char(2)
constraint language_codes_language_id_pk
primary key,
name varchar(100)
constraint language_codes_name_uq
unique
constraint language_codes_name_nn
not null
);
comment on table language_codes is '
This is data from the ISO 639 standard on language codes.
This is data from the ISO 639-1 standard on language codes.
';
comment on column language_codes.language_id is '
This is the ISO standard language code
This is the ISO standard language 2 char code
';
comment on column language_codes.name is '
This is the English version of the language name.
I don''t want to get crazy here!
';
-- now register this table with the repository
......@@ -37,10 +34,20 @@ declare
begin
v_id := acs_reference.new(
table_name => upper('language_codes'),
source => 'ISO 639',
source => 'ISO 639-1',
source_url => 'http://www.iso.ch',
effective_date => sysdate
);
commit;
end;
/
-- Languages ISO-639-2 codes
create table language_639_2_codes (
iso_639_2 char(3) constraint language_codes_iso_639_2_pk primary key,
iso_639_1 char(2),
label varchar(200)
);
comment on table language_639_2_codes is 'Contains ISO-639-2 language codes and their corresponding ISO-639-1 when it exists.';
......@@ -12,6 +12,8 @@ set serveroutput on
-- This will probably fail if their is a child table using this.
-- I can probably make this cleaner also, but ... no time today
drop table language_639_2_codes;
declare
cursor refsrc_cur is
select table_name,
......
-- The table is filled by after_install and after_upgrade apm callbacks
-- using the iso-639-2.dat file
create table language_639_2_codes (
iso_639_2 char(3) constraint language_codes_iso_639_2_pk primary key,
iso_639_1 char(2),
label varchar(200)
);
comment on table language_639_2_codes is 'Contains ISO-639-2 language codes and their corresponding ISO-639-1 when it exists.';
\copy language_codes from '[acs_root_dir]/packages/ref-language/sql/common/languages.dat' using delimiters ',' with null as ''
\copy language_codes from '[acs_root_dir]/packages/ref-language/sql/common/iso-639-1.dat' delimiter '|' null as ''
......@@ -12,30 +12,37 @@ create table language_codes (
constraint language_codes_language_id_pk
primary key,
name varchar(100)
constraint language_codes_name_uq
unique
constraint language_codes_name_nn
not null
);
comment on table language_codes is '
This is data from the ISO 639 standard on language codes.
This is data from the ISO 639-1 standard on language codes.
';
comment on column language_codes.language_id is '
This is the ISO standard language code
This is the ISO standard language 2 chars code
';
comment on column language_codes.name is '
This is the English version of the language name.
I don''t want to get crazy here!
';
-- now register this table with the repository
select acs_reference__new(
'LANGUAGE_CODES',
null,
'ISO 639',
'ISO 639-1',
'http://www.iso.ch',
now()
);
-- Languages ISO-639-2 codes
create table language_639_2_codes (
iso_639_2 char(3) constraint language_codes_iso_639_2_pk primary key,
iso_639_1 char(2),
label varchar(200)
);
comment on table language_639_2_codes is 'Contains ISO-639-2 language codes and their corresponding ISO-639-1 when it exists.';
......@@ -10,6 +10,8 @@
-- This will probably fail if their is a child table using this.
-- I can probably make this cleaner also, but ... no time today
drop table language_639_2_codes;
create function inline_0() returns integer as '
declare
rec acs_reference_repositories%ROWTYPE;
......
-- The table is filled by after_install and after_upgrade apm callbacks
-- using the iso-639-2.dat file
create table language_639_2_codes (
iso_639_2 char(3) constraint language_codes_iso_639_2_pk primary key,
iso_639_1 char(2),
label varchar(200)
);
comment on table language_639_2_codes is 'Contains ISO-639-2 language codes and their corresponding ISO-639-1 when it exists.';
ad_library {
Installation procs for ref-language
@author Emmanuelle Raffenne (eraffenne@gmail.com)
}
namespace eval ref_language {}
namespace eval ref_language::apm {}
ad_proc -private ref_language::apm::after_install {
} {
Fill ISO-639-2 codes table
} {
ref_language::apm::add_language_639_2_codes
}
ad_proc -private ref_language::apm::after_upgrade {
{-from_version_name:required}
{-to_version_name:required}
} {
apm_upgrade_logic \
-from_version_name $from_version_name \
-to_version_name $to_version_name \
-spec {
5.6.0d1 5.6.0d2 {
# If the constraint doesn't exist, we don't care ...
catch [db_dml drop_constraint {}]
set new_languages [ref_language::apm::lang_list_for_5_6_0d2]
foreach {code name} $new_languages {
ref_language::set_data -iso1 $code -label $name
}
}
5.6.0d2 5.6.0d3 {
ref_language::apm::add_language_639_2_codes
}
}
}
## Helper procs
ad_proc -private ref_language::apm::add_language_639_2_codes {
} {
Fills language_639_2_codes
The ISO-639-2 codes are in a dat file located at
ref-language/sql/commjon directory. The file was downloaded from
http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt
Separator is "|" and the columns are:
<ul>
<li>ISO 639-2 Bibliographic code (used if terminology one is empty)</li>
<li>ISO 639-2 Terminology code (used if exists)</li>
<li>ISO 639-1 code (2 digits)</li>
<li>Language name in english</li>
<li>Language name in french (ignored if present)</li>
</ul>
} {
set filename "[acs_root_dir]/packages/ref-language/sql/common/iso-639-2.dat"
set channel [open $filename]
set data [read $channel]
close $channel
set row_list [split $data "\n"]
foreach row $row_list {
if { $row eq "" } {
continue
}
set col_list [split $row "|"]
# Set iso-639-2 code to terminology if exists, otherwise
# uses the bibliography one (see RFC 4646)
set iso2b [lindex $col_list 0]
set iso2 [lindex $col_list 1]
set iso1 [lindex $col_list 2]
set label [lindex $col_list 3]
if { $iso2 eq "" } {
set iso2 $iso2b
}
ref_language::set_data -iso2 $iso2 -iso1 $iso1 -label $label
}
}
ad_proc -private ref_language::apm::lang_list_for_5_6_0d2 {
} {
return {
ae "Avestan"
ak "Akan"
an "Aragonese"
av "Avaric"
be "Belarusian"
bm "Bambara"
bn "Bengali"
bs "Bosnian"
ca "Catalan; Valencian"
ce "Chechen"
ch "Chamorro"
cr "Cree"
cu "Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic"
cv "Chuvash"
dv "Divehi; Dhivehi; Maldivian"
dz "Dzongkha"
ee "Ewe"
el "Greek, Modern (1453-)"
es "Spanish; Castilian"
ff "Fulah"
fj "Fijian"
fo "Faroese"
fy "Western Frisian"
gd "Gaelic; Scottish Gaelic"
gv "Manx"
he "Hebrew"
ho "Hiri Motu"
ht "Haitian; Haitian Creole"
hz "Herero"
ia "Interlingua (International Auxiliary Language Association)"
id "Indonesian"
ie "Interlingue; Occidental"
ig "Igbo"
ii "Sichuan Yi; Nuosu"
ik "Inupiaq"
io "Ido"
iu "Inuktitut"
jv "Javanese"
kg "Kongo"
ki "Kikuyu; Gikuyu"
kj "Kuanyama; Kwanyama"
kl "Kalaallisut; Greenlandic"
km "Central Khmer"
kr "Kanuri"
kv "Komi"
kw "Cornish"
ky "Kirghiz; Kyrgyz"
lb "Luxembourgish; Letzeburgesch"
lg "Ganda"
li "Limburgan; Limburger; Limburgish"
lo "Lao"
lu "Luba-Katanga"
lv "Latvian"
mh "Marshallese"
nb "Bokml, Norwegian; Norwegian Bokml"
nd "Ndebele, North; North Ndebele"
ng "Ndonga"
nl "Dutch; Flemish"
nn "Norwegian Nynorsk; Nynorsk, Norwegian"
nr "Ndebele, South; South Ndebele"
nv "Navajo; Navaho"
ny "Chichewa; Chewa; Nyanja"
oc "Occitan (post 1500); Provenal"
oj "Ojibwa"
om "Oromo"
os "Ossetian; Ossetic"
pa "Panjabi; Punjabi"
pi "Pali"
ps "Pushto; Pashto"
rm "Romansh"
rn "Rundi"
ro "Romanian; Moldavian; Moldovan"
sc "Sardinian"
se "Northern Sami"
sg "Sango"
si "Sinhala; Sinhalese"
ss "Swati"
st "Sotho, Southern"
tn "Tswana"
to "Tonga (Tonga Islands)"
ty "Tahitian"
ug "Uighur; Uyghur"
ve "Venda"
vo "Volapk"
wa "Walloon"
yi "Yiddish"
yo "Yoruba"
za "Zhuang; Chuang"
}
}
<?xml version="1.0"?>
<queryset>
<fullquery name="ref_language::apm::after_upgrade.drop_constraint">
<querytext>
alter table language_codes drop constraint language_codes_name_uq
</querytext>
</fullquery>
</queryset>
ad_library {
Library for managing language codes
@author Emmanuelle Raffenne (eraffenne@gmail.com)
}
namespace eval ref_language {}
ad_proc -public ref_language::set_data {
-label:required
{-iso1 ""}
{-iso2 ""}
} {
Add new ISO-639 language codes (3 chars and 2 chars) where they don't exist,
update them otherwise.
} {
if { $iso1 eq "" && $iso2 eq "" } {
error "you need to provide either a 2 chars or a 3 chars language code"
} else {
if { $iso2 ne "" } {
set exists_p [db_string get_lang {} -default 0]
if { $exists_p } {
db_dml update_lang {}
} else {
db_dml insert_lang {}
}
}
if { $iso1 ne "" } {
ref_language::set_iso1 -code $iso1 -name $label
}
}
}
ad_proc -private ref_language::set_iso1 {
-code:required
-name:required
} {
Add a new ISO-639-1 language code (2 chars) if it doesn't exist,
update it otherwise
} {
set exists_p [db_string get_lang {} -default 0]
if { $exists_p } {
db_dml update_lang {}
} else {
db_dml insert_lang {}
}
}
<?xml version="1.0"?>
<queryset>
<fullquery name="ref_language::set_data.get_lang">
<querytext>
select count(*)
from language_639_2_codes
where iso_639_2 = :iso2
</querytext>
</fullquery>
<fullquery name="ref_language::set_data.update_lang">
<querytext>
update language_639_2_codes
set label = :label, iso_639_1 = :iso1
where iso_639_2 = :iso2
</querytext>
</fullquery>
<fullquery name="ref_language::set_data.insert_lang">
<querytext>
insert into language_639_2_codes
(iso_639_2, iso_639_1, label)
values
(:iso2, :iso1, :label)
</querytext>
</fullquery>
<fullquery name="ref_language::set_iso1.get_lang">
<querytext>
select count(*) from language_codes
where language_id = :code
</querytext>
</fullquery>
<fullquery name="ref_language::set_iso1.update_lang">
<querytext>
update language_codes set name = :name
where language_id = :code
</querytext>
</fullquery>
<fullquery name="ref_language::set_iso1.insert_lang">
<querytext>
insert into language_codes (language_id, name)
values (:code, :name)
</querytext>
</fullquery>
</queryset>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment