# \[feature-14961\]Add system.util.modifyTranslation to GW/Perspective

**URL:** <https://forum.inductiveautomation.com/t/feature-14961-add-system-util-modifytranslation-to-gw-perspective/28157>\
**Category:** Ignition Early Access\
**Created:** [September 10, 2019, 8:59am UTC](https://forum.inductiveautomation.com/t/feature-14961-add-system-util-modifytranslation-to-gw-perspective/28157 "2019-09-10T08:59:07Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![andrea.morando](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/andrea.morando/32/8039_2.png) [@andrea.morando](https://forum.inductiveautomation.com/u/andrea.morando)\
**Post date:** [September 10, 2019, 8:59am UTC](https://forum.inductiveautomation.com/t/feature-14961-add-system-util-modifytranslation-to-gw-perspective/28157/1 "2019-09-10T08:59:07Z")

</div>

Dears,  
I notice the **system.util.modifyTranslation** is not available from perspective side (8.0.3 release).  
At this time is there a way to dinamically modify a translation term from the client interface?  
If not, when it will be added?

Thank you,  
Andrea

---

<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:** [September 10, 2019, 9:48pm UTC](https://forum.inductiveautomation.com/t/feature-14961-add-system-util-modifytranslation-to-gw-perspective/28157/2 "2019-09-10T21:48:39Z")

</div>

It’s not ideal, but this code should work for now (_only_ from the Gateway/Perspective):

```auto
from org.apache.commons.lang3 import LocaleUtils

from com.inductiveautomation.ignition.gateway import IgnitionGateway
from com.inductiveautomation.ignition.common.i18n.translation import TranslationPackageDiff

translationLocale = LocaleUtils.toLocale("en_US")

modifications = TranslationPackageDiff()

modifications.addTranslation("term", translationLocale, "translation")

IgnitionGateway.get().getLocalizationManager().applyDiff(modifications)

```

---

<div class="post-metadata">

**Author:** ![andrea.morando](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/andrea.morando/32/8039_2.png) [@andrea.morando](https://forum.inductiveautomation.com/u/andrea.morando)\
**Post date:** [September 11, 2019, 12:20pm UTC](https://forum.inductiveautomation.com/t/feature-14961-add-system-util-modifytranslation-to-gw-perspective/28157/3 "2019-09-11T12:20:29Z")

</div>

Thank you. it works!  
What about the temporary workaround for the **system.util.translate** function?

Best,  
Andrea

---

<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:** [September 11, 2019, 3:43pm UTC](https://forum.inductiveautomation.com/t/feature-14961-add-system-util-modifytranslation-to-gw-perspective/28157/4 "2019-09-11T15:43:36Z")

</div>

```auto
from com.inductiveautomation.ignition.gateway import IgnitionGateway
translations = IgnitionGateway.get().getLocalizationManager().loadFullPackage()

translation = translations.get(<locale>, "term")

```

`translations` will be an instance of a [`TranslationPackage`](http://files.inductiveautomation.com/sdk/javadoc/ignition79/795/com/inductiveautomation/ignition/common/i18n/translation/TranslationPackage.html).

---

<div class="post-metadata">

**Author:** ![andrea.morando](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/andrea.morando/32/8039_2.png) [@andrea.morando](https://forum.inductiveautomation.com/u/andrea.morando)\
**Post date:** [September 11, 2019, 4:26pm UTC](https://forum.inductiveautomation.com/t/feature-14961-add-system-util-modifytranslation-to-gw-perspective/28157/5 "2019-09-11T16:26:48Z")

</div>

Ok, thanks!

---

<div class="post-metadata">

**Author:** ![andrea.morando](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/andrea.morando/32/8039_2.png) [@andrea.morando](https://forum.inductiveautomation.com/u/andrea.morando)\
**Post date:** [September 27, 2019, 8:59am UTC](https://forum.inductiveautomation.com/t/feature-14961-add-system-util-modifytranslation-to-gw-perspective/28157/6 "2019-09-27T08:59:46Z")

</div>

Dear Paul,  
after the term translation, should I force a refresh for the TranslationPackage?  
I see the right translations from the Translation Manager inside the Designer, but not in the Perspective client.  
Where am I wrong?

Thanks,  
Andrea

---

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [June 21, 2023, 11:22am UTC](https://forum.inductiveautomation.com/t/feature-14961-add-system-util-modifytranslation-to-gw-perspective/28157/7 "2023-06-21T11:22:48Z")

</div>

I need to translate some term from a module in the **gateway scope only**.  
I don't find how to access to the right manager for translation ? from the gatewayContext ?

---

<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 21, 2023, 3:36pm UTC](https://forum.inductiveautomation.com/t/feature-14961-add-system-util-modifytranslation-to-gw-perspective/28157/8 "2023-06-21T15:36:53Z")

</div>

The localization manager class isn't in the public SDK, for some reason. So you'll have to use reflection.

---

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [June 21, 2023, 6:10pm UTC](https://forum.inductiveautomation.com/t/feature-14961-add-system-util-modifytranslation-to-gw-perspective/28157/9 "2023-06-21T18:10:21Z")

</div>

> [@paul-griffith](#):
>
> `LocalizationManager`

What is the package of **LocalizationManager** class to access it with reflection ?

---

<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 21, 2023, 6:22pm UTC](https://forum.inductiveautomation.com/t/feature-14961-add-system-util-modifytranslation-to-gw-perspective/28157/10 "2023-06-21T18:22:46Z")

</div>

`com.inductiveautomation.ignition.gateway.i18n.LocalizationManagerImpl`

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [June 21, 2023, 7:22pm UTC](https://forum.inductiveautomation.com/t/feature-14961-add-system-util-modifytranslation-to-gw-perspective/28157/11 "2023-06-21T19:22:31Z")

</div>

Is there any reason you can just supply a localization bundle in your GatewayHook?
