0% found this document useful (0 votes)
1K views

AppleGlot 4 User's Guide

AppleGlot IS A localization tool for Mac OS X software. AppleGlot extracts localizable information from Mac OS X software into a text file. Linguistic translators who have no engineering background can easily translate the strings.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views

AppleGlot 4 User's Guide

AppleGlot IS A localization tool for Mac OS X software. AppleGlot extracts localizable information from Mac OS X software into a text file. Linguistic translators who have no engineering background can easily translate the strings.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

AppleGlot 4 User's Guide

AppleGlot 4 User's Guide


Page 1 of 41
Contents
What is AppleGlot? 4
What does AppleGlot do? 5
Command line AppleGlot 8
Available commands 8
How to tell the location of AppleGlot environment to appleglot 8
Example of an ./appleglot session 8
Whats new in AppleGlot 4 9
Requirements for AppleGlot 10
AppleGlot Environment 11
AppleGlot Glossary files 13
Types of glossary files 13
Format of glossary files 13
XLIFF File Format 15
AD/WG File Format 16
How AppleGlot handles different character encodings 17
Special escape sequence in AppleGlot glossary files 17
Supported files 19
Macintosh resource files (Classic Mac OS files / Carbon resource files) 19
strings files 19
Nib files 20
.plist files 20
XML files 21
JavaScript strings file (.js) 21
AppleGlot Preferences 23
General Settings: 23
AppleGlot 4 User's Guide
Page 2 of 41
Glossary Settings: 24
Log Settings: 24
Basic AppleGlot phases 25
Basic AppleGlot phases in detail 27
How to read AppleGlot logs 30
FAQ / Limitation / Issues 31
AppleGlot Tutorial 33
Tutorial 1: Non-incremental localization 33
Tutorial 2: Incremental Localization 35
Appendix-A Supported languages 38
Glossary 40
AppleGlot 4 User's Guide
Page 3 of 41
What is AppleGlot?
AppleGlot is a localization tool for Mac OS X software. AppleGlot can extract localizable
information from Mac OS X software into a text file, where linguistic translators who have no
engineering background can easily translate the strings into the target language. AppleGlot
then reinserts these strings back into the application. AppleGlot also supports incremental
localization; once software has been localized, subsequent use of AppleGlot extracts only the
new or changed items in the file that potentially require localization. AppleGlot supports
Cocoa and Carbon applications, bundled applications, and shared libraries or frameworks.
AppleGlot IS
A text extraction tool. Extracted text is placed in Work Glossary files to be translated.
An incremental update tool. Much of the localization work from previously localized
software can be preserved for new builds or releases of software. AppleGlot is capable
of preserving translated strings and localized layout information.
AppleGlot IS NOT
A translator. AppleGlot is a text swapping program. A native speaker of the target
language is expected to translate the Work Glossary files that AppleGlot produces.
AppleGlot can then substitute the original text in the resource files with the localized
text. AppleGlot is able to use glossary files from previous localizations, but this only
works on 100% text matches; it will not do partial translations.
A resource editor. Use Xcode, Interface Builder, Resorcerer or PowerPlant Constructor
to adjust the non-text components of resources.
AppleGlot is designed to speed up the localization process by providing two services:
1. Text Extraction and Insertion - AppleGlot extracts text from resource files of Mac OS X
software, which usually are located in localized resource directories (.lproj directories like
English.lproj or Japanese.lproj) in the Resources folders in software bundles. AppleGlot
extracts strings from Classic Mac OS files, Carbon resource files (.rsrc files), Cocoa nib files and
strings files into XML files called XLIFF files (Work Glossary files in AD/WG mode), where the UI
strings can be translated. After UI strings are translated in the XLIFF files (Work Glossary files in
AD/WG mode), AppleGlot needs to be run again to insert the translated strings back into the
resource files of the software bundle.
2. Incremental Localization - AppleGlot does incremental updates from previously localized
versions of software, by allowing localizers to obtain only the new or changed portion of
strings from the software it is localizing. This minimizes the amount of effort needed to
update the localization for a new release by preserving previously localized resources, or
portions of resources and avoids the need to repeat earlier work. Localizers only need to work
on items that have changed, or are new in a new release.
AppleGlot 4 User's Guide
Page 4 of 41
What does AppleGlot do?
In general, AppleGlot will perform the following actions to achieve incremental localization:
1. AppleGlot compares previous version of the base software (_OldBase) and current
version of the base software (_NewBase).
2. From the result, the unchanged portion of the previous localization (_OldLoc) will
be leveraged to the current localization (_NewLoc).
AppleGlot 4 User's Guide
Page 5 of 41
3. Localizable strings in the changed or new portions of the software (_NewBase) will
be extracted to the XLIFF text file. The new portion of the base software is copied into
the current localization (_NewLoc). The portion of the old localization that could be
leveraged to the current localization will be carried over to the current localization.
AppleGlot 4 User's Guide
Page 6 of 41
4. After the XLIFF is translated, AppleGlot will insert the translated strings into the
current localization (_NewLoc).
AppleGlot 4 User's Guide
Page 7 of 41
Command line AppleGlot
From AppleGlot 4, command line interface (CLI) is the only way to use AppleGlot. This allows the use
of AppleGlot in an automated environment. The command is installed at:
/usr/local/bin/appleglot
This command provides the same functionality as the previous GUI version.
Available commands
list print list of components in NewBase
getlangs get the current base language and target language
setlangs set the current base language and target language
populate create NewLoc, using OldLoc if available
update update NewLoc from Glossaries
finalize remove temporary working files
create create empty environment
Use appleglot -h command_name in Terminal for the detail of each command.
How to tell the location of AppleGlot environment to appleglot
By default, appleglot recognizes the current working directory as the top directory of the
environment. Alternatively, you can pass an alternate location, by using the -d option. The following
examples are equivalent:
$ cd /path/to/an/env; appleglot a_command ...
$ appleglot -d /path/to/an/env a_command ...
Example of an ./appleglot session
Consequently, a typical usage of the appleglot CLI would be something like:
$ cd /path/to/an/ag4env
$ appleglot list
iPodDriver_proj
iTunes_proj
$ appleglot setlangs en fr
$ appleglot populate iTunes_proj
$ appleglot update iTunes_proj
$ appleglot finalize iTunes_proj
For more details, please refer to the man page of AppleGlot. Type man appleglot in Terminal.
AppleGlot 4 User's Guide
Page 8 of 41
Whats new in AppleGlot 4
XLIFF support - AppleGlot supports XLIFF, which is an Internet standard format for glossary
files (see <http://docs.oasis-open.org/xliff/xliff-core/xliff-core.html> for more details about
XLIFF.) AppleGlot uses XLIFF as the default file format for the glossary files instead of AD/WG/
LG files, used in older version of AppleGlot.
Support for Property List and XML - AppleGlot supports Property List (.plist), XML (.xml) and
JavaScript strings file (.js) as localizable file types, in addition to the existing localizable file
types such as .strings, .nib, and .rsrc files.
Performance improvement AppleGlot performs concurrent nib processing on a multi-core
machine.
AppleGlot 4 User's Guide
Page 9 of 41
Requirements for AppleGlot
AppleGlot 4 requires Mac OS X 10.6 or later.
AppleGlot 4 requires appropriate developer package that is supported on your OS platform.
AppleGlot 4 supports both Xcode 3 or Xcode 4.
AppleGlot requires a tool called ibtool to extract strings from nib files. ibtool will be installed
in /usr/bin by the developer package. AppleGlot uses ibtool located in /usr/bin by default.
AppleGlot 4 supports a nib created by InterfaceBuilder 2.x or later. A nib must be in editable
format. Dont remove design-time content in a nib by using ibtool --strip or ibtool --compile
path --flatten YES. It should be done after finishing appleglot finalize.
AppleGlot 4 User's Guide
Page 10 of 41
AppleGlot Environment
AppleGlot requires a particular environment to organize the various files it needs or will
create. An environment is simply a set of folders with specific names. You can create an empty
environment by running appleglot create in Terminal. You could do this manually
using the Finder but you would need to get all the folder names spelled exactly right,
therefore it is much simpler to let AppleGlot create its environment for you.
The AppleGlot environment folder contains the following folders:
_NewBase
You are required to place one or more new base software in this folder. AppleGlot will
generate localized version of the software you place in this folder in the _NewLoc
folder. Contents of this folder are used as basis for current AppleGlot environment.
_NewLoc
Partially localized version of new base software will be generated here after the Initial
Pass. After all AppleGlot cycles are done, you will need to modify resources in this
folder to adjust the layout of dialog, etc. to finalize your localized software.
_OldBase
If available, place previous versions of the base software here. Contents of this folder
will be compared against the contents of _NewBase folder to detect changed or new
portions in the new software. If the software you place in _NewBase folder has never
been localized before, this folder may be left empty.
_OldLoc
If available, place the localized version of the software you placed in _OldBase folder
here. Previous localization work will be extracted from the contents of this folder, and
used to create partially localized software in _NewLoc folder. You are required to place
a localized version of the file you placed in _OldBase here. AppleGlot assumes that the
structure of files in _OldBase and _OldLoc are the same. Otherwise, AppleGlot cannot
leverage correct information into _NewLoc. If the software you place in _NewBase
folder has never been localized before, this folder may be left empty.
_Translations
XLIFF files (.xliff ) are generated after the initial pass. XLIFF files contain localizable
strings of two types, one of which is already translated strings and the other is
changed or newly added strings. Linguistic translator is required to translate the
strings of the latter type. Once translation is complete, perform the Incremental Pass of
AppleGlot. The translated strings in XLIFF files will be inserted into the files in _NewLoc
folder.
_Logs
Log files are generated in this folder after each AppleGlot pass is performed. If you find
errors or warnings in the logs, you should compare the contents of _NewBase folder
and _NewLoc folder to make sure that nothing is corrupted in files in _NewLoc folder.
For details, please see the section called How to read AppleGlot logs.
AppleGlot 4 User's Guide
Page 11 of 41
_Temporary
AppleGlot uses this folder as a temporary folder to process Carbon resource files. You
should not place anything here. Please keep this folder clean all the time.
_Translators
Place a set of Monte translators here for your custom resource types. AppleGlot
contains a resource-parsing engine called Monte to analyze Resource Manager
resources used in Classic Mac OS files or Carbon resource files. Monte requires you to
have one Monte translator for each resource type to parse the resource, and to extract
localizable strings, or layout information. You should obtain a copy of the latest Monte
translator set provided from the ADC site. If you are required to create your own Monte
translator for your custom resource type, please refer to the MonteSDK.pdf, which can
be found on AppleGlot installer disk. You dont need Monte translators for standard
resource types such as STR#. AppleGlot has embedded Monte translators for standard
resource types.
For compatibility, the AD/WG/LG glossary files, used in older version of AppleGlot, are still
supported. When you run AppleGlot in this old format mode, the following folders will be
created and used instead of _Translations folder for XLIFF.
_ApplicationDictionaries
Application Dictionary files (.ad) files are generated after the initial pass. Application
Dictionary files contain all "Base Language - Localized Language" pairs of translated
strings that are leveraged as 100% matches from files in _OldLoc, _WorkGlossary or
_LanguageGlossaries folders into _NewLoc folder. Contents of Application Dictionary
file always reflects the latest strings in the files in _NewLoc folder at any given stage. If
none of the strings in _NewLoc folder are translated, Application Dictionary file would
be empty. Once the Work Glossary file is translated and the translated strings are
inserted from Work Glossary to files in _NewLoc folder, inserted strings will be moved
to Application Dictionary file from Work Glossary. This indicates AppleGlot has
successfully inserted translated strings into the files in _NewLoc folder. After the initial
pass is done, you may edit Application Dictionary files directly to correct translation
errors. The corrected translations will be inserted to files in _NewLoc folder after an
incremental pass is done.
_LanguageGlossaries
Language Glossary files (.lg) should be placed in this folder before the initial pass is
performed. If you wish to leverage translations from related software, place the
Application Dictionary files from such software here. You are required to change their
file extensions from .ad to .lg. No further changes are necessary to use .ad files as
Language Glossary files.
_WorkGlossary
Work Glossary files (.wg) files are generated after the initial pass. Work Glossary files
contain localizable strings from changed or newly added resources. linguistic translator
is required to translate these files. Once translation is complete, perform the
Incremental Pass of AppleGlot. Translated strings in Work Glossary files will be inserted
into the files in _NewLoc folder. Application Dictionary files in _ApplicationDictionaries
AppleGlot 4 User's Guide
Page 12 of 41
folder will be updated accordingly (Application Dictionary files always reflect the
strings in _NewLoc folder).
AppleGlot Glossary files
Types of glossary files
AppleGlot uses XLIFF (stands for XML Localization Interchange File Format) for storing the
glossaries of the localization project. XLIFF is an Internet standard for glossary file format
supported by lots of localization/translation software. For more details, please refer to the
official web page <http://docs.oasis-open.org/xliff/xliff-core/xliff-core.html>.
For the compatibility with older versions, AppleGlot still supports the following three types of
glossary files: Application Dictionary files (.ad) files contain all "Base Language - Localized
Language" pairs of translated strings that are leveraged as 100% matches from files in
_OldLoc, _WorkGlossary or _LanguageGlossaries folders into the _NewLoc folder. The contents
of Application Dictionary file reflect the contents of files in _NewLoc folder at any given stage.
Work Glossary files (.wg) contain localizable strings from changed or newly added resources. A
linguistic translator is required to translate the files generated in this folder. Language
Glossary files is used differently by AppleGlot. Language Glossary files (.lg) is the Application
Dictionary files from previously localized software. When AppleGlot performs the Initial Pass, it
parses all Language Glossary files in _LanguageGlossaries folder, then will try to find any new
or changed strings that exactly match the strings from the Language Glossary file and will use
the translation previously made in the previous localization.
Glossary file Description
Application Dictionary Contains all "Base Language - Localized Language" pairs of
translated strings in _NewLoc. Content reflects the contents of
files in _NewLoc at any given stage.
Work Glossary Contains strings from changed or new resources. Linguistic
translator is required to translate the strings.
Language Glossary Application Dictionary files from previously localized software.
Translation in Language Glossary file is leveraged to Work
Glossary file, if 100% match is found.
Format of glossary files
Glossary files follow the XML standard. All glossary files should be opened and saved in UTF-8
encoding. Pay extra attention to the preference setting of your text editor. If you open
glossary files in legacy encoding other than UTF-8, you will find high ASCII characters in the
files are displayed as garbled characters. This is because character mapping of the high ASCII
range is different among other encodings. If you find garbled characters, you should make
AppleGlot 4 User's Guide
Page 13 of 41
sure that you are opening the file in UTF-8. Also ensure that the line break code in the
glossary files are LF (0x0a) using appropriate text editor or hex editor.
It is not recommended to change the character encoding of the glossary file to one of the
other encodings, then change it back to UTF-8. There are various round-trip conversion
problems between Unicode and other encodings because Unicode is a much larger character
set. If you are required to do so, please pay extra attention.
Note: Although it is not recommended, AppleGlot is also capable of generating glossary files in
UTF-16 as more text editors support UTF-16 better than UTF-8.
Because glossary files are XML, the following characters are illegal in the glossary files. If you
need to use following characters in the translation, please be sure to use following entity
references in the glossary files:
& &amp;
< &lt;
> &gt;
" &quot;
' &apos;
Note: AppleGlot does not support CDATA section in the glossary files.
AppleGlot 4 User's Guide
Page 14 of 41
XLIFF File Format
This is an example of an entry in AppleGlot XLIFF glossary files:
<file original="/Contents/Resources/English.lproj/Alerts.strings" source-
language="en" target-language="ja" datatype="x-strings" ag:project="Mail.app">
...
<trans-unit id="SEND_BUTTON" restype="x-string" resname="">
<source>Send</source>
<target state="signed-off" state-qualifier="id-match"></target>
<note> Title of button for sending the selected drafts </note>
</trans-unit>
...
</file>
Tags Description
<file> The path of the file where the strings are extracted from.
<trans-unit> This is a pair of the base string and the translated string.
<source> This is where source string (usually in English) is extracted.
<target> This is where translated string will be inserted either by AppleGlot or
linguistic translator. In the state attribute, AppleGlot places explanation
of the state of the string (new, signed-off, etc.)
In <target> tag, the state attribute is very important:
<target state=signed-off>...</target>
If the value of state is signed-off, this means the string was populated from OldLoc to NewLoc
as the corresponding strings in OldBase and NewBase are the same.
<target state=new>...</target>
If the value of state is new, this means the string is new and needs to be translated.

<target state=translated>...</target>
After you translated the string between <target> and </target>, you should set the
value of state to translated.
AppleGlot inserts the string in pass 2 if the value of state is NOT new.
(translated is a typical state for newly translated strings. XLIFF defines various state values and
you may want to set other values by the stage of your translation. Please refer to the official
XLIFF documentation for more information.)
AppleGlot 4 User's Guide
Page 15 of 41
XLIFF files generated by AppleGlot follows the XLIFF 1.2 specification. See the official XLIFF
documentation for more details.
AD/WG File Format
(Note: current AppleGlot uses XLFF glossary format by default. AD/WG file format is supported
just the compatibility with older versions of AppleGlot.
XLIFF is one of the standard file formats widely supported by localization/translation tools, so
AppleGlot users are encouraged to use XLIFF.)
This is an example of an entry in AppleGlot AD glossary files:
<File>
<Filepath>iTunes2.app/Contents/Plug-ins/Nomad Jukebox Plugin.bundle/Contents/
Resources/English.lproj/Localized.rsrc</Filepath>
<TextItem>
<Description></Description>
<Position>'CNTL' -20459:title</Position>
<TranslationSet>
<base loc="en" >Kind</base>
<tran loc="ja" origin="OldLoc exact match"></tran>
</TranslationSet>
</TextItem>
...
</File>
Tags Description
<Filepath> The path of the file where the strings are extracted from.
<Description> If the text item is extracted from a nib file, description of the item will
be inserted here.
<Position> If the text item is extracted from a resource file, description of the item
will be inserted here.
<base> This is where base string (usually in English) is extracted.
<tran> This is where translated string will be inserted either by AppleGlot or
linguistic translator. In the origin attribute, AppleGlot places
explanation of where the string was inherited from
When AppleGlot inserts a pre-translated string to Work Glossary file, AppleGlot uses the
origin= attribute in the <trans> tags to indicate where the string is leveraged from:
<tran origin="LG matched text">
Strings are found in LG files, exactly matched. (position tag is not considered in this
case).
AppleGlot 4 User's Guide
Page 16 of 41
<tran origin="AD matched text">
Strings are found in AD files, exactly matched, but position tag isn't matched. (this
attribute will be set in Work Glossary file)
How AppleGlot handles different character encodings
AppleGlot extracts strings from Macintosh resource files using a resource parser engine called
Monte. Apple provides a generic Monte translators to extract strings from Macintosh Resource
files.
Most Resource Manager resources used in Macintosh resource files use the default character
encoding for a given language. For example, in Carbon resource files, all of European
languages that Apple ships with current Mac OS X are saved in MacRoman. Japanese
resources are saved in MacJapanese, Korean resource are saved in MacKorean, etc.
Monte extracts text data in Resource Manager resources as described in Monte translators and
converts the extracted text data in the default character encoding for the target language to
Unicode. Finally AppleGlot writes out Unicode text to the glossary files for translation.
When the text is translated in the glossary files, AppleGlot passes the translated Unicode text
to Monte, then Monte inserts the translated Unicode text to its Resource Manager resources
after re-encoding the Unicode text to the default encoding of the target language.
For more details, please refer to "MonteSDK.pdf", which can be found on AppleGlot installer
disk.
Special escape sequence in AppleGlot glossary files
You should pay extra attention when using any 1-byte character that is in the range outside of
0x21 to 0x7E (non-low ASCII characters). For example, if you use "" (small copyright mark) as
a paramtext identifier like "1", there will be a problem when localizing into Asian languages.
"" is 0xA9 in MacRoman, but it is 0xFD in MacJapanese. Since expected code to detect
paramtext is 0xA9, "" would not function as expected if it was saved in MacJapanese. It
really should be localize into "". For Simplified Chinese, the story is even worse, because
nothing is mapped to 0xA9 in MacChineseSimp. In order to force insert hex data 0xA9 in the
appropriate location, user can specify the following escape sequence denoted as "?#xXXXX;",
where XXXX is the four-digit hexadecimal number as the representation of the byte.
The part "XXXX" must be four digits. For values smaller than 0x1000, use preceding zeros like
"?#x0096;" (for 0x96). Preceding 0s in the digits of escape sequences are ignored when they
are converted to byte. For example, ?#x0096; results in the byte 0x96, not 0x0096. Since the
number of the digits in a sequence is supposed to be four, you can't use formats like "?#x96;"
or "?#x096;" for the byte 0x96. In addition, ?#x0000; results in 0x0.
If you want to enter multiple bytes, you can use multiple escape sequences. For example, if
you put "" with MacJapanese encoding, the sequence is "?#x93fa;?#x967b;". (another
sequence "?#x0093;?#x00fa;?#x0096;?#x007b;" inserts the same bytes.)
AppleGlot 4 User's Guide
Page 17 of 41
This escape sequence plays the role when:
(1) Macintosh resource files in _OldLoc contain any non-low ASCII character.
They will be extracted into XLIFF file represented with the escape sequence. An actual
example of XLIFF file entry is:
<source>1can't be launched because it is not an application.</source>
<target state="signed-off" state-qualifier="id-match"> ?#x00a9;1
</target>
(2) You want to insert special characters.
For example, preparing the following entry in a Spanish XLIFF file, you can put the text "La
Lega Espaola" ("" = 0x96 in MacRoman) into the corresponding Spanish rsrc file:
<source>The Spanish League</source>
<target state="translated">La Lega Espa?#x0096;ola</target>
This may be useful if you can't enter "" from the keyboard directly (i.e. if typing option-n n
doesn't work).
(3) Line breaks in Macintosh resource files
If strings in Macintosh resources uses the Classic Mac OS line break (0x0d), strings from nib
or .strings file contains Unix line break (0x0a), AppleGlot will escape them as shown below.
<source>Hello.?#x000a;Point to an item to learn more about it.?#x000a;(Not all items
have extra information.)?#x000a;?#x000a;</source>
<source>Calibrator 4.0?#x000d;A ColorSync Display Calibrator Assistant</source>
The same applies to Unicode line separator u2028 (used by BBEdit) and paragraph separator
u2029.
These escapes are done by AppleGlot so that these codes can be safely preserved in the
glossary files. Some text editors convert these line breaks into one kind automatically. For
example, Classic Mac OX line breaks (0x0d) in a text file would be converted to the Unix
counterpart (0x0a). If the code is converted, the string that contained 0x0d will be treated as a
different string, so that the translation in the glossary will be ignored and will never be
inserted to the resource file.
AppleGlot 4 User's Guide
Page 18 of 41
Supported files
AppleGlot currently supports the following file types:
Macintosh resource files (Classic Mac OS files / Carbon resource files)
Macintosh resource files, often referred as Carbon resource files. AppleGlot contains a
resource-parsing engine called Monte to analyze Resource Manager resources used in
Classic Mac OS files or Carbon resource files (AppleGlot 2.4 used another custom data
descriptor called templates). The data may be stored in either a data fork or a resource
fork. In order to extract string data from .rsrc files, appropriate Monte translators are
needed for all localizable resource type.
strings files
Resource files that contain localizable strings are referred to as strings files because of
their filename extension, which is .strings. You can create strings files manually or
programmatically depending on your needs. The following shows a simple strings file.
/* Question in confirmation panel for quitting. */
"Confirm Quit" = "Are you sure you want to quit?";
/* Message when user tries to close unsaved document */
"Close or Save" = "Save changes before closing?";
AppleGlot can extract the comments in the .strings files to the glossary file so that
linguistic translator can refer to the comment from engineers when translating the
string. This can allow linguistic translator to pick a translation for the correct context. If
the strings file is not in the format above, it is a bug in the software, as CoreFoundation
sometimes refuses to read such files in run time (missing semicolon is a common
problem). AppleGlot will record such problem as warning in the log..nib files (Cocoa/
Carbon UI files)
Please see the following page for more details about strings file.
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/
LoadingResources/Strings/Strings.html#//apple_ref/doc/uid/10000051i-CH6-SW1
AppleGlot 4 User's Guide
Page 19 of 41
Nib files
AppleGlot supports both nib and xib files (note: we sometimes use the word nib as
the generic file type for both nib and xib files).
AppleGlot uses a utility called ibtool to extract strings and leverage layout information
from Cocoa and Carbon nib files. The tool needs to be installed to /usr/bin. You can
specify the path to ibtool in different location with -n option in appleglot command.
AppleGlot creates temporary files (.nib.strings) for each .nib file to process the strings
in .nib files. .nib.strings files will not be removed until you run appleglot
finalize in Terminal.
Note: ibtool requires objects.nib (or keyedobjects.nib), info.nib and classes.nib in a nib
to extract data. (The info.nib and classes.nib are often stripped from shipping products
from Apple, as it is unnecessary for run-time operation. This means AppleGlot cannot
process nib files from some products shipped by Apple.)
In addition, Xcode has the option Flatten Compiled XIB Files, which makes the .xib
files in the built application non-editable with ibtool. In order to keep the xib files in
the application editable ( in order to keep the application localizable using AppleGlot),
the application developers need to uncheck this option.
.plist files
AppleGlot is able to process the contents of Property List (plist) files. As plist files can
store more various types of data than .strings file, some applications use this format for
localizable application settings as well as localizable strings. However, this flexibility is
in turn more likely to cause application problems by editing the files inappropriately,
AppleGlot limits itself to process the following data structure inside plist using the
special key _LOCALIZABLE_:
<dict>
<key>_LOCALIZABLE_</key>
<dict>
<key>key1</key>
<string>value1</string>
</dict>
AppleGlot 4 User's Guide
Page 20 of 41
<key>key2</key>
<string>value3</string>
<key>key3</key>
<string>value3</string>
</dict>
In this example, AppleGlot recognizes value1 as a localizable string but ignores value2
and value3.
XML files
AppleGlot now supports XML file. Like plist, XML files allows very complex data
structure, which may cause inappropriate localization. AppleGlot processes the tags in
XML that have localizable=true attribute only.
JavaScript strings file (.js)
AppleGlot supports a popular JavaScript strings file.
A file name must match the following ICU Regular Expression pattern.
'(?i)(.*)(locali[sz]|strings)(.*)'
Here is a couple of legitimate file name patterns.
localizedStrings.js
strings.js
Please see http://userguide.icu-project.org/strings/regexp for more details about ICU
Regular Expression.
AppleGlot 4 User's Guide
Page 21 of 41
AppleGlot supports both associative array style strings file and JSON style strings file.
var localizedColors = new Array();
localizedColors['yellow'] = 'yellow';
localizedColors['orange'] = 'orange';
localizedColors['blue'] = 'blue';
var localizedStrings = {
/* The name of the Web Application. */
"appName": "Application Name",
/* The name of the User. */
"user_name": "Your Name"
};
AppleGlot 4 User's Guide
Page 22 of 41
AppleGlot Preferences
AppleGlot preferences need to be set through defaults command in Terminal as AppleGlot no
longer has GUI.
General Settings:
defaults write com.apple.appleglot AGApplication.DefaultBaseLocale base_lang
Set the default base language to base_lang.
defaults write com.apple.appleglot AGApplication.DefaultTargetLocale target_lang
Set the default target language to target_lang.
Please see Appendix-A for all supported languages and the corresponding language
codes.
Resources Settings:
defaults write com.apple.appleglot ResourcePrefs.CommonTranslatorsLocation path
Set the common location for the translators to path. If you are working with a large
number of AppleGlot environments, you should consider preparing a common
location where AppleGlot can look for Monte translators. By specifying a common
location with this command, you would not have to keep the same set of Monte
translators in multiple environments. If you have specific Monte translators that
need to be used for certain environment, you can place the special Monte
translators to the _Translators folder of that environment.
defaults write com.apple.appleglot ResourcePrefs.PreserveOldLocResources 1
By setting this, any extra resources in Carbon resource files you intentionally added
to _OldLoc software will be carried over to _NewLoc.
defaults write com.apple.appleglot ResourcePrefs.StripObsoletedNewBaseResources 1
By setting this, any resources you intentionally removed from Carbon resource files
in _OldLoc software will be removed from _NewLoc also.
Note: Even though you have added / removed extra entries in .strings files, AppleGlot does
not handle it the same way it does with Carbon resource files.
defaults write com.apple.appleglot ResourcePrefs.ProcessResourceNames 1
If your software requires you to localize name of the resource to be localized, check
on this check box. AppleGlot will be extracting name of resources to be localized in
the Glossary files.
AppleGlot 4 User's Guide
Page 23 of 41
Glossary Settings:
defaults write com.apple.appleglot SummaryFormatFileCreatorID four_char_id
You can set the creator ID of the glossary files.
defaults write com.apple.appleglot SummaryFormatEncodingID num
You are able to select encoding of the glossary files. By default, it is set to UTF-8, and
should not be changed as glossary files will not be valid XML file any longer (XML
must be saved in UTF-8). You can alternatively set to UTF-16 because more text
editors handle UTF-16 much more fluently. num should be the number for the
encoding defined in CoreFoundation.
Log Settings:
defaults write com.apple.appleglot StateMachine.LogVerbosity num
You can set Verbosity Level for AppleGlot log to num. num should be an integer
from 1 to 4, where 1 = no logging, 2 = log errors only, 3 = log errors and warnings
and 4 = log errors and warnings + extra debugging information. It is recommended
to set the verbosity level to 3. The default value is 3.
defaults write com.apple.appleglot AGApplication.LogViewerAppTypet four_char_id
You can set your preferred XML viewer.
AppleGlot 4 User's Guide
Page 24 of 41
Basic AppleGlot phases
This is a quick overview of the basic phases of AppleGlot:
1. Creating an AppleGlot Environment. An AppleGlot environment is a set of folders used by
AppleGlot. Creating an environment is done by running appleglot create /path/to/
environment. If the path for the environment is omitted, AppleGlot creates a new
environment in the current folder.
2. Place your source files into the Environment folders. This takes only a minute or so using
Finder. Just put copies of new software into the _NewBase. Place old base software if any, and
previously localized software into _OldBase and _OldLoc folders into the Environment.
Note: When you are placing software bundles into these folders, it is advised to keep the
bundle structures identical among these for maximum leverage.
Note: When you are placing software bundles into these folders, it is advised to keep the bundle
structures identical among these for maximum leverage.
3. Place Monte Translators. (you can skip this if there is no resource (.rsrc) files in the
environment or you dont have custom resource type.) Place Monte Translators into
"_Translators" folder in your AppleGlot environment. AppleGlot uses Monte translators to
analyze contents of Macintosh resource files (.rsrc). If you prefer to use a set of Monte
translators from a common location, you may do that by running defaults command in
Terminal (see AppleGlot Preferences section for more details.).
4. Set base and target languages. You need to set base and target languages unless you
have set them with default commands mentioned in AppleGlot Preferences section. Setting
base and target languages is done by running appleglot -d /path/to/environment
setlangs base_lang target_lang. Please see Appendix-A for all supported languages
and the corresponding language codes.
5. Initial Pass (create NewLoc, using _OldLoc if available) - Text extraction and item
preservation occurs in the initial pass of AppleGlot. Run appleglot populate. It creates
NewLoc, using _OldLoc if available. This process usually takes a few minutes. The resulting
localized files will appear in the _NewLoc folder. If previous files were placed in _OldBase and
_OldLoc, new files in _NewLoc may contain mixed text -- partially from the _NewBase and
partially from the _OldLoc.
6. Manual text translation using your favorite text editor - AppleGlot produces the XLIFF
file in _Translations folder (Work Glossary files in the _WorkGlossary folder and Application
Dictionary files in the _ApplicationDictionaries folder in AD/WG mode) in the environment
after the Initial Pass. Contents of the XLIFF file (the Application Dictionary file in AD/WG
mode) always reflects the latest strings in the files in _NewLoc at any given stage. Linguistic
translators might want to reference this file to maintain consistency of the glossaries in the
software. You may consider using translation memory tools to reduce the time for manual
translation. Please open and save your Work Glossary files in UTF-8 encoding so that
AppleGlot can read them.
AppleGlot 4 User's Guide
Page 25 of 41
7. Incremental Pass (update NewLoc from Glossaries) - Run appleglot update. It update
NewLoc from Glossaries by moving your translations in the XLIFF file (or Work Glossary files if
AD/WG mode) into the files in _NewLoc to replace the mixed text. This process often takes
less time than Initial Pass because only those resources listed in the Work Glossary files are
processed and updated. You can edit XLIFF files (or Applications Dictionary files or Work
Glossary files in AD/WG mode) to correct translation problem, then run the Incremental Pass
to insert corrected translations to localized files in _NewLoc.
8. Final Pass (remove temporary working files) - This pass is almost the same as the
Incremental Pass, but it also removes temporary files like .nib.strings files and ~.nib files
created during the previous passes. Run appleglot finalize. It removes temporary working
files. If you perform another incremental pass (either Incremental Pass or Final Pass),
temporary files will be created again, which would slow down the process. It is recommended
to use this pass when you are sure that all strings in the application are translated correctly.
Usually, once the above phases have been completed, AppleGlot portion of the localization
process is finished. You must then use a resource editor or other specialized tools to adjust the
visual appearance of the translated text and to do any other specialized localization work. This
includes localizing files that are not supported by AppleGlot.
The advantage of using AppleGlot is that most of your work is only needed to be done once.
Later versions of the same software will only require you to use AppleGlot to update the files,
and you will only required to deal with the items that have changed.
Note: AppleGlot will compare files in _NewBase and _OldBase. If they are the same, AppleGlot will
just copy localized file in _OldLoc to _NewLoc. If the file was one of the supported file type,
AppleGlot will try to perform incremental localization. However, if the file was not supported by
AppleGlot, AppleGlot will copy the file in _NewBase to _NewLoc. In this case, localizers will need to
localize the file manually from scratch.
AppleGlot 4 User's Guide
Page 26 of 41
Basic AppleGlot phases in detail
Below is a much-expanded version of the "Basic AppleGlot phases". The purpose of this
section is to show each step in more details for user who hasn't seen AppleGlot before. This
will help any user understand how AppleGlot works, and what to do in each step to
successfully accomplish your localization project.
STEP 1: Creating the Required Environment
AppleGlot requires a specific set of folders consisting of an environment folder
containing a set of specifically named folders. You may manually create this
environment using the Finder or from Terminal from scratch, however it is much easier
to create AppleGlot environment automatically by running appleglot create.
Note: Generally, a new environment should be created for each project. To avoid confusion,
you SHOULD NOT try to reuse old Environments! The logic relies on certain preexisting files
or being newly created by AppleGlot so if you try to save time by reusing an environment,
and if it already contains some NewLoc files or some glossary files, AppleGlot may become
confused and you will end up losing time.
STEP 2: Populating the Environment
The Environment folder will contain the following folders:
_ApplicationDictionaries (in AD/WG mode)
_LanguageGlossaries
_Logs
_NewBase
_NewLoc
_OldBase
_OldLoc
_Projects
_Rules
_Temporary
_Translations (in XLIFF mode)
_Translators
_WorkGlossary (in AD/WG mode)
Once your environment has been created, the Finder is ideally suited to populating the
folders. Use the Finder to move copies of your software into the proper folders.
If you are localizing a new piece of software, you only need to move a copy of that
software into the _NewBase folder. If you are localizing a new version of a previously
localized software, you should move copies of the previous base software into the
_OldBase folder and a copy of the accompanying localized version into the _OldLoc
folder.
AppleGlot 4 User's Guide
Page 27 of 41
Multiple individual pieces of software may reside within a single environment folder. In
most cases AppleGlot will automatically associate the correct files using name of file /
bundle, CFBundleIdentifier in info.plist, type and creator information, or ftag resources.
Note: Don't put an Alias to the original file / bundle into the folders. AppleGlot expects that
the actual file is in the folder and will not function properly if it finds an alias in the folder.
Your software may not have file/folder names including a forward slash (/) or/and a double
quote ().
STEP 3: Setting the Environment
You can set the locales by running appleglot setlangs base_lang
target_lang. For example, appleglot setlangs en fr sets the base
language to English and the target language to French. Please see Appendix-A for all
supported languages and the corresponding language codes.
STEP 4: Initial Pass (create NewLoc, using _OldLoc if available)
Run appleglot populate. This will create partially localized versions of
_NewBase in the _NewLoc folder if _OldBase and _OldLoc are available. Symlinks in
the bundle will be preserved as well.
With no argument after populate, appleglot will process all components in the
environment. If the environment contains multiple components and you want to
specify some of them, run appleglot populate comp1 comp2 ... where
comp1 comp2 ... are the names of the top folders of the components in _NewBase.
New or changed strings will be extracted to XLIFF file in _Translations folder (the Work
Glossary file in _WorkGlossary folder in AD/WG mode). Strings that are not changed
from previous localization will be also extracted to the same XLIFF file (Application
Dictionary file in _ApplicationDictionaries folder in AD/WG mode).

STEP 5: Manual text translation using your favorite text editor
Use your preferred text editor to translate the text in the XLIFF files (Work Glossary files
in AD/WG mode). The XLIFF files (the Work Glossary files in AD/WG mode) are in XML
format, which needs to be opened and saved in UTF-8 encoding. You may use
translation memory tools to automate the translation. Please dont forget to set
translated to the state attribute value in the <target> element you translated. For
more information on the glossary files, please see "AppleGlot Glossary files".
STEP 6: Incremental Pass (update NewLoc from Glossaries)
To insert the translated strings in XLIFF files (Work Glossary files in AD/WG mode) to
the files in _NewLoc, run appleglot update
AppleGlot 4 User's Guide
Page 28 of 41
All translated strings in Work Glossary file in AD/WG mode will be moved to the
Application Dictionary file to reflect the localization state of files in _NewLoc.
STEP 7: OPTIONAL - Making translation changes in the XLIFF (Application Dictionary in
AD/WG mode)
AppleGlot is designed as a large-scale localization tool. All text requiring translation is
extracted to the XLIFF file (Work Glossary in AD/WG mode), and once that is
translated, all you need to do is to run the incremental pass to complete the NewLoc
file.
However, once you complete the NewLoc file, you may notice spelling errors, or for
some reason or another want to change some of your translations. Some people
decide not to use AppleGlot to make small changes and find it easier to make the
changes using resource editors like Interface Builder or Resorcerer.
Note: Once you have used resource editors, you cannot go back to AppleGlot without the
possibility of AppleGlot overwriting text changes you made in the resource editors!
Others choose to keep on using AppleGlot to make all changes that are needed to the
text. This has the advantage of keeping the XLIFF Database (Application Database in
AD /WG mode) up to date with the released software. A complete and updated XLIFF
(Application Dictionary in AD/WG mode) is useful for "proofing" manuals to ensure
both the software and manuals use the same terms.
AppleGlot 4 User's Guide
Page 29 of 41
How to read AppleGlot logs
AppleGlot records any problem to log files generated in the _Logs folder of the AppleGlot
environment. AppleGlot generates two files for each item it processes. The one with the
.counts extension has word count information in XML format. The other file keeps records of
ibtool output, or any Monte output that might be interesting to see after the processing.
Here are some examples of AppleGlot log output:
When AppleGlot encounters an invalid format XML file (XLIFF, Work Glossary or Application
Dictionary), the following error message will be recorded in the log:
20110927 15:23:21 ErrK Illegal characters were encountered while trying to read the glossary data
associated with the file "Clocks_proj".
Note: to find the illegal character, run xmllint command in Terminal over the XLIFF
file (Work Glossary file in AD/WG mode).
When a nib file cannot be processed by some reason (e.g. Xcode is not installed and ibtool is
unavailable, the nib file is in unsupported format, etc.), the following error message will be
recorded in the log.
20110927 16:06:23 ErrK The IB file '/path/to/a.nib' doesn't seem to be supported on this platform.
You can easily identify all fatal errors by searching for ErrK in the log file.
AppleGlot 4 User's Guide
Page 30 of 41
FAQ / Limitation / Issues
FLTR support
AppleGlot will never support 68K resource display or filtering code resources
Extra / removed entries in .strings file in _OldLoc
The default values of ResourcePrefs.PreserveOldLocResources and
ResourcePrefs.StripObsoletedNewBaseResources do not apply for the
entries you have manually added / removed in the .strings file in _OldLoc.
lproj naming
When AppleGlot generates <lang>.lproj folder in the _NewLoc folder, basically the
folders will be generated using ISO 639 language code + ISO 3166 country code, such
as da.lproj (Danish), or zh_CN.lproj (Mainland Chinese or Simplified Chinese). If you
want to use ISO codes only for lproj names, you may rename the lprojs after
completing AppleGlot processes.
For historical reasons, the following long lproj names are still supported, but you are
encouraged to use the short names (e.g. fr.lproj instead of French.lproj).
English (English.lproj)
French (French.lproj)
German (German.lproj)
Japanese (Japanese.lproj)
Spanish (Spanish.lproj)
Dutch (Dutch.lproj)
Italian (Italian.lproj)
AppleGlot matches the format of the lproj names when you run appleglot populate.
For example, if the _NewBase folder contains English.lproj and the target language is
set to ja, then _NewLoc will be created using Japanese.lproj (<-> English.lproj). If the
_NewBase folder contains en.lproj, then _NewLoc will be created using ja.lproj (<->
en.lproj).
Where AppleGlot environment should be placed
AppleGlot environment should only be placed on an HFS+ volume. Also, you can not
place or name an AppleGlot environment where a non-ASCII pass name is used in the
path. For example, AppleGlot can not process files in the environment whose name is
in Japanese.
AppleGlot 4 User's Guide
Page 31 of 41
Interface Builder Plugin (ibplugin)
If a nib uses a custom user interface item provided by an ibplugin, you must specify -g
path_to_ibplugin in appleglot command. Otherwise you will see the following error
messages.
20110714 19:10:24 Warn "com.apple.ibtool.errors" = (
20110714 19:10:24 Warn {
20110714 19:10:24 Warn "recovery-suggestion" = "Ensure all plug-ins used
to create this document have been loaded.";
20110714 19:10:24 Warn description = "The document \"XXXXX.nib\" could
not be opened. An instance of XXXX_CLASS could not be decoded.";
20110714 19:10:24 Warn }
20111019 19:10:24 Warn );
Namespaces in XLIFF files
AppleGlot has its proprietary attributes in XLIFF files. AppleGlot declares a name space
for them in a <xliff> element (xmlns:ag="http://www.apple.com/appleglot").
So the owner of all attributes prefixed with ag is AppleGlot (e.g., ag:project in a <file>
element). Please dont alter them in XLIFF files.
AppleGlot 4 User's Guide
Page 32 of 41
AppleGlot Tutorial
This section provides 2 tutorials to localize Mac OS X software using AppleGlot. In the first
tutorial, you will learn how to localize a software from scratch. In the latter tutorial, you will
learn how to localize a software using previously localized contents.
Tutorial 1: Non-incremental localization
1. Install AppleGlot using the installer package.
2. Create an AppleGlot environment:
a. In terminal, cd to the environment.
$ cd /path/to/my_environment
b. Run appleglot create.
$ appleglot create
3. Place a copy of the application to be localized in the "_NewBase" folder in the AppleGlot
environment. You can do it using cp command in Terminal.
4. Run appleglot setlangs base_lang target_lang.
$ appleglot setlangs en ja
5. Run appleglot populate. This creates NewLoc, using _OldLoc if available. This will
extract localizable strings from the application you placed in the _NewBase folder and the
files in _NewBase will be copied to _NewLoc folder. Glossary files are produced in the
_Translations folder (_ApplicationDictionaries folder and the _WorkGlossary folder in AD/WG
mode).
AppleGlot 4 User's Guide
Page 33 of 41
$ appleglot populate
6. Open the generated .xliff file in _Translations folder (.wg file in _WorkGlossary folder) in the
environment with one of your favorite text editors or xml editors. This file is where the actual
translation will take place. It is recommended to use xml editors so that you have no chance
to alter xml tags inadvertently. You may not change the glossary file name and extension
named by AppleGlot. Please open and save the glossary file as UTF-8.
a. Choose a string to translate.
b. Insert the cursor between <target state=new> and </target> (between
the <tran loc=> tag and the </tran> tag in AD/WG mode) and type the
translated string. Then set the value of state to translated (or an appropriate value
for the state of this string. Please refer to the specification of XLIFF for more details.)
AppleGlot 4 User's Guide
Page 34 of 41
7. After translation is done, run appleglot update . This will insert the translated strings
in the Work Glossary file into the files in _NewLoc. Translated text items will be moved to the
Application Dictionary after this pass.
$ appleglot update
8. The translated application(s) can be found in the "_NewLoc" folder. You should adjust visual
resources (such as nib files or DITL, WIND, PPob etc.) using appropriate resource editors like
Interface Builder, Resorcerer or PowerPlant Constructor.
Tutorial 2: Incremental Localization
1. Follow step 1 and step 2 in Tutorial 1.
2. Place a copy of the application to be localized in the "_NewBase" folder in the AppleGlot
environment. Also place an older version of the application you placed in "_NewBase" into the
"_OldBase" folder. You are also required to place previously localized application to "_OldLoc.
AppleGlot 4 User's Guide
Page 35 of 41
3. Run appleglot setlangs base_lang target_lang, where base_lang and
target_lang are the name of the base language and the target language respectively.
$ appleglot setlangs en fr
4. run appleglot populate. This will cross-reference the files in _NewBase, _OldBase
and _OldLoc in order to create partially localized files in _NewLoc.
$ appleglot populate
5. Only strings that are new or changed in _NewBase are required to be translated. Such
strings will be extracted to the XLIFF file in the _Translations folder (Work Glossary file in the
_WorkGlossary folder in AD/WG mode) in the environment. The strings that are already
localized and represent a 100% match in the _OldLoc are also saved in the same XLIFF file
(Application Dictionary in the _ApplicationDictionaries folder in AD/WG mode). Any
engineering changes (such as font, layout, properties of dialog, for example) made in previous
localization will be leveraged to _NewLoc as much as possible.
AppleGlot 4 User's Guide
Page 36 of 41
6. Open the generated .xliff file (.wg file in AD/WG mode) using your preferred text editor.
The .xliff file (.wg file in AD/WG mode) should be named after the application name with
a .xliff extension (.wg extension in AD/WG mode) appended to the end. This file is where the
actual translation will take place. Open the file in UTF-8. Translate, then save the file in UTF-8.
7 Run appleglot update. This will insert the translated strings in the XLIFF file (Work
Glossary file in AD/WG mode) to the files in _NewLoc. In AD/WG mode, translated text items
will be moved to Application Dictionary after this pass (as they are considered to be
"blessed").
$ appleglot update
8. The translated application(s) can be found in the "_NewLoc" folder. You should adjust visual
resources (such as nib files or DITL, WIND, PPob etc.) using appropriate resource editors like
Interface Builder, Resorcerer or PowerPlant Constructor.
AppleGlot 4 User's Guide
Page 37 of 41
Appendix-A Supported languages
Language Language Code
Arabic ar
Belarusian be
Bulgarian bg
Catalan ca
Chinese zh
Chinese-Simplified zh_CN
Chinese-Traditional zh_TW
Croatian hr
Czech cs
Danish da
Dutch nl
English en
English - Australian en_AU
English - British en_GB
English - U.S. en_US
Estonian et
Finnish fi
French fr
French - Canadian fr_CA
French - Swiss fr_CH
Georgian ka
German de
German - Austrian de_AT
German - Swiss de_CH
Greek el
Gujurati gu
Hebrew he
Hindi hi
Hungarian hu
AppleGlot 4 User's Guide
Page 38 of 41
Language Language Code
Icelandic is
Indonesian id
Italian it
Japanese ja
Kazakh kk
Khmer km
Korean ko
Lao lo
Latvian lv
Lithuanian lt
Malay ms
Norwegian no
Persian fa
Polish pl
Portuguese - Brazilian pt_BR
Portuguese - Portuguese pt_PT
Romanian ro
Russian ru
Slovakian sk
Slovenian sl
Spanish es
Swedish sv
Tagalog tl
Thai th
Turkish tr
Ukrainian uk
Urdu ur
Uyghur ur
Uzbek uz
Vietnamese vi
AppleGlot 4 User's Guide
Page 39 of 41
Glossary
AppleGlot environment
The set of folders with the appropriate name that AppleGlot works on.
Application Dictionary
An XML file which contains all of the OldLoc based translated string pairs in the files in
_NewLoc folder. Application Dictionary files are saved in the _ApplicationDictionaries folder in
AppleGlot environment. This file has .ad extension.
Bundle
The structure scheme that Apple recommends for developers to organize Mac OS software.
This allows software to have multiple localized resources, for example.
creator ID
The ID that indicates which application created the file.
Glossary files
In this document, glossary files refers to Application Dictionary (.ad) files, Language Dictionary
(.lg) files, and Work Glossary (.wg) files.
info.plist
The file that should be placed in a bundle to define various attributes of the bundle.
Language Dictionary
Application Dictionary files from the previous AppleGlot projects that could be placed in the
_LanguageGlossary folder of an AppleGlot environment. These files need to have extension .lg
instead of .ad. AppleGlot tries to find the exact match of a new string in the Language
Dictionary file.
Monte
A resource-parsing engine included in AppleGlot. Monte is used to extract localizable data
from Carbon resource files or Classic Mac OS files. Please refer to MonteSDK.pdf which can be
found on AppleGlot installer disk.
Monte Translators
Custom data descriptors for Monte. In order for Monte to extract / insert data from certain
resource types the corresponding Monte translator is required to be placed in the AppleGlot
environment. Please refer to MonteSDK.pdf, which can be found on AppleGlot installer disk.
Nib file
A nib file is a special type of resource file that you use to store the user interfaces of iOS and
Mac OS X applications. A nib file is an Interface Builder document. You use Interface Builder to
design the visual parts of your applicationsuch as windows and viewsand sometimes to
configure nonvisual objects, such as the controller objects that your application uses to
manage its windows and views. Please see the following page for more details about a nib
file.
AppleGlot 4 User's Guide
Page 40 of 41
http://developer.apple.com/library/ios/#documentation/MacOSX/Conceptual/BPInternational/
Articles/LocalizingInterfaces.html#//apple_ref/doc/uid/20002138-BBCBFFDF
ibtool
A utility program to extract / insert localizable data from Cocoa nib files. AppleGlot uses ibtool
to handle Cocoa nib files. ibtool is included in developer packages and is installed to /usr/bin.
Symlinks
Also known as Symbolic links. Symlinks are files that act as pointers to other files.
Unicode
An universal character set defined and maintained by the Unicode Consortium whose goal is
to include characters for all of the worlds written languages. Mac OS X has Unicode as its
internal encoding to develop a true multilingual, internationalized platform.
UTF-16
An encoding method for Unicode character set. The first 65536 Unicode characters are
represented as two bytes, the other ones as four bytes (using surrogate). This is the encoding
method that is often referred to as Unicode. Byte Ordering Mark (BOM) is placed in the
beginning of UTF-16 data to indicate the byte order of a text. The value of BOM in U+FEFF. So,
if the first two bytes of the data was 0xFFFE (not defined in Unicode) that indicates the data
has to be read in reverse endian. UTF-16 encoding is generally used at higher levels of the
Mac OS X system.
UTF-8
An encoding method for Unicode character set. The 7 bit ASCII characters (0x00~0x7f ) are
encoded using 1 byte. All other characters are encoded using multiple bytes up to 6 bytes.
Much of CJK characters are encoded using 3 bytes. This is currently a very popular encoding
method because it has full compatibility with ASCII and XML files are encoded in UTF-8 by
default. AppleGlots glossary files are encoded in UTF-8 by default.
Work Glossary
An XML file which contains all required new strings. Human translators will work on this file to
fill in the translation of the base software in the <trans> tags. Once the translations are
completed, AppleGlot will insert translated strings to files in _NewLoc. Work Glossary files are
saved in the _WorkGlossary folder in AppleGlot environment. This file has .wg extension.
XLIFF
An XML file which contains all of the OldLoc based translated string pairs and all required new
strings. Human translators will work on this file to fill in the translation of the base software in
the <trans-unit> tags. Once the translations are completed, AppleGlot will insert translated
strings to files in _NewLoc. XLIFF files are saved in the _Translations folder in AppleGlot
environment. This file has .xliff extension.
AppleGlot 4 User's Guide
Page 41 of 41

You might also like