Есть ли способ, чтобы функция QLocale :: formattedDataSize возвращала количественные единицы перевода? - PullRequest
0 голосов
/ 27 августа 2018

QLocale :: formattedDataSize всегда возвращает английские единицы измерения.

1 Ответ

0 голосов
/ 28 августа 2018

Единицы четко переведены, как видно из исходного кода qlocale_data_p.h .

Этот закрытый заголовок определяет массив с именем byte_unit_data со следующим содержимым в виде символов:

byteskB; MB, GB, TB, PB, EBKiB; MiB; Гигабайт; TiB; PiB; EiBbytegrepebajt ባይትኪባ; ሜጋባይት; ጊባ; ቴራባይት; PB; EB بايتكيلوبايت; ميغابايت; غيغابايت; تيرابايت; PB; EB բայթերկԲ; ՄԲ; ԳԲ; ՏԲ ; РВ; EB বাইটকিঃ বাঃ; মেঃ বাঃ; গিঃ বাঃ; টেঃ বাঃ; РВ; EBbaytbyte-akoktedoùko; Мо; Go; To; Po; EoKio; Мио; Gio; Тио; Pio; Eioбайтове ဘိုက် байтыКБ; МБ; гб; PB; ТБ; EB បៃ 字节 千 字节; 兆 字节;吉 字节; 太 字节; РВ; EB 位元 組 bajtovibajtybaididbýtKB; МБ; ГБ; ТБ; РВ; EBtavutkt; Мт; Gt; Tt; Pt; EtKit; Мит; Гит; Тит; Пит; Eitoctetsbaidht ბაიტიკბაიტი; მბაიტი; გბაიტი; ტბაიტი; РВ; EBBytes બાઇટ בייט बाइट bájtbætibearta バ イ ト ಬೈಟ್ಗಳುಕಿ.ಬೈ;. ಮೆ.ಬೈ.; ಗಿ.ಬೈ.; ಟೆ.ಬೈ .; ПБ; EBбайткБ; MБ; ГБ; TБ; PБ; EБKiБ; MiБ; GiБ; TiБ; PiБ; EiБкБ; МБ; ГБ; ТБ; ПБ; ЕВ 바이트 baitibaitaiбајтиbait ബൈറ്റ്കി.ബി;. മെ.ബൈ.; ജി.ബൈ.; ടിബി; РВ; ЕВ ବାଇଟ୍ بایتکیلوبایت; مگابایت; گیگابایت; ترابایت; РВ; ЕВ ਬਾਇਟ byţiбајтови بائيٽزڪلو بائيٽز; ميگا بائيٽز; گيگا بائيٽز; ٽيرا بائيٽز; PB; EB බයිට්කිබ {0}; මෙබ {0}; ගිබ {0}; ටෙබ {0}; PB; EBkilobaiti {0}; MB {0}; GB {0}; терабаити {0}; PB; EB பைட்கள் బైట్‌లుకేబీ; ఎమ్‌బి; జీబీ; టీబీ; PB; EB ไบต์ paitikB`e {0}; MB`e {0}; GB`e {0}; TB`e {0}; PB`e {0}; EB'e {0} KiBʻe {0}; MiBʻe {

...

Таким образом, вы должны использовать правильную локаль (из местоположения в вашем профиле пользователя, я предполагаю, что это Русский ) и формат QLocale::DataSizeTraditionalFormat, например:

QLocale l(QLocale::Russian, QLocale::Russia);

l.formattedDataSize(154, 2, QLocale::DataSizeTraditionalFormat);        // "154 байты"
l.formattedDataSize(19324, 2, QLocale::DataSizeTraditionalFormat);      // "18,87 кБ"
l.formattedDataSize(125839324, 2, QLocale::DataSizeTraditionalFormat);  // "120,01 МБ"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...