TitleFirstSearch 5.0 Multilingual Interface
Author Gary Perlman (perlman@oclc.org)
URL http://cweb.oclc.org/~perlman/FS/fs-lang.html
Modified:
Abstract This document informally describes conventions used in the FS 5.0 multilingual interface.
Contents:

Introduction

In FS 5.0, all language-specific strings should be in INI files so that the language can be switched at runtime. Entities are displayed in the HTML with entities of the form: &Lang.section.name; (e.g., &Lang.field.Author;). Language entities are grouped in INI file sections (e.g., [pagetitle], [index], [msg]). There are groups of sections for: Within a section, the variables tend to be of the same type, and follow similar format conventions (upper/lower case, punctuation, ...).

Language Files

Language files are INI files with language-specific definitions. The files are named by the lower-case two-character ISO abbreviation for the language (English=en, French=Français=fr, Spanish=Español=es).

There are three language files for English:

Because dblang.ini is separated from en.ini to group maintenance, there is no reason to separate the files for other languages. So there is only one file for Spanish and French.

There is a special entity file, zz.ini, which contains entity identifiers as values. For example:

[index]
author = index~author
keyword = index~keyword
title = index~title

[field]
author = field~author
title = field~title
When the language is set to "zz" (this is called the "Entity Language"), the screen shows the location of the entities that would be displayed.

By default, the zz.ini file in interfaces/ini contain only a few entiities and instructions about how to generate the file. This allows us to keep a small entity file as part of the production environment, thereby simplifying maintenance.


Language File Sections

Entities in language files are grouped in sections by database (e.g., limiter values), pagename (e.g., strings used on a page), or by other shared attributes. The goal is to keep related items together so that they can be translated together or to match similar entities. The table below shows:
[SECTION] FILE DESCRIPTION USED WORDS CHARS FORMAT HTML
[*dbname*] dblang Database-specific limiter values database search screens 1-4 -35 title ?
[*pagename*] en Page-specific strings widely     varies ok
[action] en Labels for action buttons widely 1-3 -20 title no
[availability] dblang         title ok
[browser] en Labels for browser functions help 1 3-10 title no
[controls] en Labels for control buttons control panel 1 3-10 title no
[copyright] dblang Copyright statement to put on each record in a db record displays     any ok
[data] en Labels/headings for data record displays     any ?
[dbinfo] en Labels for database information unused? help 1-3   any ?
[degreetype] dblang         title ok
[deweyclass] dblang NetFirst Dewey classes NetFirst limiters 1-3 -30 title ?
[dialog] en Entities for general UI dialog options screen 1-2   title no
[domain] dblang NetFirst domains NetFirst limiters 1-3 -30 title ?
[error] en Old error messages unused 1   entity no
[field] dblang Field labels for record formatting brief and detailed record displays 1-3 -30 title ?
[frame] en Frame information help     any ok
[headings] en Help file headings help 1-5   title ok
[help] en Labels for links to help files help 1-4   initial CAP ok
[index] dblang Index names index radio / pulldown labels 1-4 -35 title ?
[lang] en Empty section unused     any  
[language] dblang Language limiter/restrictor names language limits on search screens, record language 1-4 -20 title no
[limit] dblang Limiter values (specific values in indexes) advanced/expert search 1-4 -40 title ?
[longdbdesc] dblang Long database description UNUSED 10-100   any ok
[mediatype] dblang Names of WorldCat media types WorldCat limiters 1-3 -30 title ?
[msg] en Feedback and error messages widely 5-20   sentence ok
[onscreenhelp] en Longer help for on-screen display expert     HTML ok
[pagelabel] en Labels for links to pages widely, esp. menus 1-3 -25 title no
[pagetitle] en Page titles page titles 1-4 10-25 title no
[prompt] en Labels for form prompts widely 1-3 -20 initial CAP ok
[purpose] en Purpose of a page menus, help 5-20   sentence no
[query] en Query language terminology search screens 1-2 -10 words no
[rectype] dblang Displayed names for record types   1-3 -30 title ?
[resourcetype] dblang NetFirst resource types NetFirst limiters 1-3 -30 title ?
[shortdbdesc] dblang Short database descriptions database selection, help 5-10 30-60 mixed-case ok
[status] en Status information for a page widely -30   any ok
[subjectarea] en Subject areas for ECO LC browsing ECO browsing 1-7 -60 title no
[termsAndConditions] dblang copyright statement/disclaimer help 10-100   any ok
[tips] en On-screen help for a page widely 10-30   sentence ok
[titletips] en Pop-up tips for elements widely 3-10   sentence no
[SECTION] FILE DESCRIPTION USED WORDS CHARS FORMAT HTML

Things to Watch Out For


Translation Process

  1. Internationalization: Language specific strings are replaced by language entities (e.g., &Lang.pagetitle.record;).
  2. Language INI file and help file changes are checked into PVCS.
  3. New versions of language INI files are picked up by Documentation. There is an informal script to display the current version, based on a revision tag. Show files for Maint 1.39. (requires access inside OCLC firewall)
  4. New and changed entities are highlighted and sent out for translation. Translations can include any Latin-1 characters (ISO 8859-1) either as symbolic entities (e.g., é=é), numerical entities (e.g., é=é), or as direct Latin-1 characters.
  5. Translations are returned, checked, and used to generate es.ini and fr.ini.
  6. The Spanish and French language files are checked (e.g., with checkini.pl), and have training carriage returns removed.
  7. The new language files are checked into PVCS and "pulled" into developer, testing, and production environments, as appropriate.
  8. The new entities appear in an environment when the JaSSI server is "bounced" or when the user interface INI files are "re-read".

Terminology

date
Dates in FirstSearch should follow ISO 8601. See: SIGCHI Intercultural Page
internationalization
The process of separating any language-specific material (e.g., strings, monetary and date formats) from software/HTML/etc. Sometimes abbreviated as i18n (i followed by 18 characters, followed by n), itself an internationalization because it also abbreviates the British spelling internationlisation. Problems: Parts of the system that have not been internationalized will appear in English to all users.
Latin-1 ISO 8859-1 character set with characters used in most Western European languages.
locale
The language and optional dialect (i.e., country or region) of a language.
localization
The process of specifying a version of internationalized software that is suitable for a locale. Sometimes abbreviated l10n (l followed by 10 characters, followed by n), itself an internationalization because it also abbreviates the British spelling localisation. Problems: Parts of the system that have not been localized will appear blank to non-English users.