×
Namespaces

Variants
Actions
Revision as of 12:13, 25 March 2008 by Forum Nokia KB (Talk | contribs)

Archived:Internationalising images on Symbian C++

From Nokia Developer Wiki
Jump to: navigation, search


Template:KBCS

ID CS000858 Creation date March 25, 2008
Platform S60 3rd Edition, MR
S60 3rd Edition, FP1
S60 3rd Edition, FP2 Beta
Tested on devices Nokia E61i
Nokia E90 Communicator
Nokia N95 8GB
Nokia 6220 Classic
Category Symbian C++ Subcategory Localization
APIs None Classes TParse
StringLoader
CFbsBitmap
Methods TParse::Set()
StringLoader::LoadLC()
CFbsBitmap::Load()
   

Overview

This code snippet is one of the series of snippets that demonstrate how to implement support for international diversity. This snippet shows how to select a bitmap according to the locale settings of the device.

MMP file

The following libraries are required:

LIBRARY fbscli.lib

Resource files

data\[app].rls:

#ifndef __APP_LOC__
#define __APP_LOC__
 
#ifdef LANGUAGE_01 // Language code for UK
#include "..\data\app.l01"
#elif defined LANGUAGE_03 // Language code for German
#include "..\data\app.l03"
#endif
 
#endif // __APP_LOC__

Declare the location of the "English" bitmap into data\[app].l01:

// The paths in the following string are different for S60 3rd & 2nd Edition platforms
#ifdef EKA2
#define qtn_loc_bmpfile "%U\\resource\\apps\\Bitmap_01.mbm"
#else
#define qtn_loc_bmpfile "%U\\system\\apps\\Localization\\Bitmap_01.mbm"
#endif

Declare the location of the "German" bitmap into data\[app].l03:

// The paths in the following string are different for S60 3rd & 2nd Edition platforms
#ifdef EKA2
#define qtn_loc_bmpfile "%U\\resource\\apps\\Bitmap_03.mbm"
#else
#define qtn_loc_bmpfile "%U\\system\\apps\\Localization\\Bitmap_03.mbm"
#endif

In the resource file of the application (data\[app].rss), create a bitmap resource from the localized string:

RESOURCE TBUF256 r_loc_bmpfile { buf=qtn_loc_bmpfile; }

Source file

#include <stringloader.h>
// Find the drive where the application has been installed
TParse parse;
parse.Set(Application()->AppFullName(), 0, 0);
 
// Load the name of the bitmap from the resource file
HBufC* bmpFile = StringLoader::LoadLC(R_LOC_BMPFILE, parse.Drive());
 
// Create and load the bitmap
CFbsBitmap* bitmap = new (ELeave)CFbsBitmap;
CleanupStack::PushL(bitmap);
 
// Load the first bitmap (index 0) from a multi-bitmap file
User::LeaveIfError(bitmap->Load(*bmpFile, 0));
 
CleanupStack::Pop(bitmap);
 
// Draw the bitmap onto the screen
// ...
 
CleanupStack::PopAndDestroy(bmpFile);

Postconditions

A bitmap is selected according to the locale settings of the device.

See also

121 page views in the last 30 days.
×