If you need to localise the UI for your Symbian OS phone to suit your own specific requirements, you can make the necessary
changes to the Symbian OS resource files provided under epoc32\localisation\...
, using your own localisation tool.
The build process, which takes the Symbian OS source code and generates the EPOC release tree, supports the automatic generation
of all localisable files to a single location in the EPOC release tree, epoc32\localisation\...
.
The component .MMP
files are used to define the structure of \epoc32\localisation\...
and .INFO
files for each component are saved in \epoc32\localisation\group\...
. These .INFO
files contain information about the directory locations for the localised binaries in the EPOC release tree, as well as list
the source files and bitmaps for the component with which they are associated.
\epoc32\localisation\...
structure
The following files are involved in creating the structure under \epoc32\localisation\...
:
EPOCRC.PL
This file is called during the build to compile resource files. During the resource compilation process a RSS resource file,
its RLS string file(s) and any included header file(s) are first passed through the C++ pre-processor, using any specified
pre-processor arguments, to create an RPP
file. The RPP
is then passed to a Perl script which writes the rls_string
text into the resource structure. Once the strings and structure have been merged, the RPP
is passed to RCOMP.EXE
to
generate a compiled resource (.RSC
) and the associated header (.RSG
) file. All intermediate (.RPP
) files are stored in a temporary directory. Before deleting those intermediate RPP files, EPOCRC.PL
copies them to \epoc32\localisation\
[component]\rsc\
[component].RPP
and passes information about the components and their source files to LOCKIT_INFO.PM
which in turn uses that information to create .INFO
files.
EPOCAIF.PL
This is used to compile AIF
files. AIFs
are created by converting all the bitmaps to one MBM
file using BMCONV.EXE
. The AIF resource file is then passed through the C++ pre-processor, using any specified arguments, and then to RCOMP.EXE
to generate a compiled resource file (.RSC
). The AIFTOOL
then uses the compiled MBM and RSC to produce an AIF
file. At the end of the AIF generation process, EPOCAIF.PL
reads LOCKIT_INFO.PM
and passes the names of the AIF source to the corresponding .INFO
files. The source files themselves are then copied to \epoc32\localisation\aif\
[component]\acl\...
or \epoc32\localisation\aif\
[component]\abw\...
.
EPOCMBM.PL
This script is used to generate EPOC MBM files. BMCONV.EXE
takes a component's bitmaps (as listed in the component's .MMP
file) and converts them to a single MBM (multi-bitmap) image file. The names of the BMP source files are then read into LOCKIT_INFO.PM
which in turn passes information to the .INFO
files and saves the MBM source files (the BMPs
) to \epoc32\localisation\
[component]\mcl\*.BMP
or \epoc32\localisation\
[component]\mbw\*.BMP
.
The three Perl scripts listed above are called by the MAKMAKE modules CL_GCC.PM
and CL_WIN.PM
.
LOCKIT_INFO.PM
performs the following roles:
Calls emkdir.pl
to create directories based on the arguments passed from .MMP
files.
Copies all source files to the appropriate sub-directories under \epoc32\localisation\...
. All source information will be passed as arguments from the above-mentioned perl modules (epocrc.pl
, epocmbm.pl
, epocaif.pl
).
Creates an .INFO
file for each component under \epoc32\localisation\group\...
, e.g.:
DATADIR: \[component]
\Z\SYSTEM\APPS\[component]\[component].MCL : /c8\[graphic1].bmp /c8\[graphic2].bmp /c8\[graphic3].bmp /c8\[graphic4].bmp
\Z\SYSTEM\APPS\[component]\[component].RSC : [resource_file].RPP [string_file].RLS
\Z\SYSTEM\APPS\[component]\[component].ACL : [AIF_resource_file].STRUCT [AIF_resource_file].TEXT /c8\[AIF_graphic1].BMP /c8\[AIF_graphic2].BMP
The following diagram illustrates the gathering of localisation files as part of the Symbian OS build process:
The following resource files are provided under \epoc32\localisation\...
:
Resource string files
RPP
files are generated from the RPP pre-processed resource source files created when a component (or the whole source tree)
is built. RPP
files are, essentially, expanded structure, header and resource information in one file, but with resource strings still
not merged into the resource structure.
All of the structure is retained in the RPP
file: as all files which are listed for "#include" are expanded out in the RPP
file during the pre-processing stage, the RPP
file has no need for association of header files.
Application Information files
AIFs
represent the application icons which appear in the top-level screen of a device. They are single files which contain the
application icons in various representations and the application name.
Bitmaps
BMP
files can be converted into MBM
(multi-bitmap) graphical file format. This may be useful, for example, when you want to create graphics to be used in your
application.
A Bitmap Convertor tool called BMCONV.EXE
is available, allowing you to convert one or more bitmaps into a single MBM
file.