<p>It does it per default:</p>

<pre><code>public function getInputHtml($value, ElementInterface $element = null): string
{
    return Craft::$app-&gt;getView()-&gt;renderTemplate('_includes/forms/select', [
        'name' =&gt; $this-&gt;handle,
        'value' =&gt; $value,
        'options' =&gt; $this-&gt;translatedOptions(), //&lt;-- here are your translated options
    ]);
}
</code></pre>

<p>But you need to insert your translations into your translation files for the <code>site</code> category</p>

<pre><code>protected function translatedOptions(): array
{
    $translatedOptions = [];

    if ($this-&gt;options) {
        foreach ($this-&gt;options as $option) {
            $translatedOptions[] = [
                'label' =&gt; Craft::t('site', $option['label']),
                'value' =&gt; $option['value']
            ];
        }
    }

    return $translatedOptions;
}
</code></pre>

CC BY-SA 3.0
2018-05-01T15:08:37.277Z
Ah okay — I have a translation file already set up but wanted the client to have total control over what the German options would be. Guessing the translation file is the only option really?
fbnntt
CC BY-SA 3.0
2018-05-01T15:09:27.150Z
No - if you want to change the translation method, you can use a database table as well https://craftcms.stackexchange.com/questions/25926/way-for-clients-to-edit-translation-files-in-control-panel
Robin Schambach
CC BY-SA 3.0
2018-05-01T15:13:38.107Z
Brilliant — I'll have a look into that. Thanks!
fbnntt
CC BY-SA 3.0
2018-05-01T15:01:42.620Z
2018-05-01T15:01:42.620Z
Robin Schambach
<p>Does anyone know how to make the dropdown field translatable?</p>

<p>I'm working on a site which has both English and German languages, but whenever I set up a dropdown field it only ever appears in English and I don't have an option for the German version.</p>

<p>EDIT: I'm needing this to work as a dropdown on the German site also and not through templating <code>{{ "word" | t }}</code> as I need the client to have total control of this feature.</p>

<p>Any help would be appreciated — thanks.</p>

<p><a href="https://i.sstatic.net/5vW8r.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/5vW8r.png" alt="Screenshot of the dropdown menu field in CraftCMS"></a></p>

<craft3><field><drop-down>
Translatable dropdown menu
# Translatable dropdown menu

(Asked by: username_0 on 2018-05-01)

Does anyone know how to make the dropdown field translatable?

I'm working on a site which has both English and German languages, but whenever I set up a dropdown field it only ever appears in English and I don't have an option for the German version.

EDIT: I'm needing this to work as a dropdown on the German site also and not through templating `{{ "word" | t }}` as I need the client to have total control of this feature.

Any help would be appreciated — thanks.

[![Screenshot of the dropdown menu field in CraftCMS](https://i.sstatic.net/5vW8r.png)](https://i.sstatic.net/5vW8r.png)

**Tags:** craft3, field, drop-down


---

## 1 answers

### Answer by username_1 on 2018-05-01. Score: 1 | Accepted answer

It does it per default:
public function getInputHtml($value, ElementInterface $element = null): string
{
    return Craft::$app->getView()->renderTemplate('_includes/forms/select', [
        'name' => $this->handle,
        'value' => $value,
        'options' => $this->translatedOptions(), //<-- here are your translated options
    ]);
}

But you need to insert your translations into your translation files for the site category
protected function translatedOptions(): array
{
    $translatedOptions = [];

    if ($this->options) {
        foreach ($this->options as $option) {
            $translatedOptions[] = [
                'label' => Craft::t('site', $option['label']),
                'value' => $option['value']
            ];
        }
    }

    return $translatedOptions;
}

> **Comments:**
> **username_0**: Ah okay — I have a translation file already set up but wanted the client to have total control over what the German options would be. Guessing the translation file is the only option really?  
> **username_1**: No - if you want to change the translation method, you can use a database table as well https://craftcms.stackexchange.com/questions/25926/way-for-clients-to-edit-translation-files-in-control-panel  
> **username_0**: Brilliant — I'll have a look into that. Thanks!  

---

