Skip to content
GitHub

Internationalization

Internationalization manifests hold localized messages for one language and optional namespace. Layouts and components refer to keys; the renderer selects messages based on ReportArtefact.language and namespaces.

apiVersion: bino.bi/v1alpha1
kind: Internationalization
metadata:
  name: systemTexts_de
spec:
  code: de-DE
  namespace: _system
  content: {} # object or JSON string

Fields:

  • spec.code – locale code, for example de-DE or en-US.
  • spec.namespace – optional namespace to group keys.
  • spec.content – key/value map as object or JSON string.
---
apiVersion: bino.bi/v1alpha1
kind: Internationalization
metadata:
  name: systemTexts_de
spec:
  code: de-DE
  namespace: _system
  content:
    report.title.sales_overview: "Sales Overview"
    report.subtitle.q1_2024: "Q1 2024"
    card.title.revenue: "Revenue"
    card.title.ebit: "EBIT"
---
apiVersion: bino.bi/v1alpha1
kind: Internationalization
metadata:
  name: productTexts_en
spec:
  code: en-US
  namespace: products
  content: >-
    {"product.applications":"Applications","product.infrastructure":"Infrastructure"}

You can organize translations by language, business domain, or report, as long as namespaces and keys stay consistent with layout conventions.

AttributeTypeRequiredDefaultDescription
apiVersionstringyesMust be bino.bi/v1alpha1.
kindstringyesMust be Internationalization.
metadata.namestringyesUnique identifier for this translation set.
metadata.labelsobjectnoKey-value pairs for categorization and constraint matching.
metadata.annotationsobjectnoArbitrary key-value metadata, not used by the system.
metadata.descriptionstringnoFree-form description.
metadata.constraintsarraynoConditional inclusion rules. See Constraints.
AttributeTypeRequiredDefaultDescriptionSample
spec.codestringyesLocale code (BCP 47 tag).code: de-DE
spec.namespacestringnoOptional lookup namespace for the translation block. Components reference translations by namespace.namespace: _system
spec.contentobject or stringyesKey-value map of translations. Can be a YAML object or a JSON string.see below
spec:
  content:
    report.title: "Sales Overview"
    card.title.revenue: "Revenue"
    card.title.ebit: "EBIT"
spec:
  content: >-
    {"report.title":"Sales Overview","card.title.revenue":"Revenue"}