Discussion Board

Results 1 to 2 of 2
  1. #1
    Registered User
    Join Date
    Feb 2004

    How to change the Input Lang?

    Changing the input language on Series60 is not convenient, you need to press the "pen" key, scroll 5-8 items down, then choose the language I want... too many actions

    This menu-driven interface is convinient with stilus & touchscreen, where it is easy to locate the desired menu item, but not on keyboard-only S60 smartphones.

    Having a menu shortcuts would be convenient, i.e. pressing the 5 key activating the 5th menu item, and so on. Maybe such behaviour worth adding to new firmware?

    Anyway, what I want now is writing a custom application for switching input language by pressing some keys combination, like <pen>+<#>. What I need to know - is how to change input language from my program?

    I found no documented API for doing this.

    The current setting seems to be found under "InputLang" parameter in \shareddata\100058EC.ini file, but it is locked by another process.

    There is a reference to RSharedDataClient class in cpbkcontactengine.h header, but it is not described

    syslangutil.dll seem to be somehow connected to input languages, but it is also undocumented.

    Is there any way to get SharedDataClient.h header file mentioned on this forum?

    Why is the SharedData API is not documented?

    Or maybe get some docs on syslangutil.dll library?

    Or any other way to change current input language?

    Thanks in advance for an answer (hoping to get it),
    and thanks for such a great smartphone platform.

    I personally own Nokia N-Gage (if it is important),
    and I need to input mixed text in english and russian languages.
    Last edited by alex14n; 2004-02-08 at 06:22.

  2. #2
    Registered User
    Join Date
    Feb 2004
    I've tried to reconstruct RSharedDataClient using dumpbin on commonengine.lib:

    class RSharedDataClient {
    RSharedDataClient(class MSharedDataNotifyHandler *);
    int Assign(class TUid) const;
    int AssignToTemporaryFile(class TUid) const;
    void CancelAllNotifies(void);
    void CancelNotify(class TUid,class TDesC16 const *);
    void Close(void);
    int Connect(int);
    int Flush(void) const;
    int GetInt(class TDesC16 const &,int &) const;
    int GetReal(class TDesC16 const &,double &) const;
    int GetString(class TDesC16 const &,class TDes16 &) const;
    int NotifyChange(class TUid,class TDesC16 const *);
    int NotifySet(class TUid,class TDesC16 const *);
    int RestoreOriginal(class TUid,class MDesC16Array const *);
    int SetInt(class TDesC16 const &,int);
    int SetReal(class TDesC16 const &,double);
    int SetString(class TDesC16 const &,class TDesC16 const &);
    void CancelFreeDiskSpaceRequest(void) const;
    void RequestFreeDiskSpace(int) const;
    void RequestFreeDiskSpaceLC(int) const;
    int AddToValue(class TDesC16 const &,int);
    void CancelAllSignals(void);
    void CancelSignal(class TDesC16 const &);
    int Signal(class TDesC16 const &);
    void *v1,*v2,*v3,*v4;

    Am I right I need something like:

    RSharedDataClient sd;
    sd.Assign( 0x100058EC );
    sd.GetInt( "InputLang" );
    sd.SetInt( "InputLang", 1 for English, 16 for Russian );


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts