# Can't change dynamically observables between two java scripts

**URL:** <https://forums.fusetools.com/t/cant-change-dynamically-observables-between-two-java-scripts/3368>\
**Category:** How-to Discussions\
**Created:** [February 19, 2018, 10:57am UTC](https://forums.fusetools.com/t/cant-change-dynamically-observables-between-two-java-scripts/3368 "2018-02-19T10:57:07Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Predrag\_Dislenkovic](https://avatars.discourse-cdn.com/v4/letter/p/c5a1d2/32.png) [@Predrag\_Dislenkovic](https://forums.fusetools.com/u/Predrag_Dislenkovic)\
**Post date:** [February 19, 2018, 10:57am UTC](https://forums.fusetools.com/t/cant-change-dynamically-observables-between-two-java-scripts/3368/1 "2018-02-19T10:57:07Z")

</div>

Hello ,  
I got one JS that contains two “dictionaries”(they contain a key and the word that goes along with that key).  
The problem is:  
if i SET the variable for the dictionary by myself(in the JS where the dictionaries are) , all the words in the whole app will change , but if i storage.readSync(); the variable for the dictionary , first i need to rebuild the app and than the changes will happen.I call this JS with require(); in every other JS.

---

<div class="post-metadata">

**Author:** ![Uldis](https://yyz1.discourse-cdn.com/flex035/user_avatar/forums.fusetools.com/uldis/32/657_2.png) [@Uldis](https://forums.fusetools.com/u/Uldis)\
**Post date:** [February 19, 2018, 11:13am UTC](https://forums.fusetools.com/t/cant-change-dynamically-observables-between-two-java-scripts/3368/2 "2018-02-19T11:13:43Z")

</div>

Hi Predrag,

would love to help, but can’t do anything without some code to look at. A complete, minimal reproduction that we can copy-paste and run would be nice.

---

<div class="post-metadata">

**Author:** ![Predrag\_Dislenkovic](https://avatars.discourse-cdn.com/v4/letter/p/c5a1d2/32.png) [@Predrag\_Dislenkovic](https://forums.fusetools.com/u/Predrag_Dislenkovic)\
**Post date:** [February 19, 2018, 11:16am UTC](https://forums.fusetools.com/t/cant-change-dynamically-observables-between-two-java-scripts/3368/3 "2018-02-19T11:16:46Z")

</div>

I’m sorry  
Here is the code from the dictionary:

```auto
var Observable = require('FuseJS/Observable');
var Storage = require("FuseJS/Storage");
var jazik = Observable();

var langFromStr = Storage.readSync("language");
console.log(langFromStr);

var jazici = 
{
	'en' :{
		
		"loginText" : "Login",
		"emailText" : "E-mail",
		"password" : "Password",
		"forgotPass" : "Forgot Password?",
		"or" : "or",
		"notReg" : "Not registered?",
		"createAcc" : "Create account",
		"resPass" : "Reset password",
		"resPassTxt" : "We can help you reset your password using your email address linked to your account",
		"verify" : "Verify",
		"act" : "Activation",
		"actTxt" : "A security code has been sent to your email address.Please enter the 6 digit security code below",
		"secCode" : "Security code",
		"notRecieve" : "Didn't recieve?",
		"resend" : "Resend",
		"newPass" : "New password",
		"repPass" : "Repeat password",
		"change" : "Change",
		"ime" : "First name",
		"prezime" : "Last name",
		"phoneTxt" : "Phone",
		"currencyTxt" : "Currency",
		"languageTxt" : "Language",
		"registerTxt" : "Register",
		"editProfileTxt" : "Edit profile",
		"aboutTxt" : "About",
		"helpTxt" : "Help",
		"editProfileTxt" : "Edit profile",
		"typeTxt" : "Type account",
		"colorTitle" : "Color",
		"addAccTxt" : "Add account",
		"addnameTxt" : "Add name",
		"editTitle" : "Edit account"
	},
	'mk' : {
		"loginText" : "Најава",
		"emailText" : "Електронска пошта",
		"password" : "Лозинка",
		"forgotPass" : "Ја заборавивте лозинката?",
		"or" : "или",
		"notReg" : "Не сте регистрирани?",
		"createAcc" : "Креирај профил",
		"resPass" : "Обновете лозинка",
		"resPassTxt" : "Можеме да Ви помогнеме да ја обновите лозинката со помош на Вашата електронска пошта",
		"verify" : "Потврди",
		"act" : "Активација",
		"actTxt" : "Безбедносен код ќе биде испратен на Вашата електронска пошта",
		"secCode" : "Безбедносен код",
		"notRecieve" : "Не го добивте?",
		"resend" : "Препрати",
		"newPass" : "Нова лозинка",
		"repPass" : "Повтори ја лозинката",
		"change" : "Промени",
		"ime" : "Име",
		"prezime" : "Презиме",
		"phoneTxt" : "Телефон",
		"currencyTxt" : "Валута",
		"languageTxt" : "Јазик",
		"registerTxt" : "Регистрирај",
		"editProfileTxt" : "Ажурирај профил",
		"aboutTxt" : "Информации",
		"helpTxt" : "Помош",
		"editProfileTxt" : "Ажурирај профил",
		"typeTxt" : "Тип сметка",
		"colorTitle" : "Боја",
		"addAccTxt" : "Додај сметка",
		"addnameTxt" : "Додај име",
		"editTitle" : "Ажурирај сметка"

	}
}

jazik = jazici[langFromStr];
console.log(JSON.stringify(jazik));
module.exports = {
	jazik : jazik
};

```

* * *

And here is the code from one JS:

```auto
var Observable = require('FuseJS/Observable');
var activeUrl = require("ApiCaller/ApiCaller.js");
var jazik = require("Constants/SetLanguage.js");
var Storage = require("FuseJS/Storage");
var email = Observable(null);
var password = Observable(null);
var flag = Observable();
var textToast = Observable();
var clientID = Observable();
var emailText = Observable();
var loginText = Observable();
var passwordPlc = Observable();
var forgotPass = Observable();
var loginBtn = Observable();
var or = Observable();
var notReg = Observable();
var createAcc = Observable();

	emailText.value = jazik.jazik["emailText"];
	loginText = jazik.jazik["loginText"];
	passwordPlc = jazik.jazik["password"];
	forgotPass = jazik.jazik["forgotPass"];
	loginBtn = jazik.jazik["loginText"];
	or = jazik.jazik["or"];
	notReg = jazik.jazik["notReg"];
	createAcc = jazik.jazik["createAcc"];

```

---

<div class="post-metadata">

**Author:** ![Predrag\_Dislenkovic](https://avatars.discourse-cdn.com/v4/letter/p/c5a1d2/32.png) [@Predrag\_Dislenkovic](https://forums.fusetools.com/u/Predrag_Dislenkovic)\
**Post date:** [February 19, 2018, 11:19am UTC](https://forums.fusetools.com/t/cant-change-dynamically-observables-between-two-java-scripts/3368/4 "2018-02-19T11:19:35Z")

</div>

Even though,I solved this by adding in every page a dictionary for its own and it works,but that will make me pass my deadline , coz it’s a lot of work. 😕 Thank you for your time

---

<div class="post-metadata">

**Author:** ![Uldis](https://yyz1.discourse-cdn.com/flex035/user_avatar/forums.fusetools.com/uldis/32/657_2.png) [@Uldis](https://forums.fusetools.com/u/Uldis)\
**Post date:** [February 19, 2018, 11:29am UTC](https://forums.fusetools.com/t/cant-change-dynamically-observables-between-two-java-scripts/3368/5 "2018-02-19T11:29:05Z")

</div>

One issue I immediately see is this:

```auto
// jazik is first an Observable:
var jazik = Observable();
// ...
// but then you replace the entire variable to be a simple object:
jazik = jazici[langFromStr];

```

That just can’t work.

As far as localization goes, we recommend taking [this approach](https://github.com/drslem/fuse-localization).

---

<div class="post-metadata">

**Author:** ![Predrag\_Dislenkovic](https://avatars.discourse-cdn.com/v4/letter/p/c5a1d2/32.png) [@Predrag\_Dislenkovic](https://forums.fusetools.com/u/Predrag_Dislenkovic)\
**Post date:** [February 19, 2018, 11:37am UTC](https://forums.fusetools.com/t/cant-change-dynamically-observables-between-two-java-scripts/3368/6 "2018-02-19T11:37:44Z")

</div>

Hmmm , I saw the code , I think it will work.I was thinking about the same way of approach (with parsing), but I didn’t try it.However I am very thankful for your time.If there is an bigger issue I will post a thread.Thank you one more time.

---

<div class="post-metadata">

**Author:** ![Predrag\_Dislenkovic](https://avatars.discourse-cdn.com/v4/letter/p/c5a1d2/32.png) [@Predrag\_Dislenkovic](https://forums.fusetools.com/u/Predrag_Dislenkovic)\
**Post date:** [February 21, 2018, 10:12am UTC](https://forums.fusetools.com/t/cant-change-dynamically-observables-between-two-java-scripts/3368/7 "2018-02-21T10:12:41Z")

</div>

It is working like charm.I had the same logic before, but mine had waaay longer code.Thank you for your time.
