Archived:Internationalising images on Symbian C++
hamishwillee
(Talk | contribs) m (moved CS000858 - I18n: Images to Internationalising images on Symbian C++: Merge into wiki.) |
hamishwillee
(Talk | contribs) m (Hamishwillee - Bot update - Move into archived namespace) |
||
| Line 119: | Line 119: | ||
==See also== | ==See also== | ||
| − | * [[Internationalising real numbers in Symbian C++]] | + | * [[Archived:Internationalising real numbers in Symbian C++]] |
| − | * [[Internationalising currencies in Symbian C++]] | + | * [[Archived:Internationalising currencies in Symbian C++]] |
* [[Internationalising timestamps in Symbian C++]] | * [[Internationalising timestamps in Symbian C++]] | ||
* [[Localizing strings on Symbian C++ apps]] | * [[Localizing strings on Symbian C++ apps]] | ||
* [http://www.developer.nokia.com/info/sw.nokia.com/id/1c82873d-183e-4073-afdb-22e09a5dc8c5/S60_Platform_Localization_Example_v1_0_en.zip.html S60 Platform: Localization Example] | * [http://www.developer.nokia.com/info/sw.nokia.com/id/1c82873d-183e-4073-afdb-22e09a5dc8c5/S60_Platform_Localization_Example_v1_0_en.zip.html S60 Platform: Localization Example] | ||
Revision as of 03:23, 20 June 2012
Archived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.
Article Metadata
Tested with
Devices(s): Nokia E61i
Nokia E90 Communicator
Nokia N95 8GB
Nokia 6220 Classic
Nokia E90 Communicator
Nokia N95 8GB
Nokia 6220 Classic
Compatibility
Platform(s): S60 3rd Edition, MR
S60 3rd Edition, FP1
S60 3rd Edition, FP2 Beta
S60 3rd Edition, FP1
S60 3rd Edition, FP2 Beta
Article
Keywords: TParse, StringLoader, CFbsBitmap, TParse::Set(), StringLoader::LoadLC(), CFbsBitmap::Load()
Created: tapiolaitinen
(04 Mar 2008)
Last edited: hamishwillee
(20 Jun 2012)
Contents |
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.

