# translate icon

Translate. Gentleface icon, drawn on the 16 px pixel grid. Free, MIT licensed. Page: https://gentleface.com/icons/translate

- Category: Text & formatting
- Use it for: translate, language, languages, localization, i18n, translation, translator, localisation, l10n, change language
- Tags: translate, language, languages, localization, i18n, multilingual, wen, letter-a
- Family: translate-off
- Component name: TranslateIcon
- Added: 2026-10-14

## Don't confuse with

- `flag`: the flag motif does not mean language
- `globe`: the globe motif does not mean language

## Files

Each SVG is 16 × 16 with fill="currentColor". Keep it at 16 px or an exact multiple (32, 48) on whole pixels: a fractional size or position blurs it.

- line-round: https://gentleface.com/svg/line-round/16/translate.svg · PNG https://gentleface.com/png/line-round/16/translate.png · https://gentleface.com/png/line-round/32/translate.png · https://gentleface.com/png/line-round/48/translate.png
- line-soft: https://gentleface.com/svg/line-soft/16/translate.svg · PNG https://gentleface.com/png/line-soft/16/translate.png · https://gentleface.com/png/line-soft/32/translate.png · https://gentleface.com/png/line-soft/48/translate.png
- line-sharp: https://gentleface.com/svg/line-sharp/16/translate.svg · PNG https://gentleface.com/png/line-sharp/16/translate.png · https://gentleface.com/png/line-sharp/32/translate.png · https://gentleface.com/png/line-sharp/48/translate.png
- solid-round: https://gentleface.com/svg/solid-round/16/translate.svg · PNG https://gentleface.com/png/solid-round/16/translate.png · https://gentleface.com/png/solid-round/32/translate.png · https://gentleface.com/png/solid-round/48/translate.png
- solid-soft: https://gentleface.com/svg/solid-soft/16/translate.svg · PNG https://gentleface.com/png/solid-soft/16/translate.png · https://gentleface.com/png/solid-soft/32/translate.png · https://gentleface.com/png/solid-soft/48/translate.png
- solid-sharp: https://gentleface.com/svg/solid-sharp/16/translate.svg · PNG https://gentleface.com/png/solid-sharp/16/translate.png · https://gentleface.com/png/solid-sharp/32/translate.png · https://gentleface.com/png/solid-sharp/48/translate.png

The SVG of every style: https://gentleface.com/icons/translate.json (`svg`).

## Code (line-round)

The snippets are decorative (aria-hidden). For an icon that carries meaning on its own, such as an icon-only button, label the button, or give the SVG role="img" and an aria-label. For another style, take its SVG from the JSON and swap the path `d`.

### SVG

```svg
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 3L9.5 3C9.641 3 9.759 3.048 9.856 3.144C9.952 3.241 10 3.359 10 3.5C10 3.641 9.952 3.759 9.856 3.856C9.759 3.952 9.641 4 9.5 4L8.707 4L5.207 7.5L7.854 10.146C7.953 10.246 8.003 10.364 8.003 10.5C8.003 10.636 7.953 10.754 7.854 10.854C7.756 10.951 7.638 11 7.5 11C7.362 11 7.244 10.951 7.146 10.854L4.5 8.207L1.854 10.854C1.756 10.951 1.638 11 1.5 11C1.362 11 1.244 10.951 1.146 10.854C1.047 10.754 0.997 10.636 0.997 10.5C0.997 10.364 1.047 10.246 1.146 10.146L3.793 7.5L2.146 5.854C2.049 5.756 2 5.638 2 5.5C2 5.362 2.049 5.244 2.146 5.146C2.244 5.049 2.362 5 2.5 5C2.638 5 2.756 5.049 2.854 5.146L4.5 6.793L7.293 4L1.5 4C1.359 4 1.241 3.952 1.144 3.856C1.048 3.759 1 3.641 1 3.5C1 3.359 1.048 3.241 1.144 3.144C1.241 3.048 1.359 3 1.5 3L5 3L5 1.5ZM14.977 14.659C14.934 14.788 14.85 14.884 14.724 14.947C14.598 15.01 14.47 15.02 14.341 14.977C14.212 14.934 14.116 14.85 14.053 14.724L13.191 13L9.809 13L8.947 14.724C8.884 14.85 8.788 14.934 8.659 14.977C8.53 15.02 8.402 15.01 8.276 14.947C8.153 14.885 8.069 14.789 8.026 14.658C7.982 14.527 7.991 14.4 8.053 14.276L11.053 8.276C11.115 8.153 11.211 8.069 11.342 8.026C11.473 7.982 11.6 7.991 11.724 8.053C11.823 8.102 11.898 8.177 11.947 8.276L14.947 14.276C15.01 14.402 15.02 14.53 14.977 14.659ZM11.5 9.618L10.309 12L12.691 12L11.5 9.618Z"/></svg>
```

### React

```tsx
// Gentleface "translate" (line-round), MIT. https://gentleface.com/icons/translate
import type { SVGProps } from 'react';

export function TranslateIcon(props: SVGProps<SVGSVGElement>) {
  return (
    <svg xmlns="http://www.w3.org/2000/svg" width={16} height={16} viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" {...props}>
      <path d="M5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 3L9.5 3C9.641 3 9.759 3.048 9.856 3.144C9.952 3.241 10 3.359 10 3.5C10 3.641 9.952 3.759 9.856 3.856C9.759 3.952 9.641 4 9.5 4L8.707 4L5.207 7.5L7.854 10.146C7.953 10.246 8.003 10.364 8.003 10.5C8.003 10.636 7.953 10.754 7.854 10.854C7.756 10.951 7.638 11 7.5 11C7.362 11 7.244 10.951 7.146 10.854L4.5 8.207L1.854 10.854C1.756 10.951 1.638 11 1.5 11C1.362 11 1.244 10.951 1.146 10.854C1.047 10.754 0.997 10.636 0.997 10.5C0.997 10.364 1.047 10.246 1.146 10.146L3.793 7.5L2.146 5.854C2.049 5.756 2 5.638 2 5.5C2 5.362 2.049 5.244 2.146 5.146C2.244 5.049 2.362 5 2.5 5C2.638 5 2.756 5.049 2.854 5.146L4.5 6.793L7.293 4L1.5 4C1.359 4 1.241 3.952 1.144 3.856C1.048 3.759 1 3.641 1 3.5C1 3.359 1.048 3.241 1.144 3.144C1.241 3.048 1.359 3 1.5 3L5 3L5 1.5ZM14.977 14.659C14.934 14.788 14.85 14.884 14.724 14.947C14.598 15.01 14.47 15.02 14.341 14.977C14.212 14.934 14.116 14.85 14.053 14.724L13.191 13L9.809 13L8.947 14.724C8.884 14.85 8.788 14.934 8.659 14.977C8.53 15.02 8.402 15.01 8.276 14.947C8.153 14.885 8.069 14.789 8.026 14.658C7.982 14.527 7.991 14.4 8.053 14.276L11.053 8.276C11.115 8.153 11.211 8.069 11.342 8.026C11.473 7.982 11.6 7.991 11.724 8.053C11.823 8.102 11.898 8.177 11.947 8.276L14.947 14.276C15.01 14.402 15.02 14.53 14.977 14.659ZM11.5 9.618L10.309 12L12.691 12L11.5 9.618Z" />
    </svg>
  );
}
```

### Vue

```vue
<!-- Gentleface "translate" (line-round), MIT. https://gentleface.com/icons/translate -->
<template>
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true">
    <path d="M5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 3L9.5 3C9.641 3 9.759 3.048 9.856 3.144C9.952 3.241 10 3.359 10 3.5C10 3.641 9.952 3.759 9.856 3.856C9.759 3.952 9.641 4 9.5 4L8.707 4L5.207 7.5L7.854 10.146C7.953 10.246 8.003 10.364 8.003 10.5C8.003 10.636 7.953 10.754 7.854 10.854C7.756 10.951 7.638 11 7.5 11C7.362 11 7.244 10.951 7.146 10.854L4.5 8.207L1.854 10.854C1.756 10.951 1.638 11 1.5 11C1.362 11 1.244 10.951 1.146 10.854C1.047 10.754 0.997 10.636 0.997 10.5C0.997 10.364 1.047 10.246 1.146 10.146L3.793 7.5L2.146 5.854C2.049 5.756 2 5.638 2 5.5C2 5.362 2.049 5.244 2.146 5.146C2.244 5.049 2.362 5 2.5 5C2.638 5 2.756 5.049 2.854 5.146L4.5 6.793L7.293 4L1.5 4C1.359 4 1.241 3.952 1.144 3.856C1.048 3.759 1 3.641 1 3.5C1 3.359 1.048 3.241 1.144 3.144C1.241 3.048 1.359 3 1.5 3L5 3L5 1.5ZM14.977 14.659C14.934 14.788 14.85 14.884 14.724 14.947C14.598 15.01 14.47 15.02 14.341 14.977C14.212 14.934 14.116 14.85 14.053 14.724L13.191 13L9.809 13L8.947 14.724C8.884 14.85 8.788 14.934 8.659 14.977C8.53 15.02 8.402 15.01 8.276 14.947C8.153 14.885 8.069 14.789 8.026 14.658C7.982 14.527 7.991 14.4 8.053 14.276L11.053 8.276C11.115 8.153 11.211 8.069 11.342 8.026C11.473 7.982 11.6 7.991 11.724 8.053C11.823 8.102 11.898 8.177 11.947 8.276L14.947 14.276C15.01 14.402 15.02 14.53 14.977 14.659ZM11.5 9.618L10.309 12L12.691 12L11.5 9.618Z" />
  </svg>
</template>
```

### Svelte

```svelte
<!-- Gentleface "translate" (line-round), MIT. https://gentleface.com/icons/translate -->
<script>
  let props = $props();
</script>

<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" {...props}>
  <path d="M5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 3L9.5 3C9.641 3 9.759 3.048 9.856 3.144C9.952 3.241 10 3.359 10 3.5C10 3.641 9.952 3.759 9.856 3.856C9.759 3.952 9.641 4 9.5 4L8.707 4L5.207 7.5L7.854 10.146C7.953 10.246 8.003 10.364 8.003 10.5C8.003 10.636 7.953 10.754 7.854 10.854C7.756 10.951 7.638 11 7.5 11C7.362 11 7.244 10.951 7.146 10.854L4.5 8.207L1.854 10.854C1.756 10.951 1.638 11 1.5 11C1.362 11 1.244 10.951 1.146 10.854C1.047 10.754 0.997 10.636 0.997 10.5C0.997 10.364 1.047 10.246 1.146 10.146L3.793 7.5L2.146 5.854C2.049 5.756 2 5.638 2 5.5C2 5.362 2.049 5.244 2.146 5.146C2.244 5.049 2.362 5 2.5 5C2.638 5 2.756 5.049 2.854 5.146L4.5 6.793L7.293 4L1.5 4C1.359 4 1.241 3.952 1.144 3.856C1.048 3.759 1 3.641 1 3.5C1 3.359 1.048 3.241 1.144 3.144C1.241 3.048 1.359 3 1.5 3L5 3L5 1.5ZM14.977 14.659C14.934 14.788 14.85 14.884 14.724 14.947C14.598 15.01 14.47 15.02 14.341 14.977C14.212 14.934 14.116 14.85 14.053 14.724L13.191 13L9.809 13L8.947 14.724C8.884 14.85 8.788 14.934 8.659 14.977C8.53 15.02 8.402 15.01 8.276 14.947C8.153 14.885 8.069 14.789 8.026 14.658C7.982 14.527 7.991 14.4 8.053 14.276L11.053 8.276C11.115 8.153 11.211 8.069 11.342 8.026C11.473 7.982 11.6 7.991 11.724 8.053C11.823 8.102 11.898 8.177 11.947 8.276L14.947 14.276C15.01 14.402 15.02 14.53 14.977 14.659ZM11.5 9.618L10.309 12L12.691 12L11.5 9.618Z" />
</svg>
```

### HTML img

```html
<!-- Gentleface "translate" (line-round), MIT. https://gentleface.com/icons/translate. An <img> can't take currentColor: it draws black. Inline the SVG or use the CSS mask to color it. -->
<img src="https://gentleface.com/svg/line-round/16/translate.svg" width="16" height="16" alt="">
```

### CSS

```css
/* Gentleface "translate" (line-round), MIT. https://gentleface.com/icons/translate. Takes the text color. */
.icon-translate {
  display: inline-block;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 3L9.5 3C9.641 3 9.759 3.048 9.856 3.144C9.952 3.241 10 3.359 10 3.5C10 3.641 9.952 3.759 9.856 3.856C9.759 3.952 9.641 4 9.5 4L8.707 4L5.207 7.5L7.854 10.146C7.953 10.246 8.003 10.364 8.003 10.5C8.003 10.636 7.953 10.754 7.854 10.854C7.756 10.951 7.638 11 7.5 11C7.362 11 7.244 10.951 7.146 10.854L4.5 8.207L1.854 10.854C1.756 10.951 1.638 11 1.5 11C1.362 11 1.244 10.951 1.146 10.854C1.047 10.754 0.997 10.636 0.997 10.5C0.997 10.364 1.047 10.246 1.146 10.146L3.793 7.5L2.146 5.854C2.049 5.756 2 5.638 2 5.5C2 5.362 2.049 5.244 2.146 5.146C2.244 5.049 2.362 5 2.5 5C2.638 5 2.756 5.049 2.854 5.146L4.5 6.793L7.293 4L1.5 4C1.359 4 1.241 3.952 1.144 3.856C1.048 3.759 1 3.641 1 3.5C1 3.359 1.048 3.241 1.144 3.144C1.241 3.048 1.359 3 1.5 3L5 3L5 1.5ZM14.977 14.659C14.934 14.788 14.85 14.884 14.724 14.947C14.598 15.01 14.47 15.02 14.341 14.977C14.212 14.934 14.116 14.85 14.053 14.724L13.191 13L9.809 13L8.947 14.724C8.884 14.85 8.788 14.934 8.659 14.977C8.53 15.02 8.402 15.01 8.276 14.947C8.153 14.885 8.069 14.789 8.026 14.658C7.982 14.527 7.991 14.4 8.053 14.276L11.053 8.276C11.115 8.153 11.211 8.069 11.342 8.026C11.473 7.982 11.6 7.991 11.724 8.053C11.823 8.102 11.898 8.177 11.947 8.276L14.947 14.276C15.01 14.402 15.02 14.53 14.977 14.659ZM11.5 9.618L10.309 12L12.691 12L11.5 9.618Z'/%3E%3C/svg%3E") center / 16px 16px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 3L9.5 3C9.641 3 9.759 3.048 9.856 3.144C9.952 3.241 10 3.359 10 3.5C10 3.641 9.952 3.759 9.856 3.856C9.759 3.952 9.641 4 9.5 4L8.707 4L5.207 7.5L7.854 10.146C7.953 10.246 8.003 10.364 8.003 10.5C8.003 10.636 7.953 10.754 7.854 10.854C7.756 10.951 7.638 11 7.5 11C7.362 11 7.244 10.951 7.146 10.854L4.5 8.207L1.854 10.854C1.756 10.951 1.638 11 1.5 11C1.362 11 1.244 10.951 1.146 10.854C1.047 10.754 0.997 10.636 0.997 10.5C0.997 10.364 1.047 10.246 1.146 10.146L3.793 7.5L2.146 5.854C2.049 5.756 2 5.638 2 5.5C2 5.362 2.049 5.244 2.146 5.146C2.244 5.049 2.362 5 2.5 5C2.638 5 2.756 5.049 2.854 5.146L4.5 6.793L7.293 4L1.5 4C1.359 4 1.241 3.952 1.144 3.856C1.048 3.759 1 3.641 1 3.5C1 3.359 1.048 3.241 1.144 3.144C1.241 3.048 1.359 3 1.5 3L5 3L5 1.5ZM14.977 14.659C14.934 14.788 14.85 14.884 14.724 14.947C14.598 15.01 14.47 15.02 14.341 14.977C14.212 14.934 14.116 14.85 14.053 14.724L13.191 13L9.809 13L8.947 14.724C8.884 14.85 8.788 14.934 8.659 14.977C8.53 15.02 8.402 15.01 8.276 14.947C8.153 14.885 8.069 14.789 8.026 14.658C7.982 14.527 7.991 14.4 8.053 14.276L11.053 8.276C11.115 8.153 11.211 8.069 11.342 8.026C11.473 7.982 11.6 7.991 11.724 8.053C11.823 8.102 11.898 8.177 11.947 8.276L14.947 14.276C15.01 14.402 15.02 14.53 14.977 14.659ZM11.5 9.618L10.309 12L12.691 12L11.5 9.618Z'/%3E%3C/svg%3E") center / 16px 16px no-repeat;
}
```

### Data URL

```text
data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 3L9.5 3C9.641 3 9.759 3.048 9.856 3.144C9.952 3.241 10 3.359 10 3.5C10 3.641 9.952 3.759 9.856 3.856C9.759 3.952 9.641 4 9.5 4L8.707 4L5.207 7.5L7.854 10.146C7.953 10.246 8.003 10.364 8.003 10.5C8.003 10.636 7.953 10.754 7.854 10.854C7.756 10.951 7.638 11 7.5 11C7.362 11 7.244 10.951 7.146 10.854L4.5 8.207L1.854 10.854C1.756 10.951 1.638 11 1.5 11C1.362 11 1.244 10.951 1.146 10.854C1.047 10.754 0.997 10.636 0.997 10.5C0.997 10.364 1.047 10.246 1.146 10.146L3.793 7.5L2.146 5.854C2.049 5.756 2 5.638 2 5.5C2 5.362 2.049 5.244 2.146 5.146C2.244 5.049 2.362 5 2.5 5C2.638 5 2.756 5.049 2.854 5.146L4.5 6.793L7.293 4L1.5 4C1.359 4 1.241 3.952 1.144 3.856C1.048 3.759 1 3.641 1 3.5C1 3.359 1.048 3.241 1.144 3.144C1.241 3.048 1.359 3 1.5 3L5 3L5 1.5ZM14.977 14.659C14.934 14.788 14.85 14.884 14.724 14.947C14.598 15.01 14.47 15.02 14.341 14.977C14.212 14.934 14.116 14.85 14.053 14.724L13.191 13L9.809 13L8.947 14.724C8.884 14.85 8.788 14.934 8.659 14.977C8.53 15.02 8.402 15.01 8.276 14.947C8.153 14.885 8.069 14.789 8.026 14.658C7.982 14.527 7.991 14.4 8.053 14.276L11.053 8.276C11.115 8.153 11.211 8.069 11.342 8.026C11.473 7.982 11.6 7.991 11.724 8.053C11.823 8.102 11.898 8.177 11.947 8.276L14.947 14.276C15.01 14.402 15.02 14.53 14.977 14.659ZM11.5 9.618L10.309 12L12.691 12L11.5 9.618Z'/%3E%3C/svg%3E
```

### Sprite

```html
<!-- Gentleface "translate" (line-round), MIT. https://gentleface.com/icons/translate
     Every icon of this style in one file: https://gentleface.com/sprite/line-round.svg
     Serve it from your own origin: <use> does not load from another origin. -->
<svg width="16" height="16" aria-hidden="true"><use href="/sprite/line-round.svg#translate"/></svg>
```

### SwiftUI

```swift
// Gentleface "translate" (line-round), MIT. https://gentleface.com/icons/translate
import SwiftUI

struct TranslateIcon: Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()
        p.move(to: CGPoint(x: 5, y: 1.5))
        p.addCurve(to: CGPoint(x: 5.144, y: 1.144), control1: CGPoint(x: 5, y: 1.359), control2: CGPoint(x: 5.048, y: 1.241))
        p.addCurve(to: CGPoint(x: 5.5, y: 1), control1: CGPoint(x: 5.241, y: 1.048), control2: CGPoint(x: 5.359, y: 1))
        p.addCurve(to: CGPoint(x: 5.856, y: 1.144), control1: CGPoint(x: 5.641, y: 1), control2: CGPoint(x: 5.759, y: 1.048))
        p.addCurve(to: CGPoint(x: 6, y: 1.5), control1: CGPoint(x: 5.952, y: 1.241), control2: CGPoint(x: 6, y: 1.359))
        p.addLine(to: CGPoint(x: 6, y: 3))
        p.addLine(to: CGPoint(x: 9.5, y: 3))
        p.addCurve(to: CGPoint(x: 9.856, y: 3.144), control1: CGPoint(x: 9.641, y: 3), control2: CGPoint(x: 9.759, y: 3.048))
        p.addCurve(to: CGPoint(x: 10, y: 3.5), control1: CGPoint(x: 9.952, y: 3.241), control2: CGPoint(x: 10, y: 3.359))
        p.addCurve(to: CGPoint(x: 9.856, y: 3.856), control1: CGPoint(x: 10, y: 3.641), control2: CGPoint(x: 9.952, y: 3.759))
        p.addCurve(to: CGPoint(x: 9.5, y: 4), control1: CGPoint(x: 9.759, y: 3.952), control2: CGPoint(x: 9.641, y: 4))
        p.addLine(to: CGPoint(x: 8.707, y: 4))
        p.addLine(to: CGPoint(x: 5.207, y: 7.5))
        p.addLine(to: CGPoint(x: 7.854, y: 10.146))
        p.addCurve(to: CGPoint(x: 8.003, y: 10.5), control1: CGPoint(x: 7.953, y: 10.246), control2: CGPoint(x: 8.003, y: 10.364))
        p.addCurve(to: CGPoint(x: 7.854, y: 10.854), control1: CGPoint(x: 8.003, y: 10.636), control2: CGPoint(x: 7.953, y: 10.754))
        p.addCurve(to: CGPoint(x: 7.5, y: 11), control1: CGPoint(x: 7.756, y: 10.951), control2: CGPoint(x: 7.638, y: 11))
        p.addCurve(to: CGPoint(x: 7.146, y: 10.854), control1: CGPoint(x: 7.362, y: 11), control2: CGPoint(x: 7.244, y: 10.951))
        p.addLine(to: CGPoint(x: 4.5, y: 8.207))
        p.addLine(to: CGPoint(x: 1.854, y: 10.854))
        p.addCurve(to: CGPoint(x: 1.5, y: 11), control1: CGPoint(x: 1.756, y: 10.951), control2: CGPoint(x: 1.638, y: 11))
        p.addCurve(to: CGPoint(x: 1.146, y: 10.854), control1: CGPoint(x: 1.362, y: 11), control2: CGPoint(x: 1.244, y: 10.951))
        p.addCurve(to: CGPoint(x: 0.997, y: 10.5), control1: CGPoint(x: 1.047, y: 10.754), control2: CGPoint(x: 0.997, y: 10.636))
        p.addCurve(to: CGPoint(x: 1.146, y: 10.146), control1: CGPoint(x: 0.997, y: 10.364), control2: CGPoint(x: 1.047, y: 10.246))
        p.addLine(to: CGPoint(x: 3.793, y: 7.5))
        p.addLine(to: CGPoint(x: 2.146, y: 5.854))
        p.addCurve(to: CGPoint(x: 2, y: 5.5), control1: CGPoint(x: 2.049, y: 5.756), control2: CGPoint(x: 2, y: 5.638))
        p.addCurve(to: CGPoint(x: 2.146, y: 5.146), control1: CGPoint(x: 2, y: 5.362), control2: CGPoint(x: 2.049, y: 5.244))
        p.addCurve(to: CGPoint(x: 2.5, y: 5), control1: CGPoint(x: 2.244, y: 5.049), control2: CGPoint(x: 2.362, y: 5))
        p.addCurve(to: CGPoint(x: 2.854, y: 5.146), control1: CGPoint(x: 2.638, y: 5), control2: CGPoint(x: 2.756, y: 5.049))
        p.addLine(to: CGPoint(x: 4.5, y: 6.793))
        p.addLine(to: CGPoint(x: 7.293, y: 4))
        p.addLine(to: CGPoint(x: 1.5, y: 4))
        p.addCurve(to: CGPoint(x: 1.144, y: 3.856), control1: CGPoint(x: 1.359, y: 4), control2: CGPoint(x: 1.241, y: 3.952))
        p.addCurve(to: CGPoint(x: 1, y: 3.5), control1: CGPoint(x: 1.048, y: 3.759), control2: CGPoint(x: 1, y: 3.641))
        p.addCurve(to: CGPoint(x: 1.144, y: 3.144), control1: CGPoint(x: 1, y: 3.359), control2: CGPoint(x: 1.048, y: 3.241))
        p.addCurve(to: CGPoint(x: 1.5, y: 3), control1: CGPoint(x: 1.241, y: 3.048), control2: CGPoint(x: 1.359, y: 3))
        p.addLine(to: CGPoint(x: 5, y: 3))
        p.addLine(to: CGPoint(x: 5, y: 1.5))
        p.closeSubpath()
        p.move(to: CGPoint(x: 14.977, y: 14.659))
        p.addCurve(to: CGPoint(x: 14.724, y: 14.947), control1: CGPoint(x: 14.934, y: 14.788), control2: CGPoint(x: 14.85, y: 14.884))
        p.addCurve(to: CGPoint(x: 14.341, y: 14.977), control1: CGPoint(x: 14.598, y: 15.01), control2: CGPoint(x: 14.47, y: 15.02))
        p.addCurve(to: CGPoint(x: 14.053, y: 14.724), control1: CGPoint(x: 14.212, y: 14.934), control2: CGPoint(x: 14.116, y: 14.85))
        p.addLine(to: CGPoint(x: 13.191, y: 13))
        p.addLine(to: CGPoint(x: 9.809, y: 13))
        p.addLine(to: CGPoint(x: 8.947, y: 14.724))
        p.addCurve(to: CGPoint(x: 8.659, y: 14.977), control1: CGPoint(x: 8.884, y: 14.85), control2: CGPoint(x: 8.788, y: 14.934))
        p.addCurve(to: CGPoint(x: 8.276, y: 14.947), control1: CGPoint(x: 8.53, y: 15.02), control2: CGPoint(x: 8.402, y: 15.01))
        p.addCurve(to: CGPoint(x: 8.026, y: 14.658), control1: CGPoint(x: 8.153, y: 14.885), control2: CGPoint(x: 8.069, y: 14.789))
        p.addCurve(to: CGPoint(x: 8.053, y: 14.276), control1: CGPoint(x: 7.982, y: 14.527), control2: CGPoint(x: 7.991, y: 14.4))
        p.addLine(to: CGPoint(x: 11.053, y: 8.276))
        p.addCurve(to: CGPoint(x: 11.342, y: 8.026), control1: CGPoint(x: 11.115, y: 8.153), control2: CGPoint(x: 11.211, y: 8.069))
        p.addCurve(to: CGPoint(x: 11.724, y: 8.053), control1: CGPoint(x: 11.473, y: 7.982), control2: CGPoint(x: 11.6, y: 7.991))
        p.addCurve(to: CGPoint(x: 11.947, y: 8.276), control1: CGPoint(x: 11.823, y: 8.102), control2: CGPoint(x: 11.898, y: 8.177))
        p.addLine(to: CGPoint(x: 14.947, y: 14.276))
        p.addCurve(to: CGPoint(x: 14.977, y: 14.659), control1: CGPoint(x: 15.01, y: 14.402), control2: CGPoint(x: 15.02, y: 14.53))
        p.closeSubpath()
        p.move(to: CGPoint(x: 11.5, y: 9.618))
        p.addLine(to: CGPoint(x: 10.309, y: 12))
        p.addLine(to: CGPoint(x: 12.691, y: 12))
        p.addLine(to: CGPoint(x: 11.5, y: 9.618))
        p.closeSubpath()
        return p.applying(CGAffineTransform(scaleX: rect.width / 16, y: rect.height / 16))
    }
}

// TranslateIcon().frame(width: 16, height: 16) fills with the foreground style. Keep it on whole points to stay crisp.
```

### Compose

```kotlin
// Gentleface "translate" (line-round), MIT. https://gentleface.com/icons/translate
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.addPathNodes
import androidx.compose.ui.unit.dp

val TranslateIcon: ImageVector by lazy {
    ImageVector.Builder(
        name = "translate", defaultWidth = 16.dp, defaultHeight = 16.dp,
        viewportWidth = 16f, viewportHeight = 16f,
    ).addPath(
        pathData = addPathNodes("M5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 3L9.5 3C9.641 3 9.759 3.048 9.856 3.144C9.952 3.241 10 3.359 10 3.5C10 3.641 9.952 3.759 9.856 3.856C9.759 3.952 9.641 4 9.5 4L8.707 4L5.207 7.5L7.854 10.146C7.953 10.246 8.003 10.364 8.003 10.5C8.003 10.636 7.953 10.754 7.854 10.854C7.756 10.951 7.638 11 7.5 11C7.362 11 7.244 10.951 7.146 10.854L4.5 8.207L1.854 10.854C1.756 10.951 1.638 11 1.5 11C1.362 11 1.244 10.951 1.146 10.854C1.047 10.754 0.997 10.636 0.997 10.5C0.997 10.364 1.047 10.246 1.146 10.146L3.793 7.5L2.146 5.854C2.049 5.756 2 5.638 2 5.5C2 5.362 2.049 5.244 2.146 5.146C2.244 5.049 2.362 5 2.5 5C2.638 5 2.756 5.049 2.854 5.146L4.5 6.793L7.293 4L1.5 4C1.359 4 1.241 3.952 1.144 3.856C1.048 3.759 1 3.641 1 3.5C1 3.359 1.048 3.241 1.144 3.144C1.241 3.048 1.359 3 1.5 3L5 3L5 1.5ZM14.977 14.659C14.934 14.788 14.85 14.884 14.724 14.947C14.598 15.01 14.47 15.02 14.341 14.977C14.212 14.934 14.116 14.85 14.053 14.724L13.191 13L9.809 13L8.947 14.724C8.884 14.85 8.788 14.934 8.659 14.977C8.53 15.02 8.402 15.01 8.276 14.947C8.153 14.885 8.069 14.789 8.026 14.658C7.982 14.527 7.991 14.4 8.053 14.276L11.053 8.276C11.115 8.153 11.211 8.069 11.342 8.026C11.473 7.982 11.6 7.991 11.724 8.053C11.823 8.102 11.898 8.177 11.947 8.276L14.947 14.276C15.01 14.402 15.02 14.53 14.977 14.659ZM11.5 9.618L10.309 12L12.691 12L11.5 9.618Z"),
        fill = SolidColor(Color.Black),
    ).build()
}

// Icon(TranslateIcon, contentDescription = null) tints it with LocalContentColor.
```

### Android XML

```xml
<!-- res/drawable/ic_translate.xml · Gentleface "translate" (line-round), MIT. https://gentleface.com/icons/translate -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="16dp"
    android:height="16dp"
    android:viewportWidth="16"
    android:viewportHeight="16"
    android:tint="?attr/colorControlNormal">
  <path
      android:fillColor="@android:color/white"
      android:pathData="M5 1.5C5 1.359 5.048 1.241 5.144 1.144C5.241 1.048 5.359 1 5.5 1C5.641 1 5.759 1.048 5.856 1.144C5.952 1.241 6 1.359 6 1.5L6 3L9.5 3C9.641 3 9.759 3.048 9.856 3.144C9.952 3.241 10 3.359 10 3.5C10 3.641 9.952 3.759 9.856 3.856C9.759 3.952 9.641 4 9.5 4L8.707 4L5.207 7.5L7.854 10.146C7.953 10.246 8.003 10.364 8.003 10.5C8.003 10.636 7.953 10.754 7.854 10.854C7.756 10.951 7.638 11 7.5 11C7.362 11 7.244 10.951 7.146 10.854L4.5 8.207L1.854 10.854C1.756 10.951 1.638 11 1.5 11C1.362 11 1.244 10.951 1.146 10.854C1.047 10.754 0.997 10.636 0.997 10.5C0.997 10.364 1.047 10.246 1.146 10.146L3.793 7.5L2.146 5.854C2.049 5.756 2 5.638 2 5.5C2 5.362 2.049 5.244 2.146 5.146C2.244 5.049 2.362 5 2.5 5C2.638 5 2.756 5.049 2.854 5.146L4.5 6.793L7.293 4L1.5 4C1.359 4 1.241 3.952 1.144 3.856C1.048 3.759 1 3.641 1 3.5C1 3.359 1.048 3.241 1.144 3.144C1.241 3.048 1.359 3 1.5 3L5 3L5 1.5ZM14.977 14.659C14.934 14.788 14.85 14.884 14.724 14.947C14.598 15.01 14.47 15.02 14.341 14.977C14.212 14.934 14.116 14.85 14.053 14.724L13.191 13L9.809 13L8.947 14.724C8.884 14.85 8.788 14.934 8.659 14.977C8.53 15.02 8.402 15.01 8.276 14.947C8.153 14.885 8.069 14.789 8.026 14.658C7.982 14.527 7.991 14.4 8.053 14.276L11.053 8.276C11.115 8.153 11.211 8.069 11.342 8.026C11.473 7.982 11.6 7.991 11.724 8.053C11.823 8.102 11.898 8.177 11.947 8.276L14.947 14.276C15.01 14.402 15.02 14.53 14.977 14.659ZM11.5 9.618L10.309 12L12.691 12L11.5 9.618Z"/>
</vector>
```

### Flutter

```dart
// Gentleface "translate" (line-round), MIT. https://gentleface.com/icons/translate
import 'package:flutter/widgets.dart';

class TranslateIcon extends StatelessWidget {
  const TranslateIcon({super.key, this.size = 16, this.color});
  final double size;
  final Color? color;

  @override
  Widget build(BuildContext context) => CustomPaint(
        size: Size.square(size),
        painter: _TranslateIconPainter(color ?? IconTheme.of(context).color ?? const Color(0xFF000000)),
      );
}

class _TranslateIconPainter extends CustomPainter {
  _TranslateIconPainter(this.color);
  final Color color;

  @override
  void paint(Canvas canvas, Size size) {
    canvas.scale(size.width / 16, size.height / 16);
    final p = Path()
      ..moveTo(5, 1.5)
      ..cubicTo(5, 1.359, 5.048, 1.241, 5.144, 1.144)
      ..cubicTo(5.241, 1.048, 5.359, 1, 5.5, 1)
      ..cubicTo(5.641, 1, 5.759, 1.048, 5.856, 1.144)
      ..cubicTo(5.952, 1.241, 6, 1.359, 6, 1.5)
      ..lineTo(6, 3)
      ..lineTo(9.5, 3)
      ..cubicTo(9.641, 3, 9.759, 3.048, 9.856, 3.144)
      ..cubicTo(9.952, 3.241, 10, 3.359, 10, 3.5)
      ..cubicTo(10, 3.641, 9.952, 3.759, 9.856, 3.856)
      ..cubicTo(9.759, 3.952, 9.641, 4, 9.5, 4)
      ..lineTo(8.707, 4)
      ..lineTo(5.207, 7.5)
      ..lineTo(7.854, 10.146)
      ..cubicTo(7.953, 10.246, 8.003, 10.364, 8.003, 10.5)
      ..cubicTo(8.003, 10.636, 7.953, 10.754, 7.854, 10.854)
      ..cubicTo(7.756, 10.951, 7.638, 11, 7.5, 11)
      ..cubicTo(7.362, 11, 7.244, 10.951, 7.146, 10.854)
      ..lineTo(4.5, 8.207)
      ..lineTo(1.854, 10.854)
      ..cubicTo(1.756, 10.951, 1.638, 11, 1.5, 11)
      ..cubicTo(1.362, 11, 1.244, 10.951, 1.146, 10.854)
      ..cubicTo(1.047, 10.754, 0.997, 10.636, 0.997, 10.5)
      ..cubicTo(0.997, 10.364, 1.047, 10.246, 1.146, 10.146)
      ..lineTo(3.793, 7.5)
      ..lineTo(2.146, 5.854)
      ..cubicTo(2.049, 5.756, 2, 5.638, 2, 5.5)
      ..cubicTo(2, 5.362, 2.049, 5.244, 2.146, 5.146)
      ..cubicTo(2.244, 5.049, 2.362, 5, 2.5, 5)
      ..cubicTo(2.638, 5, 2.756, 5.049, 2.854, 5.146)
      ..lineTo(4.5, 6.793)
      ..lineTo(7.293, 4)
      ..lineTo(1.5, 4)
      ..cubicTo(1.359, 4, 1.241, 3.952, 1.144, 3.856)
      ..cubicTo(1.048, 3.759, 1, 3.641, 1, 3.5)
      ..cubicTo(1, 3.359, 1.048, 3.241, 1.144, 3.144)
      ..cubicTo(1.241, 3.048, 1.359, 3, 1.5, 3)
      ..lineTo(5, 3)
      ..lineTo(5, 1.5)
      ..close()
      ..moveTo(14.977, 14.659)
      ..cubicTo(14.934, 14.788, 14.85, 14.884, 14.724, 14.947)
      ..cubicTo(14.598, 15.01, 14.47, 15.02, 14.341, 14.977)
      ..cubicTo(14.212, 14.934, 14.116, 14.85, 14.053, 14.724)
      ..lineTo(13.191, 13)
      ..lineTo(9.809, 13)
      ..lineTo(8.947, 14.724)
      ..cubicTo(8.884, 14.85, 8.788, 14.934, 8.659, 14.977)
      ..cubicTo(8.53, 15.02, 8.402, 15.01, 8.276, 14.947)
      ..cubicTo(8.153, 14.885, 8.069, 14.789, 8.026, 14.658)
      ..cubicTo(7.982, 14.527, 7.991, 14.4, 8.053, 14.276)
      ..lineTo(11.053, 8.276)
      ..cubicTo(11.115, 8.153, 11.211, 8.069, 11.342, 8.026)
      ..cubicTo(11.473, 7.982, 11.6, 7.991, 11.724, 8.053)
      ..cubicTo(11.823, 8.102, 11.898, 8.177, 11.947, 8.276)
      ..lineTo(14.947, 14.276)
      ..cubicTo(15.01, 14.402, 15.02, 14.53, 14.977, 14.659)
      ..close()
      ..moveTo(11.5, 9.618)
      ..lineTo(10.309, 12)
      ..lineTo(12.691, 12)
      ..lineTo(11.5, 9.618)
      ..close();
    canvas.drawPath(p, Paint()..color = color);
  }

  @override
  bool shouldRepaint(_TranslateIconPainter old) => old.color != color;
}
```
