diff --git a/docs/guide-es/helper-url.md b/docs/guide-es/helper-url.md
index e834f3f8f8..ad5f923a61 100644
--- a/docs/guide-es/helper-url.md
+++ b/docs/guide-es/helper-url.md
@@ -3,8 +3,8 @@ Clase Auxiliar URL (URL Helper)
La clase auxiliar URL proporciona un conjunto de métodos estáticos para gestionar URLs.
-Obtener URLs Comunes
---------------------
+
+## Obtener URLs comúnes
Se pueden usar dos métodos para obtener URLs comunes: URL de inicio (home URL) y URL base (base URL) de la petición
(request) actual. Para obtener la URL de inicio se puede usar el siguiente código:
@@ -15,7 +15,7 @@ $absoluteHomeUrl = Url::home(true);
$httpsAbsoluteHomeUrl = Url::home('https');
```
-Si no se pasan parámetros, las URLs generadas son relativas. Se puede pasar `true`para obtener la URL absoluta del
+Si no se pasan parámetros, la URL generada es relativa. Se puede pasar `true`para obtener la URL absoluta del
esquema actual o especificar el esquema explícitamente (`https`, `http`).
Para obtener la URL base de la petición actual, se puede usar el siguiente código:
@@ -28,11 +28,11 @@ $httpsAbsoluteBaseUrl = Url::base('https');
El único parámetro del método funciona exactamente igual que para `Url::home()`.
-Creación de URLs
-----------------
-Para crear una URL para una ruta determinada se puede usar `Url::toRoute()`. El metodo utiliza [[\yii\web\UrlManager]]
-para crear una URL:
+## Creación de URLs
+
+Para crear una URL para una ruta determinada se puede usar `Url::toRoute()`. El método utiliza [[\yii\web\UrlManager]]
+para crear la URL:
```php
$url = Url::toRoute(['product/view', 'id' => 42]);
@@ -42,7 +42,7 @@ Se puede especificar la ruta como una cadena de texto, ej. `site/index`. Tambié
quieren especificar parámetros para la URL que se esta generando. El formato del array debe ser:
```php
-// genera: /index.php?r=site/index¶m1=value1¶m2=value2
+// genera: /index.php?r=site%2Findex¶m1=value1¶m2=value2
['site/index', 'param1' => 'value1', 'param2' => 'value2']
```
@@ -53,9 +53,8 @@ Si se quiere crear una URL con un enlace, se puede usar el formato de array con
['site/index', 'param1' => 'value1', '#' => 'name']
```
-Una ruta puede ser absoluta o relativa. Una ruta absoluta tiene una barra al principio (ej. `/site/index`),
-mientras que una ruta relativa no la tiene (ej. `site/index` o `index`). Una ruta relativa se convertirá en una
-ruta absoluta siguiendo las siguientes normas:
+Una ruta puede ser absoluta o relativa. Una ruta absoluta tiene una barra al principio (ej. `/site/index`), mientras que una ruta relativa
+no la tiene (ej. `site/index` o `index`). Una ruta relativa se convertirá en una ruta absoluta siguiendo las siguientes reglas:
- Si la ruta es una cadena vacía, se usará la [[\yii\web\Controller::route|route]] actual;
- Si la ruta no contiene barras (ej. `index`), se considerará que es el ID de una acción del controlador actual y
@@ -63,19 +62,26 @@ ruta absoluta siguiendo las siguientes normas:
- Si la ruta no tiene barra inicial (ej. `site/index`), se considerará que es una ruta relativa del modulo actual y
se le antepondrá el [[\yii\base\Module::uniqueId|uniqueId]] del modulo.
+Desde la versión 2.0.2, puedes especificar una ruta en términos de [alias](concept-aliases.md). Si este es el caso,
+el alias será convertido primero en la ruta real, la cual será entonces transformada en una ruta absoluta de acuerdo
+a las reglas mostradas arriba.
+
A continuación se muestran varios ejemplos del uso de este método:
```php
-// /index?r=site/index
+// /index.php?r=site%2Findex
echo Url::toRoute('site/index');
-// /index?r=site/index&src=ref1#name
+// /index.php?r=site%2Findex&src=ref1#name
echo Url::toRoute(['site/index', 'src' => 'ref1', '#' => 'name']);
-// http://www.example.com/index.php?r=site/index
+// /index.php?r=post%2Fedit&id=100 asume que el alias "@postEdit" se definió como "post/edit"
+echo Url::toRoute(['@postEdit', 'id' => 100]);
+
+// http://www.example.com/index.php?r=site%2Findex
echo Url::toRoute('site/index', true);
-// https://www.example.com/index.php?r=site/index
+// https://www.example.com/index.php?r=site%2Findex
echo Url::toRoute('site/index', 'https');
```
@@ -99,13 +105,16 @@ el especificado.
A continuación se muestran algunos ejemplos de uso:
```php
-// /index?r=site/index
+// /index.php?r=site%2Findex
echo Url::to(['site/index']);
-// /index?r=site/index&src=ref1#name
+// /index.php?r=site%2Findex&src=ref1#name
echo Url::to(['site/index', 'src' => 'ref1', '#' => 'name']);
-// la URL solicitada actualmente
+// /index.php?r=post%2Fedit&id=100 asume que el alias "@postEdit" se definió como "post/edit"
+echo Url::to(['@postEdit', 'id' => 100]);
+
+// the currently requested URL
echo Url::to();
// /images/logo.gif
@@ -121,8 +130,24 @@ echo Url::to('@web/images/logo.gif', true);
echo Url::to('@web/images/logo.gif', 'https');
```
-Recordar la URL para utilizarla más adelante
---------------------------------------------
+Desde la versión 2.0.3, puedes utilizar [[yii\helpers\Url::current()]] para crear una URL a partir de la ruta
+solicitada y los parámetros GET. Puedes modificar o eliminar algunos de los parámetros GET, o también agregar nuevos
+pasando un parámetro `$params` al método. Por ejemplo,
+
+```php
+// asume que $_GET = ['id' => 123, 'src' => 'google'], la ruta actual es "post/view"
+
+// /index.php?r=post%2Fview&id=123&src=google
+echo Url::current();
+
+// /index.php?r=post%2Fview&id=123
+echo Url::current(['src' => null]);
+// /index.php?r=post%2Fview&id=100&src=google
+echo Url::current(['id' => 100]);
+```
+
+
+## Recordar URLs
Hay casos en que se necesita recordar la URL y después usarla durante el procesamiento de una de las peticiones
secuenciales. Se puede logar de la siguiente manera:
@@ -145,11 +170,9 @@ $url = Url::previous();
$productUrl = Url::previous('product');
```
-Reconocer la relatividad de URLs
---------------------------------
+## Chequear URLs relativas
-Para descubrir si una URL es relativa, es decir, que no contenga información del host, se puede utilizar el siguiente
-código:
+Para descubrir si una URL es relativa, es decir, que no contenga información del host, se puede utilizar el siguiente código:
```php
$isRelative = Url::isRelative('test/it');
diff --git a/docs/guide-es/start-installation.md b/docs/guide-es/start-installation.md
index ddf1d82d7e..00799b0cc8 100644
--- a/docs/guide-es/start-installation.md
+++ b/docs/guide-es/start-installation.md
@@ -1,58 +1,89 @@
-Instalando Yii
-==============
+Instalar Yii
+============
-Yii puede ser instalado de dos maneras, usando [Composer](https://getcomposer.org/) o descargando un archivo comprimido.
-Es preferible usar la primera forma, ya que te permite instalar [extensiones](structure-extensions.md) o actualizar Yii ejecutando un simple comando.
+Puedes instalar Yii de dos maneras, utilizando el administrador de paquetes [Composer](https://getcomposer.org/) o descargando un archivo comprimido.
+La forma recomendada es la primera, ya que te permite instalar nuevas [extensions](structure-extensions.md) o actualizar Yii con sólo ejecutar un comando.
-> Note: A diferencia de Yii 1, la instalación estándar de Yii 2 resulta en la descarga e instalación tanto del framework como del esqueleto de la aplicación.
+La instalación estándar de Yii cuenta tanto con el framework como un template de proyecto instalados.
+Un template de proyecto es un proyecto Yii funcional que implementa algunas características básicas como: login, formulario de contacto, etc.
+El código está organizado de una forma recomendada. Por lo tanto, puede servir como un buen punto de partida para tus proyectos.
+
+En esta y en las próximas secciones, describiremos cómo instalar Yii con el llamado *Template de Proyecto Básico*
+y cómo implementar nuevas características por encima del template. Yii también provee otro template llamado
+[Template de Proyecto Avanzado](https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/README.md) qué es mejor para desarrollar aplicaciones con varios niveles
+en el entorno de un equipo de desarrollo.
+
+> Info: El Template de Proyecto Básico es adecuado para desarrollar el 90 porciento de las aplicaciones Web. Difiere del
+ Template de Proyecto Avanzado principalmente en cómo está organizado el código. Si eres nuevo en Yii, te recomendamos
+ utilizar el Template de Proyecto Básico por su simplicidad pero funcionalidad suficiente.
-Instalando a través de Composer
+Installing via Composer
-------------------------------
Si aún no tienes Composer instalado, puedes hacerlo siguiendo las instrucciones que se encuentran en
[getcomposer.org](https://getcomposer.org/download/). En Linux y Mac OS X, se ejecutan los siguientes comandos:
- curl -sS https://getcomposer.org/installer | php
- mv composer.phar /usr/local/bin/composer
+```bash
+curl -sS https://getcomposer.org/installer | php
+mv composer.phar /usr/local/bin/composer
+```
En Windows, tendrás que descargar y ejecutar [Composer-Setup.exe](https://getcomposer.org/Composer-Setup.exe).
Por favor, consulta la [Documentación de Composer](https://getcomposer.org/doc/) si encuentras algún problema
o deseas obtener un conocimiento más profundo sobre su utilización.
-Si ya tienes composer instalado asegurate que esté actualizado ejecutando `composer self-update`
+Si ya tienes composer instalado, asegúrate de tener una versión actualizada. Puedes actualizar Composer
+ejecutando el comando `composer self-update`
Teniendo Composer instalado, puedes instalar Yii ejecutando los siguientes comandos en un directorio accesible vía Web:
-Nota: es posible que en al ejecutar el primer comando te pida tu username
- composer global require "fxp/composer-asset-plugin:~1.1.1"
- composer create-project --prefer-dist yiisoft/yii2-app-basic basic
+```bash
+composer global require "fxp/composer-asset-plugin:~1.1.1"
+composer create-project --prefer-dist yiisoft/yii2-app-basic basic
+```
-El comando anterior instala Yii dentro del directorio `basic`.
+El primer comando instala [composer asset plugin](https://github.com/francoispluchino/composer-asset-plugin/),
+que permite administrar dependencias de paquetes bower y npm a través de Composer. Sólo necesitas ejecutar este comando
+una vez. El segundo comando instala Yii en un directorio llamado `basic`. Puedes elegir un nombre de directorio diferente si así lo deseas.
-> Tip: Si quieres instalar la última versión de desarrollo de Yii, puedes utilizar el siguiente comando,
-> que añade una [opción de estabilidad mínima](https://getcomposer.org/doc/04-schema.md#minimum-stability):
+> Note: Durante la instalación, Composer puede preguntar por tus credenciales de acceso de Github. Esto es normal ya que Composer
+> necesita obtener suficiente límite de acceso de la API para traer la información de dependencias de Github. Para más detalles,
+> consulta la [documentación de Composer](https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens).
+
+> Tip: Si quieres instalar la última versión de desarrollo de Yii, puedes utilizar uno de los siguientes comandos,
+> que agregan una [opción de estabilidad](https://getcomposer.org/doc/04-schema.md#minimum-stability):
>
-> composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic
+> ```bash
+> composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic
+> ```
>
-> Ten en cuenta que la versión de desarrollo de Yii no debería ser usada para producción ya que podría romper el funcionamiento actual de la aplicación.
+> Ten en cuenta que la versión de desarrollo de Yii no debería ser utilizada en producción ya que podría romper tu código actual.
-Instalando desde un Archivo Comprimido
---------------------------------------
+Instalar desde un Archivo Comprimido
+------------------------------------
-Instalar Yii desde un archivo comprimido involucra dos pasos:
+Instalar Yii desde un archivo comprimido involucra tres pasos:
1. Descargar el archivo desde [yiiframework.com](http://www.yiiframework.com/download/yii2-basic).
2. Descomprimirlo en un directorio accesible vía Web.
+3. Modificar el archivo `config/web.php` introduciendo una clave secreta para el ítem de configuración `cookieValidationKey`
+ (esto se realiza automáticamente si estás instalando Yii a través de Composer):
+
+ ```php
+ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
+ 'cookieValidationKey' => 'enter your secret key here',
+ ```
Otras Opciones de Instalación
-----------------------------
Las instrucciones anteriores muestran cómo instalar Yii, lo que también crea una aplicación Web lista para ser usada.
-Este es un buen punto de partida para pequeñas aplicaciones, o cuando apenas estás aprendiendo a utilizar Yii.
+Este es un buen punto de partida para la mayoría de proyectos, tanto grandes como pequeños. Es especialmente adecuado si recién
+estás aprendiendo a utilizar Yii.
Pero también hay otras opciones de instalación disponibles:
@@ -65,45 +96,61 @@ Pero también hay otras opciones de instalación disponibles:
Verificando las Instalación
---------------------------
-Después de la instalación, puedes acceder a la aplicación instalada a través de la siguiente URL:
-
-```
-http://localhost/basic/web/index.php
+Una vez finalizada la instalación, o bien configura tu servidor web (mira la sección siguiente) o utiliza
+el [servidor web incluido en PHP](https://secure.php.net/manual/en/features.commandline.webserver.php) ejecutando el siguiente
+comando de consola estando parado en el directorio `web` de la aplicación:
+
+```bash
+php yii serve
```
-Esta URL da por hecho que Yii se instaló en un directorio llamado `basic`, directamente bajo el directorio del Servidor Web,
-y que el Servidor Web está corriendo en tu máquina local (`localhost`). Sino, podrías necesitar ajustarlo de acuerdo a tu entorno de instalación.
+> Note: Por defecto el servidor HTTP escuchará en el puerto 8080. De cualquier modo, si el puerto está en uso o deseas
+servir varias aplicaciones de esta manera, podrías querer especificar qué puerto utilizar. Sólo agrega el argumento --port:
+
+```bash
+php yii serve --port=8888
+```
+
+Puedes utilizar tu navegador para acceder a la aplicación instalada de Yii en la siguiente URL:
+
+```
+http://localhost:8080/.
+

Deberías ver la página mostrando "Congratulations!" en tu navegador. Si no ocurriera, por favor chequea que la instalación
-de PHP satisface los requerimientos de Yii. Esto puedes hacerlo usando cualquiera de los siguientes procedimientos:
+de PHP satisfaga los requerimientos de Yii. Esto puedes hacerlo usando cualquiera de los siguientes procedimientos:
-* Visitando la URL `http://localhost/basic/requirements.php` en tu navegador
+* Copiando `/requirements.php` a `/web/requirements.php` y visitando la URL `http://localhost/basic/requirements.php` en tu navegador
* Corriendo los siguientes comandos:
- ```
+ ```bash
cd basic
php requirements.php
```
-
-Deberías configurar tu instalación de PHP para que satisfaga los requisitos mínimos de Yii. Lo que es más importante, debes tener PHP 5.4 o mayor.
-También deberías instalar la [Extensión de PHP PDO](http://www.php.net/manual/es/pdo.installation.php) y el correspondiente driver de base de datos
-(como `pdo_mysql` para bases de datos MySQL), si tu aplicación lo necesitara.
+
+Deberías configurar tu instalación de PHP para que satisfaga los requisitos mínimos de Yii. Lo que es más importante,
+debes tener PHP 5.4 o mayor. También deberías instalar la [Extensión de PHP PDO](http://www.php.net/manual/es/pdo.installation.php)
+y el correspondiente driver de base de datos (como `pdo_mysql` para bases de datos MySQL), si tu aplicación lo necesitara.
-Configurando Servidores Web
----------------------------
+Configurar Servidores Web
+-------------------------
-> Info: Puedes saltear esta sección por ahora si sólo estás probando Yii sin intención de poner la aplicación en un servidor de producción.
+> Info: Puedes saltear esta sección por ahora si sólo estás probando Yii sin intención
+ de poner la aplicación en un servidor de producción.
-La aplicación instalada debería estar lista para usar tanto con un [servidor HTTP Apache](http://httpd.apache.org/) como con un [servidor HTTP Nginx](http://nginx.org/),
-en Windows, Mac OS X, o Linux.
+La aplicación instalada siguiendo las instrucciones mencionadas debería estar lista para usar tanto
+con un [servidor HTTP Apache](http://httpd.apache.org/) como con un [servidor HTTP Nginx](http://nginx.org/),
+en Windows, Mac OS X, o Linux utilizando PHP 5.4 o mayor. Yii 2.0 también es compatible con [HHVM](http://hhvm.com/)
+de Facebook. De todos modos, hay algunos casos donde HHVM se comporta diferente del
+PHP oficial, por lo que tendrás que tener cuidados extra al utilizarlo.
-En un servidor de producción, podrías querer configurar el servidor Web para que la aplicación sea accedida a través de la
-URL `http://www.example.com/index.php` en vez de `http://www.example.com/basic/web/index.php`. Tal configuración
-require apuntar el document root de tu servidor Web al directorio `basic/web`. También podrías querer ocultar `index.php`
-de la URL, como se describe en la sección [Parseo y Generación de URLs](runtime-url-handling.md).
+En un servidor de producción, podrías querer configurar el servidor Web para que la aplicación sea accedida
+a través de la URL `http://www.example.com/index.php` en vez de `http://www.example.com/basic/web/index.php`. Tal configuración
+require apuntar el document root de tu servidor Web a la carpeta `basic/web`. También podrías
+querer ocultar `index.php` de la URL, como se describe en la sección [Parseo y Generación de URLs](runtime-url-handling.md).
En esta sub-sección, aprenderás a configurar tu servidor Apache o Nginx para alcanzar estos objetivos.
> Info: Al definir `basic/web` como document root, también previenes que los usuarios finales accedan
@@ -120,29 +167,29 @@ la sección [Entorno de Hosting Compartido](tutorial-shared-hosting.md) para má
Utiliza la siguiente configuración del archivo `httpd.conf` de Apache dentro de la configuración del virtual host. Ten en cuenta
que deberás reemplazar `path/to/basic/web` con la ruta real a `basic/web`.
-```
-# Definir el document root de "basic/web"
+```apache
+# Definir el document root como "basic/web"
DocumentRoot "path/to/basic/web"
+ # utiliza mod_rewrite para soporte de URLs amigables
RewriteEngine on
-
- # Si el directorio o archivo existe, utiliza el request directamente
+ # Si el directorio o archivo existe, utiliza la petición directamente
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
- # Sino envía el request a index.php
+ # Sino, redirige la petición a index.php
RewriteRule . index.php
- # ...más configuraciones...
+ # ...otras configuraciones...
```
### Configuración Recomendada de Nginx
-Deberías haber instalado PHP como un [FPM SAPI](http://php.net/install.fpm) para utilizar [Nginx](http://wiki.nginx.org/).
-Utiliza la siguiente configuración de Nginx, reemplazando `path/to/basic/web` con la ruta real a `basic/web` y `mysite.local` con el
-hostname real del servidor.
+Para utilizar [Nginx](http://wiki.nginx.org/), debes instalar PHP como un [FPM SAPI](http://php.net/install.fpm).
+Utiliza la siguiente configuración de Nginx, reemplazando `path/to/basic/web` con la ruta real a
+`basic/web` y `mysite.local` con el hostname real a servir.
```
server {
@@ -156,12 +203,12 @@ server {
root /path/to/basic/web;
index index.php;
- access_log /path/to/basic/log/access.log main;
+ access_log /path/to/basic/log/access.log;
error_log /path/to/basic/log/error.log;
location / {
# Redireccionar a index.php todo lo que no sea un archivo real
- try_files $uri $uri/ /index.php?$args;
+ try_files $uri $uri/ /index.php$is_args$args;
}
# descomentar para evitar el procesamiento de llamadas de Yii a archivos estáticos no existente
@@ -171,9 +218,11 @@ server {
#error_page 404 /404.html;
location ~ \.php$ {
- include fastcgi.conf;
+ include fastcgi_params;
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
+ try_files $uri =404;
}
location ~ /\.(ht|svn|git) {