Šķîþ ţö ḿàîñ çöñţéñţ

Çöñţéñţ Ḿöđéļ

Ţĥé çöñţéñţ ḿöđéļ îš ţĥé ṽöçàƃüļàŕý éṽéŕý þàŕţ öƒ ñéöķàþî šĥàŕéš. Ŵĥàţéṽéŕ ţĥé îñþüţ ƒöŕḿàţ (ĴŠÖÑ, ĤŢḾĻ, Ḿàŕķđöŵñ, à Ŵöŕđ đöçüḿéñţ), à ŕéàđéŕ ţüŕñš îţ îñţö ţĥé šàḿé ĥàñđƒüļ öƒ ţýþéš, šö ţööļš, ƒļöŵš, çöñţéñţ ḿéḿöŕý, àñđ éđîţöŕš àļļ ŵöŕķ àĝàîñšţ öñé ŕéþŕéšéñţàţîöñ, ŵĥàţéṽéŕ ţĥé ƒöŕḿàţ'š ǫüîŕķš. Ţĥé ḿöđéļ çöṽéŕš ţĥé çöñţéñţ îñšîđé à đöçüḿéñţ: ţĥé ƃļöçķš ýöü ŕéàđ, çĥéçķ, éđîţ àñđ ŵŕîţé ƃàçķ.

Ƃý àñàļöĝý: ŕéàđ îţ àš à šţŕéàḿîñĝ ĐÖḾ (Þàŕţš ƒļöŵ þàšţ îñšţéàđ öƒ šîţţîñĝ îñ öñé ţŕéé), ŵĥéŕé éàçĥ çöñţéñţ ñöđé îš à ŕéçöŕđ ŵîţĥ éđîţîöñš (ţĥé öñé ţĥé đöçüḿéñţ îš ŵŕîţţéñ îñ, àñđ öñé þéŕ ţŕàñšļàţîöñ, ţöñé öŕ çĥàññéļ) àñđ àññöţàţîöñš àŕé ḿàŕĝîñ ñöţéš þîññéđ ţö šþàñš öƒ àñ üñçĥàñĝéđ ţéẋţ. Þàŕţ, Ļàýéŕ, Ƃļöçķ, Ŕüñ, Éđîţîöñ, Öṽéŕļàý àñđ ÉđîţîöñĶéý àŕé éàçĥ đéƒîñéđ öñçé îñ Çöñçéþţš; ţĥîš þàĝé đéṽéļöþš ţĥéḿ.

:::ţîþ Ţŕý îţ: ţĥé çöñţéñţ ḿöđéļ, éṽéŕý ŵàý Þîçķ à ļéššöñ àñđ à šàḿþļé (öŕ đŕöþ îñ ýöüŕ öŵñ ƒîļé) àñđ ŵàţçĥ ţĥé ŕéàļ kapi ŕéàđéŕ đéçöḿþöšé îţ îñ ýöüŕ ƃŕöŵšéŕ ṽîà ŴéƃÀššéḿƃļý. Àñàţöḿý šĥöŵš ţĥé Ļàýéŕš, Ĝŕöüþš, Ƃļöçķš àñđ Ŕüñš, šö àñ ĤŢḾĻ <strong> šĥöŵš üþ àš à þàîŕéđ îñļîñé çöđé ŵĥîļé à ĴŠÖÑ {name} šţàýš ļîţéŕàļ ţéẋţ. Ţĥé öţĥéŕ ļéššöñš šĥöŵ ŵĥàţ à Ƃļöçķ çàŕŕîéš ƃéšîđé îţš ţéẋţ: šéĝḿéñţàţîöñ ƃöüñđàŕîéš, ţéŕḿš & ƒîñđîñĝš öṽéŕļàýš, ţĥé šöüŕçé ↔ ţàŕĝéţ éđîţîöñš, ţĥé đöçüḿéñţ šţŕüçţüŕé, àñđ à ŕöüñđ-ţŕîþ ţĥàţ šĥöŵš öñļý ţĥé ţéẋţ çĥàñĝéđ. :::

Ļöàđîñĝ ţĥé îñţéŕàçţîṽé ļàƃ…

Ţĥé Þàŕţ îš ţĥé šţŕéàḿîñĝ üñîţ​

À đöçüḿéñţ ƒļöŵš ţĥŕöüĝĥ ţĥé þîþéļîñé àš à šţŕéàḿ öƒ Þàŕţš, ţĥé îñđîṽîšîƃļé üñîţ ţĥàţ ţŕàṽéļš öṽéŕ ţĥé çĥàññéļš ƃéţŵééñ šţàĝéš. Éàçĥ Þàŕţ çàŕŕîéš à ţýþé đîšçŕîḿîñàţöŕ àñđ à ŕéšöüŕçé þàýļöàđ: à ļàýéŕ šţàŕţ öŕ éñđ, à ƃļöçķ, ñöñ-ţŕàñšļàţàƃļé šţŕüçţüŕàļ đàţà, öŕ ḿéđîà. À ŕéàđéŕ éḿîţš Þàŕţš àš îţ þàŕšéš; ţööļš ţŕàñšƒöŕḿ ţĥé Þàŕţš ţĥéý çàŕé àƃöüţ àñđ ŕéļàý ţĥé ŕéšţ; à ŵŕîţéŕ ŕéçöñšţŕüçţš ţĥé đöçüḿéñţ ƒŕöḿ ţĥé šţŕéàḿ.

À ţýþîçàļ šḿàļļ ĴŠÖÑ đöçüḿéñţ ŵîţĥ öñé éḿƃéđđéđ ĤŢḾĻ ṽàļüé þŕöđüçéš à šţŕéàḿ ļîķé ţĥîš:

Ŕéàđ(çţẋ)PartLayerStartformat = "json"PartBlock"title"PartLayerStartformat = "html"← embedded child layerPartBlock"Hello ⟦b⟧world⟦/b⟧"PartLayerEndformat = "html"PartBlock"footer"PartLayerEndformat = "json"(channel closed)

Ţĥé ḿöđéļ îš ƃüîļţ àŕöüñđ ţĥé Þàŕţ, ñöţ à ŵĥöļé-đöçüḿéñţ ţŕéé, ƃéçàüšé à šţŕéàḿ ķééþš ḿéḿöŕý ƃöüñđéđ àñđ ļéţš šţàĝéš ŕüñ çöñçüŕŕéñţļý. Ţĥé ḿéçĥàñîçš àŕé îñ Þîþéļîñé.

Ţĥé ŕéšöüŕçé ţýþéš​

Ţĥé þàýļöàđ à Þàŕţ çàŕŕîéš îš öñé öƒ à ƒéŵ ŕéšöüŕçé ţýþéš. Ţöĝéţĥéŕ ţĥéý đéšçŕîƃé ƃöţĥ ţĥé çöñţéñţ ýöü ŕéàđ, éđîţ, öŕ ţŕàñšļàţé àñđ ţĥé šţŕüçţüŕé ţĥàţ šüŕŕöüñđš îţ.

containseach edition's flat sequenceone per edition keypositional stand-offchild Layers (embedded content)LayerFormatstringParentIDstringBlockTranslatableboolEditionsmap[EditionKey]*EditionNative[]EditionKeyOverlays[]OverlayAnnotationsmap[string]PayloadRunText*TextRunPh*PlaceholderRunPcOpen*PcOpenRunPcClose*PcCloseRunSub*SubRunPlural*PluralRunSelect*SelectRunEditionRuns[]RunStatusStatusOverlayTypeOverlayTypeEditionEditionKeySpans[]Span

À Ƃļöçķ îš ţĥé çéñţŕé: éàçĥ öƒ îţš éđîţîöñš îš à ƒļàţ ŕüñ šéǫüéñçé üñđéŕ îţš ķéý, àñđ îţš Öṽéŕļàýš šîţ ƃéšîđé ţĥé ŕüñš.

  • Ļàýéŕ îš à šţŕüçţüŕàļ ĝŕöüþîñĝ: à ŵĥöļé đöçüḿéñţ, à šéçţîöñ, öŕ éḿƃéđđéđ çöñţéñţ. Ļàýéŕš ñéšţ. Éḿƃéđđéđ çöñţéñţ (ĤŢḾĻ îñšîđé à ĴŠÖÑ ṽàļüé, ÇĐÀŢÀ îñšîđé ẊḾĻ) ƃéçöḿéš à çĥîļđ ļàýéŕ ŵîţĥ îţš öŵñ ƒöŕḿàţ, šö ţĥé ŕîĝĥţ ŕéàđéŕ ĥàñđļéš îţ àñđ îñļîñé ḿàŕķüþ šüŕṽîṽéš àţ éṽéŕý ļéṽéļ.
  • Ƃļöçķ îš ţĥé þŕîḿàŕý ḿöđîƒîàƃļé çöñţéñţ. Îţš çöñţéñţ îš à šéţ öƒ þééŕ éđîţîöñš, éàçĥ à šîñĝļé ƒļàţ []Run: ţĥé éđîţîöñ ţĥé đöçüḿéñţ îš ŵŕîţţéñ îñ, ţĥé çöñţéñţ ýöü ŕéàđ, çĥéçķ, àñđ éđîţ, àñđ öñé ḿöŕé ƒöŕ éàçĥ ţŕàñšļàţîöñ, ţöñé öŕ çĥàññéļ. Éàçĥ éđîţîöñ îš à ƒîŕšţ-çļàšš Edition ŕéçöŕđ ŵîţĥ îţš šţàţüš àñđ þŕöṽéñàñçé, ķéýéđ ƃý àñ ÉđîţîöñĶéý (à ļàñĝüàĝé þļüš àñ öþţîöñàļ ţöñé àñđ çĥàññéļ); à ḿöñöļîñĝüàļ þàšš ļéàṽéš ţĥé ƃļöçķ ŵîţĥ ţĥé öñé éđîţîöñ îţ ŵàš ŕéàđ îñ. Native ļîšţš ţĥé éđîţîöñš ţĥé đöçüḿéñţ îţšéļƒ ĥöļđš: öñé ƒöŕ à Ḿàŕķđöŵñ þàŕàĝŕàþĥ, ţŵö ƒöŕ à ƃîļîñĝüàļ ẊĻÎƑƑ éñţŕý. Îţ çàŕŕîéš à Translatable ƒļàĝ (à þàŕšé-ţîḿé çļàššîƒîçàţîöñ ḿàŕķîñĝ çöñţéñţ ţĥé ŕéàđéŕ éẋţŕàçţéđ ṽéŕšüš îñéŕţ šķéļéţöñ), öþàǫüé þàšš-ţĥŕöüĝĥ Properties, àñđ ţĥé ţŵö šţàñđ-öƒƒ çàŕŕîéŕš đéšçŕîƃéđ îñ Ţŵö ŵàýš ţö àññöţàţé à ƃļöçķ: þöšîţîöñàļ Overlays àñđ ƃļöçķ-šçöþéđ Annotations.
  • Öṽéŕļàý îš à ţýþéđ, ŕüñ-àñçĥöŕéđ îñţéŕþŕéţàţîöñ öƒ à ƃļöçķ'š ŕüñš: šéñţéñçé šéĝḿéñţàţîöñ, ţéŕḿîñöļöĝý, éñţîţîéš, çĥéçķ ƒîñđîñĝš, šöüŕçé↔ţàŕĝéţ àļîĝñḿéñţ. Éàçĥ öṽéŕļàý îš à þöšîţîöñàļ šţàñđ-öƒƒ ļàýéŕ öṽéŕ öñé éđîţîöñ öƒ ţĥé ƃļöçķ, ķéþţ àþàŕţ ƒŕöḿ ţĥé ŕüñš. À šéĝḿéñţ îš à šþàñ îñ ţĥé šéĝḿéñţàţîöñ öṽéŕļàý, àñđ ţĥéŕé îš ñö šţŕüçţüŕàļ Segment ţýþé. Šéĝḿéñţàţîöñ îš ţĥéŕéƒöŕé öþţ-îñ, ḿüļţî-ļàýéŕ àñđ ŕéṽéŕšîƃļé: đŕöþ ţĥé öṽéŕļàý àñđ ţĥé üñšéĝḿéñţéđ çöñţéñţ îš ƃàçķ. Ţĥé segmentation ţööļ ŵŕîţéš ţĥàţ öṽéŕļàý ƒŕöḿ à þļüĝĝàƃļé éñĝîñé çĥöšéñ ŵîţĥ --engine: srx (ţĥé đéƒàüļţ ŠŔẊ 2.0 ŕüļé éñĝîñé), uax29 (ţĥé ÎÇÜ Üñîçöđé ƃàšéļîñé), llm (šéḿàñţîç çĥüñķš), öŕ sat (ţĥé ŵţþšþļîţ ḾĻ ḿöđéļ, ŕüñ ṽîà ţĥé kapi-sat þļüĝîñ). Šéé Šéĝḿéñţàţîöñ àñđ Ƒ-02.
  • Ŕüñ îš öñé éļéḿéñţ öƒ à ƃļöçķ'š îñļîñé çöñţéñţ: à çĥüñķ öƒ ţéẋţ, àñ öþéñîñĝ öŕ çļöšîñĝ îñļîñé ţàĝ, à šéļƒ-çļöšîñĝ þļàçéĥöļđéŕ, öŕ à šţŕüçţüŕéđ þļüŕàļ/šéļéçţ çöñšţŕüçţ (šéé ƃéļöŵ).
  • Đàţà àñđ Ḿéđîà çàŕŕý ñöñ-ţŕàñšļàţàƃļé đöçüḿéñţ šţŕüçţüŕé àñđ ƃîñàŕý çöñţéñţ, ŵĥîçĥ ƒļöŵ ţĥŕöüĝĥ šö ţĥé ŵŕîţéŕ çàñ ŕéçöñšţŕüçţ ţĥé öŕîĝîñàļ ƃýţé-ƒöŕ-ƃýţé.

Ţŵö ŵàýš ţö àññöţàţé à ƃļöçķ​

À ƃļöçķ'š çöñţéñţ îš îţš éđîţîöñš, éàçĥ à []Run üñđéŕ îţš ķéý. Éṽéŕý ţýþéđ îñţéŕþŕéţàţîöñ öƒ ţĥàţ çöñţéñţ îš šţàñđ-öƒƒ, ķéþţ šéþàŕàţé ƒŕöḿ ţĥé ŕüñš, šö ţĥé šàḿé çöñţéñţ çàñ çàŕŕý šéĝḿéñţàţîöñ, ţéŕḿîñöļöĝý, çĥéçķ ƒîñđîñĝš, ñöţéš, àñđ àñàļýšîš ŕéšüļţš àţ öñçé ŵîţĥöüţ ŕéŵŕîţîñĝ îţ. À ƃļöçķ ĥöļđš šţàñđ-öƒƒ îñţéŕþŕéţàţîöñš îñ ţŵö çàŕŕîéŕš, çĥöšéñ ƃý ŵĥéţĥéŕ ţĥé îñţéŕþŕéţàţîöñ ĥàš à þöšîţîöñ:

  • Öṽéŕļàýš (Block.Overlays) àŕé þöšîţîöñàļ: éàçĥ öṽéŕļàý àñçĥöŕš ţö ŕüñ ŕàñĝéš. Àñ öṽéŕļàý ĥàš à Type, ţĥé Edition îţ šîţš öñ (ţĥé žéŕö ķéý ƒöŕ ţĥé éđîţîöñ ţĥé ƃļöçķ ŵàš ŕéàđ îñ), àñ öþţîöñàļ Layer (šéĝḿéñţàţîöñ ĝŕàñüļàŕîţý; "" = ţĥé þŕîḿàŕý šéñţéñçé šéĝḿéñţàţîöñ), àñđ à ļîšţ öƒ Spans. À Span çàŕŕîéš à ŕüñ Range (îţš þöšîţîöñ), àñ ID, öþţîöñàļ Props, àñđ à ţýþéđ þàýļöàđ Value. Ƃéçàüšé šþàñš àñçĥöŕ ţö ŕüñš, à šöüŕçé ŕéŵŕîţé ḿöṽéš ţĥéḿ. Ŵĥéñ à ţŕàñšƒöŕḿéŕ ŕéŵŕîţéš ţĥé ŕüñš, ţĥé ƒŕàḿéŵöŕķ àþþļîéŕ ŕéƃàšéš šüŕṽîṽîñĝ šþàñš öñţö ţĥé ñéŵ ŕüñš àñđ đŕöþš àñý šþàñ ţĥàţ öṽéŕļàþš à ŕéŵŕîţţéñ ŕàñĝé.
  • Àññöţàţîöñš (Block.Annotations) àŕé ƃļöçķ-šçöþéđ: ţýþéđ ḿéţàđàţà ķéýéđ ƃý ţýþé ñàḿé, ŵîţĥ ñö þöšîţîöñ. À šöüŕçé ŕéŵŕîţé đöéš ñöţ îñṽàļîđàţé ţĥéḿ. Ḿüļţîþļîçîţý ļîṽéš îñšîđé ţĥé ṽàļüé, ñéṽéŕ îñ ñüḿƃéŕéđ ķéýš: éṽéŕý àļţéŕñàţîṽé ţŕàñšļàţîöñ îš öñé AltTranslations çöļļéçţîöñ üñđéŕ ţĥé šîñĝļé alt-translation ķéý, ñöţ alt-translation-1, -2, àñđ šö öñ.

Ţĥé ƃüîļţ-îñ šţàñđ-öƒƒ ţýþéš:

ÇàŕŕîéŕŢýþéÀñçĥöŕéđ ţöĐéšçŕîþţîöñ
Öṽéŕļàýsegmentationŕüñ ŕàñĝéššéñţéñçé / çĥüñķ ƃöüñđàŕîéš (þéŕ Layer)
Öṽéŕļàýtermŕüñ ŕàñĝéšḿàţçĥéđ ţéŕḿîñöļöĝý šþàñš
Öṽéŕļàýterm-candidateŕüñ ŕàñĝéšþŕöþöšéđ ţéŕḿîñöļöĝý àŵàîţîñĝ ŕéṽîéŵ
Öṽéŕļàýentityŕüñ ŕàñĝéšŕéçöĝñîžéđ ñàḿéđ-éñţîţý šþàñš
Öṽéŕļàýqaŕüñ ŕàñĝéšǫüàļîţý-çĥéçķ ƒîñđîñĝš
Öṽéŕļàýalignmentŕüñ ŕàñĝéšļîñķš šöüŕçé šþàñš ţö ţàŕĝéţ šþàñš
Àññöţàţîöñstructureŵĥöļé ƃļöçķļöĝîçàļ ŕöļé (ĥéàđîñĝ, ţàƃļé çéļļ, ƒöŕḿ ƒîéļđ, …), ļàýöüţ ļàýéŕ, ļéṽéļ, ţàƃļé-çéļļ šþàñš
Àññöţàţîöñgeometryŵĥöļé ƃļöçķþàĝé + ƃöüñđîñĝ ƃöẋ + (þéŕ-àẋîš) ŕéšöļüţîöñ ƒöŕ çöñţéñţ ƒŕöḿ à ŕéñđéŕéđ ḿéđîüḿ
Àññöţàţîöñtimingŵĥöļé ƃļöçķţîḿé šþàñ ƒöŕ çöñţéñţ ƒŕöḿ ţîḿéđ ḿéđîà (àüđîö, ṽîđéö)
Àññöţàţîöñrelationsŵĥöļé ƃļöçķţýþéđ çŕöšš-ƃļöçķ éđĝéš (çàþţîöñ-öƒ, ƒööţñöţé-öƒ, çöñţîñüéš, …)
Àññöţàţîöñnoteŵĥöļé ƃļöçķţŕàñšļàţöŕ / ŕéṽîéŵéŕ ñöţé
Àññöţàţîöñalt-translationŵĥöļé ƃļöçķàļţéŕñàţîṽé-ţŕàñšļàţîöñ çàñđîđàţéš
Àññöţàţîöñtm-matchŵĥöļé ƃļöçķçöñţéñţ-ḿéḿöŕý ḿàţçĥ ḿéţàđàţà
Àññöţàţîöñword-countŵĥöļé ƃļöçķŵöŕđ-çöüñţ àñàļýšîš ŕéšüļţ
Àññöţàţîöñchar-countŵĥöļé ƃļöçķçĥàŕàçţéŕ-çöüñţ àñàļýšîš ŕéšüļţ
Àññöţàţîöñseg-countŵĥöļé ƃļöçķšéĝḿéñţ-çöüñţ àñàļýšîš ŕéšüļţ
Àññöţàţîöñcomparisonŵĥöļé ƃļöçķšöüŕçé/ţàŕĝéţ çöḿþàŕîšöñ ŕéšüļţ
Àññöţàţîöñrepetitionŵĥöļé ƃļöçķŕéþéţîţîöñ / ļéṽéŕàĝé àñàļýšîš
Àññöţàţîöñvoiceŵĥöļé ƃļöçķṽöîçé çĥéçķ ŕéšüļţ

Ƃöţĥ öṽéŕļàý šþàñ Valueš àñđ àññöţàţîöñ ṽàļüéš àŕé ţýþéđ þàýļöàđš ŕéĝîšţéŕéđ ŵîţĥ öñé þàýļöàđ ŕéĝîšţŕý (RegisterPayload / NewPayload) ķéýéđ ƃý ţýþé ñàḿé, šö ţĥé þļüĝîñ ĝŔÞÇ ƃŕîđĝé àñđ šţöŕé ļàýéŕš çàñ ŕéĥýđŕàţé ţĥé çöñçŕéţé ţýþé öñ ţĥé ƒàŕ šîđé öƒ ţĥé ŵîŕé.

Properties îš à šéþàŕàţé ḿàþ ƒöŕ öþàǫüé þàšš-ţĥŕöüĝĥ ḿéţàđàţà öñļý, šüçĥ àš çöññéçţöŕ ķéýš àñđ ƒöŕḿàţ ŕöüñđ-ţŕîþ ĥîñţš. Àñàļýţîç öŕ îñţéŕþŕéţîṽé ŕéšüļţš àŕé öṽéŕļàýš öŕ àññöţàţîöñš, ñéṽéŕ þŕöþéŕţîéš. À ƒéŵ ŕöüñđ-ţŕîþ ĥîñţš ƒöļļöŵ à ñöŕḿàļîžéđ çöñṽéñţîöñ šö ŵŕîţéŕš àñđ ţĥé éđîţöŕ ŕéàđ ţĥéḿ ţĥé šàḿé ŵàý àçŕöšš ƒöŕḿàţš: code.language (à çöđé ƃļöçķ'š ļàñĝüàĝé ķéý), picture.subclass (à çĥàŕţ ķîñđ), table.header-kind (àñ ÖŢŠĻ ĥéàđéŕ'š çöļüḿñ/ŕöŵ/çöŕñéŕ/šéçţîöñ ŕöļé), àñđ ţĥé checkbox.checked / field.fillable ƒöŕḿ-šţàţé ƒļàĝš. Ţĥéšé àŕé ƒîñé šţŕüçţüŕàļ šüƃţýþéš ţĥàţ ĥàṽé ñö ţýþéđ ĥöḿé öñ ţĥé šţŕüçţüŕé àññöţàţîöñ; ţĥé çàñöñîçàļ ķéýš ļîṽé îñ core/model/structure.go.

Ŕüñš ķééþ îñļîñé ḿàŕķüþ öüţ öƒ ţĥé ŵàý​

Ţĥé Ŕüñ šéǫüéñçé ļéţš à ţööļ, à ţŕàñšļàţîöñ éñĝîñé öŕ çöñţéñţ ḿéḿöŕý öþéŕàţé öñ ţĥé ŵöŕđš ŵĥîļé îñļîñé ḿàŕķüþ ļîķé <b>, ** öŕ {count} šţàýš îñţàçţ. Éàçĥ éđîţîöñ öƒ à ƃļöçķ, šöüŕçé àñđ ţàŕĝéţ àļîķé, îš à ƒļàţ []Run, à đîšçŕîḿîñàţéđ üñîöñ ŵĥéŕé éàçĥ ŕüñ îš éẋàçţļý öñé öƒ:

Ŕüñ ķîñđƑîéļđŔéþŕéšéñţš
ŢéẋţTextà þļàîñ ţéẋţ çĥüñķ
ÞļàçéĥöļđéŕPhà šéļƒ-çļöšîñĝ ţöķéñ (<br/>, <img>, {n})
Þàîŕéđ öþéñPcOpenţĥé öþéñîñĝ ĥàļƒ öƒ à þàîŕéđ çöđé (<b>, <a>)
Þàîŕéđ çļöšéPcCloseţĥé çļöšîñĝ ĥàļƒ öƒ à þàîŕéđ çöđé (</b>, </a>)
ŠüƃSubà ŕéƒéŕéñçé ţö à ñéšţéđ šüƃ-ƃļöçķ (šüƃƒîļţéŕ öüţþüţ)
Þļüŕàļ / ŠéļéçţPlural / Selectà šţŕüçţüŕéđ ÎÇÜ çöñšţŕüçţ ŵîţĥ þéŕ-ƒöŕḿ ŕüñš

Ƃöļđ ţéẋţ ƃéçöḿéš à PcOpen / ţéẋţ / PcClose ţŕîþļé; à <br/> öŕ à ṽàŕîàƃļé ƃéçöḿéš à šîñĝļé Ph. Ţĥé öŕîĝîñàļ ḿàŕķüþ îš çàŕŕîéđ îñ ţĥé ŕüñ'š Data ƒîéļđ, šö ţĥé ŵŕîţéŕ çàñ ŕéþļàý îţ ṽéŕƃàţîḿ:

Source HTML: Click <b>here</b> for info

Source runs:
- {Text: "Click "}
- {PcOpen: {ID: "1", Type: "fmt:bold", Data: "<b>"}}
- {Text: "here"}
- {PcClose: {ID: "1", Type: "fmt:bold", Data: "</b>"}}
- {Text: " for info"}

À ţööļ çàñ þŕöĵéçţ ţĥé ŕüñš ţö þļàîñ ţéẋţ (block.SourceText() ŕéţüŕñš "Click here for info"); à ţŕàñšļàţîöñ éñĝîñé šééš ţéẋţ ŵîţĥ öþàǫüé ţöķéñš îţ ḿüšţ þŕéšéŕṽé; àñđ ţĥé ŵŕîţéŕ ŕé-éḿîţš éàçĥ ŕüñ'š Data àţ îţš þöšîţîöñ ţö ŕéçöñšţŕüçţ ţĥé šöüŕçé ƒàîţĥƒüļļý, àţţŕîƃüţéš àñđ àļļ. Ƃéçàüšé ţĥé šàḿé <b>, Ḿàŕķđöŵñ **, àñđ ĐÖÇẊ <w:b/> àļļ ŕéđüçé ţö à PcOpen/PcClose þàîŕ öƒ ţĥé šàḿé šéḿàñţîç Type, ţĥé ŕéþŕéšéñţàţîöñ îš ƒöŕḿàţ-îñđéþéñđéñţ. Îñļîñé Ƒöŕḿàţţîñĝ àñđ Ṽöçàƃüļàŕîéš çöṽéŕ ĥöŵ ŕüñš àŕé çļàššîƒîéđ àñđ ŵĥàţ ḿéţàđàţà ţĥéý çàŕŕý.

Šéé îţ öñ à ŕéàļ ƒîļé​

Ĥéŕé ķàþî þàŕšéš à šḿàļļ ĴŠÖÑ ḿéššàĝé çàţàļöĝ îñţö ƃļöçķš, éàçĥ ŵîţĥ àñ îđéñţîƒîéŕ àñđ îţš šöüŕçé ţéẋţ:

Ţĥé šàḿé þàŕšéŕ ŕüñ àĝàîñšţ àñ ĤŢḾĻ þàĝé šĥöŵš ŕüñš ŵîţĥ îñļîñé çöđéš (ţĥé çĥîþš ḿàŕķ ţĥé PcOpen/PcClose/Ph ŕüñš ļîƒţéđ öüţ öƒ ţĥé ţéẋţ):

Ŕéçöñšţŕüçţîöñ ŵîţĥ šķéļéţöñš​

Ƃļöçķš àŕé öñļý þàŕţ öƒ à đöçüḿéñţ; ţĥé ŕéšţ îš šţŕüçţüŕé: šüŕŕöüñđîñĝ ţàĝš, ŵĥîţéšþàçé, ķéýš, àţţŕîƃüţéš. À šķéļéţöñ çàþţüŕéš ţĥàţ ñöñ-ţŕàñšļàţàƃļé šţŕüçţüŕé îñţéŕļéàṽéđ ŵîţĥ ŕéƒéŕéñçéš ţö ƃļöçķ çöñţéñţ, šö ţĥé ŵŕîţéŕ çàñ ŕéƃüîļđ ţĥé đöçüḿéñţ éẋàçţļý, šüƃšţîţüţîñĝ ţŕàñšļàţéđ çöñţéñţ ŵĥéŕé à ţàŕĝéţ éẋîšţš àñđ ƒàļļîñĝ ƃàçķ ţö šöüŕçé ŵĥéŕé îţ đöéš ñöţ. Ŕöüñđ-ţŕîþ ƒîđéļîţý ŕéšţš öñ ţĥé šķéļéţöñ: à ƒîļé ŕéàđ àñđ ŵŕîţţéñ ƃàçķ çöḿéš öüţ üñçĥàñĝéđ, öŕ đéŕš öñļý îñ ţĥé ţéẋţ ţĥàţ çĥàñĝéđ.

Ḿöñöļîñĝüàļ çöñţéñţ: šöüŕçé öñļý​

À ƃļöçķ çàñ ĥöļđ öñļý ţĥé éđîţîöñ îţ ŵàš ŕéàđ îñ ƒöŕ ţĥé ŵĥöļé ŕüñ, àñđ ţĥé ḿöđéļ ŵöŕķš ţĥé šàḿé ŵàý ŵĥéñ ţĥé šöüŕçé îš ţĥé öñļý ļöçàļé îñ þļàý. À ṽöîçé öŕ ţéŕḿîñöļöĝý þàšš ţàķéš ţĥîš þàţĥ: ŕéàđ à ƒîļé, çĥéçķ ţĥé šöüŕçé çöñţéñţ, éđîţ îţ îñ þļàçé, àñđ ŵŕîţé ţĥé öŕîĝîñàļ ƃàçķ ŵîţĥ öñļý ţĥé éđîţéđ ţéẋţ çĥàñĝéđ.

Ţàķé à Ḿàŕķđöŵñ ƒîļé ŵîţĥ öñé öƒƒ-ƃŕàñđ šéñţéñçé. Ţĥé ŕéàđéŕ þŕöđüçéš ƃļöçķš ţĥàţ ĥöļđ öñé éđîţîöñ, ţĥé öñé ţĥé đöçüḿéñţ îš ŵŕîţţéñ îñ:

Block "intro"
Editions: {en: "Our solution is a game-changing, world-class platform."}
// no translation, monolingual

À çĥéçķ ŕéàđš éàçĥ ƃļöçķ'š SourceText(), çöḿþàŕéš îţ àĝàîñšţ à ṽöîçé þŕöƒîļé öŕ ţĥé þŕöĵéçţ ţéŕḿš šţöŕé, àñđ ŕéçöŕđš éàçĥ þŕöƃļéḿ àš à šţàñđ-öƒƒ qa öṽéŕļàý àñçĥöŕéđ ţö ţĥé öƒƒéñđîñĝ ŕüñš. À çĥéçķ àññöţàţéš àñđ ļéàṽéš ţĥé ţéẋţ àļöñé (šéé ţĥé îḿḿüţàƃîļîţý ḿöđéļ):

Block "intro"
Editions: {en: "Our solution is a game-changing, world-class platform."}
Overlays: [{Type: "qa", Range: runs[…], note: "off-voice: 'game-changing, world-class'"}]

Àñ éđîţ ţĥéñ šéţţļéš ţĥé šöüŕçé. À Transform ţööļ (öŕ ksed, öŕ àñ ÀÎ ŕéŵŕîţé) ŕéţüŕñš àñ éđîţ þļàñ; ţĥé ƒŕàḿéŵöŕķ àþþļîéŕ ŕéŵŕîţéš ţĥé ŕüñš öƒ ţĥé éđîţîöñ ţĥé ƃļöçķ ŵàš ŕéàđ îñ, îñ þļàçé, àñđ ŕéƃàšéš ţĥé šüŕṽîṽîñĝ öṽéŕļàýš öñţö ţĥé ñéŵ ŕüñš:

Block "intro"
Editions: {en: "Our product is a content engine."}
// still monolingual

Ƒîñàļļý ţĥé ŵŕîţéŕ ŕéçöñšţŕüçţš ţĥé ƒîļé ƒŕöḿ ţĥé Þàŕţ šţŕéàḿ. Ƃéçàüšé éṽéŕý üñţöüçĥéđ ƃļöçķ îš ŕéþļàýéđ ƒŕöḿ îţš šķéļéţöñ ƃýţé-ƒöŕ-ƃýţé, öñļý ţĥé öñé šéñţéñçé ţĥàţ çĥàñĝéđ đéŕš îñ ţĥé öüţþüţ. À ţŕàñšļàţîöñ ŕüñ ŕéļîéš öñ ţĥé šàḿé ŕöüñđ-ţŕîþ ĝüàŕàñţéé.

Ŕéļàţéđ ŕéàđîñĝ​