PHPIndex

This page lists files in the current directory. You can view content, get download/execute commands for Wget, Curl, or PowerShell, or filter the list using wildcards (e.g., `*.sh`).

admin.php
wget 'https://lists2.roe3.org/FreshRSS/app/i18n/en-us/admin.php'
View Content
<?php

/******************************************************************************/
/* Each entry of that file can be associated with a comment to indicate its   */
/* state. When there is no comment, it means the entry is fully translated.   */
/* The recognized comments are (comment matching is case-insensitive):        */
/*   + TODO: the entry has never been translated.                             */
/*   + DIRTY: the entry has been translated but needs to be updated.          */
/*   + IGNORE: the entry does not need to be translated.                      */
/* When a comment is not recognized, it is discarded.                         */
/******************************************************************************/

return array(
	'auth' => array(
		'allow_anonymous' => 'Allow anonymous reading of the default user’s articles (%s)',	// IGNORE
		'allow_anonymous_refresh' => 'Allow anonymous refresh of the articles',	// IGNORE
		'api_enabled' => 'Allow <abbr>API</abbr> access <small>(required for mobile apps)</small>',	// IGNORE
		'form' => 'Web form (traditional, requires JavaScript)',	// IGNORE
		'http' => 'HTTP (for advanced users with HTTPS)',	// IGNORE
		'none' => 'None (dangerous)',	// IGNORE
		'title' => 'Authentication',	// IGNORE
		'token' => 'Master authentication token',	// IGNORE
		'token_help' => 'Allows access to all RSS outputs of the user as well as refreshing feeds without authentication:',	// IGNORE
		'type' => 'Authentication method',	// IGNORE
		'unsafe_autologin' => 'Allow unsafe automatic login using the format: ',	// IGNORE
	),
	'check_install' => array(
		'cache' => array(
			'nok' => 'Check permissions on <em>./data/cache</em> directory. HTTP server must have write permission.',	// IGNORE
			'ok' => 'Permissions on the cache directory are good.',	// IGNORE
		),
		'categories' => array(
			'nok' => 'Category table is improperly configured.',	// IGNORE
			'ok' => 'Category table is okay.',	// IGNORE
		),
		'connection' => array(
			'nok' => 'Connection to the database cannot be established.',	// IGNORE
			'ok' => 'Connection to the database is okay.',	// IGNORE
		),
		'ctype' => array(
			'nok' => 'Cannot find a required library for character type checking (php-ctype).',	// IGNORE
			'ok' => 'You have the required library for character type checking (ctype).',	// IGNORE
		),
		'curl' => array(
			'nok' => 'Cannot find the cURL library (php-curl package).',	// IGNORE
			'ok' => 'You have the cURL library.',	// IGNORE
		),
		'data' => array(
			'nok' => 'Check permissions on <em>./data</em> directory. HTTP server must have write permission.',	// IGNORE
			'ok' => 'Permissions on the data directory are good.',	// IGNORE
		),
		'database' => 'Database installation',	// IGNORE
		'dom' => array(
			'nok' => 'Cannot find a required library to browse the DOM (php-xml package).',	// IGNORE
			'ok' => 'You have the required library to browse the DOM.',	// IGNORE
		),
		'entries' => array(
			'nok' => 'Entry table is improperly configured.',	// IGNORE
			'ok' => 'Entry table is okay.',	// IGNORE
		),
		'favicons' => array(
			'nok' => 'Check permissions on <em>./data/favicons</em> directory. HTTP server must have write permission.',	// IGNORE
			'ok' => 'Permissions on the favicons directory are good.',	// IGNORE
		),
		'feeds' => array(
			'nok' => 'Feed table is improperly configured.',	// IGNORE
			'ok' => 'Feed table is okay.',	// IGNORE
		),
		'fileinfo' => array(
			'nok' => 'Cannot find the PHP fileinfo library (fileinfo package).',	// IGNORE
			'ok' => 'You have the fileinfo library.',	// IGNORE
		),
		'files' => 'File installation',	// IGNORE
		'json' => array(
			'nok' => 'Cannot find JSON (php-json package).',	// IGNORE
			'ok' => 'You have the JSON extension.',	// IGNORE
		),
		'mbstring' => array(
			'nok' => 'Cannot find the recommended mbstring library for Unicode.',	// IGNORE
			'ok' => 'You have the recommended mbstring library for Unicode.',	// IGNORE
		),
		'pcre' => array(
			'nok' => 'Cannot find a required library for regular expressions (php-pcre).',	// IGNORE
			'ok' => 'You have the required library for regular expressions (PCRE).',	// IGNORE
		),
		'pdo' => array(
			'nok' => 'Cannot find PDO or one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).',	// IGNORE
			'ok' => 'You have PDO and at least one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).',	// IGNORE
		),
		'php' => array(
			'_' => 'PHP installation',	// IGNORE
			'nok' => 'Your PHP version is %s but FreshRSS requires at least version %s.',	// IGNORE
			'ok' => 'Your PHP version (%s) is compatible with FreshRSS.',	// IGNORE
		),
		'tables' => array(
			'nok' => 'There are one or more missing tables in the database.',	// IGNORE
			'ok' => 'The appropriate tables exist in the database.',	// IGNORE
		),
		'title' => 'Installation check',	// IGNORE
		'tokens' => array(
			'nok' => 'Check permissions on <em>./data/tokens</em> directory. HTTP server must have write permission',	// IGNORE
			'ok' => 'Permissions on the tokens directory are good.',	// IGNORE
		),
		'users' => array(
			'nok' => 'Check permissions on <em>./data/users</em> directory. HTTP server must have write permission',	// IGNORE
			'ok' => 'Permissions on the users directory are good.',	// IGNORE
		),
		'zip' => array(
			'nok' => 'Cannot find the ZIP extension (php-zip package).',	// IGNORE
			'ok' => 'You have the ZIP extension.',	// IGNORE
		),
	),
	'extensions' => array(
		'author' => 'Author',	// IGNORE
		'community' => 'Available community extensions',	// IGNORE
		'description' => 'Description',	// IGNORE
		'disabled' => 'Disabled',	// IGNORE
		'empty_list' => 'There are no installed extensions',	// IGNORE
		'enabled' => 'Enabled',	// IGNORE
		'latest' => 'Installed',	// IGNORE
		'name' => 'Name',	// IGNORE
		'no_configure_view' => 'This extension cannot be configured.',	// IGNORE
		'system' => array(
			'_' => 'System extensions',	// IGNORE
			'no_rights' => 'System extension (you do not have the required permissions)',	// IGNORE
		),
		'title' => 'Extensions',	// IGNORE
		'update' => 'Update available',	// IGNORE
		'user' => 'User extensions',	// IGNORE
		'version' => 'Version',	// IGNORE
	),
	'stats' => array(
		'_' => 'Statistics',	// IGNORE
		'all_feeds' => 'All feeds',	// IGNORE
		'category' => 'Category',	// IGNORE
		'entry_count' => 'Entry count',	// IGNORE
		'entry_per_category' => 'Entries per category',	// IGNORE
		'entry_per_day' => 'Entries per day (last 30 days)',	// IGNORE
		'entry_per_day_of_week' => 'Per day of week (average: %.2f messages)',	// IGNORE
		'entry_per_hour' => 'Per hour (average: %.2f messages)',	// IGNORE
		'entry_per_month' => 'Per month (average: %.2f messages)',	// IGNORE
		'entry_repartition' => 'Entries repartition',	// IGNORE
		'feed' => 'Feed',	// IGNORE
		'feed_per_category' => 'Feeds per category',	// IGNORE
		'idle' => 'Idle feeds',	// IGNORE
		'main' => 'Main statistics',	// IGNORE
		'main_stream' => 'Main stream',	// IGNORE
		'no_idle' => 'There are no idle feeds!',	// IGNORE
		'number_entries' => '%d articles',	// IGNORE
		'percent_of_total' => '% of total',	// IGNORE
		'repartition' => 'Articles repartition',	// IGNORE
		'status_favorites' => 'Favorites',
		'status_read' => 'Read',	// IGNORE
		'status_total' => 'Total',	// IGNORE
		'status_unread' => 'Unread',	// IGNORE
		'title' => 'Statistics',	// IGNORE
		'top_feed' => 'Top ten feeds',	// IGNORE
	),
	'system' => array(
		'_' => 'System configuration',	// IGNORE
		'auto-update-url' => 'Auto-update server URL',	// IGNORE
		'base-url' => array(
			'_' => 'Base URL',	// IGNORE
			'recommendation' => 'Automatic recommendation: <kbd>%s</kbd>',	// IGNORE
		),
		'cookie-duration' => array(
			'help' => 'in seconds',	// IGNORE
			'number' => 'Duration to keep logged in',	// IGNORE
		),
		'force_email_validation' => 'Force email address validation',	// IGNORE
		'instance-name' => 'Instance name',	// IGNORE
		'max-categories' => 'Max number of categories per user',	// IGNORE
		'max-feeds' => 'Max number of feeds per user',	// IGNORE
		'registration' => array(
			'number' => 'Max number of accounts',	// IGNORE
			'select' => array(
				'label' => 'Registration form',	// IGNORE
				'option' => array(
					'noform' => 'Disabled: No registration form',	// IGNORE
					'nolimit' => 'Enabled: No limit of accounts',	// IGNORE
					'setaccountsnumber' => 'Set max. number of accounts',	// IGNORE
				),
			),
			'status' => array(
				'disabled' => 'Form disabled',	// IGNORE
				'enabled' => 'Form enabled',	// IGNORE
			),
			'title' => 'User registration form',	// IGNORE
		),
		'sensitive-parameter' => 'Sensitive parameter. Edit manually in <kbd>./data/config.php</kbd>',	// IGNORE
		'tos' => array(
			'disabled' => 'is not given',	// IGNORE
			'enabled' => '<a href="./?a=tos">is enabled</a>',	// IGNORE
			'help' => 'How to <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">enable the Terms of Service</a>',	// IGNORE
		),
		'websub' => array(
			'help' => 'About <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>',	// IGNORE
		),
	),
	'update' => array(
		'_' => 'Update system',	// IGNORE
		'apply' => 'Apply',	// IGNORE
		'changelog' => 'Changelog',	// IGNORE
		'check' => 'Check for new updates',	// IGNORE
		'copiedFromURL' => 'update.php copied from %s to ./data',	// IGNORE
		'current_version' => 'Current installed version',	// IGNORE
		'last' => 'Last verification',	// IGNORE
		'loading' => 'Updating…',	// IGNORE
		'none' => 'No update to apply',	// IGNORE
		'releaseChannel' => array(
			'_' => 'Release channel',	// IGNORE
			'edge' => 'Rolling release (“edge”)',	// IGNORE
			'latest' => 'Stable release (“latest”)',	// IGNORE
		),
		'title' => 'Update system',	// IGNORE
		'viaGit' => 'Update via git and GitHub.com started',	// IGNORE
	),
	'user' => array(
		'admin' => 'Administrator',	// IGNORE
		'article_count' => 'Articles',	// IGNORE
		'back_to_manage' => '← Return to user list',	// IGNORE
		'create' => 'Create new user',	// IGNORE
		'database_size' => 'Database size',	// IGNORE
		'email' => 'Email address',	// IGNORE
		'enabled' => 'Enabled',	// IGNORE
		'feed_count' => 'Feeds',	// IGNORE
		'is_admin' => 'Is admin',	// IGNORE
		'language' => 'Language',	// IGNORE
		'last_user_activity' => 'Last user activity',	// IGNORE
		'list' => 'User list',	// IGNORE
		'number' => 'There is %d account created',	// IGNORE
		'numbers' => 'There are %d accounts created',	// IGNORE
		'password_form' => 'Password<br /><small>(for the Web-form login method)</small>',	// IGNORE
		'password_format' => 'At least 7 characters',	// IGNORE
		'title' => 'Manage users',	// IGNORE
		'username' => 'Username',	// IGNORE
	),
);
conf.php
wget 'https://lists2.roe3.org/FreshRSS/app/i18n/en-us/conf.php'
View Content
<?php

/******************************************************************************/
/* Each entry of that file can be associated with a comment to indicate its   */
/* state. When there is no comment, it means the entry is fully translated.   */
/* The recognized comments are (comment matching is case-insensitive):        */
/*   + TODO: the entry has never been translated.                             */
/*   + DIRTY: the entry has been translated but needs to be updated.          */
/*   + IGNORE: the entry does not need to be translated.                      */
/* When a comment is not recognized, it is discarded.                         */
/******************************************************************************/

return array(
	'archiving' => array(
		'_' => 'Archiving',	// IGNORE
		'exception' => 'Purge exception',	// IGNORE
		'help' => 'More options are available in the individual feed’s settings',	// IGNORE
		'keep_favourites' => 'Never delete favorites',
		'keep_labels' => 'Never delete labels',	// IGNORE
		'keep_max' => 'Maximum number of articles to keep per feed',	// IGNORE
		'keep_min_by_feed' => 'Minimum number of articles to keep per feed',	// IGNORE
		'keep_period' => 'Maximum age of articles to keep',	// IGNORE
		'keep_unreads' => 'Never delete unread articles',	// IGNORE
		'maintenance' => 'Maintenance',	// IGNORE
		'optimize' => 'Optimize database',	// IGNORE
		'optimize_help' => 'Run occasionally to reduce the size of the database',	// IGNORE
		'policy' => 'Purge policy',	// IGNORE
		'policy_warning' => 'If no purge policy is selected, every article will be kept.',	// IGNORE
		'purge_now' => 'Purge now',	// IGNORE
		'title' => 'Archiving',	// IGNORE
		'ttl' => 'Do not automatically refresh more often than',	// IGNORE
	),
	'display' => array(
		'_' => 'Display',	// IGNORE
		'darkMode' => array(
			'_' => 'Automatic dark mode',	// IGNORE
			'auto' => 'Auto',	// IGNORE
			'help' => 'For compatible themes only',	// IGNORE
			'no' => 'No',	// IGNORE
		),
		'icon' => array(
			'bottom_line' => 'Bottom line',	// IGNORE
			'display_authors' => 'Authors',	// IGNORE
			'entry' => 'Article icons',	// IGNORE
			'publication_date' => 'Date of publication',	// IGNORE
			'related_tags' => 'Article tags',	// IGNORE
			'sharing' => 'Sharing',	// IGNORE
			'summary' => 'Summary',	// IGNORE
			'top_line' => 'Top line',	// IGNORE
		),
		'language' => 'Language',	// IGNORE
		'notif_html5' => array(
			'seconds' => 'seconds (0 means no timeout)',	// IGNORE
			'timeout' => 'HTML5 notification timeout',	// IGNORE
		),
		'show_nav_buttons' => 'Show the navigation buttons',	// IGNORE
		'theme' => array(
			'_' => 'Theme',	// IGNORE
			'deprecated' => array(
				'_' => 'Deprecated',	// IGNORE
				'description' => 'This theme is no longer supported and will be not available anymore in a <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">future release of FreshRSS</a>',	// IGNORE
			),
		),
		'theme_not_available' => 'The “%s” theme is not available anymore. Please choose another theme.',	// IGNORE
		'thumbnail' => array(
			'label' => 'Thumbnail',	// IGNORE
			'landscape' => 'Landscape',	// IGNORE
			'none' => 'None',	// IGNORE
			'portrait' => 'Portrait',	// IGNORE
			'square' => 'Square',	// IGNORE
		),
		'timezone' => 'Time zone',	// IGNORE
		'title' => 'Display',	// IGNORE
		'website' => array(
			'full' => 'Icon and name',	// IGNORE
			'icon' => 'Icon only',	// IGNORE
			'label' => 'Website',	// IGNORE
			'name' => 'Name only',	// IGNORE
			'none' => 'None',	// IGNORE
		),
		'width' => array(
			'content' => 'Content width',	// IGNORE
			'large' => 'Wide',	// IGNORE
			'medium' => 'Medium',	// IGNORE
			'no_limit' => 'Full Width',	// IGNORE
			'thin' => 'Narrow',	// IGNORE
		),
	),
	'logs' => array(
		'loglist' => array(
			'level' => 'Log Level',	// IGNORE
			'message' => 'Log Message',	// IGNORE
			'timestamp' => 'Timestamp',	// IGNORE
		),
		'pagination' => array(
			'first' => 'First',	// IGNORE
			'last' => 'Last',	// IGNORE
			'next' => 'Next',	// IGNORE
			'previous' => 'Previous',	// IGNORE
		),
	),
	'profile' => array(
		'_' => 'Profile management',	// IGNORE
		'api' => 'API management',	// IGNORE
		'delete' => array(
			'_' => 'Account deletion',	// IGNORE
			'warn' => 'Your account and all related data will be deleted.',	// IGNORE
		),
		'email' => 'Email address',	// IGNORE
		'password_api' => 'API password<br /><small>(e.g., for mobile apps)</small>',	// IGNORE
		'password_form' => 'Password<br /><small>(for the Web-form login method)</small>',	// IGNORE
		'password_format' => 'At least 7 characters',	// IGNORE
		'title' => 'Profile',	// IGNORE
	),
	'query' => array(
		'_' => 'User queries',	// IGNORE
		'deprecated' => 'This query is no longer valid. The referenced category or feed has been deleted.',	// IGNORE
		'description' => 'Description',	// IGNORE
		'filter' => array(
			'_' => 'Filter applied:',	// IGNORE
			'categories' => 'Display by category',	// IGNORE
			'feeds' => 'Display by feed',	// IGNORE
			'order' => 'Sort by date',	// IGNORE
			'search' => 'Expression',	// IGNORE
			'shareOpml' => 'Enable sharing by OPML of corresponding categories and feeds',	// IGNORE
			'shareRss' => 'Enable sharing by HTML &amp; RSS',	// IGNORE
			'state' => 'State',	// IGNORE
			'tags' => 'Display by label',	// IGNORE
			'type' => 'Type',	// IGNORE
		),
		'get_all' => 'Display all articles',	// IGNORE
		'get_all_labels' => 'Display articles with any label',	// IGNORE
		'get_category' => 'Display “%s” category',	// IGNORE
		'get_favorite' => 'Display favorite articles',
		'get_feed' => 'Display “%s” feed',	// IGNORE
		'get_important' => 'Display articles from important feeds',	// IGNORE
		'get_label' => 'Display articles with “%s” label',	// IGNORE
		'help' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentation for user queries and resharing by HTML / RSS / OPML</a>.',	// IGNORE
		'image_url' => 'Image URL',	// IGNORE
		'name' => 'Name',	// IGNORE
		'no_filter' => 'No filter',	// IGNORE
		'number' => 'Query n°%d',	// IGNORE
		'order_asc' => 'Display oldest articles first',	// IGNORE
		'order_desc' => 'Display newest articles first',	// IGNORE
		'search' => 'Search for “%s”',	// IGNORE
		'share' => array(
			'_' => 'Share this query by link',	// IGNORE
			'greader' => 'Shareable link to the GReader JSON',	// IGNORE
			'help' => 'Give this link if you want to share this query with anyone',	// IGNORE
			'html' => 'Shareable link to the HTML page',	// IGNORE
			'opml' => 'Shareable link to the OPML list of feeds',	// IGNORE
			'rss' => 'Shareable link to the RSS feed',	// IGNORE
		),
		'state_0' => 'Display all articles',	// IGNORE
		'state_1' => 'Display read articles',	// IGNORE
		'state_2' => 'Display unread articles',	// IGNORE
		'state_3' => 'Display all articles',	// IGNORE
		'state_4' => 'Display favorite articles',
		'state_5' => 'Display read favorite articles',
		'state_6' => 'Display unread favorite articles',
		'state_7' => 'Display favorite articles',
		'state_8' => 'Display not favorite articles',
		'state_9' => 'Display read not favorite articles',
		'state_10' => 'Display unread not favorite articles',
		'state_11' => 'Display not favorite articles',
		'state_12' => 'Display all articles',	// IGNORE
		'state_13' => 'Display read articles',	// IGNORE
		'state_14' => 'Display unread articles',	// IGNORE
		'state_15' => 'Display all articles',	// IGNORE
		'title' => 'User queries',	// IGNORE
	),
	'reading' => array(
		'_' => 'Reading',	// IGNORE
		'after_onread' => 'After “mark all as read”,',	// IGNORE
		'always_show_favorites' => 'Show all articles in favorites by default',
		'article' => array(
			'authors_date' => array(
				'_' => 'Authors and date',	// IGNORE
				'both' => 'In header and footer',	// IGNORE
				'footer' => 'In footer',	// IGNORE
				'header' => 'In header',	// IGNORE
				'none' => 'None',	// IGNORE
			),
			'feed_name' => array(
				'above_title' => 'Above title/tags',	// IGNORE
				'none' => 'None',	// IGNORE
				'with_authors' => 'In authors and date row',	// IGNORE
			),
			'feed_title' => 'Feed title',	// IGNORE
			'icons' => array(
				'_' => 'Article icons position<br /><small>(Reading view only)</small>',	// IGNORE
				'above_title' => 'Above title',	// IGNORE
				'with_authors' => 'In authors and date row',	// IGNORE
			),
			'tags' => array(
				'_' => 'Tags',	// IGNORE
				'both' => 'In header and footer',	// IGNORE
				'footer' => 'In footer',	// IGNORE
				'header' => 'In header',	// IGNORE
				'none' => 'None',	// IGNORE
			),
			'tags_max' => array(
				'_' => 'Max number of tags shown',	// IGNORE
				'help' => '0 means: show all tags and do not collapse them',	// IGNORE
			),
		),
		'articles_per_page' => 'Number of articles per page',	// IGNORE
		'auto_load_more' => 'Load more articles at the bottom of the page',	// IGNORE
		'auto_remove_article' => 'Hide articles after reading',	// IGNORE
		'confirm_enabled' => 'Display a confirmation dialog on “mark all as read” actions',	// IGNORE
		'display_articles_unfolded' => 'Show articles unfolded by default',	// IGNORE
		'display_categories_unfolded' => 'Categories to unfold',	// IGNORE
		'headline' => array(
			'articles' => 'Articles: Open/Close',	// IGNORE
			'articles_header_footer' => 'Articles: header/footer',	// IGNORE
			'categories' => 'Left navigation: Categories',	// IGNORE
			'mark_as_read' => 'Mark article as read',	// IGNORE
			'misc' => 'Miscellaneous',	// IGNORE
			'view' => 'View',	// IGNORE
		),
		'hide_read_feeds' => 'Hide categories & feeds with no unread articles (does not work with “Show all articles” configuration)',	// IGNORE
		'img_with_lazyload' => 'Use <em>lazy load</em> mode to load pictures',	// IGNORE
		'jump_next' => 'jump to next unread sibling (feed or category)',	// IGNORE
		'mark_updated_article_unread' => 'Mark updated articles as unread',	// IGNORE
		'number_divided_when_reader' => 'Divide by 2 in the reading view.',	// IGNORE
		'read' => array(
			'article_open_on_website' => 'when the article is opened on its original website',	// IGNORE
			'article_viewed' => 'when the article is viewed',	// IGNORE
			'focus' => 'when focused (except for important feeds)',	// IGNORE
			'keep_max_n_unread' => 'Max number of articles to keep unread',	// IGNORE
			'scroll' => 'while scrolling (except for important feeds)',	// IGNORE
			'upon_gone' => 'when it is no longer in the upstream news feed',	// IGNORE
			'upon_reception' => 'upon receiving the article',	// IGNORE
			'when' => 'Mark an article as read…',	// IGNORE
			'when_same_title' => 'if an identical title already exists in the top <i>n</i> newest articles',	// IGNORE
		),
		'show' => array(
			'_' => 'Articles to display',	// IGNORE
			'active_category' => 'Active category',	// IGNORE
			'adaptive' => 'Adjust showing',	// IGNORE
			'all_articles' => 'Show all articles',	// IGNORE
			'all_categories' => 'All categories',	// IGNORE
			'no_category' => 'No category',	// IGNORE
			'remember_categories' => 'Remember open categories',	// IGNORE
			'unread' => 'Show only unread',	// IGNORE
		),
		'show_fav_unread_help' => 'Applies also on labels',	// IGNORE
		'sides_close_article' => 'Clicking outside of article text area closes the article',	// IGNORE
		'sort' => array(
			'_' => 'Sort order',	// IGNORE
			'newer_first' => 'Newest first',	// IGNORE
			'older_first' => 'Oldest first',	// IGNORE
		),
		'star' => array(
			'when' => 'Mark an article as favorite…',
		),
		'sticky_post' => 'Stick the article to the top when opened',	// IGNORE
		'title' => 'Reading',	// IGNORE
		'view' => array(
			'default' => 'Default view',	// IGNORE
			'global' => 'Global view',	// IGNORE
			'normal' => 'Normal view',	// IGNORE
			'reader' => 'Reading view',	// IGNORE
		),
	),
	'sharing' => array(
		'_' => 'Sharing',	// IGNORE
		'add' => 'Add a sharing method',	// IGNORE
		'deprecated' => 'This service is deprecated and will be removed from FreshRSS in a <a href="https://freshrss.github.io/FreshRSS/en/users/08_sharing_services.html" title="Open documentation for more information" target="_blank">future release</a>.',	// IGNORE
		'diaspora' => 'Diaspora*',	// IGNORE
		'email' => 'Email',	// IGNORE
		'facebook' => 'Facebook',	// IGNORE
		'more_information' => 'More information',	// IGNORE
		'print' => 'Print',	// IGNORE
		'raindrop' => 'Raindrop.io',	// IGNORE
		'remove' => 'Remove sharing method',	// IGNORE
		'shaarli' => 'Shaarli',	// IGNORE
		'share_name' => 'Share name to display',	// IGNORE
		'share_url' => 'Share URL to use',	// IGNORE
		'title' => 'Sharing',	// IGNORE
		'twitter' => 'Twitter',	// IGNORE
		'wallabag' => 'wallabag',	// IGNORE
	),
	'shortcut' => array(
		'_' => 'Shortcuts',	// IGNORE
		'article_action' => 'Article actions',	// IGNORE
		'auto_share' => 'Share',	// IGNORE
		'auto_share_help' => 'If there is only one sharing mode, it is used. Otherwise, modes are accessible by their number.',	// IGNORE
		'close_dropdown' => 'Close menus',	// IGNORE
		'collapse_article' => 'Collapse',	// IGNORE
		'first_article' => 'Open the first article',	// IGNORE
		'focus_search' => 'Access search box',	// IGNORE
		'global_view' => 'Switch to global view',	// IGNORE
		'help' => 'Display documentation',	// IGNORE
		'javascript' => 'JavaScript must be enabled in order to use shortcuts',	// IGNORE
		'last_article' => 'Open the last article',	// IGNORE
		'load_more' => 'Load more articles',	// IGNORE
		'mark_favorite' => 'Toggle favorite',
		'mark_read' => 'Toggle read',	// IGNORE
		'navigation' => 'Navigation',	// IGNORE
		'navigation_help' => 'With the <kbd>⇧ Shift</kbd> modifier, navigation shortcuts apply on feeds.<br/>With the <kbd>Alt ⎇</kbd> modifier, navigation shortcuts apply on categories.',	// IGNORE
		'navigation_no_mod_help' => 'The following navigation shortcuts do not support modifiers.',	// IGNORE
		'next_article' => 'Open the next article',	// IGNORE
		'next_unread_article' => 'Open the next unread article',	// IGNORE
		'non_standard' => 'Some keys (<kbd>%s</kbd>) may not work as shortcuts.',	// IGNORE
		'normal_view' => 'Switch to normal view',	// IGNORE
		'other_action' => 'Other actions',	// IGNORE
		'previous_article' => 'Open the previous article',	// IGNORE
		'reading_view' => 'Switch to reading view',	// IGNORE
		'rss_view' => 'Open as RSS feed',	// IGNORE
		'see_on_website' => 'See on original website',	// IGNORE
		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> to mark all articles as read',	// IGNORE
		'skip_next_article' => 'Focus next without opening',	// IGNORE
		'skip_previous_article' => 'Focus previous without opening',	// IGNORE
		'title' => 'Shortcuts',	// IGNORE
		'toggle_media' => 'Play/pause media',	// IGNORE
		'user_filter' => 'Access user queries',	// IGNORE
		'user_filter_help' => 'If there is only one user query, it is used. Otherwise, queries are accessible by their number.',	// IGNORE
		'views' => 'Views',	// IGNORE
	),
	'user' => array(
		'articles_and_size' => '%s articles (%s)',	// IGNORE
		'current' => 'Current user',	// IGNORE
		'is_admin' => 'is administrator',	// IGNORE
		'users' => 'Users',	// IGNORE
	),
);
feedback.php
wget 'https://lists2.roe3.org/FreshRSS/app/i18n/en-us/feedback.php'
View Content
<?php

/******************************************************************************/
/* Each entry of that file can be associated with a comment to indicate its   */
/* state. When there is no comment, it means the entry is fully translated.   */
/* The recognized comments are (comment matching is case-insensitive):        */
/*   + TODO: the entry has never been translated.                             */
/*   + DIRTY: the entry has been translated but needs to be updated.          */
/*   + IGNORE: the entry does not need to be translated.                      */
/* When a comment is not recognized, it is discarded.                         */
/******************************************************************************/

return array(
	'access' => array(
		'denied' => 'You don’t have permission to access this page',	// IGNORE
		'not_found' => 'You are looking for a page that doesn’t exist',	// IGNORE
	),
	'admin' => array(
		'optimization_complete' => 'Optimization complete',	// IGNORE
	),
	'api' => array(
		'password' => array(
			'failed' => 'Your password cannot be modified',	// IGNORE
			'updated' => 'Your password has been modified',	// IGNORE
		),
	),
	'auth' => array(
		'login' => array(
			'invalid' => 'Login is invalid',	// IGNORE
			'success' => 'You are connected',	// IGNORE
		),
		'logout' => array(
			'success' => 'You are disconnected',	// IGNORE
		),
	),
	'conf' => array(
		'error' => 'An error occurred while saving configuration',	// IGNORE
		'query_created' => 'Query “%s” has been created.',	// IGNORE
		'shortcuts_updated' => 'Shortcuts have been updated',	// IGNORE
		'updated' => 'Configuration has been updated',	// IGNORE
	),
	'extensions' => array(
		'already_enabled' => '%s is already enabled',	// IGNORE
		'cannot_remove' => '%s cannot be removed',	// IGNORE
		'disable' => array(
			'ko' => '%s cannot be disabled. <a href="%s">Check FreshRSS logs</a> for details.',	// IGNORE
			'ok' => '%s is now disabled',	// IGNORE
		),
		'enable' => array(
			'ko' => '%s cannot be enabled. <a href="%s">Check FreshRSS logs</a> for details.',	// IGNORE
			'ok' => '%s is now enabled',	// IGNORE
		),
		'no_access' => 'You have no access on %s',	// IGNORE
		'not_enabled' => '%s is not enabled',	// IGNORE
		'not_found' => '%s does not exist',	// IGNORE
		'removed' => '%s removed',	// IGNORE
	),
	'import_export' => array(
		'export_no_zip_extension' => 'The ZIP extension is not present on your server. Please try to export files one by one.',	// IGNORE
		'feeds_imported' => 'Your feeds have been imported. If you are done importing, you can now click the <i>Update feeds</i> button.',	// IGNORE
		'feeds_imported_with_errors' => 'Your feeds have been imported, but some errors occurred. If you are done importing, you can now click the <i>Update feeds</i> button.',	// IGNORE
		'file_cannot_be_uploaded' => 'File cannot be uploaded!',	// IGNORE
		'no_zip_extension' => 'The ZIP extension is not present on your server.',	// IGNORE
		'zip_error' => 'An error occurred during ZIP processing.',	// IGNORE
	),
	'profile' => array(
		'error' => 'Your profile cannot be modified',	// IGNORE
		'updated' => 'Your profile has been modified',	// IGNORE
	),
	'sub' => array(
		'actualize' => 'Updating',	// IGNORE
		'articles' => array(
			'marked_read' => 'The selected articles have been marked as read.',	// IGNORE
			'marked_unread' => 'The articles have been marked as unread.',	// IGNORE
		),
		'category' => array(
			'created' => 'Category %s has been created.',	// IGNORE
			'deleted' => 'Category has been deleted.',	// IGNORE
			'emptied' => 'Category has been emptied',	// IGNORE
			'error' => 'Category cannot be updated',	// IGNORE
			'name_exists' => 'Category name already exists.',	// IGNORE
			'no_id' => 'You must specify the id of the category.',	// IGNORE
			'no_name' => 'Category name cannot be empty.',	// IGNORE
			'not_delete_default' => 'You cannot delete the default category!',	// IGNORE
			'not_exist' => 'The category does not exist!',	// IGNORE
			'over_max' => 'You have reached your limit of categories (%d)',	// IGNORE
			'updated' => 'Category has been updated.',	// IGNORE
		),
		'feed' => array(
			'actualized' => '<em>%s</em> has been updated',	// IGNORE
			'actualizeds' => 'RSS feeds have been updated',	// IGNORE
			'added' => 'RSS feed <em>%s</em> has been added',	// IGNORE
			'already_subscribed' => 'You have already subscribed to <em>%s</em>',	// IGNORE
			'cache_cleared' => '<em>%s</em> cache has been cleared',	// IGNORE
			'deleted' => 'Feed has been deleted',	// IGNORE
			'error' => 'Feed cannot be updated',	// IGNORE
			'internal_problem' => 'The newsfeed could not be added. <a href="%s">Check FreshRSS logs</a> for details. You can try force adding by appending <code>#force_feed</code> to the URL.',	// IGNORE
			'invalid_url' => 'URL <em>%s</em> is invalid',	// IGNORE
			'n_actualized' => '%d feeds have been updated',	// IGNORE
			'n_entries_deleted' => '%d articles have been deleted',	// IGNORE
			'no_refresh' => 'There are no feeds to refresh',	// IGNORE
			'not_added' => '<em>%s</em> could not be added',	// IGNORE
			'not_found' => 'Feed cannot be found',	// IGNORE
			'over_max' => 'You have reached your limit of feeds (%d)',	// IGNORE
			'reloaded' => '<em>%s</em> has been reloaded',	// IGNORE
			'selector_preview' => array(
				'http_error' => 'Failed to load website content.',	// IGNORE
				'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.',	// IGNORE
				'no_feed' => 'Internal error (feed cannot be found).',	// IGNORE
				'no_result' => 'The selector didn’t match anything. As a fallback the original feed text will be displayed instead.',	// IGNORE
				'selector_empty' => 'The selector is empty. You need to define one to create a preview.',	// IGNORE
			),
			'updated' => 'Feed has been updated',	// IGNORE
		),
		'purge_completed' => 'Purge completed (%d articles deleted)',	// IGNORE
	),
	'tag' => array(
		'created' => 'Label “%s” has been created.',	// IGNORE
		'error' => 'Label could not be updated!',	// IGNORE
		'name_exists' => 'Label name already exists.',	// IGNORE
		'renamed' => 'Label “%s” has been renamed to “%s”.',	// IGNORE
		'updated' => 'Label has been updated.',	// IGNORE
	),
	'update' => array(
		'can_apply' => 'FreshRSS will now be updated to the <strong>version %s</strong>.',	// IGNORE
		'error' => 'The update process has encountered an error: %s',	// IGNORE
		'file_is_nok' => 'New <strong>version %s</strong> available, but check permissions on <em>%s</em> directory. HTTP server must have have write permission',	// IGNORE
		'finished' => 'Update complete!',	// IGNORE
		'none' => 'No update to apply',	// IGNORE
		'server_not_found' => 'Update server cannot be found. [%s]',	// IGNORE
	),
	'user' => array(
		'created' => array(
			'_' => 'User %s has been created',	// IGNORE
			'error' => 'User %s cannot be created',	// IGNORE
		),
		'deleted' => array(
			'_' => 'User %s has been deleted',	// IGNORE
			'error' => 'User %s cannot be deleted',	// IGNORE
		),
		'updated' => array(
			'_' => 'User %s has been updated',	// IGNORE
			'error' => 'User %s has not been updated',	// IGNORE
		),
	),
);
gen.php
wget 'https://lists2.roe3.org/FreshRSS/app/i18n/en-us/gen.php'
View Content
<?php

/******************************************************************************/
/* Each entry of that file can be associated with a comment to indicate its   */
/* state. When there is no comment, it means the entry is fully translated.   */
/* The recognized comments are (comment matching is case-insensitive):        */
/*   + TODO: the entry has never been translated.                             */
/*   + DIRTY: the entry has been translated but needs to be updated.          */
/*   + IGNORE: the entry does not need to be translated.                      */
/* When a comment is not recognized, it is discarded.                         */
/******************************************************************************/

return array(
	'action' => array(
		'actualize' => 'Update feeds',	// IGNORE
		'add' => 'Add',	// IGNORE
		'back' => '← Go back',	// IGNORE
		'back_to_rss_feeds' => '← Go back to your RSS feeds',	// IGNORE
		'cancel' => 'Cancel',	// IGNORE
		'create' => 'Create',	// IGNORE
		'delete_muted_feeds' => 'Delete muted feeds',	// IGNORE
		'demote' => 'Demote',	// IGNORE
		'disable' => 'Disable',	// IGNORE
		'empty' => 'Empty',	// IGNORE
		'enable' => 'Enable',	// IGNORE
		'export' => 'Export',	// IGNORE
		'filter' => 'Filter',	// IGNORE
		'import' => 'Import',	// IGNORE
		'load_default_shortcuts' => 'Load default shortcuts',	// IGNORE
		'manage' => 'Manage',	// IGNORE
		'mark_read' => 'Mark as read',	// IGNORE
		'menu' => array(
			'open' => 'Open menu',	// IGNORE
		),
		'nav_buttons' => array(
			'next' => 'Next article',	// IGNORE
			'prev' => 'Previous article',	// IGNORE
			'up' => 'Go up',	// IGNORE
		),
		'open_url' => 'Open URL',	// IGNORE
		'promote' => 'Promote',	// IGNORE
		'purge' => 'Purge',	// IGNORE
		'refresh_opml' => 'Refresh OPML',	// IGNORE
		'remove' => 'Remove',	// IGNORE
		'rename' => 'Rename',	// IGNORE
		'see_website' => 'See website',	// IGNORE
		'submit' => 'Submit',	// IGNORE
		'truncate' => 'Delete all articles',	// IGNORE
		'update' => 'Update',	// IGNORE
	),
	'auth' => array(
		'accept_tos' => 'I accept the <a href="%s">Terms of Service</a>.',	// IGNORE
		'email' => 'Email address',	// IGNORE
		'keep_logged_in' => 'Keep me logged in <small>(%s days)</small>',	// IGNORE
		'login' => 'Login',	// IGNORE
		'logout' => 'Logout',	// IGNORE
		'password' => array(
			'_' => 'Password',	// IGNORE
			'format' => '<small>At least 7 characters</small>',	// IGNORE
		),
		'registration' => array(
			'_' => 'New account',	// IGNORE
			'ask' => 'Create an account?',	// IGNORE
			'title' => 'Account creation',	// IGNORE
		),
		'username' => array(
			'_' => 'Username',	// IGNORE
			'format' => '<small>Maximum 16 alphanumeric characters</small>',	// IGNORE
		),
	),
	'date' => array(
		'Apr' => '\\A\\p\\r\\i\\l',	// IGNORE
		'Aug' => '\\A\\u\\g\\u\\s\\t',	// IGNORE
		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',	// IGNORE
		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y',	// IGNORE
		'Jan' => '\\J\\a\\n\\u\\a\\r\\y',	// IGNORE
		'Jul' => '\\J\\u\\l\\y',	// IGNORE
		'Jun' => '\\J\\u\\n\\e',	// IGNORE
		'Mar' => '\\M\\a\\r\\c\\h',	// IGNORE
		'May' => '\\M\\a\\y',	// IGNORE
		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',	// IGNORE
		'Oct' => '\\O\\c\\t\\o\\b\\e\\r',	// IGNORE
		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',	// IGNORE
		'apr' => 'Apr.',	// IGNORE
		'april' => 'April',	// IGNORE
		'aug' => 'Aug.',	// IGNORE
		'august' => 'August',	// IGNORE
		'before_yesterday' => 'Before yesterday',	// IGNORE
		'dec' => 'Dec.',	// IGNORE
		'december' => 'December',	// IGNORE
		'feb' => 'Feb.',	// IGNORE
		'february' => 'February',	// IGNORE
		'format_date' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y',
		'format_date_hour' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y \\a\\t g\\:i a',
		'fri' => 'Fri',	// IGNORE
		'jan' => 'Jan.',	// IGNORE
		'january' => 'January',	// IGNORE
		'jul' => 'July',	// IGNORE
		'july' => 'July',	// IGNORE
		'jun' => 'June',	// IGNORE
		'june' => 'June',	// IGNORE
		'last_2_year' => 'Last two years',	// IGNORE
		'last_3_month' => 'Last three months',	// IGNORE
		'last_3_year' => 'Last three years',	// IGNORE
		'last_5_year' => 'Last five years',	// IGNORE
		'last_6_month' => 'Last six months',	// IGNORE
		'last_month' => 'Last month',	// IGNORE
		'last_week' => 'Last week',	// IGNORE
		'last_year' => 'Last year',	// IGNORE
		'mar' => 'Mar.',	// IGNORE
		'march' => 'March',	// IGNORE
		'may' => 'May',	// IGNORE
		'may_' => 'May',	// IGNORE
		'mon' => 'Mon',	// IGNORE
		'month' => 'months',	// IGNORE
		'nov' => 'Nov.',	// IGNORE
		'november' => 'November',	// IGNORE
		'oct' => 'Oct.',	// IGNORE
		'october' => 'October',	// IGNORE
		'sat' => 'Sat',	// IGNORE
		'sep' => 'Sept.',	// IGNORE
		'september' => 'September',	// IGNORE
		'sun' => 'Sun',	// IGNORE
		'thu' => 'Thu',	// IGNORE
		'today' => 'Today',	// IGNORE
		'tue' => 'Tue',	// IGNORE
		'wed' => 'Wed',	// IGNORE
		'yesterday' => 'Yesterday',	// IGNORE
	),
	'dir' => 'ltr',	// IGNORE
	'freshrss' => array(
		'_' => 'FreshRSS',	// IGNORE
		'about' => 'About FreshRSS',	// IGNORE
	),
	'js' => array(
		'category_empty' => 'Empty category',	// IGNORE
		'confirm_action' => 'Are you sure you want to perform this action? It cannot be canceled!',
		'confirm_action_feed_cat' => 'Are you sure you want to perform this action? You will lose related favorites and user queries. It cannot be canceled!',
		'feedback' => array(
			'body_new_articles' => 'There are %%d new articles to read on FreshRSS.',	// IGNORE
			'body_unread_articles' => '(unread: %%d)',	// IGNORE
			'request_failed' => 'A request has failed, it may have been caused by internet connection problems.',	// IGNORE
			'title_new_articles' => 'FreshRSS: new articles!',	// IGNORE
		),
		'labels_empty' => 'No labels',	// IGNORE
		'new_article' => 'There are new articles available, click to refresh the page.',	// IGNORE
		'should_be_activated' => 'JavaScript must be enabled',	// IGNORE
	),
	'lang' => array(
		'cs' => 'Čeština',	// IGNORE
		'de' => 'Deutsch',	// IGNORE
		'el' => 'Ελληνικά',	// IGNORE
		'en' => 'English',	// IGNORE
		'en-us' => 'English (United States)',	// IGNORE
		'es' => 'Español',	// IGNORE
		'fa' => 'فارسی',	// IGNORE
		'fr' => 'Français',	// IGNORE
		'he' => 'עברית',	// IGNORE
		'hu' => 'Magyar',	// IGNORE
		'id' => 'Bahasa Indonesia',	// IGNORE
		'it' => 'Italiano',	// IGNORE
		'ja' => '日本語',	// IGNORE
		'ko' => '한국어',	// IGNORE
		'lv' => 'Latviešu',	// IGNORE
		'nl' => 'Nederlands',	// IGNORE
		'oc' => 'Occitan',	// IGNORE
		'pl' => 'Polski',	// IGNORE
		'pt-br' => 'Português (Brasil)',	// IGNORE
		'ru' => 'Русский',	// IGNORE
		'sk' => 'Slovenčina',	// IGNORE
		'tr' => 'Türkçe',	// IGNORE
		'zh-cn' => '简体中文',	// IGNORE
		'zh-tw' => '正體中文',	// IGNORE
	),
	'menu' => array(
		'about' => 'About',	// IGNORE
		'account' => 'Account',	// IGNORE
		'admin' => 'Administration',	// IGNORE
		'archiving' => 'Archiving',	// IGNORE
		'authentication' => 'Authentication',	// IGNORE
		'check_install' => 'Installation check',	// IGNORE
		'configuration' => 'Configuration',	// IGNORE
		'display' => 'Display',	// IGNORE
		'extensions' => 'Extensions',	// IGNORE
		'logs' => 'Logs',	// IGNORE
		'queries' => 'User queries',	// IGNORE
		'reading' => 'Reading',	// IGNORE
		'search' => 'Search words or #tags',	// IGNORE
		'search_help' => 'See documentation for advanced <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">search parameters</a>',	// IGNORE
		'sharing' => 'Sharing',	// IGNORE
		'shortcuts' => 'Shortcuts',	// IGNORE
		'stats' => 'Statistics',	// IGNORE
		'system' => 'System configuration',	// IGNORE
		'update' => 'Update',	// IGNORE
		'user_management' => 'Manage users',	// IGNORE
		'user_profile' => 'Profile',	// IGNORE
	),
	'period' => array(
		'days' => 'days',	// IGNORE
		'hours' => 'hours',	// IGNORE
		'months' => 'months',	// IGNORE
		'weeks' => 'weeks',	// IGNORE
		'years' => 'years',	// IGNORE
	),
	'share' => array(
		'Known' => 'Known based sites',	// IGNORE
		'archiveIS' => 'archive.is',	// IGNORE
		'archiveORG' => 'archive.org',	// IGNORE
		'archivePH' => 'archive.ph',	// IGNORE
		'buffer' => 'Buffer',	// IGNORE
		'clipboard' => 'Clipboard',	// IGNORE
		'diaspora' => 'Diaspora*',	// IGNORE
		'email' => 'Email',	// IGNORE
		'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)',	// IGNORE
		'facebook' => 'Facebook',	// IGNORE
		'gnusocial' => 'GNU social',	// IGNORE
		'jdh' => 'Journal du hacker',	// IGNORE
		'lemmy' => 'Lemmy',	// IGNORE
		'linkding' => 'Linkding',	// IGNORE
		'linkedin' => 'LinkedIn',	// IGNORE
		'mastodon' => 'Mastodon',	// IGNORE
		'movim' => 'Movim',	// IGNORE
		'omnivore' => 'Omnivore',	// IGNORE
		'pinboard' => 'Pinboard',	// IGNORE
		'pinterest' => 'Pinterest',	// IGNORE
		'pocket' => 'Pocket',	// IGNORE
		'print' => 'Print',	// IGNORE
		'raindrop' => 'Raindrop.io',	// IGNORE
		'reddit' => 'Reddit',	// IGNORE
		'shaarli' => 'Shaarli',	// IGNORE
		'twitter' => 'Twitter',	// IGNORE
		'wallabag' => 'wallabag v1',	// IGNORE
		'wallabagv2' => 'wallabag v2',	// IGNORE
		'web-sharing-api' => 'System sharing',	// IGNORE
		'whatsapp' => 'Whatsapp',	// IGNORE
		'xing' => 'Xing',	// IGNORE
	),
	'short' => array(
		'attention' => 'Warning!',	// IGNORE
		'blank_to_disable' => 'Leave blank to disable',	// IGNORE
		'by_author' => 'By:',	// IGNORE
		'by_default' => 'By default',	// IGNORE
		'damn' => 'Blast!',	// IGNORE
		'default_category' => 'Uncategorized',	// IGNORE
		'no' => 'No',	// IGNORE
		'not_applicable' => 'Not available',	// IGNORE
		'ok' => 'Okay!',	// IGNORE
		'or' => 'or',	// IGNORE
		'yes' => 'Yes',	// IGNORE
	),
	'stream' => array(
		'load_more' => 'Load more articles',	// IGNORE
		'mark_all_read' => 'Mark all as read',	// IGNORE
		'nothing_to_load' => 'There are no more articles',	// IGNORE
	),
);
install.php
wget 'https://lists2.roe3.org/FreshRSS/app/i18n/en-us/install.php'
View Content
<?php

/******************************************************************************/
/* Each entry of that file can be associated with a comment to indicate its   */
/* state. When there is no comment, it means the entry is fully translated.   */
/* The recognized comments are (comment matching is case-insensitive):        */
/*   + TODO: the entry has never been translated.                             */
/*   + DIRTY: the entry has been translated but needs to be updated.          */
/*   + IGNORE: the entry does not need to be translated.                      */
/* When a comment is not recognized, it is discarded.                         */
/******************************************************************************/

return array(
	'action' => array(
		'finish' => 'Complete installation',	// IGNORE
		'fix_errors_before' => 'Please all fix errors before continuing to the next step.',	// IGNORE
		'keep_install' => 'Keep previous configuration',	// IGNORE
		'next_step' => 'Go to the next step',	// IGNORE
		'reinstall' => 'Reinstall FreshRSS',	// IGNORE
	),
	'auth' => array(
		'form' => 'Web form (traditional, requires JavaScript)',	// IGNORE
		'http' => 'HTTP (for advanced users with HTTPS)',	// IGNORE
		'none' => 'None (dangerous)',	// IGNORE
		'password_form' => 'Password<br /><small>(for the Web-form login method)</small>',	// IGNORE
		'password_format' => 'At least 7 characters',	// IGNORE
		'type' => 'Authentication method',	// IGNORE
	),
	'bdd' => array(
		'_' => 'Database',	// IGNORE
		'conf' => array(
			'_' => 'Database configuration',	// IGNORE
			'ko' => 'Verify your database configuration.',	// IGNORE
			'ok' => 'Database configuration has been saved.',	// IGNORE
		),
		'host' => 'Host',	// IGNORE
		'password' => 'Database password',	// IGNORE
		'prefix' => 'Table prefix',	// IGNORE
		'type' => 'Type of database',	// IGNORE
		'username' => 'Database username',	// IGNORE
	),
	'check' => array(
		'_' => 'Checks',	// IGNORE
		'already_installed' => 'We have detected that FreshRSS is already installed!',	// IGNORE
		'cache' => array(
			'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
			'ok' => 'Permissions on the cache directory are good.',	// IGNORE
		),
		'ctype' => array(
			'nok' => 'Cannot find the required library for character type checking (php-ctype).',	// IGNORE
			'ok' => 'You have the required library for character type checking (ctype).',	// IGNORE
		),
		'curl' => array(
			'nok' => 'Cannot find the cURL library (php-curl package).',	// IGNORE
			'ok' => 'You have the cURL library.',	// IGNORE
		),
		'data' => array(
			'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
			'ok' => 'Permissions on the data directory are good.',	// IGNORE
		),
		'dom' => array(
			'nok' => 'Cannot find the required library to browse the DOM.',	// IGNORE
			'ok' => 'You have the required library to browse the DOM.',	// IGNORE
		),
		'favicons' => array(
			'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',
			'ok' => 'Permissions on the favicons directory are good.',	// IGNORE
		),
		'fileinfo' => array(
			'nok' => 'Cannot find the PHP fileinfo library (fileinfo package).',	// IGNORE
			'ok' => 'You have the fileinfo library.',	// IGNORE
		),
		'json' => array(
			'nok' => 'Cannot find the recommended library to parse JSON.',	// IGNORE
			'ok' => 'You have the recommended library to parse JSON.',	// IGNORE
		),
		'mbstring' => array(
			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	// IGNORE
			'ok' => 'You have the recommended library mbstring for Unicode.',	// IGNORE
		),
		'pcre' => array(
			'nok' => 'Cannot find the required library for regular expressions (php-pcre).',	// IGNORE
			'ok' => 'You have the required library for regular expressions (PCRE).',	// IGNORE
		),
		'pdo' => array(
			'nok' => 'Cannot find PDO or one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).',	// IGNORE
			'ok' => 'You have PDO and at least one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).',	// IGNORE
		),
		'php' => array(
			'nok' => 'Your PHP version is %s, but FreshRSS requires at least version %s.',	// IGNORE
			'ok' => 'Your PHP version, %s, is compatible with FreshRSS.',	// IGNORE
		),
		'reload' => 'Check again',	// IGNORE
		'tmp' => array(
			'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',	// IGNORE
			'ok' => 'Permissions on the temp directory are good.',	// IGNORE
		),
		'unknown_process_username' => 'unknown',	// IGNORE
		'users' => array(
			'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.',	// IGNORE
			'ok' => 'Permissions on the users directory are good.',	// IGNORE
		),
		'xml' => array(
			'nok' => 'Cannot find the required library to parse XML.',	// IGNORE
			'ok' => 'You have the required library to parse XML.',	// IGNORE
		),
	),
	'conf' => array(
		'_' => 'General configuration',	// IGNORE
		'ok' => 'General configuration has been saved.',	// IGNORE
	),
	'congratulations' => 'Congratulations!',	// IGNORE
	'default_user' => array(
		'_' => 'Username of the default user',	// IGNORE
		'max_char' => 'maximum 16 alphanumeric characters',	// IGNORE
	),
	'fix_errors_before' => 'Please fix errors before continuing to the next step.',	// IGNORE
	'javascript_is_better' => 'FreshRSS is more pleasant with JavaScript enabled',	// IGNORE
	'js' => array(
		'confirm_reinstall' => 'You will lose your previous configuration by reinstalling FreshRSS. Are you sure you want to continue?',	// IGNORE
	),
	'language' => array(
		'_' => 'Language',	// IGNORE
		'choose' => 'Choose a language for FreshRSS',	// IGNORE
		'defined' => 'Language has been defined.',	// IGNORE
	),
	'missing_applied_migrations' => 'Something went wrong; you should create an empty file <em>%s</em> manually.',	// IGNORE
	'ok' => 'The installation process was successful.',	// IGNORE
	'session' => array(
		'nok' => 'The web server seems to be incorrectly configured for cookies required for PHP sessions!',	// IGNORE
	),
	'step' => 'step %d',	// IGNORE
	'steps' => 'Steps',	// IGNORE
	'this_is_the_end' => 'This is the end',	// IGNORE
	'title' => 'Installation · FreshRSS',	// IGNORE
);
sub.php
wget 'https://lists2.roe3.org/FreshRSS/app/i18n/en-us/sub.php'
View Content
<?php

/******************************************************************************/
/* Each entry of that file can be associated with a comment to indicate its   */
/* state. When there is no comment, it means the entry is fully translated.   */
/* The recognized comments are (comment matching is case-insensitive):        */
/*   + TODO: the entry has never been translated.                             */
/*   + DIRTY: the entry has been translated but needs to be updated.          */
/*   + IGNORE: the entry does not need to be translated.                      */
/* When a comment is not recognized, it is discarded.                         */
/******************************************************************************/

return array(
	'api' => array(
		'documentation' => 'Copy the following URL to use it within an external tool.',	// IGNORE
		'title' => 'API',	// IGNORE
	),
	'bookmarklet' => array(
		'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose “Bookmark This Link”. Then click the “Subscribe” button in any page you want to subscribe to.',	// IGNORE
		'label' => 'Subscribe',	// IGNORE
		'title' => 'Bookmarklet',	// IGNORE
	),
	'category' => array(
		'_' => 'Category',	// IGNORE
		'add' => 'Add a category',	// IGNORE
		'archiving' => 'Archiving',	// IGNORE
		'dynamic_opml' => array(
			'_' => 'Dynamic OPML',	// IGNORE
			'help' => 'Provide the URL to an <a href="http://opml.org/" target="_blank">OPML file</a> to dynamically populate this category with feeds',	// IGNORE
		),
		'empty' => 'Empty category',	// IGNORE
		'expand' => 'Expand category',	// IGNORE
		'information' => 'Information',	// IGNORE
		'open' => 'Open category',	// IGNORE
		'opml_url' => 'OPML URL',	// IGNORE
		'position' => 'Display position',	// IGNORE
		'position_help' => 'To control category sort order',	// IGNORE
		'title' => 'Title',	// IGNORE
	),
	'feed' => array(
		'accept_cookies' => 'Accept cookies',	// IGNORE
		'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)',	// IGNORE
		'add' => 'Add an RSS feed',	// IGNORE
		'advanced' => 'Advanced',	// IGNORE
		'archiving' => 'Archiving',	// IGNORE
		'auth' => array(
			'configuration' => 'Login',	// IGNORE
			'help' => 'Allows access to HTTP protected RSS feeds',	// IGNORE
			'http' => 'HTTP Authentication',	// IGNORE
			'password' => 'HTTP password',	// IGNORE
			'username' => 'HTTP username',	// IGNORE
		),
		'clear_cache' => 'Always clear cache',	// IGNORE
		'content_action' => array(
			'_' => 'Content action when fetching the article content',	// IGNORE
			'append' => 'Add after existing content',	// IGNORE
			'prepend' => 'Add before existing content',	// IGNORE
			'replace' => 'Replace existing content',	// IGNORE
		),
		'css_cookie' => 'Use Cookies when fetching the article content',	// IGNORE
		'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>',	// IGNORE
		'css_help' => 'Retrieves truncated RSS feeds (caution, requires more time!)',	// IGNORE
		'css_path' => 'Article CSS selector on original website',	// IGNORE
		'css_path_filter' => array(
			'_' => 'CSS selector of the elements to remove',	// IGNORE
			'help' => 'A CSS selector may be a list such as: <kbd>.footer, .aside</kbd>',	// IGNORE
		),
		'description' => 'Description',	// IGNORE
		'empty' => 'This feed is empty. Please verify that it is still maintained.',	// IGNORE
		'error' => 'This feed has encountered a problem. Please verify that it is always reachable then update it.',	// IGNORE
		'export-as-opml' => array(
			'download' => 'Download',	// IGNORE
			'help' => 'XML file (data subset. <a href="https://freshrss.github.io/FreshRSS/en/developers/OPML.html" target="_blank">See documentation</a>)',	// IGNORE
			'label' => 'Export as OPML',	// IGNORE
		),
		'filteractions' => array(
			'_' => 'Filter actions',	// IGNORE
			'help' => 'Write one search filter per line. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.',	// IGNORE
		),
		'information' => 'Information',	// IGNORE
		'keep_min' => 'Minimum number of articles to keep',	// IGNORE
		'kind' => array(
			'_' => 'Type of feed source',	// IGNORE
			'html_xpath' => array(
				'_' => 'HTML + XPath (Web scraping)',	// IGNORE
				'feed_title' => array(
					'_' => 'feed title',	// IGNORE
					'help' => 'Example: <code>//title</code> or a static string: <code>"My custom feed"</code>',	// IGNORE
				),
				'help' => '<dfn><a href="https://www.w3.org/TR/xpath-10/" target="_blank">XPath 1.0</a></dfn> is a standard query language for advanced users, and which FreshRSS supports to enable Web scraping.',	// IGNORE
				'item' => array(
					'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>',	// IGNORE
					'help' => 'Example: <code>//div[@class="news-item"]</code>',	// IGNORE
				),
				'item_author' => array(
					'_' => 'item author',	// IGNORE
					'help' => 'Can also be a static string. Example: <code>"Anonymous"</code>',	// IGNORE
				),
				'item_categories' => 'item tags',	// IGNORE
				'item_content' => array(
					'_' => 'item content',	// IGNORE
					'help' => 'Example to take the full item: <code>.</code>',	// IGNORE
				),
				'item_thumbnail' => array(
					'_' => 'item thumbnail',	// IGNORE
					'help' => 'Example: <code>descendant::img/@src</code>',	// IGNORE
				),
				'item_timeFormat' => array(
					'_' => 'Custom date/time format',	// IGNORE
					'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// IGNORE
				),
				'item_timestamp' => array(
					'_' => 'item date',	// IGNORE
					'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// IGNORE
				),
				'item_title' => array(
					'_' => 'item title',	// IGNORE
					'help' => 'Use in particular the <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',	// IGNORE
				),
				'item_uid' => array(
					'_' => 'item unique ID',	// IGNORE
					'help' => 'Optional. Example: <code>descendant::div/@data-uri</code>',	// IGNORE
				),
				'item_uri' => array(
					'_' => 'item link (URL)',	// IGNORE
					'help' => 'Example: <code>descendant::a/@href</code>',	// IGNORE
				),
				'relative' => 'XPath (relative to item) for:',	// IGNORE
				'xpath' => 'XPath for:',	// IGNORE
			),
			'json_dotnotation' => array(
				'_' => 'JSON (dot notation)',	// IGNORE
				'feed_title' => array(
					'_' => 'feed title',	// IGNORE
					'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>',	// IGNORE
				),
				'help' => 'A JSON dot notated uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)',	// IGNORE
				'item' => array(
					'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>',	// IGNORE
					'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>',	// IGNORE
				),
				'item_author' => 'item author',	// IGNORE
				'item_categories' => 'item tags',	// IGNORE
				'item_content' => array(
					'_' => 'item content',	// IGNORE
					'help' => 'Key under which the content is found, e.g. <code>content</code>',	// IGNORE
				),
				'item_thumbnail' => array(
					'_' => 'item thumbnail',	// IGNORE
					'help' => 'Example: <code>image</code>',	// IGNORE
				),
				'item_timeFormat' => array(
					'_' => 'Custom date/time format',	// IGNORE
					'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// IGNORE
				),
				'item_timestamp' => array(
					'_' => 'item date',	// IGNORE
					'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// IGNORE
				),
				'item_title' => 'item title',	// IGNORE
				'item_uid' => 'item unique ID',	// IGNORE
				'item_uri' => array(
					'_' => 'item link (URL)',	// IGNORE
					'help' => 'Example: <code>permalink</code>',	// IGNORE
				),
				'json' => 'dot notation for:',	// IGNORE
				'relative' => 'dot notated path (relative to item) for:',	// IGNORE
			),
			'jsonfeed' => 'JSON Feed',	// IGNORE
			'rss' => 'RSS / Atom (default)',	// IGNORE
			'xml_xpath' => 'XML + XPath',	// IGNORE
		),
		'maintenance' => array(
			'clear_cache' => 'Clear cache',	// IGNORE
			'clear_cache_help' => 'Clear the cache for this feed.',	// IGNORE
			'reload_articles' => 'Reload articles',	// IGNORE
			'reload_articles_help' => 'Reload that many articles and fetch complete content if a selector is defined.',	// IGNORE
			'title' => 'Maintenance',	// IGNORE
		),
		'max_http_redir' => 'Max HTTP redirects',	// IGNORE
		'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects',	// IGNORE
		'method' => array(
			'_' => 'HTTP Method',	// IGNORE
		),
		'method_help' => 'The POST payload has automatic support for <code>application/x-www-form-urlencoded</code> and <code>application/json</code>',	// IGNORE
		'method_postparams' => 'Payload for POST',	// IGNORE
		'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under <em>%s</em>.',	// IGNORE
		'mute' => array(
			'_' => 'mute',	// IGNORE
			'state_is_muted' => 'This feed is muted',	// IGNORE
		),
		'no_selected' => 'No feed selected.',	// IGNORE
		'number_entries' => '%d articles',	// IGNORE
		'open_feed' => 'Open feed %s',	// IGNORE
		'priority' => array(
			'_' => 'Visibility',	// IGNORE
			'archived' => 'Do not show (archived)',	// IGNORE
			'category' => 'Show in its category',	// IGNORE
			'important' => 'Show in important feeds',	// IGNORE
			'main_stream' => 'Show in main stream',	// IGNORE
		),
		'proxy' => 'Set a proxy for fetching this feed',	// IGNORE
		'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd> or <kbd>username:password@127.0.0.1:1080</kbd>)',	// IGNORE
		'selector_preview' => array(
			'show_raw' => 'Show source code',	// IGNORE
			'show_rendered' => 'Show content',	// IGNORE
		),
		'show' => array(
			'all' => 'Show all feeds',	// IGNORE
			'error' => 'Show only feeds with errors',	// IGNORE
		),
		'showing' => array(
			'error' => 'Showing only feeds with errors',	// IGNORE
		),
		'ssl_verify' => 'Verify SSL security',	// IGNORE
		'stats' => 'Statistics',	// IGNORE
		'think_to_add' => 'You may add some feeds.',	// IGNORE
		'timeout' => 'Timeout in seconds',	// IGNORE
		'title' => 'Title',	// IGNORE
		'title_add' => 'Add an RSS feed',	// IGNORE
		'ttl' => 'Do not automatically refresh more often than',	// IGNORE
		'url' => 'Feed URL',	// IGNORE
		'useragent' => 'Set the user agent for fetching this feed',	// IGNORE
		'useragent_help' => 'Example: <kbd>Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0)</kbd>',	// IGNORE
		'validator' => 'Check the validity of the feed',	// IGNORE
		'website' => 'Website URL',	// IGNORE
		'websub' => 'Instant notifications with WebSub',	// IGNORE
	),
	'import_export' => array(
		'export' => 'Export',	// IGNORE
		'export_labelled' => 'Export your labeled articles',
		'export_opml' => 'Export list of feeds (OPML)',	// IGNORE
		'export_starred' => 'Export your favorites',
		'feed_list' => 'List of %s articles',	// IGNORE
		'file_to_import' => 'File to import<br />(OPML, JSON or ZIP)',	// IGNORE
		'file_to_import_no_zip' => 'File to import<br />(OPML or JSON)',	// IGNORE
		'import' => 'Import',	// IGNORE
		'starred_list' => 'List of favorite articles',
		'title' => 'Import / export',	// IGNORE
	),
	'menu' => array(
		'add' => 'Add a feed or category',	// IGNORE
		'import_export' => 'Import / export',	// IGNORE
		'label_management' => 'Label management',	// IGNORE
		'stats' => array(
			'idle' => 'Idle feeds',	// IGNORE
			'main' => 'Main statistics',	// IGNORE
			'repartition' => 'Articles repartition',	// IGNORE
		),
		'subscription_management' => 'Subscription management',	// IGNORE
		'subscription_tools' => 'Subscription tools',	// IGNORE
	),
	'tag' => array(
		'auto_label' => 'Add this label to new articles',	// IGNORE
		'name' => 'Name',	// IGNORE
		'new_name' => 'New name',	// IGNORE
		'old_name' => 'Old name',	// IGNORE
	),
	'title' => array(
		'_' => 'Subscription management',	// IGNORE
		'add' => 'Add a feed or category',	// IGNORE
		'add_category' => 'Add a category',	// IGNORE
		'add_dynamic_opml' => 'Add dynamic OPML',	// IGNORE
		'add_feed' => 'Add a feed',	// IGNORE
		'add_label' => 'Add a label',	// IGNORE
		'delete_label' => 'Delete a label',	// IGNORE
		'feed_management' => 'RSS feeds management',	// IGNORE
		'rename_label' => 'Rename a label',	// IGNORE
		'subscription_tools' => 'Subscription tools',	// IGNORE
	),
);
user.php
wget 'https://lists2.roe3.org/FreshRSS/app/i18n/en-us/user.php'
View Content
<?php

/******************************************************************************/
/* Each entry of that file can be associated with a comment to indicate its   */
/* state. When there is no comment, it means the entry is fully translated.   */
/* The recognized comments are (comment matching is case-insensitive):        */
/*   + TODO: the entry has never been translated.                             */
/*   + DIRTY: the entry has been translated but needs to be updated.          */
/*   + IGNORE: the entry does not need to be translated.                      */
/* When a comment is not recognized, it is discarded.                         */
/******************************************************************************/

return array(
	'email' => array(
		'feedback' => array(
			'invalid' => 'This email address is invalid.',	// IGNORE
			'required' => 'An email address is required.',	// IGNORE
		),
		'validation' => array(
			'change_email' => 'You can change your email address <a href="%s">on the profile page</a>.',	// IGNORE
			'email_sent_to' => 'We sent you an email at <strong>%s</strong>. Please follow its instructions to validate your address.',	// IGNORE
			'feedback' => array(
				'email_failed' => 'We couldn’t send you an email because of a server configuration error.',	// IGNORE
				'email_sent' => 'An email has been sent to your address.',	// IGNORE
				'error' => 'Email address validation failed.',	// IGNORE
				'ok' => 'This email address has been validated.',	// IGNORE
				'unnecessary' => 'This email address was already validated.',	// IGNORE
				'wrong_token' => 'This email address failed to be validated due to a wrong token.',	// IGNORE
			),
			'need_to' => 'You need to validate your email address before being able to use %s.',	// IGNORE
			'resend_email' => 'Resend the email',	// IGNORE
			'title' => 'Email address validation',	// IGNORE
		),
	),
	'mailer' => array(
		'email_need_validation' => array(
			'body' => 'You’ve just registered on %s, but you still need to validate your email address. For that, just follow the link:',	// IGNORE
			'title' => 'You need to validate your account',	// IGNORE
			'welcome' => 'Welcome %s,',	// IGNORE
		),
	),
	'password' => array(
		'invalid' => 'The password is invalid.',	// IGNORE
	),
	'tos' => array(
		'feedback' => array(
			'invalid' => 'You must accept the Terms of Service to be able to register.',	// IGNORE
		),
	),
	'username' => array(
		'invalid' => 'This username is invalid.',	// IGNORE
		'taken' => 'This username, %s, is taken.',	// IGNORE
	),
);