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

Àñàţöḿý öƒ à KBF đöçüḿéñţ

Ţĥé Kapi Ƃüñđļé Ƒöŕḿàţ ( .kbf.json) îš ţĥé îñţéŕçĥàñĝé ƒöŕḿàţ öƒ ţĥé kapi ţööļçĥàîñ: öñé đéţéŕḿîñîšţîç ĴŠÖÑ đöçüḿéñţ ţĥàţ çàŕŕîéš à šöüŕçé ƒîļé’š ţŕàñšļàţàƃļé çöñţéñţ àš ƃļöçķš öƒ ŕüñš, îţš þéŕ-ļöçàļé ţàŕĝéţš, àñđ ţĥé þŕöṽéñàñçé öƒ éṽéŕý šţŕîñĝ. Îţ éẋîšţš šö ţĥàţ éẋţŕàçţîöñ, ţŕàñšļàţîöñ, ṽàļîđàţîöñ, àñđ ŵŕîţé-ƃàçķ çàñ ƃé šéþàŕàţé šţéþš — ŕüñ ƃý đéŕéñţ ţööļš, àţ đéŕéñţ ţîḿéš — ŵîţĥöüţ ļöšîñĝ šţŕüçţüŕé öŕ îđéñţîţý. Ţĥîš þàĝé ŕéàđš öñé ŕéàļîšţîç đöçüḿéñţ þàŕţ ƃý þàŕţ, ţĥéñ ŕöüñđ-ţŕîþš îţ ţĥŕöüĝĥ ţĥé éñĝîñé.

À ŵöŕķéđ éẋàḿþļé

Öñé Ŕéàçţ çöḿþöñéñţ, CheckoutBanner, éẋţŕàçţéđ ţö KBF: à ĥéàđîñĝ ŵîţĥ îñļîñé ḿàŕķüþ àñđ à ṽàŕîàƃļé — àļŕéàđý ţŕàñšļàţéđ îñţö Ñöŕŵéĝîàñ Ƃöķḿåļ — àñđ à þļüŕàļ šţîļļ àŵàîţîñĝ ţŕàñšļàţîöñ. Šéļéçţ à ļîñé öñ ţĥé ļéƒţ, öŕ à ţéŕḿ öñ ţĥé ŕîĝĥţ, ţö šéé ŵĥàţ ţĥàţ þàŕţ öƒ ţĥé đöçüḿéñţ îš ƒöŕ.

1{2  "schemaVersion": "1.0",3  "kind": "kapi-bundle",4  "created": "2026-05-02T09:30:00Z",5  "generator": {6    "id": "@neokapi/kapi-format-examples",7    "version": "0.0.1",8    "capabilities": [9      "extract",10      "preview"11    ]12  },13  "project": {14    "id": "storefront",15    "sourceLocale": "en"16  },17  "vocabulary": {18    "extends": [19      "common-formatting",20      "rich-jsx"21    ]22  },23  "documents": [24    {25      "id": "checkout-banner",26      "documentType": "jsx",27      "path": "src/CheckoutBanner.tsx",28      "blocks": [29        {30          "id": "banner-heading",31          "hash": "8kQzTf",32          "translatable": true,33          "type": "jsx:element",34          "source": [35            {36              "text": "Your order "37            },38            {39              "pcOpen": {40                "id": "1",41                "type": "jsx:element",42                "subType": "strong",43                "data": "<strong>",44                "equiv": "emph",45                "disp": "strong"46              }47            },48            {49              "text": "#"50            },51            {52              "ph": {53                "id": "2",54                "type": "jsx:var",55                "subType": "string",56                "data": "{orderId}",57                "equiv": "orderId",58                "disp": "orderId"59              }60            },61            {62              "pcClose": {63                "id": "1",64                "type": "jsx:element",65                "subType": "strong",66                "data": "</strong>",67                "equiv": "emph"68              }69            },70            {71              "text": " has shipped."72            }73          ],74          "targets": {75            "nb": [76              {77                "text": "Bestillingen din "78              },79              {80                "pcOpen": {81                  "id": "1",82                  "type": "jsx:element",83                  "subType": "strong",84                  "data": "<strong>",85                  "equiv": "emph",86                  "disp": "strong"87                }88              },89              {90                "text": "#"91              },92              {93                "ph": {94                  "id": "2",95                  "type": "jsx:var",96                  "subType": "string",97                  "data": "{orderId}",98                  "equiv": "orderId",99                  "disp": "orderId"100                }101              },102              {103                "pcClose": {104                  "id": "1",105                  "type": "jsx:element",106                  "subType": "strong",107                  "data": "</strong>",108                  "equiv": "emph"109                }110              },111              {112                "text": " er sendt."113              }114            ]115          },116          "placeholders": [117            {118              "name": "emph",119              "kind": "element",120              "jsType": "ReactNode",121              "sourceExpr": "<strong>...</strong>"122            },123            {124              "name": "orderId",125              "kind": "variable",126              "jsType": "string",127              "sourceExpr": "order.id"128            }129          ],130          "properties": {131            "file": "src/CheckoutBanner.tsx",132            "line": 12,133            "component": "CheckoutBanner",134            "jsxPath": "CheckoutBanner > h2",135            "element": "h2"136          }137        },138        {139          "id": "banner-items",140          "hash": "3mVd9c",141          "translatable": true,142          "type": "jsx:element",143          "source": [144            {145              "plural": {146                "pivot": "count",147                "forms": {148                  "one": [149                    {150                      "text": "It contains 1 item."151                    }152                  ],153                  "other": [154                    {155                      "text": "It contains "156                    },157                    {158                      "ph": {159                        "id": "1",160                        "type": "jsx:var",161                        "subType": "number",162                        "data": "{count}",163                        "equiv": "count",164                        "disp": "count"165                      }166                    },167                    {168                      "text": " items."169                    }170                  ]171                }172              }173            }174          ],175          "placeholders": [176            {177              "name": "count",178              "kind": "icu-pivot",179              "jsType": "number",180              "sourceExpr": "order.items.length"181            }182          ],183          "properties": {184            "file": "src/CheckoutBanner.tsx",185            "line": 18,186            "component": "CheckoutBanner",187            "jsxPath": "CheckoutBanner > p > Plural",188            "element": "Plural"189          }190        }191      ]192    }193  ]194}

Ƒîļé éñṽéļöþé

Ţĥé ţöþ-ļéṽéļ öƃĵéçţ öƒ à .kbf.ĵšöñ ƒîļé. ķîñđ îš ţĥé ḿàĝîç šţŕîñĝ ŕéàđéŕš šñ ţö đéţéçţ ţĥé ƒöŕḿàţ; šçĥéḿàṼéŕšîöñ çàŕŕîéš ţĥé ḾÀĴÖŔ.ḾÎÑÖŔ ŵîŕé çöñţŕàçţ — à çöñšüḿéŕ ḿüšţ ŕéĵéçţ àñ üñŕéçöĝñîžéđ ḿàĵöŕ ṽéŕšîöñ àñđ šĥöüļđ àççéþţ üñķñöŵñ ḿîñöŕš, îĝñöŕîñĝ ƒîéļđš îţ đöéš ñöţ ŕéçöĝñîžé.

Šéŕîàļîžàţîöñ îš đéţéŕḿîñîšţîç: 2-šþàçé îñđéñţ, ƒîéļđš îñ ţĥé þîññéđ öŕđéŕ šĥöŵñ ĥéŕé, àļļ ḿàþ ķéýš šöŕţéđ, ţŕàîļîñĝ ñéŵļîñé. Đéţéŕḿîñîšḿ îš ŵĥàţ ķééþš à ƒîļé'š çöñţéñţ ĥàšĥ šţàƃļé àçŕöšš ŕüñš, ḿàçĥîñéš, àñđ ţĥé ţŵö ŕéƒéŕéñçé îḿþļéḿéñţàţîöñš.

Ñöŕḿàţîṽé đéƒîñîţîöñ îñ ţĥé šþéçîƒîçàţîöñ

Ŕöüñđ-ţŕîþ ţĥŕöüĝĥ ţĥé éñĝîñé

Ţĥé đéḿöñšţŕàţîöñ ƃéļöŵ ŕüñš core/kbf — ţĥé çàñöñîçàļ Ĝö îḿþļéḿéñţàţîöñ, çöḿþîļéđ ţö ŴéƃÀššéḿƃļý — öñ à đöçüḿéñţ ýöü çàñ éđîţ. Ţĥé éñĝîñé þàŕšéš ţĥé ţéẋţ, ŕéñđéŕš éàçĥ ƃļöçķ’š þŕéṽîéŵ, ṽàļîđàţéš ţĥé ŕüñ šţŕüçţüŕé àĝàîñšţ ţĥé ŕüļéš öƒ ţĥé šþéçîƒîçàţîöñ, ŵŕîţéš ţĥé đöçüḿéñţ ƃàçķ îñ çàñöñîçàļ ƒöŕḿ, àñđ ŕéšöļṽéš à çöḿþàñîöñ .overlays.jsonl àññöţàţîöñ öṽéŕļàý àñçĥöŕ ƃý àñçĥöŕ. Ñöţĥîñĝ îš ḿöçķéđ; ţĥîš îš ţĥé çöđé ţĥé ÇĻÎ ŕüñš.

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

Çöñƒöŕḿàñçé ŕéšüļţš: ţĥé KBF çöñƒöŕḿàñçé šüîţé ŕüñš ţĥé šþéç ţéšţš àĝàîñšţ ƃöţĥ ţĥé Ĝö éñĝîñé àñđ ţĥé ŢýþéŠçŕîþţ ḿîŕŕöŕ îñ ýöüŕ ƃŕöŵšéŕ. Ţĥé ƒüļļ šçĥéḿà îš îñ ţĥé šþéçîƒîçàţîöñ; ƒüŕţĥéŕ éđîţàƃļé éẋàḿþļéš àŕé îñ Éẋàḿþļéš.