Преглед изворни кода

Reformat i18n correctly (#2976)

* Ignore i18n gen.dir key

* Add a makefile target to update an i18n key

* Mark some i18n keys to ignore

* Reformat i18n files correctly

* Make i18n keys sort case-sensitive

Calling `make i18n-format` was always inverting 4 lines:

- gen.date.dec with gen.date.Dec
- and gen.date.nov with gen.date.Nov

I don't know why these particular lines and not the others, but it
appeared the sort function was case insensitive due to the
`SORT_FLAG_CASE` flag passed to the `ksort` function. Removing this flag
makes the calls to the formatter idempotent and more reliable.

Unfortunately it moves a lot of lines since the `_` character is
considered differently.

* Check i18n files are correctly formatted on Travis
Marien Fressinaud пре 5 година
родитељ
комит
8487fa6248
100 измењених фајлова са 889 додато и 862 уклоњено
  1. 7 0
      .travis.yml
  2. 14 0
      Makefile
  3. 7 7
      app/i18n/cz/admin.php
  4. 14 14
      app/i18n/cz/conf.php
  5. 11 11
      app/i18n/cz/feedback.php
  6. 17 17
      app/i18n/cz/gen.php
  7. 2 2
      app/i18n/cz/index.php
  8. 5 5
      app/i18n/cz/install.php
  9. 7 7
      app/i18n/cz/sub.php
  10. 7 7
      app/i18n/de/admin.php
  11. 14 14
      app/i18n/de/conf.php
  12. 11 11
      app/i18n/de/feedback.php
  13. 17 17
      app/i18n/de/gen.php
  14. 2 2
      app/i18n/de/index.php
  15. 5 5
      app/i18n/de/install.php
  16. 7 7
      app/i18n/de/sub.php
  17. 7 7
      app/i18n/en/admin.php
  18. 13 13
      app/i18n/en/conf.php
  19. 10 10
      app/i18n/en/feedback.php
  20. 17 17
      app/i18n/en/gen.php
  21. 2 2
      app/i18n/en/index.php
  22. 5 5
      app/i18n/en/install.php
  23. 4 4
      app/i18n/en/sub.php
  24. 7 7
      app/i18n/es/admin.php
  25. 14 14
      app/i18n/es/conf.php
  26. 11 11
      app/i18n/es/feedback.php
  27. 18 18
      app/i18n/es/gen.php
  28. 2 2
      app/i18n/es/index.php
  29. 5 5
      app/i18n/es/install.php
  30. 7 7
      app/i18n/es/sub.php
  31. 7 7
      app/i18n/fr/admin.php
  32. 13 13
      app/i18n/fr/conf.php
  33. 9 9
      app/i18n/fr/feedback.php
  34. 17 17
      app/i18n/fr/gen.php
  35. 2 2
      app/i18n/fr/index.php
  36. 5 5
      app/i18n/fr/install.php
  37. 4 4
      app/i18n/fr/sub.php
  38. 7 7
      app/i18n/he/admin.php
  39. 14 14
      app/i18n/he/conf.php
  40. 11 11
      app/i18n/he/feedback.php
  41. 17 17
      app/i18n/he/gen.php
  42. 2 2
      app/i18n/he/index.php
  43. 5 5
      app/i18n/he/install.php
  44. 7 7
      app/i18n/he/sub.php
  45. 7 7
      app/i18n/it/admin.php
  46. 15 12
      app/i18n/it/conf.php
  47. 11 11
      app/i18n/it/feedback.php
  48. 17 17
      app/i18n/it/gen.php
  49. 2 2
      app/i18n/it/index.php
  50. 5 5
      app/i18n/it/install.php
  51. 7 7
      app/i18n/it/sub.php
  52. 7 7
      app/i18n/kr/admin.php
  53. 14 14
      app/i18n/kr/conf.php
  54. 11 11
      app/i18n/kr/feedback.php
  55. 17 17
      app/i18n/kr/gen.php
  56. 2 2
      app/i18n/kr/index.php
  57. 5 5
      app/i18n/kr/install.php
  58. 7 7
      app/i18n/kr/sub.php
  59. 7 7
      app/i18n/nl/admin.php
  60. 13 13
      app/i18n/nl/conf.php
  61. 11 11
      app/i18n/nl/feedback.php
  62. 17 17
      app/i18n/nl/gen.php
  63. 2 2
      app/i18n/nl/index.php
  64. 5 5
      app/i18n/nl/install.php
  65. 7 7
      app/i18n/nl/sub.php
  66. 8 8
      app/i18n/oc/admin.php
  67. 13 13
      app/i18n/oc/conf.php
  68. 9 9
      app/i18n/oc/feedback.php
  69. 17 17
      app/i18n/oc/gen.php
  70. 2 2
      app/i18n/oc/index.php
  71. 5 5
      app/i18n/oc/install.php
  72. 4 4
      app/i18n/oc/sub.php
  73. 7 7
      app/i18n/pt-br/admin.php
  74. 15 15
      app/i18n/pt-br/conf.php
  75. 10 10
      app/i18n/pt-br/feedback.php
  76. 21 18
      app/i18n/pt-br/gen.php
  77. 2 2
      app/i18n/pt-br/index.php
  78. 5 5
      app/i18n/pt-br/install.php
  79. 5 5
      app/i18n/pt-br/sub.php
  80. 7 7
      app/i18n/ru/admin.php
  81. 13 13
      app/i18n/ru/conf.php
  82. 11 11
      app/i18n/ru/feedback.php
  83. 17 17
      app/i18n/ru/gen.php
  84. 2 2
      app/i18n/ru/index.php
  85. 5 5
      app/i18n/ru/install.php
  86. 7 7
      app/i18n/ru/sub.php
  87. 7 7
      app/i18n/sk/admin.php
  88. 14 14
      app/i18n/sk/conf.php
  89. 11 11
      app/i18n/sk/feedback.php
  90. 17 17
      app/i18n/sk/gen.php
  91. 2 2
      app/i18n/sk/index.php
  92. 5 5
      app/i18n/sk/install.php
  93. 7 7
      app/i18n/sk/sub.php
  94. 7 7
      app/i18n/tr/admin.php
  95. 14 14
      app/i18n/tr/conf.php
  96. 11 11
      app/i18n/tr/feedback.php
  97. 17 17
      app/i18n/tr/gen.php
  98. 2 2
      app/i18n/tr/index.php
  99. 5 5
      app/i18n/tr/install.php
  100. 7 7
      app/i18n/tr/sub.php

+ 7 - 0
.travis.yml

@@ -37,6 +37,13 @@ jobs:
         - find . -name \*.php -print0 | xargs -0 -n1 -P4 php -l 1>/dev/null 2>php-l-results
         - if [ -s php-l-results ]; then cat php-l-results; exit 1; fi
 
+    - name: "Translations format"
+      php: "7.3"
+      script:
+        - phpenv rehash
+        - php cli/manipulate.translation.php -a format
+        - git diff --exit-code
+
     - name: "Translations"
       php: "7.3"
       script:

+ 14 - 0
Makefile

@@ -102,6 +102,20 @@ endif
 	@$(PHP) ./cli/manipulate.translation.php -a delete -k $(key)
 	@echo Key removed.
 
+.PHONY: i18n-update-key
+i18n-update-key: ## Update a translation key in all supported languages
+ifndef key
+	@echo To update a key, you need to provide one in the "key" variable.
+	@exit 10
+endif
+ifndef value
+	@echo To update a key, you need to provide its value in the "value" variable.
+	@exit 10
+endif
+	@$(PHP) ./cli/manipulate.translation.php -a delete -k $(key)
+	@$(PHP) ./cli/manipulate.translation.php -a add -k $(key) -v "$(value)"
+	@echo Key updated.
+
 .PHONY: i18n-ignore-key
 i18n-ignore-key: ## Ignore a translation key for the selected language
 ifndef lang

+ 7 - 7
app/i18n/cz/admin.php

@@ -83,9 +83,9 @@ return array(
 			'ok' => 'Máte PDO a alespoň jeden z podporovaných ovladačů (pdo_mysql, pdo_sqlite, pdo_pgsql).',
 		),
 		'php' => array(
+			'_' => 'PHP instalace',
 			'nok' => 'Vaše verze PHP je %s, ale FreshRSS vyžaduje alespoň verzi %s.',
 			'ok' => 'Vaše verze PHP je %s a je kompatibilní s FreshRSS.',
-			'_' => 'PHP instalace',
 		),
 		'tables' => array(
 			'nok' => 'V databázi chybí jedna nevo více tabulek.',
@@ -116,8 +116,8 @@ return array(
 		'name' => 'Name',	// TODO - Translation
 		'no_configure_view' => 'Toto rozšíření nemá žádné možnosti nastavení.',
 		'system' => array(
-			'no_rights' => 'Systémová rozšíření (na ně nemáte oprávnění)',
 			'_' => 'Systémová rozšíření',
+			'no_rights' => 'Systémová rozšíření (na ně nemáte oprávnění)',
 		),
 		'title' => 'Rozšíření',
 		'update' => 'Update available',	// TODO - Translation
@@ -125,6 +125,7 @@ return array(
 		'version' => 'Version',	// TODO - Translation
 	),
 	'stats' => array(
+		'_' => 'Statistika',
 		'all_feeds' => 'Všechny kanály',
 		'category' => 'Kategorie',
 		'entry_count' => 'Počet článků',
@@ -154,9 +155,9 @@ return array(
 		'status_unread' => 'Nepřečtené',
 		'title' => 'Statistika',
 		'top_feed' => 'Top ten kanálů',
-		'_' => 'Statistika',
 	),
 	'system' => array(
+		'_' => 'System configuration',	// TODO - Translation
 		'auto-update-url' => 'Auto-update server URL',	// TODO - Translation
 		'cookie-duration' => array(
 			'help' => 'in seconds',	// TODO - Translation
@@ -170,21 +171,20 @@ return array(
 			'help' => '0 znamená žádná omezení účtu',
 			'number' => 'Maximální počet účtů',
 		),
-		'_' => 'System configuration',	// TODO - Translation
 	),
 	'update' => array(
+		'_' => 'Aktualizace systému',
 		'apply' => 'Použít',
 		'check' => 'Zkontrolovat aktualizace',
 		'current_version' => 'Vaše instalace FreshRSS je verze %s.',
 		'last' => 'Poslední kontrola: %s',
 		'none' => 'Žádné nové aktualizace',
 		'title' => 'Aktualizovat systém',
-		'_' => 'Aktualizace systému',
 	),
 	'user' => array(
 		'admin' => 'Administrator',	// TODO - Translation
-		'articles_and_size' => '%s článků (%s)',
 		'article_count' => 'Articles',	// TODO - Translation
+		'articles_and_size' => '%s článků (%s)',
 		'back_to_manage' => '← Return to user list',	// TODO - Translation
 		'create' => 'Vytvořit nového uživatele',
 		'database_size' => 'Database size',	// TODO - Translation
@@ -202,8 +202,8 @@ return array(
 		'selected' => 'Selected user',	// TODO - Translation
 		'title' => 'Správa uživatelů',
 		'update_users' => 'Update user',	// TODO - Translation
+		'user_list' => 'Seznam uživatelů',
 		'username' => 'Přihlašovací jméno',
 		'users' => 'Uživatelé',
-		'user_list' => 'Seznam uživatelů',
 	),
 );

+ 14 - 14
app/i18n/cz/conf.php

@@ -2,6 +2,7 @@
 
 return array(
 	'archiving' => array(
+		'_' => 'Archivace',
 		'delete_after' => 'Smazat články starší než',
 		'exception' => 'Purge exception',	// TODO - Translation
 		'help' => 'Více možností je dostupných v nastavení jednotlivých kanálů',
@@ -19,9 +20,9 @@ return array(
 		'purge_now' => 'Vyčistit nyní',
 		'title' => 'Archivace',
 		'ttl' => 'Neaktualizovat častěji než',
-		'_' => 'Archivace',
 	),
 	'display' => array(
+		'_' => 'Zobrazení',
 		'icon' => array(
 			'bottom_line' => 'Spodní řádek',
 			'display_authors' => 'Authors',	// TODO - Translation
@@ -46,22 +47,22 @@ return array(
 			'no_limit' => 'Bez limitu',
 			'thin' => 'Tenká',
 		),
-		'_' => 'Zobrazení',
 	),
 	'profile' => array(
+		'_' => 'Správa profilu',
 		'api' => 'API management',	// TODO - Translation
 		'delete' => array(
-			'warn' => 'Váš účet bude smazán spolu se všemi souvisejícími daty',
 			'_' => 'Smazání účtu',
+			'warn' => 'Váš účet bude smazán spolu se všemi souvisejícími daty',
 		),
 		'email' => 'Email',
 		'password_api' => 'Password API<br /><small>(tzn. pro mobilní aplikace)</small>',
 		'password_form' => 'Heslo<br /><small>(pro přihlášení webovým formulářem)</small>',
 		'password_format' => 'Alespoň 7 znaků',
 		'title' => 'Profil',
-		'_' => 'Správa profilu',
 	),
 	'query' => array(
+		'_' => 'Uživatelské dotazy',
 		'deprecated' => 'Tento dotaz již není platný. Odkazovaná kategorie nebo kanál byly smazány.',
 		'display' => 'Display user query results',	// TODO - Translation
 		'filter' => 'Filtr aplikován:',
@@ -69,8 +70,8 @@ return array(
 		'get_category' => 'Zobrazit "%s" kategorii',
 		'get_favorite' => 'Zobrazit oblíbené články',
 		'get_feed' => 'Zobrazit "%s" článkek',
-		'none' => 'Ještě jste nevytvořil žádný uživatelský dotaz.',
 		'no_filter' => 'Zrušit filtr',
+		'none' => 'Ještě jste nevytvořil žádný uživatelský dotaz.',
 		'number' => 'Dotaz n°%d',
 		'order_asc' => 'Zobrazit nejdříve nejstarší články',
 		'order_desc' => 'Zobrazit nejdříve nejnovější články',
@@ -93,9 +94,9 @@ return array(
 		'state_14' => 'Zobrazit nepřečtené články',
 		'state_15' => 'Zobrazit všechny články',
 		'title' => 'Uživatelské dotazy',
-		'_' => 'Uživatelské dotazy',
 	),
 	'reading' => array(
+		'_' => 'Čtení',
 		'after_onread' => 'Po “označit vše jako přečtené”,',
 		'always_show_favorites' => 'Show all articles in favorites by default',	// TODO - Translation
 		'articles_per_page' => 'Počet článků na stranu',
@@ -117,19 +118,19 @@ return array(
 			'when' => 'Označit článek jako přečtený…',
 		),
 		'show' => array(
+			'_' => 'Počet zobrazených článků',
+			'active_category' => 'Active category',	// TODO - Translation
 			'adaptive' => 'Vyberte zobrazení',
 			'all_articles' => 'Zobrazit všechny články',
-			'unread' => 'Zobrazit jen nepřečtené',
-			'active_category' => 'Active category',	// TODO - Translation
 			'all_categories' => 'All categories',	// TODO - Translation
 			'no_category' => 'No category',	// TODO - Translation
-			'_' => 'Počet zobrazených článků',
+			'unread' => 'Zobrazit jen nepřečtené',
 		),
 		'sides_close_article' => 'Clicking outside of article text area closes the article',	// TODO - Translation
 		'sort' => array(
+			'_' => 'Řazení',
 			'newer_first' => 'Nejdříve nejnovější',
 			'older_first' => 'Nejdříve nejstarší',
-			'_' => 'Řazení',
 		),
 		'sticky_post' => 'Při otevření posunout článek nahoru',
 		'title' => 'Čtení',
@@ -139,9 +140,9 @@ return array(
 			'normal' => 'Normální',
 			'reader' => 'Čtení',
 		),
-		'_' => 'Čtení',
 	),
 	'sharing' => array(
+		'_' => 'Sdílení',
 		'add' => 'Add a sharing method',	// TODO - Translation
 		'blogotext' => 'Blogotext',	// TODO - Translation
 		'diaspora' => 'Diaspora*',	// TODO - Translation
@@ -156,9 +157,9 @@ return array(
 		'title' => 'Sdílení',
 		'twitter' => 'Twitter',	// TODO - Translation
 		'wallabag' => 'wallabag',	// TODO - Translation
-		'_' => 'Sdílení',
 	),
 	'shortcut' => array(
+		'_' => 'Zkratky',
 		'article_action' => 'Články - akce',
 		'auto_share' => 'Sdílet',
 		'auto_share_help' => 'Je-li nastavena pouze jedna možnost sdílení, bude použita. Další možnosti jsou dostupné pomocí jejich čísla.',
@@ -183,14 +184,13 @@ return array(
 		'reading_view' => 'Switch to reading view',	// TODO - Translation
 		'rss_view' => 'Open RSS view in a new tab',	// TODO - Translation
 		'see_on_website' => 'Navštívit původní webovou stránku',
-		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> označí vše jako přečtené',	// TODO - Translation
+		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> to mark all articles as read',	// TODO - Translation
 		'skip_next_article' => 'Focus next without opening',	// TODO - Translation
 		'skip_previous_article' => 'Focus previous without opening',	// TODO - Translation
 		'title' => 'Zkratky',
 		'user_filter' => 'Aplikovat uživatelské filtry',
 		'user_filter_help' => 'Je-li nastaven pouze jeden filtr, bude použit. Další filtry jsou dostupné pomocí jejich čísla.',
 		'views' => 'Views',	// TODO - Translation
-		'_' => 'Zkratky',
 	),
 	'user' => array(
 		'articles_and_size' => '%s článků (%s)',

+ 11 - 11
app/i18n/cz/feedback.php

@@ -44,9 +44,9 @@ return array(
 			'ko' => '%s nelze zapnout. Pro více detailů <a href="%s">zkontrolujte logy FreshRSS</a>.',
 			'ok' => '%s je nyní zapnut',
 		),
+		'no_access' => 'Nemáte přístup k %s',
 		'not_enabled' => '%s není ještě zapnut',
 		'not_found' => '%s neexistuje',
-		'no_access' => 'Nemáte přístup k %s',
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'Na serveru není naistalována podpora ZIP. Zkuste prosím exportovat soubory jeden po druhém.',
@@ -72,10 +72,10 @@ return array(
 			'emptied' => 'Kategorie byla vyprázdněna',
 			'error' => 'Kategorii nelze aktualizovat',
 			'name_exists' => 'Název kategorie již existuje.',
-			'not_delete_default' => 'Nelze smazat výchozí kategorii!',
-			'not_exist' => 'Tato kategorie neexistuje!',
 			'no_id' => 'Musíte upřesnit id kategorie.',
 			'no_name' => 'Název kategorie nemůže být prázdný.',
+			'not_delete_default' => 'Nelze smazat výchozí kategorii!',
+			'not_exist' => 'Tato kategorie neexistuje!',
 			'over_max' => 'Dosáhl jste maximálního počtu kategorií (%d)',
 			'updated' => 'Kategorie byla aktualizována.',
 		),
@@ -89,17 +89,17 @@ return array(
 			'error' => 'Kanál nelze aktualizovat',
 			'internal_problem' => 'RSS kanál nelze přidat. Pro detaily <a href="%s">zkontrolujte logy FreshRSS</a>.',
 			'invalid_url' => 'URL <em>%s</em> není platné',
-			'not_added' => '<em>%s</em> nemůže být přidán',
-			'not_found' => 'Feed cannot be found',	// TODO - Translation
-			'no_refresh' => 'Nelze obnovit žádné kanály…',
 			'n_actualized' => '%d kanálů bylo aktualizováno',
 			'n_entries_deleted' => '%d článků bylo smazáno',
+			'no_refresh' => 'Nelze obnovit žádné kanály…',
+			'not_added' => '<em>%s</em> nemůže být přidán',
+			'not_found' => 'Feed cannot be found',	// TODO - Translation
 			'over_max' => 'Dosáhl jste maximálního počtu kanálů (%d)',
 			'reloaded' => '<em>%s</em> has been reloaded',	// TODO - Translation
 			'selector_preview' => array(
 				'http_error' => 'Failed to load website content.',	// TODO - Translation
-				'no_entries' => 'There is no entries in your feed. You need at least one entry to create a preview.',	// TODO - Translation
-				'no_feed' => 'Internal error (no feed to entry).',	// TODO - Translation
+				'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.',	// TODO - Translation
+				'no_feed' => 'Internal error (feed can’t be found).',	// TODO - Translation
 				'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.',	// TODO - Translation
 				'selector_empty' => 'The selector is empty. You need to define one to create a preview.',	// TODO - Translation
 			),
@@ -117,16 +117,16 @@ return array(
 	),
 	'user' => array(
 		'created' => array(
-			'error' => 'Uživatele %s nelze vytvořit',
 			'_' => 'Uživatel %s byl vytvořen',
+			'error' => 'Uživatele %s nelze vytvořit',
 		),
 		'deleted' => array(
-			'error' => 'Uživatele %s nelze smazat',
 			'_' => 'Uživatel %s byl smazán',
+			'error' => 'Uživatele %s nelze smazat',
 		),
 		'updated' => array(
-			'error' => 'User %s has not been updated',	// TODO - Translation
 			'_' => 'User %s has been updated',	// TODO - Translation
+			'error' => 'User %s has not been updated',	// TODO - Translation
 		),
 	),
 );

+ 17 - 17
app/i18n/cz/gen.php

@@ -32,45 +32,50 @@ return array(
 		'login' => 'Login',	// TODO - Translation
 		'logout' => 'Odhlášení',
 		'password' => array(
-			'format' => '<small>Alespoň 7 znaků</small>',
 			'_' => 'Heslo',
+			'format' => '<small>Alespoň 7 znaků</small>',
 		),
 		'registration' => array(
+			'_' => 'Nový účet',
 			'ask' => 'Vytvořit účet?',
 			'title' => 'Vytvoření účtu',
-			'_' => 'Nový účet',
 		),
 		'reset' => 'Reset přihlášení',
 		'username' => array(
+			'_' => 'Uživatel',
 			'admin' => 'Název administrátorského účtu',
 			'format' => '<small>Maximálně 16 alfanumerických znaků</small>',
-			'_' => 'Uživatel',
 		),
 	),
 	'date' => array(
-		'apr' => 'dub',
 		'Apr' => '\\D\\u\\b\\e\\n',
-		'april' => 'Dub',
 		'Aug' => '\\S\\r\\p\\e\\n',
+		'Dec' => '\\P\\r\\o\\s\\i\\n\\e\\c',
+		'Feb' => '\\Ú\\n\\o\\r',
+		'Jan' => '\\L\\e\\d\\e\\n',
+		'Jul' => '\\Č\\e\\r\\v\\e\\n\\e\\c',
+		'Jun' => '\\Č\\e\\r\\v\\e\\n',
+		'Mar' => '\\B\\ř\\e\\z\\e\\n',
+		'May' => '\\K\\v\\ě\\t\\e\\n',
+		'Nov' => '\\L\\i\\s\\t\\o\\p\\a\\d',
+		'Oct' => '\\Ř\\í\\j\\e\\n',
+		'Sep' => '\\Z\\á\\ř\\í',
+		'apr' => 'dub',
+		'april' => 'Dub',
 		'aug' => 'srp',
 		'august' => 'Srp',
 		'before_yesterday' => 'Předevčírem',
-		'Dec' => '\\P\\r\\o\\s\\i\\n\\e\\c',
 		'dec' => 'pro',
 		'december' => 'Pro',
-		'Feb' => '\\Ú\\n\\o\\r',
 		'feb' => 'úno',
 		'february' => 'Úno',
 		'format_date' => 'j\\. %s Y',
 		'format_date_hour' => 'j\\. %s Y \\v H\\:i',
 		'fri' => 'Pá',
-		'Jan' => '\\L\\e\\d\\e\\n',
 		'jan' => 'led',
 		'january' => 'Led',
 		'jul' => 'čvn',
-		'Jul' => '\\Č\\e\\r\\v\\e\\n\\e\\c',
 		'july' => 'Čvn',
-		'Jun' => '\\Č\\e\\r\\v\\e\\n',
 		'jun' => 'čer',
 		'june' => 'Čer',
 		'last_2_year' => 'Last two years',	// TODO - Translation
@@ -81,22 +86,17 @@ return array(
 		'last_month' => 'Minulý měsíc',
 		'last_week' => 'Minulý týden',
 		'last_year' => 'Minulý rok',
-		'Mar' => '\\B\\ř\\e\\z\\e\\n',
 		'mar' => 'bře',
 		'march' => 'Bře',
 		'may' => 'Květen',
-		'May' => '\\K\\v\\ě\\t\\e\\n',
 		'may_' => 'Kvě',
 		'mon' => 'Po',
 		'month' => 'měsíce',
-		'Nov' => '\\L\\i\\s\\t\\o\\p\\a\\d',
 		'nov' => 'lis',
 		'november' => 'Lis',
-		'Oct' => '\\Ř\\í\\j\\e\\n',
 		'oct' => 'říj',
 		'october' => 'Říj',
 		'sat' => 'So',
-		'Sep' => '\\Z\\á\\ř\\í',
 		'sep' => 'zář',
 		'september' => 'Zář',
 		'sun' => 'Ne',
@@ -108,8 +108,8 @@ return array(
 	),
 	'dir' => 'ltr',
 	'freshrss' => array(
-		'about' => 'O FreshRSS',
 		'_' => 'FreshRSS',	// TODO - Translation
+		'about' => 'O FreshRSS',
 	),
 	'js' => array(
 		'category_empty' => 'Prázdná kategorie',
@@ -178,13 +178,13 @@ return array(
 		'years' => 'years',	// TODO - Translation
 	),
 	'share' => array(
+		'Known' => 'Known based sites',	// TODO - Translation
 		'blogotext' => 'Blogotext',	// TODO - Translation
 		'diaspora' => 'Diaspora*',	// TODO - Translation
 		'email' => 'Email',	// TODO - Translation
 		'facebook' => 'Facebook',	// TODO - Translation
 		'gnusocial' => 'GNU social',	// TODO - Translation
 		'jdh' => 'Journal du hacker',	// TODO - Translation
-		'Known' => 'Known based sites',	// TODO - Translation
 		'lemmy' => 'Lemmy',	// TODO - Translation
 		'linkedin' => 'LinkedIn',	// TODO - Translation
 		'mastodon' => 'Mastodon',	// TODO - Translation

+ 2 - 2
app/i18n/cz/index.php

@@ -2,6 +2,7 @@
 
 return array(
 	'about' => array(
+		'_' => 'O FreshRSS',
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',	// TODO - Translation
 		'bugs_reports' => 'Hlášení chyb',
 		'credits' => 'Poděkování',
@@ -13,7 +14,6 @@ return array(
 		'title' => 'O FreshRSS',
 		'version' => 'Verze',
 		'website' => 'Webové stránka',
-		'_' => 'O FreshRSS',
 	),
 	'feed' => array(
 		'add' => 'Můžete přidat kanály.',
@@ -24,10 +24,10 @@ return array(
 		'title_global' => 'Přehled',
 	),
 	'log' => array(
+		'_' => 'Logy',
 		'clear' => 'Vymazat logy',
 		'empty' => 'Log je prázdný',
 		'title' => 'Logy',
-		'_' => 'Logy',
 	),
 	'menu' => array(
 		'about' => 'O FreshRSS',

+ 5 - 5
app/i18n/cz/install.php

@@ -17,19 +17,20 @@ return array(
 		'type' => 'Způsob přihlášení',
 	),
 	'bdd' => array(
+		'_' => 'Databáze',
 		'conf' => array(
+			'_' => 'Nastavení databáze',
 			'ko' => 'Ověřte informace o databázi.',
 			'ok' => 'Nastavení databáze bylo uloženo.',
-			'_' => 'Nastavení databáze',
 		),
 		'host' => 'Hostitel',
 		'password' => 'Heslo',
 		'prefix' => 'Prefix tabulky',
 		'type' => 'Typ databáze',
 		'username' => 'Uživatel',
-		'_' => 'Databáze',
 	),
 	'check' => array(
+		'_' => 'Kontrola',
 		'already_installed' => 'Zjistili jsme, že FreshRSS je již nainstalován!',
 		'cache' => array(
 			'nok' => 'Zkontrolujte oprávnění adresáře <em>./data/cache</em>. HTTP server musí mít do tohoto adresáře práva zápisu',
@@ -95,11 +96,10 @@ return array(
 			'nok' => 'Pro parsování XML chybí požadovaná knihovna.',
 			'ok' => 'Máte požadovanou knihovnu pro parsování XML.',
 		),
-		'_' => 'Kontrola',
 	),
 	'conf' => array(
-		'ok' => 'Nastavení bylo uloženo.',
 		'_' => 'Obecná nastavení',
+		'ok' => 'Nastavení bylo uloženo.',
 	),
 	'congratulations' => 'Gratulujeme!',
 	'default_user' => 'Jméno výchozího uživatele <small>(maximálně 16 alfanumerických znaků)</small>',
@@ -110,9 +110,9 @@ return array(
 		'confirm_reinstall' => 'Reinstalací FreshRSS ztratíte předchozí konfiguraci. Opravdu chcete pokračovat?',
 	),
 	'language' => array(
+		'_' => 'Jazyk',
 		'choose' => 'Vyberte jazyk FreshRSS',
 		'defined' => 'Jazyk byl nastaven.',
-		'_' => 'Jazyk',
 	),
 	'not_deleted' => 'Nastala chyba, soubor <em>%s</em> musíte smazat ručně.',
 	'ok' => 'Instalace byla úspěšná.',

+ 7 - 7
app/i18n/cz/sub.php

@@ -11,6 +11,7 @@ return array(
 		'title' => 'Bookmarklet',	// TODO - Translation
 	),
 	'category' => array(
+		'_' => 'Kategorie',
 		'add' => 'Přidat kategorii',
 		'archiving' => 'Archivace',
 		'empty' => 'Vyprázdit kategorii',
@@ -19,7 +20,6 @@ return array(
 		'position' => 'Display position',	// TODO - Translation
 		'position_help' => 'To control category sort order',	// TODO - Translation
 		'title' => 'Název',
-		'_' => 'Kategorie',
 	),
 	'feed' => array(
 		'add' => 'Přidat RSS kanál',
@@ -39,16 +39,16 @@ return array(
 		'empty' => 'Kanál je prázdný. Ověřte prosím zda je ještě autorem udržován.',
 		'error' => 'Vyskytl se problém s kanálem. Ověřte že je vždy dostupný, prosím, a poté jej aktualizujte.',
 		'filteractions' => array(
-			'help' => 'Write one search filter per line.',	// TODO - Translation
 			'_' => 'Filter actions',	// TODO - Translation
+			'help' => 'Write one search filter per line.',	// TODO - Translation
 		),
 		'information' => 'Informace',
 		'keep_min' => 'Zachovat tento minimální počet článků',
 		'maintenance' => array(
 			'clear_cache' => 'Clear cache',	// TODO - Translation
-			'clear_cache_help' => 'Clear the cache of this feed on disk',	// TODO - Translation
+			'clear_cache_help' => 'Clear the cache for this feed.',	// TODO - Translation
 			'reload_articles' => 'Reload articles',	// TODO - Translation
-			'reload_articles_help' => 'Reload articles and fetch complete content',	// TODO - Translation
+			'reload_articles_help' => 'Reload articles and fetch complete content if a selector is defined.',	// TODO - Translation
 			'title' => 'Maintenance',	// TODO - Translation
 		),
 		'moved_category_deleted' => 'Po smazání kategorie budou v ní obsažené kanály automaticky přesunuty do <em>%s</em>.',
@@ -56,13 +56,13 @@ return array(
 		'no_selected' => 'Nejsou označeny žádné kanály.',
 		'number_entries' => '%d článků',
 		'priority' => array(
+			'_' => 'Visibility',	// TODO - Translation
 			'archived' => 'Do not show (archived)',	// TODO - Translation
 			'main_stream' => 'Zobrazit ve “Všechny kanály”',
 			'normal' => 'Show in its category',	// TODO - Translation
-			'_' => 'Visibility',	// TODO - Translation
 		),
 		'selector_preview' => array(
-			'show_raw' => 'Show source',	// TODO - Translation
+			'show_raw' => 'Show source code',	// TODO - Translation
 			'show_rendered' => 'Show content',	// TODO - Translation
 		),
 		'show' => array(
@@ -108,8 +108,8 @@ return array(
 		'subscription_tools' => 'Subscription tools',	// TODO - Translation
 	),
 	'title' => array(
+		'_' => 'Správa subskripcí',
 		'feed_management' => 'Správa RSS kanálů',
 		'subscription_tools' => 'Subscription tools',	// TODO - Translation
-		'_' => 'Správa subskripcí',
 	),
 );

+ 7 - 7
app/i18n/de/admin.php

@@ -83,9 +83,9 @@ return array(
 			'ok' => 'Sie haben PDO und mindestens einen der unterstützten Treiber (pdo_mysql, pdo_sqlite, pdo_pgsql).',
 		),
 		'php' => array(
+			'_' => 'PHP-Installation',
 			'nok' => 'Ihre PHP-Version ist %s aber FreshRSS benötigt mindestens Version %s.',
 			'ok' => 'Ihre PHP-Version ist %s, welche kompatibel mit FreshRSS ist.',
-			'_' => 'PHP-Installation',
 		),
 		'tables' => array(
 			'nok' => 'Es fehlen eine oder mehrere Tabellen in der Datenbank.',
@@ -116,8 +116,8 @@ return array(
 		'name' => 'Name',	// TODO - Translation
 		'no_configure_view' => 'Diese Erweiterung kann nicht konfiguriert werden.',
 		'system' => array(
-			'no_rights' => 'System-Erweiterung (Sie haben keine Berechtigung dafür)',
 			'_' => 'System-Erweiterungen',
+			'no_rights' => 'System-Erweiterung (Sie haben keine Berechtigung dafür)',
 		),
 		'title' => 'Erweiterungen',
 		'update' => 'Update verfügbar',
@@ -125,6 +125,7 @@ return array(
 		'version' => 'Version',	// TODO - Translation
 	),
 	'stats' => array(
+		'_' => 'Statistiken',
 		'all_feeds' => 'Alle Feeds',
 		'category' => 'Kategorie',
 		'entry_count' => 'Anzahl der Einträge',
@@ -154,9 +155,9 @@ return array(
 		'status_unread' => 'Ungelesen',
 		'title' => 'Statistiken',
 		'top_feed' => 'Top 10-Feeds',
-		'_' => 'Statistiken',
 	),
 	'system' => array(
+		'_' => 'Systemeinstellungen',
 		'auto-update-url' => 'Auto-update URL',
 		'cookie-duration' => array(
 			'help' => 'in Sekunden',
@@ -170,21 +171,20 @@ return array(
 			'help' => '0 meint, dass es kein Account Limit gibt',
 			'number' => 'Maximale Anzahl von Accounts',
 		),
-		'_' => 'Systemeinstellungen',
 	),
 	'update' => array(
+		'_' => 'System aktualisieren',
 		'apply' => 'Anwenden',
 		'check' => 'Auf neue Aktualisierungen prüfen',
 		'current_version' => 'Ihre aktuelle Version von FreshRSS ist %s.',
 		'last' => 'Letzte Überprüfung: %s',
 		'none' => 'Keine ausstehende Aktualisierung',
 		'title' => 'System aktualisieren',
-		'_' => 'System aktualisieren',
 	),
 	'user' => array(
 		'admin' => 'Administrator',	// TODO - Translation
-		'articles_and_size' => '%s Artikel (%s)',
 		'article_count' => 'Articles',	// TODO - Translation
+		'articles_and_size' => '%s Artikel (%s)',
 		'back_to_manage' => '← Return to user list',	// TODO - Translation
 		'create' => 'Neuen Benutzer erstellen',
 		'database_size' => 'Database size',	// TODO - Translation
@@ -202,8 +202,8 @@ return array(
 		'selected' => 'Ausgewählter Benutzer',
 		'title' => 'Benutzer verwalten',
 		'update_users' => 'Aktualisiere Benutzer',
+		'user_list' => 'Liste der Benutzer',
 		'username' => 'Nutzername',
 		'users' => 'Benutzer',
-		'user_list' => 'Liste der Benutzer',
 	),
 );

+ 14 - 14
app/i18n/de/conf.php

@@ -2,6 +2,7 @@
 
 return array(
 	'archiving' => array(
+		'_' => 'Archivierung',
 		'delete_after' => 'Entferne Artikel nach',
 		'exception' => 'Archivierungsausnahmen',
 		'help' => 'Weitere Optionen sind in den Einstellungen der individuellen Feeds verfügbar.',
@@ -19,9 +20,9 @@ return array(
 		'purge_now' => 'Jetzt bereinigen',
 		'title' => 'Archivierung',
 		'ttl' => 'Aktualisiere automatisch nicht öfter als',
-		'_' => 'Archivierung',
 	),
 	'display' => array(
+		'_' => 'Anzeige',
 		'icon' => array(
 			'bottom_line' => 'Fußzeile',
 			'display_authors' => 'Autoren',
@@ -46,22 +47,22 @@ return array(
 			'no_limit' => 'Keine Begrenzung',
 			'thin' => 'Klein',
 		),
-		'_' => 'Anzeige',
 	),
 	'profile' => array(
+		'_' => 'Profil-Verwaltung',
 		'api' => 'API management',	// TODO - Translation
 		'delete' => array(
-			'warn' => 'Dein Account und alle damit bezogenen Daten werden gelöscht.',
 			'_' => 'Accountlöschung',
+			'warn' => 'Dein Account und alle damit bezogenen Daten werden gelöscht.',
 		),
 		'email' => 'E-Mail-Adresse',
 		'password_api' => 'Passwort-API<br /><small>(z. B. für mobile Anwendungen)</small>',
 		'password_form' => 'Passwort<br /><small>(für die Anmeldemethode per Webformular)</small>',
 		'password_format' => 'mindestens 7 Zeichen',
 		'title' => 'Profil',
-		'_' => 'Profil-Verwaltung',
 	),
 	'query' => array(
+		'_' => 'Benutzerabfragen',
 		'deprecated' => 'Diese Abfrage ist nicht länger gültig. Die referenzierte Kategorie oder der Feed ist gelöscht worden.',
 		'display' => 'Zeige Abfrage Ergebnisse',
 		'filter' => 'Angewendeter Filter:',
@@ -69,8 +70,8 @@ return array(
 		'get_category' => 'Kategorie "%s" anzeigen',
 		'get_favorite' => 'Lieblingsartikel anzeigen',
 		'get_feed' => 'Feed "%s" anzeigen',
-		'none' => 'Sie haben bisher keine Benutzerabfrage erstellt.',
 		'no_filter' => 'Kein Filter',
+		'none' => 'Sie haben bisher keine Benutzerabfrage erstellt.',
 		'number' => 'Abfrage Nr. %d',
 		'order_asc' => 'Älteste Artikel zuerst anzeigen',
 		'order_desc' => 'Neueste Artikel zuerst anzeigen',
@@ -93,9 +94,9 @@ return array(
 		'state_14' => 'Ungelesene Artikel anzeigen',
 		'state_15' => 'Alle Artikel anzeigen',
 		'title' => 'Benutzerabfragen',
-		'_' => 'Benutzerabfragen',
 	),
 	'reading' => array(
+		'_' => 'Lesen',
 		'after_onread' => 'Nach „Alle als gelesen markieren“,',
 		'always_show_favorites' => 'Show all articles in favorites by default',	// TODO - Translation
 		'articles_per_page' => 'Anzahl der Artikel pro Seite',
@@ -117,19 +118,19 @@ return array(
 			'when' => 'Artikel als gelesen markieren…',
 		),
 		'show' => array(
+			'_' => 'Artikel zum Anzeigen',
+			'active_category' => 'Active category',	// TODO - Translation
 			'adaptive' => 'Anzeige anpassen',
 			'all_articles' => 'Alle Artikel zeigen',
-			'unread' => 'Nur ungelesene zeigen',
-			'active_category' => 'Active category',	// TODO - Translation
 			'all_categories' => 'All categories',	// TODO - Translation
 			'no_category' => 'No category',	// TODO - Translation
-			'_' => 'Artikel zum Anzeigen',
+			'unread' => 'Nur ungelesene zeigen',
 		),
 		'sides_close_article' => 'Klick außerhalb des Artikel-Textes schließt den Artikel',
 		'sort' => array(
+			'_' => 'Sortierreihenfolge',
 			'newer_first' => 'Neuere zuerst',
 			'older_first' => 'Ältere zuerst',
-			'_' => 'Sortierreihenfolge',
 		),
 		'sticky_post' => 'Wenn geöffnet, den Artikel ganz oben anheften',
 		'title' => 'Lesen',
@@ -139,9 +140,9 @@ return array(
 			'normal' => 'Normale Ansicht',
 			'reader' => 'Lese-Ansicht',
 		),
-		'_' => 'Lesen',
 	),
 	'sharing' => array(
+		'_' => 'Teilen',
 		'add' => 'Füge eine Teilen-Dienst hinzu',
 		'blogotext' => 'Blogotext',	// TODO - Translation
 		'diaspora' => 'Diaspora*',	// TODO - Translation
@@ -156,9 +157,9 @@ return array(
 		'title' => 'Teilen',
 		'twitter' => 'Twitter',	// TODO - Translation
 		'wallabag' => 'wallabag',	// TODO - Translation
-		'_' => 'Teilen',
 	),
 	'shortcut' => array(
+		'_' => 'Tastenkombination',
 		'article_action' => 'Artikel',
 		'auto_share' => 'Teilen',
 		'auto_share_help' => 'Wenn es nur eine Option zum Teilen gibt, wird diese verwendet. Ansonsten sind die Optionen über ihre Nummer erreichbar.',
@@ -183,14 +184,13 @@ return array(
 		'reading_view' => 'Wechsle zur Lese-Ansicht',
 		'rss_view' => 'Öffne RSS Ansicht in neuem Tab',
 		'see_on_website' => 'Auf der Original-Webseite ansehen',
-		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Umschalttaste</kbd>, um alle Artikel als gelesen zu markieren.',	// TODO - Translation
+		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> to mark all articles as read',	// TODO - Translation
 		'skip_next_article' => 'Nächsten markieren ohne zu öffnen',
 		'skip_previous_article' => 'Vorherigen markieren ohne zu öffnen',
 		'title' => 'Tastenkombination',
 		'user_filter' => 'Auf Benutzerfilter zugreifen',
 		'user_filter_help' => 'Wenn es nur einen Benutzerfilter gibt, wird dieser verwendet. Ansonsten sind die Filter über ihre Nummer erreichbar.',
 		'views' => 'Ansichten',
-		'_' => 'Tastenkombination',
 	),
 	'user' => array(
 		'articles_and_size' => '%s Artikel (%s)',

+ 11 - 11
app/i18n/de/feedback.php

@@ -44,9 +44,9 @@ return array(
 			'ko' => '%s kann nicht aktiviert werden. Für Details <a href="%s">prüfen Sie die FreshRSS-Protokolle</a>.',
 			'ok' => '%s ist jetzt aktiviert',
 		),
+		'no_access' => 'Sie haben keinen Zugang zu %s',
 		'not_enabled' => '%s ist noch nicht aktiviert',
 		'not_found' => '%s existiert nicht',
-		'no_access' => 'Sie haben keinen Zugang zu %s',
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'Die ZIP-Erweiterung fehlt auf Ihrem Server. Bitte versuchen Sie die Dateien eine nach der anderen zu exportieren.',
@@ -72,10 +72,10 @@ return array(
 			'emptied' => 'Die Kategorie ist geleert worden.',
 			'error' => 'Die Kategorie kann nicht aktualisiert werden',
 			'name_exists' => 'Der Kategorie-Name existiert bereits.',
-			'not_delete_default' => 'Sie können die Vorgabe-Kategorie nicht löschen!',
-			'not_exist' => 'Die Kategorie existiert nicht!',
 			'no_id' => 'Sie müssen die ID der Kategorie präzisieren.',
 			'no_name' => 'Der Kategorie-Name kann nicht leer sein.',
+			'not_delete_default' => 'Sie können die Vorgabe-Kategorie nicht löschen!',
+			'not_exist' => 'Die Kategorie existiert nicht!',
 			'over_max' => 'Sie haben Ihre Kategorien-Limite erreicht (%d)',
 			'updated' => 'Die Kategorie ist aktualisiert worden.',
 		),
@@ -89,17 +89,17 @@ return array(
 			'error' => 'Der Feed kann nicht aktualisiert werden',
 			'internal_problem' => 'Der RSS-Feed konnte nicht hinzugefügt werden. Für Details <a href="%s">prüfen Sie die FreshRSS-Protokolle</a>.',
 			'invalid_url' => 'Die URL <em>%s</em> ist ungültig',
-			'not_added' => '<em>%s</em> konnte nicht hinzugefügt werden',
-			'not_found' => 'Feed cannot be found',	// TODO - Translation
-			'no_refresh' => 'Es gibt keinen Feed zum Aktualisieren…',
 			'n_actualized' => 'Die %d Feeds sind aktualisiert worden',
 			'n_entries_deleted' => 'Die %d Artikel sind gelöscht worden',
+			'no_refresh' => 'Es gibt keinen Feed zum Aktualisieren…',
+			'not_added' => '<em>%s</em> konnte nicht hinzugefügt werden',
+			'not_found' => 'Feed cannot be found',	// TODO - Translation
 			'over_max' => 'Sie haben Ihre Feeds-Limite erreicht (%d)',
 			'reloaded' => '<em>%s</em> has been reloaded',	// TODO - Translation
 			'selector_preview' => array(
 				'http_error' => 'Failed to load website content.',	// TODO - Translation
-				'no_entries' => 'There is no entries in your feed. You need at least one entry to create a preview.',	// TODO - Translation
-				'no_feed' => 'Internal error (no feed to entry).',	// TODO - Translation
+				'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.',	// TODO - Translation
+				'no_feed' => 'Internal error (feed can’t be found).',	// TODO - Translation
 				'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.',	// TODO - Translation
 				'selector_empty' => 'The selector is empty. You need to define one to create a preview.',	// TODO - Translation
 			),
@@ -117,16 +117,16 @@ return array(
 	),
 	'user' => array(
 		'created' => array(
-			'error' => 'Der Benutzer %s kann nicht erstellt werden',
 			'_' => 'Der Benutzer %s ist erstellt worden',
+			'error' => 'Der Benutzer %s kann nicht erstellt werden',
 		),
 		'deleted' => array(
-			'error' => 'Der Benutzer %s kann nicht gelöscht werden',
 			'_' => 'Der Benutzer %s ist gelöscht worden',
+			'error' => 'Der Benutzer %s kann nicht gelöscht werden',
 		),
 		'updated' => array(
-			'error' => 'Benutzer %s wurde nicht aktualisiert',
 			'_' => 'Benutzer %s wurde aktualisiert',
+			'error' => 'Benutzer %s wurde nicht aktualisiert',
 		),
 	),
 );

+ 17 - 17
app/i18n/de/gen.php

@@ -32,45 +32,50 @@ return array(
 		'login' => 'Anmelden',
 		'logout' => 'Abmelden',
 		'password' => array(
-			'format' => '<small>mindestens 7 Zeichen</small>',
 			'_' => 'Passwort',
+			'format' => '<small>mindestens 7 Zeichen</small>',
 		),
 		'registration' => array(
+			'_' => 'Neuer Account',
 			'ask' => 'Erstelle einen Account?',
 			'title' => 'Accounterstellung',
-			'_' => 'Neuer Account',
 		),
 		'reset' => 'Zurücksetzen der Authentifizierung',
 		'username' => array(
+			'_' => 'Nutzername',
 			'admin' => 'Administrator-Nutzername',
 			'format' => '<small>Maximal 16 alphanumerische Zeichen</small>',
-			'_' => 'Nutzername',
 		),
 	),
 	'date' => array(
-		'apr' => 'Apr',
 		'Apr' => '\\A\\p\\r\\i\\l',	// TODO - Translation
-		'april' => 'April',	// TODO - Translation
 		'Aug' => '\\A\\u\\g\\u\\s\\t',	// TODO - Translation
+		'Dec' => '\\D\\e\\z\\e\\m\\b\\e\\r',
+		'Feb' => '\\F\\e\\b\\r\\u\\a\\r',
+		'Jan' => '\\J\\a\\n\\u\\a\\r',
+		'Jul' => '\\J\\u\\l\\i',
+		'Jun' => '\\J\\u\\n\\i',
+		'Mar' => '\\M\\ä\\r\\z',
+		'May' => '\\M\\a\\i',
+		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',	// TODO - Translation
+		'Oct' => '\\O\\k\\t\\o\\b\\e\\r',
+		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',	// TODO - Translation
+		'apr' => 'Apr',
+		'april' => 'April',	// TODO - Translation
 		'aug' => 'Aug',
 		'august' => 'August',	// TODO - Translation
 		'before_yesterday' => 'Ältere Beiträge',
-		'Dec' => '\\D\\e\\z\\e\\m\\b\\e\\r',
 		'dec' => 'Dez',
 		'december' => 'Dezember',
-		'Feb' => '\\F\\e\\b\\r\\u\\a\\r',
 		'feb' => 'Feb',
 		'february' => 'Februar',
 		'format_date' => 'd\\. %s Y',
 		'format_date_hour' => 'd\\. %s Y \\u\\m H\\:i',
 		'fri' => 'Fr',
-		'Jan' => '\\J\\a\\n\\u\\a\\r',
 		'jan' => 'Jan',
 		'january' => 'Januar',
 		'jul' => 'Jul',
-		'Jul' => '\\J\\u\\l\\i',
 		'july' => 'Juli',
-		'Jun' => '\\J\\u\\n\\i',
 		'jun' => 'Jun',
 		'june' => 'Juni',
 		'last_2_year' => 'Last two years',	// TODO - Translation
@@ -81,22 +86,17 @@ return array(
 		'last_month' => 'Letzter Monat',
 		'last_week' => 'Letzte Woche',
 		'last_year' => 'Letztes Jahr',
-		'Mar' => '\\M\\ä\\r\\z',
 		'mar' => 'Mär',
 		'march' => 'März',
 		'may' => 'Mai',
-		'May' => '\\M\\a\\i',
 		'may_' => 'Mai',
 		'mon' => 'Mo',
 		'month' => 'Monat(en)',
-		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',	// TODO - Translation
 		'nov' => 'Nov',
 		'november' => 'November',	// TODO - Translation
-		'Oct' => '\\O\\k\\t\\o\\b\\e\\r',
 		'oct' => 'Okt',
 		'october' => 'Oktober',
 		'sat' => 'Sa',
-		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',	// TODO - Translation
 		'sep' => 'Sep',
 		'september' => 'September',	// TODO - Translation
 		'sun' => 'So',
@@ -108,8 +108,8 @@ return array(
 	),
 	'dir' => 'ltr',
 	'freshrss' => array(
-		'about' => 'Über FreshRSS',
 		'_' => 'FreshRSS',	// TODO - Translation
+		'about' => 'Über FreshRSS',
 	),
 	'js' => array(
 		'category_empty' => 'Kategorie leeren',
@@ -178,13 +178,13 @@ return array(
 		'years' => 'Jahre',
 	),
 	'share' => array(
+		'Known' => 'Known-Seite (https://withknown.com)',
 		'blogotext' => 'Blogotext',	// TODO - Translation
 		'diaspora' => 'Diaspora*',	// TODO - Translation
 		'email' => 'E-Mail',
 		'facebook' => 'Facebook',	// TODO - Translation
 		'gnusocial' => 'GNU social',	// TODO - Translation
 		'jdh' => 'Journal du hacker',	// TODO - Translation
-		'Known' => 'Known-Seite (https://withknown.com)',
 		'lemmy' => 'Lemmy',	// TODO - Translation
 		'linkedin' => 'LinkedIn',	// TODO - Translation
 		'mastodon' => 'Mastodon',	// TODO - Translation

+ 2 - 2
app/i18n/de/index.php

@@ -2,6 +2,7 @@
 
 return array(
 	'about' => array(
+		'_' => 'Über',
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',	// TODO - Translation
 		'bugs_reports' => 'Fehlerberichte',
 		'credits' => 'Credits',	// TODO - Translation
@@ -13,7 +14,6 @@ return array(
 		'title' => 'Über',
 		'version' => 'Version',	// TODO - Translation
 		'website' => 'Webseite',
-		'_' => 'Über',
 	),
 	'feed' => array(
 		'add' => 'Sie können Feeds hinzufügen.',
@@ -24,10 +24,10 @@ return array(
 		'title_global' => 'Globale Ansicht',
 	),
 	'log' => array(
+		'_' => 'Protokolle',
 		'clear' => 'Protokolle leeren',
 		'empty' => 'Protokolldatei ist leer.',
 		'title' => 'Protokolle',
-		'_' => 'Protokolle',
 	),
 	'menu' => array(
 		'about' => 'Über FreshRSS',

+ 5 - 5
app/i18n/de/install.php

@@ -17,19 +17,20 @@ return array(
 		'type' => 'Authentifizierungsmethode',
 	),
 	'bdd' => array(
+		'_' => 'Datenbank',
 		'conf' => array(
+			'_' => 'Datenbank-Konfiguration',
 			'ko' => 'Überprüfen Sie Ihre Datenbank-Information.',
 			'ok' => 'Datenbank-Konfiguration ist gespeichert worden.',
-			'_' => 'Datenbank-Konfiguration',
 		),
 		'host' => 'Host',	// TODO - Translation
 		'password' => 'SQL-Password',
 		'prefix' => 'Tabellen-Präfix',
 		'type' => 'Datenbank-Typ',
 		'username' => 'SQL-Nutzername',
-		'_' => 'Datenbank',
 	),
 	'check' => array(
+		'_' => 'Überprüfungen',
 		'already_installed' => 'Wir haben festgestellt, dass FreshRSS bereits installiert wurde!',
 		'cache' => array(
 			'nok' => 'Überprüfen Sie die Berechtigungen des Verzeichnisses <em>./data/cache</em>. Der HTTP-Server muss Schreibrechte besitzen.',
@@ -95,11 +96,10 @@ return array(
 			'nok' => 'Ihnen fehlt die benötigte Bibliothek um XML zu parsen.',
 			'ok' => 'Sie haben die benötigte Bibliothek um XML zu parsen.',
 		),
-		'_' => 'Überprüfungen',
 	),
 	'conf' => array(
-		'ok' => 'Die allgemeine Konfiguration ist gespeichert worden.',
 		'_' => 'Allgemeine Konfiguration',
+		'ok' => 'Die allgemeine Konfiguration ist gespeichert worden.',
 	),
 	'congratulations' => 'Glückwunsch!',
 	'default_user' => 'Nutzername des Standardbenutzers <small>(maximal 16 alphanumerische Zeichen)</small>',
@@ -110,9 +110,9 @@ return array(
 		'confirm_reinstall' => 'Du wirst deine vorherige Konfiguration (Daten) verlieren FreshRSS. Bist du sicher, dass du fortfahren willst?',
 	),
 	'language' => array(
+		'_' => 'Sprache',
 		'choose' => 'Wählen Sie eine Sprache für FreshRSS',
 		'defined' => 'Die Sprache ist festgelegt worden.',
-		'_' => 'Sprache',
 	),
 	'not_deleted' => 'Etwas ist schiefgelaufen; Sie müssen die Datei <em>%s</em> manuell löschen.',
 	'ok' => 'Der Installationsvorgang war erfolgreich.',

+ 7 - 7
app/i18n/de/sub.php

@@ -11,6 +11,7 @@ return array(
 		'title' => 'Bookmarklet',	// TODO - Translation
 	),
 	'category' => array(
+		'_' => 'Kategorie',
 		'add' => 'Eine Kategorie hinzufügen',
 		'archiving' => 'Archivierung',
 		'empty' => 'Leere Kategorie',
@@ -19,7 +20,6 @@ return array(
 		'position' => 'Reihenfolge',
 		'position_help' => 'Steuert die Kategoriesortierung',
 		'title' => 'Titel',
-		'_' => 'Kategorie',
 	),
 	'feed' => array(
 		'add' => 'Einen RSS-Feed hinzufügen',
@@ -39,16 +39,16 @@ return array(
 		'empty' => 'Dieser Feed ist leer. Bitte stellen Sie sicher, dass er noch gepflegt wird.',
 		'error' => 'Dieser Feed ist auf ein Problem gestoßen. Bitte stellen Sie sicher, dass er immer lesbar ist und aktualisieren Sie ihn dann.',
 		'filteractions' => array(
-			'help' => 'Ein Suchfilter pro Zeile',
 			'_' => 'Filteraktionen',
+			'help' => 'Ein Suchfilter pro Zeile',
 		),
 		'information' => 'Information',	// TODO - Translation
 		'keep_min' => 'Minimale Anzahl an Artikeln, die behalten wird',
 		'maintenance' => array(
 			'clear_cache' => 'Clear cache',	// TODO - Translation
-			'clear_cache_help' => 'Clear the cache of this feed on disk',	// TODO - Translation
+			'clear_cache_help' => 'Clear the cache for this feed.',	// TODO - Translation
 			'reload_articles' => 'Reload articles',	// TODO - Translation
-			'reload_articles_help' => 'Reload articles and fetch complete content',	// TODO - Translation
+			'reload_articles_help' => 'Reload articles and fetch complete content if a selector is defined.',	// TODO - Translation
 			'title' => 'Maintenance',	// TODO - Translation
 		),
 		'moved_category_deleted' => 'Wenn Sie eine Kategorie entfernen, werden deren Feeds automatisch in die Kategorie <em>%s</em> eingefügt.',
@@ -56,13 +56,13 @@ return array(
 		'no_selected' => 'Kein Feed ausgewählt.',
 		'number_entries' => '%d Artikel',
 		'priority' => array(
+			'_' => 'Sichtbarkeit',
 			'archived' => 'Nicht anzeigen (archiviert)',
 			'main_stream' => 'In Haupt-Feeds zeigen',
 			'normal' => 'Zeige in eigener Kategorie',
-			'_' => 'Sichtbarkeit',
 		),
 		'selector_preview' => array(
-			'show_raw' => 'Show source',	// TODO - Translation
+			'show_raw' => 'Show source code',	// TODO - Translation
 			'show_rendered' => 'Show content',	// TODO - Translation
 		),
 		'show' => array(
@@ -108,8 +108,8 @@ return array(
 		'subscription_tools' => 'Abonnement-Tools',
 	),
 	'title' => array(
+		'_' => 'Abonnementverwaltung',
 		'feed_management' => 'Verwaltung der RSS-Feeds',
 		'subscription_tools' => 'Abonnement-Tools',
-		'_' => 'Abonnementverwaltung',
 	),
 );

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

@@ -83,9 +83,9 @@ return array(
 			'ok' => 'You have PDO and at least one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).',
 		),
 		'php' => array(
+			'_' => 'PHP installation',
 			'nok' => 'Your PHP version is %s but FreshRSS requires at least version %s.',
 			'ok' => 'Your PHP version is %s, which is compatible with FreshRSS.',
-			'_' => 'PHP installation',
 		),
 		'tables' => array(
 			'nok' => 'There are one or more missing tables in the database.',
@@ -116,8 +116,8 @@ return array(
 		'name' => 'Name',
 		'no_configure_view' => 'This extension cannot be configured.',
 		'system' => array(
-			'no_rights' => 'System extension (you have no rights on it)',
 			'_' => 'System extensions',
+			'no_rights' => 'System extension (you have no rights on it)',
 		),
 		'title' => 'Extensions',
 		'update' => 'Update available',
@@ -125,6 +125,7 @@ return array(
 		'version' => 'Version',
 	),
 	'stats' => array(
+		'_' => 'Statistics',
 		'all_feeds' => 'All feeds',
 		'category' => 'Category',
 		'entry_count' => 'Entry count',
@@ -154,9 +155,9 @@ return array(
 		'status_unread' => 'Unread',
 		'title' => 'Statistics',
 		'top_feed' => 'Top ten feeds',
-		'_' => 'Statistics',
 	),
 	'system' => array(
+		'_' => 'System configuration',
 		'auto-update-url' => 'Auto-update server URL',
 		'cookie-duration' => array(
 			'help' => 'in seconds',
@@ -170,21 +171,20 @@ return array(
 			'help' => '0 means that there is no account limit',
 			'number' => 'Max number of accounts',
 		),
-		'_' => 'System configuration',
 	),
 	'update' => array(
+		'_' => 'Update system',
 		'apply' => 'Apply',
 		'check' => 'Check for new updates',
 		'current_version' => 'Your current version of FreshRSS is %s.',
 		'last' => 'Last verification: %s',
 		'none' => 'No update to apply',
 		'title' => 'Update system',
-		'_' => 'Update system',
 	),
 	'user' => array(
 		'admin' => 'Administrator',
-		'articles_and_size' => '%s articles (%s)',
 		'article_count' => 'Articles',
+		'articles_and_size' => '%s articles (%s)',
 		'back_to_manage' => '← Return to user list',
 		'create' => 'Create new user',
 		'database_size' => 'Database size',
@@ -202,8 +202,8 @@ return array(
 		'selected' => 'Selected user',
 		'title' => 'Manage users',
 		'update_users' => 'Update user',
+		'user_list' => 'List of users',
 		'username' => 'Username',
 		'users' => 'Users',
-		'user_list' => 'List of users',
 	),
 );

+ 13 - 13
app/i18n/en/conf.php

@@ -2,6 +2,7 @@
 
 return array(
 	'archiving' => array(
+		'_' => 'Archiving',
 		'delete_after' => 'Remove articles after',
 		'exception' => 'Purge exception',
 		'help' => 'More options are available in the individual feed settings',
@@ -19,9 +20,9 @@ return array(
 		'purge_now' => 'Purge now',
 		'title' => 'Archiving',
 		'ttl' => 'Do not automatically refresh more often than',
-		'_' => 'Archiving',
 	),
 	'display' => array(
+		'_' => 'Display',
 		'icon' => array(
 			'bottom_line' => 'Bottom line',
 			'display_authors' => 'Authors',
@@ -46,22 +47,22 @@ return array(
 			'no_limit' => 'No limit',
 			'thin' => 'Thin',
 		),
-		'_' => 'Display',
 	),
 	'profile' => array(
+		'_' => 'Profile management',
 		'api' => 'API management',
 		'delete' => array(
-			'warn' => 'Your account and all related data will be deleted.',
 			'_' => 'Account deletion',
+			'warn' => 'Your account and all related data will be deleted.',
 		),
 		'email' => 'Email address',
 		'password_api' => 'API password<br /><small>(e.g., for mobile apps)</small>',
 		'password_form' => 'Password<br /><small>(for the Web-form login method)</small>',
 		'password_format' => 'At least 7 characters',
 		'title' => 'Profile',
-		'_' => 'Profile management',
 	),
 	'query' => array(
+		'_' => 'User queries',
 		'deprecated' => 'This query is no longer valid. The referenced category or feed has been deleted.',
 		'display' => 'Display user query results',
 		'filter' => 'Filter applied:',
@@ -69,8 +70,8 @@ return array(
 		'get_category' => 'Display "%s" category',
 		'get_favorite' => 'Display favourite articles',
 		'get_feed' => 'Display "%s" feed',
-		'none' => 'You haven’t created any user queries yet.',
 		'no_filter' => 'No filter',
+		'none' => 'You haven’t created any user queries yet.',
 		'number' => 'Query n°%d',
 		'order_asc' => 'Display oldest articles first',
 		'order_desc' => 'Display newest articles first',
@@ -93,9 +94,9 @@ return array(
 		'state_14' => 'Display unread articles',
 		'state_15' => 'Display all articles',
 		'title' => 'User queries',
-		'_' => 'User queries',
 	),
 	'reading' => array(
+		'_' => 'Reading',
 		'after_onread' => 'After “mark all as read”,',
 		'always_show_favorites' => 'Show all articles in favorites by default',
 		'articles_per_page' => 'Number of articles per page',
@@ -117,19 +118,19 @@ return array(
 			'when' => 'Mark article as read…',
 		),
 		'show' => array(
+			'_' => 'Articles to display',
+			'active_category' => 'Active category',
 			'adaptive' => 'Adjust showing',
 			'all_articles' => 'Show all articles',
-			'unread' => 'Show only unread',
-			'active_category' => 'Active category',
 			'all_categories' => 'All categories',
 			'no_category' => 'No category',
-			'_' => 'Articles to display',
+			'unread' => 'Show only unread',
 		),
 		'sides_close_article' => 'Clicking outside of article text area closes the article',
 		'sort' => array(
+			'_' => 'Sort order',
 			'newer_first' => 'Newest first',
 			'older_first' => 'Oldest first',
-			'_' => 'Sort order',
 		),
 		'sticky_post' => 'Stick the article to the top when opened',
 		'title' => 'Reading',
@@ -139,9 +140,9 @@ return array(
 			'normal' => 'Normal view',
 			'reader' => 'Reading view',
 		),
-		'_' => 'Reading',
 	),
 	'sharing' => array(
+		'_' => 'Sharing',
 		'add' => 'Add a sharing method',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
@@ -156,9 +157,9 @@ return array(
 		'title' => 'Sharing',
 		'twitter' => 'Twitter',
 		'wallabag' => 'wallabag',
-		'_' => 'Sharing',
 	),
 	'shortcut' => array(
+		'_' => 'Shortcuts',
 		'article_action' => 'Article actions',
 		'auto_share' => 'Share',
 		'auto_share_help' => 'If there is only one sharing mode, it is used. Otherwise, modes are accessible by their number.',
@@ -190,7 +191,6 @@ return array(
 		'user_filter' => 'Access user queries',
 		'user_filter_help' => 'If there is only one user query, it is used. Otherwise, queries are accessible by their number.',
 		'views' => 'Views',
-		'_' => 'Shortcuts',
 	),
 	'user' => array(
 		'articles_and_size' => '%s articles (%s)',

+ 10 - 10
app/i18n/en/feedback.php

@@ -44,9 +44,9 @@ return array(
 			'ko' => '%s cannot be enabled. <a href="%s">Check FreshRSS logs</a> for details.',
 			'ok' => '%s is now enabled',
 		),
+		'no_access' => 'You have no access on %s',
 		'not_enabled' => '%s is not enabled',
 		'not_found' => '%s does not exist',
-		'no_access' => 'You have no access on %s',
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'ZIP extension is not present on your server. Please try to export files one by one.',
@@ -72,10 +72,10 @@ return array(
 			'emptied' => 'Category has been emptied',
 			'error' => 'Category cannot be updated',
 			'name_exists' => 'Category name already exists.',
-			'not_delete_default' => 'You cannot delete the default category!',
-			'not_exist' => 'The category does not exist!',
 			'no_id' => 'You must specify the id of the category.',
 			'no_name' => 'Category name cannot be empty.',
+			'not_delete_default' => 'You cannot delete the default category!',
+			'not_exist' => 'The category does not exist!',
 			'over_max' => 'You have reached your limit of categories (%d)',
 			'updated' => 'Category has been updated.',
 		),
@@ -89,17 +89,17 @@ return array(
 			'error' => 'Feed cannot be updated',
 			'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.',
 			'invalid_url' => 'URL <em>%s</em> is invalid',
-			'not_added' => '<em>%s</em> could not be added',
-			'not_found' => 'Feed cannot be found',
-			'no_refresh' => 'There is no feed to refresh…',
 			'n_actualized' => '%d feeds have been updated',
 			'n_entries_deleted' => '%d articles have been deleted',
+			'no_refresh' => 'There is no feed to refresh…',
+			'not_added' => '<em>%s</em> could not be added',
+			'not_found' => 'Feed cannot be found',
 			'over_max' => 'You have reached your limit of feeds (%d)',
 			'reloaded' => '<em>%s</em> has been reloaded',
 			'selector_preview' => array(
 				'http_error' => 'Failed to load website content.',
 				'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.',
-				'no_feed' => 'Internal error (feed can\'t be found).',
+				'no_feed' => 'Internal error (feed cant be found).',
 				'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.',
 				'selector_empty' => 'The selector is empty. You need to define one to create a preview.',
 			),
@@ -117,16 +117,16 @@ return array(
 	),
 	'user' => array(
 		'created' => array(
-			'error' => 'User %s cannot be created',
 			'_' => 'User %s has been created',
+			'error' => 'User %s cannot be created',
 		),
 		'deleted' => array(
-			'error' => 'User %s cannot be deleted',
 			'_' => 'User %s has been deleted',
+			'error' => 'User %s cannot be deleted',
 		),
 		'updated' => array(
-			'error' => 'User %s has not been updated',
 			'_' => 'User %s has been updated',
+			'error' => 'User %s has not been updated',
 		),
 	),
 );

+ 17 - 17
app/i18n/en/gen.php

@@ -32,45 +32,50 @@ return array(
 		'login' => 'Login',
 		'logout' => 'Logout',
 		'password' => array(
-			'format' => '<small>At least 7 characters</small>',
 			'_' => 'Password',
+			'format' => '<small>At least 7 characters</small>',
 		),
 		'registration' => array(
+			'_' => 'New account',
 			'ask' => 'Create an account?',
 			'title' => 'Account creation',
-			'_' => 'New account',
 		),
 		'reset' => 'Authentication reset',
 		'username' => array(
+			'_' => 'Username',
 			'admin' => 'Administrator username',
 			'format' => '<small>Maximum 16 alphanumeric characters</small>',
-			'_' => 'Username',
 		),
 	),
 	'date' => array(
-		'apr' => 'Apr.',
 		'Apr' => '\\A\\p\\r\\i\\l',
-		'april' => 'April',
 		'Aug' => '\\A\\u\\g\\u\\s\\t',
+		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',
+		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y',
+		'Jan' => '\\J\\a\\n\\u\\a\\r\\y',
+		'Jul' => '\\J\\u\\l\\y',
+		'Jun' => '\\J\\u\\n\\e',
+		'Mar' => '\\M\\a\\r\\c\\h',
+		'May' => '\\M\\a\\y',
+		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',
+		'Oct' => '\\O\\c\\t\\o\\b\\e\\r',
+		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',
+		'apr' => 'Apr.',
+		'april' => 'April',
 		'aug' => 'Aug.',
 		'august' => 'August',
 		'before_yesterday' => 'Before yesterday',
-		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',
 		'dec' => 'Dec.',
 		'december' => 'December',
-		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y',
 		'feb' => 'Feb.',
 		'february' => 'February',
 		'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 H\\:i',
 		'fri' => 'Fri',
-		'Jan' => '\\J\\a\\n\\u\\a\\r\\y',
 		'jan' => 'Jan.',
 		'january' => 'January',
 		'jul' => 'July',
-		'Jul' => '\\J\\u\\l\\y',
 		'july' => 'July',
-		'Jun' => '\\J\\u\\n\\e',
 		'jun' => 'June',
 		'june' => 'June',
 		'last_2_year' => 'Last two years',
@@ -81,22 +86,17 @@ return array(
 		'last_month' => 'Last month',
 		'last_week' => 'Last week',
 		'last_year' => 'Last year',
-		'Mar' => '\\M\\a\\r\\c\\h',
 		'mar' => 'Mar.',
 		'march' => 'March',
 		'may' => 'May',
-		'May' => '\\M\\a\\y',
 		'may_' => 'May',
 		'mon' => 'Mon',
 		'month' => 'months',
-		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',
 		'nov' => 'Nov.',
 		'november' => 'November',
-		'Oct' => '\\O\\c\\t\\o\\b\\e\\r',
 		'oct' => 'Oct.',
 		'october' => 'October',
 		'sat' => 'Sat',
-		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',
 		'sep' => 'Sept.',
 		'september' => 'September',
 		'sun' => 'Sun',
@@ -108,8 +108,8 @@ return array(
 	),
 	'dir' => 'ltr',
 	'freshrss' => array(
-		'about' => 'About FreshRSS',
 		'_' => 'FreshRSS',
+		'about' => 'About FreshRSS',
 	),
 	'js' => array(
 		'category_empty' => 'Empty category',
@@ -178,13 +178,13 @@ return array(
 		'years' => 'years',
 	),
 	'share' => array(
+		'Known' => 'Known based sites',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
 		'facebook' => 'Facebook',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
-		'Known' => 'Known based sites',
 		'lemmy' => 'Lemmy',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',

+ 2 - 2
app/i18n/en/index.php

@@ -2,6 +2,7 @@
 
 return array(
 	'about' => array(
+		'_' => 'About',
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',
 		'bugs_reports' => 'Bugs reports',
 		'credits' => 'Credits',
@@ -13,7 +14,6 @@ return array(
 		'title' => 'About',
 		'version' => 'Version',
 		'website' => 'Website',
-		'_' => 'About',
 	),
 	'feed' => array(
 		'add' => 'You may add some feeds.',
@@ -24,10 +24,10 @@ return array(
 		'title_global' => 'Global view',
 	),
 	'log' => array(
+		'_' => 'Logs',
 		'clear' => 'Clear the logs',
 		'empty' => 'Log file is empty',
 		'title' => 'Logs',
-		'_' => 'Logs',
 	),
 	'menu' => array(
 		'about' => 'About FreshRSS',

+ 5 - 5
app/i18n/en/install.php

@@ -17,19 +17,20 @@ return array(
 		'type' => 'Authentication method',
 	),
 	'bdd' => array(
+		'_' => 'Database',
 		'conf' => array(
+			'_' => 'Database configuration',
 			'ko' => 'Verify your database information.',
 			'ok' => 'Database configuration has been saved.',
-			'_' => 'Database configuration',
 		),
 		'host' => 'Host',
 		'password' => 'Database password',
 		'prefix' => 'Table prefix',
 		'type' => 'Type of database',
 		'username' => 'Database username',
-		'_' => 'Database',
 	),
 	'check' => array(
+		'_' => 'Checks',
 		'already_installed' => 'We have detected that FreshRSS is already installed!',
 		'cache' => array(
 			'nok' => 'Check permissions on <em>./data/cache</em> directory. HTTP server must have rights to write into',
@@ -95,11 +96,10 @@ return array(
 			'nok' => 'Cannot find the required library to parse XML.',
 			'ok' => 'You have the required library to parse XML.',
 		),
-		'_' => 'Checks',
 	),
 	'conf' => array(
-		'ok' => 'General configuration has been saved.',
 		'_' => 'General configuration',
+		'ok' => 'General configuration has been saved.',
 	),
 	'congratulations' => 'Congratulations!',
 	'default_user' => 'Username of the default user <small>(maximum 16 alphanumeric characters)</small>',
@@ -110,9 +110,9 @@ return array(
 		'confirm_reinstall' => 'You will lose your previous configuration by reinstalling FreshRSS. Are you sure you want to continue?',
 	),
 	'language' => array(
+		'_' => 'Language',
 		'choose' => 'Choose a language for FreshRSS',
 		'defined' => 'Language has been defined.',
-		'_' => 'Language',
 	),
 	'not_deleted' => 'Something went wrong; you must delete the file <em>%s</em> manually.',
 	'ok' => 'The installation process was successful.',

+ 4 - 4
app/i18n/en/sub.php

@@ -11,6 +11,7 @@ return array(
 		'title' => 'Bookmarklet',
 	),
 	'category' => array(
+		'_' => 'Category',
 		'add' => 'Add a category',
 		'archiving' => 'Archiving',
 		'empty' => 'Empty category',
@@ -19,7 +20,6 @@ return array(
 		'position' => 'Display position',
 		'position_help' => 'To control category sort order',
 		'title' => 'Title',
-		'_' => 'Category',
 	),
 	'feed' => array(
 		'add' => 'Add a RSS feed',
@@ -39,8 +39,8 @@ return array(
 		'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 update it.',
 		'filteractions' => array(
-			'help' => 'Write one search filter per line.',
 			'_' => 'Filter actions',
+			'help' => 'Write one search filter per line.',
 		),
 		'information' => 'Information',
 		'keep_min' => 'Minimum number of articles to keep',
@@ -56,10 +56,10 @@ return array(
 		'no_selected' => 'No feed selected.',
 		'number_entries' => '%d articles',
 		'priority' => array(
+			'_' => 'Visibility',
 			'archived' => 'Do not show (archived)',
 			'main_stream' => 'Show in main stream',
 			'normal' => 'Show in its category',
-			'_' => 'Visibility',
 		),
 		'selector_preview' => array(
 			'show_raw' => 'Show source code',
@@ -108,8 +108,8 @@ return array(
 		'subscription_tools' => 'Subscription tools',
 	),
 	'title' => array(
+		'_' => 'Subscriptions management',
 		'feed_management' => 'RSS feeds management',
 		'subscription_tools' => 'Subscription tools',
-		'_' => 'Subscriptions management',
 	),
 );

+ 7 - 7
app/i18n/es/admin.php

@@ -83,9 +83,9 @@ return array(
 			'ok' => 'Dispones de PDO y, al menos, de uno de los controladores compatibles (pdo_mysql, pdo_sqlite, pdo_pgsql).',
 		),
 		'php' => array(
+			'_' => 'Instalación PHP',
 			'nok' => 'Dispones de la versión PHP %s pero FreshRSS requiere de, al menos, la versión %s.',
 			'ok' => 'Dispones de la versión PHP %s, que es compatible con FreshRSS.',
-			'_' => 'Instalación PHP',
 		),
 		'tables' => array(
 			'nok' => 'Falta al menos una tabla en la base de datos.',
@@ -116,8 +116,8 @@ return array(
 		'name' => 'Name',	// TODO - Translation
 		'no_configure_view' => 'Esta extensión no puede ser configurada.',
 		'system' => array(
-			'no_rights' => 'Sistema de extensiones (careces de los permisos necesarios)',
 			'_' => 'Sistema de extensiones',
+			'no_rights' => 'Sistema de extensiones (careces de los permisos necesarios)',
 		),
 		'title' => 'Extensiones',
 		'update' => 'Update available',	// TODO - Translation
@@ -125,6 +125,7 @@ return array(
 		'version' => 'Version',	// TODO - Translation
 	),
 	'stats' => array(
+		'_' => 'Estadísticas',
 		'all_feeds' => 'Todas las fuentes',
 		'category' => 'Categoría',
 		'entry_count' => 'Cómputo total',
@@ -154,9 +155,9 @@ return array(
 		'status_unread' => 'Pendientes',
 		'title' => 'Estadísticas',
 		'top_feed' => 'Las 10 fuentes más activas',
-		'_' => 'Estadísticas',
 	),
 	'system' => array(
+		'_' => 'Configuración del sistema',
 		'auto-update-url' => 'URL de auto-actualización',
 		'cookie-duration' => array(
 			'help' => 'in seconds',	// TODO - Translation
@@ -170,21 +171,20 @@ return array(
 			'help' => '0 significa que no hay límite en la cuenta',
 			'number' => 'Número máximo de cuentas',
 		),
-		'_' => 'Configuración del sistema',
 	),
 	'update' => array(
+		'_' => 'Actualizar sistema',
 		'apply' => 'Aplicar',
 		'check' => 'Buscar actualizaciones',
 		'current_version' => 'Dispones de la versión %s de FreshRSS.',
 		'last' => 'Última comprobación: %s',
 		'none' => 'No hay actualizaciones disponibles',
 		'title' => 'Actualizar sistema',
-		'_' => 'Actualizar sistema',
 	),
 	'user' => array(
 		'admin' => 'Administrator',	// TODO - Translation
-		'articles_and_size' => '%s articles (%s)',	// TODO - Translation
 		'article_count' => 'Articles',	// TODO - Translation
+		'articles_and_size' => '%s articles (%s)',	// TODO - Translation
 		'back_to_manage' => '← Return to user list',	// TODO - Translation
 		'create' => 'Crear nuevo usuario',
 		'database_size' => 'Database size',	// TODO - Translation
@@ -202,8 +202,8 @@ return array(
 		'selected' => 'Selected user',	// TODO - Translation
 		'title' => 'Administrar usuarios',
 		'update_users' => 'Update user',	// TODO - Translation
+		'user_list' => 'Lista de usuarios',
 		'username' => 'Nombre de usuario',
 		'users' => 'Usuarios',
-		'user_list' => 'Lista de usuarios',
 	),
 );

+ 14 - 14
app/i18n/es/conf.php

@@ -2,6 +2,7 @@
 
 return array(
 	'archiving' => array(
+		'_' => 'Archivo',
 		'delete_after' => 'Eliminar artículos tras',
 		'exception' => 'Purge exception',	// TODO - Translation
 		'help' => 'Hay más opciones disponibles en los ajustes de la fuente',
@@ -19,9 +20,9 @@ return array(
 		'purge_now' => 'Limpiar ahora',
 		'title' => 'Archivo',
 		'ttl' => 'No actualizar automáticamente más de',
-		'_' => 'Archivo',
 	),
 	'display' => array(
+		'_' => 'Visualización',
 		'icon' => array(
 			'bottom_line' => 'Línea inferior',
 			'display_authors' => 'Authors',	// TODO - Translation
@@ -46,22 +47,22 @@ return array(
 			'no_limit' => 'Sin límite',
 			'thin' => 'Estrecho',
 		),
-		'_' => 'Visualización',
 	),
 	'profile' => array(
+		'_' => 'Administración de perfiles',
 		'api' => 'API management',	// TODO - Translation
 		'delete' => array(
-			'warn' => 'Tu cuenta y todos los datos asociados serán eliminados.',
 			'_' => 'Borrar cuenta',
+			'warn' => 'Tu cuenta y todos los datos asociados serán eliminados.',
 		),
 		'email' => 'Correo electrónico',
 		'password_api' => 'Contraseña API <br /><small>(para apps móviles, por ej.)</small>',
 		'password_form' => 'Contraseña<br /><small>(para el método de identificación por formulario web)</small>',
 		'password_format' => 'Mínimo de 7 caracteres',
 		'title' => 'Perfil',
-		'_' => 'Administración de perfiles',
 	),
 	'query' => array(
+		'_' => 'Consultas de usuario',
 		'deprecated' => 'Esta consulta ya no es válida. La categoría referenciada o fuente ha sido eliminada.',
 		'display' => 'Display user query results',	// TODO - Translation
 		'filter' => 'Filtro aplicado:',
@@ -69,8 +70,8 @@ return array(
 		'get_category' => 'Mostrar la categoría "%s"',
 		'get_favorite' => 'Mostrar artículos favoritos',
 		'get_feed' => 'Mostrar fuente "%s"',
-		'none' => 'Todavía no has creado ninguna consulta de usuario.',
 		'no_filter' => 'Sin filtro',
+		'none' => 'Todavía no has creado ninguna consulta de usuario.',
 		'number' => 'Consulta n° %d',
 		'order_asc' => 'Mostrar primero los artículos más antiguos',
 		'order_desc' => 'Mostrar primero los artículos más recientes',
@@ -93,9 +94,9 @@ return array(
 		'state_14' => 'Mostrar artículos sin leer',
 		'state_15' => 'Mostrar todos los artículos',
 		'title' => 'Consultas de usuario',
-		'_' => 'Consultas de usuario',
 	),
 	'reading' => array(
+		'_' => 'Lectura',
 		'after_onread' => 'Tras “marcar todo como leído”,',
 		'always_show_favorites' => 'Show all articles in favorites by default',	// TODO - Translation
 		'articles_per_page' => 'Número de artículos por página',
@@ -117,19 +118,19 @@ return array(
 			'when' => 'Marcar el artículo como leído…',
 		),
 		'show' => array(
+			'_' => 'Artículos a mostrar',
+			'active_category' => 'Active category',	// TODO - Translation
 			'adaptive' => 'Ajustar la visualización',
 			'all_articles' => 'Mostrar todos los artículos',
-			'unread' => 'Mostrar solo pendientes',
-			'active_category' => 'Active category',	// TODO - Translation
 			'all_categories' => 'All categories',	// TODO - Translation
 			'no_category' => 'No category',	// TODO - Translation
-			'_' => 'Artículos a mostrar',
+			'unread' => 'Mostrar solo pendientes',
 		),
 		'sides_close_article' => 'Pinchar fuera del área de texto del artículo lo cerrará',
 		'sort' => array(
+			'_' => 'Orden',
 			'newer_first' => 'Nuevos primero',
 			'older_first' => 'Antiguos primero',
-			'_' => 'Orden',
 		),
 		'sticky_post' => 'Pegar el artículo a la parte superior al abrirlo',
 		'title' => 'Lectura',
@@ -139,9 +140,9 @@ return array(
 			'normal' => 'Vista Normal',
 			'reader' => 'Vista de Lectura',
 		),
-		'_' => 'Lectura',
 	),
 	'sharing' => array(
+		'_' => 'Compartir',
 		'add' => 'Add a sharing method',	// TODO - Translation
 		'blogotext' => 'Blogotext',	// TODO - Translation
 		'diaspora' => 'Diaspora*',	// TODO - Translation
@@ -156,9 +157,9 @@ return array(
 		'title' => 'Compartir',
 		'twitter' => 'Twitter',	// TODO - Translation
 		'wallabag' => 'wallabag',	// TODO - Translation
-		'_' => 'Compartir',
 	),
 	'shortcut' => array(
+		'_' => 'Atajos de teclado',
 		'article_action' => 'Acciones de artículo',
 		'auto_share' => 'Compartir',
 		'auto_share_help' => 'Si solo hay un modo para compartir, ese será el que se use. En caso contrario los modos quedarán accesibles por su numeración.',
@@ -183,14 +184,13 @@ return array(
 		'reading_view' => 'Switch to reading view',	// TODO - Translation
 		'rss_view' => 'Open RSS view in a new tab',	// TODO - Translation
 		'see_on_website' => 'Ver en la web original',
-		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Mayúsculas</kbd> para marcar todos los artículos como leídos',	// TODO - Translation
+		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> to mark all articles as read',	// TODO - Translation
 		'skip_next_article' => 'Focus next without opening',	// TODO - Translation
 		'skip_previous_article' => 'Focus previous without opening',	// TODO - Translation
 		'title' => 'Atajos de teclado',
 		'user_filter' => 'Acceso a filtros de usuario',
 		'user_filter_help' => 'Si solo hay un filtro de usuario, ese será el que se use. En caso contrario, los filtros están accesibles por su númeración.',
 		'views' => 'Views',	// TODO - Translation
-		'_' => 'Atajos de teclado',
 	),
 	'user' => array(
 		'articles_and_size' => '%s artículos (%s)',

+ 11 - 11
app/i18n/es/feedback.php

@@ -44,9 +44,9 @@ return array(
 			'ko' => '%s no se puede activar. <a href="%s">Revisa el registro de FreshRSS</a> para más información.',
 			'ok' => '%s ha quedado activado',
 		),
+		'no_access' => 'No tienes acceso a %s',
 		'not_enabled' => '%s no está activado',
 		'not_found' => '%s no existe',
-		'no_access' => 'No tienes acceso a %s',
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'La extensión ZIP no está disponible en tu servidor. Por favor, exporta estos archivos uno a uno.',
@@ -72,10 +72,10 @@ return array(
 			'emptied' => 'Se ha vaciado la categoría',
 			'error' => 'No es posible actualizar la categoría',
 			'name_exists' => 'Ya existe una categoría con ese nombre.',
-			'not_delete_default' => '¡No puedes borrar la categoría por defecto!',
-			'not_exist' => 'La categoría no existe',
 			'no_id' => 'Debes especificar la id de la categoría.',
 			'no_name' => '¡El nombre de la categoría no puede dejarse en blanco!.',
+			'not_delete_default' => '¡No puedes borrar la categoría por defecto!',
+			'not_exist' => 'La categoría no existe',
 			'over_max' => 'Has alcanzado el límite de categorías (%d)',
 			'updated' => 'La categoría se ha actualizado.',
 		),
@@ -89,17 +89,17 @@ return array(
 			'error' => 'No es posible actualizar la fuente',
 			'internal_problem' => 'No ha sido posible agregar la fuente RSS. <a href="%s">Revisa el registro de FreshRSS </a> para más información.',
 			'invalid_url' => 'La URL <em>%s</em> es inválida',
-			'not_added' => '<em>%s</em> no ha podido se añadida',
-			'not_found' => 'Feed cannot be found',	// TODO - Translation
-			'no_refresh' => 'No hay fuente a actualizar…',
 			'n_actualized' => 'Se han actualiado %d fuentes',
 			'n_entries_deleted' => 'Se han eliminado %d artículos',
+			'no_refresh' => 'No hay fuente a actualizar…',
+			'not_added' => '<em>%s</em> no ha podido se añadida',
+			'not_found' => 'Feed cannot be found',	// TODO - Translation
 			'over_max' => 'Has alcanzado tu límite de fuentes (%d)',
 			'reloaded' => '<em>%s</em> has been reloaded',	// TODO - Translation
 			'selector_preview' => array(
 				'http_error' => 'Failed to load website content.',	// TODO - Translation
-				'no_entries' => 'There is no entries in your feed. You need at least one entry to create a preview.',	// TODO - Translation
-				'no_feed' => 'Internal error (no feed to entry).',	// TODO - Translation
+				'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.',	// TODO - Translation
+				'no_feed' => 'Internal error (feed can’t be found).',	// TODO - Translation
 				'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.',	// TODO - Translation
 				'selector_empty' => 'The selector is empty. You need to define one to create a preview.',	// TODO - Translation
 			),
@@ -117,16 +117,16 @@ return array(
 	),
 	'user' => array(
 		'created' => array(
-			'error' => 'No se ha podido crear al usuario %s',
 			'_' => 'Se ha creado el usuario %s',
+			'error' => 'No se ha podido crear al usuario %s',
 		),
 		'deleted' => array(
-			'error' => 'El usuario %s no ha podido ser eliminado',
 			'_' => 'El usuario %s ha sido eliminado',
+			'error' => 'El usuario %s no ha podido ser eliminado',
 		),
 		'updated' => array(
-			'error' => 'User %s has not been updated',	// TODO - Translation
 			'_' => 'User %s has been updated',	// TODO - Translation
+			'error' => 'User %s has not been updated',	// TODO - Translation
 		),
 	),
 );

+ 18 - 18
app/i18n/es/gen.php

@@ -26,51 +26,56 @@ return array(
 		'update' => 'Actualizar',
 	),
 	'auth' => array(
-		'accept_tos' => 'Acpeto los <a href="%s">Terminos de Servicio</a>.',	// TODO - Translation
+		'accept_tos' => 'Acpeto los <a href="%s">Terminos de Servicio</a>.',
 		'email' => 'Correo electrónico',
 		'keep_logged_in' => 'Mantenerme identificado <small>(%s días)</small>',
 		'login' => 'Conectar',
 		'logout' => 'Desconectar',
 		'password' => array(
-			'format' => '<small>Mínimo de 7 caracteres</small>',
 			'_' => 'Contraseña',
+			'format' => '<small>Mínimo de 7 caracteres</small>',
 		),
 		'registration' => array(
+			'_' => 'Nueva cuenta',
 			'ask' => '¿Crear una cuenta?',
 			'title' => 'Creación de cuenta',
-			'_' => 'Nueva cuenta',
 		),
 		'reset' => 'Reinicar identificación',
 		'username' => array(
+			'_' => 'Nombre de usuario',
 			'admin' => 'Nombre de usuario del Administrador',
 			'format' => '<small>Máximo 16 caracteres alfanuméricos</small>',
-			'_' => 'Nombre de usuario',
 		),
 	),
 	'date' => array(
-		'apr' => 'abr',
 		'Apr' => '\\A\\b\\r\\i\\l',
-		'april' => 'abril',
 		'Aug' => '\\A\\g\\o\\s\\t\\o',
+		'Dec' => '\\D\\i\\c\\i\\e\\m\\b\\r\\e',
+		'Feb' => '\\F\\e\\b\\r\\e\\r\\o',
+		'Jan' => '\\E\\n\\e\\r\\o',
+		'Jul' => '\\J\\u\\l\\i\\o',
+		'Jun' => '\\J\\u\\n\\i\\o',
+		'Mar' => '\\M\\a\\r\\z\\o',
+		'May' => '\\M\\a\\y\\o',
+		'Nov' => '\\N\\o\\v\\i\\e\\m\\b\\r\\e',
+		'Oct' => '\\O\\c\\t\\u\\b\\r\\e',
+		'Sep' => '\\S\\e\\p\\t\\i\\e\\m\\b\\r\\e',
+		'apr' => 'abr',
+		'april' => 'abril',
 		'aug' => 'ago',
 		'august' => 'agosto',
 		'before_yesterday' => 'Anteayer',
-		'Dec' => '\\D\\i\\c\\i\\e\\m\\b\\r\\e',
 		'dec' => 'dic',
 		'december' => 'diciembre',
-		'Feb' => '\\F\\e\\b\\r\\e\\r\\o',
 		'feb' => 'feb',
 		'february' => 'febrero',
 		'format_date' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y',	// TODO - Translation
 		'format_date_hour' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y \\a\\t H\\:i',	// TODO - Translation
 		'fri' => 'Vie',
-		'Jan' => '\\E\\n\\e\\r\\o',
 		'jan' => 'ene',
 		'january' => 'ene',
 		'jul' => 'jul',
-		'Jul' => '\\J\\u\\l\\i\\o',
 		'july' => 'julio',
-		'Jun' => '\\J\\u\\n\\i\\o',
 		'jun' => 'jun',
 		'june' => 'junio',
 		'last_2_year' => 'Last two years',	// TODO - Translation
@@ -81,22 +86,17 @@ return array(
 		'last_month' => 'Mes pasado',
 		'last_week' => 'Semana pasada',
 		'last_year' => 'Año pasado',
-		'Mar' => '\\M\\a\\r\\z\\o',
 		'mar' => 'mar',
 		'march' => 'marzo',
 		'may' => 'mayo',
-		'May' => '\\M\\a\\y\\o',
 		'may_' => 'may',
 		'mon' => 'Lun',
 		'month' => 'meses',
-		'Nov' => '\\N\\o\\v\\i\\e\\m\\b\\r\\e',
 		'nov' => 'nov',
 		'november' => 'noviembre',
-		'Oct' => '\\O\\c\\t\\u\\b\\r\\e',
 		'oct' => 'oct',
 		'october' => 'octubre',
 		'sat' => 'Sab',
-		'Sep' => '\\S\\e\\p\\t\\i\\e\\m\\b\\r\\e',
 		'sep' => 'sep',
 		'september' => 'septiembre',
 		'sun' => 'Dom',
@@ -108,8 +108,8 @@ return array(
 	),
 	'dir' => 'ltr',
 	'freshrss' => array(
-		'about' => 'Acerca de FreshRSS',
 		'_' => 'FreshRSS',	// TODO - Translation
+		'about' => 'Acerca de FreshRSS',
 	),
 	'js' => array(
 		'category_empty' => 'Vaciar categoría',
@@ -178,13 +178,13 @@ return array(
 		'years' => 'años',
 	),
 	'share' => array(
+		'Known' => 'Known based sites',	// TODO - Translation
 		'blogotext' => 'Blogotext',	// TODO - Translation
 		'diaspora' => 'Diaspora*',	// TODO - Translation
 		'email' => 'Email',	// TODO - Translation
 		'facebook' => 'Facebook',	// TODO - Translation
 		'gnusocial' => 'GNU social',	// TODO - Translation
 		'jdh' => 'Journal du hacker',	// TODO - Translation
-		'Known' => 'Known based sites',	// TODO - Translation
 		'lemmy' => 'Lemmy',	// TODO - Translation
 		'linkedin' => 'LinkedIn',	// TODO - Translation
 		'mastodon' => 'Mastodon',	// TODO - Translation

+ 2 - 2
app/i18n/es/index.php

@@ -2,6 +2,7 @@
 
 return array(
 	'about' => array(
+		'_' => 'Acerca de',
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',	// TODO - Translation
 		'bugs_reports' => 'Informe de fallos',
 		'credits' => 'Créditos',
@@ -13,7 +14,6 @@ return array(
 		'title' => 'Acerca de',
 		'version' => 'Versión',
 		'website' => 'Web',
-		'_' => 'Acerca de',
 	),
 	'feed' => array(
 		'add' => 'Puedes añadir fuentes.',
@@ -24,10 +24,10 @@ return array(
 		'title_global' => 'Vista global',
 	),
 	'log' => array(
+		'_' => 'Registros',
 		'clear' => 'Limpiar registros',
 		'empty' => 'El archivo de registro está vacío',
 		'title' => 'Registros',
-		'_' => 'Registros',
 	),
 	'menu' => array(
 		'about' => 'Acerca de FreshRSS',

+ 5 - 5
app/i18n/es/install.php

@@ -17,19 +17,20 @@ return array(
 		'type' => 'Método de identificación',
 	),
 	'bdd' => array(
+		'_' => 'Base de datos',
 		'conf' => array(
+			'_' => 'Configuración de la base de datos',
 			'ko' => 'Verificar la información de tu base de datos.',
 			'ok' => 'La configuración de la base de datos ha sido guardada.',
-			'_' => 'Configuración de la base de datos',
 		),
 		'host' => 'Servidor',
 		'password' => 'Contraseña de la base de datos',
 		'prefix' => 'Prefijo de la tabla',
 		'type' => 'Tipo de base de datos',
 		'username' => 'Nombre de usuario de la base de datos',
-		'_' => 'Base de datos',
 	),
 	'check' => array(
+		'_' => 'Verificaciones',
 		'already_installed' => '¡FreshRSS ya está instalado!',
 		'cache' => array(
 			'nok' => 'Comprueba los permisos en el directorio <em>./data/cache</em>. El servidor HTTP debe contar con permisos de escritura.',
@@ -95,11 +96,10 @@ return array(
 			'nok' => 'No se ha podido localizar la librería necesaria para procesar XML.',
 			'ok' => 'Dispones de la librería necesaria para procesar XML.',
 		),
-		'_' => 'Verificaciones',
 	),
 	'conf' => array(
-		'ok' => 'La configuración general se ha guardado.',
 		'_' => 'Configuración general',
+		'ok' => 'La configuración general se ha guardado.',
 	),
 	'congratulations' => '¡Enhorabuena!',
 	'default_user' => 'Nombre de usuario para el usuario por defecto <small>(máximo de 16 caracteres alfanuméricos)</small>',
@@ -110,9 +110,9 @@ return array(
 		'confirm_reinstall' => 'Al reinstalar FreshRSS perderás cualquier configuración anterior. ¿Seguro que quieres continuar?',
 	),
 	'language' => array(
+		'_' => 'Idioma',
 		'choose' => 'Selecciona el idioma para FreshRSS',
 		'defined' => 'Idioma seleccionado.',
-		'_' => 'Idioma',
 	),
 	'not_deleted' => 'Parece que ha habido un error. Debes eliminar el archivo <em>%s</em> de forma manual.',
 	'ok' => 'La instalación se ha completado correctamente.',

+ 7 - 7
app/i18n/es/sub.php

@@ -11,6 +11,7 @@ return array(
 		'title' => 'Bookmarklet',	// TODO - Translation
 	),
 	'category' => array(
+		'_' => 'Categoría',
 		'add' => 'Añadir a la categoría',
 		'archiving' => 'Archivo',
 		'empty' => 'Vaciar categoría',
@@ -19,7 +20,6 @@ return array(
 		'position' => 'Display position',	// TODO - Translation
 		'position_help' => 'To control category sort order',	// TODO - Translation
 		'title' => 'Título',
-		'_' => 'Categoría',
 	),
 	'feed' => array(
 		'add' => 'Añadir fuente RSS',
@@ -39,16 +39,16 @@ return array(
 		'empty' => 'La fuente está vacía. Por favor, verifica que siga activa.',
 		'error' => 'Hay un problema con esta fuente. Por favor, veritica que esté disponible y prueba de nuevo.',
 		'filteractions' => array(
-			'help' => 'Write one search filter per line.',	// TODO - Translation
 			'_' => 'Filter actions',	// TODO - Translation
+			'help' => 'Write one search filter per line.',	// TODO - Translation
 		),
 		'information' => 'Información',
 		'keep_min' => 'Número mínimo de artículos a conservar',
 		'maintenance' => array(
 			'clear_cache' => 'Clear cache',	// TODO - Translation
-			'clear_cache_help' => 'Clear the cache of this feed on disk',	// TODO - Translation
+			'clear_cache_help' => 'Clear the cache for this feed.',	// TODO - Translation
 			'reload_articles' => 'Reload articles',	// TODO - Translation
-			'reload_articles_help' => 'Reload articles and fetch complete content',	// TODO - Translation
+			'reload_articles_help' => 'Reload articles and fetch complete content if a selector is defined.',	// TODO - Translation
 			'title' => 'Maintenance',	// TODO - Translation
 		),
 		'moved_category_deleted' => 'Al borrar una categoría todas sus fuentes pasan automáticamente a la categoría <em>%s</em>.',
@@ -56,13 +56,13 @@ return array(
 		'no_selected' => 'No hay funentes seleccionadas.',
 		'number_entries' => '%d artículos',
 		'priority' => array(
+			'_' => 'Visibility',	// TODO - Translation
 			'archived' => 'Do not show (archived)',	// TODO - Translation
 			'main_stream' => 'Mostrar en salida principal',
 			'normal' => 'Show in its category',	// TODO - Translation
-			'_' => 'Visibility',	// TODO - Translation
 		),
 		'selector_preview' => array(
-			'show_raw' => 'Show source',	// TODO - Translation
+			'show_raw' => 'Show source code',	// TODO - Translation
 			'show_rendered' => 'Show content',	// TODO - Translation
 		),
 		'show' => array(
@@ -108,8 +108,8 @@ return array(
 		'subscription_tools' => 'Subscription tools',	// TODO - Translation
 	),
 	'title' => array(
+		'_' => 'Administración de suscripciones',
 		'feed_management' => 'Administración de fuentes RSS',
 		'subscription_tools' => 'Subscription tools',	// TODO - Translation
-		'_' => 'Administración de suscripciones',
 	),
 );

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

@@ -83,9 +83,9 @@ return array(
 			'ok' => 'Vous disposez de PDO et d’au moins un des drivers supportés (pdo_mysql, pdo_sqlite, pdo_pgsql).',
 		),
 		'php' => array(
+			'_' => 'Installation de PHP',
 			'nok' => 'Votre version de PHP est la %s mais FreshRSS requiert au moins la version %s.',
 			'ok' => 'Votre version de PHP est la %s, qui est compatible avec FreshRSS.',
-			'_' => 'Installation de PHP',
 		),
 		'tables' => array(
 			'nok' => 'Impossible de trouver une ou plusieurs tables en base de données.',
@@ -116,8 +116,8 @@ return array(
 		'name' => 'Nom',
 		'no_configure_view' => 'Cette extension n’a pas à être configurée',
 		'system' => array(
-			'no_rights' => 'Extensions système (contrôlées par l’administrateur)',
 			'_' => 'Extensions système',
+			'no_rights' => 'Extensions système (contrôlées par l’administrateur)',
 		),
 		'title' => 'Extensions',
 		'update' => 'Mise à jour disponible',
@@ -125,6 +125,7 @@ return array(
 		'version' => 'Version',
 	),
 	'stats' => array(
+		'_' => 'Statistiques',
 		'all_feeds' => 'Tous les flux',
 		'category' => 'Catégorie',
 		'entry_count' => 'Nombre d’articles',
@@ -154,9 +155,9 @@ return array(
 		'status_unread' => 'non lus',
 		'title' => 'Statistiques',
 		'top_feed' => 'Les dix plus gros flux',
-		'_' => 'Statistiques',
 	),
 	'system' => array(
+		'_' => 'Configuration du système',
 		'auto-update-url' => 'URL du service de mise à jour',
 		'cookie-duration' => array(
 			'help' => 'en secondes',
@@ -170,21 +171,20 @@ return array(
 			'help' => 'Un chiffre de 0 signifie que l’on peut créer un nombre infini de comptes',
 			'number' => 'Nombre max de comptes',
 		),
-		'_' => 'Configuration du système',
 	),
 	'update' => array(
+		'_' => 'Système de mise à jour',
 		'apply' => 'Appliquer la mise à jour',
 		'check' => 'Vérifier les mises à jour',
 		'current_version' => 'Votre version actuelle de FreshRSS est la %s.',
 		'last' => 'Dernière vérification : %s',
 		'none' => 'Aucune mise à jour à appliquer',
 		'title' => 'Système de mise à jour',
-		'_' => 'Système de mise à jour',
 	),
 	'user' => array(
 		'admin' => 'Administrateur',
-		'articles_and_size' => '%s articles (%s)',
 		'article_count' => 'Articles',
+		'articles_and_size' => '%s articles (%s)',
 		'back_to_manage' => '← Revenir à la liste des utilisateurs',
 		'create' => 'Créer un nouvel utilisateur',
 		'database_size' => 'Volumétrie',
@@ -202,8 +202,8 @@ return array(
 		'selected' => 'Utilisateur sélectionné',
 		'title' => 'Gestion des utilisateurs',
 		'update_users' => 'Mettre à jour un utilisateur',
+		'user_list' => 'Liste des utilisateurs',
 		'username' => 'Nom d’utilisateur',
 		'users' => 'Utilisateurs',
-		'user_list' => 'Liste des utilisateurs',
 	),
 );

+ 13 - 13
app/i18n/fr/conf.php

@@ -2,6 +2,7 @@
 
 return array(
 	'archiving' => array(
+		'_' => 'Archivage',
 		'delete_after' => 'Supprimer les articles après',
 		'exception' => 'Exception de nettoyage',
 		'help' => 'D’autres options sont disponibles dans la configuration individuelle des flux.',
@@ -19,9 +20,9 @@ return array(
 		'purge_now' => 'Purger maintenant',
 		'title' => 'Archivage',
 		'ttl' => 'Ne pas automatiquement rafraîchir plus souvent que',
-		'_' => 'Archivage',
 	),
 	'display' => array(
+		'_' => 'Affichage',
 		'icon' => array(
 			'bottom_line' => 'Ligne du bas',
 			'display_authors' => 'Auteurs',
@@ -46,22 +47,22 @@ return array(
 			'no_limit' => 'Pas de limite',
 			'thin' => 'Fine',
 		),
-		'_' => 'Affichage',
 	),
 	'profile' => array(
+		'_' => 'Gestion du profil',
 		'api' => 'Gestion de l’API',
 		'delete' => array(
-			'warn' => 'Le compte et toutes les données associées vont être supprimées.',
 			'_' => 'Suppression du compte',
+			'warn' => 'Le compte et toutes les données associées vont être supprimées.',
 		),
 		'email' => 'Adresse email',
 		'password_api' => 'Mot de passe API<br /><small>(ex. : pour applis mobiles)</small>',
 		'password_form' => 'Mot de passe<br /><small>(pour connexion par formulaire)</small>',
 		'password_format' => '7 caractères minimum',
 		'title' => 'Profil',
-		'_' => 'Gestion du profil',
 	),
 	'query' => array(
+		'_' => 'Filtres utilisateurs',
 		'deprecated' => 'Ce filtre n’est plus valide. La catégorie ou le flux concerné a été supprimé.',
 		'display' => 'Afficher les résultats du filtre',
 		'filter' => 'Filtres appliqués :',
@@ -69,8 +70,8 @@ return array(
 		'get_category' => 'Afficher la catégorie "%s"',
 		'get_favorite' => 'Afficher les articles favoris',
 		'get_feed' => 'Afficher le flux "%s"',
-		'none' => 'Vous n’avez pas encore créé de filtre.',
 		'no_filter' => 'Aucun filtre appliqué',
+		'none' => 'Vous n’avez pas encore créé de filtre.',
 		'number' => 'Filtre n°%d',
 		'order_asc' => 'Afficher les articles les plus anciens en premier',
 		'order_desc' => 'Afficher les articles les plus récents en premier',
@@ -93,9 +94,9 @@ return array(
 		'state_14' => 'Afficher les articles non lus',
 		'state_15' => 'Afficher tous les articles',
 		'title' => 'Filtres utilisateurs',
-		'_' => 'Filtres utilisateurs',
 	),
 	'reading' => array(
+		'_' => 'Lecture',
 		'after_onread' => 'Après “marquer tout comme lu”,',
 		'always_show_favorites' => 'Afficher par défaut tous les articles dans les favoris',
 		'articles_per_page' => 'Nombre d’articles par page',
@@ -117,19 +118,19 @@ return array(
 			'when' => 'Marquer un article comme lu…',
 		),
 		'show' => array(
+			'_' => 'Articles à afficher',
+			'active_category' => 'La catégorie active',
 			'adaptive' => 'Adapter l’affichage',
 			'all_articles' => 'Afficher tous les articles',
-			'unread' => 'Afficher les non lus',
-			'active_category' => 'La catégorie active',
 			'all_categories' => 'Toutes les catégories',
 			'no_category' => 'Aucune catégorie',
-			'_' => 'Articles à afficher',
+			'unread' => 'Afficher les non lus',
 		),
 		'sides_close_article' => 'Cliquer hors de la zone de texte ferme l’article',
 		'sort' => array(
+			'_' => 'Ordre de tri',
 			'newer_first' => 'Plus récents en premier',
 			'older_first' => 'Plus anciens en premier',
-			'_' => 'Ordre de tri',
 		),
 		'sticky_post' => 'Aligner l’article en haut quand il est ouvert',
 		'title' => 'Lecture',
@@ -139,9 +140,9 @@ return array(
 			'normal' => 'Vue normale',
 			'reader' => 'Vue lecture',
 		),
-		'_' => 'Lecture',
 	),
 	'sharing' => array(
+		'_' => 'Partage',
 		'add' => 'Ajouter une méthode de partage',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
@@ -156,9 +157,9 @@ return array(
 		'title' => 'Partage',
 		'twitter' => 'Twitter',
 		'wallabag' => 'wallabag',
-		'_' => 'Partage',
 	),
 	'shortcut' => array(
+		'_' => 'Raccourcis',
 		'article_action' => 'Actions associées à l’article courant',
 		'auto_share' => 'Partager',
 		'auto_share_help' => 'S’il n’y a qu’un mode de partage, celui-ci est utilisé automatiquement. Sinon ils sont accessibles par leur numéro.',
@@ -190,7 +191,6 @@ return array(
 		'user_filter' => 'Accéder aux filtres utilisateur',
 		'user_filter_help' => 'S’il n’y a qu’un filtre utilisateur, celui-ci est utilisé automatiquement. Sinon ils sont accessibles par leur numéro.',
 		'views' => 'Vues',
-		'_' => 'Raccourcis',
 	),
 	'user' => array(
 		'articles_and_size' => '%s articles (%s)',

+ 9 - 9
app/i18n/fr/feedback.php

@@ -44,9 +44,9 @@ return array(
 			'ko' => '%s ne peut pas être activée. <a href="%s">Consulter les logs de FreshRSS</a> pour plus de détails.',
 			'ok' => '%s est désormais activée',
 		),
+		'no_access' => 'Vous n’avez aucun accès sur %s',
 		'not_enabled' => '%s n’est pas encore activée',
 		'not_found' => '%s n’existe pas',
-		'no_access' => 'Vous n’avez aucun accès sur %s',
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'L’extension ZIP n’est pas présente sur votre serveur. Veuillez essayer d’exporter les fichiers un par un.',
@@ -72,10 +72,10 @@ return array(
 			'emptied' => 'La catégorie a été vidée.',
 			'error' => 'La catégorie n’a pas pu être modifiée',
 			'name_exists' => 'Une catégorie possède déjà ce nom.',
-			'not_delete_default' => 'Vous ne pouvez pas supprimer la catégorie par défaut !',
-			'not_exist' => 'Cette catégorie n’existe pas !',
 			'no_id' => 'Vous devez préciser l’id de la catégorie.',
 			'no_name' => 'Vous devez préciser un nom pour la catégorie.',
+			'not_delete_default' => 'Vous ne pouvez pas supprimer la catégorie par défaut !',
+			'not_exist' => 'Cette catégorie n’existe pas !',
 			'over_max' => 'Vous avez atteint votre limite de catégories (%d)',
 			'updated' => 'La catégorie a été mise à jour.',
 		),
@@ -89,11 +89,11 @@ return array(
 			'error' => 'Une erreur est survenue',
 			'internal_problem' => 'Le flux ne peut pas être ajouté. <a href="%s">Consulter les logs de FreshRSS</a> pour plus de détails. Vous pouvez essayer de forcer l’ajout par addition de <code>#force_feed</code> à l’URL.',
 			'invalid_url' => 'L’url <em>%s</em> est invalide.',
-			'not_added' => '<em>%s</em> n’a pas pu être ajouté.',
-			'not_found' => 'Le flux n\'a pas pu être trouvé.',
-			'no_refresh' => 'Il n’y a aucun flux à actualiser…',
 			'n_actualized' => '%d flux ont été mis à jour.',
 			'n_entries_deleted' => '%d articles ont été supprimés.',
+			'no_refresh' => 'Il n’y a aucun flux à actualiser…',
+			'not_added' => '<em>%s</em> n’a pas pu être ajouté.',
+			'not_found' => 'Le flux n\'a pas pu être trouvé.',
 			'over_max' => 'Vous avez atteint votre limite de flux (%d)',
 			'reloaded' => '<em>%s</em> a été rechargé.',
 			'selector_preview' => array(
@@ -117,16 +117,16 @@ return array(
 	),
 	'user' => array(
 		'created' => array(
-			'error' => 'L’utilisateur %s ne peut pas être créé.',
 			'_' => 'L’utilisateur %s a été créé.',
+			'error' => 'L’utilisateur %s ne peut pas être créé.',
 		),
 		'deleted' => array(
-			'error' => 'L’utilisateur %s ne peut pas être supprimé.',
 			'_' => 'L’utilisateur %s a été supprimé.',
+			'error' => 'L’utilisateur %s ne peut pas être supprimé.',
 		),
 		'updated' => array(
-			'error' => 'L’utilisateur %s n’a pas été mis à jour',
 			'_' => 'L’utilisateur %s a été mis à jour',
+			'error' => 'L’utilisateur %s n’a pas été mis à jour',
 		),
 	),
 );

+ 17 - 17
app/i18n/fr/gen.php

@@ -32,45 +32,50 @@ return array(
 		'login' => 'Connexion',
 		'logout' => 'Déconnexion',
 		'password' => array(
-			'format' => '<small>7 caractères minimum</small>',
 			'_' => 'Mot de passe',
+			'format' => '<small>7 caractères minimum</small>',
 		),
 		'registration' => array(
+			'_' => 'Nouveau compte',
 			'ask' => 'Créer un compte ?',
 			'title' => 'Création de compte',
-			'_' => 'Nouveau compte',
 		),
 		'reset' => 'Réinitialisation de l’authentification',
 		'username' => array(
+			'_' => 'Nom d’utilisateur',
 			'admin' => 'Nom d’utilisateur administrateur',
 			'format' => '<small>16 caractères alphanumériques maximum</small>',
-			'_' => 'Nom d’utilisateur',
 		),
 	),
 	'date' => array(
-		'apr' => 'avr.',
 		'Apr' => '\\a\\v\\r\\i\\l',
-		'april' => 'avril',
 		'Aug' => '\\a\\o\\û\\t',
+		'Dec' => '\\d\\é\\c\\e\\m\\b\\r\\e',
+		'Feb' => '\\f\\é\\v\\r\\i\\e\\r',
+		'Jan' => '\\j\\a\\n\\v\\i\\e\\r',
+		'Jul' => '\\j\\u\\i\\l\\l\\e\\t',
+		'Jun' => '\\j\\u\\i\\n',
+		'Mar' => '\\m\\a\\r\\s',
+		'May' => '\\m\\a\\i',
+		'Nov' => '\\n\\o\\v\\e\\m\\b\\r\\e',
+		'Oct' => '\\o\\c\\t\\o\\b\\r\\e',
+		'Sep' => '\\s\\e\\p\\t\\e\\m\\b\\r\\e',
+		'apr' => 'avr.',
+		'april' => 'avril',
 		'aug' => 'août',
 		'august' => 'août',
 		'before_yesterday' => 'À partir d’avant-hier',
-		'Dec' => '\\d\\é\\c\\e\\m\\b\\r\\e',
 		'dec' => 'déc.',
 		'december' => 'décembre',
-		'Feb' => '\\f\\é\\v\\r\\i\\e\\r',
 		'feb' => 'fév.',
 		'february' => 'février',
 		'format_date' => 'j %s Y',
 		'format_date_hour' => 'j %s Y \\à H\\:i',
 		'fri' => 'ven.',
-		'Jan' => '\\j\\a\\n\\v\\i\\e\\r',
 		'jan' => 'jan.',
 		'january' => 'janvier',
 		'jul' => 'jui.',
-		'Jul' => '\\j\\u\\i\\l\\l\\e\\t',
 		'july' => 'juillet',
-		'Jun' => '\\j\\u\\i\\n',
 		'jun' => 'juin',
 		'june' => 'juin',
 		'last_2_year' => 'Depuis deux ans',
@@ -81,22 +86,17 @@ return array(
 		'last_month' => 'Depuis le mois dernier',
 		'last_week' => 'Depuis la semaine dernière',
 		'last_year' => 'Depuis l’année dernière',
-		'Mar' => '\\m\\a\\r\\s',
 		'mar' => 'mars',
 		'march' => 'mars',
 		'may' => 'mai',
-		'May' => '\\m\\a\\i',
 		'may_' => 'mai',
 		'mon' => 'lun.',
 		'month' => 'mois',
-		'Nov' => '\\n\\o\\v\\e\\m\\b\\r\\e',
 		'nov' => 'nov.',
 		'november' => 'novembre',
-		'Oct' => '\\o\\c\\t\\o\\b\\r\\e',
 		'oct' => 'oct.',
 		'october' => 'octobre',
 		'sat' => 'sam.',
-		'Sep' => '\\s\\e\\p\\t\\e\\m\\b\\r\\e',
 		'sep' => 'sep.',
 		'september' => 'septembre',
 		'sun' => 'dim.',
@@ -108,8 +108,8 @@ return array(
 	),
 	'dir' => 'ltr',
 	'freshrss' => array(
-		'about' => 'À propos de FreshRSS',
 		'_' => 'FreshRSS',
+		'about' => 'À propos de FreshRSS',
 	),
 	'js' => array(
 		'category_empty' => 'Catégorie vide',
@@ -178,13 +178,13 @@ return array(
 		'years' => 'années',
 	),
 	'share' => array(
+		'Known' => 'Sites basés sur Known',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Courriel',
 		'facebook' => 'Facebook',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
-		'Known' => 'Sites basés sur Known',
 		'lemmy' => 'Lemmy',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',

+ 2 - 2
app/i18n/fr/index.php

@@ -2,6 +2,7 @@
 
 return array(
 	'about' => array(
+		'_' => 'À propos',
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',
 		'bugs_reports' => 'Rapports de bugs',
 		'credits' => 'Crédits',
@@ -13,7 +14,6 @@ return array(
 		'title' => 'À propos',
 		'version' => 'Version',
 		'website' => 'Site Internet',
-		'_' => 'À propos',
 	),
 	'feed' => array(
 		'add' => 'Vous pouvez ajouter des flux.',
@@ -24,10 +24,10 @@ return array(
 		'title_global' => 'Vue globale',
 	),
 	'log' => array(
+		'_' => 'Logs',
 		'clear' => 'Effacer les logs',
 		'empty' => 'Les logs sont vides.',
 		'title' => 'Logs',
-		'_' => 'Logs',
 	),
 	'menu' => array(
 		'about' => 'À propos de FreshRSS',

+ 5 - 5
app/i18n/fr/install.php

@@ -17,19 +17,20 @@ return array(
 		'type' => 'Méthode d’authentification',
 	),
 	'bdd' => array(
+		'_' => 'Base de données',
 		'conf' => array(
+			'_' => 'Configuration de la base de données',
 			'ko' => 'Vérifiez les informations d’accès à la base de données.',
 			'ok' => 'La configuration de la base de données a été enregistrée.',
-			'_' => 'Configuration de la base de données',
 		),
 		'host' => 'Hôte',
 		'password' => 'Mot de passe pour base de données',
 		'prefix' => 'Préfixe des tables',
 		'type' => 'Type de base de données',
 		'username' => 'Nom d’utilisateur pour base de données',
-		'_' => 'Base de données',
 	),
 	'check' => array(
+		'_' => 'Vérifications',
 		'already_installed' => 'FreshRSS semble avoir déjà été installé !',
 		'cache' => array(
 			'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data/cache</em>. Le serveur HTTP doit être capable d’écrire dedans',
@@ -95,11 +96,10 @@ return array(
 			'nok' => 'Impossible de trouver une librairie requise pour XML.',
 			'ok' => 'Vouz disposez de la librairie requise pour XML.',
 		),
-		'_' => 'Vérifications',
 	),
 	'conf' => array(
-		'ok' => 'La configuration générale a été enregistrée.',
 		'_' => 'Configuration générale',
+		'ok' => 'La configuration générale a été enregistrée.',
 	),
 	'congratulations' => 'Félicitations !',
 	'default_user' => 'Nom de l’utilisateur par défaut <small>(16 caractères alphanumériques maximum)</small>',
@@ -110,9 +110,9 @@ return array(
 		'confirm_reinstall' => 'Réinstaller FreshRSS vous fera perdre la configuration précédente. Êtes-vous sûr de vouloir continuer ?',
 	),
 	'language' => array(
+		'_' => 'Langue',
 		'choose' => 'Choisissez la langue pour FreshRSS',
 		'defined' => 'La langue a bien été définie.',
-		'_' => 'Langue',
 	),
 	'not_deleted' => 'Quelque chose s’est mal passé, vous devez supprimer le fichier <em>%s</em> à la main.',
 	'ok' => 'L’installation s’est bien passée.',

+ 4 - 4
app/i18n/fr/sub.php

@@ -11,6 +11,7 @@ return array(
 		'title' => 'Bookmarklet',
 	),
 	'category' => array(
+		'_' => 'Catégorie',
 		'add' => 'Ajouter une catégorie',
 		'archiving' => 'Archivage',
 		'empty' => 'Catégorie vide',
@@ -19,7 +20,6 @@ return array(
 		'position' => 'Position d’affichage',
 		'position_help' => 'Pour contrôler l’ordre de tri des catégories',
 		'title' => 'Titre',
-		'_' => 'Catégorie',
 	),
 	'feed' => array(
 		'add' => 'Ajouter un flux RSS',
@@ -39,8 +39,8 @@ return array(
 		'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.',
 		'filteractions' => array(
-			'help' => 'Écrivez une recherche par ligne.',
 			'_' => 'Filtres d’action',
+			'help' => 'Écrivez une recherche par ligne.',
 		),
 		'information' => 'Informations',
 		'keep_min' => 'Nombre minimum d’articles à conserver',
@@ -56,10 +56,10 @@ return array(
 		'no_selected' => 'Aucun flux sélectionné.',
 		'number_entries' => '%d articles',
 		'priority' => array(
+			'_' => 'Visibilité',
 			'archived' => 'Ne pas afficher (archivé)',
 			'main_stream' => 'Afficher dans le flux principal',
 			'normal' => 'Afficher dans sa catégorie',
-			'_' => 'Visibilité',
 		),
 		'selector_preview' => array(
 			'show_raw' => 'Afficher le code source',
@@ -108,8 +108,8 @@ return array(
 		'subscription_tools' => 'Outils d’abonnement',
 	),
 	'title' => array(
+		'_' => 'Gestion des abonnements',
 		'feed_management' => 'Gestion des flux RSS',
 		'subscription_tools' => 'Outils d’abonnement',
-		'_' => 'Gestion des abonnements',
 	),
 );

+ 7 - 7
app/i18n/he/admin.php

@@ -83,9 +83,9 @@ return array(
 			'ok' => 'PDO מותקן ולפחות אחד ממנהלי ההתקן הנתמכים מותקן (pdo_mysql, pdo_sqlite)',
 		),
 		'php' => array(
+			'_' => 'PHP installation',	// TODO - Translation
 			'nok' => 'גירסת PHP שלכם היא %s אך FreshRSS דורש לפחות את גירסה %s',
 			'ok' => 'גירסת PHP שלכם היא %s, שתואמת ל FreshRSS',
-			'_' => 'PHP installation',	// TODO - Translation
 		),
 		'tables' => array(
 			'nok' => 'There is one or more lacking tables in the database.',
@@ -116,8 +116,8 @@ return array(
 		'name' => 'Name',	// TODO - Translation
 		'no_configure_view' => 'This extension cannot be configured.',	// TODO - Translation
 		'system' => array(
-			'no_rights' => 'System extension (you have no rights on it)',	// TODO - Translation
 			'_' => 'System extensions',	// TODO - Translation
+			'no_rights' => 'System extension (you have no rights on it)',	// TODO - Translation
 		),
 		'title' => 'Extensions',	// TODO - Translation
 		'update' => 'Update available',	// TODO - Translation
@@ -125,6 +125,7 @@ return array(
 		'version' => 'Version',	// TODO - Translation
 	),
 	'stats' => array(
+		'_' => 'סטטיסטיקות',
 		'all_feeds' => 'כל ההזנות',
 		'category' => 'קטגוריה',
 		'entry_count' => 'סכום המאמרים',
@@ -154,9 +155,9 @@ return array(
 		'status_unread' => 'לא נקרא',
 		'title' => 'סטטיסטיקות',
 		'top_feed' => 'עשרת ההזנות המובילות',
-		'_' => 'סטטיסטיקות',
 	),
 	'system' => array(
+		'_' => 'System configuration',	// TODO - Translation
 		'auto-update-url' => 'Auto-update server URL',	// TODO - Translation
 		'cookie-duration' => array(
 			'help' => 'in seconds',	// TODO - Translation
@@ -170,21 +171,20 @@ return array(
 			'help' => '0 means that there is no account limit',	// TODO - Translation
 			'number' => 'Max number of accounts',	// TODO - Translation
 		),
-		'_' => 'System configuration',	// TODO - Translation
 	),
 	'update' => array(
+		'_' => 'מערכת העדכון',
 		'apply' => 'החלת העדכון',
 		'check' => 'בדיקת עדכונים חדשים',
 		'current_version' => 'Your current version of FreshRSS is the %s.',
 		'last' => 'תאריך בדיקה אחרון: %s',
 		'none' => 'אין עדכון להחלה',
 		'title' => 'מערכת העדכון',
-		'_' => 'מערכת העדכון',
 	),
 	'user' => array(
 		'admin' => 'Administrator',	// TODO - Translation
-		'articles_and_size' => '%s articles (%s)',	// TODO - Translation
 		'article_count' => 'Articles',	// TODO - Translation
+		'articles_and_size' => '%s articles (%s)',	// TODO - Translation
 		'back_to_manage' => '← Return to user list',	// TODO - Translation
 		'create' => 'יצירת משתמש חדש',
 		'database_size' => 'Database size',	// TODO - Translation
@@ -202,8 +202,8 @@ return array(
 		'selected' => 'Selected user',	// TODO - Translation
 		'title' => 'Manage users',	// TODO - Translation
 		'update_users' => 'Update user',	// TODO - Translation
+		'user_list' => 'רשימת משתמשים',
 		'username' => 'שם משתמש',
 		'users' => 'משתמשים',
-		'user_list' => 'רשימת משתמשים',
 	),
 );

+ 14 - 14
app/i18n/he/conf.php

@@ -2,6 +2,7 @@
 
 return array(
 	'archiving' => array(
+		'_' => 'ארכוב',
 		'delete_after' => 'מחיקת מאמרים לאחר',
 		'exception' => 'Purge exception',	// TODO - Translation
 		'help' => 'אפשרויות נוספות זמינות בזרמים ספציפיים',
@@ -19,9 +20,9 @@ return array(
 		'purge_now' => 'ניקוי עכשיו',
 		'title' => 'ארכוב',
 		'ttl' => 'אין לרענן אוטומטית יותר מ',
-		'_' => 'ארכוב',
 	),
 	'display' => array(
+		'_' => 'תצוגה',
 		'icon' => array(
 			'bottom_line' => 'שורה תחתונה',
 			'display_authors' => 'Authors',	// TODO - Translation
@@ -46,22 +47,22 @@ return array(
 			'no_limit' => 'ללא הגבלה',
 			'thin' => 'צר',
 		),
-		'_' => 'תצוגה',
 	),
 	'profile' => array(
+		'_' => 'Profile management',	// TODO - Translation
 		'api' => 'API management',	// TODO - Translation
 		'delete' => array(
-			'warn' => 'Your account and all related data will be deleted.',	// TODO - Translation
 			'_' => 'Account deletion',	// TODO - Translation
+			'warn' => 'Your account and all related data will be deleted.',	// TODO - Translation
 		),
 		'email' => 'Email address',	// TODO - Translation
 		'password_api' => 'סיסמת API<br /><small>(לדוגמה ליישומים סלולריים)</small>',
 		'password_form' => 'סיסמה<br /><small>(לשימוש בטפוס ההרשמה)</small>',
 		'password_format' => 'At least 7 characters',	// TODO - Translation
 		'title' => 'Profile',	// TODO - Translation
-		'_' => 'Profile management',	// TODO - Translation
 	),
 	'query' => array(
+		'_' => 'שאילתות',
 		'deprecated' => 'שאילתה זו אינה בתוקף יותר, הפיד או הקטגוריה לייחוס נמחקו.',
 		'display' => 'Display user query results',	// TODO - Translation
 		'filter' => 'מסננים בשימוש:',
@@ -69,8 +70,8 @@ return array(
 		'get_category' => 'הצגת קטגוריה "%s"',
 		'get_favorite' => 'הצגת מאמרים מועדפים',
 		'get_feed' => 'הצגת הזנה %s',
-		'none' => 'אף שאילתה לא נוצרה עדיין.',
 		'no_filter' => 'ללא סינון',
+		'none' => 'אף שאילתה לא נוצרה עדיין.',
 		'number' => 'שאילתה מספר °%d',
 		'order_asc' => 'הצגת מאמרים ישנים בראש',
 		'order_desc' => 'הצגת מאמרים חדשים בראש',
@@ -93,9 +94,9 @@ return array(
 		'state_14' => 'הצגת מאמרים שלא נקראו',
 		'state_15' => 'הצגת	כל המאמרים',
 		'title' => 'שאילתות',
-		'_' => 'שאילתות',
 	),
 	'reading' => array(
+		'_' => 'קריאה',
 		'after_onread' => 'לאחר “סימון הכל כנקרא”,',
 		'always_show_favorites' => 'Show all articles in favorites by default',	// TODO - Translation
 		'articles_per_page' => 'מספר המאמרים בעמוד',
@@ -117,19 +118,19 @@ return array(
 			'when' => 'סימון מאמרים כנקראו…',
 		),
 		'show' => array(
+			'_' => 'מאמרים להצגה',
+			'active_category' => 'Active category',	// TODO - Translation
 			'adaptive' => 'תצוגה מתעדכנת',
 			'all_articles' => 'הצגת כל המאמרים',
-			'unread' => 'הצגת מאמרים שלא נקראו בלבד',
-			'active_category' => 'Active category',	// TODO - Translation
 			'all_categories' => 'All categories',	// TODO - Translation
 			'no_category' => 'No category',	// TODO - Translation
-			'_' => 'מאמרים להצגה',
+			'unread' => 'הצגת מאמרים שלא נקראו בלבד',
 		),
 		'sides_close_article' => 'Clicking outside of article text area closes the article',	// TODO - Translation
 		'sort' => array(
+			'_' => 'סדר המיון',
 			'newer_first' => 'חדשים בראש',
 			'older_first' => 'ישנים יותר בראש',
-			'_' => 'סדר המיון',
 		),
 		'sticky_post' => 'הצמדת המאמר לחלק העליון כאשר הוא פתוח',
 		'title' => 'קריאה',
@@ -139,9 +140,9 @@ return array(
 			'normal' => 'תצוגה רגילה',
 			'reader' => 'תצוגת קריאה',
 		),
-		'_' => 'קריאה',
 	),
 	'sharing' => array(
+		'_' => 'שיתוף',
 		'add' => 'Add a sharing method',	// TODO - Translation
 		'blogotext' => 'Blogotext',	// TODO - Translation
 		'diaspora' => 'Diaspora*',	// TODO - Translation
@@ -156,9 +157,9 @@ return array(
 		'title' => 'שיתוף',
 		'twitter' => 'Twitter',	// TODO - Translation
 		'wallabag' => 'wallabag',	// TODO - Translation
-		'_' => 'שיתוף',
 	),
 	'shortcut' => array(
+		'_' => 'קיצורי דרך',
 		'article_action' => 'פעולות על מאמרים',
 		'auto_share' => 'שיתוף',
 		'auto_share_help' => 'אם יש רק מצב שיתוף אחד, הוא מופעל. אחרת המצבים נבחרים על בסיס המספר שלהם.',
@@ -183,14 +184,13 @@ return array(
 		'reading_view' => 'Switch to reading view',	// TODO - Translation
 		'rss_view' => 'Open RSS view in a new tab',	// TODO - Translation
 		'see_on_website' => 'ראו את המקור באתר',
-		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> על מנת לסמן את כל המאמרים כנקראו',	// TODO - Translation
+		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> to mark all articles as read',	// TODO - Translation
 		'skip_next_article' => 'Focus next without opening',	// TODO - Translation
 		'skip_previous_article' => 'Focus previous without opening',	// TODO - Translation
 		'title' => 'קיצורי דרך',
 		'user_filter' => 'גישה למססנים',
 		'user_filter_help' => 'אם יש רק מזנן אחד הוא יהיה בשימוש. אחרת המסננים ישמשו על בסיס המספר שלהם.',
 		'views' => 'Views',	// TODO - Translation
-		'_' => 'קיצורי דרך',
 	),
 	'user' => array(
 		'articles_and_size' => '%s articles (%s)',	// TODO - Translation

+ 11 - 11
app/i18n/he/feedback.php

@@ -44,9 +44,9 @@ return array(
 			'ko' => '%s cannot be enabled. <a href="%s">Check FreshRSS logs</a> for details.',	// TODO - Translation
 			'ok' => '%s is now enabled',	// TODO - Translation
 		),
+		'no_access' => 'You have no access on %s',	// TODO - Translation
 		'not_enabled' => '%s is not enabled yet',
 		'not_found' => '%s does not exist',	// TODO - Translation
-		'no_access' => 'You have no access on %s',	// TODO - Translation
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'הרחבת ZIP אינה מותקנת על השרת.',
@@ -72,10 +72,10 @@ return array(
 			'emptied' => 'הקטגוריה רוקנה',
 			'error' => 'Category cannot be updated',	// TODO - Translation
 			'name_exists' => 'Category name already exists.',	// TODO - Translation
-			'not_delete_default' => 'You cannot delete the default category!',	// TODO - Translation
-			'not_exist' => 'The category does not exist!',	// TODO - Translation
 			'no_id' => 'You must precise the id of the category.',
 			'no_name' => 'Category name cannot be empty.',	// TODO - Translation
+			'not_delete_default' => 'You cannot delete the default category!',	// TODO - Translation
+			'not_exist' => 'The category does not exist!',	// TODO - Translation
 			'over_max' => 'You have reached your limit of categories (%d)',	// TODO - Translation
 			'updated' => 'Category has been updated.',	// TODO - Translation
 		),
@@ -89,17 +89,17 @@ return array(
 			'error' => 'Feed cannot be updated',	// TODO - Translation
 			'internal_problem' => 'אין אפשרות להוסיף את ההזנה. <a href="%s">בדקו את הלוגים</a> לפרטים.',
 			'invalid_url' => 'URL <em>%s</em> אינו תקין',
-			'not_added' => '<em>%s</em> אין אפשרות להוסיף את',
-			'not_found' => 'Feed cannot be found',	// TODO - Translation
-			'no_refresh' => 'אין הזנה שניתן לרענן…',
 			'n_actualized' => '%d הזנות עודכנו',
 			'n_entries_deleted' => '%d המאמרים נמחקו',
+			'no_refresh' => 'אין הזנה שניתן לרענן…',
+			'not_added' => '<em>%s</em> אין אפשרות להוסיף את',
+			'not_found' => 'Feed cannot be found',	// TODO - Translation
 			'over_max' => 'You have reached your limit of feeds (%d)',	// TODO - Translation
 			'reloaded' => '<em>%s</em> has been reloaded',	// TODO - Translation
 			'selector_preview' => array(
 				'http_error' => 'Failed to load website content.',	// TODO - Translation
-				'no_entries' => 'There is no entries in your feed. You need at least one entry to create a preview.',	// TODO - Translation
-				'no_feed' => 'Internal error (no feed to entry).',	// TODO - Translation
+				'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.',	// TODO - Translation
+				'no_feed' => 'Internal error (feed can’t be found).',	// TODO - Translation
 				'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.',	// TODO - Translation
 				'selector_empty' => 'The selector is empty. You need to define one to create a preview.',	// TODO - Translation
 			),
@@ -117,16 +117,16 @@ return array(
 	),
 	'user' => array(
 		'created' => array(
-			'error' => 'User %s cannot be created',	// TODO - Translation
 			'_' => 'המשתמש %s נוצר',
+			'error' => 'User %s cannot be created',	// TODO - Translation
 		),
 		'deleted' => array(
-			'error' => 'User %s cannot be deleted',	// TODO - Translation
 			'_' => 'המשתמש %s נמחק',
+			'error' => 'User %s cannot be deleted',	// TODO - Translation
 		),
 		'updated' => array(
-			'error' => 'User %s has not been updated',	// TODO - Translation
 			'_' => 'User %s has been updated',	// TODO - Translation
+			'error' => 'User %s has not been updated',	// TODO - Translation
 		),
 	),
 );

+ 17 - 17
app/i18n/he/gen.php

@@ -32,45 +32,50 @@ return array(
 		'login' => 'כניסה לחשבון',
 		'logout' => 'יציאה מהחשבון',
 		'password' => array(
-			'format' => '<small>At least 7 characters</small>',	// TODO - Translation
 			'_' => 'סיסמה',
+			'format' => '<small>At least 7 characters</small>',	// TODO - Translation
 		),
 		'registration' => array(
+			'_' => 'New account',	// TODO - Translation
 			'ask' => 'Create an account?',	// TODO - Translation
 			'title' => 'Account creation',	// TODO - Translation
-			'_' => 'New account',	// TODO - Translation
 		),
 		'reset' => 'איפוס אימות',
 		'username' => array(
+			'_' => 'שם משתמש',
 			'admin' => 'שם משתמש של המנהל',
 			'format' => '<small>Maximum 16 alphanumeric characters</small>',	// TODO - Translation
-			'_' => 'שם משתמש',
 		),
 	),
 	'date' => array(
-		'apr' => 'apr',
 		'Apr' => '\\A\\p\\r\\i\\l',	// TODO - Translation
-		'april' => 'Apr',
 		'Aug' => '\\A\\u\\g\\u\\s\\t',	// TODO - Translation
+		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',	// TODO - Translation
+		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y',	// TODO - Translation
+		'Jan' => '\\J\\a\\n\\u\\a\\r\\y',	// TODO - Translation
+		'Jul' => '\\J\\u\\l\\y',	// TODO - Translation
+		'Jun' => '\\J\\u\\n\\e',	// TODO - Translation
+		'Mar' => '\\M\\a\\r\\c\\h',	// TODO - Translation
+		'May' => '\\M\\a\\y',	// TODO - Translation
+		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',	// TODO - Translation
+		'Oct' => '\\O\\c\\t\\o\\b\\e\\r',	// TODO - Translation
+		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',	// TODO - Translation
+		'apr' => 'apr',
+		'april' => 'Apr',
 		'aug' => 'aug',
 		'august' => 'Aug',
 		'before_yesterday' => 'ישן יותר',
-		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',	// TODO - Translation
 		'dec' => 'dec',
 		'december' => 'Dec',
-		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y',	// TODO - Translation
 		'feb' => 'feb',
 		'february' => 'Feb',
 		'format_date' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y',	// TODO - Translation
 		'format_date_hour' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y \\a\\t H\\:i',	// TODO - Translation
 		'fri' => 'Fri',	// TODO - Translation
-		'Jan' => '\\J\\a\\n\\u\\a\\r\\y',	// TODO - Translation
 		'jan' => 'jan',
 		'january' => 'Jan',
 		'jul' => 'jul',
-		'Jul' => '\\J\\u\\l\\y',	// TODO - Translation
 		'july' => 'Jul',
-		'Jun' => '\\J\\u\\n\\e',	// TODO - Translation
 		'jun' => 'jun',
 		'june' => 'Jun',
 		'last_2_year' => 'Last two years',	// TODO - Translation
@@ -81,22 +86,17 @@ return array(
 		'last_month' => 'בחודש שעבר',
 		'last_week' => 'בשבוע שעבר',
 		'last_year' => 'בשנה האחרונה',
-		'Mar' => '\\M\\a\\r\\c\\h',	// TODO - Translation
 		'mar' => 'mar',
 		'march' => 'Mar',
 		'may' => 'May',	// TODO - Translation
-		'May' => '\\M\\a\\y',	// TODO - Translation
 		'may_' => 'May',	// TODO - Translation
 		'mon' => 'Mon',	// TODO - Translation
 		'month' => 'חודשים',
-		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',	// TODO - Translation
 		'nov' => 'nov',
 		'november' => 'Nov',
-		'Oct' => '\\O\\c\\t\\o\\b\\e\\r',	// TODO - Translation
 		'oct' => 'oct',
 		'october' => 'Oct',
 		'sat' => 'Sat',	// TODO - Translation
-		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',	// TODO - Translation
 		'sep' => 'sep',
 		'september' => 'Sep',
 		'sun' => 'Sun',	// TODO - Translation
@@ -108,8 +108,8 @@ return array(
 	),
 	'dir' => 'rtl',
 	'freshrss' => array(
-		'about' => 'אודות FreshRSS',
 		'_' => 'FreshRSS',	// TODO - Translation
+		'about' => 'אודות FreshRSS',
 	),
 	'js' => array(
 		'category_empty' => 'Empty category',	// TODO - Translation
@@ -178,13 +178,13 @@ return array(
 		'years' => 'years',	// TODO - Translation
 	),
 	'share' => array(
+		'Known' => 'Known based sites',	// TODO - Translation
 		'blogotext' => 'Blogotext',	// TODO - Translation
 		'diaspora' => 'Diaspora*',	// TODO - Translation
 		'email' => 'דואר אלקטרוני',
 		'facebook' => 'Facebook',	// TODO - Translation
 		'gnusocial' => 'GNU social',	// TODO - Translation
 		'jdh' => 'Journal du hacker',	// TODO - Translation
-		'Known' => 'Known based sites',	// TODO - Translation
 		'lemmy' => 'Lemmy',	// TODO - Translation
 		'linkedin' => 'LinkedIn',	// TODO - Translation
 		'mastodon' => 'Mastodon',	// TODO - Translation

+ 2 - 2
app/i18n/he/index.php

@@ -2,6 +2,7 @@
 
 return array(
 	'about' => array(
+		'_' => 'אודות',
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',	// TODO - Translation
 		'bugs_reports' => 'דיווח באגים',
 		'credits' => 'קרדיטים',
@@ -13,7 +14,6 @@ return array(
 		'title' => 'אודות',
 		'version' => 'גרסה',
 		'website' => 'אתר',
-		'_' => 'אודות',
 	),
 	'feed' => array(
 		'add' => 'ניתן להוסיף הזנות חדשות.',
@@ -24,10 +24,10 @@ return array(
 		'title_global' => 'תצוגה גלובלית',
 	),
 	'log' => array(
+		'_' => 'לוגים',
 		'clear' => 'ניקוי הלוגים',
 		'empty' => 'קובץ הלוג ריק',
 		'title' => 'לוגים',
-		'_' => 'לוגים',
 	),
 	'menu' => array(
 		'about' => 'אודות FreshRSS',

+ 5 - 5
app/i18n/he/install.php

@@ -17,19 +17,20 @@ return array(
 		'type' => 'שיטת אימות',
 	),
 	'bdd' => array(
+		'_' => 'בסיס נתונים',
 		'conf' => array(
+			'_' => 'הגדרות בסיס נתונים',
 			'ko' => 'נא לוודא את הגדרות בסיס הנתונים.',
 			'ok' => 'הגדרות בסיס הנתונים נשמרו.',
-			'_' => 'הגדרות בסיס נתונים',
 		),
 		'host' => 'מארח',
 		'password' => 'HTTP סיסמה',
 		'prefix' => 'קידומת הטבלה',
 		'type' => 'סוג בסיס הנתונים',
 		'username' => 'HTTP שם משתמש',
-		'_' => 'בסיס נתונים',
 	),
 	'check' => array(
+		'_' => 'בדיקות',
 		'already_installed' => 'We have detected that FreshRSS is already installed!',	// TODO - Translation
 		'cache' => array(
 			'nok' => 'Check permissions on <em>./data/cache</em> directory. HTTP server must have rights to write into',	// TODO - Translation
@@ -95,11 +96,10 @@ return array(
 			'nok' => 'Cannot find the required library to parse XML.',	// TODO - Translation
 			'ok' => 'You have the required library to parse XML.',	// TODO - Translation
 		),
-		'_' => 'בדיקות',
 	),
 	'conf' => array(
-		'ok' => 'ההגדרות הכלליות נשמרו.',
 		'_' => 'הגדרות כלליות',
+		'ok' => 'ההגדרות הכלליות נשמרו.',
 	),
 	'congratulations' => 'מזל טוב!',
 	'default_user' => 'שם המשתמש של משתמש ברירת המחדל <small>(לכל היותר 16 תווים אלפאנומריים)</small>',
@@ -110,9 +110,9 @@ return array(
 		'confirm_reinstall' => 'You will lose your previous configuration by reinstalling FreshRSS. Are you sure you want to continue?',	// TODO - Translation
 	),
 	'language' => array(
+		'_' => 'שפה',
 		'choose' => 'בחירת שפה ל FreshRSS',
 		'defined' => 'השפה הוגדרה.',
-		'_' => 'שפה',
 	),
 	'not_deleted' => 'משהו נכשל; יש צורך למחוק את הקובץ <em>%s</em> ידנית.',
 	'ok' => 'The installation process was successful.',	// TODO - Translation

+ 7 - 7
app/i18n/he/sub.php

@@ -11,6 +11,7 @@ return array(
 		'title' => 'Bookmarklet',	// TODO - Translation
 	),
 	'category' => array(
+		'_' => 'קטגוריה',
 		'add' => 'הוספת קטגוריה',
 		'archiving' => 'ארכוב',
 		'empty' => 'Empty category',	// TODO - Translation
@@ -19,7 +20,6 @@ return array(
 		'position' => 'Display position',	// TODO - Translation
 		'position_help' => 'To control category sort order',	// TODO - Translation
 		'title' => 'כותרת',
-		'_' => 'קטגוריה',
 	),
 	'feed' => array(
 		'add' => 'הוספת הזנה',
@@ -39,16 +39,16 @@ return array(
 		'empty' => 'הזנה זו ריקה. אנא ודאו שהיא עדיין מתוחזקת.',
 		'error' => 'הזנה זו נתקלה בשגיאה, אנא ודאו שהיא תקינה ואז נסו שנית.',
 		'filteractions' => array(
-			'help' => 'Write one search filter per line.',	// TODO - Translation
 			'_' => 'Filter actions',	// TODO - Translation
+			'help' => 'Write one search filter per line.',	// TODO - Translation
 		),
 		'information' => 'מידע',
 		'keep_min' => 'מסםר מינימלי של מאמרים לשמור',
 		'maintenance' => array(
 			'clear_cache' => 'Clear cache',	// TODO - Translation
-			'clear_cache_help' => 'Clear the cache of this feed on disk',	// TODO - Translation
+			'clear_cache_help' => 'Clear the cache for this feed.',	// TODO - Translation
 			'reload_articles' => 'Reload articles',	// TODO - Translation
-			'reload_articles_help' => 'Reload articles and fetch complete content',	// TODO - Translation
+			'reload_articles_help' => 'Reload articles and fetch complete content if a selector is defined.',	// TODO - Translation
 			'title' => 'Maintenance',	// TODO - Translation
 		),
 		'moved_category_deleted' => 'כאשר הקטגוריה נמחקת ההזנות שבתוכה אוטומטית מקוטלגות תחת	<em>%s</em>.',
@@ -56,13 +56,13 @@ return array(
 		'no_selected' => 'אף הזנה לא נבחרה.',
 		'number_entries' => '%d מאמרים',
 		'priority' => array(
+			'_' => 'Visibility',	// TODO - Translation
 			'archived' => 'Do not show (archived)',	// TODO - Translation
 			'main_stream' => 'הצגה בזרם המרכזי',
 			'normal' => 'Show in its category',	// TODO - Translation
-			'_' => 'Visibility',	// TODO - Translation
 		),
 		'selector_preview' => array(
-			'show_raw' => 'Show source',	// TODO - Translation
+			'show_raw' => 'Show source code',	// TODO - Translation
 			'show_rendered' => 'Show content',	// TODO - Translation
 		),
 		'show' => array(
@@ -108,8 +108,8 @@ return array(
 		'subscription_tools' => 'Subscription tools',	// TODO - Translation
 	),
 	'title' => array(
+		'_' => 'ניהול הרשמות',
 		'feed_management' => 'ניהול הזנות RSS',
 		'subscription_tools' => 'Subscription tools',	// TODO - Translation
-		'_' => 'ניהול הרשמות',
 	),
 );

+ 7 - 7
app/i18n/it/admin.php

@@ -83,9 +83,9 @@ return array(
 			'ok' => 'PDO e altri driver supportati (pdo_mysql, pdo_sqlite, pdo_pgsql).',
 		),
 		'php' => array(
+			'_' => 'Installazione PHP',
 			'nok' => 'Versione PHP %s FreshRSS richiede almeno la versione %s.',
 			'ok' => 'Versione PHP %s, compatibile con FreshRSS.',
-			'_' => 'Installazione PHP',
 		),
 		'tables' => array(
 			'nok' => 'Rilevate tabelle mancanti nel database.',
@@ -116,8 +116,8 @@ return array(
 		'name' => 'Name',	// TODO - Translation
 		'no_configure_view' => 'Questa estensioni non può essere configurata.',
 		'system' => array(
-			'no_rights' => 'Estensione di sistema (non hai i permessi su questo tipo)',
 			'_' => 'Estensioni di sistema',
+			'no_rights' => 'Estensione di sistema (non hai i permessi su questo tipo)',
 		),
 		'title' => 'Estensioni',
 		'update' => 'Update available',	// TODO - Translation
@@ -125,6 +125,7 @@ return array(
 		'version' => 'Version',	// TODO - Translation
 	),
 	'stats' => array(
+		'_' => 'Statistiche',
 		'all_feeds' => 'Tutti i feeds',
 		'category' => 'Categoria',
 		'entry_count' => 'Articoli',
@@ -154,9 +155,9 @@ return array(
 		'status_unread' => 'Non letti',
 		'title' => 'Statistiche',
 		'top_feed' => 'I migliori 10 feeds',
-		'_' => 'Statistiche',
 	),
 	'system' => array(
+		'_' => 'Configurazione di sistema',
 		'auto-update-url' => 'Auto-update server URL',	// TODO - Translation
 		'cookie-duration' => array(
 			'help' => 'in seconds',	// TODO - Translation
@@ -170,21 +171,20 @@ return array(
 			'help' => '0 significa che non esiste limite sui profili',
 			'number' => 'Numero massimo di profili',
 		),
-		'_' => 'Configurazione di sistema',
 	),
 	'update' => array(
+		'_' => 'Aggiornamento sistema',
 		'apply' => 'Applica',
 		'check' => 'Controlla la presenza di nuovi aggiornamenti',
 		'current_version' => 'FreshRSS versione %s.',
 		'last' => 'Ultima verifica: %s',
 		'none' => 'Nessun aggiornamento da applicare',
 		'title' => 'Aggiorna sistema',
-		'_' => 'Aggiornamento sistema',
 	),
 	'user' => array(
 		'admin' => 'Administrator',	// TODO - Translation
-		'articles_and_size' => '%s articoli (%s)',
 		'article_count' => 'Articles',	// TODO - Translation
+		'articles_and_size' => '%s articoli (%s)',
 		'back_to_manage' => '← Return to user list',	// TODO - Translation
 		'create' => 'Crea nuovo utente',
 		'database_size' => 'Database size',	// TODO - Translation
@@ -202,8 +202,8 @@ return array(
 		'selected' => 'Selected user',	// TODO - Translation
 		'title' => 'Gestione utenti',
 		'update_users' => 'Update user',	// TODO - Translation
+		'user_list' => 'Lista utenti',
 		'username' => 'Nome utente',
 		'users' => 'Utenti',
-		'user_list' => 'Lista utenti',
 	),
 );

+ 15 - 12
app/i18n/it/conf.php

@@ -2,6 +2,7 @@
 
 return array(
 	'archiving' => array(
+		'_' => 'Archiviazione',
 		'delete_after' => 'Rimuovi articoli dopo',
 		'exception' => 'Purge exception',	// TODO - Translation
 		'help' => 'Altre opzioni sono disponibili nelle impostazioni dei singoli feed',
@@ -19,9 +20,9 @@ return array(
 		'purge_now' => 'Cancella ora',
 		'title' => 'Archiviazione',
 		'ttl' => 'Non effettuare aggiornamenti per più di',
-		'_' => 'Archiviazione',
 	),
 	'display' => array(
+		'_' => 'Visualizzazione',
 		'icon' => array(
 			'bottom_line' => 'Barra in fondo',
 			'display_authors' => 'Authors',	// TODO - Translation
@@ -46,22 +47,22 @@ return array(
 			'no_limit' => 'Nessun limite',
 			'thin' => 'Stretto',
 		),
-		'_' => 'Visualizzazione',
 	),
 	'profile' => array(
+		'_' => 'Gestione profili',
 		'api' => 'API management',	// TODO - Translation
 		'delete' => array(
-			'warn' => 'Il tuo account e tutti i dati associati saranno cancellati.',
 			'_' => 'Cancellazione account',
+			'warn' => 'Il tuo account e tutti i dati associati saranno cancellati.',
 		),
 		'email' => 'Indirizzo email',
 		'password_api' => 'Password API<br /><small>(e.g., per applicazioni mobili)</small>',
 		'password_form' => 'Password<br /><small>(per il login classico)</small>',
 		'password_format' => 'Almeno 7 caratteri',
 		'title' => 'Profilo',
-		'_' => 'Gestione profili',
 	),
 	'query' => array(
+		'_' => 'Ricerche personali',
 		'deprecated' => 'Questa query non è più valida. La categoria o il feed di riferimento non stati cancellati.',
 		'display' => 'Display user query results',	// TODO - Translation
 		'filter' => 'Filtro applicato:',
@@ -69,8 +70,8 @@ return array(
 		'get_category' => 'Mostra la categoria "%s" ',
 		'get_favorite' => 'Mostra articoli preferiti',
 		'get_feed' => 'Mostra feed "%s" ',
-		'none' => 'Non hai creato nessuna ricerca personale.',
 		'no_filter' => 'Nessun filtro',
+		'none' => 'Non hai creato nessuna ricerca personale.',
 		'number' => 'Ricerca n°%d',
 		'order_asc' => 'Mostra prima gli articoli più vecchi',
 		'order_desc' => 'Mostra prima gli articoli più nuovi',
@@ -93,9 +94,9 @@ return array(
 		'state_14' => 'Mostra gli articoli non letti',
 		'state_15' => 'Mostra tutti gli articoli',
 		'title' => 'Ricerche personali',
-		'_' => 'Ricerche personali',
 	),
 	'reading' => array(
+		'_' => 'Lettura',
 		'after_onread' => 'Dopo “segna tutto come letto”,',
 		'always_show_favorites' => 'Show all articles in favorites by default',	// TODO - Translation
 		'articles_per_page' => 'Numero di articoli per pagina',
@@ -117,16 +118,19 @@ return array(
 			'when' => 'Segna articoli come letti…',
 		),
 		'show' => array(
+			'_' => 'Articoli da visualizzare',
+			'active_category' => 'Active category',	// TODO - Translation
 			'adaptive' => 'Adatta visualizzazione',
 			'all_articles' => 'Mostra tutti gli articoli',
+			'all_categories' => 'All categories',	// TODO - Translation
+			'no_category' => 'No category',	// TODO - Translation
 			'unread' => 'Mostra solo non letti',
-			'_' => 'Articoli da visualizzare',
 		),
 		'sides_close_article' => 'Clicking outside of article text area closes the article',	// TODO - Translation
 		'sort' => array(
+			'_' => 'Ordinamento',
 			'newer_first' => 'Prima i più recenti',
 			'older_first' => 'Prima i più vecchi',
-			'_' => 'Ordinamento',
 		),
 		'sticky_post' => 'Blocca il contenuto a inizio pagina quando aperto',
 		'title' => 'Lettura',
@@ -136,9 +140,9 @@ return array(
 			'normal' => 'Vista elenco',
 			'reader' => 'Modalità di lettura',
 		),
-		'_' => 'Lettura',
 	),
 	'sharing' => array(
+		'_' => 'Condivisione',
 		'add' => 'Add a sharing method',	// TODO - Translation
 		'blogotext' => 'Blogotext',	// TODO - Translation
 		'diaspora' => 'Diaspora*',	// TODO - Translation
@@ -153,9 +157,9 @@ return array(
 		'title' => 'Condividi',
 		'twitter' => 'Twitter',	// TODO - Translation
 		'wallabag' => 'wallabag',	// TODO - Translation
-		'_' => 'Condivisione',
 	),
 	'shortcut' => array(
+		'_' => 'Comandi tastiera',
 		'article_action' => 'Azioni sugli articoli',
 		'auto_share' => 'Condividi',
 		'auto_share_help' => 'Se è presente un solo servizio di condivisione verrà usato quello, altrimenti usare anche il numero associato.',
@@ -180,14 +184,13 @@ return array(
 		'reading_view' => 'Switch to reading view',	// TODO - Translation
 		'rss_view' => 'Open RSS view in a new tab',	// TODO - Translation
 		'see_on_website' => 'Vai al sito fonte',
-		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> per segnare tutti gli articoli come letti',	// TODO - Translation
+		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> to mark all articles as read',	// TODO - Translation
 		'skip_next_article' => 'Focus next without opening',	// TODO - Translation
 		'skip_previous_article' => 'Focus previous without opening',	// TODO - Translation
 		'title' => 'Comandi da tastiera',
 		'user_filter' => 'Accedi alle ricerche personali',
 		'user_filter_help' => 'Se è presente una sola ricerca personale verrà usata quella, altrimenti usare anche il numero associato.',
 		'views' => 'Views',	// TODO - Translation
-		'_' => 'Comandi tastiera',
 	),
 	'user' => array(
 		'articles_and_size' => '%s articoli (%s)',

+ 11 - 11
app/i18n/it/feedback.php

@@ -44,9 +44,9 @@ return array(
 			'ko' => '%s non può essere abilitata. <a href="%s">Verifica i logs</a> per dettagli.',
 			'ok' => '%s è ora abilitata',
 		),
+		'no_access' => 'Accesso negato a %s',
 		'not_enabled' => '%s non abilitato',
 		'not_found' => '%s non disponibile',
-		'no_access' => 'Accesso negato a %s',
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'Estensione ZIP non presente sul server. Per favore esporta i files singolarmente.',
@@ -72,10 +72,10 @@ return array(
 			'emptied' => 'Categoria svuotata',
 			'error' => 'Categoria non aggiornata',
 			'name_exists' => 'Categoria già esistente.',
-			'not_delete_default' => 'Non puoi cancellare la categoria predefinita!',
-			'not_exist' => 'La categoria non esite!',
 			'no_id' => 'Categoria senza ID.',
 			'no_name' => 'Il nome della categoria non può essere lasciato vuoto.',
+			'not_delete_default' => 'Non puoi cancellare la categoria predefinita!',
+			'not_exist' => 'La categoria non esite!',
 			'over_max' => 'Hai raggiunto il numero limite di categorie (%d)',
 			'updated' => 'Categoria aggiornata.',
 		),
@@ -89,17 +89,17 @@ return array(
 			'error' => 'Feed non aggiornato',
 			'internal_problem' => 'RSS feed non aggiunto. <a href="%s">Verifica i logs</a> per dettagli.',
 			'invalid_url' => 'URL <em>%s</em> non valido',
-			'not_added' => '<em>%s</em> non può essere aggiunto',
-			'not_found' => 'Feed cannot be found',	// TODO - Translation
-			'no_refresh' => 'Nessun aggiornamento disponibile…',
 			'n_actualized' => '%d feeds aggiornati',
 			'n_entries_deleted' => '%d articoli cancellati',
+			'no_refresh' => 'Nessun aggiornamento disponibile…',
+			'not_added' => '<em>%s</em> non può essere aggiunto',
+			'not_found' => 'Feed cannot be found',	// TODO - Translation
 			'over_max' => 'Hai raggiunto il numero limite di feed (%d)',
 			'reloaded' => '<em>%s</em> has been reloaded',	// TODO - Translation
 			'selector_preview' => array(
 				'http_error' => 'Failed to load website content.',	// TODO - Translation
-				'no_entries' => 'There is no entries in your feed. You need at least one entry to create a preview.',	// TODO - Translation
-				'no_feed' => 'Internal error (no feed to entry).',	// TODO - Translation
+				'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.',	// TODO - Translation
+				'no_feed' => 'Internal error (feed can’t be found).',	// TODO - Translation
 				'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.',	// TODO - Translation
 				'selector_empty' => 'The selector is empty. You need to define one to create a preview.',	// TODO - Translation
 			),
@@ -117,16 +117,16 @@ return array(
 	),
 	'user' => array(
 		'created' => array(
-			'error' => 'Errore nella creazione utente %s ',
 			'_' => 'Utente %s creato',
+			'error' => 'Errore nella creazione utente %s ',
 		),
 		'deleted' => array(
-			'error' => 'Utente %s non cancellato',
 			'_' => 'Utente %s cancellato',
+			'error' => 'Utente %s non cancellato',
 		),
 		'updated' => array(
-			'error' => 'User %s has not been updated',	// TODO - Translation
 			'_' => 'User %s has been updated',	// TODO - Translation
+			'error' => 'User %s has not been updated',	// TODO - Translation
 		),
 	),
 );

+ 17 - 17
app/i18n/it/gen.php

@@ -32,45 +32,50 @@ return array(
 		'login' => 'Accedi',
 		'logout' => 'Esci',
 		'password' => array(
-			'format' => '<small>almeno 7 caratteri</small>',
 			'_' => 'Password',	// TODO - Translation
+			'format' => '<small>almeno 7 caratteri</small>',
 		),
 		'registration' => array(
+			'_' => 'Nuovo profilo',
 			'ask' => 'Vuoi creare un nuovo profilo?',
 			'title' => 'Creazione profilo',
-			'_' => 'Nuovo profilo',
 		),
 		'reset' => 'Reset autenticazione',
 		'username' => array(
+			'_' => 'Username',	// TODO - Translation
 			'admin' => 'Username amministratore',
 			'format' => '<small>Massimo 16 caratteri alfanumerici</small>',
-			'_' => 'Username',	// TODO - Translation
 		),
 	),
 	'date' => array(
-		'apr' => 'apr.',
 		'Apr' => '\\A\\p\\r\\i\\l\\e',
-		'april' => 'aprile',
 		'Aug' => '\\A\\g\\o\\s\\t\\o',
+		'Dec' => '\\D\\i\\c\\e\\m\\b\\r\\e',
+		'Feb' => '\\F\\e\\b\\b\\r\\a\\i\\o',
+		'Jan' => '\\G\\e\\n\\u\\a\\i\\o',
+		'Jul' => '\\L\\u\\g\\l\\i\\o',
+		'Jun' => '\\G\\i\\u\\g\\n\\o',
+		'Mar' => '\\M\\a\\r\\z\\o',
+		'May' => '\\M\\a\\g\\g\\i\\o',
+		'Nov' => '\\N\\o\\v\\e\\m\\b\\r\\e',
+		'Oct' => '\\O\\t\\t\\o\\b\\r\\e',
+		'Sep' => '\\S\\e\\t\\t\\e\\m\\b\\r\\e',
+		'apr' => 'apr.',
+		'april' => 'aprile',
 		'aug' => 'ag.',
 		'august' => 'agosto',
 		'before_yesterday' => 'Meno recenti',
-		'Dec' => '\\D\\i\\c\\e\\m\\b\\r\\e',
 		'dec' => 'dic.',
 		'december' => 'dicembre',
-		'Feb' => '\\F\\e\\b\\b\\r\\a\\i\\o',
 		'feb' => 'febbr.',
 		'february' => 'febbraio',
 		'format_date' => 'j\\ %s Y',
 		'format_date_hour' => 'j\\ %s Y \\o\\r\\e H\\:i',
 		'fri' => 'Fri',	// TODO - Translation
-		'Jan' => '\\G\\e\\n\\u\\a\\i\\o',
 		'jan' => 'genn.',
 		'january' => 'gennaio',
 		'jul' => 'jul',
-		'Jul' => '\\L\\u\\g\\l\\i\\o',
 		'july' => 'luglio',
-		'Jun' => '\\G\\i\\u\\g\\n\\o',
 		'jun' => 'jun',
 		'june' => 'giugno',
 		'last_2_year' => 'Last two years',	// TODO - Translation
@@ -81,22 +86,17 @@ return array(
 		'last_month' => 'Ultimo mese',
 		'last_week' => 'Ultima settimana',
 		'last_year' => 'Ultimo anno',
-		'Mar' => '\\M\\a\\r\\z\\o',
 		'mar' => 'mar.',
 		'march' => 'marzo',
 		'may' => 'maggio',
-		'May' => '\\M\\a\\g\\g\\i\\o',
 		'may_' => 'May',	// TODO - Translation
 		'mon' => 'Mon',	// TODO - Translation
 		'month' => 'mesi',
-		'Nov' => '\\N\\o\\v\\e\\m\\b\\r\\e',
 		'nov' => 'nov.',
 		'november' => 'novembre',
-		'Oct' => '\\O\\t\\t\\o\\b\\r\\e',
 		'oct' => 'ott.',
 		'october' => 'ottobre',
 		'sat' => 'Sat',	// TODO - Translation
-		'Sep' => '\\S\\e\\t\\t\\e\\m\\b\\r\\e',
 		'sep' => 'sett.',
 		'september' => 'settembre',
 		'sun' => 'Sun',	// TODO - Translation
@@ -108,8 +108,8 @@ return array(
 	),
 	'dir' => 'ltr',
 	'freshrss' => array(
-		'about' => 'Informazioni',
 		'_' => 'Feed RSS Reader',
+		'about' => 'Informazioni',
 	),
 	'js' => array(
 		'category_empty' => 'Categoria vuota',
@@ -178,13 +178,13 @@ return array(
 		'years' => 'years',	// TODO - Translation
 	),
 	'share' => array(
+		'Known' => 'Siti basati su Known',
 		'blogotext' => 'Blogotext',	// TODO - Translation
 		'diaspora' => 'Diaspora*',	// TODO - Translation
 		'email' => 'Email',	// TODO - Translation
 		'facebook' => 'Facebook',	// TODO - Translation
 		'gnusocial' => 'GNU social',	// TODO - Translation
 		'jdh' => 'Journal du hacker',	// TODO - Translation
-		'Known' => 'Siti basati su Known',
 		'lemmy' => 'Lemmy',	// TODO - Translation
 		'linkedin' => 'LinkedIn',	// TODO - Translation
 		'mastodon' => 'Mastodon',	// TODO - Translation

+ 2 - 2
app/i18n/it/index.php

@@ -2,6 +2,7 @@
 
 return array(
 	'about' => array(
+		'_' => 'Informazioni',
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',	// TODO - Translation
 		'bugs_reports' => 'Bugs',
 		'credits' => 'Crediti',
@@ -13,7 +14,6 @@ return array(
 		'title' => 'Informazioni',
 		'version' => 'Versione',
 		'website' => 'Sito',
-		'_' => 'Informazioni',
 	),
 	'feed' => array(
 		'add' => 'Aggiungi un Feed RSS',
@@ -24,10 +24,10 @@ return array(
 		'title_global' => 'Vista globale per categorie',
 	),
 	'log' => array(
+		'_' => 'Logs',	// TODO - Translation
 		'clear' => 'Svuota logs',
 		'empty' => 'File di log vuoto',
 		'title' => 'Logs',	// TODO - Translation
-		'_' => 'Logs',	// TODO - Translation
 	),
 	'menu' => array(
 		'about' => 'Informazioni',

+ 5 - 5
app/i18n/it/install.php

@@ -17,19 +17,20 @@ return array(
 		'type' => 'Metodo di autenticazione',
 	),
 	'bdd' => array(
+		'_' => 'Database',	// TODO - Translation
 		'conf' => array(
+			'_' => 'Configurazione database',
 			'ko' => 'Verifica le informazioni del database.',
 			'ok' => 'Le configurazioni del database sono state salvate.',
-			'_' => 'Configurazione database',
 		),
 		'host' => 'Host',	// TODO - Translation
 		'password' => 'Password del database',
 		'prefix' => 'Prefisso tabella',
 		'type' => 'Tipo di database',
 		'username' => 'Nome utente del database',
-		'_' => 'Database',	// TODO - Translation
 	),
 	'check' => array(
+		'_' => 'Controlli',
 		'already_installed' => 'FreshRSS risulta già installato!',
 		'cache' => array(
 			'nok' => 'Verifica i permessi sulla cartella <em>./data/cache</em>. Il server HTTP deve avere i permessi per scriverci dentro',
@@ -95,11 +96,10 @@ return array(
 			'nok' => 'You lack the required library to parse XML.',
 			'ok' => 'You have the required library to parse XML.',	// TODO - Translation
 		),
-		'_' => 'Controlli',
 	),
 	'conf' => array(
-		'ok' => 'Configurazioni generali salvate.',
 		'_' => 'Configurazioni generali',
+		'ok' => 'Configurazioni generali salvate.',
 	),
 	'congratulations' => 'Congratulazione!',
 	'default_user' => 'Username utente predefinito <small>(massimo 16 caratteri alfanumerici)</small>',
@@ -110,9 +110,9 @@ return array(
 		'confirm_reinstall' => 'Reinstallando FreshRSS perderai la configurazione precedente. Sei sicuro di voler procedere?',
 	),
 	'language' => array(
+		'_' => 'Lingua',
 		'choose' => 'Seleziona la lingua per FreshRSS',
 		'defined' => 'Lingua impostata.',
-		'_' => 'Lingua',
 	),
 	'not_deleted' => 'Qualcosa non ha funzionato; devi cancellare il file <em>%s</em> manualmente.',
 	'ok' => 'Processo di installazione terminato con successo.',

+ 7 - 7
app/i18n/it/sub.php

@@ -11,6 +11,7 @@ return array(
 		'title' => 'Bookmarklet',	// TODO - Translation
 	),
 	'category' => array(
+		'_' => 'Categoria',
 		'add' => 'Aggiungi una categoria',
 		'archiving' => 'Archiviazione',
 		'empty' => 'Categoria vuota',
@@ -19,7 +20,6 @@ return array(
 		'position' => 'Display position',	// TODO - Translation
 		'position_help' => 'To control category sort order',	// TODO - Translation
 		'title' => 'Titolo',
-		'_' => 'Categoria',
 	),
 	'feed' => array(
 		'add' => 'Aggiungi un Feed RSS',
@@ -39,16 +39,16 @@ return array(
 		'empty' => 'Questo feed non contiene articoli. Per favore verifica il sito direttamente.',
 		'error' => 'Questo feed ha generato un errore. Per favore verifica se ancora disponibile.',
 		'filteractions' => array(
-			'help' => 'Write one search filter per line.',	// TODO - Translation
 			'_' => 'Filter actions',	// TODO - Translation
+			'help' => 'Write one search filter per line.',	// TODO - Translation
 		),
 		'information' => 'Informazioni',
 		'keep_min' => 'Numero minimo di articoli da mantenere',
 		'maintenance' => array(
 			'clear_cache' => 'Clear cache',	// TODO - Translation
-			'clear_cache_help' => 'Clear the cache of this feed on disk',	// TODO - Translation
+			'clear_cache_help' => 'Clear the cache for this feed.',	// TODO - Translation
 			'reload_articles' => 'Reload articles',	// TODO - Translation
-			'reload_articles_help' => 'Reload articles and fetch complete content',	// TODO - Translation
+			'reload_articles_help' => 'Reload articles and fetch complete content if a selector is defined.',	// TODO - Translation
 			'title' => 'Maintenance',	// TODO - Translation
 		),
 		'moved_category_deleted' => 'Cancellando una categoria i feed al suo interno verranno classificati automaticamente come <em>%s</em>.',
@@ -56,13 +56,13 @@ return array(
 		'no_selected' => 'Nessun feed selezionato.',
 		'number_entries' => '%d articoli',
 		'priority' => array(
+			'_' => 'Visibility',	// TODO - Translation
 			'archived' => 'Do not show (archived)',	// TODO - Translation
 			'main_stream' => 'Mostra in homepage',
 			'normal' => 'Show in its category',	// TODO - Translation
-			'_' => 'Visibility',	// TODO - Translation
 		),
 		'selector_preview' => array(
-			'show_raw' => 'Show source',	// TODO - Translation
+			'show_raw' => 'Show source code',	// TODO - Translation
 			'show_rendered' => 'Show content',	// TODO - Translation
 		),
 		'show' => array(
@@ -108,8 +108,8 @@ return array(
 		'subscription_tools' => 'Subscription tools',	// TODO - Translation
 	),
 	'title' => array(
+		'_' => 'Gestione sottoscrizioni',
 		'feed_management' => 'Gestione RSS feeds',
 		'subscription_tools' => 'Subscription tools',	// TODO - Translation
-		'_' => 'Gestione sottoscrizioni',
 	),
 );

+ 7 - 7
app/i18n/kr/admin.php

@@ -83,9 +83,9 @@ return array(
 			'ok' => '최소 하나의 지원가능한 드라이버와 PDO가 설치되어 있습니다 (pdo_mysql, pdo_sqlite, pdo_pgsql).',
 		),
 		'php' => array(
+			'_' => 'PHP 설치 요구사항',
 			'nok' => 'PHP 버전은 %s 이지만, FreshRSS에는 최소 %s의 버전이 필요합니다.',
 			'ok' => 'PHP 버전은 %s 이고, FreshRSS와 호환가능 합니다.',
-			'_' => 'PHP 설치 요구사항',
 		),
 		'tables' => array(
 			'nok' => '하나 이상의 테이블을 데이터베이스에서 찾을 수 없습니다.',
@@ -116,8 +116,8 @@ return array(
 		'name' => '이름',
 		'no_configure_view' => '이 확장 기능은 설정이 없습니다.',
 		'system' => array(
-			'no_rights' => '시스템 확장 기능 (이 확장 기능에 대한 권한이 없습니다)',
 			'_' => '시스템 확장 기능',
+			'no_rights' => '시스템 확장 기능 (이 확장 기능에 대한 권한이 없습니다)',
 		),
 		'title' => '확장 기능',
 		'update' => '업데이트 있음',
@@ -125,6 +125,7 @@ return array(
 		'version' => '버전',
 	),
 	'stats' => array(
+		'_' => '통계',
 		'all_feeds' => '모든 피드',
 		'category' => '카테고리',
 		'entry_count' => '글 개수',
@@ -154,9 +155,9 @@ return array(
 		'status_unread' => '읽지 않음',
 		'title' => '통계',
 		'top_feed' => '상위 10 개 피드',
-		'_' => '통계',
 	),
 	'system' => array(
+		'_' => '시스템 설정',
 		'auto-update-url' => '자동 업데이트 서버 URL',
 		'cookie-duration' => array(
 			'help' => '초',
@@ -170,21 +171,20 @@ return array(
 			'help' => '0: 제한 없음',
 			'number' => '계정 최대 개수',
 		),
-		'_' => '시스템 설정',
 	),
 	'update' => array(
+		'_' => '업데이트',
 		'apply' => '업데이트 적용하기',
 		'check' => '새 업데이트 확인하기',
 		'current_version' => '현재 FreshRSS 버전은 %s 입니다.',
 		'last' => '마지막 확인: %s',
 		'none' => '적용 가능한 업데이트가 없습니다',
 		'title' => '업데이트',
-		'_' => '업데이트',
 	),
 	'user' => array(
 		'admin' => 'Administrator',	// TODO - Translation
-		'articles_and_size' => '%s 개의 글 (%s)',
 		'article_count' => 'Articles',	// TODO - Translation
+		'articles_and_size' => '%s 개의 글 (%s)',
 		'back_to_manage' => '← Return to user list',	// TODO - Translation
 		'create' => '새 사용자 생성',
 		'database_size' => 'Database size',	// TODO - Translation
@@ -202,8 +202,8 @@ return array(
 		'selected' => '선택된 사용자',
 		'title' => '사용자 관리',
 		'update_users' => '사용자 정보 변경',
+		'user_list' => '사용자 목록',
 		'username' => '사용자 이름',
 		'users' => '전체 사용자',
-		'user_list' => '사용자 목록',
 	),
 );

+ 14 - 14
app/i18n/kr/conf.php

@@ -2,6 +2,7 @@
 
 return array(
 	'archiving' => array(
+		'_' => '보관',
 		'delete_after' => '다음 기간보다 오래된 글 삭제',
 		'exception' => 'Purge exception',	// TODO - Translation
 		'help' => '더 자세한 옵션은 개별 피드 설정에 있습니다',
@@ -19,9 +20,9 @@ return array(
 		'purge_now' => '지금 삭제',
 		'title' => '보관',
 		'ttl' => '다음 시간이 지나기 전에 새로고침 금지',
-		'_' => '보관',
 	),
 	'display' => array(
+		'_' => '표시',
 		'icon' => array(
 			'bottom_line' => '하단',
 			'display_authors' => 'Authors',	// TODO - Translation
@@ -46,22 +47,22 @@ return array(
 			'no_limit' => '제한 없음',
 			'thin' => '얇음',
 		),
-		'_' => '표시',
 	),
 	'profile' => array(
+		'_' => '프로필 관리',
 		'api' => 'API management',	// TODO - Translation
 		'delete' => array(
-			'warn' => '당신의 계정과 관련된 모든 데이터가 삭제됩니다.',
 			'_' => '계정 삭제',
+			'warn' => '당신의 계정과 관련된 모든 데이터가 삭제됩니다.',
 		),
 		'email' => '메일 주소',
 		'password_api' => 'API 암호<br /><small>(예: 모바일 애플리케이션)</small>',
 		'password_form' => '암호<br /><small>(웹폼 로그인 방식 사용시)</small>',
 		'password_format' => '7 글자 이상이어야 합니다',
 		'title' => '프로필',
-		'_' => '프로필 관리',
 	),
 	'query' => array(
+		'_' => '사용자 쿼리',
 		'deprecated' => '이 쿼리는 더 이상 유효하지 않습니다. 해당하는 카테고리나 피드가 삭제되었습니다.',
 		'display' => '사용자 쿼리 결과 표시',
 		'filter' => '적용된 필터:',
@@ -69,8 +70,8 @@ return array(
 		'get_category' => '"%s" 카테고리 표시',
 		'get_favorite' => '즐겨찾기에 등록된 글 표시',
 		'get_feed' => '"%s" 피드 표시',
-		'none' => '아직 사용자 쿼리를 만들지 않았습니다.',
 		'no_filter' => '필터가 없습니다',
+		'none' => '아직 사용자 쿼리를 만들지 않았습니다.',
 		'number' => '쿼리 #%d',
 		'order_asc' => '오래된 글 먼저 표시',
 		'order_desc' => '최근 글 먼저 표시',
@@ -93,9 +94,9 @@ return array(
 		'state_14' => '읽지 않은 글 표시',
 		'state_15' => '모든 글 표시',
 		'title' => '사용자 쿼리',
-		'_' => '사용자 쿼리',
 	),
 	'reading' => array(
+		'_' => '읽기',
 		'after_onread' => '“모두 읽음으로 표시” 후,',
 		'always_show_favorites' => 'Show all articles in favorites by default',	// TODO - Translation
 		'articles_per_page' => '페이지당 글 수',
@@ -117,19 +118,19 @@ return array(
 			'when' => '읽음으로 표시…',
 		),
 		'show' => array(
+			'_' => '글 표시 방식',
+			'active_category' => 'Active category',	// TODO - Translation
 			'adaptive' => '읽지 않은 글이 없으면 모든 글 표시',
 			'all_articles' => '모든 글 표시',
-			'unread' => '읽지 않은 글만 표시',
-			'active_category' => 'Active category',	// TODO - Translation
 			'all_categories' => 'All categories',	// TODO - Translation
 			'no_category' => 'No category',	// TODO - Translation
-			'_' => '글 표시 방식',
+			'unread' => '읽지 않은 글만 표시',
 		),
 		'sides_close_article' => '글 영역 바깥을 클릭하면 글 접기',
 		'sort' => array(
+			'_' => '정렬 순서',
 			'newer_first' => '최근 글 먼저',
 			'older_first' => '오래된 글 먼저',
-			'_' => '정렬 순서',
 		),
 		'sticky_post' => '글이 펼쳐진 경우 최상단에 고정하기',
 		'title' => '읽기',
@@ -139,9 +140,9 @@ return array(
 			'normal' => '일반 모드',
 			'reader' => '읽기 모드',
 		),
-		'_' => '읽기',
 	),
 	'sharing' => array(
+		'_' => '공유',
 		'add' => '공유 방법 추가',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
@@ -156,9 +157,9 @@ return array(
 		'title' => '공유',
 		'twitter' => 'Twitter',
 		'wallabag' => 'wallabag',
-		'_' => '공유',
 	),
 	'shortcut' => array(
+		'_' => '단축키',
 		'article_action' => '글 관련 동작',
 		'auto_share' => '공유',
 		'auto_share_help' => '공유 옵션이 하나만 설정되어 있다면 해당 공유 옵션을 사용하고, 그렇지 않다면 공유 옵션을 번호로 선택할 수 있습니다.',
@@ -183,14 +184,13 @@ return array(
 		'reading_view' => '읽기 모드로 전환',
 		'rss_view' => '새 탭에서 RSS 피드 열기',
 		'see_on_website' => '글이 게재된 웹사이트에서 보기',
-		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> 를 누른 상태에선 모두 읽음으로 표시',	// TODO - Translation
+		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> to mark all articles as read',	// TODO - Translation
 		'skip_next_article' => '다음 글로 커서 이동',
 		'skip_previous_article' => '이전 글로 커서 이동',
 		'title' => '단축키',
 		'user_filter' => '사용자 필터 사용하기',
 		'user_filter_help' => '사용자 필터가 하나만 설정되어 있다면 해당 필터를 사용하고, 그렇지 않다면 필터를 번호로 선택할 수 있습니다.',
 		'views' => '표시',
-		'_' => '단축키',
 	),
 	'user' => array(
 		'articles_and_size' => '%s 개의 글 (%s)',

+ 11 - 11
app/i18n/kr/feedback.php

@@ -44,9 +44,9 @@ return array(
 			'ko' => '%s 확장 기능을 활성화 할 수 없습니다. 자세한 내용은 <a href="%s">FreshRSS 로그</a>를 참고하세요.',
 			'ok' => '%s 확장 기능이 활성화되었습니다',
 		),
+		'no_access' => '%s 확장 기능에 접근 권한이 없습니다',
 		'not_enabled' => '%s 확장 기능이 활성화되지 않았습니다',
 		'not_found' => '%s 확장 기능이 존재하지 않습니다',
-		'no_access' => '%s 확장 기능에 접근 권한이 없습니다',
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'ZIP 확장 기능을 서버에서 찾을 수 없습니다. 파일을 하나씩 내보내세요.',
@@ -72,10 +72,10 @@ return array(
 			'emptied' => '카테고리를 비웠습니다',
 			'error' => '카테고리를 변경할 수 없습니다',
 			'name_exists' => '같은 카테고리 이름이 이미 존재합니다.',
-			'not_delete_default' => '기본 카테고리는 삭제할 수 없습니다!',
-			'not_exist' => '카테고리가 존재하지 않습니다!',
 			'no_id' => '카테고리 id를 명시해야 합니다.',
 			'no_name' => '카테고리 이름을 명시해야 합니다.',
+			'not_delete_default' => '기본 카테고리는 삭제할 수 없습니다!',
+			'not_exist' => '카테고리가 존재하지 않습니다!',
 			'over_max' => '카테고리 개수 제한에 다다랐습니다 (%d)',
 			'updated' => '카테고리가 변경되었습니다.',
 		),
@@ -89,17 +89,17 @@ return array(
 			'error' => '피드를 변경할 수 없습니다',
 			'internal_problem' => 'RSS 피드를 추가할 수 없습니다. 자세한 내용은 <a href="%s">FreshRSS 로그</a>를 참고하세요.',
 			'invalid_url' => 'URL (<em>%s</em>)이 유효하지 않습니다',
-			'not_added' => '<em>%s</em> 피드를 추가할 수 없습니다',
-			'not_found' => 'Feed cannot be found',	// TODO - Translation
-			'no_refresh' => '새 글을 가져올 피드가 없습니다…',
 			'n_actualized' => '%d 개의 피드에서 새 글을 가져왔습니다',
 			'n_entries_deleted' => '%d 개의 글을 삭제했습니다',
+			'no_refresh' => '새 글을 가져올 피드가 없습니다…',
+			'not_added' => '<em>%s</em> 피드를 추가할 수 없습니다',
+			'not_found' => 'Feed cannot be found',	// TODO - Translation
 			'over_max' => '피드 개수 제한에 다다랐습니다 (%d)',
 			'reloaded' => '<em>%s</em> has been reloaded',	// TODO - Translation
 			'selector_preview' => array(
 				'http_error' => 'Failed to load website content.',	// TODO - Translation
-				'no_entries' => 'There is no entries in your feed. You need at least one entry to create a preview.',	// TODO - Translation
-				'no_feed' => 'Internal error (no feed to entry).',	// TODO - Translation
+				'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.',	// TODO - Translation
+				'no_feed' => 'Internal error (feed can’t be found).',	// TODO - Translation
 				'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.',	// TODO - Translation
 				'selector_empty' => 'The selector is empty. You need to define one to create a preview.',	// TODO - Translation
 			),
@@ -117,16 +117,16 @@ return array(
 	),
 	'user' => array(
 		'created' => array(
-			'error' => '%s 사용자를 생성할 수 없습니다',
 			'_' => '%s 사용자가 생성되었습니다',
+			'error' => '%s 사용자를 생성할 수 없습니다',
 		),
 		'deleted' => array(
-			'error' => '%s 사용자를 삭제할 수 없습니다',
 			'_' => '%s 사용자를 삭제했습니다',
+			'error' => '%s 사용자를 삭제할 수 없습니다',
 		),
 		'updated' => array(
-			'error' => '사용자 %s의 정보가 변경되지 않았습니다',
 			'_' => '사용자 %s의 정보가 변경되었습니다',
+			'error' => '사용자 %s의 정보가 변경되지 않았습니다',
 		),
 	),
 );

+ 17 - 17
app/i18n/kr/gen.php

@@ -32,45 +32,50 @@ return array(
 		'login' => '로그인',
 		'logout' => '로그아웃',
 		'password' => array(
-			'format' => '<small>7 글자 이상이어야 합니다</small>',
 			'_' => '암호',
+			'format' => '<small>7 글자 이상이어야 합니다</small>',
 		),
 		'registration' => array(
+			'_' => '새 계정',
 			'ask' => '새 계정을 만들까요?',
 			'title' => '계정 생성',
-			'_' => '새 계정',
 		),
 		'reset' => '인증 초기화',
 		'username' => array(
+			'_' => '사용자 이름',
 			'admin' => '관리자 이름',
 			'format' => '<small>알파벳과 숫자를 포함할 수 있고 최대 16 글자</small>',
-			'_' => '사용자 이름',
 		),
 	),
 	'date' => array(
-		'apr' => '4월',
 		'Apr' => '\\A\\p\\r\\i\\l',
-		'april' => '4월',
 		'Aug' => '\\A\\u\\g\\u\\s\\t',
+		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',
+		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y',
+		'Jan' => '\\J\\a\\n\\u\\a\\r\\y',
+		'Jul' => '\\J\\u\\l\\y',
+		'Jun' => '\\J\\u\\n\\e',
+		'Mar' => '\\M\\a\\r\\c\\h',
+		'May' => '\\M\\a\\y',
+		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',
+		'Oct' => '\\O\\c\\t\\o\\b\\e\\r',
+		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',
+		'apr' => '4월',
+		'april' => '4월',
 		'aug' => '8월',
 		'august' => '8월',
 		'before_yesterday' => '어제 이전',
-		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',
 		'dec' => '12월',
 		'december' => '12월',
-		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y',
 		'feb' => '2월',
 		'february' => '2월',
 		'format_date' => 'Y년 m월 d일',
 		'format_date_hour' => 'Y년 m월 d일 H시 i분',
 		'fri' => '금',
-		'Jan' => '\\J\\a\\n\\u\\a\\r\\y',
 		'jan' => '1월',
 		'january' => '1월',
 		'jul' => '7월',
-		'Jul' => '\\J\\u\\l\\y',
 		'july' => '7월',
-		'Jun' => '\\J\\u\\n\\e',
 		'jun' => '6월',
 		'june' => '6월',
 		'last_2_year' => 'Last two years',	// TODO - Translation
@@ -81,22 +86,17 @@ return array(
 		'last_month' => '최근 한 달',
 		'last_week' => '최근 한 주',
 		'last_year' => '최근 일 년',
-		'Mar' => '\\M\\a\\r\\c\\h',
 		'mar' => '3월',
 		'march' => '3월',
 		'may' => '5월',
-		'May' => '\\M\\a\\y',
 		'may_' => '5월',
 		'mon' => '월',
 		'month' => '개월',
-		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',
 		'nov' => '11월',
 		'november' => '11월',
-		'Oct' => '\\O\\c\\t\\o\\b\\e\\r',
 		'oct' => '10월',
 		'october' => '10월',
 		'sat' => '토',
-		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',
 		'sep' => '9월',
 		'september' => '9월',
 		'sun' => '일',
@@ -108,8 +108,8 @@ return array(
 	),
 	'dir' => 'ltr',
 	'freshrss' => array(
-		'about' => '정보',
 		'_' => 'FreshRSS',
+		'about' => '정보',
 	),
 	'js' => array(
 		'category_empty' => '빈 카테고리',
@@ -178,13 +178,13 @@ return array(
 		'years' => 'years',	// TODO - Translation
 	),
 	'share' => array(
+		'Known' => 'Known based sites',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => '메일',
 		'facebook' => 'Facebook',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
-		'Known' => 'Known based sites',
 		'lemmy' => 'Lemmy',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',

+ 2 - 2
app/i18n/kr/index.php

@@ -2,6 +2,7 @@
 
 return array(
 	'about' => array(
+		'_' => '정보',
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',
 		'bugs_reports' => '버그 제보하기',
 		'credits' => '크레딧',
@@ -13,7 +14,6 @@ return array(
 		'title' => '정보',
 		'version' => '버전',
 		'website' => '웹사이트',
-		'_' => '정보',
 	),
 	'feed' => array(
 		'add' => '피드를 추가하세요.',
@@ -24,10 +24,10 @@ return array(
 		'title_global' => '전체 모드',
 	),
 	'log' => array(
+		'_' => '로그',
 		'clear' => '로그 모두 지우기',
 		'empty' => '로그 파일이 비어있습니다',
 		'title' => '로그',
-		'_' => '로그',
 	),
 	'menu' => array(
 		'about' => 'FreshRSS 정보',

+ 5 - 5
app/i18n/kr/install.php

@@ -17,19 +17,20 @@ return array(
 		'type' => '인증 방식',
 	),
 	'bdd' => array(
+		'_' => '데이터베이스',
 		'conf' => array(
+			'_' => '데이터베이스 설정',
 			'ko' => '데이터베이스 정보를 확인하세요.',
 			'ok' => '데이터베이스 설정이 저장되었습니다.',
-			'_' => '데이터베이스 설정',
 		),
 		'host' => '데이터베이스 서버',
 		'password' => '데이터베이스 암호',
 		'prefix' => '테이블 접두어',
 		'type' => '데이터베이스 종류',
 		'username' => '데이터베이스 사용자 이름',
-		'_' => '데이터베이스',
 	),
 	'check' => array(
+		'_' => '설치 요구사항 확인',
 		'already_installed' => 'FreshRSS가 이미 설치되어 있는 것을 감지했습니다!',
 		'cache' => array(
 			'nok' => '<em>./data/cache</em> 디렉토리의 권한을 확인하세요. HTTP 서버가 쓰기 권한을 가지고 있어야 합니다',
@@ -95,11 +96,10 @@ return array(
 			'nok' => 'XML 해석을 위한 라이브러리르 찾을 수 없습니다.',
 			'ok' => 'XML 해석을 위한 라이브러리가 설치되어 있습니다.',
 		),
-		'_' => '설치 요구사항 확인',
 	),
 	'conf' => array(
-		'ok' => '일반 설정이 저장되었습니다.',
 		'_' => '일반 설정',
+		'ok' => '일반 설정이 저장되었습니다.',
 	),
 	'congratulations' => '축하합니다!',
 	'default_user' => '기본 사용자 이름<small>(알파벳과 숫자를 포함할 수 있고 최대 16 글자)</small>',
@@ -110,9 +110,9 @@ return array(
 		'confirm_reinstall' => 'FreshRSS을 다시 설치하면 이전 설정이 사라집니다. 계속하시겠습니까?',
 	),
 	'language' => array(
+		'_' => '언어',
 		'choose' => 'FreshRSS에서 사용할 언어를 고르세요',
 		'defined' => '언어가 설정되었습니다.',
-		'_' => '언어',
 	),
 	'not_deleted' => '무언가 잘못되었습니다; <em>%s</em> 파일을 직접 삭제해주세요.',
 	'ok' => '설치 과정이 성공적으로 끝났습니다.',

+ 7 - 7
app/i18n/kr/sub.php

@@ -11,6 +11,7 @@ return array(
 		'title' => '북마클릿',
 	),
 	'category' => array(
+		'_' => '카테고리',
 		'add' => '카테고리 추가',
 		'archiving' => '보관',
 		'empty' => '빈 카테고리',
@@ -19,7 +20,6 @@ return array(
 		'position' => 'Display position',	// TODO - Translation
 		'position_help' => 'To control category sort order',	// TODO - Translation
 		'title' => '제목',
-		'_' => '카테고리',
 	),
 	'feed' => array(
 		'add' => 'RSS 피드 추가',
@@ -39,16 +39,16 @@ return array(
 		'empty' => '이 피드는 비어있습니다. 피드가 계속 운영되고 있는지 확인하세요.',
 		'error' => '이 피드에 문제가 발생했습니다. 이 피드에 접근 권한이 있는지 확인하세요.',
 		'filteractions' => array(
-			'help' => 'Write one search filter per line.',	// TODO - Translation
 			'_' => 'Filter actions',	// TODO - Translation
+			'help' => 'Write one search filter per line.',	// TODO - Translation
 		),
 		'information' => '정보',
 		'keep_min' => '최소 유지 글 개수',
 		'maintenance' => array(
 			'clear_cache' => 'Clear cache',	// TODO - Translation
-			'clear_cache_help' => 'Clear the cache of this feed on disk',	// TODO - Translation
+			'clear_cache_help' => 'Clear the cache for this feed.',	// TODO - Translation
 			'reload_articles' => 'Reload articles',	// TODO - Translation
-			'reload_articles_help' => 'Reload articles and fetch complete content',	// TODO - Translation
+			'reload_articles_help' => 'Reload articles and fetch complete content if a selector is defined.',	// TODO - Translation
 			'title' => 'Maintenance',	// TODO - Translation
 		),
 		'moved_category_deleted' => '카테고리를 삭제하면, 해당 카테고리 아래에 있던 피드들은 자동적으로 <em>%s</em> 아래로 분류됩니다.',
@@ -56,13 +56,13 @@ return array(
 		'no_selected' => '선택된 피드가 없습니다.',
 		'number_entries' => '%d 개의 글',
 		'priority' => array(
+			'_' => '표시',
 			'archived' => '표시하지 않음 (보관됨)',
 			'main_stream' => '메인 스트림에 표시하기',
 			'normal' => '피드가 속한 카테고리에만 표시하기',
-			'_' => '표시',
 		),
 		'selector_preview' => array(
-			'show_raw' => 'Show source',	// TODO - Translation
+			'show_raw' => 'Show source code',	// TODO - Translation
 			'show_rendered' => 'Show content',	// TODO - Translation
 		),
 		'show' => array(
@@ -108,8 +108,8 @@ return array(
 		'subscription_tools' => '구독 도구',
 	),
 	'title' => array(
+		'_' => '구독 관리',
 		'feed_management' => 'RSS 피드 관리',
 		'subscription_tools' => '구독 도구',
-		'_' => '구독 관리',
 	),
 );

+ 7 - 7
app/i18n/nl/admin.php

@@ -83,9 +83,9 @@ return array(
 			'ok' => 'U hebt PDO en ten minste één van de ondersteunde drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).',
 		),
 		'php' => array(
+			'_' => 'PHP installatie',
 			'nok' => 'Uw PHP versie is %s maar FreshRSS benodigd tenminste versie %s.',
 			'ok' => 'Uw PHP versie is %s, welke compatibel is met FreshRSS.',
-			'_' => 'PHP installatie',
 		),
 		'tables' => array(
 			'nok' => 'Er zijn één of meer ontbrekende tabellen in de database.',
@@ -116,8 +116,8 @@ return array(
 		'name' => 'Naam',
 		'no_configure_view' => 'Deze uitbreiding kan niet worden geconfigureerd.',
 		'system' => array(
-			'no_rights' => 'Systeemuitbreidingen (U hebt hier geen rechten op)',
 			'_' => 'Systeemuitbreidingen',
+			'no_rights' => 'Systeemuitbreidingen (U hebt hier geen rechten op)',
 		),
 		'title' => 'Uitbreidingen',
 		'update' => 'Update beschikbaar',
@@ -125,6 +125,7 @@ return array(
 		'version' => 'Versie',
 	),
 	'stats' => array(
+		'_' => 'Statistieken',
 		'all_feeds' => 'Alle feeds',
 		'category' => 'Categorie',
 		'entry_count' => 'Invoer aantallen',
@@ -154,9 +155,9 @@ return array(
 		'status_unread' => 'Ongelezen',
 		'title' => 'Statistieken',
 		'top_feed' => 'Top tien feeds',
-		'_' => 'Statistieken',
 	),
 	'system' => array(
+		'_' => 'Systeem configuratie',
 		'auto-update-url' => 'Automatische update server URL',
 		'cookie-duration' => array(
 			'help' => 'in seconden',
@@ -170,21 +171,20 @@ return array(
 			'help' => '0 betekent geen account limiet',
 			'number' => 'Maximum aantal accounts',
 		),
-		'_' => 'Systeem configuratie',
 	),
 	'update' => array(
+		'_' => 'Versie controle',
 		'apply' => 'Toepassen',
 		'check' => 'Controleer op nieuwe versies',
 		'current_version' => 'Uw huidige versie van FreshRSS is %s.',
 		'last' => 'Laatste controle: %s',
 		'none' => 'Geen nieuwe versie om toe te passen',
 		'title' => 'Vernieuw systeem',
-		'_' => 'Versie controle',
 	),
 	'user' => array(
 		'admin' => 'Administrator',	// TODO - Translation
-		'articles_and_size' => '%s artikelen (%s)',
 		'article_count' => 'Articles',	// TODO - Translation
+		'articles_and_size' => '%s artikelen (%s)',
 		'back_to_manage' => '← Return to user list',	// TODO - Translation
 		'create' => 'Creëer nieuwe gebruiker',
 		'database_size' => 'Database size',	// TODO - Translation
@@ -202,8 +202,8 @@ return array(
 		'selected' => 'Geselecteerde gebruiker',
 		'title' => 'Beheer gebruikers',
 		'update_users' => 'Gebruiker bijwerken',
+		'user_list' => 'Lijst van gebruikers',
 		'username' => 'Gebruikersnaam',
 		'users' => 'Gebruikers',
-		'user_list' => 'Lijst van gebruikers',
 	),
 );

+ 13 - 13
app/i18n/nl/conf.php

@@ -2,6 +2,7 @@
 
 return array(
 	'archiving' => array(
+		'_' => 'Archivering',
 		'delete_after' => 'Verwijder artikelen na',
 		'exception' => 'Zuiveringsuitzondering',
 		'help' => 'Meer opties zijn beschikbaar in de persoonlijke stroom instellingen',
@@ -19,9 +20,9 @@ return array(
 		'purge_now' => 'Schoon nu op',
 		'title' => 'Archivering',
 		'ttl' => 'Vernieuw niet automatisch meer dan',
-		'_' => 'Archivering',
 	),
 	'display' => array(
+		'_' => 'Opmaak',
 		'icon' => array(
 			'bottom_line' => 'Onderaan',
 			'display_authors' => 'Auteurs',
@@ -46,22 +47,22 @@ return array(
 			'no_limit' => 'Geen limiet',
 			'thin' => 'Smal',
 		),
-		'_' => 'Opmaak',
 	),
 	'profile' => array(
+		'_' => 'Profiel beheer',
 		'api' => 'API management',	// TODO - Translation
 		'delete' => array(
-			'warn' => 'Uw account en alle gerelateerde gegvens worden verwijderd.',
 			'_' => 'Account verwijderen',
+			'warn' => 'Uw account en alle gerelateerde gegvens worden verwijderd.',
 		),
 		'email' => 'Email adres',
 		'password_api' => 'Wachtwoord API<br /><small>(e.g., voor mobiele apps)</small>',
 		'password_form' => 'Wachtwoord<br /><small>(voor de Web-formulier log in methode)</small>',
 		'password_format' => 'Ten minste 7 tekens',
 		'title' => 'Profiel',
-		'_' => 'Profiel beheer',
 	),
 	'query' => array(
+		'_' => 'Gebruikersquery\'s (informatie aanvragen)',
 		'deprecated' => 'Deze query (informatie aanvraag) is niet langer geldig. De bedoelde categorie of feed is al verwijderd.',
 		'display' => 'Queryresultaten weergeven',
 		'filter' => 'Filter toegepast:',
@@ -69,8 +70,8 @@ return array(
 		'get_category' => 'Toon "%s" categorie',
 		'get_favorite' => 'Toon favoriete artikelen',
 		'get_feed' => 'Toon "%s" feed',
-		'none' => 'U hebt nog geen gebruikers query aangemaakt..',
 		'no_filter' => 'Geen filter',
+		'none' => 'U hebt nog geen gebruikers query aangemaakt..',
 		'number' => 'Query n°%d',
 		'order_asc' => 'Toon oudste artikelen eerst',
 		'order_desc' => 'Toon nieuwste artikelen eerst',
@@ -93,9 +94,9 @@ return array(
 		'state_14' => 'Toon ongelezen artikelen',
 		'state_15' => 'Toon alle artikelen',
 		'title' => 'Gebruikersquery\'s',
-		'_' => 'Gebruikersquery\'s (informatie aanvragen)',
 	),
 	'reading' => array(
+		'_' => 'Lezen',
 		'after_onread' => 'Na “markeer alles als gelezen”,',
 		'always_show_favorites' => 'Show all articles in favorites by default',	// TODO - Translation
 		'articles_per_page' => 'Aantal artikelen per pagina',
@@ -117,19 +118,19 @@ return array(
 			'when' => 'Markeer artikel als gelezen…',
 		),
 		'show' => array(
+			'_' => 'Artikelen om te tonen',
+			'active_category' => 'Active category',	// TODO - Translation
 			'adaptive' => 'Pas weergave aan',
 			'all_articles' => 'Bekijk alle artikelen',
-			'unread' => 'Bekijk alleen ongelezen',
-			'active_category' => 'Active category',	// TODO - Translation
 			'all_categories' => 'All categories',	// TODO - Translation
 			'no_category' => 'No category',	// TODO - Translation
-			'_' => 'Artikelen om te tonen',
+			'unread' => 'Bekijk alleen ongelezen',
 		),
 		'sides_close_article' => 'Sluit het artikel door buiten de artikeltekst te klikken',
 		'sort' => array(
+			'_' => 'Sorteer volgorde',
 			'newer_first' => 'Nieuwste eerst',
 			'older_first' => 'Oudste eerst',
-			'_' => 'Sorteer volgorde',
 		),
 		'sticky_post' => 'Koppel artikel aan de bovenkant als het geopend wordt',
 		'title' => 'Lees modus',
@@ -139,9 +140,9 @@ return array(
 			'normal' => 'Normale weergave',
 			'reader' => 'Lees weergave',
 		),
-		'_' => 'Lezen',
 	),
 	'sharing' => array(
+		'_' => 'Delen',
 		'add' => 'Deelmethode toevoegen',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
@@ -156,9 +157,9 @@ return array(
 		'title' => 'Delen',
 		'twitter' => 'Twitter',
 		'wallabag' => 'wallabag',
-		'_' => 'Delen',
 	),
 	'shortcut' => array(
+		'_' => 'Snelkoppelingen',
 		'article_action' => 'Artikelacties',
 		'auto_share' => 'Delen',
 		'auto_share_help' => 'Als er slechts één deelmethode is, dan wordt die gebruikt. Anders zijn ze toegankelijk met hun nummer.',
@@ -190,7 +191,6 @@ return array(
 		'user_filter' => 'Toegang gebruikers filters',
 		'user_filter_help' => 'Als er slechts één gebruikersfilter is, dan wordt die gebruikt. Anders zijn ze toegankelijk met hun nummer.',
 		'views' => 'Aanzichten',
-		'_' => 'Snelkoppelingen',
 	),
 	'user' => array(
 		'articles_and_size' => '%s artikelen (%s)',

+ 11 - 11
app/i18n/nl/feedback.php

@@ -44,9 +44,9 @@ return array(
 			'ko' => '%s kan niet worden ingeschakeld. <a href="%s">Controleer FreshRSS log bestanden</a> voor details.',
 			'ok' => '%s is nn ingeschakeld',
 		),
+		'no_access' => 'U hebt geen toegang voor %s',
 		'not_enabled' => '%s is nog niet ingeschakeld',
 		'not_found' => '%s bestaat niet',
-		'no_access' => 'U hebt geen toegang voor %s',
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'ZIP uitbreiding is niet aanwezig op uw server. Exporteer a.u.b. uw bestanden één voor één.',
@@ -72,10 +72,10 @@ return array(
 			'emptied' => 'Categorie is leeg gemaakt',
 			'error' => 'Categorie kan niet worden vernieuwd',
 			'name_exists' => 'Categorie naam bestaat al.',
-			'not_delete_default' => 'U kunt de standaard categorie niet verwijderen!',
-			'not_exist' => 'De categorie bestaat niet!',
 			'no_id' => 'U moet de id specificeren of de categorie.',
 			'no_name' => 'Categorie naam mag niet leeg zijn.',
+			'not_delete_default' => 'U kunt de standaard categorie niet verwijderen!',
+			'not_exist' => 'De categorie bestaat niet!',
 			'over_max' => 'Maximum aantal categorieën bereikt (%d)',
 			'updated' => 'Categorie vernieuwd.',
 		),
@@ -89,17 +89,17 @@ return array(
 			'error' => 'Feed kan niet worden vernieuwd',
 			'internal_problem' => 'De feed kon niet worden toegevoegd. <a href="%s">Controleer de FreshRSS-logbestanden</a> voor details. Toevoegen forceren kan worden geprobeerd door <code>#force_feed</code> aan de URL toe te voegen.',
 			'invalid_url' => 'URL <em>%s</em> is ongeldig',
-			'not_added' => '<em>%s</em> kon niet worden toegevoegd',
-			'not_found' => 'Feed cannot be found',	// TODO - Translation
-			'no_refresh' => 'Er is geen feed om te vernieuwen…',
 			'n_actualized' => '%d feeds zijn vernieuwd',
 			'n_entries_deleted' => '%d artikelen zijn verwijderd',
+			'no_refresh' => 'Er is geen feed om te vernieuwen…',
+			'not_added' => '<em>%s</em> kon niet worden toegevoegd',
+			'not_found' => 'Feed cannot be found',	// TODO - Translation
 			'over_max' => 'Maximum aantal feeds bereikt (%d)',
 			'reloaded' => '<em>%s</em> has been reloaded',	// TODO - Translation
 			'selector_preview' => array(
 				'http_error' => 'Failed to load website content.',	// TODO - Translation
-				'no_entries' => 'There is no entries in your feed. You need at least one entry to create a preview.',	// TODO - Translation
-				'no_feed' => 'Internal error (no feed to entry).',	// TODO - Translation
+				'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.',	// TODO - Translation
+				'no_feed' => 'Internal error (feed can’t be found).',	// TODO - Translation
 				'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.',	// TODO - Translation
 				'selector_empty' => 'The selector is empty. You need to define one to create a preview.',	// TODO - Translation
 			),
@@ -117,16 +117,16 @@ return array(
 	),
 	'user' => array(
 		'created' => array(
-			'error' => 'Gebruiker %s kan niet worden aangemaakt',
 			'_' => 'Gebruiker %s is aangemaakt',
+			'error' => 'Gebruiker %s kan niet worden aangemaakt',
 		),
 		'deleted' => array(
-			'error' => 'Gebruiker %s kan niet worden verwijderd',
 			'_' => 'Gebruiker %s is verwijderd',
+			'error' => 'Gebruiker %s kan niet worden verwijderd',
 		),
 		'updated' => array(
-			'error' => 'Gebruiker %s kan niet worden bijgewerkt',
 			'_' => 'Gebruiker %s is bijgewerkt',
+			'error' => 'Gebruiker %s kan niet worden bijgewerkt',
 		),
 	),
 );

+ 17 - 17
app/i18n/nl/gen.php

@@ -32,45 +32,50 @@ return array(
 		'login' => 'Log in',
 		'logout' => 'Log uit',
 		'password' => array(
-			'format' => '<small>Ten minste 7 tekens</small>',
 			'_' => 'Wachtwoord',
+			'format' => '<small>Ten minste 7 tekens</small>',
 		),
 		'registration' => array(
+			'_' => 'Nieuw account',
 			'ask' => 'Maak een account?',
 			'title' => 'Account maken',
-			'_' => 'Nieuw account',
 		),
 		'reset' => 'Authenticatie reset',
 		'username' => array(
+			'_' => 'Gebruikersnaam',
 			'admin' => 'Beheerdersgebruikersnaam',
 			'format' => '<small>Maximaal 16 alfanumerieke tekens</small>',
-			'_' => 'Gebruikersnaam',
 		),
 	),
 	'date' => array(
-		'apr' => 'apr',
 		'Apr' => '\\A\\p\\r\\i\\l',
-		'april' => 'Apr',
 		'Aug' => '\\A\\u\\g\\u\\s\\t\\u\\s',
+		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',
+		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\i',
+		'Jan' => '\\J\\a\\n\\u\\a\\r\\i',
+		'Jul' => '\\J\\u\\l\\i',
+		'Jun' => '\\J\\u\\n\\i',
+		'Mar' => '\\M\\a\\a\\r\\t',
+		'May' => '\\M\\e\\i',
+		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',
+		'Oct' => '\\O\\k\\t\\o\\b\\e\\r',
+		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',
+		'apr' => 'apr',
+		'april' => 'Apr',
 		'aug' => 'aug',
 		'august' => 'Aug',
 		'before_yesterday' => 'Ouder',
-		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',
 		'dec' => 'dec',
 		'december' => 'Dec',
-		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\i',
 		'feb' => 'feb',
 		'february' => 'Feb',
 		'format_date' => 'j %s Y',
 		'format_date_hour' => 'j %s Y \\o\\m H\\:i',
 		'fri' => 'Vr',
-		'Jan' => '\\J\\a\\n\\u\\a\\r\\i',
 		'jan' => 'jan',
 		'january' => 'Jan',
 		'jul' => 'jul',
-		'Jul' => '\\J\\u\\l\\i',
 		'july' => 'Jul',
-		'Jun' => '\\J\\u\\n\\i',
 		'jun' => 'jun',
 		'june' => 'Jun',
 		'last_2_year' => 'Afgelopen twee jaar',
@@ -81,22 +86,17 @@ return array(
 		'last_month' => 'Vorige maand',
 		'last_week' => 'Vorige week',
 		'last_year' => 'Vorig jaar',
-		'Mar' => '\\M\\a\\a\\r\\t',
 		'mar' => 'mrt',
 		'march' => 'Mrt',
 		'may' => 'Mei',
-		'May' => '\\M\\e\\i',
 		'may_' => 'Mei',
 		'mon' => 'Ma',
 		'month' => 'maanden',
-		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',
 		'nov' => 'nov',
 		'november' => 'Nov',
-		'Oct' => '\\O\\k\\t\\o\\b\\e\\r',
 		'oct' => 'okt',
 		'october' => 'Okt',
 		'sat' => 'Za',
-		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',
 		'sep' => 'sep',
 		'september' => 'Sep',
 		'sun' => 'Zo',
@@ -108,8 +108,8 @@ return array(
 	),
 	'dir' => 'ltr',
 	'freshrss' => array(
-		'about' => 'Over FreshRSS',
 		'_' => 'FreshRSS',
+		'about' => 'Over FreshRSS',
 	),
 	'js' => array(
 		'category_empty' => 'Lege categorie',
@@ -178,13 +178,13 @@ return array(
 		'years' => 'jaren',
 	),
 	'share' => array(
+		'Known' => 'Known-gebaseerde sites',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
 		'facebook' => 'Facebook',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
-		'Known' => 'Known-gebaseerde sites',
 		'lemmy' => 'Lemmy',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',

+ 2 - 2
app/i18n/nl/index.php

@@ -2,6 +2,7 @@
 
 return array(
 	'about' => array(
+		'_' => 'Over',
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',
 		'bugs_reports' => 'Rapporteer fouten',
 		'credits' => 'Waarderingen',
@@ -13,7 +14,6 @@ return array(
 		'title' => 'Over',
 		'version' => 'Versie',
 		'website' => 'Website',
-		'_' => 'Over',
 	),
 	'feed' => array(
 		'add' => 'U kunt wat feeds toevoegen.',
@@ -24,10 +24,10 @@ return array(
 		'title_global' => 'Globale weergave',
 	),
 	'log' => array(
+		'_' => 'Log bestanden',
 		'clear' => 'Leeg de log bestanden',
 		'empty' => 'Log bestand is leeg',
 		'title' => 'Log bestanden',
-		'_' => 'Log bestanden',
 	),
 	'menu' => array(
 		'about' => 'Over FreshRSS',

+ 5 - 5
app/i18n/nl/install.php

@@ -17,19 +17,20 @@ return array(
 		'type' => 'Authenticatiemethode',
 	),
 	'bdd' => array(
+		'_' => 'Database',
 		'conf' => array(
+			'_' => 'Database configuratie',
 			'ko' => 'Controleer uw database informatie.',
 			'ok' => 'Database configuratie is opgeslagen.',
-			'_' => 'Database configuratie',
 		),
 		'host' => 'Host',
 		'password' => 'Database wachtwoord',
 		'prefix' => 'Tabel voorvoegsel',
 		'type' => 'Type database',
 		'username' => 'Database gebruikersnaam',
-		'_' => 'Database',
 	),
 	'check' => array(
+		'_' => 'Controles',
 		'already_installed' => 'We hebben geconstateerd dat FreshRSS al is geïnstallerd!',
 		'cache' => array(
 			'nok' => 'Controleer permissies van de <em>./data/cache</em> map. HTTP server moet rechten hebben om er in te kunnen schrijven',
@@ -95,11 +96,10 @@ return array(
 			'nok' => 'U mist de benodigde bibliotheek om XML te gebruiken.',
 			'ok' => 'U hebt de benodigde bibliotheek om XML te gebruiken.',
 		),
-		'_' => 'Controles',
 	),
 	'conf' => array(
-		'ok' => 'Algemene configuratie is opgeslagen.',
 		'_' => 'Algemene configuratie',
+		'ok' => 'Algemene configuratie is opgeslagen.',
 	),
 	'congratulations' => 'Gefeliciteerd!',
 	'default_user' => 'Gebruikersnaam van de standaardgebruiker <small>(maximaal 16 alfanumerieke tekens)</small>',
@@ -110,9 +110,9 @@ return array(
 		'confirm_reinstall' => 'U zal uw vorige configuratie kwijtraken door FreshRSS opnieuw te installeren. Weet u zeker dat u verder wilt gaan?',
 	),
 	'language' => array(
+		'_' => 'Taal',
 		'choose' => 'Kies een taal voor FreshRSS',
 		'defined' => 'Taal is bepaald.',
-		'_' => 'Taal',
 	),
 	'not_deleted' => 'Er ging iets fout! U moet het bestand <em>%s</em> handmatig verwijderen.',
 	'ok' => 'De installatieprocedure is geslaagd.',

+ 7 - 7
app/i18n/nl/sub.php

@@ -11,6 +11,7 @@ return array(
 		'title' => 'Bookmarklet',
 	),
 	'category' => array(
+		'_' => 'Categorie',
 		'add' => 'Voeg categorie toe',
 		'archiving' => 'Archiveren',
 		'empty' => 'Lege categorie',
@@ -19,7 +20,6 @@ return array(
 		'position' => 'Weergavepositie',
 		'position_help' => 'Om de categorieweergave-sorteervolgorde te controleren',
 		'title' => 'Titel',
-		'_' => 'Categorie',
 	),
 	'feed' => array(
 		'add' => 'Voeg een RSS-feed toe',
@@ -39,16 +39,16 @@ return array(
 		'empty' => 'Deze feed is leeg. Controleer of deze nog actueel is.',
 		'error' => 'Deze feed heeft problemen. Verifieer a.u.b het doeladres en actualiseer het.',
 		'filteractions' => array(
-			'help' => 'Voer één zoekfilter per lijn in.',
 			'_' => 'Filteracties',
+			'help' => 'Voer één zoekfilter per lijn in.',
 		),
 		'information' => 'Informatie',
 		'keep_min' => 'Minimum aantal artikelen om te houden',
 		'maintenance' => array(
 			'clear_cache' => 'Clear cache',	// TODO - Translation
-			'clear_cache_help' => 'Clear the cache of this feed on disk',	// TODO - Translation
+			'clear_cache_help' => 'Clear the cache for this feed.',	// TODO - Translation
 			'reload_articles' => 'Reload articles',	// TODO - Translation
-			'reload_articles_help' => 'Reload articles and fetch complete content',	// TODO - Translation
+			'reload_articles_help' => 'Reload articles and fetch complete content if a selector is defined.',	// TODO - Translation
 			'title' => 'Maintenance',	// TODO - Translation
 		),
 		'moved_category_deleted' => 'Als u een categorie verwijderd, worden de feeds automatisch geclassificeerd onder <em>%s</em>.',
@@ -56,13 +56,13 @@ return array(
 		'no_selected' => 'Geen feed geselecteerd.',
 		'number_entries' => '%d artikelen',
 		'priority' => array(
+			'_' => 'Zichtbaarheid',
 			'archived' => 'Niet weergeven (gearchiveerd)',
 			'main_stream' => 'Zichtbaar in het overzicht',
 			'normal' => 'Toon in categorie',
-			'_' => 'Zichtbaarheid',
 		),
 		'selector_preview' => array(
-			'show_raw' => 'Show source',	// TODO - Translation
+			'show_raw' => 'Show source code',	// TODO - Translation
 			'show_rendered' => 'Show content',	// TODO - Translation
 		),
 		'show' => array(
@@ -108,8 +108,8 @@ return array(
 		'subscription_tools' => 'Hulpmiddelen voor abonnementen',
 	),
 	'title' => array(
+		'_' => 'Abonnementenbeheer',
 		'feed_management' => 'RSS-feedbeheer',
 		'subscription_tools' => 'Hulpmiddelen voor abonnementen',
-		'_' => 'Abonnementenbeheer',
 	),
 );

+ 8 - 8
app/i18n/oc/admin.php

@@ -83,9 +83,9 @@ return array(
 			'ok' => 'Avètz PDO e almens un des drivers compatibles (pdo_mysql, pdo_sqlite, pdo_pgsql).',
 		),
 		'php' => array(
+			'_' => 'Installacion PHP',
 			'nok' => 'Vòstra version PHP es la %s más FreshRSS demanda almens la versión %s.',
 			'ok' => 'Vòstra version PHP es %s, qu’es compatibla amb FreshRSS.',
-			'_' => 'Installacion PHP',
 		),
 		'tables' => array(
 			'nok' => 'Manca una o mai tabla dins la basa de donadas.',
@@ -116,8 +116,8 @@ return array(
 		'name' => 'Nom',
 		'no_configure_view' => 'Aquesta extension se pòt pas configurar.',
 		'system' => array(
-			'no_rights' => 'Extensions sistèma (contrarotlat per l’administrator)',
 			'_' => 'Extensions sistèma',
+			'no_rights' => 'Extensions sistèma (contrarotlat per l’administrator)',
 		),
 		'title' => 'Extensions',
 		'update' => 'Mesa a jorn disponibla',
@@ -125,6 +125,7 @@ return array(
 		'version' => 'Version',
 	),
 	'stats' => array(
+		'_' => 'Estatisticas',
 		'all_feeds' => 'Totes los fluxes',
 		'category' => 'Categoria',
 		'entry_count' => 'Nombre d’articles',
@@ -154,9 +155,9 @@ return array(
 		'status_unread' => 'Pas legits',
 		'title' => 'Estatisticas',
 		'top_feed' => 'Los dètz fluxes mai gròsses',
-		'_' => 'Estatisticas',
 	),
 	'system' => array(
+		'_' => 'Configuracion sistèma',
 		'auto-update-url' => 'URL del servici de mesa a jorn',
 		'cookie-duration' => array(
 			'help' => 'en segondas',
@@ -170,21 +171,20 @@ return array(
 			'help' => '0 vòl dire qu’i a pas cap de limita de compte',
 			'number' => 'Nombre max de comptes',
 		),
-		'_' => 'Configuracion sistèma',
 	),
 	'update' => array(
+		'_' => 'Sistèma de mesa a jorn',
 		'apply' => 'Aplicar',
 		'check' => 'Verificar las mesas a jorn',
 		'current_version' => 'Vòstra version actuala de FreshRSS es %s.',
 		'last' => 'Darrièra verificacion : %s',
 		'none' => 'Cap d’actualizacion d’aplicar',
 		'title' => 'Sistèma de mesa a jorn',
-		'_' => 'Sistèma de mesa a jorn',
 	),
 	'user' => array(
 		'admin' => 'Administrator',
-		'articles_and_size' => '%s articles (%s)',
 		'article_count' => 'Articles',
+		'articles_and_size' => '%s articles (%s)',
 		'back_to_manage' => '← Tornar a la lista dels utilizaires',
 		'create' => 'Crear un nòu utilizaire',
 		'database_size' => 'Talha basa de donadas',
@@ -193,8 +193,8 @@ return array(
 		'feed_count' => 'Flux',
 		'is_admin' => 'Es admin',
 		'language' => 'Lenga',
-		'list' => 'Lista dels utilizaires',
 		'last_user_activity' => 'Last user activity',	// TODO - Translation
+		'list' => 'Lista dels utilizaires',
 		'number' => '%d compte ja creat',
 		'numbers' => '%d comptes ja creats',
 		'password_form' => 'Senhal <br /><small>(ex. : per la connexion via formulari)</small>',
@@ -202,8 +202,8 @@ return array(
 		'selected' => 'Utilizaire seleccionat',
 		'title' => 'Gestion dels utilizaires',
 		'update_users' => 'Actualizar un utilizaire',
+		'user_list' => 'Lista dels utilizaires',
 		'username' => 'Nom d’utilizaire',
 		'users' => 'Utilizaires',
-		'user_list' => 'Lista dels utilizaires',
 	),
 );

+ 13 - 13
app/i18n/oc/conf.php

@@ -2,6 +2,7 @@
 
 return array(
 	'archiving' => array(
+		'_' => 'Archius',
 		'delete_after' => 'Levar los articles aprèp',
 		'exception' => 'Excepcion de purga',
 		'help' => 'Mai d’opcions son disponiblas dins la configuracion individuala dels fluxes',
@@ -19,9 +20,9 @@ return array(
 		'purge_now' => 'Purgar ara',
 		'title' => 'Archius',
 		'ttl' => 'Actualizar pas automaticament mai sovent que',
-		'_' => 'Archius',
 	),
 	'display' => array(
+		'_' => 'Afichatge',
 		'icon' => array(
 			'bottom_line' => 'Linha enbàs',
 			'display_authors' => 'Autors',
@@ -46,22 +47,22 @@ return array(
 			'no_limit' => 'Cap de limit',
 			'thin' => 'Fina',
 		),
-		'_' => 'Afichatge',
 	),
 	'profile' => array(
+		'_' => 'Gestion del perfil',
 		'api' => 'Gestion API',
 		'delete' => array(
-			'warn' => 'Lo compte e totas las donadas ligadas seràn suprimits.',
 			'_' => 'Supression del compte',
+			'warn' => 'Lo compte e totas las donadas ligadas seràn suprimits.',
 		),
 		'email' => 'Adreça de corrièl',
 		'password_api' => 'Senhal API<br /><small>(ex. : per las aplicacions mobil)</small>',
 		'password_form' => 'Senhal API<br /><small>(ex. : per la connexion via formulari)</small>',
 		'password_format' => 'Almens 7 caractèrs',
 		'title' => 'Pefil',
-		'_' => 'Gestion del perfil',
 	),
 	'query' => array(
+		'_' => 'Filtres utilizaires',
 		'deprecated' => 'Aqueste filtre es pas valid. La categoria o lo flux concernit es estat suprimit.',
 		'display' => 'Mostrar los resultats del filtre',
 		'filter' => 'Filtres aplicats :',
@@ -69,8 +70,8 @@ return array(
 		'get_category' => 'Mostrar la categoria « %s »',
 		'get_favorite' => 'Mostrar los articles favorits',
 		'get_feed' => 'Mostrar lo flux « %s »',
-		'none' => 'Avètz pas encara creat cap de filtre.',
 		'no_filter' => 'Cap de filtre aplicat',
+		'none' => 'Avètz pas encara creat cap de filtre.',
 		'number' => 'Filtre n°%d',
 		'order_asc' => 'Mostrar los articles mai ancians en primièr',
 		'order_desc' => 'Mostrar los articles mai recents en primièr',
@@ -93,9 +94,9 @@ return array(
 		'state_14' => 'Mostrar los articles pas legits',
 		'state_15' => 'Mostrar totes los articles',
 		'title' => 'Filtres utilizaire',
-		'_' => 'Filtres utilizaires',
 	),
 	'reading' => array(
+		'_' => 'Lectura',
 		'after_onread' => 'Aprèp « marcar coma legit »,',
 		'always_show_favorites' => 'Mostrar totes los articles dels favorits per defaut',
 		'articles_per_page' => 'Nombre d’articles per pagina',
@@ -117,19 +118,19 @@ return array(
 			'when' => 'Marcar un article coma legit…',
 		),
 		'show' => array(
+			'_' => 'Articles de mostrar',
+			'active_category' => 'Active category',	// TODO - Translation
 			'adaptive' => 'Adaptar l’afichatge',
 			'all_articles' => 'Mostrar totes los articles',
-			'unread' => 'Mostrar pas que los pas legits',
-			'active_category' => 'Active category',	// TODO - Translation
 			'all_categories' => 'All categories',	// TODO - Translation
 			'no_category' => 'No category',	// TODO - Translation
-			'_' => 'Articles de mostrar',
+			'unread' => 'Mostrar pas que los pas legits',
 		),
 		'sides_close_article' => 'Clicar fòra de la zòna de tèxte tampa l’article',
 		'sort' => array(
+			'_' => 'Òrdre de tria',
 			'newer_first' => 'Mai recents en primièr',
 			'older_first' => 'Mai ancians en primièr',
-			'_' => 'Òrdre de tria',
 		),
 		'sticky_post' => 'Gardar l’article amont quand es dobèrt',
 		'title' => 'Lectura',
@@ -139,9 +140,9 @@ return array(
 			'normal' => 'Vista normala',
 			'reader' => 'Vista lectura',
 		),
-		'_' => 'Lectura',
 	),
 	'sharing' => array(
+		'_' => 'Partatge',
 		'add' => 'Ajustar un metòde de partatge',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
@@ -156,9 +157,9 @@ return array(
 		'title' => 'Partatge',
 		'twitter' => 'Twitter',
 		'wallabag' => 'wallabag',
-		'_' => 'Partatge',
 	),
 	'shortcut' => array(
+		'_' => 'Acorchis',
 		'article_action' => 'Accions ligadas a l’article',
 		'auto_share' => 'Partejar',
 		'auto_share_help' => 'S’i a pas qu’un mòde de partatge, aquel serà utilizat. Autrament los mòdes son accessibles per lor numèro.',
@@ -190,7 +191,6 @@ return array(
 		'user_filter' => 'Accedir als filtres utilizaire',
 		'user_filter_help' => 'S’i a pas qu’un filtre utilizaire, aquel serà utilizat. Autrament los filtres son accessibles per lor numèro.',
 		'views' => 'Vistas',
-		'_' => 'Acorchis',
 	),
 	'user' => array(
 		'articles_and_size' => '%s articles (%s)',

+ 9 - 9
app/i18n/oc/feedback.php

@@ -44,9 +44,9 @@ return array(
 			'ko' => '%s pòt pas èsser activada. <a href="%s">Consultatz los jornals d’audit de FreshRSS logs</a> per mai de detalhs.',
 			'ok' => '%s es ara activada',
 		),
+		'no_access' => 'Avètz pas accès sus %s',
 		'not_enabled' => '%s es pas encara activada',
 		'not_found' => '%s existís pas',
-		'no_access' => 'Avètz pas accès sus %s',
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'L\'extension ZIP es pas presenta sul servidor. Volgatz ensajar d\'exportar los fichièrs un per un.',
@@ -72,10 +72,10 @@ return array(
 			'emptied' => 'La categoria es estada voidada',
 			'error' => 'Actualizacion de la categoria impossibla',
 			'name_exists' => 'Una categoria se ditz ja atal.',
-			'not_delete_default' => 'Podètz pas suprimir la categoria per defaut !',
-			'not_exist' => 'Aquesta categoria existís pas !',
 			'no_id' => 'Vos cal precisar l’id de la categoria.',
 			'no_name' => 'Vos cal donar un nom a la categoria.',
+			'not_delete_default' => 'Podètz pas suprimir la categoria per defaut !',
+			'not_exist' => 'Aquesta categoria existís pas !',
 			'over_max' => 'Avètz atengut la limita de categoria (%d)',
 			'updated' => 'La categoria es estada actualizada.',
 		),
@@ -89,11 +89,11 @@ return array(
 			'error' => 'Error en actualizar',
 			'internal_problem' => 'Lo flux pòt pas èsser ajustat. <a href="%s">Consultatz los jornals d’audit de FreshRSS</a> per ne saber mai. Podètz forçar l’apondon en ajustant <code>#force_feed</code> a l’URL.',
 			'invalid_url' => 'L\'URL <em>%s</em> es invalida',
-			'not_added' => '<em>%s</em> a pas pogut èsser ajustat',
-			'not_found' => 'Flux introbable',
-			'no_refresh' => 'I a pas cap de flux d’actualizar…',
 			'n_actualized' => '%s fluxes son estats actualizats',
 			'n_entries_deleted' => '%d articles son estats suprimits',
+			'no_refresh' => 'I a pas cap de flux d’actualizar…',
+			'not_added' => '<em>%s</em> a pas pogut èsser ajustat',
+			'not_found' => 'Flux introbable',
 			'over_max' => 'Avètz atengut vòstra limita de fluxes (%d)',
 			'reloaded' => '<em>%s</em> es estat recargat',
 			'selector_preview' => array(
@@ -117,16 +117,16 @@ return array(
 	),
 	'user' => array(
 		'created' => array(
-			'error' => 'L’utilizaire %s pòt pas èsser creat',
 			'_' => 'L’utilizaire %s es estat creat',
+			'error' => 'L’utilizaire %s pòt pas èsser creat',
 		),
 		'deleted' => array(
-			'error' => 'L’utilizaire %s pòt pas èsser suprimit',
 			'_' => 'L’utilizaire %s es estat suprimit',
+			'error' => 'L’utilizaire %s pòt pas èsser suprimit',
 		),
 		'updated' => array(
-			'error' => 'L’utilizaire %s es pas estat actualizat',
 			'_' => 'L’utilizaire %s es estat actualizat',
+			'error' => 'L’utilizaire %s es pas estat actualizat',
 		),
 	),
 );

+ 17 - 17
app/i18n/oc/gen.php

@@ -32,45 +32,50 @@ return array(
 		'login' => 'Connexion',
 		'logout' => 'Se desconnectar',
 		'password' => array(
-			'format' => '<small>Almens 7 caractèrs</small>',
 			'_' => 'Senhal',
+			'format' => '<small>Almens 7 caractèrs</small>',
 		),
 		'registration' => array(
+			'_' => 'Compte nòu',
 			'ask' => 'Crear un compte?',
 			'title' => 'Creacion de compte',
-			'_' => 'Compte nòu',
 		),
 		'reset' => 'Reïnicializacion de l’autentificacion',
 		'username' => array(
+			'_' => 'Nom d’utilizaire',
 			'admin' => 'Nom d’utilizaire administrator',
 			'format' => '<small>16 caractèrs alfanumerics maximum</small>',
-			'_' => 'Nom d’utilizaire',
 		),
 	),
 	'date' => array(
-		'apr' => 'abr.',
 		'Apr' => '\\a\\b\\r\\i\\a\\l',
-		'april' => 'abrial',
 		'Aug' => '\\a\\g\\o\\s\\t',
+		'Dec' => '\\d\\e\\c\\e\\m\\b\\r\\e',
+		'Feb' => '\\f\\e\\b\\r\\i\\è\\r',
+		'Jan' => '\\g\\e\\n\\i\\è\\r',
+		'Jul' => '\\j\\u\\l\\h\\e\\t',
+		'Jun' => '\\j\\u\\n\\h',
+		'Mar' => '\\m\\a\\r\\ç',
+		'May' => '\\m\\a\\i',
+		'Nov' => '\\n\\o\\v\\e\\m\\b\\r\\e',
+		'Oct' => '\\o\\c\\t\\ò\\b\\r\\e',
+		'Sep' => '\\s\\e\\t\\e\\m\\b\\r\\e',
+		'apr' => 'abr.',
+		'april' => 'abrial',
 		'aug' => 'agost',
 		'august' => 'agost',
 		'before_yesterday' => 'Anterior a ièr',
-		'Dec' => '\\d\\e\\c\\e\\m\\b\\r\\e',
 		'dec' => 'dec.',
 		'december' => 'decembre',
-		'Feb' => '\\f\\e\\b\\r\\i\\è\\r',
 		'feb' => 'feb.',
 		'february' => 'febrièr',
 		'format_date' => 'j \\d\\e %s \\d\\e Y',
 		'format_date_hour' => 'j \\d\\e %s \\d\\e Y \\a H\\:i',
 		'fri' => 'dv',
-		'Jan' => '\\g\\e\\n\\i\\è\\r',
 		'jan' => 'gen.',
 		'january' => 'genièr',
 		'jul' => 'julh',
-		'Jul' => '\\j\\u\\l\\h\\e\\t',
 		'july' => 'julhet',
-		'Jun' => '\\j\\u\\n\\h',
 		'jun' => 'junh',
 		'june' => 'junh',
 		'last_2_year' => 'Dempuèi las darrièras doas annadas',
@@ -81,22 +86,17 @@ return array(
 		'last_month' => 'Dempuèi lo mes passat',
 		'last_week' => 'Dempuèi la setmana passada',
 		'last_year' => 'Dempuèi l’annada passada',
-		'Mar' => '\\m\\a\\r\\ç',
 		'mar' => 'març',
 		'march' => 'març',
 		'may' => 'mai',
-		'May' => '\\m\\a\\i',
 		'may_' => 'mai',
 		'mon' => 'dl',
 		'month' => 'meses',
-		'Nov' => '\\n\\o\\v\\e\\m\\b\\r\\e',
 		'nov' => 'nov.',
 		'november' => 'novembre',
-		'Oct' => '\\o\\c\\t\\ò\\b\\r\\e',
 		'oct' => 'oct.',
 		'october' => 'octòbre',
 		'sat' => 'ds',
-		'Sep' => '\\s\\e\\t\\e\\m\\b\\r\\e',
 		'sep' => 'set.',
 		'september' => 'setembre',
 		'sun' => 'dg',
@@ -108,8 +108,8 @@ return array(
 	),
 	'dir' => 'ltr',
 	'freshrss' => array(
-		'about' => 'A prepaus de FreshRSS',
 		'_' => 'FreshRSS',
+		'about' => 'A prepaus de FreshRSS',
 	),
 	'js' => array(
 		'category_empty' => 'Categoria voida',
@@ -178,13 +178,13 @@ return array(
 		'years' => 'ans',
 	),
 	'share' => array(
+		'Known' => 'Sites basats sus Known',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Corrièl',
 		'facebook' => 'Facebook',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
-		'Known' => 'Sites basats sus Known',
 		'lemmy' => 'Lemmy',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',

+ 2 - 2
app/i18n/oc/index.php

@@ -2,6 +2,7 @@
 
 return array(
 	'about' => array(
+		'_' => 'A prepaus',
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',
 		'bugs_reports' => 'Senhalament de problèmas',
 		'credits' => 'Crèdits',
@@ -13,7 +14,6 @@ return array(
 		'title' => 'A prepaus',
 		'version' => 'Version',
 		'website' => 'Site internet',
-		'_' => 'A prepaus',
 	),
 	'feed' => array(
 		'add' => 'Podètz ajustar de fluxes.',
@@ -24,10 +24,10 @@ return array(
 		'title_global' => 'Vista generala',
 	),
 	'log' => array(
+		'_' => 'Jornals d’audit',
 		'clear' => 'Escafar los jornals',
 		'empty' => 'Los jornals son voids',
 		'title' => 'Jornals d’audit',
-		'_' => 'Jornals d’audit',
 	),
 	'menu' => array(
 		'about' => 'A prepaus de FreshRSS',

+ 5 - 5
app/i18n/oc/install.php

@@ -17,19 +17,20 @@ return array(
 		'type' => 'Mòde d’autentification',
 	),
 	'bdd' => array(
+		'_' => 'Basa de donadas',
 		'conf' => array(
+			'_' => 'Configuracion de la basa de donadas',
 			'ko' => 'Verificatz las informacions de la basa de donadas.',
 			'ok' => 'La configuracion de la basa de donadas es salvagarda.',
-			'_' => 'Configuracion de la basa de donadas',
 		),
 		'host' => 'Òste',
 		'password' => 'Senhal de la basa de donadas',
 		'prefix' => 'Prefixe de tabla',
 		'type' => 'Tipe de basa de donadas',
 		'username' => 'Nom d’utilizaire de la basa de donadas',
-		'_' => 'Basa de donadas',
 	),
 	'check' => array(
+		'_' => 'Verificacions',
 		'already_installed' => 'Sembla que FreshRSS es ja installat !',
 		'cache' => array(
 			'nok' => 'Volgatz verificar los dreches sul repertòri <em>./data/cache</em>. Lo servidor HTTP deu poder escriure dedins',
@@ -95,11 +96,10 @@ return array(
 			'nok' => 'Impossible de trobar una bibliotèca necessària per XML.',
 			'ok' => 'Avètz la bibliotèca per percórrer los XML.',
 		),
-		'_' => 'Verificacions',
 	),
 	'conf' => array(
-		'ok' => 'La configuracion generala es enregistrada.',
 		'_' => 'Configuracion generala',
+		'ok' => 'La configuracion generala es enregistrada.',
 	),
 	'congratulations' => 'Òsca !',
 	'default_user' => 'Nom d’utilizaire per defaut <small>16 caractèrs alfanumerics maximum)</small>',
@@ -110,9 +110,9 @@ return array(
 		'confirm_reinstall' => 'En reïnstallant FreshRSS perdretz la configuracion precedenta. Volètz vertadièrament contunhar ?',
 	),
 	'language' => array(
+		'_' => 'Lenga',
 		'choose' => 'Causissètz la lenga per FreshRSS',
 		'defined' => 'La lenga es corrèctament definida.',
-		'_' => 'Lenga',
 	),
 	'not_deleted' => 'Quicòm a trucat, sembla qu’avètz suprimit <em>%s</em> a la man.',
 	'ok' => 'L’installacion s’es corrèctament passada.',

+ 4 - 4
app/i18n/oc/sub.php

@@ -11,6 +11,7 @@ return array(
 		'title' => 'Bookmarklet',
 	),
 	'category' => array(
+		'_' => 'Categoria',
 		'add' => 'Ajustar una categoria',
 		'archiving' => 'Archivar',
 		'empty' => 'Categoria voida',
@@ -19,7 +20,6 @@ return array(
 		'position' => 'Mostrar la posicion',
 		'position_help' => 'Per contrarotlar l’òrdre de tria de la categoria',
 		'title' => 'Títol',
-		'_' => 'Categoria',
 	),
 	'feed' => array(
 		'add' => 'Ajustar un flux RSS',
@@ -39,8 +39,8 @@ return array(
 		'empty' => 'Aqueste flux es void. Assegurats-vos qu’es totjorn mantengut.',
 		'error' => 'Aqueste flux a rescontrat un problèma. Volgatz verificar que siá totjorn accessible puèi actualizatz-lo.',
 		'filteractions' => array(
-			'help' => 'Escrivètz una recèrca per linha.',
 			'_' => 'Filtre d’accion',
+			'help' => 'Escrivètz una recèrca per linha.',
 		),
 		'information' => 'Informacions',
 		'keep_min' => 'Nombre minimum d’articles de servar',
@@ -56,10 +56,10 @@ return array(
 		'no_selected' => 'Cap de flux pas seleccionat.',
 		'number_entries' => '%d articles',
 		'priority' => array(
+			'_' => 'Visibilitat',
 			'archived' => 'Mostrar pas (archivat)',
 			'main_stream' => 'Mostar al flux màger',
 			'normal' => 'Mostar dins sa categoria',
-			'_' => 'Visibilitat',
 		),
 		'selector_preview' => array(
 			'show_raw' => 'Veire lo còdi font',
@@ -108,8 +108,8 @@ return array(
 		'subscription_tools' => 'Aisinas d’abonament',
 	),
 	'title' => array(
+		'_' => 'Gestion dels abonaments',
 		'feed_management' => 'Gestion dels fluxes RSS',
 		'subscription_tools' => 'Aisinas d’abonament',
-		'_' => 'Gestion dels abonaments',
 	),
 );

+ 7 - 7
app/i18n/pt-br/admin.php

@@ -83,9 +83,9 @@ return array(
 			'ok' => 'Você tem o PDO e ao menos um dos drivers suportados (pdo_mysql, pdo_sqlite, pdo_pgsql).',
 		),
 		'php' => array(
+			'_' => 'Instação do PHP',
 			'nok' => 'Sua versão do PHP é %s mas FreshRSS requer ao menos a versão %s.',
 			'ok' => 'Sua versão do PHP é %s, que é compatível com o FreshRSS.',
-			'_' => 'Instação do PHP',
 		),
 		'tables' => array(
 			'nok' => 'Há uma ou mais tabelas inexistentes no banco de dados.',
@@ -116,8 +116,8 @@ return array(
 		'name' => 'Nome',
 		'no_configure_view' => 'Esta extensão não pode ser configurada.',
 		'system' => array(
-			'no_rights' => 'Extensões do sistema (Você não tem direitos para isto)',
 			'_' => 'Extensões do sistema',
+			'no_rights' => 'Extensões do sistema (Você não tem direitos para isto)',
 		),
 		'title' => 'Extensões',
 		'update' => 'Atualização disponível',
@@ -125,6 +125,7 @@ return array(
 		'version' => 'Versão',
 	),
 	'stats' => array(
+		'_' => 'Estatísticas',
 		'all_feeds' => 'Todos os feeds',
 		'category' => 'Categoria',
 		'entry_count' => 'Contagem de entrada',
@@ -154,9 +155,9 @@ return array(
 		'status_unread' => 'Não lidos',
 		'title' => 'Estatísticas',
 		'top_feed' => 'Top10 feeds',
-		'_' => 'Estatísticas',
 	),
 	'system' => array(
+		'_' => 'Configuração do sistema',
 		'auto-update-url' => 'URL do servidor para atualização automática',
 		'cookie-duration' => array(
 			'help' => 'em segundos',
@@ -170,21 +171,20 @@ return array(
 			'help' => '0 significa que não há limite para a conta',
 			'number' => 'Máximo número de contas',
 		),
-		'_' => 'Configuração do sistema',
 	),
 	'update' => array(
+		'_' => 'Atualização do sistema',
 		'apply' => 'Aplicar',
 		'check' => 'Buscar por novas atualizações',
 		'current_version' => 'Sua versão do FreshRSS é %s.',
 		'last' => 'Última verificação: %s',
 		'none' => 'Nenhuma atualização para se aplicar',
 		'title' => 'Sistema de atualização',
-		'_' => 'Atualização do sistema',
 	),
 	'user' => array(
 		'admin' => 'Administrador',
-		'articles_and_size' => '%s artigos (%s)',
 		'article_count' => 'Artigos',
+		'articles_and_size' => '%s artigos (%s)',
 		'back_to_manage' => '← Voltar para à lista de usuários',
 		'create' => 'Criar novo usuário',
 		'database_size' => 'Tamanho do banco de dados',
@@ -202,8 +202,8 @@ return array(
 		'selected' => 'Usuário selecionado',
 		'title' => 'Gerenciar usuários',
 		'update_users' => 'Atualizar usuário',
+		'user_list' => 'Lista de usuários',
 		'username' => 'Usuário',
 		'users' => 'Usuários',
-		'user_list' => 'Lista de usuários',
 	),
 );

+ 15 - 15
app/i18n/pt-br/conf.php

@@ -2,6 +2,7 @@
 
 return array(
 	'archiving' => array(
+		'_' => 'Arquivar',
 		'delete_after' => 'Remover artigos depois',
 		'exception' => 'Regras de exceção da limpeza',
 		'help' => 'Mais opções estão disponíveis nas configurações individuais do Feed',
@@ -19,9 +20,9 @@ return array(
 		'purge_now' => 'Limpar agora',
 		'title' => 'Arquivar',
 		'ttl' => 'Não atualize automaticamente mais frequente que',
-		'_' => 'Arquivar',
 	),
 	'display' => array(
+		'_' => 'Exibição',
 		'icon' => array(
 			'bottom_line' => 'Linha inferior',
 			'display_authors' => 'Autores',
@@ -46,22 +47,22 @@ return array(
 			'no_limit' => 'Sem limite',
 			'thin' => 'Fino',
 		),
-		'_' => 'Exibição',
 	),
 	'profile' => array(
+		'_' => 'Gerenciamento de perfil',
 		'api' => 'Administração da API',
 		'delete' => array(
-			'warn' => 'Sua conta e todos os dados relacionados serão removidos.',
 			'_' => 'Remover conta',
+			'warn' => 'Sua conta e todos os dados relacionados serão removidos.',
 		),
 		'email' => 'Endereço de e-mail',
 		'password_api' => 'Senha da API<br /><small>(p.s., para aplicativos móveis)</small>',
 		'password_form' => 'Senha<br /><small>(para o método de formulário web)</small>',
 		'password_format' => 'Ao menos 7 caracteres',
 		'title' => 'Perfil',
-		'_' => 'Gerenciamento de perfil',
 	),
 	'query' => array(
+		'_' => 'Queries do usuário',
 		'deprecated' => 'Esta não é mais válida. A categoria ou feed relacionado foi deletado.',
 		'display' => 'Exibir resultados da query do usuário',
 		'filter' => 'Filtro aplicado:',
@@ -69,8 +70,8 @@ return array(
 		'get_category' => 'Visualizar "%s" categoria',
 		'get_favorite' => 'Visualizar artigos favoritos',
 		'get_feed' => 'Visualizar "%s" feed',
-		'none' => 'Você não criou nenhuma query de usuário ainda.',
 		'no_filter' => 'Sem filtro',
+		'none' => 'Você não criou nenhuma query de usuário ainda.',
 		'number' => 'Query n°%d',
 		'order_asc' => 'Exibir artigos mais antigos primeiro',
 		'order_desc' => 'Exibir artigos mais novos primeiro',
@@ -93,9 +94,9 @@ return array(
 		'state_14' => 'Exibir artigos não lidos',
 		'state_15' => 'Exibir todos os artigos',
 		'title' => 'Queries de usuários',
-		'_' => 'Queries do usuário',
 	),
 	'reading' => array(
+		'_' => 'Leitura',
 		'after_onread' => 'Depois de "marcar todos como lido",',
 		'always_show_favorites' => 'Mostrar todos os artivos nos favoritos por padrão',
 		'articles_per_page' => 'Número de artigos por página',
@@ -117,19 +118,19 @@ return array(
 			'when' => 'Marcar artigo como lido…',
 		),
 		'show' => array(
+			'_' => 'Artigos para exibir',
+			'active_category' => 'Active category',	// TODO - Translation
 			'adaptive' => 'Ajustar visualização',
 			'all_articles' => 'Exibir todos os artigos',
-			'unread' => 'Exibir apenas não lido',
-			'active_category' => 'Active category',	// TODO - Translation
 			'all_categories' => 'All categories',	// TODO - Translation
 			'no_category' => 'No category',	// TODO - Translation
-			'_' => 'Artigos para exibir',
+			'unread' => 'Exibir apenas não lido',
 		),
 		'sides_close_article' => 'Clicando fora da área do texto do artigo fecha o mesmo',
 		'sort' => array(
+			'_' => 'Ordem de visualização',
 			'newer_first' => 'Novos primeiro',
 			'older_first' => 'Antigos primeiro',
-			'_' => 'Ordem de visualização',
 		),
 		'sticky_post' => 'Coloque o artigo no topo quando aberto',
 		'title' => 'Lendo',
@@ -139,13 +140,13 @@ return array(
 			'normal' => 'Visualização normal',
 			'reader' => 'Visualização de leitura',
 		),
-		'_' => 'Leitura',
 	),
 	'sharing' => array(
+		'_' => 'Compartilhando',
 		'add' => 'Adicionar um método de compartilhamento',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
-		'email' => 'Email',
+		'email' => 'Email',	// TODO - Translation
 		'facebook' => 'Facebook',
 		'more_information' => 'Mais informação',
 		'print' => 'Imprimir',
@@ -156,9 +157,9 @@ return array(
 		'title' => 'Compartilhando',
 		'twitter' => 'Twitter',
 		'wallabag' => 'wallabag',
-		'_' => 'Compartilhando',
 	),
 	'shortcut' => array(
+		'_' => 'Atalhos',
 		'article_action' => 'Ações no artigo',
 		'auto_share' => 'Compartilhar',
 		'auto_share_help' => 'Se há apenas um modo de compartilhamento, ele é usado. Caso contrário, serão acessíveis pelo seu número.',
@@ -183,14 +184,13 @@ return array(
 		'reading_view' => 'Mudar para o modo de leitura',
 		'rss_view' => 'Abrir visualização de RSS em uma nova aba',
 		'see_on_website' => 'Visualize o site original',
-		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> para marcar todos os artigos como lido',	// TODO - Translation
+		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> to mark all articles as read',	// TODO - Translation
 		'skip_next_article' => 'Focar o próximo sem abri-lo',
 		'skip_previous_article' => 'Focar o anterior sem abri-lo',
 		'title' => 'Atalhos',
 		'user_filter' => 'Acesse filtros de usuário',
 		'user_filter_help' => 'Se há apenas um filtro, ele é utilizado. Caso contrário, os filtros serão acessíveis pelos seus números.',
 		'views' => 'Visualizações',
-		'_' => 'Atalhos',
 	),
 	'user' => array(
 		'articles_and_size' => '%s artigos (%s)',

+ 10 - 10
app/i18n/pt-br/feedback.php

@@ -44,9 +44,9 @@ return array(
 			'ko' => '%s não pode ser habilitado. <a href="%s">verifique os logs do FreshRSS</a> para detalhes.',
 			'ok' => '%s agora está habilitado',
 		),
+		'no_access' => 'Você não tem acesso ao %s',
 		'not_enabled' => '%s não está habilitado',
 		'not_found' => '%s não existe',
-		'no_access' => 'Você não tem acesso ao %s',
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'extensão ZIP não está presente em seu servidor. Por favor tente exportar os arquivos um por vez.',
@@ -72,10 +72,10 @@ return array(
 			'emptied' => 'Categoria foi esvaziada',
 			'error' => 'Categoria não pode ser atualizada',
 			'name_exists' => 'Este nome de categoria já existe.',
-			'not_delete_default' => 'Você não pode deletar uma categoria vazia!',
-			'not_exist' => 'A categoria não existe!',
 			'no_id' => 'Você precisa especificar um id para a categoria.',
 			'no_name' => 'Nome da categoria não pode ser vazio.',
+			'not_delete_default' => 'Você não pode deletar uma categoria vazia!',
+			'not_exist' => 'A categoria não existe!',
 			'over_max' => 'Você atingiu seu limite de categorias (%d)',
 			'updated' => 'Categoria foi atualizada.',
 		),
@@ -89,18 +89,18 @@ return array(
 			'error' => 'O feed não pode ser atualizado',
 			'internal_problem' => 'O feed RSS não pôde ser adicionado. <a href="%s">Verifique os logs do FreshRSS</a> para detalhes.',
 			'invalid_url' => 'URL <em>%s</em> é inválida',
-			'not_added' => '<em>%s</em> não pode ser atualizado',
-			'not_found' => 'Não foi possível encontrar o feed',
-			'no_refresh' => 'Não há feed para atualizar…',
 			'n_actualized' => '%d feeds foram atualizados',
 			'n_entries_deleted' => '%d artigos foram deletados',
+			'no_refresh' => 'Não há feed para atualizar…',
+			'not_added' => '<em>%s</em> não pode ser atualizado',
+			'not_found' => 'Não foi possível encontrar o feed',
 			'over_max' => 'Você atingiu seu limite de feeds (%d)',
 			'reloaded' => 'O feed <em>%s</em> foi recarregado',
 			'selector_preview' => array(
 				'http_error' => 'Falha ao carregar o conteúdo do site.',
 				'no_entries' => 'Não há nenhuma entrada nesse feed. Você precisa de pelo menos um artigo para criar uma pré-visualização',
 				'no_feed' => 'Erro interno (nenhum feed para verificar).',
-				'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.',	// TODO - Translation - didn\'t?
+				'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.',	// TODO - Translation
 				'selector_empty' => 'O seletor está vazio. Você precisa definir um para criar uma pré-visualização.',
 			),
 			'updated' => 'Os feeds foram atualizados',
@@ -117,16 +117,16 @@ return array(
 	),
 	'user' => array(
 		'created' => array(
-			'error' => 'Usuário %s não pode ser criado',
 			'_' => 'Usuário %s foi criado',
+			'error' => 'Usuário %s não pode ser criado',
 		),
 		'deleted' => array(
-			'error' => 'Usuário %s não pode ser deletado',
 			'_' => 'Usuário %s foi deletado',
+			'error' => 'Usuário %s não pode ser deletado',
 		),
 		'updated' => array(
-			'error' => 'O usuário %s não foi atualizado',
 			'_' => 'O usuário %s foi atualizado com sucesso',
+			'error' => 'O usuário %s não foi atualizado',
 		),
 	),
 );

+ 21 - 18
app/i18n/pt-br/gen.php

@@ -32,68 +32,71 @@ return array(
 		'login' => 'Entrar',
 		'logout' => 'Sair',
 		'password' => array(
-			'format' => '<small>Ao menos 7 caracteres</small>',
 			'_' => 'Senha',
+			'format' => '<small>Ao menos 7 caracteres</small>',
 		),
 		'registration' => array(
+			'_' => 'Nova conta',
 			'ask' => 'Criar novoa conta?',
 			'title' => 'Criação de conta',
-			'_' => 'Nova conta',
 		),
 		'reset' => 'Reset autenticação',
 		'username' => array(
+			'_' => 'Usuário',
 			'admin' => 'Usuário administrador',
 			'format' => '<small>Máximo 16 caracteres alphanumericos</small>',
-			'_' => 'Usuário',
 		),
 	),
 	'date' => array(
-		'apr' => 'abr',
 		'Apr' => '\\A\\b\\r\\i\\l',
-		'april' => 'Abr',
 		'Aug' => '\\A\\g\\o\\s\\t\\o',
+		'Dec' => '\\D\\e\\z\\e\\m\\b\\r\\o',
+		'Feb' => '\\F\\e\\v\\e\\r\\e\\i\\r\\o',
+		'Jan' => '\\J\\a\\n\\e\\i\\r\\o',
+		'Jul' => '\\J\\u\\l\\h\\o',
+		'Jun' => '\\J\\u\\n\\h\\o',
+		'Mar' => '\\M\\a\\r\\ç\\o',
+		'May' => '\\M\\a\\i\\o',
+		'Nov' => '\\N\\o\\v\\e\\m\\b\\r\\o',
+		'Oct' => '\\O\\u\\t\\u\\b\\r\\o',
+		'Sep' => '\\S\\e\\t\\e\\m\\b\\r\\o',
+		'apr' => 'abr',
+		'april' => 'Abr',
 		'aug' => 'ago',
 		'august' => 'Ago',
 		'before_yesterday' => 'Antes de ontem',
-		'Dec' => '\\D\\e\\z\\e\\m\\b\\r\\o',
 		'dec' => 'dez',
 		'december' => 'Dez',
-		'Feb' => '\\F\\e\\v\\e\\r\\e\\i\\r\\o',
 		'feb' => 'fev',
 		'february' => 'Fev',
 		'format_date' => 'j \\d\\e %s \\d\\e Y',
 		'format_date_hour' => 'j \\d\\e %s \\d\\e Y\\, H\\:i',
 		'fri' => 'Sex',
-		'Jan' => '\\J\\a\\n\\e\\i\\r\\o',
 		'jan' => 'jan',
 		'january' => 'Jan',
 		'jul' => 'jul',
-		'Jul' => '\\J\\u\\l\\h\\o',
 		'july' => 'Jul',
-		'Jun' => '\\J\\u\\n\\h\\o',
 		'jun' => 'jun',
 		'june' => 'Jun',
+		'last_2_year' => 'Last two years',	// TODO - Translation
 		'last_3_month' => 'Últimos três meses',
+		'last_3_year' => 'Last three years',	// TODO - Translation
+		'last_5_year' => 'Last five years',	// TODO - Translation
 		'last_6_month' => 'Últimos seis meses',
 		'last_month' => 'Últimos mês',
 		'last_week' => 'Última semana',
 		'last_year' => 'Último ano',
-		'Mar' => '\\M\\a\\r\\ç\\o',
 		'mar' => 'mar',
 		'march' => 'Mar',
 		'may' => 'Mai',
-		'May' => '\\M\\a\\i\\o',
 		'may_' => 'Mai',
 		'mon' => 'Seg',
 		'month' => 'meses',
-		'Nov' => '\\N\\o\\v\\e\\m\\b\\r\\o',
 		'nov' => 'nov',
 		'november' => 'Nov',
-		'Oct' => '\\O\\u\\t\\u\\b\\r\\o',
 		'oct' => 'out',
 		'october' => 'Out',
 		'sat' => 'Sab',
-		'Sep' => '\\S\\e\\t\\e\\m\\b\\r\\o',
 		'sep' => 'set',
 		'september' => 'Set',
 		'sun' => 'Dom',
@@ -105,8 +108,8 @@ return array(
 	),
 	'dir' => 'ltr',
 	'freshrss' => array(
-		'about' => 'Sobre FreshRSS',
 		'_' => 'FreshRSS',
+		'about' => 'Sobre FreshRSS',
 	),
 	'js' => array(
 		'category_empty' => 'Categoria vazia',
@@ -175,13 +178,13 @@ return array(
 		'years' => 'anos',
 	),
 	'share' => array(
+		'Known' => 'Known based sites',	// TODO - Translation
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
-		'email' => 'Email',
+		'email' => 'Email',	// TODO - Translation
 		'facebook' => 'Facebook',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
-		'Known' => 'Known based sites',
 		'lemmy' => 'Lemmy',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',

+ 2 - 2
app/i18n/pt-br/index.php

@@ -2,6 +2,7 @@
 
 return array(
 	'about' => array(
+		'_' => 'Sobre',
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',
 		'bugs_reports' => 'Reportar Bugs',
 		'credits' => 'Créditos',
@@ -13,7 +14,6 @@ return array(
 		'title' => 'Sobre',
 		'version' => 'Versão',
 		'website' => 'Site',
-		'_' => 'Sobre',
 	),
 	'feed' => array(
 		'add' => 'Você pode adicionar alguns feeds.',
@@ -24,10 +24,10 @@ return array(
 		'title_global' => 'Visualização Global',
 	),
 	'log' => array(
+		'_' => 'Logs',
 		'clear' => 'Limpar logs',
 		'empty' => 'Arquivo de log está vazio',
 		'title' => 'Logs',
-		'_' => 'Logs',
 	),
 	'menu' => array(
 		'about' => 'Sobre o FreshRSS',

+ 5 - 5
app/i18n/pt-br/install.php

@@ -17,19 +17,20 @@ return array(
 		'type' => 'Método de autenticação',
 	),
 	'bdd' => array(
+		'_' => 'Banco de dados',
 		'conf' => array(
+			'_' => 'Configuração do banco de dados',
 			'ko' => 'Verifique as informações do seu banco de dados.',
 			'ok' => 'Configurações do banco de dados foram salvas.',
-			'_' => 'Configuração do banco de dados',
 		),
 		'host' => 'Host',
 		'password' => 'Senha do banco de dados',
 		'prefix' => 'Prefixo da tabela',
 		'type' => 'Tipo do banco de dados',
 		'username' => 'Usuário do banco de dados',
-		'_' => 'Banco de dados',
 	),
 	'check' => array(
+		'_' => 'Verificações',
 		'already_installed' => 'Verificamos que o FreshRSS já está instalado!',
 		'cache' => array(
 			'nok' => 'Verifique as permissões no diretório <em>./data/cache</em>. O servidor HTTP deve ter direitos para escrever dentro desta pasta.',
@@ -95,11 +96,10 @@ return array(
 			'nok' => 'Não foi possível encontrar a biblioteca necessária para parse o XML.',
 			'ok' => 'Você tem a biblioteca necessária para parse o XML.',
 		),
-		'_' => 'Verificações',
 	),
 	'conf' => array(
-		'ok' => 'Configurações gerais foram salvas.',
 		'_' => 'Configurações gerais',
+		'ok' => 'Configurações gerais foram salvas.',
 	),
 	'congratulations' => 'Parabéns!',
 	'default_user' => 'Usuário do usuário padrão <small>(máximo de 16 caracteres alfanuméricos)</small>',
@@ -110,9 +110,9 @@ return array(
 		'confirm_reinstall' => 'Você irá perder suas configurações anteriores ao reinstalar o FreshRSS. Você está certo que deseja continuar?',
 	),
 	'language' => array(
+		'_' => 'Idioma',
 		'choose' => 'Escolha o idioma para o FreshRSS',
 		'defined' => 'O idioma foi definido.',
-		'_' => 'Idioma',
 	),
 	'not_deleted' => 'Algo deu errado; você deve deletar o arquivo <em>%s</em> manualmente.',
 	'ok' => 'O processo de instalação foi um sucesso.',

+ 5 - 5
app/i18n/pt-br/sub.php

@@ -8,9 +8,10 @@ return array(
 	'bookmarklet' => array(
 		'documentation' => 'Arraste este botão para sua barra de favoritos ou clique com o botão direito e escolha "Adicionar este link aos favoritos". Depois clique no no link da barra de favoritos "Inscrever-se" em qualquer página que você queira se inscrever.',
 		'label' => 'Inscrever-se',
-		'title' => 'Bookmarklet',	// TODO? - Translation
+		'title' => 'Bookmarklet',	// TODO - Translation
 	),
 	'category' => array(
+		'_' => 'Categoria',
 		'add' => 'Adicionar uma categoria',
 		'archiving' => 'Arquivar',
 		'empty' => 'Categoria vazia',
@@ -19,7 +20,6 @@ return array(
 		'position' => 'Posição de exibição',
 		'position_help' => 'Para controlar a ordem de exibição',
 		'title' => 'Título',
-		'_' => 'Categoria',
 	),
 	'feed' => array(
 		'add' => 'Adicionar um RSS feed',
@@ -39,8 +39,8 @@ return array(
 		'empty' => 'Este feed está vazio. Por favor verifique ele ainda é mantido.',
 		'error' => 'Este feed encontra-se com problema. Por favor verifique se ele ainda está disponível e atualize-o.',
 		'filteractions' => array(
-			'help' => 'Escreva um filtro de pesquisa por linha.',
 			'_' => 'Ações do filtro',
+			'help' => 'Escreva um filtro de pesquisa por linha.',
 		),
 		'information' => 'Informações',
 		'keep_min' => 'Número mínimo de artigos para manter',
@@ -56,10 +56,10 @@ return array(
 		'no_selected' => 'Nenhum feed selecionado.',
 		'number_entries' => '%d artigos',
 		'priority' => array(
+			'_' => 'Visibilidade',
 			'archived' => 'Não exibir (arquivado)',
 			'main_stream' => 'Mostrar na tela principal',
 			'normal' => 'Mostrar na sua categoria',
-			'_' => 'Visibilidade',
 		),
 		'selector_preview' => array(
 			'show_raw' => 'Mostrar fonte',
@@ -108,8 +108,8 @@ return array(
 		'subscription_tools' => 'Ferramentas de inscrição',
 	),
 	'title' => array(
+		'_' => 'Gerenciamento de inscrições',
 		'feed_management' => 'Gerenciamento dos RSS feeds',
 		'subscription_tools' => 'Ferramentas de inscrição',
-		'_' => 'Gerenciamento de inscrições',
 	),
 );

+ 7 - 7
app/i18n/ru/admin.php

@@ -83,9 +83,9 @@ return array(
 			'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite, pdo_pgsql).',
 		),
 		'php' => array(
+			'_' => 'PHP installation',	// TODO - Translation
 			'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.',
 			'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.',
-			'_' => 'PHP installation',	// TODO - Translation
 		),
 		'tables' => array(
 			'nok' => 'В базе данных отсуствует одна или больше таблица.',
@@ -116,8 +116,8 @@ return array(
 		'name' => 'Name',	// TODO - Translation
 		'no_configure_view' => 'Это расширение нельзя настроить.',
 		'system' => array(
-			'no_rights' => 'Системные расширения (у вас нет к ним доступа)',
 			'_' => 'Системные расширения',
+			'no_rights' => 'Системные расширения (у вас нет к ним доступа)',
 		),
 		'title' => 'Расширения',
 		'update' => 'Update available',	// TODO - Translation
@@ -125,6 +125,7 @@ return array(
 		'version' => 'Version',	// TODO - Translation
 	),
 	'stats' => array(
+		'_' => 'Статистика',
 		'all_feeds' => 'Все подписки',
 		'category' => 'Категория',
 		'entry_count' => 'Количество статей',
@@ -154,9 +155,9 @@ return array(
 		'status_unread' => 'Не прочитано',
 		'title' => 'Статистика',
 		'top_feed' => '10 лучших подписок',
-		'_' => 'Статистика',
 	),
 	'system' => array(
+		'_' => 'Системные настройки',
 		'auto-update-url' => 'Адрес сервера для автоматического обновления',
 		'cookie-duration' => array(
 			'help' => 'in seconds',	// TODO - Translation
@@ -170,21 +171,20 @@ return array(
 			'help' => '0 означает неограниченное количество пользователей',
 			'number' => 'Максимальное количество пользователей',
 		),
-		'_' => 'Системные настройки',
 	),
 	'update' => array(
+		'_' => 'Обновление системы',
 		'apply' => 'Применить',
 		'check' => 'Проверить обновления',
 		'current_version' => 'Ваша текущая версия FreshRSS: %s.',
 		'last' => 'Последняя проверка: %s',
 		'none' => 'Нечего обновлять',
 		'title' => 'Обновить систему',
-		'_' => 'Обновление системы',
 	),
 	'user' => array(
 		'admin' => 'Administrator',	// TODO - Translation
-		'articles_and_size' => '%s статей (%s)',
 		'article_count' => 'Articles',	// TODO - Translation
+		'articles_and_size' => '%s статей (%s)',
 		'back_to_manage' => '← Return to user list',	// TODO - Translation
 		'create' => 'Создать нового пользователя',
 		'database_size' => 'Database size',	// TODO - Translation
@@ -202,8 +202,8 @@ return array(
 		'selected' => 'Selected user',	// TODO - Translation
 		'title' => 'Управление пользователями',
 		'update_users' => 'Update user',	// TODO - Translation
+		'user_list' => 'Список пользователей',
 		'username' => 'Имя пользователя',
 		'users' => 'Пользователи',
-		'user_list' => 'Список пользователей',
 	),
 );

+ 13 - 13
app/i18n/ru/conf.php

@@ -2,6 +2,7 @@
 
 return array(
 	'archiving' => array(
+		'_' => 'Архивация',
 		'delete_after' => 'Удалять статьи после',
 		'exception' => 'Purge exception',	// TODO - Translation
 		'help' => 'Каждую подписку можно настроить более гибко',
@@ -19,9 +20,9 @@ return array(
 		'purge_now' => 'Очистить сейчас',
 		'title' => 'Архивация',
 		'ttl' => 'Не обновлять чаще чем',
-		'_' => 'Архивация',
 	),
 	'display' => array(
+		'_' => 'Display',	// TODO - Translation
 		'icon' => array(
 			'bottom_line' => 'Bottom line',	// TODO - Translation
 			'display_authors' => 'Authors',	// TODO - Translation
@@ -46,22 +47,22 @@ return array(
 			'no_limit' => 'No limit',	// TODO - Translation
 			'thin' => 'Thin',	// TODO - Translation
 		),
-		'_' => 'Display',	// TODO - Translation
 	),
 	'profile' => array(
+		'_' => 'Profile management',	// TODO - Translation
 		'api' => 'API management',	// TODO - Translation
 		'delete' => array(
-			'warn' => 'Your account and all the related data will be deleted.',
 			'_' => 'Account deletion',	// TODO - Translation
+			'warn' => 'Your account and all the related data will be deleted.',
 		),
 		'email' => 'Email address',	// TODO - Translation
 		'password_api' => 'Password API<br /><small>(e.g., for mobile apps)</small>',
 		'password_form' => 'Password<br /><small>(for the Web-form login method)</small>',	// TODO - Translation
 		'password_format' => 'At least 7 characters',	// TODO - Translation
 		'title' => 'Profile',	// TODO - Translation
-		'_' => 'Profile management',	// TODO - Translation
 	),
 	'query' => array(
+		'_' => 'User queries',	// TODO - Translation
 		'deprecated' => 'This query is no longer valid. The referenced category or feed has been deleted.',	// TODO - Translation
 		'display' => 'Display user query results',	// TODO - Translation
 		'filter' => 'Filter applied:',	// TODO - Translation
@@ -69,8 +70,8 @@ return array(
 		'get_category' => 'Display "%s" category',	// TODO - Translation
 		'get_favorite' => 'Display favorite articles',
 		'get_feed' => 'Display "%s" feed',	// TODO - Translation
-		'none' => 'You haven’t created any user query yet.',
 		'no_filter' => 'No filter',	// TODO - Translation
+		'none' => 'You haven’t created any user query yet.',
 		'number' => 'Query n°%d',	// TODO - Translation
 		'order_asc' => 'Display oldest articles first',	// TODO - Translation
 		'order_desc' => 'Display newest articles first',	// TODO - Translation
@@ -93,9 +94,9 @@ return array(
 		'state_14' => 'Display unread articles',	// TODO - Translation
 		'state_15' => 'Display all articles',	// TODO - Translation
 		'title' => 'User queries',	// TODO - Translation
-		'_' => 'User queries',	// TODO - Translation
 	),
 	'reading' => array(
+		'_' => 'Reading',	// TODO - Translation
 		'after_onread' => 'After “mark all as read”,',	// TODO - Translation
 		'always_show_favorites' => 'Show all articles in favorites by default',	// TODO - Translation
 		'articles_per_page' => 'Number of articles per page',	// TODO - Translation
@@ -117,19 +118,19 @@ return array(
 			'when' => 'Mark article as read…',	// TODO - Translation
 		),
 		'show' => array(
+			'_' => 'Articles to display',	// TODO - Translation
+			'active_category' => 'Active category',	// TODO - Translation
 			'adaptive' => 'Adjust showing',	// TODO - Translation
 			'all_articles' => 'Show all articles',	// TODO - Translation
-			'unread' => 'Show only unread',	// TODO - Translation
-			'active_category' => 'Active category',	// TODO - Translation
 			'all_categories' => 'All categories',	// TODO - Translation
 			'no_category' => 'No category',	// TODO - Translation
-			'_' => 'Articles to display',	// TODO - Translation
+			'unread' => 'Show only unread',	// TODO - Translation
 		),
 		'sides_close_article' => 'Clicking outside of article text area closes the article',	// TODO - Translation
 		'sort' => array(
+			'_' => 'Sort order',	// TODO - Translation
 			'newer_first' => 'Newer first',
 			'older_first' => 'Oldest first',	// TODO - Translation
-			'_' => 'Sort order',	// TODO - Translation
 		),
 		'sticky_post' => 'Stick the article to the top when opened',	// TODO - Translation
 		'title' => 'Reading',	// TODO - Translation
@@ -139,9 +140,9 @@ return array(
 			'normal' => 'Normal view',	// TODO - Translation
 			'reader' => 'Reading view',	// TODO - Translation
 		),
-		'_' => 'Reading',	// TODO - Translation
 	),
 	'sharing' => array(
+		'_' => 'Sharing',	// TODO - Translation
 		'add' => 'Add a sharing method',	// TODO - Translation
 		'blogotext' => 'Blogotext',	// TODO - Translation
 		'diaspora' => 'Diaspora*',	// TODO - Translation
@@ -156,9 +157,9 @@ return array(
 		'title' => 'Sharing',	// TODO - Translation
 		'twitter' => 'Twitter',	// TODO - Translation
 		'wallabag' => 'wallabag',	// TODO - Translation
-		'_' => 'Sharing',	// TODO - Translation
 	),
 	'shortcut' => array(
+		'_' => 'Shortcuts',	// TODO - Translation
 		'article_action' => 'Article actions',	// TODO - Translation
 		'auto_share' => 'Share',	// TODO - Translation
 		'auto_share_help' => 'If there is only one sharing mode, it is used. Else modes are accessible by their number.',
@@ -190,7 +191,6 @@ return array(
 		'user_filter' => 'Access user filters',
 		'user_filter_help' => 'If there is only one user filter, it is used. Else filters are accessible by their number.',
 		'views' => 'Views',	// TODO - Translation
-		'_' => 'Shortcuts',	// TODO - Translation
 	),
 	'user' => array(
 		'articles_and_size' => '%s articles (%s)',	// TODO - Translation

+ 11 - 11
app/i18n/ru/feedback.php

@@ -44,9 +44,9 @@ return array(
 			'ko' => '%s cannot be enabled. <a href="%s">Check FreshRSS logs</a> for details.',	// TODO - Translation
 			'ok' => '%s is now enabled',	// TODO - Translation
 		),
+		'no_access' => 'You have no access on %s',	// TODO - Translation
 		'not_enabled' => '%s is not enabled yet',
 		'not_found' => '%s does not exist',	// TODO - Translation
-		'no_access' => 'You have no access on %s',	// TODO - Translation
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'ZIP extension is not present on your server. Please try to export files one by one.',	// TODO - Translation
@@ -72,10 +72,10 @@ return array(
 			'emptied' => 'Category has been emptied',	// TODO - Translation
 			'error' => 'Category cannot be updated',	// TODO - Translation
 			'name_exists' => 'Category name already exists.',	// TODO - Translation
-			'not_delete_default' => 'You cannot delete the default category!',	// TODO - Translation
-			'not_exist' => 'The category does not exist!',	// TODO - Translation
 			'no_id' => 'You must precise the id of the category.',
 			'no_name' => 'Category name cannot be empty.',	// TODO - Translation
+			'not_delete_default' => 'You cannot delete the default category!',	// TODO - Translation
+			'not_exist' => 'The category does not exist!',	// TODO - Translation
 			'over_max' => 'You have reached your limit of categories (%d)',	// TODO - Translation
 			'updated' => 'Category has been updated.',	// TODO - Translation
 		),
@@ -89,17 +89,17 @@ return array(
 			'error' => 'Feed cannot be updated',	// TODO - Translation
 			'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.',	// TODO - Translation
 			'invalid_url' => 'URL <em>%s</em> is invalid',	// TODO - Translation
-			'not_added' => '<em>%s</em> could not be added',	// TODO - Translation
-			'not_found' => 'Feed cannot be found',	// TODO - Translation
-			'no_refresh' => 'There is no feed to refresh…',	// TODO - Translation
 			'n_actualized' => '%d feeds have been updated',	// TODO - Translation
 			'n_entries_deleted' => '%d articles have been deleted',	// TODO - Translation
+			'no_refresh' => 'There is no feed to refresh…',	// TODO - Translation
+			'not_added' => '<em>%s</em> could not be added',	// TODO - Translation
+			'not_found' => 'Feed cannot be found',	// TODO - Translation
 			'over_max' => 'You have reached your limit of feeds (%d)',	// TODO - Translation
 			'reloaded' => '<em>%s</em> has been reloaded',	// TODO - Translation
 			'selector_preview' => array(
 				'http_error' => 'Failed to load website content.',	// TODO - Translation
-				'no_entries' => 'There is no entries in your feed. You need at least one entry to create a preview.',	// TODO - Translation
-				'no_feed' => 'Internal error (no feed to entry).',	// TODO - Translation
+				'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.',	// TODO - Translation
+				'no_feed' => 'Internal error (feed can’t be found).',	// TODO - Translation
 				'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.',	// TODO - Translation
 				'selector_empty' => 'The selector is empty. You need to define one to create a preview.',	// TODO - Translation
 			),
@@ -117,16 +117,16 @@ return array(
 	),
 	'user' => array(
 		'created' => array(
-			'error' => 'User %s cannot be created',	// TODO - Translation
 			'_' => 'User %s has been created',	// TODO - Translation
+			'error' => 'User %s cannot be created',	// TODO - Translation
 		),
 		'deleted' => array(
-			'error' => 'User %s cannot be deleted',	// TODO - Translation
 			'_' => 'User %s has been deleted',	// TODO - Translation
+			'error' => 'User %s cannot be deleted',	// TODO - Translation
 		),
 		'updated' => array(
-			'error' => 'User %s has not been updated',	// TODO - Translation
 			'_' => 'User %s has been updated',	// TODO - Translation
+			'error' => 'User %s has not been updated',	// TODO - Translation
 		),
 	),
 );

+ 17 - 17
app/i18n/ru/gen.php

@@ -32,45 +32,50 @@ return array(
 		'login' => 'Login',	// TODO - Translation
 		'logout' => 'Logout',	// TODO - Translation
 		'password' => array(
-			'format' => '<small>At least 7 characters</small>',	// TODO - Translation
 			'_' => 'Password',	// TODO - Translation
+			'format' => '<small>At least 7 characters</small>',	// TODO - Translation
 		),
 		'registration' => array(
+			'_' => 'New account',	// TODO - Translation
 			'ask' => 'Create an account?',	// TODO - Translation
 			'title' => 'Account creation',	// TODO - Translation
-			'_' => 'New account',	// TODO - Translation
 		),
 		'reset' => 'Authentication reset',	// TODO - Translation
 		'username' => array(
+			'_' => 'Username',	// TODO - Translation
 			'admin' => 'Administrator username',	// TODO - Translation
 			'format' => '<small>Maximum 16 alphanumeric characters</small>',	// TODO - Translation
-			'_' => 'Username',	// TODO - Translation
 		),
 	),
 	'date' => array(
-		'apr' => 'apr',
 		'Apr' => '\\A\\p\\r\\i\\l',	// TODO - Translation
-		'april' => 'Apr',
 		'Aug' => '\\A\\u\\g\\u\\s\\t',	// TODO - Translation
+		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',	// TODO - Translation
+		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y',	// TODO - Translation
+		'Jan' => '\\J\\a\\n\\u\\a\\r\\y',	// TODO - Translation
+		'Jul' => '\\J\\u\\l\\y',	// TODO - Translation
+		'Jun' => '\\J\\u\\n\\e',	// TODO - Translation
+		'Mar' => '\\M\\a\\r\\c\\h',	// TODO - Translation
+		'May' => '\\M\\a\\y',	// TODO - Translation
+		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',	// TODO - Translation
+		'Oct' => '\\O\\c\\t\\o\\b\\e\\r',	// TODO - Translation
+		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',	// TODO - Translation
+		'apr' => 'apr',
+		'april' => 'Apr',
 		'aug' => 'aug',
 		'august' => 'Aug',
 		'before_yesterday' => 'Before yesterday',	// TODO - Translation
-		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',	// TODO - Translation
 		'dec' => 'dec',
 		'december' => 'Dec',
-		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y',	// TODO - Translation
 		'feb' => 'feb',
 		'february' => 'Feb',
 		'format_date' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y',	// TODO - Translation
 		'format_date_hour' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y \\a\\t H\\:i',	// TODO - Translation
 		'fri' => 'Fri',	// TODO - Translation
-		'Jan' => '\\J\\a\\n\\u\\a\\r\\y',	// TODO - Translation
 		'jan' => 'jan',
 		'january' => 'Jan',
 		'jul' => 'jul',
-		'Jul' => '\\J\\u\\l\\y',	// TODO - Translation
 		'july' => 'Jul',
-		'Jun' => '\\J\\u\\n\\e',	// TODO - Translation
 		'jun' => 'jun',
 		'june' => 'Jun',
 		'last_2_year' => 'Last two years',	// TODO - Translation
@@ -81,22 +86,17 @@ return array(
 		'last_month' => 'Last month',	// TODO - Translation
 		'last_week' => 'Last week',	// TODO - Translation
 		'last_year' => 'Last year',	// TODO - Translation
-		'Mar' => '\\M\\a\\r\\c\\h',	// TODO - Translation
 		'mar' => 'mar',
 		'march' => 'Mar',
 		'may' => 'May',	// TODO - Translation
-		'May' => '\\M\\a\\y',	// TODO - Translation
 		'may_' => 'May',	// TODO - Translation
 		'mon' => 'Mon',	// TODO - Translation
 		'month' => 'months',	// TODO - Translation
-		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',	// TODO - Translation
 		'nov' => 'nov',
 		'november' => 'Nov',
-		'Oct' => '\\O\\c\\t\\o\\b\\e\\r',	// TODO - Translation
 		'oct' => 'oct',
 		'october' => 'Oct',
 		'sat' => 'Sat',	// TODO - Translation
-		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',	// TODO - Translation
 		'sep' => 'sep',
 		'september' => 'Sep',
 		'sun' => 'Sun',	// TODO - Translation
@@ -108,8 +108,8 @@ return array(
 	),
 	'dir' => 'ltr',
 	'freshrss' => array(
-		'about' => 'About FreshRSS',	// TODO - Translation
 		'_' => 'FreshRSS',	// TODO - Translation
+		'about' => 'About FreshRSS',	// TODO - Translation
 	),
 	'js' => array(
 		'category_empty' => 'Empty category',	// TODO - Translation
@@ -178,13 +178,13 @@ return array(
 		'years' => 'years',	// TODO - Translation
 	),
 	'share' => array(
+		'Known' => 'Known based sites',	// TODO - Translation
 		'blogotext' => 'Blogotext',	// TODO - Translation
 		'diaspora' => 'Diaspora*',	// TODO - Translation
 		'email' => 'Email',	// TODO - Translation
 		'facebook' => 'Facebook',	// TODO - Translation
 		'gnusocial' => 'GNU social',	// TODO - Translation
 		'jdh' => 'Journal du hacker',	// TODO - Translation
-		'Known' => 'Known based sites',	// TODO - Translation
 		'lemmy' => 'Lemmy',	// TODO - Translation
 		'linkedin' => 'LinkedIn',	// TODO - Translation
 		'mastodon' => 'Mastodon',	// TODO - Translation

+ 2 - 2
app/i18n/ru/index.php

@@ -2,6 +2,7 @@
 
 return array(
 	'about' => array(
+		'_' => 'About',	// TODO - Translation
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',	// TODO - Translation
 		'bugs_reports' => 'Bugs reports',	// TODO - Translation
 		'credits' => 'Credits',	// TODO - Translation
@@ -13,7 +14,6 @@ return array(
 		'title' => 'About',	// TODO - Translation
 		'version' => 'Version',	// TODO - Translation
 		'website' => 'Website',	// TODO - Translation
-		'_' => 'About',	// TODO - Translation
 	),
 	'feed' => array(
 		'add' => 'You may add some feeds.',	// TODO - Translation
@@ -24,10 +24,10 @@ return array(
 		'title_global' => 'Global view',	// TODO - Translation
 	),
 	'log' => array(
+		'_' => 'Logs',	// TODO - Translation
 		'clear' => 'Clear the logs',	// TODO - Translation
 		'empty' => 'Log file is empty',	// TODO - Translation
 		'title' => 'Logs',	// TODO - Translation
-		'_' => 'Logs',	// TODO - Translation
 	),
 	'menu' => array(
 		'about' => 'About FreshRSS',	// TODO - Translation

+ 5 - 5
app/i18n/ru/install.php

@@ -17,19 +17,20 @@ return array(
 		'type' => 'Метод аутентификации',
 	),
 	'bdd' => array(
+		'_' => 'База данных',
 		'conf' => array(
+			'_' => 'Конфигурация базы данныхDatabase configuration',
 			'ko' => 'Проверьте конфигурацию базы данных.',
 			'ok' => 'Конфигурация базы данных сохранена.',
-			'_' => 'Конфигурация базы данныхDatabase configuration',
 		),
 		'host' => 'Хост',
 		'password' => 'Пароль базы данных',
 		'prefix' => 'Префикс таблицы',
 		'type' => 'Тип базы данных',
 		'username' => 'Имя пользователя базы данных',
-		'_' => 'База данных',
 	),
 	'check' => array(
+		'_' => 'Проверки',
 		'already_installed' => 'Обнаружена предыдущая установка FreshRSS!',
 		'cache' => array(
 			'nok' => 'Проверьте права доступа к папке <em>./data/cache</em> . Сервер HTTP должен иметь права на запись в эту папку.',
@@ -95,11 +96,10 @@ return array(
 			'nok' => 'Cannot find the required library to parse XML.',	// TODO - Translation
 			'ok' => 'You have the required library to parse XML.',	// TODO - Translation
 		),
-		'_' => 'Проверки',
 	),
 	'conf' => array(
-		'ok' => 'Общие настройки были сохранены.',
 		'_' => 'Общие настройки',
+		'ok' => 'Общие настройки были сохранены.',
 	),
 	'congratulations' => 'Поздравляем!',
 	'default_user' => 'Имя пользователя по умолчанию <small>(максимум 16 латинских букв и/или цифр)</small>',
@@ -110,9 +110,9 @@ return array(
 		'confirm_reinstall' => 'Переустанавливая FreshRSS, вы потеряете предыдущую конфигурацию. Вы хотите продолжить?',
 	),
 	'language' => array(
+		'_' => 'Язык',
 		'choose' => 'Выберите язык для FreshRSS',
 		'defined' => 'Язык выбран.',
-		'_' => 'Язык',
 	),
 	'not_deleted' => 'Что-то пошло не так; удалите файл <em>%s</em> вручную.',
 	'ok' => 'Установка успешна.',

+ 7 - 7
app/i18n/ru/sub.php

@@ -11,6 +11,7 @@ return array(
 		'title' => 'Bookmarklet',	// TODO - Translation
 	),
 	'category' => array(
+		'_' => 'Category',	// TODO - Translation
 		'add' => 'Add a category',	// TODO - Translation
 		'archiving' => 'Archivage',
 		'empty' => 'Empty category',	// TODO - Translation
@@ -19,7 +20,6 @@ return array(
 		'position' => 'Display position',	// TODO - Translation
 		'position_help' => 'To control category sort order',	// TODO - Translation
 		'title' => 'Title',	// TODO - Translation
-		'_' => 'Category',	// TODO - Translation
 	),
 	'feed' => array(
 		'add' => 'Add a RSS feed',	// TODO - Translation
@@ -39,16 +39,16 @@ return array(
 		'empty' => 'This feed is empty. Please verify that it is still maintained.',	// TODO - Translation
 		'error' => 'This feed has encountered a problem. Please verify that it is always reachable then actualize it.',
 		'filteractions' => array(
-			'help' => 'Write one search filter per line.',	// TODO - Translation
 			'_' => 'Filter actions',	// TODO - Translation
+			'help' => 'Write one search filter per line.',	// TODO - Translation
 		),
 		'information' => 'Information',	// TODO - Translation
 		'keep_min' => 'Minimum number of articles to keep',	// TODO - Translation
 		'maintenance' => array(
 			'clear_cache' => 'Clear cache',	// TODO - Translation
-			'clear_cache_help' => 'Clear the cache of this feed on disk',	// TODO - Translation
+			'clear_cache_help' => 'Clear the cache for this feed.',	// TODO - Translation
 			'reload_articles' => 'Reload articles',	// TODO - Translation
-			'reload_articles_help' => 'Reload articles and fetch complete content',	// TODO - Translation
+			'reload_articles_help' => 'Reload articles and fetch complete content if a selector is defined.',	// TODO - Translation
 			'title' => 'Maintenance',	// TODO - Translation
 		),
 		'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under <em>%s</em>.',	// TODO - Translation
@@ -56,13 +56,13 @@ return array(
 		'no_selected' => 'No feed selected.',	// TODO - Translation
 		'number_entries' => '%d articles',	// TODO - Translation
 		'priority' => array(
+			'_' => 'Visibility',	// TODO - Translation
 			'archived' => 'Do not show (archived)',	// TODO - Translation
 			'main_stream' => 'Show in main stream',	// TODO - Translation
 			'normal' => 'Show in its category',	// TODO - Translation
-			'_' => 'Visibility',	// TODO - Translation
 		),
 		'selector_preview' => array(
-			'show_raw' => 'Show source',	// TODO - Translation
+			'show_raw' => 'Show source code',	// TODO - Translation
 			'show_rendered' => 'Show content',	// TODO - Translation
 		),
 		'show' => array(
@@ -108,8 +108,8 @@ return array(
 		'subscription_tools' => 'Subscription tools',	// TODO - Translation
 	),
 	'title' => array(
+		'_' => 'Subscriptions management',	// TODO - Translation
 		'feed_management' => 'RSS feeds management',	// TODO - Translation
 		'subscription_tools' => 'Subscription tools',	// TODO - Translation
-		'_' => 'Subscriptions management',	// TODO - Translation
 	),
 );

+ 7 - 7
app/i18n/sk/admin.php

@@ -83,9 +83,9 @@ return array(
 			'ok' => 'Našiel sa PDO a aspoň jeden z podporovaných ovládačov (pdo_mysql, pdo_sqlite, pdo_pgsql).',
 		),
 		'php' => array(
+			'_' => 'Inštalácia PHP',
 			'nok' => 'Vaša verzia PHP je %s, ale FreshRSS vyžaduje minimálne verziu %s.',
 			'ok' => 'Vaša verzia PHP %s je kompatibilná s FreshRSS.',
-			'_' => 'Inštalácia PHP',
 		),
 		'tables' => array(
 			'nok' => 'V databáze chýba jedna alebo viacero tabuliek.',
@@ -116,8 +116,8 @@ return array(
 		'name' => 'Názov',
 		'no_configure_view' => 'Toto rozšírenie nemá nastavenia.',
 		'system' => array(
-			'no_rights' => 'Systémové rozšírenie (nemáte oprávnenia)',
 			'_' => 'Systémové rozšírenia',
+			'no_rights' => 'Systémové rozšírenie (nemáte oprávnenia)',
 		),
 		'title' => 'Rozšírenia',
 		'update' => 'Sú dostupné aktualizácie',
@@ -125,6 +125,7 @@ return array(
 		'version' => 'Verzia',
 	),
 	'stats' => array(
+		'_' => 'Štatistiky',
 		'all_feeds' => 'Všetky kanály',
 		'category' => 'Kategória',
 		'entry_count' => 'Počet položiek',
@@ -154,9 +155,9 @@ return array(
 		'status_unread' => 'Neprečítané',
 		'title' => 'Štatistiky',
 		'top_feed' => 'Top 10 kanálov',
-		'_' => 'Štatistiky',
 	),
 	'system' => array(
+		'_' => 'Nastavenia systému',
 		'auto-update-url' => 'Odkaz na aktualizačný server',
 		'cookie-duration' => array(
 			'help' => 'v sekundách',
@@ -170,21 +171,20 @@ return array(
 			'help' => '0 znamená žiadny limit počtu účtov',
 			'number' => 'Maximálny počt účtov',
 		),
-		'_' => 'Nastavenia systému',
 	),
 	'update' => array(
+		'_' => 'Aktualizácia systému',
 		'apply' => 'Použiť',
 		'check' => 'Skontrolovať aktualizácie',
 		'current_version' => 'Vaša aktuálna verzia FreshRSS: %s',
 		'last' => 'Posledná kontrola: %s',
 		'none' => 'Žiadna nová aktualizácia',
 		'title' => 'Aktualizácia systému',
-		'_' => 'Aktualizácia systému',
 	),
 	'user' => array(
 		'admin' => 'Administrator',	// TODO - Translation
-		'articles_and_size' => '%s článkov (%s)',
 		'article_count' => 'Articles',	// TODO - Translation
+		'articles_and_size' => '%s článkov (%s)',
 		'back_to_manage' => '← Return to user list',	// TODO - Translation
 		'create' => 'Vytvoriť nového používateľa',
 		'database_size' => 'Database size',	// TODO - Translation
@@ -202,8 +202,8 @@ return array(
 		'selected' => 'Označený používateľ',
 		'title' => 'Správa používateľov',
 		'update_users' => 'Sktualizovať používateľov',
+		'user_list' => 'Zoznam používateľov',
 		'username' => 'Používateľské meno',
 		'users' => 'Používatelia',
-		'user_list' => 'Zoznam používateľov',
 	),
 );

+ 14 - 14
app/i18n/sk/conf.php

@@ -2,6 +2,7 @@
 
 return array(
 	'archiving' => array(
+		'_' => 'Archivovanie',
 		'delete_after' => 'Vymazať články po',
 		'exception' => 'Purge exception',	// TODO - Translation
 		'help' => 'Viac možností nájdete v nastaveniach kanála',
@@ -19,9 +20,9 @@ return array(
 		'purge_now' => 'Vyčistiť teraz',
 		'title' => 'Archivovanie',
 		'ttl' => 'Neaktualizovať častejšie ako',
-		'_' => 'Archivovanie',
 	),
 	'display' => array(
+		'_' => 'Zobrazenie',
 		'icon' => array(
 			'bottom_line' => 'Spodný riadok',
 			'display_authors' => 'Autori',
@@ -46,22 +47,22 @@ return array(
 			'no_limit' => 'Bez obmedzenia',
 			'thin' => 'Úzka',
 		),
-		'_' => 'Zobrazenie',
 	),
 	'profile' => array(
+		'_' => 'Správca profilu',
 		'api' => 'API management',	// TODO - Translation
 		'delete' => array(
-			'warn' => 'Váš účet a všetky údaje v ňom budú vymazané.',
 			'_' => 'Vymazanie účtu',
+			'warn' => 'Váš účet a všetky údaje v ňom budú vymazané.',
 		),
 		'email' => 'Email address',	// TODO - Translation
 		'password_api' => 'Heslo API<br /><small>(pre mobilné aplikácie)</small>',
 		'password_form' => 'Heslo<br /><small>(pre spôsob prihlásenia cez webový formulár)</small>',
 		'password_format' => 'Najmenej 7 znakov',
 		'title' => 'Profil',
-		'_' => 'Správca profilu',
 	),
 	'query' => array(
+		'_' => 'Dopyty používateľa',
 		'deprecated' => 'Tento dopyt už nie je platný. Kategória alebo kanál boli vymazané.',
 		'display' => 'Zobraziť výsledky dopytu používateľa',
 		'filter' => 'Použitý filter:',
@@ -69,8 +70,8 @@ return array(
 		'get_category' => 'Zobraziť kategóriu "%s"',
 		'get_favorite' => 'Zobraziť obľúbené články',
 		'get_feed' => 'Zobraziť kanál "%s"',
-		'none' => 'Zatiaľ ste nevytvorili používateľský dopyt.',
 		'no_filter' => 'Žiadny filter',
+		'none' => 'Zatiaľ ste nevytvorili používateľský dopyt.',
 		'number' => 'Dopyt číslo %d',
 		'order_asc' => 'Zobraziť staršie články hore',
 		'order_desc' => 'Zobraziť novšie články hore',
@@ -93,9 +94,9 @@ return array(
 		'state_14' => 'Zobraziť neprečítané články',
 		'state_15' => 'Zobraziť všetky články',
 		'title' => 'Používateľské dopyty',
-		'_' => 'Dopyty používateľa',
 	),
 	'reading' => array(
+		'_' => 'Čítanie',
 		'after_onread' => 'Po “Označiť všetko ako prečítané”,',
 		'always_show_favorites' => 'Show all articles in favorites by default',	// TODO - Translation
 		'articles_per_page' => 'Počet článkov na jednu stranu',
@@ -117,19 +118,19 @@ return array(
 			'when' => 'Označiť článok ako prečítaný…',
 		),
 		'show' => array(
+			'_' => 'Článkov na zobrazenie',
+			'active_category' => 'Active category',	// TODO - Translation
 			'adaptive' => 'Vyberte zobrazenie',
 			'all_articles' => 'Zobraziť všetky články',
-			'unread' => 'Zobraziť iba neprečítané',
-			'active_category' => 'Active category',	// TODO - Translation
 			'all_categories' => 'All categories',	// TODO - Translation
 			'no_category' => 'No category',	// TODO - Translation
-			'_' => 'Článkov na zobrazenie',
+			'unread' => 'Zobraziť iba neprečítané',
 		),
 		'sides_close_article' => 'Po kliknutí mimo textu článku sa článok zatvorí',
 		'sort' => array(
+			'_' => 'Poradie',
 			'newer_first' => 'Novšie hore',
 			'older_first' => 'Staršie hore',
-			'_' => 'Poradie',
 		),
 		'sticky_post' => 'Po otvorení posunúť článok hore',
 		'title' => 'Čítanie',
@@ -139,9 +140,9 @@ return array(
 			'normal' => 'Základné zobrazenie',
 			'reader' => 'Zobrazenie na čítanie',
 		),
-		'_' => 'Čítanie',
 	),
 	'sharing' => array(
+		'_' => 'Zdieľanie',
 		'add' => 'Pridať spôsob zdieľania',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
@@ -156,9 +157,9 @@ return array(
 		'title' => 'Zdieľanie',
 		'twitter' => 'Twitter',
 		'wallabag' => 'wallabag',
-		'_' => 'Zdieľanie',
 	),
 	'shortcut' => array(
+		'_' => 'Skratky',
 		'article_action' => 'Akcie článku',
 		'auto_share' => 'Zdieľať',
 		'auto_share_help' => 'Ak je nastavený iba jeden spôsob zdieľania, použije sa. Inak si spôsoby zdieľania vyberá používateľ podľa čísla.',
@@ -183,14 +184,13 @@ return array(
 		'reading_view' => 'Prepne do zobrazenia na čítanie',
 		'rss_view' => 'Otvorí zobrazenie RSS v novej záložke',
 		'see_on_website' => 'Zobrazí na webovej stránke',
-		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> na označenie všetkých článkov ako prečítaných',	// TODO - Translation
+		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> to mark all articles as read',	// TODO - Translation
 		'skip_next_article' => 'Prejde na ďalší bez otvorenia',
 		'skip_previous_article' => 'Prejde na predošlý bez otvorenia',
 		'title' => 'Skratky',
 		'user_filter' => 'Použiť používateľské filtre',
 		'user_filter_help' => 'Ak je nastavený iba jeden spôsob zdieľania, použije sa. Inak si spôsoby zdieľania vyberá používateľ podľa čísla.',
 		'views' => 'Zobrazenia',
-		'_' => 'Skratky',
 	),
 	'user' => array(
 		'articles_and_size' => '%s článkov (%s)',

+ 11 - 11
app/i18n/sk/feedback.php

@@ -44,9 +44,9 @@ return array(
 			'ko' => '%s sa nepodarilo povoliť. <a href="%s">Prečítajte si záznamy FreshRSS</a>, ak chcete poznať podrobnosti.',
 			'ok' => '%s je teraz povolený',
 		),
+		'no_access' => 'Nemáte prístup k %s',
 		'not_enabled' => '%s nie je povolený',
 		'not_found' => '%s neexistuje',
-		'no_access' => 'Nemáte prístup k %s',
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'ZIP rozšírenie sa na vašom serveri nenachádza. Prosím, skúste exportovať súbory pojednom.',
@@ -72,10 +72,10 @@ return array(
 			'emptied' => 'Kategória bola vyprázdnená',
 			'error' => 'Nepodarilo sa aktualizovať kategóriu',
 			'name_exists' => 'Názov kategórie už existuje.',
-			'not_delete_default' => 'Nemôžete odstrániť prednastavenú kategóriu!',
-			'not_exist' => 'Kategória neexistuje!',
 			'no_id' => 'Musíte zadať ID kategórie.',
 			'no_name' => 'Názov kategórie nemôže byť prázdny.',
+			'not_delete_default' => 'Nemôžete odstrániť prednastavenú kategóriu!',
+			'not_exist' => 'Kategória neexistuje!',
 			'over_max' => 'Dosiahli ste limit počtu kategórií (%d)',
 			'updated' => 'Kategória bola aktualizovaná.',
 		),
@@ -89,17 +89,17 @@ return array(
 			'error' => 'Kanál sa nepodarilo aktualizovať',
 			'internal_problem' => 'Kanál sa nepodarilo pridať. <a href="%s">Prečítajte si záznamy FreshRSS</a>, ak chcete poznať podrobnosti. Skúste pridať kanál pomocou <code>#force_feed</code> v odkaze (URL).',
 			'invalid_url' => 'Odkaz <em>%s</em> je neplatný',
-			'not_added' => 'Kanál <em>%s</em> sa nepodarilo pridať',
-			'not_found' => 'Feed cannot be found',	// TODO - Translation
-			'no_refresh' => 'Žiadny kanál sa neaktualizoval…',
 			'n_actualized' => 'Počet aktualizovaných kanálov: %d',
 			'n_entries_deleted' => 'Počet vymazaných článkov: %d',
+			'no_refresh' => 'Žiadny kanál sa neaktualizoval…',
+			'not_added' => 'Kanál <em>%s</em> sa nepodarilo pridať',
+			'not_found' => 'Feed cannot be found',	// TODO - Translation
 			'over_max' => 'Dosiahli ste limit počtu kanálov (%d)',
 			'reloaded' => '<em>%s</em> has been reloaded',	// TODO - Translation
 			'selector_preview' => array(
 				'http_error' => 'Failed to load website content.',	// TODO - Translation
-				'no_entries' => 'There is no entries in your feed. You need at least one entry to create a preview.',	// TODO - Translation
-				'no_feed' => 'Internal error (no feed to entry).',	// TODO - Translation
+				'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.',	// TODO - Translation
+				'no_feed' => 'Internal error (feed can’t be found).',	// TODO - Translation
 				'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.',	// TODO - Translation
 				'selector_empty' => 'The selector is empty. You need to define one to create a preview.',	// TODO - Translation
 			),
@@ -117,16 +117,16 @@ return array(
 	),
 	'user' => array(
 		'created' => array(
-			'error' => 'Používateľ %s nebol vytvorený',
 			'_' => 'Používateľ %s bol vytvorený',
+			'error' => 'Používateľ %s nebol vytvorený',
 		),
 		'deleted' => array(
-			'error' => 'Používateľ %s nebol vymazaný',
 			'_' => 'Používateľ %s bol vymazaný',
+			'error' => 'Používateľ %s nebol vymazaný',
 		),
 		'updated' => array(
-			'error' => 'Používateľ %s nebol aktualizovaný',
 			'_' => 'Používateľ %s bol aktualizovaný',
+			'error' => 'Používateľ %s nebol aktualizovaný',
 		),
 	),
 );

+ 17 - 17
app/i18n/sk/gen.php

@@ -32,45 +32,50 @@ return array(
 		'login' => 'Prihlásiť',
 		'logout' => 'Odhlásiť',
 		'password' => array(
-			'format' => '<small>Najmenej 7 znakov</small>',
 			'_' => 'Heslo',
+			'format' => '<small>Najmenej 7 znakov</small>',
 		),
 		'registration' => array(
+			'_' => 'Nový účet',
 			'ask' => 'Vytvoriť účet?',
 			'title' => 'Vytvorenie účtu',
-			'_' => 'Nový účet',
 		),
 		'reset' => 'Reset prihlásenia',
 		'username' => array(
+			'_' => 'Používateľské meno',
 			'admin' => 'Administrátorské používateľské meno',
 			'format' => '<small>Maximálne 16 alfanumerických znakov</small>',
-			'_' => 'Používateľské meno',
 		),
 	),
 	'date' => array(
-		'apr' => 'Apr.',
 		'Apr' => '\\A\\p\\r\\í\\l',
-		'april' => 'Apríl',
 		'Aug' => '\\A\\u\\g\\u\\s\\t',
+		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',
+		'Feb' => '\\F\\e\\b\\r\\u\\á\\r',
+		'Jan' => '\\J\\a\\n\\u\\á\\r',
+		'Jul' => '\\J\\ú\\l',
+		'Jun' => '\\J\\ú\\n',
+		'Mar' => '\\M\\a\\r\\e\\c',
+		'May' => '\\M\\á\\j',
+		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',
+		'Oct' => '\\O\\k\\t\\ó\\b\\e\\r',
+		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',
+		'apr' => 'Apr.',
+		'april' => 'Apríl',
 		'aug' => 'Aug.',
 		'august' => 'August',
 		'before_yesterday' => 'Predvčerom',
-		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',
 		'dec' => 'Dec.',
 		'december' => 'December',
-		'Feb' => '\\F\\e\\b\\r\\u\\á\\r',
 		'feb' => 'Feb.',
 		'february' => 'Február',
 		'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 H\\:i',
 		'fri' => 'Pi',
-		'Jan' => '\\J\\a\\n\\u\\á\\r',
 		'jan' => 'Jan.',
 		'january' => 'Január',
 		'jul' => 'Júl',
-		'Jul' => '\\J\\ú\\l',
 		'july' => 'Júl',
-		'Jun' => '\\J\\ú\\n',
 		'jun' => 'Jún',
 		'june' => 'Jún',
 		'last_2_year' => 'Last two years',	// TODO - Translation
@@ -81,22 +86,17 @@ return array(
 		'last_month' => 'Posledný mesiac',
 		'last_week' => 'Posledný týždeň',
 		'last_year' => 'Posledný rok',
-		'Mar' => '\\M\\a\\r\\e\\c',
 		'mar' => 'Mar.',
 		'march' => 'Marec',
 		'may' => 'Máj',
-		'May' => '\\M\\á\\j',
 		'may_' => 'Máj',
 		'mon' => 'Po',
 		'month' => 'mesiace',
-		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',
 		'nov' => 'Nov.',
 		'november' => 'November',
-		'Oct' => '\\O\\k\\t\\ó\\b\\e\\r',
 		'oct' => 'Okt.',
 		'october' => 'Október',
 		'sat' => 'So',
-		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',
 		'sep' => 'Sept.',
 		'september' => 'September',
 		'sun' => 'Ne',
@@ -108,8 +108,8 @@ return array(
 	),
 	'dir' => 'ltr',
 	'freshrss' => array(
-		'about' => 'O FreshRSS',
 		'_' => 'FreshRSS',
+		'about' => 'O FreshRSS',
 	),
 	'js' => array(
 		'category_empty' => 'Prázdna kategória',
@@ -178,13 +178,13 @@ return array(
 		'years' => 'years',	// TODO - Translation
 	),
 	'share' => array(
+		'Known' => 'Stránky založené na Known',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'E-mail',
 		'facebook' => 'Facebook',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
-		'Known' => 'Stránky založené na Known',
 		'lemmy' => 'Lemmy',	// TODO - Translation
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',

+ 2 - 2
app/i18n/sk/index.php

@@ -2,6 +2,7 @@
 
 return array(
 	'about' => array(
+		'_' => 'O FreshRSS',
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',
 		'bugs_reports' => 'Nahlásiť chybu',
 		'credits' => 'Poďakovanie',
@@ -13,7 +14,6 @@ return array(
 		'title' => 'O FreshRSS',
 		'version' => 'Verzia',
 		'website' => 'Webová stránka',
-		'_' => 'O FreshRSS',
 	),
 	'feed' => array(
 		'add' => 'Môžete pridať kanály.',
@@ -24,10 +24,10 @@ return array(
 		'title_global' => 'Prehľad',
 	),
 	'log' => array(
+		'_' => 'Záznamy',
 		'clear' => 'Vymazať záznamy',
 		'empty' => 'Súbor záznamu je prázdny',
 		'title' => 'Záznamy',
-		'_' => 'Záznamy',
 	),
 	'menu' => array(
 		'about' => 'O FreshRSS',

+ 5 - 5
app/i18n/sk/install.php

@@ -17,19 +17,20 @@ return array(
 		'type' => 'Spôsob prihlásenia',
 	),
 	'bdd' => array(
+		'_' => 'Databáza',
 		'conf' => array(
+			'_' => 'Nastavenia databázy',
 			'ko' => 'Skontrolovať vaše informácie o databáze.',
 			'ok' => 'Nastavenia databázy boli uložené.',
-			'_' => 'Nastavenia databázy',
 		),
 		'host' => 'Server',
 		'password' => 'Heslo databázy',
 		'prefix' => 'Predpona názvu tabuľky',
 		'type' => 'Druh databázy',
 		'username' => 'Používateľské meno databázy',
-		'_' => 'Databáza',
 	),
 	'check' => array(
+		'_' => 'Kontrola',
 		'already_installed' => 'Zistilo sa, že FreshRSS je už nainštalovaný!',
 		'cache' => array(
 			'nok' => 'Skontrolujte oprávnenia prístupu do priečinku <em>./data/cache</em>. HTTP server musí mať právo doň zapisovať.',
@@ -95,11 +96,10 @@ return array(
 			'nok' => 'Nepodarilo sa nájsť požadovanú knižnicu na spracovanie formátu XML.',
 			'ok' => 'Našla sa požadovaná knižnica na spracovanie formátu XML.',
 		),
-		'_' => 'Kontrola',
 	),
 	'conf' => array(
-		'ok' => 'Hlavné nastavenia boli uložené.',
 		'_' => 'Hlavné nastavenia',
+		'ok' => 'Hlavné nastavenia boli uložené.',
 	),
 	'congratulations' => 'Nastavenia!',
 	'default_user' => 'Hlavné používateľské meno <small>(najviac 16 alfanumerických znakov)</small>',
@@ -110,9 +110,9 @@ return array(
 		'confirm_reinstall' => 'Ak budete pokračovať v preinštalovaní FreshRSS, stratíte vaše predošlé nastavenia. Naozaj chcete pokračovať?',
 	),
 	'language' => array(
+		'_' => 'Jazyk',
 		'choose' => 'Vyberte jazyk pre FreshRSS',
 		'defined' => 'Jazyk bol nastavený.',
-		'_' => 'Jazyk',
 	),
 	'not_deleted' => 'Niečo sa nepodarilo. Musíte ručne zmazať súbor <em>%s</em>.',
 	'ok' => 'Inštalácia bola úspešná.',

+ 7 - 7
app/i18n/sk/sub.php

@@ -11,6 +11,7 @@ return array(
 		'title' => 'Záložka',
 	),
 	'category' => array(
+		'_' => 'Kategória',
 		'add' => 'Pridať kategóriu',
 		'archiving' => 'Archiving',	// TODO - Translation
 		'empty' => 'Prázdna kategória',
@@ -19,7 +20,6 @@ return array(
 		'position' => 'Display position',	// TODO - Translation
 		'position_help' => 'To control category sort order',	// TODO - Translation
 		'title' => 'Názov',
-		'_' => 'Kategória',
 	),
 	'feed' => array(
 		'add' => 'Pridať RSS kanál',
@@ -39,16 +39,16 @@ return array(
 		'empty' => 'Tento kanál je prázdny. Overte, prosím, či je ešte spravovaný autorom.',
 		'error' => 'Vyskytol sa problém s týmto kanálom. Overte, prosím, či kanál stále existuje, potom ho obnovte.',
 		'filteractions' => array(
-			'help' => 'Napíšte jeden výraz hľadania na riadok.',
 			'_' => 'Filtrovať akcie',
+			'help' => 'Napíšte jeden výraz hľadania na riadok.',
 		),
 		'information' => 'Informácia',
 		'keep_min' => 'Minimálny počet článkov na uchovanie',
 		'maintenance' => array(
 			'clear_cache' => 'Clear cache',	// TODO - Translation
-			'clear_cache_help' => 'Clear the cache of this feed on disk',	// TODO - Translation
+			'clear_cache_help' => 'Clear the cache for this feed.',	// TODO - Translation
 			'reload_articles' => 'Reload articles',	// TODO - Translation
-			'reload_articles_help' => 'Reload articles and fetch complete content',	// TODO - Translation
+			'reload_articles_help' => 'Reload articles and fetch complete content if a selector is defined.',	// TODO - Translation
 			'title' => 'Maintenance',	// TODO - Translation
 		),
 		'moved_category_deleted' => 'Keď vymažete kategóriu, jej kanály sa automaticky zaradia pod <em>%s</em>.',
@@ -56,13 +56,13 @@ return array(
 		'no_selected' => 'Nevybrali ste kanál.',
 		'number_entries' => 'Počet článkov: %d',
 		'priority' => array(
+			'_' => 'Viditeľnosť',
 			'archived' => 'Nezobrazovať (archivované)',
 			'main_stream' => 'Zobraziť v prehľade kanálov',
 			'normal' => 'Zobraziť vo svojej kategórii',
-			'_' => 'Viditeľnosť',
 		),
 		'selector_preview' => array(
-			'show_raw' => 'Show source',	// TODO - Translation
+			'show_raw' => 'Show source code',	// TODO - Translation
 			'show_rendered' => 'Show content',	// TODO - Translation
 		),
 		'show' => array(
@@ -108,8 +108,8 @@ return array(
 		'subscription_tools' => 'Nástroje na odoberanie kanálov',
 	),
 	'title' => array(
+		'_' => 'Správa odoberaných kanálov',
 		'feed_management' => 'Správa RSS kanálov',
 		'subscription_tools' => 'Nástroje na odoberanie kanálov',
-		'_' => 'Správa odoberaných kanálov',
 	),
 );

+ 7 - 7
app/i18n/tr/admin.php

@@ -83,9 +83,9 @@ return array(
 			'ok' => 'PDO sorunsuz (pdo_mysql, pdo_sqlite, pdo_pgsql).',
 		),
 		'php' => array(
+			'_' => 'PHP kurulumu',
 			'nok' => 'PHP versiyonunuz %s fakat FreshRSS için gerekli olan en düşük sürüm %s.',
 			'ok' => 'PHP versiyonunuz %s, FreshRSS ile tam uyumlu.',
-			'_' => 'PHP kurulumu',
 		),
 		'tables' => array(
 			'nok' => 'Veritabanında bir veya daha fazla tablo eksik.',
@@ -116,8 +116,8 @@ return array(
 		'name' => 'Name',	// TODO - Translation
 		'no_configure_view' => 'Bu eklenti yapılandırılamaz.',
 		'system' => array(
-			'no_rights' => 'Sistem eklentileri (düzenleme hakkınız yok)',
 			'_' => 'Sistem eklentileri',
+			'no_rights' => 'Sistem eklentileri (düzenleme hakkınız yok)',
 		),
 		'title' => 'Eklentiler',
 		'update' => 'Update available',	// TODO - Translation
@@ -125,6 +125,7 @@ return array(
 		'version' => 'Version',	// TODO - Translation
 	),
 	'stats' => array(
+		'_' => 'İstatistikler',
 		'all_feeds' => 'Tüm akış',
 		'category' => 'Kategori',
 		'entry_count' => 'Makale sayısı',
@@ -154,9 +155,9 @@ return array(
 		'status_unread' => 'Okunmamış',
 		'title' => 'İstatistikler',
 		'top_feed' => 'İlk 10 akış',
-		'_' => 'İstatistikler',
 	),
 	'system' => array(
+		'_' => 'Sistem yapılandırması',
 		'auto-update-url' => 'Otomatik güncelleme sunucu URL',
 		'cookie-duration' => array(
 			'help' => 'in seconds',	// TODO - Translation
@@ -170,21 +171,20 @@ return array(
 			'help' => '0 sınır yok anlamındadır',
 			'number' => 'En fazla hesap sayısı',
 		),
-		'_' => 'Sistem yapılandırması',
 	),
 	'update' => array(
+		'_' => 'Sistem güncelleme',
 		'apply' => 'Uygula',
 		'check' => 'Güncelleme kontrolü',
 		'current_version' => 'Mevcut FreshRSS sürümünüz %s.',
 		'last' => 'Son kontrol: %s',
 		'none' => 'Yeni güncelleme yok',
 		'title' => 'Sistem güncelleme',
-		'_' => 'Sistem güncelleme',
 	),
 	'user' => array(
 		'admin' => 'Administrator',	// TODO - Translation
-		'articles_and_size' => '%s makale (%s)',
 		'article_count' => 'Articles',	// TODO - Translation
+		'articles_and_size' => '%s makale (%s)',
 		'back_to_manage' => '← Return to user list',	// TODO - Translation
 		'create' => 'Yeni kullanıcı oluştur',
 		'database_size' => 'Database size',	// TODO - Translation
@@ -202,8 +202,8 @@ return array(
 		'selected' => 'Selected user',	// TODO - Translation
 		'title' => 'Kullanıcıları yönet',
 		'update_users' => 'Update user',	// TODO - Translation
+		'user_list' => 'Kullanıcı listesi',
 		'username' => 'Kullanıcı adı',
 		'users' => 'Kullanıcılar',
-		'user_list' => 'Kullanıcı listesi',
 	),
 );

+ 14 - 14
app/i18n/tr/conf.php

@@ -2,6 +2,7 @@
 
 return array(
 	'archiving' => array(
+		'_' => 'Arşiv',
 		'delete_after' => 'Makelelerin tutulacağı süre',
 		'exception' => 'Purge exception',	// TODO - Translation
 		'help' => 'Akış ayarlarında daha çok ayar bulabilirsiniz',
@@ -19,9 +20,9 @@ return array(
 		'purge_now' => 'Şimdi temizle',
 		'title' => 'Arşiv',
 		'ttl' => 'Şu süreden sık otomatik yenileme yapma',
-		'_' => 'Arşiv',
 	),
 	'display' => array(
+		'_' => 'Görünüm',
 		'icon' => array(
 			'bottom_line' => 'Alt çizgi',
 			'display_authors' => 'Authors',	// TODO - Translation
@@ -46,22 +47,22 @@ return array(
 			'no_limit' => 'Sınırsız',
 			'thin' => 'Zayıf',
 		),
-		'_' => 'Görünüm',
 	),
 	'profile' => array(
+		'_' => 'Profil yönetimi',
 		'api' => 'API management',	// TODO - Translation
 		'delete' => array(
-			'warn' => 'Hesabınız ve tüm verileriniz silinecek.',
 			'_' => 'Hesap silme',
+			'warn' => 'Hesabınız ve tüm verileriniz silinecek.',
 		),
 		'email' => 'Email adresleri',
 		'password_api' => 'API Şifresi<br /><small>(ör. mobil uygulamalar için)</small>',
 		'password_form' => 'Şifre<br /><small>(Tarayıcı girişi için)</small>',
 		'password_format' => 'En az 7 karakter',
 		'title' => 'Profil',
-		'_' => 'Profil yönetimi',
 	),
 	'query' => array(
+		'_' => 'Kullanıcı sorguları',
 		'deprecated' => 'Bu sorgu artık geçerli değil. İlgili akış veya kategori silinmiş.',
 		'display' => 'Display user query results',	// TODO - Translation
 		'filter' => 'Filtre uygulandı:',
@@ -69,8 +70,8 @@ return array(
 		'get_category' => '"%s" kategorisini göster',
 		'get_favorite' => 'Favori makaleleri göster',
 		'get_feed' => '"%s" akışını göster',
-		'none' => 'Henüz hiç kullanıcı sorgusu oluşturmadınız.',
 		'no_filter' => 'Filtre yok',
+		'none' => 'Henüz hiç kullanıcı sorgusu oluşturmadınız.',
 		'number' => 'Sorgu n°%d',
 		'order_asc' => 'Önce eski makaleleri göster',
 		'order_desc' => 'Önce yeni makaleleri göster',
@@ -93,9 +94,9 @@ return array(
 		'state_14' => 'Okunmamış makaleleri göster',
 		'state_15' => 'Tüm makaleleri göster',
 		'title' => 'Kullanıcı sorguları',
-		'_' => 'Kullanıcı sorguları',
 	),
 	'reading' => array(
+		'_' => 'Okuma',
 		'after_onread' => '"Hepsini okundu say" dedinten sonra,',
 		'always_show_favorites' => 'Show all articles in favorites by default',	// TODO - Translation
 		'articles_per_page' => 'Sayfa başına makale sayısı',
@@ -117,19 +118,19 @@ return array(
 			'when' => 'Makaleyi okundu olarak işaretle…',
 		),
 		'show' => array(
+			'_' => 'Gösterilecek makaleler',
+			'active_category' => 'Active category',	// TODO - Translation
 			'adaptive' => 'Ayarlanmış gösterim',
 			'all_articles' => 'Tüm makaleleri göster',
-			'unread' => 'Sadece okunmamış makaleleri göster',
-			'active_category' => 'Active category',	// TODO - Translation
 			'all_categories' => 'All categories',	// TODO - Translation
 			'no_category' => 'No category',	// TODO - Translation
-			'_' => 'Gösterilecek makaleler',
+			'unread' => 'Sadece okunmamış makaleleri göster',
 		),
 		'sides_close_article' => 'Clicking outside of article text area closes the article',	// TODO - Translation
 		'sort' => array(
+			'_' => 'Sıralama',
 			'newer_first' => 'Önce yeniler',
 			'older_first' => 'Önce eskiler',
-			'_' => 'Sıralama',
 		),
 		'sticky_post' => 'Makale açıldığında yukarı getir',
 		'title' => 'Okuma',
@@ -139,9 +140,9 @@ return array(
 			'normal' => 'Normal görünüm',
 			'reader' => 'Okuma görünümü',
 		),
-		'_' => 'Okuma',
 	),
 	'sharing' => array(
+		'_' => 'Paylaşım',
 		'add' => 'Add a sharing method',	// TODO - Translation
 		'blogotext' => 'Blogotext',	// TODO - Translation
 		'diaspora' => 'Diaspora*',	// TODO - Translation
@@ -156,9 +157,9 @@ return array(
 		'title' => 'Paylaşım',
 		'twitter' => 'Twitter',	// TODO - Translation
 		'wallabag' => 'wallabag',	// TODO - Translation
-		'_' => 'Paylaşım',
 	),
 	'shortcut' => array(
+		'_' => 'Kısayollar',
 		'article_action' => 'Makale eylemleri',
 		'auto_share' => 'Paylaş',
 		'auto_share_help' => 'Sadece 1 paylaşım modu varsa bu kullanılır. Yoksa kendi paylaşım numaraları ile kullanılır.',
@@ -183,14 +184,13 @@ return array(
 		'reading_view' => 'Switch to reading view',	// TODO - Translation
 		'rss_view' => 'Open RSS view in a new tab',	// TODO - Translation
 		'see_on_website' => 'Orijinal sitede göster',
-		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> tuşu ile tüm makaleler okundu olarak işaretlenir',	// TODO - Translation
+		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> to mark all articles as read',	// TODO - Translation
 		'skip_next_article' => 'Focus next without opening',	// TODO - Translation
 		'skip_previous_article' => 'Focus previous without opening',	// TODO - Translation
 		'title' => 'Kısayollar',
 		'user_filter' => 'Kullanıcı filtrelerine eriş',
 		'user_filter_help' => 'Eğer tek filtre varsa o kullanılır. Yoksa filtrelerin kendi numaralarıyla kullanılır.',
 		'views' => 'Views',	// TODO - Translation
-		'_' => 'Kısayollar',
 	),
 	'user' => array(
 		'articles_and_size' => '%s makale (%s)',

+ 11 - 11
app/i18n/tr/feedback.php

@@ -44,9 +44,9 @@ return array(
 			'ko' => '%s aktifleştirilemiyor. Detaylar için <a href="%s">FreshRSS log kayıtlarını</a> kontrol edin.',
 			'ok' => '%s aktif',
 		),
+		'no_access' => '%s de yetkiniz yok',
 		'not_enabled' => '%s henüz aktif değil',
 		'not_found' => '%s bulunmamaktadır',
-		'no_access' => '%s de yetkiniz yok',
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'ZIP eklentisi mevcut sunucunuzda yer almıyor. Lütfen başka dosya formatında dışarı aktarmayı deneyin.',
@@ -72,10 +72,10 @@ return array(
 			'emptied' => 'Kategori boşaltıldı',
 			'error' => 'Kategori güncellenemedi',
 			'name_exists' => 'Kategori ismi zaten bulunmakta.',
-			'not_delete_default' => 'Öntanımlı kategoriyi silemezsiniz!',
-			'not_exist' => 'Kategori bulunmamakta!',
 			'no_id' => 'Kategori id sinden emin olmalısınız.',
 			'no_name' => 'Kategori ismi boş olamaz.',
+			'not_delete_default' => 'Öntanımlı kategoriyi silemezsiniz!',
+			'not_exist' => 'Kategori bulunmamakta!',
 			'over_max' => 'Kategori limitini aştınız (%d)',
 			'updated' => 'Karegori güncellendi.',
 		),
@@ -89,17 +89,17 @@ return array(
 			'error' => 'Akış güncellenemiyor',
 			'internal_problem' => 'RSS akışı eklenemiyor. Detaylar için <a href="%s">FreshRSS log kayıtlarını</a> kontrol edin.',
 			'invalid_url' => 'URL <em>%s</em> geçersiz',
-			'not_added' => '<em>%s</em> eklenemedi',
-			'not_found' => 'Feed cannot be found',	// TODO - Translation
-			'no_refresh' => 'Yenilenecek akış yok…',
 			'n_actualized' => '%d akışları güncellendi',
 			'n_entries_deleted' => '%d makaleleri silindi',
+			'no_refresh' => 'Yenilenecek akış yok…',
+			'not_added' => '<em>%s</em> eklenemedi',
+			'not_found' => 'Feed cannot be found',	// TODO - Translation
 			'over_max' => 'Akış limitini aştınız (%d)',
 			'reloaded' => '<em>%s</em> has been reloaded',	// TODO - Translation
 			'selector_preview' => array(
 				'http_error' => 'Failed to load website content.',	// TODO - Translation
-				'no_entries' => 'There is no entries in your feed. You need at least one entry to create a preview.',	// TODO - Translation
-				'no_feed' => 'Internal error (no feed to entry).',	// TODO - Translation
+				'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.',	// TODO - Translation
+				'no_feed' => 'Internal error (feed can’t be found).',	// TODO - Translation
 				'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.',	// TODO - Translation
 				'selector_empty' => 'The selector is empty. You need to define one to create a preview.',	// TODO - Translation
 			),
@@ -117,16 +117,16 @@ return array(
 	),
 	'user' => array(
 		'created' => array(
-			'error' => '%s kullanıcısı oluşturulamadı',
 			'_' => '%s kullanıcısı oluşturuldu',
+			'error' => '%s kullanıcısı oluşturulamadı',
 		),
 		'deleted' => array(
-			'error' => '%s kullanıcısı silinemedi',
 			'_' => '%s kullanıcısı silindi',
+			'error' => '%s kullanıcısı silinemedi',
 		),
 		'updated' => array(
-			'error' => 'User %s has not been updated',	// TODO - Translation
 			'_' => 'User %s has been updated',	// TODO - Translation
+			'error' => 'User %s has not been updated',	// TODO - Translation
 		),
 	),
 );

+ 17 - 17
app/i18n/tr/gen.php

@@ -32,45 +32,50 @@ return array(
 		'login' => 'Giriş',
 		'logout' => 'Çıkış',
 		'password' => array(
-			'format' => '<small>En az 7 karakter</small>',
 			'_' => 'Şifre',
+			'format' => '<small>En az 7 karakter</small>',
 		),
 		'registration' => array(
+			'_' => 'Yeni hesap',
 			'ask' => 'Yeni bir hesap oluştur',
 			'title' => 'Hesap oluşturma',
-			'_' => 'Yeni hesap',
 		),
 		'reset' => 'Kimlik doğrulama sıfırla',
 		'username' => array(
+			'_' => 'Kullancı adı',
 			'admin' => 'Yönetici kullanıcı adı',
 			'format' => '<small>En fazla 16 alfanümerik karakter</small>',
-			'_' => 'Kullancı adı',
 		),
 	),
 	'date' => array(
-		'apr' => 'nis',
 		'Apr' => '\\N\\i\\s\\a\\n',
-		'april' => 'Nis',
 		'Aug' => '\\A\\ğ\\u\\s\\t\\o\\s',
+		'Dec' => '\\A\\r\\a\\l\\ı\\k',
+		'Feb' => '\\Ş\\u\\b\\a\\t',
+		'Jan' => '\\O\\c\\a\\k',
+		'Jul' => '\\T\\e\\m\\m\\u\\z',
+		'Jun' => '\\H\\a\\z\\i\\r\\a\\n',
+		'Mar' => '\\M\\a\\r\\t',
+		'May' => '\\M\\a\\y\\ı\\s',
+		'Nov' => '\\K\\a\\s\\ı\\m',
+		'Oct' => '\\E\\k\\i\\m',
+		'Sep' => '\\E\\y\\l\\ü\\l',
+		'apr' => 'nis',
+		'april' => 'Nis',
 		'aug' => 'ağu',
 		'august' => 'Ağu',
 		'before_yesterday' => 'Dünden önceki gün',
-		'Dec' => '\\A\\r\\a\\l\\ı\\k',
 		'dec' => 'ara',
 		'december' => 'Ara',
-		'Feb' => '\\Ş\\u\\b\\a\\t',
 		'feb' => 'şub',
 		'february' => 'Şub',
 		'format_date' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y',	// TODO - Translation
 		'format_date_hour' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y \\a\\t H\\:i',	// TODO - Translation
 		'fri' => 'Cum',
-		'Jan' => '\\O\\c\\a\\k',
 		'jan' => 'oca',
 		'january' => 'Oca',
 		'jul' => 'tem',
-		'Jul' => '\\T\\e\\m\\m\\u\\z',
 		'july' => 'Tem',
-		'Jun' => '\\H\\a\\z\\i\\r\\a\\n',
 		'jun' => 'haz',
 		'june' => 'Haz',
 		'last_2_year' => 'Last two years',	// TODO - Translation
@@ -81,22 +86,17 @@ return array(
 		'last_month' => 'Geçen ay',
 		'last_week' => 'Geçen hafta',
 		'last_year' => 'Geçen yıl',
-		'Mar' => '\\M\\a\\r\\t',
 		'mar' => 'mar',
 		'march' => 'Mar',
 		'may' => 'Mayıs',
-		'May' => '\\M\\a\\y\\ı\\s',
 		'may_' => 'May',	// TODO - Translation
 		'mon' => 'Pzt',
 		'month' => 'ay',
-		'Nov' => '\\K\\a\\s\\ı\\m',
 		'nov' => 'kas',
 		'november' => 'Kas',
-		'Oct' => '\\E\\k\\i\\m',
 		'oct' => 'ekm',
 		'october' => 'Ekm',
 		'sat' => 'Cts',
-		'Sep' => '\\E\\y\\l\\ü\\l',
 		'sep' => 'eyl',
 		'september' => 'Eyl',
 		'sun' => 'Pzr',
@@ -108,8 +108,8 @@ return array(
 	),
 	'dir' => 'ltr',
 	'freshrss' => array(
-		'about' => 'FreshRSS hakkında',
 		'_' => 'FreshRSS',	// TODO - Translation
+		'about' => 'FreshRSS hakkında',
 	),
 	'js' => array(
 		'category_empty' => 'Boş kategori',
@@ -178,13 +178,13 @@ return array(
 		'years' => 'years',	// TODO - Translation
 	),
 	'share' => array(
+		'Known' => 'Known based sites',	// TODO - Translation
 		'blogotext' => 'Blogotext',	// TODO - Translation
 		'diaspora' => 'Diaspora*',	// TODO - Translation
 		'email' => 'Email',	// TODO - Translation
 		'facebook' => 'Facebook',	// TODO - Translation
 		'gnusocial' => 'GNU social',	// TODO - Translation
 		'jdh' => 'Journal du hacker',	// TODO - Translation
-		'Known' => 'Known based sites',	// TODO - Translation
 		'lemmy' => 'Lemmy',	// TODO - Translation
 		'linkedin' => 'LinkedIn',	// TODO - Translation
 		'mastodon' => 'Mastodon',	// TODO - Translation

+ 2 - 2
app/i18n/tr/index.php

@@ -2,6 +2,7 @@
 
 return array(
 	'about' => array(
+		'_' => 'Hakkında',
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',	// TODO - Translation
 		'bugs_reports' => 'Hata raporu',
 		'credits' => 'Tanıtım',
@@ -13,7 +14,6 @@ return array(
 		'title' => 'Hakkında',
 		'version' => 'Versiyon',
 		'website' => 'Website',	// TODO - Translation
-		'_' => 'Hakkında',
 	),
 	'feed' => array(
 		'add' => 'Akış ekleyebilirsin.',
@@ -24,10 +24,10 @@ return array(
 		'title_global' => 'Global görünüm',
 	),
 	'log' => array(
+		'_' => 'Log Kayıtları',
 		'clear' => 'Log kayıt dosyasını temizle',
 		'empty' => 'Log kayır dosyası boş',
 		'title' => 'Log Kayıtları',
-		'_' => 'Log Kayıtları',
 	),
 	'menu' => array(
 		'about' => 'FreshRSS hakkında',

+ 5 - 5
app/i18n/tr/install.php

@@ -17,19 +17,20 @@ return array(
 		'type' => 'Kimlik doğrulama yöntemi',
 	),
 	'bdd' => array(
+		'_' => 'Veritabanı',
 		'conf' => array(
+			'_' => 'Veritabanı yapılandırılması',
 			'ko' => 'Veritabanı bilginizi doğrulayın.',
 			'ok' => 'Veritabanı yapılandırılması kayıt edildi.',
-			'_' => 'Veritabanı yapılandırılması',
 		),
 		'host' => 'Sunucu',
 		'password' => 'Veritabanı şifresi',
 		'prefix' => 'Tablo ön eki',
 		'type' => 'Veritabanı türü',
 		'username' => 'Veritabanı kullanıcı adı',
-		'_' => 'Veritabanı',
 	),
 	'check' => array(
+		'_' => 'Kontroller',
 		'already_installed' => 'FreshRSS zaten yüklü!',
 		'cache' => array(
 			'nok' => '<em>./data/cache</em> klasör yetkisini kontrol edin. HTTP yazma yetkisi olmalı',
@@ -95,11 +96,10 @@ return array(
 			'nok' => 'You lack the required library to parse XML.',
 			'ok' => 'You have the required library to parse XML.',	// TODO - Translation
 		),
-		'_' => 'Kontroller',
 	),
 	'conf' => array(
-		'ok' => 'Genel yapılandırma ayarları kayıt edildi.',
 		'_' => 'Genel yapılandırma',
+		'ok' => 'Genel yapılandırma ayarları kayıt edildi.',
 	),
 	'congratulations' => 'Tebrikler!',
 	'default_user' => 'Öntanımlı kullanıcı adı <small>(en fazla 16 alfanümerik karakter)</small>',
@@ -110,9 +110,9 @@ return array(
 		'confirm_reinstall' => 'FreshRSS i yeniden kurarak önceki yapılandırma ayarlarınızı kaybedeceksiniz. Devam etmek istiyor musunuz ?',
 	),
 	'language' => array(
+		'_' => 'Dil',
 		'choose' => 'FreshRSS için bir dil seçin',
 		'defined' => 'Dil belirlendi.',
-		'_' => 'Dil',
 	),
 	'not_deleted' => 'Hata meydana geldi; <em>%s</em> dosyasını elle silmelisiniz.',
 	'ok' => 'Kurulum başarıyla tamamlandı.',

+ 7 - 7
app/i18n/tr/sub.php

@@ -11,6 +11,7 @@ return array(
 		'title' => 'Bookmarklet',	// TODO - Translation
 	),
 	'category' => array(
+		'_' => 'Kategori',
 		'add' => 'Kategori ekle',
 		'archiving' => 'Arşiv',
 		'empty' => 'Boş kategori',
@@ -19,7 +20,6 @@ return array(
 		'position' => 'Display position',	// TODO - Translation
 		'position_help' => 'To control category sort order',	// TODO - Translation
 		'title' => 'Başlık',
-		'_' => 'Kategori',
 	),
 	'feed' => array(
 		'add' => 'RSS akışı ekle',
@@ -39,16 +39,16 @@ return array(
 		'empty' => 'Bu akış boş. Lütfen akışın aktif olduğuna emin olun.',
 		'error' => 'Bu akışda bir hatayla karşılaşıldı. Lütfen akışın sürekli ulaşılabilir olduğuna emin olun.',
 		'filteractions' => array(
-			'help' => 'Write one search filter per line.',	// TODO - Translation
 			'_' => 'Filter actions',	// TODO - Translation
+			'help' => 'Write one search filter per line.',	// TODO - Translation
 		),
 		'information' => 'Bilgi',
 		'keep_min' => 'En az tutulacak makale sayısı',
 		'maintenance' => array(
 			'clear_cache' => 'Clear cache',	// TODO - Translation
-			'clear_cache_help' => 'Clear the cache of this feed on disk',	// TODO - Translation
+			'clear_cache_help' => 'Clear the cache for this feed.',	// TODO - Translation
 			'reload_articles' => 'Reload articles',	// TODO - Translation
-			'reload_articles_help' => 'Reload articles and fetch complete content',	// TODO - Translation
+			'reload_articles_help' => 'Reload articles and fetch complete content if a selector is defined.',	// TODO - Translation
 			'title' => 'Maintenance',	// TODO - Translation
 		),
 		'moved_category_deleted' => 'Bir kategoriyi silerseniz, içerisindeki akışlar <em>%s</em> içerisine yerleşir.',
@@ -56,13 +56,13 @@ return array(
 		'no_selected' => 'Hiçbir akış seçilmedi.',
 		'number_entries' => '%d makale',
 		'priority' => array(
+			'_' => 'Visibility',	// TODO - Translation
 			'archived' => 'Do not show (archived)',	// TODO - Translation
 			'main_stream' => 'Ana akışda göster',
 			'normal' => 'Show in its category',	// TODO - Translation
-			'_' => 'Visibility',	// TODO - Translation
 		),
 		'selector_preview' => array(
-			'show_raw' => 'Show source',	// TODO - Translation
+			'show_raw' => 'Show source code',	// TODO - Translation
 			'show_rendered' => 'Show content',	// TODO - Translation
 		),
 		'show' => array(
@@ -108,8 +108,8 @@ return array(
 		'subscription_tools' => 'Subscription tools',	// TODO - Translation
 	),
 	'title' => array(
+		'_' => 'Abonelik yönetimi',
 		'feed_management' => 'RSS akış yönetimi',
 		'subscription_tools' => 'Subscription tools',	// TODO - Translation
-		'_' => 'Abonelik yönetimi',
 	),
 );

Неке датотеке нису приказане због велике количине промена