> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://uploadcare.com/docs/llms.txt.

# Icons & Translations

> Register SVG icons and translation strings via pluginApi.registry.

Use these methods inside `setup` to register icons and translations that your plugin's UI depends on.

## `registerIcon`

Registers an inline SVG icon by name. Use the name in `registerSource` or `registerFileAction`.

```typescript
pluginApi.registry.registerIcon({
  name: 'my-icon',
  svg: '<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="10" fill="currentColor"/></svg>',
});
```

---

## `registerL10n`

Adds translation strings used by the plugin's labels and UI.

```typescript
pluginApi.registry.registerL10n({
  en: {
    'my-source.label': 'My Source',
    'my-source.empty': 'No files found',
  },
  de: {
    'my-source.label': 'Meine Quelle',
    'my-source.empty': 'Keine Dateien gefunden',
  },
});
```

Keys registered here can be accessed via [`uploaderApi.l10n('my-source.label')`](/docs/file-uploader/api/#localization) for translated text. The current locale name is available via `pluginApi.config.get('localeName')`. Keys are also used automatically when the label in `registerSource` matches a key. See [Localization](/docs/file-uploader/localization/) for the full list of built-in keys and locale definition format.