Translation of the names of the keys on Windows

Hi all,

Since today it's possible to provide custom translations of the names of
the keys on Windows. This is useful because Windows gets the name of the
key from the keyboard layout and, in some cases, they don't match properly.

For example, Catalan users don't have a proper keyboard layout (well, they
do have one but it's just an alias for the Spanish keyboard) so if a user
uses the Spanish or French keyboard, the name of the keys in the UI will be
in Spanish or French, but never in Catalan. I am sure other languages have
this problem too.

So it's now possible to provide custom names for keys for Windows using the
same way we do for Linux. The file to modify is the following one and the
process is exactly the same:

http://cgit.freedesktop.org/libreoffice/core/tree/vcl/win/source/window/keynames.cxx

If you want to implement this, but you are not a developer, just send me
the name of the keys with its translation and I will apply the changes
myself.

Thanks and Happy 2013 to everybody!

Hi,

is there an option to rename also the Alt, Ctrl, Tab and Esc keys in that file?

Thanks, m.

Hi,

here is the Slovenian replacement table, please add it to the code:

static const struct KeysNameReplacement aImplReplacements_Slovenian[] =
{
{ KEY_ESC, "Ubežnica" },
{ KEY_BACK, "Vračalka" },
{ KEY_ENTER, "Vnašalka" },
{ KEY_SPACEBAR, "Preslednica" },
{ KEY_HOME, "Začetek" },
{ KEY_UP, "Navzgor" },
{ KEY_PAGEUP, "Prejšnja stran" },
{ KEY_LEFT, "Levo" },
{ KEY_RIGHT, "Desno" },
{ KEY_END, "Konec" },
{ KEY_DOWN, "Navzdol" },
{ KEY_PAGEDOWN, "Naslednja stran" },
{ KEY_INSERT, "Vrivalka" },
{ KEY_DELETE, "Brisalka" },
{ KEY_CONTROL, "Krmilka" },
{ KEY_SHIFT, "Dvigalka" },
{ KEY_ALT, "Izmenjalka" },
};

Please also add the following line to the aKeyboards[]:
{ "sl", aImplReplacements_Slovenian,
SAL_N_ELEMENTS(aImplReplacements_Slovenian) },

Please notify when this is in, so I can check that special characters look ok.

Thanks, m.

Are Ctrl, Alt, Ins, PgUp/Down, etc really printed in translated form on
Slovenian keyboards?! O_o
Because if they're not, then wouldn't translating them in the UI confuse
the hell out of your users?

Best regards,
Mihkel
Estonian team

Well, Mihkel,
this is an instruction - it instructs what key to press, it is not a
transliteration of what is printed on keys themselves.
And the names I provided are approved names of these keys among Linux
translation community in Slovenia as well as linguists.

Also, SIST standard was adopted and it defined some or even most of
these keys in translated form, so in future Slovenian keyboards will
have those keys translated. But not with the same names as I
suggested, because on the keyboard there will be the verb forms of the
nouns we use as localizers in help and Linux interface (for example:
we call the Del key "brisalka", something (i.e. a key) that deletes,
while the SIST adopted standard defines the inscription on this key to
be "Briši" (i.e. verb "Delete").

So what I asked for is OK, do not worry. These titles will eventually
appear on our keyboards, we already have special keyboards because of
letters č, š, ž, ć and đ.

Here is also a proposal document by the standardization body (the same
adopted one must be bought):
http://www.tbtvn.org/VBLienQuanTBT/QCKT%20nuoc%20ngoai/SVN82(slovene).pdf

Lp, m

p.s. It was mentioned this can be done for Linux as well, what other
file must be changed?

Hello!

            I'm Spanish speaker and in my keyboard it is translated.
The keys are Av.Pág (PgDown), RePág (PgUp), Inicio (Home), Fin
(End), and so on.

I find it quite obvious, most people only knows one language: their own
native language.

Cheers,
Lailah

Hi!

Based on spanish keyboard, I guess this is Asturian keyboard translation:

static const struct KeysNameReplacement aImplReplacements_Asturian[] =
    {
        { KEY_BACK, "Retrocesu" },
        { KEY_ENTER, "Intro" },
        { KEY_SPACEBAR, "Espaciu" },
        { KEY_HOME, "Aniciu" },
        { KEY_UP, "Arriba" },
        { KEY_PAGEUP, "Re Páx" },
        { KEY_LEFT, "Izquierda" },
        { KEY_RIGHT, "Drecha" },
        { KEY_END, "Fin" },
        { KEY_DOWN, "Abaxo" },
        { KEY_PAGEDOWN, "Av Páx" },
        { KEY_INSERT, "Ins" },
        { KEY_DELETE, "Supr" },
        { KEY_SHIFT, "Mayús" },
    };

Still, I don't know if this change is useful, since (unlike Linux)
Windows lacks a proper implementation of Asturian language. Any advice
is welcome.

Best regards

Hi all,

Still, I don't know if this change is useful, since (unlike Linux)
Windows lacks a proper implementation of Asturian language. Any advice
is welcome.

It's a i18n/l10n issue. There are 3 approaches. The first one is to get the
names of keys from OS. The second one is to localize the names of keys
according to program (LibO) UI language. The last one is to keep the names
of keys hardcoded in English.

In Catalan case, there are several programs using the second approach
(translating names of keys). For instance Firefox, Thunderbird and MS
Office!!! follows this one. We only know 3 programs getting names of keys
from keyboard OS: OOo, LibO 3.x and Foxit Reader.

Also, keep in mind what translation has been done in LibO Help for your
language. In Catalan case we translated strings of names of keys, of
course. So, with Jesus's patch, al LibO is fine now, from our point of
view, because now LibO UI & Help translations match :slight_smile:

Best regards,
Joan Montané

Hi

Since we have Asturian keyboard available under Linux, LibO Help is
translated to match such translated keys, so no problem with that.

Hopefully, somewhere in the future Asturian kb will be available as
Unicode standard keyboard, which may ease i18n/l10n work. We are
working on that, and perhaps when CLDR is open again for new data
submissions we can include it.

Best regards

Hi,

so, did someone enter my code for Slovenian? Also, could someone reply
to my question regarding same thing on Windows?

Thanks, m.

This one:
http://cgit.freedesktop.org/libreoffice/core/tree/vcl/unx/generic/app/keysymnames.cxx

Thanks, Mihkel.

Then please someone add these lines for Slovenian to the Windows file:

    static const struct KeysymNameReplacement aImplReplacements_Slovenian[] =
    {
        { XK_Control_L, "Krmilka" },
        { XK_Control_R, "Krmilka" },
        { XK_Shift_L, "Dvigalka" },
        { XK_Shift_R, "Dvigalka" },
        { XK_Alt_L, "Izmenjalka" },
        { XK_Alt_R, "Desna izmenjalka" },
        { XK_Page_Up, "Prejšnja stranf" },
        { XK_Page_Down, "Naslednja stran" },
        { XK_End, "Konec" },
        { XK_Home, "Začetek" },
        { XK_Insert, "Vstavljalka" },
        { XK_Delete, "Brisalka" },
        { XK_Escape, "Ubežnica" },
        { XK_Right, "Desno" },
        { XK_Left, "Levo" },
        { XK_Up, "Navzgor" },
        { XK_Down, "Navzdol" },
        { XK_BackSpace, "Vračalka" },
        { XK_Return, "Vnašalka" },
        { XK_slash, "Poševnica" },
        { XK_space, "Preslednica" },
        { SunXK_Stop, "Ustavi" },
        { SunXK_Again, "Ponovi" },
        { SunXK_Props, "Lastnosti" },
        { SunXK_Undo, "Razveljavi" },
        { SunXK_Front, "Ospredje" },
        { SunXK_Copy, "Kopiraj" },
        { SunXK_Open, "Odpri" },
        { SunXK_Paste, "Prilepi" },
        { SunXK_Find, "Najdi" },
        { SunXK_Cut, "Izreži" },
    };

and the line defining Slovenian in KeyboardReplacements:
        { "sl", aImplReplacements_Slovenian,
SAL_N_ELEMENTS(aImplReplacements_Slovenian) },

Thanks,
m.

Hi,

I have pushed the Asturian, Slovenian, and Spanish translations into
master, see
http://cgit.freedesktop.org/libreoffice/core/commit/?id=2f9cc7a486f89fe34e44f45399ddbeb240a3adb1

Also, I asked for review for the 4-0 branch via gerrit, see
https://gerrit.libreoffice.org/#/c/1793/

Thanks a lot for contribution.

Best Regards,
Petr

Martin Srebotnjak píše v Čt 10. 01. 2013 v 14:06 +0100:

Hello, thanks, Petr,

I hope this includes my code for Slovenian for Linux and Windows (the
latter was in a separate reply to this thread).

Thanks,
m.

Dne ponedeljek, 21. januar 2013 je pošiljatelj Petr Mladek napisal:

I committed the change only for Windows, see
http://cgit.freedesktop.org/libreoffice/core/commit/?id=2f9cc7a486f89fe34e44f45399ddbeb240a3adb1

I do not see your change for Linux. Could you please resend it or point
me to the mail?

Best Regards,
Petr