Merge pull request #1246 from robdegraaf/feat/i18n-nl

This commit is contained in:
Marc-André Bombeck committed 2026-10-20 00:14:49 +02:00
commit 7be3714ac2
83 files changed
+13832 -74

No files matched your search

@@ -108,7 +108,7 @@ describe("<ImportPanel> — SSR smoke", () => {
});
describe("<AppleHealthEstimateWarning>", () => {
it.each(["en", "de", "es", "fr", "it", "pl", "ko"] as const)(
it.each(["en", "de", "es", "fr", "it", "pl", "ko", "nl"] as const)(
"renders localized estimate disclosure for %s",
(locale) => {
const html = render(<AppleHealthEstimateWarning days={3} />, locale);
@@ -10,7 +10,7 @@ import {
ManagedRecordSettingsForm,
} from "../managed-record-settings-section";
const LOCALES = ["de", "en", "es", "fr", "it", "pl", "ko"] as const;
const LOCALES = ["de", "en", "es", "fr", "it", "pl", "ko", "nl"] as const;
const render = (
family: Parameters<typeof ManagedRecordSettingsForm>[0]["family"],
@@ -285,12 +285,12 @@ describe("the managed-profile card, in the shared-access section", () => {
}
// The timezone control is the shared picker, which labels itself.
expect(html).toContain('id="managed-profile-timezone"');
// Six languages offered, which is the route's enum exactly.
// Eight languages offered, which is the route's enum exactly.
const options =
/<select[^>]*data-slot="managed-profile-locale"[\s\S]*?<\/select>/
.exec(html)?.[0]
.match(/<option/g) ?? [];
expect(options).toHaveLength(7);
expect(options).toHaveLength(8);
// Four sex options, and the first is the empty one: null is a real answer
// ("not recorded") rather than an absent field, and a form offering only
// the three enum members would make it unsayable.
@@ -215,7 +215,7 @@ describe("<AppleHealthCard>", () => {
}
});
it.each(["en", "de", "es", "fr", "it", "pl", "ko"] as const)(
it.each(["en", "de", "es", "fr", "it", "pl", "ko", "nl"] as const)(
"renders localized Apple Health copy for %s without leaking keys",
(locale) => {
statusPayload = { lastSyncedAt: null, health: null };
@@ -13,6 +13,7 @@ import es from "../../../../../messages/es.json";
import fr from "../../../../../messages/fr.json";
import itMessages from "../../../../../messages/it.json";
import ko from "../../../../../messages/ko.json";
import nl from "../../../../../messages/nl.json";
import pl from "../../../../../messages/pl.json";
import {
@@ -31,6 +32,7 @@ const CATALOGS: Record<Locale, unknown> = {
fr,
it: itMessages,
pl,
nl,
ko,
};
@@ -411,7 +411,7 @@ function ProfileSettingsForm({
<option value="">
{t("settings.sharedRecord.managedSettings.profile.systemDefault")}
</option>
{["de", "en", "es", "fr", "it", "pl", "ko"].map((locale) => (
{["de", "en", "es", "fr", "it", "pl", "ko", "nl"].map((locale) => (
<option key={locale} value={locale}>
{locale}
</option>