Skip to content
Merged
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
10 changes: 10 additions & 0 deletions .changeset/30512-service-messaging-locales-b.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
'@objectstack/service-messaging': patch
---

i18n(service-messaging): the notification objects and the digest heading ship in Russian, German and Korean

Clause-②: no
Metadata-protocol: none

The messaging objects and the digest heading "You have {{count}} notifications" now carry `ru`, `de` and `ko` as well, so the package ships all eleven platform languages. `t()` selects no plural form, so the Russian heading is worded as a tally (`Уведомлений: {{count}}`), correct for every count. Each new locale is registered under its platform-table tag with its source-hash companion and its messages, and the package's extract command lists the tags, so the existing `check:i18n` bundle check covers them. Second half of package 5 of #30512.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
* `--merge` preserves every hand-translated string.
*
* os i18n extract packages/services/service-messaging/scripts/i18n-extract.config.ts \
* --locales=zh-CN,ja-JP,es-ES,zh-Hant,ar,fr,pt-BR --fill=default --objects-only --no-metadata-forms \
* --locales=zh-CN,ja-JP,es-ES,zh-Hant,ar,fr,pt-BR,ru,de,ko --fill=default --objects-only --no-metadata-forms \
* --source-hashes \
* --out=packages/services/service-messaging/src/translations
*
Expand Down Expand Up @@ -53,6 +53,9 @@ import { zhHantObjects } from '../src/translations/zh-Hant.objects.generated.js'
import { arObjects } from '../src/translations/ar.objects.generated.js';
import { frObjects } from '../src/translations/fr.objects.generated.js';
import { ptBRObjects } from '../src/translations/pt-BR.objects.generated.js';
import { ruObjects } from '../src/translations/ru.objects.generated.js';
import { deObjects } from '../src/translations/de.objects.generated.js';
import { koObjects } from '../src/translations/ko.objects.generated.js';

/**
* The annotation is load-bearing, not decoration (#10868). `defineStack`
Expand Down Expand Up @@ -87,6 +90,9 @@ const config: ObjectStackDefinition = defineStack({
{ 'ar': { objects: arObjects } },
{ 'fr': { objects: frObjects } },
{ 'pt-BR': { objects: ptBRObjects } },
{ 'ru': { objects: ruObjects } },
{ 'de': { objects: deObjects } },
{ 'ko': { objects: koObjects } },
],
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ import { zhHantObjects } from '../translations/zh-Hant.objects.generated.js';
import { arObjects } from '../translations/ar.objects.generated.js';
import { frObjects } from '../translations/fr.objects.generated.js';
import { ptBRObjects } from '../translations/pt-BR.objects.generated.js';
import { ruObjects } from '../translations/ru.objects.generated.js';
import { deObjects } from '../translations/de.objects.generated.js';
import { koObjects } from '../translations/ko.objects.generated.js';

/** The design-record vocabulary an admin-facing string must not carry. */
const DESIGN_RECORD_VOCABULARY: ReadonlyArray<readonly [string, RegExp]> = [
Expand Down Expand Up @@ -103,6 +106,9 @@ const OBJECT_BUNDLES = {
'ar': arObjects,
'fr': frObjects,
'pt-BR': ptBRObjects,
'ru': ruObjects,
'de': deObjects,
'ko': koObjects,
} as const;

describe('messaging objects: admin-facing copy carries no design-record vocabulary', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ import { zhHantObjects } from '../translations/zh-Hant.objects.generated.js';
import { arObjects } from '../translations/ar.objects.generated.js';
import { frObjects } from '../translations/fr.objects.generated.js';
import { ptBRObjects } from '../translations/pt-BR.objects.generated.js';
import { ruObjects } from '../translations/ru.objects.generated.js';
import { deObjects } from '../translations/de.objects.generated.js';
import { koObjects } from '../translations/ko.objects.generated.js';

interface ViewLike {
columns?: unknown;
Expand All @@ -58,6 +61,9 @@ const BUNDLES = {
'ar': arObjects,
'fr': frObjects,
'pt-BR': ptBRObjects,
'ru': ruObjects,
'de': deObjects,
'ko': koObjects,
} as const;

function views(def: ObjectLike): Array<[string, ViewLike]> {
Expand Down
Loading
Loading