BloomFeed Upgrade v0.21
This commit is contained in:
+146
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
// Navigation
|
||||
'articles' => 'Artikel',
|
||||
'catalog' => 'Katalog',
|
||||
'my_feeds' => 'Meine Feeds',
|
||||
'settings' => 'Einstellungen',
|
||||
'logout' => 'Abmelden',
|
||||
'change_theme' => 'Design wechseln',
|
||||
'language' => 'Sprache',
|
||||
'self_hosting' => 'Self-Hosting',
|
||||
'login' => 'Anmelden',
|
||||
'create_account' => 'Konto erstellen',
|
||||
'source_code' => 'Quellcode',
|
||||
'footer_tagline' => 'BloomFeed — Open-Source-Projekt, selbst gehostet.',
|
||||
'meta_description' => 'BloomFeed ist ein persönlicher, selbst gehosteter RSS-Aggregator mit integriertem Reader.',
|
||||
|
||||
// Startseite
|
||||
'hero_eyebrow' => 'Selbst gehostet · Privatsphäre',
|
||||
'hero_title' => 'Deine RSS-Feeds, gründlich gelesen, ohne BloomFeed je zu verlassen.',
|
||||
'hero_lede' => 'BloomFeed bündelt deine Lieblings-Feeds und extrahiert deren vollständigen Inhalt auf Abruf, direkt auf deinem eigenen Server. Keine Daten an Dritte.',
|
||||
'how_to_self_host' => 'Wie hostet man es selbst?',
|
||||
'feature_feeds_title' => 'Deine Feeds, dein Stil',
|
||||
'feature_feeds_text' => 'Füge beliebige RSS- oder Atom-Feeds hinzu, organisiere sie und behalte Ungelesenes im Blick.',
|
||||
'feature_reader_title' => 'Integrierter Reader',
|
||||
'feature_reader_text' => 'BloomFeed ruft die Originalseite ab, extrahiert den Hauptinhalt und zeigt ihn sauber an — Schluss mit zehn offenen Tabs.',
|
||||
'feature_home_title' => 'Bei dir, für dich',
|
||||
'feature_home_text' => 'Eine BloomFeed-Instanz = ein Besitzer. Keine öffentlichen Registrierungen standardmäßig, kein Tracking, dein Server, deine Daten.',
|
||||
|
||||
// Authentifizierung
|
||||
'login_title' => 'Anmelden',
|
||||
'login_subtitle' => 'Zugriff auf deine Feeds und deine Lektüre',
|
||||
'email' => 'E-Mail-Adresse',
|
||||
'password' => 'Passwort',
|
||||
'confirm_password' => 'Passwort bestätigen',
|
||||
'name' => 'Name',
|
||||
'no_account_yet' => 'Noch kein Konto?',
|
||||
'already_account' => 'Bereits ein Konto?',
|
||||
'register_owner_title' => 'Instanz einrichten',
|
||||
'register_owner_subtitle' => 'Dieses Konto wird das Besitzerkonto dieser BloomFeed-Instanz',
|
||||
'register_title' => 'Konto erstellen',
|
||||
'register_subtitle' => 'Tritt dieser BloomFeed-Instanz bei',
|
||||
'register_button' => 'Mein Konto erstellen',
|
||||
'registrations_closed' => 'Registrierungen sind auf dieser Instanz geschlossen. Bitte melde dich an.',
|
||||
'invalid_credentials' => 'Diese Zugangsdaten passen zu keinem Konto.',
|
||||
|
||||
// Übersicht
|
||||
'latest_articles' => 'Neueste Artikel',
|
||||
'unread_only' => 'Nur Ungelesene',
|
||||
'show_all' => 'Alle anzeigen',
|
||||
'empty_no_feeds' => 'Füge deinen ersten RSS-Feed über die Seitenleiste hinzu, um loszulegen.',
|
||||
'empty_no_articles' => 'Noch keine Artikel. Aktualisiere deine Feeds.',
|
||||
|
||||
// Seitenleiste
|
||||
'feeds_label' => 'Feeds',
|
||||
'all_articles' => 'Alle Artikel',
|
||||
'add_feed' => 'Feed hinzufügen',
|
||||
'add' => 'Hinzufügen',
|
||||
'refresh_all' => 'Alle aktualisieren',
|
||||
'manage_feeds' => 'Meine Feeds verwalten',
|
||||
'feed_url_placeholder' => 'https://beispiel.de/rss.xml',
|
||||
|
||||
// Feed-Verwaltung
|
||||
'custom_title_optional' => 'Eigener Titel (optional)',
|
||||
'articles_count' => ':count Artikel',
|
||||
'refreshed_ago' => 'aktualisiert :time',
|
||||
'refresh' => 'Aktualisieren',
|
||||
'delete' => 'Löschen',
|
||||
'confirm_delete_feed' => 'Diesen Feed und alle seine Artikel löschen?',
|
||||
'no_feeds_yet' => 'Du hast noch keine Feeds hinzugefügt.',
|
||||
'feed_added' => 'Feed mit :count Artikel(n) hinzugefügt.',
|
||||
'feed_added_error' => 'Feed hinzugefügt, aber der erste Abruf schlug fehl: :error',
|
||||
'feed_deleted' => 'Feed gelöscht.',
|
||||
'refresh_failed' => 'Abruf fehlgeschlagen: :error',
|
||||
'new_articles' => ':count neue(r) Artikel.',
|
||||
'new_articles_across' => ':count neue(r) Artikel aus :feeds Feeds.',
|
||||
|
||||
// Reader
|
||||
'back_to_articles' => 'Zurück zu den Artikeln',
|
||||
'view_original' => 'Originalquelle ansehen',
|
||||
'fetch_error' => 'Der vollständige Inhalt dieses Artikels konnte nicht abgerufen werden (:error).',
|
||||
'retry' => 'Erneut versuchen',
|
||||
'fetching' => 'Inhalt wird abgerufen…',
|
||||
|
||||
// Katalog
|
||||
'catalog_title' => 'Feed-Katalog',
|
||||
'catalog_lede' => 'Eine kuratierte Auswahl an RSS-Feeds, die mit BloomFeed mitgeliefert wird — mit einem Klick zu deiner Sammlung hinzufügen.',
|
||||
'search_placeholder' => 'Feed suchen… (Name, Beschreibung, Kategorie)',
|
||||
'all' => 'Alle',
|
||||
'added' => 'Hinzugefügt',
|
||||
'catalog_empty' => 'Der Katalog ist derzeit leer.',
|
||||
'no_match' => 'Kein Feed entspricht deiner Suche.',
|
||||
|
||||
// Einstellungen
|
||||
'settings_title' => 'Instanz-Einstellungen',
|
||||
'registrations_section' => 'Öffentliche Registrierungen',
|
||||
'registrations_desc' => 'Erlaubt jedem Besucher, über die Anmeldeseite ein Konto auf dieser Instanz zu erstellen.',
|
||||
'registrations_state_open' => 'Registrierungen sind derzeit geöffnet.',
|
||||
'registrations_state_closed' => 'Registrierungen sind derzeit geschlossen.',
|
||||
'open_registrations' => 'Registrierungen öffnen',
|
||||
'close_registrations' => 'Registrierungen schließen',
|
||||
'registrations_now_open' => 'Registrierungen sind jetzt geöffnet.',
|
||||
'registrations_now_closed' => 'Registrierungen sind jetzt geschlossen.',
|
||||
'create_user_section' => 'Konto erstellen',
|
||||
'create_user_desc' => 'Erstelle direkt ein Konto für eine vertraute Person, ohne öffentliche Registrierungen zu öffnen.',
|
||||
'user_created' => 'Konto erstellt.',
|
||||
'users_section' => 'Vorhandene Konten',
|
||||
'owner_badge' => 'Besitzer',
|
||||
|
||||
// Self-Hosting-Seite
|
||||
'selfhost_title' => 'BloomFeed selbst hosten',
|
||||
'selfhost_intro' => 'BloomFeed ist dafür gemacht, auf deinem eigenen Server zu laufen — für dich (oder deinen Haushalt). Alles läuft in Docker: die Anwendung, der Scheduler und die MariaDB-Datenbank.',
|
||||
'prereq_title' => 'Voraussetzungen',
|
||||
'prereq_docker' => 'Ein Linux-Server mit Docker und dem Docker-Compose-Plugin.',
|
||||
'prereq_port' => 'Port 7081 frei (konfigurierbar in docker-compose.yml).',
|
||||
'prereq_proxy' => 'Optional: ein Domainname und ein Reverse Proxy für HTTPS.',
|
||||
'install_title' => 'Installation',
|
||||
'install_step_clone' => 'Klone das Repository auf deinen Server.',
|
||||
'install_step_script' => 'Führe das Deployment-Skript aus:',
|
||||
'install_env_note' => 'Es erstellt automatisch eine .env-Datei (aus .env.example) und generiert fehlende Zufallsgeheimnisse (APP_KEY, Datenbank-Passwörter) — sie werden bei späteren Deployments nie neu generiert.',
|
||||
'install_step_containers' => 'Das Skript baut die Images und startet die Container (Anwendung, Scheduler, MariaDB).',
|
||||
'install_step_owner' => 'Öffne http://dein-server:7081 und erstelle das Besitzerkonto — Registrierungen schließen sich danach automatisch.',
|
||||
'config_title' => 'Konfiguration',
|
||||
'config_registrations' => 'Über das Einstellungsmenü kann das Besitzerkonto direkt Konten für vertraute Personen erstellen oder öffentliche Registrierungen mit einem Klick öffnen/schließen.',
|
||||
'config_language' => 'Die Oberfläche ist auf Französisch, Englisch, Spanisch und Deutsch verfügbar — jeder Nutzer wählt seine Sprache über den Selektor oben auf der Seite.',
|
||||
'config_catalog' => 'Der integrierte Feed-Katalog lässt sich durch Bearbeiten von resources/data/bloomflux.json und erneutes Deployment anpassen.',
|
||||
'update_title' => 'Aktualisieren',
|
||||
'update_text' => 'Führe einfach das Deployment-Skript erneut aus: Es holt die neuesten Änderungen und baut den Stack neu, ohne deine Daten anzutasten.',
|
||||
'uninstall_title' => 'Deinstallieren',
|
||||
'uninstall_text' => 'Das Skript uninstall.sh stoppt und entfernt den Docker-Stack sauber. Es fragt vor dem Löschen deiner Daten explizit nach und entfernt den Quellcode nie ohne separate Bestätigung.',
|
||||
'source_title' => 'Quellcode',
|
||||
|
||||
// Katalogquellen & Sprachfilter
|
||||
'all_languages' => 'Alle Sprachen',
|
||||
'catalog_sources_section' => 'Katalogquellen',
|
||||
'catalog_sources_desc' => 'Füge weitere Feed-Kataloge hinzu, indem du die Raw-URL einer bloomflux.json-Datei aus einem anderen Git-Repository angibst. Die Feeds werden mit dem integrierten Katalog zusammengeführt; ist die Quelle nicht erreichbar, wird die letzte bekannte Kopie verwendet.',
|
||||
'source_url_label' => 'URL der bloomflux.json-Datei',
|
||||
'add_source' => 'Quelle hinzufügen',
|
||||
'remove' => 'Entfernen',
|
||||
'source_added' => 'Quelle hinzugefügt (:count Feeds).',
|
||||
'source_already_added' => 'Diese Quelle ist bereits registriert.',
|
||||
'source_removed' => 'Quelle entfernt.',
|
||||
'source_invalid' => 'Diese Quelle konnte nicht gelesen werden (gültige bloomflux.json-Datei erwartet).',
|
||||
'no_sources' => 'Noch keine externen Quellen.',
|
||||
];
|
||||
+146
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
// Navigation
|
||||
'articles' => 'Articles',
|
||||
'catalog' => 'Catalog',
|
||||
'my_feeds' => 'My feeds',
|
||||
'settings' => 'Settings',
|
||||
'logout' => 'Log out',
|
||||
'change_theme' => 'Switch theme',
|
||||
'language' => 'Language',
|
||||
'self_hosting' => 'Self-hosting',
|
||||
'login' => 'Log in',
|
||||
'create_account' => 'Create an account',
|
||||
'source_code' => 'Source code',
|
||||
'footer_tagline' => 'BloomFeed — open-source, self-hosted project.',
|
||||
'meta_description' => 'BloomFeed is a personal, self-hosted RSS aggregator with a built-in reader.',
|
||||
|
||||
// Home
|
||||
'hero_eyebrow' => 'Self-hosted · Privacy first',
|
||||
'hero_title' => 'Your RSS feeds, read in depth, without ever leaving BloomFeed.',
|
||||
'hero_lede' => 'BloomFeed gathers your favorite feeds and extracts their full content on demand, right on your own server. No data ever sent to third parties.',
|
||||
'how_to_self_host' => 'How to self-host it?',
|
||||
'feature_feeds_title' => 'Your feeds, your way',
|
||||
'feature_feeds_text' => 'Add any RSS or Atom feed, organize them and keep track of your unread items at a glance.',
|
||||
'feature_reader_title' => 'Built-in deep reader',
|
||||
'feature_reader_text' => 'BloomFeed fetches the source page, extracts the main content and displays it cleanly — no more juggling ten tabs.',
|
||||
'feature_home_title' => 'Your home, your rules',
|
||||
'feature_home_text' => 'One BloomFeed instance = one owner. No public sign-ups by default, no tracking, your server, your data.',
|
||||
|
||||
// Authentication
|
||||
'login_title' => 'Log in',
|
||||
'login_subtitle' => 'Access your feeds and your reading list',
|
||||
'email' => 'Email address',
|
||||
'password' => 'Password',
|
||||
'confirm_password' => 'Confirm password',
|
||||
'name' => 'Name',
|
||||
'no_account_yet' => 'No account yet?',
|
||||
'already_account' => 'Already have an account?',
|
||||
'register_owner_title' => 'Set up your instance',
|
||||
'register_owner_subtitle' => 'This account will be the owner of this BloomFeed instance',
|
||||
'register_title' => 'Create an account',
|
||||
'register_subtitle' => 'Join this BloomFeed instance',
|
||||
'register_button' => 'Create my account',
|
||||
'registrations_closed' => 'Registrations are closed on this instance. Please log in.',
|
||||
'invalid_credentials' => 'These credentials do not match any account.',
|
||||
|
||||
// Dashboard
|
||||
'latest_articles' => 'Latest articles',
|
||||
'unread_only' => 'Unread only',
|
||||
'show_all' => 'Show all',
|
||||
'empty_no_feeds' => 'Add your first RSS feed from the sidebar to get started.',
|
||||
'empty_no_articles' => 'No articles yet. Try refreshing your feeds.',
|
||||
|
||||
// Sidebar
|
||||
'feeds_label' => 'Feeds',
|
||||
'all_articles' => 'All articles',
|
||||
'add_feed' => 'Add a feed',
|
||||
'add' => 'Add',
|
||||
'refresh_all' => 'Refresh all',
|
||||
'manage_feeds' => 'Manage my feeds',
|
||||
'feed_url_placeholder' => 'https://example.com/rss.xml',
|
||||
|
||||
// Feed management
|
||||
'custom_title_optional' => 'Custom title (optional)',
|
||||
'articles_count' => ':count article(s)',
|
||||
'refreshed_ago' => 'refreshed :time',
|
||||
'refresh' => 'Refresh',
|
||||
'delete' => 'Delete',
|
||||
'confirm_delete_feed' => 'Delete this feed and all its articles?',
|
||||
'no_feeds_yet' => "You haven't added any feeds yet.",
|
||||
'feed_added' => 'Feed added with :count article(s).',
|
||||
'feed_added_error' => 'Feed added, but the first fetch failed: :error',
|
||||
'feed_deleted' => 'Feed deleted.',
|
||||
'refresh_failed' => 'Fetch failed: :error',
|
||||
'new_articles' => ':count new article(s).',
|
||||
'new_articles_across' => ':count new article(s) across :feeds feeds.',
|
||||
|
||||
// Reader
|
||||
'back_to_articles' => 'Back to articles',
|
||||
'view_original' => 'View original source',
|
||||
'fetch_error' => 'Could not fetch the full content of this article (:error).',
|
||||
'retry' => 'Retry',
|
||||
'fetching' => 'Fetching content…',
|
||||
|
||||
// Catalog
|
||||
'catalog_title' => 'Feed catalog',
|
||||
'catalog_lede' => 'A curated selection of RSS feeds shipped with BloomFeed — add them to your collection in one click.',
|
||||
'search_placeholder' => 'Search feeds… (name, description, category)',
|
||||
'all' => 'All',
|
||||
'added' => 'Added',
|
||||
'catalog_empty' => 'The catalog is empty for now.',
|
||||
'no_match' => 'No feed matches your search.',
|
||||
|
||||
// Settings
|
||||
'settings_title' => 'Instance settings',
|
||||
'registrations_section' => 'Public registrations',
|
||||
'registrations_desc' => 'Allow any visitor to create an account on this instance from the login page.',
|
||||
'registrations_state_open' => 'Registrations are currently open.',
|
||||
'registrations_state_closed' => 'Registrations are currently closed.',
|
||||
'open_registrations' => 'Open registrations',
|
||||
'close_registrations' => 'Close registrations',
|
||||
'registrations_now_open' => 'Registrations are now open.',
|
||||
'registrations_now_closed' => 'Registrations are now closed.',
|
||||
'create_user_section' => 'Create an account',
|
||||
'create_user_desc' => 'Create an account directly for someone you trust, without opening public registrations.',
|
||||
'user_created' => 'Account created.',
|
||||
'users_section' => 'Existing accounts',
|
||||
'owner_badge' => 'Owner',
|
||||
|
||||
// Self-hosting page
|
||||
'selfhost_title' => 'Self-host BloomFeed',
|
||||
'selfhost_intro' => 'BloomFeed is designed to run on your own server, for you (or your household). Everything runs in Docker: the application, the scheduler and the MariaDB database.',
|
||||
'prereq_title' => 'Prerequisites',
|
||||
'prereq_docker' => 'A Linux server with Docker and the Docker Compose plugin.',
|
||||
'prereq_port' => 'Port 7081 available (configurable in docker-compose.yml).',
|
||||
'prereq_proxy' => 'Optional: a domain name and a reverse proxy if you want HTTPS.',
|
||||
'install_title' => 'Installation',
|
||||
'install_step_clone' => 'Clone the repository on your server.',
|
||||
'install_step_script' => 'Run the deployment script:',
|
||||
'install_env_note' => 'It automatically creates a .env file (from .env.example) and generates random secrets (APP_KEY, database passwords) when missing — they are never regenerated on subsequent deployments.',
|
||||
'install_step_containers' => 'The script builds the images and starts the containers (application, scheduler, MariaDB).',
|
||||
'install_step_owner' => 'Open http://your-server:7081 and create the owner account — registrations close automatically afterwards.',
|
||||
'config_title' => 'Configuration',
|
||||
'config_registrations' => 'From the Settings menu, the owner account can directly create accounts for trusted people, or open/close public registrations with one click.',
|
||||
'config_language' => 'The interface is available in French, English, Spanish and German — each user picks their language from the selector at the top of the page.',
|
||||
'config_catalog' => 'The built-in feed catalog can be customized by editing resources/data/bloomflux.json and redeploying.',
|
||||
'update_title' => 'Update',
|
||||
'update_text' => 'Simply re-run the deployment script: it pulls the latest changes and rebuilds the stack without touching your data.',
|
||||
'uninstall_title' => 'Uninstall',
|
||||
'uninstall_text' => 'The uninstall.sh script cleanly stops and removes the Docker stack. It asks for explicit confirmation before deleting your data and never removes the source code without a separate confirmation.',
|
||||
'source_title' => 'Source code',
|
||||
|
||||
// Catalog sources & language filter
|
||||
'all_languages' => 'All languages',
|
||||
'catalog_sources_section' => 'Catalog sources',
|
||||
'catalog_sources_desc' => 'Add more feed catalogs by providing the raw URL of a bloomflux.json file hosted in another git repository. Feeds are merged with the built-in catalog, and the last known copy is served if the source is unreachable.',
|
||||
'source_url_label' => 'URL of the bloomflux.json file',
|
||||
'add_source' => 'Add source',
|
||||
'remove' => 'Remove',
|
||||
'source_added' => 'Source added (:count feeds).',
|
||||
'source_already_added' => 'This source is already registered.',
|
||||
'source_removed' => 'Source removed.',
|
||||
'source_invalid' => 'Could not read this source (a valid bloomflux.json file is expected).',
|
||||
'no_sources' => 'No external sources yet.',
|
||||
];
|
||||
+146
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
// Navegación
|
||||
'articles' => 'Artículos',
|
||||
'catalog' => 'Catálogo',
|
||||
'my_feeds' => 'Mis fuentes',
|
||||
'settings' => 'Ajustes',
|
||||
'logout' => 'Cerrar sesión',
|
||||
'change_theme' => 'Cambiar de tema',
|
||||
'language' => 'Idioma',
|
||||
'self_hosting' => 'Autoalojamiento',
|
||||
'login' => 'Iniciar sesión',
|
||||
'create_account' => 'Crear una cuenta',
|
||||
'source_code' => 'Código fuente',
|
||||
'footer_tagline' => 'BloomFeed — proyecto open source y autoalojado.',
|
||||
'meta_description' => 'BloomFeed es un agregador RSS personal y autoalojado, con lector integrado.',
|
||||
|
||||
// Inicio
|
||||
'hero_eyebrow' => 'Autoalojado · Privacidad',
|
||||
'hero_title' => 'Tus fuentes RSS, leídas en profundidad, sin salir nunca de BloomFeed.',
|
||||
'hero_lede' => 'BloomFeed centraliza tus fuentes favoritas y extrae su contenido completo bajo demanda, directamente en tu propio servidor. Ningún dato se envía a terceros.',
|
||||
'how_to_self_host' => '¿Cómo autoalojarlo?',
|
||||
'feature_feeds_title' => 'Fuentes personalizadas',
|
||||
'feature_feeds_text' => 'Añade cualquier fuente RSS o Atom, organízalas y sigue tus no leídos de un vistazo.',
|
||||
'feature_reader_title' => 'Lector integrado',
|
||||
'feature_reader_text' => 'BloomFeed recupera la página original, extrae el contenido principal y lo muestra limpiamente — se acabó abrir diez pestañas.',
|
||||
'feature_home_title' => 'En tu casa, para ti',
|
||||
'feature_home_text' => 'Una instancia de BloomFeed = un propietario. Sin registros públicos por defecto, sin rastreo, tu servidor, tus datos.',
|
||||
|
||||
// Autenticación
|
||||
'login_title' => 'Iniciar sesión',
|
||||
'login_subtitle' => 'Accede a tus fuentes y a tu lectura',
|
||||
'email' => 'Correo electrónico',
|
||||
'password' => 'Contraseña',
|
||||
'confirm_password' => 'Confirmar la contraseña',
|
||||
'name' => 'Nombre',
|
||||
'no_account_yet' => '¿Aún no tienes cuenta?',
|
||||
'already_account' => '¿Ya tienes una cuenta?',
|
||||
'register_owner_title' => 'Configura tu instancia',
|
||||
'register_owner_subtitle' => 'Esta cuenta será la cuenta propietaria de esta instancia de BloomFeed',
|
||||
'register_title' => 'Crear una cuenta',
|
||||
'register_subtitle' => 'Únete a esta instancia de BloomFeed',
|
||||
'register_button' => 'Crear mi cuenta',
|
||||
'registrations_closed' => 'Los registros están cerrados en esta instancia. Inicia sesión.',
|
||||
'invalid_credentials' => 'Estas credenciales no corresponden a ninguna cuenta.',
|
||||
|
||||
// Panel
|
||||
'latest_articles' => 'Últimos artículos',
|
||||
'unread_only' => 'Solo no leídos',
|
||||
'show_all' => 'Mostrar todo',
|
||||
'empty_no_feeds' => 'Añade tu primera fuente RSS desde la barra lateral para empezar.',
|
||||
'empty_no_articles' => 'Todavía no hay artículos. Prueba a actualizar tus fuentes.',
|
||||
|
||||
// Barra lateral
|
||||
'feeds_label' => 'Fuentes',
|
||||
'all_articles' => 'Todos los artículos',
|
||||
'add_feed' => 'Añadir una fuente',
|
||||
'add' => 'Añadir',
|
||||
'refresh_all' => 'Actualizar todo',
|
||||
'manage_feeds' => 'Gestionar mis fuentes',
|
||||
'feed_url_placeholder' => 'https://ejemplo.com/rss.xml',
|
||||
|
||||
// Gestión de fuentes
|
||||
'custom_title_optional' => 'Título personalizado (opcional)',
|
||||
'articles_count' => ':count artículo(s)',
|
||||
'refreshed_ago' => 'actualizado :time',
|
||||
'refresh' => 'Actualizar',
|
||||
'delete' => 'Eliminar',
|
||||
'confirm_delete_feed' => '¿Eliminar esta fuente y todos sus artículos?',
|
||||
'no_feeds_yet' => 'Todavía no has añadido ninguna fuente.',
|
||||
'feed_added' => 'Fuente añadida con :count artículo(s).',
|
||||
'feed_added_error' => 'Fuente añadida, pero la primera recuperación falló: :error',
|
||||
'feed_deleted' => 'Fuente eliminada.',
|
||||
'refresh_failed' => 'Fallo al recuperar: :error',
|
||||
'new_articles' => ':count artículo(s) nuevo(s).',
|
||||
'new_articles_across' => ':count artículo(s) nuevo(s) en :feeds fuentes.',
|
||||
|
||||
// Lector
|
||||
'back_to_articles' => 'Volver a los artículos',
|
||||
'view_original' => 'Ver la fuente original',
|
||||
'fetch_error' => 'No se pudo recuperar el contenido completo de este artículo (:error).',
|
||||
'retry' => 'Reintentar',
|
||||
'fetching' => 'Recuperando el contenido…',
|
||||
|
||||
// Catálogo
|
||||
'catalog_title' => 'Catálogo de fuentes',
|
||||
'catalog_lede' => 'Una selección de fuentes RSS incluida con BloomFeed — añádelas a tu colección con un clic.',
|
||||
'search_placeholder' => 'Buscar una fuente… (nombre, descripción, categoría)',
|
||||
'all' => 'Todo',
|
||||
'added' => 'Añadida',
|
||||
'catalog_empty' => 'El catálogo está vacío por ahora.',
|
||||
'no_match' => 'Ninguna fuente coincide con tu búsqueda.',
|
||||
|
||||
// Ajustes
|
||||
'settings_title' => 'Ajustes de la instancia',
|
||||
'registrations_section' => 'Registros públicos',
|
||||
'registrations_desc' => 'Permite que cualquier visitante cree una cuenta en esta instancia desde la página de inicio de sesión.',
|
||||
'registrations_state_open' => 'Los registros están actualmente abiertos.',
|
||||
'registrations_state_closed' => 'Los registros están actualmente cerrados.',
|
||||
'open_registrations' => 'Abrir los registros',
|
||||
'close_registrations' => 'Cerrar los registros',
|
||||
'registrations_now_open' => 'Los registros están ahora abiertos.',
|
||||
'registrations_now_closed' => 'Los registros están ahora cerrados.',
|
||||
'create_user_section' => 'Crear una cuenta',
|
||||
'create_user_desc' => 'Crea directamente una cuenta para alguien de confianza, sin abrir los registros públicos.',
|
||||
'user_created' => 'Cuenta creada.',
|
||||
'users_section' => 'Cuentas existentes',
|
||||
'owner_badge' => 'Propietario',
|
||||
|
||||
// Página de autoalojamiento
|
||||
'selfhost_title' => 'Autoalojar BloomFeed',
|
||||
'selfhost_intro' => 'BloomFeed está pensado para instalarse en tu propio servidor, para ti (o tu hogar). Todo funciona en Docker: la aplicación, el planificador y la base de datos MariaDB.',
|
||||
'prereq_title' => 'Requisitos previos',
|
||||
'prereq_docker' => 'Un servidor Linux con Docker y el plugin Docker Compose.',
|
||||
'prereq_port' => 'El puerto 7081 libre (configurable en docker-compose.yml).',
|
||||
'prereq_proxy' => 'Opcional: un nombre de dominio y un proxy inverso si quieres HTTPS.',
|
||||
'install_title' => 'Instalación',
|
||||
'install_step_clone' => 'Clona el repositorio en tu servidor.',
|
||||
'install_step_script' => 'Ejecuta el script de despliegue:',
|
||||
'install_env_note' => 'Crea automáticamente un archivo .env (a partir de .env.example) y genera secretos aleatorios (APP_KEY, contraseñas de base de datos) si faltan — nunca se regeneran en despliegues posteriores.',
|
||||
'install_step_containers' => 'El script construye las imágenes y arranca los contenedores (aplicación, planificador, MariaDB).',
|
||||
'install_step_owner' => 'Abre http://tu-servidor:7081 y crea la cuenta propietaria — los registros se cierran automáticamente después.',
|
||||
'config_title' => 'Configuración',
|
||||
'config_registrations' => 'Desde el menú Ajustes, la cuenta propietaria puede crear cuentas directamente para personas de confianza, o abrir/cerrar los registros públicos con un clic.',
|
||||
'config_language' => 'La interfaz está disponible en francés, inglés, español y alemán — cada usuario elige su idioma con el selector de la parte superior.',
|
||||
'config_catalog' => 'El catálogo de fuentes integrado se personaliza editando resources/data/bloomflux.json y volviendo a desplegar.',
|
||||
'update_title' => 'Actualizar',
|
||||
'update_text' => 'Simplemente vuelve a ejecutar el script de despliegue: recupera los últimos cambios y reconstruye la pila sin tocar tus datos.',
|
||||
'uninstall_title' => 'Desinstalar',
|
||||
'uninstall_text' => 'El script uninstall.sh detiene y elimina limpiamente la pila Docker. Pide confirmación explícita antes de borrar tus datos y nunca elimina el código fuente sin una confirmación separada.',
|
||||
'source_title' => 'Código fuente',
|
||||
|
||||
// Fuentes de catálogo y filtro de idioma
|
||||
'all_languages' => 'Todos los idiomas',
|
||||
'catalog_sources_section' => 'Fuentes del catálogo',
|
||||
'catalog_sources_desc' => 'Añade otros catálogos de fuentes indicando la URL directa (raw) de un archivo bloomflux.json alojado en otro repositorio git. Las fuentes se fusionan con el catálogo integrado, y se sirve la última copia conocida si la fuente no está disponible.',
|
||||
'source_url_label' => 'URL del archivo bloomflux.json',
|
||||
'add_source' => 'Añadir la fuente',
|
||||
'remove' => 'Quitar',
|
||||
'source_added' => 'Fuente añadida (:count fuentes).',
|
||||
'source_already_added' => 'Esta fuente ya está registrada.',
|
||||
'source_removed' => 'Fuente eliminada.',
|
||||
'source_invalid' => 'No se pudo leer esta fuente (se espera un archivo bloomflux.json válido).',
|
||||
'no_sources' => 'Ninguna fuente externa por ahora.',
|
||||
];
|
||||
+146
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
// Navigation
|
||||
'articles' => 'Articles',
|
||||
'catalog' => 'Catalogue',
|
||||
'my_feeds' => 'Mes flux',
|
||||
'settings' => 'Paramètres',
|
||||
'logout' => 'Déconnexion',
|
||||
'change_theme' => 'Changer de thème',
|
||||
'language' => 'Langue',
|
||||
'self_hosting' => 'Self-hosting',
|
||||
'login' => 'Se connecter',
|
||||
'create_account' => 'Créer un compte',
|
||||
'source_code' => 'Code source',
|
||||
'footer_tagline' => 'BloomFeed — projet open-source, auto-hébergé.',
|
||||
'meta_description' => 'BloomFeed est un agrégateur RSS personnel et auto-hébergé, avec lecture approfondie intégrée.',
|
||||
|
||||
// Accueil
|
||||
'hero_eyebrow' => 'Auto-hébergé · Vie privée',
|
||||
'hero_title' => 'Vos flux RSS, lus en profondeur, sans jamais quitter BloomFeed.',
|
||||
'hero_lede' => 'BloomFeed centralise vos flux préférés et en extrait le contenu complet à la demande, directement sur votre propre serveur. Aucune donnée envoyée à des tiers.',
|
||||
'how_to_self_host' => "Comment l'auto-héberger ?",
|
||||
'feature_feeds_title' => 'Flux personnalisés',
|
||||
'feature_feeds_text' => "Ajoutez n'importe quel flux RSS ou Atom, organisez-les et suivez vos non-lus en un coup d'œil.",
|
||||
'feature_reader_title' => 'Lecture approfondie intégrée',
|
||||
'feature_reader_text' => "BloomFeed récupère la page source, en extrait le contenu principal et l'affiche proprement — plus besoin d'ouvrir dix onglets.",
|
||||
'feature_home_title' => 'Chez vous, pour vous',
|
||||
'feature_home_text' => "Une instance BloomFeed = un propriétaire. Pas d'inscriptions publiques par défaut, pas de tracking, votre serveur, vos données.",
|
||||
|
||||
// Authentification
|
||||
'login_title' => 'Connexion',
|
||||
'login_subtitle' => 'Accédez à vos flux et à votre lecture approfondie',
|
||||
'email' => 'Adresse e-mail',
|
||||
'password' => 'Mot de passe',
|
||||
'confirm_password' => 'Confirmer le mot de passe',
|
||||
'name' => 'Nom',
|
||||
'no_account_yet' => 'Pas encore de compte ?',
|
||||
'already_account' => 'Déjà un compte ?',
|
||||
'register_owner_title' => 'Configurer votre instance',
|
||||
'register_owner_subtitle' => 'Ce compte sera le compte propriétaire de cette instance BloomFeed',
|
||||
'register_title' => 'Créer un compte',
|
||||
'register_subtitle' => 'Rejoignez cette instance BloomFeed',
|
||||
'register_button' => 'Créer mon compte',
|
||||
'registrations_closed' => 'Les inscriptions sont fermées sur cette instance. Connectez-vous.',
|
||||
'invalid_credentials' => 'Ces identifiants ne correspondent à aucun compte.',
|
||||
|
||||
// Tableau de bord
|
||||
'latest_articles' => 'Derniers articles',
|
||||
'unread_only' => 'Non lus uniquement',
|
||||
'show_all' => 'Tout afficher',
|
||||
'empty_no_feeds' => 'Ajoutez votre premier flux RSS depuis la barre latérale pour commencer.',
|
||||
'empty_no_articles' => "Aucun article pour le moment. Essayez d'actualiser vos flux.",
|
||||
|
||||
// Barre latérale
|
||||
'feeds_label' => 'Flux',
|
||||
'all_articles' => 'Tous les articles',
|
||||
'add_feed' => 'Ajouter un flux',
|
||||
'add' => 'Ajouter',
|
||||
'refresh_all' => 'Tout actualiser',
|
||||
'manage_feeds' => 'Gérer mes flux',
|
||||
'feed_url_placeholder' => 'https://exemple.com/rss.xml',
|
||||
|
||||
// Gestion des flux
|
||||
'custom_title_optional' => 'Titre personnalisé (optionnel)',
|
||||
'articles_count' => ':count article(s)',
|
||||
'refreshed_ago' => 'actualisé :time',
|
||||
'refresh' => 'Actualiser',
|
||||
'delete' => 'Supprimer',
|
||||
'confirm_delete_feed' => 'Supprimer ce flux et tous ses articles ?',
|
||||
'no_feeds_yet' => "Vous n'avez pas encore ajouté de flux.",
|
||||
'feed_added' => 'Flux ajouté avec :count article(s).',
|
||||
'feed_added_error' => 'Flux ajouté, mais la première récupération a échoué : :error',
|
||||
'feed_deleted' => 'Flux supprimé.',
|
||||
'refresh_failed' => 'Échec de la récupération : :error',
|
||||
'new_articles' => ':count nouvel(aux) article(s).',
|
||||
'new_articles_across' => ':count nouvel(aux) article(s) sur :feeds flux.',
|
||||
|
||||
// Lecteur
|
||||
'back_to_articles' => 'Retour aux articles',
|
||||
'view_original' => 'Voir la source originale',
|
||||
'fetch_error' => 'Impossible de récupérer le contenu complet de cet article (:error).',
|
||||
'retry' => 'Réessayer',
|
||||
'fetching' => 'Récupération du contenu en cours…',
|
||||
|
||||
// Catalogue
|
||||
'catalog_title' => 'Catalogue de flux',
|
||||
'catalog_lede' => 'Une sélection de flux RSS livrée avec BloomFeed — ajoutez-les à votre collection en un clic.',
|
||||
'search_placeholder' => 'Rechercher un flux… (nom, description, catégorie)',
|
||||
'all' => 'Tout',
|
||||
'added' => 'Ajouté',
|
||||
'catalog_empty' => 'Le catalogue est vide pour le moment.',
|
||||
'no_match' => 'Aucun flux ne correspond à votre recherche.',
|
||||
|
||||
// Paramètres
|
||||
'settings_title' => "Paramètres de l'instance",
|
||||
'registrations_section' => 'Inscriptions publiques',
|
||||
'registrations_desc' => "Autorise n'importe quel visiteur à créer un compte sur cette instance depuis la page de connexion.",
|
||||
'registrations_state_open' => 'Les inscriptions sont actuellement ouvertes.',
|
||||
'registrations_state_closed' => 'Les inscriptions sont actuellement fermées.',
|
||||
'open_registrations' => 'Ouvrir les inscriptions',
|
||||
'close_registrations' => 'Fermer les inscriptions',
|
||||
'registrations_now_open' => 'Les inscriptions sont maintenant ouvertes.',
|
||||
'registrations_now_closed' => 'Les inscriptions sont maintenant fermées.',
|
||||
'create_user_section' => 'Créer un compte',
|
||||
'create_user_desc' => 'Créez directement un compte pour un proche, sans ouvrir les inscriptions publiques.',
|
||||
'user_created' => 'Compte créé.',
|
||||
'users_section' => 'Comptes existants',
|
||||
'owner_badge' => 'Propriétaire',
|
||||
|
||||
// Page self-hosting
|
||||
'selfhost_title' => 'Auto-héberger BloomFeed',
|
||||
'selfhost_intro' => "BloomFeed est pensé pour être installé sur votre propre serveur, pour vous (ou votre foyer). Tout tourne dans Docker : l'application, le planificateur et la base de données MariaDB.",
|
||||
'prereq_title' => 'Prérequis',
|
||||
'prereq_docker' => 'Un serveur Linux avec Docker et le plugin Docker Compose.',
|
||||
'prereq_port' => 'Le port 7081 libre (modifiable dans docker-compose.yml).',
|
||||
'prereq_proxy' => 'Optionnel : un nom de domaine et un reverse proxy si vous voulez du HTTPS.',
|
||||
'install_title' => 'Installation',
|
||||
'install_step_clone' => 'Clonez le dépôt sur votre serveur.',
|
||||
'install_step_script' => 'Lancez le script de déploiement :',
|
||||
'install_env_note' => "Il crée automatiquement un fichier .env (à partir de .env.example) et y génère des secrets aléatoires (APP_KEY, mots de passe de base de données) s'ils sont absents — ils ne sont jamais régénérés lors des déploiements suivants.",
|
||||
'install_step_containers' => 'Le script construit les images et démarre les conteneurs (application, planificateur, MariaDB).',
|
||||
'install_step_owner' => 'Ouvrez http://votre-serveur:7081 et créez le compte propriétaire — les inscriptions se referment ensuite automatiquement.',
|
||||
'config_title' => 'Configuration',
|
||||
'config_registrations' => "Depuis le menu Paramètres, le compte propriétaire peut créer directement des comptes pour ses proches, ou ouvrir/fermer les inscriptions publiques d'un clic.",
|
||||
'config_language' => "L'interface est disponible en français, anglais, espagnol et allemand — chaque utilisateur choisit sa langue via le sélecteur en haut de page.",
|
||||
'config_catalog' => "Le catalogue de flux intégré se personnalise en éditant resources/data/bloomflux.json puis en redéployant.",
|
||||
'update_title' => 'Mettre à jour',
|
||||
'update_text' => 'Relancez simplement le script de déploiement : il récupère les derniers changements et reconstruit la stack sans toucher à vos données.',
|
||||
'uninstall_title' => 'Désinstaller',
|
||||
'uninstall_text' => "Le script uninstall.sh arrête et supprime proprement la stack Docker. Il demande une confirmation explicite avant de supprimer vos données et ne supprime jamais le code source sans confirmation séparée.",
|
||||
'source_title' => 'Code source',
|
||||
|
||||
// Sources de catalogue & filtre langue
|
||||
'all_languages' => 'Toutes les langues',
|
||||
'catalog_sources_section' => 'Sources du catalogue',
|
||||
'catalog_sources_desc' => "Ajoutez d'autres catalogues de flux en indiquant l'URL brute (raw) d'un fichier bloomflux.json hébergé dans un autre dépôt git. Les flux sont fusionnés avec le catalogue intégré, et la dernière copie connue est servie si la source est injoignable.",
|
||||
'source_url_label' => 'URL du fichier bloomflux.json',
|
||||
'add_source' => 'Ajouter la source',
|
||||
'remove' => 'Retirer',
|
||||
'source_added' => 'Source ajoutée (:count flux).',
|
||||
'source_already_added' => 'Cette source est déjà enregistrée.',
|
||||
'source_removed' => 'Source retirée.',
|
||||
'source_invalid' => 'Impossible de lire cette source (fichier bloomflux.json valide attendu).',
|
||||
'no_sources' => 'Aucune source externe pour le moment.',
|
||||
];
|
||||
Reference in New Issue
Block a user