Ticket #4522 (closed defect: invalid)

Opened 10 months ago

Last modified 9 months ago

Menu navigation hotkeys stop working in 4.8.30

Reported by: alpir Owned by:
Priority: major Milestone:
Component: translations Version: 4.8.30
Keywords: Cc:
Blocked By: Blocking:
Branch state: no branch Votes for changeset:

Description

After upgrading Midnight commander from 4.8.29 to 4.8.30,the menu navigation hotkeys stop working. I've tried working in different terminals: kitty, alacrity, xfce4-terminal. It's the same behavior everywhere.
Deleting the Midnight commander settings directory does not help.
Rollback to the previous version - everything works as it should.

Steps to reproduce the problem:

  1. Open Midnight commander.
  2. Press F9 and then, from example, F (for Ftp connection).
  3. Press any alphabetic key - nothing works.

Gentoo x64-86.
GNU Midnight Commander 4.8.30
Built with GLib 2.78.3
Built with S-Lang 2.3.3 with terminfo database
With builtin Editor and Aspell support
With subshell support as default
With support for background operations
With mouse support on xterm and Linux console
With support for X11 events
With internationalization support
With multiple codepages support
With ext2fs attributes support
Virtual File Systems:

cpiofs, tarfs, sfs, extfs, ext2undelfs, ftpfs, fish

Data types:

char: 8; int: 32; long: 64; void *: 64; size_t: 64; off_t: 64;

Attachments

menu-4.8.29.png (3.4 KB) - added by andrew_b 10 months ago.
menu-4.8.30.png (3.4 KB) - added by andrew_b 10 months ago.

Change History

comment:1 Changed 10 months ago by alpir

After upgrading Midnight commander from 4.8.29 to 4.8.30, the menu navigation hotkeys stop working. I've tried working in different terminals: kitty, alacrity, xfce4-terminal. It's the same behavior everywhere.
Deleting the Midnight commander settings directory does not help.
Rollback to the previous version - everything works as it should.

Steps to reproduce the problem:

  1. Open Midnight commander.
  2. Press F9 and then, for example, F (for FTP connection).
  3. Press any alphabetic key - nothing works.

Gentoo x64-86.
GNU Midnight Commander 4.8.30
Built with GLib 2.78.3
Built with S-Lang 2.3.3 with terminfo database
With builtin Editor and Aspell support
With subshell support as default
With support for background operations
With mouse support on xterm and Linux console
With support for X11 events
With internationalization support
With multiple codepages support
With ext2fs attributes support
Virtual File Systems:

cpiofs, tarfs, sfs, extfs, ext2undelfs, ftpfs, fish

Data types:

char: 8; int: 32; long: 64; void *: 64; size_t: 64; off_t: 64;

comment:2 in reply to: ↑ description ; follow-up: ↓ 3 Changed 10 months ago by andrew_b

Replying to alpir:

After upgrading Midnight commander from 4.8.29 to 4.8.30,the menu navigation hotkeys stop working. I've tried working in different terminals: kitty, alacrity, xfce4-terminal. It's the same behavior everywhere.

Works fine for me in xterm and mate-terminal.

  1. Press F9 and then, from example, F (for Ftp connection).

F is hotkey for Filter. P is hotkey for FTP.

comment:3 in reply to: ↑ 2 ; follow-up: ↓ 4 Changed 10 months ago by alpir

Replying to andrew_b:

  1. Press F9 and then, from example, F (for Ftp connection).

F is hotkey for Filter. P is hotkey for FTP.

At least in version 4.8.29 and earlier, the F key (Russian locale) was a quick access to an ftp connection.

In the ru.po file version 4.8.29 there are lines (3100):
msgid "FT&P link..."
msgstr "&FTP-соединение..."

The ampersand, as far as I understand it, is the designation of a hotkey.

But still - in version 4.8.30, not a single shortcut key works.

Maybe it's just the locale? But switching the layout also doesn't solve the problem.
Or is the problem with Gentoo maintainers and patches from them?

comment:4 in reply to: ↑ 3 ; follow-up: ↓ 5 Changed 10 months ago by andrew_b

Replying to alpir:

Replying to andrew_b:

  1. Press F9 and then, from example, F (for Ftp connection).

F is hotkey for Filter. P is hotkey for FTP.

At least in version 4.8.29 and earlier, the F key (Russian locale) was a quick access to an ftp connection.

In the ru.po file version 4.8.29 there are lines (3100):
msgid "FT&P link..."
msgstr "&FTP-соединение..."

Ah... This is another question. Actually, non-latin hotkeys don't work: #2343.

The ampersand, as far as I understand it, is the designation of a hotkey.

But still - in version 4.8.30, not a single shortcut key works.

Maybe it's just the locale? But switching the layout also doesn't solve the problem.

Is LC_ALL=C mc working?

Or is the problem with Gentoo maintainers and patches from them?

Can't say. I'm not a Gentoo user.

comment:5 in reply to: ↑ 4 Changed 10 months ago by alpir

Replying to andrew_b:

Replying to alpir:

Replying to andrew_b:

  1. Press F9 and then, from example, F (for Ftp connection).

F is hotkey for Filter. P is hotkey for FTP.

At least in version 4.8.29 and earlier, the F key (Russian locale) was a quick access to an ftp connection.

In the ru.po file version 4.8.29 there are lines (3100):
msgid "FT&P link..."
msgstr "&FTP-соединение..."

Ah... This is another question. Actually, non-latin hotkeys don't work: #2343.

There are no problems with this. My default layout is English. But it doesn't work in the new version.

The ampersand, as far as I understand it, is the designation of a hotkey.

But still - in version 4.8.30, not a single shortcut key works.

Maybe it's just the locale? But switching the layout also doesn't solve the problem.

Is LC_ALL=C mc working?

With LC_ALL=C mc` the keyboard shortcuts work as they should, well, except for the terrible appearance.

Could there be a problem with this patch from Gentoo?
https://data.gpo.zugaina.org/gentoo/app-misc/mc/files/mc-4.8.30-fish_fix_broken_national_characters.patch

comment:6 Changed 10 months ago by zaytsev

Nope, this only affects connections to external hosts using shell protocol (FISH). The patch is quite optimistic though. As the code was written, most devices and systems didn't have C.UTF-8, but since the users don't seem to complain, maybe it's a good idea to change it now. Although it assumes that current system locale is UTF-8. What a can of worms...

comment:7 Changed 10 months ago by alpir

There are several other patches in Gentoo that are applied during the build, but I think they may not relate to my problem.
https://data.gpo.zugaina.org/gentoo/app-misc/mc/files/

comment:8 Changed 10 months ago by zaytsev

Yes, they all look irrelevant to your issue. Are you even sure that the previous version worked for you? Mostly users report bugs upon upgrades, however not only mc is upgraded, but also lots of other programs and libraries. This was recently the case for gilb. If you compile the previous version and run it on your system as it is now, does this solve the problem?

comment:9 Changed 10 months ago by alpir

The app-misc/mc-4.8.30-r1 version was stabilized in Gentoo on 26.12.23. I installed it on January 3rd and saw that it was a bug. I looked for that problem in the Midnight commander bug tracker and in Gentoo - no one was found. I masked this version and rolled back to 4.8.29.
Yesterday, 4.8.29 was removed from the Gentoo repository, I had to update again. And here I am.
sys-libs/glibc-2.38-r9 has been stabilized and updated on 07.01.24.
dev-libs/glib-2.78.3 has been updated on 03.01.24.
I have now rebuilt version 4.8.29 from my local repository - it works without problems.

comment:10 follow-up: ↓ 11 Changed 10 months ago by zaytsev

Which means what? That 4.8.30 doesn't work, and 4.8.29 works, and it doesn't depend on libraries, and you can reproduce this? If yes, then could you please bisect the commit that broke it. Without being able to reproduce it, it's like looking for a needle in a haystack.

comment:11 in reply to: ↑ 10 Changed 10 months ago by alpir

Replying to zaytsev:
And what is unclear? In the newly compiled version 4.8.30, the hotkeys in the menu do not work. In the immediately assembled version 4.8.29, they work. Yesterday I built version 4.8.30 on my small home server on the N100 processor and also got this bug.

If yes, then could you please bisect the commit that broke it. Without being able to reproduce it, it's like looking for a needle in a haystack.

I'm ready, but how to do it?

comment:12 follow-up: ↓ 13 Changed 10 months ago by zaytsev

And what is unclear?

Your description is unclear. You say that some packages were updated, then you reinstalled something and so on. A completely clean investigation looks like that: you build mc 4.8.29 and 4.8.30 one after another without changing anything on the system and install them in separate prefixes. Then you run both and check that one has the problem and the other does not. If whatever you did amounts to effectively that, then it's fine, but it's impossible to understand this from your text, which is why I asked.

I'm ready, but how to do it?

It's very easy. You can checkout git repository of mc - https://github.com/MidnightCommander/mc - checkout tag 4.8.29, build it and install in some prefix, make sure that it works, and mark it as good. Then you can checkout 4.8.30, do the same, and mark it as bad. Then git will ask you to try some intermediate commits, and in the end it will tell which commit broke this after some tries.

Here is a passable article that explains it:

https://medium.com/rewrite-tech/getting-friendly-with-git-bisect-ecb72b66ec87

To build and run mc

./autogen.sh && ./configure --prefix=./mc-test && make -j4 && make install && ./mc-test/bin/mc

comment:13 in reply to: ↑ 12 Changed 10 months ago by alpir

Replying to zaytsev:

Your description is unclear. You say that some packages were updated, then you reinstalled something and so on. A completely clean investigation looks like that: you build mc 4.8.29 and 4.8.30 one after another without changing anything on the system and install them in separate prefixes. Then you run both and check that one has the problem and the other does not. If whatever you did amounts to effectively that, then it's fine, but it's impossible to understand this from your text, which is why I asked.

I apologize for the confusion of my story. I was trying to answer the question from comment No. 8 about libraries.All I'm doing now is alternately (not simultaneously) building versions 4.8.29 and 4.8.30 and checking their work.

It's very easy. You can checkout git repository of mc - https://github.com/MidnightCommander/mc - checkout tag 4.8.29, build it and install in some prefix, make sure that it works, and mark it as good. Then you can checkout 4.8.30, do the same, and mark it as bad. Then git will ask you to try some intermediate commits, and in the end it will tell which commit broke this after some tries.

Here is a passable article that explains it:

https://medium.com/rewrite-tech/getting-friendly-with-git-bisect-ecb72b66ec87

To build and run mc

The result of bisecting:

~/З/mc ((3f3a4fbf…)|BISECTING|?) $ git bisect bad                                                                                                       26.516s  ((3f3a4fbf…)|BISECTING|?) 23:21
3f3a4fbf12591285a8c1cad1ea9393401950235f is the first bad commit
commit 3f3a4fbf12591285a8c1cad1ea9393401950235f
Author: Andrew Borodin <aborodin@vmail.ru>
Date:   Fri Aug 4 21:20:52 2023 +0300

    Update po/*.po files.

    Signed-off-by: Andrew Borodin <aborodin@vmail.ru>

 po/af.po    |  Bin 59710 -> 59689 bytes
 po/ar.po    |  Bin 60001 -> 59980 bytes
 po/az.po    |  Bin 67242 -> 67228 bytes
 po/be.po    |  Bin 116882 -> 117017 bytes
 po/bg.po    |  Bin 114904 -> 115039 bytes
 po/br.po    |  Bin 60637 -> 60616 bytes
 po/ca.po    |  Bin 98121 -> 98256 bytes
 po/cs.po    |  Bin 97878 -> 98013 bytes
 po/da.po    |  Bin 89307 -> 89442 bytes
 po/de.po    |  Bin 94314 -> 94449 bytes
 po/de_CH.po |  Bin 59751 -> 59730 bytes
 po/el.po    |  Bin 88421 -> 88556 bytes
 po/en_GB.po |  Bin 61581 -> 61593 bytes
 po/eo.po    |  Bin 93081 -> 93216 bytes
 po/es.po    |  Bin 94257 -> 94392 bytes
 po/et.po    |  Bin 89640 -> 89775 bytes
 po/eu.po    |  Bin 90475 -> 90610 bytes
 po/fa.po    |  Bin 67163 -> 67227 bytes
 po/fi.po    |  Bin 74617 -> 74603 bytes
 po/fr.po    |  Bin 99196 -> 99331 bytes
 po/fr_CA.po |  Bin 59745 -> 59724 bytes
 po/ga.po    |  Bin 59903 -> 59882 bytes
 po/gl.po    |  Bin 92840 -> 92975 bytes
 po/he.po    |  Bin 59908 -> 59887 bytes
 po/hr.po    |  Bin 59836 -> 59815 bytes
 po/hu.po    |  Bin 89462 -> 89597 bytes
 po/ia.po    |  Bin 69963 -> 70003 bytes
 po/id.po    |  Bin 65440 -> 65457 bytes
 po/ie.po    |  Bin 64332 -> 64353 bytes
 po/it.po    |  Bin 92700 -> 92835 bytes
 po/ja.po    |  Bin 75404 -> 75532 bytes
 po/ka.po    |  Bin 92114 -> 92190 bytes
 po/kk.po    |  Bin 59822 -> 59801 bytes
 po/ko.po    |  Bin 97018 -> 97153 bytes
 po/kw.po    |  Bin 60398 -> 60377 bytes
 po/lt.po    |  Bin 77602 -> 77588 bytes
 po/lv.po    |  Bin 66740 -> 66726 bytes
 po/mc.pot   | 1208 +++++++++++++++++++++++++++++------------------------------
 po/mn.po    |  Bin 74074 -> 74060 bytes
 po/nb.po    |  Bin 91379 -> 91514 bytes
 po/nl.po    |  Bin 90761 -> 90896 bytes
 po/nl_BE.po |  Bin 59725 -> 59704 bytes
 po/pl.po    |  Bin 96819 -> 96954 bytes
 po/pt.po    |  Bin 96109 -> 96244 bytes
 po/pt_BR.po |  Bin 101995 -> 102130 bytes
 po/ro.po    |  Bin 96171 -> 96306 bytes
 po/ru.po    |  Bin 119404 -> 118679 bytes
 po/sk.po    |  Bin 92055 -> 92190 bytes
 po/sl.po    |  Bin 67977 -> 67963 bytes
 po/sr.po    |  Bin 108667 -> 108802 bytes
 po/sv.po    |  Bin 89545 -> 89680 bytes
 po/szl.po   |  Bin 59824 -> 59803 bytes
 po/ta.po    |  Bin 60662 -> 60641 bytes
 po/te.po    |  Bin 59707 -> 59686 bytes
 po/tr.po    |  Bin 89892 -> 90027 bytes
 po/uk.po    |  Bin 119916 -> 120051 bytes
 po/uz.po    |  Bin 59647 -> 59626 bytes
 po/vi.po    |  Bin 69449 -> 69435 bytes
 po/wa.po    |  Bin 64073 -> 64059 bytes
 po/zh_CN.po |  Bin 86149 -> 86284 bytes
 po/zh_TW.po |  Bin 73818 -> 73946 bytes
 61 files changed, 601 insertions(+), 607 deletions(-)

comment:14 follow-up: ↓ 15 Changed 10 months ago by zaytsev

Wow, this really doesn't make any sense. It's just an automatic regeneration of PO-files. If you are sure you didn't make a mistake, then log / visualise would be very interesting to know, how git came to this conclusion.

comment:15 in reply to: ↑ 14 Changed 10 months ago by alpir

Replying to zaytsev:

Wow, this really doesn't make any sense. It's just an automatic regeneration of PO-files. If you are sure you didn't make a mistake, then log / visualise would be very interesting to know, how git came to this conclusion.

What I did:

  1. git clone https://github.com/MidnightCommander/mc
  2. cd mc
  3. git bisect start
  4. git bisect good 4.8.29
  5. git bisect bad 4.8.30
  6. ./autogen.sh && ./configure --prefix=/home/mikhail/Загрузки/mc/mc-test && make -j12 && make install && ./mc-test/bin/mc
  7. Test it with F9 and any hotkey.

And then "git bisect good" or "git bisect bad".

Sometimes an error occurred: Your local changes to the following files would be overwritten by checkout. I entered "git commit -a", accepted the changes and repeated everything from step 6.

Did I do everything right?
How do I make a "log / visualize"?

comment:16 follow-up: ↓ 17 Changed 10 months ago by zaytsev

Sometimes an error occurred: Your local changes to the following files would be overwritten by checkout. I entered "git commit -a", accepted the changes and repeated everything from step 6.

This is what lead to wrong results. I think the right way would be to do git reset --hard HEAD && git clean -dfx before git bisect good or bad if this kind of error occurs about changes being overwritten by the checkout.

comment:17 in reply to: ↑ 16 Changed 10 months ago by alpir

Replying to zaytsev:

This is what lead to wrong results. I think the right way would be to do git reset --hard HEAD && git clean -dfx before git bisect good or bad if this kind of error occurs about changes being overwritten by the checkout.

Unfortunately, the result is the same with *.po files.

What was I doing now:

  1. git clone ​https://github.com/MidnightCommander/mc
  2. cd mc
  3. git bisect start
  4. git bisect good 4.8.29
  5. git bisect bad 4.8.30
  6. ./autogen.sh && ./configure --prefix=/home/mikhail/Загрузки/mc/mc-test && make -j12 && make install && ./mc-test/bin/mc
  7. Test it with F9 and any hotkey.
  8. git reset --hard HEAD && git clean -dfx
  9. "git bisect good" or "git bisect bad".
  10. Repeat from step 6.

comment:18 Changed 10 months ago by zaytsev

Andrew, do you have an idea how this can possibly break hotkeys o_O ?

comment:19 follow-up: ↓ 20 Changed 10 months ago by andrew_b

First of all, which locale hotkeys are working in?

comment:20 in reply to: ↑ 19 ; follow-up: ↓ 21 Changed 10 months ago by alpir

Replying to andrew_b:

First of all, which locale hotkeys are working in?

They do not work (4.8.30) in any locale: neither in en nor in ru.
With LC_ALL=C mc the keyboard shortcuts work as they should.

comment:21 in reply to: ↑ 20 ; follow-up: ↓ 22 Changed 10 months ago by andrew_b

Replying to alpir:

They do not work (4.8.30) in any locale: neither in en nor in ru.

Which locale hotkeys in 4.8.29 are working in? Exactly. Other than C.

comment:22 in reply to: ↑ 21 ; follow-up: ↓ 23 Changed 10 months ago by alpir

Replying to andrew_b:

Replying to alpir:

They do not work (4.8.30) in any locale: neither in en nor in ru.

Which locale hotkeys in 4.8.29 are working in? Exactly. Other than C.

Only en.

comment:23 in reply to: ↑ 22 ; follow-up: ↓ 24 Changed 10 months ago by andrew_b

Replying to alpir:

Only en.

Please show the output of the command locale.

comment:24 in reply to: ↑ 23 Changed 10 months ago by alpir

Replying to andrew_b:

Replying to alpir:

Only en.

Please show the output of the command locale.

~/Загрузки $ locale                                                                                                                                                                 6.046s 15:29
LANG=ru_RU.utf8
LC_CTYPE=ru_RU.UTF-8
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE=ru_RU.UTF-8
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES=ru_RU.UTF-8
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=

Changed 10 months ago by andrew_b

Changed 10 months ago by andrew_b

comment:25 follow-up: ↓ 27 Changed 10 months ago by zaytsev

LANG=ru_RU.utf8
LC_CTYPE=ru_RU.UTF-8

This looks completely wrong. It should be either utf8 or UTF-8 everywhere, depending on how your distro is generating locales.

comment:26 Changed 10 months ago by andrew_b

Lets look at menu.
This is menu in 4.8.29:

and this is menu in 4.8.30:

Hotkeys for FTP, Shell and SFTP are different in these versions.

Press F9 and then, from example, F (for Ftp connection).

There's not such hotkey anymore. That's why it's not working.

I can't say who and why of Russian translators in Transifex changed hotkeys.

Last edited 10 months ago by andrew_b (previous) (diff)

comment:27 in reply to: ↑ 25 ; follow-up: ↓ 28 Changed 10 months ago by alpir

Replying to zaytsev:

LANG=ru_RU.utf8
LC_CTYPE=ru_RU.UTF-8

This looks completely wrong. It should be either utf8 or UTF-8 everywhere, depending on how your distro is generating locales.

My locales are generated in full accordance with the Gentoo-handbook.
https://wiki.gentoo.org/wiki/Localization/Guide
I have now done everything according to the handbook again - the result is the same.

There's not such hotkey anymore. That's why it's not working.

I can't say who and why of Russian translators in Transifex changed hotkeys.

So it's not about the locale after all? But still - not a single hotkey works in any layout in 4.8.30.

Можно ли тут на русском? Что-то все закрутилось и сложно выражать свою мысль и понимать ответную через переводчик.

comment:28 in reply to: ↑ 27 ; follow-up: ↓ 29 Changed 10 months ago by andrew_b

Replying to alpir:

Можно ли тут на русском?

Как правило, нет, ресурс всё-таки международный, но давайте в виде исключения.

Многобайтовые (нелатинские, не ascii) хоткеи не работают (см. #2343), потому что везде в коде, где ищется хоткей, идёт сранение только по первому байту. Более того, нелатинские хоткеи не работают и в однобайтовых локалях (koi8-r).

В 4.8.29 во всём меню есть только два латинских хоткея: FTP и Shell. И они работают в любой локали.

В 4.8.30 кто-то из переводчиков зачем-то эти хоткеи изменил. Теперь они стали кириллическими и, разумееется, не работают. Их можно восстановить, отредактировав po-файл на сайте transifex.com -- всё переводы mc делаются там.

But still - not a single hotkey works in any layout in 4.8.30.

Напишите по-русски, потому что непонятно, что вы имеете в виду.

comment:29 in reply to: ↑ 28 ; follow-up: ↓ 30 Changed 10 months ago by alpir

Replying to andrew_b:

Replying to alpir:

Можно ли тут на русском?

Как правило, нет, ресурс всё-таки международный, но давайте в виде исключения.

Многобайтовые (нелатинские, не ascii) хоткеи не работают (см. #2343), потому что везде в коде, где ищется хоткей, идёт сранение только по первому байту. Более того, нелатинские хоткеи не работают и в однобайтовых локалях (koi8-r).

В 4.8.29 во всём меню есть только два латинских хоткея: FTP и Shell. И они работают в любой локали.

В 4.8.30 кто-то из переводчиков зачем-то эти хоткеи изменил. Теперь они стали кириллическими и, разумееется, не работают. Их можно восстановить, отредактировав po-файл на сайте transifex.com -- всё переводы mc делаются там.

But still - not a single hotkey works in any layout in 4.8.30.

Напишите по-русски, потому что непонятно, что вы имеете в виду.

Я понял про нелатинские раскладки и горячие клавиши, пускай так. У меня все равно по дефолту английский стоит. Но и оно же перестало работать.

В версии 4.8.30 - какую бы клавишу я не нажимал после F9, хоть в английской, хоть в русской раскладке - вообще не работает ничего. Я тупо перенажимал все клавиши в обеих раскладках - 0 реакции.

Вчера подумалось, может вернуть в ru.po пункт про ftp в прежний вид, как в 4.8.29, и посмотреть как работает, сделал патчик:

--- a/po/ru.po
+++ b/po/ru.po
@@ -3099,7 +3099,7 @@
 msgstr "Выбор &кодировки..."

 msgid "FT&P link..."
-msgstr "FTP-сое&динение..."
+msgstr "&FTP-соединение..."

 msgid "S&hell link..."
 msgstr "Shell-со&единение..."

Пересобрал, но увы - все также не откликается ни на одну клавишу ни в одной раскладке.

Last edited 10 months ago by alpir (previous) (diff)

comment:30 in reply to: ↑ 29 Changed 10 months ago by andrew_b

Replying to alpir:

Я понял про нелатинские раскладки и горячие клавиши, пускай так. У меня все равно по дефолту английский стоит. Но и оно же перестало работать.

В версии 4.8.30 - какую бы клавишу я не нажимал после F9, хоть в английской, хоть в русской раскладке - вообще не работает ничего. Я тупо перенажимал все клавиши в обеих раскладках - 0 реакции.

В русской раскладке не работает ничего, потому что оно в принципе не работает.

В английской раскладке не работает, потому что нет английских хоткеев.

Вчера подумалось, может вернуть в ru.po пункт про ftp в прежний вид, как в 4.8.29, и посмотреть как работает, сделал патчик:

--- a/po/ru.po
+++ b/po/ru.po
@@ -3099,7 +3099,7 @@
 msgstr "Выбор &кодировки..."

 msgid "FT&P link..."
-msgstr "FTP-сое&динение..."
+msgstr "&FTP-соединение..."

 msgid "S&hell link..."
 msgstr "Shell-со&единение..."

Пересобрал, но увы - все также не откликается ни на одну клавишу ни в одной раскладке.

Не могу сказать, что у вас не так.
Я тоже только что пересобрал .30 с изменённым ru.po -- всё работает.

$ locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=ru_RU.UTF-8

comment:31 follow-up: ↓ 32 Changed 10 months ago by alpir

ru.po то я меняю патчем, который применял с помощью portage. Не работает.
Ну да ладно - попробовал собрать вручную измененный ru.po в папке со скачанным исходниками 30-й версии. Тоже нет результата. Может это из-за неизменного ru.gmo?

comment:32 in reply to: ↑ 31 Changed 10 months ago by andrew_b

Replying to alpir:

Может это из-за неизменного ru.gmo?

Конечно. Но ru.gmo должен перегенириться при сборке, если менялся ru.po. И он должен лежать в правильном месте. А это зависит от того, с каким prefix'ом вы собираете mc.

comment:33 Changed 10 months ago by alpir

Нет, он как был, так и остался от 13 августа. Собирал вручную я командой, что была дана выше для git bisect:
./configure --prefix=/home/mikhail/Загрузки/mc/mc-4.8.30/mc-test && make -j12 && make install && ./mc-test/bin/mc
Лежат оба файла вместе в папке po.

Portage, судя по всему, тоже не перегенерирует этот самый ru.gmo.

Last edited 10 months ago by alpir (previous) (diff)

comment:34 Changed 10 months ago by zaytsev

Я вам уже сказал, что у вас локаль настроена неправильно. Должно быть

export LANG="ru_RU.UTF-8"

а у вас

export LANG="ru_RU.utf8"

То, что у гентушников мешанина в документации, это, конечно, печально.

comment:35 Changed 10 months ago by alpir

На 29-й то версии все работало же.
Ну хорошо, прописал я сейчас вручную локаль LANG="ru_RU.utf8", сделал env-update && source /etc/profile, тут же проверил echo $LANG, которое стало равным ru_RU.UTF-8, запустил в этом же терминале mc и ничего не поменялось - как не работало, так и не работает.

Я понимаю, что никто никому ничего не должен, СПО и т.п. Ну так скажите тогда, что баг Wontfix и все.

Вроде бы с Andrew выяснили, что дело в сменившихся горячих клавишах, а патч не помогает из-за непересобранного файла ru.gmo.

comment:36 Changed 10 months ago by zaytsev

  • Status changed from new to closed
  • Resolution set to invalid
  • Component changed from mc-core to translations

Вроде бы с Andrew выяснили, что дело в сменившихся горячих клавишах, а патч не помогает из-за непересобранного файла ru.gmo.

Выше вы утверждали, что у вас вообще никакие хоткеи не работают (ни кириллические, ни латинские), а с LANG=C mc работают.

Я понимаю, что никто никому ничего не должен, СПО и т.п. Ну так скажите тогда, что баг Wontfix и все.

Уровень сумбурности ответов не может быть лучше уровня сумбурности изложения мыслей, СПО и Wontfix тут не при чем.

Если вы теперь уверены, что латинские хоткеи у вас не работают, из-за того, что файлы переводов не перегенерируются, это вполне может быть причиной, но только это значит, что вы что-то делаете неправильно, потому, что они должны при правильном использовании системы сборки перегенерироваться. Поэтому логично с т.з. того, кто пытается в этой ситуации разобраться, предлагать исправить другие заведомо неправильные действия (настройку локали), чтобы быть уверенным, что они как-то косвенно не влияют на ситуацию.

В общем, я не понял какой тут вывод. Если дело в том, что русские переводчики поломали хоткеи, то разберитесь с ними на Transifex, а тикет действительно можно закрыть.

comment:37 Changed 10 months ago by alpir

Я исправил локаль вчера еще, но это не решило проблему:

~/Загрузки $  locale
LANG=ru_RU.UTF-8
LC_CTYPE=ru_RU.UTF-8
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE=ru_RU.UTF-8
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES=ru_RU.UTF-8
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=

Подскажите пожалуйста - как правильно собрать mc, так чтобы перерегенились файлы переводов?
Эта команда в папке с распакованными сырцами 30-й версии не верна?
./configure --prefix=/home/mikhail/Загрузки/mc/mc-4.8.30/mc-test && make -j12 && make install && ./mc-test/bin/mc

comment:38 follow-up: ↓ 39 Changed 10 months ago by andrew_b

Попрбуйте после правки po/ru.po пересоздать ru.gmo:
./configure --prefix=/home/mikhail/Загрузки/mc/mc-4.8.30/mc-test && make -C po update-po && make -j12 && make install && ./mc-test/bin/mc

comment:39 in reply to: ↑ 38 Changed 10 months ago by alpir

Replying to andrew_b:

Попрбуйте после правки po/ru.po пересоздать ru.gmo:
./configure --prefix=/home/mikhail/Загрузки/mc/mc-4.8.30/mc-test && make -C po update-po && make -j12 && make install && ./mc-test/bin/mc

Заработало! Спасибо!

Теперь бы понять какие изменения внести в ebuild, чтобы пересоздавались gmo файлы при сборке...

Я понимаю, что проблема с переводом, т.к. там переназначились клавиши. Как найти ответственного за это или же предложить правки в сообщество? Про Transifex выше я то прочитал, но с какой стороны к нему подступиться?

comment:40 Changed 10 months ago by andrew_b

Я сам исправлю. Там кроме этого ещё кое-что надо подправить.

comment:41 Changed 10 months ago by alpir

Большое спасибо еще раз!

comment:42 Changed 9 months ago by zaytsev

Подскажите пожалуйста - как правильно собрать mc, так чтобы перерегенились файлы переводов?

Если вы из тарболов собираете, то как Андрей сказал, надо их вручную перегенерировать, потому, что билд-система уже забутстраплена. Если из репозитория, то все само сделается, только надо, чтобы билд-систему сгенерировать, сначала autogen.sh запустить.

Про Transifex выше я то прочитал, но с какой стороны к нему подступиться?

Наша страничка там:

https://app.transifex.com/mc/mc/dashboard/

Надо зарегистрироваться и запросить права на перевод, мы добавляем в проект. Только беда в том, что так приходят всякие переводчики по объявлению и делают всякие вещи типа ломки хоткеев, а за ними не проверишь каждую букву, тем более я не на всех языках говорю.

Note: See TracTickets for help on using tickets.