Localization

Localization is done with the help of resx files under globalization. Localization of interfaces and reports can be made here by using a new resx or existing resx.

Translations in different languages can be added for existing resxes. When a translation in any language is added, it will be displayed on the interfaces.


The syntax [$ resx: key] can be used to use the key in a resx in the interfaces. resx must be replaced with the name of the resx file without specifying a language and extension and key must be replaced with data name inside resx.


<div>
	<label>[$default:displayname]</label> 
</div>

You can also use the [.language: ....; language2: ...; language3: ...] format.

<div>
	<label>[.tr:Adı;en:Name;fr:Nom]</label> 
</div>

The expression from Resx may not be suitable for use on script or HTML attributes. In this case,  encode operation can be applied using /html or /js parameters.


<button title="[$default:close/html]" onclicke=closeNow()>X</button>

<script>
	function closeNow() {
		alert("[$MyResx:CloseMessage/js]")
		//..
	}
</script>

 Localization can be done with the macro structure.

  • With the context.Localize method you can make translation for a defined language or for the active language.
    • [=c.Localize("[$default:close]")]
    • [=c.Localize("[$default:close]",en-US)]
  • With the context.ToString method, an object can be formatted based on a language.
    • [=c.ToString(DateTime.Now,"en-US","dd MMM yyyy")]
    • [=c.ToString(DateTime.Now,"tr-TR","dd MMM yyyy")]
    •  [=c.ToString(DateTime.Now,null,"dd MMM yyyy")]