локализация
блаблабла




Исходный код
package localization;
import javafx.stage.*;
import javafx.scene.*;
import javafx.ext.swing.*;
import javafx.scene.text.*;
import crudfx.data.*;
import localization.rsc.*;
var properties:HomeProperties=HomeProperties{ key:"CRUDfx.Localization.xml" };
//var localizationFile:FileProperties=FileProperties{ path:"localization.xml"; };//developer version
var localizationFile:StreamProperties=FileProperties{ stream:ResourceLoader.stream("localization.xml"); };
def _email=properties.node("form").node("email").asString("");
def _login=properties.node("form").node("login").asString("");
def _password=properties.node("form").node("password").asString("");
def _current=properties.node("language").asString("English");
var localization:GroupProperties=GroupProperties{
dataTree:localizationFile
current:bind _current.value with inverse
}
FX.addShutdownAction(
function():Void{
properties.gather();
properties.save();
//localization.gather();//uncomment for developer version
//localizationFile.save();//uncomment for developer version
}
);
var bigFont:Font=Font{size:16};
var normalFont:Font=Font{size:12};
Stage {
title:"Localization"
width:400
height:300
scene:Scene{
content:[
SwingComboBox{ translateX:300 translateY:10
text:bind _current.value with inverse
selectedIndex:if(_current.value=="English")then 0 else 1
items:[
SwingComboBoxItem{text:"English"}
,SwingComboBoxItem{text:"Russian"}
,SwingComboBoxItem{text:"Farsi"}
,SwingComboBoxItem{text:"Chinese"}
]
}
,SwingLabel{ width:250 translateX:10 translateY:40+50*0
horizontalAlignment:bind if (localization.get("rightAlign").value.equals("yes"))
then SwingHorizontalAlignment.RIGHT
else SwingHorizontalAlignment.LEFT
text:bind localization.get("firstField").value
font:bind if (localization.get("bigFont").value.equals("yes")) then bigFont else normalFont
}
,SwingTextField{ translateX:10 translateY:60 width:250
horizontalAlignment:bind if (localization.get("rightAlign").value.equals("yes"))
then SwingHorizontalAlignment.RIGHT
else SwingHorizontalAlignment.LEFT
text:bind _email.value with inverse
}
,SwingLabel{ width:250 translateX:10 translateY:40+50*1
horizontalAlignment:bind if (localization.get("rightAlign").value.equals("yes"))
then SwingHorizontalAlignment.RIGHT
else SwingHorizontalAlignment.LEFT
text:bind localization.get("secondField").value
font:bind if (localization.get("bigFont").value.equals("yes")) then bigFont else normalFont
}
,SwingTextField{ translateX:10 translateY:60+50 width:250
horizontalAlignment:bind if (localization.get("rightAlign").value.equals("yes"))
then SwingHorizontalAlignment.RIGHT
else SwingHorizontalAlignment.LEFT
text:bind _login.value with inverse
}
,SwingLabel{ width:250 translateX:10 translateY:40+50*2
horizontalAlignment:bind if (localization.get("rightAlign").value.equals("yes"))
then SwingHorizontalAlignment.RIGHT
else SwingHorizontalAlignment.LEFT
text:bind localization.get("thirdField").value
font:bind if (localization.get("bigFont").value.equals("yes")) then bigFont else normalFont
}
,SwingTextField{ translateX:10 translateY:60+50+50 width:250
horizontalAlignment:bind if (localization.get("rightAlign").value.equals("yes"))
then SwingHorizontalAlignment.RIGHT
else SwingHorizontalAlignment.LEFT
text:bind _password.value with inverse
}
,SwingLabel{ width:250 translateX:10 translateY:70+50*3
horizontalAlignment:bind if (localization.get("rightAlign").value.equals("yes"))
then SwingHorizontalAlignment.RIGHT
else SwingHorizontalAlignment.LEFT
text:bind "{_email.value} / {_login.value} / {_password.value}"
font:bind if (localization.get("bigFont").value.equals("yes")) then bigFont else normalFont
}
]
}
}
Текст файла локализации
≤?xml version="1.0" encoding="UTF-8" standalone="no"?≥
≤properties≥
≤firstField≥
≤Russian≥Почтовый адрес≤/Russian≥
≤English≥E-mail≤/English≥
≤Farsi≥آدرس ایمیل≤/Farsi≥
≤Chinese≥电子邮件地址≤/Chinese≥
≤/firstField≥
≤secondField≥
≤Russian≥Логин≤/Russian≥
≤English≥Login≤/English≥
≤Farsi≥شناسه کاربر≤/Farsi≥
≤Chinese≥登录≤/Chinese≥
≤/secondField≥
≤thirdField≥
≤Russian≥Пароль≤/Russian≥
≤English≥Password≤/English≥
≤Farsi≥رمز عبور≤/Farsi≥
≤Chinese≥密码≤/Chinese≥
≤/thirdField≥
≤bigFont≥
≤Russian≥no≤/Russian≥
≤English≥no≤/English≥
≤Farsi≥yes≤/Farsi≥
≤Chinese≥yes≤/Chinese≥
≤/bigFont≥
≤rightAlign≥
≤Russian≥no≤/Russian≥
≤Farsi≥yes≤/Farsi≥
≤English≥no≤/English≥
≤Chinese≥no≤/Chinese≥
≤/rightAlign≥
≤/properties≥


