¡Gracias por tu interés en contribuir a este proyecto! Esta guía te ayudará a entender cómo puedes participar y contribuir.
Índice
- ¿Quién puede participar?
- ¿Qué puedo hacer?
- Configuración del entorno local
- Cómo agregar o eliminar idiomas
- Hero images
- Cómo actualizar las iniciativas
- Cómo actualizar el FAQ
- Buenas prácticas
- Añádete a la lista de "Contributors"
- Estructura del proyecto
- Dudas y soporte
- Licencia
En esta iniciativa puede contribuir cualquier persona (no hace falta dinamizar una comunidad).
| Ejemplo | Badges |
|---|---|
| Compartiendo ideas para mejorar este proyecto | 🤔 ideas |
| Asegurando que la web está actualizada (iniciativas, FAQ, etc) | 🖋 content |
| Ayudando a mejorar este proyecto activamente para que siga evolucionando | 📆 projectManagement |
| Informando o trabajando en cuestiones relacionadas con la accesibilidad | ♿️a11y |
| Reportando o corrigiendo bugs en el código | 🐛 bug |
| Ayudando a mejorar las funcionalidades de la web, dependencias | 💻 code |
| Mejorando el logotipo/iconografía/diseño visual/etc. | 🎨 design |
| Mejorando la usabilidad | 📓 userTesting |
| Respondiendo preguntas en los issues | 💬 question |
| Ayudando con la documentación del proyecto, esta guía de contribución, etc | 📖 doc |
| Ayudando a traducir la web, para público que no hable español | 🌍 translation |
| Revisando PRs | 👀 review |
| Escribiendo tests | test |
| Preparando un vídeos para incluir en la web | 📹 video |
| Ayudando a mantener el repositorio | 🚧 maintenance |
Intentamos que en las iniciativas siempre haya algunos issues etiquetados como help wanted y good first issue. Si no encuentras ninguno o si se te ocurre algo más no dudes en preguntarlo, proponerlo en los issues.
- Clona el repositorio:
git clone <URL_DEL_REPOSITORIO>
cd <NOMBRE_DEL_PROYECTO>- Instala las dependencias:
npm install- Inicia el servidor de desarrollo:
npm run dev-
Navega al archivo
src/contexts/LanguageContext.tsx -
Para agregar un nuevo idioma:
- Añade el código del idioma al tipo
Language:
type Language = 'en' | 'es' | 'tu-nuevo-idioma';
- Añade las traducciones para el nuevo idioma en el objeto
translations:
const translations = { 'tu-nuevo-idioma': { // Navigation 'nav.home': 'Traducción', // ... resto de traducciones } };
- Añade las traducciones a
src/data/faq.jsonysrc/data/initiatives.json
- Añade el código del idioma al tipo
-
Para eliminar un idioma:
- Navega al archivo
src/components/LanguageSelector.tsx - Elimina el código del idioma en
languages - Elimina los objetos de traducciones en los tres ficheros de los puntos anteriores.
- Navega al archivo
Actualiza el array heroImages en src/pages/Index.tsx e introduce las imágenes en public/images/.
- Navega al archivo
src/data/initiatives.json - Cada iniciativa debe seguir este formato:
{
"id": "identificador-unico",
"title": {
"en": "English Title",
"es": "Título en Español",
},
"description": {
"en": "English description",
"es": "Descripción en español"
},
"image": "public/images/imagen.webp"
}-
Para agregar una nueva iniciativa:
- Navega al archivo
src/data/initiatives.json - Añade un nuevo objeto al array
initiatives - Asegúrate de incluir todas las traducciones necesarias
- Proporciona una imagen representativa
- Navega al archivo
-
Para modificar una iniciativa existente:
- Localiza la iniciativa por su
id - Actualiza los campos necesarios
- Asegúrate de mantener todas las traducciones actualizadas
- Localiza la iniciativa por su
-
Para eliminar una iniciativa:
- Elimina el objeto correspondiente del array
initiatives
- Elimina el objeto correspondiente del array
- Navega al archivo
src/data/faq.json - Cada entrada del FAQ debe seguir este formato:
{
"id": "identificador-unico",
"question": {
"en": "English question",
"es": "Pregunta en español"
},
"answer": {
"en": "English answer",
"es": "Respuesta en español"
}
}-
Para agregar una nueva pregunta:
- Añade un nuevo objeto al array
faq - Asegúrate de incluir todas las traducciones necesarias
- Mantén las respuestas concisas y claras
- Añade un nuevo objeto al array
-
Para modificar una entrada existente:
- Localiza la entrada por su
id - Actualiza la pregunta y/o respuesta
- Asegúrate de mantener todas las traducciones actualizadas
- Localiza la entrada por su
-
Para eliminar una entrada:
- Elimina el objeto correspondiente del array
faq
- Elimina el objeto correspondiente del array
-
Commits:
- Usa mensajes de commit descriptivos
- Sigue el formato:
tipo(alcance): descripción(tipos: feat, fix, docs, ver más) - Ejemplo:
feat(idiomas): agrega soporte para español
-
Pull Requests:
- Para las ramas usa el formato:
git checkout -b tu-gh-handler/mejora-o-fix - Incluye una descripción clara de los cambios
- Para las ramas usa el formato:
-
Código:
- Sigue las convenciones de código existentes
- Mantén el código limpio y bien documentado
Recuerda seguir las instrucciones para añadir tus contribuciones al repo.
src/
├── components/ # Componentes React
├── contexts/ # Contextos de React (LanguageContext)
├── data/ # Datos estáticos (FAQ, iniciativas)
├── services/ # Servicios (miembros)
├── styles/ # Estilos globales
└── utils/ # Utilidades y helpers
Si tienes preguntas o necesitas ayuda:
- Revisa la documentación existente
- Abre un issue en GitHub
- Contacta al equipo de mantenimiento
Al contribuir, aceptas que tus contribuciones serán licenciadas bajo la misma licencia que el proyecto.