svelte/svelte5手抜き国際化 の履歴(No.1)

更新


プログラミング/svelte

概要:英語版と日本語版を同時に開発したい

どうせ個人での開発なのでロケールファイルを切り出したりせず、手抜きでやりたい

日本語版と英語版を作れればいい

実現したい機能

  • /some/path/to/file ならブラウザの設定を読んで自動で表示言語を選択
  • /ja/some/path/to/file や /en/some/path/to/file を読めば指定の言語で表示
  • 言語切替ボタン

を実現したい

パスにオプションパラメータ locale を含める

3つの URL で実質的に同じ内容を表示することになるので1つにまとめたい

  • /some/path/to/file
  • /ja/some/path/to/file
  • /en/some/path/to/file

src/routes/locale=locales/some/path/to/file というパスにファイルを置けばこれが実現できる。

lib/params/locales.ts

LANG: ts
// locales[0] will be the default locale
export const locales = ['en', 'ja'] as const;

export type Locale = (typeof locales)[number];

// param が locales に含まれるかどうかを返す
export const match: ParamMatcher = (param) => {
  return (locales as readonly string[]).includes(param);
};

これで URL からロケールを拾えるようになった。


Counter: 231 (from 2010/06/03), today: 7, yesterday: 4