agentsclimarketplace

Intlayer angular

Skill aymericzip/intlayer-skills/skills/intlayer-angular

Intlayer Skills are a set of specialized instructions and workflows for AI agents to help them interact with Intlayer projects.

Install
npx -y skills add aymericzip/intlayer-skills --skill intlayer-angular

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Integrates Intlayer internationalization with Angular applications. Use when the user asks to "setup Angular i18n", create a new translated component, use the "useIntlayer" composable, or configure providers.

SKILL.md

4.0 KB, as published. Nobody here has run it

Intlayer Angular Usage

Core Philosophy

Intlayer promotes Component-Level Content Declaration. Instead of a massive global translation file, content is declared in *.content.ts files adjacent to the Angular components that use them.

Workflow

To create a translated component, you need two files:

  1. Declaration: A content file (e.g., my-component.content.ts) defining the dictionary.
  2. Implementation: An Angular component (e.g., my-component.component.ts) using the useIntlayer signal.

1. Declare Content

Create a content file using t() for translations. File: src/app/my-component/my-component.content.ts

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

const content = {
  // The 'key' must be unique and matches what you pass to useIntlayer()
  key: "my-component",
  content: {
    text: t({
      en: "Welcome",
      fr: "Bienvenue",
      es: "Hola",
    }),
  },
} satisfies Dictionary;

export default content;

Setup

Intlayer Provider

To use Intlayer in your Angular application, you need to add the provideIntlayer provider to your application configuration.

import { ApplicationConfig } from "@angular/core";
import { provideIntlayer } from "angular-intlayer";

export const appConfig: ApplicationConfig = {
  providers: [provideIntlayer()],
};

useIntlayer Hook

In Angular, useIntlayer returns a Signal. You must call it as a function to access the value.

import { Component } from "@angular/core";
import { useIntlayer } from "angular-intlayer";

@Component({
  selector: "app-my-component",
  standalone: true,
  template: `
    <div>
      <h1>
        {{ content().text }}
      </h1>
      <img [src]="content().text.value" [alt]="content().text.value" />
    </div>
  `,
})
export class MyComponent {
  content = useIntlayer("my-component");
}

Change language

To change the language, use the setLocale function from the useLocale hook.

import { Component } from "@angular/core";
import { useLocale } from "angular-intlayer";
import { Locales } from "intlayer";

@Component({
  selector: "app-locale-switcher",
  standalone: true,
  template: `
    <button (click)="setLocale(Locales.FRENCH)">
      Change Language to French
    </button>
  `,
})
export class LocaleSwitcherComponent {
  Locales = Locales;
  private localeCtx = useLocale();
  setLocale = this.localeCtx.setLocale;
}

Localized Link component

Ensure your application's navigation respects the current locale by using a localized link. You can create a component or use a helper.

import { Component, Input } from "@angular/core";
import { RouterModule } from "@angular/router";
import { useLocale } from "angular-intlayer";
import { getLocalizedUrl } from "intlayer";

@Component({
  selector: "app-link",
  standalone: true,
  imports: [RouterModule],
  template: `
    <a [routerLink]="localizedHref()" [replaceUrl]="false">
      <ng-content></ng-content>
    </a>
  `,
})
export class LinkComponent {
  @Input() href: string = "";

  private localeCtx = useLocale();
  locale = this.localeCtx.locale;

  localizedHref() {
    return this.href.startsWith("http")
      ? this.href
      : getLocalizedUrl(this.href, this.locale());
  }
}

References

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.