Index: openacs-4/packages/acs-lang/acs-lang.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/acs-lang.info,v diff -u -r1.56.2.2 -r1.56.2.3 --- openacs-4/packages/acs-lang/acs-lang.info 25 Apr 2010 16:51:37 -0000 1.56.2.2 +++ openacs-4/packages/acs-lang/acs-lang.info 14 May 2010 13:15:45 -0000 1.56.2.3 @@ -7,7 +7,7 @@ t t - + Peter Marklund OpenACS Internationalization Support. 2010-04-25 @@ -18,10 +18,12 @@ request processor hooks, templating, accessing and managing the message catalog, and locale-specific formatting functions for localizing dates, times, monetary amounts etc. - + + + Index: openacs-4/packages/acs-lang/sql/oracle/ad-locales-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/sql/oracle/ad-locales-drop.sql,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-lang/sql/oracle/ad-locales-drop.sql 8 Jan 2010 17:39:58 -0000 1.4 +++ openacs-4/packages/acs-lang/sql/oracle/ad-locales-drop.sql 14 May 2010 13:15:45 -0000 1.4.2.1 @@ -16,5 +16,4 @@ drop table ad_locale_user_prefs; drop view enabled_locales; drop table ad_locales; -drop table language_codes; -drop table country_codes; + Index: openacs-4/packages/acs-lang/sql/oracle/ad-locales.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/sql/oracle/ad-locales.sql,v diff -u -r1.36 -r1.36.2.1 --- openacs-4/packages/acs-lang/sql/oracle/ad-locales.sql 22 Mar 2010 00:51:38 -0000 1.36 +++ openacs-4/packages/acs-lang/sql/oracle/ad-locales.sql 14 May 2010 13:15:45 -0000 1.36.2.1 @@ -13,23 +13,6 @@ -- * that gets loaded on server startup, and hence should not get updated. -- **************************************************************************** --- The language and country codes tables are filled by after_install --- and after_upgrade apm callbacks --- using the iso-3166-1-countries.txt and iso-639-2_utf-8.txt files - -create table language_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_codes is 'Contains ISO-639-2 language codes and their corresponding ISO-639-1 when it exists.'; - -create table country_codes ( - label varchar(200), - country char(2) constraint country_codes_country_pk primary key -); -comment on table country_codes is 'Contains ISO-3166 country codes'; - create table ad_locales ( locale varchar2(30) constraint ad_locales_locale_pk Index: openacs-4/packages/acs-lang/sql/oracle/upgrade/upgrade-5.6.0d2-5.6.0d3.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/sql/oracle/upgrade/upgrade-5.6.0d2-5.6.0d3.sql,v diff -u -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-lang/sql/oracle/upgrade/upgrade-5.6.0d2-5.6.0d3.sql 22 Mar 2010 01:24:07 -0000 1.2 +++ openacs-4/packages/acs-lang/sql/oracle/upgrade/upgrade-5.6.0d2-5.6.0d3.sql 14 May 2010 13:15:45 -0000 1.2.2.1 @@ -1,26 +1,6 @@ --- Create tables for languages and countries --- --- The tables are filled by after_install and after_upgrade apm callbacks --- using the iso-3166-1-countries.txt and iso-639-2_utf-8.txt files - - -create table language_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_codes is 'Contains ISO-639-2 language codes and their corresponding ISO-639-1 when it exists.'; - -create table country_codes ( - label varchar(200), - country char(2) constraint country_codes_country_pk primary key -); - -comment on table country_codes is 'Contains ISO-3166 country codes'; - -- update comment on ad_locales to be more accurate about how to -- create new locales. + comment on table ad_locales is ' An OpenACS locale is identified by a language and country. Locale definitions in Oracle consist of a language, and optionally Index: openacs-4/packages/acs-lang/sql/postgresql/ad-locales-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/sql/postgresql/ad-locales-drop.sql,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-lang/sql/postgresql/ad-locales-drop.sql 8 Jan 2010 17:39:58 -0000 1.4 +++ openacs-4/packages/acs-lang/sql/postgresql/ad-locales-drop.sql 14 May 2010 13:15:45 -0000 1.4.2.1 @@ -16,5 +16,3 @@ drop table ad_locale_user_prefs; drop view enabled_locales; drop table ad_locales; -drop table language_codes; -drop table country_codes; Index: openacs-4/packages/acs-lang/sql/postgresql/ad-locales.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/sql/postgresql/ad-locales.sql,v diff -u -r1.32 -r1.32.2.1 --- openacs-4/packages/acs-lang/sql/postgresql/ad-locales.sql 22 Mar 2010 00:51:38 -0000 1.32 +++ openacs-4/packages/acs-lang/sql/postgresql/ad-locales.sql 14 May 2010 13:15:45 -0000 1.32.2.1 @@ -15,23 +15,6 @@ begin; --- The language and country codes tables are filled by after_install --- and after_upgrade apm callbacks --- using the iso-3166-1-countries.txt and iso-639-2_utf-8.txt files - -create table language_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_codes is 'Contains ISO-639-2 language codes and their corresponding ISO-639-1 when it exists.'; - -create table country_codes ( - label varchar(200), - country char(2) constraint country_codes_country_pk primary key -); -comment on table country_codes is 'Contains ISO-3166 country codes'; - create table ad_locales ( locale varchar(30) constraint ad_locales_locale_pk Index: openacs-4/packages/acs-lang/sql/postgresql/upgrade/upgrade-5.6.0d2-5.6.0d3.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/sql/postgresql/upgrade/upgrade-5.6.0d2-5.6.0d3.sql,v diff -u -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-lang/sql/postgresql/upgrade/upgrade-5.6.0d2-5.6.0d3.sql 22 Mar 2010 01:24:30 -0000 1.2 +++ openacs-4/packages/acs-lang/sql/postgresql/upgrade/upgrade-5.6.0d2-5.6.0d3.sql 14 May 2010 13:15:45 -0000 1.2.2.1 @@ -1,26 +1,6 @@ --- Create tables for languages and countries --- --- The tables are filled by after_install and after_upgrade apm callbacks --- using the iso-3166-1-countries.txt and iso-639-2_utf-8.txt files - - -create table language_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_codes is 'Contains ISO-639-2 language codes and their corresponding ISO-639-1 when it exists.'; - -create table country_codes ( - label varchar(200), - country char(2) constraint country_codes_country_pk primary key -); - -comment on table country_codes is 'Contains ISO-3166 country codes'; - -- update comment on ad_locales to be more accurate about how to -- create new locales. + comment on table ad_locales is ' An OpenACS locale is identified by a language and country. Locale definitions in Oracle consist of a language, and optionally Index: openacs-4/packages/acs-lang/tcl/apm-callback-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/tcl/apm-callback-procs.tcl,v diff -u -r1.1 -r1.1.2.1 --- openacs-4/packages/acs-lang/tcl/apm-callback-procs.tcl 8 Jan 2010 17:39:58 -0000 1.1 +++ openacs-4/packages/acs-lang/tcl/apm-callback-procs.tcl 14 May 2010 13:15:45 -0000 1.1.2.1 @@ -15,10 +15,8 @@ ad_proc -private lang::apm::after_install { } { - Add ISO-639-2 codes to ad_locales + After install callback } { - lang::apm::add_language_codes - lang::apm::add_country_codes } ad_proc -private lang::apm::after_upgrade { @@ -31,110 +29,5 @@ -from_version_name $from_version_name \ -to_version_name $to_version_name \ -spec { - 5.6.0d2 5.6.0d3 { - lang::apm::add_language_codes - lang::apm::add_country_codes - } } } - -## Helper procs - -ad_proc -private lang::apm::add_language_codes { -} { - Fills language_codes with ISO-639-2 codes - - The ISO-639-2 codes are in a text file located at - acs-lang/resources 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: - -
    -
  • ISO 639-2 Bibliographic code (used if terminology one is empty)
  • -
  • ISO 639-2 Terminology code (used if exists)
  • -
  • ISO 639-1 code (2 digits)
  • -
  • Language name in english
  • -
  • Language name in french (ignored)
  • -
- -} { - - set filename "[acs_root_dir]/packages/acs-lang/resources/iso-639-2_utf-8.txt" - - 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 - } - - db_dml insert_iso639 { - insert into language_codes - (iso_639_2, iso_639_1, label) - values - (:iso2, :iso1, :label) - } - } -} - -ad_proc -private lang::apm::add_country_codes { -} { - Fills country_codes with ISO-3166 codes - - The ISO-3166 codes are in a text file located at - acs-lang/resources directory. The file was downloaded from - http://www.iso.org/iso/list-en1-semic-3.txt - - Separator is ";" and the columns are: - -
    -
  • Country name in english
  • -
  • ISO 3166 code
  • -
- -} { - - set filename "[acs_root_dir]/packages/acs-lang/resources/iso-3166-1-countries.txt" - - 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 label [lindex $col_list 0] - set country [lindex $col_list 1] - - db_dml insert_iso3166 { - insert into country_codes - (label, country) - values - (:label, :country) - } - } -} Index: openacs-4/packages/acs-lang/tcl/lang-util-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/tcl/lang-util-procs.xql,v diff -u -r1.7 -r1.7.2.1 --- openacs-4/packages/acs-lang/tcl/lang-util-procs.xql 8 Jan 2010 17:39:58 -0000 1.7 +++ openacs-4/packages/acs-lang/tcl/lang-util-procs.xql 14 May 2010 13:15:45 -0000 1.7.2.1 @@ -45,7 +45,7 @@ select iso_639_2 - from language_codes + from language_639_2_codes where iso_639_1 = :language @@ -55,7 +55,7 @@ select iso_639_2 - from language_codes + from language_639_2_codes where iso_639_2 = :language @@ -65,7 +65,7 @@ select label - from language_codes + from language_639_2_codes where iso_639_1 = :language @@ -75,7 +75,7 @@ select label - from language_codes + from language_639_2_codes where iso_639_2 = :language Index: openacs-4/packages/acs-lang/www/admin/locale-delete.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/www/admin/locale-delete.adp,v diff -u -r1.8 -r1.8.18.1 --- openacs-4/packages/acs-lang/www/admin/locale-delete.adp 15 Aug 2003 07:50:44 -0000 1.8 +++ openacs-4/packages/acs-lang/www/admin/locale-delete.adp 14 May 2010 13:15:45 -0000 1.8.18.1 @@ -2,14 +2,11 @@ @page_title@ @context;noquote@ -

+

Delete @locale_label@

-

Deleting locale @locale_label@ [ @locale@ ]

+

Are you sure you want to delete @locale_label@ which locale is @locale@?

@form_export_vars;noquote@
- - - Index: openacs-4/packages/acs-lang/www/admin/locale-edit.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/www/admin/locale-edit.adp,v diff -u -r1.7 -r1.7.18.1 --- openacs-4/packages/acs-lang/www/admin/locale-edit.adp 14 Aug 2003 16:06:20 -0000 1.7 +++ openacs-4/packages/acs-lang/www/admin/locale-edit.adp 14 May 2010 13:15:46 -0000 1.7.18.1 @@ -1,10 +1,8 @@ - @page_title@ + doc @context;noquote@ locale_editing.country -

Please update the necesary fields and press "Submit"

-

-

Editing locale @locale_label@ [ @locale@ ]

+

Editing locale @locale_label@

Index: openacs-4/packages/acs-lang/www/admin/locale-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/www/admin/locale-edit.tcl,v diff -u -r1.9 -r1.9.6.1 --- openacs-4/packages/acs-lang/www/admin/locale-edit.tcl 14 May 2007 20:30:23 -0000 1.9 +++ openacs-4/packages/acs-lang/www/admin/locale-edit.tcl 14 May 2010 13:15:46 -0000 1.9.6.1 @@ -22,8 +22,8 @@ # ns_setformencoding $encoding_charset # ns_set put [ns_conn outputheaders] "content-type" "text/html; charset=$encoding_charset" -set page_title "Edit Locale" -set context [list $page_title] +set doc(title) "Edit Locale" +set context [list $doc(title)] form create locale_editing @@ -64,14 +64,17 @@ # Greenpeace had a table of contries and languages and their two-digit ISO-code # but not so in ACS-LANG - here you must provide the two-digit ISO-code -element create locale_editing country -label "Country (2 digit ISO-code)" \ - -datatype text -widget text -html { maxLength 2 size 2 } +element create locale_editing locale -label "Locale" \ + -datatype text -widget inform -element create locale_editing language -label "Language (2 digit ISO-code)" \ - -datatype text -widget text -html { maxLength 2 size 2 } +element create locale_editing label -label "Label" -datatype text -widget inform -element create locale_editing label -label "Label" -datatype text +element create locale_editing country -label "Country" \ + -datatype text -widget inform +element create locale_editing language -label "Language" \ + -datatype text -widget inform + if { [info exists list_nls_language] } { element create locale_editing nls_language -label "NLS Language" \ -datatype text -widget select -options $list_nls_language @@ -98,9 +101,6 @@ element create locale_editing default_p -label "Default" \ -datatype text -widget hidden -element create locale_editing locale -p label "Locale" \ - -datatype text -widget hidden -value $locale - if { [form is_request locale_editing] } { # Finish building the form to present to the user @@ -111,15 +111,33 @@ mime_charset as locale_mime_charset, default_p as locale_default_p from ad_locales where locale = :locale" + + set locale_language [string trim $locale_language] + + element set_properties locale_editing locale -value $locale_locale element set_properties locale_editing label -value $locale_label - element set_properties locale_editing language -value $locale_language - element set_properties locale_editing country -value $locale_country element set_properties locale_editing nls_language -value $locale_nls_language element set_properties locale_editing nls_territory -value $locale_nls_territory element set_properties locale_editing nls_charset -value $locale_nls_charset element set_properties locale_editing mime_charset -value $locale_mime_charset element set_properties locale_editing default_p -value $locale_default_p + set lang_query "select label from language_639_2_codes" + + if { [string length $locale_language] eq 3 } { + append lang_query " where iso_639_2 = :locale_language" + } else { + append lang_query " where iso_639_1 = :locale_language" + } + + element set_properties locale_editing language \ + -value [db_string get_lang_label $lang_query -default $locale_language] + + element set_properties locale_editing country \ + -value [db_string get_country_name { + select default_name from countries where iso = :locale_country + } -default $locale_country] + } else { # If we are not building a request form, we are processing a submission. @@ -146,7 +164,6 @@ db_transaction { db_dml update_locale "update ad_locales set - language = :language, country = :country, label = :label, nls_language = :nls_language, nls_territory = :nls_territory, nls_charset = :nls_charset, mime_charset = :mime_charset, default_p = :default_p Index: openacs-4/packages/acs-lang/www/admin/locale-new.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/www/admin/locale-new.xql,v diff -u -r1.1 -r1.1.2.1 --- openacs-4/packages/acs-lang/www/admin/locale-new.xql 8 Jan 2010 17:39:58 -0000 1.1 +++ openacs-4/packages/acs-lang/www/admin/locale-new.xql 14 May 2010 13:15:46 -0000 1.1.2.1 @@ -4,16 +4,16 @@ - select label, country - from country_codes - order by label + select default_name, iso + from countries + order by default_name select label, coalesce(iso_639_1, iso_639_2) - from language_codes + from language_639_2_codes order by label