Sua pergunta lida com vários tópicos:
I) Como você já notou: hard coding algo em HTML é muito pouco flexível. Você deve evitar isso.
II) Os valores de seu select
representam uma lista de dados . O lugar para manter seus dados é tipicamente em algum banco de dados. O formato em que você o armazena é o formulário canônico para seu aplicativo (qualquer idioma que você use internamente).
III) Fora do seu aplicativo, você usa uma representação internacionalizada do seu formulário canônico . Isso envolve em algum lugar uma tradução -step no seu pipeline de renderização .
Onde você armazena as strings traduzidas, depende de você e de seu aplicativo;
o caminho comum é properties
.