JDK-8223556 : Swing use English instead of system language
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 11,12,13
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic
  • CPU: x86_64
  • Submitted: 2019-05-06
  • Updated: 2019-09-10
  • Resolved: 2019-09-10
Related Reports
Duplicate :  
Description
ADDITIONAL SYSTEM INFORMATION :
System: Kubuntu 19.04 (Kernel 5.0.0-13-generic)

Working JDK ("./jdk1.8.0_211/bin/java -XshowSettings:locale -version"):
Locale settings:
    default locale = Deutsch
    default display locale = Deutsch (Deutschland)
    default format locale = Deutsch (Deutschland)
    available locales = , ar, ar_AE, ar_BH, ar_DZ, ar_EG, ar_IQ, ar_JO, 
        ar_KW, ar_LB, ar_LY, ar_MA, ar_OM, ar_QA, ar_SA, ar_SD, 
        ar_SY, ar_TN, ar_YE, be, be_BY, bg, bg_BG, ca, 
        ca_ES, cs, cs_CZ, da, da_DK, de, de_AT, de_CH, 
        de_DE, de_GR, de_LU, el, el_CY, el_GR, en, en_AU, 
        en_CA, en_GB, en_IE, en_IN, en_MT, en_NZ, en_PH, en_SG, 
        en_US, en_ZA, es, es_AR, es_BO, es_CL, es_CO, es_CR, 
        es_CU, es_DO, es_EC, es_ES, es_GT, es_HN, es_MX, es_NI, 
        es_PA, es_PE, es_PR, es_PY, es_SV, es_US, es_UY, es_VE, 
        et, et_EE, fi, fi_FI, fr, fr_BE, fr_CA, fr_CH, 
        fr_FR, fr_LU, ga, ga_IE, hi, hi_IN, hr, hr_HR, 
        hu, hu_HU, in, in_ID, is, is_IS, it, it_CH, 
        it_IT, iw, iw_IL, ja, ja_JP, ja_JP_JP_#u-ca-japanese, ko, ko_KR, 
        lt, lt_LT, lv, lv_LV, mk, mk_MK, ms, ms_MY, 
        mt, mt_MT, nl, nl_BE, nl_NL, no, no_NO, no_NO_NY, 
        pl, pl_PL, pt, pt_BR, pt_PT, ro, ro_RO, ru, 
        ru_RU, sk, sk_SK, sl, sl_SI, sq, sq_AL, sr, 
        sr_BA, sr_BA_#Latn, sr_CS, sr_ME, sr_ME_#Latn, sr_RS, sr_RS_#Latn, sr__#Latn, 
        sv, sv_SE, th, th_TH, th_TH_TH_#u-nu-thai, tr, tr_TR, uk, 
        uk_UA, vi, vi_VN, zh, zh_CN, zh_HK, zh_SG, zh_TW
        
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)


Not working JDK ("./jdk-12.0.1/bin/java -XshowSettings:locale -version"):
Locale settings:
    default locale = Deutsch (Deutschland)
    default display locale = Deutsch (Deutschland)
    default format locale = Deutsch (Deutschland)
    available locales = , af, af_NA, af_ZA, agq, agq_CM, ak, ak_GH, 
        am, am_ET, ar, ar_001, ar_AE, ar_BH, ar_DJ, ar_DZ, 
        ar_EG, ar_EH, ar_ER, ar_IL, ar_IQ, ar_JO, ar_KM, ar_KW, 
        ar_LB, ar_LY, ar_MA, ar_MR, ar_OM, ar_PS, ar_QA, ar_SA, 
        ar_SD, ar_SO, ar_SS, ar_SY, ar_TD, ar_TN, ar_YE, as, 
        as_IN, asa, asa_TZ, ast, ast_ES, az, az_AZ_#Cyrl, az_AZ_#Latn, 
        az__#Cyrl, az__#Latn, bas, bas_CM, be, be_BY, bem, bem_ZM, 
        bez, bez_TZ, bg, bg_BG, bm, bm_ML, bn, bn_BD, 
        bn_IN, bo, bo_CN, bo_IN, br, br_FR, brx, brx_IN, 
        bs, bs_BA_#Cyrl, bs_BA_#Latn, bs__#Cyrl, bs__#Latn, ca, ca_AD, ca_ES, 
        ca_ES_VALENCIA, ca_FR, ca_IT, ccp, ccp_BD, ccp_IN, ce, ce_RU, 
        cgg, cgg_UG, chr, chr_US, ckb, ckb_IQ, ckb_IR, cs, 
        cs_CZ, cu, cu_RU, cy, cy_GB, da, da_DK, da_GL, 
        dav, dav_KE, de, de_AT, de_BE, de_CH, de_DE, de_IT, 
        de_LI, de_LU, dje, dje_NE, dsb, dsb_DE, dua, dua_CM, 
        dyo, dyo_SN, dz, dz_BT, ebu, ebu_KE, ee, ee_GH, 
        ee_TG, el, el_CY, el_GR, en, en_001, en_150, en_AG, 
        en_AI, en_AS, en_AT, en_AU, en_BB, en_BE, en_BI, en_BM, 
        en_BS, en_BW, en_BZ, en_CA, en_CC, en_CH, en_CK, en_CM, 
        en_CX, en_CY, en_DE, en_DG, en_DK, en_DM, en_ER, en_FI, 
        en_FJ, en_FK, en_FM, en_GB, en_GD, en_GG, en_GH, en_GI, 
        en_GM, en_GU, en_GY, en_HK, en_IE, en_IL, en_IM, en_IN, 
        en_IO, en_JE, en_JM, en_KE, en_KI, en_KN, en_KY, en_LC, 
        en_LR, en_LS, en_MG, en_MH, en_MO, en_MP, en_MS, en_MT, 
        en_MU, en_MW, en_MY, en_NA, en_NF, en_NG, en_NL, en_NR, 
        en_NU, en_NZ, en_PG, en_PH, en_PK, en_PN, en_PR, en_PW, 
        en_RW, en_SB, en_SC, en_SD, en_SE, en_SG, en_SH, en_SI, 
        en_SL, en_SS, en_SX, en_SZ, en_TC, en_TK, en_TO, en_TT, 
        en_TV, en_TZ, en_UG, en_UM, en_US, en_US_POSIX, en_VC, en_VG, 
        en_VI, en_VU, en_WS, en_ZA, en_ZM, en_ZW, eo, eo_001, 
        es, es_419, es_AR, es_BO, es_BR, es_BZ, es_CL, es_CO, 
        es_CR, es_CU, es_DO, es_EA, es_EC, es_ES, es_GQ, es_GT, 
        es_HN, es_IC, es_MX, es_NI, es_PA, es_PE, es_PH, es_PR, 
        es_PY, es_SV, es_US, es_UY, es_VE, et, et_EE, eu, 
        eu_ES, ewo, ewo_CM, fa, fa_AF, fa_IR, ff, ff_CM, 
        ff_GN, ff_MR, ff_SN, fi, fi_FI, fil, fil_PH, fo, 
        fo_DK, fo_FO, fr, fr_BE, fr_BF, fr_BI, fr_BJ, fr_BL, 
        fr_CA, fr_CD, fr_CF, fr_CG, fr_CH, fr_CI, fr_CM, fr_DJ, 
        fr_DZ, fr_FR, fr_GA, fr_GF, fr_GN, fr_GP, fr_GQ, fr_HT, 
        fr_KM, fr_LU, fr_MA, fr_MC, fr_MF, fr_MG, fr_ML, fr_MQ, 
        fr_MR, fr_MU, fr_NC, fr_NE, fr_PF, fr_PM, fr_RE, fr_RW, 
        fr_SC, fr_SN, fr_SY, fr_TD, fr_TG, fr_TN, fr_VU, fr_WF, 
        fr_YT, fur, fur_IT, fy, fy_NL, ga, ga_IE, gd, 
        gd_GB, gl, gl_ES, gsw, gsw_CH, gsw_FR, gsw_LI, gu, 
        gu_IN, guz, guz_KE, gv, gv_IM, ha, ha_GH, ha_NE, 
        ha_NG, haw, haw_US, hi, hi_IN, hr, hr_BA, hr_HR, 
        hsb, hsb_DE, hu, hu_HU, hy, hy_AM, ig, ig_NG, 
        ii, ii_CN, in, in_ID, is, is_IS, it, it_CH, 
        it_IT, it_SM, it_VA, iw, iw_IL, ja, ja_JP, ja_JP_JP_#u-ca-japanese, 
        jgo, jgo_CM, ji, ji_001, jmc, jmc_TZ, ka, ka_GE, 
        kab, kab_DZ, kam, kam_KE, kde, kde_TZ, kea, kea_CV, 
        khq, khq_ML, ki, ki_KE, kk, kk_KZ, kkj, kkj_CM, 
        kl, kl_GL, kln, kln_KE, km, km_KH, kn, kn_IN, 
        ko, ko_KP, ko_KR, kok, kok_IN, ks, ks_IN, ksb, 
        ksb_TZ, ksf, ksf_CM, ksh, ksh_DE, kw, kw_GB, ky, 
        ky_KG, lag, lag_TZ, lb, lb_LU, lg, lg_UG, lkt, 
        lkt_US, ln, ln_AO, ln_CD, ln_CF, ln_CG, lo, lo_LA, 
        lrc, lrc_IQ, lrc_IR, lt, lt_LT, lu, lu_CD, luo, 
        luo_KE, luy, luy_KE, lv, lv_LV, mas, mas_KE, mas_TZ, 
        mer, mer_KE, mfe, mfe_MU, mg, mg_MG, mgh, mgh_MZ, 
        mgo, mgo_CM, mk, mk_MK, ml, ml_IN, mn, mn_MN, 
        mr, mr_IN, ms, ms_BN, ms_MY, ms_SG, mt, mt_MT, 
        mua, mua_CM, my, my_MM, mzn, mzn_IR, naq, naq_NA, 
        nb, nb_NO, nb_SJ, nd, nd_ZW, nds, nds_DE, nds_NL, 
        ne, ne_IN, ne_NP, nl, nl_AW, nl_BE, nl_BQ, nl_CW, 
        nl_NL, nl_SR, nl_SX, nmg, nmg_CM, nn, nn_NO, nnh, 
        nnh_CM, no, no_NO, no_NO_NY, nus, nus_SS, nyn, nyn_UG, 
        om, om_ET, om_KE, or, or_IN, os, os_GE, os_RU, 
        pa, pa_IN_#Guru, pa_PK_#Arab, pa__#Arab, pa__#Guru, pl, pl_PL, prg, 
        prg_001, ps, ps_AF, pt, pt_AO, pt_BR, pt_CH, pt_CV, 
        pt_GQ, pt_GW, pt_LU, pt_MO, pt_MZ, pt_PT, pt_ST, pt_TL, 
        qu, qu_BO, qu_EC, qu_PE, rm, rm_CH, rn, rn_BI, 
        ro, ro_MD, ro_RO, rof, rof_TZ, ru, ru_BY, ru_KG, 
        ru_KZ, ru_MD, ru_RU, ru_UA, rw, rw_RW, rwk, rwk_TZ, 
        sah, sah_RU, saq, saq_KE, sbp, sbp_TZ, sd, sd_PK, 
        se, se_FI, se_NO, se_SE, seh, seh_MZ, ses, ses_ML, 
        sg, sg_CF, shi, shi_MA_#Latn, shi_MA_#Tfng, shi__#Latn, shi__#Tfng, si, 
        si_LK, sk, sk_SK, sl, sl_SI, smn, smn_FI, sn, 
        sn_ZW, so, so_DJ, so_ET, so_KE, so_SO, sq, sq_AL, 
        sq_MK, sq_XK, sr, sr_BA, sr_BA_#Cyrl, sr_BA_#Latn, sr_CS, sr_ME, 
        sr_ME_#Cyrl, sr_ME_#Latn, sr_RS, sr_RS_#Cyrl, sr_RS_#Latn, sr_XK_#Cyrl, sr_XK_#Latn, sr__#Cyrl, 
        sr__#Latn, sv, sv_AX, sv_FI, sv_SE, sw, sw_CD, sw_KE, 
        sw_TZ, sw_UG, ta, ta_IN, ta_LK, ta_MY, ta_SG, te, 
        te_IN, teo, teo_KE, teo_UG, tg, tg_TJ, th, th_TH, 
        th_TH_TH_#u-nu-thai, ti, ti_ER, ti_ET, tk, tk_TM, to, to_TO, 
        tr, tr_CY, tr_TR, tt, tt_RU, twq, twq_NE, tzm, 
        tzm_MA, ug, ug_CN, uk, uk_UA, ur, ur_IN, ur_PK, 
        uz, uz_AF_#Arab, uz_UZ_#Cyrl, uz_UZ_#Latn, uz__#Arab, uz__#Cyrl, uz__#Latn, vai, 
        vai_LR_#Latn, vai_LR_#Vaii, vai__#Latn, vai__#Vaii, vi, vi_VN, vo, vo_001, 
        vun, vun_TZ, wae, wae_CH, wo, wo_SN, xog, xog_UG, 
        yav, yav_CM, yo, yo_BJ, yo_NG, yue, yue_CN_#Hans, yue_HK_#Hant, 
        yue__#Hans, yue__#Hant, zgh, zgh_MA, zh, zh_CN, zh_CN_#Hans, zh_HK, 
        zh_HK_#Hans, zh_HK_#Hant, zh_MO_#Hans, zh_MO_#Hant, zh_SG, zh_SG_#Hans, zh_TW, zh_TW_#Hant, 
        zh__#Hans, zh__#Hant, zu, zu_ZA
openjdk version "12.0.1" 2019-04-16
OpenJDK Runtime Environment (build 12.0.1+12)
OpenJDK 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)

A DESCRIPTION OF THE PROBLEM :
Swing dialogs are displayed in English instead of the system language. In Java 1.8 it worked as expected, with the same source code.

REGRESSION : Last worked in version 8u211

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Execute the source code below

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Buttons are labeled in system language (in German: "Ja" and "Nein"), like it does under Java 1.8
ACTUAL -
Buttons are labeled in English ("Yes" and "No")

---------- BEGIN SOURCE ----------
import javax.swing.JOptionPane;

public class SwingTest {
	public static void main(String[] args) {
		JOptionPane.showConfirmDialog(null, "Test", "Test", JOptionPane.YES_NO_OPTION);
	}
}
---------- END SOURCE ----------

FREQUENCY : always



Comments
Additional comment from submitter: ============================ Problem still exists on Windows with OpenJDK 12.0.2. Is there at least a workaround for that problem? ============================
10-09-2019

Needs info from build or i18n team on if some resource bundle change is made on 11b19
01-07-2019

It does not seem to be client issue as local build with official compiler VS2017 passes, showing "Ja" "Nein" as Yes/No option, maybe i18n or resource bundle issue. I am not able to reproduce in my windows10 Pro 1809 jdk14 build.
01-07-2019

It seems to have regressed from jdk11-b19 onwards. Looking into 12 client changes that has gone in 11b19 https://bugs.openjdk.java.net/browse/JDK-8200353?jql=project%20%3D%20JDK%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%20%2211%22%20AND%20component%20%3D%20client-libs%20AND%20%22Resolved%20In%20Build%22%20%3D%20b19%20ORDER%20BY%20assignee%20ASC%2C%20priority%20DESC%2C%20key%20DESC I could not see any fix that will affect this behaviour. More strangely, promoted bundle jdk13+21 fails but when I updated my local jdk/client workspace to 15/5 latest (without any local changes) and build with VS2017, I am not able to see the issue. Attached screenshot with my local build
16-05-2019

Reported as a regression in JDK 12.0.1, where Swing dialog are displayed in English instead of system language. Checked this with Windows 10 and Kubuntu 19.04 and confirms the issue. System Locale/Display Language: German Result: ======== 8u212: OK 10.0.2: OK 11: Fail 12: Fail 13 ea b19: Fail This is a regression introduced in JDK 11. See attached screenshots as reference where the buttons are labelled in English even though the system language is German. To verify, run the attached test case with respective JDK version. Make sure that the system locale and display language is German.
08-05-2019