Repository navigation
Add Spanish (Spain) - #697
Conversation
The whole interface (messages.es.ts, all 2,858 sentences of 1.98.0) and
the 17 chapters of the guide (docs/guide/es/, under the English file
names), in the Spanish of Spain and informal ("tú"), like the German "du".
- languages.ts: "Español" between Deutsch and Français, with the numbers
and quotation marks of es-ES and the labels of a Spanish keyboard
(Mayús, Supr, Retroceso, Inicio, Fin, Re Pág, Av Pág, Intro), which the
chapters use too, as the German ones write [[Strg]]. The guide folder is
guia-es. Any Spanish browser (es-ES, es-MX, es-419) gets it, rather than
English. Not marked complete on purpose, like Hungarian: sentences added
later show in English until the Spanish ones follow.
- i18n.ts: fetched when chosen, a chunk of its own.
- guideLinks.ts: the ids of the Spanish headings, so the question marks
land on the right heading.
- The wording takes Tinkercad's Spanish where it has a term (sólido,
orificio, plano de trabajo) and the words of a Spanish workshop elsewhere
(rosca, muelle, chaflán, escariado, avellanado).
- Tests: four tests used Spanish as the example of a language layerling
does not speak; they use Swedish now, and the page-language test checks
that a Spanish browser gets es-ES. The list of guide languages has es.
Translated with Claude from the English, checked against the German.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🔵 Needs a closer look
The bulk of the change is a large volume of human-language translation (including ~2,858 catalogue strings not shown in the diff) whose quality and accuracy require native-speaker human judgment, which the PR itself requests.
No open issues 🎉
What changed in this PR
This PR adds a complete Spanish (Spain) localization to layerling, a browser-based 3D CAD app. It registers es ("Español", informal "tú") as a served language, adds the full interface catalogue (messages.es.ts, ~2,858 strings) and all 17 guide chapters under docs/guide/es/, and wires up detection, loading, guide anchors, and build output. The language is intentionally marked complete: false (like Hungarian), so untranslated strings fall back to English rather than blocking releases.
Changes:
- Registers
esinLANGUAGE_INFO/LANGUAGES(name, es-ES locale/quotes, Spanish keyboard labels, guide strings) and adds aLOADERSentry so the catalogue is fetched only when chosen;es-ES/es-MX/es-419browsers all resolve toes. - Adds the Spanish guide (17 chapters +
GUIDE_CHAPTERS/GUIDE_SECTIONSanchors) built into the gitignoredguia-es/. - Updates three test files to swap Spanish→Swedish as the "unsupported language" example and assert the new Spanish behavior;
guideAllLanguages.test.tsnow expects twelve guide languages.
| File | Description |
|---|---|
apps/web/src/lib/languages.ts (context) |
Adds the es LANGUAGE_INFO block; fields consistent with other English-README languages. |
apps/web/src/lib/i18n.ts (context) |
Adds the es dynamic-import LOADERS entry; target MESSAGES_ES exists. |
apps/web/src/lib/guideLinks.ts (context) |
es added to all 17 chapter anchors and 65 section anchors; all resolve. |
docs/guide/es/*.md (17 files) |
Spanish guide; section counts, shots, cross-refs, UI tokens, and MCP tool names all match English. |
tests/unit/i18n.test.ts |
Adds es detection assertions; moves "unsupported" example to Swedish. |
tests/unit/noBrowserTranslation.test.ts |
Asserts Spanish browsers get es-ES; uses Swedish as unsupported. |
tests/unit/guideAllLanguages.test.ts |
Updates expected guide-language list to include es (twelve). |
Review effort: Balanced
|
@litio2001 Thank you, this is a big piece of work. I will go through it and test it here. One thing is still open: the PR description says who has read the translation, but that part is empty. Could you tell me if a native speaker has read the Spanish text, or if you read it yourself? If it was only machine translated, that is fine too, I would just mark it that way and ask the community to proof-read. |
litio2001
left a comment
There was a problem hiding this comment.
@litio2001 Thank you, this is a big piece of work. I will go through it and test it here. One thing is still open: the PR description says who has read the translation, but that part is empty. Could you tell me if a native speaker has read the Spanish text, or if you read it yourself? If it was only machine translated, that is fine too, I would just mark it that way and ask the community to proof-read.
@henmedia Thanks! Honestly: the translation was made with Claude, from the English and checked against the German, so it started as a machine translation. Spanish is my mother tongue and I am from Spain. I am now reading all of the text, and it is a lot, so I am going through it step by step.
So far, more than 95 % of what I have read is correct. The other 5 % is not wrong Spanish. The text is just a bit longer than the space it has, so some buttons and labels wrap to two lines or overflow. One example is "Guardar como predeterminado" on the Make default button in the workspace settings. I will shorten those.
Nobody else has read it yet, so for now there is one reader. A community proof-read is very welcome. Readers from Latin America would help too, because es is also served to es-MX and es-419 browsers.
When I finish, I will push the fixes to this PR and fill in the "who has read it" line. If you prefer to merge earlier, I can send them as a small follow-up PR instead.
|
@litio2001 thank you for being open about it, that is exactly what I wanted to know. I have merged it here, so it goes out with the next release. It stays marked as not complete, so missing sentences show in English. Please send the shortened labels and the other fixes as a small pull request once it is out, so the release does not wait for them. And thanks for reading it all yourself. |
|
@litio2001 Spanish is out in layerling 1.99.0: https://github.com/henmedia/layerling/releases/tag/v1.99.0. Thank you again, and I look forward to the pull request with the shortened labels. |
Summary
messages.es.ts(all 2,858 sentences of 1.98.0) and the 17 chapters of the guide indocs/guide/es/, under the English file names as Russian, Czech and Hungarian do.languages.tsas "Español", between Deutsch and Français, with the numbers and quotation marks of es-ES («…») and the labels of a Spanish keyboard (Mayús, Supr, Retroceso, Inicio, Fin, Re Pág, Av Pág, Intro). The chapters write the keys the same way ([[Mayús]],[[Intro]]), as the German ones write[[Strg]]. The guide is built intoguia-es/, which is in.gitignore. Any Spanish browser (es-ES, es-MX, es-419) gets it rather than English.LOADERS, so nobody else downloads it.GUIDE_CHAPTERSandGUIDE_SECTIONScarryes, so every question mark lands on its Spanish heading.Testing
npm run typechecknpm teston 1.98.0: 336 files, all 2,770 tests pass.npm run guidebuilds all pages.npm run i18n:statusshowsesat 2858/2858 sentences, 17/17 chapters, no problems.tests/unit/guide.test.ts(headings behind every question mark, MCP tool names, chapters) pass withesadded to its language list. I left it out of the committed list so it adds no upkeep.Notes
i18n.test.tsand one innoBrowserTranslation.test.tsused Spanish as the example of a language layerling does not speak. They use Swedish now, and the last one also checks that a Spanish browser getses-ES.guideAllLanguages.test.tslistsesamong the guide languages.🤖 Generated with Claude Code