TRIGGER this skill when the user wants to add multi-language support, internationalization, i18n, locale switching, or translate their Spring Boot app UI into multiple languages. Adds Spring MessageSource, message property files, a locale switcher component, and Thymeleaf #{key} integration. Prerequisites: setup, scaffold must be installed.
Adds full internationalization (i18n) support to a Spring Boot + Thymeleaf app:
Spring MessageSource configuration, per-locale message property files, a
CookieLocaleResolver-based locale switcher, and Thymeleaf #{key} integration.
Read .spring-config.json. Extract:
app_name → used in page titles
base_package → Java package root
language → respond in this language for ALL output (questions, explanations,
status messages, code comments, and user-facing copy in generated files)
IMPORTANT: if "zh-TW", "traditional-chinese", or "繁體中文":
use 繁體中文 (Traditional Chinese) throughout
NEVER use Simplified Chinese (简体中文) — they are different writing systems
Key differences: 體/体, 語/语, 資料/数据, 設定/设定, 確認/确认, 請/请
translate_terms → whether to translate technical terms
beginner_friendly → if true, explain technical terms and decisions as you work
test_mode → controls build verification
installed_modules → checked for hard and soft prerequisites
Language activation: After reading
languageabove, switch ALL your responses to that language immediately — including every question, status message, explanation, and all human-readable text in any generated files (HTML, Thymeleaf templates, property file comments). Iflanguageis not set, ask: "What language should I use? (English / 繁體中文 / other)"
Verify installed_modules contains "setup" and "scaffold".
If either is missing, stop and tell the user:
Missing prerequisites: {{missing_module}} must be installed first.
Run springboot-menu to see the guided install order.
Check if "membership" is in installed_modules.
If beginner_friendly is true in .spring-config.json, explain key concepts as you work. Examples:
MessageSource: "Instead of hardcoding text like 'Sign In' directly in your HTML, you put it in a .properties file. Spring swaps in the right translation based on the user's language."LocaleResolver: "This decides which language to show each user — based on a cookie, a URL parameter, or their browser settings. We use cookies so the choice is remembered across page loads."#{key} in Thymeleaf: "The #{} syntax tells Thymeleaf to look up a message key. The text inside the tag is just a fallback that shows in your IDE preview — Spring replaces it at runtime."Ask the user which languages they want to add. Suggest:
ko, fr, de)Default if not specified: English + 繁體中文.
Record the selected locales — you will need them for Steps 3–5.
application.yml (or application-local.yml)Add the following under the spring: block: