diff options
Diffstat (limited to 'es-es')
-rw-r--r-- | es-es/awk-es.html.markdown | 2 | ||||
-rw-r--r-- | es-es/c++-es.html.markdown | 67 | ||||
-rw-r--r-- | es-es/docker-es.html.markdown | 167 | ||||
-rw-r--r-- | es-es/git-es.html.markdown | 2 | ||||
-rw-r--r-- | es-es/rust-es.html.markdown | 4 |
5 files changed, 203 insertions, 39 deletions
diff --git a/es-es/awk-es.html.markdown b/es-es/awk-es.html.markdown index 8da8f024..2f771320 100644 --- a/es-es/awk-es.html.markdown +++ b/es-es/awk-es.html.markdown @@ -196,7 +196,7 @@ function string_functions( localvar, arr) { # Ambas regresan el número de matches remplazados. localvar = "fooooobar" sub("fo+", "Meet me at the ", localvar) # localvar => "Meet me at the bar" - gsub("e+", ".", localvar) # localvar => "m..t m. at th. bar" + gsub("e", ".", localvar) # localvar => "m..t m. at th. bar" # Buscar una cadena que haga match con una expresión regular # index() hace lo mismo, pero no permite expresiones regulares diff --git a/es-es/c++-es.html.markdown b/es-es/c++-es.html.markdown index 2c3762d5..9db2c802 100644 --- a/es-es/c++-es.html.markdown +++ b/es-es/c++-es.html.markdown @@ -8,6 +8,7 @@ contributors: - ["Connor Waters", "http://github.com/connorwaters"] translators: - ["Gerson Lázaro", "https://gersonlazaro.com"] + - ["Diego Ramirez", "https://DiddiLeija.github.io"] lang: es-es --- @@ -101,8 +102,8 @@ void print(int myInt) int main() { - print("Hello"); // Resolves to void print(const char*) - print(15); // Resolves to void print(int) + print("Hello"); // Corresponde a void print(const char*) + print(15); // Corresponde a void print(int) } //////////////////////////////////// @@ -114,7 +115,7 @@ int main() void doSomethingWithInts(int a = 1, int b = 4) { - // Hacer algo con los enteros aqui + // Hacer algo con los enteros aquí } int main() @@ -134,7 +135,7 @@ void invalidDeclaration(int a = 1, int b) // Error! // Espacios de nombre ///////////////////// -// Espacios de nombres proporcionan ámbitos separados para variable, función y +// Los espacios de nombres proporcionan ámbitos separados para variable, función y // otras declaraciones. // Los espacios de nombres se pueden anidar. @@ -184,7 +185,7 @@ int main() #include <iostream> // Incluir para el flujo de entrada/salida -using namespace std; // Los streams estan en std namespace (libreria estandar) +using namespace std; // Los streams estan en el espacio de nombre std (libreria estandar) int main() { @@ -208,7 +209,7 @@ int main() // Las cadenas en C++ son objetos y tienen muchas funciones #include <string> -using namespace std; // Strings también estan en namespace std +using namespace std; // Las cadenas también estan en el nombre de espacio std string myString = "Hola"; string myOtherString = " Mundo"; @@ -252,7 +253,7 @@ fooRef = bar; const string& barRef = bar; // Crea una referencia constante a bar. // Como en C, los valores constantes (y punteros y referencias) no pueden ser // modificados. -barRef += ". Hola!"; // Error, referencia constante no puede ser modificada. +barRef += ". Hola!"; // Error, una referencia constante no puede ser modificada. // Sidetrack: Antes de hablar más sobre referencias, hay que introducir un // concepto llamado objeto temporal. Supongamos que tenemos el siguiente código: @@ -264,7 +265,7 @@ string retVal = tempObjectFun(); // - Una nueva cadena se construye con el objeto devuelto como argumento al // constructor // - El objeto devuelto es destruido -// El objeto devuelto se llama objeto temporal. Objetos temporales son +// El objeto devuelto se llama objeto temporal. Los objetos temporales son // creados cada vez que una función devuelve un objeto, y es destruido en el // fin de la evaluación de la expresión que encierra (Bueno, esto es lo que la // norma dice, pero los compiladores están autorizados a cambiar este @@ -295,7 +296,7 @@ void someFun(string&& s) { ... } // Referencia a objeto temporal string foo; someFun(foo); // Llama la función con referencia regular -someFun(tempObjectFun()); // Llama la versión con referencia temporal +someFun(tempObjectFun()); // Llama la función con referencia temporal // Por ejemplo, puedes ver estas dos versiones de constructores para // std::basic_string: @@ -305,7 +306,7 @@ basic_string(basic_string&& other); // La idea es que si estamos construyendo una nueva cadena de un objeto temporal // (que va a ser destruido pronto de todos modos), podemos tener un constructor // mas eficiente que "rescata" partes de esa cadena temporal. Usted verá este -// Concepto denominado "movimiento semántico". +// concepto denominado "movimiento semántico". //////////////////////////////////////////// // Clases y programación orientada a objetos @@ -322,9 +323,7 @@ class Dog { int weight; // Todos los miembros siguientes de este son públicos -// Hasta que se encuentre "private" o "protected". -// All members following this are public -// until "private:" or "protected:" is found. +// hasta que se encuentre "private" o "protected". public: // Constructor por defecto @@ -339,8 +338,8 @@ public: void setWeight(int dogsWeight); // Funciones que no modifican el estado del objeto - // Deben marcarse como const. - // Esto le permite llamarlas si se envia una referencia constante al objeto. + // deben marcarse como const. + // Esto le permite llamarlas si se envía una referencia constante al objeto. // También tenga en cuenta que las funciones deben ser declaradas // explícitamente como _virtual_ para que sea reemplazada en las clases // derivadas. @@ -357,8 +356,8 @@ public: // Esto permite paradigmas potentes como RAII // (mira abajo) // El destructor debe ser virtual si una clase es dervada desde el; - // Si no es virtual, entonces la clase derivada destructor - // No será llamada si el objeto se destruye a través de una referencia de + // Si no es virtual, entonces la clase destructora derivada + // no será llamada si el objeto se destruye a través de una referencia de // la clase base o puntero. virtual ~Dog(); @@ -373,7 +372,7 @@ Dog::Dog() } // Objetos (tales como cadenas) deben ser pasados por referencia -// Si los estas modificando o referencia constante en caso contrario. +// si los estás modificando, o referencia constante en caso contrario. void Dog::setName(const std::string& dogsName) { name = dogsName; @@ -413,9 +412,9 @@ class OwnedDog : public Dog { // Reemplaza el comportamiento de la función de impresión // de todos los OwnedDogs. Mira // http://en.wikipedia.org/wiki/Polymorphism_(computer_science)#Subtyping - // Para una introducción más general si no está familiarizado con el + // para una introducción más general si no está familiarizado con el // polimorfismo de subtipo. - // La palabra clave override es opcional, pero asegura que estás + // La palabra clave override es opcional, pero asegúrate de que estás // reemplazando el método de una clase base. void print() const override; @@ -460,8 +459,8 @@ public: // pero inicializa el punto al valor por defecto (0, 0) Point() { }; - // The following syntax is known as an initialization list - // and is the proper way to initialize class member values + // La siguiente sintaxis se conoce como lista de inicialización + // y es la forma correcta de inicializar los valores de los miembros de la clase Point (double a, double b) : x(a), y(b) @@ -474,7 +473,7 @@ public: Point& operator+=(const Point& rhs); // También tendría sentido añadir los operadores - y -=, - // Pero vamos a omitirlos por razones de brevedad. + // pero vamos a omitirlos por razones de brevedad. }; Point Point::operator+(const Point& rhs) const @@ -496,7 +495,7 @@ int main () { // Llama al operador + de Point // Point llama la función + con right como parámetro Point result = up + right; - // Prints "Result is upright (1,1)" + // Imprime "Result is upright (1,1)" cout << "Result is upright (" << result.x << ',' << result.y << ")\n"; return 0; } @@ -525,7 +524,7 @@ public: // plantilla con parámetros sustituidos, por lo que la definición completa // de la clase debe estar presente en cada invocación. // Es por esto que usted verá clases de plantilla definidas -// Enteramente en archivos de cabecera. +// enteramente en archivos de cabecera. //Para crear una instancia de una clase de plantilla en la pila: Box<int> intBox; @@ -544,7 +543,7 @@ boxOfBox.insert(intBox); // A veces verás // template<typename T> -// en su lugar. La palabra clave "class" y las palabras clave "typename" son +// en su lugar. La palabra clave "class" y la palabra clave "typename" son // mayormente intercambiables en este caso. Para la explicación completa, mira // http://en.wikipedia.org/wiki/Typename // (sí, esa palabra clave tiene su propia página de Wikipedia). @@ -568,7 +567,7 @@ Dog fluffy; fluffy.setName("Fluffy") barkThreeTimes(fluffy); // Imprime "Fluffy barks" 3 veces. -Los parámetros de la plantilla no tienen que ser las clases: +// Los parámetros de la plantilla no tienen que ser las clases: template<int Y> void printMessage() { cout << "Aprende C++ en " << Y << " minutos!" << endl; @@ -604,7 +603,7 @@ printMessage<10>(); // Prints "Aprende C++ rapido en solo 10 minutos!" //Todas las excepciones lanzadas dentro del bloque _try_ pueden ser // capturados por los siguientes manejadores _catch_. try { - // No asignar excepciones en el heap usando _new_. + // No asigne excepciones en el heap usando _new_. throw std::runtime_error("Ocurrió un problema"); } @@ -629,10 +628,10 @@ catch (...) // (Adquisición de recursos es inicialización). // A menudo se considera el paradigma más poderoso en C++ // Y el concepto es simple: un constructor de un objeto -// Adquiere recursos de ese objeto y el destructor les libera. +// adquiere recursos de ese objeto y el destructor les libera. // Para entender cómo esto es útil, -// Considere una función que utiliza un identificador de archivo C: +// considere una función que utiliza un identificador de archivo C: void doSomethingWithAFile(const char* filename) { // Para empezar, asuma que nada puede fallar. @@ -691,11 +690,11 @@ bool doSomethingWithAFile(const char* filename) failure: fclose(fh); - return false; // Propagate el error + return false; // Propaga el error } // Si las funciones indican errores mediante excepciones, -// Las cosas son un poco más claras, pero pueden optimizarse mas. +// las cosas son un poco más claras, pero pueden optimizarse más. void doSomethingWithAFile(const char* filename) { FILE* fh = fopen(filename, "r"); // Abrir el archivo en modo lectura @@ -732,9 +731,9 @@ void doSomethingWithAFile(const std::string& filename) // Esto tiene ventajas _enormes_: // 1. No importa lo que pase, -// El recurso (en este caso el manejador de archivo) será limpiado. +// el recurso (en este caso el manejador de archivo) será limpiado. // Una vez que escribes el destructor correctamente, -// Es _imposible_ olvidar cerrar el identificador y permitir +// es _imposible_ olvidar cerrar el identificador y permitir // fugas del recurso. // 2. Tenga en cuenta que el código es mucho más limpio. // El destructor se encarga de cerrar el archivo detrás de cámaras diff --git a/es-es/docker-es.html.markdown b/es-es/docker-es.html.markdown new file mode 100644 index 00000000..93e17f02 --- /dev/null +++ b/es-es/docker-es.html.markdown @@ -0,0 +1,167 @@ +---
+language: docker
+filename: docker-es.bat
+contributors:
+ - ["Ruslan López", "http://javapro.org/"]
+ - ["Michael Chen", "https://github.com/ML-Chen"]
+lang: es-es
+---
+
+```bat
+:: descargar, instalar y ejecutar la imágen del hola mundo
+docker run hello-world
+
+:: Si esta es la primera vez, deberíais de poder ver el mensaje
+:: Unable to find image 'hello-world:latest' locally
+:: latest: Pulling from library/hello-world
+:: 1b930d010525: Pull complete
+:: Digest: sha256:4fe721ccc2e8dc7362278a29dc660d833570ec2682f4e4194f4ee23e415e1064
+:: Status: Downloaded newer image for hello-world:latest
+::
+:: Hello from Docker!
+:: This message shows that your installation appears to be working correctly.
+::
+:: To generate this message, Docker took the following steps:
+:: 1. The Docker client contacted the Docker daemon.
+:: 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
+:: (amd64)
+:: 3. The Docker daemon created a new container from that image which runs the
+:: executable that produces the output you are currently reading.
+:: 4. The Docker daemon streamed that output to the Docker client, which sent it
+:: to your terminal.
+::
+:: To try something more ambitious, you can run an Ubuntu container with:
+:: $ docker run -it ubuntu bash
+::
+:: Share images, automate workflows, and more with a free Docker ID:
+:: https://hub.docker.com/
+::
+:: For more examples and ideas, visit:
+:: https://docs.docker.com/get-started/
+:: El susodicho mensaje se podría traducir como:
+::
+:: Hola desde Docker!
+:: Este mensaje muestra que su instalación parece estar funcionando crrectamente.
+::
+:: Para generar este mensaje, Docker realizó los siguientes pasos:
+:: 1. El cliente de Docker contactó a Docker daemon.
+:: 2. El Docker daemon obtubo la imágen "hello-world" desde Docker Hub.
+:: (amd64)
+:: 3. El Docker daemon creó un nuevo contenedor a partir de esa imagen con la cual ejecuta el
+:: ejecutable que produce la salida que estás leyendo.
+:: 4. El Docker daemon transmitió dicha salida el cliente Docker, el cual
+:: la envió a tu terminal.
+::
+:: Para intentar algo más ambicioso, puede correr un contenedor Ubuntu mediante:
+:: $ docker run -it ubuntu bash
+::
+:: Comparte imágenes, automatice flujos y más con un Docker ID gratuito:
+:: https://hub.docker.com/
+
+:: ahora veamos las imágenes que se están ejecutando actualmente
+docker ps
+:: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
+:: NAMES
+
+:: veamos las imágenes que hemos ejecutado previamente
+docker ps -a
+
+:: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
+:: NAMES
+:: 4a76281f9c53 hello-world "/hello" 2 minutes ago Exited (0) 2 minutes ago
+:: happy_poincare
+:: la parte del nombre se genera automáticamente, así que probablemente sea diferente para vos
+
+:: eliminemos nuestra imagen previamente generada
+docker rm happy_poincare
+
+:: verifiquemos si realmente fue borrada
+docker ps -a
+:: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
+:: NAMES
+
+:: especifiquemos un nombre personalizado para el contenedor
+docker run --name test_container hello-world
+:: Hello from Docker!
+:: This message shows that your installation appears to be working correctly.
+::
+:: To generate this message, Docker took the following steps:
+:: 1. The Docker client contacted the Docker daemon.
+:: 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
+:: (amd64)
+:: 3. The Docker daemon created a new container from that image which runs the
+:: executable that produces the output you are currently reading.
+:: 4. The Docker daemon streamed that output to the Docker client, which sent it
+:: to your terminal.
+::
+:: To try something more ambitious, you can run an Ubuntu container with:
+:: $ docker run -it ubuntu bash
+::
+:: Share images, automate workflows, and more with a free Docker ID:
+:: https://hub.docker.com/
+::
+:: For more examples and ideas, visit:
+:: https://docs.docker.com/get-started/
+
+docker ps -a
+:: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
+:: NAMES
+:: d345fe1a4f41 hello-world "/hello" About a minute ago Exited (0) About a minute ago
+:: test_container
+:: tal como podeis ver el nombre es el que especificamos
+
+:: obtener los registros de un contenedor nombrado
+docker logs test_container
+:: Hello from Docker!
+:: This message shows that your installation appears to be working correctly.
+::
+:: To generate this message, Docker took the following steps:
+:: 1. The Docker client contacted the Docker daemon.
+:: 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
+:: (amd64)
+:: 3. The Docker daemon created a new container from that image which runs the
+:: executable that produces the output you are currently reading.
+:: 4. The Docker daemon streamed that output to the Docker client, which sent it
+:: to your terminal.
+::
+:: To try something more ambitious, you can run an Ubuntu container with:
+:: $ docker run -it ubuntu bash
+::
+:: Share images, automate workflows, and more with a free Docker ID:
+:: https://hub.docker.com/
+::
+:: For more examples and ideas, visit:
+:: https://docs.docker.com/get-started/
+
+docker rm test_container
+
+docker run ubuntu
+:: Unable to find image 'ubuntu:latest' locally
+:: latest: Pulling from library/ubuntu
+:: 2746a4a261c9: Pull complete
+:: 4c1d20cdee96: Pull complete 0d3160e1d0de: Pull complete c8e37668deea: Pull complete Digest: sha256:250cc6f3f3ffc5cdaa9d8f4946ac79821aafb4d3afc93928f0de9336eba21aa4
+:: Status: Downloaded newer image for ubuntu:latest
+
+docker ps -a
+:: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
+:: NAMES
+:: c19e9e5b000a ubuntu "/bin/bash" 5 seconds ago Exited (0) 4 seconds ago
+:: relaxed_nobel
+
+:: ejecutando un contenedor en modo interactivo
+docker run -it ubuntu
+:: root@e2cac48323d2:/# uname
+:: Linux
+:: root@e2cac48323d2:/# exit
+:: exit
+
+docker rm relaxed_nobel
+
+docker ps -a
+:: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
+:: NAMES
+:: e2cac48323d2 ubuntu "/bin/bash" 2 minutes ago Exited (0) About a minute ago
+:: nifty_goldwasser
+
+docker rm nifty_goldwasser
+```
diff --git a/es-es/git-es.html.markdown b/es-es/git-es.html.markdown index 749365d1..dc0dda30 100644 --- a/es-es/git-es.html.markdown +++ b/es-es/git-es.html.markdown @@ -410,8 +410,6 @@ $ git rm /directorio/del/archivo/FooBar.c * [SalesForce Chuleta](https://na1.salesforce.com/help/doc/en/salesforce_git_developer_cheatsheet.pdf) -* [GitGuys](http://www.gitguys.com/) - * [Git - La guía simple](http://rogerdudler.github.io/git-guide/index.html) * [Pro Git](http://www.git-scm.com/book/en/v2) diff --git a/es-es/rust-es.html.markdown b/es-es/rust-es.html.markdown index b43cb815..b0a3873c 100644 --- a/es-es/rust-es.html.markdown +++ b/es-es/rust-es.html.markdown @@ -1,5 +1,5 @@ --- -language: rust +language: Rust contributors: - ["P1start", "http://p1start.github.io/"] translators: @@ -225,7 +225,7 @@ fn main() { // bucles `for` let array = [1, 2, 3]; - for i in array.iter() { + for i in array { println!("{}", i); } |