LINUX.ORG.RU

qt4 и непонятка с locale...


0

0

Собственно есть проблемка...

$ locale LANG=uk_UA.KOI8-U LC_CTYPE="uk_UA.KOI8-U" LC_NUMERIC="uk_UA.KOI8-U" LC_TIME="uk_UA.KOI8-U" LC_COLLATE="uk_UA.KOI8-U" LC_MONETARY="uk_UA.KOI8-U" LC_MESSAGES="uk_UA.KOI8-U" LC_PAPER="uk_UA.KOI8-U" LC_NAME="uk_UA.KOI8-U" LC_ADDRESS="uk_UA.KOI8-U" LC_TELEPHONE="uk_UA.KOI8-U" LC_MEASUREMENT="uk_UA.KOI8-U" LC_IDENTIFICATION="uk_UA.KOI8-U" LC_ALL=

Пишем код:

QMessageBox::critical(this, "test", tr("%1").arg(QLocale::system().name()));

Выводит что системная локаль "С"... В чем модет быть косяк?

Ответ на: комментарий от wfrr

$ locale -a
aa_DJ
aa_DJ.utf8
aa_ER
aa_ER@saaho
aa_ET
af_ZA
af_ZA.utf8
am_ET
an_ES
an_ES.utf8
ar_AE
ar_AE.utf8
ar_BH
ar_BH.utf8
ar_DZ
ar_DZ.utf8
ar_EG
ar_EG.utf8
ar_IN
ar_IQ
ar_IQ.utf8
ar_JO
ar_JO.utf8
ar_KW
ar_KW.utf8
ar_LB
ar_LB.utf8
ar_LY
ar_LY.utf8
ar_MA
ar_MA.utf8
ar_OM
ar_OM.utf8
ar_QA
ar_QA.utf8
ar_SA
ar_SA.utf8
ar_SD
ar_SD.utf8
ar_SY
ar_SY.utf8
ar_TN
ar_TN.utf8
ar_YE
ar_YE.utf8
as_IN.utf8
ast_ES
ast_ES.utf8
az_AZ.utf8
be_BY
be_BY@latin
be_BY.utf8
ber_DZ
ber_MA
bg_BG
bg_BG.utf8
bn_BD
bn_IN
br_FR
br_FR@euro
br_FR.utf8
bs_BA
bs_BA.utf8
byn_ER
C
ca_AD
ca_AD.utf8
ca_ES
ca_ES@euro
ca_ES.utf8
ca_ES.utf8@valencia
ca_ES@valencia
ca_FR
ca_FR.utf8
ca_IT
ca_IT.utf8
crh_UA
csb_PL
cs_CZ
cs_CZ.utf8
cy_GB
cy_GB.utf8
da_DK
da_DK.utf8
de_AT
de_AT@euro
de_AT.utf8
de_BE
de_BE@euro
de_BE.utf8
de_CH
de_CH.utf8
de_DE
de_DE@euro
de_DE.utf8
de_LU
de_LU@euro
de_LU.utf8
dz_BT
el_CY
el_CY.utf8
el_GR
el_GR.utf8
en_AU
en_AU.utf8
en_BW
en_BW.utf8
en_CA
en_CA.utf8
en_DK
en_DK.utf8
en_GB
en_GB.utf8
en_HK
en_HK.utf8
en_IE
en_IE@euro
en_IE.utf8
en_IN
en_NG
en_NZ
en_NZ.utf8
en_PH
en_PH.utf8
en_SG
en_SG.utf8
en_US
en_US.utf8
en_ZA
en_ZA.utf8
en_ZW
en_ZW.utf8
es_AR
es_AR.utf8
es_BO
es_BO.utf8
es_CL
es_CL.utf8
es_CO
es_CO.utf8
es_CR
es_CR.utf8
es_DO
es_DO.utf8
es_EC
es_EC.utf8
es_ES
es_ES@euro
es_ES.utf8
es_GT
es_GT.utf8
es_HN
es_HN.utf8
es_MX
es_MX.utf8
es_NI
es_NI.utf8
es_PA
es_PA.utf8
es_PE
es_PE.utf8
es_PR
es_PR.utf8
es_PY
es_PY.utf8
es_SV
es_SV.utf8
es_US
es_US.utf8
es_UY
es_UY.utf8
es_VE
es_VE.utf8
et_EE
et_EE.iso885915
et_EE.utf8
eu_ES
eu_ES@euro
eu_ES.utf8
fa_IR
fi_FI
fi_FI@euro
fi_FI.utf8
fil_PH
fo_FO
fo_FO.utf8
fr_BE
fr_BE@euro
fr_BE.utf8
fr_CA
fr_CA.utf8
fr_CH
fr_CH.utf8
fr_FR
fr_FR@euro
fr_FR.utf8
fr_LU
fr_LU@euro
fr_LU.utf8
fur_IT
fy_DE
fy_NL
ga_IE
ga_IE@euro
ga_IE.utf8
gd_GB
gd_GB.utf8
gez_ER
gez_ER@abegede
gez_ET
gez_ET@abegede
gl_ES
gl_ES@euro
gl_ES.utf8
gu_IN
gv_GB
gv_GB.utf8
ha_NG
he_IL
he_IL.utf8
hi_IN
hr_HR
hr_HR.utf8
hsb_DE
hsb_DE.utf8
hu_HU
hu_HU.utf8
hy_AM
hy_AM.armscii8
id_ID
id_ID.utf8
ig_NG
ik_CA
is_IS
is_IS.utf8
it_CH
it_CH.utf8
it_IT
it_IT@euro
it_IT.utf8
iu_CA
iw_IL
iw_IL.utf8
ja_JP.eucjp
ja_JP.utf8
ka_GE
ka_GE.utf8
kk_KZ
kk_KZ.utf8
kl_GL
kl_GL.utf8
km_KH
kn_IN
ko_KR.euckr
ko_KR.utf8
ku_TR
ku_TR.utf8
kw_GB
kw_GB.utf8
ky_KG
lg_UG
lg_UG.utf8
li_BE
li_NL
lo_LA
lt_LT
lt_LT.utf8
lv_LV
lv_LV.utf8
mai_IN
mg_MG
mg_MG.utf8
mi_NZ
mi_NZ.utf8
mk_MK
mk_MK.utf8
ml_IN
mn_MN
mr_IN
ms_MY
ms_MY.utf8
mt_MT
mt_MT.utf8
nb_NO
nb_NO.utf8
nds_DE
nds_NL
ne_NP
nl_BE
nl_BE@euro
nl_BE.utf8
nl_NL
nl_NL@euro
nl_NL.utf8
nn_NO
nn_NO.utf8
nr_ZA
nso_ZA
oc_FR
oc_FR.utf8
om_ET
om_KE
om_KE.utf8
or_IN
pa_IN
pap_AN
pa_PK
pl_PL
pl_PL.utf8
POSIX
pt_BR
pt_BR.utf8
pt_PT
pt_PT@euro
pt_PT.utf8
ro_RO
ro_RO.utf8
ru_RU
ru_RU.koi8r
ru_RU.utf8
ru_UA
ru_UA.utf8
rw_RW
sa_IN
sc_IT
se_NO
sid_ET
si_LK
sk_SK
sk_SK.utf8
sl_SI
sl_SI.utf8
so_DJ
so_DJ.utf8
so_ET
so_KE
so_KE.utf8
so_SO
so_SO.utf8
sq_AL
sq_AL.utf8
sr_ME
sr_RS
sr_RS@latin
ss_ZA
st_ZA
st_ZA.utf8
sv_FI
sv_FI@euro
sv_FI.utf8
sv_SE
sv_SE.utf8
ta_IN
te_IN
tg_TJ
tg_TJ.utf8
th_TH
th_TH.utf8
ti_ER
ti_ET
tig_ER
tk_TM
tl_PH
tl_PH.utf8
tn_ZA
tr_CY
tr_CY.utf8
tr_TR
tr_TR.utf8
ts_ZA
tt_RU@iqtelif.UTF-8
tt_RU.utf8
ug_CN
uk_UA
uk_UA.utf8
ur_PK
uz_UZ
uz_UZ@cyrillic
ve_ZA
vi_VN
vi_VN.tcvn
wa_BE
wa_BE@euro
wa_BE.utf8
wo_SN
xh_ZA
xh_ZA.utf8
yi_US
yi_US.utf8
yo_NG
zh_CN
zh_CN.gb18030
zh_CN.gbk
zh_CN.utf8
zh_HK
zh_HK.utf8
zh_SG
zh_SG.gbk
zh_SG.utf8
zh_TW
zh_TW.euctw
zh_TW.utf8
zu_ZA
zu_ZA.utf8

Evil_Wizard ★★★
() автор топика
Ответ на: комментарий от Evil_Wizard

У вас нет указанной локали uk_UA.KOI8-U

нужно ее собрать, если я верно помню то командой locale-gen предварительно добавив локаль в нужный конфиг (d в убунте /var/lib/belocs/list )

wfrr ★★☆
()
Ответ на: комментарий от wfrr

Нужна именно украинская локаль :)

$ locale -a
C
en_US
en_US.utf8
POSIX
ru_RU
ru_RU.koi8r
ru_RU.utf8
ru_UA
uk_UA
uk_UA.koi8u
uk_UA.utf8

Qt прога всеравно упорно показывает локаль "С" :(

Evil_Wizard ★★★
() автор топика
Ответ на: комментарий от Evil_Wizard

Заморочка скорее всего в том, что uk_UA.KOI8-U не равно uk_UA.koi8u нужно переименовать или симлинк делать, может тут /etc/locale.alias

wfrr ★★☆
()
Ответ на: комментарий от wfrr

То же самое :)

Кстати локаль в принципе установлена обсолютно верно:

$ date п'ятниця, 21 березня 2008 15:18:15 +0200

А вот qt всеравно гнет "С" :) Причем код показываюший состояние переменной окружения отображает все верно :)

Evil_Wizard ★★★
() автор топика

// try exec at program startut

setlocale(LC_ALL, ""); // in C

//or

std::loacle::global(loc); // in C++

anonymous
()
Ответ на: комментарий от Evil_Wizard

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

wfrr ★★☆
()
Ответ на: комментарий от JackYF

Не хочется утф :) да и нужно чтобы этот код работал на любой пользовательской локали...

Evil_Wizard ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.