L20n/Features/Entities vs Variables: Difference between revisions

From MozillaWiki
< L20n‎ | Features
Jump to navigation Jump to search
(Created page with "== 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...")
 
No edit summary
 
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
[[Category:L20n Features|Entities vs Variables]][[Category:L20n]]
== goal ==
== goal ==
we need to be able to recognize variables from a developer from entities located in resources
we need to be able to recognize variables from a developer from entities located in resources
Line 6: Line 8:
We decided to separate the expression syntax used to call to other entities from the syntax used to reference developer provided variables.
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:
Entities are referenced by a name, no changes here. But in order to reference a developer provided variable (either from the context or a call) a prefix "$" has to be used. It looks like this:


<pre>
<pre>
Line 17: Line 19:
>
>


<about "About {{ :brandName.nominative }}">
<about "About {{ brandName.nominative }}">
<update[:brandName:_gender.win] {
<update[brandName.._gender.win] {
   male: "{{ :brandName }} has been updated.  The update took {{ updateTime }} seconds."
   male: "{{ brandName }} has been updated.  The update took {{ $updateTime }} seconds."
   female: "{{ :brandName:accesskey.mac }}"
   female: "{{ brandName..accesskey.mac }}"
}>
}>
</pre>
</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 ==
== status ==
* open
* open
* stas, gandalf - ok
* stas - ok
* pike - ?
* gandalf - ok
* pike - ok

Latest revision as of 20:04, 7 August 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.

Entities are referenced by a name, no changes here. But in order to reference a developer provided variable (either from the context or a call) a prefix "$" has to be used. It looks like this:

<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 }}"
}>


status

  • open
  • stas - ok
  • gandalf - ok
  • pike - ok