Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions DistFiles/localization/Digital Comic Book/ReadMe-en.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,61 @@
<target />
<note>ID: comic.template.digital.use</note>
</trans-unit>
<trans-unit id="comic.template.limitations.header">
<source xml:lang="en">Limitations of Bloom's current comic book support</source>
<target />
<note>ID: comic.template.limitations.header</note>
</trans-unit>
<trans-unit id="comic.template.limitations.audio">
<source xml:lang="en">As with other text, Bloom's Talking Book Tool allows recording audio for comic bubbles. The checkbox "Show Playback Order buttons" in the Talking Book Tool enables you to define the playback order of the bubbles.</source>
<target />
<note>ID: comic.template.limitations.audio</note>
</trans-unit>
<trans-unit id="comic.template.limitations.bubblelocations">
<source xml:lang="en">If you change the paper-size or layout of a book, you may have to adjust the locations of bubbles.</source>
<target />
<note>ID: comic.template.limitations.bubblelocations</note>
</trans-unit>
<trans-unit id="comic.template.limitations.rectangle">
<source xml:lang="en">The text in bubbles is currently limited to a rectangle, rather than conforming to the actual outlines of the bubble. You can use &lt;enter&gt; to manually break lines. Your comic will look more professional if you take the time to resize bubbles to be as tight as possible.</source>
<target />
<note>ID: comic.template.limitations.rectangle</note>
</trans-unit>
<trans-unit id="comic.template.limitations.onelanguage">
<source xml:lang="en">Comic books can show only one language on an image at the same time.</source>
<target />
<note>ID: comic.template.limitations.onelanguage</note>
</trans-unit>
<trans-unit id="comic.template.limitations.switchlanguages">
<source xml:lang="en">If a comic book contains multiple languages (as sources), users can switch between languages in Bloom Reader, the web, etc.</source>
<target />
<note>ID: comic.template.limitations.switchlanguages</note>
</trans-unit>
<trans-unit id="comic.template.tips.canvas.header">
<source xml:lang="en">Tips on using the Canvas Toolbox</source>
<target />
<note>ID: comic.template.tips.canvas.header</note>
</trans-unit>
<trans-unit id="comic.template.tips.canvas.move">
<source xml:lang="en">To move a bubble, click on it once, then drag anywhere in the bubble.</source>
<target />
<note>ID: comic.template.tips.canvas.move</note>
</trans-unit>
<trans-unit id="comic.template.tips.canvas.edit">
<source xml:lang="en">To edit the text in a bubble, click on it once a second time.</source>
<target />
<note>ID: comic.template.tips.canvas.edit</note>
</trans-unit>
<trans-unit id="comic.template.tips.canvas.resize">
<source xml:lang="en">To resize a bubble, grab the resize handle on either side.</source>
<target />
<note>ID: comic.template.tips.canvas.resize</note>
</trans-unit>
<trans-unit id="comic.template.tips.canvas.tail">
<source xml:lang="en">In the rare case that you need to change the curve of a bubble tail, drag the circle that is in the middle of the tail. It will become a solid color to indicate that you have left "auto mode". To return to "auto mode", double click that circle.</source>
<target />
<note>ID: comic.template.tips.canvas.tail</note>
</trans-unit>
<trans-unit id="comic.template.tips.lettering.header">
<source xml:lang="en">Tips on "lettering"</source>
<target />
Expand All @@ -27,6 +82,16 @@
<target />
<note>ID: comic.template.tips.lettering</note>
</trans-unit>
<trans-unit id="comic.template.whiteonblack.header">
<source xml:lang="en">A note on White on Black Text</source>
<target />
<note>ID: comic.template.whiteonblack.header</note>
</trans-unit>
<trans-unit id="comic.template.whiteonblack">
<source xml:lang="en">You can use "Change Layout" to divide the screen and add a text box on the side. The background will be black, so you'll need to select the style "WhiteText".</source>
<target />
<note>ID: comic.template.whiteonblack</note>
</trans-unit>
</body>
</file>
</xliff>
5 changes: 5 additions & 0 deletions DistFiles/localization/Leveled Reader/ReadMe-en.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,11 @@
<target />
<note>ID: decodable.stage</note>
</trans-unit>
<trans-unit id="leveled.decodable.notapplicable">
<source xml:lang="en">n/a</source>
<target />
<note>ID: leveled.decodable.notapplicable</note>
</trans-unit>
</body>
</file>
</xliff>
79 changes: 72 additions & 7 deletions DistFiles/localization/Paper Comic Book/ReadMe-en.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,66 @@
<target />
<note>ID: comic.template.paper.full.bleed.header</note>
</trans-unit>
<trans-unit id="comic.template.paper.full.bleed">
<source xml:lang="en">This template tells Bloom that this book is a candidate for "<g id="genid-2" ctype="x-html-a" html:href="https://dw-wp.com/resources/cartooning-quickguides/layout-quickguides/quickguides-bleeds/">full bleed</g>" printing by a printshop. This feature is available with a Bloom subscription. If this feature is enabled, then in the Edit tab, you will see semi-opaque borders. The outer one is the "bleed"; this is the area that will probably be cut off by a printshop. The inner border is an area that <g id="genid-3" ctype="x-html-em">might</g> be cut off, so you should avoid putting things in there that would look really bad if they were cut off. To actually get a PDF that is ready for this commercial printing, please see the "PDF Options" under the Publish Tab.</source>
<target />
<note>ID: comic.template.paper.full.bleed</note>
<note>Obsolete as of 6.3</note>
</trans-unit>
<trans-unit id="comic.template.paper.full.bleed.v2">
<source xml:lang="en">This template works best with "<g id="genid-2" ctype="x-html-a" html:href="https://docs.bloomlibrary.org/full-bleed">full bleed</g>" printing by a printshop. This feature is available with a Bloom subscription. If this feature is enabled in book settings, then in the Edit tab, you will see semi-opaque borders. The outer one is the "bleed"; this is the area that will probably be cut off by a printshop. The inner border is an area that <g id="genid-3" ctype="x-html-em">might</g> be cut off, so you should avoid putting things in there that would look really bad if they were cut off. To actually get a PDF that is ready for this commercial printing, please see the "PDF Options" under the Publish Tab.</source>
<target />
<note>ID: comic.template.paper.full.bleed.v2</note>
</trans-unit>
<trans-unit id="comic.template.limitations.header">
<source xml:lang="en">Limitations of Bloom's current comic book support</source>
<target />
<note>ID: comic.template.limitations.header</note>
</trans-unit>
<trans-unit id="comic.template.limitations.audio">
<source xml:lang="en">As with other text, Bloom's Talking Book Tool allows recording audio for comic bubbles. The checkbox "Show Playback Order buttons" in the Talking Book Tool enables you to define the playback order of the bubbles.</source>
<target />
<note>ID: comic.template.limitations.audio</note>
</trans-unit>
<trans-unit id="comic.template.limitations.bubblelocations">
<source xml:lang="en">If you change the paper-size or layout of a book, you may have to adjust the locations of bubbles.</source>
<target />
<note>ID: comic.template.limitations.bubblelocations</note>
</trans-unit>
<trans-unit id="comic.template.limitations.rectangle">
<source xml:lang="en">The text in bubbles is currently limited to a rectangle, rather than conforming to the actual outlines of the bubble. You can use &lt;enter&gt; to manually break lines. Your comic will look more professional if you take the time to resize bubbles to be as tight as possible.</source>
<target />
<note>ID: comic.template.limitations.rectangle</note>
</trans-unit>
<trans-unit id="comic.template.limitations.onelanguage">
<source xml:lang="en">Comic books can show only one language on an image at the same time.</source>
<target />
<note>ID: comic.template.limitations.onelanguage</note>
</trans-unit>
<trans-unit id="comic.template.limitations.switchlanguages">
<source xml:lang="en">If a comic book contains multiple languages (as sources), users can switch between languages in Bloom Reader, the web, etc.</source>
<target />
<note>ID: comic.template.limitations.switchlanguages</note>
</trans-unit>
<trans-unit id="comic.template.tips.canvas.header">
<source xml:lang="en">Tips on using the Canvas Toolbox</source>
<target />
<note>ID: comic.template.tips.canvas.header</note>
</trans-unit>
<trans-unit id="comic.template.tips.canvas.move">
<source xml:lang="en">To move a bubble, click on it once, then drag anywhere in the bubble.</source>
<target />
<note>ID: comic.template.tips.canvas.move</note>
</trans-unit>
<trans-unit id="comic.template.tips.canvas.edit">
<source xml:lang="en">To edit the text in a bubble, click on it once a second time.</source>
<target />
<note>ID: comic.template.tips.canvas.edit</note>
</trans-unit>
<trans-unit id="comic.template.tips.canvas.resize">
<source xml:lang="en">To resize a bubble, grab the resize handle on either side.</source>
<target />
<note>ID: comic.template.tips.canvas.resize</note>
</trans-unit>
<trans-unit id="comic.template.tips.canvas.tail">
<source xml:lang="en">In the rare case that you need to change the curve of a bubble tail, drag the circle that is in the middle of the tail. It will become a solid color to indicate that you have left "auto mode". To return to "auto mode", double click that circle.</source>
<target />
<note>ID: comic.template.tips.canvas.tail</note>
</trans-unit>
<trans-unit id="comic.template.tips.lettering.header">
<source xml:lang="en">Tips on "lettering"</source>
<target />
Expand All @@ -43,6 +92,22 @@
<target />
<note>ID: comic.template.tips.lettering</note>
</trans-unit>
<trans-unit id="comic.template.whiteonblack.header">
<source xml:lang="en">A note on White on Black Text</source>
<target />
<note>ID: comic.template.whiteonblack.header</note>
</trans-unit>
<trans-unit id="comic.template.whiteonblack">
<source xml:lang="en">You can use "Change Layout" to divide the screen and add a text box on the side. The background will be black, so you'll need to select the style "WhiteText".</source>
<target />
<note>ID: comic.template.whiteonblack</note>
</trans-unit>
<trans-unit id="comic.template.paper.full.bleed">
<source xml:lang="en">This template tells Bloom that this book is a candidate for "<g id="genid-2" ctype="x-html-a" html:href="https://dw-wp.com/resources/cartooning-quickguides/layout-quickguides/quickguides-bleeds/">full bleed</g>" printing by a printshop. This feature is available with a Bloom subscription. If this feature is enabled, then in the Edit tab, you will see semi-opaque borders. The outer one is the "bleed"; this is the area that will probably be cut off by a printshop. The inner border is an area that <g id="genid-3" ctype="x-html-em">might</g> be cut off, so you should avoid putting things in there that would look really bad if they were cut off. To actually get a PDF that is ready for this commercial printing, please see the "PDF Options" under the Publish Tab.</source>
<target />
<note>ID: comic.template.paper.full.bleed</note>
<note>Obsolete as of 6.3</note>
</trans-unit>
</body>
</file>
</xliff>
</xliff>
4 changes: 3 additions & 1 deletion src/BloomBrowserUI/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,15 @@
"build": "node scripts/build.js",
"build:clean": "node scripts/clean.js",
"// 'build-prod': 'production build: clean, pageSizes, then build:ui and build:content, then l10n'": " ",
"build-prod": "pnpm run build:clean && pnpm --dir ../content run build:pageSizes && npm-run-all build:ui build:content && npm-run-all --parallel build:l10n:translate build:l10n:create",
"build-prod": "pnpm run build:clean && pnpm --dir ../content run build:pageSizes && npm-run-all build:ui build:content && npm-run-all --parallel build:l10n:translate build:l10n:create && pnpm run check:readme-i18n:strict",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Devin] Investigate: Strict readme check gates the whole production build

build-prod now ends with check:readme-i18n:strict, which exits non-zero on any finding. It scans every generated readme under output/browser/templates, so untranslated text in any template readme (not just the ones changed here) will now fail the full production build.


[Claude Opus 5 (1M context) during preflight] Correct reading, and it is the deliberate intent — but it is a judgment call about everyone's build, so it is going to the developer rather than being decided here.

For context on the risk: all ten readmes pass as of this PR, so the gate can only fire on a newly introduced problem, and the only way to introduce one is to add readme text without an {i18n="..."} annotation. The check is also the only enforcement point available — GitHub Actions doesn't build the front-end for PRs, so build-prod (TeamCity) is where it has to live if it is to be enforced at all.

The alternative is to leave it warn-only, which is what it was until this commit: it then reports and nobody notices, which is exactly how these 26 strings went missing for several releases.

"// 'build:l10n': creates/updates xliff files and translates html files.": " ",
"// 'build:l10n': is needed when markdown/html content changes or when testing l10n.": " ",
"// 'build:l10n': should be run after build. (build-prod includes this functionality.)": " ",
"build:l10n": "node scripts/l10n-build.js",
"build:l10n:translate": "node scripts/l10n-build.js translate",
"build:l10n:create": "node scripts/l10n-build.js create",
"check:readme-i18n": "node scripts/check-readme-i18n.js",
"check:readme-i18n:strict": "node scripts/check-readme-i18n.js --strict",
"build:content": "pnpm run check-that-node-modules-exists-in-content-dir && pnpm --dir ../content run build",
"// 'watch': rebuilds bundles when source files change (for entrypoints not yet working with vite dev)": " ",
"watch": "vite build --watch",
Expand Down
Loading