[筆記] Facebook Open Graph 的 og:locale 該如何設定?

Facebook 的開放社交關係圖(Open Graph)針對 og:locale 的規範不曉得是不是有更新,以至於檢查網頁抓取資訊的時候噴了一個我沒看過的錯:
enter image description here

「 website 」類型的 URL「 https://www.example.com 」無效,因為「 og:locale:locale 」特性的指定值「 XX 」無法作為「 enum 」類型進行剖析。
Object at URL ‘https://www.example.com’ of type ‘website’ is invalid because the given value ‘XX’ for property ‘og:locale:locale’ could not be parsed as type ‘enum’.


查了一下發現是語言格式錯了,Facebook 的格式不是完全依照 ISO 標準,依據本地化文件的說明:

Facebook 上的語言使用 ll_CC 格式,ll 是兩個字母的語言代碼,CC 是兩個字母的國家/地區代碼。例如,en_US 代表美式英文。 我們支援許多 ISO 語言和國碼/區碼


SDK 文件裡面可以看到目前 Facebook 支援的 og:locate 列舉如下:

Allowed values: en_us, ca_es, cs_cz, cx_ph, cy_gb, da_dk, de_de, eu_es, en_pi, en_ud, ck_us, es_la, es_es, es_mx, gn_py, fi_fi, fr_fr, gl_es, ht_ht, hu_hu, it_it, ja_jp, ko_kr, nb_no, nn_no, nl_nl, fy_nl, pl_pl, pt_br, pt_pt, ro_ro, ru_ru, sk_sk, sl_si, sv_se, th_th, tr_tr, ku_tr, zh_cn, zh_hk, zh_tw, fb_lt, af_za, sq_al, hy_am, az_az, be_by, bn_in, bs_ba, bg_bg, hr_hr, nl_be, en_gb, eo_eo, et_ee, fo_fo, fr_ca, ka_ge, el_gr, gu_in, hi_in, is_is, id_id, ga_ie, jv_id, kn_in, kk_kz, ky_kg, la_va, lv_lv, li_nl, lt_lt, mi_nz, mk_mk, mg_mg, ms_my, mt_mt, mr_in, mn_mn, ne_np, pa_in, rm_ch, sa_in, sr_rs, so_so, sw_ke, tl_ph, ta_in, tt_ru, te_in, ml_in, uk_ua, uz_uz, vi_vn, xh_za, zu_za, km_kh, tg_tj, ar_ar, he_il, ur_pk, fa_ir, sy_sy, yi_de, qc_gt, qu_pe, ay_bo, se_no, ps_af, tl_st, gx_gr, my_mm, qz_mm, or_in, si_lk, rw_rw, ak_gh, nd_zw, sn_zw, cb_iq, ha_ng, yo_ng, ja_ks, lg_ug, br_fr, zz_tr, tz_ma, co_fr, ig_ng, as_in, am_et, lo_la, ny_mw, wo_sn, ff_ng, sc_it, ln_cd, tk_tm, sz_pl, bp_in, ns_za, tn_bw, st_za, ts_za, ss_sz, ks_in, ve_za, nr_za, ik_us, su_id, om_et, em_zm and qr_gr

結果自己 SDK 文件裡的語言格式,最後兩字母都沒有大寫呢,呵呵。


參考資料