[Libreoffice-bugs] [Bug 50415] Shortcut names are not localized on Linux

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed May 30 09:48:11 PDT 2012


https://bugs.freedesktop.org/show_bug.cgi?id=50415

--- Comment #4 from Thomas Arnhold <thomas at arnhold.org> 2012-05-30 09:48:11 PDT ---
Petr, with LANG=de_DE.UTF-8 libreoffice3.6 you can't reproduce this bug. Try
this with libreoffice 3.5.3 and it will fail too. The translation of those keys
was dependent on the keyboard layout, not the locale setting. As Bjoern
mentioned in his commit:

lp#818761: removing the problematic call to GetKeyboardName() as
getKeysymReplacementName only provides the name of the key named
as given by the l10n of the _keyboard_ (not the locale) e.g. a
german keyboard would name "Ctrl" instead as "Strg". Assuming
this change to be safe as getKeysymReplacementName falls back to
English names anyway.

The replacement table was called with ::vcl_sal::getKeysymReplacementName.

On master I deleted the table:
http://cgit.freedesktop.org/libreoffice/core/commit/?id=2233aa52da14ec85331aee1163b885fe9a9fb507

The problem itself lies at SalDisplay::GetKeyboardName:

// try X keyboard extension
if( (pXkbDesc = XkbGetKeyboard( GetDisplay(), XkbAllComponentsMask,
XkbUseCoreKbd )) )
{
const char* pAtom = NULL;
if( pXkbDesc->names->groups[0] )
{
    pAtom = XGetAtomName( GetDisplay(), pXkbDesc->names->groups[0] );
    m_aKeyboardName = pAtom;
    XFree( (void*)pAtom );
}

--> The keyboard name was extracted from the current keyboard layout. So you
have to change your keyboard layout to get a translation of keys with libo
3.5.3.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the Libreoffice-bugs mailing list