# UDT Tag Engineer unit translation

**URL:** <https://forum.inductiveautomation.com/t/udt-tag-engineer-unit-translation/36031>\
**Category:** Ignition\
**Created:** [June 25, 2020, 2:02pm UTC](https://forum.inductiveautomation.com/t/udt-tag-engineer-unit-translation/36031 "2020-06-25T14:02:07Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![luc.martin](https://avatars.discourse-cdn.com/v4/letter/l/77aa72/32.png) [@luc.martin](https://forum.inductiveautomation.com/u/luc.martin)\
**Post date:** [June 25, 2020, 2:02pm UTC](https://forum.inductiveautomation.com/t/udt-tag-engineer-unit-translation/36031/1 "2020-06-25T14:02:07Z")

</div>

Is there a way that we can use expression translate or system.util.translate into the engineering unit of a UDT tag?

---

<div class="post-metadata">

**Author:** ![Sanderd17](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sanderd17/32/8735_2.png) [@Sanderd17](https://forum.inductiveautomation.com/u/Sanderd17)\
**Post date:** [June 25, 2020, 2:30pm UTC](https://forum.inductiveautomation.com/t/udt-tag-engineer-unit-translation/36031/2 "2020-06-25T14:30:32Z")

</div>

Translations happen on the client, while tags configs are located in the server.

So you should translate it where you use it. Probably with the [`translate`](https://docs.inductiveautomation.com/display/DOC80/translate) expression or the [`system.util.translate`](https://docs.inductiveautomation.com/display/DOC80/system.util.translate) function.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [June 25, 2020, 2:58pm UTC](https://forum.inductiveautomation.com/t/udt-tag-engineer-unit-translation/36031/3 "2020-06-25T14:58:04Z")

</div>

> [@Sanderd17](#):
>
> Translations happen on the client, while tags configs are located in the server.

Not entirely accurate, as of an early 8.0 version; you can use `translate` in expressions/`system.util.translate()` in gateway scope; you'll just need to provide a locale yourself or be in a calling scope (ie, Perspective) that can provide its own locale.

But, the general point is still absolutely correct; keep the tag information 'generic' - either use a key marking your translation, or the value in your base language, and only attempt to translate on display of values.

---

<div class="post-metadata">

**Author:** ![Sanderd17](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sanderd17/32/8735_2.png) [@Sanderd17](https://forum.inductiveautomation.com/u/Sanderd17)\
**Post date:** [June 25, 2020, 3:00pm UTC](https://forum.inductiveautomation.com/t/udt-tag-engineer-unit-translation/36031/4 "2020-06-25T15:00:38Z")

</div>

> [@paul-griffith](#):
>
> Not entirely accurate, as of an early 8.0 version

Hmm, I hadn't noticed that change yet. I guess it certainly comes in handy from time to time to translate on the server.

---

<div class="post-metadata">

**Author:** ![luc.martin](https://avatars.discourse-cdn.com/v4/letter/l/77aa72/32.png) [@luc.martin](https://forum.inductiveautomation.com/u/luc.martin)\
**Post date:** [June 25, 2020, 3:13pm UTC](https://forum.inductiveautomation.com/t/udt-tag-engineer-unit-translation/36031/5 "2020-06-25T15:13:48Z")

</div>

Thanks, I found a good way to do it.
