画面に表示する文字列を多言語化する[typescript]

アプリケーションの画面などでメッセージを日本語や英語でメッセージを出しわける処理を作ってみました

export const message_en = {
  welcome:'Welcome'
}

export const message_ja = {
  welcome:'ようこそ'
}

上記のようなメッセージを定義した変数がある場合に開いているブラウザの言語によってメッセージを出しわけるようにします

実際に取得する関数

export const getMessages = () => {
  const lang = window.navigator.language;
  if (lang === 'ja') {
    return message_ja;
  } else {
    return message_en;
  }
};

window.navigator.languageで開いているブラウザの言語を取得します
それが”ja”(chromeの日本語)であれば日本語のメッセージ、それ以外なら英語のメッセージを取得します。

window.navigator.languageはhttps://developer.mozilla.org/ja/docs/Web/API/Navigator/languageから詳細を確認できます

基本的にwindow.navigator.languageの処理は最近使用されているchromeやsafariなどの主要なブラウザでは利用することができます