diff --git a/Liquid-for-Designers.textile b/Liquid-for-Designers.textile index 3c3f4fc..ddb1ef1 100644 --- a/Liquid-for-Designers.textile +++ b/Liquid-for-Designers.textile @@ -1,20 +1,20 @@ -Hay dos tipos de tags en Liquid: De Texto y Lógicos. +There are two types of markup in Liquid: Output and Tag. -* Tags de texto (que pueden devolver texto) están envueltos por +* Output markup (which may resolve to text) is surrounded by
-{{ llaves dobles de apertura y cierre (se ven así) }}
+{{ matched pairs of curly brackets (ie, braces) }}
 
-* Tags lógicos (que nunca devuelven texto) están envueltos por +* Tag markup (which cannot resolve to text) is surrounded by
-{% llave y porcentaje de apertura y cierre (se ven así) %}
+{% matched pairs of curly brackets and percent signs %}
 
-h1. Tags de Texto +h1. Output -Aquí hay un ejemplo simple de salida: +Here is a simple example of Output:
 Hello {{name}}          
@@ -24,175 +24,176 @@ Hello {{ 'tobi' }}
 
 
 
-h2. Salida de Texto Avanzada: Filtros
+h2. Advanced output: Filters
 
-Los tags de texto pueden tomar filtros. 
-Los filtros son métodos simples.
-El primer parámetro que recibe el filtro es el texto o variable que se encuentra a la izquierda del filtro.
-En caso de ver más de un filtro, lo que produzca el filtro más a la izquierda será el parámetro de entrada al filtro siguiente a la derecha.
-Cuando no haya más filtros, el template va a recibir el texto del último filtro aplicado.  
+Output markup takes filters.
+Filters are simple methods.
+The first parameter is always the output of the left side of the filter.
+The return value of the filter will be the new left value when the next filter is run.
+When there are no more filters, the template will receive the resulting string. 
 
 
-Hola {{ 'tobi' | upcase }}
-Hola tobi tiene {{ 'tobi' | size }} letras!
-Hola {{ '*tobi*' | textilize | upcase }}
-Hola {{ 'now' | date: "%Y %h" }}
+Hello {{ 'tobi' | upcase }}
+Hello tobi has {{ 'tobi' | size }} letters!
+Hello {{ '*tobi*' | textilize | upcase }}
+Hello {{ 'now' | date: "%Y %h" }}
 
-h3. Filtros Estándar +h3. Standard Filters -* **date** - le dá formato a una fecha ("syntax reference":http://liquid.rubyforge.org/classes/Liquid/StandardFilters.html#M000012) -* **capitalize** - Pone en mayúscula la primera letra del parámtro de entrada -* **downcase** - Convierte todo el parámetro de entrada a minúsculas -* **upcase** - Convierte todo el parámetro de entrada a mayúsculas -* **first** - Devuelve el primer elemento de un parámetro de tipo array -* **last** - Devuelve el último elemento de un parámetro de tipo array -* **join** - Concatenar los elementos de un array con cierto caracter entre ellos -* **sort** - Ordenar los elementos del array -* **map** - Devuelve un array con la propiedad de los miembros de otro array -* **size** - Devuelve el tamaño de un array o string (cadena de caracteres) -* **escape** - Escapea un string -* **escape_once** - Devuelve una versión escapeada en html sin afectar entidades ya escapeadas -* **strip_html** - Saca todo html del string -* **strip_newlines** - Saca todos los 'enters' (\n) de un string -* **newline_to_br** - Reemplaca todos los 'enters' (\n) con un HTML br -* **replace** - Reemplaza ocurrencias de cierto string **por ejemplo** {{ 'foofoo' | replace:'foo','bar' }} #=> 'barbar' -* **replace_first** - Reemplaza la primer ocurrencia de un string **por ejemplo** {{ 'barbar' | replace_first:'bar','foo' }} #=> 'foobar' -* **remove** - Remueve de un string toda ocurrencia de otro string **por ejemplo** {{ 'foobarfoobar' | remove:'foo' }} #=> 'barbar' -* **remove_first** - Remueve de un string la primera ocurrencia de otro string **por ejemplo** {{ 'barbar' | remove_first:'bar' }} #=> 'bar' -* **truncate** - Trunca un string de los X caracteres deseados -* **truncatewords** - Trunca un string de las X palabras deseadas -* **prepend** - Concatena un string al principio de otro string **por ejemplo** {{ 'bar' | prepend:'foo' }} #=> 'foobar' -* **append** - Concatena un string al final de otro string **por ejemplo** {{ 'foo' | append:'bar' }} #=> 'foobar' -* **minus** - Resta un número de otro **por ejemplo** {{ 4 | minus:2 }} #=> 2 -* **plus** - Suma un número a otro **por ejemplo** {{ '1' | plus:'1' }} #=> '11', {{ 1 | plus:1 }} #=> 2 -* **times** - Multiplica un número por otro **por ejemplo** {{ 5 | times:4 }} #=> 20 -* **divided_by** - Divide un número por otro **por ejemplo** {{ 10 | divided_by:2 }} #=> 5 -* **split** - Divide un string utilizando un patrón parámetro **por ejemplo** {{ "a~b" | split:~ }} #=> ['a','b'] +* **date** - reformat a date ("syntax reference":http://liquid.rubyforge.org/classes/Liquid/StandardFilters.html#M000012) +* **capitalize** - capitalize words in the input sentence +* **downcase** - convert an input string to lowercase +* **upcase** - convert an input string to uppercase +* **first** - get the first element of the passed in array +* **last** - get the last element of the passed in array +* **join** - join elements of the array with certain character between them +* **sort** - sort elements of the array +* **map** - map/collect an array on a given property +* **size** - return the size of an array or string +* **escape** - escape a string +* **escape_once** - returns an escaped version of html without affecting existing escaped entities +* **strip_html** - strip html from string +* **strip_newlines** - strip all newlines (\n) from string +* **newline_to_br** - replace each newline (\n) with html break +* **replace** - replace each occurrence **e.g.** {{ 'foofoo' | replace:'foo','bar' }} #=> 'barbar' +* **replace_first** - replace the first occurrence **e.g.** {{ 'barbar' | replace_first:'bar','foo' }} #=> 'foobar' +* **remove** - remove each occurrence **e.g.** {{ 'foobarfoobar' | remove:'foo' }} #=> 'barbar' +* **remove_first** - remove the first occurrence **e.g.** {{ 'barbar' | remove_first:'bar' }} #=> 'bar' +* **truncate** - truncate a string down to x characters +* **truncatewords** - truncate a string down to x words +* **prepend** - prepend a string **e.g.** {{ 'bar' | prepend:'foo' }} #=> 'foobar' +* **append** - append a string **e.g.** {{ 'foo' | append:'bar' }} #=> 'foobar' +* **minus** - subtraction **e.g** {{ 4 | minus:2 }} #=> 2 +* **plus** - addition **e.g** {{ '1' | plus:'1' }} #=> '11', {{ 1 | plus:1 }} #=> 2 +* **times** - multiplication **e.g** {{ 5 | times:4 }} #=> 20 +* **divided_by** - division **e.g** {{ 10 | divided_by:2 }} #=> 5 +* **split** - split a string on a matching pattern **e.g.** {{ "a~b" | split:~ }} #=> ['a','b'] -h1. Tags Lógicos +h1. Tags -Se utilizan para la lógica dentro de tu template. -Es muy fácil desarrollar nuevos tags, así que esperamos recibir nuevas contribuciones a esta librería. +Tags are used for the logic in your template. +New tags are very easy to code, so I hope to get many contributions to the standard tag library after releasing this code. -Aquí hay una lista de tags: +Here is a list of currently supported tags: -* **assign** - Assigna un valor a una variable -* **capture** - Captura texto dentro del bloque y lo guarda en una variable -* **case** - Se utiliza para hacer comparaciones con valores específico (bloque case...when) -* **comment** - Block tag, comenta el texto dentro del bloque -* **cycle** - Se utiliza para ciclar entre valores, por ejemplo colores o clases DOM. -* **for** - Para ciclos tipo for -* **if** - Para bloques if/else estándar -* **include** - Incluye otro template, útil para templates parciales -* **unless** - Idéntico al if +* **assign** - Assgins some value to a variable +* **capture** - Block tag that captures text into a variable +* **case** - Block tag, its the standard case...when block +* **comment** - Block tag, comments out the text in the block +* **cycle** - Cycle is usually used within a loop to alternate between values, like colors or DOM classes. +* **for** - For loop +* **if** - Standard if/else block +* **include** - Includes another template, useful for partials +* **unless** - Mirror of if statement -h2. Comentarios +h2. Comments -Comment es el tag más simple. -Solamente oculta el contenido que encierra. +Comment is the simplest tag. +It just swallows content.
-Generamos 1 millón de dólares {% comment %} en pérdidas {% endcomment %} este año
+We made 1 million dollars {% comment %} in losses {% endcomment %} this year
 
h2. If / Else -@if / else@ funciona como en cualquier lenguaje de programación. -Liquid te permite escribir expresiones simples en las clausulas del @if@ o @unless@ (y opcionalmente, @elsif@ y @else@): +@if / else@ should be well known from any imaginable programming language. +Liquid allows you to write simple expressions in the @if@ or @unless@ (and optionally, @elsif@ and @else@) clause:
 {% if user %}
-  Hola {{ user.name }}
+  Hello {{ user.name }}
 {% endif %}
 
 {% if user.name == 'tobi' %}
-  Hola tobi
+  Hello tobi
 {% elsif user.name == 'bob' %}
-  Hola bob
+  Hello bob
 {% endif %}
 
 {% if user.name == 'tobi' or user.name == 'bob' %}
-  Hola tobi o bob
+  Hello tobi or bob
 {% endif %}
 
 {% if user.name == 'bob' and user.age > 45 %}
-  Hola viejo bob  
+  Hello old bob 
 {% endif %}
 
 {% if user.name != 'tobi' %} 
-  Hola non-tobi
+  Hello non-tobi
 {% endif %}
 
-# Es la misma clausula que la de arriba
+# Same as above
 {% unless user.name == 'tobi' %}
-  Hola non-tobi
+  Hello non-tobi
 {% endunless %}
 
-# Fijarse si el user tiene creditcard
+# Check if the user has a credit card
 {% if user.creditcard != null %}
-   Pobre
+   poor sob
 {% endif %}
 
-# Igual que arriba
+# Same as above 
 {% if user.creditcard %}
-   Pobre
+   poor sob
 {% endif %}
 
-# Chequear por un array vacío
+# Check for an empty array
 {% if user.payments == empty %}
-   No pagaste todavía!
+   you never paid ! 
 {% endif %}
 
 {% if user.age > 18 %}
-   Login aquí
+   Login here
 {% else %}
-   Perdón, eres muy joven. 
+   Sorry, you are too young
 {% endif %}
 
 # array = 1,2,3
 {% if array contains 2 %} 
-   el array incluye 2
+   array includes 2
 {% endif %}
 
-# string = 'hola mundo' 
-{% if string contains 'hola' %} 
-   string incluye 'hello'
+# string = 'hello world' 
+{% if string contains 'hello' %} 
+   string includes 'hello'
 {% endif %}
 
-h2. Tag Case +h2. Case Statement -Si necesita más condiciones, puede usar el tag @case@: +If you need more conditions, you can use the @case@ statement:
 {% case condition %} 
-  {% when 1 %} 
-  condition es 1
-  {% when 2 or 3 %} 
-  condition es 2 o 3
-  {% else %} 
-  condition no es ni 1, ni 2, ni 3
+{% when 1 %} 
+hit 1 
+{% when 2 or 3 %} 
+hit 2 or 3
+{% else %} 
+... else ... 
 {% endcase %} 
 
-*Ejemplo:* +*Example:*
 {% case template %}
-  {% when 'label' %}
-       // {{ label.title }}
-  {% when 'product' %}
-       // {{ product.vendor | link_to_vendor }} / {{ product.title }}
-  {% else %}
-       // {{page_title}}
+
+{% when 'label' %}
+     // {{ label.title }}
+{% when 'product' %}
+     // {{ product.vendor | link_to_vendor }} / {{ product.title }}
+{% else %}
+     // {{page_title}}
 {% endcase %}
 
-h2. Tag Cycle +h2. Cycle -Frecuentemente uno debe alternar entre colores diferentes o tareas similares. -Liquid tiene soporte para ese tipo de operaciones, utilizando el tag @cycle@. +Often you have to alternate between different colors or similar tasks. +Liquid has built-in support for such operations, using the @cycle@ tag.
 {% cycle 'one', 'two', 'three' %} 
@@ -200,7 +201,7 @@ Liquid tiene soporte para ese tipo de operaciones, utilizando el tag @cycle@.
 {% cycle 'one', 'two', 'three' %} 
 {% cycle 'one', 'two', 'three' %} 
 
-va a producir: 
+will result in 
 
 one
 two
@@ -208,11 +209,11 @@ three
 one
 
-Si no se provee ningún nombre para el grupo del ciclo, -entonces se asume que múltiples llamadas con los mismos parámetros son un grupo. +If no name is supplied for the cycle group, +then it's assumed that multiple calls with the same parameters are one group. -Si quiere tener control total sobre los grupos del ciclo, opcionalmente puede especificar el nombre del grupo. -Esto puede ser una variable. +If you want to have total control over cycle groups, you can optionally specify the name of the group. +This can even be a variable.
@@ -221,7 +222,7 @@ Esto puede ser una variable.
 {% cycle 'group 2': 'one', 'two', 'three' %} 
 {% cycle 'group 2': 'one', 'two', 'three' %} 
 
-va a producir: 
+will result in 
 
 one
 two 
@@ -229,9 +230,9 @@ one
 two
 
-h2. Ciclos For +h2. For loops -Liquid te permite iterar sobre collecciones con un tag @for@: +Liquid allows @for@ loops over collections:
 {% for item in array %} 
@@ -239,22 +240,22 @@ Liquid te permite iterar sobre collecciones con un tag @for@:
 {% endfor %} 
 
-En cada iteración del ciclo @for@, puede usar alguna de las siguientes variables para sus necesidades de styling: +During every @for@ loop, the following helper variables are available for extra styling needs:
-forloop.length      # => largo de todo el for
-forloop.index       # => índice de la iteración actual (empieza en 1)
-forloop.index0      # => índice de la iteración actual (empieza en 0) 
-forloop.rindex      # => cuántos items falta iterar? (empieza en 1)
-forloop.rindex0     # => cuántos items falta iterar? (empieza en 0)
-forloop.first       # => es esta la primera iteración?
-forloop.last        # => es esta la última iteración? 
+forloop.length      # => length of the entire for loop
+forloop.index       # => index of the current iteration 
+forloop.index0      # => index of the current iteration (zero based) 
+forloop.rindex      # => how many items are still left?
+forloop.rindex0     # => how many items are still left? (zero based)
+forloop.first       # => is this the first iteration?
+forloop.last        # => is this the last iternation? 
 
-Hay muchos atributos que puedes usar para influenciar a los items que usas para iterar en tu ciclo. +There are several attributes you can use to influence which items you receive in your loop -*limit:int* te permite la cantidad de items que recibes para iterar. -*offset:int* te permite empezar en la posicion N de la collección. +*limit:int* lets you restrict how many items you get. +*offset:int* lets you start the collection with the nth item.
 # array = [1,2,3,4,5,6]
@@ -264,14 +265,14 @@ Hay muchos atributos que puedes usar para influenciar a los items que usas para
 # results in 3,4 
 
-Iterando el ciclo en forma inversa +Reversing the loop
 {% for item in collection reversed %} {{item}} {% endfor %}
 
-En vez de iterar sobre una collección existente, puedes definir un rango de numbers para iterarlo. -El rango se puede definir por literales o números variables: +Instead of looping over an existing collection, you can define a range of numbers to loop through. +The range can be defined by both literal and variable numbers:
 # if item.quantity is 4...
@@ -281,10 +282,10 @@ El rango se puede definir por literales o números variables:
 # results in 1,2,3,4
 
-h2. Asignación de Variables +h2. Variable Assignment -Puedes guardar datos en tus propias variables, para ser usadas en otros tags de texto o lógica como necesites. -La forma más simple de crear una variable es con un tag @assign@, que tiene una sintáxis bien directa: +You can store data in your own variables, to be used in output or other tags as desired. +The simplest way to create a variable is with the @assign@ tag, which has a pretty straightforward syntax:
 {% assign name = 'freestyle' %}
@@ -294,7 +295,7 @@ La forma más simple de crear una variable es con un tag @assign@, que tiene una
 {% endif %}{% endfor %}
 
-Otra forma de hacer esto sería asignando los valores @true / false@ a una variable: +Another way of doing this would be to assign @true / false@ values to the variable:
 {% assign freestyle = false %}
@@ -308,8 +309,7 @@ Otra forma de hacer esto sería asignando los valores @true / false@ a una varia
 {% endif %}
 
-Si quieres combinar muchos strings en un solo string y luego guardarlo en una variable, puedes usar el tag @capture@. -Este tag es un bloque que "captura" todo lo que tenga adentro, luego lo asigna a una variable en vez de mostrarlo por pantalla. +If you want to combine a number of strings into a single string and save it to a variable, you can do that with the @capture@ tag. This tag is a block which "captures" whatever is rendered inside it, then assigns the captured value to the given variable instead of rendering it to the screen.
   {% capture attribute_name %}{{ item.title | handleize }}-{{ i }}-color{% endcapture %}