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.