Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

Customization and Parametrization

Anchor
AtAGlance
AtAGlance

OpenSyllabus configuration at a glance.

The Web and the Sakai's community are becoming increasingly international and we must adapt our Web applications to different languages and cultural differences.
Differences appear not only between countries (cultural, linguistic), but also within universities (institutional) and even among different faculties and departments of the same institution. This is particularly true for syllabus where pretty much each institution has its own way to design and conceptualize it in its own format and terminology. We must adapt to that diversity.

Thus, in order to meet those explicit adaptability needs, OpenSyllabus has a specific parameterization mechanism, besides GWT and Sakai ones. The whole mechanism is provided within the OsylConfig tool detailed below. Let's explain it first.

Anchor
I18nL10n
I18nL10n

Internationalization - Localization

Coming from Quebec, where French culture is strongly promoted, we did a special Internationalization (i18n) effort in designing OpenSyllabus so that it can be adapted to various languages and institutional cultures without any code changes. We went beyond the GWT i18n built-in mechanism and performed the localization (L10n) work which is the process of adapting software for a specific combination of languages and institutions by translating and adapting text (names, titles,) as well as writing conventions.

OsylConfig message bundle

The message bundle used in OpenSyllabus is made of two message types:
• User Interface messages (UIMessages)
  All text displayed in the user interface (menus, buttons, alternate texts).
• Course Outline messages(COMessages)
  All text related to syllabus content according to the chosen taxonomy (rubric lists, titles...) for all elements in the course outline model.

Messages are provided in French, English and Spanish (incomplete) in the current release of OpenSyllabus. Other languages could be added.
The language of UIMessages synchronises with the language of the Sakai user.
The language of COMessages synchronises with the language specified for the syllabus in the syllabus XML file.

Flexibility at its best!

Ironically, we could figure out a syllabus for a course specified to be in French with English content, displayed in an English interface, with Spanish vocabulary (rubric lists for example).
The current release of OpenSyllabus is very flexible at this point.
A French syllabus may be displayed with a French vocabulary only, regardless to the Sakai interface language.
Also, an English syllabus may be displayed in English (terminology) with English menus in an English Sakai interface.
The institution could make choices here respectfully with its vision.

Anchor
Personalization
Personalization

Personalization

Personalization comes when we figure out the possibility to design syllabus with different structures and looks.

Setting the syllabus structure by XML customization

OpenSyllabus model is very flexible; thus allows various syllabus structures.
An XML file (rules.xml) then represents the rules we choose to apply to our flexible model.
Example:
• Under a Course outline unit with type 'presentation', adding texts and documents is allowed.
• Under a Course Outline Unit with type 'lecture', adding text, documents and assignments is allowed.
Please report to the file rules.xml to view the structure chosen for the current OpenSyllabus release.

Setting the syllabus look by different skins

The OpenSyllabus look can be parameterized with the osylcore css file and the images embedded.
In the current release, two different skins are available: the default and the udm one (University of Montreal) .

Anchor
Configuration
Configuration

How to configure

All those configuration details are gathered in the osylconfigs folder.
The configuration package to use is called in the implementation of OsylResourceService(see below for the location).
The locale (language) is set in the index.jsp file(see below for the location).
The syllabus language is set in the syllabus XML file.

OsylConfig Tool
Configuration files:
The configuration files are located in the osylcoconfigs folder (i.e. osyl-tool/tool/src/webapp/osylcoconfigs) of the Tool project.

 Code Structure

o Backend project (Sakai's tool code)

  • api dir
  •  impl dir
    • src\java\org\sakaiquebec\opensyllabus\
      •  impl{*}OsylResourceServiceImpl.java*
  •  tool dir
    •  java
      •  -
    •  webapp
      • index.jsp
      • org.sakaiquebec.opensyllabus.OsylEditorEntryPoint (all generated JS code + HTML + images)
      • osylcoconfigs (configuration files)
        • default
        • university_specific
          • messages bundle (I18N UI properties files UIMessages & content specific terminology COMessages)
            • COMessages_es.properties (Espanol)
            •  COMessages_fr_CA.properties (Francais Canada)
            •  COMessages.properties (default, English)
            • UIMessages_es.properties (Espanol)
            •  UIMessages_fr_CA.properties (Francais Canada)
            •  UIMessages.properties (default, English)
          • skin (images & css)
            • img
            •  university_specific.css
          • rules.xml (course outline content structure)
            Note
            titleAttention: reporting changes from back to front end

            Every change in the OsylConfig tool(rules, user interface or course outline messages) should be reported to the java files underlined below.
            Changes to css file can be reported by copying the file to the GWT project, the content being exactly the same.
            This is to keep the OpenSyllabus GWT hosted mode version up to date and synchronized.

  • api dir
    • src\java\org\sakaiquebec\opensyllabus\shared\model
      • OsylTestCOMessages.java
      • OsylTestUIMessages.java
      • OsylTestRulesConfig.java
  • opensyllabus-gwt dir
    • src\java\org\sakaiquebec\opensyllabus\
      • shared\model
        • OsylTestCOMessages.java
        • OsylTestUIMessages.java
        • OsylTestRulesConfig.java
      • public\osylcore.css