diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/frontend/app/i18n/locales/en-GB.json | 19 | ||||
| -rw-r--r-- | src/frontend/app/i18n/locales/es-ES.json | 19 | ||||
| -rw-r--r-- | src/frontend/app/i18n/locales/gl-ES.json | 19 | ||||
| -rw-r--r-- | src/frontend/app/routes/about.css | 7 | ||||
| -rw-r--r-- | src/frontend/app/routes/about.tsx | 178 |
5 files changed, 177 insertions, 65 deletions
diff --git a/src/frontend/app/i18n/locales/en-GB.json b/src/frontend/app/i18n/locales/en-GB.json index 1eaf096..6eb882b 100644 --- a/src/frontend/app/i18n/locales/en-GB.json +++ b/src/frontend/app/i18n/locales/en-GB.json @@ -1,12 +1,23 @@ { "about": { "title": "About BusUrbano", - "description": "Web app to find stops and arrival times for urban buses, Spain.", + "description": "Web app to find stops and arrival times for urban buses.", + "data_sources_title": "Data sources", + "data_sources_intro": "This application uses data from multiple sources:", + "data_gtfs": "Scheduled timetables", + "data_gtfs_source": "Official GTFS feed (municipal open data)", + "data_realtime": "Real-time data", + "data_realtime_source": "City API", + "data_traffic": "Traffic status", + "data_traffic_source": "Municipal open data", + "data_lines": "Line listings and schedules", + "map_tiles": "Maps", + "map_themes": "(\"liberty\" and \"positron\" themes for light/dark mode)", + "thanks_council": "Special thanks to Vigo City Council for providing this data under an open license.", "credits": "Credits", - "github": "Code on GitHub", "developed_by": "Developed by", - "data_source_prefix": "Data from", - "data_source_middle": "under license", + "open_source": "Open source code available on", + "license_prefix": "Municipal data under", "settings": "Settings", "theme": "Mode:", "theme_light": "Light", diff --git a/src/frontend/app/i18n/locales/es-ES.json b/src/frontend/app/i18n/locales/es-ES.json index 3c6646a..5e17101 100644 --- a/src/frontend/app/i18n/locales/es-ES.json +++ b/src/frontend/app/i18n/locales/es-ES.json @@ -1,12 +1,23 @@ { "about": { "title": "Sobre BusUrbano", - "description": "Aplicación web para encontrar paradas y tiempos de llegada de los autobuses urbanos de Vigo, España.", + "description": "Aplicación web para encontrar paradas y tiempos de llegada de los autobuses urbanos.", + "data_sources_title": "Fuentes de datos", + "data_sources_intro": "Esta aplicación utiliza datos de múltiples fuentes:", + "data_gtfs": "Horarios programados", + "data_gtfs_source": "Feed GTFS oficial (datos abiertos municipales)", + "data_realtime": "Datos en tiempo real", + "data_realtime_source": "API de la ciudad", + "data_traffic": "Estado del tráfico", + "data_traffic_source": "Datos abiertos municipales", + "data_lines": "Listado de líneas y horarios", + "map_tiles": "Mapas", + "map_themes": "(temas \"liberty\" y \"positron\" para modo claro/oscuro)", + "thanks_council": "Agradecemos especialmente al Concello de Vigo por facilitar estos datos bajo licencia abierta.", "credits": "Créditos", - "github": "Código en GitHub", "developed_by": "Desarrollado por", - "data_source_prefix": "Datos obtenidos de", - "data_source_middle": "bajo licencia", + "open_source": "Código abierto disponible en", + "license_prefix": "Datos municipales bajo licencia", "settings": "Ajustes", "theme": "Modo:", "theme_light": "Claro", diff --git a/src/frontend/app/i18n/locales/gl-ES.json b/src/frontend/app/i18n/locales/gl-ES.json index dd73576..ec37181 100644 --- a/src/frontend/app/i18n/locales/gl-ES.json +++ b/src/frontend/app/i18n/locales/gl-ES.json @@ -1,12 +1,23 @@ { "about": { "title": "Sobre BusUrbano", - "description": "Aplicación web para atopar paradas e tempos de chegada dos autobuses urbanos de Vigo, España.", + "description": "Aplicación web para atopar paradas e tempos de chegada dos autobuses urbanos.", + "data_sources_title": "Fontes de datos", + "data_sources_intro": "Esta aplicación utiliza datos de múltiples fontes:", + "data_gtfs": "Horarios programados", + "data_gtfs_source": "Feed GTFS oficial (datos abertos municipais)", + "data_realtime": "Datos en tempo real", + "data_realtime_source": "API da cidade", + "data_traffic": "Estado do tráfico", + "data_traffic_source": "Datos abertos municipais", + "data_lines": "Listaxe de liñas e horarios", + "map_tiles": "Mapas", + "map_themes": "(temas \"liberty\" e \"positron\" para modo claro/escuro)", + "thanks_council": "Agradecemos especialmente ao Concello de Vigo por facilitar estes datos baixo licenza aberta.", "credits": "Créditos", - "github": "Código en GitHub", "developed_by": "Desenvolvido por", - "data_source_prefix": "Datos obtidos de", - "data_source_middle": "baixo licenza", + "open_source": "Código aberto dispoñible en", + "license_prefix": "Datos municipais baixo licenza", "settings": "Axustes", "theme": "Modo:", "theme_light": "Claro", diff --git a/src/frontend/app/routes/about.css b/src/frontend/app/routes/about.css deleted file mode 100644 index 8f13015..0000000 --- a/src/frontend/app/routes/about.css +++ /dev/null @@ -1,7 +0,0 @@ -.about-version { - margin-top: 2rem; - text-align: center; - color: var(--subtitle-color); - border-top: 1px solid var(--border-color); - padding-top: 1rem; -} diff --git a/src/frontend/app/routes/about.tsx b/src/frontend/app/routes/about.tsx index d41268d..1354e8f 100644 --- a/src/frontend/app/routes/about.tsx +++ b/src/frontend/app/routes/about.tsx @@ -1,59 +1,145 @@ import { useTranslation } from "react-i18next"; import { usePageTitle } from "~/contexts/PageTitleContext"; -import { useApp } from "../AppContext"; -import "./about.css"; -import "./settings.css"; // Reusing settings CSS for now +import '../tailwind-full.css'; export default function About() { const { t } = useTranslation(); usePageTitle(t("about.title", "Acerca de")); - const { region } = useApp(); return ( - <div className="page-container"> - <p className="about-description">{t("about.description")}</p> - - <h2>{t("about.credits")}</h2> - <p> - <a - href="https://github.com/arielcostas/busurbano" - className="about-link" - rel="nofollow noreferrer noopener" - > - {t("about.github")} - </a>{" "} - - {t("about.developed_by")}{" "} - <a - href="https://www.costas.dev" - className="about-link" - rel="nofollow noreferrer noopener" - > - Ariel Costas - </a> - </p> - {region === "vigo" && ( - <p> - {t("about.data_source_prefix")}{" "} - <a - href="https://datos.vigo.org" - className="about-link" - rel="nofollow noreferrer noopener" - > - datos.vigo.org - </a>{" "} - {t("about.data_source_middle")}{" "} - <a - href="https://opendefinition.org/licenses/odc-by/" - className="about-link" - rel="nofollow noreferrer noopener" - > - Open Data Commons Attribution License - </a> - . + <div className="page-container max-w-3xl mx-auto"> + <div className="mb-8"> + <p className="text-lg leading-relaxed opacity-90"> + {t("about.description")} </p> - )} + </div> + + <section className="mb-8"> + <h2 className="text-2xl font-semibold mb-4 border-b border-[--border-color] pb-2"> + {t("about.data_sources_title")} + </h2> + <p className="mb-4 opacity-80">{t("about.data_sources_intro")}</p> + <ul className="space-y-3 ml-4"> + <li className="flex flex-col sm:flex-row sm:items-start gap-1"> + <strong className="text-[--text-color] min-w-fit"> + {t("about.data_gtfs")}: + </strong> + <a + href="https://datos-ckan.vigo.org/dataset/gtfs-vitrasa" + className="text-blue-600 dark:text-blue-400 hover:underline hover:brightness-110 transition-all" + rel="nofollow noreferrer noopener" + target="_blank" + > + {t("about.data_gtfs_source")} + </a> + </li> + <li className="flex flex-col sm:flex-row sm:items-start gap-1"> + <strong className="text-[--text-color] min-w-fit"> + {t("about.data_realtime")}: + </strong> + <span className="opacity-80">{t("about.data_realtime_source")}</span> + </li> + <li className="flex flex-col sm:flex-row sm:items-start gap-1"> + <strong className="text-[--text-color] min-w-fit"> + {t("about.data_traffic")}: + </strong> + <a + href="https://datos-ckan.vigo.org/dataset/t-estado-trafico" + className="text-blue-600 dark:text-blue-400 hover:underline hover:brightness-110 transition-all" + rel="nofollow noreferrer noopener" + target="_blank" + > + {t("about.data_traffic_source")} + </a> + </li> + <li className="flex flex-col sm:flex-row sm:items-start gap-1"> + <strong className="text-[--text-color] min-w-fit"> + {t("about.data_lines")}: + </strong> + <a + href="https://vitrasa.es" + className="text-blue-600 dark:text-blue-400 hover:underline hover:brightness-110 transition-all" + rel="nofollow noreferrer noopener" + target="_blank" + > + vitrasa.es + </a> + </li> + </ul> + + <div className="mt-6 p-4 bg-[--card-background] rounded-lg border border-[--border-color]"> + <p className="flex flex-col sm:flex-row sm:items-start gap-1"> + <strong className="text-[--text-color] min-w-fit"> + {t("about.map_tiles")}: + </strong> + <span> + <a + href="https://openfreemap.org" + className="text-blue-600 dark:text-blue-400 hover:underline hover:brightness-110 transition-all" + rel="nofollow noreferrer noopener" + target="_blank" + > + OpenFreeMap + </a>{" "} + <span className="opacity-70 text-sm"> + {t("about.map_themes")} + </span> + </span> + </p> + </div> + + <div className="mt-6 p-4 bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 rounded-lg"> + <p className="text-sm leading-relaxed"> + {t("about.thanks_council")} + </p> + </div> + </section> + + <section className="mb-8"> + <h2 className="text-2xl font-semibold mb-4 border-b border-[--border-color] pb-2"> + {t("about.credits")} + </h2> + <div className="space-y-3"> + <p className="flex flex-wrap items-center gap-1"> + <span className="opacity-80">{t("about.developed_by")}</span> + <a + href="https://www.costas.dev" + className="text-blue-600 dark:text-blue-400 hover:underline hover:brightness-110 transition-all font-medium" + rel="nofollow noreferrer noopener" + target="_blank" + > + Ariel Costas + </a> + </p> + <p className="flex flex-wrap items-center gap-1"> + <span className="opacity-80">{t("about.open_source")}</span> + <a + href="https://github.com/arielcostas/busurbano" + className="text-blue-600 dark:text-blue-400 hover:underline hover:brightness-110 transition-all font-medium inline-flex items-center gap-1" + rel="nofollow noreferrer noopener" + target="_blank" + > + <svg className="w-5 h-5" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"> + <path fillRule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clipRule="evenodd" /> + </svg> + GitHub + </a> + </p> + <p className="flex flex-wrap items-center gap-1"> + <span className="opacity-80">{t("about.license_prefix")}</span> + <a + href="https://opendefinition.org/licenses/odc-by/" + className="text-blue-600 dark:text-blue-400 hover:underline hover:brightness-110 transition-all" + rel="nofollow noreferrer noopener" + target="_blank" + > + Open Data Commons Attribution License + </a> + </p> + </div> + </section> - <div className="about-version"> + <div className="text-center text-sm text-[--text-secondary-color] opacity-70 mb-4"> <small>Version: {__COMMIT_HASH__}</small> </div> </div> |
