Child pages
  • i18n

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{hidden}
DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY, UNLESS YOU KNOW WHAT YOU'RE DOING.
		THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO EXTRACT CHANGES FROM THE PAGE AND MERGE THEM BACK INTO SERVOY SOURCE{hidden}
{sub-section:description|text=}{sub-section}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{tbody}{tr}{td}[String]{td}{td}[#getCurrentLanguage]\()
Gets the current language; based on the current locale settings in the Servoy Client Locale preferences.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getI18NMessage]\(i18nKey)
Gets the real message (for the clients locale) for a specified message key.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getI18NMessage]\(i18nKey, dynamicValues)
Gets the real message (for the clients locale) for a specified message key.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setI18NMessage]\(i18nKey, value)
Sets the value of i18n key for client scope,if value null the setting is removed.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setLocale]\(language, country)
Set/Overwrite the locale for this client.{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=getCurrentLanguage|class=node}{tr:id=name}{td}h6.getCurrentLanguage{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getCurrentLanguage{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getCurrentLanguage_des|trigger=button|text=}{sub-section}{sub-section:getCurrentLanguage_des|trigger=none|class=sIndent}GetsReplace the current language; based on the current locale settings in the Servoy Client Locale preferences. 

NOTE: For more information on i18n, see the chapter on Internationalization (i18n) in the Servoy Developer User's Guide, beginning with the Introduction to i18n{sub-section}{td}{tr}{builder-show:permission=with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getCurrentLanguage_snc|trigger=button|text=}{sub-section}{sub-section:getCurrentLanguage_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getCurrentLanguage_prs|trigger=button|text=}{sub-section}{sub-section:getCurrentLanguage_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getCurrentLanguage_ret|trigger=button|text=}{sub-section}{sub-section:getCurrentLanguage_ret|trigger=none|class=sIndent}[String] -- a String representing the current language.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getCurrentLanguage_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getCurrentLanguage_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getCurrentLanguage_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getCurrentLanguage_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getCurrentLanguage_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getCurrentLanguage_sam|trigger=none}{code:language=javascript}
var currLang = i18n.getCurrentLanguage();
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getI18NMessage-String|class=node}{tr:id=name}{td}h6.getI18NMessage{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getI18NMessage{span}{span:id=iets|style=float: left;}\(i18nKey){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getI18NMessage-String_des|trigger=button|text=}{sub-section}{sub-section:getI18NMessage-String_des|trigger=none|class=sIndent}GetsReplace the real message (for the clients locale) for a specified message key.with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getI18NMessage-String_snc|trigger=button|text=}{sub-section}{sub-section:getI18NMessage-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getI18NMessage-String_prs|trigger=button|text=}{sub-section}{sub-section:getI18NMessage-String_prs|trigger=none|class=sIndent}\{[String]} i18nKey -- The message key
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getI18NMessage-String_ret|trigger=button|text=}{sub-section}{sub-section:getI18NMessage-String_ret|trigger=none|class=sIndent}[String] -- a String that is the message for the message key.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getI18NMessage-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getI18NMessage-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getI18NMessage-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getI18NMessage-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getI18NMessage-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getI18NMessage-String_sam|trigger=none}{code:language=javascript}
// returns 'Welcome my_name in my solution'
// if the key 'mykey.username.text' is 'Welcome {0} in my solution'
i18n.getI18NMessage('mykey.username.text',new Array('my_name'))
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getI18NMessage-String_ObjectArray|class=node}{tr:id=name}{td}h6.getI18NMessage{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getI18NMessage{span}{span:id=iets|style=float: left;}\(i18nKey, dynamicValues){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getI18NMessage-String_ObjectArray_des|trigger=button|text=}{sub-section}{sub-section:getI18NMessage-String_ObjectArray_des|trigger=none|class=sIndent}GetsReplace the real message (for the clients locale) for a specified message key. 
You can use parameter substitution by using \{n}, where n is a index number of the value thats in the arguments array.{sub-section}{td}{tr}{with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getI18NMessage-String_ObjectArray_snc|trigger=button|text=}{sub-section}{sub-section:getI18NMessage-String_ObjectArray_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getI18NMessage-String_ObjectArray_prs|trigger=button|text=}{sub-section}{sub-section:getI18NMessage-String_ObjectArray_prs|trigger=none|class=sIndent}\{[String]} i18nKey -- The message key
\{[Object]\[]} dynamicValues -- Arguments array when using parameter substitution.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getI18NMessage-String_ObjectArray_ret|trigger=button|text=}{sub-section}{sub-section:getI18NMessage-String_ObjectArray_ret|trigger=none|class=sIndent}[String] -- a String that is the message for the message key.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getI18NMessage-String_ObjectArray_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getI18NMessage-String_ObjectArray_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getI18NMessage-String_ObjectArray_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getI18NMessage-String_ObjectArray_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getI18NMessage-String_ObjectArray_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getI18NMessage-String_ObjectArray_sam|trigger=none}{code:language=javascript}
// returns 'Welcome my_name in my solution'
// if the key 'mykey.username.text' is 'Welcome {0} in my solution'
i18n.getI18NMessage('mykey.username.text',new Array('my_name'))
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setI18NMessage|class=node}{tr:id=name}{td}h6.setI18NMessage{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setI18NMessage{span}{span:id=iets|style=float: left;}\(i18nKey, value){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:setI18NMessage_des|trigger=button|text=}{sub-section}{sub-section:setI18NMessage_des|trigger=none|class=sIndent}SetsReplace the value of i18n key for client scope,if value null the setting is removed. 
All forms not yet loaded will change (execute this in solution startup or first form){sub-section}{td}{tr}{builder-show:permission=edit}{tr:with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:setI18NMessage_snc|trigger=button|text=}{sub-section}{sub-section:setI18NMessage_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:setI18NMessage_prs|trigger=button|text=}{sub-section}{sub-section:setI18NMessage_prs|trigger=none|class=sIndent}\{[String]} i18nKey -- The message key
\{[String]} value -- They value for the message key.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:setI18NMessage_ret|trigger=button|text=}{sub-section}{sub-section:setI18NMessage_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:setI18NMessage_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setI18NMessage_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:setI18NMessage_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setI18NMessage_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:setI18NMessage_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setI18NMessage_sam|trigger=none}{code:language=javascript}
//sets the value of i18n key for client scope; if value null the setting is removed
//Warning: already created form elements with i18n text lookup will not change,
//so call this method in the solution startup method or in methods from first form
//this method saves message for current locale, so if locale is changed with setLocale, all messages set from scripting will be lost

i18n.setI18NMessage('mykey.username.text','my_name')
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setLocale|class=node}{tr:id=name}{td}h6.setLocale{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setLocale{span}{span:id=iets|style=float: left;}\(language, country){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:setLocale_des|trigger=button|text=}{sub-section}{sub-section:setLocale_des|trigger=none|class=sIndent}Set/Overwrite the locale for this client.
All forms not yet loaded will change (execute this in solution startup or first form).

The language must be a lowercase 2 letter code defined by ISO\-649.
see http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt
The country must be an upper case 2 letter code defined by IS\-3166
see http://www.chemie.fu\-berlin.de/diverse/doc/ISO\_3166.html 

NOTE: For more information on i18n, see the chapter on Internationalization (i18n) in the Servoy Developer User's Guide, beginning with the Introduction to i18nsection:setLocale_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:setLocale_snc|trigger=button|text=}{sub-section}{sub-section:setLocale_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:setLocale_prs|trigger=button|text=}{sub-section}{sub-section:setLocale_prs|trigger=none|class=sIndent}\{[String]} language -- The lowercase 2 letter code
\{[String]} country -- The upper case 2 letter code.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:setLocale_ret|trigger=button|text=}{sub-section}{sub-section:setLocale_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:setLocale_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setLocale_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:setLocale_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setLocale_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:setLocale_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setLocale_sam|trigger=none}{code:language=javascript}
//Warning: already created form elements with i18n text lookup will not change,
//so call this method in the solution startup method or in methods from first form

i18n.setLocale('en','US');
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}