eepm icon indicating copy to clipboard operation
eepm copied to clipboard

Отсутствие в выводимых командах внешнего пакетного менеджера явного задания локали

Open eteryear opened this issue 2 months ago • 0 comments

Из-за того, что в EEPM используется LC_ALL=C для поиска внешним пакетным менеджером, epm search выводит только английские надписи.

С одной стороны, это предсказуемость и единообразие внутри скрипта.

С другой — создаёт неочевидные тонкости при воспроизведении скопированной команды (результата showcmd() из epm-sh-functions).

С третьей, неясно, что писать в документации — что поиск всегда осуществляется на английском языке, вне зависимости от локали системы, или что это будет настраиваться?

$ #Запуск EEPM:
$ epm search media player | wc
 $ apt-cache search -- media | grep -E -i -- "media" | grep -E -i -- "player" | grep -E -i --color -- "(media|player)"
    157    1423   10235

$ #Скопированная строка запуска:
$ apt-cache search -- media | grep -E -i -- "media" | grep -E -i -- "player" | grep -E -i --color -- "(media|player)" | wc
    155    1396   10059

Подробности

Копия сообщения с issue https://github.com/Etersoft/eepm/issues/507.

Попытка подставить внешнюю команду даёт явно разный результат:

$ epm search media player | wc
 $ apt-cache search -- media | grep -E -i -- "media" | grep -E -i -- "player" | grep -E -i --color -- "(media|player)"
    157    1423   10235
$ apt-cache search -- media | grep -E -i -- "media" | grep -E -i -- "player" | grep -E -i --color -- "(media|player)" | wc
    155    1396   10059

Происходит из-за принудительно установленной локали "C" на строке https://github.com/Etersoft/eepm/blob/master/bin/epm-search#L132: https://github.com/Etersoft/eepm/blob/171709517be6b55a3a120a264222df7005891d73/bin/epm-search#L132 В частности, в этом примере убирается строка с легендарным пакетом "mplayer - Media player" (потому что в локали системы его описание звучит как "mplayer - Медиаплейер", что не совпадает с паттерном поиска). Ну и ещё popcorn-time, но в его случае уже ничего сделать нельзя, он устанавливается через epm play.

diff --git a/dev/fd/63 b/dev/fd/62
--- a/dev/fd/63
+++ b/dev/fd/62
@@ -23,3 +23,2 @@ lomiri-mediaplayer-app - Media Player application for Ubuntu Touch devices
 mpc-qt - A clone of Media Player Classic reimplemented in Qt.
-mplayer - Media player
 musitorius - The system service to control multimedia player
@@ -156,2 +155 @@ i586-vlc-plugin-xml - XML plugin for VLC media player
 i586-xplayer-plugin-media-player-keys - Media Player Keys
-popcorn-time - Popcorn Time is a multi-platform, free software BitTorrent client that includes an integrated media player (use 'epm play' to install it)

На Sisyphus таким образом переведено 5508 пакетов, так что есть примерно 5508 строк, где выводы apt-cache или epm могут отличаться. Не уверен, нужно ли с этим что-то делать, но на всякий случай сообщаю.

$ apt-cache search -- "." | grep "[А-Яа-я]" | wc
   5508   40003  536293

eteryear avatar Oct 27 '25 18:10 eteryear