.. include:: ../disclaimer-sp.rst

:Original: :ref:`Documentation/process/code-of-conduct.rst <code_of_conduct>`
:Translator: Contributor Covenant and Carlos Bilbao <carlos.bilbao.osdev@gmail.com>

.. _sp_code_of_conduct:

Código de Conducta para Contribuyentes
+++++++++++++++++++++++++++++++++++++++

Nuestro Compromiso
==================

Nosotros, como miembros, contribuyentes y administradores nos comprometemos
a hacer de la participación en nuestra comunidad una experiencia libre de
acoso para todo el mundo, independientemente de la edad, dimensión corporal,
minusvalía visible o invisible, etnicidad, características sexuales,
identidad y expresión de género, nivel de experiencia, educación, nivel
socio-económico, nacionalidad, apariencia personal, raza, religión, o
identidad u orientación sexual. Nos comprometemos a actuar e interactuar de
maneras que contribuyan a una comunidad abierta, acogedora, diversa,
inclusiva y sana.

Nuestros Estándares
===================

Ejemplos de comportamiento que contribuyen a crear un ambiente positivo
para nuestra comunidad:

* Demostrar empatía y amabilidad ante otras personas
* Respeto a diferentes opiniones, puntos de vista y experiencias
* Dar y aceptar adecuadamente retroalimentación constructiva
* Aceptar la responsabilidad y disculparse ante quienes se vean afectados
  por nuestros errores, aprendiendo de la experiencia
* Centrarse en lo que sea mejor no sólo para nosotros como individuos, sino
  para la comunidad en general


Ejemplos de comportamiento inaceptable:

* El uso de lenguaje o imágenes sexualizadas, y aproximaciones o
  atenciones sexuales de cualquier tipo
* Comentarios despectivos (trolling), insultantes o derogatorios, y ataques
  personales o políticos
* El acoso en público o privado
* Publicar información privada de otras personas, tales como direcciones
  físicas o de correo
  electrónico, sin su permiso explícito
* Otras conductas que puedan ser razonablemente consideradas como
  inapropiadas en un entorno profesional


Aplicación de las responsabilidades
===================================

Los administradores de la comunidad son responsables de aclarar y hacer
cumplir nuestros estándares de comportamiento aceptable y tomarán acciones
apropiadas y correctivas de forma justa en respuesta a cualquier
comportamiento que consideren inapropiado, amenazante, ofensivo o dañino.

Los administradores de la comunidad tendrán el derecho y la responsabilidad
de eliminar, editar o rechazar comentarios, commits, código, ediciones de
páginas de wiki, issues y otras contribuciones que no se alineen con este
Código de Conducta, y comunicarán las razones para sus decisiones de
moderación cuando sea apropiado.

Alcance
=======

Este código de conducta aplica tanto a espacios del proyecto como a
espacios públicos donde un individuo esté en representación del proyecto o
comunidad. Ejemplos de esto incluyen el uso de la cuenta oficial de correo
electrónico, publicaciones a través de las redes sociales oficiales, o
presentaciones con personas designadas en eventos en línea o no.

Aplicación
==========

Instancias de comportamiento abusivo, acosador o inaceptable de otro modo
podrán ser reportadas contactando el Code of Conduct Commitee a través de
<conduct@kernel.org>. Todas las quejas serán evaluadas e investigadas de
una manera puntual y justa. El Code of Condut Commitee está obligados a
respetar la privacidad y la seguridad de quienes reporten incidentes.
Detalles de políticas y aplicación en particular, serán incluidos por
separado.

Atribución
==========

Este Código de Conducta es una adaptación del Contributor Covenant, versión
1.4, disponible en https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

Interpretación
==============

Consulte el documento :ref:`code_of_conduct_interpretation` para ver cómo
interpretará la comunidad del kernel Linux este documento.
