textinput/ptienginev2/languages/PtiKeymappings_ITUT_51.cpp
branchRCL_3
changeset 11 c8fb4cf7b3ae
equal deleted inserted replaced
9:e6a39382bb9c 11:c8fb4cf7b3ae
       
     1 /*
       
     2 * Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: Keymapping data implementation for 
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 
       
    21 
       
    22 
       
    23 
       
    24 
       
    25 
       
    26 
       
    27 
       
    28 
       
    29 #include <PtiKeyMapData.h>
       
    30 
       
    31 #include <languages.hrh>
       
    32 
       
    33 #include "PtiKeymappings_ITUT_51.h"
       
    34 
       
    35 //
       
    36 // Multitap keymap data table
       
    37 //
       
    38 const TUint16 MultitapData_table_French[] =
       
    39     {
       
    40      0x2e,0x2c,0x3f,0x21,0x31,0x40,0x27,0x2d,0x5f,0x28,0x29,0x3a,0x3b,0x26,0x2f,0x25,0x2a,0x23,0x2b,0x3c,0x3d,0x3e,0x22,0x24,0xa3,0xa7,0xa5,0xa4,0xa1,0xbf,
       
    41      0x61,0x62,0x63,0x32,0xe0,0xe2,0xe6,0xe7,0xe4,0xe1,0xe3,
       
    42      0x64,0x65,0x66,0x33,0xe9,0xe8,0xea,0xeb,
       
    43      0x67,0x68,0x69,0x34,0xef,0xee,0xec,0xed,0x11f,0x131,
       
    44      0x6a,0x6b,0x6c,0x35,
       
    45      0x6d,0x6e,0x6f,0x36,0xf4,0x153,0xf6,0xf1,0xf2,0xf3,0xf8,
       
    46      0x70,0x71,0x72,0x73,0x37,0x24,0xdf,
       
    47      0x74,0x75,0x76,0x38,0xf9,0xfb,0xfc,0xfa,
       
    48      0x77,0x78,0x79,0x7a,0x39,
       
    49      0x20,0x30,0x21b2,
       
    50      0x2e,0x2c,0x3f,0x21,0x31,0x40,0x27,0x2d,0x5f,0x28,0x29,0x3a,0x3b,0x26,0x2f,0x25,0x2a,0x23,0x2b,0x3c,0x3d,0x3e,0x22,0x24,0xa3,0xa7,0xa5,0xa4,0xa1,0xbf,
       
    51      0x41,0x42,0x43,0x32,0xc0,0xc2,0xc6,0xc7,0xc4,0xc1,0xc3,
       
    52      0x44,0x45,0x46,0x33,0xc9,0xc8,0xca,0xcb,
       
    53      0x47,0x48,0x49,0x34,0xcf,0xce,0xcc,0xcd,0x11e,0x130,
       
    54      0x4a,0x4b,0x4c,0x35,
       
    55      0x4d,0x4e,0x4f,0x36,0xd4,0x152,0xd6,0xd1,0xd2,0xd3,0xd8,
       
    56      0x50,0x51,0x52,0x53,0x37,0x24,
       
    57      0x54,0x55,0x56,0x38,0xd9,0xdb,0xdc,0xda,
       
    58      0x57,0x58,0x59,0x5a,0x39,
       
    59      0x20,0x30,0x21b2,
       
    60     };
       
    61 
       
    62 const TInt KMultitapDataSize_French = 193;
       
    63 
       
    64 
       
    65 const TPtiKeyBinding MultitapKeyBindings_table_French[] =
       
    66     {
       
    67         {EPtiKey1, EPtiCaseLower, 0, 30},
       
    68         {EPtiKey2, EPtiCaseLower, 30, 11},
       
    69         {EPtiKey3, EPtiCaseLower, 41, 8},
       
    70         {EPtiKey4, EPtiCaseLower, 49, 10},
       
    71         {EPtiKey5, EPtiCaseLower, 59, 4},
       
    72         {EPtiKey6, EPtiCaseLower, 63, 11},
       
    73         {EPtiKey7, EPtiCaseLower, 74, 7},
       
    74         {EPtiKey8, EPtiCaseLower, 81, 8},
       
    75         {EPtiKey9, EPtiCaseLower, 89, 5},
       
    76         {EPtiKeyStar, EPtiCaseLower, 94, 0},
       
    77         {EPtiKey0, EPtiCaseLower, 94, 3},
       
    78         {EPtiKeyHash, EPtiCaseLower, 97, 0},
       
    79         {EPtiKey1, EPtiCaseUpper, 97, 30},
       
    80         {EPtiKey2, EPtiCaseUpper, 127, 11},
       
    81         {EPtiKey3, EPtiCaseUpper, 138, 8},
       
    82         {EPtiKey4, EPtiCaseUpper, 146, 10},
       
    83         {EPtiKey5, EPtiCaseUpper, 156, 4},
       
    84         {EPtiKey6, EPtiCaseUpper, 160, 11},
       
    85         {EPtiKey7, EPtiCaseUpper, 171, 6},
       
    86         {EPtiKey8, EPtiCaseUpper, 177, 8},
       
    87         {EPtiKey9, EPtiCaseUpper, 185, 5},
       
    88         {EPtiKeyStar, EPtiCaseUpper, 190, 0},
       
    89         {EPtiKey0, EPtiCaseUpper, 190, 3},
       
    90         {EPtiKeyHash, EPtiCaseUpper, 193, 0},
       
    91     };
       
    92 
       
    93 const TInt KMaxMultitapIndex_French = 24;
       
    94 
       
    95 //
       
    96 // StandardQwerty keymap data table
       
    97 //
       
    98 const TUint16 StandardQwertyData_table_French[] =
       
    99     {
       
   100      0x0071,
       
   101      0x0077,
       
   102      0x0065,0x00ea,0x00e8,0x00eb,0x00e9,
       
   103      0x0072,0x0155,
       
   104      0x0074,
       
   105      0x0079,0x00ff,0x00fd,
       
   106      0x0075,0x00fb,0x00f9,0x00fc,0x00fa,
       
   107      0x0069,0x00ee,0x00ec,0x00ef,0x00ed,
       
   108      0x006F,0x00f4,0x00f2,0x00F6,0x00f3,
       
   109      0x0070,
       
   110      0xF001,0x005E,
       
   111      0x0061,0x00E2,0x00E0,0x00E1,
       
   112      0x0073,0x015b,
       
   113      0x0064,
       
   114      0x0066,
       
   115      0x0067,
       
   116      0x0068,
       
   117      0x006A,
       
   118      0x006B,
       
   119      0x006C,0x013a,
       
   120      0xF004,0x00B4,
       
   121      0xF002,0x0060,
       
   122      0x007A,0x017a,
       
   123      0x0078,
       
   124      0x0063,0x0107,
       
   125      0x0076,
       
   126      0x0062,
       
   127      0x006E,0x0144,
       
   128      0x006D,
       
   129      0x002E,
       
   130      0x003F,
       
   131      0x00E7,
       
   132      0xF003,0x00A8,
       
   133      0x0051,
       
   134      0x0057,
       
   135      0x0045,0x00ca,0x00c8,0x00cb,0x00c9,
       
   136      0x0052,0x0154,
       
   137      0x0054,
       
   138      0x0059,0x0178,0x00dd,
       
   139      0x0055,0x00db,0x00d9,0x00dc,0x00da,
       
   140      0x0049,0x00ce,0x00cc,0x00cf,0x00cd,
       
   141      0x004F,0x00d4,0x00d2,0x00D6,0x00d3,
       
   142      0x0050,
       
   143      0xF001,0x005E,
       
   144      0x0041,0x00C2,0x00C0,0x00C1,
       
   145      0x0053,0x015a,
       
   146      0x0044,
       
   147      0x0046,
       
   148      0x0047,
       
   149      0x0048,
       
   150      0x004A,
       
   151      0x004B,
       
   152      0x004C,0x0139,
       
   153      0xF004,0x00B4,
       
   154      0xF002,0x0060,
       
   155      0x005A,0x0179,
       
   156      0x0058,
       
   157      0x0043,0x0106,
       
   158      0x0056,
       
   159      0x0042,
       
   160      0x004E,0x0143,
       
   161      0x004D,
       
   162      0x002C,
       
   163      0x0027,
       
   164      0x00C7,
       
   165      0xF003,0x00A8,
       
   166     };
       
   167 
       
   168 const TInt KStandardQwertyDataSize_French = 128;
       
   169 
       
   170 
       
   171 const TPtiKeyBinding StandardQwertyKeyBindings_table_French[] =
       
   172     {
       
   173         {EPtiKeyQwertyAtCharacter, EPtiCaseLower, 0, 1},
       
   174         {EPtiKeyQwerty1, EPtiCaseLower, 1, 1},
       
   175         {EPtiKeyQwerty2, EPtiCaseLower, 2, 5},
       
   176         {EPtiKeyQwerty3, EPtiCaseLower, 7, 2},
       
   177         {EPtiKeyQwerty4, EPtiCaseLower, 9, 1},
       
   178         {EPtiKeyQwerty5, EPtiCaseLower, 10, 3},
       
   179         {EPtiKeyQwerty6, EPtiCaseLower, 13, 5},
       
   180         {EPtiKeyQwerty7, EPtiCaseLower, 18, 5},
       
   181         {EPtiKeyQwerty8, EPtiCaseLower, 23, 5},
       
   182         {EPtiKeyQwerty9, EPtiCaseLower, 28, 1},
       
   183         {EPtiKeyQwerty0, EPtiCaseLower, 29, 2},
       
   184         {EPtiKeyQwertyPlus, EPtiCaseLower, 31, 4},
       
   185         {EPtiKeyQwertyQ, EPtiCaseLower, 35, 2},
       
   186         {EPtiKeyQwertyW, EPtiCaseLower, 37, 1},
       
   187         {EPtiKeyQwertyE, EPtiCaseLower, 38, 1},
       
   188         {EPtiKeyQwertyR, EPtiCaseLower, 39, 1},
       
   189         {EPtiKeyQwertyT, EPtiCaseLower, 40, 1},
       
   190         {EPtiKeyQwertyY, EPtiCaseLower, 41, 1},
       
   191         {EPtiKeyQwertyU, EPtiCaseLower, 42, 1},
       
   192         {EPtiKeyQwertyI, EPtiCaseLower, 43, 2},
       
   193         {EPtiKeyQwertyO, EPtiCaseLower, 45, 2},
       
   194         {EPtiKeyQwertyP, EPtiCaseLower, 47, 2},
       
   195         {EPtiKeyQwertyMinus, EPtiCaseLower, 49, 0},
       
   196         {EPtiKeyQwertyHash, EPtiCaseLower, 49, 2},
       
   197         {EPtiKeyQwertyA, EPtiCaseLower, 51, 1},
       
   198         {EPtiKeyQwertyS, EPtiCaseLower, 52, 2},
       
   199         {EPtiKeyQwertyD, EPtiCaseLower, 54, 1},
       
   200         {EPtiKeyQwertyF, EPtiCaseLower, 55, 1},
       
   201         {EPtiKeyQwertyG, EPtiCaseLower, 56, 2},
       
   202         {EPtiKeyQwertyH, EPtiCaseLower, 58, 1},
       
   203         {EPtiKeyQwertyJ, EPtiCaseLower, 59, 1},
       
   204         {EPtiKeyQwertyK, EPtiCaseLower, 60, 1},
       
   205         {EPtiKeyQwertyL, EPtiCaseLower, 61, 1},
       
   206         {EPtiKeyQwertySemicolon, EPtiCaseLower, 62, 2},
       
   207         {EPtiKeyQwertyApostrophe, EPtiCaseLower, 64, 0},
       
   208         {0x5b, EPtiCaseLower, 64, 0},
       
   209         {EPtiKeyQwertyZ, EPtiCaseLower, 64, 0},
       
   210         {EPtiKeyQwertyX, EPtiCaseLower, 64, 0},
       
   211         {EPtiKeyQwertyC, EPtiCaseLower, 64, 0},
       
   212         {EPtiKeyQwertyV, EPtiCaseLower, 64, 0},
       
   213         {EPtiKeyQwertyB, EPtiCaseLower, 64, 0},
       
   214         {EPtiKeyQwertyN, EPtiCaseLower, 64, 0},
       
   215         {EPtiKeyQwertyM, EPtiCaseLower, 64, 0},
       
   216         {EPtiKeyQwertyComma, EPtiCaseLower, 64, 0},
       
   217         {EPtiKeyQwertyFullstop, EPtiCaseLower, 64, 0},
       
   218         {EPtiKeyQwertySlash, EPtiCaseLower, 64, 0},
       
   219         {EPtiKeyQwertyAtCharacter, EPtiCaseUpper, 64, 1},
       
   220         {EPtiKeyQwerty1, EPtiCaseUpper, 65, 1},
       
   221         {EPtiKeyQwerty2, EPtiCaseUpper, 66, 5},
       
   222         {EPtiKeyQwerty3, EPtiCaseUpper, 71, 2},
       
   223         {EPtiKeyQwerty4, EPtiCaseUpper, 73, 1},
       
   224         {EPtiKeyQwerty5, EPtiCaseUpper, 74, 3},
       
   225         {EPtiKeyQwerty6, EPtiCaseUpper, 77, 5},
       
   226         {EPtiKeyQwerty7, EPtiCaseUpper, 82, 5},
       
   227         {EPtiKeyQwerty8, EPtiCaseUpper, 87, 5},
       
   228         {EPtiKeyQwerty9, EPtiCaseUpper, 92, 1},
       
   229         {EPtiKeyQwerty0, EPtiCaseUpper, 93, 2},
       
   230         {EPtiKeyQwertyPlus, EPtiCaseUpper, 95, 4},
       
   231         {EPtiKeyQwertyQ, EPtiCaseUpper, 99, 2},
       
   232         {EPtiKeyQwertyW, EPtiCaseUpper, 101, 1},
       
   233         {EPtiKeyQwertyE, EPtiCaseUpper, 102, 1},
       
   234         {EPtiKeyQwertyR, EPtiCaseUpper, 103, 1},
       
   235         {EPtiKeyQwertyT, EPtiCaseUpper, 104, 1},
       
   236         {EPtiKeyQwertyY, EPtiCaseUpper, 105, 1},
       
   237         {EPtiKeyQwertyU, EPtiCaseUpper, 106, 1},
       
   238         {EPtiKeyQwertyI, EPtiCaseUpper, 107, 2},
       
   239         {EPtiKeyQwertyO, EPtiCaseUpper, 109, 2},
       
   240         {EPtiKeyQwertyP, EPtiCaseUpper, 111, 2},
       
   241         {EPtiKeyQwertyMinus, EPtiCaseUpper, 113, 0},
       
   242         {EPtiKeyQwertyHash, EPtiCaseUpper, 113, 2},
       
   243         {EPtiKeyQwertyA, EPtiCaseUpper, 115, 1},
       
   244         {EPtiKeyQwertyS, EPtiCaseUpper, 116, 2},
       
   245         {EPtiKeyQwertyD, EPtiCaseUpper, 118, 1},
       
   246         {EPtiKeyQwertyF, EPtiCaseUpper, 119, 1},
       
   247         {EPtiKeyQwertyG, EPtiCaseUpper, 120, 2},
       
   248         {EPtiKeyQwertyH, EPtiCaseUpper, 122, 1},
       
   249         {EPtiKeyQwertyJ, EPtiCaseUpper, 123, 1},
       
   250         {EPtiKeyQwertyK, EPtiCaseUpper, 124, 1},
       
   251         {EPtiKeyQwertyL, EPtiCaseUpper, 125, 1},
       
   252         {EPtiKeyQwertySemicolon, EPtiCaseUpper, 126, 2},
       
   253         {EPtiKeyQwertyApostrophe, EPtiCaseUpper, 128, 0},
       
   254         {0x5b, EPtiCaseUpper, 128, 0},
       
   255         {EPtiKeyQwertyZ, EPtiCaseUpper, 128, 0},
       
   256         {EPtiKeyQwertyX, EPtiCaseUpper, 128, 0},
       
   257         {EPtiKeyQwertyC, EPtiCaseUpper, 128, 0},
       
   258         {EPtiKeyQwertyV, EPtiCaseUpper, 128, 0},
       
   259         {EPtiKeyQwertyB, EPtiCaseUpper, 128, 0},
       
   260         {EPtiKeyQwertyN, EPtiCaseUpper, 128, 0},
       
   261         {EPtiKeyQwertyM, EPtiCaseUpper, 128, 0},
       
   262         {EPtiKeyQwertyComma, EPtiCaseUpper, 128, 0},
       
   263         {EPtiKeyQwertyFullstop, EPtiCaseUpper, 128, 0},
       
   264         {EPtiKeyQwertySlash, EPtiCaseUpper, 128, 0},
       
   265     };
       
   266 
       
   267 const TInt KMaxStandardQwertyIndex_French = 92;
       
   268 
       
   269 
       
   270 //
       
   271 // Dead key data table for StandardQwerty
       
   272 //
       
   273 const TUint16 StandardQwertyDeadKeyData_table_French[] =
       
   274     {
       
   275     2,  0x00ea,0x00e8,0x00eb,0x00e9,0xf000,
       
   276     3,  0xf000,0xf000,0xf000,0x0155,0xf000,
       
   277     5,  0xf000,0xf000,0x00ff,0x00fd,0xf000,
       
   278     6,  0x00fb,0x00f9,0x00fc,0x00fa,0xf000,
       
   279     7,  0x00ee,0x00ec,0x00ef,0x00ed,0xf000,
       
   280     8,  0x00f4,0x00f2,0x00F6,0x00f3,0xf000,
       
   281     11,  0x00E2,0x00E0,0xF000,0x00E1,0xF000,
       
   282     12,  0xf000,0xf000,0xf000,0x015b,0xf000,
       
   283     19,  0xf000,0xf000,0xf000,0x013a,0xf000,
       
   284     22,  0xf000,0xf000,0xf000,0x017a,0xf000,
       
   285     24,  0xf000,0xf000,0xf000,0x0107,0xf000,
       
   286     27,  0xf000,0xf000,0xf000,0x0144,0xf000,
       
   287     35,  0x00ca,0x00c8,0x00cb,0x00c9,0xf000,
       
   288     36,  0xf000,0xf000,0xf000,0x0154,0xf000,
       
   289     38,  0xf000,0xf000,0x0178,0x00dd,0xf000,
       
   290     39,  0x00db,0x00d9,0x00dc,0x00da,0xf000,
       
   291     40,  0x00ce,0x00cc,0x00cf,0x00cd,0xf000,
       
   292     41,  0x00d4,0x00d2,0x00D6,0x00d3,0xf000,
       
   293     44,  0x00C2,0x00C0,0xF000,0x00C1,0xF000,
       
   294     45,  0xf000,0xf000,0xf000,0x015a,0xf000,
       
   295     52,  0xf000,0xf000,0xf000,0x0139,0xf000,
       
   296     55,  0xf000,0xf000,0xf000,0x0179,0xf000,
       
   297     57,  0xf000,0xf000,0xf000,0x0106,0xf000,
       
   298     60,  0xf000,0xf000,0xf000,0x0143,0xf000,
       
   299     };
       
   300 
       
   301 const TInt KStandardQwertyDeadKeyTableRows_French = 24;
       
   302 
       
   303 //
       
   304 // MiniQwerty keymap data table
       
   305 //
       
   306 const TUint16 MiniQwertyData_table_French[] =
       
   307     {
       
   308      0x0071,
       
   309      0x0077,
       
   310      0x0065,0x00EB,0x00EA,0x00E8,0x00E9,
       
   311      0x0072,
       
   312      0x0074,0x00FE,
       
   313      0x0079,0x00FD,
       
   314      0x0075,0x00F9,0x00FB,0x00FA,0x00FC,
       
   315      0x0069,0x00EF,0x00EE,0x00EC,0x00ED,
       
   316      0x006F,0x0153,0x00F4,0x00F2,0x00F3,0x00F5,0x00F6,0x00F8,
       
   317      0x0070,
       
   318      0x0061,0x00E6,0x00E2,0x00E0,0x00E1,0x00E3,0x00E4,0x00E5,
       
   319      0x0073,0x00DF,
       
   320      0x0064,0x00F0,
       
   321      0x0066,
       
   322      0x0067,0x011F,
       
   323      0x0068,
       
   324      0x006A,
       
   325      0x006B,
       
   326      0x006C,
       
   327      0x007A,
       
   328      0x0078,
       
   329      0x0063,0x00E7,
       
   330      0x0076,
       
   331      0x0062,
       
   332      0x006E,0x00F1,
       
   333      0x006D,
       
   334      0x002C,
       
   335      0x002E,
       
   336      0x0040,
       
   337      0x0026,
       
   338      0x0027,
       
   339      0x003F,
       
   340      0x0051,
       
   341      0x0057,
       
   342      0x0045,0x00CB,0x00CA,0x00C8,0x00C9,
       
   343      0x0052,
       
   344      0x0054,0x00DE,
       
   345      0x0059,0x00DD,
       
   346      0x0055,0x00D9,0x00DB,0x00DA,0x00DC,
       
   347      0x0049,0x00CF,0x00CE,0x00CC,0x00CD,
       
   348      0x004F,0x0152,0x00D4,0x00D2,0x00D3,0x00D5,0x00D6,0x00D8,
       
   349      0x0050,
       
   350      0x0041,0x00C6,0x00C2,0x00C0,0x00C1,0x00C3,0x00C4,0x00C5,
       
   351      0x0053,
       
   352      0x0044,0x00D0,
       
   353      0x0046,
       
   354      0x0047,0x011E,
       
   355      0x0048,
       
   356      0x004A,
       
   357      0x004B,
       
   358      0x004C,
       
   359      0x005A,
       
   360      0x0058,
       
   361      0x0043,0x00C7,
       
   362      0x0056,
       
   363      0x0042,
       
   364      0x004E,0x00D1,
       
   365      0x004D,
       
   366      0x003B,
       
   367      0x003A,
       
   368      0x0021,
       
   369      0x0022,
       
   370      0x0031,
       
   371      0x0031,
       
   372      0x0032,
       
   373      0x0032,
       
   374      0x0033,
       
   375      0x0033,
       
   376      0x002B,
       
   377      0x002F,
       
   378      0x0025,
       
   379      0x0034,
       
   380      0x0034,
       
   381      0x0035,
       
   382      0x0035,
       
   383      0x0036,
       
   384      0x0036,
       
   385      0x002D,
       
   386      0x0028,
       
   387      0x0029,
       
   388      0x0037,
       
   389      0x0037,
       
   390      0x0038,
       
   391      0x0038,
       
   392      0x0039,
       
   393      0x0039,
       
   394      0x003D,
       
   395      0x002A,
       
   396      0x002A,
       
   397      0x0030,
       
   398      0x0030,
       
   399      0x0023,
       
   400      0x0023,
       
   401     };
       
   402 
       
   403 const TInt KMiniQwertyDataSize_French = 158;
       
   404 
       
   405 
       
   406 const TPtiKeyBinding MiniQwertyKeyBindings_table_French[] =
       
   407     {
       
   408         {EPtiKeyQwerty1, EPtiCaseLower, 0, 1},
       
   409         {EPtiKeyQwerty2, EPtiCaseLower, 1, 1},
       
   410         {EPtiKeyQwerty3, EPtiCaseLower, 2, 5},
       
   411         {EPtiKeyQwerty4, EPtiCaseLower, 7, 1},
       
   412         {EPtiKeyQwerty5, EPtiCaseLower, 8, 2},
       
   413         {EPtiKeyQwerty6, EPtiCaseLower, 10, 2},
       
   414         {EPtiKeyQwerty7, EPtiCaseLower, 12, 5},
       
   415         {EPtiKeyQwerty8, EPtiCaseLower, 17, 5},
       
   416         {EPtiKeyQwerty9, EPtiCaseLower, 22, 8},
       
   417         {EPtiKeyQwerty0, EPtiCaseLower, 30, 1},
       
   418         {EPtiKeyQwertyA, EPtiCaseLower, 31, 8},
       
   419         {EPtiKeyQwertyS, EPtiCaseLower, 39, 2},
       
   420         {EPtiKeyQwertyD, EPtiCaseLower, 41, 2},
       
   421         {EPtiKeyQwertyF, EPtiCaseLower, 43, 1},
       
   422         {EPtiKeyQwertyG, EPtiCaseLower, 44, 2},
       
   423         {EPtiKeyQwertyH, EPtiCaseLower, 46, 1},
       
   424         {EPtiKeyQwertyJ, EPtiCaseLower, 47, 1},
       
   425         {EPtiKeyQwertyK, EPtiCaseLower, 48, 1},
       
   426         {EPtiKeyQwertyL, EPtiCaseLower, 49, 1},
       
   427         {EPtiKeyQwertyZ, EPtiCaseLower, 50, 1},
       
   428         {EPtiKeyQwertyX, EPtiCaseLower, 51, 1},
       
   429         {EPtiKeyQwertyC, EPtiCaseLower, 52, 2},
       
   430         {EPtiKeyQwertyV, EPtiCaseLower, 54, 1},
       
   431         {EPtiKeyQwertyB, EPtiCaseLower, 55, 1},
       
   432         {EPtiKeyQwertyN, EPtiCaseLower, 56, 2},
       
   433         {EPtiKeyQwertyM, EPtiCaseLower, 58, 1},
       
   434         {EPtiKeyQwertyComma, EPtiCaseLower, 59, 1},
       
   435         {EPtiKeyQwertyFullstop, EPtiCaseLower, 60, 1},
       
   436         {EPtiKeyQwerty1, EPtiCaseUpper, 65, 1},
       
   437         {EPtiKeyQwerty2, EPtiCaseUpper, 66, 1},
       
   438         {EPtiKeyQwerty3, EPtiCaseUpper, 67, 5},
       
   439         {EPtiKeyQwerty4, EPtiCaseUpper, 72, 1},
       
   440         {EPtiKeyQwerty5, EPtiCaseUpper, 73, 2},
       
   441         {EPtiKeyQwerty6, EPtiCaseUpper, 75, 2},
       
   442         {EPtiKeyQwerty7, EPtiCaseUpper, 77, 5},
       
   443         {EPtiKeyQwerty8, EPtiCaseUpper, 82, 5},
       
   444         {EPtiKeyQwerty9, EPtiCaseUpper, 87, 8},
       
   445         {EPtiKeyQwerty0, EPtiCaseUpper, 95, 1},
       
   446         {EPtiKeyQwertyA, EPtiCaseUpper, 96, 8},
       
   447         {EPtiKeyQwertyS, EPtiCaseUpper, 104, 1},
       
   448         {EPtiKeyQwertyD, EPtiCaseUpper, 105, 2},
       
   449         {EPtiKeyQwertyF, EPtiCaseUpper, 107, 1},
       
   450         {EPtiKeyQwertyG, EPtiCaseUpper, 108, 2},
       
   451         {EPtiKeyQwertyH, EPtiCaseUpper, 110, 1},
       
   452         {EPtiKeyQwertyJ, EPtiCaseUpper, 111, 1},
       
   453         {EPtiKeyQwertyK, EPtiCaseUpper, 112, 1},
       
   454         {EPtiKeyQwertyL, EPtiCaseUpper, 113, 1},
       
   455         {EPtiKeyQwertyZ, EPtiCaseUpper, 114, 1},
       
   456         {EPtiKeyQwertyX, EPtiCaseUpper, 115, 1},
       
   457         {EPtiKeyQwertyC, EPtiCaseUpper, 116, 2},
       
   458         {EPtiKeyQwertyV, EPtiCaseUpper, 118, 1},
       
   459         {EPtiKeyQwertyB, EPtiCaseUpper, 119, 1},
       
   460         {EPtiKeyQwertyN, EPtiCaseUpper, 120, 2},
       
   461         {EPtiKeyQwertyM, EPtiCaseUpper, 122, 1},
       
   462         {EPtiKeyQwertyComma, EPtiCaseUpper, 123, 1},
       
   463         {EPtiKeyQwertyFullstop, EPtiCaseUpper, 124, 1},
       
   464         {EPtiKeyQwerty1, EPtiCaseFnLower, 125, 1},
       
   465         {EPtiKeyQwerty2, EPtiCaseFnLower, 126, 1},
       
   466         {EPtiKeyQwerty3, EPtiCaseFnLower, 127, 1},
       
   467         {EPtiKeyQwerty4, EPtiCaseFnLower, 128, 1},
       
   468         {EPtiKeyQwerty5, EPtiCaseFnLower, 129, 1},
       
   469         {EPtiKeyQwerty6, EPtiCaseFnLower, 130, 1},
       
   470         {EPtiKeyQwerty7, EPtiCaseFnLower, 131, 1},
       
   471         {EPtiKeyQwerty8, EPtiCaseFnLower, 132, 1},
       
   472         {EPtiKeyQwerty9, EPtiCaseFnLower, 133, 1},
       
   473         {EPtiKeyQwertyA, EPtiCaseFnLower, 134, 1},
       
   474         {EPtiKeyQwertyS, EPtiCaseFnLower, 135, 1},
       
   475         {EPtiKeyQwertyD, EPtiCaseFnLower, 136, 1},
       
   476         {EPtiKeyQwertyF, EPtiCaseFnLower, 137, 1},
       
   477         {EPtiKeyQwertyG, EPtiCaseFnLower, 138, 1},
       
   478         {EPtiKeyQwertyH, EPtiCaseFnLower, 139, 1},
       
   479         {EPtiKeyQwertyJ, EPtiCaseFnLower, 140, 1},
       
   480         {EPtiKeyQwertyK, EPtiCaseFnLower, 141, 1},
       
   481         {EPtiKeyQwertyL, EPtiCaseFnLower, 142, 1},
       
   482         {EPtiKeyQwertyZ, EPtiCaseFnLower, 143, 1},
       
   483         {EPtiKeyQwertyX, EPtiCaseFnLower, 144, 1},
       
   484         {EPtiKeyQwertyC, EPtiCaseFnLower, 145, 1},
       
   485         {EPtiKeyQwertyV, EPtiCaseFnLower, 146, 1},
       
   486         {EPtiKeyQwertyB, EPtiCaseFnLower, 147, 1},
       
   487         {EPtiKeyQwertyN, EPtiCaseFnLower, 148, 1},
       
   488         {EPtiKeyQwertyM, EPtiCaseFnLower, 149, 1},
       
   489         {EPtiKeyQwertyComma, EPtiCaseFnLower, 150, 1},
       
   490         {EPtiKeyQwertyFullstop, EPtiCaseFnLower, 151, 1},
       
   491     };
       
   492 
       
   493 const TInt KMaxMiniQwertyIndex_French = 83;
       
   494 
       
   495 //
       
   496 // MiniQwerty3x11 keymap data table
       
   497 //
       
   498 const TUint16 MiniQwerty3x11Data_table_French[] =
       
   499     {
       
   500      0x0061,0x00E6,0x00E2,0x00E0,0x00E1,0x00E3,0x00E4,0x00E5,
       
   501      0x007A,
       
   502      0x0065,0x00EB,0x00EA,0x00E8,0x00E9,
       
   503      0x0072,
       
   504      0x0074,0x00FE,
       
   505      0x0079,0x00FD,
       
   506      0x0075,0x00F9,0x00FB,0x00FA,0x00FC,
       
   507      0x0069,0x00EF,0x00EE,0x00EC,0x00ED,
       
   508      0x006F,0x0153,0x00F4,0x00F2,0x00F3,0x00F5,0x00F6,0x00F8,
       
   509      0x0070,
       
   510      0x0071,
       
   511      0x0073,0x00DF,
       
   512      0x0064,0x00F0,
       
   513      0x0066,
       
   514      0x0067,0x011F,
       
   515      0x0068,
       
   516      0x006A,
       
   517      0x006B,
       
   518      0x006C,
       
   519      0x006D,
       
   520      0x0077,
       
   521      0x0078,
       
   522      0x0063,0x00E7,
       
   523      0x0076,
       
   524      0x0062,
       
   525      0x006E,0x00F1,
       
   526      0x002C,
       
   527      0x0041,0x00C6,0x00C2,0x00C0,0x00C1,0x00C3,0x00C4,0x00C5,
       
   528      0x005A,
       
   529      0x0045,0x00CB,0x00CA,0x00C8,0x00C9,
       
   530      0x0052,
       
   531      0x0054,0x00DE,
       
   532      0x0059,0x00DD,
       
   533      0x0055,0x00D9,0x00DB,0x00DA,0x00DC,
       
   534      0x0049,0x00CF,0x00CE,0x00CC,0x00CD,
       
   535      0x004F,0x0152,0x00D4,0x00D2,0x00D3,0x00D5,0x00D6,0x00D8,
       
   536      0x0050,
       
   537      0x0051,
       
   538      0x0053,
       
   539      0x0044,0x00D0,
       
   540      0x0046,
       
   541      0x0047,0x011E,
       
   542      0x0048,
       
   543      0x004A,
       
   544      0x004B,
       
   545      0x004C,
       
   546      0x004D,
       
   547      0x0057,
       
   548      0x0058,
       
   549      0x0043,0x00C7,
       
   550      0x0056,
       
   551      0x0042,
       
   552      0x004E,0x00D1,
       
   553      0x002E,
       
   554      0x0031,
       
   555      0x0032,
       
   556      0x0033,
       
   557      0x0034,
       
   558      0x0035,
       
   559      0x0036,
       
   560      0x0037,
       
   561      0x0038,
       
   562      0x0039,
       
   563      0x0030,
       
   564      0x00E9,
       
   565      0x00EA,
       
   566      0x00E8,
       
   567      0x002B,
       
   568      0x002A,
       
   569      0x0023,
       
   570      0x002D,
       
   571      0x003D,
       
   572      0x0040,
       
   573      0x002F,
       
   574      0x00E7,
       
   575      0x00E0,
       
   576      0x0021,
       
   577      0x003F,
       
   578      0x003B,
       
   579      0x003A,
       
   580      0x0027,
       
   581      0x00C9,
       
   582      0x00CA,
       
   583      0x00C8,
       
   584      0x00C7,
       
   585      0x00C0,
       
   586     };
       
   587 
       
   588 const TInt KMiniQwerty3x11DataSize_French = 151;
       
   589 
       
   590 
       
   591 const TPtiKeyBinding MiniQwerty3x11KeyBindings_table_French[] =
       
   592     {
       
   593         {EPtiKeyQwertyQ, EPtiCaseLower, 0, 8},
       
   594         {EPtiKeyQwertyW, EPtiCaseLower, 8, 1},
       
   595         {EPtiKeyQwertyE, EPtiCaseLower, 9, 5},
       
   596         {EPtiKeyQwertyR, EPtiCaseLower, 14, 1},
       
   597         {EPtiKeyQwertyT, EPtiCaseLower, 15, 2},
       
   598         {EPtiKeyQwertyY, EPtiCaseLower, 17, 2},
       
   599         {EPtiKeyQwertyU, EPtiCaseLower, 19, 5},
       
   600         {EPtiKeyQwertyI, EPtiCaseLower, 24, 5},
       
   601         {EPtiKeyQwertyO, EPtiCaseLower, 29, 8},
       
   602         {EPtiKeyQwertyP, EPtiCaseLower, 37, 1},
       
   603         {EPtiKeyQwertyA, EPtiCaseLower, 38, 1},
       
   604         {EPtiKeyQwertyS, EPtiCaseLower, 39, 2},
       
   605         {EPtiKeyQwertyD, EPtiCaseLower, 41, 2},
       
   606         {EPtiKeyQwertyF, EPtiCaseLower, 43, 1},
       
   607         {EPtiKeyQwertyG, EPtiCaseLower, 44, 2},
       
   608         {EPtiKeyQwertyH, EPtiCaseLower, 46, 1},
       
   609         {EPtiKeyQwertyJ, EPtiCaseLower, 47, 1},
       
   610         {EPtiKeyQwertyK, EPtiCaseLower, 48, 1},
       
   611         {EPtiKeyQwertyL, EPtiCaseLower, 49, 1},
       
   612         {EPtiKeyQwertyComma, EPtiCaseLower, 50, 1},
       
   613         {EPtiKeyQwertyZ, EPtiCaseLower, 51, 1},
       
   614         {EPtiKeyQwertyX, EPtiCaseLower, 52, 1},
       
   615         {EPtiKeyQwertyC, EPtiCaseLower, 53, 2},
       
   616         {EPtiKeyQwertyV, EPtiCaseLower, 55, 1},
       
   617         {EPtiKeyQwertyB, EPtiCaseLower, 56, 1},
       
   618         {EPtiKeyQwertyN, EPtiCaseLower, 57, 2},
       
   619         {EPtiKeyQwertyM, EPtiCaseLower, 59, 1},
       
   620         {EStdKeySpace, EPtiCaseLower, 60, 0},
       
   621         {EPtiKeyQwertyQ, EPtiCaseUpper, 60, 8},
       
   622         {EPtiKeyQwertyW, EPtiCaseUpper, 68, 1},
       
   623         {EPtiKeyQwertyE, EPtiCaseUpper, 69, 5},
       
   624         {EPtiKeyQwertyR, EPtiCaseUpper, 74, 1},
       
   625         {EPtiKeyQwertyT, EPtiCaseUpper, 75, 2},
       
   626         {EPtiKeyQwertyY, EPtiCaseUpper, 77, 2},
       
   627         {EPtiKeyQwertyU, EPtiCaseUpper, 79, 5},
       
   628         {EPtiKeyQwertyI, EPtiCaseUpper, 84, 5},
       
   629         {EPtiKeyQwertyO, EPtiCaseUpper, 89, 8},
       
   630         {EPtiKeyQwertyP, EPtiCaseUpper, 97, 1},
       
   631         {EPtiKeyQwertyA, EPtiCaseUpper, 98, 1},
       
   632         {EPtiKeyQwertyS, EPtiCaseUpper, 99, 1},
       
   633         {EPtiKeyQwertyD, EPtiCaseUpper, 100, 2},
       
   634         {EPtiKeyQwertyF, EPtiCaseUpper, 102, 1},
       
   635         {EPtiKeyQwertyG, EPtiCaseUpper, 103, 2},
       
   636         {EPtiKeyQwertyH, EPtiCaseUpper, 105, 1},
       
   637         {EPtiKeyQwertyJ, EPtiCaseUpper, 106, 1},
       
   638         {EPtiKeyQwertyK, EPtiCaseUpper, 107, 1},
       
   639         {EPtiKeyQwertyL, EPtiCaseUpper, 108, 1},
       
   640         {EPtiKeyQwertyComma, EPtiCaseUpper, 109, 1},
       
   641         {EPtiKeyQwertyZ, EPtiCaseUpper, 110, 1},
       
   642         {EPtiKeyQwertyX, EPtiCaseUpper, 111, 1},
       
   643         {EPtiKeyQwertyC, EPtiCaseUpper, 112, 2},
       
   644         {EPtiKeyQwertyV, EPtiCaseUpper, 114, 1},
       
   645         {EPtiKeyQwertyB, EPtiCaseUpper, 115, 1},
       
   646         {EPtiKeyQwertyN, EPtiCaseUpper, 116, 2},
       
   647         {EPtiKeyQwertyM, EPtiCaseUpper, 118, 1},
       
   648         {EStdKeySpace, EPtiCaseUpper, 119, 0},
       
   649         {EPtiKeyQwertyQ, EPtiCaseFnLower, 119, 1},
       
   650         {EPtiKeyQwertyW, EPtiCaseFnLower, 120, 1},
       
   651         {EPtiKeyQwertyE, EPtiCaseFnLower, 121, 1},
       
   652         {EPtiKeyQwertyR, EPtiCaseFnLower, 122, 1},
       
   653         {EPtiKeyQwertyT, EPtiCaseFnLower, 123, 1},
       
   654         {EPtiKeyQwertyY, EPtiCaseFnLower, 124, 1},
       
   655         {EPtiKeyQwertyU, EPtiCaseFnLower, 125, 1},
       
   656         {EPtiKeyQwertyI, EPtiCaseFnLower, 126, 1},
       
   657         {EPtiKeyQwertyO, EPtiCaseFnLower, 127, 1},
       
   658         {EPtiKeyQwertyP, EPtiCaseFnLower, 128, 1},
       
   659         {EPtiKeyQwertyA, EPtiCaseFnLower, 129, 1},
       
   660         {EPtiKeyQwertyS, EPtiCaseFnLower, 130, 1},
       
   661         {EPtiKeyQwertyD, EPtiCaseFnLower, 131, 1},
       
   662         {EPtiKeyQwertyF, EPtiCaseFnLower, 132, 1},
       
   663         {EPtiKeyQwertyG, EPtiCaseFnLower, 133, 1},
       
   664         {EPtiKeyQwertyH, EPtiCaseFnLower, 134, 1},
       
   665         {EPtiKeyQwertyJ, EPtiCaseFnLower, 135, 1},
       
   666         {EPtiKeyQwertyK, EPtiCaseFnLower, 136, 1},
       
   667         {EPtiKeyQwertyL, EPtiCaseFnLower, 137, 1},
       
   668         {EPtiKeyQwertyComma, EPtiCaseFnLower, 138, 1},
       
   669         {EPtiKeyQwertyZ, EPtiCaseFnLower, 139, 1},
       
   670         {EPtiKeyQwertyX, EPtiCaseFnLower, 140, 1},
       
   671         {EPtiKeyQwertyC, EPtiCaseFnLower, 141, 1},
       
   672         {EPtiKeyQwertyV, EPtiCaseFnLower, 142, 1},
       
   673         {EPtiKeyQwertyB, EPtiCaseFnLower, 143, 1},
       
   674         {EPtiKeyQwertyN, EPtiCaseFnLower, 144, 1},
       
   675         {EPtiKeyQwertyM, EPtiCaseFnLower, 145, 1},
       
   676         {EPtiKeyQwertyA, EPtiCaseFnUpper, 146, 1},
       
   677         {EPtiKeyQwertyS, EPtiCaseFnUpper, 147, 1},
       
   678         {EPtiKeyQwertyD, EPtiCaseFnUpper, 148, 1},
       
   679         {EPtiKeyQwertyZ, EPtiCaseFnUpper, 149, 1},
       
   680         {EPtiKeyQwertyX, EPtiCaseFnUpper, 150, 1},
       
   681     };
       
   682 
       
   683 const TInt KMaxMiniQwerty3x11Index_French = 88;
       
   684 
       
   685 //
       
   686 // Class implementation.
       
   687 //
       
   688 
       
   689 CPtiLangDataImplFrench* CPtiLangDataImplFrench::NewL()
       
   690     {
       
   691     return new (ELeave) CPtiLangDataImplFrench();
       
   692     }
       
   693 
       
   694 
       
   695 TInt CPtiLangDataImplFrench::LanguageCode() const
       
   696     {
       
   697     return ELangFrench;
       
   698     }
       
   699 
       
   700 
       
   701 const TUint16* CPtiLangDataImplFrench::KeyData(TPtiKeyboardType aKeyboardType, TInt& aDataSize) const
       
   702     {
       
   703     if (aKeyboardType == EPtiKeyboard12Key)
       
   704         {
       
   705         aDataSize = KMultitapDataSize_French;
       
   706         return MultitapData_table_French;
       
   707         }
       
   708     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   709         {
       
   710         aDataSize = KStandardQwertyDataSize_French;
       
   711         return StandardQwertyData_table_French;
       
   712         }
       
   713 
       
   714     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
   715         {
       
   716         aDataSize = KMiniQwertyDataSize_French;
       
   717         return MiniQwertyData_table_French;
       
   718         }
       
   719 
       
   720     if (aKeyboardType == EPtiKeyboardQwerty3x11)
       
   721         {
       
   722         aDataSize = KMiniQwerty3x11DataSize_French;
       
   723         return MiniQwerty3x11Data_table_French;
       
   724         }
       
   725 
       
   726     aDataSize = 0;
       
   727     return NULL;
       
   728     }
       
   729 
       
   730 
       
   731 const TPtiKeyBinding* CPtiLangDataImplFrench::KeyBindingTable(TPtiKeyboardType aKeyboardType, TInt& aNumItems) const
       
   732     {
       
   733     if (aKeyboardType == EPtiKeyboard12Key)
       
   734         {
       
   735         aNumItems = KMaxMultitapIndex_French;
       
   736         return MultitapKeyBindings_table_French;
       
   737         }
       
   738     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   739         {
       
   740         aNumItems = KMaxStandardQwertyIndex_French;
       
   741         return StandardQwertyKeyBindings_table_French;
       
   742         }
       
   743     if (aKeyboardType == EPtiKeyboardQwerty4x10)
       
   744         {
       
   745         aNumItems = KMaxMiniQwertyIndex_French;
       
   746         return MiniQwertyKeyBindings_table_French;
       
   747         }
       
   748     if (aKeyboardType == EPtiKeyboardQwerty3x11)
       
   749         {
       
   750         aNumItems = KMaxMiniQwerty3x11Index_French;
       
   751         return MiniQwerty3x11KeyBindings_table_French;
       
   752         }
       
   753 
       
   754     aNumItems = 0;
       
   755     return NULL;
       
   756     }
       
   757 
       
   758 
       
   759 const TUint16* CPtiLangDataImplFrench::DeadKeyDataArray(TPtiKeyboardType aKeyboardType, TInt& aNumRowsInArray) const
       
   760     {
       
   761     if (aKeyboardType == EPtiKeyboardQwerty4x12)
       
   762         {
       
   763         aNumRowsInArray = KStandardQwertyDeadKeyTableRows_French;
       
   764         return StandardQwertyDeadKeyData_table_French;
       
   765         }
       
   766 
       
   767     aNumRowsInArray = 0;
       
   768     return NULL;
       
   769     }
       
   770 
       
   771