1,476 bytes added,
14:02, 1 March 2012 == goal ==
we need to be able to recognize variables from a developer from entities located in resources
== example ==
We decided to separate the expression syntax used to call to other entities from the syntax used to reference developer provided variables.
Developer provided variables (either from the context or a call) are referenced by a name, no changes here. But in order to reference another entity, a prefix ":" has to be used. It looks like this:
<pre>
<brandName {
nominative: "Firefox",
genitive: "Firefoksa"
}
_gender: { mac: 'male', win: 'female' }
accesskey: { mac: 'F', win: 'C'}
>
<about "About {{ :brandName.nominative }}">
<update[:brandName:_gender.win] {
male: "{{ :brandName }} has been updated. The update took {{ updateTime }} seconds."
female: "{{ :brandName:accesskey.mac }}"
}>
</pre>
The rationale here is that we expect localizers to reference developer provided variables much more often, while referencing other entities (except for a brandName like cases) will be rather an exception.
For computed calls, the syntax will look like this:
<pre>
/*
For variables:
var1 - "accesskey"
var2 - "entity2"
var3 - "win"
*/
<entity1 "value"
accesskey: "c">
<entity2 "value">
<entity3 {
win: "test",
lin: "test2"
}>
/*
This will compute to "Hello c and value and test"
*/
<title "Hello {{ :entity1:[var1] }} and {{ :[var2] }} and {{ :entity3[var3] }}">
</pre>
== status ==
* open
* stas, gandalf - ok
* pike - ?