Browse Source

Fix i18n for subscription pages

Marien Fressinaud 11 years ago
parent
commit
cad4259e62

+ 4 - 4
app/Controllers/subscriptionController.php

@@ -29,7 +29,7 @@ class FreshRSS_subscription_Controller extends Minz_ActionController {
 	public function indexAction() {
 		Minz_View::appendScript(Minz_Url::display('/scripts/category.js?' .
 		                        @filemtime(PUBLIC_PATH . '/scripts/category.js')));
-		Minz_View::prependTitle(_t('subscription_management') . ' · ');
+		Minz_View::prependTitle(_t('sub.title') . ' · ');
 
 		$id = Minz_Request::param('id');
 		if ($id !== false) {
@@ -74,7 +74,7 @@ class FreshRSS_subscription_Controller extends Minz_ActionController {
 
 		$this->view->feed = $this->view->feeds[$id];
 
-		Minz_View::prependTitle(_t('rss_feed_management') . ' · ' . $this->view->feed->name() . ' · ');
+		Minz_View::prependTitle(_t('sub.title.feed_management') . ' · ' . $this->view->feed->name() . ' · ');
 
 		if (Minz_Request::isPost()) {
 			$user = Minz_Request::param('http_user', '');
@@ -106,9 +106,9 @@ class FreshRSS_subscription_Controller extends Minz_ActionController {
 				$this->view->feed->_category($cat);
 				$this->view->feed->faviconPrepare();
 
-				Minz_Request::good(_t('feed_updated'), array('c' => 'subscription', 'params' => array('id' => $id)));
+				Minz_Request::good(_t('feedback.sub.feed_updated'), array('c' => 'subscription', 'params' => array('id' => $id)));
 			} else {
-				Minz_Request::bad(_t('error_occurred_update'), array('c' => 'subscription'));
+				Minz_Request::bad(_t('feedback.sub.error_occurred'), array('c' => 'subscription'));
 			}
 		}
 	}

+ 1 - 1
app/i18n/en/admin.php

@@ -108,7 +108,7 @@ return array(
 			'repartition' => 'Articles repartition',
 		),
 		'no_idle' => 'There is no idle feed!',
-		'number_articles' => '%d articles',
+		'number_entries' => '%d articles',
 		'percent_of_total' => '%% of total',
 		'repartition' => 'Articles repartition',
 		'status_favorites' => 'Favourites',

+ 4 - 0
app/i18n/en/feedback.php

@@ -8,6 +8,10 @@ return array(
 	'logout' => array(
 		'success' => 'You are disconnected',
 	),
+	'sub' => array(
+		'error_occurred' => 'Feed cannot be updated',
+		'feed_updated' => 'Feed has been updated',
+	),
 	'user_profile' => array(
 		'updated' => 'Your profile has been modified',
 	),

+ 18 - 44
app/i18n/en/gen.php

@@ -2,12 +2,19 @@
 
 return array(
 	'action' => array(
+		'actualize' => 'Actualize',
 		'back_to_rss_feeds' => '← Go back to your RSS feeds',
+		'cancel' => 'Cancel',
 		'disable' => 'Disable',
+		'empty' => 'Empty',
 		'enable' => 'Enable',
 		'filter' => 'Filtrer',
 		'manage' => 'Manage',
+		'mark_read' => 'Mark as read',
 		'remove' => 'Remove',
+		'see_website' => 'See website',
+		'submit' => 'Submit',
+		'truncate' => 'Delete all articles',
 	),
 	'auth' => array(
 		'login' => 'Login',
@@ -103,8 +110,18 @@ return array(
 		'nothing_to_load' => 'There are no more articles',
 		'previous' => 'Previous',
 	),
+	'short' => array(
+		'attention' => 'Attention!',
+		'blank_to_disable' => 'Leave blank to disable',
+		'by_default' => 'By default',
+		'damn' => 'Damn!',
+		'no' => 'No',
+		'ok' => 'Ok!',
+		'oops' => 'Oops!',
+		'or' => 'or',
+		'yes' => 'Yes',
+	),
 	'title' => array(
-		'_' => 'Title',
 		'authentication' => 'Authentication',
 		'check_install' => 'Installation checking',
 		'user_management' => 'Manage users',
@@ -112,12 +129,7 @@ return array(
 	),
 	'freshrss' => 'FreshRSS',
 	'access_denied' => 'You don’t have permission to access this page',
-	'access_protected_feeds' => 'Connection allows to access HTTP protected RSS feeds',
 	'activate_sharing' => 'Activate sharing',
-	'add_category' => 'Add a category',
-	'add_rss_feed' => 'Add a RSS feed',
-	'administration' => 'Manage',
-	'advanced' => 'Advanced',
 	'after_onread' => 'After “mark all as read”,',
 	'allow_anonymous' => 'Allow anonymous reading of the articles of the default user (%s)',
 	'allow_anonymous_refresh' => 'Allow anonymous refresh of the articles',
@@ -133,8 +145,6 @@ return array(
 	'articles' => 'articles',
 	'articles_per_page' => 'Number of articles per page',
 	'articles_to_display' => 'Articles to display',
-	'ask_empty' => 'Clear?',
-	'attention' => 'Attention!',
 	'auth_form' => 'Web form (traditional, requires JavaScript)',
 	'auth_form_not_set' => 'A problem occured during authentication system configuration. Please retry later.',
 	'auth_form_set' => 'Form is now your default authentication system.',
@@ -159,20 +169,16 @@ return array(
 	'bdd_conf_is_ok' => 'Database configuration has been saved.',
 	'bdd_configuration' => 'Database configuration',
 	'bdd_type' => 'Type of database',
-	'blank_to_disable' => 'Leave blank to disable',
 	'bottom_line' => 'Bottom line',
 	'by' => 'by',
-	'by_default' => 'By default',
 	'by_email' => 'By email',
 	'by_feed' => 'by feed',
 	'cache_is_ok' => 'Permissions on cache directory are good',
 	'can_not_be_deleted' => 'Cannot be deleted',
-	'cancel' => 'Cancel',
 	'categories' => 'Categories',
 	'categories_management' => 'Categories management',
 	'categories_updated' => 'Categories have been updated',
 	'categorize' => 'Store in a category',
-	'category' => 'Category',
 	'category_created' => 'Category %s has been created.',
 	'category_deleted' => 'Category has been deleted.',
 	'category_emptied' => 'Category has been emptied',
@@ -192,18 +198,15 @@ return array(
 	'content_width' => 'Content width',
 	'create' => 'Create',
 	'create_user' => 'Create new user',
-	'css_path_on_website' => 'Articles CSS path on original website',
 	'ctype_is_nok' => 'You lack a required library for character type checking (php-ctype)',
 	'ctype_is_ok' => 'You have the required library for character type checking (ctype)',
 	'curl_is_nok' => 'You lack cURL (php5-curl package)',
 	'curl_is_ok' => 'You have version %s of cURL',
 	'current_user' => 'Current user',
-	'damn' => 'Damn!',
 	'data_is_ok' => 'Permissions on data directory are good',
 	'default_category' => 'Uncategorized',
 	'default_user' => 'Username of the default user <small>(maximum 16 alphanumeric characters)</small>',
 	'default_view' => 'Default view',
-	'delete' => 'Delete',
 	'delete_articles_every' => 'Remove articles after',
 	'display_articles_unfolded' => 'Show articles unfolded by default',
 	'display_categories_unfolded' => 'Show categories folded by default',
@@ -212,7 +215,6 @@ return array(
 	'dom_is_nok' => 'You lack a required library to browse the DOM (php-xml package)',
 	'dom_is_ok' => 'You have the required library to browse the DOM',
 	'error_occurred' => 'An error occurred',
-	'error_occurred_update' => 'Nothing was changed',
 	'explain_token' => 'Allows to access RSS output of the default user without authentication.<br /><kbd>%s?output=rss&token=%s</kbd>',
 	'export' => 'Export',
 	'export_no_zip_extension' => 'Zip extension is not present on your server. Please try to export files one by one.',
@@ -223,20 +225,13 @@ return array(
 	'feed_actualized' => '<em>%s</em> has been updated',
 	'feed_added' => 'RSS feed <em>%s</em> has been added',
 	'feed_deleted' => 'Feed has been deleted',
-	'feed_description' => 'Description',
-	'feed_empty' => 'This feed is empty. Please verify that it is still maintained.',
-	'feed_in_error' => 'This feed has encountered a problem. Please verify that it is always reachable then actualize it.',
 	'feed_list' => 'List of %s articles',
 	'feed_not_added' => '<em>%s</em> could not be added',
-	'feed_updated' => 'Feed has been updated',
-	'feed_url' => 'Feed URL',
-	'feed_validator' => 'Check the validity of the feed',
 	'feeds' => 'Feeds',
 	'feeds_actualized' => 'RSS feeds have been updated',
 	'feeds_imported' => 'Your feeds have been imported and will now be updated',
 	'feeds_imported_with_errors' => 'Your feeds have been imported but some errors occurred',
 	'feeds_marked_read' => 'Feeds have been marked as read',
-	'feeds_moved_category_deleted' => 'When you delete a category, their feeds are automatically classified under <em>%s</em>.',
 	'file_cannot_be_uploaded' => 'File cannot be uploaded!',
 	'file_is_nok' => 'Check permissions on <em>%s</em> directory. HTTP server must have rights to write into',
 	'file_to_import' => 'File to import<br />(OPML, Json or Zip)',
@@ -253,14 +248,10 @@ return array(
 	'host' => 'Host',
 	'html5_notif_timeout' => 'HTML5 notification timeout',
 	'http_auth' => 'HTTP (for advanced users with HTTPS)',
-	'http_authentication' => 'HTTP Authentication',
-	'http_password' => 'HTTP password',
 	'http_referer_is_nok' => 'Please check that you are not altering your HTTP REFERER.',
 	'http_referer_is_ok' => 'Your HTTP REFERER is known and corresponds to your server.',
-	'http_username' => 'HTTP username',
 	'img_with_lazyload' => 'Use "lazy load" mode to load pictures',
 	'import' => 'Import',
-	'informations' => 'Information',
 	'install_not_deleted' => 'Something went wrong; you must delete the file <em>%s</em> manually.',
 	'installation_is_ok' => 'The installation process was successful.<br />The final step will now attempt to delete any file and database backup created during the update process.<br />You may choose to skip this step by deleting <kbd>./data/do-install.txt</kbd> manually.',
 	'installation_step' => 'Installation — step %d · FreshRSS',
@@ -272,13 +263,11 @@ return array(
 	'javascript_is_better' => 'FreshRSS is more pleasant with JavaScript enabled',
 	'javascript_should_be_activated' => 'JavaScript must be enabled',
 	'jump_next' => 'jump to next unread sibling (feed or category)',
-	'keep_history' => 'Minimum number of articles to keep',
 	'keep_logged_in' => 'Keep me logged in <small>(1 month)</small>',
 	'language' => 'Language',
 	'language_defined' => 'Language has been defined.',
 	'last_article' => 'Skip to the last article',
 	'log_is_ok' => 'Permissions on logs directory are good',
-	'login_configuration' => 'Login',
 	'login_persona_problem' => 'Connection problem with Persona?',
 	'login_required' => 'Login required:',
 	'login_with_persona' => 'Login with Persona',
@@ -291,11 +280,9 @@ return array(
 	'more_information' => 'More information',
 	'n_entries_deleted' => '%d articles have been deleted',
 	'n_feeds_actualized' => '%d feeds have been updated',
-	'new_category' => 'New category',
 	'next_article' => 'Skip to the next article',
 	'next_page' => 'Skip to the next page',
 	'next_step' => 'Go to the next step',
-	'no' => 'No',
 	'no_feed_actualized' => 'No RSS feed has been updated',
 	'no_feed_to_refresh' => 'There is no feed to refresh…',
 	'no_query' => 'You haven’t created any user query yet.',
@@ -309,12 +296,9 @@ return array(
 	'not_yet_implemented' => 'Not yet implemented',
 	'number_divided_when_reader' => 'Divided by 2 in the reading view.',
 	'number_feeds' => '%d feeds',
-	'ok' => 'Ok!',
-	'oops' => 'Oops!',
 	'optimization_complete' => 'Optimization complete',
 	'optimize_bdd' => 'Optimize database',
 	'optimize_todo_sometimes' => 'To do occasionally to reduce the size of the database',
-	'or' => 'or',
 	'page_not_found' => 'You are looking for a page which doesn’t exist',
 	'password' => 'Password',
 	'password_api' => 'Password API<br /><small>(e.g., for mobile apps)</small>',
@@ -363,10 +347,6 @@ return array(
 	'query_state_15' => 'Display all articles',
 	'random_string' => 'Random string',
 	'reading_confirm' => 'Display a confirmation dialog on “mark all as read” actions',
-	'refresh' => 'Refresh',
-	'retrieve_truncated_feeds' => 'Retrieves truncated RSS feeds (attention, requires more time!)',
-	'rss_feed_management' => 'RSS feeds management',
-	'save' => 'Save',
 	'scroll' => 'while scrolling',
 	'seconds_(0_means_no_timeout)' => 'seconds (0 means no timeout)',
 	'see_on_website' => 'See on original website',
@@ -381,17 +361,13 @@ return array(
 	'shortcuts_updated' => 'Shortcuts have been updated',
 	'show_adaptive' => 'Adjust showing',
 	'show_all_articles' => 'Show all articles',
-	'show_in_all_flux' => 'Show in main stream',
 	'sort_order' => 'Sort order',
 	'starred_list' => 'List of favourite articles',
 	'steps' => 'Steps',
 	'sticky_post' => 'Stick the article to the top when opened',
-	'submit' => 'Submit',
 	'theme' => 'Theme',
 	'this_is_the_end' => 'This is the end',
 	'top_line' => 'Top line',
-	'truncate' => 'Delete all articles',
-	'ttl' => 'Do not automatically refresh more often than',
 	'unsafe_autologin' => 'Allow unsafe automatic login using the format: ',
 	'update_apply' => 'Apply',
 	'update_can_apply' => 'An update is available.',
@@ -415,12 +391,10 @@ return array(
 	'users' => 'Users',
 	'users_list' => 'List of users',
 	'version_update' => 'Update',
-	'website_url' => 'Website URL',
 	'width_large' => 'Large',
 	'width_medium' => 'Medium',
 	'width_no_limit' => 'No limit',
 	'width_thin' => 'Thin',
-	'yes' => 'Yes',
 	'your_diaspora_pod' => 'Your Diaspora* pod',
 	'your_shaarli' => 'Your Shaarli',
 	'your_wallabag' => 'Your wallabag',

+ 0 - 5
app/i18n/en/index.php

@@ -35,17 +35,13 @@ return array(
 	),
 	'menu' => array(
 		'about' => 'About FreshRSS',
-		'actualize' => 'Actualize',
 		'add_query' => 'Add a query',
 		'before_one_day' => 'Before one day',
 		'before_one_week' => 'Before one week',
 		'favorites' => 'Favourites (%s)',
-		'filter' => 'Filter',
 		'global_view' => 'Global view',
 		'main_stream' => 'Main stream',
-		'manage' => 'Manage',
 		'mark_all_read' => 'Mark all as read',
-		'mark_read' => 'Mark as read',
 		'newer_first' => 'Newer first',
 		'non-starred' => 'Show all but favorites',
 		'normal_view' => 'Normal view',
@@ -55,7 +51,6 @@ return array(
 		'reader_view' => 'Reading view',
 		'rss_view' => 'RSS feed',
 		'search_short' => 'Search',
-		'see_website' => 'See website',
 		'starred' => 'Show only favorites',
 		'stats' => 'Statistics',
 		'subscription' => 'Subscriptions management',

+ 36 - 2
app/i18n/en/sub.php

@@ -1,15 +1,49 @@
 <?php
 
 return array(
-	'categories' => array(
+	'category' => array(
+		'_' => 'Category',
+		'add' => 'Add a category',
+		'empty' => 'Empty category',
+		'new' => 'New category',
 		'over_max' => 'You have reached your limit of categories (%d)',
 	),
-	'feeds' => array(
+	'feed' => array(
+		'add' => 'Add a RSS feed',
+		'advanced' => 'Advanced',
+		'archiving' => 'Archivage',
+		'auth' => array(
+			'configuration' => 'Login',
+			'help' => 'Connection allows to access HTTP protected RSS feeds',
+			'http' => 'HTTP Authentication',
+			'password' => 'HTTP password',
+			'username' => 'HTTP username',
+		),
+		'css_help' => 'Retrieves truncated RSS feeds (attention, requires more time!)',
+		'css_path' => 'Articles CSS path on original website',
+		'description' => 'Description',
+		'empty' => 'This feed is empty. Please verify that it is still maintained.',
+		'error' => 'This feed has encountered a problem. Please verify that it is always reachable then actualize it.',
+		'in_main_stream' => 'Show in main stream',
+		'informations' => 'Information',
+		'keep_history' => 'Minimum number of articles to keep',
+		'moved_category_deleted' => 'When you delete a category, their feeds are automatically classified under <em>%s</em>.',
+		'number_entries' => '%d articles',
 		'over_max' => 'You have reached your limit of feeds (%d)',
+		'stats' => 'Statistics',
+		'title' => 'Title',
+		'ttl' => 'Do not automatically refresh more often than',
+		'url' => 'Feed URL',
+		'validator' => 'Check the validity of the feed',
+		'website' => 'Website URL',
 	),
 	'menu' => array(
 		'bookmark' => 'Subscribe (FreshRSS bookmark)',
 		'import_export' => 'Import / export',
 		'subscription_management' => 'Subscriptions management',
 	),
+	'title' => array(
+		'_' => 'Subscriptions management',
+		'feed_management' => 'RSS feeds management',
+	),
 );

+ 1 - 1
app/i18n/fr/admin.php

@@ -108,7 +108,7 @@ return array(
 			'repartition' => 'Répartition des articles',
 		),
 		'no_idle' => 'Il n’y a aucun flux inactif !',
-		'number_articles' => '%d articles',
+		'number_entries' => '%d articles',
 		'percent_of_total' => '%% du total',
 		'repartition' => 'Répartition des articles',
 		'status_favorites' => 'favoris',

+ 5 - 1
app/i18n/fr/feedback.php

@@ -2,12 +2,16 @@
 
 return array(
 	'login' => array(
-		'error' => 'L’identifiant est invalide !',
+		'error' => 'L’identifiant est invalide',
 		'success' => 'Vous êtes désormais connecté',
 	),
 	'logout' => array(
 		'success' => 'Vous avez été déconnecté',
 	),
+	'sub' => array(
+		'error_occurred' => 'Le flux n’a pas pu être modifié',
+		'feed_updated' => 'Le flux a été mis à jour',
+	),
 	'user_profile' => array(
 		'updated' => 'Votre profil a été mis à jour',
 	),

+ 18 - 44
app/i18n/fr/gen.php

@@ -2,12 +2,19 @@
 
 return array(
 	'action' => array(
+		'actualize' => 'Actualiser',
 		'back_to_rss_feeds' => '← Retour à vos flux RSS',
+		'cancel' => 'Annuler',
 		'disable' => 'Désactiver',
+		'empty' => 'Vider',
 		'enable' => 'Activer',
 		'filter' => 'Filtrer',
 		'manage' => 'Gérer',
+		'mark_read' => 'Marquer comme lu',
 		'remove' => 'Supprimer',
+		'see_website' => 'Voir le site',
+		'truncate' => 'Supprimer tous les articles',
+		'submit' => 'Valider',
 	),
 	'auth' => array(
 		'login' => 'Connexion',
@@ -103,8 +110,18 @@ return array(
 		'nothing_to_load' => 'Fin des articles',
 		'previous' => 'Précédent',
 	),
+	'short' => array(
+		'attention' => 'Attention !',
+		'blank_to_disable' => 'Laissez vide pour désactiver',
+		'by_default' => 'Par défaut',
+		'damn' => 'Arf !',
+		'no' => 'Non',
+		'ok' => 'Ok !',
+		'oops' => 'Oups !',
+		'or' => 'ou',
+		'yes' => 'Oui',
+	),
 	'title' => array(
-		'_' => 'Titre',
 		'authentication' => 'Authentification',
 		'check_install' => 'Vérification de l’installation',
 		'user_management' => 'Gestion des utilisateurs',
@@ -112,12 +129,7 @@ return array(
 	),
 	'freshrss' => 'FreshRSS',
 	'access_denied' => 'Vous n’avez pas le droit d’accéder à cette page !',
-	'access_protected_feeds' => 'La connexion permet d’accéder aux flux protégés par une authentification HTTP.',
 	'activate_sharing' => 'Activer le partage',
-	'add_category' => 'Ajouter une catégorie',
-	'add_rss_feed' => 'Ajouter un flux RSS',
-	'administration' => 'Gérer',
-	'advanced' => 'Avancé',
 	'after_onread' => 'Après “marquer tout comme lu”,',
 	'allow_anonymous' => 'Autoriser la lecture anonyme des articles de l’utilisateur par défaut (%s)',
 	'allow_anonymous_refresh' => 'Autoriser le rafraîchissement anonyme des flux',
@@ -133,8 +145,6 @@ return array(
 	'articles' => 'articles',
 	'articles_per_page' => 'Nombre d’articles par page',
 	'articles_to_display' => 'Articles à afficher',
-	'ask_empty' => 'Vider ?',
-	'attention' => 'Attention !',
 	'auth_form' => 'Formulaire (traditionnel, requiert JavaScript)',
 	'auth_form_not_set' => 'Un problème est survenu lors de la configuration de votre système d’authentification. Veuillez réessayer plus tard.',
 	'auth_form_set' => 'Le formulaire est désormais votre système d’authentification.',
@@ -159,20 +169,16 @@ return array(
 	'bdd_conf_is_ok' => 'La configuration de la base de données a été enregistrée.',
 	'bdd_configuration' => 'Base de données',
 	'bdd_type' => 'Type de base de données',
-	'blank_to_disable' => 'Laissez vide pour désactiver',
 	'bottom_line' => 'Ligne du bas',
 	'by' => 'par',
-	'by_default' => 'Par défaut',
 	'by_email' => 'Par courriel',
 	'by_feed' => 'par flux',
 	'cache_is_ok' => 'Les droits sur le répertoire de cache sont bons',
 	'can_not_be_deleted' => 'Ne peut pas être supprimée.',
-	'cancel' => 'Annuler',
 	'categories' => 'Catégories',
 	'categories_management' => 'Gestion des catégories',
 	'categories_updated' => 'Les catégories ont été mises à jour.',
 	'categorize' => 'Ranger dans une catégorie',
-	'category' => 'Catégorie',
 	'category_created' => 'La catégorie %s a été créée.',
 	'category_deleted' => 'La catégorie a été supprimée.',
 	'category_emptied' => 'La catégorie a été vidée.',
@@ -192,18 +198,15 @@ return array(
 	'content_width' => 'Largeur du contenu',
 	'create' => 'Créer',
 	'create_user' => 'Créer un nouvel utilisateur',
-	'css_path_on_website' => 'Sélecteur CSS des articles sur le site d’origine',
 	'ctype_is_nok' => 'Il manque une librairie pour la vérification des types de caractères (php-ctype)',
 	'ctype_is_ok' => 'Vous disposez du nécessaire pour la vérification des types de caractères (ctype)',
 	'curl_is_nok' => 'Vous ne disposez pas de cURL (paquet php5-curl)',
 	'curl_is_ok' => 'Vous disposez de cURL dans sa version %s',
 	'current_user' => 'Utilisateur actuel',
-	'damn' => 'Arf !',
 	'data_is_ok' => 'Les droits sur le répertoire de data sont bons',
 	'default_category' => 'Sans catégorie',
 	'default_user' => 'Nom de l’utilisateur par défaut <small>(16 caractères alphanumériques maximum)</small>',
 	'default_view' => 'Vue par défaut',
-	'delete' => 'Supprimer',
 	'delete_articles_every' => 'Supprimer les articles après',
 	'display' => 'Affichage',
 	'display_articles_unfolded' => 'Afficher les articles dépliés par défaut',
@@ -212,7 +215,6 @@ return array(
 	'dom_is_nok' => 'Il manque une librairie pour parcourir le DOM (paquet php-xml)',
 	'dom_is_ok' => 'Vous disposez du nécessaire pour parcourir le DOM',
 	'error_occurred' => 'Une erreur est survenue !',
-	'error_occurred_update' => 'Rien n’a été modifié !',
 	'explain_token' => 'Permet d’accéder à la sortie RSS de l’utilisateur par défaut sans besoin de s’authentifier.<br /><kbd>%s?output=rss&token=%s</kbd>',
 	'export' => 'Exporter',
 	'export_no_zip_extension' => 'L’extension Zip n’est pas présente sur votre serveur. Veuillez essayer d’exporter les fichiers un par un.',
@@ -223,20 +225,13 @@ return array(
 	'feed_actualized' => '<em>%s</em> a été mis à jour.',
 	'feed_added' => 'Le flux <em>%s</em> a bien été ajouté.',
 	'feed_deleted' => 'Le flux a été supprimé.',
-	'feed_description' => 'Description',
-	'feed_empty' => 'Ce flux est vide. Veuillez vérifier qu’il est toujours maintenu.',
-	'feed_in_error' => 'Ce flux a rencontré un problème. Veuillez vérifier qu’il est toujours accessible puis actualisez-le.',
 	'feed_list' => 'Liste des articles de %s',
 	'feed_not_added' => '<em>%s</em> n’a pas pu être ajouté.',
-	'feed_updated' => 'Le flux a été mis à jour.',
-	'feed_url' => 'URL du flux',
-	'feed_validator' => 'Vérifier la valididé du flux',
 	'feeds' => 'Flux',
 	'feeds_actualized' => 'Les flux ont été mis à jour.',
 	'feeds_imported' => 'Vos flux ont été importés et vont maintenant être actualisés.',
 	'feeds_imported_with_errors' => 'Vos flux ont été importés mais des erreurs sont survenues.',
 	'feeds_marked_read' => 'Les flux ont été marqués comme lus.',
-	'feeds_moved_category_deleted' => 'Lors de la suppression d’une catégorie, ses flux seront automatiquement classés dans <em>%s</em>.',
 	'file_cannot_be_uploaded' => 'Le fichier ne peut pas être téléchargé !',
 	'file_is_nok' => 'Veuillez vérifier les droits sur le répertoire <em>%s</em>. Le serveur HTTP doit être capable d’écrire dedans',
 	'file_to_import' => 'Fichier à importer<br />(OPML, Json ou Zip)',
@@ -253,14 +248,10 @@ return array(
 	'host' => 'Hôte',
 	'html5_notif_timeout' => 'Temps d’affichage de la notification HTML5',
 	'http_auth' => 'HTTP (pour utilisateurs avancés avec HTTPS)',
-	'http_authentication' => 'Authentification HTTP',
-	'http_password' => 'Mot de passe HTTP',
 	'http_referer_is_nok' => 'Veuillez vérifier que vous ne modifiez pas votre HTTP REFERER.',
 	'http_referer_is_ok' => 'Le HTTP REFERER est connu et semble correspondre à votre serveur.',
-	'http_username' => 'Identifiant HTTP',
 	'img_with_lazyload' => 'Utiliser le mode “chargement différé” pour les images',
 	'import' => 'Importer',
-	'informations' => 'Informations',
 	'install_not_deleted' => 'Quelque chose s’est mal passé, vous devez supprimer le fichier <em>%s</em> à la main.',
 	'installation_is_ok' => 'L’installation s’est bien passée.<br />La dernière étape va maintenant tenter de supprimer les fichiers ainsi que d’éventuelles copies de base de données créés durant le processus de mise à jour.<br />Vous pouvez choisir de sauter cette étape en supprimant <kbd>./data/do-install.txt</kbd> manuellement.',
 	'installation_step' => 'Installation — étape %d · FreshRSS',
@@ -272,13 +263,11 @@ return array(
 	'javascript_is_better' => 'FreshRSS est plus agréable à utiliser avec JavaScript activé',
 	'javascript_should_be_activated' => 'Le JavaScript doit être activé.',
 	'jump_next' => 'sauter au prochain voisin non lu (flux ou catégorie)',
-	'keep_history' => 'Nombre minimum d’articles à conserver',
 	'keep_logged_in' => 'Rester connecté <small>(1 mois)</small>',
 	'language' => 'Langue',
 	'language_defined' => 'La langue a bien été définie.',
 	'last_article' => 'Passer au dernier article',
 	'log_is_ok' => 'Les droits sur le répertoire des logs sont bons',
-	'login_configuration' => 'Identification',
 	'login_persona_problem' => 'Problème de connexion à Persona ?',
 	'login_required' => 'Accès protégé par mot de passe :',
 	'login_with_persona' => 'Connexion avec Persona',
@@ -291,11 +280,9 @@ return array(
 	'more_information' => 'Plus d’informations',
 	'n_entries_deleted' => '%d articles ont été supprimés.',
 	'n_feeds_actualized' => '%d flux ont été mis à jour.',
-	'new_category' => 'Nouvelle catégorie',
 	'next_article' => 'Passer à l’article suivant',
 	'next_page' => 'Passer à la page suivante',
 	'next_step' => 'Passer à l’étape suivante',
-	'no' => 'Non',
 	'no_feed_actualized' => 'Aucun flux n’a pu être mis à jour.',
 	'no_feed_to_refresh' => 'Il n’y a aucun flux à actualiser…',
 	'no_query' => 'Vous n’avez pas encore créé de filtre.',
@@ -309,12 +296,9 @@ return array(
 	'not_yet_implemented' => 'Pas encore implémenté',
 	'number_divided_when_reader' => 'Divisé par 2 dans la vue de lecture.',
 	'number_feeds' => '%d flux',
-	'ok' => 'Ok !',
-	'oops' => 'Oups !',
 	'optimization_complete' => 'Optimisation terminée.',
 	'optimize_bdd' => 'Optimiser la base de données',
 	'optimize_todo_sometimes' => 'À faire de temps en temps pour réduire la taille de la BDD',
-	'or' => 'ou',
 	'page_not_found' => 'La page que vous cherchez n’existe pas !',
 	'password' => 'Mot de passe',
 	'password_api' => 'Mot de passe API<br /><small>(ex. : pour applis mobiles)</small>',
@@ -363,10 +347,6 @@ return array(
 	'query_state_15' => 'Afficher tous les articles',
 	'random_string' => 'Chaîne aléatoire',
 	'reading_confirm' => 'Afficher une confirmation lors des actions “marquer tout comme lu”',
-	'refresh' => 'Actualisation',
-	'retrieve_truncated_feeds' => 'Permet de récupérer les flux tronqués (attention, demande plus de temps !)',
-	'rss_feed_management' => 'Gestion des flux RSS',
-	'save' => 'Enregistrer',
 	'scroll' => 'au défilement de la page',
 	'seconds_(0_means_no_timeout)' => 'secondes (0 signifie aucun timeout ) ',
 	'see_on_website' => 'Voir sur le site d’origine',
@@ -381,17 +361,13 @@ return array(
 	'shortcuts_updated' => 'Les raccourcis ont été mis à jour.',
 	'show_adaptive' => 'Adapter l’affichage',
 	'show_all_articles' => 'Afficher tous les articles',
-	'show_in_all_flux' => 'Afficher dans le flux principal',
 	'sort_order' => 'Ordre de tri',
 	'starred_list' => 'Liste des articles favoris',
 	'steps' => 'Étapes',
 	'sticky_post' => 'Aligner l’article en haut quand il est ouvert',
-	'submit' => 'Valider',
 	'theme' => 'Thème',
 	'this_is_the_end' => 'This is the end',
 	'top_line' => 'Ligne du haut',
-	'truncate' => 'Supprimer tous les articles',
-	'ttl' => 'Ne pas automatiquement rafraîchir plus souvent que',
 	'unsafe_autologin' => 'Autoriser les connexions automatiques non-sûres au format : ',
 	'update_apply' => 'Appliquer la mise à jour',
 	'update_can_apply' => 'Une mise à jour est disponible.',
@@ -415,12 +391,10 @@ return array(
 	'users' => 'Utilisateurs',
 	'users_list' => 'Liste des utilisateurs',
 	'version_update' => 'Mise à jour',
-	'website_url' => 'URL du site',
 	'width_large' => 'Large',
 	'width_medium' => 'Moyenne',
 	'width_no_limit' => 'Pas de limite',
 	'width_thin' => 'Fine',
-	'yes' => 'Oui',
 	'your_diaspora_pod' => 'Votre pod Diaspora*',
 	'your_shaarli' => 'Votre Shaarli',
 	'your_wallabag' => 'Votre wallabag',

+ 0 - 5
app/i18n/fr/index.php

@@ -35,17 +35,13 @@ return array(
 	),
 	'menu' => array(
 		'about' => 'À propos de FreshRSS',
-		'actualize' => 'Actualiser',
 		'add_query' => 'Créer un filtre',
 		'before_one_day' => 'Antérieurs à 1 jour',
 		'before_one_week' => 'Antérieurs à 1 semaine',
 		'favorites' => 'Favoris (%s)',
-		'filter' => 'Filtrer',
 		'global_view' => 'Vue globale',
 		'main_stream' => 'Flux principal',
-		'manage' => 'Gérer',
 		'mark_all_read' => 'Tout marquer comme lu',
-		'mark_read' => 'Marquer comme lu',
 		'newer_first' => 'Plus récents en premier',
 		'non-starred' => 'Afficher tout sauf les favoris',
 		'normal_view' => 'Vue normale',
@@ -55,7 +51,6 @@ return array(
 		'reader_view' => 'Vue lecture',
 		'rss_view' => 'Flux RSS',
 		'search_short' => 'Rechercher',
-		'see_website' => 'Voir le site',
 		'starred' => 'Afficher les favoris',
 		'stats' => 'Statistiques',
 		'subscription' => 'Gestion des abonnements',

+ 36 - 2
app/i18n/fr/sub.php

@@ -1,15 +1,49 @@
 <?php
 
 return array(
-	'categories' => array(
+	'category' => array(
+		'_' => 'Catégorie',
+		'add' => 'Ajouter une catégorie',
+		'empty' => 'Catégorie vide',
+		'new' => 'Nouvelle catégorie',
 		'over_max' => 'Vous avez atteint votre limite de catégories (%d)',
 	),
-	'feeds' => array(
+	'feed' => array(
+		'add' => 'Ajouter un flux RSS',
+		'advanced' => 'Avancé',
+		'archiving' => 'Archivage',
+		'auth' => array(
+			'configuration' => 'Identification',
+			'help' => 'La connexion permet d’accéder aux flux protégés par une authentification HTTP.',
+			'http' => 'Authentification HTTP',
+			'password' => 'Mot de passe HTTP',
+			'username' => 'Identifiant HTTP',
+		),
+		'css_help' => 'Permet de récupérer les flux tronqués (attention, demande plus de temps !)',
+		'css_path' => 'Sélecteur CSS des articles sur le site d’origine',
+		'description' => 'Description',
+		'empty' => 'Ce flux est vide. Veuillez vérifier qu’il est toujours maintenu.',
+		'error' => 'Ce flux a rencontré un problème. Veuillez vérifier qu’il est toujours accessible puis actualisez-le.',
+		'in_main_stream' => 'Afficher dans le flux principal',
+		'informations' => 'Informations',
+		'keep_history' => 'Nombre minimum d’articles à conserver',
+		'moved_category_deleted' => 'Lors de la suppression d’une catégorie, ses flux seront automatiquement classés dans <em>%s</em>.',
+		'number_entries' => '%d articles',
 		'over_max' => 'Vous avez atteint votre limite de flux (%d)',
+		'stats' => 'Statistiques',
+		'title' => 'Titre',
+		'ttl' => 'Ne pas automatiquement rafraîchir plus souvent que',
+		'url' => 'URL du flux',
+		'validator' => 'Vérifier la valididé du flux',
+		'website' => 'URL du site',
 	),
 	'menu' => array(
 		'bookmark' => 'S’abonner (bookmark FreshRSS)',
 		'import_export' => 'Importer / exporter',
 		'subscription_management' => 'Gestion des abonnements',
 	),
+	'title' => array(
+		'_' => 'Gestion des abonnements',
+		'feed_management' => 'Gestion des flux RSS',
+	),
 );

+ 5 - 5
app/layout/aside_feed.phtml

@@ -74,21 +74,21 @@
 <script id="feed_config_template" type="text/html">
 	<ul class="dropdown-menu">
 		<li class="dropdown-close"><a href="#close">❌</a></li>
-		<li class="item"><a href="<?php echo _url('index', 'index', 'get', 'f_!!!!!!'); ?>"><?php echo _t('index.menu.filter'); ?></a></li>
+		<li class="item"><a href="<?php echo _url('index', 'index', 'get', 'f_!!!!!!'); ?>"><?php echo _t('gen.action.filter'); ?></a></li>
 		<?php if (FreshRSS_Auth::hasAccess()) { ?>
 		<li class="item"><a href="<?php echo _url('stats', 'repartition', 'id', '!!!!!!'); ?>"><?php echo _t('index.menu.stats'); ?></a></li>
 		<?php } ?>
-		<li class="item"><a target="_blank" href="http://example.net/"><?php echo _t('index.menu.see_website'); ?></a></li>
+		<li class="item"><a target="_blank" href="http://example.net/"><?php echo _t('gen.action.see_website'); ?></a></li>
 		<?php if (FreshRSS_Auth::hasAccess()) { ?>
 		<li class="separator"></li>
-		<li class="item"><a href="<?php echo _url('subscription', 'index', 'id', '!!!!!!'); ?>"><?php echo _t('index.menu.manage'); ?></a></li>
-		<li class="item"><a href="<?php echo _url('feed', 'actualize', 'id', '!!!!!!'); ?>"><?php echo _t('index.menu.actualize'); ?></a></li>
+		<li class="item"><a href="<?php echo _url('subscription', 'index', 'id', '!!!!!!'); ?>"><?php echo _t('gen.action.manage'); ?></a></li>
+		<li class="item"><a href="<?php echo _url('feed', 'actualize', 'id', '!!!!!!'); ?>"><?php echo _t('gen.action.actualize'); ?></a></li>
 		<li class="item">
 			<?php $confirm = FreshRSS_Context::$conf->reading_confirm ? 'confirm' : ''; ?>
 			<button class="read_all as-link <?php echo $confirm; ?>"
 			        form="mark-read-aside"
 			        formaction="<?php echo _url('entry', 'read', 'get', 'f_!!!!!!'); ?>"
-			        type="submit"><?php echo _t('index.menu.mark_read'); ?></button>
+			        type="submit"><?php echo _t('gen.action.mark_read'); ?></button>
 		</li>
 		<?php } ?>
 	</ul>

+ 2 - 2
app/layout/nav_menu.phtml

@@ -86,7 +86,7 @@
 		<button class="read_all btn <?php echo $confirm; ?>"
 		        form="mark-read-menu"
 		        formaction="<?php echo Minz_Url::display($mark_read_url); ?>"
-		        type="submit"><?php echo _t('index.menu.mark_read'); ?></button>
+		        type="submit"><?php echo _t('gen.action.mark_read'); ?></button>
 
 		<div class="dropdown">
 			<div id="dropdown-read" class="dropdown-target"></div>
@@ -194,6 +194,6 @@
 	</a>
 	
 	<?php if (FreshRSS_Auth::hasAccess() || Minz_Configuration::allowAnonymousRefresh()) { ?>
-	<a id="actualize" class="btn" href="<?php echo _url('feed', 'actualize'); ?>" title="<?php echo _t('index.menu.actualize'); ?>"><?php echo _i('refresh'); ?></a>
+	<a id="actualize" class="btn" href="<?php echo _url('feed', 'actualize'); ?>" title="<?php echo _t('gen.action.actualize'); ?>"><?php echo _i('refresh'); ?></a>
 	<?php } ?>
 </div>

+ 38 - 38
app/views/helpers/feed/update.phtml

@@ -2,9 +2,9 @@
 	<h1><?php echo $this->feed->name(); ?></h1>
 
 	<div>
-		<a href="<?php echo _url('index', 'index', 'get', 'f_' . $this->feed->id()); ?>"><?php echo _i('link'); ?> <?php echo _t('filter'); ?></a>
-		<?php echo _t('or'); ?>
-		<a href="<?php echo _url('stats', 'repartition', 'id', $this->feed->id()); ?>"><?php echo _i('stats'); ?> <?php echo _t('stats'); ?></a>
+		<a href="<?php echo _url('index', 'index', 'get', 'f_' . $this->feed->id()); ?>"><?php echo _i('link'); ?> <?php echo _t('gen.action.filter'); ?></a>
+		<?php echo _t('gen.short.or'); ?>
+		<a href="<?php echo _url('stats', 'repartition', 'id', $this->feed->id()); ?>"><?php echo _i('stats'); ?> <?php echo _t('sub.feed.stats'); ?></a>
 	</div>
 
 	<p><?php echo $this->feed->description(); ?></p>
@@ -12,27 +12,27 @@
 	<?php $nbEntries = $this->feed->nbEntries(); ?>
 
 	<?php if ($this->feed->inError()) { ?>
-	<p class="alert alert-error"><span class="alert-head"><?php echo _t('damn'); ?></span> <?php echo _t('feed_in_error'); ?></p>
+	<p class="alert alert-error"><span class="alert-head"><?php echo _t('gen.short.damn'); ?></span> <?php echo _t('sub.feed.error'); ?></p>
 	<?php } elseif ($nbEntries === 0) { ?>
-	<p class="alert alert-warn"><?php echo _t('feed_empty'); ?></p>
+	<p class="alert alert-warn"><?php echo _t('sub.feed.empty'); ?></p>
 	<?php } ?>
 
 	<form method="post" action="<?php echo _url('subscription', 'feed', 'id', $this->feed->id()); ?>" autocomplete="off">
-		<legend><?php echo _t('informations'); ?></legend>
+		<legend><?php echo _t('sub.feed.informations'); ?></legend>
 		<div class="form-group">
-			<label class="group-name" for="name"><?php echo _t('title'); ?></label>
+			<label class="group-name" for="name"><?php echo _t('sub.feed.title'); ?></label>
 			<div class="group-controls">
 				<input type="text" name="name" id="name" class="extend" value="<?php echo $this->feed->name() ; ?>" />
 			</div>
 		</div>
 		<div class="form-group">
-			<label class="group-name" for="description"><?php echo _t('feed_description'); ?></label>
+			<label class="group-name" for="description"><?php echo _t('sub.feed.description'); ?></label>
 			<div class="group-controls">
 				<textarea name="description" id="description"><?php echo htmlspecialchars($this->feed->description(), ENT_NOQUOTES, 'UTF-8'); ?></textarea>
 			</div>
 		</div>
 		<div class="form-group">
-			<label class="group-name" for="website"><?php echo _t('website_url'); ?></label>
+			<label class="group-name" for="website"><?php echo _t('sub.feed.website'); ?></label>
 			<div class="group-controls">
 				<div class="stick">
 					<input type="text" name="website" id="website" class="extend" value="<?php echo $this->feed->website(); ?>" />
@@ -41,18 +41,18 @@
 			</div>
 		</div>
 		<div class="form-group">
-			<label class="group-name" for="url"><?php echo _t('feed_url'); ?></label>
+			<label class="group-name" for="url"><?php echo _t('sub.feed.url'); ?></label>
 			<div class="group-controls">
 				<div class="stick">
 					<input type="text" name="url" id="url" class="extend" value="<?php echo $this->feed->url(); ?>" />
 					<a class="btn" target="_blank" href="<?php echo $this->feed->url(); ?>"><?php echo _i('link'); ?></a>
 				</div>
 
-				<a class="btn" target="_blank" href="http://validator.w3.org/feed/check.cgi?url=<?php echo $this->feed->url(); ?>"><?php echo _t('feed_validator'); ?></a>
+				<a class="btn" target="_blank" href="http://validator.w3.org/feed/check.cgi?url=<?php echo $this->feed->url(); ?>"><?php echo _t('sub.feed.validator'); ?></a>
 			</div>
 		</div>
 		<div class="form-group">
-			<label class="group-name" for="category"><?php echo _t('category'); ?></label>
+			<label class="group-name" for="category"><?php echo _t('sub.category'); ?></label>
 			<div class="group-controls">
 				<select name="category" id="category">
 				<?php foreach ($this->categories as $cat) { ?>
@@ -64,53 +64,53 @@
 			</div>
 		</div>
 		<div class="form-group">
-			<label class="group-name" for="priority"><?php echo _t('show_in_all_flux'); ?></label>
+			<label class="group-name" for="priority"><?php echo _t('sub.feed.in_main_stream'); ?></label>
 			<div class="group-controls">
 				<label class="checkbox" for="priority">
 					<input type="checkbox" name="priority" id="priority" value="10"<?php echo $this->feed->priority() > 0 ? ' checked="checked"' : ''; ?> />
-					<?php echo _t('yes'); ?>
+					<?php echo _t('gen.short.yes'); ?>
 				</label>
 			</div>
 		</div>
 
 		<div class="form-group form-actions">
 			<div class="group-controls">
-				<button class="btn btn-important"><?php echo _t('save'); ?></button>
+				<button class="btn btn-important"><?php echo _t('gen.action.submit'); ?></button>
 				<button class="btn btn-attention confirm"
-				        data-str-confirm="<?php echo _t('confirm_action_feed_cat'); ?>"
+				        data-str-confirm="<?php echo _t('gen.js.confirm_action_feed_cat'); ?>"
 				        formaction="<?php echo _url('feed', 'delete', 'id', $this->feed->id()); ?>"
-				        formmethod="post"><?php echo _t('delete'); ?></button>
+				        formmethod="post"><?php echo _t('gen.action.remove'); ?></button>
 			</div>
 		</div>
 
-		<legend><?php echo _t('archiving_configuration'); ?></legend>
+		<legend><?php echo _t('sub.feed.archiving'); ?></legend>
 
 		<div class="form-group">
 			<div class="group-controls">
 				<div class="stick">
-					<input type="text" value="<?php echo _t('number_articles', $nbEntries); ?>" disabled="disabled" />
+					<input type="text" value="<?php echo _t('sub.feed.number_entries', $nbEntries); ?>" disabled="disabled" />
 					<a class="btn" href="<?php echo _url('feed', 'actualize', 'id', $this->feed->id()); ?>">
-						<?php echo _i('refresh'); ?> <?php echo _t('actualize'); ?>
+						<?php echo _i('refresh'); ?> <?php echo _t('gen.action.actualize'); ?>
 					</a>
 				</div>
 			</div>
 		</div>
 		<div class="form-group">
-			<label class="group-name" for="keep_history"><?php echo _t('keep_history'); ?></label>
+			<label class="group-name" for="keep_history"><?php echo _t('sub.feed.keep_history'); ?></label>
 			<div class="group-controls">
 				<select class="number" name="keep_history" id="keep_history" required="required"><?php
-					foreach (array('' => '', -2 => _t('by_default'), 0 => '0', 10 => '10', 50 => '50', 100 => '100', 500 => '500', 1000 => '1 000', 5000 => '5 000', 10000 => '10 000', -1 => '∞') as $v => $t) {
+					foreach (array('' => '', -2 => _t('gen.short.by_default'), 0 => '0', 10 => '10', 50 => '50', 100 => '100', 500 => '500', 1000 => '1 000', 5000 => '5 000', 10000 => '10 000', -1 => '∞') as $v => $t) {
 						echo '<option value="' . $v . ($this->feed->keepHistory() === $v ? '" selected="selected' : '') . '">' . $t . '</option>';
 					}
 				?></select>
 			</div>
 		</div>
 		<div class="form-group">
-			<label class="group-name" for="ttl"><?php echo _t('ttl'); ?></label>
+			<label class="group-name" for="ttl"><?php echo _t('sub.feed.ttl'); ?></label>
 			<div class="group-controls">
 				<select class="number" name="ttl" id="ttl" required="required"><?php
 					$found = false;
-					foreach (array(-2 => _t('by_default'), 900 => '15min', 1200 => '20min', 1500 => '25min', 1800 => '30min', 2700 => '45min',
+					foreach (array(-2 => _t('gen.short.by_default'), 900 => '15min', 1200 => '20min', 1500 => '25min', 1800 => '30min', 2700 => '45min',
 					                3600 => '1h', 5400 => '1.5h', 7200 => '2h', 10800 => '3h', 14400 => '4h', 18800 => '5h', 21600 => '6h', 25200 => '7h', 28800 => '8h',
 					                36000 => '10h', 43200 => '12h', 64800 => '18h',
 					                86400 => '1d', 129600 => '1.5d', 172800 => '2d', 259200 => '3d', 345600 => '4d', 432000 => '5d', 518400 => '6d',
@@ -128,21 +128,21 @@
 		</div>
 		<div class="form-group form-actions">
 			<div class="group-controls">
-				<button class="btn btn-important"><?php echo _t('save'); ?></button>
-				<button class="btn btn-attention confirm" formmethod="post" formaction="<?php echo _url('feed', 'truncate', 'id', $this->feed->id()); ?>"><?php echo _t('truncate'); ?></button>
+				<button class="btn btn-important"><?php echo _t('gen.action.submit'); ?></button>
+				<button class="btn btn-attention confirm" formmethod="post" formaction="<?php echo _url('feed', 'truncate', 'id', $this->feed->id()); ?>"><?php echo _t('gen.action.truncate'); ?></button>
 			</div>
 		</div>
 
-		<legend><?php echo _t('login_configuration'); ?></legend>
+		<legend><?php echo _t('sub.feed.auth.configuration'); ?></legend>
 		<?php $auth = $this->feed->httpAuth(false); ?>
 		<div class="form-group">
-			<label class="group-name" for="http_user"><?php echo _t('http_username'); ?></label>
+			<label class="group-name" for="http_user"><?php echo _t('sub.feed.auth.username'); ?></label>
 			<div class="group-controls">
 				<input type="text" name="http_user" id="http_user" class="extend" value="<?php echo $auth['username']; ?>" autocomplete="off" />
-				<?php echo _i('help'); ?> <?php echo _t('access_protected_feeds'); ?>
+				<?php echo _i('help'); ?> <?php echo _t('sub.feed.auth.help'); ?>
 			</div>
 
-			<label class="group-name" for="http_pass"><?php echo _t('http_password'); ?></label>
+			<label class="group-name" for="http_pass"><?php echo _t('sub.feed.auth.password'); ?></label>
 			<div class="group-controls">
 				<input type="password" name="http_pass" id="http_pass" class="extend" value="<?php echo $auth['password']; ?>" autocomplete="off" />
 			</div>
@@ -150,24 +150,24 @@
 
 		<div class="form-group form-actions">
 			<div class="group-controls">
-				<button type="submit" class="btn btn-important"><?php echo _t('save'); ?></button>
-				<button type="reset" class="btn"><?php echo _t('cancel'); ?></button>
+				<button type="submit" class="btn btn-important"><?php echo _t('gen.action.submit'); ?></button>
+				<button type="reset" class="btn"><?php echo _t('gen.action.cancel'); ?></button>
 			</div>
 		</div>
 
-		<legend><?php echo _t('advanced'); ?></legend>
+		<legend><?php echo _t('sub.feed.advanced'); ?></legend>
 		<div class="form-group">
-			<label class="group-name" for="path_entries"><?php echo _t('css_path_on_website'); ?></label>
+			<label class="group-name" for="path_entries"><?php echo _t('sub.feed.css_path'); ?></label>
 			<div class="group-controls">
-				<input type="text" name="path_entries" id="path_entries" class="extend" value="<?php echo $this->feed->pathEntries(); ?>" placeholder="<?php echo _t('blank_to_disable'); ?>" />
-				<?php echo _i('help'); ?> <?php echo _t('retrieve_truncated_feeds'); ?>
+				<input type="text" name="path_entries" id="path_entries" class="extend" value="<?php echo $this->feed->pathEntries(); ?>" placeholder="<?php echo _t('gen.short.blank_to_disable'); ?>" />
+				<?php echo _i('help'); ?> <?php echo _t('sub.feed.css_help'); ?>
 			</div>
 		</div>
 
 		<div class="form-group form-actions">
 			<div class="group-controls">
-				<button type="submit" class="btn btn-important"><?php echo _t('save'); ?></button>
-				<button type="reset" class="btn"><?php echo _t('cancel'); ?></button>
+				<button type="submit" class="btn btn-important"><?php echo _t('gen.action.submit'); ?></button>
+				<button type="reset" class="btn"><?php echo _t('gen.action.cancel'); ?></button>
 			</div>
 		</div>
 	</form>

+ 1 - 1
app/views/stats/idle.phtml

@@ -30,7 +30,7 @@
 					</div>
 				</li>
 				<li class="item">
-					<span title="<?php echo timestamptodate($feed['last_date'], false); ?>"><?php echo $feed['name']; ?> (<?php echo _t('admin.stats.number_articles', $feed['nb_articles']); ?>)</span>
+					<span title="<?php echo timestamptodate($feed['last_date'], false); ?>"><?php echo $feed['name']; ?> (<?php echo _t('admin.stats.number_entries', $feed['nb_articles']); ?>)</span>
 				</li>
 			</ul>
 			<?php } ?>

+ 19 - 19
app/views/subscription/index.phtml

@@ -1,13 +1,13 @@
 <?php $this->partial('aside_subscription'); ?>
 
 <div class="post drop-section">
-	<a href="<?php echo _url('index', 'index'); ?>"><?php echo _t('back_to_rss_feeds'); ?></a>
+	<a href="<?php echo _url('index', 'index'); ?>"><?php echo _t('gen.action.back_to_rss_feeds'); ?></a>
 
-	<h2><?php echo _t('subscription_management'); ?></h2>
+	<h2><?php echo _t('sub.title'); ?></h2>
 
 	<form id="add_rss" method="post" action="<?php echo _url('feed', 'add'); ?>" autocomplete="off">
 		<div class="stick">
-			<input type="url" name="url_rss" class="extend" placeholder="<?php echo _t('add_rss_feed'); ?>" />
+			<input type="url" name="url_rss" class="extend" placeholder="<?php echo _t('sub.feed.add'); ?>" />
 			<div class="dropdown">
 				<div id="dropdown-cat" class="dropdown-target"></div>
 
@@ -15,7 +15,7 @@
 				<ul class="dropdown-menu">
 					<li class="dropdown-close"><a href="#close">❌</a></li>
 
-					<li class="dropdown-header"><?php echo _t('category'); ?></li>
+					<li class="dropdown-header"><?php echo _t('sub.category'); ?></li>
 
 					<li class="input">
 						<select name="category" id="category">
@@ -24,22 +24,22 @@
 							<?php echo $cat->name(); ?>
 						</option>
 						<?php } ?>
-						<option value="nc"><?php echo _t('new_category'); ?></option>
+						<option value="nc"><?php echo _t('sub.category.new'); ?></option>
 						</select>
 					</li>
 
 					<li class="input" style="display:none">
-						<input type="text" name="new_category[name]" id="new_category_name" autocomplete="off" placeholder="<?php echo _t('new_category'); ?>" />
+						<input type="text" name="new_category[name]" id="new_category_name" autocomplete="off" placeholder="<?php echo _t('sub.category.new'); ?>" />
 					</li>
 
 					<li class="separator"></li>
 
-					<li class="dropdown-header"><?php echo _t('http_authentication'); ?></li>
+					<li class="dropdown-header"><?php echo _t('sub.feed.auth.http'); ?></li>
 					<li class="input">
-						<input type="text" name="http_user" id="http_user_add" autocomplete="off" placeholder="<?php echo _t('username'); ?>" />
+						<input type="text" name="http_user" id="http_user_add" autocomplete="off" placeholder="<?php echo _t('sub.feed.auth.username'); ?>" />
 					</li>
 					<li class="input">
-						<input type="password" name="http_pass" id="http_pass_add" autocomplete="off" placeholder="<?php echo _t('password'); ?>" />
+						<input type="password" name="http_pass" id="http_pass_add" autocomplete="off" placeholder="<?php echo _t('sub.feed.auth.password'); ?>" />
 					</li>
 				</ul>
 			</div>
@@ -48,16 +48,16 @@
 	</form>
 
 	<p class="alert alert-warn">
-		<?php echo _t('feeds_moved_category_deleted', $this->default_category->name()); ?>
+		<?php echo _t('sub.feed.moved_category_deleted', $this->default_category->name()); ?>
 	</p>
 
 	<div class="box">
-		<div class="box-title"><label for="new-category"><?php echo _t('add_category'); ?></label></div>
+		<div class="box-title"><label for="new-category"><?php echo _t('sub.category.add'); ?></label></div>
 
 		<ul class="box-content box-content-centered">
 			<form action="<?php echo _url('category', 'create'); ?>" method="post">
-				<li class="item"><input type="text" id="new-category" name="new-category" placeholder="<?php echo _t('new_category'); ?>" /></li>
-				<li class="item"><button class="btn btn-important" type="submit"><?php echo _t('submit'); ?></button></li>
+				<li class="item"><input type="text" id="new-category" name="new-category" placeholder="<?php echo _t('sub.category.new'); ?>" /></li>
+				<li class="item"><button class="btn btn-important" type="submit"><?php echo _t('gen.action.submit'); ?></button></li>
 			</form>
 		</ul>
 	</div>
@@ -80,7 +80,7 @@
 					<ul class="dropdown-menu">
 						<li class="dropdown-close"><a href="#close">❌</a></li>
 
-						<li class="item"><a href="<?php echo _url('index', 'index', 'get', 'c_' . $cat->id()); ?>"><?php echo _t('filter'); ?></a></li>
+						<li class="item"><a href="<?php echo _url('index', 'index', 'get', 'c_' . $cat->id()); ?>"><?php echo _t('gen.action.filter'); ?></a></li>
 
 						<?php
 							$no_feed = empty($feeds);
@@ -92,20 +92,20 @@
 						<?php } if (!$no_feed) { ?>
 						<li class="item">
 							<button class="as-link confirm"
-							        data-str-confirm="<?php echo _t('confirm_action_feed_cat'); ?>"
+							        data-str-confirm="<?php echo _t('gen.js.confirm_action_feed_cat'); ?>"
 							        type="submit"
 							        form="controller-category"
 							        formaction="<?php echo _url('category', 'empty', 'id', $cat->id()); ?>">
-							        <?php echo _t('ask_empty'); ?></button>
+							        <?php echo _t('gen.action.empty'); ?></button>
 						</li>
 						<?php } if (!$is_default) { ?>
 						<li class="item">
 							<button class="as-link confirm"
-							        data-str-confirm="<?php echo _t('confirm_action_feed_cat'); ?>"
+							        data-str-confirm="<?php echo _t('gen.js.confirm_action_feed_cat'); ?>"
 							        type="submit"
 							        form="controller-category"
 							        formaction="<?php echo _url('category', 'delete', 'id', $cat->id()); ?>">
-							        <?php echo _t('delete'); ?></button>
+							        <?php echo _t('gen.action.remove'); ?></button>
 						</li>
 						<?php } ?>
 					</ul>
@@ -130,7 +130,7 @@
 			<?php 	}
 				} else {
 			?>
-			<li class="item disabled" dropzone="move"><?php echo _t('category_empty'); ?></li>
+			<li class="item disabled" dropzone="move"><?php echo _t('sub.category.empty'); ?></li>
 			<?php } ?>
 		</ul>
 	</div>