Paraglide i18n abstract gradient
Message-driven i18n with generated helpers and zero runtime bloat.
Blog Post

Multilingual SvelteKit with Paraglide β€” Lightweight i18n

β€’ 5 min read
#SvelteKit#i18n#Paraglide#Localization

Paraglide generates typed message functions from JSON files β€” no heavy runtime.

Messages

// messages/en.json
{ "blog": { "title": "Blog", "read_more": "Read more" } }

Usage

<script>
  import { m } from '$lib/paraglide/messages.js';
  const ml = m as any;
</script>

<h1>{ml['blog.title']()}</h1>

Tips

  • Store content in markdown; translate UI only
  • Use a getLocale() helper to format dates
  • Avoid hardcoding β€” always go through messages

This keeps your portfolio fast, typed, and maintainable across languages.