Index: openacs-4/packages/acs-core-docs/www/i18n-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-requirements.html,v diff -u -r1.6 -r1.6.2.1 --- openacs-4/packages/acs-core-docs/www/i18n-requirements.html 11 Nov 2003 10:28:27 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/i18n-requirements.html 21 Nov 2003 11:14:07 -0000 1.6.2.1 @@ -1,14 +1,12 @@ -OpenACS Internationalization Requirements

OpenACS Internationalization Requirements

- by Henry Minsky, +OpenACS Internationalization Requirements

OpenACS Internationalization Requirements

by Henry Minsky, Yon Feldman, Lars Pind, Peter Marklund, Christian Hvid, - and others. -
+ and others.

OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

Introduction

+

Introduction

This document describes the requirements for functionality in the OpenACS platform to support globalization of the core and optional modules. The goal is to make it possible to support delivery of @@ -45,7 +43,7 @@ kind of globalization support would be large and ongoing, since without a mechanism to incorporate the locale-specific changes cleanly back into the code base, it would require making a new fork -of the source code for each locale.

System/Application Overview

A globalized application will perform some or all of the +of the source code for each locale.

System/Application Overview

A globalized application will perform some or all of the following steps to handle a page request for a specific locale:

  1. Decide what the target locale is for an incoming page request

  2. Decide which character set encoding the output should be @@ -79,8 +77,8 @@ developer.

    What do they need to modify to make this work? Can their localization work be easily folded in to future releases of OpenACS?

  3. A developer needs to author a web site which operates in -multiple languages simultaneously. For example, arsDigita.com with -content and navigation in English, German, and Japanese.

    The site would have an end-user visible UI to support these +multiple languages simultaneously. For example, www.un.org with +content and navigation in multiple languages.

    The site would have an end-user visible UI to support these languages, and the content management system must allow articles to be posted in these languages. In some cases it may be necessary to make the modules' admin UI's operate in more than one @@ -113,7 +111,7 @@ the system. A locale refers to a language and territory, and is uniquely identified by a combination of ISO language and ISO country abbreviations.

    See -Content +Content Repository Requirement 100.20

    10.10 Provide a consistent representation and API for creating and referencing a locale

    10.20 There will be a Tcl library of locale-aware formatting and parsing functions for numbers, dates @@ -131,13 +129,13 @@ computed by the following method, in descending order of priority:

    • get locale associated with subsite or package id

    • get locale from user preference

    • get locale from site wide default

      20.20 An API will be provided for getting the current request locale from the -ad_conn structure.

Resource Bundles / Content Repository

30.0

A mechanism must be provided for a developer to group a set +ad_conn structure.

Resource Bundles / Content Repository

30.0

A mechanism must be provided for a developer to group a set of arbitrary content resources together, keyed by a unique identifier and a locale.

For example, what approaches could be used to implement a localizable nav-bar mechanism for a site? A navigation bar might be made up of a set of text strings and graphics, where the graphics themselves are locale-specific, such as images of English or -Japanese text (as on www.arsdigita.com). It should be easy to +Japanese text (as on www.un.org). It should be easy to specify alternate configurations of text and graphics to lay out the page for different locales.

Design note: Alternative mechanisms to implement this functionality might include using templates, Java ResourceBundles,