rateWindowLabel was a 113-line switch of provider-specific labels living in main.qml, reading no root state. It moves verbatim into components/RateWindowLabels.qml as `labelForLane(key, lane)`, following the ProviderNames pattern: the labels stay literal i18n() calls in QML so gettext still extracts them. The two callers in main.qml resolve the provider key before the lookup, as rateWindowLabel did internally. Nothing executed these labels before; deleting any of them left the suite green. tst_rate_window_labels.qml now pins one real entry per lane and the generic fallback for an unknown provider in every lane. Three extraction harnesses stubbed the old function; they now stub the component object instead, and test_quota_reset_metadata gains the providerKey stub the caller now needs. Catalogs are regenerated: the entries only move to the new source file, with every msgid and translation unchanged. main.qml: 2744 -> 2634 lines. Documentation impact: none. No user-visible behavior changes, and no guide describes where this table lives. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
12 files changedLine totals unavailable