Para fazer um site multilingual, eu uso o plugin Polylang. O problema é que as bandeiras padrão são feias, mas é possível usar bandeiras personalizadas. É necessário criar uma pasta “polylang” dentro do tema filho e nomear as bandeiras segundo as línguas (ex: pt_br ou en_us). Depois, é necessário ir no painel administrativo em Idiomas > Configurações > Modificações de URL e salvar. Isso está explicado em: https://polylang.pro/doc/can-i-use-my-own-flags-for-the-language-switcher/.
Para incluir o seletor de idiomas no menu, deve-se ir em Aparência > Menus e, nas Opções de Tela, selecionar Seletor de Idiomas. Agora ele vai aparecer como opção para ser incluso no menu. Para mostrar as bandeiras, é necessário selecionar Exibir bandeiras.
Para ajustar o espaçamento entre as bandeiras no menu para que elas não fiquem tão longe umas das outras (caso esteja usando o módulo Menu), é necessário incluir o seguinte código:
/*Cabeçalho - Distância das Bandeiras */
.et_pb_menu .et-menu.nav li.menu-item.lang-item {
padding-right: 0px !important;
}
Coloco aqui os arquivos das bandeiras que eu tenho, já no tamanho certo para irem no menu:




