building a localization kit

36
Building a localization kit Luigi Muzii

Upload: luigi-muzii

Post on 11-May-2015

5.720 views

Category:

Education


3 download

DESCRIPTION

Guidelines to set up and maintain a localization kit for a (software) product.

TRANSCRIPT

Page 1: Building a Localization Kit

Building a localization kit

Luigi Muzii

Page 2: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 1

Warranty

The information contained herein is supplied without representation or warranty of any kind, and does not represent a commitment on the part of Luigi Muzii. Therefore, Luigi Muzii assumes no responsibility and shall have no liability, consequential or otherwise, of any kind arising from this material or any part thereof, or any supplementary materials subsequently issued by Luigi Muzii. Luigi Muzii has made every effort to ensure the accuracy of this material and intends the information contained in this document to be accurate and reliable, are not responsible for typographic errors or other inaccuracies in the content provided, and reserve the right to modify this document and the information contained herewith without notifying current or prospective users. If you have any questions or comments, please contact:

All the products mentioned in this document to describe firms and their products are registered trademarks or trademarks of their respective proprietors.

Copyright © 2005-2011 Luigi Muzii. All rights reserved. Printed in Italy.

This document is the property of Luigi Muzii. Any modification, copy, transcription, distribution, republishing, translation, or upload for electronic, mechanical, optical, chemical, manual or whatsoever archiving for commercial exploitation of any kind is prohibited without the prior written consent of Luigi Muzii.

Page 3: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 2

Introduction

The discipline of writing something down is the first step toward making it happen. Lee Iacocca

Target audience This document was created to address a typical common problem afflicting localization managers, localization vendors, and project managers.

This document is intended for readers with years of experience in the localization industry, as well as for newcomers. However, it is not intended to be comprehensive.

The goal of this document is to be a useful reference for the target readers and provide a few guidelines to help them set up and maintain a localization kit for a product that make their job easier.

Finally, just remove or ignore the sections specifically devoted to localization to have the instructions for building a translator’s kit instead.

This document is the result of a eighteen-month work of research, retrieval, and collection of information: comments, feedback and suggestions from target readers are invaluable.

General notes The more LSP’s understand about the client’s requirements and expectations, the better able they are to meet them. A localization kit is a subset of tools, instructions and resources necessary to produce a localized version of a software product.

For localization project to be executed properly, localizers, testers, and engineers are to be provided with a thorough and well-designed localization kit.

Since quick release of localized software requires that translators begin work early, and developers can have a significant impact on translators’ job, a localization kit will allow translators to work more independently because they can check their work out as they do it.

The final quality and the success of a localization project depends on the amount of knowledge that is transferred to the localization vendor. This knowledge affects:

the accuracy of the vendor’s quoting and scheduling process;

the time spent by project managers and engineers;

the accuracy of project deliverables.

An effective localization kit offers a relatively easy solution to these challenges, and is one of the best things to do to ensure that the localization vendors have everything they need to get the job done efficiently.

Although demanding, assembling the localization kit and writing the localization guide of a product is a once-only task that always pays off. It is a huge help to all the stakeholders in a project, as it consolidates all project information into one place and concisely explain expectations for the project.

Page 4: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 3

Rationale

Localization-friendly code allows developers to involve service providers in the process more quickly, easily and conveniently.

A localization kit provides the material that serves two functions in the localization process:

1. preparing a proposal (plan, price, and schedule) for localizing a product;

2. performing the localization.

A good localization kit is:

complete, containing everything that the development team must supply over and above the product itself;

usable, including clear and complete documentation on how the kit is made and how to use its contents.

Ideally, corporate guidelines and a checklist for the development of a localization kit should be created, so that the kit remains consistent regardless of manager or product. This will help ensure a high quality kit, eliminate time spent on rework it, and enhance the efficiency and scalability of localization processes. In addition, in the case of a long-term relationship with a localization partner, turn-around time on the generation of localization proposals/plans should shorten and projects can commence sooner.

Ideally, a localization kit should be created after the primary version of the software has been code released to have all up-to-date resources and code included, and should stand on its own. But, when sim-ship (simultaneous shipping of localized and primary versions) is required, a localization kit will be needed before the primary version is code released.

By providing a complete set of files and requirements when requesting a proposal from a localization partner, a company is able to ensure that the scope of work resulting from the analysis will be correct and that the cost and turnaround time estimates will be accurate. The localization kit can then be easily used to kick-off the project with a clear understanding of the scope and requirements.

The kit can also be used to ensure that the materials returned are as complete as possible and useable right away. This completeness is vital to the success of the localization effort.

The localization kit helps get organized. It documents the project requirements that otherwise may be lost during the transfer of information to the vendor, in a well-organized document tree with fully functional files, and serves as a central repository for the information needed to localize a product and enables anyone in an organization to easily assume responsibility for managing a project and immediately having the necessary information to request an analysis or start the project.

The content structure of a localization kit The localization kit should be arranged during the pre-localization design and implementation stages for project evaluation and analysis with a very simple point: no one likes surprises, that is missed deadlines and budget overruns. Moreover, since most software localization projects involve a large number of target languages, getting the translation kit right from the start would prevent many similar or identical questions from the various translators.

Each localization kit differs depending on project requirements, but, in all cases, the more information is provided at the outset of a project, the more problems will be avoided later.

Typically the localized version of a product should only contain translatables and configurations for the locale and not the binaries or libraries of the product.

A well-assembled localization kit should contain all the final resources needed by localization vendors to create a localized version of the software without assistance from the original development team. The vendors should be able to use the kit to get the resources translated, integrated, and tested without assistance from the development team, and if the software code is localization-friendly, it is unlikely the source code will be needed to create the localized versions.

Therefore, a localization kit should contain the files to be localized, identified and prepared for translation (the binary files and the resource files), along with instructions, guidelines, indications, and notes from the developers to project team members on how to deal with the various files and file types. It should also provide background and contextual information about what is being localized. Whatever the product, a fully functional version (at least a beta version) of the running software should be included. Finally, a localization kit should contain all the tools required to work with the files.

Page 5: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 4

Organization of a localization kit Generally, a good practice consists in organizing the files centrally, as everything to do with them is to be done as many times as the number of languages into which these files are to be localized. Therefore, a well-organized file tree pays off when the vendors have to fix all the broken cross-references, missing files, and broken graphics; and they will make it differently for each language!

The reorganization of files in preparation for localization can partially be expedited by creating a list-of-references file where the location and properties of each file are reported when the first "build" is made. A CASE (Computer Aided Software Engineering) tool can help and the list-of-references file can then become the foundation of the localization kit’s BoM (Bill of Materials).

Not all projects may have all components, so not every project will have every component on the list. Often some components may not be available at the time an initial kit is prepared for analysis and proposal requests, but will be available when the project starts. If some components cannot be included in the first kit but are expected to be part of a project, it is a good idea to include whatever information available about them, even if it is somewhat vague.

Ideally, to ensure efficient production, all the professionals involved in the localization process should provide their input.

Users of a localization kit Many actors play a role in the localization process: localization manager, testers, localizers, and developers. The localization manager monitors the project and coordinates activities; testers and engineers run testing and arrange the source code for localizability and interact with the localization manager and the programmers; localizers perform the translation of resources.

Localizers, testers, engineers, and project leaders/managers are all potential users of a localization kit.

Testers and engineers also need information on what to do with the files. Providing test cases to the tester as well as an overview of the project will ensure the project be checked thoroughly.

Project managers To properly arrange an effective project plan, localization project managers must be provided with estimates on the amount of text, art, video and audio to be localized before the software is assembled.

Project managers working for localization vendors would need the following information:

required tasks and services;

project scope overview;

o project languages;

o components;

o number of files;

o files lo localize;

o number of words lo localize (per file);

o files to engineer;

o number of pages for DTP;

o number of updates that can be expected;

project release schedule;

o milestones;

o hand-offs;

o review cycles;

o deliverables;

o deliveries;

quality steps;

o software testing scope and validation;

o number of language reviews;

o number of test cases;

Page 6: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 5

o platforms and operating systems.

Localizers Localizers will be interested in knowing which files need to be localized, for which audience they localize and, in most cases, what not to change in each file. Quite obviously, they will also be interested in the overall word count and the number of words in each file. They will appreciate information, instructions, and comments about the strings to localize and their features.

All text must be finalized.

Engineers Engineers will be interested in instructions for modifying code to have it work fine in the target locale. Engineers will also be interested in hardware and software required for building, and in compilation and testing procedures and instructions. For cosmetic adjustments of dialog boxes, instructions on testing will include operating system version and configuration (resolution) settings required.

Should full software engineering and cosmetic testing be expected from the localization vendor, the localization engineers should be provided with batch files allowing automatic configuration of any required system parameters and compilation in all languages. These files should be placed in a special folder.

All code must be stable enough for testing.

Page 7: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 6

Creating a localization kit

A localization kit helps meet client deadlines, quality and service goals by clarifying expectations, establishing better communication and organizing the localization project drop. Products to be localized should be reviewed for internationalization readiness prior to localization in order to leverage this work across multiple language versions.

Before localization starts, localizers should be aware of a series of issues such as:

expectations (from the audience and the company);

competitors in the target market;

cultural, religious or sociological issues;

technical requirements (e.g. bandwidth requirements, fees - if any - for Internet use and domain names provisions for Web sites/applications);

legal requirements (e.g. data protection legislation and copyright issues).

When creating a localization kit, stick to the basics:

1. set standards for the types of information to include, what level of detail is appropriate, general presentation guidelines and instructions as to what to include, what is important, and how to communicate information to the vendor;

2. provide for separate sections for every product component to have discrete expectations on software deliverables, web sites, and marketing collaterals;

3. reference all external documents with the correct version, along with information on how to access them;

4. always ask for client approval of the kit and all deliverables listed in it prior to hand off to the localization vendors;

5. have the localization vendors review draft versions of the kit for questions and feedback before the final project hand-off;

6. when the project is over, run a post-mortem review for future projects.

When content is added later, organize it in a "mini" localization kit to supplement the main one, with its own set of resources, tools, documentation, and code to avoid rearranging the initial localization kit to include the updates.

However, even though a localization kit can help avoid the cost, frustration, and delays that result from not clearly stating expectations, it is no substitute for regular communication between clients and vendors. This starts from the very beginning of a project. Therefore, when a localization kit is ready create a booklet and hand it out during the kick-off meeting. Also, possibly create a small website for kit to allow online access to project material, and add post-mortem information about the unsolved issues and the issues solved and the workarounds.

Contents of a localization kit Today, a software product consists of several types of objects that must be archived for re-releases, ports of different platforms, and to create specialized versions for OEM’s (Original Equipment Manufacturers), which can be pre-installed on computers or bundled with other hardware.

These archives will also be used to create any necessary patches, which should then be added to the archives once completed.

The localization kit is what the localization vendor needs. Every client has unique requirements, timetables, deliverables, and constituencies. As a result, localization kits will vary from company to company, if not from project to project. Nonetheless, a number of components should be included in most kits.

A localization kit normally consists of hundreds of files, some of which are translatable and many are not.

However, providing files is only the first step. Instructions for them are critical to the understanding of the client’s expectations and the true scope of the project.

To build a software application, all the resource files and code files are needed, which are then compiled into a binary or executable file which can be run on a computer. Therefore, a comprehensive localization kit has build environments for software applications and/or the accompanying on-line help files.

Examples of resources are the bitmaps used in toolbars, such as the printer icon which executes the print command. In most cases, these resources do not have to be changed for any localized versions of the product. The translatable information, such as the menu text, dialog box options, and error messages, is stored in resource files. A software

Page 8: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 7

product which has been well-internationalized stores all translatable text in resource files, which makes the localization job relatively simple. However, in many cases, files containing translatable text are found all throughout the build environment.

It is the localization engineer’s responsibility to locate and identify all the translatable files and prepare them for translation. Localization engineers should ensure that translators know exactly what they need to do, so they can get started quickly.

To assemble a comprehensive localization kit a few general steps can be followed:

1. prepare the project;

2. research the hurdles in a specification;

3. identify the scope;

4. identify the audience;

5. write instructions for each specific group of people working on the project;

6. assemble and organize all the necessary resources, tools and documents;

7. run a pilot project to test the localization kit.

To help the project manager compile the instructions for the members of a localization team, a localization kit should come with:

a UI (and possibly error messages) flow chart describing how the overall UI fits together, and defining the context of terms; UML use case, activity and sequence diagrams could often be sufficient;

software and hardware specifications describing any proprietary software that is needed for localization, with instructions on how to procure, install, run and use it;

documentation user documentation, on-line help (in source and compiled version), and project documentation;

specialized tools needed for localization;

translatables all text, art, multimedia, packaging, and other stuff to translate, in source language.

For hardware projects, the localization team also needs the dimensions of the product labeling areas, a key for the product button and lever names, and information about any safety requirements. If possible, a prototype of the product is helpful for gaining contextual understanding.

If any of the objects making a localization kit is lacking or is insufficiently detailed, the localization kit could prove difficult to use, and the time to answer questions and provide any missing information or resources will turn in unbudgeted - and then intolerable - costs.

Project management The localization kit should be divided into sections specifically built for the team working on the project following a well-organized folder structure, even though future versions of common operating systems will have deeply integrated indexing features making a folder system almost obsolete.

The project manager’s prime responsibility is to complete the localization kit with a project-specific section.

Any localization kit should include a letter of assignment to be signed and returned by all the localization team members to function also as a contract between the parties if necessary. The letter of assignment should carry all quotations grouped by component, the change management agreement, the project milestones, and the development cycle "freezing points".

This should contain a statement of work, listing all expected services and deliverables, and all the relevant reference materials.

Statement of work The purpose of a statement of work (SoW) is to detail the work requirements, i.e. "what is to be done", for the project. A SoW will be the basis for potential offerers to compete for the contract and when it becomes contractual it shall be used as a standard for determining if the supplier meets the stated performance requirements. The SoW will also support the localization project manager in outlining the required work effort through a WBS (Work Breakdown Structure) diagram and establish a delivery schedule.

Page 9: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 8

The SoW should include, but is not limited to, all of the following:

project scope;

o product name;

o project name or code;

o overview of the product and the target audience;

o description of the product’s basic architecture;

o list of localization kit contents;

o services required, tasks and deliverables;

o languages;

o project components;

o word counts;

delivery requirements;

o period of performance (the start and end date for the entire project);

delivery dates;

interim milestones by deliverable;

o physical location where the work will be performed;

o performance standards;

o supplies and equipment that will be used;

o delivery method;

e-mail;

CD/DVD (with specification of courier type if necessary);

FTP;

update cycle;

o number of updates;

o size of updates;

o expected schedule for updates;

quality expectations (the acceptable quality for the product);

payment terms;

o total amount of the purchase order;

o overall amount computed for each job/task/deliverable;

o payment rate;

o non-disclosure agreement;

o liability agreement;

contact information;

o name(s), e-mail(s) and phone number(s) of project manager(s).

To prevent any disputes on word counts, indications on counting tools and methods together with the resulting analysis log files should be provided. Each log file should contain the number of replicated and untranslated words, translation memory (if any) full and fuzzy matches, and frequently occurring segments. Whenever possible, mapping should provided for any components that can be leveraged from one another.

All settings for the translation tools (e.g. segmentation rules, minimum match value, maximum number of hits, penalties, etc.) should be specified to allow the team members to reproduce all statistics and properly apply the translation memories.

These settings should also be used to produce statistics for progress reports and a graphic projection of delivery dates.

Bill of materials Each SoW should be marked with a version number for traceability of updates and accompanied with a detailed bill of materials (BoM). This should include:

a list of the files to localize grouped by type;

Page 10: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 9

an image of the directory structure of resource files, build files, compiled files and documentation files by locale;

directory structure requirements for deliverables;

a list of expected deliverables;

a list of drivers for creating deliverables;

a list of build environments and source files;

a list of documentation files.

Excerpt of a localizable file list from a bill of materials

File name File type Purpose Word count

Location Notes and instructions

default.asp Server-side script (VBScript)

Default page for browsing inception

30 root Line 37: the variable strRedirect should not exceed 75 characters Line 271: do not localize the variable strLang

content.asp Server-side script (VBScript)

Container page

1,830 root Line 58: Spanish localizers: use different terminology for Spanish and Mexican markets

style.css Style sheet (CSS2)

Managing display of contents

\Style Line 10: change font from Times New Roman to SimSun for Simplified Chinese (2052), PMingLiu for Traditional Chinese (1028), MS Mincho for Japanese (1041), and Batang for Korean (1042)

errmsg.inc plain text Include file 10,000 \Includes\En\Messages Text strings displayed on screen in message boxes to report an error.

Reference material The project manager’s responsibilities include the arrangement of any reference materials for the project, which should typically include:

all relevant background information about the product;

product reference and overview information;

the most recent localized version of the product in the requested language(s);

style guides for each target language addressing writing and design issues;

documentation files;

complete and up-to-date translation memories for all components with the specification of the relevant format for each language;

an up-to-date project glossary;

templates for query handling;

compiled and fully functional tested help and software files.

Page 11: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 10

Example of bug fix report

Bug fix report: < product name > GUI Italian

File Location Issue Comment Other Name Issue

solved

main.rc Main menu

Linguistic After a close review, it would be more suitable to change some of the items to plural as it sounds better in Italian: Contatto > Contatti, Fornitore > Fornitori, Preventivo > Preventivi, Cliente > Clienti, Strumento > Strumenti, Progetto > Progetti

Example of a query sheet

Query sheet: < project name > Terminology Italian

Urgent (Y/N) Filename Page Term/Issue Context Target term Answer

Example of progress report

Filename Word count

Words to translate

Progress %

1

Resources2 Productivity

3

Running days

4

Start date End date

rc1_en_olh.rtf 32,914 3,724 88.7% 6 333 1,9 10/3/2005 1/7/2005

1. 100-[(words translated)*100/(words to translate)]

2. people involved

3. (number or words per day)/(resources)

4. (words to translate)/[(resources)*(productivity)]

Software In developing the localization kit, the localization project manager should identify elements that may be culturally dependent, and decide whether to generalize them for all cultures or isolate them for localization. Isolation is performed by removing the cultural information to a resource file and replacing it with a routine, which looks up the appropriate information in the resource file. If isolation is required, the localization project manager will send the code back to the software engineers with proper instructions for correction.

The translation of software resources must come before that of on-line help and documentation to have the software terminology be available to guarantee crosswise terminology consistency. Therefore, when assembling the reference material, the localization project manager, together with the client’s software experts, will also arrange the software resources for translation, possibly converting the data for processing with a translation editor.

Before actually starting the localization process, the localization project manager should ensure that the original text is clear and concise, grammatically correct and free from slang or technical expressions that may lead to mistranslations. The localization project manager should also check for language and references consistency and for translation memory integrity and correctness.

In addition to the converted software resources, the localization kit should further contain an executable version of the software (for reference purposes and to help translators get acquainted with the product), as well as the entire build environment if final compilation and testing is required.

A localization kit should be arranged according to the scope of the project, and include a separate section for traditional and Internet software if necessary.

When available, the results of pilot project(s) should be made accessible to localizers to allow them to find some specific issues that may have been overlooked in the internationalization stage. A list of any known internationalization issues should also be provided.

Page 12: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 11

Traditional software "Traditional" is used here to mean desktop or handheld static software as opposite to Internet software. A traditional software section should include:

a copy of the full application;

the resource files (.rc) containing all translatable strings of text;

header files (.h);

dynamic link library files containing resources (.dll);

installation files and scripts and related resources;

a full build environment for testing;

test scripts;

customized or proprietary tools used for compilation and testing.

Internet software A Web site or application is quite different from a "traditional" static software application, and can hardly be localized in "safe mode", i.e. working on binaries, resource scripts, or string files only. In most cases localizers should be able to access source files to replicate the site or the application, and possibly setup a test bed.

Therefore, a web localization project manager’s first worry should be protecting the code from accidental changes and assemble a language pack. If the product has been internationalized correctly, all localizable text should have been extracted from code and a language pack should consist mainly of the string tables and the language-specific image files. Translators will "only" have to translate the relevant column of the string table.

In a well-internationalized product, translatable text is usually placed in a text file that is included in server-side scripting files with an <!-- # include file/virtual="relativepath/filename"--> statement. Each module of the site should have a folder where these include files are kept, separate from the main web site folders.

A typical language pack for an Internet software section should include:

resource files for binary and script files;

text files and message catalogs containing UI strings;

graphics source files in layered, editable format and Internet format (GIF, JPEG, PNG);

Internet-accessible binary files (executables, libraries, components, servlets, etc.);

uncompiled server-side files;

Java and Flash applets;

back-end databases.

For each object, the associated application must be specified (e.g. Adobe Photoshop for .psd files, Microsoft Access for .mdb files, and Macromedia ColdFusion for .cfm files).

Documentation and on-line help Once the localized version of the software is edited, the localization engineers should re-import it into a CAT tool to create a software glossary containing all dialog items in source and target language.

The localization kit should then be updated with the documentation, the on-line help files and the new glossary. The statement of work should also be updated with the new project schedule details.

The software documentation is needed both as source files and as fully formatted DTP files. Possibly, a print-out of all documents requiring translation should be provided as well.

All files must be included in the localization kit following a proper directory structure. A folder called Documentation could be created with subfolders labeled Product documentation and Project documentation.

The Product documentation folder could contain a User documentation and an On-line help folder.

The compiled versions of DTP documentation, together with the original source files and a tagged-format version must be provided in the User documentation folder for processing with translation tools. If a DTP version is required, the User documentation folder should also contain a copy of the compiler.

Fonts and font types to be used must be clearly specified and provided if unusual or proprietary. When giving the naming conventions a rule must be provided for fonts names to be consistent with the names given in the target locale.

Page 13: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 12

Finally, the User documentation folder of a localization kit should contain a bill of material in the form of a spreadsheet listing:

the files requiring localization and their location with the indication of the text to remain in the original language;

the format of source files and the authoring and validation tools and versions used to create them;

the formats required for output files and the authoring and validation tools and versions needed to produce them;

the fonts used in the source files and those to use for the localized version.

The On-line help folder should contain the following:

compiled help system (.hlp, HTML, AppleGuide, etc.);

rich-text format source (.rtf, .doc, etc.);

help project files (.hpj);

templates and style sheets for HTML/XML-based help;

bitmap files (.bmp);

segmented hyper graphics files (.shg).

If a compiled version is required, the On-line help folder should also contain a copy of the compiler.

The on-line help associated graphics could also be stored in a specific Graphics subfolder of the On-line help folder or in a On-line help subfolder of a more generic Graphics folder of the localization kit.

The Project documentation folder could contain project guidelines and projects templates, the project style guide specifying all style conventions, typography, and naming conventions.

The template files allow the vendor to identify any potential localization issues and correct them before localization begins by making the necessary changes to styles to accommodate language differences.

Where possible, the folder should also contain the style guide used by the technical writers of the source files.

A Project documentation folder could contain the localization guide providing for the naming rules, the guidelines for document setup if separate copies have to be created for each language/locale, information on the printer driver version and the printer description file to be used, and the guidelines and instructions for text expansion. If any special fonts are used, the localization guide will also detail the font requirements. Finally, the localization guide will provide for instructions for DTP compilation, including the compiler version, and for help testing, including required platforms, operating systems, browsers, and relevant versions.

The Project documentation folder as well could contain a bill of material in the form of a worksheet with a spreadsheet listing file names, types, and a brief explanation of each file’s purpose, as well as any other notes, including any special fonts required.

Graphics The User documentation and the On-line help folders could contain a specific Graphics subfolder each; alternatively, a more generic Graphics folder can be created in the root folder of the localization kit.

In any case, a Source folder could be created to store all artwork in source formats while a Final folder could be arranged to store non-editable files.

When graphics is created using multi-layered image authoring systems text should be placed in specific discrete layers.

For artwork available only in non-editable formats, all text should be extracted and a spreadsheet should be created in the same worksheet as for documentation with the strings to be translated and re-imported after localization. This worksheet could be stored in the Project documentation subfolder of the Documentation folder.

The same worksheet could contain a spreadsheet with all the available information for the required images sorted by area:

the names of source and target format files;

graphics tool and version used to create the source file;

image creation specifications for the final output format;

o fonts;

o color palette;

o screen and print resolution;

Page 14: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 13

keystroke or menu information about each screen for screen captures.

Also, in the graphics section of the localization guide, guidelines for text expansion and instructions on how to deal with "restricted" symbols must be provided together with any information on alternative forms.

Excerpt of a graphics list from a bill of materials

File name File type Purpose Text to be translated

Word Count

Location Notes and

instructions

intro.bmp BMP, 8-bit, no compression

Splash screen at program start

Press any key to continue...

5 \Graphics\Final\Main Use Arial 24 bold for text; text color #FF9900

back_off.jpg JPEG, 25% compression

Background image for welcome page of Internet site (back office)

\Graphics\Final\Main Linked to from default.asp. This is a very complex image to recreate. If it proves unsuitable for your locale, please fill the associated space with a blank image.

scr01_en.gif Standard GIF, 256 color

Screen shot of main menu

\Graphics\Final\Screenshots Each screenshot of the user interface must be reproduced after localization. Be sure to have a few valid entries in the database to produce a significant image. Please use a Windows XP, a Red Hat Fedora or a Mac OS X platform to take the screenshots.

Page 15: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 14

Excerpt of a graphics list from a bill of materials

File name File type Purpose Text to be translated

Word Count

Location Notes and

instructions

workflow.gif Standard GIF, 256 color

Flow chart giving a general picture of the production process

See the text labels in the source file

155 \Graphics\Final\Artwork Linked to from workflow.asp. The source for this image is workflow.psd (see below) made with The source for this image is workflow.psd (see below) made with the GIMP (the GNU Image Manipulation Program).

workflow.xcf GIMP image Flow chart giving a general picture of the production process

155 \Graphics\Source\Artwork Source file for workflow.gif (see above). Localize the text layer in the file using the GIMP (the GNU Image Manipulation Program) and then save it as GIF. The GIMP is a freely distributed piece of software for photo retouching, image composition and image authoring.

Multimedia Since more and more localization projects now include an audio/video component, it is important to demonstrate both technical capability and comprehensive studio talent.

Multimedia embraces a vast range of "documents" that may have two or more of text, graphics, sound, video, and animation; therefore, a very basic principle in making multimedia files states that digital localizable elements should be separated from one another on different tracks on the timeline.

The ideal situation is to present localizers with the project files and project settings from which the presentation was constructed. In properly encoded MPEG video and AVI movies, audio and video streams can be extracted and separated to be saved back after editing or localizing.

In brief, the multimedia section of a localization kit should contain:

a copy of scripts in both the source and target languages organized in chronological order;

separate, uncompressed audio (music, sound effects, and voiceover tracks) and video streams;

Page 16: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 15

separate sound effects and voice tracks;

any specific codecs and movie viewers used to create and play compressed versions of videos;

a copy of uncompressed videos with the text to be localized.

Some projects may require the script(s) to be divided into individual paragraphs, depending on the size of the project, so that the resulting files can be managed individually in a more comfortable way with the same code for both the original and the target languages. Each element of a script should then be listed in the bill of materials with the associated file name.

Again, a print-out of all documents requiring translation should possibly be provided.

Then, a spreadsheet should be created with all the available information for the multimedia files. This spreadsheet could be stored in the Project documentation subfolder of the Documentation folder of the localization kit, and should provide for:

a list of applications used with a special reference for combination or dedicated multimedia environment;

specifications for additional room on CD-DVD’s for distribution;

voiceover technical specifications;

o format of the original voiceover files;

o format of the localized voiceover files.

The multimedia section of the localization guide, must provide for:

guidelines for replacing source language voiceover files with the localized voiceover track;

guidelines for text expansion, voice-over and synchronization;

instructions as to correct accents, pronunciations, tone and rhythm of the dialog;

instructions as to noise elimination;

instructions as to volume level and consistency;

instructions as to silences.

Excerpt of a multimedia list from a bill of materials

File name File type

Purpose Bits

Depth

Sample Rate

Platform Location Notes and

instructions

welcome.wav WAV - Mono

8 bits 44 kHz PC \Multimedia\Audio\Main Associated with main menu. It is a welcome sound.

intro.wma WMA - Stereo

Presentation of the Web application

24 bits

22 kHz Windows \Multimedia\Audio\Web Linked to from default.asp. No source file is available. The script is in intro_en.rtf. Please use Windows Media to recreate the audio file.

sample.mpeg MPEG-1

Sample video

16 bit stereo

44 kHz Cross platform

\Multimedia\Video\Web Linked to from training.asp. The script is in intro_en.rtf. If possible, for support reasons, please use Adobe Premiere, Ulead Video Studio or Pinnacle Liquid

Page 17: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 16

Excerpt of a multimedia list from a bill of materials

File name File type

Purpose Bits

Depth

Sample Rate

Platform Location Notes and

instructions

Edition to recreate the audio file.

For MPEG files, a fully standard-compliant version with time code and subtitling information could be extremely useful.

Collaterals Peripheral documents are usually referred to as "collaterals". These are usually made of graphics file, sometimes of DTP documents.

The localization kit should be provided with a Collaterals folder containing:

the compiled versions of the DTP or the graphic file of the box;

the source files or a tagged-format version of the DTP file of the box;

the graphic file of the CD labels and printing (usually EPS) version;

the compiled versions of the DTP or the graphic file of the brochures and the other marketing material;

the source files or a tagged-format version of the DTP of the brochures and the other marketing material;

the ReadMe file, in plain text or rich text format;

the license agreement, in plain text or rich-text format;

the fonts used in the source files and those to use for the localized version.

Again, a print-out of all material requiring translation should possibly be provided.

Then, a spreadsheet should be created with all the available information for collaterals. This spreadsheet could be added to the specification worksheet stored in the Project documentation subfolder of the Documentation folder of the localization kit, and should provide for:

the names of source and target format files;

graphics or DTP tools and version used to create the source file;

any additional font requirements;

image creation specifications for the final output format;

o fonts;

o color palette;

o screen and print resolution;

information on the printer driver version and the printer description file to be used.

Also, in the collaterals section of the localization guide, guidelines and instructions for text expansion, instructions for DTP compilation, including the compiler version, and special instructions on how to deal with legal, tax or financial issues must be provided.

Delivery An overview of folder contents should be provided together with instructions for creating a language pack from the localized files for a language and for returning it.

Before issuing, the content of the localization kit should be verified by a third party for key tools and information missing that are necessary for localization:

1. all files should be checked for corruption;

2. all files should be scanned for virus;

3. no extra files should be included;

4. no files should be missing;

5. all files should be the most current.

Finally, the localization kit should be stored on a CD or DVD and labeled with:

Page 18: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 17

product name;

version and build number;

platform;

date of creation;

summary of contents.

If the localization kit is updated to include patches or additional content after the product is released, a mini localization kit should be created with the critical objects stored on a separate disk labeled with the same information of the main localization kit and an additional tag stating it is an addendum.

Page 19: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 18

Writing the localization guide

The localization guide should be created before the actual work on the project begins, together with the project work plan.

The localization guide contains the instructions for localizing a product. The policies contained with localization guide are product- or company-dependent.

Although it may seem time-consuming to develop, a good guide can work well with many projects; therefore, in most cases, it could only be created once and reused on subsequent projects with little modifications.

For the localization of the project to run smoothly, the better the instructions, the fewer the problems. Therefore, developing a good localization guide involves:

determining who will use the kit and what their needs are;

explaining what’s in the kit and how to use it;

ensuring that the kit is complete and usable.

Instructions must be provided on how localized material being returned will have to be organized and formatted. Any duplication must be mapped and the correlation of files explained. The instructions contained in the localization guide should be clear and precise enough to have the files repackaged so they can be properly put back in the product.

The localization guide in the localization kit should accurately lists and clear all issues and closely track changes. All lists should be kept updated to work as trusted and valid tracking tools. The localization guide should also be immediately updated with answers to questions and issues raised. The localization guide should therefore provide for:

localization guidelines and schedule information;

instructions on how to handle concatenated strings;

special instructions for file handling, including applications to use with version, platform, etc., and any special or manual processes;

guidelines to dealing with text expansion;

instructions for dialog resizing and other cosmetics;

guidelines for keyboard accelerators localization;

naming conventions (whether long filenames or names including spaces or special characters can be used, or 8.3 filenames are to be used);

expected delivery file types.

The localization guide should finally provide for detailed communication and project logging procedures.

What follows is a suggested scheme for authoring a localization guide. A very brief - and not exhaustive - sample can be in the appendix.

Introduction Provide an overview of the entire document: describe all data, functional and behavioral requirements. Describe the contents of the kit.

Project organization List the major project roles and the actual people involved, possibly including an organization chart. An appropriate project organization structure can be depicted in the following list:

project director (the manager of the project manager);

localization manager;

project managers (on the client’s and the vendor’s side);

project lead(s);

project team members.

Page 20: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 19

Project issues Describe the overall project goals with an overview of the overall project plan stating cost estimates and a top-level schedule for the project.

Statement of scope Define the breadth and limitations of the work to be done, not how to do it. Give a description of the project and the software with major functionalities and constraints. Place the software in a business or product line context and outline the major strategic issues so that the reader can understand the "big picture". If possible, provide a usage scenario for the software with a description of the software interface(s) to the outside world and the control flow for the system.

Contents of the kit Provide instructions for pick-up. Explain how the kit is organized; provide instructions to unpack and install the kit.

Resource requirements Provide an overall description of all hardware, software, documentation, personnel, and data requirements with a context-level model of the system architecture.

Resource requirements should specifically detail:

hardware items;

interfacing equipment (IME);

special equipment;

operating systems;

computer setup (hardware, platform, path settings, memory);

specifications of any database back-end, should this apply, and the data required by the application to be extracted for the localized version to be built.

Tools, techniques and methodologies

Tools A Tools folder should be created with a subfolder for each tool labeled following the name of the tool.

Specify the programming language(s), scripts, compilers and tools used to develop the software, and provide a list of any specific tools, techniques, and methodologies that are to be used when performing localization and testing activities.

Techniques Explain the procedure for localizing each type of file and how to use any proprietary tools included in the kit. Specify whether the deliverable of translation memory is required, and if so, in what format.

Provide instructions on how to deal with error messages, composite strings, word order, gender, articles, plurals, and with text expansion.

When the software can only be localized by translating string resource files out of context, include a description of the syntax of the string resource files and how to deal with control characters, and provide screen captures in the source language to ease the interpretation of context-less strings.

Provide instructions on how to deal with legal, tax or financial issues.

Methodologies List the specific work tasks to meet project requirements to permit the acquirer and offerer(s) to estimate the probable cost and the offerer(s) to determine the levels of expertise, manpower, and other resources needed to accomplish the task. If a Work Breakdown Structure (WBS) is being used in the project, organize tasks in accordance with the WBS.

Page 21: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 20

States specific duties of the vendor in such a way that the vendor knows what is required and completes all tasks to the satisfaction of the contract.

Deliverables List and describe project deliverables. Provide enough explanations and details so that the reader will be able to understand what is being produced. Include a chart showing deliverables according to the project major milestones.

Risks List and describe circumstances or events that are out of control of the project team and that could have an adverse impact on the project if they occur, so that all project stakeholders can anticipate and manage them, thereby reducing the probability that they will occur.

Risks should be listed with their probability of occurrence and negative impact. For each risk listed, identify activities to perform to eliminate or mitigate the risk.

Communications Project managers should communicate regularly to stakeholders, informing them of the current status of the project and managing future expectations. If these key people are not kept well informed of the project progress, there is a greater likelihood of problems stemming from differing levels of expectations. In fact, in many cases where conflicts arise, it is not because of the actual problem, but because a customer or stakeholder has been taken by surprise.

Establish a communication plan to determine communication needs of all people involved with the project or that will be affected by the project and provide consistent and timely information to all project stakeholders.

Provide a project status report scheme for all project team members to fill in regularly.

What follows is a suggested project status report template to be, possibly, combined with a progress report as that in Reference material.

Project status report template

<Project Name> Status Report No. <X>

<Date>

Project Manager <Name>

Project Scope A brief description of the scope of the project.

Project Summary A brief statement of project performance not covered in the remainder of the report.

Milestones scheduled for achievement since last report and performance against those milestones

Milestone Baseline Date Target Date Achievement

Description of milestone

dd/mmm/yyyy dd/mmm/yyyy dd/mmm/yyyy

Milestones scheduled for achievement over the next reporting period and changes in those milestones with respect to the previous plan

Milestone Baseline Date Previous Target

Date

Current Target Date

Description of milestone

dd/mmm/yyyy dd/mmm/yyyy dd/mmm/yyyy

Page 22: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 21

Project status report template

<Project Name> Status Report No. <X>

<Date>

Impact of achievement/non-achievement of milestones for the remaining period of the project

Milestone Impact

Description of affected milestone Briefly describe any changes to the project schedule required as a result of the amended milestone(s).

General Information Include any general comments that may support/enhance/add to the above sections.

Budget Date

Planned Expenditure

Actual Expenditure

Deficit/Surplus

dd/mmm/yyyy

Project risk management statement (as compared to previous reports)

Risk Likelihood Seriousness Grade Change

Brief description of major risks.

Low Medium

High

Low Medium

High

A B C

Increase Decrease

New

Issues Brief description of any business issues associated with the project that have arisen since the previous report and need to be addressed.

Recommendations Brief statement(s) to consider and/or endorse.

Quality assurance plan Describe the various quality assurance tasks that will be carried out for the project and indicate how they will be synchronized with project milestones. Reference any standards and guidelines that are expected to be used on the project, and address how compliance with these standards and guidelines shall be determined. Enclose or reference any relevant artifacts.

Quality goals, control, tools and metrics Outline the quality expectations for the product and the quality considered acceptable for each deliverable.

Describe the tasks associated with the creation of project deliverables to verify that deliverables are of acceptable quality and that they meet the completeness and correctness criteria established.

List any quality-related tools that this project will utilize.

Describe the product, project, and process metrics that are to be captured and monitored for the project. Provide descriptions of the various quality records that will be maintained during the project, including how and where each type of record will be stored and for how long.

In a localization context, there are basically two types of metrics: production metrics and business metrics. Production metrics focus on measuring efficiency. Business metrics focus on measuring value.

Any metrics requires as much data as possible, and, to be collected, data should be defined and tracked.

Page 23: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 22

List of sample metrics

Balance Category Sample Metrics

Business value avail of the cost/benefit analysis created on project approval

Cost actual cost vs. budget (variance) for project, for phase, for activity, etc.

total labor costs vs. non labor (vs. budget)

total cost of employees vs. contract vs. consultant (vs. budget)

cost associated with building components for reuse

ideas for cost reductions implemented, and cost savings realized

Customer satisfaction availability of deliverables

defects of deliverables

reliability of deliverables

responsiveness of project team

competence of project team

courtesy of project team

communication

credibility of project team

reliability on commitments of project team

professionalism of project team

turnaround time required to respond to queries and problems

average time required to resolve issues

number of change requests satisfied within original project budget and duration

Duration actual duration vs. budget (variance)

Effort actual effort vs. budget (variance)

amount of project manager time vs. overall effort hours

Productivity effort hours per unit of work

work units produced per effort hour

effort hours reduced from standard project processes

effort hours saved through reuse of previous components

number of ideas for process improvement implemented

number of hours saved from process improvements

Quality of deliverables

percentage of deliverables going through quality reviews

percentage of deliverable reviews resulting in acceptance the first time

number of defects discovered after initial acceptance

percentage of deliverables that comply 100% with organization standards

number of customer change requests

number of hours of rework to previously completed deliverables

number of best practices identified and applied on the project

number of risks that were successfully mitigated

Page 24: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 23

Test plan and validation criteria When working on a localization project, bug detection and diagnosis is pivotal while the lack of localizability testing during the initial phase of software localization could be fatal, and even though testing will eventually be left to localization engineers only, all members in the localization team should be capable of building and running the localized application and find, when not remove, any errors.

Therefore, the localization environment must contain any tools for finding the translations that have caused any bugs.

Describe the approach to functional testing issues for validation with the types of tests to be conducted, including as much detail as possible. Specify the hardware and software resources, setup settings, and performance requirements and the expected results from testing. Indicate responsibilities for bug fixing.

Should a script suite be used for automated testing to reproduce expected usage of the product provide instructions on how to run each script.

Further, it is essential that the functional flow of the software user interface is outlined, so that testers don’t need to go through all of the functionality for each segment.

For the vendor to setup and run a project-specific testing platform, provide the following information:

names of platforms on which the product runs;

any special hardware or software required for setup and testing;

name of the compiler and version;

compilers;

test drivers;

test data generators;

test documentation, technical references;

size, type, and composition of data to support acceptance tests;

list of known bugs;

level of internationalization testing done;

instructions to build the product on a clean machine;

a list of platforms, viewers, browsers with which the localized software should be tested.

Finally, to properly assess the avail of the tests performed, provide instructions to access the bug tracking database.

Web localization issues Web localization presents a few specific issues requiring consideration.

Since the localization of HTML documents is relatively easy, especially with translation tools that allow the "locking" of tags, instructions must be given to identify and access localizable content within scripts, which is not easily parseable by mechanical means. Provide instructions to separate UI, content and code elements, and to identify the code for back-end functionality and the code that governs the UI, since the back-end functionality of the site produces the items visible to the user and should be identical for all languages.

Give code adaptation guidelines to accord to the new directory structure, charset, etc. Arrange strict naming conventions to avoid behavioral differences between Unix/Unix-like (case-sensitive) and Windows platforms, as well as the Web server approach to extensions.

Provide information for the site/application structural analysis as per:

platform;

operating system;

Internet server;

application server;

technologies.

Provide instructions on how to deal with dynamic content, that is the part of the Web site/application frequently updated or event-driven often stored in a database in different formats.

Finally, provide instructions on how to deal with keywords, taxonomies, stop word lists and profanity filters.

Page 25: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 24

Mac localization issues A typical Mac OS application is not shipped as a single executable file. Applications are generally shipped as a directory (bundle) in the system that contains, in a hierarchical organization, the application executable and the resources to support that code.

Resource files specific to a particular language are grouped together in a subdirectory of the bundle directory. This subdirectory is named after the ISO language code followed by a .lproj extension.

The bundle structure makes it easy to add localizations to an application, provided that all the necessary UI resources are stored in the Resources directory.

The internal structure of bundles is quite similar. From the standpoint of localization, executables that have associated UI need to be bundled. Similarly, certain types of content cannot be packaged in the bundle structure.

Each .lproj subdirectory in a bundle has the same set of files; all versions of a resource file must have the same name. If a resource doesn’t need to be localized at all, it should be stored in the bundle’s Resources directory, not in the .lproj subdirectories. The .lproj should have only localizable resources.

In general, the following types of files should be marked localizable:

InfoPlist.strings containing keys for the information property list that might need to be localized, and is associated with the Info.plist file;

Localizable.strings containing "key" = "value" pairs;

.nib containing UI layouts;

Localized.rsrc containing the localizable resources only.

Linux localization issues Technically, localizing FOSS (Free/Open Source Software) is not different from localizing commercial software.

The open source development process uses a user-driven, just-in-time approach, driven by a global developer community, and by demand for the product within this community; new features are implemented as a result of requests from the user base. In this perspective, software is released early and often, the process is open and transparent and work is delegated as much as possible. Therefore, localization of open source software is an ongoing process, and it is driven primarily by voluntary efforts, in response to constantly changing source code.

GNU/Linux desktop is composed of layers of subsystems working on top of one another. Every layer has its own locale-dependent operations. Therefore, to enable a language completely, it is necessary to work on all layers. The layers, from the bottom up, are as follow:

1. The C Library;

2. The X Window, the graphical environment;

3. Toolkits, middle layer libraries to work with the low-level graphical environment libraries and provide GUI components;

4. Desktop environments.

As specified in the "OpenI18N Globalization Specification", in most open source projects localization of software messages is handled by the Gettext library, which is based around two file formats:

the Portable Object (PO) file format: a simple string table for storing translation units in the localization process;

the Machine Object (MO) file format: a binary representation of a string table — used by an application to retrieve translated strings at runtime.

.po files The translation framework most commonly used in FOSS is GNU gettext, which covers more than 90 percent of GNU/Linux desktops.

By default, the original software messages are not externalized to resource files, but stored in source code, thereby allowing the application to run in the default language without needing any resource files. The Gettext toolkit is then used to extract strings marked for localization from source code.

Message-storing files are in plain-text format and are designated with the extension .po; they are usually handed off to localizers for translation. Normally, a Unicode editor is needed as UTF-8 is now used as standard text encoding.

Page 26: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 25

The original string in these files are represented by the keyword msgid and strings are kept between a pair of "". The corresponding translations are represented by the keyword msgstr with translated strings in between a pair of "".

The general structure of a .po file is as follows: white-space

# translator-comments

#. automatic-comments

#: reference...

#, flag...

msgid "untranslated-string"

msgstr "translated-string"

#: reference...

#, flag...

msgid "untranslated-string"

msgstr "translated-string"

Comments begin with a #. Where the character # is followed by some other special character such as . and ;, comments are inserted automatically during the extraction process.

Gettext tools first extract localizable strings from source code into a PO string table. Next, the newly extracted PO string table is merged with an existing PO string table containing translations. In addition, new entries are matched against entries of a PO Compendium — a string table acting as a translation memory, holding translations combined from multiple .po files. Translators then translate and review changes in the updated PO string table before the .po file is converted to mo for use at runtime.

In the PO format, the source string (msgid) is used as the primary identifier. This is different from other common resource formats such as Java Resource Bundles and .NET Resources, which use some sort of logical key to map to the actual source string. Therefore, several projects do not rely on the Gettext library, and use custom resource formats or rely on the platform support provided by Java.

CVS’s Development could go in parallel with translation, and message-storing files could continuously be updated with new strings. To have new strings merged seamlessly with the same .po files as those the translators are working CVS’s (Concurrent Versions System) are used. A CVS is a repository where all source code, the documentation and all the other program-related material is stored and maintained, with a version control system for ASCII files which maybe changed by multiple users across the network. A CVS is kept online: the files can usually be downloaded freely, but only a few authorized people can commit the changes back.

CVS’s organize files in a tree structure, with a root, branches and sub-branches down to the desired level of nesting.

The root is the place where the development of next major release is being carried out. The maintenance and bug-fixes of older versions are carried out on the branches from the root where the regular updates are being carried out in parallel.

A sample CVS structure is depicted in the figure below.

When using a CVS localizers must have their local clients corresponding to the CVS server. The CVS server mirrors the source tree on the remote machine and the local clients allow localizers to merge their work back to the remote source tree system as and when required.

Page 27: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 26

When using a CVS strict and accurate guidelines must be written and maintained, starting from the folders where the .po files are stored and the CVS account for the localizers to finish with the tools to use and the rules for checking and committing a translation.

Hand-held software localization issues Even though software for hand-held devices is not merely a scaled-down version, localization is similar to that for other devices and problems mostly come from their small screens.

Smaller screens impose many limitations and constraints in software design, screen layout, translation style, use of icons, etc., and to provide users with enough information this must be brief and to the point. Therefore, the user interface usually contains strings that in many situations cannot be rephrased for translation.

Operating systems for hand-held devices all have Unicode support facilitating software localization.

The rules for internationalization are roughly the same as for "traditional" software: localizable strings are isolated and stored in separate resources.

Java is ideal for hand-held devices because Java files can be very small, and Java offers excellent localization support. WML (Wireless Markup Language) is used for WAP-based services while XHTML and XML are extensively used for content development. Problems arise when dealing with platform-specific development languages and file formats.

Palm OS Overlays are used to localize Palm OS resource databases. Localization overlays provide a way of localizing a software module without requiring a recompile or modification of the software. Each overlay database is a separate resource database that provides an appropriately localized set of resources for a single software module (the .prc file, or base database) and a single target locale.

Smaller screen size invites text-truncation and dialog-resizing problems. Unfortunately, taking screenshots from the actual device can prove very hard, and emulators are used for development and testing.

A localizable Palm OS application (.prc file) is created from a base .prc that is not locale-specific, which is then combined with an "overlay" .prc containing locale-specific information. Therefore, to make a .prc file localizable, it must be split into multiple, separate .prc files: one that is not locale-specific and several locale-specific .prc’s for each desired locale.

The application resources must be organized into multiple .xrd files containing locale-specific resources such as forms. Each .xrd file must then be compiled (using PalmRC) into .trc files, which will then be linked (using PRCMerge) to create the .prc files.

Alternatively, a non-localized .prc and localized .prc files can be created from a single .xrd file where resources that pertain to a specific locale are uniquely identified. In this case the .xrd file must be filtered to create multiple, separate .trc files (a non-localized .trc and one or more overlay .trc files).

The source code for resources is stored in a platform-independent .xrd (XML Resource Description) file. The Palm OS Resource Editor can be used to edit XML tags directly or through a graphical form tool, which allows for dragging and dropping user interface controls from a catalog of user interface elements.

Testing can be done with the actual hand-held device or with an emulator that comes with the relevant software development kit. Unfortunately, emulators are run on larger monitors and may not show the actual screen that will displayed by the hand-held device; also icons and other indicators (e.g. the battery indicator) may not be shown properly on emulators. Also, some tests cannot be run with emulators, such as those for the parts of an application involving accessories and external hardware (e.g. storage cards, memory cards, external keyboards etc.) or third-party software and plug-ins.

EPOC/Symbian The Symbian operating system is designed specifically for mobile, ROM-based and is widely used for Nokia, Sony, and Ericsson mobile devices. The original name for the Symbian platform was EPOC. Starting from version 6.0, the platform is Unicode and several important components, such as locale tables and fonts, are already in the system.

Resource files are developed as text files written in a Symbian-specific resource language and are defined with the extension .rss. These files are then compiled into a binary file format that can be loaded and read by programs. Resource files can be localized without recompiling the main program.

Resource source files include resource header (.rh) files defining the information required by the application launcher or system shell such as the application’s caption, an optional short version of the caption, the name of the

Page 28: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 27

icon file, optional information about the views, for view-based applications, including view-specific captions and icons.

Localizable strings should not be defined within a resource file, but in separate files with the extension .rls containing new-line separated entries. Each entry contains the keyword rls_string, a symbolic identifier, and the string itself.

For ease of localization, all user interface text is usually separated out in to a separate header file (by convention with a .loc extension) that is included into the main resource file. These .loc files are then sent out for translation.

Page 29: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 28

Terms and definitions

Accelerator/shortcut (key)

A keyboard key combination used to access functions in menus and sub-menus usually represented by a mnemonic which is shown as an underline on the menu line; the mnemonic typically refers to the initial letter of the function.

Bug

A persistent error in the code or routine of a program causing malfunction.

Build

The compilation of multiple software resource files into a single, final product that can be executed by a computer.

Build environment

The tools, methods and procedures used for compiling software.

CASE

Computer-Aided Software Engineering; software tools used in software development for analysis, design, programming and maintenance providing automated methods for designing and documenting traditional structured programming techniques, and a symbolic language for describing parts or all the software and generating the necessary code.

Character set or Charset

1. A defined set of characters used by a specific computer system, where no coded representation is assumed.

2. The mapping of characters from a writing system into a set of binary codes.

Collateral

All the document(s) intended for publication and the media used by a company for communication.

Compiling

Converting a source code program into an executable program.

Deliverable

The measurable tangible and verifiable result or output of a process to be produced to complete a project or a part of it.

DTP

Desktop Publishing; the software and techniques used to lay out and format text on pages and to produce high quality printed or camera-ready materials such as software manuals for commercial printing.

Emulator

A hardware device or a piece of software that pretends to be another particular platform, device or program that other components expect to interact with to help simulate and preview tasks that will run on an actual hand-held device.

GUI

Graphical User Interface, the combination of menus, screen design, keyboard commands, command language and online help, which creates the way a user interacts with a computer.

Hand-held device

A compact device, which in most cases fits in the palm and can be carried anywhere to organizes important documents and store valuable information.

Internationalization

The practice of creating source material that is locale independent, where all language-specific and market-specific content reside outside the core application and all information is presented in a format to which the end user is accustomed; internalization also implies making a product localizable.

Leverage

The portion of translated material from a previous version that can be reused, usually expressed as a percentage.

Page 30: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 29

Locale

1. An international language and geographic region which also embodies common language and cultural information. Locale differs from language in that the same language may be spoken in more than one country.

2. The feature of a user’s computing environment that are dependant on geographic locations, language and cultural information determining conventions such as sort order rules, date, time and currency formats, keyboard layouts and other cultural conventions.

Metrics

System of parameters or ways of quantitative assessment of a process that is to be measured, along with the processes to carry out such measurement.

Milestone

A crucial and identifiable stage in the completion of a project whose failure could cause significant jeopardies; in project management, a milestone is an activity with zero duration usually marking the end of a period and corresponding to the completion of a major deliverable.

Quality assurance

The process of assuring that the target document or application resembles the source document or application as closely as possible through subsequent check.

Resource files

Source files that contain information to be compiled into the program as well as the parts of the application that is seen by the user.

Rebuild

Recompilation of the software after translation and resize, to construct the localized version of an application.

Screenshot

An electronic image depicting a particular on-screen state of a software product utilized in online help and documentation to explain or illustrate a specific software product function to the user.

Sim-ship

Simultaneous shipment; releasing all language versions (localized and original source) of a particular product at the same time.

Source code

The human readable code that is compiled to make a program.

Source file

A file containing source code that is used to compile an executable program.

String

Grouping of characters (letters, numbers, and/or punctuation marks) that need to be translated as if they contain text used in programs for error messages, button labels, etc. that will be seen by the user. Strings are often enclosed in single or double quotes.

Style guide

A guide developed for a target language to define the translation style. The style guide can include writing style, usage, grammar, punctuation, font and typeface, capitalization, etc.

Test script

Written plans and instructions for testing a software product (either source product or localized product).

User interface

The combination of menus, screen design, keyboard commands, command language and online help, which creates the way a user interacts with a computer.

Voiceover

Adding audio to a video where the speaker’s lip movements cannot be seen.

Page 31: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 30

Bibliography

Apple Computer, Localizability Technical Note

Apple Computer, Inside Mac OS X, Project Builder Help

Apple Computer, Internationalization Programming Topics

Bishop M., How to Build a Successful International Web Site: Designing Web Pages for Multilingual Markets at the National and International Level, The Coriolis Group, 1997, ISBN 15-761-0158-4

Carmel E., Global Software Teams: Collaborating Across Borders and Time Zones, Prentice Hall, 1999, ISBN 01-392-4218-X

Cederqvist et al, Version Management with CVS, Free Software Foundation, 2005

Deitsch A., Czarnecki D., Java Internationalization, O’Reilly & Associates, 2001, ISBN 05-960-0019-7

Dr. International, Developing International Software, Microsoft Press, 2002, ISBN 07-356-1583-7

Esselink B., A Practical Guide to Localization, John Benjamins Publishing Co., 2000, ISBN 90-2721-956-7

Kano N., Developing International Software for Windows 95 and Windows NT, Microsoft Press, 1995, ISBN 15-561-5840-8

Kaplan M. S., Internationalization With Visual Basic, Sams, 2000, ISBN 06-723-1977-2

Luong T. V., Lok J. S. H., Driscoll K., Internationalization: Developing Software For Global Markets, John Wiley & Sons, 1995, ISBN 04-710-7661-9

Madell T., Parsons C., Abegg J., Developing and Localizing International Software, Prentice Hall, 1994, ISBN 01-330-0674-3

Maxwell Chandler H., The Game Localization Handbook, Charles River Media, 2004, ISBN 1-58450-343-2

O’Conner J., Internationalization Using the Java Platform, Addison-Wesley, 2002, ISBN 02-016-1568-1

O’Donnell S. M., Programming for the World: A Guide to Internationalization, Prentice Hall, 1994, ISBN 01-372-2190-8

Ott C., Global Solutions for Multilingual Applications: Real-World Techniques for Developers and Designers, John Wiley & Sons, 1999, ISBN 04-713-4827-9

Sasikumar M., Aparna R., Naveen K., Rajendra Prasad M., Free/Open Source Software Guide to Localization, UNDP-APDIP, 2005

Schmitt D. A., International Programming for Microsoft Windows, Microsoft Press, 2000, ISBN 15-723-1956-9

Symmonds N., Internationalization and Localization Using Microsoft .Net, APress, 2002, ISBN 15-905-9002-3

Taylor D., Global Software: Developing Applications for the International Market, Springer Verlag, 1992, ISBN 03-879-7706-6

Uren E., Howard R., Perinotti T., Software Internationalization and Localization, TGP Consulting, 1993, ISBN 04-420-1498-8

Page 32: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 31

Appendix

Localization Guide for <product name>

Notice Please note that any work delivered back to us must comply exactly with the below specifications. Non-compliance may result in payment deductions and quality actions up to and including deactivation from our contractor database.

Introduction <product name> is composed of many elements that need localizing:

1. User interface;

2. Microsoft Access local database;

3. Microsoft SQL Server database scripts;

4. Screenshots;

5. User guide;

6. Online Help.

To properly localize all elements, they should be translated in this order. The CD contains all the necessary files. They are all included in the Source folder.

Requirements To perform the localization of <product name>, the following software and hardware is necessary:

<product name>;

the <product name> dongle;

Microsoft Access 97 or above;

Crystal Report 9 or above;

Microsoft Word;

a translation memory software tool such as Trados;

a graphics tool to take screenshots such as the GIMP.

Before starting, please go through the following steps:

1. install a local version of <product name> with its dongle;

2. spend a few hours training on the use of the software.

User Interface The user interface may be the most difficult element to localize, but unfortunately it should be the first.

Tool To localize the user interface the <tool name> should be used. <tool name> can be found in the Tool\<tool name>\Program folder of the CD. Please refer to the <tool name> user’s manual in the Tool\<product name>\Manual folder of the CD for instructions on how to install, launch and configure the tool and on how to work with files.

Resources The resources for the user interface can be found in the Source\Resources\<lang> folder of the CD where <lang> is the two-character ISO 639 code for the language. Copy the folder with the files you will have to process on your local hard drive. Right-click on the folder on your hard drive, select Properties and remove the read-only attributes for the folder, subfolders and files.

Page 33: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 32

Forms localization Forms should be localized first. Please refer to the <tool name> user’s manual in the Tool\<product name>\Manual folder of the CD for instructions on how to use <tool name>.

[Any special instructions on how to localize forms follows]

GUI design

If strings appears truncated in the translated form, try moving or resizing elements directly from within the translated form.

Rules

Not every properties and window should be translated.

Do not translate

[The list of elements/values not to be translated follows]

Shortcut letters

The character & should be moved to appropriate letter. It prefixes the shortcut letter. For instance, &Save indicates that the user can press Alt+S to activate this menu. Make sure that there is no two items in the same menu with the same activation letter.

Recommendation

Save before activating another window/form.

Resource scripts After completing the localization of forms, please localize the resources strings. Some of them do not come from <product name> itself but from the components it make use of. Please localize the strings from <product name> only. They can be identified with the label "<label name>".

Variables

Some strings may contain variables such as %s, %0:s, %1:s, etc. These variables will be replaced by some text during the execution of the program. For the proper execution of the program, these variables should be included in the translation. However, the order can be changed for re-wording and to reformulate the sentence.

Recommendation

Make sure that all translations are enclosed between single quotes.

Don’t forget to save from time to time.

Delivery After completion of the translation of the user interface, zip the <lang> folder on the local drive with all the sub-folders and send the file to <customer name>. Make sure to keep the folder structure unaltered.

Rebuilding Rebuilding will be done at <customer name> with translated resource to produce a localized version. A few tests will be performed as well to check the software run.

Once these tests have been completed, you can download a new version of the software to run for further testing.

Microsoft Access local database

Creating Copy the Microsoft Access local database from the Source\Database\Access\<lang> folder of the CD on the local drive. Remove the read-only attribute from this file.

Page 34: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 33

Opening Launch <product name> in the target language to open the Microsoft Access local database and translate its content. When opening the database with any version of Microsoft Access, the program will prompt for a password. The password for the database is contained in the dbpwd.dat file in the \Source\Database\Access\<lang> folder of the CD. When opening the database with Microsoft Access 2000 or higher, please don’t convert the database: the software could eventually not work properly.

Linguistic test Starting with the setup module, launch each module one by one and check if there is any data in a language other than the target language. If you find any, please translate it before submitting the software for functionality testing.

During the translation of the database, check each module for text accommodation and correctness. Please use the terminology query sheet to report any changes to make in the user interface.

Delivery After completion of the translation of the Microsoft Access local database, zip the Source\Database\Access\<lang> folder on the local drive and send the file to <customer name>.

Microsoft SQL Server database scripts All scripts are contained in as many RTF files in the Source\Database\SQL_Server\<lang> folder of the CD. Copy this folder on the local drive. Remove the read-only attribute from all of them.

Open these file with Microsoft Word and, if possible, translate it with TRADOS to display only the text to be translated. This is black, while the text that should not be translated is grey.

Delivery After completion of the translation of the Microsoft SQL Server database scripts, zip the \Source\Database\SQL_Server\<lang> folder on the local drive and send the file to <customer name>.

Screenshots The manuals of <product name> contain many references to the software through screenshots. Please take all screenshots before starting translating the manuals. All screenshots (about 400 pictures) are stored in the \Source\Documentation\Screenshots folder of the CD. Each screenshot must be taken in the target local after the localization of the user interface has been completed. The new pictures must be exactly the same size than the original, with a color depth of the workstation limited to 16 bit (65K). Store the new pictures in a \Source\Documentation\Screenshots\<lang> folder on the local drive.

Delivery After completion, zip the \Source\Documentation\Screenshots\<lang> folder on the local drive and send the file to <customer name>.

User manual The user guide can be found in the \Source\Documentation\User_manual\<lang> folder of the CD. Copy this folder on the local drive. Remove the read-only attribute from the usrman<lang>.doc file and open it with Microsoft Word. Activate the field code visualization option and search "D://<product_code_name>//<version>//User_manual//Graphics//" to replace with the path to the new screenshots.

De-activate the field code visualization option to check for the new screenshots appear in the manual.

Start translating the document with a translation tool to save a memory for future versions of the product and respect style and formatting of the original document. Save the translation memory in the same folder as the manual.

A compiled version (in PDF format) of the user manual is available in the \Source\Documentation\User_manual\En folder of the CD.

Page 35: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 34

Delivery After completion, zip the \Source\Documentation\User_manual\<lang> folder on the local drive and send the file to <customer name>.

Online help The source files for the online help can be found in the \Source\Documentation\Online_help\<lang> folder of the CD. Please translate both files with a translation tool using the same database as the user manual.

The online help files both pertain to a standard Windows help. A compiled version is available in the \Source\Documentation\Online_help\En folder of the CD.

Footnotes An online help source file has three kinds of footnotes:

$, title (Not to be translated)

#, topic ID (Not be translated)

K, keyword (To be translated)

The keyword footnote can be extended or reduced.

Graphic links Graphic links such as {bmc graphics\floating_menu.bmp} must not be translated. The help compiler will interpret them and attach the corresponding graphic during rebuilding.

Topic jump Topic jump allow the reader to click on a link to be redirected to the chapter explaining this topic. A topic jump consists of two parts. The first part in green double underlined is displayed to the reader and should be translated. The second part is an hidden text and should not be translated. Never introduce any space between the first and second parts of a topic jump.

Table of contents When opening an help file, the reader is prompted with the table of content of the help file. This is stored in a separate file with the extension .cnt. It is a plain text file that can be translated with a translation tool.

The first line of a .cnt file should be modified to show the name of the help file; in the second line only the text after "Title" needs to be translated. In the following lines do not change the initial number, translate the text before the = sign, and keep the second part unchanged.

Delivery After completion, zip the \Source\Documentation\Online_help\<lang> folder on the local drive and send the file to <customer name>.

Delivery schedule

Name of document Start date Due date Deliver to

User interface 11/7/2005 11/21/2005 (9:00 a.m. ECST)

[email protected] (please copy [email protected])

Microsoft Access local database 11/21/2005 11/23/2005 (9:00 a.m. ECST)

Microsoft SQL Server database scripts

11/23/2005 11/24/2005 (9:00 a.m. ECST)

Page 36: Building a Localization Kit

Building a localization kit

Copyright © 2005-2011 Luigi Muzii 35

Name of document Start date Due date Deliver to

Screenshots 11/24/2005 11/25/2005 (9:00 a.m. ECST)

User guide 11/25/2005 12/9/2005 (9:00 a.m. ECST)

Online Help 12/9/2005 12/19/2005 (9:00 a.m. ECST)

Instructions for downloading/uploading files from/to the L10NCo. FTP server To download or upload project files from or to our FTP server via a standard ftp client use the following parameters:

Hostname ftp.l10nco.com

Username vendor

Password l10nco

Download path to_l10nco

Upload path from_l10nco

Note: once in the download directory (from_l10nco) you will be able to see filenames. However, in the upload (to_l10nco) directory you will not be able to see filenames.

Support Please note that all project messages must be written in English, so that they can be forwarded to any team member as necessary.

Technical issues L10NCo. technical support ([email protected])

Linguistic issues George Brown ([email protected])

Schedule/pricing issues John Smith ([email protected])

DTP/engineering issues Mary Jones ([email protected])