Russian msg on grub cntdw. en.mo+ others .mo files seem to have russian in /boot/grub2/local

Hi,

I have come across a strange problem:
I am using openSuSE 13.1 x64, and everytime I boot the laptop, the countdown message is displayed in russian.
I checked /boot/grub2/locale and it seems that many of those .mo files contain russian.
Does anyone have a clue why is that and how can I restore the correct files for the english language?

/etc/sysconfig/bootloader

## Path:    System/Bootloader
## Description:    Bootloader configuration
## Type:    list(grub,lilo,none)
## Default:    grub
#
# Type of bootloader in use.
# For making the change effect run bootloader configuration tool
# and configure newly selected bootloader
#
#
LOADER_TYPE="grub2"

## Path:    System/Bootloader
## Description:    Bootloader configuration
## Type:    yesno
## Default:    "no"
#
# Enable UEFI Secure Boot support
# This setting is only relevant to UEFI which supports UEFI. It won't
# take effect on any other firmware type.
#
#
SECURE_BOOT="no"

## Path:    System/Bootloader
## Description:    Bootloader configuration
## Type:    string
## Default:    "splash=silent quiet showotps"
#
# Arguments for kernel which is used like default boot section.
# If the options is commented perl-Bootloader uses his default arguments
# for kernel.
#
DEFAULT_APPEND="   video=1366x768 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXN1A80J5955-part5 splash=silent quiet showopts"

## Path:    System/Bootloader
## Description:    Bootloader configuration
## Type:    string
## Default:    none
#
# VGA option for kernel which is used like default boot section.
# If the options is commented or empty perl-Bootloader doesn't use it.
# Empty option could be cause of broken size of fonts etc.
#
DEFAULT_VGA=""

## Path:    System/Bootloader
## Description:    Bootloader configuration
## Type:    string
## Default:    "showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe"
#
# Arguments for kernel which is used like failsafe boot section
# If the options is commented perl-Bootloader uses his default arguments
# for kernel.
#
FAILSAFE_APPEND=""

## Path:    System/Bootloader
## Description:    Bootloader configuration
## Type:    string
## Default:    none
#
# VGA option for kernel which is used like failsafe boot section.
# If the options is commented or empty perl-Bootloader doesn't use it.
# Empty option could be cause of broken size of fonts etc.
#
FAILSAFE_VGA=""

## Path:    System/Bootloader
## Description:    Bootloader configuration
## Type:    string
## Default:    "splash=silent quiet showotps"
#
# Arguments for XEN kernel in Dom0.
# If the options is commented perl-Bootloader uses his default arguments
# for XEN kernel.
#
XEN_KERNEL_APPEND="   video=1366x768 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXN1A80J5955-part5 splash=silent quiet showopts"

## Path:    System/Bootloader
## Description:    Bootloader configuration
## Type:    string
## Default:    none
#
# Arguments for XEN hypervisor
# Usually it is empty or includes arguments like crashkernel for kdump etc.
#
XEN_APPEND=""

## Path:    System/Bootloader
## Description:    Bootloader configuration
## Type:    string
## Default:    none
#
# VGA option for XEN kernel.
# If the options is commented or empty perl-Bootloader doesn't use it.
# Empty option could be cause of broken size of fonts etc.
#
XEN_VGA=""
## Path:    System/Bootloader
## Description: Bootloader configuration
## Type:    yesno
## Default:    no
#
# Should the boot cycle detection be used to
# avoid unconditional reboot cycles of not
# supervised system.
#
CYCLE_DETECTION="no"

## Type:    integer(0:)
## Default:    1
#
# The number of the entry in grub's menu.lst
# which should be used on the next reboot cycle.
# Note that the first entry has the number 0.
#
CYCLE_NEXT_ENTRY="1"


tail -3 en_US.mo 
невідомий тип пристрою %s
невідома файлова системаневідомий тип пристрою RAID, «%s»невідома помилка під час обробки формального виразуневідомий формат призначення %s
невідомий тип terminfo, «%s»непридатне до розпізнавання визначення формату параметра DHCP, «%s»нерозпізнана адреса у мережі, «%s»нерозпізнаний інтерфейс мережі, «%s»нерозпізнане числонепридатна до визначення адреса %sunset НАЗВА ...]непідтримуване повідомлення про помилку HTTP, %d: %sнепідтримувана відповідь HTTPнепідтримувана версія RAID: %d.%dНепідтримуваний формат gzipнепідтримувана парність послідовного портунепідтримувана швидкість передавання даних послідовним портомнепідтримуване значення кількості бітів зупинки роботи з послідовним портомнепідтримуваний розмір слова (word) послідовного портувикористати КОЛІР для тлавикористати КОЛІР для міткивикористати КОЛІР для тла міткивикористати КОЛІР для текстувикористати КАТАЛОГ як кореневий каталог системного розділу EFI.використати ФАЙЛ (PF2) як шрифт.використати ФАЙЛ як шрифт для міткивикористати ФАЙЛ як образ для завантаження типове значення=%s]використати ФАЙЛ як образ теки ядра типове значення=%s]використовувати ФАЙЛ яка карту пристрою типове значення=%s]використовувати ФАЙЛ як xorriso необов’язковий параметр]використовувати файли GRUB у каталозі КАТАЛОГ типове значення=%s]використати РЯДОК як назву продуктувикористати РЯДОК як версію продуктувикористовувати файл ідентифікатора, навіть якщо доступним буде UUIDвикористовувати образи і модулі у КАТАЛОЗІ типово=%s/<платформа>]значення змінної «%s» не встановленовізуально впорядковане UTF-8.зачекати на долучення зневадника        не буде продовжено з використанням списків блоківпомилкова контрольна сума або версія ELIxnu_uuid ПРИСТРІЙфайл xz пошкоджено або вказано непідтримувані параметри блокуви не можете вилучити цю адресуспочатку вам слід завантажити ядророзміри вашого розділу для завантаження BIOS є занадто малими, — вбудовування неможливеваш файл core.img є доволі великим. Його не вдасться записати до області вбудовування.ваша область вбудовування є надзвичайно малою. core.img не вміститься у цій області.

Thanks and regards,
Nikos

I think I saw this a while back and never bothered to examine it much.

Try adding LANG=C to /etc/default/grub above the GRUB_DISTRIBUTOR, remove the locale files and as root run grub2-install /dev/sdX where sdX if the device where your openSUSE is installed, for example /dev/sda

On 2014-09-22 12:06, Miuku wrote:
>
> I think I saw this a while back and never bothered to examine it much.
>
> Try adding LANG=C to /etc/default/grub above the GRUB_DISTRIBUTOR,
> remove the locale files and as root run grub2-install /dev/sdX where sdX
> if the device where your openSUSE is installed, for example /dev/sda

Please report this in Bugzilla.


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

Note that it won’t work in 13.2 anymore - in new version grub utilities were rewritten in C. So better to get habit to run “LC_ALL=C grub2-mkconfig” …

I was unable to reproduce the issue in any way so it would have been a bit of a waste, I considered it an oddity at the time.

Being pedantic - this is not Russian. Russian is not the only one using Cyrillic.

grub2 does not even have en_US.mo catalog, so something or somebody must have copied one of other catalogs under this name. And I suspect it was somebody - there was old problem with grub2 emitting error message when language was set to en(_US), common recipe to fix was to copy some other catalog under this name.

On 2014-09-22 20:56, Miuku wrote:
>
> robin_listas;2665749 Wrote:
>> Please report this in Bugzilla.
> I was unable to reproduce the issue in any way so it would have been a
> bit of a waste, I considered it an oddity at the time.

I can… I can see the error in grub2 of openSUSE 13.1. You do not need
to “suffer” the problem, you just have to navigate to
“/boot/grub2/locale/uk.mo” and see the Cyrillic messages inside. They
come from the Ukrainian team.

Just report that some mo files in there contain Cyrillic messages. No
need to boot in any language.

Apparently (educated guess) the British translation team took the .mo
file from the Ukrainian team, with the intention to replace the messages
with British English, and forgot to mark them “fuzzy” (marking a message
as “fuzzy” in a translation file, deactivates that particular message).
And then the uk.mo file got published as it was, broken!


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

See http://translationproject.org/team/uk.html

Just report that some mo files in there contain Cyrillic messages. No
need to boot in any language.

uk.mo is Ukranian translation. But OP referred to en_US.mo, not uk.mo.

Apparently (educated guess) the British translation team took the .mo
file from the Ukrainian team

ISO country code for United Kingdom is GB, not UK. While I agree that selection of UK for Ukraina was unfortunate, so far nothing yet is broken - it does not collide with any officially used country code. See also http://translationproject.org/team/index.html

Hi,

Russian is pretty close to Ukrainian. It could have been Bulgarian or Macedonian or even Serbian for all I know, but Russian was my wild guess. But you are right on this and thanks for being pedantic. :slight_smile:
http://lists.opensuse.org/opensuse-bugs/2013-11/msg01447.htm I had found this earlier. It had worked for a while, but after an upgrade it broke again. I just wonder if there is a way to just download the correct .mo files and replace the ones with the Cyrillic letters.

On 2014-09-23 06:16, arvidjaar wrote:
>
> robin_listas;2665859 Wrote:

> uk.mo is Ukranian translation. But OP referred to en_US.mo, not uk.mo.

Ah, I confused with the British one, as UK also stands for “United
Kingdom”, that is, Britain :wink:

Oops.

>> Apparently (educated guess) the British translation team took the .mo
>> file from the Ukrainian team
>
> ISO country code for United Kingdom is GB, not UK. While I agree that
> selection of UK for Ukraina was unfortunate, so far nothing yet is
> broken - it does not collide with any officially used country code. See
> also http://translationproject.org/team/index.html

I should have remembered. I’m a translator myself, and you can actually
find me in that page, in one of the teams…


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

On 2014-09-23 13:36, metalized wrote:

> it broke again. I just wonder if there is a way to just download the
> correct .mo files and replace the ones with the Cyrillic letters.

It is simple to create yourself the file you need (one), but you need
the corresponding sources (the .pot file, or missing that, a correct .po
file for any language).

“info gettext” for further info.

You could use “msgunfmt” to create a .po file out of a .mo file (any
one). You edit it - use emacs or mcedit, they understand the syntax (the
full blown “lokalize” is overkill for this task, IMO). There is first a
header block; you can modify it, but do not remove fields. You should at
least make sure the “Language” header line is correct. After that, you
find the message section similar to this:


msgid "              total memory: %d KiB
"
msgstr "                  pamięć całkowita: %d KiB
"

msgid "    No preferred mode available
"
msgstr "    Tryb preferowany niedostępny
"

msgid "    Preferred mode: %ux%u
"
msgstr "    Preferowany tryb: %ux%u
"

Do not touch any “msgid”! Just edit carefully all the “msgstr” like this:


msgid "              total memory: %d KiB
"
msgstr ""

msgid "    No preferred mode available
"
msgstr ""

msgid "    Preferred mode: %ux%u
"
msgstr ""

or like this:


#, fuzzy
msgid "              total memory: %d KiB
"
msgstr "                  pamięć całkowita: %d KiB
"

#, fuzzy
msgid "    No preferred mode available
"
msgstr "    Tryb preferowany niedostępny
"

#, fuzzy
msgid "    Preferred mode: %ux%u
"
msgstr "    Preferowany tryb: %ux%u
"

Any of that nullifies the translation, forcing the program to use its
internal strings. Then you have to create back the .mo file for your
language, using “msgfmt”. make sure to choose the correct name -
language and country codes are listed in the “info gettext” manual.

If that fails, you have to use the source tree (the .pot file
specially), and maybe a partial build (“make po”, perhaps).

HTH.


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

Please post your grub.cfg.