Esperanto keyboard layout

'Forum Post ulist at gs1.ubuntuforums.org
Wed Dec 28 08:32:38 UTC 2005


Sal, Peep Pullerits!



Mi ankoraŭ ne provis uzi Esperanton en Ubuntu, sed mencii, ke dum
instalo ebals elekti E-on. Ĉu vi provis tion? Mi scivolas.



Nur por informi vin: OOo2 sub Ubuntu senprobleme subtenas E-on: eblas
literumi e-ajn tekstojn. Nur, tre bedaŭrinde, la fasadtiparo de
OOo2 ne enhavas ĉapeligitaĵojn: kiam mi vokas kuntekstan
menuon pri malĝuste literumita vorto, OOo2 proponas vortojn kun
spacetoj anstataŭ ŝŭĥĵĝĉ. T.e., se
mi skribas «kacxo», OOo2 proponas «ka<spaceto>o»,
sed, tamen, se mi ĝin elektos, korekte enigas
«kaĉo».



Interalie, por OOo Writer eblas krei «makroon» por tajpi sen
specifa klavaranĝo:




Code:
--------------------
    REM Author:Leston Buell [bulbul at ucla.edu]

  Global oComposerDocView

  Global oComposerKeyHandler

  Global oComposerInputString

  

  Sub Compose

  oComposerDocView = ThisComponent.getCurrentController

  oComposerKeyHandler = createUnoListener( "Composer_", _

  "com.sun.star.awt.XKeyHandler" )

  oComposerDocView.addKeyHandler( oComposerKeyHandler )

  oComposerInputString = ""

  End Sub

  

  Sub ExitCompose

  oComposerDocView.removeKeyHandler( oComposerKeyHandler )

  oComposerInputString = ""

  End Sub

  

  Function InsertString( oString, oDocView, oKeyHandler )

  Dim oViewCursor

  Dim oText

  Dim oCursor

  

  oViewCursor = ThisComponent.getCurrentController().getViewCursor()

  oText = ThisComponent.getText()

  oCursor = oText.createTextCursorByRange( oViewCursor.getStart() )

  'For some reason, the text insertion refires the key events (twice!), 

  'so we remove the handler before insertion, then re-add it afterwards.

  oDocView.removeKeyHandler( oKeyHandler )

  oText.insertString( oCursor.getStart(), oString, true )

  oDocView.addKeyHandler( oKeyHandler )  

  End Function

  

  Function Composer_keyPressed( oEvt ) as Boolean

  If len( oComposerInputString ) = 1 Then

  oComposerInputString = oComposerInputString & oEvt.KeyChar

  Dim translation

  translation = GetTranslation( oComposerInputString )

  InsertString( translation, oComposerDocView, oComposerKeyHandler )

  oComposerInputString = ""

  ExitCompose

  Else

  oComposerInputString = oComposerInputString & oEvt.KeyChar

  End If

  Composer_KeyPressed = True

  End Function

  

  Function Composer_keyReleased( oEvt ) as Boolean

  Composer_keyReleased = False

  End Function

  

  Function GetTranslation( oString ) as String

  Select Case oString

  Case "^C", "Ch", "Cx"

  GetTranslation = "Ĉ"

  Case "^c", "ch", "cx"

  GetTranslation = "ĉ"

  Case "^G", "Gh", "Gx"

  GetTranslation = "Ĝ"

  Case "^g", "gh", "gx"

  GetTranslation = "ĝ"

  Case "^H", "Hh", "Hx"

  GetTranslation = "Ĥ"

  Case "^h", "hh", "hx"

  GetTranslation = "ĥ"

  Case "^J", "Jh", "Jx"

  GetTranslation = "Ĵ"

  Case "^j", "jh", "jx"

  GetTranslation = "ĵ"

  Case "^S", "Sh", "Sx"

  GetTranslation = "Ŝ"      

  Case "^s", "sh", "sx"

  GetTranslation = "ŝ"

  Case "uU", "Uh", "Ux"

  GetTranslation = "Ŭ"

  Case "uu", "uh", "ux"

  GetTranslation = "ŭ"

  End Select

  End Function
--------------------




Do, instalu la makroon kaj — mi konsilas — difinu iun
tujaĵon por ĝi, ekz., Ctrl+H. Poste eblos tapji tiamaniere:
Ctrl+H, S, x -donos- Ŝ. Ktp.


-- 
esperantisto




More information about the ubuntu-users mailing list