HTMLではlang属性に言語コードを指定することで、その要素または子孫要素のコンテンツがどんな言語で書かれているかを指定することができます。

<html lang="ja"> ... </html>

それをCSSのセレクタで拾うこともできます。

:lang(ja) {
// lang="ja" にも lang="ja-JP" にもマッチ
// 子孫要素にもマッチする(継承ではなく)
font-family: 'こうして日本語対応フォントを書くなど'
}
[lang="ja"] {
// lang="ja" にのみマッチ
font-family: 'こうして日本語対応フォントを書くなど'
}

JavaScriptでは、Intl系メソッドの第一引数にて指定することで、日付表記や価格表記をローカライズできます。詳しくは別の記事で解説してあります。 JavaScriptにおける言語コード指定の詳解 | listful

Intl.DateTimeFormat('ja-u-ca-japanese'/* locales引数 */, {
dateStyle: 'full',
timeStyle: 'full'
}).format(dateObj);

主な言語コードの一覧

指定値言語
ja日本語
en-USアメリカ英語
ko-KR韓国語
zh-Hans中国語(繁体字)
zh-Hant中国語(簡体字)
ar-SAアラビア語(サウジアラビア)
bn-BDベンガル語(バングラデシュ)
bn-INベンガル語(インド)
csチェコ語
da-DKデンマーク語(デンマーク)
de-ATオーストリアドイツ語
de-CHスイスドイツ語
de-DEドイツ語(ドイツ)
el-GR現代ギリシア語
en-AUオーストラリア英語
en-CAカナダ英語
en-GBイギリス英語(グレートブリテン)
en-IEアイルランド英語
en-INインド英語
en-NZニュージーランド英語
en-ZA南アフリカ英語
es-ARスペイン語(アルゼンチン)
es-CLチリスペイン語
es-COスペイン語(コロンビア)
es-ESスペイン語(カスティリャ語)
es-MXスペイン語(メキシコ)
es-USスペイン語(アメリカ)
fiフィンランド語
fr-BEベルギー・フランス語
fr-CAカナダ・フランス語
fr-CHスイス・フランス語
fr-FRフランス語(フランス)
he-ILヘブライ語(イスラエル)
hi-INヒンディー語(インド)
huハンガリー語
idインドネシア語
it-CHイタリア語(スイス)
it-ITイタリア語(イタリア)
nl-BEオランダ語(ベルギー)
nl-NLオランダ語(オランダ)
noノルウェー語
pl-PLポーランド語(ポーランド)
pt-BRブラジルポルトガル語
pt-PTイベリアポルトガル語(ポルトガル)
ro-ROルーマニア語(ルーマニア)
ru-RUロシア語(ロシア連邦)
skスロバキア語
sv-SEスウェーデン語(スウェーデン)
ta-INタミル語(インド)
ta-LKタミル語(スリランカ)
th-THタミル語(タイ)
tr-TRトルコ語(トルコ)

実装の違いについて

全ての言語コードが全てのブラウザで動作するとは限りません。例えばMac Safari 14.0において、ノルウェー語を示すnoは認識されないので、OSまたはブラウザ既定の言語形式でフォーマットされてしまいます。


参考リンク