fep/aknfep/src/AknFepZhuyinAnalyserDb.cpp
changeset 0 eb1f2e154e89
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/aknfep/src/AknFepZhuyinAnalyserDb.cpp	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,1067 @@
+/*
+* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:            Implementation of the vkb data manager
+*
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+#include "AknFepZhuyinAnalyserDb.h"
+// constant define 
+
+// Zhuyin DB data
+const TUint16 KZhuyinBase = 0x3105;
+const TInt16  KZhuyinElementCount = 37;
+const TUint16 KZhuyinSpellsLength[] = 
+    {
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x3, 
+    0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 
+    0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x2, 0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 
+    0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 
+    0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 0x2, 0x3, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 
+    0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x2, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 
+    0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 
+    0x2, 0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 
+    0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 
+    0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 
+    0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x1, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x1, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 
+    0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x3, 0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x2, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x3, 
+    0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 
+    0x3, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 
+    0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 
+    0x1, 0x1, 0x1, 0x1, 0x1, 0x2, 0x2, 0x2, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x1, 0x2, 0x2, 
+    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x1, 0x2, 0x2, 
+    0x2, 0x2
+    };
+const TUint16 KZhuyinSpellsLib[] =
+    {
+    0x3105, 0x311a, 
+    0x3105, 0x311b, 
+    0x3105, 0x311e, 
+    0x3105, 0x311f, 
+    0x3105, 0x3120, 
+    0x3105, 0x3122, 
+    0x3105, 0x3123, 
+    0x3105, 0x3124, 
+    0x3105, 0x3125, 
+    0x3105, 0x3127, 
+    0x3105, 0x3127, 0x311d, 
+    0x3105, 0x3127, 0x3120, 
+    0x3105, 0x3127, 0x3122, 
+    0x3105, 0x3127, 0x3123, 
+    0x3105, 0x3127, 0x3125, 
+    0x3105, 0x3128, 
+    0x3106, 0x311a, 
+    0x3106, 0x311b, 
+    0x3106, 0x311e, 
+    0x3106, 0x311f, 
+    0x3106, 0x3120, 
+    0x3106, 0x3121, 
+    0x3106, 0x3122, 
+    0x3106, 0x3123, 
+    0x3106, 0x3124, 
+    0x3106, 0x3125, 
+    0x3106, 0x3127, 
+    0x3106, 0x3127, 0x311d, 
+    0x3106, 0x3127, 0x3120, 
+    0x3106, 0x3127, 0x3122, 
+    0x3106, 0x3127, 0x3123, 
+    0x3106, 0x3127, 0x3125, 
+    0x3106, 0x3128, 
+    0x3107, 0x311a, 
+    0x3107, 0x311b, 
+    0x3107, 0x311c, 
+    0x3107, 0x311e, 
+    0x3107, 0x311f, 
+    0x3107, 0x3120, 
+    0x3107, 0x3121, 
+    0x3107, 0x3122, 
+    0x3107, 0x3123, 
+    0x3107, 0x3124, 
+    0x3107, 0x3125, 
+    0x3107, 0x3127, 
+    0x3107, 0x3127, 0x311d, 
+    0x3107, 0x3127, 0x3120, 
+    0x3107, 0x3127, 0x3121, 
+    0x3107, 0x3127, 0x3122, 
+    0x3107, 0x3127, 0x3123, 
+    0x3107, 0x3127, 0x3125, 
+    0x3107, 0x3128, 
+    0x3108, 0x311a, 
+    0x3108, 0x311b, 
+    0x3108, 0x311f, 
+    0x3108, 0x3121, 
+    0x3108, 0x3122, 
+    0x3108, 0x3123, 
+    0x3108, 0x3124, 
+    0x3108, 0x3125, 
+    0x3108, 0x3128, 
+    0x3109, 0x311a, 
+    0x3109, 0x311c, 
+    0x3109, 0x311e, 
+    0x3109, 0x311f, 
+    0x3109, 0x3120, 
+    0x3109, 0x3121, 
+    0x3109, 0x3122, 
+    0x3109, 0x3124, 
+    0x3109, 0x3125, 
+    0x3109, 0x3127, 
+    0x3109, 0x3127, 0x311d, 
+    0x3109, 0x3127, 0x3120, 
+    0x3109, 0x3127, 0x3121, 
+    0x3109, 0x3127, 0x3122, 
+    0x3109, 0x3127, 0x3125, 
+    0x3109, 0x3128, 
+    0x3109, 0x3128, 0x311b, 
+    0x3109, 0x3128, 0x311f, 
+    0x3109, 0x3128, 0x3122, 
+    0x3109, 0x3128, 0x3123, 
+    0x3109, 0x3128, 0x3125, 
+    0x310a, 0x311a, 
+    0x310a, 0x311c, 
+    0x310a, 0x311e, 
+    0x310a, 0x3120, 
+    0x310a, 0x3121, 
+    0x310a, 0x3122, 
+    0x310a, 0x3124, 
+    0x310a, 0x3125, 
+    0x310a, 0x3127, 
+    0x310a, 0x3127, 0x311d, 
+    0x310a, 0x3127, 0x3120, 
+    0x310a, 0x3127, 0x3122, 
+    0x310a, 0x3127, 0x3125, 
+    0x310a, 0x3128, 
+    0x310a, 0x3128, 0x311b, 
+    0x310a, 0x3128, 0x311f, 
+    0x310a, 0x3128, 0x3122, 
+    0x310a, 0x3128, 0x3123, 
+    0x310a, 0x3128, 0x3125, 
+    0x310b, 0x311a, 
+    0x310b, 0x311c, 
+    0x310b, 0x311e, 
+    0x310b, 0x311f, 
+    0x310b, 0x3120, 
+    0x310b, 0x3121, 
+    0x310b, 0x3122, 
+    0x310b, 0x3123, 
+    0x310b, 0x3124, 
+    0x310b, 0x3125, 
+    0x310b, 0x3127, 
+    0x310b, 0x3127, 0x311d, 
+    0x310b, 0x3127, 0x3120, 
+    0x310b, 0x3127, 0x3121, 
+    0x310b, 0x3127, 0x3122, 
+    0x310b, 0x3127, 0x3123, 
+    0x310b, 0x3127, 0x3124, 
+    0x310b, 0x3127, 0x3125, 
+    0x310b, 0x3128, 
+    0x310b, 0x3128, 0x311b, 
+    0x310b, 0x3128, 0x3122, 
+    0x310b, 0x3128, 0x3125, 
+    0x310b, 0x3129, 
+    0x310b, 0x3129, 0x311d, 
+    0x310c, 0x311a, 
+    0x310c, 0x311c, 
+    0x310c, 0x311e, 
+    0x310c, 0x311f, 
+    0x310c, 0x3120, 
+    0x310c, 0x3121, 
+    0x310c, 0x3122, 
+    0x310c, 0x3124, 
+    0x310c, 0x3125, 
+    0x310c, 0x3127, 
+    0x310c, 0x3127, 0x311a, 
+    0x310c, 0x3127, 0x311d, 
+    0x310c, 0x3127, 0x3120, 
+    0x310c, 0x3127, 0x3121, 
+    0x310c, 0x3127, 0x3122, 
+    0x310c, 0x3127, 0x3123, 
+    0x310c, 0x3127, 0x3124, 
+    0x310c, 0x3127, 0x3125, 
+    0x310c, 0x3128, 
+    0x310c, 0x3128, 0x311b, 
+    0x310c, 0x3128, 0x3122, 
+    0x310c, 0x3128, 0x3123, 
+    0x310c, 0x3128, 0x3125, 
+    0x310c, 0x3129, 
+    0x310c, 0x3129, 0x311d, 
+    0x310c, 0x3129, 0x3122, 
+    0x310d, 0x311a, 
+    0x310d, 0x311c, 
+    0x310d, 0x311e, 
+    0x310d, 0x311f, 
+    0x310d, 0x3120, 
+    0x310d, 0x3121, 
+    0x310d, 0x3122, 
+    0x310d, 0x3123, 
+    0x310d, 0x3124, 
+    0x310d, 0x3125, 
+    0x310d, 0x3128, 
+    0x310d, 0x3128, 0x311a, 
+    0x310d, 0x3128, 0x311b, 
+    0x310d, 0x3128, 0x311e, 
+    0x310d, 0x3128, 0x311f, 
+    0x310d, 0x3128, 0x3122, 
+    0x310d, 0x3128, 0x3123, 
+    0x310d, 0x3128, 0x3124, 
+    0x310d, 0x3128, 0x3125, 
+    0x310e, 0x311a, 
+    0x310e, 0x311c, 
+    0x310e, 0x311e, 
+    0x310e, 0x3120, 
+    0x310e, 0x3121, 
+    0x310e, 0x3122, 
+    0x310e, 0x3123, 
+    0x310e, 0x3124, 
+    0x310e, 0x3125, 
+    0x310e, 0x3128, 
+    0x310e, 0x3128, 0x311a, 
+    0x310e, 0x3128, 0x311b, 
+    0x310e, 0x3128, 0x311e, 
+    0x310e, 0x3128, 0x311f, 
+    0x310e, 0x3128, 0x3122, 
+    0x310e, 0x3128, 0x3123, 
+    0x310e, 0x3128, 0x3124, 
+    0x310e, 0x3128, 0x3125, 
+    0x310f, 0x311a, 
+    0x310f, 0x311c, 
+    0x310f, 0x311e, 
+    0x310f, 0x311f, 
+    0x310f, 0x3120, 
+    0x310f, 0x3121, 
+    0x310f, 0x3122, 
+    0x310f, 0x3123, 
+    0x310f, 0x3124, 
+    0x310f, 0x3125, 
+    0x310f, 0x3128, 
+    0x310f, 0x3128, 0x311a, 
+    0x310f, 0x3128, 0x311b, 
+    0x310f, 0x3128, 0x311e, 
+    0x310f, 0x3128, 0x311f, 
+    0x310f, 0x3128, 0x3122, 
+    0x310f, 0x3128, 0x3123, 
+    0x310f, 0x3128, 0x3124, 
+    0x310f, 0x3128, 0x3125, 
+    0x3110, 0x3127, 
+    0x3110, 0x3127, 0x311a, 
+    0x3110, 0x3127, 0x311d, 
+    0x3110, 0x3127, 0x3120, 
+    0x3110, 0x3127, 0x3121, 
+    0x3110, 0x3127, 0x3122, 
+    0x3110, 0x3127, 0x3123, 
+    0x3110, 0x3127, 0x3124, 
+    0x3110, 0x3127, 0x3125, 
+    0x3110, 0x3129, 
+    0x3110, 0x3129, 0x311d, 
+    0x3110, 0x3129, 0x3122, 
+    0x3110, 0x3129, 0x3123, 
+    0x3110, 0x3129, 0x3125, 
+    0x3111, 0x3127, 
+    0x3111, 0x3127, 0x311a, 
+    0x3111, 0x3127, 0x311d, 
+    0x3111, 0x3127, 0x3120, 
+    0x3111, 0x3127, 0x3121, 
+    0x3111, 0x3127, 0x3122, 
+    0x3111, 0x3127, 0x3123, 
+    0x3111, 0x3127, 0x3124, 
+    0x3111, 0x3127, 0x3125, 
+    0x3111, 0x3129, 
+    0x3111, 0x3129, 0x311d, 
+    0x3111, 0x3129, 0x3122, 
+    0x3111, 0x3129, 0x3123, 
+    0x3111, 0x3129, 0x3125, 
+    0x3112, 0x3127, 
+    0x3112, 0x3127, 0x311a, 
+    0x3112, 0x3127, 0x311d, 
+    0x3112, 0x3127, 0x3120, 
+    0x3112, 0x3127, 0x3121, 
+    0x3112, 0x3127, 0x3122, 
+    0x3112, 0x3127, 0x3123, 
+    0x3112, 0x3127, 0x3124, 
+    0x3112, 0x3127, 0x3125, 
+    0x3112, 0x3129, 
+    0x3112, 0x3129, 0x311d, 
+    0x3112, 0x3129, 0x3122, 
+    0x3112, 0x3129, 0x3123, 
+    0x3112, 0x3129, 0x3125, 
+    0x3113, 
+    0x3113, 0x311a, 
+    0x3113, 0x311c, 
+    0x3113, 0x311e, 
+    0x3113, 0x311f, 
+    0x3113, 0x3120, 
+    0x3113, 0x3121, 
+    0x3113, 0x3122, 
+    0x3113, 0x3123, 
+    0x3113, 0x3124, 
+    0x3113, 0x3125, 
+    0x3113, 0x3128, 
+    0x3113, 0x3128, 0x311a, 
+    0x3113, 0x3128, 0x311b, 
+    0x3113, 0x3128, 0x311e, 
+    0x3113, 0x3128, 0x311f, 
+    0x3113, 0x3128, 0x3122, 
+    0x3113, 0x3128, 0x3123, 
+    0x3113, 0x3128, 0x3124, 
+    0x3113, 0x3128, 0x3125, 
+    0x3114, 
+    0x3114, 0x311a, 
+    0x3114, 0x311c, 
+    0x3114, 0x311e, 
+    0x3114, 0x3120, 
+    0x3114, 0x3121, 
+    0x3114, 0x3122, 
+    0x3114, 0x3123, 
+    0x3114, 0x3124, 
+    0x3114, 0x3125, 
+    0x3114, 0x3128, 
+    0x3114, 0x3128, 0x311b, 
+    0x3114, 0x3128, 0x311e, 
+    0x3114, 0x3128, 0x311f, 
+    0x3114, 0x3128, 0x3122, 
+    0x3114, 0x3128, 0x3123, 
+    0x3114, 0x3128, 0x3124, 
+    0x3114, 0x3128, 0x3125, 
+    0x3115, 
+    0x3115, 0x311a, 
+    0x3115, 0x311c, 
+    0x3115, 0x311e, 
+    0x3115, 0x311f, 
+    0x3115, 0x3120, 
+    0x3115, 0x3121, 
+    0x3115, 0x3122, 
+    0x3115, 0x3123, 
+    0x3115, 0x3124, 
+    0x3115, 0x3125, 
+    0x3115, 0x3128, 
+    0x3115, 0x3128, 0x311a, 
+    0x3115, 0x3128, 0x311b, 
+    0x3115, 0x3128, 0x311e, 
+    0x3115, 0x3128, 0x311f, 
+    0x3115, 0x3128, 0x3122, 
+    0x3115, 0x3128, 0x3123, 
+    0x3115, 0x3128, 0x3124, 
+    0x3116, 
+    0x3116, 0x311c, 
+    0x3116, 0x3120, 
+    0x3116, 0x3121, 
+    0x3116, 0x3122, 
+    0x3116, 0x3123, 
+    0x3116, 0x3124, 
+    0x3116, 0x3125, 
+    0x3116, 0x3128, 
+    0x3116, 0x3128, 0x311b, 
+    0x3116, 0x3128, 0x311f, 
+    0x3116, 0x3128, 0x3122, 
+    0x3116, 0x3128, 0x3123, 
+    0x3116, 0x3128, 0x3125, 
+    0x3117, 
+    0x3117, 0x311a, 
+    0x3117, 0x311c, 
+    0x3117, 0x311e, 
+    0x3117, 0x311f, 
+    0x3117, 0x3120, 
+    0x3117, 0x3121, 
+    0x3117, 0x3122, 
+    0x3117, 0x3123, 
+    0x3117, 0x3124, 
+    0x3117, 0x3125, 
+    0x3117, 0x3128, 
+    0x3117, 0x3128, 0x311b, 
+    0x3117, 0x3128, 0x311f, 
+    0x3117, 0x3128, 0x3122, 
+    0x3117, 0x3128, 0x3123, 
+    0x3117, 0x3128, 0x3125, 
+    0x3118, 
+    0x3118, 0x311a, 
+    0x3118, 0x311c, 
+    0x3118, 0x311e, 
+    0x3118, 0x3120, 
+    0x3118, 0x3121, 
+    0x3118, 0x3122, 
+    0x3118, 0x3123, 
+    0x3118, 0x3124, 
+    0x3118, 0x3125, 
+    0x3118, 0x3128, 
+    0x3118, 0x3128, 0x311b, 
+    0x3118, 0x3128, 0x311f, 
+    0x3118, 0x3128, 0x3122, 
+    0x3118, 0x3128, 0x3123, 
+    0x3118, 0x3128, 0x3125, 
+    0x3119, 
+    0x3119, 0x311a, 
+    0x3119, 0x311c, 
+    0x3119, 0x311e, 
+    0x3119, 0x3120, 
+    0x3119, 0x3121, 
+    0x3119, 0x3122, 
+    0x3119, 0x3123, 
+    0x3119, 0x3124, 
+    0x3119, 0x3125, 
+    0x3119, 0x3128, 
+    0x3119, 0x3128, 0x311b, 
+    0x3119, 0x3128, 0x311f, 
+    0x3119, 0x3128, 0x3122, 
+    0x3119, 0x3128, 0x3123, 
+    0x3119, 0x3128, 0x3125, 
+    0x311a, 
+    0x311b, 
+    0x311c, 
+    0x311e, 
+    0x311f, 
+    0x3120, 
+    0x3121, 
+    0x3122, 
+    0x3123, 
+    0x3124, 
+    0x3125, 
+    0x3126, 
+    0x3127, 
+    0x3127, 0x311a, 
+    0x3127, 0x311b, 
+    0x3127, 0x311d, 
+    0x3127, 0x311e, 
+    0x3127, 0x3120, 
+    0x3127, 0x3121, 
+    0x3127, 0x3122, 
+    0x3127, 0x3123, 
+    0x3127, 0x3124, 
+    0x3127, 0x3125, 
+    0x3128, 
+    0x3128, 0x311a, 
+    0x3128, 0x311b, 
+    0x3128, 0x311e, 
+    0x3128, 0x311f, 
+    0x3128, 0x3122, 
+    0x3128, 0x3123, 
+    0x3128, 0x3124, 
+    0x3128, 0x3125, 
+    0x3129, 
+    0x3129, 0x311d, 
+    0x3129, 0x3122, 
+    0x3129, 0x3123, 
+    0x3129, 0x3125
+    };
+    
+const TUint16 KZhuyinTypeTable[] = 
+    {
+    // 21 ESpellConsonant
+    ESpellConsonant, ESpellConsonant, ESpellConsonant, ESpellConsonant, ESpellConsonant,
+    ESpellConsonant, ESpellSpecialConsonnant, ESpellConsonant, ESpellSpecialConsonnant, ESpellConsonant,
+    ESpellSpecialConsonnant, ESpellConsonant, ESpellConsonant, ESpellConsonant, ESpellConsonant,
+    ESpellConsonant, ESpellConsonant, ESpellConsonant, ESpellSpecialConsonnant, ESpellSpecialConsonnant,
+    ESpellSpecialConsonnant,
+    //16 ESpellVowel
+    ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel,
+    ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel,
+    ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel,
+    ESpellVowel
+
+    };    
+
+const TUint16 KZhuyinNoFirstElem[] =
+    {
+    //0x311D
+    0x0020, 0x02CA, 0x02C7, 0x02CB, 0x02D9    
+    };
+
+// Pinyin DB data
+const TUint16 KPinyinBase = L'a';
+const TUint16  KPinyinElementCount = 26;
+const TUint16 KPinyinSpellsLength[] = 
+    {
+    1,2,2,3,2,2,3,3,4,3,3,3,4,2,4,4,3,3,4,2,
+    2,2,3,3,4,3,2,3,4,3,4,4,5,4,3,4,5,3,5,4,
+    3,4,5,5,6,4,4,4,2,4,3,2,4,3,3,3,2,3,3,4,
+    3,2,3,3,4,2,3,4,4,3,4,3,4,3,2,4,3,3,3,1,
+    2,2,3,2,2,3,4,3,3,4,2,3,2,2,3,3,4,3,2,3,
+    3,4,4,3,2,3,4,4,5,3,3,3,2,3,3,4,3,2,3,3,
+    4,2,3,4,3,2,3,4,4,5,3,3,3,2,3,4,5,4,3,3,
+    4,5,3,2,4,3,3,2,3,3,4,3,2,3,3,4,4,3,2,3,
+    4,4,5,3,3,3,2,3,3,4,3,2,3,4,2,3,4,5,4,3,
+    3,4,3,2,4,3,2,4,3,3,2,3,1,2,3,3,4,3,2,3,
+    3,4,2,4,4,3,3,4,3,2,3,2,1,2,3,3,4,3,2,3,
+    3,4,2,2,3,4,5,4,3,3,4,3,4,3,2,4,3,2,3,1,
+    2,2,3,3,4,3,3,3,4,2,4,4,3,3,4,2,3,2,2,3,
+    4,5,4,3,3,4,5,3,2,4,3,3,3,4,3,2,3,4,2,4,
+    3,2,4,3,3,3,2,3,3,4,3,2,3,4,3,4,4,5,4,3,
+    4,4,5,3,4,3,4,5,5,6,4,4,4,2,4,3,2,4,3,3,
+    3,2,3,3,4,3,2,4,2,4,4,3,4,4,3,2,4,3,3,3,
+    2,3,3,4,3,3,4,2,2,2,3,4,5,4,3,3,4,5,3,2,
+    4,3,3,2,3,4,3,2,2,3,4,2,4,3,2,4,3,3,2,3,
+    3,4,3,2,3,3,4,3,4,4,5,4,3,4,4,5,3,5,4,3,
+    4,5,5,6,4,4,4,2,4,3,2,4,3,3,3
+    };
+const TUint16 KPinyinSpellsLib[] =
+    {
+    0x61, //a
+    0x61, 0x69, //ai
+    0x61, 0x6e, //an
+    0x61, 0x6e, 0x67, //ang
+    0x61, 0x6f, //ao
+    0x62, 0x61, //ba
+    0x62, 0x61, 0x69, //bai
+    0x62, 0x61, 0x6e, //ban
+    0x62, 0x61, 0x6e, 0x67, //bang
+    0x62, 0x61, 0x6f, //bao
+    0x62, 0x65, 0x69, //bei
+    0x62, 0x65, 0x6e, //ben
+    0x62, 0x65, 0x6e, 0x67, //beng
+    0x62, 0x69, //bi
+    0x62, 0x69, 0x61, 0x6e, //bian
+    0x62, 0x69, 0x61, 0x6f, //biao
+    0x62, 0x69, 0x65, //bie
+    0x62, 0x69, 0x6e, //bin
+    0x62, 0x69, 0x6e, 0x67, //bing
+    0x62, 0x6f, //bo
+    0x62, 0x75, //bu
+    0x63, 0x61, //ca
+    0x63, 0x61, 0x69, //cai
+    0x63, 0x61, 0x6e, //can
+    0x63, 0x61, 0x6e, 0x67, //cang
+    0x63, 0x61, 0x6f, //cao
+    0x63, 0x65, //ce
+    0x63, 0x65, 0x6e, //cen
+    0x63, 0x65, 0x6e, 0x67, //ceng
+    0x63, 0x68, 0x61, //cha
+    0x63, 0x68, 0x61, 0x69, //chai
+    0x63, 0x68, 0x61, 0x6e, //chan
+    0x63, 0x68, 0x61, 0x6e, 0x67, //chang
+    0x63, 0x68, 0x61, 0x6f, //chao
+    0x63, 0x68, 0x65, //che
+    0x63, 0x68, 0x65, 0x6e, //chen
+    0x63, 0x68, 0x65, 0x6e, 0x67, //cheng
+    0x63, 0x68, 0x69, //chi
+    0x63, 0x68, 0x6f, 0x6e, 0x67, //chong
+    0x63, 0x68, 0x6f, 0x75, //chou
+    0x63, 0x68, 0x75, //chu
+    0x63, 0x68, 0x75, 0x61, //chua
+    0x63, 0x68, 0x75, 0x61, 0x69, //chuai
+    0x63, 0x68, 0x75, 0x61, 0x6e, //chuan
+    0x63, 0x68, 0x75, 0x61, 0x6e, 0x67, //chuang
+    0x63, 0x68, 0x75, 0x69, //chui
+    0x63, 0x68, 0x75, 0x6e, //chun
+    0x63, 0x68, 0x75, 0x6f, //chuo
+    0x63, 0x69, //ci
+    0x63, 0x6f, 0x6e, 0x67, //cong
+    0x63, 0x6f, 0x75, //cou
+    0x63, 0x75, //cu
+    0x63, 0x75, 0x61, 0x6e, //cuan
+    0x63, 0x75, 0x69, //cui
+    0x63, 0x75, 0x6e, //cun
+    0x63, 0x75, 0x6f, //cuo
+    0x64, 0x61, //da
+    0x64, 0x61, 0x69, //dai
+    0x64, 0x61, 0x6e, //dan
+    0x64, 0x61, 0x6e, 0x67, //dang
+    0x64, 0x61, 0x6f, //dao
+    0x64, 0x65, //de
+    0x64, 0x65, 0x69, //dei
+    0x64, 0x65, 0x6e, //den
+    0x64, 0x65, 0x6e, 0x67, //deng
+    0x64, 0x69, //di
+    0x64, 0x69, 0x61, //dia
+    0x64, 0x69, 0x61, 0x6e, //dian
+    0x64, 0x69, 0x61, 0x6f, //diao
+    0x64, 0x69, 0x65, //die
+    0x64, 0x69, 0x6e, 0x67, //ding
+    0x64, 0x69, 0x75, //diu
+    0x64, 0x6f, 0x6e, 0x67, //dong
+    0x64, 0x6f, 0x75, //dou
+    0x64, 0x75, //du
+    0x64, 0x75, 0x61, 0x6e, //duan
+    0x64, 0x75, 0x69, //dui
+    0x64, 0x75, 0x6e, //dun
+    0x64, 0x75, 0x6f, //duo
+    0x65, //e
+    0x65, 0x69, //ei
+    0x65, 0x6e, //en
+    0x65, 0x6e, 0x67, //eng
+    0x65, 0x72, //er
+    0x66, 0x61, //fa
+    0x66, 0x61, 0x6e, //fan
+    0x66, 0x61, 0x6e, 0x67, //fang
+    0x66, 0x65, 0x69, //fei
+    0x66, 0x65, 0x6e, //fen
+    0x66, 0x65, 0x6e, 0x67, //feng
+    0x66, 0x6f, //fo
+    0x66, 0x6f, 0x75, //fou
+    0x66, 0x75, //fu
+    0x67, 0x61, //ga
+    0x67, 0x61, 0x69, //gai
+    0x67, 0x61, 0x6e, //gan
+    0x67, 0x61, 0x6e, 0x67, //gang
+    0x67, 0x61, 0x6f, //gao
+    0x67, 0x65, //ge
+    0x67, 0x65, 0x69, //gei
+    0x67, 0x65, 0x6e, //gen
+    0x67, 0x65, 0x6e, 0x67, //geng
+    0x67, 0x6f, 0x6e, 0x67, //gong
+    0x67, 0x6f, 0x75, //gou
+    0x67, 0x75, //gu
+    0x67, 0x75, 0x61, //gua
+    0x67, 0x75, 0x61, 0x69, //guai
+    0x67, 0x75, 0x61, 0x6e, //guan
+    0x67, 0x75, 0x61, 0x6e, 0x67, //guang
+    0x67, 0x75, 0x69, //gui
+    0x67, 0x75, 0x6e, //gun
+    0x67, 0x75, 0x6f, //guo
+    0x68, 0x61, //ha
+    0x68, 0x61, 0x69, //hai
+    0x68, 0x61, 0x6e, //han
+    0x68, 0x61, 0x6e, 0x67, //hang
+    0x68, 0x61, 0x6f, //hao
+    0x68, 0x65, //he
+    0x68, 0x65, 0x69, //hei
+    0x68, 0x65, 0x6e, //hen
+    0x68, 0x65, 0x6e, 0x67, //heng
+    0x68, 0x6d, //hm
+    0x68, 0x6e, 0x67, //hng
+    0x68, 0x6f, 0x6e, 0x67, //hong
+    0x68, 0x6f, 0x75, //hou
+    0x68, 0x75, //hu
+    0x68, 0x75, 0x61, //hua
+    0x68, 0x75, 0x61, 0x69, //huai
+    0x68, 0x75, 0x61, 0x6e, //huan
+    0x68, 0x75, 0x61, 0x6e, 0x67, //huang
+    0x68, 0x75, 0x69, //hui
+    0x68, 0x75, 0x6e, //hun
+    0x68, 0x75, 0x6f, //huo
+    0x6a, 0x69, //ji
+    0x6a, 0x69, 0x61, //jia
+    0x6a, 0x69, 0x61, 0x6e, //jian
+    0x6a, 0x69, 0x61, 0x6e, 0x67, //jiang
+    0x6a, 0x69, 0x61, 0x6f, //jiao
+    0x6a, 0x69, 0x65, //jie
+    0x6a, 0x69, 0x6e, //jin
+    0x6a, 0x69, 0x6e, 0x67, //jing
+    0x6a, 0x69, 0x6f, 0x6e, 0x67, //jiong
+    0x6a, 0x69, 0x75, //jiu
+    0x6a, 0x75, //ju
+    0x6a, 0x75, 0x61, 0x6e, //juan
+    0x6a, 0x75, 0x65, //jue
+    0x6a, 0x75, 0x6e, //jun
+    0x6b, 0x61, //ka
+    0x6b, 0x61, 0x69, //kai
+    0x6b, 0x61, 0x6e, //kan
+    0x6b, 0x61, 0x6e, 0x67, //kang
+    0x6b, 0x61, 0x6f, //kao
+    0x6b, 0x65, //ke
+    0x6b, 0x65, 0x69, //kei
+    0x6b, 0x65, 0x6e, //ken
+    0x6b, 0x65, 0x6e, 0x67, //keng
+    0x6b, 0x6f, 0x6e, 0x67, //kong
+    0x6b, 0x6f, 0x75, //kou
+    0x6b, 0x75, //ku
+    0x6b, 0x75, 0x61, //kua
+    0x6b, 0x75, 0x61, 0x69, //kuai
+    0x6b, 0x75, 0x61, 0x6e, //kuan
+    0x6b, 0x75, 0x61, 0x6e, 0x67, //kuang
+    0x6b, 0x75, 0x69, //kui
+    0x6b, 0x75, 0x6e, //kun
+    0x6b, 0x75, 0x6f, //kuo
+    0x6c, 0x61, //la
+    0x6c, 0x61, 0x69, //lai
+    0x6c, 0x61, 0x6e, //lan
+    0x6c, 0x61, 0x6e, 0x67, //lang
+    0x6c, 0x61, 0x6f, //lao
+    0x6c, 0x65, //le
+    0x6c, 0x65, 0x69, //lei
+    0x6c, 0x65, 0x6e, 0x67, //leng
+    0x6c, 0x69, //li
+    0x6c, 0x69, 0x61, //lia
+    0x6c, 0x69, 0x61, 0x6e, //lian
+    0x6c, 0x69, 0x61, 0x6e, 0x67, //liang
+    0x6c, 0x69, 0x61, 0x6f, //liao
+    0x6c, 0x69, 0x65, //lie
+    0x6c, 0x69, 0x6e, //lin
+    0x6c, 0x69, 0x6e, 0x67, //ling
+    0x6c, 0x69, 0x75, //liu
+    0x6c, 0x6f, //lo
+    0x6c, 0x6f, 0x6e, 0x67, //long
+    0x6c, 0x6f, 0x75, //lou
+    0x6c, 0x75, //lu
+    0x6c, 0x75, 0x61, 0x6e, //luan
+    0x6c, 0x75, 0x6e, //lun
+    0x6c, 0x75, 0x6f, //luo
+    0x6c, 0x76, //lv
+    0x6c, 0x76, 0x65, //lve
+    0x6d, //m
+    0x6d, 0x61, //ma
+    0x6d, 0x61, 0x69, //mai
+    0x6d, 0x61, 0x6e, //man
+    0x6d, 0x61, 0x6e, 0x67, //mang
+    0x6d, 0x61, 0x6f, //mao
+    0x6d, 0x65, //me
+    0x6d, 0x65, 0x69, //mei
+    0x6d, 0x65, 0x6e, //men
+    0x6d, 0x65, 0x6e, 0x67, //meng
+    0x6d, 0x69, //mi
+    0x6d, 0x69, 0x61, 0x6e, //mian
+    0x6d, 0x69, 0x61, 0x6f, //miao
+    0x6d, 0x69, 0x65, //mie
+    0x6d, 0x69, 0x6e, //min
+    0x6d, 0x69, 0x6e, 0x67, //ming
+    0x6d, 0x69, 0x75, //miu
+    0x6d, 0x6f, //mo
+    0x6d, 0x6f, 0x75, //mou
+    0x6d, 0x75, //mu
+    0x6e, //n
+    0x6e, 0x61, //na
+    0x6e, 0x61, 0x69, //nai
+    0x6e, 0x61, 0x6e, //nan
+    0x6e, 0x61, 0x6e, 0x67, //nang
+    0x6e, 0x61, 0x6f, //nao
+    0x6e, 0x65, //ne
+    0x6e, 0x65, 0x69, //nei
+    0x6e, 0x65, 0x6e, //nen
+    0x6e, 0x65, 0x6e, 0x67, //neng
+    0x6e, 0x67, //ng
+    0x6e, 0x69, //ni
+    0x6e, 0x69, 0x61, //nia
+    0x6e, 0x69, 0x61, 0x6e, //nian
+    0x6e, 0x69, 0x61, 0x6e, 0x67, //niang
+    0x6e, 0x69, 0x61, 0x6f, //niao
+    0x6e, 0x69, 0x65, //nie
+    0x6e, 0x69, 0x6e, //nin
+    0x6e, 0x69, 0x6e, 0x67, //ning
+    0x6e, 0x69, 0x75, //niu
+    0x6e, 0x6f, 0x6e, 0x67, //nong
+    0x6e, 0x6f, 0x75, //nou
+    0x6e, 0x75, //nu
+    0x6e, 0x75, 0x61, 0x6e, //nuan
+    0x6e, 0x75, 0x6f, //nuo
+    0x6e, 0x76, //nv
+    0x6e, 0x76, 0x65, //nve
+    0x6f, //o
+    0x6f, 0x75, //ou
+    0x70, 0x61, //pa
+    0x70, 0x61, 0x69, //pai
+    0x70, 0x61, 0x6e, //pan
+    0x70, 0x61, 0x6e, 0x67, //pang
+    0x70, 0x61, 0x6f, //pao
+    0x70, 0x65, 0x69, //pei
+    0x70, 0x65, 0x6e, //pen
+    0x70, 0x65, 0x6e, 0x67, //peng
+    0x70, 0x69, //pi
+    0x70, 0x69, 0x61, 0x6e, //pian
+    0x70, 0x69, 0x61, 0x6f, //piao
+    0x70, 0x69, 0x65, //pie
+    0x70, 0x69, 0x6e, //pin
+    0x70, 0x69, 0x6e, 0x67, //ping
+    0x70, 0x6f, //po
+    0x70, 0x6f, 0x75, //pou
+    0x70, 0x75, //pu
+    0x71, 0x69, //qi
+    0x71, 0x69, 0x61, //qia
+    0x71, 0x69, 0x61, 0x6e, //qian
+    0x71, 0x69, 0x61, 0x6e, 0x67, //qiang
+    0x71, 0x69, 0x61, 0x6f, //qiao
+    0x71, 0x69, 0x65, //qie
+    0x71, 0x69, 0x6e, //qin
+    0x71, 0x69, 0x6e, 0x67, //qing
+    0x71, 0x69, 0x6f, 0x6e, 0x67, //qiong
+    0x71, 0x69, 0x75, //qiu
+    0x71, 0x75, //qu
+    0x71, 0x75, 0x61, 0x6e, //quan
+    0x71, 0x75, 0x65, //que
+    0x71, 0x75, 0x6e, //qun
+    0x72, 0x61, 0x6e, //ran
+    0x72, 0x61, 0x6e, 0x67, //rang
+    0x72, 0x61, 0x6f, //rao
+    0x72, 0x65, //re
+    0x72, 0x65, 0x6e, //ren
+    0x72, 0x65, 0x6e, 0x67, //reng
+    0x72, 0x69, //ri
+    0x72, 0x6f, 0x6e, 0x67, //rong
+    0x72, 0x6f, 0x75, //rou
+    0x72, 0x75, //ru
+    0x72, 0x75, 0x61, 0x6e, //ruan
+    0x72, 0x75, 0x69, //rui
+    0x72, 0x75, 0x6e, //run
+    0x72, 0x75, 0x6f, //ruo
+    0x73, 0x61, //sa
+    0x73, 0x61, 0x69, //sai
+    0x73, 0x61, 0x6e, //san
+    0x73, 0x61, 0x6e, 0x67, //sang
+    0x73, 0x61, 0x6f, //sao
+    0x73, 0x65, //se
+    0x73, 0x65, 0x6e, //sen
+    0x73, 0x65, 0x6e, 0x67, //seng
+    0x73, 0x68, 0x61, //sha
+    0x73, 0x68, 0x61, 0x69, //shai
+    0x73, 0x68, 0x61, 0x6e, //shan
+    0x73, 0x68, 0x61, 0x6e, 0x67, //shang
+    0x73, 0x68, 0x61, 0x6f, //shao
+    0x73, 0x68, 0x65, //she
+    0x73, 0x68, 0x65, 0x69, //shei
+    0x73, 0x68, 0x65, 0x6e, //shen
+    0x73, 0x68, 0x65, 0x6e, 0x67, //sheng
+    0x73, 0x68, 0x69, //shi
+    0x73, 0x68, 0x6f, 0x75, //shou
+    0x73, 0x68, 0x75, //shu
+    0x73, 0x68, 0x75, 0x61, //shua
+    0x73, 0x68, 0x75, 0x61, 0x69, //shuai
+    0x73, 0x68, 0x75, 0x61, 0x6e, //shuan
+    0x73, 0x68, 0x75, 0x61, 0x6e, 0x67, //shuang
+    0x73, 0x68, 0x75, 0x69, //shui
+    0x73, 0x68, 0x75, 0x6e, //shun
+    0x73, 0x68, 0x75, 0x6f, //shuo
+    0x73, 0x69, //si
+    0x73, 0x6f, 0x6e, 0x67, //song
+    0x73, 0x6f, 0x75, //sou
+    0x73, 0x75, //su
+    0x73, 0x75, 0x61, 0x6e, //suan
+    0x73, 0x75, 0x69, //sui
+    0x73, 0x75, 0x6e, //sun
+    0x73, 0x75, 0x6f, //suo
+    0x74, 0x61, //ta
+    0x74, 0x61, 0x69, //tai
+    0x74, 0x61, 0x6e, //tan
+    0x74, 0x61, 0x6e, 0x67, //tang
+    0x74, 0x61, 0x6f, //tao
+    0x74, 0x65, //te
+    0x74, 0x65, 0x6e, 0x67, //teng
+    0x74, 0x69, //ti
+    0x74, 0x69, 0x61, 0x6e, //tian
+    0x74, 0x69, 0x61, 0x6f, //tiao
+    0x74, 0x69, 0x65, //tie
+    0x74, 0x69, 0x6e, 0x67, //ting
+    0x74, 0x6f, 0x6e, 0x67, //tong
+    0x74, 0x6f, 0x75, //tou
+    0x74, 0x75, //tu
+    0x74, 0x75, 0x61, 0x6e, //tuan
+    0x74, 0x75, 0x69, //tui
+    0x74, 0x75, 0x6e, //tun
+    0x74, 0x75, 0x6f, //tuo
+    0x77, 0x61, //wa
+    0x77, 0x61, 0x69, //wai
+    0x77, 0x61, 0x6e, //wan
+    0x77, 0x61, 0x6e, 0x67, //wang
+    0x77, 0x65, 0x69, //wei
+    0x77, 0x65, 0x6e, //wen
+    0x77, 0x65, 0x6e, 0x67, //weng
+    0x77, 0x6f, //wo
+    0x77, 0x75, //wu
+    0x78, 0x69, //xi
+    0x78, 0x69, 0x61, //xia
+    0x78, 0x69, 0x61, 0x6e, //xian
+    0x78, 0x69, 0x61, 0x6e, 0x67, //xiang
+    0x78, 0x69, 0x61, 0x6f, //xiao
+    0x78, 0x69, 0x65, //xie
+    0x78, 0x69, 0x6e, //xin
+    0x78, 0x69, 0x6e, 0x67, //xing
+    0x78, 0x69, 0x6f, 0x6e, 0x67, //xiong
+    0x78, 0x69, 0x75, //xiu
+    0x78, 0x75, //xu
+    0x78, 0x75, 0x61, 0x6e, //xuan
+    0x78, 0x75, 0x65, //xue
+    0x78, 0x75, 0x6e, //xun
+    0x79, 0x61, //ya
+    0x79, 0x61, 0x6e, //yan
+    0x79, 0x61, 0x6e, 0x67, //yang
+    0x79, 0x61, 0x6f, //yao
+    0x79, 0x65, //ye
+    0x79, 0x69, //yi
+    0x79, 0x69, 0x6e, //yin
+    0x79, 0x69, 0x6e, 0x67, //ying
+    0x79, 0x6f, //yo
+    0x79, 0x6f, 0x6e, 0x67, //yong
+    0x79, 0x6f, 0x75, //you
+    0x79, 0x75, //yu
+    0x79, 0x75, 0x61, 0x6e, //yuan
+    0x79, 0x75, 0x65, //yue
+    0x79, 0x75, 0x6e, //yun
+    0x7a, 0x61, //za
+    0x7a, 0x61, 0x69, //zai
+    0x7a, 0x61, 0x6e, //zan
+    0x7a, 0x61, 0x6e, 0x67, //zang
+    0x7a, 0x61, 0x6f, //zao
+    0x7a, 0x65, //ze
+    0x7a, 0x65, 0x69, //zei
+    0x7a, 0x65, 0x6e, //zen
+    0x7a, 0x65, 0x6e, 0x67, //zeng
+    0x7a, 0x68, 0x61, //zha
+    0x7a, 0x68, 0x61, 0x69, //zhai
+    0x7a, 0x68, 0x61, 0x6e, //zhan
+    0x7a, 0x68, 0x61, 0x6e, 0x67, //zhang
+    0x7a, 0x68, 0x61, 0x6f, //zhao
+    0x7a, 0x68, 0x65, //zhe
+    0x7a, 0x68, 0x65, 0x69, //zhei
+    0x7a, 0x68, 0x65, 0x6e, //zhen
+    0x7a, 0x68, 0x65, 0x6e, 0x67, //zheng
+    0x7a, 0x68, 0x69, //zhi
+    0x7a, 0x68, 0x6f, 0x6e, 0x67, //zhong
+    0x7a, 0x68, 0x6f, 0x75, //zhou
+    0x7a, 0x68, 0x75, //zhu
+    0x7a, 0x68, 0x75, 0x61, //zhua
+    0x7a, 0x68, 0x75, 0x61, 0x69, //zhuai
+    0x7a, 0x68, 0x75, 0x61, 0x6e, //zhuan
+    0x7a, 0x68, 0x75, 0x61, 0x6e, 0x67, //zhuang
+    0x7a, 0x68, 0x75, 0x69, //zhui
+    0x7a, 0x68, 0x75, 0x6e, //zhun
+    0x7a, 0x68, 0x75, 0x6f, //zhuo
+    0x7a, 0x69, //zi
+    0x7a, 0x6f, 0x6e, 0x67, //zong
+    0x7a, 0x6f, 0x75, //zou
+    0x7a, 0x75, //zu
+    0x7a, 0x75, 0x61, 0x6e, //zuan
+    0x7a, 0x75, 0x69, //zui
+    0x7a, 0x75, 0x6e, //zun
+    0x7a, 0x75, 0x6f //zuo
+    };
+    
+const TUint16 KPinyinTypeTable[] = 
+{
+    //a, b, c, d, e, f
+    ESpellVowel, ESpellConsonant, ESpellSpecialConsonnant, ESpellConsonant, ESpellVowel, ESpellConsonant,
+    //g, h, i, j, k, l
+    ESpellSpecialConsonnant, ESpellSpecialConsonnant, ESpellVowel, ESpellConsonant, ESpellConsonant, ESpellConsonant,
+    //m, n, o, p, q, r
+    ESpellConsonant, ESpellSpecialConsonnant, ESpellVowel, ESpellConsonant, ESpellConsonant, ESpellConsonant,
+    //s, t, u, v, w, x
+    ESpellSpecialConsonnant, ESpellConsonant, ESpellVowel, ESpellVowel, ESpellConsonant, ESpellConsonant,
+    //y, z
+    ESpellConsonant, ESpellSpecialConsonnant
+};
+
+const TUint16 KPinyinNoFirstElem[] =
+    {
+    0x69, 0x76, 0x75
+    };
+    
+// -----------------------------------------------------------------------------
+// CPinyinAnalyserDbFeed::NewL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+CZhuyinAnalyserDbFeed* CZhuyinAnalyserDbFeed::NewL( TPinyinAnalyserDbType aType )
+    {
+    CZhuyinAnalyserDbFeed* self = new ( ELeave ) CZhuyinAnalyserDbFeed();
+    CleanupStack::PushL(self);
+    self->ConstructL( aType ); 
+    CleanupStack::Pop();
+    return self;    
+    }
+    
+CZhuyinAnalyserDbFeed::~CZhuyinAnalyserDbFeed()
+    {
+    
+    }
+// -----------------------------------------------------------------------------
+// CPinyinAnalyserDbFeed::~CPinyinAnalyserDbFeed
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+CZhuyinAnalyserDbFeed::CZhuyinAnalyserDbFeed()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CPinyinAnalyserDbFeed::~CPinyinAnalyserDbFeed
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//    
+void CZhuyinAnalyserDbFeed::ConstructL( TPinyinAnalyserDbType aType )
+    {
+    
+    if ( aType == EPinyinAnalyserTypePinyin )
+        {
+        iSpellBuf.Set( KPinyinSpellsLib, sizeof( KPinyinSpellsLib ) / sizeof( KPinyinSpellsLib[0] ) );
+        iSpellLenBuf.Set( KPinyinSpellsLength, sizeof( KPinyinSpellsLength ) / sizeof ( KPinyinSpellsLength[0] ) );
+        iSpellElemBase = KPinyinBase;
+        iSpellElemLen  = KPinyinElementCount;
+        iSpellTypeBuf.Set( KPinyinTypeTable, sizeof( KPinyinTypeTable ) / sizeof ( KPinyinTypeTable[0] ) );
+        iNoFirstElements.Set( KPinyinNoFirstElem, sizeof( KPinyinNoFirstElem) / sizeof( KPinyinNoFirstElem[0] ) );
+        }
+    else if ( aType == EPinyinAnalyserTypeZhuyin )
+        {
+        iSpellBuf.Set( KZhuyinSpellsLib, sizeof( KZhuyinSpellsLib ) / sizeof( KZhuyinSpellsLib[0] ) );
+        iSpellLenBuf.Set( KZhuyinSpellsLength, sizeof( KZhuyinSpellsLength ) / sizeof ( KZhuyinSpellsLength[0] ) );
+        iSpellElemBase = KZhuyinBase;
+        iSpellElemLen  = KZhuyinElementCount;
+        iSpellTypeBuf.Set( KZhuyinTypeTable, sizeof( KZhuyinTypeTable ) / sizeof ( KZhuyinTypeTable[0] ) );
+        iNoFirstElements.Set( KZhuyinNoFirstElem, sizeof( KZhuyinNoFirstElem) / sizeof( KZhuyinNoFirstElem[0] ) );
+        }
+    else
+        {
+        ASSERT( 0 );    
+        }
+    
+    }
+
+TBool CZhuyinAnalyserDbFeed::IsToneMark( TUint16 acoseFirst, TUint16 aCodeSecond )
+    {
+    TBool first = EFalse;
+    TBool seconde = EFalse;
+    
+    for ( TInt i = 0; i < iNoFirstElements.Length(); ++i )
+        {
+        if ( iNoFirstElements[i] == acoseFirst )
+            {
+            first = ETrue;
+            }
+        if ( iNoFirstElements[i] == aCodeSecond )
+            {
+            seconde = ETrue;
+            }    
+        }
+    
+    if ( first && seconde )
+        {
+        return ETrue;
+        }
+    else
+        {
+        return EFalse;
+        }
+    }