Also, you missed other language codes for French: 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_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.
However I am Canadian and I speak French. It will recognise fr-CA as "Canada".
This is accessory; the goal is to suggest relevant options for someone based on the language they configured their browser with.
> Also, you missed other language codes for French: […]
These are combinations of a language code (fr) and a region code; the list is not standardized and could theorically be extended to all the regions with an ISO code. What’s interesting here is the region code, not the language.