Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/SupportedLocale.hbm.xml =================================================================== diff -u --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/SupportedLocale.hbm.xml (revision 0) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/SupportedLocale.hbm.xml (revision 0ff427cbcf60a11b06f033886c617ade68044542) @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_common/db/model/lams_11.clay =================================================================== diff -u -r8a4d69bf6159f6bcd910eb930d77016e255619e9 -r0ff427cbcf60a11b06f033886c617ade68044542 --- lams_common/db/model/lams_11.clay (.../lams_11.clay) (revision 8a4d69bf6159f6bcd910eb930d77016e255619e9) +++ lams_common/db/model/lams_11.clay (.../lams_11.clay) (revision 0ff427cbcf60a11b06f033886c617ade68044542) @@ -2265,8 +2265,8 @@ - + @@ -4916,7 +4916,7 @@ - + @@ -5000,6 +5000,53 @@
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Index: lams_common/db/sql/create_lams_11_tables.sql =================================================================== diff -u -r8a4d69bf6159f6bcd910eb930d77016e255619e9 -r0ff427cbcf60a11b06f033886c617ade68044542 --- lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 8a4d69bf6159f6bcd910eb930d77016e255619e9) +++ lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 0ff427cbcf60a11b06f033886c617ade68044542) @@ -137,6 +137,20 @@ , PRIMARY KEY (organisation_state_id) )TYPE=InnoDB; +CREATE TABLE lams_supported_locale ( + locale_id TINYINT(4) NOT NULL AUTO_INCREMENT + , language_iso_code VARCHAR(2) NOT NULL + , country_iso_code VARCHAR(2) + , description VARCHAR(255) NOT NULL + , PRIMARY KEY (locale_id) +); +ALTER TABLE lams_supported_locale COMMENT='Describes the valid language/country combinations. Can''t make language_iso_code and country_iso_code a unique key as MySQL considers that "NULL=NULL" is not true.'; +ALTER TABLE lams_supported_locale MODIFY COLUMN language_iso_code VARCHAR(2) NOT NULL + COMMENT 'ISO 639-1 Language Code (2 letter version) Java only supports 2 letter properly, not the 3 letter codes.'; +ALTER TABLE lams_supported_locale MODIFY COLUMN country_iso_code VARCHAR(2) + COMMENT 'ISO 3166 Country Code'; + + CREATE TABLE lams_authentication_method_type ( authentication_method_type_id INT(3) NOT NULL , description VARCHAR(64) NOT NULL Index: lams_common/db/sql/insert_types_data.sql =================================================================== diff -u -r250486f86b66ac04cece0001879c3dc39c96ed98 -r0ff427cbcf60a11b06f033886c617ade68044542 --- lams_common/db/sql/insert_types_data.sql (.../insert_types_data.sql) (revision 250486f86b66ac04cece0001879c3dc39c96ed98) +++ lams_common/db/sql/insert_types_data.sql (.../insert_types_data.sql) (revision 0ff427cbcf60a11b06f033886c617ade68044542) @@ -161,6 +161,43 @@ 'monitoring/gateExportPortfolio?mode=teacher', 'monitoring/gate.do?method=viewGate', 'monitoring/gate.do?method=viewGate', now() ); +-- Supported Locales +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (1, 'en', 'AU', 'English (Australia) - default'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (2, 'es', null, 'Spanish'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (3, 'mi', 'NZ', 'Maori (New Zealand)'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (4, 'de', null, 'German'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (5, 'zh', null, 'Chinese'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (6, 'fr', null, 'French'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (7, 'it', null, 'Italian'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (8, 'no', null, 'Norwegian'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (9, 'sw', null, 'Swedish'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (10, 'ko', null, 'Korean'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (11, 'pl', null, 'Polish'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (12, 'pt', 'BR', 'Portuguese (Brazil)'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (13, 'hu', null, 'Hungarian'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (14, 'bg', null, 'Bulgarian'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (15, 'cy', 'GB', 'Welsh (United Kingdom)'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (16, 'th', null, 'Thai'); +INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description) +VALUES (17, 'el', null, 'Greek'); + +-- to be removed when the admin converted over to use lams_supported_locale INSERT INTO lams_country VALUES (1, 'AU'); INSERT INTO lams_country VALUES (2, 'US'); INSERT INTO lams_country VALUES (3, 'CN'); Index: lams_common/db/sql/lams_11.sql =================================================================== diff -u -r8a4d69bf6159f6bcd910eb930d77016e255619e9 -r0ff427cbcf60a11b06f033886c617ade68044542 --- lams_common/db/sql/lams_11.sql (.../lams_11.sql) (revision 8a4d69bf6159f6bcd910eb930d77016e255619e9) +++ lams_common/db/sql/lams_11.sql (.../lams_11.sql) (revision 0ff427cbcf60a11b06f033886c617ade68044542) @@ -135,6 +135,16 @@ , PRIMARY KEY (organisation_state_id) )TYPE=InnoDB; +CREATE TABLE lams_supported_locale ( + locale_id TINYINT(4) NOT NULL + , language_iso_code VARCHAR(2) NOT NULL + , country_iso_code VARCHAR(2) NOT NULL + , description VARCHAR(255) NOT NULL + , user_id BIGINT(20) NOT NULL + , UNIQUE UQ_lams_supported_locale (language_iso_code, country_iso_code) + , PRIMARY KEY (locale_id) +)TYPE=InnoDB; + CREATE TABLE lams_authentication_method_type ( authentication_method_type_id INT(3) NOT NULL , description VARCHAR(64) NOT NULL @@ -171,7 +181,7 @@ CREATE TABLE lams_workspace ( workspace_id BIGINT(20) NOT NULL AUTO_INCREMENT - , default_fld_id BIGINT(20) NOT NULL + , default_fld_id BIGINT(20) , def_run_seq_fld_id BIGINT(20) , name VARCHAR(255) , PRIMARY KEY (workspace_id) @@ -224,6 +234,9 @@ , INDEX (html_theme_id) , CONSTRAINT FK_lams_user_5 FOREIGN KEY (html_theme_id) REFERENCES lams_css_theme_ve (theme_ve_id) ON DELETE NO ACTION ON UPDATE NO ACTION + , INDEX (locale_language, locale_country) + , CONSTRAINT FK_lams_user_locale FOREIGN KEY (locale_language, locale_country) + REFERENCES lams_supported_locale (language_iso_code, country_iso_code) ON DELETE NO ACTION ON UPDATE NO ACTION )TYPE=InnoDB; ALTER TABLE lams_user MODIFY COLUMN locale_language CHAR(2) NOT NULL DEFAULT 'en' COMMENT 'ISO 639-1 Language Code (2 letter version) Java only supports 2 letter properly, not the 3 letter codes.'; @@ -329,6 +342,9 @@ , INDEX (organisation_state_id) , CONSTRAINT FK_lams_organisation_4 FOREIGN KEY (organisation_state_id) REFERENCES lams_organisation_state (organisation_state_id) ON DELETE NO ACTION ON UPDATE NO ACTION + , INDEX (locale_language, locale_country) + , CONSTRAINT FK_lams_organisation_locale FOREIGN KEY (locale_language, locale_country) + REFERENCES lams_supported_locale (language_iso_code, country_iso_code) ON DELETE NO ACTION ON UPDATE NO ACTION )TYPE=InnoDB; CREATE TABLE lams_learning_activity ( Index: lams_common/db/sql/lams_supported_locale.sql =================================================================== diff -u --- lams_common/db/sql/lams_supported_locale.sql (revision 0) +++ lams_common/db/sql/lams_supported_locale.sql (revision 0ff427cbcf60a11b06f033886c617ade68044542) @@ -0,0 +1,13 @@ +CREATE TABLE lams_supported_locale ( + locale_id TINYINT(4) NOT NULL AUTO_INCREMENT + , language_iso_code VARCHAR(2) NOT NULL + , country_iso_code VARCHAR(2) + , description VARCHAR(255) NOT NULL + , PRIMARY KEY (locale_id) +); +ALTER TABLE lams_supported_locale COMMENT='Describes the valid language/country combinations. Can''t make language_iso_code and country_iso_code a unique key as MySQL considers that "NULL=NULL" is not true.'; +ALTER TABLE lams_supported_locale MODIFY COLUMN language_iso_code VARCHAR(2) NOT NULL + COMMENT 'ISO 639-1 Language Code (2 letter version) Java only supports 2 letter properly, not the 3 letter codes.'; +ALTER TABLE lams_supported_locale MODIFY COLUMN country_iso_code VARCHAR(2) + COMMENT 'ISO 3166 Country Code'; + Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml =================================================================== diff -u -r8a4d69bf6159f6bcd910eb930d77016e255619e9 -r0ff427cbcf60a11b06f033886c617ade68044542 --- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 8a4d69bf6159f6bcd910eb930d77016e255619e9) +++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 0ff427cbcf60a11b06f033886c617ade68044542) @@ -42,6 +42,7 @@ org/lamsfoundation/lams/usermanagement/UserOrganisationRole.hbm.xml org/lamsfoundation/lams/usermanagement/Workspace.hbm.xml org/lamsfoundation/lams/usermanagement/WorkspaceFolder.hbm.xml + org/lamsfoundation/lams/usermanagement/SupportedLocale.hbm.xml org/lamsfoundation/lams/learningdesign/Activity.hbm.xml Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/SupportedLocale.java =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/SupportedLocale.java (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/SupportedLocale.java (revision 0ff427cbcf60a11b06f033886c617ade68044542) @@ -0,0 +1,116 @@ +package org.lamsfoundation.lams.usermanagement; + +import java.io.Serializable; + +import org.apache.commons.lang.builder.ToStringBuilder; + + +/** + * @hibernate.class + * table="lams_supported_locale" + * +*/ +public class SupportedLocale implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 4096710015819299886L; + + /** identifier field */ + private Byte localeId; + + /** persistent field */ + private String languageIsoCode; + + /** persistent field */ + private String countryIsoCode; + + /** persistent field */ + private String description; + + /** full constructor */ + public SupportedLocale(String languageIsoCode, String countryIsoCode, String description) { + this.languageIsoCode = languageIsoCode; + this.countryIsoCode = countryIsoCode; + this.description = description; + } + + /** default constructor */ + public SupportedLocale() { + } + + /** + * @hibernate.id + * generator-class="native" + * type="java.lang.Byte" + * column="locale_id" + * + */ + public Byte getLocaleId() { + return this.localeId; + } + + public void setLocaleId(Byte localeId) { + this.localeId = localeId; + } + + /** + * @hibernate.property + * column="language_iso_code" + * unique="false" + * length="2" + * not-null="true" + * + */ + public String getLanguageIsoCode() { + return languageIsoCode; + } + + public void setLanguageIsoCode(String languageIsoCode) { + this.languageIsoCode = languageIsoCode; + } + + /** + * @hibernate.property + * column="country_iso_code" + * unique="false" + * length="2" + * not-null="false" + * + */ + public String getCountryIsoCode() { + return countryIsoCode; + } + + public void setCountryIsoCode(String countryIsoCode) { + this.countryIsoCode = countryIsoCode; + } + + /** + * @hibernate.property + * column="description" + * unique="false" + * length="255" + * not-null="true" + * + */ + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String toString() { + return new ToStringBuilder(this) + .append("localeId", getLocaleId()) + .append("languageIsoCode", getLanguageIsoCode()) + .append("countryIsoCode", getCountryIsoCode()) + .append("description", getDescription()) + .toString(); + } + + +}