feat: migrate exampleSite to multilingual content directories#138
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR migrates the theme’s exampleSite content to per-language content directories (via contentDir) and expands multilingual coverage, including updated language-switcher UI spacing and E2E test expectations.
Changes:
- Reorganized
exampleSite/contentinto language-based directories and updatedexampleSite/config/_default/languages.yamlto usecontentDirper language. - Added localized content pages/posts and i18n resources for additional languages (de/es/fr/hi/ko/zh-cn/zh-tw).
- Updated the header language-switcher spacing and strengthened Playwright E2E assertions around language switcher behavior.
Findings
- Major
tests/e2e/navigation.spec.ts: The newtoBaseLanguageCode()logic collapses region tags (e.g.zh-cn/zh-tw) and can miss real hreflang/lang mismatches between region variants. (comment ID: 001)
- Nit
exampleSite/content/fr/privacy.md: Missing expected French diacritics/accents in user-facing text. (comment ID: 002)exampleSite/content/es/privacy.md: Missing expected Spanish diacritics/accents in user-facing text. (comment ID: 003)exampleSite/config/_default/languages.yaml: French career string missing accent in “ingénieur”. (comment ID: 004)
Reviewed changes
Copilot reviewed 57 out of 71 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/e2e/navigation.spec.ts | Updates language-switcher E2E tests and adds zh-cn navigation coverage. |
| layouts/partials/header.html | Adds consistent horizontal spacing (px-1) for header nav items including the language dropdown. |
| i18n/de.yaml | Adds German UI translations for theme strings. |
| i18n/es.yaml | Adds Spanish UI translations for theme strings. |
| i18n/fr.yaml | Adds French UI translations for theme strings. |
| i18n/hi.yaml | Adds Hindi UI translations for theme strings. |
| i18n/ko.yaml | Adds Korean UI translations for theme strings. |
| i18n/zh-cn.yaml | Adds Simplified Chinese UI translations for theme strings. |
| i18n/zh-tw.yaml | Adds Traditional Chinese UI translations for theme strings. |
| exampleSite/config/_default/languages.yaml | Defines contentDir per language and localizes author career entries by language. |
| docs/guidance/getting-started.en.md | Documents language-directory content organization using contentDir. |
| docs/guidance/getting-started.ja.md | Documents language-directory content organization using contentDir. |
| docs/develop/project-structure.md | Updates project structure docs to reflect language-based content directories. |
| exampleSite/content/posts/tech/choosing-fonts-for-the-web.md | Removes the non-language-scoped version of the post (moved into language dirs). |
| exampleSite/content/en/about.md | Adds English About page under language directory. |
| exampleSite/content/en/author.md | Adds English Author page under language directory. |
| exampleSite/content/en/privacy.md | Adds English Privacy page under language directory. |
| exampleSite/content/en/posts/daily/protect-environment.md | Adds an English Daily post under language directory. |
| exampleSite/content/en/posts/math/matrix.md | Adds an English Math post under language directory. |
| exampleSite/content/en/posts/review/head-light.md | Adds an English Review post under language directory. |
| exampleSite/content/en/posts/tech/hello-world.md | Adds an English Tech post under language directory. |
| exampleSite/content/ja/about.md | Adds Japanese About page under language directory. |
| exampleSite/content/ja/author.md | Adds Japanese Author page under language directory. |
| exampleSite/content/ja/privacy.md | Adds Japanese Privacy page under language directory. |
| exampleSite/content/ja/posts/daily/protect-environment.md | Adds a Japanese Daily post under language directory. |
| exampleSite/content/ja/posts/math/matrix.md | Adds a Japanese Math post under language directory. |
| exampleSite/content/ja/posts/review/head-light.md | Adds a Japanese Review post under language directory. |
| exampleSite/content/ja/posts/tech/choosing-fonts-for-the-web.md | Adds a Japanese Tech post under language directory. |
| exampleSite/content/ja/posts/tech/hello-world.md | Adds a Japanese Tech post under language directory. |
| exampleSite/content/ko/about.md | Adds Korean About page under language directory. |
| exampleSite/content/ko/author.md | Adds Korean Author page under language directory. |
| exampleSite/content/ko/privacy.md | Adds Korean Privacy page under language directory. |
| exampleSite/content/ko/posts/daily/protect-environment.md | Adds a Korean Daily post under language directory. |
| exampleSite/content/ko/posts/tech/choosing-fonts-for-the-web.md | Adds a Korean Tech post under language directory. |
| exampleSite/content/ko/posts/tech/hello-world.md | Adds a Korean Tech post under language directory. |
| exampleSite/content/de/about.md | Adds German About page under language directory. |
| exampleSite/content/de/author.md | Adds German Author page under language directory. |
| exampleSite/content/de/privacy.md | Adds German Privacy page under language directory. |
| exampleSite/content/de/posts/daily/protect-environment.md | Adds a German Daily post under language directory. |
| exampleSite/content/de/posts/tech/choosing-fonts-for-the-web.md | Adds a German Tech post under language directory. |
| exampleSite/content/de/posts/tech/hello-world.md | Adds a German Tech post under language directory. |
| exampleSite/content/fr/about.md | Adds French About page under language directory. |
| exampleSite/content/fr/author.md | Adds French Author page under language directory. |
| exampleSite/content/fr/privacy.md | Adds French Privacy page under language directory. |
| exampleSite/content/fr/posts/daily/protect-environment.md | Adds a French Daily post under language directory. |
| exampleSite/content/fr/posts/tech/choosing-fonts-for-the-web.md | Adds a French Tech post under language directory. |
| exampleSite/content/fr/posts/tech/hello-world.md | Adds a French Tech post under language directory. |
| exampleSite/content/es/about.md | Adds Spanish About page under language directory. |
| exampleSite/content/es/author.md | Adds Spanish Author page under language directory. |
| exampleSite/content/es/privacy.md | Adds Spanish Privacy page under language directory. |
| exampleSite/content/es/posts/daily/protect-environment.md | Adds a Spanish Daily post under language directory. |
| exampleSite/content/es/posts/tech/choosing-fonts-for-the-web.md | Adds a Spanish Tech post under language directory. |
| exampleSite/content/es/posts/tech/hello-world.md | Adds a Spanish Tech post under language directory. |
| exampleSite/content/hi/about.md | Adds Hindi About page under language directory. |
| exampleSite/content/hi/author.md | Adds Hindi Author page under language directory. |
| exampleSite/content/hi/privacy.md | Adds Hindi Privacy page under language directory. |
| exampleSite/content/hi/posts/daily/protect-environment.md | Adds a Hindi Daily post under language directory. |
| exampleSite/content/hi/posts/tech/choosing-fonts-for-the-web.md | Adds a Hindi Tech post under language directory. |
| exampleSite/content/hi/posts/tech/hello-world.md | Adds a Hindi Tech post under language directory. |
| exampleSite/content/zh-cn/about.md | Adds Simplified Chinese About page under language directory. |
| exampleSite/content/zh-cn/author.md | Adds Simplified Chinese Author page under language directory. |
| exampleSite/content/zh-cn/privacy.md | Adds Simplified Chinese Privacy page under language directory. |
| exampleSite/content/zh-cn/posts/daily/protect-environment.md | Adds a Simplified Chinese Daily post under language directory. |
| exampleSite/content/zh-cn/posts/tech/choosing-fonts-for-the-web.md | Adds a Simplified Chinese Tech post under language directory. |
| exampleSite/content/zh-cn/posts/tech/hello-world.md | Adds a Simplified Chinese Tech post under language directory. |
| exampleSite/content/zh-tw/about.md | Adds Traditional Chinese About page under language directory. |
| exampleSite/content/zh-tw/author.md | Adds Traditional Chinese Author page under language directory. |
| exampleSite/content/zh-tw/privacy.md | Adds Traditional Chinese Privacy page under language directory. |
| exampleSite/content/zh-tw/posts/daily/protect-environment.md | Adds a Traditional Chinese Daily post under language directory. |
| exampleSite/content/zh-tw/posts/tech/choosing-fonts-for-the-web.md | Adds a Traditional Chinese Tech post under language directory. |
| exampleSite/content/zh-tw/posts/tech/hello-world.md | Adds a Traditional Chinese Tech post under language directory. |
Comment on lines
+4
to
+5
| const toBaseLanguageCode = (code: string) => code.toLowerCase().split("-")[0]; | ||
|
|
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Agent-Logs-Url: https://github.com/htnabe/HikaeMe/sessions/49c8c637-4aec-4d2c-8ba4-4afcf3b80f26 Co-authored-by: htnabe <31610987+htnabe@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR migrates the example site content to language-based directories and expands multilingual coverage to additional languages.
It also updates language switching behavior/tests and adds localized content/i18n resources for the new language set.
Changes
exampleSite/contentinto per-language directories viacontentDirinexampleSite/config/_default/languages.yamlabout,author,privacy) and post content for:de,es,fr,hi,ko,zh-cn,zh-twi18n/de.yaml,i18n/es.yaml,i18n/fr.yaml,i18n/hi.yaml,i18n/ko.yaml,i18n/zh-cn.yaml,i18n/zh-tw.yamlparams.author.careerentries by language inlanguages.yamldocs/guidance/getting-started.en.mddocs/guidance/getting-started.ja.mddocs/develop/project-structure.mdRelated Issues
N/A
Checklist
review.prompt.md)cd exampleSite && hugo --gc --minifyNotes for Reviewers
npm test(pass)npm run test:e2e(pass)languageCode/languageNameand related template fields). These are not introduced as breaking changes in this PR but may need follow-up migration tolocale/label.