Feature modules in a new app, i18n rename, and what the first area port needed

- create-waybetter: the generated app has a feature table (one area, one feature, three modes), a feature module, the registry in its runtime, the cards and the first-run screen in its panel
- waybetter i18n rename --map <file> [--copy]: keys move or are copied in every catalog with each language's own value
- feature context: win (no globals in a module), text() for a feature's words (t('...') is read as a whole catalog key by the i18n tools)
- probes: `when` (only counts while the part of the page it lives in is there)
- cards: a caret, an empty area says its features come later; the first-run screen takes the whole panel

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
CRTkafa 2026-09-30 19:25:15 +07:00
parent dc7d6f815a
commit 381d55466b
10 changed files with 248 additions and 29 deletions

View file

@ -294,6 +294,7 @@ export const PANEL_MESSAGES = {
'wb.features.ownCopyAsk': 'Your own copy of {name} is on. Turn it off and use the built-in one?',
'wb.features.pluginFile': 'plugin file',
'wb.features.settingsNoTab': 'Open a {site} tab first, then choose Settings again.',
'wb.features.soon': 'Its features arrive in a later update.',
'wb.features.useBuiltIn': 'Use the built-in one',
'wb.fonts.asSite': 'As {site} draws it',
'wb.fonts.builtIn': 'Built-in & system',
@ -468,7 +469,7 @@ export const PANEL_MESSAGES = {
'wb.modes.current': 'in use',
'wb.modes.existing': 'You already set {app} up. Nothing changes unless you pick a mode.',
'wb.modes.keep': 'Keep my changes',
'wb.modes.keepHint': '{count, plural, one {# setting you changed would be replaced.} other {# settings you changed would be replaced.}}',
'wb.modes.keepHint': 'Changed by hand: {count}. Those would be replaced.',
'wb.modes.keepQuestion': 'Keep your manual changes?',
'wb.modes.keepSetup': 'Keep my current setup',
'wb.modes.lede': 'Pick a starting point. Every plugin and feature stays individually switchable, and you can change the mode later in Settings.',