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