Archived:Internationalising images on Symbian C++
m (Protected "I18n: Images" [edit=sysop:move=sysop]) |
|||
| Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
__NOEDITSECTION__ | __NOEDITSECTION__ | ||
| − | + | {{KBCS}} | |
{|style="background:#eceff2" width="660px" border="1" cellpadding="5" cellspacing="0" | {|style="background:#eceff2" width="660px" border="1" cellpadding="5" cellspacing="0" | ||
|- | |- | ||
| − | |'''ID''' || | + | |'''ID''' || CS000858 |
| − | |'''Creation date''' || March | + | |'''Creation date''' || March 25, 2008 |
|- | |- | ||
|'''Platform''' || S60 3rd Edition, MR<br />S60 3rd Edition, FP1<br />S60 3rd Edition, FP2 Beta | |'''Platform''' || S60 3rd Edition, MR<br />S60 3rd Edition, FP1<br />S60 3rd Edition, FP2 Beta | ||
| − | |'''Tested on devices''' || Nokia E61i<br />Nokia E90<br />Nokia N95 8GB<br />Nokia 6220 Classic | + | |'''Tested on devices''' || Nokia E61i<br />Nokia E90 Communicator<br />Nokia N95 8GB<br />Nokia 6220 Classic |
|- | |- | ||
|'''Category''' || Symbian C++ | |'''Category''' || Symbian C++ | ||
| Line 52: | Line 52: | ||
<code cpp> | <code cpp> | ||
| − | // The paths in the following string are different for 3rd & 2nd | + | // The paths in the following string are different for S60 3rd & 2nd Edition platforms |
#ifdef EKA2 | #ifdef EKA2 | ||
#define qtn_loc_bmpfile "%U\\resource\\apps\\Bitmap_01.mbm" | #define qtn_loc_bmpfile "%U\\resource\\apps\\Bitmap_01.mbm" | ||
| Line 63: | Line 63: | ||
<code cpp> | <code cpp> | ||
| − | // The paths in the following string are different for 3rd & 2nd | + | // The paths in the following string are different for S60 3rd & 2nd Edition platforms |
#ifdef EKA2 | #ifdef EKA2 | ||
#define qtn_loc_bmpfile "%U\\resource\\apps\\Bitmap_03.mbm" | #define qtn_loc_bmpfile "%U\\resource\\apps\\Bitmap_03.mbm" | ||
| Line 112: | Line 112: | ||
==See also== | ==See also== | ||
| − | * [[I18n: | + | * [[CS000855 - I18n: Real numbers]] |
| − | * [[I18n: | + | * [[CS000856 - I18n: Currency]] |
| − | * [[I18n: | + | * [[CS000857 - I18n: Timestamps]] |
| − | * [[ | + | * [[CS000807 - Localizing application strings]] |
| − | * [http://www.forum.nokia.com/info/sw.nokia.com/id/1c82873d-183e-4073-afdb-22e09a5dc8c5/S60_Platform_Localization_Example_v1_0_en.zip.html Localization Example | + | * [http://www.forum.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] |
| − | [[Category:Symbian C++]][[Category:Code Examples]][[Category:Localization]] | + | [[Category:Symbian C++]][[Category:Code Examples]][[Category:Localization]][[Category:S60 3rd Edition]] |
Revision as of 12:12, 25 March 2008
| 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.

