×
Namespaces

Variants
Actions
(Difference between revisions)

Archived:Internationalising images on Symbian C++

From Nokia Developer Wiki
Jump to: navigation, search
debjit.roy (Talk | contribs)
(Debjit.roy -)
hamishwillee (Talk | contribs)
m (Hamishwillee - Bot update - Fix metadata etc)
Line 1: Line 1:
[[Category:Symbian C++]][[Category:Code Examples]][[Category:Localization]][[Category:S60 3rd Edition]][[Category:Code Snippet]]
+
{{Archived|timestamp=20120314041414|user=roy.debjit| }}
__NOTOC__
+
[[Category:Symbian C++]][[Category:Code Snippet]][[Category:Localization]][[Category:S60 3rd Edition (initial release)]][[Category:Code Snippet]]
__NOEDITSECTION__
+
{{ArticleMetaData <!-- v1.2 -->
{{KBCS}}
+
{{ArticleMetaData
+
|id=CS000858
+
|platform=S60 3rd Edition, MR<br />S60 3rd Edition, FP1<br />S60 3rd Edition, FP2 Beta
+
|devices=Nokia E61i<br/>Nokia E90 Communicator<br/>Nokia N95 8GB<br/>Nokia 6220 Classic
+
|category=Symbian C++
+
|subcategory=Localization
+
|creationdate=March 25, 2008
+
|keywords=TParse, StringLoader, CFbsBitmap, TParse::Set(), StringLoader::LoadLC(), CFbsBitmap::Load()
+
 
+
 
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) -->
 
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) -->
 
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
 
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
|sdk=<!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
+
|devices= Nokia E61i<br/>Nokia E90 Communicator<br/>Nokia N95 8GB<br/>Nokia 6220 Classic
|devicecompatability=<!-- Compatible devices (e.g.: All* (must have GPS) ) -->
+
|sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
|signing=<!-- Empty or one of Self-Signed, DevCert, Manufacturer -->
+
|platform= S60 3rd Edition, MR<br />S60 3rd Edition, FP1<br />S60 3rd Edition, FP2 Beta
|capabilities=<!-- Capabilities required (e.g. Location, NetworkServices. -->)
+
|devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) -->
|author=[[User:Tapiolaitinen]]
+
|dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 -->
 +
|signing= <!-- Empty or one of Self-Signed, DevCert, Manufacturer -->
 +
|capabilities= <!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. -->
 +
|keywords= TParse, StringLoader, CFbsBitmap, TParse::Set(), StringLoader::LoadLC(), CFbsBitmap::Load()
 +
|language= <!-- Language category code for non-English topics - e.g. Lang-Chinese -->
 +
|translated-by= <!-- [[User:XXXX]] -->
 +
|translated-from-title= <!-- Title only -->
 +
|translated-from-id= <!-- Id of translated revision -->
 +
|review-by= <!-- After re-review: [[User:username]] -->
 +
|review-timestamp= <!-- After re-review: YYYYMMDD -->
 +
|update-by= <!-- After significant update: [[User:username]]-->
 +
|update-timestamp= <!-- After significant update: YYYYMMDD -->
 +
|creationdate= 20080304
 +
|author= [[User:Tapiolaitinen]]
 +
<!-- The following are not in current metadata -->
 +
|subcategory= Localization
 +
|id= CS000858
 
}}
 
}}
  
{{Archived|timestamp=20120314041414|user=roy.debjit| }}
 
 
==Overview==
 
==Overview==
  
Line 36: Line 41:
 
==Resource files==
 
==Resource files==
  
<tt>data\[app].rls</tt>:
+
{{Icode|data\[app].rls}}:
  
 
<code cpp>
 
<code cpp>
Line 51: Line 56:
 
</code>
 
</code>
  
Declare the location of the "English" bitmap into <tt>data\[app].l01</tt>:
+
Declare the location of the "English" bitmap into {{Icode|data\[app].l01}}:
  
 
<code cpp>
 
<code cpp>
Line 62: Line 67:
 
</code>
 
</code>
  
Declare the location of the "German" bitmap into <tt>data\[app].l03</tt>:
+
Declare the location of the "German" bitmap into {{Icode|data\[app].l03}}:
  
 
<code cpp>
 
<code cpp>
Line 73: Line 78:
 
</code>
 
</code>
  
In the resource file of the application (<tt>data\[app].rss</tt>), create a bitmap resource from the localized string:
+
In the resource file of the application ({{Icode|data\[app].rss}}), create a bitmap resource from the localized string:
  
 
<code cpp>
 
<code cpp>
Line 114: Line 119:
 
==See also==
 
==See also==
  
* [[CS000855 - I18n: Real numbers]]
+
* [[Internationalising real numbers in Symbian C++]]
* [[CS000856 - I18n: Currency]]
+
* [[Internationalising currencies in Symbian C++]]
* [[CS000857 - I18n: Timestamps]]
+
* [[Internationalising timestamps in Symbian C++]]
* [[CS000807 - Localizing application strings]]
+
* [[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 08:18, 17 April 2012

Archived.pngArchived: 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
Compatibility
Platform(s): S60 3rd Edition, MR
S60 3rd Edition, FP1
S60 3rd Edition, FP2 Beta
S60 3rd Edition (initial release)
Article
Keywords: TParse, StringLoader, CFbsBitmap, TParse::Set(), StringLoader::LoadLC(), CFbsBitmap::Load()
Created: tapiolaitinen (04 Mar 2008)
Last edited: hamishwillee (17 Apr 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.

See also

84 page views in the last 30 days.
×