AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Intlayer Content

skill-aymericzip-intlayer-skills-intlayer-content · by aymericzip

Define rich content structures using Intlayer content nodes. Use when the user asks to "create translations", "handle pluralization", "use markdown in content", or implement "conditional content".

No reviews yet
0 installs
23 views
0.0% view→install

Install

$ agentstack add skill-aymericzip-intlayer-skills-intlayer-content

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-aymericzip-intlayer-skills-intlayer-content)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Intlayer Content? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Intlayer Content Nodes

Define rich and dynamic content using Intlayer functions. Use the reference below for each node type.

Translation (t)

Define multilingual content mapped to locales.

[Doc](references/conceptcontenttranslation.md)

import { t } from "intlayer";

const content = t({
  en: "Hello",
  fr: "Bonjour",
  es: "Hola",
});

Find locales to declare in config file. Supported configuration files:

  • intlayer.config.{ts|js|json|json5|jsonc|cjs|mjs}
  • .intlayerrc

Enumeration (enu)

Map content to specific keys, numbers, or ranges (useful for pluralization).

[Doc](references/conceptcontentenumeration.md)

import { enu } from "intlayer";

const carCount = enu({
  "0": "No cars",
  "1": "One car",
  ">1": "Multiple cars",
  fallback: "Unknown amount",
});

Condition (cond)

Define content based on a boolean condition.

[Doc](references/conceptcontentcondition.md)

import { cond } from "intlayer";

const isLoggedIn = cond({
  true: "Welcome back!",
  false: "Please log in",
  fallback: "Status unknown", // Optional
});

Markdown (md)

Define rich text using Markdown syntax.

[Doc](references/conceptcontentmarkdown.md)

import { md } from "intlayer";

const article = md("# Title\n\nSome **bold** text.");

HTML (html)

Define HTML content, optionally with custom components.

[Doc](references/conceptcontenthtml.md)

import { html } from "intlayer";

const richText = html("Hello World");

Nesting (nest)

Reuse content from another dictionary.

[Doc](references/conceptcontentnesting.md)

import { nest } from "intlayer";

// Reference entire dictionary
const fullRef = nest("other_dictionary_key");

// Reference specific path
const partialRef = nest("other_dictionary_key", "path.to.value");

Function Fetching

Execute logic to generate content (synchronous or asynchronous).

[Doc](references/conceptcontentfunction-fetching.md)

const computed = () => `Current time: ${new Date().toISOString()}`;

const fetched = async () => {
  const data = await fetch("/api/data").then((res) => res.json());
  return data.message;
};

Insertion (insert)

Define dynamic content with variables.

[Doc](references/conceptcontentinsertion.md)

import { insert } from "intlayer";

const welcome = insert("Hello {{name}}!");

File (file)

Reference external files as content.

[Doc](references/conceptcontentfile.md)

import { file } from "intlayer";

const myFile = file("./path/to/file.txt");

Gender (gender)

Define content based on gender ('male', 'female', etc.).

[Doc](references/conceptcontentgender.md)

import { gender } from "intlayer";

const greeting = gender({
  male: "Welcome sir",
  female: "Welcome madam",
  fallback: "Welcome",
});

Example Directory Structure (react)

src/
├── components/
│   ├── MyComponent/
│   │   ├── index.content.ts          # Content declaration
│   │   └── index.tsx                 # Component
│   ├── myOtherComponent.content.ts   # Content declaration
│   └── MyOtherComponent.tsx          # Component

Content Templates

TypeScript (.content.ts)

import { t, type Dictionary } from "intlayer";

const content = {
  key: "my-component-key",
  content: {
    title: "...",
  },
} satisfies Dictionary;

export default content;

TypeScript with React (.content.tsx)

import { t, type Dictionary } from "intlayer";
import { ReactNode } from "react";

const content = {
  key: "my-component-key",
  content: {
    title: <>My React Node,
  },
} satisfies Dictionary;

export default content;
{
  "key": "my-component-key",
  "content": {
    "title": "..."
  }
}
import { t } from "intlayer";

/** @type {import('intlayer').Dictionary} **/
const content = {
  key: "my-component-key",
  content: {
    title: "...",
  },
};

export default content;

Content declaration combination

Nodes can be imbricated for complex logic.

import {
  cond,
  enu,
  file,
  gender,
  insert,
  html,
  md,
  nest,
  t,
  type Dictionary,
} from "intlayer";

const content = {
  key: "test",
  title: "Test component content",
  description:
    "Content declarations for the Test component, including examples of plurals, conditions, gender-specific messages, dynamic insertions, markdown, file-based content and nested dictionaries used for demonstration and testing purposes.",
  content: {
    baseContent: "Intlayer", // Content that no need to be i18n
    welcomeMessage: t({
      en: "Welcome to our application",
      "en-GB": "Welcome to our application",
      fr: "Bienvenue dans notre application",
      es: "Bienvenido a nuestra aplicación",
      // ... All other locales set in intlayer config file
    }),
    numberOfCar: enu({
      // Check all conditions in other
      "19": "Many cars",
      ">5": "Some cars", // Will never will triggered, because >5 is included between 1 and >19
      fallback: "Fallback value", // Optional but avoid undefined type
    }),
    myCondition: cond({
      true: "my content when it's true",
      false: "my content when it's false",
      fallback: "my content when the condition fails", // Optional but avoid undefined type
    }),
    myGender: gender({
      male: "my content for male users",
      female: "my content for female users",
      fallback: "my content when gender is not specified", // Optional but avoid undefined type
    }),
    myInsertion: insert(
      "Hello, my name is {{name}} and I am {{age}} years old!"
    ),
    myMultilingualInsertion: insert(
      t({
        ar: "مرحبا, اسمي {{name}} وأنا {{age}} سنة!",
        de: "Hallo, mein Name ist {{name}} und ich bin {{age}} Jahre alt!",
        en: "Hello, my name is {{name}} and I am {{age}} years old!",
        "en-GB": "Hello, my name is {{name}} and I am {{age}} years old!",
      })
    ),
    myTextFile: file("./test.txt"), // File helps to know where is located the file
    subContent: {
      contentNumber: 0,
      contentString: "string",
    },
    fullNested: nest("code"),
    // References a specific nested value:
    partialNested: nest("code", "title"),
    myMarkdown: md("## My title \n\nLorem Ipsum"),
    myMarkdownFile: md(file("./test.md")),
    multilingualMarkdown: t({
      en: md("## test en"),
      fr: md("## test fr"),
      es: md("## test es"),
      "en-GB": md("## test en-GB"),
    }),
    myHTML: html("My titleLorem Ipsum"),
    myHTMLFile: html(file("./test.html")),

    arrayContent: ["string", "string2", "string3"],
    arrayOfObject: [
      {
        name: "item1",
        description: "description1",
      },
      {
        name: "item2",
        description: "description2",
      },
    ],
    objectOfArray: {
      array: ["item1", "item2", "item3"],
      object: {
        name: "object name",
        description: "object description",
      },
    },
  },
  tags: ["test", "test page"],
} satisfies Dictionary;

export default content;

Type validation of dictionary

Dictionary; // Generic describing content type for formatted data (metadata, etc)

Key Dictionary Fields for AI Management

Core Metadata

  • key: The identifier for the dictionary (e.g., about-page-meta). AI can ensure consistent naming conventions.
  • title: A human-readable name for identification in the CMS or editor.
  • description: Provides context for the dictionary. AI uses this to understand the purpose and generate better translations or content.
  • tags: Categorization strings (e.g., metadata, SEO) to help organize and filter dictionaries.

Content & Localization

  • locale: Specifies the language of the content for (per-locale file)[references/concept_per-locale-file.md]
  • contentAutoTransformation: A toggle to automatically convert raw strings into specialized formats like Markdown, HTML, or Insertions (variables).
  • fill: An instruction indicating whether the dictionary should be automatically populated by AI/automation tools.

Behaviorals Settings

  • priority: A numeric value used to resolve conflicts during merge of dictionaries under a same key.
  • importMode: Defines how content is loaded (static, dynamic, or live). AI can recommend the best mode based on performance needs.
  • location: Controls CMS synchronization (hybrid, remote, local). AI can manage where the source of truth resides.
  • schema: string that use zod schema declared in config file to validate data

References

  • [Content Overview](references/concept_content.md)
  • [Exports intlayer package](references/packagesintlayerexports.md)

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.