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

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

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

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

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

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

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

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

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

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

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

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

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

containsflat Source sequenceper variantpositional stand-offchild Layers (embedded content)LayerFormatstringParentIDstringBlockTranslatableboolSource[]RunTargetsmap[VariantKey]*TargetOverlays[]OverlayAnnotationsmap[string]PayloadRunText*TextRunPh*PlaceholderRunPcOpen*PcOpenRunPcClose*PcCloseRunSub*SubRunPlural*PluralRunSelect*SelectRunTargetRuns[]RunStatusTargetStatusOverlayTypeOverlayTypeVariant*VariantKeySpans[]Span

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

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

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

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

  • Öṽéŕļàýš (Block.Overlays) àŕé þöšîţîöñàļ: éàçĥ öṽéŕļàý àñçĥöŕš ţö ŕüñ ŕàñĝéš. Àñ öṽéŕļàý ĥàš à Type, àñ öþţîöñàļ Variant (ñîļ = ţĥé šöüŕçé šîđé; šéţ = à ţàŕĝéţ ṽàŕîàñţ), àñ öþţîöñàļ 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.

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

Ţĥé Ŕüñ šéǫüéñçé îš ŵĥéŕé neokapi šöļṽéš à ĥàŕđ þŕöƃļéḿ: ĥöŵ ţö ļéţ à ţööļ, à ţŕàñšļàţîöñ éñĝîñé, öŕ çöñţéñţ ḿéḿöŕý öþéŕàţé öñ ţĥé ŵöŕđš ŵĥîļé ķééþîñĝ îñļîñé ḿàŕķüþ ļîķé <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, ţĥé ŕéþŕéšéñţàţîöñ îš ƒöŕḿàţ-îñđéþéñđéñţ. Îñļîñé Ƒöŕḿàţţîñĝ àñđ Ṽöçàƃüļàŕîéš çöṽéŕ ĥöŵ ŕüñš àŕé çļàššîƒîéđ àñđ ŵĥàţ ḿéţàđàţà ţĥéý çàŕŕý.

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

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

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

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

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

À ḿöñöļîñĝüàļ þàţĥ: ñö ţàŕĝéţš àţ àļļ

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

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

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

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

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

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

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

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

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