147 lines
7.9 KiB
PHP
147 lines
7.9 KiB
PHP
<?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.',
|
|
];
|