macalbert/envilder/website-i18n

Claude Code and agent skill by macalbert/envilder

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Envilder website internationalization workflow. Use when adding, editing, or reviewing translated strings, creating localized pages, or verifying i18n completeness. Covers the full lifecycle from type definition to locale files.

Install

npx vskill@latest install macalbert/envilder/website-i18n

SKILL.md

Website i18n

Every user-visible string on the Envilder website MUST go through the i18n system. Never hardcode text in components.

When to Use

  • Adding new user-visible text to any component or page
  • Creating a new page (must create locale variants)
  • Reviewing PRs that add/change website content
  • Checking i18n completeness after content changes

File Locations

WhatWhere
Translation typessrc/website/src/i18n/types.ts
Locale filessrc/website/src/i18n/{en,ca,es}.ts (one per locale)
i18n utilitiessrc/website/src/i18n/utils.ts
Astro i18n configsrc/website/astro.config.mjs → i18n.locales
Pages (default locale)src/website/src/pages/*.astro
Pages (other locales)src/website/src/pages/<locale>/*.astro

Adding New Translations: 4-Step Workflow

1. Define the type

Add the new key structure in src/website/src/i18n/types.ts:

typescript
// In the Translations interface
section: {
title: string;
description: string;
};
2. Add strings to every locale file

Update all locale files in src/website/src/i18n/:

  • en.ts: English (source)
  • ca.ts: Catalan
  • es.ts: Spanish

TypeScript will error if any locale is missing a key defined in types.ts.

3. Use in component

Access translations via the useTranslations helper:

astro
---
import { useTranslations } from '../i18n/utils';
const { lang = 'en' } = Astro.props;
const t = useTranslations(lang);
---
<h2>{t.section.title}</h2>
<p>{t.section.description}</p>
4. Create localized pages

For new pages:

  • Default locale: src/website/src/pages/new-page.astro
  • Other locales: src/website/src/pages/<locale>/new-page.astro

Check astro.config.mjs → i18n.locales to discover all active locales.

Terms That MUST NOT Be Translated

Product names, CLI flags, code tokens, and acronyms stay in English:

envilder, AWS SSM, Azure Key Vault, GitHub Action, envilder.json, .env, --map, --envfile, envilder exec, --provider, --push, CI/CD, IAM, RBAC, CLI, API, JSON, YAML, Node.js, pnpm, npx

Constraints

  • Never hardcode user-visible text: always use i18n keys
  • Never hardcode version numbers: use __SDK_*_VERSION__ / __APP_VERSION__

globals from astro.config.mjs

  • All 3 locales must be updated simultaneously (TypeScript catches mismatches)
  • Preserve existing key structure: add new keys, don't rename existing ones

without updating all references

Verification

After adding translations:

  1. TypeScript compilation catches missing keys (tsc --noEmit or dev server)
  2. Navigate to each locale in dev server to verify text renders
  3. Optionally delegate to @i18n Reviewer for linguistic quality check

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
135
Repository forks
4
7-day trend score
25

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/macalbert/envilder/website-i18n/badge)](https://verified-skill.com/skills/macalbert/envilder/website-i18n)

Something wrong with this skill or its page? Tell us.